基于深度学习的模糊农田图像中障碍物检测技术

2022-04-07 13:56薛金林李雨晴曹梓建
农业机械学报 2022年3期
关键词:锐度障碍物阈值

薛金林 李雨晴 曹梓建

(南京农业大学工学院, 南京 210031)

0 引言

在农业机器人或者无人农业车辆行进路线上不可避免地存在大量障碍物,包括树木、草堆、房屋、电线杆、人、牛、羊和其他农机,如果不通过传感器实时感知并及时避开,会造成严重的安全问题。因此,农业机器人或者无人农业车辆应该具有检测和识别障碍物的能力[1]。

针对农田障碍物,传统检测方法采用立体视觉技术[2]、小波多分辨率分解[3]、激光扫描定位[4-5]、HOG特征与支持向量机[6]等来进行。传统方法存在的缺陷有:只进行障碍物定位而不对障碍物进行识别分类,这不利于后续精准的路径规划和避障;检测障碍物的种类和数量有限;根据人的经验选取特征,如果选取的特征不足以表征目标障碍物,则会影响识别效果。深度学习的兴起为农田障碍物检测识别带来了新思路。薛金林等[7]针对农田作业场景中的人和其他农业车辆等动态障碍物提出了一种基于卷积神经网络的农业自主车辆多种类障碍物分类识别方法。刘慧等[8]针对果园环境复杂难以准确检测出障碍物信息的问题,提出了一种改进SSD方法。杨娟娟[9]提出了一种结合区域提名与无需区域提名的新型智能目标检测算法。农田环境的地形通常是凹凸不平的,视觉传感器需要在不稳定的状态中采样,以上研究均未考虑不稳定状态采样造成的模糊图像的输入对深度学习检测模型的影响,这势必造成实际检测效果达不到预期水平。

在检测模型的训练阶段,所使用的数据集通常是在一个稳定的、高质量的环境中采集的。然而,当农机在田间作业时,由于相机镜头缺陷、相机抖动、目标运动等原因,会获得一些模糊图像,它们会改变图像中包含的重要信息,导致训练后的模型在推理阶段检测精度较差。因此,本文研究一种基于改进Faster R-CNN和SSRN-DeblurNet的两阶段检测方法,来解决模糊图像输入导致的深度学习检测模型检测精度下降、漏检和误检问题。

1 两阶段检测方法原理

两阶段检测模型的网络结构如图1所示,整个网络分为4部分:去模糊网络、骨架网络、区域候选网络、分类回归网络。去模糊网络由不同尺度的全卷积子网络构成,主要作用是对锐度S低于阈值SThr的图像去模糊以恢复图像质量;骨架网络由去除全连接层的ResNet50网络构成,主要作用是对图像进行特征提取;区域候选网络由卷积层、池化层和全连接层构成,主要作用是生成优化候选区域;分类回归网络由池化层和全连接层组成,主要作用是进行目标识别和精准定位。

整个检测模型的工作流程分为2个阶段。第1个阶段是基于SSRN-DeblurNet去模糊网络进行去模糊,首先对输入图像进行锐度评价,如果输入图像的锐度S低于设定的锐度阈值SThr,则图像被送入SSRN-DeblurNet网络中进行去模糊处理,去模糊后的图像被送入第2阶段进行检测;如果输入图像的锐度S高于设定的锐度阈值SThr,则图像直接被送入第2阶段进行检测。第2阶段是基于改进的Faster R-CNN网络检测图像中的农田障碍物。首先利用骨架网络对输入图像进行特征提取,生成的特征图用于区域候选网络(Region proposal network,RPN)和分类回归网络。RPN网络级联1个候选区域优化网络用于过滤低质量的候选区域,提升检测的精度。利用RPN网络生成的优化候选区域和骨架网络最后一层得到的特征图,得到固定尺寸的候选区域特征图。最后利用Softmax函数进行目标类别的确定并利用边界框回归获得目标的精确位置。

1.1 基于SSRN-DeblurNet的去模糊阶段

1.1.1锐度阈值

清晰图像比模糊图像的边缘更加锐利清晰,边缘像素灰度变化大,因而有更大的梯度。因此,可以利用梯度函数获取图像梯度信息,从而评判图像的锐度。梯度函数主要包括Brenner梯度函数[10]、Tenengrad梯度函数[11]、Laplacian梯度函数[12]、SMD函数[13]、Variance函数等[14]。

图像锐度评价算法的性能通过人眼主观评分和算法预测评分的相关性进行评价[15]。预测准确性和单调一致性是衡量评价算法性能的2个常用标准,通过以下参数体现:皮尔森线性相关系数(Pearson linear correlation coefficient,PLCC)、肯德尔秩次相关系数(Kendallrank order correlation coefficient,KROCC)、斯皮尔曼等级相关系数(Spearman rank order correlation coefficient,SRCC)、均方根误差(Root mean square error,RMSE)[16]。如果以上3个相关系数的值越接近于1,RMSE越小,说明锐度评价算法越准确。此外,本文将单幅图像检测时间也纳入评价参数范围,单幅图像检测时间是随机选取的500幅图像的平均检测时间。基于以上5个参数进行图像锐度评价函数的选择。

在ITU-R BT.500 图像质量主观评价方法的五级损伤量表[17]的基础上建立图像锐度的主观评分标准,本文只需要2个尺度对需要去模糊和不需要去模糊的图像进行评价。因此,主观评分标准为:当评价人认为图像的模糊程度可以察觉但并不讨厌时,该图像的主观得分为2;当评价人认为图像的模糊程度讨厌时,该图像的主观得分为1。

从数据集中随机抽取500幅图像,同时用4种不同的梯度函数预测锐度以及进行人眼主观评分。4种不同的梯度函数性能如图2所示。

图2 4种梯度函数的性能Fig.2 Performance of four gradient functions

由图2可以看出,采用Tenengrad梯度函数作为锐度评价函数,检测速度快、均方根误差最小、与主观评价方法相关性较大。Tenengrad梯度函数采用Sobel算子分别提取水平和垂直方向的梯度[18],基于Tenengrad的图像锐度定义为

(1)

其中

式中T——给定的边缘检测阈值,对应图像最大梯度的0.5倍

Gx——像素点(x,y)处Sobel水平方向边缘检测算子的卷积

Gy——像素点(x,y)处Sobel垂直方向边缘检测算子的卷积

锐度阈值的选择是基于测试集上的人眼主观评分与算法预测分数分布,需满足检测效率要求和准确性的要求。对测试集进行主观评分后,利用Tenengrad梯度函数对测试集的图像进行锐度预测,根据人眼主观评价分与算法预测分的分布确定锐度阈值。

如图3所示,当阈值为15,有些图像的算法预测得分较高,但主观感觉严重模糊。当阈值为20时,图像的预测得分与主观得分基本一致。当阈值为25时,对相对清晰的图像去模糊浪费时间和计算资源。因此,选择锐度阈值为20是合理而高效的。

图3 主观评价分和算法预测分的分布Fig.3 Distribution of subjective evaluation score and algorithm prediction score

1.1.2SSRN-DeblurNet去模糊网络

引入去模糊网络(Scale recurrent network,SRN-DeblurNet)[19],进行模型精简后得到SSRN-DeblurNet进行图像的去模糊操作。SRN-DeblurNet的网络结构如图4所示。

图4 SRN-DeblurNet的网络结构Fig.4 Structure of SRN-DeblurNet

SRN-DeblurNet由3层代表不同尺度输入且结构相同的全卷积子网组成,3层子网之间参数共享,减少可训练参数的数量。每层子网分为编码部分和解码部分,编码部分包含3个编码模块(EBlock),如图4b所示,每个EBlock由1个卷积层(Conv)和3个残差块(ResBlock)组成。解码部分与编码部分结构对称,对应3个解码模块(DBlock),如图4c所示,每个DBlock由3个ResBlock和1个转置卷积层(DeConv)组成。ResBlock的结构如图4d所示,通过跳连接实现不同层的特征信息共享。此外,每1层还有1个循环卷积网络(ConvLSTM),将不同尺度的图像特征看作时序与局部空间均相关的序列进行处理。训练过程中,随机裁剪 256像素×256像素图像块(X3),然后用最近邻插值方法得到64像素×64像素分辨率子图(X1)和128像素×128像素分辨率子图(X2)。上一层网络的输出作为下一层网络的输入,由粗到精,由小到大复原出清晰图像,最后一层网络的输出I3作为最终的复原结果。

对于每个尺度的损失L,计算式为

(2)

式中Ii——第i个尺度上的网络输出

ki——每个尺度的权重,初始权重设置为1

Ni——Ii中需标准化的元素个数

SRN-DeblurNet存在参数过多,在推理阶段运行速度较慢的问题,在保证模型精度的情况下,希望该模型参数量少、占用内存少、速度快、计算量低,所以本文对SRN-DeblurNet去模糊模型进行了精简。深度学习模型的精简方式一般有网络剪枝、知识蒸馏、参数量化等[20]。本文采用参数量化对SRN-DeblurNet进行模型压缩加速,得到精简模型SSRN-DeblurNet。

对于参数量化对象,主要有:权重、激活函数输出、梯度[21]。量化位数可分为:16位、8位、8位以下。本文采用的8位量化可带来4倍的模型压缩、4倍的内存带宽提升以及更高效的缓存利用。此外,计算速度也通常有2~3倍的提升,且对精度不会造成较大损失。按量化过程中是否需要进行训练可分为以下2类[22]:在模型训练后做量化(Post training quantization,PTQ)、在模型训练时做量化(Quantization aware training,QAT)。一般情况下,QAT可以得到更高的准确率,但同时需要有训练数据和训练环境。

深度学习模型压缩流程如图5所示。基于TensorFlow工具箱中的graph_transforms,本文对训练好的SRN-DeblurNet网络的权重进行32位转8位的PTQ量化操作,并删除一些在推理阶段不使用的计算节点,合并一些重复计算节点,得到一个压缩率与准确率都满足实际需求的精简模型SSRN-DeblurNet。

图5 深度学习模型压缩流程图Fig.5 Compression process of deep learning model

1.2 基于改进Faster R-CNN的目标检测阶段

ROSS在R-CNN和Fast R-CNN基础上提出了Faster R-CNN[23],其主要由骨架网络、区域候选网络、分类回归网络组成。区域候选网络为每幅输入图像输出大约300个候选区域,其中存在大量与障碍物真值框重叠率较低的低质量候选区域,这给Faster R-CNN网络增加了许多无用的计算。为了减少低质量候选区域,本文在区域候选网络后级联了一个候选区域优化网络。该优化网络主要由ROI池化层和4个全连接层组成。候选区域优化网络以候选区域生成网络输出的候选区域作为输入;对候选区域所包含的特征进行池化,生成池化特征图;利用全连接层FC1和FC2对池化特征图进行特征映射;利用全连接层FC3根据映射后的特征输出该候选区域内是否包含待测目标的分数,利用 Softmax函数对分数进行归一化,从而得到候选区域内是否包含待测目标的置信度;全连接层FC4通过边界框回归输出边界框的坐标偏移量,从而修正候选区域的位置。将候选区域内包含待测目标的置信度与设置的前景过滤阈值(0.8)和背景过滤阈值(0.2)进行比较,输出置信度大于前景阈值的正样本和置信度小于背景阈值的负样本。候选区域优化网络的结构如图6所示。

图6 候选区域优化网络Fig.6 Region proposal optimization network

候选区域优化网络的损失函数为

(3)

式中p——候选区域内包含待测目标的置信度

u——候选区域的标签,正样本时为1,否则为0

λ——损失函数的损失权重,初始设置为1

2 试验

2.1 图像采集

图像采集设备为QR-USB500W02M-V60型USB高清数码摄像头,分辨率为640像素×480像素时,帧率为30 f/s,实际使用时为20 f/s左右。将摄像头安装在茂源MY250型轮式拖拉机上,摄像头与地面的垂直距离为1.33 m。摄像头通过以太网将接收到的图像传送到计算机上。摄像头的安装位置如图7所示。

图7 摄像头安装位置Fig.7 Installation location of camera

将收集到的2 370幅图像按比例7∶2∶1分为训练集、验证集、测试集。利用标注软件对图像中的人、拖拉机、草堆、电线杆、树、房子、羊、牛8种农田障碍物进行标注。为最大限度模拟农田环境下图像采集可能遇到的模糊类型,模糊数据集由GOPRO数据集与自制模糊数据集组成,共5 347个清晰和模糊图像对。其中自制模糊数据集基于马尔可夫过程随机生成相机运动轨迹和模糊内核[24],对图像进行处理得到,如图8所示。

图8 自制模糊数据集Fig.8 Self-made blurring dataset

2.2 试验平台

试验平台为台式计算机,处理器为Intel Core i7-8700k,主频为3.70 GHz,32 GB内存,250 GB固态硬盘,显卡为GeForce GTX1060。运行环境在Ubuntu 16.04 LTS下,编程语言为Python 3.6,模型训练均在TensorFlow深度学习框架下进行,并行计算框架和深度学习GPU加速库分别为CUDA 9.0和cuDNN 7.4.2。

2.3 SSRN-DeblurNet去模糊网络训练

训练去模糊网络SRN-DeblurNet时,在每次迭代过程中,随机剪裁256像素×256像素的模糊图像块作为输入,模糊图像块每个通道除以255进行数据归一化。尺度设为3,批量大小设为8,训练轮数设为2 000轮,动量因子设置为0.9。采用Adam优化器,参数β1=0.9,β2=0.999,ε=10-4。利用随机梯度下降法训练网络,初始学习率设置为0.001。训练参数初始化方式采用Xavier方法。

2.3.1去模糊结果评价指标

以峰值信噪比(Peak signal to noise ratio,PSNR)和结构相似度(Structural similarity,SSIM)作为去模糊网络输出结果的评价指标[25]。

PSNR是一个表示信号最大可能功率和噪声功率比值的工程术语,单位是dB,一般取值范围为20~40 dB,数值越大表示失真越小。SSIM分别从亮度、对比度、结构三方面度量图像相似性,取值范围为0~1,其值越大,表示图像失真越小。

2.3.2去模糊结果

SSRN-DeblurNet与SRN-DeblurNet的参数对比如表1所示,包括参数量、单幅图像去模糊时间、PSNR和SSIM。图9为SSRN-DeblurNet与SRN-DeblurNet的去模糊效果对比。

表1 SSRN-DeblurNet与SRN-DeblurNet的参数对比Tab.1 Comparison of indicators between SSRN-DeblurNet and SRN-DeblurNet

图9 SSRN-DeblurNet与SRN-DeblurNet去模糊效果对比Fig.9 Comparison of deblurring between SSRN-DeblurNet and SRN-DeblurNet

从图9可以看出,相比于原始模糊图,SSRN-DeblurNet恢复了部分图像质量。但恢复效果比SRN-DeblurNet差。如表1所示,SSRN-DeblurNet与SRN-DeblurNet相比,PSNR下降7.59%,SSIM下降9.64%。PSNR和SSIM小幅度下降是因为SSRN-DeblurNet的权值数值类型是8位而不是32位,权重值更稀疏必然会导致量化过程中数值精度的损失,进而影响SSRN-DeblurNet的去模糊效果。虽然去模糊的效果不及SRN-DeblurNet,但SSRN-DeblurNet在推理速度上有显著提高,不仅参数量减少到原模型的25.36%,检测时间也减少到原模型的31.76%,实现了精度和推理速度之间的平衡。

2.4 改进Faster R-CNN网络训练

在训练阶段,Faster R-CNN网络与SSRN-DeblurNet网络相互独立进行训练。为了检验候选区域优化网络的效果,将所有损失函数的权值设为1。使用ImageNet预训练模型对改进Faster R-CNN的权重进行初始化,训练50 000轮,初始学习率为0.002 5,权重衰减为0.000 1。

2.4.1目标检测结果评价指标

本文以平均精度均值(mAP)和平均精度(AP)作为目标检测结果评价指标。

当拖拉机在水泥平地处于启动状态时,在相机采集到的连续7帧图像中,如图10a所示,某帧清晰图像的锐度约为42.73,如图10b所示,某帧轻微模糊图像的锐度约为38.96,说明拖拉机的振动对相机成像质量有一定影响。假设拖拉机处于以下状态:在农田作业时遇到起伏较大的坑洼地带;镜头中的目标障碍物快速运动;相机未能成功对焦时,轻微模糊图像出现的时间点将有更大的概率生成锐度低于20的模糊图像。因此以7帧图像作为1个周期计算单幅图像的推理时间,计算方式为

图10 拖拉机振动对图像质量的影响Fig.10 Influence of tractor vibration on image quality

(4)

式中ti、ti+1、…、ti+6——第i、i+1、…、i+6帧图像的推理时间

2.4.2改进Faster R-CNN检测结果

对无优化网络和有优化网络时的候选区域生成结果进行可视化,如图11所示。

图11 生成候选区域比较图Fig.11 Comparison of proposal regions

图11a为输入网络前的原图,图11b为原图输入原始Faster R-CNN网络时RPN网络输出的候选区域。从图11b可以看出,RPN网络将房屋前的农作物、房屋左侧的杂草和树叶都作为目标障碍物生成了候选区域。但图像中只有房屋和电线杆是目标障碍物,因此无优化网络的RPN网络生成的这些候选区域是低质量的,这些低质量的候选区域将为分类回归网络增加大量无用计算,降低整体网络的收敛速度。图11c为在RPN网络后级联了一个优化网络后原始图像输入网络生成的优化候选区域。由于设置了更高的正样本过滤阈值0.8,优化后的RPN网络将房屋周围的杂草、农作物和树叶等作为目标障碍物生成的候选区域进行了滤除,保留的候选区域边界框更集中于目标障碍物的真值边界框附近,这有利于网络快速收敛和提升网络的检测精度。从表2可以看出,改进后的Faster R-CNN网络对各种农田障碍物的平均精度平均提高了1.93个百分点,这说明候选区域优化网络的加入能提升检测精度。

表2 8种农田障碍物的平均精度Tab.2 Average precision of eight kinds of farmland obstacles %

2.5 推理阶段检测结果

为了验证改进检测模型的性能,在推理阶段比较以下5种目标检测方法:原始Faster R-CNN网络、改进Faster R-CNN网络、YOLO v5s网络、改进Faster R-CNN与SRN-DeblurNet的两阶段检测模型和改进Faster R-CNN与SSRN-DeblurNet的两阶段检测模型。利用AP、mAP、单幅图像推理时间对检测结果进行综合评价。

IoU阈值为0.5时,不同方法的各类障碍物的平均精度如表3所示。

表3 不同方法的各类障碍物平均精度Tab.3 Average precision of different algorithms for eight kinds of farmland obstacles %

如表3所示,不同方法对人、草堆、电线杆、拖拉机这4类目标障碍物的检测效果较好,检测的平均精度在50.00%以上;不同方法对羊、房屋、牛、树这4类目标障碍物的检测效果较差。主要原因在于数据集的样本分布不均,后4种目标障碍物的训练样本数量偏少,出现过拟合现象,在推理阶段表现为训练样本偏少的目标障碍物的平均检测精度较低。由于采用的测试集不同,与表2相比, Faster R-CNN与改进Faster R-CNN的平均精度均大幅降低,这进一步证实了模糊图像的输入会导致训练好的深度学习检测模型的检测精度降低。

IoU阈值为0.5时,改进Faster R-CNN由于增加了一个候选区域优化网络,其mAP较原始Faster R-CNN提升了1.91个百分点。对于结合了去模糊网络的两阶段检测模型, mAP都有了很大的提升,其中改进Faster R-CNN与SRN-DeblurNet的两阶段检测模型的mAP最高,为66.84%。两阶段检测方法由于添加了去模糊网络,提高了严重模糊图像的质量,因此大大减少了漏检和误检的情况,从而提高了mAP,与原始Faster R-CNN相比,改进Faster R-CNN与SSRN-DeblurNet的mAP提高了12.32个百分点。出于实时性因素的考虑,对SRN-DeblurNet网络进行了量化压缩,以提升检测速度,但也因此造成了改进Faster R-CNN与SSRN-DeblurNet的两阶段检测模型的mAP降低了2.76个百分点。

由于增加了候选区域优化网络,改进Faster R-CNN相比于原始Faster R-CNN的单幅图像推理时间增加了0.19 s。不同组合的两阶段检测模型的单幅图像推理时间均较长,主要原因是去模糊操作需要占用大量时间和计算资源。为此对去模糊网络SRN-DeblurNet进行了模型压缩,降低去模糊操作占用的时间,从而改进Faster R-CNN与SSRN-DeblurNet的单幅图像推理时间较改进Faster R-CNN与SRN-DeblurNet的时间降低了0.09 s,单幅图像平均推理时间为0.53 s。

拖拉机根据其负载水平可将其作业工况分为重负荷作业、中等负荷作业、轻负荷作业及道路运输作业等[26]。其中,拖拉机处于重负荷和中等负荷作业工况的速度覆盖2~14 km/h,且拖拉机大部分时间都在此速度范围作业;拖拉机处于轻负荷和道路运输作业工况的速度覆盖14~30 km/h。因此,改进Faster R-CNN与SSRN-DeblurNet的两阶段检测方法基本满足拖拉机低速作业的实时性要求。

当输入锐度低于20的模糊图像时,原始Faster R-CNN与两阶段检测方法检测结果如图12所示。

图12 Faster R-CNN与两阶段检测方法检测结果对比Fig.12 Comparison of results between Faster R-CNN and two-stage detection method

利用原始Faster R-CNN方法对4幅锐度低于20的测试图像进行检测(图12a),这4幅图像的前2幅是人工生成的,后2幅是在农田中实际采集的。在第1幅测试图像中,草堆的置信度为0.95,草堆左边的2人均被漏检;在第2幅测试图像中,在草堆的位置同时检测出牛和草堆这2种目标障碍物,其中,牛的置信度为0.63,草堆的置信度为0.61;在第3幅和第4幅实际采集的测试图像中,人作为目标障碍物均被漏检。

采用改进Faster R-CNN与SSRN-DeblurNet的两阶段检测方法时(图12b),锐度均低于20的图像被输入去模糊网络中进行去模糊后再进行检测。第1幅测试图像中的2人均被检出,且置信度均为1;第2幅测试图像中草堆被正确检出,置信度为0.99;第3幅和第4幅测试图像中的人均被检出,置信度均为0.99。因此,本文提出的两阶段检测方法可以很好地解决由于模糊图像的输入造成的漏检和误检。

3 结论

(1)为实现模糊农田图像中的障碍物检测,提出了一种基于改进Faster R-CNN和SSRN-DeblurNet的两阶段农田障碍物检测方法。试验表明,与原始Faster R-CNN相比,两阶段检测方法的mAP提高了12.32个百分点,在模糊图像输入情况下很好地缓解了漏检和误检情况;单幅图像平均推理时间为0.53 s,满足拖拉机在重负荷和中等负荷作业工况的实时性需求。

(2)由于现有的数据集样本不均匀,进一步需建立更完整、数据量更大的农田障碍物数据集。为满足拖拉机在轻负荷以及道路运输工况时的实时性需求,进一步需将YOLO v5s和SSRN-DeblurNet融合进一个框架,进行端到端训练以进一步降低模型复杂度和提升效率。

猜你喜欢
锐度障碍物阈值
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
佳能RF 70-200mmf/4 IS USM
主题宣传的力度、锐度、深度
改进小波阈值对热泵电机振动信号的去噪研究
高低翻越
赶飞机
月亮为什么会有圆缺
玄武散文:四弦一声如裂帛——评《死者所知》与《父子多年》