自然环境下黄绿柑橘检测通用模型的构建
2022-09-28杨国黄文静朱洪前丁键任会李丹肖恒玉胡涛
杨国,黄文静,朱洪前*,丁键,任会,李丹,肖恒玉,胡涛
(1. 中南林业科技大学,长沙 410004; 2. 江苏护理职业学院,淮安 223002)
自然环境下柑橘检测和产量预估受到不同光照、复杂的冠层结构、生长过程中的颜色变化、遮挡或者重果以及小尺寸的影响[1]。对于冠层结构,韩蕊等[2]利用无人机遥感、多光谱图像提取柑橘树冠信息,进行树冠分割与株数统计。
近年来,随着深度学习技术的快速发展,国内外专家学者们在水果检测方面取得了一系列的研究成果。Aleixos等[3]应用贝叶斯决策理论实时对柑橘类水果表面进行多光谱检测。López-García等[4]采用多变量图像分析法和主成分分析法实现柑橘类水果表面的缺陷检测。Lu等[5]通过融合色差图、归一化RGB模型和光照图的分割结果,研究了可变光照和不同程度遮挡树冠下柑橘类水果的检测,所采用的融合方法可以检测目标水果的高光、阴影和漫射区域。Sengupta等[6]开发了霍夫圆检测等算法,基于SVM的纹理分类和其他假阳性去除技术来检测自然条件下绿色冠层中的未成熟柑橘。熊俊涛等[7]利用Faster R-CNN目标检测算法对树上的绿色柑橘进行检测研究,建立了自然环境下不同光照、不同尺寸柑橘和不同数量柑橘的图像样本集,最终在测试集上的平均精度为85.49%。王丹丹等[8]提出一种利用RseNet-44对R-FCN网络进行改进的苹果目标识别算法,采用RseNet-44全卷积网络,最终在测试数据集上得到的召回率为85.7%,准确率为95.1%,识别速度为0.187 s/幅。李善军等[9]提出了一种基于改进SSD深度学习模型的柑橘实时分类检测方法,最终该模型的mAP(mean average precision)达到87.89%,平均检测时间为20.27 ms。韩文等[10]提出基于Tiny-YOLOv3网络的目标检测方法,在2个数据集上试验以验证改进模型的有效性,在果园柑橘数据集中,准确率、召回率以及F1分别为88.98%,95.29%和92.03%。吕石磊等[11]提出一种基于改进YOLOv3-LITE轻量级神经网络的柑橘识别方法,在全部测试集上,F1和AP分别为0.936 9和91.13%。孙宝霞等[12]对夜间自然环境下成熟的柑橘进行识别与表征缺陷检测,所采用的YOLOv4模型检测方法在柑橘测试集上的精确率、召回率、F1以及mAP分别为95.32%,94.59%,0.95和90.52%。
综上所述,国内外对于水果检测特别是柑橘的检测都取得了很多成果,但是大都只是对于一种颜色特征或者对于某一特定类型的柑橘进行检测,得到的模型通用性和鲁棒性不佳,而柑橘作为极为常见的水果,未成熟时为绿色,成熟之后更是存在黄色和绿色两种颜色特征,加之其生长环境极为复杂,进一步增加了自然环境下的柑橘检测难度。深度学习的方法通过层层网络结构,对图像的浅层到高层特征进行提取归类,达到准确识别类别的目的[13]。笔者基于深度学习方法的识别模型选取了基于VGG16的 Faster R-CNN、基于Resnet的 Faster R-CNN以及YOLOv5s,以自然环境下成熟柑橘的两种颜色形态建立数据集进行柑橘检测,通过试验对比及模型训练,将基于深度学习的算法模型用于自然环境下的柑橘检测,以期为经济林下农业生产中自然成熟状态下果实为绿色和黄色的水果以及类圆水果的视觉检测研究提供技术支持。
1 材料与方法
1.1 图像获取
本研究以多个品种的柑橘作为研究对象,采集地点为长沙市百果园及长沙市橘子洲头,采集图像包含黄色和绿色柑橘。图像采集在一天中的不同时段进行,涵盖晴天、阴天和雨后。所有图像均使用智能手机摄像头和工业相机采集,所有试验数据集均为自然状态下未经处理的自然图像。数据集中共有13 091 个柑橘图像,其中黄色柑橘图像为8 877 个,绿色柑橘图像为4 214个。自然环境下的柑橘具体数量分布情况见表1。
表1 自然条件下的柑橘数量Table 1 Number of citrus under natural conditions
1.2 数据集制作
图像数据集分为训练数据集、验证数据集和测试数据集,最终采集了1 682张绿色柑橘图像以及1 830张黄色柑橘图像。对于黄色柑橘图像,训练集图像为1 498张,验证集图像为167张,测试集图像为165张;对于绿色柑橘图像,训练集图像为1 361张,验证集图像为152张,测试集图像为169张。
1.3 监督学习的人工标注
研究采取监督学习的人工标注,数据集标注(图1)过程中样品位置按照边界原则,将样品尽可能标记在最小切线矩形内。图1显示了一个图像注释示例,包括一些部分被树叶、枝干遮挡以及重叠造成的不完全标注图像。标注使用的软件是LabelImg,标签格式为“xml”。
图1 数据集标注Fig. 1 Data set annotation
1.4 柑橘检测的深度学习算法
深度学习算法在图像、语音、文本等方面的运用越来越广泛。鉴于传统的检测方法已经不能满足信息化、自动化以及智能化需求,而深度学习的优势在于深度卷积神经网络具有学习功能,可以通过端到端直接回归训练,同时还有高精度和实时性等优点,并且有利于发现高维的复杂结构数据。此外,将更多的数据用于训练深度学习模型,将增加模型的鲁棒性和泛化性。对比前人所采取的研究模型,本研究选用基于VGG16的Faster R-CNN、基于Resnet的Faster R-CNN以及YOLOv5s这3种算法模型进行柑橘检测研究。
1.4.1 Faster R-CNN柑橘检测算法
Faster R-CNN[14]是继RCNN[15]和Fast-RCNN[16]后提出的目标检测方法,该算法可直接使用RPN生成检测框。基于Faster R-CNN的用于柑橘检测的图像处理过程如图2所示。
图2 柑橘的Faster R-CNN图像处理过程Fig. 2 The Faster R-CNN image processing process of orange
在目标检测中,Faster R-CNN的巨大优势是直接使用RPN生成检测框,能极大提升检测框的生成速度。Faster R-CNN损失函数通常可以选择绝对值损失函数L1和平方损失函数L2,对于绝对值损失函数L1,容易导致训练不稳定,而且这个函数在0点处导数不存在,因此可能会影响模型收敛。L2损失函数对离群点和异常值较为敏感,训练时容易发散;而在模型训练过程中,选择分段函数作为损失函数很好地解决了上述问题。SmoothL1同时避开了L1和L2损失的缺陷,不会因预测值的梯度过大导致训练不稳定。由于本研究的数据集比较复杂,所以选用SmoothL1作为损失函数,其RPN的损耗函数定义如下:
(1)
(2)
(3)
1.4.2 YOLOv5s柑橘检测算法
YOLO将物体的定位和分类一起完成,输入一副原始图像,由单一网络可直接推理出目标位置,更能满足工业上的实时性要求,效果鲁棒;从自然图像迁移到艺术等其他领域的图像时,效果也很好。考虑到模型的轻量化要求,本研究采用的是YOLOv5系列中网络结构最轻、深度最小以及特征图宽度最小的YOLOv5s网络。网络主要分为输入端、基准网络、Neck网络、预测框4个部分,其网络结构如图3所示。
图3 YOLOv5s网络结构Fig. 3 YOLOv5s network structure
YOLOv5采用了BECLogits损失函数计算objectness score的损失[17],class probability score采用了交叉熵损失函数(BCEclsloss),bounding box采用了GIOU Loss。
(4)
(5)
式中:IoU为交并比;A和B为两个任意框面积;C为A、B两个框面积的最小闭包区域面积;A∩B表示两个任意框面积的交集;A∪B表示两个任意框面积的并集。式(5)表示用IoU减去闭包区域中不属于两个框的区域占闭包区域的比重。
2 试验过程与结果分析
2.1 试验环境
3种检测模型为基于VGG16的Faster R-CNN、基于Resnet的Faster R-CNN以及YOLOv5s,所采用的gpu为GTX2060,训练所采用的模型框架为Anaconda+PyCharm+Pytorch+Python3.8。
2.2 试验参数设置
完成数据集准备、试验环境配置以及算法模型搭建后,经过多次调参,最终确定了各个模型的参数,如表2所示。此外,为了节约内存,迭代次数每训练50次保存1次模型。
表2 模型的参数设置Table 2 Parameter settings of the model
2.3 模型训练
试验过程中,根据验证集的损失值对模型性能进行分析,损失值的大小用于判断模型是否收敛。比较重要的是损失值有收敛的趋势,即验证集损失值不断下降,损失值并不是接近于0才好,如果验证集损失基本上不改变,则模型基本上就收敛了。
3个模型在两种数据集下的训练损失loss值变化曲线见图4~6。从图4中可以看出,基于Resnet的Faster R-CNN在进行绿色柑橘试验时,当经过30次迭代时,验证集损失值开始趋于稳定,之后继续训练网络,直到50次时停止训练;基于Resnet的Faster R-CNN在进行黄色柑橘试验时,模型拟合较慢,直到50次迭代时才开始收敛,训练出来的模型效果也很差,远远低于同一模型下的绿色柑橘模型训练结果。说明该模型用于两种特征的柑橘检测时,通用性不强。由图5可知,基于VGG16的Faster R-CNN在进行绿色柑橘试验时,当经过40次迭代时,验证集损失值开始趋于稳定,模型收敛速度快,设置迭代80次后停止训练,模型的AP是92.82%;基于VGG16的Faster R-CNN在进行黄色柑橘试验时,模型拟合较慢,直到50次迭代时才开始收敛,训练出来的模型效果也很差,设置迭代80次,模型的AP仅为51.77%,此模型针对黄、绿两种柑橘,训练结果差别相对较大,而且对于黄色柑橘检测效果差,说明此模型通用性也不强。由图6可知,采用YOLOv5进行网络训练时,数据收敛较快,在进行绿色柑橘试验时AP是97.2%,在进行黄色柑橘试验时AP是97.4%。
图4 Faster R-CNN Resnet50模型训练损失曲线Fig. 4 Faster R-CNN Resnet50 model training loss curves
图5 Faster R-CNN VGG16模型训练损失曲线Fig. 5 Faster R-CNN VGG16 model training loss curves
图6 YOLOv5s模型训练验证损失曲线Fig. 6 YOLOv5s model training verification loss curves
2.4 评价指标
本试验采用4个指标进行评估,分别是精确率(precision,公式中记为P)、召回率(recall rate,公式中记为R)、平均精度(average precision,公式中记为AP)以及F1(balanced F score,公式中记为F1),以置信度高于0.5的目标数量作为试验网络所检测到的柑橘数目。P、R、AP和F1的相关计算公式分别如式(6)~(9)所示:
P=tp/(tp+fp)
(6)
R=tp/(tp+fn)
(7)
(8)
F1=2×P×R/(P+R)
(9)
式中:tp是实际为正样本被预测为正样本;fp是实际为负样本被预测为正样本;fn是实际为正样本被预测为负样本。
2.5 结果与分析
2.5.1 黄色柑橘试验结果分析
黄色柑橘具有与自然环境下柑橘生长环境完全不同的颜色特征。由柑橘在不同模型下的检测指标(表3)可知,对于所有黄色柑橘数据集,与YOLOv5s相比,基于Faster R-CNN的两种检测模型的试验结果都相对较差。针对数据集的情况以及试验结果分析如下:
1)模型自身的缺陷,对于Faster R-CNN,不论是使用VGGnet还是Resnet,其提取到的特征图都是单层的,分辨率也比较小;
2)数据集中遮挡或者重果的图像较多,在试验过程中,有时会出现错检或者漏检,说明Faster R-CNN对遮挡的目标检测较困难;
3)数据集样本中有太多自然环境因素的干扰,模型训练结束,将一些比较复杂和小尺寸柑橘图像传入模型后,检测效果差,说明Faster R-CNN的两种检测模型对于复杂程度过高以及密集小尺寸柑橘的检测是存在困难的;
4)将小尺寸柑橘图像以及遮挡或者重果图像传入训练好的YOLOv5s模型后,发现检测效果更好,准确性高而且速度更快,说明与Faster R-CNN相比,YOLOv5s对于小尺寸柑橘以及遮挡重叠的柑橘检测效果更好。
表3 柑橘在不同模型下的检测结果Table 3 Detection results of orange using different models
综上所述,对于黄色柑橘,YOLOv5s与基于VGG16的Faster R-CNN模型以及基于Resnet的Faster R-CNN模型相比,基于YOLOv5s的模型对于自然环境下黄色柑橘的检测效果最优,速度更快,其精确率为91.90%、召回率为99.00%、F1为 0.94、AP为97.40%。
2.5.2 绿色柑橘试验结果分析
对于绿色柑橘数据集,自然环境下绿色柑橘的表皮颜色特征与柑橘树颜色特征基本一致。根据柑橘在不同模型下的检测指标可知,对于所有绿色柑橘,与YOLOv5s相比,基于Faster R-CNN两个模型的精确率和F1相对较低,对Faster R-CNN柑橘检测模型分析如下:
1)绿色柑橘数据集偏小,数据集过于复杂,导致模型没有学习到更深层次的特征,精确率偏低;
2)Faster R-CNN模型的参数量过多,卷积层数过深,对于具有相似特征的目标特征提取困难;
3)与黄色柑橘相比,绿色柑橘各项指标更高,说明所提取的目标与背景具有相似颜色特征的情况下,Faster R-CNN模型仍然可以完成特征提取。
综上所述,YOLOv5s模型用于自然环境下黄、绿两种颜色特征的柑橘检测,其各项指标以及检测效果均有了更大的提升,而且对于两种颜色特征的柑橘都具有很好的检测表现。与VGG16的Faster R-CNN模型以及Resnet的Faster R-CNN相比,YOLOv5s模型通用性更强,未来对于柑橘检测的研究有更好的参考价值。
2.6 不同模型的测试效果
2.6.1 不同光照条件下的柑橘检测试验
利用计算机视觉进行目标检测时,一般要求工作环境具备良好的光照条件,但是自然环境下的场景较为复杂,可能包含一天中的不同时段,所以要求模型有更好的鲁棒性,能适应不同光照强度,在光照强度发生变化时,仍然能够达到检测要求。笔者收集了一部分不同光照强度的图像(图7),将其传入训练好的柑橘检测模型中,给出了一些测试图像在不同模型以及不同光照条件下的柑橘检测效果。从检测结果可以看出:对于黄色柑橘,Resnet50的检测效果相对较差,甚至出现了漏检,而Faster R-CNN+VGG16与YOLOv5s都能准确无误地将目标检测出来;对于绿色柑橘,所有模型均能达到很好的预测效果。
a)Faster R-CNN+Resnet50;b)Faster R-CNN+VGG16;c)YOLOv5s。图7 不同模型不同光照环境下的柑橘检测效果Fig. 7 Orange detection effect using different models and different lighting environments
2.6.2 遮挡与重果情况下的柑橘检测试验
在自然环境下生长的柑橘,往往会出现果实被枝叶包裹、遮挡以及果实密集等情况,这对于采摘机器人的视觉系统设计来说是一个必须解决的关键问题。在完成了柑橘检测试验之后,收集了一部分重果和被枝叶遮挡的自然环境下的柑橘图像,将未经任何处理的柑橘图像传入训练好的柑橘检测模型,3种检测模型的效果如图8所示。对于简单的重果和遮挡场景,3种模型都能完成预测;而对于重叠程度高以及枝叶遮挡较为严重的状况,相比较而言,Resnet50就会出现偏差,甚至出现漏检现象,而VGG16与YOLOv5s都能完成目标检测。
在图像测试过程中,Faster R-CNN+VGG16与Faster R-CNN+Resnet在检测时虽然能达到一定程度的检测要求,但是训练模型用时长,占用内存多,而且检测速度相对较慢,而YOLOv5s使得模型更加轻量化,检测速度更快。本研究基于YOLOv5s训练自然环境下的柑橘检测专用模型,平均检测速度分别达到27和32帧/s,完全满足检测的实时性要求。
a)Faster R-CNN+Resnet50;b)Faster R-CNN+VGG16;c)YOLOv5s。图8 不同模型不同遮挡或者重果环境下的柑橘检测效果Fig. 8 Orange detection effect using different occlusions or heavy fruit environments of different models
自然环境下除了考虑上述因素,还会出现一些小尺寸柑橘,将相关图像进行采集测试,可得到YOLOv5s试验的检测结果,如图9所示。
图9 小尺寸柑橘检测情况Fig. 9 Small size citrus detection situation
3 结 论
1)提出了一种基于YOLOv5s的自然环境下柑橘检测方法,基于YOLOv5s深度学习框架,结合自然环境下柑橘的两种颜色特征,分别进行多次试验,最终训练得到的模型在黄、绿两种柑橘验证集上的平均精度分别达到了97.40%与97.20%,平均检测速度达到27和32帧/s,可满足实时性要求。
2)对比其他算法的通用性,对于黄色柑橘,YOLOv5s模型与基于VGG16的Faster R-CNN模型以及基于Resnet的Faster R-CNN模型相比:精确率分别提高了51.54%和40.84%;召回率分别提高了41.08%和37.83%;F1分别提高了0.46和0.38;平均精度分别提高了45.51%和41.18%;平均检测速度分别提高了22和23帧/s。
3)对比其他算法的通用性,对于绿色柑橘,YOLOv5s模型与基于VGG16的Faster R-CNN模型以及基于Resnet的Faster R-CNN模型相比:精确率分别提高了21.38%和17.88%;召回率分别提高了3.65%和3.36%;F1分别提高了0.12和0.10。平均精度分别提高了4.38%和4.13%;平均检测速度分别提高了25和26帧/s。
4)YOLOv5s模型对于光照、重果、遮挡以及小尺寸柑橘的检测都有很好的表现。
综上所述,本研究针对柑橘成熟之后存在黄色和绿色两种颜色特征,提出了针对两种特征的通用检测方案,试验结果有利于后续开展机器采摘和柑橘估产研究工作。