基于双目视觉的农药喷洒机器人识别系统
2024-01-20蒲烨锋李心怡
张 谋, 蒲烨锋, 江 雯, 王 鹏, 李心怡
(1.北京航天长征飞行器研究所,北京 100076; 2.华中科技大学航空航天学院,湖北 武汉 430074)
0 引言
玉米作为我国主要粮食作物,其产量直接影响我国粮食安全[1]。玉米的病虫害防治是生产过程中的关键环节,而现有农药喷洒方式仍存在效率低、成本高、易浪费和易污染等缺陷。近年来,智能算法已广泛应用于各领域的识别检测任务中,利用智能算法优化玉米苗期农药喷洒过程,不仅能节约成本、提高农药利用率,还能进一步提高农业智能化水平。
目前,国内外研究人员将视觉算法应用在农作物的识别检测领域[2-3]。早期的机器视觉方法主要基于图像处理算法。MILLER B K 等[4]结合阴影矫正与红外图像,分割缺陷区域对桃子分类。SARKAR N 等[5]基于茎和花的末端视图建立了一种番茄分类方法。WOEBBECKE D M 等[6]通过颜色指数分割图像实现对杂草的识别。马志艳等[7]基于HSV 空间分割玉米苗图像,利用形态运算与骨架提取算法提取轮廓信息、确定茎秆坐标,实现识别定位。
随着计算机算力提升,机器学习在图像识别、文字处理、人机交互等领域发展迅速,支持向量机、贝叶斯算法、神经网络算法等智能算法也逐渐代替图像处理手段应用在农业检测中[3,8-10]。KURTULMUS F等[11]将机器视觉与支持向量机算法相结合检测玉米穗。ROMUALDO L 等[12]利用贝叶斯算法检测玉米叶片中氮营养状况。LU H 等[13]将神经网络算法用于玉米穗的分割任务。MOHANTY S P 等[14]基于AlexNet 完成了对14 种农作物和26 种病虫害的识别诊断任务。张开兴等[15]将图像中的颜色与形状特征作为BP 神经网输入,实现玉米叶病虫害的识别。张伟荣等[16]将改进的Mask R-CNN 玉米苗冠层分割算法应用在对靶施肥的任务中。迁移学习与数据增强也被证实在提高模型精度与鲁棒性上具有良好效果。CONDORI R H M等[17]运用简单的迁移学习方法,提高了对玉米叶片识别的成功率。陈桂芬等[18]结合迁移学习与数据增强两种方法实现玉米病害识别。石新丽等[19]将二值化处理作为数据增强手段,利用YOLOv3 网络鉴别玉米害虫以提高识别准确率。
综合现有识别手段,本研究提出一种可搭载于农药喷洒机器人的视觉识别系统,系统以ARM 集成板作为嵌入式硬件,双目相机作为图像采集设备,可对单株秧苗进行精确喷药。
1 材料与方法
1.1 系统整体设计
视觉识别系统主要包括神经网络训练、识别测距程序集成和硬件集成。选择“Raspberry Pi 4B”作为嵌入式集成板,植入双目相机与识别测距程序,并将开发板固定在农药喷洒机器人上,利用上位机控制。搭建好的系统工作流程如图1 所示,位于小车上的相机实时采集图像信息,随后将图像传至集成板处理,通过识别运算后输出目标分类、目标置信度及目标坐标,当检测到待喷药玉米秧苗处于农药喷洒机器人喷洒范围内时,利用GPIO 模拟PWM 信号控制喷淋系统,实现对单株秧苗精确喷药。
图1 农药喷洒机器人视觉识别系统工作流程Fig.1 Workflow of visual identification system for pesticide spraying robot
1.2 SSD-MobileNetv1 网络模型
SSD-MobileNetv1 神经网络模型是单阶段目标检测算法SSD 与轻量级深度可分离卷积模型MobileNetv1的结合体。其中,SSD 算法是由LIU W 等[20]在2016年提出的一种基于回归的单阶段目标检测算法。该算法结合了YOLO 的回归理念和Faster-RCNN 的锚定机制,在保证预测精度的同时也增加了运算速度。MobileNetv1 网络(一种专为移动和嵌入式设备打造的轻量级网络)则采用深度可分卷积算法以进一步减少模型计算量[21]。
Google 团队用MobileNetv1 替换SSD 网络中的主干网络VGG16,提出SSD-MobileNetv1 网络模型。该网络以MobileNetv1 为基础,并在Conv13 层后添加8个卷积块,分别提取6 个不同尺度的特征图,随后利用锚定的思想生成众多先验框,分别进行类别与位置回归,最后以非极大值抑制法得到图片的目标检测结果。该网络兼具SSD 与MobileNetv1 两种网络优点,主要结构如图2 所示。
图2 SSD-MobileNetv1 神经网络主要结构Fig.2 Main structure of SSD-MobileNet neural network
1.3 双目相机测距原理
双目相机测距主要包括相机标定、双目校正、双目匹配和计算深度信息4 个步骤[22]。对于已知相机参数且成像在同一平面上的双目相机系统,如图3 所示,假定镜头焦距为f,相机光心分别为Oz1和Oz2,相机光心之间的距离为B,则空间内一点p(x,y,z)在左右相机上成像点pl与pr的坐标为
图3 双目相机光轴与成像平面Fig.3 Optical axis and imaging plane of binocular camera
1.4 识别与测距程序集成
1.4.1 图像增强与数据集制作
在采集图像时需根据农药喷洒机器人的实际应用情况确定相机架设高度与偏向角度,固定相机焦距,并考虑光照与距离的影响。为增加图像样本多样性,可在不同光线、不同距离下对玉米秧苗进行拍摄。模型训练效果通常与图像样本质量、数量有关,过少的样本通常会导致模型陷入局部最优解。为防止过拟合现象发生,还需对图片数据集进行扩充。本研究利用OpenCV 软件库中的图像处理函数,随机对图像进行翻转、剪裁、旋转、增加噪声和调整亮度等操作,将图片数量扩充至原来的18 倍,如图4 所示。扩充后的图片按3∶1 的比例随机分为训练集与测试集,利用LabelImg 图像标注工具,框选图片中待识别的玉米秧苗,赋予标签,完成模型数据集的制作。
1.4.2 卷积神经网络训练
选择开源的TensorFlow-object detection 框架,修改SSD-MobileNetv1 模型配置文件中的训练参数(设置初始学习率0.004,训练步数100 000 步、batch size 为8,衰减步数和衰减系数分别为100 和0.95)。为获得更好的训练效果,加载预训练模型参数作为初始化参数进行训练。训练运行环境:基于Python3 编程语言的TensorFlow1.15 深度学习框架, 操作系统为Windows10-64 位专业版,CPU 为Intel(R) Core(TM)i5-3 470,GPU 为NVIDIA GTX1060Ti,基础环境配置为Anaconda3、PyCharm2020。
为方便模型的调用与集成,使用OpenCV 深度神经网络模块,将TensorFlow 训练生成的pb 模型文件转换为OpenCV 软件库可读取的文件格式,即在程序中可使用readNetFromTensorFlow 函数直接读取模型文件。
1.4.3 双目相机标定
为了矫正由于镜片透视失真造成的图片变形,在获取图像中的三维信息时,需通过标定确定两台相机之间的位置参数与畸变系数。选取市场上较便宜且质量较轻的DS-3DW300 双目摄像头模组作为图像采集设备。按照张正友标定法准备棋盘格标定板,固定摄像头位置,运行图像采集程序,本例共收集左右摄像头拍摄的标定照片49 张。借助MATLAB 标定工具箱完成相机标定计算,得到相机参数如表1 所示。
表1 双目相机参数标定结果Tab.1 Internal calibration results of binocular camera
1.4.4 识别测距与喷药程序
基于OpenCV 软件库提供的双目矫正与立体匹配相关算法,首先利用标定所得相机参数对图像进行校正,随后采用半全局匹配(SGBM)算法生成视差图,根据视差图中的信息计算得出每个像素点的三维坐标。如图5 所示,实时检测与喷药程序主要流程为初始化GPIO 模块、加载模型文件、读取左右目相机视频流、矫正每帧图像后匹配生成深度图、识别图像中玉米秧苗、输出玉米秧苗坐标与识别率及GPIO 模拟PWM 信号启动喷淋系统。
图5 实时检测喷药程序流程Fig.5 Flow chart of spray procedure for real-time detection
2 结果与分析
SSD-MobileNet 网络模型经过100 000 步的训练,最终得到模型的分类损失2.932,定位损失0.917,总损失4.286,对玉米秧苗识别准确率可达到84.18%。玉米秧苗图像识别效果如图6 所示。
图6 双目相机下玉米秧苗识别效果Fig.6 Identification effect of maize seedling under binocular camera
通过固定相机拍摄角度与高度,在玉米试验田中测试系统的识别与测距效果,经过SGBM 算法立体匹配与深度计算,输出效果如图7 所示。该系统基本满足农药喷洒机器人在作业时对玉米秧苗的识别与测距要求。
图7 玉米秧苗左目图像与视差Fig.7 Left camera image and parallax map of maize seedling
3 结束语
将深度学习的方法应用于农业生产环境下的玉米秧苗目标检测,基于SSD-MobileNetv1 网络和ARM 集成板搭建了一种可以用于农药喷洒机器人的视觉识别与喷药系统。轻量级神经网络SSD-MobileNetv1 具有运算速度快、精度高的优点,适用于嵌入式设备;而树莓派开发板体积小、方便搭载于各种尺寸的移动机器人上,并且成本低、可集成功能多,是性价比较高的嵌入式设备。搭建好的秧苗识别系统可以满足田间对玉米秧苗基本检测的需求,实现对单株玉米秧苗的农药喷洒,也可改变算法网络与数据集,将该系统应用于其他农作物的农药、肥料喷洒作业中。