您好, 访客   登录/注册

基于卷积神经网络级联人脸关键点检测算法

来源:用户上传      作者:

  摘要:该文提出了一种基于级联卷积神经网络的人脸关键点检测算法,通过105000图片进行数据训练,之后根据另外不同于数据训练3043张,进行实验测试,最终发现该算法的定位准确率相比于很多目前的人脸识别系统有了长足的进步,并且使用级联的方式明显优于使用效果明显优于单卷积神经网络,另外虽然该算法在效率上有所下降,但是该算法配合GPU在处理一个人脸上的耗时基本在16毫秒以下,可以满足基本使用。
  关键词:卷积神经网络级联;人脸关键点;检测算法
  中图分类号:TP3        文献标识码:A
  文章编号:1009-3044(2020)23-0165-02
  1 卷积神经网络介绍
  所谓的卷积神经网络,其实指的是在传统的人工神经网络之上搭建深度学习而产生的一种新型人工神经网络,该神经网络具有表征学习的能力,能够对于输入信息进行平移不变分类,目前该神经网络主要应用在图像识别,物体识别,行为认知,姿态估计,神经风格迁移,自然语言处理,物理学,大气科学等内容之上,本文所研究的卷积神经网络级联人脸关键点检测算法主要是图像识别领域的内容。
  2 基于卷积神经网络级联人脸关键点检测算法介绍
  通过研究发现,使用单个卷积神经网络进行人脸关键点定位其精度方面与所达目标有一定的差距,因此本文所研究的人脸关键点定位算法主要基于卷积神经网络的级联方式进行,具体操作的逻辑为先输入整张人脸,之后根据输入的人脸进行缩放,本次算法缩放的单元大小为112*112,之后使用第一层卷积神经网络作为初步定位(包含1个卷积神经网络)使用,主要是用于定位关键点,包含了人的眼睛(2个点)鼻子,左右嘴角(2个点)共计5个点,之后在根据卷积神经网络所定为到的关键点计算出双眼中心到左右两侧嘴唇之间的距离,并将此距离缩放到48,在缩放完成之后,在对所呈现的图像进一步进行裁剪处理,以卷积神经网络所定位的关键点为中心裁剪出五个单元格为32*32大小的图像,第二层卷积神经网络(包含6个神经网络)则是完成人脸关键点的精确定位,主要是针对第一层所定为位置进行再次定位,具体是将采集到的32*32的图像(5个)再次进行关键点定位,该定位所得到的坐标相较于第一卷积神经网络所得到的关键点坐标要提升不少的精准度,其中level1中阐述的是第一个卷积神经网络的内容,包含Resize(缩放)两次,CNNF1(1次为第一个卷积神经网络的定位),level2为第二个卷积神经网络的定位,最终根据这两次定位输出最终的关键点。
  3 相关训练
  训练是卷积神经网络完善的重要过程,本次卷积神经网络的训练的图像数据是通过互联网上爬取的21000张人脸图片,对于所有的人脸图片都进行关键点的标注,为了保证训练的质量,本次试验还将这21000张人脸图片进行了旋转处理,旋转角度分别为顺时针15°和18°,以及逆时针的15°和18°,最终进行本次训练的图片总数为105000张,此也为第一层卷积神经网络的训练数据,而第二层神经网络的训练数据则为该数据的5倍(裁剪之后的效果),另外对于本次训练的系统而言主要采用的是win7、64位操作系统,并且其内存为16G,显卡为N卡1060,CPU为(inter(R)Core(TM)i7-8700CPU),并且该电脑还有4个GPU,对于本次训练所编写的代码主要通过的是Python完成的。
  4 试验数据与分析
  4.1 试验数据准备
  首先对于本文的训练数据与测试数据是相分离的,测试数据主要采用的是3043张的人脸图像,测试图像中包含了不同的角度,不同的环境光,不同的姿态以及不同的遮挡,目的在于确定本次算法在对多角度下的效果。
  其次本次试验所得的最终定位算法数据主要通过的是误差的方式进行评判,误差的判定方法主要采用的是差方值的方式进行计算,所得的计算结果根据算法的不同进行评判,本次算法主要与其他人员提出的算法和单层卷积神经网络算法对比,其他算法均是用于非限制环境下的人脸定位算法,这些也常被用于有着姿态变化、表情变化、遮挡物存在、环境光影响的情况之下,而单层卷积神经网络的人脸关键点检测算法主要为卷积神经网络级联人脸关键点检测算法的第一层,其主要对比的目的在于验证是否通过第二层的卷积神经网络可以在最终的人脸关键点定位的准确度有明显提升。
  最后本次试验还对于运算的时间进行了统计,统计的方法为同一个图像迭代1000次最终的算法速度,本次目的在于验证本次试验最终的耗时。
  另外本次试验的相关数据都是在同样环境下进行的,无论是Python编程所使用的线程数目还是电脑性能方面均保持一致,目的在于保证最终结果的准确性。
  4.2 实验结果
  如表1为单层卷积神经网络的最终误差和本文所提出的卷积神经网络级联人脸关键点检测算法的误差对比,可以看出在左眼误差上单卷积神经网络其左眼误差为1.601,右眼误差为1.564,鼻子的误差为2.533,左侧嘴角的误差为2.125,右侧的误差为1.958。而卷积神经网络级联其左眼误差为0.954,右眼误差为0.832,鼻子的误差为1.052,左侧嘴角的误差为1.289,右侧的误差为1.230可以从结果看出卷积神经网络级联之后的效果明显优于单卷积神经网络,也就是说通过第二层对于五个部分进行再次的卷积神经网络处理效果结果有了提升。
  如表2为不同算法的误差对比,可以从表2看出,本文所提出的相关算法,在同样的测试环境之下,最终表现要比其他算法好,并且准确性要高。
  对于本次算法的耗时上,由于增加了算法的复杂度因此相较于单卷积神经网络时间有所提升,对于单卷积神经网络在GPU的处理之下,实现最终定位需要4毫秒左右,而本文的算法则需要16毫秒以下,而在CPU下本次算法所需要的耗时时间大约在25毫秒以下,通过该测试建议使用该算法在GPU下运行,对于算法的处理速度帮助很大。
  5 总结
  人工智能和智能楼宇技术的发展是未来的发展趋势,在人工智能和智能楼宇技术目前已经发展起来并且形成了一定的产业模式的当属人脸识别系统,无论是相关办公大厦的安防系统,还是我国著名的天网监控系统都采用了人脸识别的元素,而对于人脸识别系统而言,其最为关键的在于寻找并且准备识别和对比人脸关键点,因此本文提出了一种基于级联卷积神经网络的人脸关键点检测算法,并根据该算法进行了详细的阐述,阐述包含四部分内容,分别为卷积神经网絡介绍、基于卷积神经网络级联人脸关键点检测算法介绍、相关训练以及最终的测试,通过测试可以看出该算法的定位准确率相比于很多目前的人脸识别系统有了长足的进步,并且使用级联的方式明显优于使用效果明显优于单卷积神经网络,另外虽然该算法在效率上有所下降,但是该算法配合GPU在处理一个人脸上的耗时基本在16毫秒以下,可以满足基本使用,故而本文希望能够在不久之后可以将该算法运用到实际之中。
  参考文献:
  [1] 唐墨,王科俊.自发展神经网络的混沌特性研究[A]. 2009年中国智能自动化会议论文集(第七分册)[南京理工大学学报(增刊)][C]. 2009.
  [2] 张广远,万强,曹海源,等.基于遗传算法优化神经网络的故障诊断方法研究[A].第十二届全国设备故障诊断学术会议论文集[C]. 2010.
  [3] 胡正平,陈俊岭,王蒙,等.卷积神经网络分类模型在模式识别中的新进展[J].燕山大学学报,2015,39(4):283-291.
  [4] 郭天宇,朱铭健,王云鹤,等.基于自整合卷积神经网络的人脸分类算法[A].第十一届全国信号和智能信息处理与应用学术会议专刊[C]. 2017.
  [5] 王辉,杨杰,黎明,等.一种基于神经网络的图像复原方法[A]. 2006年全国光电技术学术交流会会议文集(D光电信息处理技术专题)[C]. 2006.
  【通联编辑:代影】
转载注明来源:https://www.xzbu.com/8/view-15316267.htm