这是一篇以前的博客,但是没有发在新的平台上,有些人可能没看到,所以重新整理下。看过的就可以跳过了。
一、Dlib简介
Dlib是基于现代C++的一个跨平台通用的框架,作者非常厉害而且非常勤奋,一直在保持更新。最近作者忙于更新dnn方面的内容,虽然我觉得dnn的接口非常不友好。Dlib内容非常丰富,包括但不仅限于机器学习、图像处理、数值算法、数据压缩等等,更重要的是,Dlib的文档非常完善,例子非常丰富。
Dlib提供的人脸检测比OpenCV的人脸检测模型更好用。而且Dlib提供了OpenCV没有的人脸关键点检测方法(现在有了,刚出现在contrib模块里)和基于深度学习的人脸识别工具。而且提供了比OpenCV更加完善的机器学习和深度学习的模块。而且可以和OpenCV结合使用,二者的图像可以方便地转换。我曾基于dlib尝试过很多关于人脸的程序:人脸检测、人脸关键点提取、颜值预测、换脸算法和人脸识别。
二、编译Dlib
之前也曾介绍过Python下dlib的编译安装方法,但是用Python调用dlib需要先编译boost。非常麻烦,还是用C++更简单一些。但是虽说简单,如果没有找对教程的话,也许会更加麻烦。我当初找到的dlib的配置方法,Visual studio配置dlib太复杂了。打开个JPG或者PNG图片就得把整整三个文件夹的内容(包括上百个文件)添加到项目里。简直不能忍。就是下面这三个。大部分的教程都是这么说的。官网也有提到这这种方法。
不知道大家是怎么认为的,反正我觉得这样很反人类。当年我的习惯是遇到问题问度娘,然后看一些中文的解决方案。现在的习惯慢慢变成了去官网,看官方文档。今天按照官方文档重新配置了一下。感觉利索多了。而且用cmake的命令行简直比GUI爽太多了。
有兴趣的可以直接去官网看官方的教程:How to compile。我这里记录一下我自己的配置过程。大致跟官方介绍一样。
首先还是要有cmake,而且要添加到环境变量。这一步如果没有 ,需要去官网下一个。最好下载安装版的而不是压缩版的,安装版的安装的时候会让你选择是否添加环境变量,选择添加。不然下载压缩版的还得自己手动添加环境变量然后重启电脑才能用。
然后在dlib-版本号文件夹(比如dlib-19.7)下打开命令提示符(shift加右键),用下面的命令,相对于官方的略有改动:
这里有两点注意事项
(1)一定要vs 2015或者更高的版本,据说之前的版本对于C++11的支持不够好。
(2)build的时候一定要是Release模式。因为Debug模式超级!超级!慢!亲测。参考:Why is dlib slow?
build完成之后会在\dlib-19.7\build\dlib\Release文件夹下生成dlib.lib。至此编译完成。比用cmake-gui简单多了!
三、Visual Studio配置Dlib
配置visual studio 2015,新建一个项目,我这里命名为dlib_01。
(1)打开项目属性,配置包含目录,直接上图(用的当年的老图):
(2)配置连接器——输入——附加依赖项:
(3)为了打开jpg图片还要加上,后面那个是为了加速。同样的,如果要打开png图片,还得加一个。
上面三项配置之后就完成了,就可以自己写程序或者运行dlib自带的examples程序了。但是官方自带的程序都是命令行运行的,如果要在vs中运行需要稍作修改,把命令行参数修改为具体的文件名或者路径。试了一个人脸检测和人脸关键点检测的例子。效果还行。
之前的关于dlib的文章
欢迎关注公众号和知识星球
知识星球发一些我自己平时遇到不足以成文的小问题解答和我平时学习的时候遇到的好的资料。
领取专属 10元无门槛券
私享最新 技术干货