10行python机器学习全卷机网,实现100+张人脸同时定位!
- A+
今天介绍一个快速定位人脸的深度学习算法MTCNN,全称是:Multi-task Cascaded Convolutional Networks多任务级联卷机网。这个快速定位的深度学习有3个很好的作用。
1.可以构建除人脸外其他快速定位的应用。
2.可以在定位人脸后,提高后面对人脸识别的速度。
3.分步骤级联算法,可以尝试提高每层算法的优化,给出一个优化算法的可行方案。
本案就是利用MTCNN构建3个卷积网逐层处理,最终确定人脸个数,人脸的具体位置和五官位置!
上图简析了程序的3个步骤。
stage1: 在构建图像金字塔的基础上,通过全卷机网检测人脸个数和大致区域,同时利用boundingbox regression (边框回归)和 NMS(非极大值抑制(Non-Maximum Suppression)来进行修正。(注意:这里的全卷积网络与R-CNN里面带反卷积的网络是不一样的,这里只是指只有卷积层,可以接受任意尺寸的输入,靠网络stride来自动完成滑窗)
stage2: 将通过stage1的所有窗口输入作进一步判断,同时也要做boundingbox regression 和 NMS。
stage3: 和stage2相似,只不过增加了更强的约束:5个人脸关键点。
程序对应的 create_mtcnn建立了这3个全卷积层。
以上程序构成的全卷积网络的概览
以上3图详解了3个全卷积层的尺寸构成。逐层细化,以此来加快速度是一个基本思路。
程序结合opcv对图像进行实时采集和处理显示。最终结果
下一篇文章我们讲讲这里面用到的boundingbox regression (边框回归)和 NMS(非极大值抑制(Non-Maximum Suppression)算法。
需要代码可以点击左下角的了解跟多,可以从我们网站上下载源码。另外关注我们,有更多可以实际运行的深度学习案例。
昂钛客ai专注人工智能社群,做最真实的人工智能!请关注我们、留言、点赞!
文章代码请百度网盘下载 http://pan.baidu.com/s/1eRYTaj4 密码:ywjo