因为要研究三维人脸识别,但是导师不管,也没有师兄师姐带,就是单枪匹马,自己瞎搞,还没有途径,等死中。。。。。。刷网页的时候偶然知道了Dlib库包含68点人脸识别算法,所以就想试试,到底是神马样的,好奇呀,感觉比较神奇啊,用了一上午逛csdn,也是见识到了好多配置方法,总的来说呢,Dlib库可以配置在python环境,也可以配置在vs环境,可以选择cmake编译,也可以选择dlib源码编译,我比较懒,图省事,配置环境如下:
- 电脑环境:windows 10
- 编译环境:vs2013
- Dlib18.16源码
刚亲测完,就立马跑来记录了,以防忘记 ~~~
1.准备工作
我的vs已经配置过opencv了,在上一篇blog中刚记录完,所以关于事先是否配置opencv这个问题我就忽略啦~
Dlib18.16下载:去官网呀。或者戳这里:https://github.com/davisking/dlib/releases?after=v18.17
我把解压后的文件夹扔进了vs安装文件中,放在那里应该看你心情,毕竟看大家的操作放哪里都是可以哒。
2.在vs中用Dlib源码直接生成dlib.lib(我的因为命名是dlibTest.lib)文件
2.1 配置项目平台
老套路又来了,打开vs,新建一个win32控制台应用程序,我给它起了个麻烦的名字dlibTest,这个名字很重要欸,搞得我运行出错,思索再三,想到了是它的问题,建议直接命名dlib,减少不必要的麻烦。
新建的项目如下,首先设置它的平台,右键【dlibTest】——【属性】——【配置管理器】,我选择了debugx64,你也可以选择release,全程保持一致就好啦:
2.2 配置项目属性和目录
1.【配置属性】——【常规】,修改以下两项:
注意:目标文件名按你自己的来啊
2.【c/c++】——【常规】——【附加包含项】,找到dlib文件夹中的libjpeg,libpng和zlib ,比如说我的路径为D:\vs2013\dlib\dlib-18.16\dlib\external\zlib,进行添加:
3. 【c/c++】——【预处理器】——【预处理器定义】,添加DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT预处理定义:
4.将项目置为【解决方案资源管理器】模式,在源文件中添加:source.cpp
在资源文件中添加: libjpeg,libpng和zlib三个文件夹中的文件
5. 生成解决方案,生成lib文件,比如我的是dlibTest.lib,生成位置如下:
至此,使用dlib源码生成.lib文件完成。
3.配置dlibTest.lib
1.依然是新建一个新的win32控制台应用程序,在Debugx64文件夹下添加新项目属性表,名字自己定义:
2 .右键【属性表】——【属性】,添加dlib-18.16的路径到【vc++目录】的如下目录:
3. 将dlibTest.lib的路径添加到【链接器】——【常规】——【附加库目录】
4.将生成的 dlibTest.lib添加到【链接器】——【输入】——【附加依赖项】
5.将DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT添加到【c/c++】——【预处理器】——【预处理器定义】:
单击【应用】——【确定】,完成配置。
4. 测试
#include<dlib\image_processing\frontal_face_detector.h> #include<dlib\gui_widgets.h> #include<dlib\image_io.h> using namespace dlib; void TestFaceDetect(const char *filename) { frontal_face_detector detector = get_frontal_face_detector(); array2d<unsigned char> img; load_image(img, filename); std::vector<rectangle> dets = detector(img); printf("Numbere of face detected:%d\n", dets.size()); } int main() { const char *filename = "23.jpg"; TestFaceDetect(filename); system("pause"); return 0; }
测试结果:
完美收官~~~给自己撒花花
参考博客:https://blog.csdn.net/what_lei/article/details/78289906