您好,登錄后才能下訂單哦!
怎么在python中使用LBPH實現人臉識別?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。
基于LBPH的人臉識別操作原理
1、LBPH(Local Binary Pattern Histogram)將檢測到的人臉分為小單元,并將其與模型中的對應單元進行比較,對每個區域的匹配值產生一個直方圖。
由于這種方法的靈活性,LBPH 是唯一允許模型樣本人臉和檢測到的人臉在形狀、大小上可以不同的人臉識別算法。
2、調整后的區域中調用 predict()函數
predict()函數返回兩個元素的數組:第一個元素是所識別 個體的標簽,第二個是置信度評分。
3、所有的算法都有一個置信度評分閾值,置信度評分用來衡量所識別人臉與原模型的差距,0 表示完全匹配。可能有時不想保留所有的識別結果,則需要進一步處理,因此可用自己的算法來估算識別的置信度評分。
4、LBPH一個好的識別參考值要低于 50 ,任何高于 80 的參考值都會被認為是低的置信度評分。
基于LBPH的人臉識別操作實例
import cv2 # 加載訓練數據集文件 # 獲取人臉識別對象 recognizer = cv2.face.LBPHFaceRecognizer_create() # 讀取訓練數據 recognizer.read('trainer/trainer.yml') # 準備識別圖片 img = cv2.imread('6.pgm') # 將圖片灰度 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 加載特征數據 face_detector = cv2.CascadeClassifier('D:/Python/opencv/sources/data/haarcascades /haarcascade_frontalface_default.xml') # 參數: scaleFactor(比例因子):圖片縮放多少,minNeighbors:至少檢測多少次, minSize maxSize:當前檢測區域的最大最小面積 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('標簽id:', id, '置信評分:', confidence) # 顯示圖片 cv2.imshow('result', img) cv2.waitKey(0) # 一直顯示 cv2.destroyAllWindows() # 釋放資源
關于怎么在python中使用LBPH實現人臉識別問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。