基于注意力机制和Faster R-CNN深度学习的海洋目标识别模型
2021-11-17文莉莉孙苗邬满
文莉莉,孙苗,邬满
(1.广西壮族自治区药用植物园 信息产业办公室,广西 南宁 530023;2.自然资源部 海洋信息技术创新中心,天津 300171;3.国家海洋信息中心,天津 300171;4.广西壮族自治区海洋研究院,广西 南宁 530022;5.广西大学 电气工程学院,广西 南宁 530004;6.南宁师范大学 北部湾人工智能应技术研究院,广西 南宁 530001)
随着中国经济社会的高速发展,沿海地区对于海洋资源的开发力度持续加大,中国海洋管理面临着越来越严峻的挑战,受开发理念(重开发轻治理)、开发方式(粗放式开发为主)、监管困难及利益驱动等多方面的影响,中国沿海违规开发(偷填、超填、闲置)、随意围垦、盗采海砂,以及非法挖矿采石、破坏红树林等生态环境、偷排与倾倒垃圾等行为频发,使中国的海洋资源与生态环境遭到严重破坏。
目前,常用的海洋监管与执法方式主要依赖于执法船巡逻、群众举报、雷达监测,前两者成本高、效率低,且具有严重的滞后性和较高的漏检率;后者则建设、维护成本巨大,且只能监测近岸半径约20公里区域。虽然近年来卫星遥感与无人机的广泛使用促进了监管手段的升级,但是对海量的影像数据进行人工审核仍然是一项十分艰巨的工作。因此,采用目标检测方法实现从海量影像数据中自动提取海洋目标信息,对于建立大范围、智能、快速的海洋监管机制具有十分重要的意义。
目前,基于人工智能技术的目标检测技术已在多个领域得到了较好的应用。然而,将人工智能技术用于海上目标检测方面的研究和应用还相对较少。主要原因包括:1)样本集建立困难,目前尚无公开可用的海上目标检测数据集;2)传统的目标检测方法大多需要人为设定目标的特征,工作量大且难以选取出最优特征;3)海洋目标图像场景复杂,具有多尺度、多样性、形状多变等特点,目前常用的图像特征提取方法,如HOG(histogram of oriented gradient) + SVM(support vector machine)、DPM (deformable parts model)等,对光照、形态变化、遮挡等鲁棒性不强[1],难以满足复杂多变的海洋目标检测需求。近年来,深度学习技术在目标检测领域取得了较大成功,这为实现多尺度的复杂海洋目标检测提供了一种新的解决方案。
因此,国内外学者开始研究基于深度学习模型的海洋目标检测方法,如袁明新等[2]提出一种基于深度学习的海上舰船目标检测方法,该方法利用卷积神经网络、区域建议网络及Fast R-CNN检测框架构建了舰船检测系统,相比于传统机器学习目标检测模型,该舰船检测系统在检测精度及速率上均有大幅提高。但是,该方法只尝试了针对舰船这种特别明显的目标识别,并未对多尺度多类型的其他海上目标(蚝排、红树林、海岸线、养殖池塘等)进行识别,也未对识别后的目标进行行为活动分析。
本研究中,依托自有的无人机高清影像及91卫图助手影像等基础数据,以Faster R-CNN模型为技术框架,引入视觉注意力机制,改进模型结构,使模型具有更强的复杂特征提取能力与鲁棒性,实现对复杂海洋目标的检测与识别,并建立智能识别模型,以期用于海上目标的智能识别、非法用海占海与破坏生态环境行为的自动判断与预警。
1 相关网络模型
为了增强卷积网络的特征提取能力,越来越多的研究人员将神经学的视觉注意力机制引入到深度学习模型中[3]。一般通过三大注意力域来研究软注意力机制的网络模型结构,即空间域、通道域和混合域[4]。通道域是相当于在每个channel的信号上增加一个权重,用来代表此channel与关键信息的相关度,权重越大则相关性越高[5]。SENet(squeeze-and-excitation networks)是2017年ImageNet分类比赛的冠军模型,也是通道域的代表网络模型[6]。SKNet(selective kernel networks) 出自2019CVPR的一篇论文,是SENet的加强版[7]。SENet与SKNet在注意力机制中处于同等地位,均可方便地融入Faster R-CNN模型中,对分类问题中的特征提取能力有一定提升[8]。
1.1 SKNet模型
将原图经过一系列的conv、pooling操作,得到一个C×H×W(C表示channel,H表示height,W表示width)大小的feature map。SENet模型是对feature map的通道注意力机制的实现,而SKNet模型则是针对卷积核的注意力机制的实现[9]。不同大小的目标会对不同大小的卷积核敏感程度不同[10]。因此,SKNet试图针对不同的图像找到最合适尺度的卷积核,即对不同的图像动态生成卷积核。其本质就是在网络中使用多尺寸的卷积核[11],与Inception网络中的多尺度不同,SKNet是让网络自己选择合适的尺度[12]。SKNet结构如图1所示,其主要包括3部分操作:
图1 SKNet模型结构
1)Split处理。对输入的feature map使用两个大小不一样的卷积核进行group convolution(efficient grouped、depthwise convolutions、batch normalization、ReLU function)等操作,以提升精度。
2)Fuse处理。通过Split处理分成两个分支以后,再将结果进行融合,然后经过Sequeeze和Excitation模块处理。
3)Select操作。利用两个softmax将上一步的结果回归出channel间的权重信息,然后将两个权重矩阵对两路进行加权处理,再求和得出输出向量。因SKNetl采用不同的卷积核,可以自适应地调整自身的感受野,故比SENet具有更高的精度。
1.2 Faster R-CNN模型
Faster R-CNN模型是Girshick R在2015年提出的一个经典的目标检测模型[13],它用网络训练的方法实现目标提取,在一个网络中整合了特征抽取、proposal提取、边框回归、分类等操作,极大地提高了目标检测、分类的效率和性能[14]。传统的目标检测模型是用Selective search方法提取候选框,该方法十分耗时,难以满足高效、实时检测的应用需求[15]。因此,Faster R-CNN中引入了RPN(region proposal networks,区域候选网络)的概念,专门用于提取目标候选框[16]。RPN方法检测速度快,相对耗时少,且易于整合到Fast R-CNN模型中,故而Faster R-CNN = RPN + Fast R-CNN[17]。该模型在现在的目标检测系统中得到了广泛应用。
Faster R-CNN模型结构如图2所示,其主要包括6个步骤:1)通过卷积和池化操作,提取图像特征;2)用RPN提取目标候选区域;3)经过后处理,确定更精确的位置;4)建立候选区域与特征图的映射关系;5)根据前面确定的精确位置,从特征图中抠出用于分类的目标数据,并池化成固定长度的数据;6)利用softmax函数获取最终分类并获取最终的目标检测框位置。
图2 Faster R-CNN模型整体结构
RPN的作用是对要处理的图片区域进行预处理,以减少后续的计算量,主要包括两部分操作:1)RPN classification,对feature map进行区域分割,并从中分辨出前景和背景区域;2)RPN bounding box regression,提取前景区域的大概位置坐标。RPN训练时需要将两部分的loss加起来。
2 基于改进Faster R-CNN模型的海洋典型目标识别
2.1 海洋目标的复杂性及其检测模型的选取
在海域监管中通常关注的海洋目标有红树林、船舶、养殖池塘、蚝排、挖掘机、养殖网箱、围填海项目等,这些目标具有以下几个方面特点:1)多尺度,如塑料瓶、塑料袋等海洋垃圾类小目标,以及红树林、养殖池塘等海域利用大目标;2)多样化,包括单纯的个体目标(如渔船)、复杂的集群目标(如蚝排)、不确定的对象(如挖掘机)及复杂的对象行为分析(如挖掘机施工、采砂船采砂等);3)背景场景复杂,如背景可能是海面、滩涂、海堤、码头、树林、围填海施工现场等,且干扰目标多;4)时空关系复杂,如多目标间的位置关系复杂、多张连续图像间的位置相关联。
此外,这些目标根据其周边环境存在一定的不确定性:1)对象的不确定性,如渔船与采砂船外观相近,需结合其他特征来区分(如船运动轨迹上是否存在大量泥沙的痕迹);2)行为的不确定性,在海边发现有挖掘机或货车,不能确定其是否是在进行围填海施工活动,或者渔船在海上作业是否违法需结合禁渔期的时间设定。因此,找出一种适合复杂海洋场景识别和海洋目标提取的模型对海域自动监管的实现具有极大的现实意义。
由于本研究中是针对基于遥感影像的海域自动监管需求,不同于对视频流的实时识别,对计算速度要求相对较低,但对检测率和准确率的要求则较高,因此,本研究中选定综合性能(检测率、准确率、计算速度)较好的Faster R-CNN模型作为基础网络模型框架。此外,Faster R-CNN模型具有较好的适配性,为其搭配不同的特征提取网络,其目标检测能力也不同,一个复杂强大的特征提取网络能大幅提升Faster R-CNN的检测能力和精度。
2.2 模型改进思路
Faster R-CNN模型具有较好的检测精度和速度,但其对目标的边界定位不够精确,且当原图和特征图较大时,不利于候选区域的寻找。本研究中在用Faster R-CNN模型进行特征提取的时候,引入SKNet注意力机制,主要基于两点考虑:一是可以对每次不同区域提取的特征加以权重区分,即在特征提取的时候标注好每个区域的贡献度,更好地利用待检测目标周边的上下文信息;二是SKNet的本质就是在网络中使用多尺寸的卷积核,具有尺度自适应能力,可以更好地适应多尺度海洋目标的检测,实现一个模型对多个不同尺度(尺度跨度大)目标的准确检测,增强模型的稳定性。
2.3 引入SKNet改进后的Faster R-CNN网络模型结构
改进后的Faster R-CNN网络结构主要包括3部分,即基于SKNet的特征提取网络、RPN和Fast R-CNN(图3)。本研究中使用ResNet101和SKNet相结合的方式进行图像特征提取,在每个ResNet101卷积模块后加上一个SKNet处理,得到表达能力更强的feature map。其主要处理流程如下:
图3 改进后的Faster R-CNN网络模型结构图
1)对输入数据进行卷积处理,得到初步的feature map。
2)对卷积层处理后的feature map分别用3×3、5×5、7×7的卷积核进行卷积操作,得到输出U1、U2、U3。
3)用element-wise summation来融合3个分支的结果,即U=U1+U2+U3,其中,U为一个C×H×W大小且融合了多个感受野信息的feature map。然后通过对H、W维度方向求平均值,得到一个C×1×1大小的向量,表示的是每个channel的重要程度。
channel-wise的统计信息用s(s∈RC)表示,sc表示s的第c个元素,其计算公式为
对C×1×1的向量用full connection层进行一个线性变换,得到一个Z×1×1的信息z,然后分别使用3个线性变换,又从Z维恢复到C维向量,提取每个channel维度的信息。z的计算公式为
z=Ffc(s)=δ(B(Ws)) 。
(2)
其中:z∈Rd×1;δ为ReLU函数;B为批量标准化;W∈Rd×C,d=max(C/r,L),r为reduction ratio,L为d的最小值;Ffc为对矩阵做全连接操作。
4)使用softmax进行归一化处理,得到表示每个channel重要程度的对应分数,然后再分别乘以对应的U1、U2、U3,得到A1、A2、A3。再将3个模块相加进行融合得到Y,Y相对于U经过了信息提炼,且融合了多个感受野信息。设a、b、c为Select的3个权重矩阵,A、B∈RC×d,Ai表示A的第i行,ai是a的第i个元素,Bi、bi与Ai、ai同理,且ai+bi+ci=1,最终的特征映射Y计算公式为
Yi=ai×A1+bi×A2+ci×A3,
(3)
5)将A作为输入再进行卷积层处理,然后再进行SKNet处理,如此循环N次。
6)将最终得到的feature map作为输入传到RPN网络中进行处理。RPN将feature map经sliding window处理,最后得到建议的候选位置信息。
7)将候选位置信息与feature map建立映射关系,并从中获取用于分类的目标数据,最终得到分类信息与精确的位置信息。
2.4 基于改进网络模型的复杂海洋目标识别
基于遥感影像的复杂海洋目标识别是指利用深度学习技术,建立海洋目标智能识别网络模型,自动过滤掉图像中无用的或干扰的信息,实现各类海上目标的自动检测与识别,为海洋管理与执法提供一种快速、高效、低成本的技术手段。针对这些应用需求,本文引入了SKNet对Faster R-CNN网络结构进行改进,改进后的网络模型主要包括3部分:1)特征提取,通过卷积核和SKNet的多重组合,进行图像特征提取,得到feature map,其中卷积网络模型常用的有VGG16、ResNet、IncRes V2等,本研究中采用ResNet101网络;2)RPN检测,通过RPN网络处理,得到推荐目标候选区域;3)Fast R-CNN目标检测与分类,对候选区域对应的feature map数据进行提取、处理,获取目标分类结果及更准确的位置信息。本研究中改进的Faster R-CNN模型比原模型增加了计算量。
改进的网络模型在海洋监测中的应用主要包括两部分内容。
1)遥感影像人工智能海上目标及活动识别。利用高分辨率卫星遥感影像,通过深度学习网络模型及图像处理方法,自动识别提取海上目标及用海占海行为,如养殖蚝排、养殖网箱、采砂船等目标,以及围填海、排污、溢油、垃圾倾倒等行为,以确定其用海类型。
基于改进Faster R-CNN模型的遥感影像海上目标识别方法,具体步骤如下:(1)收集高分辨率卫星、无人机遥感影像数据,针对典型的海洋目标(船舶、蚝排、红树林、岸线)建立图像样本库;(2)通过任意角度旋转、随意裁剪、加噪声等方法,扩充样本量较少的样本库;(3)建立样本类型对应的数据标签;(4)设计基于改进Faster R-CNN的网络模型,利用SKNet+RPN实现对目标候选区域的选取,并用卷积神经网络对样本库进行识别训练,得到识别模型;(5)用未参与训练的样本随机对识别模型进行测试;(6)增加网络层数和样本数量,优化识别模型。Faster R-CNN中的RPN目标候选区域选取如图4所示。
图4 海洋目标RPN检测示意图
2)识别结果与基础数据的比对分析,用海行为的合法性判断。将识别结果、用海行为与该区域的信息综合体进行融合分析;对海洋灾害、资源盗采及生态破坏情况进行预警,对疑似非法用海占海行为进行取证、记录,提交给海洋管理执法部门进行调查处理,并建立起“基础信息全覆盖、动态监管全海域、业务运行全行业、决策评价全方位”的立体监控体系。
3 海洋目标识别试验
3.1 试验环境及数据集
本次试验基于百度的PaddlePaddle深度学习框架,IDE工具采用pycharm,系统环境为Windows 10。利用自然资源部发布的卫星遥感影像、大疆精灵4航飞的无人机高清影像(本单位已积累大量的无人机海域高清影像)及91卫图助手专业版提供的影像,进行截图获取海洋目标样本,每张图像分辨率为800×800像素,共建立训练样本库8 000张,其中,各类目标(船舶、蚝排、红树林、岸线)2 000张,测试样本库4 000张。数据分布如表1所示。
表1 不同类别海洋目标数据统计
由于数据集的像素维度各不相同,需要进一步处理并对图像进行变换。本研究中先对图像进行crop修剪操作,输出img的维度为(3,800,800);然后将img数组进行归一化处理,得到0到1间的数值。每个类别的样本图片均单独存放在一个文件夹下。
3.2 试验过程
针对归一化后的数据,设计深度学习的网络模型,用于样本训练与测试。本试验中采取两组对比试验,将原模型和改进后的模型在同等条件(同样的样本库、同样的网络参数)下进行对比测试。根据经验值和调整模型设置参数,本试验中训练轮数为100,每批取样本数为32(根据内存大小设置,本试验机器内存为16 GB)。在设置学习率时,由于学习率较大时收敛会较快,因此,为了能快速找到收敛区间,学习率刚开始设置为0.01,但在接近收敛区间时,大的学习率会导致校验误差在一定范围内振荡,此时再将学习率调整到0.002 5,有助于进一步缩小收敛区间并降低误差限。
3.3 结果与分析
由训练效果可知,新模型的收敛更快、整体稳定性更好,为了对比模型的改进效果,本试验中将用同样的训练和测试数据集,对改进的Faster R-CNN模型与原Faster R-CNN模型进行对比测试,两者提取特征的卷积神经网络均用ResNet101网络模型,另外还针对每类海洋目标分别进行了测试。每次测试均按需求从测试库随机抽取1 000张图片,总体测试结果如表2、表3所示。
表2 对比测试结果
表3 改进后模型分类测试结果
由测试结果可知,在同样的训练及测试条件下,改进后的Faster R-CNN模型虽然增加了计算量,检测耗时也有所增加,但均在可接受范围内,识别准确率有明显提升,整体识别准确率达到87%左右。在4类海洋目标分类测试中,船舶的特征最为明显,因此,识别准确率最高;红树林的特征最为复杂,其对图像分辨率要求较高,本研究中使用的图像分辨率较低,所以识别准确率相对较低。总体而言,模型具备实际应用的稳定性。但是针对海洋目标违法行为的判定,还需要结合涉海规划数据及目标的类型、位置及周边环境信息等进行综合判断。识别效果如图5所示。
图5 海洋目标RPN检测示意图
4 结论
1)通过引入SKNet网络模型,改进了Faster R-CNN网络模型的结构,改进后的模型与原模型相比,增强了模型针对复杂场景图像特征的提取能力,更适用于复杂海洋目标的提取与识别。
2)改进后的模型总体识别准确率有了明显提升,具有更强的稳定性。该模型可用于海量海洋影像中海洋目标的快速提取与预判,下一步应结合涉海规划数据、海域利用现状数据等,综合对海洋目标及其海上活动进行自动识别、判断与预警,可大幅提高海洋监管能力与效率。