dlib 01 dlib vs2015 编译 win10

01 基本环境

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

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

cd d:\git
git clone --recursive https://github.com/davisking/dlib.git
cd dlib
git tag # 查看最新tag,2017-09-09最新tag v19.6
git 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\boost
C:\Boost\lib

配置环境变量

BOOST_ROOT=C:\Boost
BOOST_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/install

Boost_INCLUDE_DIR=C:/Boost/include
Boost_PYTHON_LIBRARY_DEBUG=C:/Boost/lib/libboost_python3-vc140-mt-sgd-1_65_1.lib
Boost_PYTHON_LIBRARY_RELEASE=C:/Boost/lib/libboost_python3-vc140-mt-s-1_65_1.lib

PYTHON3=1
PYTHON_DEBUG_LIBRARY=C:/Python36/libs/python3_d.lib
PYTHON_EXECUTABLE=C:/Python36/python.exe
PYTHON_INCLUDE_DIR=C:/Python36/include
PYTHON_LIBRARY=C:/Python36/libs/python3.lib
PYTHON_LIBRARY_DEBUG=C:/Python36/libs/python3_d.lib

# 勾选 USE_SSE4_INSTRUCTIONS
USE_SSE4_INSTRUCTIONS=1

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

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

Boost_LIBRARY_DIR_DEBUG=C:/Boost/lib
Boost_LIBRARY_DIR_RELEASE=C:/Boost/lib
Boost_PYTHON3_LIBRARY_DEBUG=C:/Boost/lib/libboost_python3-vc140-mt-sgd-1_65_1.lib
Boost_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_DIR
JPEG_LIBRARY
PNG_LIBRARY_DEBUG
PNG_LIBRARY_RELEASE
PNG_PNG_INCLUDE_DIR

# 勾选USE_AVX_INSTRUCTIONS和USE_SSE2_INSTRUCTIONS
USE_AVX_INSTRUCTIONS=1
USE_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 dlib
ImportError: 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/install
DLIB_ENABLE_ASSERTS=0
DLIB_JPEG_SUPPORT=1
DLIB_PNG_SUPPORT=1
DLIB_USE_CUDA=0
OpenCV_DIR=D:\git\DeepLearning\tensorflow_package\opencv3.3.0\build
USE_AVX_INSTRUCTIONS=1
USE_SSE2_INSTRUCTIONS=1
USE_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.jpg
Number of faces detected: 1
number of parts: 68
pixel position of first part:  (166, 250)
pixel position of second part: (164, 268)
Hit enter to process the next image...

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值