python人臉識別庫Face_Recognition-實操篇html
@WP20190307python
================================目 錄=================================linux
1、編譯dlib庫 c++
2、編譯face_recognition環境git
3、使用opencv遇到的問題github
================================正 文=================================算法
基礎認識:網絡
(1)Dlib是一個使用現代C++技術編寫的跨平臺的通用庫,是一個包含機器學習算法的C++開源工具包,有c++、Python的接口。使用dlib能夠大大簡化開發,好比人臉識別,特徵點檢測之類的工做均可以很輕鬆實現,也能夠幫助用戶建立不少複雜的機器學習方面的軟件來幫助解決實際問題。目前Dlib已經被普遍的用在行業和學術領域,包括機器人,嵌入式設備,移動電話和大型高性能計算環境。python2.7
(2)Face_recogintion是python的開源人臉識別庫,是基於dlib開發的應用和開源庫,而dlib依賴Boost和cmake。引用「Face_recogintion項目的人臉識別模型是基於成年人的,在孩子身上效果可能通常。若是圖片中有孩子的話,建議把臨界值設爲0.6.」機器學習
(3)本文環境:Ubuntu18.04+Dlib19.16.99+Python3.6.4+faceRecognition1.2.3,其中Dlib19.16.99+Python3.6.4+faceRecognition1.2.3版本是編譯後,查看版本顯示的。
經驗總結:
安裝face_recognition最簡單的命令,使用pip安裝face_recognition。
$ pip install face_recognition
注意,Ubuntu下使用的是python2.7就使用pip2,使用python3則使用pip3。
但因爲face recognition基於dlib庫,因此在使用「pip install face_recognition 」安裝的過程當中會卡在「編譯dlib」這一步上,很長時間都不會有什麼反應,因此先編譯dlib庫。若是編譯dlib完後直接再使用「pip install face_recognition 」安裝依然會卡在dlib那裏不動,因此換一種方式安裝face recognition。
1、編譯dlib庫
網絡博客推薦的方法,有:
T1方法:pip install dlib
此方法是須要在你安裝cmake、Boost環境的計算機使用。
T2方法:conda install -c menpo dlib==19.8.1
此方法適合那些已經安裝好conda庫的環境的計算機使用。
T3方法:pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl
這裏主要參考http://www.cnblogs.com/whenyd/p/7721989.html《Ubuntu下dlib庫編譯安裝》:
(1.0)前提須要boost和cmake環境,若是有配置過caffe就不用重複了。
boost環境, $ sudo apt-get install libboost-all-dev
cmake環境, $ sudo apt-get install -y cmake,也可參考其餘解決。
********http://www.cnblogs.com/whenyd/p/7721989.html
********https://www.cnblogs.com/spyplus/p/7829772.html
(1.1)下載Dlib庫到本地。
$ git clone https://github.com/davisking/dlib.git
(1.2)編譯Dlib。
$ cd dlib
$ mkdir build; cd build; cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1; cmake --build .(注意中間有個空格)
說明: -DDLIB_USE_CUDA=0不使用cuda,-DUSE_AVX_INSTRUCTIONS=1使用cpu的AVX加速
$ cd ..
$ python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA
說明:這裏能夠指定python2或python3,也能夠在虛擬環境中安裝,--no DLIB_USE_CUDA選項不使用cuda,使用cuda能夠不指定該選項或DLIB_USE_CUDA。
開始漫長的等待過程。。。。。。。莫着急。。。。。。
(1.3)查看Dlib是否安裝成功。
$ python
$ import dlib
確認Dlib是否安裝成功,這一步卡主了,重複安裝了七八遍,在本地、在虛擬機下、換不一樣的python版本,都是前面步驟均無報錯,也提示Dlib成功安裝了。最後就是 輸入import dlib一直報錯,顯示「非法指令(核心已轉存)」跳出程序。折騰一天,次日發現Dlib自動安裝的路徑沒注意,Dlib安裝的版本制定了須要的python版。
這裏是Dlib19.16.99+Python3.6.4,我的一直沒有注意,一直在python2.7和python3.5下面使用,天然就一直報錯啦。之後,安裝漫長的過程,也要稍微留意一下安裝細節。
2、編譯face_recognition環境
因嘗試使用「pip install face_recognition 」安裝屢次卡住,故這裏換用下面的方法。
(2.1)下載face_recognition到本地。
$ git clone https://github.com/ageitgey/face_recognition
(2.2)編譯安裝face_recognition。
$ cd ~/face_recognition
$ python3 setup.py build
$ python3 setup.py install
(2.3)查看face_recognition是否安裝成功。
$ python
$ import face_recognition
$ import dlib
(2.4)測試一張圖片。
wp@wp-MS-7519:~/FaceRecognitionPy3.6.4/examples$
python find_faces_in_picture.py
(2.5)Face Recognition 人臉識別。
各類案例識別,詳細參考:https://github.com/ageitgey/face_recognition/blob/master/README_Simplified_Chinese.md。實操起來,還挺有意思的哦~~
3、使用opencv遇到的問題
執行命令,$ python, $ import cv2, 報錯。細看(1)$ python2, $ import cv2,(2)$ python3, $ import cv2,發現Python2能使用opencv,然而python3卻不能使用opencv。分析緣由,以前完整的裝過opencv3.4.2,python2能使用,python3卻不能用,說明是哪裏配置的問題。分析dlib配置/home/wp/anaconda2/lib/python3.6在路徑下,並且python要調用opencv,查找解決問題的辦法最後經過進入Anaconda終端:pip3 install opencv_python解決問題。
wp@wp-MS-7519:~/anaconda2$
$ sudo pip3 install opencv-python
$ sudo pip3 install numpy Matplotlib
$ sudo pip3 install --upgrade setuptools
而後,成功解決問題:
wp@wp-MS-7519:~/anaconda2$ python3
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv.__version__