• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      視頻流中的人臉識別系統(tǒng)應用開發(fā)

      2018-12-17 09:17:46鐘嘯高紅梅
      電腦知識與技術 2018年25期
      關鍵詞:人臉檢測視頻流人臉識別

      鐘嘯 高紅梅

      摘要:隨著信息和智能終端技術的發(fā)展,生物識別技術在各行各業(yè)中得到了廣泛的重視.人臉檢測與識別屬于非接觸型身份認證,只是看到臉部就可以實現(xiàn)身份的認證,因而被廣泛地應用在安保系統(tǒng)、企業(yè)公司、醫(yī)院學校、研究所等各類機構組織之中。本實驗基于特征臉的人臉識別方法,利用OpenCV的第三方庫和C++編程,實現(xiàn)了視頻流中的人臉識別技術,能夠在PC上檢測人臉和識別人臉。

      關鍵詞:視頻流;人臉檢測;人臉捕獲;人臉識別;OpenCV

      中圖分類號:TP37 文獻標識碼:A 文章編號:1009-3044(2018)25-0220-03

      目前來說,生物識別技術雖早已有學者提出并實踐出來一些成果[1-3],而且已運用到各個應用領域并且影響廣泛。但是人臉識別技術方面還需要一些創(chuàng)新性思維和想法,也需要一些創(chuàng)新性想法來為后面的人臉識別技術添枝加葉,提供更多的參考,為以后人臉識別的發(fā)展和飛躍打下更多、更牢固的基礎。

      1研究意義

      一方面來說,研究視頻流中的人臉識別在一定程度上可以建實和發(fā)展人臉識別技術,為后續(xù)更高層次人臉識別技術的突破和發(fā)展打下一定的基礎。

      另一方面,研究視頻流中的人臉識別方面有很大的實用和應用空間,可以用于公司職員日??记?,學校學生宿舍查寢等各個不同現(xiàn)實情景,總的來說此項目具有很大的發(fā)展和應用的空間。

      2技術路線

      早在2009年,就有學者總結出了人臉識別的方法[4-6],它們大致上可以歸結為三類:基于幾何特征的方法、基于模板的方法、基于模型的方法。本實驗選定基于模板的方法,利用基于特征臉的方法實現(xiàn)視頻流中的人臉識別技術。

      3視頻流中的人臉識別系統(tǒng)設計

      3.1技術支持

      實現(xiàn)視頻流中的人臉識別技術,先要現(xiàn)視頻流中的人臉檢測和人臉捕獲。本實驗開發(fā)該原型系統(tǒng)所需要用到的開發(fā)工具有:SDK 8.1、VS 2015、Cmake、OpenCV等。(見圖1)

      C++語言既能夠進行C語言面向過程的程序設計,還能夠進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設計,還可以進行以封裝、繼承和多態(tài)為特點的面向對象的程序設計。C++語言不僅僅擁有計算機高效運行的實用性特征,同時它還致力于提高大規(guī)模程序的編程質量與程序設計語言的問題描述能力。所以,本實驗使用了C++語言作為該原型系統(tǒng)的編程語言。然后,本實驗需要下載和安裝SDK 8.1作為C++語言正常在電腦上運行的基本環(huán)境并配置好環(huán)境變量。

      此項目還用到了OpenCV和Cmake。OpenCV由Intel微處理器研究實驗室的視覺交互組開發(fā),是一種用于數(shù)字圖像處理和計算機視覺的開源數(shù)據(jù)庫[7-8]。OpenCV是由C++語言編寫,它的主要接口也是C++語言。此外,OpenCV擁有包括500多個C函數(shù)的跨平臺的中、高層API。它不依賴于其他的外部庫,但它可以使用某些外部庫。本實驗需要下載OpenCV 3.3.1,并使用Cmake編譯它的動態(tài)鏈接庫和第三方庫。

      3.2系統(tǒng)設計

      根據(jù)實驗的目的,所要實現(xiàn)的功能,列出一個總設計框架(圖2)再用C++語言編寫出相關的程序代碼,用于開啟攝像頭、檢查攝像頭的運作情況、調用特征臉算法進行人臉識別。

      3.3主要工作流程

      使用者先要運行第一步程序,從視頻流中捕獲人臉的圖片,并按照指定路徑建立文件夾,作為人臉特征對比的后臺數(shù)據(jù)。之后,運行第二步程序,從視頻流中檢測出人臉并對其進行人臉特征提取,再與先前收集到的人臉數(shù)據(jù)照片進行特征對比,識別出該人臉。

      4人臉識別關鍵技術的實現(xiàn)

      4.1用Cmake編譯動態(tài)鏈接庫和第三方庫

      本原型系統(tǒng)利用OpenCV的contrib模塊,該模塊包含了一些新型人臉識別,立體匹配,人工視網(wǎng)膜模型等可選功能。打開Cmake進入主頁面,在第一行源碼路徑中選擇OpenCV源碼的文件夾:OpenCV/OpenCV—master。再在第二行選擇生成路徑:OpenCV/OpenCV—master/build。然后點擊“Configure”,第一項選擇“Visual Studio 14 2015 Win64”作為編譯工具,點擊“Finish”完成。最后點擊“Generate”生成庫。同時,對OpenCV/OpenCV—contrib文件夾也是類似操作生成。

      3.2攝像頭的開啟和檢查其運作情況

      如上流程圖,本實驗先要用C++語言寫出攝像頭啟動和檢查其運作情況的代碼,該模塊代碼如下:

      bool Handle::existsCapture() {

      capture.open(0);

      bool flag = false;

      if (capture.isOpened()) {

      flag = true;

      cout << "檢測到攝像頭的存在,可以打開攝像頭" << endl;

      capture.release();}

      else {

      cout << "未能夠檢測到攝像頭的存在,無法進行下一步的工作" << endl;}

      return flag;}

      3.3從視頻流中獲取圖片作為后臺數(shù)據(jù)

      首先本實驗要實現(xiàn)從視頻流中獲取實時照片的功能,將所獲取的圖片作為人臉識別的后臺數(shù)據(jù),用于與視頻流中的人臉特征做對比,該模塊代碼如下:

      Mat frame;

      Mat des;

      int i = 1;

      while (capture.read(frame)) {

      char ch = waitKey(20);

      findFaces(frame, des);

      imshow("人臉檢測", frame);

      //waitKey(5);

      bool flag = false;

      switch (ch) {

      case 'p':

      if (flag) {

      if (des.rows>0 && des.cols>0) {

      cout << "aaaaaaaaaaaaaa" << endl;

      string name = format("D:\\opencv\\img\\002\\%d.jpg", i);

      imwrite(name, des);

      cout << "save photo:" << name << endl;

      i++;

      break;

      }}

      else

      {if (des.rows>0 && des.cols>0) {

      distinguish(des);}}}}}

      3.4視頻流中的人臉檢測與人臉特征提取

      首先本實驗要實現(xiàn)從視頻流中檢測出人臉并提取人臉的特征進行特征臉的記錄,用于人臉數(shù)據(jù)的記錄和為下一步進行人臉特征的對比和識別提供了基本對比數(shù)據(jù),該模塊代碼如下:

      //繪制矩形 BGR。

      rectangle(frame, faces[i], Scalar(0, 0, 255), 1);

      //獲取矩形中心點。

      Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2);

      //繪制圓形。

      ellipse(frame, center, Size(faces[i].width / 2, faces[i].height / 2), 0, 0, 360, Scalar(255, 0, 255), 4, 8, 0);

      //獲取臉部矩形區(qū)域。

      Mat faceROI = src(faces[i]);

      //存儲找到的眼睛矩形。

      std::vector eyes;

      eyes_cascade.detectMultiScale(faceROI,eyes,1.1,2,0 |CASCADE_SCALE_IMAGE,Size(30,30));

      for(size_t j=0;j

      {Point eye_center(faces[i].x + eyes[j].x + eyes[j].width/2,faces[i].y + eyes[j].y + eyes[j].height/2);

      int radius = cvRound((eyes[j].width + eyes[j].height)*0.25);

      circle(frame,eye_center,radius,Scalar( 255, 0, 0 ),4,8,0);}

      //截取人臉。

      Mat facesROI = frame(faces[i]);

      //圖像縮放。

      cv::resize(facesROI, facesROI, Size(128, 128), 0, 0, cv::INTER_LINEAR);

      //保存圖像。

      dst = facesROI;}

      return;}

      3.5視頻流中的人臉特征對比與人臉識別

      最后本實驗要實現(xiàn)從視頻流中捕獲人臉,提取人臉特征并與后臺人臉數(shù)據(jù)做對比進行人臉的識別,該模塊代碼如下:

      maptt;

      vectorimages;

      vectorlabels;

      vectorres = listDir(path);

      int count = 0;

      for (int i = 0; i

      if (res[i].find_last_of(".pgm") != -1) {

      Mat mat = imread(res[i], CV_LOAD_IMAGE_GRAYSCALE);

      resize(mat, mat, Size(128, 128));

      images.push_back(mat);

      labels.push_back(count);}

      else {

      count++;

      cout << "index:" << count << " " << res[i] << endl;

      textRes.insert(pair(count, res[i]));}}

      5總結與展望

      作為一個學習計算機軟件的學生來說,我自身的讀代碼和寫代碼的能力顯著提高。除此之外,我還學會使用OpenCV、Cmake等一系列工具,對經(jīng)典的隱馬爾可夫模型有了一定認識和了解,對人臉識別技術有了深層次地了解和掌握。我開發(fā)的人臉識別原型系統(tǒng)的人臉識別率達到85%以上,顯然識別率已經(jīng)達到一定的水準,但是原型系統(tǒng)并不完美,經(jīng)過大量的人臉訓練,我通過改變人臉識別的背景、環(huán)境的光照亮暗、人臉的角度等等一系列因素,發(fā)現(xiàn)人臉識別率受人臉識別的背景影響較大,實驗說明在不同背景下,人臉識別率才達到50%,但可以通過優(yōu)化編程代碼彌補這一不足。實驗還可以做出進一步的延伸,就是研究不同民族的人臉特征,找出不同名族臉部的特點并用幾何向量計算并總結出來,由此實現(xiàn)一個額外的功能,就是該系統(tǒng)可以識別人臉所屬的民族。

      參考文獻:

      [1] 劉芳.基于FpGA的門禁系統(tǒng)視頻監(jiān)控中的人臉識別技術研究[J].智能應用,2014(4).

      [2] 馬海兵,白潔.人臉識別技術在智能視頻監(jiān)控系統(tǒng)中的應用[J].現(xiàn)代電子技術,2007(8).

      [3] 姜濤.基于OpenCV的智能視頻監(jiān)控系統(tǒng)設計[D].江蘇科技大學,

      [4] 馬小虎,譚延琪.基于鑒別稀疏保持嵌入的人臉識別算法[J].自動化學報, 2014, 40(1): 73-82

      [5] 吳巾一,周德龍.人臉識別方法綜述[J].計算機應用研究,2009(8).

      [6] 孟繁靜,王連明.視頻人臉識別系統(tǒng)中的最佳人臉捕獲[J].東北師大學報,2015(4).

      [7] 黃佳.基于OpenCV的計算機視覺技術研究[D].華東理工大學,2013.

      [8] 唐致龍.基于OpenCV嵌入式人臉檢測系統(tǒng)[D].長安大學,2017.

      【通聯(lián)編輯:唐一東】

      猜你喜歡
      人臉檢測視頻流人臉識別
      邊緣實時視頻流分析系統(tǒng)配置動態(tài)調整算法研究
      人臉識別 等
      作文中學版(2022年1期)2022-04-14 08:00:34
      基于視頻流傳輸中的擁塞控制研究
      揭開人臉識別的神秘面紗
      學生天地(2020年31期)2020-06-01 02:32:06
      基于人臉特征定位的SNS網(wǎng)站應用組件研究與設計
      基于Android平臺的人臉識別系統(tǒng)設計與實現(xiàn)
      基于Matlab的人臉檢測實驗設計
      美國視頻流市場首現(xiàn)飽和征兆
      基于類獨立核稀疏表示的魯棒人臉識別
      計算機工程(2015年8期)2015-07-03 12:19:07
      基于JSeg和顯著性檢測的服裝圖像分割方法
      軟件導刊(2015年2期)2015-04-02 12:38:46
      漳州市| 东安县| 娱乐| 民勤县| 镇原县| 定州市| 商都县| 句容市| 上犹县| 蕉岭县| 衡南县| 嘉祥县| 济阳县| 吉水县| 玉山县| 定远县| 句容市| 天峻县| 开阳县| 塘沽区| 吉隆县| 汉源县| 淮滨县| 霍林郭勒市| 新巴尔虎右旗| 秦皇岛市| 马关县| 湖南省| 阿拉善左旗| 正镶白旗| 古浪县| 阜新市| 德格县| 云和县| 大荔县| 沁阳市| 区。| 十堰市| 酒泉市| 伊金霍洛旗| 筠连县|