摘要台历架
基于现实场景,本文提出了一种改进的YOLO-v3人脸检测算法,以检测出现实中的人脸。随着CNN(卷积神经网络)和IoT(物联网)技术的发展,基于深度学习的目标检测算法已成为主流,出现了SSD[1](单镜头检测)和YOLO[2]系列等典型算法。然而,这些基于深度学习的算法都不是完美的,在检测精度、计算速度和多目标检测能力方面还有改进的空间。在本文中,通过引入EfficientNet骨架和CBAM注意力机制,获得改进的YOLO-v3网络。设计了一种轻量级,实时性的人脸识别系统。本文经过在数据集上进行训练与测试,实验结果表明,识别目标人脸的平均精度超过90%,验证了所提出方法的有效性。 1 引言
人脸识别是人工智能和计算机视觉领域最重要的应用之一,是当前模式识别和人工智能领域的一个研究热点。其在公安罪犯识别、安全验证系统,信用卡验证,医学档案管理,视频会议,人机交互系统等方面的巨大应用前景,受到了研究人员的广泛关注,而人脸检测是进行人脸识别的基础,研究高效实用的人脸检测算法具有重要的意义。
目前,关于人脸检测方法的研究可以分为基于传统方法和基于深度学习方法两个方向。传统的人脸检测方法有很多,Adaboost人脸检测方法通过无数次迭代来寻求最优分类器检测人脸[3]。 SVM通过构造有效的学习机器来解决人脸的检测问题[4]。传统的人脸检测方法提取的特征单一,鲁棒性较差。随着深度学习的不断发展,人脸检测的性能有了很大的提高。目前经常使用的基于深度学习的目标检测方法分为两种:一种是基于候选区域的目标检测算法[5],需要首先生成候选区域,然后对候选区域进行分类和回归操作,以Faster R-CNN为代表;另一个是YOLO算法,仅使用一个卷积神经网络直接预测不同目标的类别和位置。与Faster R-CNN算法相比,YOLO可以实现了实时检测速度,但精度较低。为了提高YOLO算法的精度,Redmon等人提出YOLOv2[6]和YOLOv3[7]。YOLOv3在保持速度的同时提高了预测精度。为了进一步提升YOLOv3网络的检测性能,本文设计了一种高效实时的人脸识别系统,首先将YOLOv3的骨架网络替换成EfficientNet网络,其次在YOLOv3的三个输出头之前添加CBAM注意力机制,通过这些改进,本文使YOLOv3网络的性能得到了提升。 山药去皮机
故障检测2、相关研究
汽车空调电磁离合器
YOLO算法是最著名最先进的深度学习技术之一,能够同时进行物体检测和分类。为了完成目标检测任务,早期的目标技术(R-CNN及其变体)采用了一种涉及多个步骤的流水线执行架构。由于流水线结构和必须对每个单独组件进行单独训练,随着优化复杂性的增加,训练和检测的速度缓慢。YOLO克服了这些缺点,它将目标检测转换为单一回归问题,同时预测多个边界框及其类概率。与基于滑动窗口和区域建议的技术不同,YOLO中的训练是在全图像上进行的,从而直接优化了检测性能。
YOLOv3是其发展的第三代,只需获取输入图像,即可通过神经网络生成边界框和类预测的输出向量。YOLOv3提取单个图像,然后将其分辨率大小调整为416×416,作为YOLOv3神经网络的输入,其输出是边界框的位置信息,目标类别以及置信度。
YOLOv3网络使用Darknet53作为主干网络提取特征,在YOLOv3只有一个卷积网络,其中大多数是3*3卷积,与YOLOv2相比,池化层被取消,输出特征图可以通过调整步长来控制卷积层的大小。YOLOv3借鉴了金字塔特征(FPN)结构,使用小特征图来检测大物体,使用大特征图检测大型物体。这样做的原因是低层网络特征具有更精确的位置信息,而高层网络特性具有更丰富的语义信息,YOLOv3用于预测的特征图具有低层网络特征图的精
确位置信息以及丰富的高层网络语义信息,它使YOLOv3的预测层能够同时准确定位对象并识别对象正确。YOLOv3的三个输出头分别兼顾了不同尺寸大小的目标,提高了检测精度。
图1 Yolov3网络结构delta并联机器人
YOLOv3网络模型如图 1所示,它的基本体系结构包括3个主要部分:主干网络、Neck和输出头。YOLOv3使用DarkNet-53作为其主干网络。它由53个卷积层组成,每个卷积层都包含1个归一化层,每层的激活函数是Leaky ReLU。它借鉴了残差网络ResNet的做法,在一些层之间建立快捷链路,通过快捷链路跃层连接可以解决随着网络的逐步深入导致模型难以优化的问题,减小梯度爆炸风险,加强网络的学习能力并利用到更多的图像浅层特征信 息。特征图的尺寸在某些卷积层之间减小了2倍,该算法总共将尺寸减小了32倍。为了YOLOv3网络的下一步工作,特征提取网络部分将输出3个不同尺寸的特征图作为下一个网络模块的输入,其尺寸分别比原始图像尺寸减小8倍、16倍和32倍,最后经过三个输出头输出检测结果。
3、Yolov3改进
3.1 Yolov3添加EfficientNet
对于卷积神经网络的提升,着重点在于网络深度,网络宽度,分辨率这三个维度网络深度的增加,典型的如resnet,就是通过残差网络的堆叠,增加网络层数,以此来提升精度。网络宽度的增加,通过增加每层网络的特征层数,提取更多的特征,以此来提升精度。图像分辨率的增加,分辨率越高的图像,所能获取的信息越多,网络能够学习到更多的特征,从而提升精度。但过身的过深的神经网络层数会导致过高的计算成本,也会带来梯度爆炸的问题。同时,分辨率和网络宽度过大也会增加计算成本,所以需要对深度、宽度和分辨率这三个维度进行平衡。因此,EfficientNet[8]应运而生。2019年,谷歌提出EfficientNet网络,EfficientNet结合了这三个优点,很好的平衡深度、宽度和分辨率这三个
维度,它利用更少的参数量得到最好的识别度。
为了了解网络缩放的效果,作者系统地研究了缩放不同维数对模型的影响。 虽然缩放单个维度可以提高模型性能,但作者观察到,根据可用资源平衡网络的所有维度可以最大限度地提高整体性能。同时作者观察到,模型扩展的有效性在很大程度上依赖于baseline网络,一个优秀的baseline网络更有助于模型性能的提升。为此,EfficientNets的基础网络模型提出了一种全新的模型缩放方法,该方法使用简单而高效的复合系数来权衡网络深度、宽度和输入图片分辨率。通过放大EfficientNets基础模型,获得了一系列EfficientNets模型。该算法第一步是执行网格搜索,以到在固定资源约束下基线网络的不同缩放维度之间的关系,这决定了上面提到的每个维度的适当比例系数,然后应用这些系数扩大基线网络,以达到期望的模型大小或资源。同时为了进一步提高性能,作者还开发了一个新的基线网络,优化了准确性和效率。该系列模型在效率和准确性上战胜了之前所有的卷积神经网络模型。尤其是EfficientNet-B7在ImageNet数据集上得到了top-1准确率84.4%和top-5准确率97.1%的结果。且它和当时准确率最高的其它模型对比,大小缩小了8.4倍,效率提高了6.1倍。且通过迁移学习,EfficientNets在多个知名数据集上均达到了当时最先进的水平。