基于视频检测的储粮害虫死亡评估算法的研究
2019-11-15周亦哲周慧玲王威松
周亦哲 周慧玲 王威松
(北京邮电大学自动化学院,北京 100089)
在粮食储藏过程中虫害的发生和发展是需要密切关注的问题。目前,在我国普遍使用熏蒸药剂磷化氢或者低氧储粮以达到害虫防治的目的[1]。使用熏蒸药剂进行杀虫时,对人畜都有很高的毒性[2],因为缺乏有效的监测手段,时常会有过度熏蒸情况发生,不仅会造成环境污染,而且会使害虫的抗药性增强[3]。随着我国一些粮库陆续安装了储粮害虫图像采集装置,因此设想在使用磷化氢杀虫过程中,通过投放虫笼的方式或者诱捕的方式来实时监测储粮害虫死亡数量变化的情况,作为了解熏蒸效果以及指导熏蒸操作的参考依据。
在储粮害虫的检测方法中,现有的方法包括诱捕法、声测法、扦样过筛法、机器视觉法和近红外高光谱成像法等,这些研究工作主要集中在储粮害虫数量的计数与种类分类上[4-6],对于储粮害虫存活情况的在线监测方法很少,主要原因是图像采集设备近一两年才开始在粮仓内陆续安装,因此基于视频的储粮害虫数量和种类的识别算法研究工作正在逐渐展开。
近年来,使用深度卷积神经网络[7]提取图像特征,进行图像的定位与识别,检测准确率得到了很大的提升。在深度神经网络的基础上,2014年双流法神经网络首次被提出[8]。双流是指空间流和时间流,双流法是采用两个并列的卷积神经网络分别提取空间特征和时间特征,然后将两种特征进行融合,从而提升网络的识别效果。该网络首次应用在视频分类监测时,在视频分类数据集UCF-101上的准确率达到了87%。之后又有一系列双流法网络被提出以提升视频分类的效果[9-11]。
在本研究提出的基于深度卷积神经网络的双流法网络中,空间流处理单独的视频帧得到害虫的空间信息,时间流处理连续的帧差图得到害虫的运动信息,之后综合害虫的空间和运动信息联合判断储粮害虫的死亡情况。这种基于双流法网络的视频检测算法可以为杀虫过程中害虫死亡变化情况在线监测提供一种可能的自动化评估方法。
1 视频数据集建立
1.1 拍摄设备
为了训练与测试本研究的双流法神经网络,需要建立储粮害虫死亡过程的视频数据集。由于赤拟谷盗分布于我国大部分地区,且危害较大[12],所以选择赤拟谷盗作为研究对象,在自然场景中拍摄储粮害虫的死亡过程作为一种模拟,建立了害虫死亡过程的视频数据集。
分别通过小米手机和Superyes摄像头拍摄视频,建立视频数据集。小米手机拍摄的视频数据为30帧/s,视频帧的分辨率为1 280×720像素,其中单头储粮害虫的图像分辨率为20×40像素左右。Superyes摄像头可以摄像并自动生成文件夹储存视频,具有软件拍照和防抖动功能。Superyes拍摄的视频数据为30帧/s,视频帧的分辨率为800×600像素,其中单头储粮害虫的图像分辨率为15×25像素左右。这两种设备拍摄的视频清晰度较高,可以捕捉活虫与死虫之间的差别。通过两种设备拍摄数据集是为了增加数据的多样性,加强识别算法的泛化能力。小米手机相机和Superyes摄像头的具体参数如表1所示。
表1 小米手机相机和Superyes摄像头具体参数
1.2 数据集信息
通过对储粮害虫死亡过程的实验观察,视频中害虫数量超过25头会常常发生害虫聚集现象。因此拍摄的视频中的害虫数量控制在25头以下,通过简化这个因素,将重点放在害虫死亡判别的算法研究上。由于害虫位置的变化较慢,因此从视频中每隔50帧提取一张视频帧,人工标记图像中的所有害虫的死、活情况和目标边界框(以下简称目标框),最终完成带标签的图片数据621张。在获取视频之后使用两帧差分法处理相邻帧生成帧差图,用于提取害虫的运动信息。图1示例了2种设备的视频帧和生成的帧差图,表2为数据集中不同视频时长对应的视频数量和训练集数量。
图1 视频帧和帧差图
单个视频时长10 s5 min30 min视频数量/个90104训练集数量/个7282
2 双流法视频检测算法
2.1 检测算法流程图
在视频检测任务中,可以使用单流法完成视频检测的任务。单流法视频检测算法是从视频流中选取视频帧,通过图像目标检测算法得出害虫的位置和害虫死、活的分类。单流法算法只使用了视频中的空间信息,视频帧之间的运动信息未使用,导致运动信息的浪费,会影响视频检测的准确率。单流法视频检测算法流程图如图2所示。
图2 单流法图像检测算法流程图
双流法视频检测算法是基于单流法视频检测算法进行改进的,它分为空间流和时间流2个网络,其识别基本流程是:(1)从视频流中选取视频帧,通过两帧差分法获取4张帧差图;(2)将选取的视频帧送入空间流网络中,采用图像目标检测算法对害虫进行定位与分类;(3)将对应的4张帧差图送入时间流网络中,采用三维卷积神经网络提取害虫的运动信息辅助于害虫死亡的分类;(4)将空间流特征与时间流特征进行融合,用以提升害虫的分类准确率;(5)使用融合后的特征进行位置坐标回归和分类,得到最终的害虫定位与分类结果。双流法视频检测算法流程图如图3所示。
图3 双流法视频检测算法流程图
2.2 空间流网络
本数据集中最小的单头储粮害虫的大小为15×25像素左右,属于典型的小目标检测任务。另外在储粮害虫死、活的判别过程中,高准确率十分重要,由于Faster R-CNN算法具有检测精度高的特点[13],因此本研究选择其作为目标检测基础算法。在目标检测算法中,用于提取图像特征的特征提取网络十分重要,由于ResNet[14]网络在以往ImageNet图像分类比赛中的表现明显优于AlxNet、VggNet、GoogleNet这些网络[15],所以本研究使用ResNet101网络为目标检测算法的特征提取网络。
为了对小尺度害虫进行有效识别,本研究的空间流网络对Faster R-CNN算法进行了改进,改进后的基本流程是:(1)通过调整输入图片大小,使视频帧分辨率变为800×1 024像素;(2)将调整大小后的视频帧送入二维(以下简称2d)卷积神经网络ResNet中进行特征提取;(3)利用区域建议网络(Region Proposal Networks,RPN)对ResNet网络提取得到的特征图提取候选区域,生成不同长宽比和不同尺寸的默认框(anchor),得到初始的害虫位置候选框;(4)使用ResNet网络提取到的不同尺寸的特征图进行特征融合,对融合之后的特征图进行目标框与默认框偏移量的回归和害虫分类;(5)对检测到的候选框应用非极大值抑制算法(NMS),得到害虫最终的预测框坐标和分类类别。
改进后的空间流网络结构图如图4所示。方框内数字表示各个特征图的大小,其中将用于特征融合的特征图分别使用第三层(Conv2d_3)、第四层(Conv2d_4)、第五层(Conv2d_5)和第六层卷积层(Conv2d_6)的特征。在Faster R-CNN的基本流程(4)中,原始的Faster R-CNN算法使用特征图Conv2d_5的特征生成区域建议后,只使用了Conv2d_5进行害虫位置的回归和种类的分类,但是由于Conv2d_5为原图大小的1/16,会丢失小于16像素的害虫的信息,所以会导致较多小目标害虫发生漏检的情况。由于图像特征图的局部细节特征和全局语义特征对于定位任务来说同样重要[16],单独使用Conv2d_5层特征进行回归不能同时利用局部细节特征和全局语义特征。而特征图Conv2d_3的大小为原图的1/8,包含了更多的局部细节特征。所以本研究在Conv2d_3后添加一个短连接,并且增加一个Roi Pooling层,将RPN区域建议网络提取的建议区域映射到Conv2d_3结构输出的特征图上,之后将Conv2d_3的局部细节特征和Conv2d_5的全局语义特征相融合,用以提升小目标害虫的识别准确率,增加的短连接的连接方式如图4中虚线部分所示。
2.3 时间流网络
视频序列具有连续性的特点,在视频数据中如果没有活虫,则连续帧的变化很微弱,如果存在活虫,则连续的帧和帧之间会有明显地变化。通过用两帧差分法将相邻两帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为活虫,从而实现害虫的运动信息的提取。两帧差分法的具体步骤为:读取视频、选取两帧、图像灰度化、图像滤波、帧间做差、二值化、形态学操作。
生成帧差图之后,使用三维(以下简称3d)卷积神经网络提取储粮害虫的运动信息[17]。3d卷积是通过堆叠多个连续的帧差图组成一个立方体,然后在立方体中运用3d卷积核捕捉运动信息的。
本研究提出的时间流网络结构如图5所示,其中用于特征融合的特征图分别来自第三层(Conv3d_3)、第四层(Conv3d_4)、第五层(Conv3d_5)和第六层卷积层(Conv3d_6)的特征。时间流网络以4张帧差图作为网络的输入,使用3d卷积层和3d池化层提取帧差图的特征。
2.4 双流法视频检测网络的特征融合方式
在进行空间流特征和时间流特征的融合时,有多种不同的融合方式选择。本研究实验了4种融合方式:特征求和(Sum)、特征合并(Concate)、特征取最大值(Max)和特征卷积(Conv)。实验在特征融合位置为Conv2d_6+Conv3d_6的情况下进行,表3所示的是各种特征融合方式的平均准确率[18](Mean Average Precision,MAP)。通过比较结果可以看出,采用特征求和(Sum)的方式检测效果更好。
图4 空间流网络结构图
图5 时间流网络结构图
图6 双流法特征融合位置图
表3 不同融合方式的平均准确率
2.5 双流法视频检测网络的特征融合位置
在进行空间流特征和时间流特征的融合时,有多种不同的融合位置选择,将融合位置分为4种情况进行实验。实验是在融合方式为特征求和(Sum)的情况下进行,融合的位置分别是:Conv2d_3+Conv3d_3、Conv2d_4+Conv3d_4、Conv2d_5+Conv3d_5和Conv2d_6+Conv3d_6,分别对应了图6中的①②③④虚线的位置。表4所示的是各种特征融合位置的平均准确率。可以看出,将Conv2d_6+Conv3d_6(位置④)进行特征融合的方式得到了更好的检测效果。
表4 不同融合位置的平均准确率
3 实验与评估
3.1 实验
3.1.1 数据增强:在数据输入的时候对图片进行反转操作以扩充训练数据,扩充后的数据量为原始数据量的2倍;
3.1.2 预训练:使用迁移学习[19]的方式,在图像分类数据库ImageNet上预先训练的模型,来初始化网络中的参数;
3.1.3 获得帧差图:使用Opencv处理视频帧,使用每一个视频帧相邻前2个时刻和后2个时刻的视频帧,生成4张帧差图;
3.1.4 超参数设置:在训练过程中,通过多次实验测试得到下面超参数初始值:学习率为0.01,每一批次的训练数量batch size为16,区域建议网络RPN中的anchor大小设置为{4,8,16,32},极大值抑制参数NMS为0.7,采用的随机梯度下降SGD优化器进行网络优化。
3.2 结果与评估
为了验证双流法视频检测算法对于储粮害虫的检测能力,训练了单流法视频检测算法与双流法视频检测算法进行对比。表5所示的是两种算法在不同基础网络情况下储粮害虫的分类和定位的平均正确率。通过比较结果可以得出,采用基于Faster R-CNN+ResNet101(ours)的双流法视频检测算法得到了更好的检测效果,平均准确率达到了89.3%。
表5 不同算法的平均准确率
图7为双流法视频检测算法与单流法视频检测算法的害虫检测效果对比图,其中图7a和图7c是小米手机拍摄的视频帧检测结果,图7b和图7d是Superyes摄像头拍摄的视频帧检测结果,可以看到双流法视频检测网络可以有效改善害虫误检的情况。
4 结论
本研究将视频中的空间流和时间流相结合,提出了一种双流法视频检测算法用于判别储粮害虫的死、活情况。本文使用小米5手机和Superyes摄像头拍摄视频,对赤拟谷盗建立了储粮害虫视频数据集,视频为30帧/s,视频数据集的视频数量为104个,视频的总时长达到200 min;对Faster R-CNN目标检测算法使用特征融合的方法进行改进,使算法能够更好地检测出小尺度害虫,提高害虫的定位准确率;运用双流法在目标检测过程中加入害虫的运动信息,提高死虫与活虫的分类准确率;在视频数据的测试集上验证了模型的有效性。经过实验测试,双流法视频检测算法识别准确率达到了89.3%,比单流法视频检测算法提高了6.5%的准确率,从而证明了双流法视频检测算法的有效性,可以较为准确地反映害虫死亡过程中存活情况的实时判断,也对粮库杀虫防治的量化指导进行了积极的探索。
注:a~b为单流法检测结果;c~d为双流法检测结果。图7 单流法和双流法检测结果