臉部偵測 use Python
Python OpenCV Tutorial
- Demo Video - Windows - 2017/4/27 update
- Demo Video - Windows
- 圖片、影片 臉部偵測
Python 3.5.2 + OpenCV 3.1.0 (建議用這個,更簡單) 請參考
Python 2.7.3 + OpenCV 2.4.12 請參考
可參考 如何在Windows安裝OpenCV Python設定
Python 3.5.2 + OpenCV 3.1.0
python face_detect_python3.py
程式執行後,會自動跳出偵測臉部的圖片
透過 camera 偵測人臉
python face_detect_camera.py
圖片會輸出到 camera 資料夾裡,會存 10 張。
Python 2.7.3 + OpenCV 2.4.12
python face_detect_python2.py test1.jpg haarcascade_frontalface_alt.xml
目錄底下會多出一張名稱為 face_detection.jpg 的圖片
更多的 haarcascade 可到 opencv 路徑裡 opencv\sources\data\haarcascades 取得,
路徑底下還有 haarcascade_eye.xml 偵測眼睛之類的,大家可以自行摸索。
最後,請注意,這是 臉部偵測 ,並不是 臉部辨識
更多的資訊可參考原作者
Run the code like this:
python face_detect.py abba.png haarcascade_frontalface_default.xml
If you want to understand how the code works, the details are here:
https://realpython.com/blog/python/face-recognition-with-python/
本篇文章所介紹的是 臉部偵測 ( Face Detection ),並不是 臉部辨識 ( Face Recognize)
如果要辦到 臉部辨識 ( Face Recognize),OpenCV 其實也可以辦到,可以透過OpenCV官網提供的演算法來完成,
OpenCV 官方有提供三種 Face Recognition 演算法,分別為
EigenFaceRecognizer、FisherFaceRecognizer、 LBPHFaceRecognizer。
最後我選擇 LBPHFaceRecognizer,為什麼不選 EigenFaceRecognizer 或 FisherFaceRecognizer 呢?
因為 LBPHFaceRecognizer 有幾個優點:
- 訓練和比對的圖片大小可以不一致。
- 比較不會受到光線以及角度的影響 ( 辨識率 )。
- 可以直接更新訓練資料庫,不用全部重新訓練。
流程大致上是 收集人臉 --> 訓練 --> 得到一個 dataSet 然後透過這個 dataSet 下去辨識。
我認為使用 OpenCV 提供的 Face Recognition 演算法效果沒有非常好,
或許可以考慮用目前最紅的深度學習 ( Deep learning ) 處理精準度的問題,
之前有稍微接觸深度學習結合人臉辨識,可以參考 face-recognition-notes
- Windows 10
- Python 3.5.2
- OpenCV 3.1.0
MIT license