Dlib在VS2015上的编译和配置(人脸检测人脸识别比OpenCV更好用)

内容详细

一、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图片就得把整整三个文件夹的内容(包括上百个文件)添加到项目里。简直不能忍。就是下面这三个。大部分的教程都是这么说的。官网也有提到这这种方法。

dlib\external\libjpeg
dlib\external\libpng
dlib\external\zlib

不知道大家是怎么认为的,反正我觉得这样很反人类。当年我的习惯是遇到问题问度娘,然后看一些中文的解决方案。现在的习惯慢慢变成了去官网,看官方文档。今天按照官方文档重新配置了一下。感觉利索多了。而且用cmake的命令行简直比GUI爽太多了。

有兴趣的可以直接去官网看官方的教程:How to compile。我这里记录一下我自己的配置过程。大致跟官方介绍一样。

  1. 首先还是要有Cmake,而且要添加到环境变量。这一步如果没有 Camke,需要去官网下一个。最好下载安装版的而不是压缩版的,安装版的安装的时候会让你选择是否添加环境变量,选择添加。不然下载压缩版的还得自己手动添加环境变量然后重启电脑才能用。

  2. 然后在Dlib-版本号文件夹(比如Dlib-19.7)下打开命令提示符(Shift加右键),用下面的命令,相对于官方的略有改动:

    Mkdir Build
    Cd Build
    Cmake -G "Visual Studio 14 2015 Win64" ..
    Cmake --Build . --Config Release

这里有两点注意事项

(1)一定要vs 2015或者更高的版本,据说之前的版本对于C++11的支持不够好。

扫描二维码关注公众号,回复: 5545301 查看本文章

(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)打开项目属性,配置包含目录,直接上图(用的当年的老图):

image

(2)配置连接器——输入——附加依赖项:

image(3)为了打开jpg图片还要加上 DLIB_JPEG_SUPPORT,后面那个是为了加速。同样的,如果要打开png图片,还得加一个 DLIB_PNG_SUPPORT。

image上面三项配置之后就完成了,就可以自己写程序或者运行dlib自带的examples程序了。但是官方自带的程序都是命令行运行的,如果要在vs中运行需要稍作修改,把命令行参数修改为具体的文件名或者路径。试了一个人脸检测和人脸关键点检测的例子。效果还行。

猜你喜欢

转载自blog.csdn.net/cuoban/article/details/88578444