王宏乐,叶全洲,王兴林,刘大存,梁振伟
(1.深圳市五谷网络科技有限公司,广东 深圳 518000;2.深圳市丰农数智农业科技有限公司,广东 深圳 518000)
【研究意义】水稻是我国乃至世界上最重要的粮食作物。科学、高效而准确地预测水稻产量,不但能为产量预估、收获、烘干和仓储物流提供及时、准确的农情信息,对于粮食的供需平衡、农业政策的制定等也具有重要意义[1-3]。目前,大面积的水稻估产主要采取卫星遥感估产的方法,如定量遥感反演与产量形成过程模型相耦合的方法、基于实测的水稻冠层反射光谱的多生育期复合估产模型等方法[4-5],但其在普适性、精准性和高效性等方面仍有待进一步优化和完善,获得更准确、及时的产量估算仍依赖于田间人工测产调查。特定品种的稻穗数量与水稻产量密切相关,准确获得田间单位面积水稻穗数是水稻产量准确预估的重要前提和基础[2-3,6]。然而,田间单位面积水稻穗数的调查是人工测产调查过程中最费时费力的环节,同时,调查者的主、客观因素都极易影响调查结果的准确性[2-4]。因此,建立水稻产量快速调查的方法,对解放劳动力,提高测产工作效率和精度等具有重要意义。
【前人研究进展】目前水稻稻穗识别的主要技术为图像分割和目标检测。Xiong 等[7]提出Panicle-SEG 算法,实现了对不同品种及生育期大田稻穗的分割,准确率达到70%~80%。在此基础上,宋余庆等[6]基于DBSE-Net 的大田稻穗图像分割,进一步提高了识别精度;Tanaka 等[8]报道了基于水稻RGB 图像的分割模型,可对多品种不同角度采集的稻穗进行精准识别及产量估算,经多地验证后,具有广泛的适应性和准确度。然而图像分割模型训练复杂,计算相对耗时,受图像背景影响大[3]。目标检测技术已运用于多个农业场景中,如麦穗检测。David 等[9-10]报道并优化了小麦麦穗的识别算法,建立了全球麦穗检测数据集(Global Wheat Head Detection,GWHD)。此后,国内外大量学者对小麦穗数检测模型做出优化与改进,并开发出田间麦穗快速识别与计算的方法,包括基于无人机的麦穗图片的精准计数方法研发、小麦麦穗检测算法优化、小麦单位面积的实时在线检测方法的实现等[9-13]。与小麦相比,水稻不同品种间的穗形差异大,稻穗由于自重下垂,高种植密度下叶片与稻穗贴合更紧密,叶片对稻穗的局部遮挡使稻穗特征中混入叶片噪声,严重影响稻穗识别准确率和计数精度。姜海燕等[14]设计了一种基于生成特征金字塔的稻穗检测(Generative Feature Pyramid for Panicle Detection,GFP-PD)方法,对稻穗的识别准确率达90%以上。Sun 等[3]使用改进的YOLOv4 对弯曲稻穗检测,解决了籼稻品种杂交稻的精准检测问题,在齐穗后7 d 内能获得较高准确率。
【本研究切入点】粳稻和籼稻为我国主要的两大类水稻种植品种,品种的多样性和复杂性导致稻穗形状、颜色、姿态等存在一定差异,影响图像识别精准性。基于水稻稻穗的目标检测算法,虽已有一些研究报道,但缺乏其对不同品种稻穗估测的系统性研究,而在水稻稻穗深度学习训练数据集对深度学习模型的影响方面,更是缺乏相关报道。YOLO(You Only Look Once)是一种目前应用广泛的目标检测模型,可很好地平衡检测速度和检测精度,且拥有较好的小目标检测能力。其中YOLOv5 凭借其较快的检测速度及良好的检测精度得到研究人员的青睐[11-13,15]。根据宽度和深度的设置,YOLOv5 分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其 中YOLOv5l兼具较高的运算速度及不错的平均精度[11,16]。Wang 等[17]报道指出,新的网络结构YOLOv7,其整体准确度和速度均优于YOLOv5。目前已应用于安全头盔、交通标识等领域的目标检测,并取得不错的效果[18-19]。无人机具有快速、低成本、灵活获取高分辨率图像及农情信息的特点,尤其适合复杂农田环境的信息采集作业[1-2,4-5,12,20]。本研究拟采用粳稻和籼稻主栽品种,研究无人机照片数据深度学习数穗测产技术对粳稻和籼稻的识别效果,尝试建立高效、可靠的稻穗快速检测计数技术。【拟解决的关键问题】本研究将重点解决无人机照片的数据清洗、稻穗标注、数据集构建和PyTorch 深度学习建模训练方法,以期获得科学、高效和多品种适用性的数穗技术。
水稻籼稻稻穗图片的采集和产量调查时间为2021 年10 月13 日,地点为广东省广州市从化区生态优质丝苗米产业园,种植品种为美巴香占,随机选择11 个调查点。水稻粳稻采集时间和产量调查时间为2022 年11 月5 日,地点为广东省清远市飞来峡水稻种植基地实验田,种植品种为南粳46,随机选择9 个为调查点。
图像采集时间为水稻齐穗期到灌浆期(图1),稻穗穗形直立或略弯曲、不松散和不交缠。稻穗数据集的采集设备为大疆精灵4RTK 无人机,云台拍摄角度为-85°~-90°之间,相机视角(Field of view,FOV)为84°,总像素为2 048 万,分辨率为4 864×3 648。无人机图像于晴天10: 00—14: 00 采集,拍摄高度为距离水稻冠层1.7~1.8 m,拍摄图片的覆盖面积约为4 m2。每个调查点面积约为4 m2,圈出范围后在其正上方使用无人机采集图像,随后进行人工调查,人工调查方法参考Tanaka[6]。
为降低重复图片数量以及非靶标图片对模型训练的干扰,采用人工筛选的方法对所采集图像进行数据清洗。清洗后的数据使用Labelimg 软件[21]对目标稻穗分别进行水平框的框选,当图像边缘显示的谷粒面积≥30%以上时进行标定,否则不标定。水平框标注采用x、y、w、h 表示,其中,x、y 为目标框的中心坐标,w、h 分别为沿X和Y轴的边界框的长度。
分别建立包含90 张粳稻和籼稻标注图片的水稻稻穗数据集,其中包含粳稻样本28 728 个、籼稻样本21 608 个。依据两种水稻的不同特征,将数据集重新分组(表1)。在目标检测算法中,重叠率(Intersection of union,IoU)是在特定数据集中检测相应物体准确度的标准[18-24]。平均精度(mean Average Precision,mAP)为目标检测常用的判定指标,一般使用mAP@IoU 的方式表示[11-16,21]。分别从粳稻和籼稻的数据集中随机抽取10 张作为独立测试集和验证集,其中测试集用于mAP 的计算[22]。将图片尺寸调整到1 024×1 024 后再进行训练与测试。
水稻稻穗检测使用YOLOv5l 和YOLOv7 的网络体系结构。YOLOv5l 参照李志军等[25]方法进行,YOLOv7 模型训练参照Wang 等[17]方法进行,模型的深度和宽度均设为1,将前景和背景IoU阈值设为0.3。本研究基于PyTorch 深度学习框架进行模型改进和算法训练。计算机配有NVIDIA V100 的图形处理器(GPU),搭载Intel(R)Xeon(R)Gold 5218 CPU@ 2.30GHz,内存为128 GB。实验环境为Ubuntu 18.04 LTS 64 位系统、Cuda11.3、Cudnn8.1.0、Pytorch1.7.1、Python3.7。模型训练的批处理大小为64,输入图像且统一为640×640 分辨率。
使用建立的模型对调查点采集的图像进行水稻稻穗数量预测,将预测结果与实际调查结果进行相关性比较分析,使用相关系数R2预测结果的准确性[1-2]。均方根误差(Root Mean Square Error,RMSE)一般用于反映测量值与真实值之间的偏差,平均绝对百分比误差(Mean Absolute Percentage Error,MAPE)可以反映预测值与真实值之间的相对距离[1,8]。本研究使用R2、RMSE和MAPE对模型预测值与真实值进行验证和评价。
用相同的测试集对使用不同数据集训练得到的模型进行测试(表1)。将模型对测试集的检测结果与真实值进行分析比较,计算得出每个锚框的IoU 值。使用获得的IoU 值制作箱型图(图2),结果表明,在对粳稻测试集的检测中,模型1 组所获得的IoU 值的中位数最高,YOLOv7模型为0.6733、YOLOv5 模型为0.6455;其次为模型3 组,YOLOv7 模型为0.6499、YOLOv5模型为0.6230;模型2 组所获得IoU 值的中位数最低,YOLOv7 模型为0.4732、YOLOv5 模型为0.3794。在对籼稻测试集的检测中,模型2 组所获得IoU 值的中位数最高,YOLOv7 模型为0.6494、YOLOv5 模型为0.5403;其次为模型3 组,YOLOv7 模型为0.4862、YOLOv5 模型为0.3933;模型1 组获得IoU 值的中位数最低,YOLOv7 模型为0.4732、YOLOv5 模型为0.2581(图2)。基于此,为更合理地评价模型的识别精度,本研究除计算通用指标mAP@0.5 外,同时考虑选择最低IoU 的中位数0.2581,即计算mAP@0.25 的值并参考作为评价标准。对于相同的数据,YOLOv7模型下IoU 值的中位数普遍高于YOLOv5 模型。
图2 不同模型得到的重叠率分布情况Fig.2 Distribution of interscetion over union (IoU) from different models
分别使用YOLOv7 和YOLOv5l 对3 组数据进行训练,使用相同的测试集对模型进行测试和评价。结果表明,测试集对YOLOv7 模型的测试结果普遍优于YOLOv5l(表2、图3、表3)。仅使用粳稻数据训练得到的模型对粳稻有较好的识别精度,YOLOv7 模型的mAP@0.5 为80.75%、mAP@0.25 为93.01%,优于YOLOv5l 模型的mAP@0.5 值73.36%、mAP@0.25 值91.16%;但两种模型对籼稻的识别精度均不高,mAP@0.5 及mAP@0.25 在20%~40%。对籼稻识别最佳的模型为使用籼稻数据训练得到的模型,YOLOv7 模型的mAP@0.5 为73.19%、mAP@0.25 为83.71%,优 于YOLOv5l 模型的mAP@0.5 值72.77%、mAP@0.25 值81.66%;但两种模型对粳稻识别精度不高,mAP@0.5 及mAP@0.25 在30%~40%。使用粳稻和籼稻混合的数据训练得到的模型3 组对粳稻和籼稻有一定的识别精度,基本能框出识别靶标,但低于仅使用粳稻数据训练得到的模型对粳稻的识别精度和仅使用籼稻数据训练得到的模型对籼稻的识别精度。
表2 不同模型在水稻稻穗测试集的检测精度(%)对比Table2 Comparison of detection accuracy of different models in rice panicles test datasets
表3 水稻稻穗计数结果Table 3 Results of rice panicles counts
图3 不同模型对水稻不同亚种稻穗的识别结果样例Fig.3 Detection results of rice panicles from different subspecies by different models
结果表明,单一数据训练的模型对与其一致的靶标测试集的识别精度最高,对与其不一致的测试集测试精度最低,混合数据训练的模型对两种靶标均有一定的识别精度,但精度略低。所有模型的mAP@0.25 值均明显大于mAP@0.5,重叠率对水稻稻穗的识别影响较大。
本研究设计了9 个粳稻、13 个籼稻的验证样本,对预测模型的预测结果进行验证和评价。结果(图4)表明,仅使用粳稻数据训练得到的模型对粳稻有较好的识别精度,预测值与实测值显著相关。其中YOLOv7 模型对粳稻预测精度最高,R2为0.9585、RMSE为9.17、MAPE为2.01%;其次为YOLOv5 模型,R2为0.9522、RMSE为11.91、MAPE为2.15%。对籼稻识别最佳的模型为使用籼稻数据训练得到的,其中YOLOv7 模型对籼稻预测精度最高,R2为0.8595、RMSE为24.22、MAPE为7.55%;其次为YOLOv5,R2为0.7737、RMSE为32.56、MAPE为7.83%。仅 使用粳稻数据训练得到的模型对籼稻的识别效果不佳,仅使用籼稻数据训练得到的模型对粳稻识别效精度也偏低。但使用粳稻和籼稻混合的数据训练得到的对粳稻和籼稻均有一定的识别精度,低于仅使用粳稻数据训练得到的模型对粳稻的识别精度和仅使用籼稻数据训练得到的模型对籼稻的识别精度;其中YOLOv7 模型对粳稻稻穗的识别效果较好,R2为0.9323、RMSE为13.17、MAPE为5.57%,对籼稻稻穗识别表现也较好,R2为0.7735、RMSE为37.73、MAPE为9.52%;YOLOv5 模型对粳稻稻穗和籼稻的识别精度略低于YOLOv7,在对粳稻的识别中,R2为0.8919、RMSE为15.73、MAPE为6.01%;在对籼稻的识别 中,R2为0.6201、RMSE为41.67、MAPE为10.94%。
图4 水稻稻穗预测值和实际值关系Fig.4 Relationships between predict values and actual values of rice panicles number
在目标检测算法中,IoU 是在特定数据集中检测相应物体准确度的标准,当IoU ≥0.5 时,通常认为目标被预测正确。IoU 阈值的设定对mAP 值影响很大。而对于稻穗、麦穗等细小目标,由于其形状细长,且为非规则图形,具有方向随意性,即使较小的角度变化也会导致IoU 的迅速下降。黄硕等[11]报道的YOLOv5 检测模型对小麦麦穗的mAP@0.5 也仅为0.467~0.515。因此,诸多关于细小密集物体检测报道均会考量IoU 低于0.5 的情况[23-25]。本研究通过调查IoU 的实际分布情况,将IoU 的阈值设置为0.25。mAP 值评价的是算法对图像识别的精度,在实际应用中,仍要考虑使用无人机采集稻穗图像的方法与真实情况之间的关系。因此,田间实际调查十分必要。通常使用模型的预测值与实际值建立回归方程,计算R2、RMSE以及MAPE等指标评价模型或方法的精度[1,12,32]。田间调查验证表明,所获得的最优模型的预测值,可较为准确地实现该场景下粳稻和籼稻的稻穗预测。其中,粳稻最优模型下预测值与调查值之间的R2值大于0.9、MAPE值小于5%,籼稻最优模型预测值与调查值之间的R2值大于0.8,MAPE值小于10%。本方法对籼稻的识别仍有优化空间,可通过增加或调整数据集结构来进行优化[22]。本研究所使用的算法也还有进一步优化的空间,如可考虑使用旋转框或高分辨率识别模型等方式,或通过引入Soft-NMS 的判定机制,有可能进一步提升识别的精确度[3,27-30]。
小麦麦穗具有顶端生长,形态特征大多直立或略弯曲,大多形态相似的特点,国内外已有诸多基于深度学习的小麦麦穗识别的报道[9-13]。David 等[9-10]报道并优化了小麦麦穗的识别算法,建立全球麦穗检测数据集(Global Wheat Head Detection,GWHD)。然而水稻稻穗在成熟期后期单穗较重,易弯曲并交缠,较难通过图像数据进行稻穗计数[3,6-7]。因而,有学者使用基于深度学习的图像分割技术来实现水稻稻穗的识别,但对于交缠的水稻,通过图像分割技术也较难直接计数,它们多是通过将分割的结果与田间实测穗数建立相关性关系,来实现田间穗数预测[6-7,31]。本方法通过基于深度学习的目标检测方法来直接实现对田间水稻穗数的预测,实现路径更为简单、准确。但当水稻稻穗松散、下垂、交缠时,基于深度学习的图像识别检测算法,较难得到可靠的结果。本方法通过在水稻齐穗至灌浆期之间进行采集图像,来规避水稻稻穗松散交缠的情况发生,可以形成标准化的数据采集和穗数预测技术体系,但这也缩短了田间数据采集的时间窗口。在不同稻穗数据集上的表现结果表明,YOLOv7 模型优于YOLOv5 模型,与YOLOv7 在其他领域的报道结果一致[17-19]。本试验建立的单位面积水稻穗数计算方法尚有不足,仍需进一步优化算法、引入面积计算机制,以进一步提高识别和计数准确率。
本研究初步建立了基于YOLOv7 的无人机田间水稻单位面积穗数的快速调查方法,田间调查时间为从水稻齐穗期至灌浆期,所建立的预测模型和方法具有较高精度,可应用于实际田间测产工作。YOLOv7 对稻穗的识别普遍优于YOLOv5,不同品种类型植株需要不同的稻穗计数测产模型和方法,本技术对粳稻的检测精度优于籼稻,对籼稻的检测算法需进一步优化。