window+VS+OpenCV编译libfacedetection库进行人脸检测

    libfacedetection 是一个基于CNN的人脸检测的开源库。libfacedetection库是深圳大学的于仕琪老师发布的开源人脸检测库,相比于OpenCV自带的CascadeClassifier人脸检测,无论在速度上还是精度上,都有巨大的优势,是目前已知开源库中最好用的一款。CNN模型已在C源文件中转换为stastic variales。目前该项目已开放源码。源代码不依赖于任何其他库。你需要的只是一个C++编译器。您可以使用C ++编译器在Windows,Linux,ARM和任何平台下编译源代码。

代码地址:https://github.com/ShiqiYu/libfacedetection

                                                

模型文件也已在./models/ 目录中提供,使用Caffe训练得到。

源码文件也已在./src/ 目录中提供.

源码解读暂且放在一边,本文主要讲解如何在VS上编译该工程,并运行。

1、首先创建一个解决方案,win32控制台应用程序,确定,选择空项目,完成。

2、将下载的源代码放在项目目录下

上述4个文件放在项目文件下,即下图中的facedetection文件夹下

 

放好之后如下所示:

3、依次添加头文件和源文件

添加现有项,找到项目目录下的头文件,进行添加

同理源文件也一样(4个),进行添加,添加完毕如下图所示:

                                          

随后,我们创建一个main.c文件,将“libfacedetectcnn-example.cpp”内的代码复制一份,拷贝到新建的main.c文件内。

如下图:

 4、设置包含目录

进行完第三步,可能会出现错误“#include "facedetectcnn.h",显示无法打开源文件,我们右击解决方案,选择“属性”--“VC++目录”--“包含目录”,填入facedetectcnn.h头文件所在路径,即可。

5、运行

该main函数是通过argv[]传递参数,因此我们要把人脸图像传递给命令参数,

点击“调试”---“facedetection属性页”---“调试”---“命令参数”,在弹出的命令参数窗口中输入你的图像(注意如果你的图像不在项目路里,要添加路径才行,不然会读取失败),我的图像“1.jpg放在项目目录下,所以之间填写图像名即可”如下:

运行结果:

 

检测效果还是很牛逼的!!!

从图中我们发现有误检测,这里我们可以对confidence做一个简单的阈值处理,添加一行代码即可,“if(confidence>40)”,这样人脸confidence分数小于40的,就不会在图像中画出矩形框,结果如下:

搞定!

源码解读,敬请期待! 

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值