基于多任务融合的圣女果采摘识别算法研究
1、简介
本文主要解决圣女果生产销售环节中,现有的流程是采摘成熟的圣女果,再对采摘下的果实进行单独的品质分级,不仅费时费力,而且多增加一个环节,也增加了对果实的二次伤害。如何在采摘环节中就对圣女果果实进行品质分级是本文研究的核心内容。
1.1 国内外研究现状
国内外目前对“采摘果实的同时对品质进行分级”这一课题研究的并不多。主要集中在采摘识别算法上,大致分为两类:传统算法与人工智能算法。
1.1.1 传统算法采摘识别
传统的采摘识别算法有1⃣️基于HIS颜色特征的识别;2⃣️红外成像识别;3⃣️光谱成像识别等方法;如下图所示,但是可以发现对果实的边缘信息检测误差较大,并且对于重叠的果实并不能有效区分开来,而圣女果/番茄的果实往往是成簇/串生长,因此传统算法的检测效果并不佳。
1.1.2 人工智能算法采摘识别
目前采用的人工智能算法主要以1⃣️目标检测识别;2⃣️语义分割识别为主.
较少采用实例分割实现,分析主要原因有:实例分割算法的研究还有许多难题需要解决,如推理速度较低,不如目标检测的迅速,可以达到实时性的任务要求。
- 目标检测算法:目标检测虽然检测速度很快,检测精度也很高,但是目标检测只能识别出果实的边界框,而无法识别出果实的精准边界信息,对于采摘任务而言并不友好;
- 语义分割算法:语义可以精准的实现果实的边界信息,但是对于同一类别的交集果实无法区分,对于采摘而言,无法精确计算实例的采摘点;
1.2 研究目的与意义
通过将品质分级、实例分割任务融合在一个模型中,从而实现对圣女果的采摘识别与品质分级同时进行。即可以精准识别到果实的边缘信息又可以区分不同实例,并同时进行果实的品质分级任务。将实现采摘的同时进行品质分级,极大的缩短的加工时间,提高了生产效率,同时降低了对果实的损伤。
2、自建多品质圣女果数据集
前往山东省寿光县进行数据采集,拍摄了5k+原图数据,通过1->2/1->3数据增广扩增至14K张数据,人工标注图像3K,共13K个样本实例;
数据标注过程中,采用的更加精细的实例分割标注,可以衍生出单圣女果的采摘识别数据集、单成熟度的圣女果采摘识别数据集、多品质的圣女果采摘数据集等不同任务需求的下游数据集;
标注过程中,我们将圣女果按照成熟度、是否遮挡、品质进行品质划分,共划为为13个品级,其中包含开裂状态的损伤果。
通过对13K+个实例的分布情况统计,发现不同品类的数据分布是极度不均衡的,为了缓解此情况对模型训练的影响,我们尝试了对样本数据少的类别进行数据增强,但是发现此方法行不通,因为圣女果果实高度重叠同生,单纯增强数据量少的类别难度极大;
出了进行数据增强方法,采用Focal Loss的损失函数可以缓解对模型的影响,本文采用采用Focal Loss的方法进行调节不同类别的在损失中的权重。
2.1 数据增强
数据增强主要采用原图的像素维度的数据增强和空间维度的数据增强。
像素维度的数据增强包含:像素化处理、运动模糊、高斯模糊、油画处理、磨砂玻璃处理、超像素化处理、缩放模糊处理、灰度处理、添加噪点、随机阴影处理;
空间维度的数据增强包含:随机裁剪、中心裁剪、水平翻转、垂直翻转、平移、随机旋转;其中数据增强方法采用基于Albumentations库进行,但是在进行空间维度的数据增强时发现,BBox的数据增强与Mask的数据增强无法做到一一匹配的问题,为了解决此问题,本文通过只进行mask进行空间维度的数据增强,通过计算每个通道mask的边界信息从而获得对应的BBox,实现BBox与Mask的同步数据增强。
3、SOLO Evolution 模型设计与优化
3.1 算法架构设计
SOLO-E基于SOLOv2模型改进而来,我们删减了SOLOv2模型中的低效cate层与mask层。将SOLO有限的注意力集中于各分支的核心。
深层次的特征图更加有利于cate分支提取信息,因此保留2-4层多尺度特征图;
受限于mask复原影响,舍弃3、4层多尺度特征图;
从而将5层特征图精简至3层特征图,即保留了SOLOv2的核心部分,又在一定程度上提升了模型运算速度;
3.2 Matrix NMS算法优化
在使用Matrix NMS算法的时候,发现其对cate阈值依赖较大,阈值设置较大导致部分实例无法检测出,阈值较小导致部分实例存在冗余预测情况发生;(图左上角数字表示检测实例个数)
为了降低对阈值的依赖性,我们提出了圆函数替换原有的高斯函数作为递减函数。在IoU>0.8时,圆函数对置信度低的预测结果抑制更加强烈;对于0.1<IoU<0.4的时候,圆函数依旧有将近0.6的抑制,此情况可以抑制如下图2情况。对于同一目标,可能存在缩小型的目标预测,此时与最佳目标的IoU是较低的,此种情况依旧需要对其进行抑制,高斯函数在此情景下的抑制情况较差。
优化前后的对比效果图(每个小图的左上角数字表示为此图中检测到的实例数量)
4、各模型检测结果对比
改进后的SOLO-E在mAP指标相当的情况下,在FPS方面较SOLOv2提升了39.8%,训练时间较SOLOv2降低了33%,且模型参数量略有降低。
5、圣女果采摘识别系统设计
为了更加直观的展示,我们基于PyQt5设计了一套系统,如下所示。
《基于实例分割实现圣女果采摘识别算法研究》系统演示