人脸检测方案总结——百度AI、OpenCV与MTCNN

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/li_wen01/article/details/84496479

    工作需要,分别接触过百度AI,OpenCV,MTCNN的人脸检测人脸识别的接口,虽然没有非常深入的了解它们内部的各种算法,只是简单的应用,但还是想就这三种方案做一个简单的总结介绍,以供没使用过的人做个参考,也给自己留做一个日志,以便日后查询。下面三篇博客记录的是我对百度AI,OpenCV和MTCNN使用的实际情况。

    百度AI——人脸识别的简单应用

   OpenCV实践——人脸检测与人脸图像提取

   MTCNN实践——人脸检测功能应用

百度AI:

    百度AI的接口,总体来说识别率还是比较高的,但是他是收费的,他的方式是你上传一张图片到他的云服务器,然后它将结果返回给你,告诉你人脸在图片的什么位置有几个人脸等信息,这就限制了使用的设备必须是需要能连接到互联网,并且他比较的费流量,同时在网路比较不好的时候,图片上传比较耗时间,所以单次完成检测的时间比较久。这样一来它是比较不适合嵌入式设备的,它比较适合联网方便不在意流量的设备,因为收费,如果频繁使用费用也比较的高。

OpenCV库:

    OpenCV有提供开源的库用来检测人脸人眼睛等等人体器官的接口,如果直接使用OpenCV提供的训练文件不加以改进,OpenCV的识别率是不高的,它经常会误判。使用OpenCV做人脸识别检测的一个好处就是可以直接调用OpenCV的其他一些接口做图像的一些处理。缺点就是它的库和它的训练文件比较大,在嵌入式设备中它需要更多的存储空间,对于资源紧缺的设备或是对识别要求比较高的设备来说,它并不适合。

OpenCV对背景比较干净的图片识别率比较高,但是在比较复杂的环境下识别效果就不理想了。 

MTCNN:

    MTCNN 是用C和C++编写的一套开源的库,有人对它进行过裁剪,使它整体编译出来非常的小,又因为是C和C++编写的,所以它是比较适合移植到不同平台的。包含训练文件和编译出来的库文件,大概在2M左右。最重要的一点就是它的识别率是目前我使用到的开源的算法中最高的。对于嵌入式设备,如果只是用来做人脸的检测,MTCNN是目前我认为最合适的。

下面是我使用裁剪过的MTCNN测试的结果

官方给出的一个未裁剪过版本检测效果如下:

从上面看,MTCNN的检测效果还是非常好的。 

                                                                                                                                                               阿标

                                                                                                                                                          2018.11.25

猜你喜欢

转载自blog.csdn.net/li_wen01/article/details/84496479