摘要:行代碼的人臉識別看了行的人臉識別一文后,簡單嘗試了一下,發現識別準確度不夠。膜拜完大神,直接開干首先,安裝以及相關依賴工具代碼略作改動執行之后效果是這樣的完美識別結論如果要做人臉識別的話,建議選擇,而不要選擇。
7行代碼(OpenCV)的人臉識別
看了《7行Python的人臉識別》一文后,簡單嘗試了一下,發現識別準確度不夠。原始圖像如下:
識別后的結果:
把酒杯識別成了人臉,而該是人臉的又沒有識別出來,還多余識別了一條褲子。
檢查代碼,最關鍵是第2條語句:
face_patterns = cv2.CascadeClassifier("/usr/local/opt/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml")
我們檢查/usr/local/opt/opencv/share/OpenCV這個目錄,發現它下面的內容是這樣的:
下面有2個子目錄,分別是haarcascades和lbpcascades,這里面還包括了眼睛識別,鼻子識別,嘴巴識別等等,甚至還有貓臉識別,此外,光人臉識別就有好幾種:frontalface_default, frontalface_alt, frontalface_alt2, frontalface_alt_tree等等,你可以挨個試一下(我試的結果是哪個也不準確)。實際上就是OpenCV通過Haar特征和LBP特征預置了一些事先做好的結果以方便用戶調用。關于這些特征是如何提取的,可以參見《圖像特征提取三大法寶:HOG特征,LBP特征,Haar特征》。
那我們把第2條語句換成LBP試一下呢?
face_patterns = cv2.CascadeClassifier("/usr/local/opt/opencv/share/OpenCV/lbpcascades/lbpcascade_frontalface.xml")
結果也并不理想,不是沒有把人臉識別出來,就是把杯子識別成了人臉,不是多了就是少了,總是不能正確識別所有人臉。
10行代碼(dlib)的人臉識別那么有沒有辦法提高人臉識別的準確度呢?無意中發現了dlib這個神器,它實現了一篇大牛論文《One Millisecond Face Alignment with an Ensemble of Regression Trees》里的算法,論文標題就叫《用集成回歸樹實現一毫秒的人臉識別》,可見作者的自信。
膜拜完大神,直接開干!首先,安裝dlib以及相關依賴工具:
brew install boost brew install boost-python pip install dlib pip install scikit-image
代碼略作改動:
import dlib from skimage import io from skimage.draw import polygon_perimeter detector = dlib.get_frontal_face_detector() sample_image = io.imread("/Users/zhangjing/Desktop/IMG_5528.jpg") faces = detector(sample_image, 1) for d in faces: rr, cc = polygon_perimeter([d.top(), d.top(), d.bottom(), d.bottom()], [d.right(), d.left(), d.left(), d.right()]) sample_image[rr, cc] = (0, 255, 0) io.imsave("/Users/zhangjing/Desktop/IMG_5528_detected_dlib.jpg", sample_image)
執行之后效果是這樣的:
完美識別!
結論:如果要做人臉識別的話,建議選擇dlib,而不要選擇OpenCV。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40691.html
摘要:看了行實現更快更準的人臉識別后,發現太短小精悍了,所以打算不用來實現人臉的的特征點 看了 10行Python實現更快更準的人臉識別后,發現dlib太短小精悍了,所以打算不用opencv來實現人臉的68的特征點 # -*- coding: UTF-8 -*- import dlib from skimage import io import matplotlib.pyplot as pl...
摘要:可預見的未來激情賽事已經過半,阿里云視頻技術在本次世界杯中也成功落地,而這并不是結局,這是將視頻應用于體育行業以及更多其他行業的開端。 本屆世界杯互聯網直播的順利進行,離不開各大云計算廠商的支持。在這其中,阿里云是當之無愧的C位,除了優酷外,阿里云還支撐了CNTV、CCTV5客戶端,為全網70%的世界杯直播流量保駕護航。 對于世界杯這種超大觀看量級、超強影響力的重要體育賽事,阿里云一直...
摘要:上一個筆記主要是講了的原理,并給出了二維圖像降一維的示例代碼。當我使用這種方法實現時,程序運行出現錯誤,發現是對負數開平方根產生了錯誤,也就是說對協方差矩陣求得的特征值中包含了負數。而能夠用于任意乘矩陣的分解,故適用范圍更廣。 上一個筆記主要是講了PCA的原理,并給出了二維圖像降一維的示例代碼。但還遺留了以下幾個問題: 在計算協方差和特征向量的方法上,書上使用的是一種被作者稱為com...
摘要:上一篇文章的地址利用進行識別相似圖片一安裝官網在進行下一步操作時,我們需要安裝,本來安裝的步驟跟平常安裝其他模塊一樣,而然由于的歷史原因用過都懂,弄得一點都不友好。 前言 和網上各種首先你要有一個女朋友的系列一樣,想進行人臉判斷,首先要有臉,只要能靠確定人臉的位置,那么進行兩張人臉是否相似的操作便迎刃而解了。 所以本篇文章著重講述如何利用openCV定位人臉。 上一篇文章的地址: 利用...
閱讀 3554·2021-11-08 13:15
閱讀 2112·2019-08-30 14:20
閱讀 1394·2019-08-28 18:08
閱讀 985·2019-08-28 17:51
閱讀 1490·2019-08-26 18:26
閱讀 2994·2019-08-26 13:56
閱讀 1492·2019-08-26 11:46
閱讀 2592·2019-08-23 14:22