視訊人臉檢測——Dlib版(六)
阿新 • • 發佈:2019-01-01
前言
Dlib的人臉識別要比OpenCV精準很多,一個是模型方面的差距,在一方面和OpenCV的定位有關係,OpenCV是一個綜合性的視覺處理庫,既然這麼精準,那就一起趕快來看吧。
視訊人臉檢測是圖片識別的高階版本,圖片檢測詳情檢視我的上一篇
除了人臉識別用的是Dlib外,還是用OpenCV讀取攝像頭和處理圖片(轉為灰色),所以給出相關的文件,方便理解。
效果預覽
技術實現
有了OpenCV的視訊人臉檢測,Dlib也大致相同除了視訊識別器模型的宣告和使用不同,具體的細節請參考,視訊人臉檢測——OpenCV版(三) 那篇已經講的很細緻了,在這就不具體敘述了。
完整的程式碼如下:
# coding=utf-8 import cv2 import dlib detector = dlib.get_frontal_face_detector() #使用預設的人類識別器模型 def discern(img): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) dets = detector(gray, 1) for face in dets: left = face.left() top = face.top() right = face.right() bottom = face.bottom() cv2.rectangle(img, (left, top), (right, bottom), (0, 255, 0), 2) cv2.imshow("image", img) cap = cv2.VideoCapture(0) while (1): ret, img = cap.read() discern(img) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
那麼,OpenCV和Dlib的視訊識別對比,有兩個地方是不同的:
1.Dlib模型識別的準確率和效果要好於OpenCV;
2.Dlib識別的效能要比OpenCV差,使用視訊測試的時候Dlib有明顯的卡頓,但是OpenCV就好很多,基本看不出來;