孙 俊,杨锴锋,罗元秋,沈继锋,武小红,钱 磊
(江苏大学电气信息工程学院,镇江 212000)
小麦是世界上播种面积最大、产量最多、分布最广的粮食作物[1],2021 年世界小麦使用量达到7.54 亿t[2]。然而,受人口增长、需求增加和气候变化等因素的影响,相关部门需要准确决策以确保小麦作物的可持续生产[3]。小麦的生产对中国以及世界各地的作物生产[4]、粮食价格[5]和粮食安全[6-7]等产生了重大影响,因此,快速、准确产量估计对于小麦管理、贸易和政府决策至关重要。
小麦产量预估主要由单位面积穗数、单穗粒数和千粒质量3 个参数决定[8],传统产量预估主要通过农业部门根据经验进行目测估产或者随机选取大田区域进行人工采样、计数、称质量统计来完成[9],前者准确率低,易受个人经验影响,后者则工作量巨大,费时费力。
当前,随着传感器与计算机技术的发展[10],对农作物成熟前进行估产的方法层出不穷。针对超大面积农田估产,相关研究主要通过宏观数据,例如气候变化[11-12]、空气中氮氧含量[13]、卫星遥感叶面积指数等进行估产[14-15]。Cao 等[16]比较了传统的机器学习方法和深度学习模型,通过整合谷歌地球引擎平台内的气候、卫星、土壤特性和空间信息数据对小麦进行产量预估,建立模型的决定系数R2达到了0.90。宏观数据虽然可以快速对大范围农作物进行估产,但数据的收集、变化都极易受外界因素影响,产量预估准确率不能保证。近年来,随着视觉技术的发展,通过近景图像进行目标计数的方法层出不穷。深度学习中计数方法可以分为以下三类:基于目标检测、图像分割和密度图计数的方法。基于检测的目标计数方法使用Faster R-CNN[17]、Yolo[18]、SSD[19]等算法通过检测到目标区域生成多个位置框,进而统计出目标的数量。Madec等[20]使用Faster R-CNN 对240 张高空间分辨率小麦RGB图像进行计数,最终预测方程R2达到0.91,线性拟合效果较好。文献[21]通过卷积神经网络结合梯度下降法与非极大值抑制构建冬小麦麦穗检测计数系统。对 100 幅冬小麦图像进行麦穗计数测试,采用决定系数和归一化均方根误差(Normalized Root Mean Square Error,NRMSE)进行正确率定量评价,最终R2与NRMSE 分别达到0.62、11.73%,精度有待进一步提高。谢元澄等[22]通过引入特征金字塔及在线负样本挖掘技术构建 FCS R-CNN 网络对麦穗进行检测,检测精度达到92.9%。Wang 等[23]针对小麦遮挡问题,提出了一种随机切割方法,根据图像中的小麦数量和大小选择和删除一些矩形框,模拟真实小麦图像的遮挡。采用卷积块注意模块(Convolutional Block Attention Module,CBAM)对无用的背景信息进行剔除,关注麦穗区域,提出的模型计数精度达到94%。使用目标检测的方法对麦穗进行识别计数,虽然能直观显示每个麦穗的目标信息,但目标检测算法对部分遮挡的麦穗识别效果差,因此上述研究的计数精度以及R2有待进一步提高。Ma 等[24]使用基于深度卷积神经网络与像素级语义分割的全卷积网络(Fully Convolutional Networks,FCN)结合的网络模型,对冬小麦麦穗进行分割,分割精度达到了82.9%,且通过泛化测试验证了所提出的两阶段分割方法的实用性。钱立冬[25]使用基于多尺度残差U-net 分割网络结合注意力子对抗网络对小麦进行分割计数,实现了90.8%的召回率,展现了较好的分割计数性能。但基于分割的方法对重叠相互遮挡的目标识别效果较差,而基于密度图计数的方法可以很好缓解这个问题。
MCNN(Multi-Column Convolutional Neural Network,MCNN)[26]与CSRnet[27]等方法在密集人群计数中展现了良好的计数性能,这些方法依赖于训练回归来估计图像不同部分的目标密度,然后进行积分得到目标数量。考虑到麦田实拍麦穗分布密集,鲍文霞等[28]将基于密度图的方法用在了麦穗计数上,并且在4 种不同品种小麦上,取得的平均绝对误差达到了 16.23。刘航等[29]提出Resnet-16 模型,对全球小麦数据集实现端到端的麦穗密度图回归计数,引入矫正因子和膨胀因子后,模型的R2达到了0.973,计数准确率达到了94%。基于密度图方法对麦穗计数展现了良好的性能,但是还存在部分不足,如模型的泛化能力未得到验证,精度有待进一步提升。
相关研究表明,小麦估产可以通过对大区域宏观数据建模,以及对近景图片使用深度学习的方法进行计数。但宏观数据收集难度较大,易受到外界因素干扰。深度学习的方法虽然准确率高,但其需要大量的图像以及标注,图像采集与标注过程费时费力,因此目前基于深度学习的麦穗计数研究中,大部分自建的数据集[20-21,28]图像数量少于300 张,且部分研究对小麦品种进行划分,单独评估某一品种小麦计数准确性指标。使用过小的数据量与单一固定品种的麦穗图像容易造成训练的模型泛化能力太弱,陷入局部最优[30]。因此现阶段研究无法建立通用的麦穗计数模型,不能很好地用于不区分品种的小麦计数。考虑到现存问题,本研究使用全球收集的小麦图像,通过图像滤波以增强对无人机麦穗图像的泛化能力,另外通过改进CSRnet 网络结构,将前端网络增加三个卷积层,以提取小麦更深层的特征,另外将特征提取网络插入4 种不同尺度的上下文语义信息提取模块,最终融合两部分信息提取小麦特征,构建 Wheat Ear Counting 网络(WECnet),对麦穗进行准确计数。为了验证模型的泛化能力,本文除了在原有的全球小麦数据集进行测试验证其评估指标外,还通过使用无人机获取的实拍小麦图像验证,其与训练集来源完全不同,用于确保模型的可移植性。
1.1.1 数据来源与划分
为了获取足够多样且有代表性的小麦图像,避免因小麦图像特征单一,导致训练模型泛化能力弱的问题,本文使用的麦穗图像来源于全球小麦检测数据集(GWHD,http://www.global-wheat.com)。选择GWHD图像中5 个国家的小麦数据集,不同国家图像采集与麦穗特征如表1 所示。
表1 不同国家麦穗图像特征Table 1 Image features of wheat ears in different countries
小麦种植的行间距从15~30.5 cm 不等,每平方米种植150~450 粒种子不等,包含多种基因型,小麦生长阶段在开花期与成熟期之间,所使用相机焦距在10~60 mm不等,相机与地面的距离在1.8~2.9 m 之间,俯视拍摄,图像大小统一为1 024×1 024 像素。本文选取GWHD 数据集中的1 000 幅图像,累计包含47 573 个麦穗。此1 000幅图像按照8∶1∶1 划分为训练集、测试集、验证集。验证集参与网络训练,对当前训练模型的超参数进行对比寻优;测试集不参与训练,仅通过评价指标验证模型的泛化效果。
另外,为了更好验证模型的泛化能力,本文还通过无人机获取田间实拍小麦图像进行验证。图像采集区域位于江苏江阴市(31°51′N,120°29′E)以及安徽淮南市(32°28′N,117°2′E)两处农田。数据采集时间分别在2021年5 月4 日16:00 和5 月10 日10:00,此时小麦正处于灌浆期。选用的无人机镜头型号为DJI-FC1102,光圈大小为f/2.6,曝光时间自动。原始图像分辨率为3 968×2 976 像素,考虑到网络输入尺寸限制,将图像调整到1 209×907 像素。镜头距离麦穗上部0.5~1.2 m,俯视拍摄,拍摄细节如图1 所示。为了避免太阳剧烈照射影响成像效果,拍摄时天气情况为多云,并且剔除模糊和畸变严重的图像,最终筛选出46 幅符合要求的图像,经人工统计麦穗数目总和为3 780 穗。
1.1.2 数据标注与人工计数
本文对GWHD 数据集中的训练集与验证集进行麦穗点标注,使用shanghaitech 数据集标注格式,通过matlab人工标注图片中的麦穗中心坐标点与麦穗总数。另外,本文对GWHD 数据集中划分的测试集(Test_A)与无人机拍摄的图像(Test_B)进行人工计数,通过使用序号笔工具与多人共同统计数量取平均值以保证计数的准确性,保存每幅图像中麦穗数量。麦穗细节与数据集划分标注流程如图2 所示。
1.1.3 数据增强
深度学习需要数以百万计的大量参数,足够充足的数据才能使这些参数更具有代表性,但实际情况中获取足量数据存在难度。在麦穗计数中,实拍麦穗会因为成长阶段、光照、拍摄状态等不同造成麦穗状态不一,难以获取所有状态的小麦图像,因此需要对原始图像进行数据增强。采用数据增强技术增加样本多样性是提升卷积神经网络检测精度和泛化能力最简单有效的方法。随机增加数据多样性的方法包括旋转、裁剪、镜像等,针对性数据增强策略包括添加噪声、改变对比度,滤波等。针对细节模糊的图像样本,加强图像边缘、保持真实度是图像增强时关注的两大要素[31]。数据增强的目的就是使有限数据集包含更多目标特征,更拟合现实场景。本研究使用公开的全球采集的小麦图像,公开的图像经过压缩处理,图像平均大小为180 kB,图像质量较差,包含较多噪音[32]。经过添加多种噪声与不同滤波卷积核试验对比,发现对数据集进行滤波可以有效提升图像的泛化能力。选择的滤波器卷积核与滤波效果如图3所示。小麦灌浆期麦穗与叶片颜色接近,滤波后有效突出了麦穗边缘细节,提升了图像质量。本文使用OpenCV 中的filter2D()函数,将线性滤波器应用于图像,滤波函数为
式中 dst()为目标图像,src()为原始图像,k为卷积核(kernel),cols、rows 分别为卷积核的列数、行数,A表示内核的锚点(anchor)。
1.2.1 WECnet 小麦计数模型网络框架
CSRnet[27]人群计数模型网络框架包括前端和后端网络,前端网络使用VGG16 的前10 层提取特征,后端网络使用空洞卷积生成高质量的密度图,此方法对密集人群计数展现了良好的性能。CSRnet 网络主要识别人群头部区域,头部与其他部位颜色与纹理等信息区别较大,且头部形状单一,因此计数效果良好。而灌浆期麦穗与叶片颜色接近,且存在多种长宽比的麦穗,给网络准确计数带来挑战。因此本研究使用VGG19 替代VGG16 以提取更深层特征,使用不同空洞率卷积替代固定空洞卷积,在融合多尺度特征的同时,可以保证网络输出较高分辨率的密度图。在网络中插入上下文语义信息提取模块,使用不同大小感受野,关注麦穗上下文语义信息。WECnet 整体框架如图4 所示。前端网络由VGG19 的前12 层组成,对输入固定大小的224×224 RGB 图像进行3×3、步长为1 的卷积。在卷积第2、4、8 层后,使用大小为2×2、步长为2 的最大池化层,通过前端网络提取麦穗的基本特征。将提取到的VGG特征通过平均池化操作,使其成为不同大小的核,1×1 卷积可以跨通道组合上下文特征而不改变它们的维度,由于输出的特征图只包含部分原始输入值,因此需要上采样到原始输入值大小,获取尺度特征。将尺度特征与VGG 特征进行融合,然后将其传递给后端网络。后端网络使用空洞卷积,在不减小感受野的情况下降低空间特征的损失,针对麦穗特征,对空洞率进行调整,前两层使用普通卷积,3~6 层使用空洞率为2 与4 的空洞卷积,最后一层使用1×1 卷积进行输出,生成高质量的密度图,预测麦穗目标数量。
1.2.2 上下文语义信息提取
前端VGG网络在整幅图像上使用相同的感受野对图像进行卷积,而麦穗大小尺度不一,长宽比例不同,VGG网络提取的特征对麦穗计数存在局限,容易对较长的麦穗误检,影响计数精度。因此,在文中通过引入上下文语义信息提取模块,通过将VGG19 前12 层提取的局部特征进行平均池化分为4 种不同大小的块,然后对其进行上采样,以返回原始特征图大小形成对比度特征。对比度特征进一步用于学习不同尺度的权重,然后将其反馈至后端网络,最终生成高质量的密度图。上下文语义信息提取示意如图5 所示。
1.2.3 标签密度图生成
在麦穗标注中,每个麦穗仅标注其中心点坐标(x,y)。实际上,麦穗不可能只由一个像素点代替,中心点附近的坐标也可以代表麦穗。若直接将麦穗中心点作为目标1,其他部位直接视为负样本0,会对网络的训练带来极大的干扰,影响模型拟合。因此,本文采用MCNN[26]中生成密度图的方法,利用自适应高斯卷积核对麦穗标注形成标签密度图,距离中心点越近,激活值越大,这样网络能有方向地快速收敛到最优模型,密度生成函数为
式中di表示与第i个麦穗最相邻的m个麦穗的平均距离,β为增益系数,本文中,m取3,β取0.3。xi表示标注中心点坐标,δ(x−xi)表示图像包含的麦穗位置信息,G(x)为自适应高斯核函数。根据人工标注的坐标生成的麦穗密度可视化图如图6 所示。
1.2.4 田间小麦密度预测模型
田间小麦实拍面积大小计算方法如下:1)从无人机获取的图像信息中读取无人机飞行的相对地面高度H,为了便于计算,本文使用无人机进行水平飞行,可视为高度H固定。2)测量小麦高度,同一品种相同生长状态的小麦可视为同一高度,通过测量多株小麦麦穗高度取平均值获取h。3)通过镜头与小麦距离,镜头的水平视场角计算图像覆盖的面积S。田间小麦密度模型可由麦穗计数模型预测的单幅图像平均麦穗数量与图像覆盖面积计算。
式中S为拍摄图像的实际面积,m2;H为无人机距离地面高度,m;h为麦穗高度,m;θ为无人机镜头的水平视场角,(°),ρear为平均麦穗密度,个/m2,Ni为第i幅图像预测的麦穗数量,n为图像数量。
本文使用端到端的方法训练WECnet 网络,前12 层由训练良好的VGG19 进行微调,其他层进行标准偏差为0.01 的高斯初始化。所有模型均在Ubuntu 16.04 LTS 64位系统环境下运行,采用pytorch 深度学习框架。计算机硬件配置为32GB 内存,搭载 Intel® Core™ i7-8700K CPU 和GTX1080Ti 11GB 显卡。迭代次数为100 次,初始学习率设置为1×10-5,每30 次迭代学习率下降为原来的十分之一,动量(momentum)设置为 0.95,batch size设置为2。为了在训练前期更有效利用信息,采用随机梯度下降算法法(Stochastic Gradient Descent,SGD)优化训练模型。训练中损失函数的计算公式为
深度学习的计数相关研究通常使用平均绝对误差(Mean Absolute Error,MAE)、均方根误差(Root Mean Squared Error,RMSE)、决定系数(R2)作为模型评价指标。另外,对无人机图像计数增加整体错误率(Error rate,Er)指标。MAE 为预测值与真实值的平均误差,表示算法的准确性,MAE 越小,算法准确度越高;RMSE为预测值与真实值误差的分散程度,代表算法的稳定性,RMSE 越小,算法的鲁棒性越高;R2表示趋势线拟合程度,它的数值大小可以反映麦穗计数的估计值与对应的实际数据之间的拟合程度,数值越接近1,拟合程度越高,趋势线的可靠性就越高;Er 表示模型在整体测试集上预测麦穗计数结果的错误率,数值越小,整体误差越小。
为了验证WECnet 的性能,本文将WECnet 与其他4种经典、性能优异的方法进行对比,对比的方法分为两类:目标检测计数方法和密度图计数方法。目标检测算法使用矩形框标记目标的位置,结果更加直观,但在目标检测后处理过程中,单个目标物会应与多个预测目标输出,因此在对正样本的选择中,网络容易对密集、遮挡严重的目标漏检,影响计数效果。计数整体性能不如密度图方法。目标检测计数方法中,YOLO V5 为单阶段算法,其基于整张图片信息进行预测,因此速度较快,平均单幅图像检测仅需18 ms,但其通过长宽比筛选并过滤了大小和长宽比较极端的真实目标框,对部分麦穗未成功检测,影响计数性能。FPN[33]为两阶段算法,使用滑窗式的检测窗口,基于局部图片信息进行推理,速度较慢,平均单幅图像检测需60 ms,算法定位准确率较高,在麦穗数据集上MAE 到达了6.77。在密度图计数方法中,MCNN 使用多列分别训练,其参数计算量过大,并不能高效地预测不同大小的目标,并且难以训练,单幅图像计数耗时72 ms。CSRnet 采用易于训练的端到端方法,通过空洞卷积扩展感受野,用于人群计数和高质量密度图生成,单幅图像计数耗时28 ms。WECnet 由于增加了网络层数与语义信息提取结构,速度相较CSRnet 有所减慢,单幅图像计数耗时32 ms,提升精度的同时速度依然可以满足实际应用需求。不同方法对比结果如表2 所示。
表2 不同方法评估结果Table 2 Evaluation results of different methods
为了直观展示检测结果,本文将5 种方法计数结果进行可视化展示,如图7 所示。其中,图像1、2 包含麦穗数量的人工计数结果为49、64。检测算法使用矩形框标记目标的位置,结果更加直观,但在目标检测后处理过程中,单个目标物会应与多个预测目标输出,因此对正样本的选择中网络容易对密集、遮挡严重的目标漏检,影响计数效果,计数结果小于真实值。密度图方法直接进行回归计数,计数准确率相对较高。由于MCNN 与CSRnet 网络针对人群计数,将近似圆形的头部视为关键区域,未考虑小麦存在不同长宽比例的情况,过于狭长的麦穗被重复计数,造成部分图像计数值高于真实值的情况,而本文网络WECnet 进行改进,很好地避免了重复计数,并且加深网络层次,提取更深层次特征,取得了最优的计数效果。
WECnet 在原始人群计数网络CSRnet 的基础上添加了上下文语义信息提取模块,另外在前端特征提取网络将原有的VGG16 更换为VGG19,后端网络对固定空洞率的卷积替换为多种空洞率的卷积。为了验证改进的网络结构在麦穗计数中提升性能的能力,对不同网络结构的测试结果如表3 所示。
表3 不同网络结构计数性能比较Table 3 Comparison of counting performance of different network structures
表3 中,模型1 单独加入上下文语义信息提取模块,提取小麦尺度信息,模型2 单独使用多种空洞率的卷积,模型4 单独使用更深的VGG19 前端网络提取特征,更深的结构提取了更多麦穗特征。分别单独使用语义信息提取、多空洞率的卷积或VGG19 改进后,模型计数性能都有所上升,模型取得最优的R2、RMSE 与MAE 达到0.92、6.65 与5.12。
模型3 使用多空洞率卷积与语义信息提取模块,模型5 使用VGG19 与语义信息提取模块,模型6 使用VGG19 与多空洞率卷积。采用两种优化方式结合,计数性能得到进一步提升,模型取得最优的R2、RMSE 与MAE达到0.93、6.31 与4.92。最终,使用VGG19 作为前端网络、插入上下文语义信息提取模块以及使用多种空洞率的后端网络构建的WECnet 达到了最优的性能,其线性拟合R2达到0.95,RMSE 降低至6.1,MAE 降低至4.78,均为所有模型评价指标的最优值,相较于原始的人群计数网络,R2、RMSE 与MAE 性能分别提升4.4%、13.2%、9.8%,可以准确对麦穗进行计数。
在改进的计数网络上,本文对无人机拍摄的小麦图像使用原始计数网络及改进网络进行麦穗数量预测,同时与人工计数真实值进行比较,结果如图8 所示。
总体来说,改进后的4 种网络都可以较准确的对无人机获取的图像进行麦穗计数,R2均能达到0.85 以上,线性拟合线可以有效反映预测值与真实值的关系。具体来看,原始人群计数网络CSRnet 的R2达到了0.87,拟合程度较高,但是大部分图像预测麦穗数量大于真实数量,整体计数错误率较高,错误率5.49%。通过数据增强和改进网络,降低了整体计数错误率。在本文的WECnet上,使用数据增强计数对46 幅图像总计3 880 个麦穗的计数结果为3 871,错误率仅为0.23%,性能最优。因此,本文方法训练的模型可以有效用于田间实拍的麦穗图像计数中,对无人机获取的小麦图像可以进行准确的麦穗计数,进而对小麦的密度进行预估以实现精准的小麦估产。
本研究在人群计数网络CSRnet 的基础上,通过改进构建WECnet 网络对无人机采集图像中麦穗进行计数。为了获得可迁移的麦穗计数模型,选用全球5 个国家的1 000 幅不同品种小麦图像以保证麦穗多样性,并对训练集图像进行线性滤波增强。在WECnet 网络前端,通过使用VGG19 的前12 层进行特征提取,同时与上下文语义特征进行融合,充分提取麦穗的特征信息,后端网络使用多空洞率卷积在融合多尺度特征的同时,保持网络输出较高分辨率的密度图。为了验证模型的可迁移性,本研究通过训练好的模型对无人机获取的麦田图像进行计数。研究结论如下:
1)在全球小麦数据集上,本文训练的模型决定系数、均方根误差与平均绝对误差达到了0.95、6.1、4.78,相较原始的人群计数网络,计数准确率得到提升。
2)在无人机拍摄图像计数中,决定系数达到了0.886,整体错误率仅为0.23%,平均单幅图像计数时间为32 ms,计数速度与精度都表现优异。
通过本文构建的普适田间小麦密度预测模型,可以为无人机获取的小麦图像进行麦田估产提供数据参考。