摘要:這篇博文介紹基于opencv:DNN模塊自帶的殘差網(wǎng)絡(luò)的人臉、性別、年齡識別系統(tǒng),系統(tǒng)程序由OpenCv, PyQt5的庫實現(xiàn)。如圖系統(tǒng)可通過攝像頭獲取實時畫面并識別其中的人臉表情,也可以通過讀取圖片識別,本文提供完整的程序文件并詳細介紹其實現(xiàn)過程。博文要點如下:
關(guān)于相關(guān)的網(wǎng)絡(luò)模型部分
匯總 | OpenCV DNN模塊中支持的分類網(wǎng)絡(luò)
1. 前言
在這個人工智能成為超級大熱門的時代,人臉識別已成為其中的一項研究熱點,而卷積神經(jīng)網(wǎng)絡(luò)、深度信念網(wǎng)絡(luò)和多層感知器等相關(guān)算法在人臉面識別領(lǐng)域的運用最為廣泛。
當(dāng)前深度學(xué)習(xí)發(fā)展迅速,關(guān)于表情識別IEEE上面有許多質(zhì)量很高的文章,里面介紹的是利用深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)的面部表情識別,可以學(xué)習(xí)和參考。于是自己動手做了這個項目,這里特此將前期工作作個總結(jié),希望能給類似工作的朋友帶來一點幫助。這里使用的是已有的模型——如今CNN的主流框架之opencv的的殘差網(wǎng)絡(luò)
二、實現(xiàn)步驟
1.預(yù)先加載三個網(wǎng)絡(luò)模型
2.對于識別部分實現(xiàn)
圖片識別
[ ] 讀取圖片并顯示到pyqt頁面當(dāng)中
[ ] 將圖片傳入到網(wǎng)絡(luò)模型中
[ ] 將模型中識別后的結(jié)果返回到頁面并顯示
視頻識別
[ ] 打開攝像頭流/加載圖像
[ ] 對每一幀圖片進行傳送到模型中
[ ] 返回識別后的視頻,顯示在pyqt當(dāng)中
保存圖片
[ ] 將當(dāng)前視頻幀保存在文件目錄下文章來源:http://www.zghlxwxcb.cn/news/detail-471462.html
1、加載模型
MODEL_MEAN_VALUES = (78.4263377603, 87.7689143744, 114.895847746)
ageList = ['(0-2)', '(4-6)', '(8-12)', '(15-20)', '(25-32)', '(38-43)', '(48-53)', '(60-100)']
genderList = ['Male', 'Female']
# Load network
ageNet = cv.dnn.readNet(ageModel, ageProto)
genderNet = cv.dnn.readNet(genderModel, genderProto)
faceNet = cv.dnn.readNet(faceModel, faceProto)
2、人臉檢測
def getFaceBox(net, frame, conf_threshold=0.7):
frameOpencvDnn = frame.copy()
frameHeight = frameOpencvDnn.shape[0]
frameWidth = frameOpencvDnn.shape[1]
blob = cv.dnn.blobFromImage(frameOpencvDnn, 1.0, (300, 300), [104, 117, 123], True, False)
net.setInput(blob)
detections = net.forward()
bboxes = []
for i in range(detections.shape[2]):
confidence = detections[0, 0, i, 2]
if confidence > conf_threshold:
x1 = int(detections[0, 0, i, 3] * frameWidth)
y1 = int(detections[0, 0, i, 4] * frameHeight)
x2 = int(detections[0, 0, i, 5] * frameWidth)
y2 = int(detections[0, 0, i, 6] * frameHeight)
bboxes.append([x1, y1, x2, y2])
cv.rectangle(frameOpencvDnn, (x1, y1), (x2, y2), (0, 255, 0), int(round(frameHeight / 150)), 8)
return frameOpencvDnn, bboxes
源碼文章來源地址http://www.zghlxwxcb.cn/news/detail-471462.html
到了這里,關(guān)于python、pyqt5實現(xiàn)人臉檢測、性別和年齡預(yù)測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!