最近在做个项目需要用到dlib的landmark detection,在网上搜了一堆愣是没有一个成功的,最后终于在研究生学姐的指导下调通啦!
觉得这个过程实在是太痛苦,于是决定要写一篇详细一点的教程,留着备用吧,也希望能帮到其他跟我们碰到一样问题的小伙伴们~
需要用到:dlib
cmake
vs2013/2015
步骤
1.用cmake编译dlib,生成dlib.lib文件
打开cmake
点击Generate后会弹出一个框框
注意:这里一定要选择自己电脑对应的VS版本,我的是14 2015 64位就选了当前这个。
Generate完了之后 dlibBuilding目录长这样
用VS打开ALL_BUILD
把本地windows调试器调成debug x64模式
之后右击dlib->重新生成
重新生成完后 回到dlibBuilding目录下,就会看到多了一个Debug目录,里边有我们之后需要用到的dlib.lib文件。
2.用cmake编译dlib中的example—-face_landmark_detection
一样,先打开cmake
输入源目录,目标目录(还是新建了一个空文件夹),点击Generate
再次跳出这个框框也一定要选自己电脑版本的VS,这次应该是默认的不用更改,点击finish
Generate完了之后还是回到目标目录里检查一下,用VS打开ALL_BUILD
在解决方案资源管理器中找到face_landmark_detection,右击->设为启动项目
3.在VS下配置dlib
在解决方案资源管理器中找到face_landmark_detection,右击->属性
注意:这里一定要调成和本地windows调试器一致的模式,即如图
具体配置内容如图:
输入内容:
DLIB_JPEG_SUPPORT
DLIB_PNG_SUPPORT
输入内容:dlib.lib
配置完成后右击face_landmark_detection->重新生成
生成完后 回到刚刚cmake指定的目标目录,会发现多了个文件夹Debug,文件夹中内容如下
这时候你需要下载一个人脸模型,下载地址为http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
下载之后放到刚刚的Debug目录下,还要添加一张图片作为测试。我这里添加的是一张有人脸的1.jpg(按照刚刚的配置其实还可以添加.png格式的文件,官网上说也是可以测试.gif的文件的)
弄完之后Debug目录长这样
之后打开cmd,进入到Debug目录下
输入命令face_landmark_detection_ex shape_predictor_68_face_landmarks.dat回车
再输入命令face_landmark_detection_ex shape_predictor_68_face_landmarks.dat 1.jpg回车
得出结果
ps:debug模式下得出结果的时间非常长,如果不愿意等的话推荐大家使用release模式