基于深度学习的粮库测控技术研究进展
2021-03-16李智慧
高 辉 甄 彤 李智慧
(粮食信息处理与控制重点实验室;河南工业大学信息科学与工程学院,郑州 450001)
目前,中国粮食的播种面积约为17.41亿亩,粮食总产量达6.64亿t,粮食的产量及消费量均占到全球粮食生产量与消费量的四分之一[1,2]。
粮库测控技术通过计算机、传感器、摄像头等设备对粮库人员、粮区环境及运输中的粮情变化进行实时检测[3]。对运粮车的可视化追溯[4],包括车辆检测、车型识别以及检测车辆的车牌、车身颜色等信息,确保出入库车辆一致;对粮食装卸仓房动态视频跟踪,确保在指定仓库作业。库区人员监控[5]包括对库区内工作人员识别考勤;监控仓内作业人员的摔倒等异常行为。粮库仓房的监控包括监测识别害虫、发霉、发芽及温湿度[6];监控仓房内的火焰、烟雾等情况;通过监控粮面高度、空间体积,结合粮食品种仓房信息进行数量检测。
现有车辆检测主要是光流法,计算复杂,易受光照影响[7];帧间差分法,对于静止、塞车车辆的检出有所困难[8];背景建模法,受光照、背景中非车辆对象移动等影响大[9]。车牌识别有模板匹配[10]、特征统计[11]和机器学习等,前两种方法复杂度低,但鲁棒性不强,相似字符易出错。机器学习方法[12]理论精度与实际效果有差距。车型识别主要利用车辆的前脸特征[13],根据车牌、车标、车灯、空间曲线特征等进行分类,正确率有待提高。车辆跟踪[14]特征点的选择好坏直接影响跟踪效果。现有人员识别基于子空间的整体特征提取方法有线性判别分析(LDA)、主成分分析(PCA)等[15]。基于局部特征识别方法有Gabor特征、LBP特征等,相比子空间方法只考虑模式全局特征,更多考虑空间特征分布。行为识别手工提取特征方法[16],包括轮廓剪影、运动轨迹(IDT)等,经典IDT算法分类效果好,但特征维度较高,运算资源消耗过大。现有储粮害虫检测[17-19]主要有声检测法,声音信号常常受到传感器、环境噪声影响;取样检测法侧重人工检测,工作量较大,考虑因素较多;近红外检测法不易检测虫害较轻的粮食,受粮堆湿度影响较大;电导率检测法只能检测活虫,不适用于虫卵、幼虫的检测。现有粮堆温度预测模型[20,21]主要有基于三传理论的计算模型、利用有限元法建立温度场的预测模型,模型预测方法对大量非线性数据处理能力相对较弱。
深度学习网络通过构建大量神经元节点和多层隐含层结构,将底层特征转化为更加抽象的高层特征,实现复杂函数的逼近,建立起从输入到输出的关系。该方法具备特征自动提取,完美的函数拟合能力,强大的特征表达能力,多类别物体检测,网络灵活性、可移植性好等特点[22,23]。除此之外,我国粮库测控系统主要面临检测项目单一、粮库测控技术落后以及精度偏低等问题。故本文通过总结各种检测、识别、跟踪、预测算法的优缺点,着重突出新一代深度学习技术与粮库系统的结合,将为智能化粮库的实现做出贡献。
1 基于深度学习的粮库出入库车辆检测
1.1 车辆检测
朱立志[24]利用RPN网络将特征图上的特征点映射到输入图像相应位置,绘制区域建议框,通过计算IoU确定训练样本,最终利用分类层确定前景、背景,根据回归层预测坐标值。Faster R-CNN网络结构如图1所示。
图1 Faster R-CNN网络结构
结果显示,在光线微暗等复杂背景下,对车辆检测准确率达到90%。泛化能力测试,结果准确率达到80%。
刘肯等[25]利用Skip connection思想改进YOLO算法,输入直接进入后面的layer,避免梯度消失的同时,加强层之间的特征关系。对比发现,YOLO算法检测准确率达83.4%,改进后的YOLO-D算法检测准确率达到87.1%。YOLO及SSD网络结构如图2所示。
曹伟[26]认为YOLO算法实时性好,但检测准确率较低。对Faster R-CNN的可靠性上给予肯定,但认为实际车辆方位多样、道路复杂,需进一步研究。故提出一种利用不同卷积层上的特征进行多尺度预测的SSD算法,车辆检测网络结构前面使用VGG-16网络作为基础,后面网络添加几个由大到小的额外卷积层,实现多尺度特征图检测。在相同检测样本条件下,该算法检测准确率达到90.1%,高于Faster R-CNN的88.4%。陈梦[27]在SSD算法基础上通过金字塔式多尺度穷尽搜索法改进SSD检测器,相同条件下,改进的SSD算法检测率达到98.80%,高于原始SSD算法的97.13%。但对小目标来说,检测准确率和检测速度不是太过理想。
1.2 车牌识别
蒙特卡洛方法首先生成一个均值为0,标准差为0.01的正态分布随机矩阵,判断随机矩阵是否符合一致分布,循环迭代,直到生成符合要求的卷积核。李达[28]利用蒙特卡洛方法对卷积核初始化方法进行优化,通过CNN网络过滤疑似车牌区域,使用滑动窗口扫描车牌图像,获取特征图,通过识别器识别字符,筛选最优解。
结果显示,CNN网络特征提取效率高,对光照不均匀、车牌倾斜等具有很好鲁棒性。但其方法和步骤比较繁琐,不能实现实时检测。
高路[29]直接从RPN产生的候选区域对应的特征图中识别车牌字符,通过BRNN将车牌识别视为序列标记问题解决,选择CTC作为损失函数,实现端到端检测识别。BRNN网络结构如图3所示。
图2 SSD及YOLO网络结构
图3 BRNN网络结构
和基于Faster R-CNN检测出车牌,再经裁剪送入BRNN进行识别的两阶段方法相比较,端到端的方法在3种数据集上7字符平均识别率为81.64%,识别速度320 ms,优于两阶段方法。但在复杂场景下,仍不满足实时性要求。
陈强等[30]利用CRNN直接整行循环卷积识别,循环层使用多个双向传播的LSTM组件预测标签分布,再使用转录层将预测变为实际标签序列。实现发现,字符识别准确率达98.06%。且能适应黑暗、强光、车身反光、雨雪天气、车牌距离很远或很近、车牌歪斜等情况。CRNN网络结构如图4所示。
图4 CRNN网络结构
王潇凡[31]采用将CNN、LSTM型循环神经网络与CTC目标函数进行网络模型融合,进行无分割字符序列识别,使用4层卷积、池化提取特征,双层LSTM作为隐含层网络,CTC将LSTM习得的特征向量解码为字符。识别精度达到95.5%,单个样本识别时间为0.07 s。基于循环神经网络的OCR车牌识别网络如图5所示。
图5 基于循环神经网络的OCR车牌识别网络
针对小数据集,识别精度较高,但该网络识别字符序列的实时性有待提高。
1.3 车型识别
级联MT-CNN网络,通常应用于需要同时进行位置预测、分类等至少两种学习任务[32]。利用MT-GooGleNet网络模型进行车辆定位,再送入车型分类的神经网络中,挖掘出车辆的制造商家、型号与生产年代。
在GooGleNet网络基础上增加3组对比实验,分别进行网络数据增强、网络预训练及同时进行数据增强与预训练,最高识别正确率达85%,该方法能有效分离相似车型。但需不断更新车型数据库,另外在雨雪极端天气下的车型识别需进一步研究。
刘辉[33]基于深度残差单元的结构级联,将大型数据集的分类准确度提升到新高度。实验通过对比ResNet-50 和 ResNet-101,对于20次测试的分类top-5的准确率,Resnet-50平均准确率达93.7%,优于Resnet-101的90.5%。泛化能力测试上,以GoogleNet网络为参照,ResNet-50的网络分类抗干扰能力远远高于GoogleNet网络,但精确识别还需要进一步研究。
吴双敬[34]提出多阶段卷积神经网络(MS-CNN)解决车型精确识别问题,在ResNet-50基础上进行优化,网络S4层后进行空间金字塔池化(SPP),通过SPP多级池化,提取特征图中多尺度信息;网络S5层后增加1×1卷积,并利用全局平均池化代替全连接层,实现信息整合、降维,减少过拟合。在MTV-1638s数据集实验显示,MS-CNN车型识别精度为95.51%,略高于ResNet网络。
周野[35]提出MS-B-CNN算法进一步研究车型精确识别问题。B-CNN中网络A主要完成细粒度图像的区域检测,网络B完成提取网络A检测到的特征,对K个角度下提取的卷积特征进行线性融合,用融合特征训练模型分类器实现分类。网络模型如图6所示。
图6 MS-B-CNN网络结构
实验发现,基于MS-B-CNN的多尺度特征融合的平均正确率达到93.63%,应用在车辆正面和背面角度,识别准确率达95.73%和95.26%,更好的基础网络会进一步提升识别效果。
1.4 车辆跟踪
车辆跟踪的实现结合运动检测、车辆识别及跟踪三个模块[26]。运动检测模块通过高斯混合背景建模,筛选出运动区域。多尺度特征图预测的SSD车辆检测算法提取图像特征,区分是否存在车辆。车辆跟踪利用Kalman滤波算法预测视频车辆的下一帧位置坐标,利用Camshift算法迭代搜索当前帧的实际位置,循环往复,直至目标车辆丢失为止。结果显示,该方法对车辆的跟踪实时性好,准确性高,但对小目标车辆的检测跟踪效果还需进一步研究。
杜省[36]研究三种车辆跟踪算法,基于k稀疏深度降噪自编码器的目标跟踪算法采用深度降噪自编码器作为离线训练模型,学习目标的通用特征,通过引入k稀疏限制构造分类神经网络,学习输入的不变性特征,输出特征向量空间点的置信度,根据粒子置信度计算概率并更新权值以决策车辆位置;相比前者,基于多深度自编码器融合的目标跟踪在离线训练模型时利用两个深度自编码器学习灰度特征和梯度特征,进行线性融合;基于多深度自编码器自适应融合的目标跟踪不仅利用两个深度自编码器学习灰度特征和梯度特征,而且构建两个分类神经网络,结合粒子滤波算法,根据不同特征图的粒子分布情况,选取前10%置信度最大的粒子作为最优粒子,自适应确定特征融合权值,最终实现目标状态估计。实验显示,三种方法的跟踪准确性和跟踪鲁棒性取得较好效果。
2 基于深度学习的粮库人脸识别及行为识别
2.1 人脸识别
BP网络人脸识别使用滑动窗口获取Harr的矩形特征,网络训练利用反向传播算法将最后产生的误差逆向回传网络模型,循环迭代使参数最优,然后进行人脸图片的特征提取。将待测人脸的特征向量与人脸特征数据库相对比,判定人员身份。该系统能稳定、实时的进行人脸提取。但该网络需大量样本训练,且存储空间较大。
万士宁[15]通过保留原始VGG-16底层网络模型,增加Block5的卷积核,去掉全连接层-1与全连接层-2,缩减参数数量和计算存储时间。前12卷积层参数采用Karen Simonyan公布的VGG-16权值参数,其余层重新训练。网络人脸识别准确率达94.0%。但对于复杂图片(未预处理)识别效果稍差,需要更多图片训练提高泛化能力。根据上述缺点,采用34层Residual卷积神经网络,用滑动步长2的卷积操作代替Pooling,网络初始化方法采用随机初始化。网络人脸识别准确率达96.0%。该方法网络层次较深,适用Casia-WebFaceResidual Netork等大型数据集。
图7 multi-CNN网络
图8 双通道DCNN网络结构
柯鹏飞等[37]提出一种基于改进CNN网络和集成学习方法,由两个CNN组成一个multi-CNN,采用投票法集成策略将多个学习器结果凸组合并为最终结果。CNN网络前两层卷积核采用5×5,最后一层采用3×3卷积核,每层后采用2×2池化,Residual单元分别利用1×1、3×3、1×1卷积核控制输入向量与输出向量,最终采用平均池化层代替全连接层。multi-CNN网络模型如图7所示。
实验显示,在Color FERET、AR和ORL数据集的识别率分别达 98.89%、99.67%和100%。
2.2 行为识别
双流卷积神经网络进行行为识别时,重点是通过独立的时间和空间双通道进行行为特征提取及融合,即空间通道是通过视频中静止的每一帧RGB图像来提取静态特征信息,时间通道是提取每一帧水平方向和竖直方向上的光流分量及光流幅值,来表征动态特征信息。再通过加权平均的方法将各自通道的单帧对象转换为空间通道视频特征与时间通道视频特征,实现时空信息融合,给出综合判定结果。通过实验,在KTH行为数据集上获得96.18%的识别准确率[38,39]。双通道DCNN网络结构如图8所示。
实验发现,双流卷积神经网络的行为识别取得较好识别效果。但离实际应用还有一定距离,网络训练需要更多的数据支持,往往还需要考虑动作的时序信息。
3 基于深度学习的储粮安全测控技术
3.1 火焰识别
粮库的重点工作基本都放在预防为主,即对温度和湿度的监控以及使用烟火报警器的预警,伴随深度学习在各领域蔓延,利用神经网络进行烟火识别的研究逐步拓展。
R-FCN+ResNet火焰检测模型,第一部分采用ResNet深度卷积网络自动提取特征;第二部分R-FCN通过特征谱图捕获疑似火焰区域集合,给出分数图;第三部分设为二次分类模型,根据给出的位置信息,截取原始图片中的火焰图像,送进ResNet中进行二次识别[40]。
结果显示,该方法对Biilkkent大学的视频数据集上的识别精度达到98.25%,并且误报率低、稳定、可靠。
3.2 粮虫识别
刘治财[17]分别对比Faster R-CNN、R-FCN和YOLO网络,基于VGG-16、ResNet-101为基础的Faster R-CNN算法在测试数据集上的平均准确率达74.24%、81.36%,因ResNet-101网络存在大量重复计算,故在该网络基础上,采用R-FCN算法,平均准确率达83.44%。YOLO算法在Google-Net网络上,平均准确率只达到68.77%。为了进一步提高精度,基于R-FCN算法,将基础网络改为网络更深但是参数更少的DesNet-121网络,平均准确率达到85.28%。
高雅[18]选取粮仓表面、粮虫较多的位置及墙壁,搜集粮虫图片,形成数据集;在Keras框架下运用Sequential模型,调整不同的激活函数,对比七层CNN与九层CNN,并对九层CNN进行随机失活方法(Dropout)的参数优化,对比不同卷积神经网络模型下的训练集及验证集的识别准确率。
实现显示,Relu函数的识别准确率较高,迭代次数少,曲线平滑。在此基础上对比两种不同卷积神经网络,七层卷积神经网络在迭代20次时,验证数据集的识别准确率为80%,改进后的九层卷积神经网络在迭代10次时,验证数据集的识别准确率为98.6%。但该方法未能实现对多个生长期及多种类粮虫的识别,实时识别有待进一步研发。
3.3 粮堆温度预测
粮食储藏过程中,影响最大的便是温度。 BP网络将影响因子作为输入数据,将实际温度作为输出结果,在预测结果与实际结果的误差大于期望值时,对误差进行反向传播,更新各层神经元的权值和阈值。因BP神经网络的初始阈值和权值是自己学得,具有随机性,因此提出GANPSO-BP算法,通过粒子群算法寻觅目标最优解,并对粒子的惯性权重和阈值进行优化,同时利用遗传算法对寻优过程进行优化[41]。
测试数据来自华东某粮库2016年前11个月的粮仓数据,以此预测12月份粮仓中粮堆底层的平均温度。对比BP,PSO-BP和GANPSO-BP算法,GANPSO-BP算法的预测结果误差数值相对较小,稳定性较高。
在考虑小数据量的情况下,提出基于循环神经网络的粮仓温度时间序列预测方法,而RNN网络容易出现梯度消失与梯度爆炸,提出基于循环神经网络-长短时记忆法(RNN-LSTM)粮仓温度时间序列预测模型。
LSTM模型在原有RNN模型的基础上,增加了选择性学习的细胞状态,主要通过遗忘门、输入门和输出门来控制细胞状态。CLSTM是在LSTM基础上的变形,把遗忘门与输入门合并为新的门限单元。实验对比,选用CLSTM作为预测模型细胞体,选用改进SRelu激活函数,选择L2正则化,提升泛化能力。由于梯度下降算法造成冗余计算,故采用随机梯度下降算法,有效避免使用所有样本进行参数更新[42]。CLSTM单元模块图如图9所示。
图9 CLSTM单元模块图
测试数据来自山东某粮库2015年全年和2016年前十个月的粮仓数据,以此预测2016年后两个月情况。输入数据包括粮仓外部温湿度、粮仓内部温湿度及粮堆温度,主要预测粮堆底层温度的平均温度。通过在相同条件下对比RNN、LSTM、GRU及CLSTM方法,CLSTM均方误差最低,而改进后的CLSTM方法预测结果更好。
3.4 粮食籽粒检测与计数
粮食籽粒检测与计数主要使用图像处理,分水岭算法、大津阈值法等,都有一些无法克服的缺点,为更加准确的识别粘连籽粒,基于深度学习的粮食籽粒检测与计数的方法及装置走进视野[43]。
网络模型的构建,主要包括小目标特征提取、密集特征提取及目标检测。特征提取主要通过密集连接各个卷积层,并在各层间增加筛选策略,根据删除连接后精度的变化情况,筛选出最优连接。目标检测通过生成目标候选框及标注概率值的方法,采用双线性插值方法提高图像特征。训练模型,直至误差很小。
对于实际粮食籽粒数9 033颗,检测出9 068颗,正确检测出9 024颗,9颗漏检,误检44颗。
3.5 粮库视频监控图像去雾
在粮库中,粮食的出入运输、装卸、粮面翻动等作业,都会产生大量的粉尘,并结合雾霾等天气因素,获取的图像的颜色、纹理等细节信息严重弱化[44,45]。
去雾图像的获取取决于大气散射模型中全局大气光及图像透光率的准确估计,而图像中的亮白色区域往往对大气光估计造成影响。通过四叉树分解法对大气光进行估计,即把图像以递归形式分割四象限,将最终区域的亮度平均值作为大气光。图像透光率依托多尺度卷积神经网络进行特征学习及特征融合获得粗滤图,与灰度图像融合后得到细化图像,利用大气散射模型生成清晰图像。利用2 000幅清晰图像,根据大气散射模型以及透射率随景物到成像设备的距离成反比,生成雾霾图像数据集,进行训练。雾尘图像处理流程如图10所示。
图10 雾尘图像处理流程
结果显示,该方法在图像边缘的处理结果好,提取效果对视觉更舒服,颜色比较亮,对天空区域及亮白色区域的处理比较自然,较好的去除雾气,不仅适用合成图像,而且适用真实图像。
4 结论
对比发现,Faster R-CNN两阶段检测模型,精度高,但是运算速度慢、训练起来相对困难,YoLo单阶段检测模型,运算速度快,效率高,但是精度较差;深度学习方法对基础网络的依赖性较强,通过选择高性能的基础网络能从根本上提高识别效率;在此基础上,通过改进网络模型架构、选择适当激活函数、平衡网络参数、优化卷积核初始方法、保证大数据集样本训练、进行特征网络融合等,可进一步提高识别效果;与此同时,深度学习方法的检测识别、预测等效果参差不齐,对于高性能骨干网络的构建、更加丰富的图像信息的获取、小目标物体的高精度检测、多类别复杂环境检测、检测算法的轻量化需求等,将是深度学习获得全面推广必须克服的困难。
近年来,我国已建立健全中央、省、市、县四级粮食储备体系,第四代依托无线传感网络的粮库测控系统逐渐开始部署,依托现有常规检测方法的优势,尝试性利用深度学习的一些成熟方法进行补漏,从实践挖掘出深度学习方法的不足之处,逐步完善,将进一步建立健全粮库测控系统。