1. 程式人生 > >Qt Dlib配置實現人臉檢測

Qt Dlib配置實現人臉檢測

最近在用Dlib庫做人臉檢測,在vs2010上實踐成功後,想把他移植到Qt上,畢竟用Qt做介面更漂亮。

關於windows7+vs2010+dlib-18.17的配置方法,有很多的參考資料,可以不再多說,參考:http://blog.csdn.net/taily_duan/article/details/53898214

使用最新的dlib需要使用更高版本的vs,為了能在vs2010下使用,我選擇了dlib-18.17,經過測試,程式完全沒有問題。

1.   Qt安裝

2.  Qt配置OpenCV2.4.9

3.  CMake編譯Dlib-18.17

CMake版本:CMake 3.5.2

3.1  首先開啟CMake3.5.2 GUI,編譯器選擇MinGW

提示Configuring done和Generating done之後,表示成功獲得Makefile檔案,接著就可以匯出庫了。

3.2  開啟cmd命令,進入到剛才匯出的目錄,然後執行make命令,前提:確保你的電腦上由ming32-make編譯器(通常Qt安裝成功後就會有這個,否則CMake也不成功)。

命令如圖:


3.3   獲得libdlib.a

等待一會之後,在qt_build_dlib目錄下將生成libdlib.a庫。


4.配置Qt

開啟Qt新建一個控制檯應用程式,開啟.pro,配置如下即可。

INCLUDEPATH+=C:\OpenCV\OpenCV249\opencv\qt_opencv\include
INCLUDEPATH+=E:\face_recognition\dlib-18.17\dlib-18.17
LIBS+=C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_imgproc249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_calib3d249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_contrib249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_core249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_features2d249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_flann249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_gpu249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_highgui249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_legacy249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_ml249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_nonfree249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_objdetect249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_ocl249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_photo249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_stitching249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_superres249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_video249.dll.a\
C:\OpenCV\OpenCV249\opencv\qt_opencv\lib\libopencv_videostab249.dll.a\
C:\OpenCV\libdlib.a


5.  測試程式效果


6.  結論

檢測的結果比opencv自帶的檢測器準確多了,但是實時性卻不太高,這裡有待進一步的改進。