Qt + Dlib + Opencv 人脸识别(一)——环境相关

Qt + Dlib + Opencv 人脸识别(一)——环境相关

前言

由于项目需求,需要在Qt环境下实现人脸识别功能。然后了解Dlib这个库提供了深度学习的接口,emmmmmm,满足了我的一定要求吧。所以就开始搞了。网上的资料大多是基于VS2015与python的,在琢磨的过程中踩了很多坑,写个博客记录一下,也可以给别人一定参考。

先来介绍下环境配置,本文中采用的库及环境如下:

  • Qt 5.7.1
  • Dlib 19.13
  • Opencv 3.1 contrib
  • Libfacedetection

目的是实现一个最简单的人脸识别系统——摄像头获得图像,从图像中获得人脸,将人脸特征与数据库内人脸比对从而实现人脸识别。


准备工作

Dlib 19.13

Dlib是一个基于C++的机器学习库。里面的功能其实还蛮强大的,不过我暂时只了解了一部分。
Dlib的库可以从官网直接下载:
http://dlib.net/
直接下载自己系统匹配的即可
在使用前还要进行CMAKE(个人认为是最简便的方法,可以生成lib文件在Qt pro中直接添加,比起VS Studio的配置来说要方便很多,也是个人偏爱Qt的原因。
具体的CMAKE步骤可以参考
https://www.cnblogs.com/hxjbc/p/6094992.html
当中要注意你生成的是realease版还是debug版,因为在最后版本选择不对会出现一点小bug。
cmake成功后就会在C盘Programme Files文件夹下面生成dlib+版本号文件夹,这就是我们需要的编译好的库文件了。

Opencv 3.1 contrib

这里也没有太大的说法,采用其他3.×版本的Opencv讲道理也不会出现什么问题吧?
由于我手边就有编译好的contrib的库,所以就拿来用了。懒得找可以直接下面链接下载
链接:https://pan.baidu.com/s/1Tfbsge4qvscljjtRES3bTg 密码:7u2l

Libfacedetection

采用于仕琪老师的facedetection的库是发现他的detection速度要比dlib的速度快很多,因为dlib中用的是神经网络模型来检测人脸。
该库可以直接在github上下载,不用编译。
https://github.com/ShiqiYu/libfacedetection


Qt中配置

Qt中配置外部库文件非常方便。

添加库
然后选择添加库,选择外部库
再把lib文件所在目录添加进去即可,这边要注意使用系统的版本,还有debug和realease的区别。

添加成功后,在pro文件中会自动生成如下代码:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../../dlib/lib/ -ldlib19.13
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../../dlib/lib/ -ldlib19.13d

INCLUDEPATH += $$PWD/../../../../../../dlib/include
DEPENDPATH += $$PWD/../../../../../../dlib/include

用相同手段,将opencv库和libfacedetection库一同配置即可。


小Tips

  1. 由于我的电脑中安装了CUDA和cudnn,所以在第一步,Cmake dlib库文件的时候,会自动把cuda相关添加进去,如果你的电脑没有装该库,就可以跳过这一步。我们需要在Qt中添加cuda的库文件,步骤与之前一致。cuda一般安装

                                 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
    
  2. 在编译过程中可能会提示缺少libpng,这是一个读取图片的库。也可以从网上下载,同样的需要Cmake编译。

猜你喜欢

转载自blog.csdn.net/tgbnm1994/article/details/80849760