张亚莉,肖文蔚,卢小阳,刘爱民,祁 媛, 刘含超,施泽坤,兰玉彬
(1. 华南农业大学工程学院,广州 510642; 2. 国家精准农业航空施药技术国际联合研究中心,广州 510642; 3. 袁隆平农业高科技股份有限公司,长沙 410125; 4. 海南大学植物保护学院,海口 570228; 5. 华南农业大学电子工程学院,广州 510642;6. 华南农业大学人工智能学院,广州 510642)
杂交水稻制种是水稻异交结实,需父系花粉传播到母系柱头上受精结实,其异交结实率高低,取决于父本花粉散落到母本柱头上的有无与数量。杂交水稻制种授粉时期需父本与母本同期抽穗开花,父系水稻开花时间为每日10:00-12:00,开花时需人工辅助授粉。水稻颖花开花需要一定的温光条件,一般在亚热带或热带环境下,开花温度为24~35 ℃,相对湿度为70%~90%。水稻开花期约10 d,每天开花1.5~2 h,花粉寿命为4~5 min,为保证制种母系的结实率,人工辅助授粉需在花期内完成[1]。因授粉时间短,每天需准确把握授粉时机,要在父系开花高峰期时授粉。
目前,水稻父系颖花开花信息等表型数据的获取主要依靠人工观察[2],适用于人工辅助授粉,但对于大规模全程机械化制种,采用无人机辅助授粉时,人工观察难以有效准确地获取全部农田水稻开花状态,也难以实现智能授粉作业。通过采集田间水稻颖花可见光图像自动检测开花状态信息[3],为实现无人农场提供数据支持与决策参考,是降低劳动成本、提高制种率、实现科学制种的重要举措,对实现杂交水稻制种授粉智能化决策与农场无人化作业有积极意义。
国内外学者对视觉识别小麦和水稻等作物穗部和颖花进行了有益尝试。多数学者通过对图像颜色空间的变换处理[4]与阈值设置[5],分离目标与背景,广泛应用于水果分离计数[6]、小麦穗部计数[7]、田间农作物分类[8-10]等类别间有颜色差异的图像。Fernandez-Gallego等[11-12]通过对田间小麦可见光图像进行滤波与极大值分割处理,从小麦俯视图中分离出麦穗,识别成功率达0.9。Guo等[13]采用尺寸不变特征变换(Scale Invariant Feature Transform,SIFT)算法提取水稻颖花可见光图像特征点和描述算子,再用支持向量机训练模型,准确度为0.8。对于SIFT算法,同一幅图像初始质心选择不同,往往会出现不一样的特征,需要提取特征人员具备足够经验。Sadeghi-Tehran等[14]采用车载与手持可见光相机采集图像,应用超像素分割算法结合深度学习识别田间小麦麦穗,相对均方误差达0.11。Alkhudaydi等[15]采用4个作物数量表型工作站固定于试验田中进行高频成像,采集近三年不同生长时期小麦可见光图像侧视图,对每张图像小麦穗部进行标注,再输入全卷积神经网络(Full Convolutional Neural Networks,FCN)训练,模型交并比最高可达0.53。Hasan等[16]采用地面小车搭载可见光相机获取小麦穗部图像,经过区域卷积神经网络(Regional Convolutional Neural Networks,RCNN)算法识别计算小麦穗数,准确率达0.933。Xiong等[17]通过模拟自然光,采用深度学习与超像素分割方法识别水稻穗部,准确度达0.767。
上述研究均对作物表型检测进行了一定探索,但目前尚无将张开颖花内外颖作为特征进行颖花开花状态检测的研究报道,也未发现将深度学习技术运用于水稻颖花开花状态检测的研究报道。本文研究基于前人研究结果提出基于视觉图像处理技术串联使用大津法,简称串联大律法(Series Otsu,SOtsu),提取吐出颖花花药,同时使用深度学习[18]算法,基于区域的快速卷积神经网络(Faster Regional Convolutional Neural Network,FasterRCNN)和YOLO-v3,对水稻开花张开颖花内外颖与吐出颖花花药两种特征进行检测,并探讨了上述三种算法对水稻开花不同特征的识别效果,为自动化检测水稻开花状态提供参考。
1.1.1 试验环境
该研究试验地点位于海南省东方市感城镇制种基地(18°52′48′′N,108°42′36′′E),属热带海洋性季风气候,光照强,无明显季节区别。试验时间为2020年10月9日-2020年10月23日。由于颖花一般在中午温度达到25~33 ℃时开花,故试验时间为北京时间10:00-14:00。试验地环境相对湿度为82%左右,东北风4~5级,平均海拔高度6 m,试验水稻制种组合为华煜4127S/华恢4156。
1.1.2 数据采集
试验采用可见光相机Canon EOS 80D(日本佳能株式会社,东京,日本)获取图像,CMOS传感器,相机快门速度为1/8000~30 s,图像大小为2.42×108像素,图像存储格式为.RAW。相机在自动曝光与自动聚焦模式下使相机镜头平行于颖花,于北京时间10:00-14:00颖花开花时拍摄两组距离不同图像各2 000张,第一组距离颖花15 cm,第二组距离颖花45 cm。当环境到达开花条件时,水稻颖花基部浆片吸水膨胀,相互挤压且压迫外颖,把内外颖扣接槽脱开,外颖顶向一边,使得颖花开放,同时吐出花药[19]。原始颖花数据图像如图1。
1.2.1 基于SOtsu检测方法
SOtsu基于图像灰度信息进行前景与背景的分离。相较于深度学习算法需要人工添加标签与训练模型等繁杂的预处理工作,SOtsu基于可见光图像各通道间灰度值差异进行目标提取[8,20-21]是一种简单高效的方法。分割结果精确到每个像元点。
该研究使用可见光单反相机采集图像数据,且该型号相机具有自动聚焦功能,在前景选定后,背景自动虚化,可顺利地分离出整株稻穗与背景。串联大津法基于图像灰度值进行分割,而颖花内外颖与绿色水稻叶片颜色相近,因此该研究未使用串联大津法对颖花内外颖进行识别试验。
颖花花药提取步骤见图2,先将可见光图像进行红/绿/蓝通道分离,生成对应的通道灰度图像,基于蓝色通道灰度图像扫描整幅图像灰度值,将灰度值分为0~255共256个灰度阶梯,并统计整幅图像中对应灰度阶梯的像素点个数,生成灰度直方图。在此基础上运用最大类间方差法(大津法)分离稻穗与背景,背景灰度置0。在已提取的颖花花药与颖花内外颖像素点范围内独立使用最大类间方差分析,找出颖花花药与颖花内外颖灰度范围内最大类间方差所对应的灰度值,作为进一步分类操作的阈值,保留花药原有灰度值,颖花内外颖灰度值置0。最终结合原始图像输出提取效果,并输出以八连通法计算的连通区个数。
类间方差计算公式[5]如式(1)所示:
式中σB为类间方差值;μT为整幅图像的平均灰度值;μ1和μ2分别为类1和类2的平均灰度值;ρ1和ρ2分别为类1和类2发生的概率。
1.2.2 基于FasterRCNN检测方法
目前深度学习算法众多,但FasterRCNN依然是深度学习领域的主流。Ren等[22]开发了FasterRCNN算法,该算法将特征抽取、区域选择、边界框回归、分类器分类整合在一个网络中,如图3所示。检测方法是通过区域卷积神经网络产生大量可能包含待检测物体的潜在边界框,再用分类器判断每个边界框里是否包含物体,以及物体所属类别的置信度,通过后处理改善边界框,消除重复检测目标。
1.2.3 基于YOLO-v3检测方法
YOLO[23]由于其极高的处理速度被广泛[24-27]应用于深度学习目标识别领域。如图4所示,YOLO将输入图像分成S×S个区域,将物体检测任务当作回归问题来处理,使用一个神经网络,直接从一整张图像来预测出边界框坐标、边界框包含物体的置信度和类别概率。YOLO在训练和测试时都能看到整张图像信息,因此YOLO在检测物体时能很好地利用上下文信息。
Redmon等[28]整理了PASCAL VOC2007及VOC2012数据集下FasterRCNN,SSD[29],YOLO三种算法的平均均匀精度(mean Average Precision,mAP)以及帧速(Frames Per Second,FPS)。FasterRCNN的mAP达到76.4%[30],但是处理频率最慢,为5帧/s。YOLO[23]的处理速度较快,为45帧/s,但是mAP最低,只有63.4%,而YOLO-v3的精度和处理速度均高于先前版本[23,28,31]。
针对颖花开花检测,算法应具有更强的实时性,及时检测水稻开花信息,同时须有较高识别精度,减少误判率。YOLO-v3版本与系列新版本YOLO-v4[32]、YOLO-v5相较,参考资料与开源代码分享较多,且YOLO系列主打处理速度,YOLO-v4较YOLO-v3速度上有所提升,但精度提升不明显,故该研究采用YOLO-v3进行试验。
1.2.4 深度学习检测技术路线
试验基于PASCAL VOC2012[33]格式的数据集运用FasterRCNN和YOLO-v3两种算法进行模型训练,结合精确率与处理时间,综合分析两种算法在水稻颖花开花检测中的应用效果。
训练图像分为两组,第一组图像基于开放颖花内外颖特征,第二组图像基于吐出花药特征,各2 000张。采用NVIDIA GeForce RTX 3090显卡进行训练。训练模型输入图像均采用分辨率为6 024×4 022像素的原始图像。采用基于PyTorch框架的FasterRCNN[34]和YOLO-v3[35]作为目标检测算法,参与训练图像包括距离相机镜头15和45 cm的水稻颖花开颖图像。主要技术路线如图5所示。
1.2.5 图像标注方法
在模型训练前用LabelImg软件对可见光颖花图像人工添加标签数据,每张已标注图像会生成后缀为.xml的文本文件,用于深度学习算法有监督学习。
将标注完成图片按照8:1:1的比例分为训练集、验证集与测试集,采用PASCAL VOC2012数据集作为样本数据库格式,训练集用于训练模型参数,验证集测试训练好的模型参数,并根据测试结果优化模型参数,最终选出最优识别模型。测试集用于测试训练模型识别颖花开花状态的泛化能力。
训练完成的模型用于识别颖花开花状态,在水稻农田中每获取一张图像都可导入训练好的模型进行识别,识别结果通过矩形框框出并显示识别结果置信度及方框数量。
置信度(Confidence)公式如式(2)所示,置信度取值范围为0~100%,越接近0说明检测到的目标对象(Object)置信度越低,相反,越接近100%说明检测到的目标置信度越高。置信度与检测目标的交并比(Intersaction over Union, IoU)有关,目标检测中,可通过边界框同时定位目标,通过算法定位的目标边界框与实际目标边界框的交集和并集之比为交并比。交并比可用来评价目标检测算法的定位是否精准,该研究采用IoU ≥ 0.3作为阈值进行检测。
水稻开颖伴随着张开颖花内外颖与吐出颖花花药两个明显特征。颖花内外颖张开形状与闭合形状差别较大,形状与水稻叶片等其他背景差异明显,但颖花内外颖颜色与水稻叶片颜色近乎一致。花药颜色呈淡黄色,颜色与形状明显区别于张开的颖花内外颖、叶片等非花药类别,但是同一幅图像中,花药所占图像的比例小于颖花内外颖,因此该模块通过人工标注花药与张开颖花内外颖,并计算同一深度学习算法中两种标注方法的精确率(Precision)、召回率(Recall)以及F1系数,来研究深度学习算法下更适合水稻颖花开花的识别特征,标记方法如图6。
1.2.6 评估指标
该研究将精确率(Precision),召回率(Recall),F1系数,皮尔逊系数r以及回归函数作为评估指标。
Precision表示算法检测到的目标中正确的样本比例。Recall表示所有实际目标中被算法检测到的比例。F1系数为精确率和召回率的加权调和平均,F1系数值越高,说明试验效果越好。皮尔逊系数r用于分析两个变量X和Y之间的线性相关性,取值区间为[-1, 1],1表示完全正相关,0表示无关,-1表示完全负相关。该研究中r用于分析人工观察颖花开花数量与算法识别之间的相关性。
从试验结果中有规律地抽取一定数量图像,对每张图像建立相应的混淆矩阵。假设检测目标为正样本,背景为负样本,一个二分类问题可以产生四种结果,真阳性(TP)即正确分类检测目标;假阳性(FP)即错误归类背景为检测目标;假阴性(FN)即将检测目标错误归类为背景;真阴性(TN)即正确归类背景。该研究讨论二进制分类问题,无需正确分类背景,此处TN始终为0[16]。验证指标为精确率,召回率和F1系数,计算公式如式(3)-(5)所示:
使用MATLAB将图7a颖花可见光图像分为红(R)/绿(G)/蓝(B)三个波段的灰度图像(图7b~7d),使用ENVI 5.3,在每幅图片上均匀选取颖花花药与颖花内外颖各约28 000个像素点,绘制灰度直方图(图8)。
基于三个通道的灰度直方图统计颖花花药与颖花内外颖的三种可见光波段像元灰度值的均值与标准差,如表1所示。利用均值作为颖花花药与颖花内外颖像元值差异的评价标准,利用标准差作为颖花花药与颖花内外颖各波段中像元波动范围的评价指标,通过1倍标准差与均值相结合判断颖花花药与颖花内外颖各波段像元是否有明显交叉重叠现象,绘制图9。
通过表1和图9可知,颖花在红、绿、蓝三个波段中的像元均值都高于200,颖花内外颖像元均值在红、绿、蓝三个通道中呈上升状态,在蓝波段中颖花内外颖的像元均值与花药差别明显,且在1倍标准差范围内无交叉重叠,其他两个波段中,颖花花药与颖花内外颖像元值相接近。这表明,基于可见光图像蓝色通道进行花药提取是可行的,基于可见光图像蓝波段灰度图像串联大津法进行花药与颖花内外颖分离可得到比其他波段更好的分离效果。
串联大津法提取花药结果示例如图10所示,图中黑色像素点为已识别的花药。
YOLO-v3与FasterRCNN算法的识别结果如图11所示,识别结果通过方框表示,并在方框上方显示结果置信度。图11a与图11c分别是YOLO-v3识别颖花内外颖与花药的结果,图11b与图11d分别是FasterRCNN识别颖花内外颖与花药的结果。FasterRCNN置信度高达98%,比YOLO-v3测试结果置信度高一倍以上。
FasterRCNN与YOLO-v3算法识别颖花内外颖与花药的损失函数如图12所示。FasterRCNN算法识别两个特征对象均在第30次迭代时趋于最小值,YOLO-v3算法在第300次迭代时曲线斜率近似于0,损失函数值趋于最小值。
图13是FasterRCNN算法与YOLO-v3算法分别进行30次与300次迭代训练的类别平均均匀精度;颖花内外颖识别平均均匀精度,FasterRCNN算法为0.897,YOLO-v3算法为0.847。颖花花药识别平均均匀精度,FasterRCNN为0.788,YOLO-v3算法为0.773。
2.3.1 检测精度分析
试验从227张可见光测试图片中每10张抽取1张,共抽取20张可见光图像,统计20张图像中YOLO-v3与FasterRCNN及SOtsu识别开放颖花内外颖与花药的效果。
三种算法平均检测时间与识别精确率统计结果分别如表2、表3所示。针对花药识别,FasterRCNN精确率为0.99,召回率与精度差异较大,只有0.93,F1系数为0.95,平均处理时间为169.4 ms。SOtsu精度为0.92,召回率与F1系数均为0.93,平均处理时间为560 ms。这说明FasterRCNN算法更适用于及时检测水稻颖花花药吐出状态,其精度与F1系数均高于SOtsu,但SOtsu更能平衡精度与召回率。明显地,FasterRCNN算法检测效果优于SOtsu。
表2 三种算法的平均检测时间 Table 2 Average detection time of three algorithms
表3 三种算法对张开颖花内外颖与花药检测结果统计 Table 3 Statistical results of the opening spikelet hull and spikelet anthers detection by three algorithms
针对开放的颖花内外颖识别,FasterRCNN对开放颖花内外颖识别结果精度为1,召回率为0.97,F1系数为0.98,均优于花药识别。虽然YOLO-v3平均检测时间7.3 ms,比FasterRCNN(169.4 ms)快约23倍,但YOLO-v3试验效果不理想,识别开放颖花内外颖和吐出花药效果均逊色于SOtsu和FasterRCNN,且测试结果与模型训练结果差异大,在与FasterRCNN使用同一训练集情况下出现了过拟合现象。
试验结果表明,开放颖花内外颖比吐出颖花花药更适用于表征水稻颖花开花状态,FasterRCNN算法适合用于水稻颖花开花状态检测。
2.3.2 图像识别与人工识别相关性分析
用Origin软件对227张可见光图像分别针对三种算法及两种开花特征进行手动计数与自动计数相关性回归统计,统计结果如图14所示。FasterRCNN算法识别开放颖花内外颖存在大量重叠样本,与人工识别具有高度一致性,r高达0.993,数据拟合曲线斜率为0.992,截距为0.01。相比之下,FasterRCNN算法识别花药r为0.973,拟合曲线斜率为0.957,截距为0.329,与人工识别具有较高一致性,但拟合效果比识别开放颖花内外颖差,有低估花药数量的迹象。
同样,SOtsu自动计数也低估了花药数量,r为0.936,拟合曲线斜率为0.875,截距为2.795。
YOLO-v3相比其他两种算法,在花药与开放颖花内外颖识别上均无优势,与人工识别几乎没有相关性,该算法不适用于检测水稻颖花开花状态。
为保证算法鲁棒性,使深度学习算法模型适用于不同环境,不同光线强度以及不同大小目标的识别,该研究训练集融合了不同光线强度与不同成像距离的图像。由于颖花一般于北京时间10:00-12:00,温度为24~35 ℃,相对湿度为70%~90%时开花。
颖花开花时一般天气情况较好,但有云朵遮盖时,采集的水稻颖花图像光照强度比无云朵遮盖时弱,阳光直射情况下,由于水稻颖花间交叠遮挡,同一株水稻会出现光照不均匀情况。故将图像在不同外界光条件下,定性分成三类,分别是低光照强度、高光照强度与光线不均匀。低光照强度、高光照强度与光线不均匀情况下三种算法对花药的识别效果,如图15和表4所示,在低光照强度条件下,SOtsu识别效果优于其他两个算法,精度为0.96,略低于FasterRCNN,但召回率与F1系数均高于其他两个算法。
表4 不同环境下三种算法识别花药结果 Table 4 Results of the three algorithms of spikelet anthers detection in different environments
在高光照强度下,SOtsu识别效果与低光照强度下的识别效果接近,略逊色于FasterRCNN算法,这说明SOtsu不受光照强度变化的制约,可以随着光照强度的改变自动调节阈值大小,也更倾向于在光照强度较低情况下分割前景与背景。
光线不均匀情况下,SOtsu识别花药的精度、召回率、F1系数都低于0.8,识别效果明显不如FasterRCNN算法。光线不均匀会导致同一幅图像中的花药或颖花内外颖呈现不同的灰度值,而SOtsu只能计算出规定区域中的单个阈值,所以光线不均匀的情况下,过度曝光的地方会被错误地识别为花药,而暗区域的花药则被归类为背景。
SOtsu识别花药在光线均匀情况下取得了良好的分割效果,该方法或可结合语义分割用于花药的自动添加标签中,基于像素点进行分割,作为语义分割模型的数据集标注图。
如图16所示,当图像中的背景是天空或者其他同样呈现白色的物体时,SOtsu会因背景干扰而无法正确识别花药。FasterRCNN在白色背景以及光线不均匀下仍能准确识别花药,不受光照强度及不均匀光线的干扰,表现出了极强的鲁棒性。
图17为低光照强度、高光照强度与光线不均匀情况下YOLO-v3与FasterRCNN对颖花内外颖的量化识别结果,统计结果见表5。
表5 不同环境下两种算法识别颖花内外颖结果 Table 5 Results of the two algorithms of spikelet hull detection in different environments
如表5所示,FasterRCNN算法在不同强度的光照条件以及光照不均匀情况下在低光照强度条件下对颖花内外颖的识别精度、召回率、F1系数均为1,识别效果均优于YOLO-v3算法。明显地,FasterRCNN算法对颖花内外颖的识别上鲁棒性较强。
当天张开的颖花,会马上吐出花药,吐出的花药在3~5 min裂开散出花粉,散出花粉后,花药当天凋谢,凋谢的花药仍挂在稻穗上。识别颖花开花是为了给后续水稻制种授粉决策提供参考信息,凋谢花药不具备花粉,无识别意义。在对花药识别过程中,需避免错误地识别已凋谢花药。由2.3.2节可知YOLO-v3与SOtsu和FasterRCNN相比,不适用于水稻颖花开花状态的检测,故只用SOtsu和FasterRCNN做了对已调谢颖花花药的检测试验。
如图18所示,凋谢花药呈淡黄色,与新开放花药在颜色上有明显区别,形状上几乎无差别,但明显区别于开放颖花内外颖的形状与颜色。图18中稻穗上黑色部分为已识别到的当天开放的花药,SOtsu提取花药恰好能完美避开已凋谢花药,而FasterRCNN算法识别花药会出现将已凋谢花药错误识别的现象。相比之下,FasterRCNN算法识别开放颖花内外颖则无此类干扰。故FasterRCNN算法在水稻颖花开花状态检测中,可识别开放颖花内外颖进一步判断颖花的开花状态。
综上所述,FasterRCNN算法不受光线影响,算法鲁棒性强,但该算法在识别已凋谢花药上还需进一步优化。FasterRCNN识别前期需要采集一定数量图像样本,人工添加标签,训练识别模型。串联大津法无需做前期工作准备,可直接进行花药识别。故串联大津法适合前期样本数据库无足够样本情况下,代替FasterRCNN算法进行水稻颖花开花状态的检测,直到FasterRCNN检测模型前期准备工作完成投入检测。
该研究探讨了检测水稻开花张开颖花内外颖和吐出颖花花药两种特征在SOtsu、FasterRCNN与YOLO-v3三种算法上的实现效果。首次将开放颖花内外颖作为特征运用于水稻颖花开花状态检测,取得了较好识别效果,具有与人工识别较高的一致性。
该研究中,串联大津法与FasterRCNN算法适用于检测水稻颖花开花状态,且张开颖花内外颖作为颖花开花特征应用于深度学习检测中效果比花药好。串联大津法识别花药精确率、召回率与F1系数均达到0.92以上,与人工识别间的相关性达0.936,在光线均匀情况下取得了良好分割效果,且能避开对已凋谢花药的识别。FasterRCNN识别花药精确率为0.99,召回率为0.93,F1系数为0.95,与人工识别的相关性达0.973;FasterRCNN识别张开的颖花内外颖精确率为1,召回率为0.97,F1系数为0.98,与人工识别的皮尔逊相关系数高达0.993,说明FasterRCNN检测颖花开花状态具有与人工观察高度的一致性,可以代替人工观察,检测水稻颖花开花状态,且不同环境条件下鲁棒性强。YOLO-v3算法对颖花内外颖与花药的识别效果与SOtsu和FasterRCNN相比较差。
与深度学习算法需要做大量前期工作相较,串联大津法无需进行模型训练准备,可在深度学习算法做前期准备工作时代替进行水稻颖花开花状态检测。
该研究面向杂交水稻制种授粉、农场无人化作业的需求,基于可见光图像对水稻颖花开花状态检测进行了有益尝试。在研究过程中对影像识别结果的因素进行了减少与控制。该研究使用可见光相机进行数据采集,有助于基于串联大津法进行图像分割,虽然分割结果进行了形态学开运算处理,但对于交叠、重合的颖花花药识别具有一定局限性。
后续研究可基于该研究所提出的检测流程进一步研究在无人为干预下,自动获取田间颖花图像,自动添加标签,自动训练模型以及自动切换检测算法,实现水稻颖花开花状态检测全程智能化,并对高通量检测方法进行更深入地探索。