• 
    

    
    

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

      快速搭建人臉識別系統(tǒng)方案的研究分析

      2022-05-30 02:56:57吳友蘭胡冬琴石俊峰
      中國新通信 2022年15期
      關(guān)鍵詞:人臉識別嵌入式人工智能

      吳友蘭 胡冬琴 石俊峰

      摘要:本文介紹兩種快速搭建人臉識別系統(tǒng)的方法。一種設(shè)計方法以O(shè)penCV視覺庫為核心的人臉識別系統(tǒng),我們將攝像頭采集的人的面部圖像進(jìn)行灰度化處理、特征值計算,并在此基礎(chǔ)上訓(xùn)練出待測人臉的數(shù)據(jù)模型,然后對數(shù)據(jù)進(jìn)行分析處理,用以識別出人臉。另一種方法是基于百度云API進(jìn)行人臉檢測,我們靈活利用百度云提供的大量模塊化接口,可快速完成相關(guān)的開發(fā),大大縮短開發(fā)周期。

      關(guān)鍵詞:人臉識別; OpenCV; 人工智能; 嵌入式;

      一、引言

      人臉識別是獲得人的眼、口、鼻輪廓,從而識別多種人臉屬性。它實現(xiàn)從輸入的人臉圖像或視頻流中檢測和跟蹤人臉,首先判斷其是否存在人臉,如果存在人臉就進(jìn)行預(yù)處理,切割出其中的人臉照片,然后再給出每個人臉的位置、大小和各個主要面部器官的位置信息。最后依據(jù)這些信息,進(jìn)一步提取每個人臉中所包含的身份特征數(shù)據(jù),并將其與已知的人臉庫中人臉進(jìn)行對比,從而識別不同人臉的身份。人臉識別作為一種生物識別技術(shù),具有非強(qiáng)制性、非接觸性、并發(fā)性等特點,已經(jīng)廣泛應(yīng)用于各行各業(yè)。

      下面我們介紹二種方法用以快速搭建人臉識別系統(tǒng),可以把它加載到現(xiàn)有的項目中快速實現(xiàn)人臉比對、人臉識別功能。我們的程序設(shè)計都采用了python語言來實現(xiàn),如圖1列出了人臉識別系統(tǒng)框圖。

      在很多設(shè)計開發(fā)項目中,我們需要通過人臉的比對來進(jìn)行身份的驗證。當(dāng)前主流的人臉識別算法,在進(jìn)行人臉比對時,主要依靠人臉特征值的比對。所謂特征值,即面部特征所組成的信息集,人工智能算法可以很精確的辨別和記住面部特征,從而實現(xiàn)人臉比對,人臉識別。

      人臉識別就是給定一張臉,判斷這張臉是誰。人臉識別是需要識別人的的人臉特征與數(shù)據(jù)庫中已獲取到的人臉特征模板進(jìn)行比對,根據(jù)所比較的相似程度對人臉的身份信息進(jìn)行判斷。我們介紹二種方法來快速實現(xiàn)人臉識別和人臉比對。人臉識別步驟包括數(shù)據(jù)收集和預(yù)處理、訓(xùn)練模型、人臉識別三個部分。第一種方法是在本地拍攝待測人臉大約30張照片,照片在不同時間、不同光照、不同表情(睜眼閉眼、笑或者不笑)、不同人臉細(xì)節(jié)(戴眼鏡或者不戴眼鏡)下進(jìn)行采集。然后用OpenCV中FaceRecognizer類對收集的待測人臉照片數(shù)據(jù)進(jìn)行人臉檢測和訓(xùn)練生成人臉數(shù)據(jù)集.yml文件,利用生成的.vml模型文件來實現(xiàn)人臉識別。第二種方法是將自己的照片上傳到百度云平臺上,由百度云平臺負(fù)責(zé)收集你的臉部特征和對模型的訓(xùn)練,并將你攝像頭中所錄取的照片與人臉庫比對從而實現(xiàn)人臉識別的功能。

      第一種方法我們利用OpenCV中提供的人臉識別算法來實現(xiàn)人臉檢測識別。OpenCV的全稱是Open Source Computer Vision Library,是一個開放源代碼的計算機(jī)視覺庫,可以運(yùn)行多種操作系統(tǒng)上,我們可以利用OpenCV快速的實現(xiàn)端對端的人臉識別。

      實現(xiàn)步驟包括下面三步:

      第一步:人臉數(shù)據(jù)圖片的收集和預(yù)處理

      數(shù)據(jù)的收集和預(yù)處理就是在得到待測人臉照片之后,對圖片上的人臉進(jìn)行檢測和分割并添加數(shù)據(jù)標(biāo)簽。

      執(zhí)行步驟包括:

      1.加載分類器,我們調(diào)用opencv中提供的“haarcascade_frontalface_alt2.xml”分類器文件,它對人臉的檢測準(zhǔn)確率和速度都比較好。

      2.調(diào)用detectMultiScale()函數(shù)檢測,調(diào)整函數(shù)的參數(shù)可以使檢測結(jié)果更加精確。

      3.把檢測到的人臉用矩形畫出來。

      4. 記錄每一個人臉對應(yīng)的標(biāo)簽,就是為每一個人姓名編號。

      實現(xiàn)人臉檢測的核心代碼如下:

      face_detect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

      faces=face_detect.detectMultiScale(image_gray, scaleFactor=1.15, minNeighbors=5, minSize=(5, 5)) # 檢測人臉

      for (x, y, width, height) in faces:# 根據(jù)檢測結(jié)果繪制矩形框

      cv2.rectangle(image, (x, y), (x + width, y + height), (255, 0, 0), 2)

      cv2.imwrite("dataset/User."+str(face_id)+'.'+str(count)+".jpg",gray[y:y+h,x:x+w])# 記錄人臉標(biāo)簽

      第二步:訓(xùn)練模型,圖2是訓(xùn)練人臉模型流程圖如下:

      通過樣本和類別標(biāo)簽進(jìn)行訓(xùn)練,得到訓(xùn)練好的人臉模型,將模型保存為.xml文件。

      現(xiàn)在待測人臉數(shù)據(jù)集準(zhǔn)備好了,接下來就是訓(xùn)練模型了。這里我們用到了opencv的Facerecognizer類。FaceRecognizer類主要包含了三種人臉識別的方法:基于PCA變換的、基于Fisher變換的和基于局部二值模式的三種方法。

      LBPH(Local Binary Pattern Histogram)將檢測到的人臉分為若干個小單元,并將每個小單元與模型中的對應(yīng)單元進(jìn)行比較,對每個區(qū)域進(jìn)行匹配,由所獲得的匹配值產(chǎn)生直方圖。由于這種方法的靈活性,LBPH是唯一允許模型樣本人臉和檢測到的人臉在形狀、大小上可以不同的人臉識別算法。

      我們從數(shù)據(jù)集中獲取所有用戶數(shù)據(jù),并調(diào)用train函數(shù)進(jìn)行并“訓(xùn)練”產(chǎn)生OpenCV 識別器。訓(xùn)練結(jié)束后,會產(chǎn)生一個 .yml 的模型文件,該文件將保存在“trainer/”目錄中,供我們后面做人臉識別測試時用。

      第三步:人臉識別、人臉測試

      在模型訓(xùn)練好之后我們拿數(shù)據(jù)集中的最后幾張圖片做一個測試,根據(jù)獲得的confidence值確定測試結(jié)果。

      調(diào)整后的區(qū)域中調(diào)用 predict()函數(shù), 該函數(shù)返回兩個元素的數(shù)組:

      第一個元素是所識別個體的標(biāo)簽, 第二個是置信度評分。 所有的算法都有一個置信度評分閾值,置信度評分用來衡量所識別人臉與原模型的差距, 0 表示完全匹配。 可能有時不想保留所有的識別結(jié)果,則需要進(jìn)一步處理,因此可用自己的算法來估算識別的置信度評分。 LBPH一個好的識別參考值要低于 50,任何高于 80 的參考值都會被認(rèn)為是低的置信度評分。

      第二種方法我們調(diào)用百度提供的開放人臉api接口,幫助我們快速在自己的系統(tǒng)中集成人臉識別的功能,而且這個接口可以無限次調(diào)用。由于嵌入式開發(fā)系統(tǒng)的性能限制,運(yùn)行神經(jīng)網(wǎng)絡(luò)來進(jìn)行人臉模型的訓(xùn)練識別的難度較大,在嵌入式系統(tǒng)的開發(fā)中一般采用了百度提供的開源的人臉識別SDK來進(jìn)行人臉的識別和檢測。

      開發(fā)步驟如下:

      1.在百度智能云上申請注冊,先獲取APPID、API Key和secret key,添加人臉識別功能。

      2.下載Python HTTP? SDK安裝百度的api。

      輸入以下代碼安裝:pip install baidu-aip

      python setup.py install

      3.新建分組

      4.在分組中創(chuàng)建用戶,用戶名zhangsan,并且添加自己人臉照片進(jìn)去,如在光線條件充足的條件下的正面照、側(cè)面照片,以便識別時能準(zhǔn)確識別。

      5.訪問API接口,上傳圖片的URL。

      6.獲取返回的信息數(shù)據(jù)

      7.操作返回的信息數(shù)據(jù)

      利用百度云實現(xiàn)人臉識別的核心代碼如下:

      import cv2

      import urllib.request

      import base64

      import time

      #百度人臉識別API賬號信息

      APP_ID = ‘添加自己創(chuàng)建的百度APPID

      API_KEY = ‘添加自己創(chuàng)建的百度API Key

      SECRET_KEY =添加自己創(chuàng)建的百度secret key ‘

      client = AipFace(APP_ID, API_KEY, SECRET_KEY)#創(chuàng)建一個客戶端用以訪問百度云

      #圖像編碼方式

      IMAGE_TYPE=BASE64

      def go_api(image):

      result = client.search(str(image, ‘utf-8), IMAGE_TYPE, GROUP);

      if result[‘error_msg] == ‘SUCCESS:

      name = result[‘result][‘user_list][0][‘user_id]

      score = result[‘result][‘user_list][0][‘score]

      if score > 80:#如果相似度大于80

      if name == ‘zhangsan:

      print(“歡迎%s !” % name)

      time.sleep(3)

      return 1

      else:

      print(“對不起,我不認(rèn)識你!”)

      name = ‘Unknow

      return 0

      while True:

      print(‘準(zhǔn)備)

      if True:

      getimage()#拍照

      img = transimage()#轉(zhuǎn)換照片格式

      res = go_api(img)#將轉(zhuǎn)換了格式的圖片上傳到百度云

      time.sleep(3)

      以上兩種方法都可以快速實現(xiàn)人臉識別系統(tǒng)的開發(fā),可識別單張,多張人臉圖片。我們可以根據(jù)項目的需要自行選擇一種方法來實現(xiàn)人臉識別,后期我們可以將計算機(jī)視覺庫移值到嵌入式系統(tǒng)中,可以利用計算機(jī)視覺技術(shù)實現(xiàn)監(jiān)控設(shè)備、醫(yī)療設(shè)備、機(jī)器人設(shè)備等產(chǎn)品的開發(fā)。

      作者單位:吳友蘭? ? 胡冬琴? ? 石俊峰? ? 北京電子科技職業(yè)學(xué)院

      參? 考? 文? 獻(xiàn)

      [1]楊軍,張岳,劉燕峰.基于Python語言的數(shù)據(jù)挖掘課程的建設(shè)與研究[J].科技風(fēng),2021(14):80-82.

      [2]高雙喜,曹淑服.基于人臉識別的門禁系統(tǒng)設(shè)計[J].河北省科學(xué)院學(xué)報,2012,29(1).

      [3]郝立濤,陳書旺,唐鴻武.基于人臉識別的門禁系統(tǒng)設(shè)計[J].河北工業(yè)科技,2009,26(5):339-341.

      [4]張玉榮,王強(qiáng)強(qiáng),吳瓊,等. 基于Python-OpenCV圖像處理技術(shù)的小麥不完善粒識別研究[J]. 河南工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2021,42(6):1-13.

      猜你喜歡
      人臉識別嵌入式人工智能
      人臉識別 等
      揭開人臉識別的神秘面紗
      2019:人工智能
      商界(2019年12期)2019-01-03 06:59:05
      人工智能與就業(yè)
      搭建基于Qt的嵌入式開發(fā)平臺
      數(shù)讀人工智能
      小康(2017年16期)2017-06-07 09:00:59
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      下一幕,人工智能!
      基于類獨立核稀疏表示的魯棒人臉識別
      Altera加入嵌入式視覺聯(lián)盟
      扶绥县| 台山市| 梅州市| 平定县| 聊城市| 牡丹江市| 上高县| 金坛市| 禹城市| 衡水市| 托里县| 太仓市| 江阴市| 天全县| 巫山县| 澎湖县| 白玉县| 富顺县| 清原| 巴林左旗| 梨树县| 麟游县| 鄱阳县| 英吉沙县| 三亚市| 永修县| 米林县| 顺昌县| 辛集市| 永善县| 大兴区| 舒城县| 东乌珠穆沁旗| 讷河市| 遂平县| 怀集县| 中牟县| 迁安市| 县级市| 巧家县| 共和县|