国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

吳友蘭 胡冬琴 石俊峰

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

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

一、引言

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

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

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

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

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

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

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

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

執(zhí)行步驟包括:

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

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

3.把檢測(cè)到的人臉用矩形畫出來(lái)。

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

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

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

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

for (x, y, width, height) in faces:# 根據(jù)檢測(cè)結(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)練人臉模型流程圖如下:

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

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

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

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

第三步:人臉識(shí)別、人臉測(cè)試

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

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

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

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

開發(fā)步驟如下:

1.在百度智能云上申請(qǐng)注冊(cè),先獲取APPID、API Key和secret key,添加人臉識(shí)別功能。

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

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

python setup.py install

3.新建分組

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

5.訪問(wèn)API接口,上傳圖片的URL。

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

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

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

import cv2

import urllib.request

import base64

import time

#百度人臉識(shí)別API賬號(hào)信息

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)建一個(gè)客戶端用以訪問(wèn)百度云

#圖像編碼方式

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(“對(duì)不起,我不認(rèn)識(shí)你!”)

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)

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

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

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

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

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

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

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

猜你喜歡
人臉識(shí)別嵌入式人工智能
人臉識(shí)別 等
揭開人臉識(shí)別的神秘面紗
2019:人工智能
商界(2019年12期)2019-01-03 06:59:05
人工智能與就業(yè)
搭建基于Qt的嵌入式開發(fā)平臺(tái)
數(shù)讀人工智能
小康(2017年16期)2017-06-07 09:00:59
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
下一幕,人工智能!
基于類獨(dú)立核稀疏表示的魯棒人臉識(shí)別
Altera加入嵌入式視覺聯(lián)盟
偃师市| 仁怀市| 布尔津县| 额尔古纳市| 鄂托克前旗| 美姑县| 新河县| 堆龙德庆县| 稻城县| 晋州市| 永丰县| 宁远县| 类乌齐县| 和平区| 海门市| 固安县| 特克斯县| 宁海县| SHOW| 甘孜| 炉霍县| 工布江达县| 镇原县| 双流县| 旌德县| 镇江市| 阳春市| 霍州市| 双峰县| 沧州市| 泌阳县| 麻江县| 宽城| 兰溪市| 大埔县| 理塘县| 乌什县| 柳林县| 大同县| 安顺市| 黄山市|