您好,登錄后才能下訂單哦!
怎么在python中使用LBPH實(shí)現(xiàn)人臉識(shí)別?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
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í)。
免責(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)容。