刘思琪 李江涛 钱荣荣 周慧玲
(北京邮电大学自动化学院,北京 100876)
储粮害虫的防治是粮食储藏管理的重要工作内容。除了早期的监测和检测储粮害虫的杀虫效果,实验也是重要的一环,有助于了解各种害虫的抗药性情况,便于指导及时适度地进行杀虫操作。
磷化氢熏蒸杀虫具有高效、低残留、低成本以及施用简单等特点,是我国储粮害虫防治的主要手段。由于长期较单一使用,害虫的磷化氢抗药性在过去10年来不断增强[1]。王继婷等[2]实验证明在磷化氢不同时长、不同浓度情况下,熏蒸抗性不同的玉米象的死亡率存在差异。陈锐等[3]证实了长时间单一地使用磷化氢熏蒸,诱发了储粮害虫对该药剂产生了十分严重的抗药性。因此,为探索有效且低剂量的杀虫药剂施用,很多研究人员开展了实验室和实仓的实验研究。目前杀虫效果的结果判断方式有两种:一是熏蒸结束一段时间后相关技术人员在显微镜下用毛笔逐个触碰害虫,评估死活情况[4](30 min后不出现运动情况判别为死亡个体);二是在开始杀虫操作后每天观察并统计害虫死亡情况,直至全部死亡。这两种判断方式无法获得熏蒸过程中害虫状态的连续变化情况,同时人工记录结果费时费力。基于上述问题,开展了基于视频的害虫状态连续跟踪研究。通过多目标跟踪算法跟踪储粮害虫的运动,获取每头害虫的运动速度,从数据角度衡量储粮害虫的活跃程度,可用在对杀虫实验效果的评估分析中。
目前已有一些学者开展了与此相关的研究工作。Yang等[5]提出了基于视频技术的储粮害虫目标检测算法,由于该算法检测活虫的稳定性更高,间接的达到了区分死虫和活虫的效果,但并未给出具体的准确率。Wilkinson等[6]提出了可以使用目标跟踪的方法测量蚊子的飞行运动,并计算了蚊子的飞行速度、位移变化距离等数据,为本文计算储粮害虫运动数据提供了思路;同年文韬等[7]提出一种融合卡尔曼滤波预测和颜色均值检测漂移跟踪的算法,对橘小实蝇成虫进行了目标跟踪实验,将多目标黏连的跟踪准确率从76%提高到了93%;周亦哲等[8]采用双流法实现了对视频中储粮害虫定位与识别,准确率为89.9%,但是目标身份错位问题(ID Switch,Identity Switches)有待解决。
本研究在实验室条件下建立一段时间的储粮害虫视频数据集,用于算法的训练和测试。提出一种基于Mean Shift改进的Deep SORT多目标跟踪算法,实现对运动害虫的跟踪,避免发生ID Switch问题。计算储粮害虫目标随时间变化的速度数据,提出一种判断储粮害虫活跃程度的方法,用于辅助实验操作人员进行杀虫效果的评估。
选用分布于我国大部分地区且危害较大的赤拟谷盗[9]成虫作为研究对象,由国家粮食和物资储备局科学研究院储运所提供。在实际的储粮害虫杀虫效果评估实验中,实验虫数量、实验仪器尺寸、实验采样的时间间隔并没有统一的规则,例如张涛等[10]采用5 000 mL的广口瓶,实验虫为200头;源丽枫等[11]采用1 000 mL广口瓶,试验虫为30头。通过一定时间的观察,发现在无饲料的情况下,害虫趋于向培养皿的边缘聚集,而害虫聚集情况对目标检测及跟踪的效果影响较大,在观察10、15、20和30头害虫在30 min内的运动情况后,发现20头以内害虫聚集情况减少较多,如图1所示。
图1 10头、15头、20头和30头赤拟谷盗在培养皿中的聚集情况
制作了10头、15头和20头赤拟谷盗害虫的8个数据集,为包含害虫运动的各种情况,并参考了Alfonso等[12]认为多目标跟踪中视频长度取决于目标个数、种类和活跃程度,主要使用10头5分钟视频数据集作为实验结果展示,15和20头赤拟谷盗害虫的视频数据集用于进行算法的评估。经实验测试,30帧/s的视频中相邻视频帧害虫位置变化不大,因此从每30张视频帧中提取一张图片作为一个数据集基本图像,通过人工标记出图像中所有害虫的位置,最终完成带标签的图片数据共计690张,用于训练本文算法模型,如表1所示。为了便于对比分析,在同一时间内的数据集中需要存在不同活跃程度的赤拟谷盗害虫,但活跃程度非一离散指标,难以在数据集中将所有活跃程度的情况全部覆盖。因此在本文构建的数据集中应至少存在速度为0和不为0这两种情况的赤拟谷盗害虫。
表1 不同害虫头数的数据集相关参数
选用Superyes摄像头拍摄视频数据集。Superyes摄像头可以摄像并自动生成文件夹储存视频,并且具有软件拍照和防抖动功能,拍摄的视频数据为30帧/s,视频帧的分辨率为800×600像素。
多目标跟踪通过相邻两帧的估计与关联,共享同一个ID,并可以通过这个ID得到目标在一段时间内连续的数据信息。主要分为两个步骤:目标定位与目标跟踪。
通过目标定位,可以在视频帧中获取到储粮害虫当前的绝对位置。本文目标检测算法选用了Faster R-CNN[13]框架,目标定位的流程图如图2。首先使用卷积层、激励层和池化层提取储粮害虫视频帧的特征图,用于区域建议网络(RPN,Region Proposal Network),通过Softmax函数判断锚(Anchors)属于前景或者背景,再通过边界框回归修正Anchors获得精确的Proposals。
RPN通过对特征提取网络提取的特征图进行滑窗操作,在每一个位置都生成三种长宽比分别是1∶1、1∶2和2∶1的Anchors,由于单头储粮害虫的图像分辨率约为18×25像素,因此将实验Anchors尺寸设为8、16和32像素,并分别对应三种长宽比,共9个。保证在每个窗口都可以根据不同的长宽比例、不同面积的Anchors逆向推导出对应原始图片的Proposals。
由于目标检测的作用是获取边界框(Bounding Box),实现目标定位的操作,因此在获取到Proposals后将其保存,作为目标跟踪的输入。
图2 基于 Faster R-CNN的目标检测算法流程图
目标跟踪是一种获取到当前帧的检测结果与上一帧预测结果进行匹配并更新,同时进行下一帧的状态预测的算法,通过迭代的方法完成在视频帧中找到同一个目标。
2.2.1 卡尔曼滤波状态预测
初始化时,给每一头储粮害虫目标启动一个具有唯一ID的跟踪器,位置与目标定位的Bounding Box位置一致,负责这个目标的跟踪。卡尔曼滤波通过储粮害虫当前帧位置预测下一帧跟踪器的位置。
使用8维状态向量表示每头储粮害虫在某时刻的状态,如式(1)。
(1)
本文采用线性匀速的标准卡尔曼滤波模型[14]直接观测储粮害虫下一时刻跟踪器的状态,如式(2)。
x′=Fx
(2)
式中:x为当前时刻下储粮害虫的状态向量;x′为下一时刻储粮害虫的状态向量;F为状态转移矩阵,如式(3)。
(3)
2.2.2 数据关联
将上一帧卡尔曼滤波预测出的跟踪器位置与目标检测位置进行数据关联,如果成功,迭代更新跟踪器的状态,完成基本的目标跟踪任务。本文采用了Deep SORT算法中数据关联的方式[15],即通过位置信息和表观信息两种信息衡量数据的关联程度。
目标检测的Bounding Box和跟踪器的前四个维度表示了其位置信息,如果越接近说明越可能是同一个目标。由于这四个维度的数量级具有差异且相互不独立,因此采用马氏距离来计算两个未知样本集相似度的方法,计算公式如式(4)。
d(1)(i,j)=(dj-yi)TSi(-1)(dj-yi)
(4)
式中:dj为第j个检测目标位置;yi为第i个跟踪器对目标的预测位置;Si(-1)为dj和yi协方差矩阵;d(1)(i,j)为第j个检测目标位置和第i个跟踪器预测位置之间的马氏距离。
定义一个门限函数b(1)(i,j)用来筛选检测结果,如式(5)。
(5)
式中:t(1)为这个四维空间中对应的马氏距离阈值。
如果储粮害虫第j个检测目标和第i个跟踪器之间的马氏距离小于该阈值,则认为两者匹配成功。
由于储粮害虫的运动不确定性较大,通过卡尔曼滤波预测提供的位置信息比较粗略,尤其是当储粮害虫产生遮挡和交叠情况,因此将储粮害虫的表观特征信息作为将跟踪器与检测目标匹配的另一种度量方式,通过余弦距离来进行计算,如式(6)。
d(2)(i,j)=min{1-rjTrk(i)|rk(i)∈Ri}
(6)
式中:rj为第j个检测目标的特征向量;rk(i)为第i个跟踪器的特征向量,且是个合集,保留过去跟踪成功的k个特征;1-rjTrk(i)为这两个特征向量之间的余弦距离;d(2)(i,j)保存着这两个余弦距离的最小值。相应的,也为这个度量方式设置一个阈值,如式(7)。
(7)
最后,融合马氏距离度量和表观余弦度量的加权得到综合匹配度和其阈值,如式(8)~式(9)。
c(i,j)=λd(1)(i,j)+(1-λ)d(2)(i,j)
(8)
(9)
式中:λ表示超参数,用于平衡两种度量方式的相对权值。由于储粮害虫的表观信息区别较小,因此设为0.8。通过距离度量和表观特征度量这两种方式来增强检测结果和跟踪器的正确匹配。
2.2.3 基于Mean Shift的跟踪策略
在储粮害虫的多目标跟踪过程中,若有两个目标相遇时,位置和特征信息均会更新,且在交叠的情况下无法获取深度的特征信息,容易发生漏检情况,因此在相遇后分离的情况下ID Switch的情况会有所增加。为解决这一问题,本文提出通过加入Mean Shift[16]的方法来提高分离后跟踪的准确性。Mean Shift算法是一种基于密度梯度上升的非参数方法,通过迭代运算找到目标位置,实现目标中心位置的跟踪。具体匹配策略为:①引入Mean Shift算法预测两目标的位置,当两目标距离小于一定阈值时,停止跟踪状态,以保证各跟踪轨迹的特征信息不被污染,进而作用于两目标分开后再匹配的时刻;②计算当前帧两目标检测框的中心距离,当大于一定阈值时重启跟踪器。
将数据进行预处理后,通过Mean Shift算法计算当前储粮害虫Bounding Box的质心的位置,如式(10)~式(12)。
(10)
式中:z为储粮害虫当前Bounding Box的中心点横纵坐标(u,v);Sh为以z为圆心,半径为h的圆区域;zi为包含在此区域的储粮害虫目标其他点到中心的距离;f为包含在Sh范围内点的个数;M(z)为Sh范围内储粮害虫的质心位置。
将高斯核引入Mean Shift函数,使得随着目标中心样本与被偏移点的距离的不同,其偏移量对均值偏移向量的贡献也不同。高斯核表达式如式(11),新的Mean Shift函数表达式如式(12)。
(11)
(12)
获得视频帧:使用OpenCV处理视频,以每帧一张图片输出视频帧,用于输入目标检测算法提取储粮害虫特征。
超参数设置:在训练目标检测网络时需要设置超参数加快模型的收敛速度,RPN网络中的Anchor设置为8、16和32像素。
数据预处理:将视频帧进行高斯模糊,使用19×19的高斯核去除由相机等其他环境产生的噪声,减少在边缘提取时的图像信息;再针对敏感分布不均的视频帧进行自适应阈值的二值化,生成直方图反投影图像,用于辅助Mean Shift进行计算。
训练:使用随机梯度下降SGD[17]优化器来学习网络权重,在每次迭代中,通过抽取16张视频帧来构建一个包含16个样本的小批量数据,学习率设置为0.01。
测试:在测试时,给定一个视频,每帧进行一次视频帧采样,进行目标检测,记录每帧图片储粮害虫的位置信息;将害虫位置数据和视频帧序列输入目标跟踪算法,输出每头害虫随时间的运动速度曲线。
活跃程度分析:分析目标跟踪输出的运动速度曲线,得出储粮害虫运动活跃程度等级。
3.2.1 算法评价指标
多目标跟踪的评价指标由两部分构成:多目标跟踪的准确率和精度,它们分别体现了目标的个数的准确程度和目标位置估计的精确程度,两者共同衡量算法连续跟踪目标的能力。
3.2.1.1 多目标跟踪准确率
计算每帧中所有未检测到的目标、错误检测的目标以及跟踪器和检测结果错误匹配的目标。计算公式如式(13)。
(13)
式中:mw为w帧时漏检数量占总目标数量的比例;fpw、mmew分别是w帧时误检和错误匹配的数量;gw为所有帧数。以5 min时长9003帧的视频为例,每1000帧进行一次记录,实验数据举例如表2。
表2 10头储粮害虫在9003帧视频(5 min)帧中
多目标跟踪准确率计算所有帧中目标的误检,漏检和错误匹配。非常直观的衡量了跟踪识别目标保持一致性的能力。
3.2.1.2 多目标跟踪精度
多目标跟踪精度表示目标位置估计的精确度,即所有帧中的预测正确的跟踪轨迹与目标个数的比值。它衡量了跟踪估计目标位置精度的能力,计算公式如式(14)。
(14)
3.2.1.3 为完善研究的目标范围,对储粮害虫的个数进行了扩充实验,实验结论如表3。
表3 不同数量的储粮害虫的多目标跟踪准确率和多目标跟踪精度
由于本研究使用的赤拟谷盗害虫属于聚集型害虫,因此多目标跟踪的准确率和精度会随着储粮害虫的目标个数增加而减少。在10~20头储粮害虫目标跟踪实验中,平均准确率为95.89%,平均精度为83.18%。
3.2.2 实验结论
速度体现了单位时间内害虫的平均移动距离,因此可以用速度描述活跃程度。为辅助储粮害虫的杀虫实验结果验证,提出了一种害虫活跃度的打分方式:记录一段时间内储粮害虫的速度变化,分析储粮害虫的运动状态变化情况。
将实验的储粮害虫每10 s的位移除以时间得出速度随时间变化曲线,如图3。
图3 害虫速度随时间变化图
以10头赤拟谷盗害虫的5 min视频为例,以100 s为间隔分为三个时间段,可以看出ID为4、5、7、9、10的害虫有速度变化,其中 ID为10的害虫速度变化明显;而ID为1、2、3、6、8的五头害虫速度重叠于最下方,曲线没有变化。分别计算各头害虫从跟踪开始的平均运动速度,如表4所示,可用于辅助判断储粮害虫的活跃程度。
表4 各轨迹ID的储粮害虫的速度活跃程度指标
储粮害虫的速度受储粮害虫品种、温度、湿度等培养环境的影响较大,参考2011年李兆东等[18]的分析,在18 ℃环境下,羽化两周的赤拟谷盗成虫在无粮平面的爬行速度约在3~5 mm/s,本研究拍摄数据集时的温度约为18 ℃,因此认为速度在1 min/s以下的活跃程度为低;1~3 mm/s的活跃程度为中等;大于3 mm/s的赤拟谷盗害虫活跃程度为高,由表4可知ID为10的害虫活跃程度高,ID为4、5、7、9的储粮害虫活跃程度中等,但ID为1、2、3、6、8的赤拟谷盗害虫活跃程度低,与实际情况相符。
原始视频帧如图4a,基于Faster R-CNN框架的目标检测结果如图4b所示,接着结合基于Mean Shift的Deep SORT目标跟踪算法进行多目标跟踪,每一个检测出的目标框的左上方有一个数字编号,该编号为目标的跟踪轨迹ID,在后续视频目标跟踪中,会给出每一个被跟踪目标的编号,以表示跟踪的结果。图4c和图4d为视频目标跟踪的结果示意图。
图4 实验过程视频帧示例图
图5 Deep SORT算法与本算法在处理ID Switch问题上的效果比较
对于两个目标相遇后分开的ID Switch问题,Deep SORT算法下两视频帧图为图5a和图5b,ID为11的目标靠近ID为9的目标后,两目标ID互换。本研究提出的算法的相邻两视频帧图为图5c和图5d,ID为4的目标靠近ID为10的目标后,两目标ID没有互换。
对比实验可以清晰的看出本算法对于解决ID Switch问题的有效性,在时长5 min的视频中害虫约发生19次相遇,其中Deep SORT算法中发生ID Switch 11次,本算法下发生ID Switch 0次。
本研究提出了一种基于Mean Shift的Deep SORT的多目标跟踪算法,用于辅助储粮害虫杀虫实验的判断。该算法在10到20头赤拟谷盗害虫的目标中平均多目标跟踪准确率为95.89%,精度为83.18%。经过与Deep SORT多目标跟踪算法的对比实验,验证了该算法在10头赤拟谷盗5分钟时长的视频数据集中,对于解决两目标相遇后的ID Switch问题上有显著效果。本文通过计算储粮害虫目标跟踪的运动速度数据给出了活跃程度的分级,但是由于本研究拍摄视频数据集较少,并且储粮害虫目标的表观特征较为相似,在跟踪过程中停止目标表观特征更新这一策略可能会产生误差,导致准确率和精度下降。如果能够将表观特征提取的精度提升到足以区分同种不同个体的害虫,将会大大增加算法的实用性。此外,本研究仅针对一种害虫进行了目标跟踪和活跃程度评估,如果有多种储粮害虫且能够进行分类将会使算法的实用性更加完备。