APP下载

基于SSD深度网络的河道漂浮物检测技术研究

2020-11-14唐小敏舒远仲刘文祥刘金梅

计算机技术与发展 2020年9期
关键词:漂浮物特征提取河道

唐小敏,舒远仲,刘文祥,刘金梅

(南昌航空大学 信息工程学院,江西 南昌 330100)

0 引 言

随着Hinton领导的小组采用深度学习模型AlexNet[1]在ImageNet图像识别大赛中一举夺冠,人工智能技术在目标检测中得到了广泛使用,例如车辆目标检测[2]、人脸识别[3]、智能安防[4]、智能医院等。近年来,很多学者针对自然环境为河道漂浮物识别带来的负面影响提出了自己的研究成果。

左建军等[5]采用背景减除分割出图像中漂浮物区域,再利用BP算法进行漂浮物特征训练并构建漂浮物分类器对分割区域进行漂浮物识别。祝典等[6]设计了一种水域漂浮物收集监测系统。许静波等[7]成功搭建了一套水面漂浮物检测及估算系统。雷李义等[8]提出了一套基于深度学习的水面漂浮物目标检测方案。朱贺等[9]结合使用灰度阈值分割和河道轮廓识别方法实现对河道区域的准确提取。利用河道轮廓形态进行河道分割可以减少河岸上垃圾对检测结果的影响,但是不能排除相似形态水体上的漂浮物对检测结果造成影响。

文中首先对河道进行分割提取,然后对已分割出的河道区域进行漂浮物检测。基于3种特征提取网络分别进行Faster R-CNN[10]网络模型和SSD[11]网络模型的训练,对比分析这三种特征提取网络的性能,选择性能最优的特征提取网络进行两种模型的对比,经过实验分析,选择SSD网络模型进行漂浮物检测效果最佳。

1 实验数据制作

实验所需数据是利用无人机对3条河流分别进行正射视频采集而得,其中河流总长5.6公里。为减小河岸垃圾对检测结果的影响,利用传统图像处理技术先进行河道检测。

对影像进行滤波处理提升河道整体灰度值并增强河道连通性,采用自适应阈值化操作将滤波图像二值化,使算法具有更好的鲁棒性;为使河道区域与非河道区域分离,先对影像进行形态学处理去除小的干扰块和加大河道的连通性,最后对图像进行轮廓提取。经过以上步骤,发现在河道旁出现水体或水域等客观条件下,河流检测不准确。为解决此问题,根据视频中相邻帧之间河道相似且河道在影像中间的特点,提出当检测区域中心线偏离图像中心线一定阈值时,取图像宽的0.1倍,使用上次河道中心点对影像进行纠正的方法最终获得河流区域图像准确率为91.4%。

对以上获取的河流区域数据进行漂浮物识别检测。由于没有漂浮物检测公共数据集,则需制作漂浮物数据集,其制作技术路线如图1所示。河流视频帧率为50 fps,无人机飞行速率保持在15 m/s,飞行高度保持在55 m,对河流视频每隔90帧保存图像,共计7 800张。去除无人机起飞、降落、某些河流区域被遮挡以及错误识别等原因导致保存图像中不包含河流图像,最终可用于标注影像2 400张,利用labelImage对影像进行漂浮物标识并保存标注xml数据集,将标注完成图像按8∶2进行训练集与验证集划分,数量分别为1 920和480张。

图1 河流漂浮物数据集制作技术路线图

由于数据量过小,同时为了不增加数据标注时的工作量以及训练时对机器的内存消耗,对数据集使用软数据增强技术。该方法是一种在数据训练过程中对每批次的数据进行数据增强,再进行数据训练的方法。之后将对每批次训练数据进行随机翻转、随机颜色抖动和随机裁剪,使每次训练的数据不相同从而达到数据软扩增效果,该方法在一定程度上提高了模型泛化性和鲁棒性。网络训练图像大小为512*512分辨率,并将影像R,G和B波段分别减去123.68,116.78和103.9进行归一化[12],使模型训练更容易。

2 基于SSD的河流漂浮物检测方法

以河流影像漂浮物检测为研究目标,考虑到实时性,将使用单步检测SSD算法作为漂浮物检测核心算法。SSD算法继承了Faster RCNN和YOLO[13-14]的不同优点,一方面,SSD采用不同尺寸和长宽比的先验框(Faster RCNN称为Anchor),在一定程度上克服了目标检测尺寸多变问题,同时使算法训练简易化,另一方面,SSD采用YOLO一步检测思想,其对特征图直接利用CNN进行回归预测,这与YOLO将特征图进行向量化再全连接后进行回归预测不同,此方法可以充分利用特征图的空间结构信息来确保预测分类准确性。

2.1 SSD模型算法

SSD深度网络由前端特征提取网络和后端多尺度特征检测网络组成,前端特征提取网络以VGG16卷积神经网络为例生成特征图,并与多尺度特征检测网络共享卷积特征。该特征提取网络包括13个3×3卷积层和5个最大池化层(Max pooling),每次卷积后均使用ReLU激活函数进行激活,每层组成形式均为卷积层(convolution)+激活函数(ReLU)+池化层(Max pooling)的组合方式,此沿用VGG16卷积网络,但该特征提取网络与VGG16网络略微有所差异,其将VGG16网络的全连接层fc6和fc7分别替换成扩张率为6的3×3空洞卷积层conv6和1×1的卷积层conv7。为了不减小特征图维度,将原来池化层pool5的卷积核由2×2、步数2变为3×3、步数1,同时为了配合后端多尺度特征检测网络,其移除了VGG16的dropout层和fc8层。

后端多尺度特征检测网络共提取了6个网络特征图用于漂浮物的检测,第一个特征图取自Conv4_3层,其大小为38×38,由于第一特征图靠前,为减小与后面检测层的差异,第一特征图后增加L2 Normalization层,其仅对每个像素点在通道维度上进行归一化,将归一化特征图与一个可训练缩放变量gamma相乘。后面5个特征图由于靠后无需做过多变换,其分别取自Conv7层、Conv8_2层、Conv9_2层、Conv10_2层、Conv11_2层,大小分别为19×19、10×10、5×5、3×3、1×1。

对于不同特征图设置先验框数目不同,先验框的设置主要体现在尺寸和长宽比上,先验框尺寸遵循线性递增规则,递增公式为:

(1)

其中,m为特征图个数,文中为5(除第一特征图外,其单独处理),sk表示先验框大小与图片大小的尺度比例,smax和smin分别表示该比例的最大值和最小值,文中取0.9和0.2。第一特征图先验框尺度比例为smin/2,对于后面5个特征图按照式(1)线性增加,然后将这些比例与图片大小相乘得各个尺度的特征图先验框。先验框长宽比一般为αr∈{1,2,3,1/2,1/3,1},在实际中Conv4_3、Conv10_2和Conv11_2特征图不使用长宽比为{3,1/3}的先验框,因此总共得到8 732个先验边界框。

网络损失函数计算公式如下:

(2)

式(2)中位置误差Lloc定义如下:

(3)

其中,d表示默认边界框,中心为(cx,cy),宽度为w,高度为h。

式(2)置信度误差Lconf定义如下:

(4)

2.2 目标检测度量标准

为评估模型对河流漂浮物识别的有效性,采用recall(召回率)、precision(精确率)以及引入F1值[15]为调和平均值对模型进行评估。假设模型正确识别漂浮物的数量为TP(真正例),模型错将其他类识别为漂浮物的数量为FP(假正例);模型识别非漂浮物的正确数量为TN(真反例),模型错将漂浮物识别成其他类别数量为FN(假反例)。

P是在识别漂浮物中真正例所占的比例,则它表示为:

(5)

R表示正确识别出的漂浮物与存在的漂浮物数量的比值,其表示为:

(6)

F1分数认为召回率和精确率同等重要,可表示为:

(7)

3 结果与讨论

3.1 实验平台和参数设置

实验是在Ubuntu16.04LTS操作系统,处理器是Intel® CoreTM i7-6800k CPU @ 3.4 GHz×12(64 GB运行内存)和显卡是NVIDIA GeForce GTX 1080 Ti GPU(11 GB 运行显存)的电脑设备上进行,深度学习框架为Tensorflow1.8。

文中采用的是端到端识别,并使用coco的预训练模型进行参数迁移初始化设置。模型优化器使用Momentum算法,初始学习率为3e-4,动量因子为0.9,最大迭代步数为100 000步。

为加速网络迭代速度,当模型迭代达40 000步时,学习率调整为3e-5,迭代到80 000步时,学习率进一步调整为3e-6。训练结束后保存好训练模型,并使用测试河流视频对模型进一步测试,测试保留类别置信度大于0.7的河流漂浮物,最后在测试河流视频上保存输出结果。

3.2 训练结果分析

实验将在Faster R-CNN深度网络模型和SSD网络模型上,分别使用深度网络ResNet-50、ResNet-101和Inception-v1作为骨干网。随着训练过程中网络迭代次数的增加,网络损失都趋于稳定,随后分别比较了两种深度学习目标检测模型各自基于不同特征提取网络时整体损失的下降情况,具体对比情况如图2和图3所示。

图2 SSD模型整体损失对比

图3 Faster-RCNN模型整体损失对比

图2显示了3种特征提取网络在SSD模型上的损失情况,显然基于ResNet-101特征提取网络的SSD模型损失下降最快且网络收敛最为稳定,图中可以明显看出随着特征提取网络深度增加,SSD模型的整体损失下降越大,模型收敛越稳定。图3显示了3种特征提取网络在Faster R-CNN模型上的损失情况,基于ResNet-101特征提取网络的Faster R-CNN收敛速度较快,明显优于其他2种模型,而基于ResNet-50和Inception-v1特征提取网络的Faster R-CNN模型都出现了不同程度的震荡,且基于Inception-v1特征提取网络的Faster R-CNN模型收敛情况相较于其他两种模型收敛程度较差。

为了选出优秀的深度网络模型与特征提取网络,根据各模型总体损失下降函数对比结果为2种模型都选择了ResNet-101作为模型特征提取网络并做了进一步对比。2种模型随迭代次数增加模型整体损失下降情况对比如图4所示。图4表明以ResNet-101为特征提取网络的SSD模型,随着迭代次数增加整体损失要优于基于ResNet-101特征提取网络的Faster R-CNN模型,虽然Faster R-CNN最后趋于稳定,但SSD模型最终损失趋于更小的数值,这表明基于ResNet-101特征提取网络的SSD模型能够更好地拟合河流漂浮物数据。

图4 SSD与Faster R-CNN模型整体损失对比

根据模型评价指标,文中对以上不同特征提取网络的SSD和Faster R-CNN模型针对精确率和召回率两项指标以及F1值和单张图像的检测时间做出了详细对比,对比结果如表1所示。表1统计结果为训练好的不同特征提取网络的SSD模型和Faster R-CNN模型分别对河流漂浮物验证集进行漂浮物识别并计算各指标值。由表1对比可得,随着特征提取网络深度增加,基于2种模型的河流漂浮物识别精确率在不断增加,模型性能不断提升。通过对比可知,基于ResNet-101特征提取网络的SSD和Faster R-CNN深度网络模型都表现出优良的性能,Faster R-CNN深度网络模型河流漂浮物识别精确率达85.05%,SSD深度网络模型河流漂浮物识别精确率达84.47%略低于前者,但SSD模型整体性能上明显优于Faster R-CNN模型,SSD模型召回率达到61.67%,高出Faster R-CNN模型2.84%,且SSD模型F1值达到71.29%,高于Faster R-CNN模型F1值69.55%,同时SSD模型在单张图像的检测时间上表现出明显优势。综上,基于ResNet-101特征提取网络的SSD深度网络模型在漂浮物识别上更具优势,符合文中对视频中河流漂浮识别的目标。

表1 不同特征提取网络的SSD和

3.3 模型识别结果

根据训练结果分析,实验使用基于ResNet-101特征提取网络的SSD深度网络模型,进行漂浮物多尺度预测及位置回归,此方法有效提高了网络对不同尺度漂浮物的识别精度,具体漂浮物识别如图5所示。

图5 河流漂浮物识别结果

3.4 讨 论

根据上述网络模型分析可知, Faster R-CNN网络模型在河流漂浮物识别精度上相较于SSD深度网络模型提高了0.58%,但Faster R-CNN召回率减少了2.84%,F1值减少了1.74%。导致以上差距的原因如下:第一,Faster R-CNN深度网络模型将特征提取网络提取的特征经过区域建议网络,生成k个区域建议框后送入RoI子网以准确提取漂浮物的感兴趣区域,此过程与SSD深度网络模型采用将整个检测网络作为单个神经网络进行漂浮物识别相比非常耗时,所以Faster R-CNN模型检测速度较慢。第二,由于无人机对河流进行拍摄时飞行高度较高,这将导致河流漂浮物可视尺度非常小,而SSD深度网络模型采用多尺度特征提取,分辨率较大的特征图将被用于漂浮物尺度较小的目标识别,与Faster R-CNN只使用单一尺度特征图提取特征进行目标识别相比,Faster R-CNN很难将所有较小漂浮物识别出,进而导致Faster R-CNN整体性能低于SSD深度网络模型。

4 结束语

提出了一种基于SSD深度学习网络的漂浮物检测研究方法。首先根据河道水面反光及水体颜色相近等特性,采用OpenCV图像处理技术对河流区域进行分割提取。然后在此基础上进行漂浮物检测研究,漂浮物识别算法在Tensorflow框架的基础上,搭建了基于ResNet-101特征提取网络的深度神经网络SSD模型,通过利用COCO数据集预训练模型进行网络迁移训练。同时介绍了从原始视频数据到漂浮物数据集的制作全过程,并对数据集进行软数据增强,有效缓解了数据量不足的问题。实验分析表明,随着特征提取网络的加深,两种深度网络模型在性能上都有不同程度的提升,而基于ResNet-101特征提取网络的SSD模型相较于其他三种特征提取网络具有明显优势,并能够高效地对漂浮物进行识别,这体现出深度学习方法在目标识别领域的强大之处。目前,该算法已应用于无人机机载端的河流巡查中,通过无人机实时拍摄河流视频,已做到对实时视频进行边缘计算分析河流中漂浮物数目,然后实时发送至服务器进行河流污染度评分。

猜你喜欢

漂浮物特征提取河道
生活污水处理技术在河道治理中的应用探析
同步定位与建图特征提取和匹配算法研究
神秘的海上漂浮物
弯道之妙
浙江杭州:新能源智能清理船上岗
撮粮之术(下)
河道里的垃圾
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
杠杆式电动清漂装置