史方青,王虎林,黄华
(兰州理工大学机电工程学院,兰州市,730000)
马铃薯具有极高的营养与药用价值,其加工产品被广泛应用于我国医药、农业、食品等行业。2019年农业农村部指出要大力推进马铃薯主食开发,明确了马铃薯产业的国家粮食安全策略、农业供给侧结构性改革中的作用及目标[1]。马铃薯产业的机械化水平逐年提高,如马铃薯播种机械化[2]及马铃薯分级机械化[3]等。然而有关马铃薯切种机械化的研究较少,且主要依赖于人工,存在劳动力短缺、效率低、费用较高等问题,故实现马铃薯切种机自动切种是必然需求,芽眼的准确识别是该功能实现的前提。
芽眼识别是马铃薯切种机实现自动切种的先决条件,但目前国内外针对芽眼识别的研究却相对较少。李玉华等[4]在三维几何空间内通过对S分量的分析,利用四特征综合判定准则对芽眼纵向识别,并根据芽眼的横向特点进行筛选,结果表明该方法的识别准确率可达91.48%;吕钊钦等提出一种基于Gabor特征的马铃薯芽眼识别方法,结果表明该方法的识别准确率为93.4%;Xi等[5]通过将混沌变量映射到K均值算法的变量中,用混沌变量代替其寻找全局最优值,结果表明芽眼总的分割精度为98.87%。上述方法均为浅层特征提取,无法适应随机条件下的马铃薯芽眼识别,判别能力相对较弱,均无法同时保证检测性能及识别速度。
卷积神经网络以其高性能特征提取、覆盖范围广、适应能力强等优点,被广泛应用于农业中[6-8]。目前深度卷积神经网络已发展为两大类,其一为两阶段处理模型,如Faster R-CNN[9]、Mask R-CNN[10]等,其二为端到端的一阶段处理模型,如SSD[11]、YOLO[12-14]系列等。席芮等[15]通过对Faster R-CNN网络的改进实现了马铃薯芽眼的识别,结果表明该模型识别精度为96.32%,召回率为90.85%;刘小刚等[8]在复杂环境中通过改进的YOLOv3网络连续识别草莓,结果表明该模型针对测试集的mAP值可达87.51%;赵德安等[16]通过YOLOv3网络对不同光线环境中存在遮挡、粘连及套袋等多种情况的果实进行了识别定位,结果表明该模型识别准确率为97%,召回率为90%。
基于上述分析,本文提出基于卷积神经网络的马铃薯芽眼识别方法。通过自然光条件下拍摄的图像建立数据库,经过图像预处理及数据增广扩充数据集以增加网络的鲁棒性。在YOLOv3网络的高性能特征提取下,经过卷积、上采样等操作实现马铃薯芽眼的快速、准确识别,为马铃薯切种机自动切种奠定了基础。
为了识别马铃薯芽眼,需采集相关图像建立数据库,包括训练集、验证集及测试集。本文测试用马铃薯出自甘肃省永昌县,品种为大西洋。为了使马铃薯芽眼识别环境贴近现实,选择于自然光良好的环境中对含有芽眼的马铃薯进行多方位拍摄,以贴合后期马铃薯切种机芽眼识别时的环境。图像采集设备为数码单反相机,型号为NikonD3400。初始采集图像并筛选得到图像630张,均为jpg格式。为了提高处理效率并减少数据运算量,将图像大小压缩为600像素×800像素。为了扩充数据集,通过对原始图像进行裁剪、旋转、缩放、色度增强等数据增广操作,单种处理或者多种组合处理以得到马铃薯芽眼数据集,数据增广结果如图1所示。
图1 数据增广结果
对每一张马铃薯芽眼图像使用LabelImg工具进行手动标注,如图2所示。其中矩形框用于马铃薯芽眼的识别,统一保存为PASCAL VOC格式,使用的注释为PASCAL VOC中xml文件,最终获得6 072张图像。其中测试集608张,训练集5 464张,验证集于训练集中随机选取,最终验证集与训练集比例呈1∶9。
图2 数据标注
1.2.1 YOLO系列模型
YOLO系列模型是目前比较流行的算法之一,它不同于两阶段处理模型,该系列模型均为端到端的一阶段处理模型。YOLOv1[12]网络结构较为轻量,但存在识别物体精准性较差、召回率不高、较小目标和邻近目标识别效果不佳等问题;YOLOv2[13]网络使用了Darknet-19网络,并引入BN层加速模型收敛,模型中均采用卷积层与先验框,去掉了以往含有的全连接层。同时采用了k-means聚类直接预测网格单元的相对位置,一定程度上提高了模型的识别准确度;YOLOv3[14]网络在YOLOv2的基础上做了进一步的提升,使用了分类器Darknet-53以及多尺度预测,在类别预测方面将原来的单标签分类改为了多标签分类。上述变化不但增强了网络的提取能力,而且在进一步提高小目标检测精度的基础上加快了网络的运算速度。YOLOv3网络的训练测试流程如图3所示。
图3 训练测试流程
1.2.2 YOLOv3模型结构
YOLOv3网络通过回归方法提取目标特征,直接使用单个神经网络实现输入图像的目标检测识别与分类。其为深度卷积神经网络YOLO的改进,具有实时性、泛化能力强以及准确度高等优点,是目前主流的检测算法之一。
表1为YOLOv3模型与其他模型均在COCO数据集上测试的速度与精度对比[15]。
表1 YOLOv3模型与其他模型对比Tab. 1 Comparison of YOLOv3 model with other models
由表1可以看出,YOLOv3模型检测速度相较于其他模型快,本文综合比较模型的输入尺寸后,可知YOLOv3-320模型输入尺寸小、用时少,但精度欠佳;YOLOv3-608模型检测精度高,但输入图像尺寸大,处理用时长;YOLOv3-416模型检测精度较高,检测精度及测试时长较为合适,在保持检测精度的基础上也确保了较少的处理时长。因此,结合本文测试平台的显卡及内存要求,选择用YOLOv3-416模型进行芽眼的准确识别。
YOLOv3网络结构如图4所示,DBL层(Darknetconv2d-BN-Leaky)为YOLOv3网络的基本组件,由卷积(CONV)、批量归一化(Batch normalization)、Leaky ReLU操作组成。普通的ReLU函数是将所有负值均设为零,而Leaky ReLU函数则是给所有负值赋予一个非零斜率,数学表达式为
(1)
式中:ai——(1,+∞)区间内的固定参数。
本文中YOLOv3网络的初始输入大小为416×416的图像,通过多层深度卷积降维,最终降维为3个维度,即有3个分支,由多尺度检测y1、y2、y3组成,如图4所示。其中,多尺度检测y1适用于大目标检测,输出维度为13×13×18;多尺度检测y2适用于中目标的检测,输出维度为26×26×18;多尺度检测y3适用于小目标的检测,输出维度为52×52×18。Resn表示Res_block含有多少个Res_unit,n代表数字,如res1,res2等。YOLOv3借鉴了ResNet的残差结构,其中残差卷积就是进行一次3×3、步长为2的卷积。保存卷积层后再进行一次1×1的卷积和3×3的卷积,将该结果与最后的卷积层一同作为最后的输出。同时由于ResNet拥有较深的网络结构,为提高准确度使用了残差单元以获得高维特征。Res_unit×n表示含有n个残差单元;concat表示张量拼接,即将Darknet的中间层与后面某一层的上采样拼接,以扩充张量的维度;Add表示张量相加,不扩充维度。
图4 YOLOv3结构图
YOLOv3网络预测图片方式采用端对端的检测,其将整张图片分为S×S个区域,当被识别对象的中心落在上述任意区域时,对应的网络会进行预测,目标边界框原理图如图5所示。其中,虚线矩形框表示预设边界框,实线矩形框表示以YOLOv3网络预测的偏移量计算的预测边界框,由预设边界框到最终预测边界框的转换如式(2)~式(5)所示。
bx=σ(tx)+cx
(2)
by=σ(ty)+cy
(3)
bw=pwetw
(4)
bh=pheth
(5)
其中,(cx,cy)表示预设边界框在特征图上的中心坐标,(pw,ph)表示预设边界框在特征图上的宽与高,(tx,ty)表示YOLOv3网络预测边界框的中心偏移量,(tw,th)表示网络预测边界框的宽高缩放比,(bx,by,bw,bh)为最终预测的目标边界框。且σ(x)函数可以将预测偏移量缩放在0~1之间,从而加速收敛。
图5 YOLOv3边界框原理图
本文为了更好地评估训练模型的鲁棒性及准确性,测试选择精度(Precision)和召回率(Recall)作为评价指标。相应的计算公式如式(6)~式(8)所示。
(6)
(7)
(8)
式中:Tp——真正样本数;
Fp——假正样本数;
FN——假负样本数;
R——召回率;
P——精确度;
F1——精确度P和召回率R的调和平均值。
为了更详细评价识别马铃薯芽眼的训练模型,测试同时选择识别平均精度mAP值进行评价。mAP值即每个类别AP的平均值,AP为P-R曲线下方整体的面积,具体计算如式(9)所示。
(9)
式中:k——阈值;
N——引用阈值的数量。
金元时期的词学是对南北宋词学理论的发展。王若虚认为词本色如诗,其《滹南诗话》卷中:“盖诗词只是一理,不容异观。”[7]669元好问推崇诗词同质,其《新轩乐府引》称赞苏轼以诗化词的“一洗万古凡马空”的气象。
本文马铃薯芽眼识别测试平台使用windows10(64位)专业版,NVIDIA GeForce RTX 2080 GPU显卡加速测试进程,32 GB内存,10核20线程计算机处理器,2.4 GHz,使用python3.6.2版本,以pytorch1.2版本为处理框架,以cuda10.0版本的计算框架及cuDNN7.6.3版本的配置加速库,在VScode调试平台上进行。
本文采用YOLOv3网络实现马铃薯芽眼的识别检测,需训练得到最优模型权重,故训练前期需设置相关参数并进行调整,网络参数选择及训练策略具体如下。
1) 参数设置:选择基于模型参数的迁移学习实现网络的训练,预训练模型使用PASCAL VOC数据集的通用模型,设置训练epoch为100次,动量因子设置为0.92,衰减系数设置为5×10-4。学习率调整策略采用steps,前50个epoch训练冻结一部分网络进行,初始学习率设置为1×10-3,批处理尺寸设置为8;后50个epoch训练将前期冻结的网络部分解冻,全部进行训练,初始学习率设置为1×10-4,批处理尺寸设置为4。
2) 训练策略:网络训练过程采用多尺度训练策略,初始统一裁剪图片大小为416像素×416像素,均使用padding填充,使图像不失真。同时通过调整色度、色调、增加透视变幻等方式再次生成更多样本,增加网络模型识别检测的准确度及鲁棒性。
本研究以相同的数据集于同一试验平台上试验,对YOLOv3、YOLOv4-tiny、Faster R-CNN及SSD模型进行训练,同时以相同的测试集进行识别对比分析,具体定量识别结果如表2及表3所示。
由表2可知,YOLOv3模型识别马铃薯芽眼最终精确度P为97.97%,召回率R为96.61%,调和平均值F1为97%。相较于YOLOv4-tiny、Faster R-CNN及SSD这三种模型,马铃薯芽眼的识别精确度P较前两种分别提升了4.64个百分点和27.59个百分点。召回率R较这三种模型则分别提高了8.79个百分点,3.43个百分点以及31.8个百分点,尤其较SSD模型提升优化较高。最终纵观调和平均值F1,YOLOv3模型达到97%,分别高于其他三种模型7个百分点,17个百分点及19个百分点,相比较而言均有较大的性能提升。
由表3可知,YOLOv3模型识别平均精度mAP值高达98.44%,平均每幅图像的识别时间为0.018 s。相比较于YOLOv4-tiny、Faster R-CNN及SSD这三种模型,平均检测精度分别提升了5.81个百分点,7.71个百分点以及6.68个百分点,平均每幅图像的识别时间差距不大。由此可以看出,使用YOLOv3模型识别马铃薯芽眼的综合性能均比较优良,具有更高的鲁棒性和精确性。
表2 马铃薯芽眼识别结果比较Tab. 2 Comparison of potato buds recognition results
表3 同一测试集下不同识别模型的mAP值Tab. 3 mAP values of different recognition modelsunder the same test set
使用YOLOv3、YOLOv4-tiny、Faster R-CNN及SSD模型对马铃薯芽眼识别结果的P-R曲线如图5所示。由表3可知,YOLOv3模型的识别平均精度mAP值高达98.44%,其余三种模型的识别平均精度mAP值均在90%左右,P-R曲线已经基本遍布整个坐标系。相较于其他三种模型,YOLOv3模型的P-R曲线相对平滑且稳定,从图5可以看出YOLOv3基本处于曲线最上方。综上所述,YOLOv3模型整体综合性能指标要优于其他三种模型。
为了更清晰地显示YOLOv3网络优良的识别结果,将识别结果可视化如图6、图7所示。图6(a)为只含有单个无遮挡芽眼的样本识别结果,图6(b)为含有多个遮挡芽眼的样本识别结果,图6(c)为含有机械损伤、虫眼及杂质的样本识别结果。图7为YOLOv3网络对马铃薯芽眼在不同处理条件下的识别结果。
图6 部分样本测试识别结果
原图 亮度减弱 色度增强
随机旋转+镜像+色度增加+高斯噪声 高斯噪声+随机旋转+亮度增强
图6(a)中YOLOv3、YOLOv4-tiny、Faster R-CNN及SSD网络中芽眼的识别置信度分别为1.00、1.00、1.00、0.98;图6(b)中YOLOv3、YOLOv4-tiny、Faster R-CNN及SSD网络中芽眼的识别置信度分别在0.99~1.00、0.80~1.00、0.91~1.00、0.79~0.99之间,且YOLOv3中置信度为1.00的芽眼约占92%,而其他三种网络中置信度为1.00的芽眼均在92%以下;图6(c)中YOLOv3、YOLOv4-tiny、Faster R-CNN及SSD网络中芽眼的识别置信度分别在0.91~1.00、0.79~1.00、0.58~0.99、0.85~0.86之间,且YOLOv3中置信度为1.00的芽眼占60%,其他三种网络中置信度为1.00的芽眼均在60%以下。综上所述,YOLOv3网络不论对单个无遮挡芽眼的样本,多个有遮挡芽眼的样本,还是含有机械损伤、虫眼、杂质等的样本,识别率均较高,且置信度相对来说处于一个平稳且较高的状态。而YOLOv4-tiny、Faster R-CNN及SSD模型在识别含有多个有遮挡芽眼的样本时,虽然基本识别出图片中芽眼,但识别的置信度相较于YOLOv3网络低。当检测识别含有机械损伤、虫眼、杂质等的样本时,四种网络均能在较大程度上识别出芽眼,但YOLOv3网络明显识别检测效果更优,置信度较高。而YOLOv4-tiny、Faster R-CNN及SSD网络未能在干扰因素较大的情况下识别出所有的马铃薯芽眼,识别精度较YOLOv3低。同样的,由图7可得,无论图片进行调整亮度、色度,还是增加高斯噪声、随机旋转等操作,YOLOv3网络均能较好识别出马铃薯芽眼,表明该网络具有良好的环境适应性。
综上所述,使用YOLOv3网络对马铃薯芽眼识别的效果较好,且识别时间也较快,满足处理过程中对机械设备的要求,为马铃薯智能切种机的实现奠定了基础。
为了实现马铃薯种薯智能切块,需要实现马铃薯芽眼的准确、快速识别,实际工作中包含进料给料操作、芽眼识别与标记操作、马铃薯种薯三维重建操作、切刀路径规划操作及切种实现等步骤,通过控制系统实现调配。首先在投入马铃薯种薯后,需实现实时采集图像,以保证及时完成马铃薯芽眼的识别;接着需进行三维重建以实现切种规划,即将马铃薯芽眼识别图像的位置特征映射于三维重建中,实现芽眼的三维定位;最后,刀具通过由马铃薯芽眼位置而确定的切种路径进行切种。
本文对马铃薯芽眼的准确、快速识别做了一定的研究,弥补了目前市面上存在马铃薯切种机无芽眼识别功能,最大程度上降低了种薯的浪费率,提高了马铃薯种薯的出芽率,为后续自动化切种奠定了基础。
1) 本文针对目前马铃薯切种机均无芽眼识别功能的问题,以马铃薯切种机于自然光环境下工作为研究背景,利用在实际环境中拍摄到的图片建立马铃薯芽眼数据库,并搭建了YOLOv3网络实现马铃薯芽眼的快速、准确识别。
2) 在自然光下拍摄RGB图像,对拍摄到的图像进行预处理,通过裁剪、旋转、缩放、色度增强等操作,单一或者多个组合实现了数据增广,以此建立了马铃薯芽眼数据库,包括含有单个无遮挡芽眼的样本、含有多个遮挡芽眼的样本以及含有机械损伤、虫眼及杂质的样本这三类。
3) YOLOv3网络在面向含有单个无遮挡芽眼的样本,含有多个遮挡芽眼的样本以及含有机械损伤、虫眼及杂质的样本这三类不同样本时,均能够快速准确地检测识别出马铃薯芽眼,效果优于YOLOv4-tiny、Faster R-CNN及SSD网络。
4) YOLOv3网络使用测试集测试时,精确度P为97.97%,召回率R为96.61%,调和平均值F1为97%。相较于YOLOv4-tiny、Faster R-CNN及SSD这三种网络,马铃薯芽眼的识别精确度较前两种分别提升了4.64个百分点和4.05个百分点。且召回率分别提高了8.79个百分点,10.42个百分点以及31.8个百分点;平均检测精度mAP值高达98.44%。综合P-R曲线的效果,可知YOLOv3网络的综合识别检测性能优于YOLOv4-tiny、Faster R-CNN及SSD网络,达到了马铃薯切种机实现自动化切种的识别要求。