10行Python代码实现人脸定位

10行python机器学习全卷机网,实现100+张人脸同时定位!

  • A+
所属分类:未分类

今天介绍一个快速定位人脸的深度学习算法MTCNN,全称是:Multi-task Cascaded Convolutional Networks多任务级联卷机网。这个快速定位的深度学习有3个很好的作用。

1.可以构建除人脸外其他快速定位的应用。

2.可以在定位人脸后,提高后面对人脸识别的速度。

3.分步骤级联算法,可以尝试提高每层算法的优化,给出一个优化算法的可行方案。

本案就是利用MTCNN构建3个卷积网逐层处理,最终确定人脸个数,人脸的具体位置和五官位置!

10行python机器学习全卷机网,实现100+张人脸同时定位!

上图简析了程序的3个步骤。
      stage1: 在构建图像金字塔的基础上,通过全卷机网检测人脸个数和大致区域,同时利用boundingbox regression (边框回归)和 NMS(非极大值抑制(Non-Maximum Suppression)来进行修正。(注意:这里的全卷积网络与R-CNN里面带反卷积的网络是不一样的,这里只是指只有卷积层,可以接受任意尺寸的输入,靠网络stride来自动完成滑窗)

stage2: 将通过stage1的所有窗口输入作进一步判断,同时也要做boundingbox regression 和 NMS。

stage3: 和stage2相似,只不过增加了更强的约束:5个人脸关键点。

程序对应的 create_mtcnn建立了这3个全卷积层。

10行python机器学习全卷机网,实现100+张人脸同时定位!

以上程序构成的全卷积网络的概览

10行python机器学习全卷机网,实现100+张人脸同时定位!

10行python机器学习全卷机网,实现100+张人脸同时定位!10行python机器学习全卷机网,实现100+张人脸同时定位!

以上3图详解了3个全卷积层的尺寸构成。逐层细化,以此来加快速度是一个基本思路。

程序结合opcv对图像进行实时采集和处理显示。最终结果

10行python机器学习全卷机网,实现100+张人脸同时定位!

下一篇文章我们讲讲这里面用到的boundingbox regression (边框回归)和 NMS(非极大值抑制(Non-Maximum Suppression)算法。

需要代码可以点击左下角的了解跟多,可以从我们网站上下载源码。另外关注我们,有更多可以实际运行的深度学习案例。

昂钛客ai专注人工智能社群,做最真实的人工智能!请关注我们、留言、点赞!

文章代码请百度网盘下载 http://pan.baidu.com/s/1eRYTaj4  密码:ywjo

原文地址:https://www.cnblogs.com/jyxbk/p/8259826.html