掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序設(shè)計(jì)、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。
基于LBPH的人臉識別操作原理
1、LBPH(Local Binary Pattern Histogram)將檢測到的人臉分為小單元,并將其與模型中的對應(yīng)單元進(jìn)行比較,對每個(gè)區(qū)域的匹配值產(chǎn)生一個(gè)直方圖。
由于這種方法的靈活性,LBPH 是唯一允許模型樣本人臉和檢測到的人臉在形狀、大小上可以不同的人臉識別算法。
2、調(diào)整后的區(qū)域中調(diào)用 predict()函數(shù)
predict()函數(shù)返回兩個(gè)元素的數(shù)組:第一個(gè)元素是所識別 個(gè)體的標(biāo)簽,第二個(gè)是置信度評分。
3、所有的算法都有一個(gè)置信度評分閾值,置信度評分用來衡量所識別人臉與原模型的差距,0 表示完全匹配。可能有時(shí)不想保留所有的識別結(jié)果,則需要進(jìn)一步處理,因此可用自己的算法來估算識別的置信度評分。
4、LBPH一個(gè)好的識別參考值要低于 50 ,任何高于 80 的參考值都會被認(rèn)為是低的置信度評分。
基于LBPH的人臉識別操作實(shí)例
import cv2
# 加載訓(xùn)練數(shù)據(jù)集文件
# 獲取人臉識別對象
recognizer = cv2.face.LBPHFaceRecognizer_create()
# 讀取訓(xùn)練數(shù)據(jù)
recognizer.read('trainer/trainer.yml')
# 準(zhǔn)備識別圖片
img = cv2.imread('6.pgm')
# 將圖片灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 加載特征數(shù)據(jù)
face_detector = cv2.CascadeClassifier('D:/Python/opencv/sources/data/haarcascades
/haarcascade_frontalface_default.xml')
# 參數(shù): scaleFactor(比例因子):圖片縮放多少,minNeighbors:至少檢測多少次,
minSize maxSize:當(dāng)前檢測區(qū)域的最小面積
faces = face_detector.detectMultiScale(gray) # scaleFactor=1.01, minNeighbors=3,
maxSize=(33, 33), minSize=(28, 28)
# 獲取臉部特征值
for x, y, w, h in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), thickness=2)
cv2.circle(img, (x+w//2, y+h//2), radius=w//2, thickness=2, color=(0, 0, 255))
# 人臉識別
id, confidence = recognizer.predict(gray[y:y+h, x:x+w])
print('標(biāo)簽id:', id, '置信評分:', confidence)
# 顯示圖片
cv2.imshow('result', img)
cv2.waitKey(0) # 一直顯示
cv2.destroyAllWindows() # 釋放資源 
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流