刘治国,郝 超,陈 乐,励坤宇
(宁夏银方智能科技有限公司,宁夏 750000)
食品饮料行业相比其他行业在货物供应上具有单日订单量大,产品种类多等特点。因此一套高效率的分拣系统对于保障货运物流具有非常重要的意义。尤其在大型仓库中,由于产品种类多,货物依类别放置,占用面积大等特点,使用基于传送带的货物分拣系统能够显著提高分拣效率。
然而,当货物在传送带上运动分拣过程中,由于箱体的体积、重量、形状、包装材质的不同,都会导致频繁发生货物连包、碰撞情况。不仅会引起产品包装破损,而且会极大地影响货物分拣效率,甚至导致货物分拣错误发生,导致效率和正确性降低。
传统传送带依赖大量传感器完成连包检测。但是这种检测方式过程复杂、可靠性低,并存在大量误检测的情况。伴随着GPU和大数据技术的发展,深度学习在计算机视觉领域[1-2]有着飞速发展,在物体分类、识别领域已经超过了人类水平,目标检测和跟踪作为计算机视觉领域的一大分支,与传统使用特征检测和匹配进行定位算法相比,具有检测精度高,速度快等优点。为此,本文采用基于视频流数据处理的方法,对货物的距离、状态进行的实时监控,实现连包情况出现时的预警,避免碰撞发生。
作为图像理解和计算机视觉的基石,目标检测是解决分割、场景理解、目标追踪、图像描述、事件检测和活动识别等更复杂更高层次的视觉任务的基础。
近十年来,由于算法和GPU的极大发展,深度学习方法逐渐取代传统的特征检测方法成为计算机视觉的主要研究方向,并取得了极大的成就,就目标检测发展而言,主要集中在两个方向:Two-stage算法如SPP-Net(空间金字塔池化网络)[12]、FPN(特征金字塔网络)[11]和R-CNN系列[15];One-stage算法如YOLO[7-9]、SSD[14]和RetinaNet[13]等。两者的主要区别在于:Two-stage算法需先生成预选框,然后进行细粒度的物体检测;而One-stage算法会直接在网络中提取特征来预测物体分类和位置,因此速度更快,适用于实时目标检测,但性能上相对较弱。
Multiple Object Tracking(MOT)多目标检测在计算机视觉领域具有举足轻重的位置。尤其是在行人追踪检测领域具有非常重大的实际应用价值。随着近年来深度学习的发展,tracking-by-detection这种追踪检测方式越来越占主流位置,SORT(Simple Online And Realtime Tracking)在目标检测基础上使用卡尔曼滤波算法在目标追踪过程中考虑到帧之间的物体相对位置,进行IOU的计算,减少了目标ID的实际切换次数。但是当物体有遮挡或传送带速度发生变化时候,目标容易丢失。Deep SORT方法在SORT基础上考虑到了目标表面特征,使用特征作为卡尔曼滤波位置估计的一种额外补充,减少了目标丢失和切换ID的次数,在实际使用中更具实际意义。
YOLO是一种基于深度神经网络的对象识别和定位的One-stage算法,其最大的特点是运行速度很快,可以用于实时系统,因此在目标检测领域得以广泛应用。Bochkovskiy A等人使用YOLOV4[3]在AP50指标上达到64.2,精确度和检测速度比YOLOV3算法[7-9]分别提升了10%和12%。
本文使用深度学习的方法对生产线实时处理,解决传送带上箱包的自动检测与跟踪问题。在采用YOLOv4作为目标检测器的基础上,考虑Deep SORT作为SORT算法的改进版,在保证较高跟踪速率的同时有效地减少了45%的无效ID切换次数[4],因此将其作为目标跟踪算法,实现视频流中多目标的检测与跟踪,并利用单应性变换进行视角变换,实现箱包距离检测。检测预警原理图如图1所示。
图1 连包检测预警流程图
如图2所示,YOLOV4目标检测框架包括Input,Backbone,Neck,Prediction Head四个部分。
图2 YOLOv4的主体框架
在Input部分,主要是Image,Patches作为输入;在Backbone部分,首先利用CSPDarknet53对视频中的逐帧图像进行特征层提取,CSPDarknet53由一系列堆叠的残差网络结构组成,这种堆叠能够增加相当的深度提高准确率;在Neck部分,YOLOv4使用了SPP和PAN作为特征金字塔结构,SPP结构利用不同尺度的最大池化进行处理以分离最重要的出上下文特征,PAN结构缩短特征信息在低层与高层之间的传播以实现多通道特征融合;在Head部分,对提取的多个特征层进行目标检测,通过解码的方式得到边界框的位置、置信度和类别预测。
对通过目标检测出的箱包,采用Deep Sort作为自动跟踪算法[5-6]。Deep SORT中,使用CNN网络在大规模箱包数据集进行训练并提取特征,增加网络对丢失和遮挡的鲁棒性,并有利于运过过程中的箱包特征关联。
作为Deep Sort的输入,使用八维空间状态变量表征目标在某个时刻的状态。基于状态参数,采用包含匀速模型和线性观测模型的Kalman滤波器实现目标轨迹的预测与更新。为了得到预测Kalman状态和新实际测量值之间的关联,将目标运动和外观信息相结合,利用相似性指标度量。
对于不确定性较低的目标运动,使用以下的马氏距离度量:
为了弥补相机运动引起大量马氏距离的无法匹配问题,引入最小余弦距离度量外观信息:
在构建关联问题时,引入一个权重λ作为链接两个相似性度量的纽带:
距离度量对于短期预测和匹配效果很好,而外观信息对于长时间丢失的轨迹而言,匹配度度量的比较有效。在这里,由于摄像机固定,取λ=1;否则,当存在大量的相机运动时,λ=0。
该算法还提出了一种级联匹配的策略来提高匹配精度,主要由于当一个目标被遮挡很长时间,Kalman滤波[10]的不确定性就会大大增加,并会导致连续预测的概率弥散,假设本来协方差矩阵是一个正态分布,那么连续的预测不更新就会导致这个正态分布的方差越来越大,那么离均值欧氏距离远的点可能和之前分布中离得较近的点获得同样的马氏距离值。这可以缓解因为表观突变或者部分遮挡导致的较大变化但也有可能导致一些新产生的轨迹被连接到了一些旧的轨迹上。在进行自动跟踪前,需要进行深度外观描述。使用CNN在大规模重识别数据集上学习目标鉴别网络,这对于区分不同的目标至关重要。因此,Deep Sort能够减少大量的无效ID交换数量,有效地提高了跟踪性能。
假定存在三维空间坐标(xi,yi,zi)到二维图像坐标(ui,vi)的映射关系,构建映射函数g:,该映射表示为投影过程(ui,vi)=g(xi,yi,zi)。但是,如果忽略真实世界场景在z方向上的空间范围,并假设在图像上看到的每个点都属于z=0平面,则对应的映射关系为:
其中H=(hij)∈代表可逆的单应性矩阵。为了获得真实世界坐标(xi,yi)和像素坐标(ui,vi)的对应关系,重写上述等式后转化成以下形式:
由此,单应性矩阵H的未知数可以通过求解以下线性方程组得到:
在这种情况下,单应性向量h属于矩阵(AT·A)的核:
其中A是2N×9的矩阵。由于单应性矩阵H具有齐次性,因此只有8个自由度只需要4对特征匹配点(ui,vi)(xi,yi)即可求得唯一解。计算(AT·A)的特征值和特征向量,与最小特征值相关的单位特征向量即为单应性向量h。通过这种方式,得到单应性矩阵H中的9个系数hij,可以实现像素坐标(ui,vi)到真实世界坐标(xi,yi)的映射变换。
如图3所示是分别截取安装在大型传送带仓库的分别位于右下角(左图)和左下角(右图)的摄像头的2段视频内容。摄像头分辨率为1280×720,帧率为60帧,视频时长分别为360s和216s。从视频截图内容可以非常清楚看到箱子在传送带上的运动过程和分拣情况。
图3 分拣传送带
4.2.1 训练数据的标注
分别对采集的2段视频进行采样,采样帧间隔设置为10,分别获取累计588张和500张样本图片。
分别对采样的图片进行标注,由于传送带远端距摄像头较远,CNN网络不能提取到有效的图片特征向量,因此只对摄像头近端一侧进行标注。标注结果如图4所示。
图4 训练数据标注
图5 学习率下降曲线
图6 损失下降曲线
最终得到对应的训练数据图片(ImageJPEG)和训练数据标签文件(Annotations)。
4.2.2 YoloV4模型的训练
对标注好的图片和对应的声明文件分别送入到YOLOV4的模型框架中进行训练。使用2张GTX 1080Ti显卡对模型进行训练,初始学习了设置为1e-3,训练过程中通过余弦模拟退火算法自动调整学习率,其中模型预热Epoch占总Epoch的20%。使用典型的Yolo系列头部损失函数并使用Adam算法对整个神经网络模型进行优化。
MAP是目标检测中衡量识别精度的重要指标,用来综合指示检测过程中的精确度、召回率。整个试验环境下,由于类别单一,MAP与在开放数据集如ImageNet、Coco测试得到的MAP不具有明显对比性,达到91%。这也反应出模型在测试视频数据集效果良好,为后续目标追踪提供了较好基础。
4.2.3 箱体特征模型训练
度量学习是学习目标相似度的一种非常重要的手段,一般使用欧式距离或余弦相似度来衡量CNN网络提取的图片特征。在有监督学习方向,Triple Loss作为经典的度量学习损失函数目标,需要在特征域拉近相同或相似箱体的距离,并且拉远不同箱体的距离。在训练过程中,需要选取相似箱体的一对图片,其中一张图片设置为Anchor样本,另外选取一张图片作为positive样本,并另外选取一张其他类别的图片作为negative样本,实际上这种数据选取方式难以使模型快速收敛,需要花费大量时间来训练,并难以达到理想效果。因此需要使用难样本数据挖掘方式首先进行样本挖掘,再使用Triple loss进行模型训练,使得模型收敛,通常在设置合理阈值的方式下,最终并不以最终的损失函数结果来判断模型是否好坏,而是以样本挖掘程度或是否能够再挖掘难样本来评判模型是否合理可用。
使用训练好的模型,对视频进行检测。效果如图7所示。
图7 检测与跟踪效果
4.3.1 镜头畸变校准
为了得到单应性矩阵H,因此分别对两组图片中的4对特征点进行标志,以对应到真实世界坐标系。4对特征点的标记如下所示:
上述对应坐标点的位置分别被标注在下图中,如图8所示,经过单应性变化的图片如图9所示。
图8 选取的4对特征点
图9 镜头畸变校准后的效果图
4.3.2 连包异常监测及预警
将两个箱子中心点距离小于50cm作为判别阈值,当两个箱子距离小于阈值时出现红线并标注出预警距离,检测效果如图10所示。
图10 连包异常监测及预警效果图
从图9中可以看出所以在和数据集标注区域相同的箱子100%被正常检测出,追踪过程中,无效ID切换率被控制在1%内。实际运行过程中,传送带时间每天运行时间达到9小时,由于连包现象导致分拣错误,并伴随大量传送带临时暂停,使用Tensorflow sharp部署训练好的模型进行追踪预警后,并通过预警信息反馈至传送带控制系统,使得每天分拣时间降至8小时,有效提高工作效率。
本研究从视频流的监测数据出发,利用先进的计算机视觉技术,实现多目标的自动识别及跟踪、异常监测及预警。技术路线充分考虑了传送带上运输的箱包特征,不仅有效进行识别与跟踪,而且在其基础上能够保证实时性要求,充分体现了基于视频流的多目标识别跟踪及异常监测系统研究的创新性。
该研究的创新点主要集中于以下两个方面:
1)无需使用传统的雷达探测或红外探测,只需要使用摄像头和监测视频,即可利用计算机视觉技术实现传送带上箱包的异常预警任务;
2)提供了一种识别连包异常情况的新思路,旧思路往往采用直接训练识别出多箱包相连的情形,但这种情况下难以分辨绑在一起的多个箱包,因此新思路采用计算两两箱包之间距离的方法,当距离低于阈值时进行预警。
该研究的技术难点主要集中于以下三个方面:
1)镜头安装位置较低,会导致监测过程中出现遮挡的箱体无法有效被跟踪,当出现无效跟踪时可能出现错误的异常报警,同时镜头畸变校准后也会产生一定的误差;
2)训练数据的样本量不够,由于人工标注非常耗时耗力,因此每次训练只选用了五百多张图片作为训练数据。尽管测试效果已经很不错,但如果能够增大样本量到3000-5000张,可能会使效果有进一步提升;
3)模型权重相对较大(训练出的模型权重为246MB),包含6000多个参数,相比于百兆以下的轻量级权重显得有些大,如果能够收集更多的训练数据,可以采用YOLOv4-tiny轻量级模型进行训练,权重文件仅有25MB,包含600多个参数。