dlib 01 dlib vs2015 编译 win10

来源:互联网 发布:蓝雨伞之恋 知乎 编辑:程序博客网 时间:2024/06/11 22:27

01 基本环境

win10 git cmake boost-1_65_1 python3.6.1
编译dlib库,dlib_samples,dlib_python接口(dlib.pyd)。

02 获取代码,切换到最新稳定版本

cd d:\gitgit clone --recursive https://github.com/davisking/dlib.gitcd dlibgit tag # 查看最新tag,2017-09-09最新tag v19.6git checkout -b b19.6 v19.6

03 编译dlib库

03.01 配置cmake-gui

源码路径:d:/git/dlib
编译路径:d:/git/dlib/build/x64_19.6_C_Only
这里写图片描述

注意:如果系统已经配置了CUDA环境,cmake-gui会自动选中,这里不编译对cuda的支持,所以如果默认选中,需要取消勾选。(DLIB_USE_CUDA=0)
这里写图片描述

配置CMAKE_INSTALL_PREFIX=d:/git/dlib/build/x64_19.6_C_Only/install
这里写图片描述

03.02 编译、安装

用vs2015打开`D:\git\dlib\build\x64_19.6_C_Only\Project.sln
编译ALL_BUILD项目后,再单独生产INSTALL项目。即完整生产dlib库。
这里写图片描述

04 编译dlib python接口(dlib.pyd)

04.01 配置boost

编译vs2015 boost支持库,目前最新版本boost是boost_1_65_1。

# 参考b2 install --toolset=msvc-14.0 --build-type=complete address-model=64 --stagedir="D:\git\boost\bin\boost_1_65_1\msvc14"  --build-dir="D:\git\boost\tmp\boost_1_61_1\msvc14" threading=multi

最后把编译好的内容配置到c:\boost

C:\Boost\include\boostC:\Boost\lib

配置环境变量

BOOST_ROOT=C:\BoostBOOST_LIBRARYDIR=C:\Boost\lib

这里写图片描述

04.02 安装配置python3.6.1

主要注意需要安装对Debug的支持

04.03 配置cmake-gui

源码路径:d:/git/dlib/tools/python
编译路径:d:/git/dlib/build/x64_19.6_python
这里写图片描述

点击[Configure],出现如下效果。
这里写图片描述

勾选PYTHON3选项(PYTHON3默认未勾选)。
勾选Advanced 选项,设置Python3项和boost库项后,点击[Configure]。

# 设置安装路径CMAKE_INSTALL_PREFIX=D:/git/dlib/build/x64_19.6_python/installBoost_INCLUDE_DIR=C:/Boost/includeBoost_PYTHON_LIBRARY_DEBUG=C:/Boost/lib/libboost_python3-vc140-mt-sgd-1_65_1.libBoost_PYTHON_LIBRARY_RELEASE=C:/Boost/lib/libboost_python3-vc140-mt-s-1_65_1.libPYTHON3=1PYTHON_DEBUG_LIBRARY=C:/Python36/libs/python3_d.libPYTHON_EXECUTABLE=C:/Python36/python.exePYTHON_INCLUDE_DIR=C:/Python36/includePYTHON_LIBRARY=C:/Python36/libs/python3.libPYTHON_LIBRARY_DEBUG=C:/Python36/libs/python3_d.lib# 勾选 USE_SSE4_INSTRUCTIONSUSE_SSE4_INSTRUCTIONS=1

这里写图片描述
这里写图片描述

点击[Configure]按钮后,CMake会多出来一些选项,重新设置多出的部分选项

Boost_LIBRARY_DIR_DEBUG=C:/Boost/libBoost_LIBRARY_DIR_RELEASE=C:/Boost/libBoost_PYTHON3_LIBRARY_DEBUG=C:/Boost/lib/libboost_python3-vc140-mt-sgd-1_65_1.libBoost_PYTHON3_LIBRARY_RELEASE=C:/Boost/lib/libboost_python3-vc140-mt-s-1_65_1.lib# 不勾选DLIB_ENABLE_ASSERTS,默认DLIB_ENABLE_ASSERTS=0# 勾选DLIB_JPEG_SUPPORT,默认DLIB_JPEG_SUPPORT=1# 勾选DLIB_PNG_SUPPORT,默认DLIB_PNG_SUPPORT=1# 系统有CUDA环境,被自动识别,DLIB_USE_CUDA默认被勾选。改为不勾选DLIB_USE_CUDA=0# 清空一下5项内容JPEG_INCLUDE_DIRJPEG_LIBRARYPNG_LIBRARY_DEBUGPNG_LIBRARY_RELEASEPNG_PNG_INCLUDE_DIR# 勾选USE_AVX_INSTRUCTIONS和USE_SSE2_INSTRUCTIONSUSE_AVX_INSTRUCTIONS=1USE_SSE2_INSTRUCTIONS=1

设置以上内容后,点击[Configure]、[Generate]。
这里写图片描述

04.04 编译dlib.pyd

用vs2015打开D:\git\dlib\build\x64_19.6_python\Project.sln编译。

编译,出现如下错误:LINK : fatal error LNK1104: 无法打开文件“python36.lib”
这里写图片描述

修改dlib_项目的配置属性。添加python36的libs目录。

dlib_DebugRelease的配置属性中添加C:/Python36/libs;配置属性==>链接器==>常规==>附加目录==>添加C:/Python36/libs;

这里写图片描述

再次编译ALL_BUILD,成功。然后,生成INSTALL项目。会把dlib.pyd拷贝到dlib\python_examples\dlib.pyd
这里写图片描述

Debug版本的dlib.pyd在import dlib时,会出现如下错误:

    import dlibImportError: DLL load failed: 找不到指定的程序。

编译Release版本,并且INSTALL。
这里写图片描述

04.05 测试Release版本dlib.pyd

dlib的python用例程序在dlib\python_examples。安装Release版本dlib.pyd后。用PyCharm打开D:\git\dlib\python_examples\max_cost_assignment.py运行。效果如下。
这里写图片描述

05 编译dlib samples

05.01 配置opencv

dlib用例需要opencv的支持。opencv3.3.0实现了对dnn的支持,这里使用3.3.0版本opencv。下载地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.0/opencv-3.3.0-vc14.exe/download。
自解压到:D:\git\DeepLearning\tensorflow_package\opencv3.3.0

05.02 配置cmake-gui

注意:尽量直接采用D:/git/dlib/examples的CMakeLists.txt。不要采用04中的方式。

源码位置:D:/git/dlib/examples
编译位置:D:/git/dlib/build/x64_19.6_examples
这里写图片描述

CMAKE_INSTALL_PREFIX=D:/git/dlib/build/x64_19.6_examples/installDLIB_ENABLE_ASSERTS=0DLIB_JPEG_SUPPORT=1DLIB_PNG_SUPPORT=1DLIB_USE_CUDA=0OpenCV_DIR=D:\git\DeepLearning\tensorflow_package\opencv3.3.0\buildUSE_AVX_INSTRUCTIONS=1USE_SSE2_INSTRUCTIONS=1USE_SSE4_INSTRUCTIONS=1

这里写图片描述

05.03 编译dlib samples

用vs2015打开D:\git\dlib\build\x64_19.6_examples\examples.sln编译,成功。
这里写图片描述

05.04 测试

官网例子:http://dlib.net/face_landmark_detection_ex.cpp.html。
下载http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2,并解压到Debug的输出目录((OutDir))lena.jpgDebug( (OutDir))。lena.jpg

vs2015 设置face_landmark_detection_ex为启动项。配置face_landmark_detection_ex项目属性:

配置属性==>调试==>工作目录==>$(OutDir)配置属性==>调试==>命令参数==>shape_predictor_68_face_landmarks.dat lena.jpg

这里写图片描述

运行效果:

processing image lena.jpgNumber of faces detected: 1number of parts: 68pixel position of first part:  (166, 250)pixel position of second part: (164, 268)Hit enter to process the next image...

这里写图片描述

原创粉丝点击