溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在python中使用LBPH實(shí)現(xiàn)人臉識(shí)別

發(fā)布時(shí)間:2021-05-07 15:01:01 來(lái)源:億速云 閱讀:548 作者:Leah 欄目:編程語(yǔ)言

怎么在python中使用LBPH實(shí)現(xiàn)人臉識(shí)別?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

python的數(shù)據(jù)類型有哪些?

python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長(zhǎng)整型)和float(浮點(diǎn)型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運(yùn)算,有兩個(gè)值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標(biāo)識(shí),內(nèi)部元素用逗號(hào)隔開(kāi)。6. 字典,字典是一種鍵值對(duì)的集合。7. 集合,集合是一個(gè)無(wú)序的、不重復(fù)的數(shù)據(jù)組合。

基于LBPH的人臉識(shí)別操作原理

1、LBPH(Local Binary Pattern Histogram)將檢測(cè)到的人臉?lè)譃樾卧?,并將其與模型中的對(duì)應(yīng)單元進(jìn)行比較,對(duì)每個(gè)區(qū)域的匹配值產(chǎn)生一個(gè)直方圖。

由于這種方法的靈活性,LBPH 是唯一允許模型樣本人臉和檢測(cè)到的人臉在形狀、大小上可以不同的人臉識(shí)別算法。

2、調(diào)整后的區(qū)域中調(diào)用 predict()函數(shù)

predict()函數(shù)返回兩個(gè)元素的數(shù)組:第一個(gè)元素是所識(shí)別 個(gè)體的標(biāo)簽,第二個(gè)是置信度評(píng)分。

3、所有的算法都有一個(gè)置信度評(píng)分閾值,置信度評(píng)分用來(lái)衡量所識(shí)別人臉與原模型的差距,0 表示完全匹配??赡苡袝r(shí)不想保留所有的識(shí)別結(jié)果,則需要進(jìn)一步處理,因此可用自己的算法來(lái)估算識(shí)別的置信度評(píng)分。

4、LBPH一個(gè)好的識(shí)別參考值要低于 50 ,任何高于 80 的參考值都會(huì)被認(rèn)為是低的置信度評(píng)分。

基于LBPH的人臉識(shí)別操作實(shí)例

import cv2

# 加載訓(xùn)練數(shù)據(jù)集文件

# 獲取人臉識(shí)別對(duì)象
recognizer = cv2.face.LBPHFaceRecognizer_create()
# 讀取訓(xùn)練數(shù)據(jù)
recognizer.read('trainer/trainer.yml')

# 準(zhǔn)備識(shí)別圖片
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:至少檢測(cè)多少次,
minSize maxSize:當(dāng)前檢測(cè)區(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))

    # 人臉識(shí)別
    id, confidence = recognizer.predict(gray[y:y+h, x:x+w])
    print('標(biāo)簽id:', id, '置信評(píng)分:', confidence)


# 顯示圖片
cv2.imshow('result', img)
cv2.waitKey(0)  # 一直顯示
cv2.destroyAllWindows()  # 釋放資源

關(guān)于怎么在python中使用LBPH實(shí)現(xiàn)人臉識(shí)別問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI