有一些好用的comupter vision libray , 讓寫APP 變得很容易, 今天介紹人物(人臉)識別, 其實只要少少的幾行就可以做到準度可用的APP
使用python 3.6
0. 安裝visual studio 2019, 2022, 含cmake 的套件
1. 安裝: dlib
pip install cmake
pip install dlib
# 如果安裝不成功, 可能是0, 沒安裝好,.. (python 環境下紅色的字, 就是有錯)
2. 安裝: face recognition
pip install face-recognition
# python 下使用時要用 import face_recognition
3. install opencv-python
#順利的話, 這樣就成功了. 如果還有問題跟0有關. 再想方法解決
二. 使用方法:
0. import face_recognition
1. read ref image files
picture = face_recognition.load_image_file("path/face1.jpg")
2. calculate 特徵值 : 得到128 向量
face_encode= face_recognition.face_encodings(picture)[0]
3. read 待測影像&calculate 特徵值
cpicture = face_recognition.load_image_file("path/current_face.jpg")
cface_encode= face_recognition.face_encodings(picture)[0]
4. 使用單一測試結果, 或是找referece image files 的特徵值的最小. 就是最match 的人物
one=[face_encode, face_encode1. face_encode2, face_encode3,face_encode4]
distance = face_recognition.api.face_distance(one, cface_encoding) #可以一次算出 n 個圖片的距離, 之後可以找最小的, 或是平均最小的臉, 可以一個人有數張reference 的圖當golden
distance 最小值應要< 0.4 信心度才可信任. (除非影像的品質不好, 數字可以到0.45~0.5 就當作識別成功.
# face_recognition_load_image_file 是BGR format, 所以如果是使用 opencv 讀進來的影像要先轉成 BGR. 才可以給face_encodings 使用
frameBGR = cv.cvtColor(frame,cv.COLOR_RGB2BGR) # import opencv cv
留言列表