基于GoogLeNet和无人机图像的水稻秧苗形态识别
2022-05-02马立新刘德营
朱 伟,马立新,张 平,刘德营
(1 南京农业大学 工学院,江苏 南京 210031; 2 江苏省农业机械试验鉴定站,江苏 南京 210017)
水稻作为我国主要的粮食作物之一,常年种植面积超过 3×107hm2,产量保持在 2×108t以上。在东北、长江中下游、东南沿海三大产区,地势平坦,机械化水平高,各类型插秧机的使用大幅度提高了农业生产力[1]。但由于稻田整地不平、沉淀时间不合理、秸秆残渣未清理和机手操作不当等问题,极容易发生漏插、漂秧、伤秧等情况,造成一定的经济损失。因此,准确快速评价插秧机作业质量,是后续安排补秧计划、减小经济损失的必要前提[2]。现行的插秧机质量评价方法仍需要工作人员克服室外高温、田地泥泞等困难,采用抽样调查法,通过目测主观判断秧苗形态,统计漏插率、漂秧率和伤秧率等指标[3]。该方法存在环境差、任务重、客观性不足和效率低下等问题,因此实现水稻秧苗形态的快速精准识别,对于评价插秧质量具有重要意义。
近年来,随着无人机、图像处理和深度学习等技术手段在农业领域的应用不断深入,在农作物的长势判断[4]、倒伏面积计算[5]、病虫害诊断[6]和产量预测[7]等方面取得显著成效。无人机具有速度快、地形限制少、地面分辨率高等优点,结合深度学习在图像处理中的鲁棒性强、泛化能力好的特点,十分适合处理田间背景下的复杂问题[8-11]。陶惠林等[12]利用无人机获得冬小麦高光谱数据,通过构建光谱指数,分析其与冬小麦的长势监测指标的相关性,利用多元线性回归、偏最小二乘和随机森林3种机器学习方法建立冬小麦各生育期反演模型,得到冬小麦长势监测图。赵静等[13]基于无人机RGB图像提取出数字表面模型,通过计算过绿指数,利用最大似然法和随机森林法监督分类提取小麦倒伏面积,试验表明融合图像特征取得了较好的预测结果。
在目前深度学习快速发展的基础上,图像识别分类研究正大步前进[14-17]。林相泽等[18]基于迁移学习和Mask R-CNN提出了一种稻飞虱图像分类方法,通过自主研发野外昆虫图像采集装置,获取大量稻飞虱和非稻飞虱图像,试验结果表明,该算法平均识别精度达到0.92。陈进等[19]基于改进U-Net网络,通过增加网络深度,提高网络泛化能力,建立水稻籽粒图像分割模型,能较好地分割谷物籽粒、枝梗和茎秆,为水稻联合收割机含杂率实时监测提供算法支持。杨万里等[20]使用SegNet和Faster R-CNN对盆栽水稻稻穗进行分割和计数,结合穗部、颜色、形态、纹理等表型特征构建盆栽水稻稻穗质量预测模型。
本研究提出了一种基于卷积神经网络GoogLeNet的水稻秧苗形态分类识别方法。该方法利用无人机超低空对稻田拍照,通过对秧苗形态判断分类,为快速、准确评价插秧机作业质量提供支持和帮助。
1 材料与方法
1.1 研究区域概述
研究区域主要分布于江淮一带,水稻栽插期通常安排在“三夏”期间,一般是5月下旬至六月中上旬。该区域属于北亚热带南部湿润性地区,气候温和,四季分明,雨水充沛,年平均气温在15~20 ℃,拥有种植水稻的良好环境。研究团队为获取不同时空条件下的秧苗样本图片,多次前往各地农场、稻田,开展前期调研、数据采集、下田试验等工作,试验信息如表1所示。
表1 研究区域的试验信息Table 1 Test information of research areas
1.2 数据获取
数据采集由大疆精灵 Phantom 4 RTK(Real -time kinematic)完成,机身内部携带 1 张 64 GB 内存卡,负责存储航拍图片。无人机续航时间为20~30 min,工作环境温度为 0~40 ℃,影像传感器大小为 13.2 mm×8.8 mm,有效像素为 2 000 万,镜头焦距为 8.8 mm,照片分辨率为 5 472×3 648,每个像素代表的实际距离为2.4 μm。
结合上述数据,通过公式(1),得到无人机在不同高度下的空间分辨率 (Ground sample distance,GSD),以及镜头覆盖的有效距离(表2)。
表2 无人机分辨率及有效距离Table 2 UAV resolution and effective range
式中:GSD表示空间分辨率,即1个像素代表的实际距离大小;H表示相对航高;f为镜头焦距;a为像元尺寸。以江苏地区农艺要求为例,相邻秧苗株距为 120~170 mm、行距为 270~330 mm,考虑到对于秧苗漏插率的检测,无人机飞行相对高度不宜超过 5 m。
无人机航拍时间为2020年6月10日15:00—16:00,天气晴朗,无风无云,温度33 ℃。航拍路线规划是在IQOO Neo3安卓设备上运行DJI Polit APP设计完成,航线规划选择航点飞行,高度为3 m,速度为1 m/s,间隔3 m添加航点,并设置航点拍照动作,航拍路线如图1所示。无人机执行飞行任务期间,云台保持垂直向下90°,完成规定动作,待飞行任务结束,自动返航,更换飞行方向,重复飞行若干次。
图1 无人机航拍路线Fig. 1 UAV aerial photography route
登录RTK网络账号,无人机在田间整体定位精度达到0.1 m,单次飞行时间5 min左右。任务结束后,取下机身内存卡,在笔记本电脑上保存,共得到试验田航拍图片1 120张,格式为JPG,单张图片大小为10 MB左右。
1.3 数据处理
1.3.1 图像预处理 由于田间背景复杂,需要对图片进行灰度化、阈值分割、形态学滤波、连通区域统计、单穴秧苗图片保存等操作。如图2所示,通过灰度化处理去除原始RGB图像包含的冗余信息,减少图像处理过程的数据维度;利用秧苗的绿色与泥田的土褐色差异,通过最大类间方差法(Otsu)来实现目标秧苗、泥田背景的分离;剔除图片中存在的孤立的、微小的噪声点;提取各连通区域的质心坐标,依据坐标大小进行排序,得到秧苗行列关系;最终按照秧苗编号进行单穴秧苗图像裁剪命名保存。通过预处理过程能将单张连续多穴秧苗图像裁剪为多张单穴秧苗图像。
图2 水稻秧苗图像预处理流程Fig. 2 Pretreatment processs of rice seedling image
通过Otsu确定分割阈值,可以较好地解决水面反射、光照强度变化等问题,达到期望的分割效果,实现秧苗行列关系判断与编号。按照每列次序,通过公式(2)计算相邻秧苗质心距离是否在正常株距范围内,判别是否发生漏插现象。设正常情况下秧苗株距像素距离为d,当秧苗间像素距离D大于1.5d,即可判断此处发生漏插,经过多次图像试验,其正确率可达到95.6%以上。
式中:D表示相邻秧苗的质心距离;(x1,y1)和(x2,y2)分别为相邻秧苗的质心坐标。
依据中华人民共和国国家标准GB/T 6243—2017水稻插秧机试验方法[21]、农业机械推广鉴定大纲DG/T 008—2019水稻插秧机[22],结合实际判断经验,做出下列定义:
漏插:插秧机执行栽插动作后,无水稻秧苗的插穴;
漂秧:插秧机执行栽插动作后,秧根未栽入泥土内,而漂浮于稻田中的秧苗;
伤秧:插秧机执行栽插动作后,秧苗茎部有折伤、切断等现象的秧苗;
合格:在插穴内,未发生漂浮、折伤、切断等现象的秧苗属于合格。
以质心坐标为裁剪图像中心,向四周扩展,裁剪出任意大小的单穴水稻秧苗图像,通过多次比较,发现224像素×224像素图像处理效果最好,可以做到对单穴秧苗的完全容纳,且不会过多涉及其他穴秧苗,部分结果如图3所示。无人机在3 m高度下的分辨率为每像素0.82 mm,112像素的距离转换为实际距离大约为92 mm,而相邻株距为120~170 mm,可见正常情况下,图片内最少出现1穴完整秧苗,且不会同时出现多穴完整秧苗。考虑到田内秧苗品种、培育环境相同,自身成长特性相似,故选择面积最大的秧苗进行识别。该尺寸仅对应无人机飞行高度为3 m的裁剪要求,如果飞行高度变化,裁剪尺寸也应发生变化。
图3 水稻秧苗样本图像Fig. 3 The sample images of rice seedlings
在试验中,首先对无人机镜头进行手动对焦,并调整光圈大小、曝光模式以确保无人机拍照清晰;其次通过对试验田开展整地工作,减少秧苗栽插入土的阻力和秸秆杂物的影响;最后调节插秧机取样量,选择均匀度合格的秧盘,均匀、整齐地完成插秧作业。通过采取上述措施,可有效减少无人机航拍图像中模糊、黏连现象的发生。将所得单穴秧苗图像分为:漂秧、伤秧和合格秧苗3类,分类完成后,分别获得 5 247 张漂秧、5 713 张伤秧和 89 425张合格图像,最终分别选取3类秧苗图像5 000、5 000和80 000张,共计90 000张单穴秧苗图像作为试验数据。
1.3.2 算法设计 GoogLeNet主体结构由输入层、5组卷积模块和输出层组成,具体包括了22层参数层和5层池化层。输入层是224×224×3的图像,第1组、第2组卷积模块包括卷积层、最大池化层,第3组、第4组和第5组卷积模块主要由Inception Module结构和最大池化层组成,输出层由平均池化层、Dropout、全连接层组成。网络结构图如图4所示。
图4 GoogLeNet结构Fig. 4 GoogLeNet structure
Inception module结构有4条并行路径,前3条路径分别使用1×1、3×3和5×5卷积核提取不同图像感受野特征信息,第4条路径使用3×3的池化核来选取特征点、防止过度拟合,并添加1×1卷积。为降低模型复杂度、减少数据维度,在第2条、第3条路径中加入1×1卷积操作。Inception module结构图如图5所示。
图5 Inception module结构Fig. 5 Inception module structure
对于输入图像为 224×224×3 时, GoogLeNet各层参数如表3所示。
表3 GoogLeNet结构参数1)Table 3 The structural parameters of GoogLeNet
1.3.3 对比试验算法设计 为体现 GoogLeNet卷积神经网络在水稻秧苗形态识别的优势,选取传统的支持向量机 (Support vector machine,SVM)和BP(Back propagation)神经网络作为对比试验方法进行分类准确性的比较。如图6所示,通过对单穴秧苗图像的Otsu阈值分割、形态学滤波、边界提取、参数计算等处理,得到相关特征值。
图6 水稻秧苗图像的特征提取Fig. 6 Feature extraction of rice seedling image
考虑到目标秧苗与稻田背景的颜色差异,其分别占据不同灰度范围,同时阈值分割计算简单、性能稳定,通过Otsu、双峰法、迭代法的试验比较,最终选用Otsu确定阈值作为分割依据,判定图像中像素点灰度值小于k的属于泥田背景,像素点灰度值大于k的属于秧苗,通过求解秧苗和泥田背景之间方差最大值,此时k值即为最佳阈值,能达到最好的分割效果。
在进行形态学滤波处理时,建立轮廓层次,区分外部、内部2种轮廓,使用开闭运算,通过设置阈值,针对小于阈值s的孔洞进行填充,避免因填充造成的轮廓变化,影响到特征值的大小,防止对秧苗形态误判。
选择秧苗的轮廓信息作为描述秧苗形态的特征参数,通过有效筛选,确定狭长度、矩形度、紧凑度、HU不变矩4组特征值。
狭长度(L)为秧苗轮廓外接矩形的狭长程度,反映秧苗自身有效尺寸。
式中:Length、Width分别为最小面积矩形的长、宽。
矩形度(R)为秧苗对其外接矩形的填充程度,反映每穴秧苗的分叉情况。
式中:SArea为秧苗填充区域的像素和,SMABR为最小外接矩形的面积。
紧凑度(C)为秧苗边界的紧凑程度,反映秧苗边缘轮廓的粗糙情况。
式中:Perimeter为秧苗周长,即秧苗边界的像素点和。
HU 不变矩包括 7 组特征量 [M1,M2,M3,M4,M5,M6,M7],其具有平移、旋转和尺度不变性,可以用来描述秧苗图像的全局特征。考虑到二阶矩稳定性更好,误差更小,故选择M1、M2作为HU不变矩的代表特征。
式中:η20、η02、η11均代表图像不同次幂的二阶归一化中心矩。
通过对大量秧苗图像处理,计算有关特征参数均值,结果如表4所示。
表4 水稻秧苗轮廓特征参数信息Table 4 Parameter information of rice seedling outline feature
选择表格内的特征参数,作为SVM和BP神经网络的输入特征向量矩阵,SVM基于径向基核函数 (Radial basis function),通过 Class-weight对不同类别设置不同惩罚参数(C1~C3,C1为16、C2为16、C3为1),惩罚系数一般为样本数据各类别比例倒数,使用网格搜索法确定rbf_sigma为0.3,BP网络包括输入层、单层隐含层和输出层,输入层神经元节点数取决于输入的特征向量维数,输出层节点数对应输出的识别种类个数,隐含层节点数一般由经验公式(7)确定,故本BP神经网络中输入层节点数为5,隐含层节点数为4,输出层节点数为3。隐含层神经元的激活函数为Logsig函数(线性函数),输出层激活函数为Purelin函数(非线性函数),训练函数为Traingdx函数(梯度下降自适应学习率训练函数),学习函数为Learngdm函数(梯度下降动量学习函数),训练回合数为20次,训练目标为0.1,学习速率为0.05,继而得到传统图像处理方法对秧苗形态识别正确率。
式中:G表示隐含层节点数;m表示输入层节点个数;n表示输出节点个数;b为1~10的调节常数。
2 试验与结果分析
2.1 试验环境及参数设置
试验涉及到的所有模型均在以Win10专业版为操作系统、CPU为Xeon E-2176M、显卡为NVIDIA Quadro P3200 和 Intel HD630、软件运行环境为Matlab2020b上的戴尔工作站上完成。
将裁剪、分类、标记完成的90 000张单穴水稻图像,按照7∶2∶1的比例随机分成训练集、验证集、测试集。经多次试验后依据准确率最优原则,初始学习率设置为0.000 1,动量设置为0.9,最大训练回合数为10,批尺寸为32,迭代次数设定为2 000次,优化函数选择Sgdm,通过引用代价向量,首先依据样本比例指定代价向量初值,结合训练过程中得到的混淆矩阵对代价向量进行调整,参考错分比例增减漂秧、伤秧样本的惩罚向量权值,调整模型在小样本的注意力,缓解样本不平衡带来的影响。
2.2 结果与分析
在水稻秧苗图像分类试验中,使用计时器,对遍历测试集文件夹内水稻单穴图像分类试验过程进行计时,通过公式(8)分别计算3种方法分类平均时长,对比GoogLeNet、SVM和BP神经网络的分类结果,如表5所示。
表5 3种算法的秧苗形态识别试验结果Table 5 The experimental results of three algorithms for recognition of seedling morphology
式中:T表示平均识别时间,即包括输入水稻图像、图像处理、特征值计算和输出分类结果等完整过程的耗时均值;t表示分类试验时长;TP表示秧苗图像正确分类的数量;FP表示秧苗图像错误分类的数量。
由表5 可见,基于卷积神经网络的 GoogLeNet模型,对于秧苗形态的平均识别正确率达到 91% 以上,单穴图像检测时间仅为 0.27 s。而传统的分类方法,SVM平均识别正确率仅在70%左右,BP神经网络平均识别正确率在78%左右,分别下降了21、13个百分点,检测速率也分别增加到1.36和0.85 s。通过深度学习能有效减少对于图像的预处理操作,避免人工提取特征时间,有效提高检测效率。
经过归纳总结发现,秧苗茎叶折伤的程度有轻有重,其角度、位置、数量都会影响伤秧的正确识别。伤秧的程度过轻,如出现小角度、前端折伤,秧苗与正常秧苗子叶弯曲相似,此时伤秧形态和合格秧苗差异较小,容易误判;伤秧的程度过重,如出现大幅度、大面积的倒伏,此时伤秧形态与漂秧差异较小,也会发生误判。这两类情况的出现,造成了伤秧识别率在秧苗形态分类准确率中偏低。
3 结论
1) 通过规划航线,无人机超低空航拍,可以快速、准确地取田间秧苗图片,及时评价插秧质量,对后续补秧计划提供支持。
2) 基于卷积神经网络GoogLeNet进行秧苗形态判断,可以实现漂秧、伤秧、合格秧苗形态的平均识别正确率为91.17%。
3) 基于卷积神经网络GoogLeNet进行秧苗形态判断,减少了传统图像识别方法中的预处理和特征提取操作,单穴水稻图像形态判断可以在0.27 s内完成,提高了算法的响应速度和泛化能力。
4) 算法的局限性:目前仅对部分秧苗种类数据做出判断识别,后续可以通过增加其他品牌、育秧方式、培育周期等秧苗数据,丰富不同秧苗形态模型结构。