實際上face_recognition這個項目尤其是dlib更適用于Linux系統(tǒng)。經(jīng)過我的測試,在性能方面,編譯同樣規(guī)格的項目,這個工具在Windows 10 上大約是Ubuntu上的四分之一。但是在這兩者之間我沒有看到在其他方面有什么差別。
我使用本教程將這些工具安裝到Windows10上,更近的版本也可能正常運行。
- 安裝了C/C++ 編譯器的Microsoft Visual Studio 2015
- Boost 庫,V1.63或者更近的版本
- Python3
-
CMake,Windows安裝時要將其路徑加入環(huán)境變量
下載和安裝 Scipy 和 numpy+mkl (必須是 mkl 版本),下載鏈接,注意要基于你的Python版本選擇合適的版本下載。
根據(jù)你當前的MSVC版本下載對應的 Boost 庫(庫的源代碼或者是二進制release版本),下載鏈接。
如果下載的是二進制版本則調到第4步,否則按照如下的過程編譯 Boost 庫:
進入C:\local\boost_1_XX_X(X 代表你當前的Boost版本)提取 Boost 源文件
根據(jù)以下格式新建系統(tǒng)變量:
Name: VS140COMNTOOLS
Value: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\ (此處為任何你安裝MSVC的路徑)
打開Visual Studio 2015自帶的開發(fā)人員工具類似于“VS2015 開發(fā)人員命令提示”,進入 Boost 目錄編譯 Boost 庫:
C:\boost_1_XX_X>bootstrap 這一步執(zhí)行完之后會自動生成b2.exe文件
C:\boost_1_XX_X>b2 -a ?Cwith-python address-model=64 toolset=msvc runtime-link=static 這一步編譯需要較長的時間,請耐心等待
4.Boost 庫成功編譯后,編譯生成的文件位于 stage 這個文件夾中。
如果你已經(jīng)編譯了 Boost 請?zhí)^這一步。如果你已經(jīng)下載了二進制的release版本,則進入Boost目錄 C:\local\boost_1_XX_X
獲取最新版本的 dlib 包,下載鏈接
進入 dlib 的目錄,打開 cmd ,運行如下的命令編譯 dlib
將以下兩個參數(shù)加入環(huán)境變量
BOOST_ROOT=C:\local\boost_X_XX_X
BOOST_LIBRARYDIR=C:\local\boost_X_XX_X\stage\lib
然后再運行如下代碼:
python setup.py install ?Cyes USE_AVX_INSTRUCTIONS or python setup.py install ?Cyes
USE_AVX_INSTRUCTIONS ?Cyes DLIB_USE_CUDA
現(xiàn)在你可以使用 import dlib進入Python腳本
你可以使用 pip show dlib查看當前 dlib 的版本
現(xiàn)在你可以使用 pip install face_recognition安裝face_recognition
Enjoy!
dlib安裝也可以使用:
conda install -c menpo dlib=18.18
其中18.18為dlib的版本號
如果安裝成功,運行以下代碼就可以正常運行了。
# -*- coding: utf-8 -*- """ Created on Sat Sep 23 21:15:42 2017 @author: Romji """ import face_recognition import cv2 import sys def face_reg(file): # 讀取圖片并識別人臉 img = face_recognition.load_image_file(file) face_locations = face_recognition.face_locations(img) print(face_locations) # 調用opencv函數(shù)顯示圖片 img = cv2.imread(file) cv2.imshow("原圖", img) # 遍歷每個人臉,并標注 faceNum = len(face_locations) for i in range(0, faceNum): top = face_locations[i][0] right = face_locations[i][1] bottom = face_locations[i][2] left = face_locations[i][3] start = (left, top) end = (right, bottom) color = (55,255,155) thickness = 3 cv2.rectangle(img, start, end, color, thickness) # 顯示識別結果 cv2.imshow("識別", img) cv2.waitKey(0) cv2.destroyAllWindows() if __name__ == '__main__': filename = sys.argv[1] face_reg(filename)
將程序保存為test.py,在程序根目錄下保存一張圖片進行測試(假設保存的為1.jpg)
進入目錄輸入python test.py 1.jpg,即可看到效果。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
