? ? ? ?昨天調(diào)試了人臉識別(classifier_webcam)這個程序诅需,效果不錯潭兽,響應(yīng)速度也挺快诺凡。按照http://blog.csdn.net/u011531010/article/details/52270023博客內(nèi)容進行調(diào)試即可沸柔。
? ? ? ?今天調(diào)試了python寫的landmark暑刃,用的是dlib庫里的68點文件勤讽,其中dat文件為訓(xùn)練好的68點標注蟋座,我們加入了視頻的實時檢測的功能,仿照classifier_webcam這個文件(openface中的)使用VideoCapture(0)這個(0為本機攝像頭脚牍,1為USB外設(shè))函數(shù)打開向臀,然后讀取frame。注意標注時使用了for 循環(huán)诸狭,for i range(0,67)券膀,將點一個個標注出來,經(jīng)過使用print函數(shù)打印出shape.part(i).x? shape.part(i).y驯遇,可見其為坐標 用cvCircle函數(shù)進行畫圈芹彬。結(jié)果顯示尚可,但仍為反映速度較慢叉庐,明天使用cuda進行加速舒帮,但在這之前需要安裝一些文件,擬采用http://www.mobibrw.com/2017/7153 博客中使用的方法。
關(guān)鍵代碼:
ret, frame=video_capture.read()
dets =? detector(frame, 1)
for k, d in enumerate(dets):
shape = predictor(frame, d)
for idx? in range(0, 67):
#pos = (point[0,0],point[0,1])
pos = (shape.part(idx).x, shape.part(idx).y)
#print(shape.part(i).x,shape.part(i).y)
cv2.circle(frame, pos, 5, color = (225, 0, 0))
#cv2.putText(frame, str(idx), pos, color = (0, 255, 0))
cv2.imshow('N1', frame)
landmark效果應(yīng)該如下:
? ? ? ?就先寫到這兒了,明天再看玩郊。
-------------------------------------------------------------------------------------------------------------------------------------------
果然遇到了問題肢执,不過這次問題解決起來還是挺順利的,報錯:"libcudart.so.8.0 cannot open shared object file: No such file or directory"
參考博客:http://blog.csdn.net/u014696921/article/details/60140264? 即可完成译红。
對Openface訓(xùn)練的人臉識別(Face Recognition)模型進行測試预茄,這個模型過程為:輸入整個圖片-人臉檢測(調(diào)用dlib中frontal_face_detector庫)-進行人臉對齊(仿射變換affine transform)-輸入神經(jīng)網(wǎng)絡(luò)(CNN)+Triplet loss函數(shù)修正網(wǎng)絡(luò)-- 輸入128維特征,生成csv矩陣文件? 最后使用SVM分類器進行分類生成pkl分類器侦厚,最后使用classifier.py調(diào)用形成的pkl進行識別分類耻陕。【實踐過程參考http://blog.csdn.net/u011531010/article/details/52270023】
classifier_webcam實驗結(jié)果:
閾值threshold越小假夺,越容易匹配到一個人淮蜈,但錯誤率也越高。
轉(zhuǎn)頭角度過大會失敗已卷,捂著眼睛(wcc)失敗梧田,不含捂嘴捂著眼睛的圖片
捂嘴成功(zzy,訓(xùn)練集中包含捂嘴圖片)
說明需要一些不同姿態(tài)的訓(xùn)練集尤其是對臉部遮擋的侧蘸,因為每次訓(xùn)練的時候都會對臉部進行對其裁眯,臉以外的部分均被剔除了,在臉上做文章并進行訓(xùn)練才行讳癌,并且要加大訓(xùn)練集穿稳,實時動態(tài)的進行識別的時候準確率會比靜態(tài)識別圖片差一些。
不在一個電腦上實驗晌坤,所以貼圖有點困難逢艘。。骤菠。它改。