复杂工业场景目标实时检测方法
2019-12-06张洪源张印辉何自芬
张洪源 张印辉 何自芬
摘 要: 針对现代生产中对柔性化和智能化的需求,为了提高智能加工机器人的工作效率和适应性,使其能精确快速的识别检测各类目标,提出了一种基于YOLOv3模型的多尺度视觉检测方法,该方法可对复杂工业环境背景下的常见目标进行实时检测。该方法检测的对象为轴承、螺丝刀、齿轮、钳子、扳手、螺栓、螺帽、垫片、榔头、锉刀、车刀十一类工件。该方法结合SPP-Net及ResNet,通过单个卷积神经网络将分辨率418×418输入图像处理为52×52、26×26、13×13三个不同尺度的特征图分别进行预测,通过NMS算法得到最终结果。该方法在保证效率与准确率的情况下实现了复杂工业环境下的目标检测,使用的网络结构为在YOLOv3的基础上进行了改进后的CIS-YOLO,在GTX1060上本文使用750张图片作为测试集,完成测试所用时间为17s,测试速度达到了44FPS,精度达到了91.67%。检测的精度较YOLOv2增加了1.38%,测试速度提升了15%;较YOLOv3精度增加了2.61%,测试速度提升了39%。实验结果证明该方法满足了高精度实时检测的要求,该研究可为机器人快速高效率在复杂工业环境背景下目标检测提供依据。
关键词: 目标检测;残差网络;特征金字塔;深度学习
中图分类号: TP39 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.10.019
本文著录格式:张洪源,张印辉,何自芬. 复杂工业场景目标实时检测方法[J]. 软件,2019,40(10):8388+110
Real-time Detection Method for Complex Industrial Scene
ZHANG Hong-yuan, ZHANG Yin-hui*, HE Zi-fen
(College of Mechanical and Electrical Engineering, Kunming University of Science and Technology, 650500)
【Abstract】: In order to improve the flexibility and adaptability of intelligent machining robots in order to improve the efficiency and adaptability of intelligent machining robots, it can accurately and quickly identify and detect various targets. This paper proposes a multi-scale visual inspection based on YOLOv3 model. Method, which can detect common targets in the complex industrial environment in real time. The objects detected by the method are bearings, screwdrivers, gears, pliers, wrenches, bolts, nuts, gaskets, boring heads, boring tools, and turning tools. The method combines SPP-Net and ResNet to process the resolution 418×418 input images into 52×52, 26×26, 13×13 three different scale feature maps through a single convolutional neural network, and respectively predict and pass The NMS algorithm gets the final result. The method achieves end-to-end target detection and achieves target detection in complex industrial environments while ensuring efficiency and accuracy. The network structure used in this paper is optimized on the basis of YOLOv3. On the GTX1060, 750 images are used as the test set. The time taken to complete the test is 17s, the test speed reaches 44FPS, and the accuracy reaches 91.67%. The accuracy of detection increased by 1.38% compared with YOLOv2, and the test speed increased by 15%; the accuracy of YOLOv3 increased by 2.61%, and the test speed increased by 39%. The experimental results prove that the network used in this paper has basically met the requirements of high-precision real-time detection. This research can provide a basis for the rapid and high efficiency of robots in the background of complex industrial environment.
【Key words】: Target detection; Residual network; Feature pyramid; Deep learning
0 引言
深度学习是近年来机器学习领域的一个新的研究方向,其目的在于建立模拟人脑进行分析学习的神经网络。它模仿人脑的机制来解释数据,例如图像、声音和文本。由于其在语音、文本、图像、视频等诸多方面较传统方法取得了一定的进展和突破,深度学习已成为目前计算机科学中最引人注目的研究课题。深度学习通过低层的滤波器来获取图像的局部特征,利用高层的滤波器将这些局部特征组合成全局特征。整个过程都是通过网络训练来获得,不需要人工提取、设计目标特征。在目标识别方面,深度学习主要分为两种:一种是基于候选区域的方法,代表性的有R-CNN[1]、SPP[2]、Fast R-CNN[3]、Faster R-CNN[4];一种是基于回归思想的方法,代表性的有YOLO[5]、SSD[6]、YOLOv2[7]、YOLOv3[8]。在目标目标识别方面,受限于训练样本量的缺乏,且智能制造需要在复杂的工况下完成对目标的识别。
随着“中国制造2025”战略口号的提出,机器人在生产制造领域的应用越来越广泛。工业机器人自身可实现复杂动作的自动化,但难以实现自适应作业的自动化。在装配、分拣、搬运和码垛等工业环境中,机器人的应用大多停留在示教阶段,机器人与人、与环境之间的交互不够,机器人的感知能
力较差,这种情况下单一的机器人作业往往只能应对结构化环境,早已不能满足现代生产对柔性化和智能化的要求。
为了弥补该领域的空缺,本文将深度卷积神经网络算法应用到了目标目标识别方面,使得系统能识别常用的几种目标。在此基础上对网络进行优化,使工业机器人能识别各类常见目标。
1 YOLO常见目标目标实时检测模型架构
YOLOv3的网络结构融合了残差网络ResNet[9]和特征金字塔FPN[10]的特点。该网络的特征提取部分由一系列的1×1和3×3的卷积交替构成,通过将尺寸为418×418的输入图像处理为大尺度52×52、中尺度26×26、小尺度13×13三种特征图,在其基础上进行预测,并使用NMS得到最终预测结果。在现代工业应用中,很少用到TitanX之类的高端显卡,而YOLOv3需要TitanX才能以45FPS的速度进行实时检测,为了使工业机器人的检测速度更快,精度更高,减小使用YOLO进行实时检测的硬件需求,本文首先对YOLOv3的网络进行了优化,优化结果为图1所示;由YOLOv3主体结构中的RES模块数量从1、2、8、8、4简化为了1、2、2、4、4,由于该网络结构用于检测常见目标,所以命名为CIS-YOLO。
1.1 DBL块及RES块
从YOLOv2开始,YOLO就将归一化、加速收敛和避免过拟合的方法改变为BN (batch normalization),将BN层和leaky relu层接到每一层卷积层之后,如图2所示。使用BN层会对输入每一层的数据进行归一化处理,防止产生过拟合现象;同时增加训练时梯度,避免梯度消失产生问题;从而能使用更大的学习率,大幅提高训练速度。
残差网络源于ResNet,为了解决网络的梯度弥散或者梯度爆炸的现象,提出将深层神经网络的逐层训练改为逐阶段训练,将深层神经网络分为若干个子段,每个小段包含比较浅的网络层数,然后用shortcut的连接方式使得每个小段对于残差进行训练,每一小段学习总损失的一部分,最终达到总体较小的loss,同时很好的控制梯度的传播,避免出现梯度消失或者爆炸等不利于训练的情形。
1.2 Anchor box机制及损失函数
CIS-YOLO首先将图片缩放到416×416的大小,再将图像通过神经网络处理为13×13、26×26、52×52三个不同尺度的特征图,每个特征图栅格借助3个锚点框(anchor box)来预测边界框(bounding box),如图4所示。
在CIS-YOLO中,会在每个栅格都会为bounding box預测tx、ty、tw、th四个值。其中,cx、cy为当前栅格相对于左上角的偏移量。σ()函数为logistic函数,将坐标归一化到0-1之间,pw、ph为与真实值重合度最大的anchor框的宽和高。根据下列公式[8]计算得到修正后的预测框中心点坐标和宽高bx、by、bw、bh:
CIS-YOLO未完全使用YOLOv1的sum-square error方法来计算损失函数,除了w,h的损失仍采用外,其余部分的损失函数采用二值交叉熵的方法进行计算,最后进行相加。二值交叉熵函数(binary cross entropy)是针对概率之间的损失函数,只有当真实值和预测值是相等时,bce才为0,否则bce就是为一个正数。而且真实值和预测值相差越大,bce就越大,如下式所示。
(5)
CIS-YOLO的损失函数一共分为四个部分:
(1)计算xy损失:
(6)
式中xy为物体的中心坐标,c为置信度,wh为anchor长宽回归值,为xy的二值交叉熵。
(2)计算wh损失:
(7)
式中wh为anchor长宽回归值,为预测值。
(3)计算置信度(confidence)损失:
(8)
式中为c的二值交叉熵,ignore为iou低于一定阈值的但确实存在的物体。
(4)类别损失:
(9)
式中Class为类概率,为Class的二值交叉熵。
(5)损失函数为:
(10)
2 实验结果分析
本文使用的数据集为在昆明理工大学实践工厂采集得到,使用螺栓、螺帽、垫片、齿轮、扳手、螺丝刀、轴承、车刀、锤子、锉刀、钳子11类目标,在工厂的各类复杂环境中总共采集到了2550张图片,随机使用其中的1800张图片作为训练集,将剩余750张图片作为测试集。
本次实验平台为昆明理工大学机电工程学院所有的工业机器人,使用神州战神Z7-KP7S1笔记本,内存为16G,处理器为Intel core i7-7700HQ,显卡为NVIDIA GTX 1066,系统为Windows 10,实现软件为Microsoft visual studio 2017。
本文使用AlexeyAB编写的Windows版本darknet框架进行训练和测试。在进行网络训练时,CIS-YOLO参数选取主要包括学习率、冲量常数和权值衰减系数。其中,学习率是保证模型收敛性的参数,选择一个足够小的学习率使参数大致收敛在极值附近,而学习率过大则会导致目标函数在最低点附近跳跃,本文学习率采用“poly”更新方法,初始学习率0.001,分别在4000次迭代时缩小10倍;冲量常数旨在提高收敛速率;权值衰减系数为损失函数正则项前的系数,旨在调节模型复杂度对损失函数的影响。为避免因权值衰减系数过大而产生的过拟合现象因此神经网络权值衰减系数取0.0005,冲量常数取0.9。参数选取如表1所示。
3 实验结果及分析
3.1 评价方法
本文目标检测只需要判断检测到的目标是否为常见目标,是一个二分类问题,故本文最终检测目的是:能够准确检测到测试集中的所有目标,并避免将其他目标误检为目标。为了较为正确地评价本文模型的效果,在此先作 True obj、True no-obj、 False obj三种定义。①True obj:目标为目标,且被系统正确地检测成了目标;②True no?obj:目标不为目标,且系统没有将其误检测为目标;③False obj:目标不为目标,但被系统错误地检测成了目标(误检)。
在评价过程中本文采用精确度以及完成测试所用时间来评价算法性能的优劣。精确度指的是被正确检测出的目标占检测出的目标的比例,其计算表达式为
(11)
3.2 优化锚点框(anchor box)数量
针对不同的数据集以及不同的目标大小的特点,为提高检测精度加快收敛速度,需要对anchor box的大小和数量进行修改,本文对anchor box的数量进行了试验。anchor box的大小可以使用k-means聚类自动生成,锚点框数量与平均交并比的关系如图6所示。本文分别选择了12个,9个,6个,3个anchor box进行试验。
其中anchor box数量为12时pw和ph的取值为(42.9419,54.4783),(67.7124,97.1179),(140.9809,80.7709),(100.2005,166.5979),(62.0169,349.0203),(330.6580,66.1354),( 229.7484,143.5288),( 151.0698,248.9077),(329.6918,167.6866),(249.8865,238.3569),(182.3382,341.2477),(299.8302,310.4058)。
anchor box数量为9时pw和ph的取值为(44.7037,56.5850),(74.0776,111.0861),(155.3219,89.8162),(61.7627,341.1301),(332.3138,71.8921),(149.9393,196.2790),(293.2839,168.3979),(175.7273,326.4161),(275.3814,283.0423)。
anchor box数量为6时pw和ph的取值为(49.4186,65.0787),(130.4893,122.7788),(72.6208,323.3942),(327.5999,78.4338),(285.8454,190.8898),(206.5977,306.9375)。
anchor box数量为3时pw和ph的取值為
从上表可以看出,当anchor box数为9时,精度最高;anchor box数为12时精度和测试速度略微下降,而在anchor box数为6和3时,精度大幅下降。因此Toolnet的anchor box最佳数量为9。同时可以发现相比直接改变网络结构对测试速度的影响,改变anchor box数量对于测试速度的影响较小但对精度的影响较大。
3.3 优化锚点框(anchor box)数量
CIS-YOLO用于提取特征的最大特征图尺寸为52×52,对于中等或者较大的常见目标目标,该尺度的感受野较大。因此CIS-YOLO需要在此基础上进行进一步优化,去除不必要的低层语义信息,本文在CIS-YOLO最小特征尺度13×13的基础上逐步增加26×26,52×52,104×104三个尺度进行测试。
从表3可以看出,当特征图数量为2个时精度最高,较有1个、3个、4个特征图时,分别提高了10.24%、1.54%与33.15%。同时,增加或减少特征图数量对模型的检测速度有很大影响,以上4中尺度的网络检测速度分别为46.875fps、37.500fps、28.846fps、23.436fps;当特征图为2时精度最高且检测速度已满足实时检测的需求,所以CIS-YOLO的特征图的最优数量为2。
大小目标的预测精度取决于特征图像尺寸,尺度较大的特征图像对小目标的预测效果较好,反之尺度较小的特征图像对大目标的预测效果较好。为了验证多尺度融合对目标检测精度的提高效果,本文将只使用13×13、26×26、52×52三种特征图进行预测的结果和使用2个特征图融合检测的结果进行了对比,结果如表4所示。
從表4和图7中可以明显看出使用尺寸为13×13的特征图预测时,大目标如齿轮的预测效果较好,但会将齿轮的中心孔预测为垫片,可见对中等目标等预测效果较差;使用尺寸为26×26的特征图预测时,对于中目标和大目标预测效果都比较好;使用尺寸为52×52的特征图预测时,对于中目标的预测效果较好,但对于大目标如齿轮的预测效果较差。而融合了13×13和26×26的特征图后预测比起只使用单个特征图预测的平均精度高。
3.4 改变输入图像分辨率优化模型性能
因为CIS-YOLO使用的是全卷积网络,没有使用全连接层,所以没有对输入图像分辨率的固定要求,本文使用二特征图融合CIS-YOLO进行测试,通过改变输入图像分辨率为448×448、416×416、384×384、352×352、320×320、288×288评估对模型性能的影响。
由表5可知在原输入图像分辨率为418×418时增加输入图像分辨率会降低模型检测精度并减慢测试速度;减少输入图像分辨率则会增加精度,加快测试速度,且精度在输入图像尺寸为352×352时达到饱和,此时精度为91.67,检测速度为44 fps已远超过实时检测需求,所以二特征图融合Toolnet的最优输入图像分辨率为352×352。
3.5 实验结果分析
使用YOLOv2和YOLOv3在同样环境和参数下训练,使用同一个验证集进行验证,将优化后的Toolnet另外2种未优化YOLO算法进行对比, 结果见表6所示。从结果可以看出本文使用的优化后Toolnet网络结构的精度较YOLOv2增加了1.38%,测试速度提升了15%;较YOLOv3精度增加了2.61%,测试速度提升了39%。而且本文使用测试集大小为750张图片,完成测试所用时间为17s,测试速度达到了44FPS,实验结果证明优化后Toolnet已满足了高精度实时检测的要求。
4 结论
本文应用Toolnet算法实现了对复杂工业环境下的常见目标的高精度实时检测,解决了以往在自动化生产线中缺少高精度实时目标定位的问题。并针对常见目标特点改进了YOLOv3算法,将三特征图融合检测简化为了二特征图融合检测,为基于机器视觉的常见目标实时检测提供了理论依据。通过本文的研究,将YOLOv3改进后的CIS-YOLO模型可以很好地在中低端显卡中实现实时目标检测。在后续工作中,将会实现更多种类的常见目标识别,并继续优化该算法,降低该算法实现实时检测的硬件需求,提高该算法的精度。
参考文献
[1]Girshick R, Donahue J, Darrell T, et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.
[2]He K, Zhang X, Ren S, et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.
[3]Girshick R. Fast R-cnn[C]. Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.
[4]Ren S, He K, Girshick R, et al. Faster R-cnn: Towards Real-time Object Detection with Region Proposal Networks[C]. Advances in neural information processing systems. 2015: 91-99.
[5]Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788. 8
[6]Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot Multibox Detector[C]. European conference on computer vision. Springer, Cham, 2016: 21-37.
[7]Redmon J, Farhadi A. YOLO9000: Better, Faster, Stronger[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
[8]Redmon J, Farhadi A. Yolov3: An Incremental Improvement[J]. arXiv preprint arXiv: 1804.02767, 2018.
[9]He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]. Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
[10]Lin T Y, Dollár P, Girshick R, et al. Feature Pyramid Networks for Object Detection[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117- 2125.
[11]Krizhevsky A, Sutskever I, Hinton G E. Imagenet Classification with Deep Convolutional Neural Networks[C]. Advances in neural information processing systems. 2012: 1097-1105.