张美娜 王 潇 梁万杰 曹 静 张文宇,4
(1.南京农业大学工学院, 南京 210031; 2.江苏省农业科学院农业信息研究所, 南京 210014;3.南京农业大学人工智能学院, 南京 210031; 4.江苏大学农业工程学院, 镇江 212013)
我国是设施农业大国,设施种植面积占世界总面积的85%以上,但与发达国家相比,我国设施农业的投入产出比、生产效率、机械化率与现代化管理水平仍然较低[1-4]。温室远程监控是一种现代化管理手段,依靠多源传感器、智能装备、物联网以及人机交互等多项技术支撑[5-8],如荷兰Priva Topcrop Monitor作物监测系统、美国Sensaphone系列环境与网络监控报警系统以及以色列BF-Agritech植物生态监测系统等。近年来,我国规模化温室面积稳步发展,基本配备有环境管控系统,但多依赖国外进口,受限于封装的软件系统,温室内监测的数据开放和利用不便。
传统的远程监控端人机交互方式主要依靠键盘、鼠标等外设,互动性不强;同时,数据展示方式以静态文本与监控视频为主,原始数据较多而综合性、分析性、决策性的数据较少,缺少数据信息与真实世界的交融。国外研究学者开展了相关研究,如KING等[9]开发了ARVino可视化系统,实现了在实景视频中叠加地理信息系统(Geographic information system,GIS)数据与葡萄种植数据,为葡萄栽培者提供了三维可视化的数据与分析。HUUSKONEN等[10]设计了一种增强现实(Augmented reality,AR)系统,远程监控端的操作员不仅可以获得实时可视化信息,还可以通过配套的可穿戴设备控制农机行驶。国内以计算机视觉技术为基础的人机交互系统在农业场景中的应用较少。
作物生理、形态等参数的获取首先建立在作物目标识别的基础上,国内外在该领域的研究主要集中在应用机器学习与深度学习算法从作物图像中识别目标。KOIRALA等[11]在果实检测方法综述中指出深度学习方法优于传统机器学习、神经网络、浅层卷积神经网络算法,果实识别精度普遍达到85%以上。用于目标检测的深度学习方法主要分为两阶段(2-stage)和单阶段(1-stage)检测算法。两阶段检测算法包括R-CNN(Region-convolutional neural network)、SPP-NET(Spatial pyramid pooling networks)、Fast R-CNN、Faster R-CNN、R-FCN(Region-fully convolutional network)、Mask R-CNN等。单阶段检测模型算法包括SSD(Single shot multibox detector)、YOLO (You only look once)v1~v5等[12]。相关研究主要以离线采集目标图像进行识别检测为主[13-16],极少涉及远程实时监控的场景。同时,新型深度神经网络模型算法仍不断涌现,使其在农业领域的探索应用不断拓展。
综上所述,本文设计一种温室远程监控系统,在远程监控端集成图像融合算法、人脸识别与手势识别算法,增强远程监控系统的多类型环境数据可视化与人机交互效果。同时,应用深度学习网络模型算法,实时、在线识别温室端监控视频中的番茄目标,以期为管理者提供作物生长信息奠定基础。
温室远程监控系统设计需求主要包括:①温室内通过“机器换人”实现温室环境与作物生长监测的无人化。②通过远程监控中心能够可视化温室内各类型的监测数据(文本、图像、视频等),具有预警提示功能。③安全、互动性强的人机交互系统。针对上述需求设计一种温室远程监控系统,如图1所示,系统主要由温室巡检平台、通信网络和远程监控中心3部分组成。
图1 系统结构示意图Fig.1 Architecture of system
温室巡检平台以巡检机器人(松灵SCOUT2.0型)为运动载体,搭载控制器、多源传感器与通信模块实现温室内环境与作物的动态监测。控制器为PC机,用于机器人本体的运动控制、传感器数据的采集与处理,以及通过通信模块收发数据。机载多源传感器主要包括用于巡检机器人自主导航的激光雷达传感器(镭神C16型),用于监测作物生长的视觉传感器(海康威视DS-E12型),用于环境监测的温、光、湿、气等传感器。通信模块包括PC机无线WiFi模块,可采集温室内布置的其他传感器数据,扩展的移动通信模块(华为4G LTE模块)用于将温室端数据传输至通信网络。系统关键模块技术参数如表1所示。
表1 关键模块技术参数Tab.1 Technical parameters of key modules
通信网络用于实现温室巡检平台与远程监控中心之间的数据通信。温室端集成的数据通过移动通信网络传输至云端服务器(阿里云轻量型服务器,2 GB内存)存储与转发至远程监控中心。
远程监控中心用于查看温室内作物与环境的可视化动态数据。监控中心为PC机,用于从云端下载温室端多源传感数据进行解码、分析与处理。PC机扩展摄像头实现人脸识别与手势交互两种人机交互方式,用于人员安全登录管理与监控界面显示数据的切换。
软件系统包括温室巡检机器人端软件与远程监控中心端软件两部分,均采用Pycharm集成开发环境,以Python为编程语言开发,除了标准库以外,开发过程还应用了OpenCV图像处理库、mmcv计算机视觉库以及PyTorch机器学习库的相关函数。
软件系统各功能模块组成如图2所示。温室巡检机器人端到云服务器端,以及云服务器端到远程监控中心端之间的通信均基于TCP/IP协议,通过Socket套接字函数实现。因传输的数据类型包括视频、图像和文本3种,设置8080、8088、8084服务器端口分别进行传输。远程监控中心端接收到数据后在人机交互界面显示与操作,主要包括人脸识别线程、AR数据增强显示线程、番茄识别线程、手势识别线程以及预警命令线程。完成的人机交互界面如图3所示。
1.3.1人脸识别算法
人脸识别登录用于提高系统的安全性。考虑到该功能的使用频率不高,为缩短研发过程和降低资源消耗,采用开源的传统人脸识别算法实现此功能。3种经典的人脸识别算法包括特征脸Eigenface、Fisherface以及局部二值模式(Local binary patterns,LBP),其中Eigenface算法的局限性为:待识别图像中人脸尺寸接近特征脸中人脸的尺寸,且待识别人脸图像必须为正面人脸图像;Fisherface算法增加了线性判别分析,对人脸差异的识别效果有所提升,但对光照、人脸姿态的变化不敏感;LBP算法将人脸图像分为若干子区域,并在子区域内根据LBP值统计其直方图,以直方图作为其判别特征,对光照有明显的鲁棒性[17]。综上所述,系统以OpenCV库为支持,采用Haar级联算法结合局部二进制模式直方图(Local binary pattern histogram,LBPH)算法分别实现人脸检测与有权限管理员人脸识别。
图2 软件系统功能框图Fig.2 Block diagram of software system
图3 人机交互界面Fig.3 Human-computer interaction interface
首先采用Haar级联算法实现人脸检测,Haar级联算法是一种用于在图像上定位对象的检测方法,具有识别速度快的优点[18]。算法原理概括为:①使用Haar-like特征做检测。②使用积分图(Integral image)对Haar特征求值进行加速。③使用AdaBoost算法选择关键特征,进行人脸和非人脸分类。④使用Cascade级联把强分类器级联到一起,提高准确率。
然后,采用LBPH算法[19]实现管理员人脸识别,算法实现概括为:①对待识别整幅图像进行LBP编码。②将图像分区并获取各区域LBP编码直方图,转换为直方图矩阵HIST。③计算待识别人脸图像直方图矩阵与已训练好的模型直方图矩阵之间的距离,若距离差小于设定阈值则判断为管理员,否则判断为非管理员。LBPH算法具有不受光照、缩放、旋转和平移影响的优点。
1.3.2手势识别算法
识别手部并定位手部关键点位置用于实现人机交互操作,即界面切换与图像尺寸缩放。随着目标检测技术的发展,很多学者将传统基于人工建模方式的手势识别转换成目标检测问题。考虑实时性需求,选择YOLO系列目标检测算法,其中,YOLO v3在手势识别中应用较为广泛[20-21],为此,本系统采用YOLO v3算法[22]先进行手部识别,通过PyTorch框架实现。识别后的手部图像将被截取输入到后续网络,进一步提取手部关键点信息。
手部关键点检测与面部关键点检测类似,应用面部检测表现突出的ResNet-50网络[23]检测手部21个关键点并输出坐标矩阵。ResNet网络有效解决了深度神经网络的退化问题,在神经网络发展史上具有里程碑意义。模型训练过程中,为解决传统L2损失函数对离群值敏感的问题,采用FENG等[23]提出的Wing loss作为损失函数计算式,为
(1)
其中
D=w(1-ln(1+w/θ))
(2)
式中 wing(x)——Wing loss函数
w——增大损失函数的值
|x|——误差D——常数
θ——约束非线性区域曲率
最后,以输出的食指指尖坐标为圆心绘制(eclipse()函数)动态圆形加载图标,同时,用直线连接左右手部候选框中心点坐标(Line()函数),根据直线距离的长短控制图像尺寸。
1.4.1算法模型
远程监控中心端的温室作物视频监控界面具备作物识别功能,可为作物尺寸、成熟度等生长参数的进一步提取奠定基础。农业环境复杂,传统CNN算法通过加深网络层数提高图像理解能力容易出现过拟合,性能提升有限。另一方面,Transformer 作为一种基于注意力的编码器-解码器架构,从自然语言处理(NLP)领域拓展至计算机视觉(CV)领域。视觉Transformer架构Swin Transformer在ImageNet、COCO 和 ADE20k 等多个数据集上取得了非常优异的性能。为此,应用以Swin Transformer[24]为主干网络提取特征图,再进入Cascade Mask RCNN[25]后续网络进行果实语义分割的网络模型,从而实现番茄作物识别,模型整体结构示意图如图4所示。
图4 番茄识别网络模型示意图Fig.4 Diagram of network model for tomato recognition
Swin Transformer网络模型主要考虑了视觉信号的特点,解决了传统Transformer模型多尺度建模与计算量巨大的问题,能够灵活处理不同尺度的图像,采用滑动窗口机制,将注意力的计算限制在每个窗口内,因此大大降低了计算复杂度。Swin Transformer网络模型输出与典型卷积模型的特征图分辨率一致,已成为一种基本骨干网络。这里选用Swin Small为主干网,其中Stage 1~4的Block数量分别为2、2、18、2,维度参数C为96。
Cascade Mask RCNN主要参考了实例分割主流算法Mask RCNN[26]模型结构,在每个级联阶段添加一个预测目标掩码的分支,从而实现更精确的实例分割。主干网获取的特征图进入Cascade Mask RCNN后续的区域生成网络(Region proposal network,RPN)和级联的检测网络分别实现目标识别和定位两阶段任务,通过使用不同的交并比 (Intersection over union,IoU)阈值训练多个级联的检测器能够有效提高目标检测精度。模型中,IoU梯度分别设置为0.5、0.6、0.7。
1.4.2损失函数
在模型训练阶段采用多种损失函数结合的方式评估模型。其中,图4中B0处Bounding Box采用Smooth L1作为损失函数。分类性能采用交叉熵损失函数。
Cascade Mask RCNN模型不同IoU梯度下的分类性能和语义分割性能仍然采用交叉熵损失函数评估;Bounding Box采用GIoU[27]作为损失函数。
1.4.3迁移学习应用
农业场景中,精细领域的数据集仍处于稀缺状态,制作大批量的高质量数据集所需的时间与人力成本较高,迁移学习是解决样本不足的有效方法之一。利用官方发布的coco预训练模型作为源模型,为后续番茄数据集模型训练的学习起点,以充分利用源模型的知识基础。
温室巡检机器人端控制器将采集到的环境传感器数据转换为字符串并连接为字符串报文进行发送,主要包括温室温度(℃)、温室相对湿度(%)、光照强度(lx)、二氧化碳浓度、土壤湿度(%)、土壤pH值、病虫害染病程度(%)、作物健康状况(健康、不健康)共8类数据,设置文本数据发送周期为1 h。
视频数据应用OpenCV库的图像压缩函数imencode()对图像帧进行处理,转换为字节流后传输,解决了基于像素访问进行传输数据量大的问题,接收端收到数据后利用imdecode()函数进行解压缩操作。图像数据传输与视频数据传输方法相同。系统通信试验结果表明,温室巡检机器人发送端到远程监控中心端之间的通信延迟均在 200 ms 以内。
2.2.1人脸识别试验
人脸检测训练数据来源于OpenCV官方训练的XML文件haarcascade_frontalface_default.xml。同时,在不同环境拍摄不同表情、不同姿态管理员面部图像80幅形成训练数据集,并进行验证,用20幅管理员面部图像作为验证集,识别成功率为90%。
2.2.2手势识别试验
手势识别数据集来自TV-Hand中2万幅手部图像[28];手部特征点检测数据集来自Large-scale Multiview 3D Hand Pose Dataset 中的5万幅图像[29]。YOLO v3与ResNet-50网络超参设置如表2所示。模型在AMD EPYC 7302 16-Core Processor,GeForce RTX 3090,23 GB显存,搭载Linux系统的环境下训练。Wing loss损失函数参数中w和θ分别设置为5和2。
手部识别试验结果表明,20次不同角度下的单手部识别置信度均大于0.98;同时,20次双手识别置信度均大于0.96。手部关键点检测的ResNet-50网络模型,训练146次的损失函数变化曲线如图5所示,损失函数最终收敛在0.1以下。
经手势识别后,人机交互与图像尺寸缩放的功能实现如图6所示。
表2 网络超参数设置Tab.2 Network hyperparameter settings
图5 手势识别网络损失函数变化曲线Fig.5 Loss function curve of gesture recognition network
图6 手势识别交互实现Fig.6 Human-computer interaction by gesture
2.3.1数据集与超参数设置
基于温室巡检机器人在温室采集不同角度、不同遮挡情况以及不同成熟度共计1 800幅番茄生长图像制作数据集。首先,采用基于PaddlePaddle的高效图像分割工具PaddleSeg人工标注图像;然后将标注后得到VOC格式的json文件经算法批量转换为Lableme格式的coco数据集;最后,将标注的番茄果实数据集划分为训练集、测试集、验证集,按比例8∶1∶1进行随机分配。模型同样在AMD EPYC 7302 16-Core Processor,GeForce RTX 3090,23 GB显存,搭载Linux系统的环境下训练。Cascade Mask RCNN网络中IoU梯度分别设置为0.5、0.6、0.7;网络超参数设置为:单批次图像数使用迁移学习算法前为2,使用迁移学习算法后为1,选用Adamw优化器,学习率为1×10-5,权重衰减为0.05,预热学习率为500。使用迁移学习之后将单批次图像数的值由原来的2改为1,该超参数为一次训练所选取的样本数,影响模型的优化程度和速度,在GPU内存受限的情况下取值较小。
2.3.2迁移学习应用效果分析
使用迁移学习方法前后损失函数变化曲线如图7所示,损失值统计如表3所示。
图7 使用迁移学习前后损失函数变化曲线Fig.7 Loss functions curves before and after using transfer learning method
在训练速度方面,由图7可知,使用迁移学习前后的模型都在迭代15 000次后收敛,但使用迁移学习后的单批次图像数调整为1,即花费了更少的训练时间。由表3可知,使用迁移学习方法后不同IoU阈值下损失值均小于未使用迁移学习方法的损失值。因此,应用迁移学习方法后,模型在收敛速度和最终收敛的损失值上更优。
表3 使用迁移学习前后损失值对比Tab.3 Comparison of loss value before and after using transfer learning method
同时,采用平均精度mask AP(Average precision)评估使用迁移学习前后的模型语义分割性能,mask AP越大,模型效果越好。mask AP计算结果如表4所示。
表4 使用迁移学习前后语义分割的mask AP对比Tab.4 Comparison of mask AP value before and after using transfer learning method %
由表4可知,使用迁移方法后,IoU取0、0.5、0.75时的mask AP提升了7.8、6.4、7.2个百分点,因此,该模型精度优于未使用迁移学习方法的模型。番茄实物最终的检测效果如图8所示。
图8 检测效果Fig.8 Detection results
(1)设计了一种温室远程监控系统。该系统以巡检机器人作为传感器数据采集与通信载体将温室内作物及环境数据发送至通信模块;通信系统采用移动通信网络加云服务器的网络架构实现温室端与远程监控中心端的文本、图像及视频3种类型数据的传输。
(2)集成了人脸识别与手部关键点识别算法实现远程监控端的人机交互。其中,管理员人脸识别基于Haar级联算法与LBPH算法,识别成功率达90%。手部关键点识别基于YOLO v3与ResNet-50算法模型,单手部识别置信度均大于0.98,双手识别置信度均大于0.96;同时,基于提取的食指指尖坐标与左右手部候选框中心点坐标实现了人机交互与图像尺寸缩放的功能。
(3)应用最新的Swin Small+Cascade Mask RCNN深度学习网络模型进行远程视频中番茄的检测与语义分割。同时,采用迁移学习方法解决农业场景数据集不足的问题。试验结果表明,使用迁移学习方法后,模型的收敛速度更快、损失值更低,语义分割精度有所提升,IoU取0、0.5、0.75时的mask AP分别提升了7.8、 6.4、7.2个百分点。