史 超
(江苏自动化研究所,江苏 连云港 222000)
遥感技术是指借助于各类遥感平台对远距离地物进行隔空检测的技术[1]。近年来,高分辨率的可见光遥感图像大量涌现,各种小型目标的纹理细节和结构都十分清晰。由于海洋资源的重要性,海洋上各种舰船目标的自动检测方法不断更新,对海洋目标检测意义重大。传统目标检测方法的解决思路主要是基于模板匹配、知识表示、图像分析和机器学习等方法[2]。这些方法过于依赖人工,专用性太强,不具有普适性,而且人工提取特征难以表达高层语义信息,导致检测性能较差。近年来,随着人工智能技术的发展,人工智能已经达到可以自行处理问题的程度,甚至能够比人更加快速和准确。深度学习的方法不需要人为设计特征表达来提取目标特征,而是通过训练海量的数据自行提取特征[3],而且已经被证实。在可以获得足够数据量的前提下,深度学习方法的目标检测识别精度甚至超过人类的认知能力。本文对海洋遥感图像的舰船目标进行检测。与普通近距离目标检测不同的是遥感图像属于远距离成像,遥感图像的覆盖范围、尺度和物体方位都不同,进行目标检测相对困难[4-6],主要有以下几点:① 每一幅遥感图像中包含不同大小的目标,同一个分辨率下的目标差异大,所以准确找出所有目标相对困难;② 可见光遥感图像易受到光照、云层等因素影响,会导致目标本身的特征发生改变,影响目标的检测;③ 遥感图像是由卫星或飞机从高空向下拍摄,会导致图像中的同一个目标有不同的旋转角度,导致形态上的差异,严重影响对目标的检测;④ 遥感图像有些目标可能很小而且密集,目标之间可能会产生干扰并且不易检测[7-8]。针对上述问题,本文在对深度学习和视觉关注机制的相关技术分析的基础上,使用python语言通过深度学习框架实现一个对海洋遥感图像舰船目标的检测。通过注意力机制对算法进行优化使得结果更加精准。
快速区域卷积神经网络(Faster Region-based Convolutional Neural Networks,FR-CNN)以整张图片为输入,利用CNN得到图片的特征图[9]。使用区域生成网络(Region Proposal Networks,RPN)进行候选框提取,并将这些候选框投影到特征图[10-12]。针对特征图上的每一个大小不同的候选框,使用兴趣区域(Region of Interesting,RoI)池化操作,得到固定维度的特征表示,最后通过2个全连接层,分别用softmax分类以及回归模型进行检测[13]。一张图经过卷积后,会得到相应的特征图,特征图的每一个像素都可以对应原始的图像,对于任何一个候选区域,只需要获取它的左上右下2个点对应到特征图中的位置,就能从特征图中获取到这个候选区域对应的特征。FR-CNN整体可以划分为4个主要内容,算法整体结构如图1所示。
图1 FR-CNN整体结构Fig.1 Overall structure of FR-CNN
(1) 特征提取网络。FR-CNN的特征提取部分使用一组基础的Conv+ReLU+pooling层提取输入图像的特征图,用于后续RPN层和全连接层。
(2) 区域生成网络。RPN网络用于生成候选区域框,利用网络训练来提取前景。通过softmax判断锚定属于正例还是反例,获得前景区域的大致坐标,再利用边界框回归修正锚定获得精确的候选区域框。
(3) 感兴趣区域池化。池化层获得输入的特征图和候选区域框,综合信息后提取出每个候选区域的特征表示,用于后续全连接层判定目标类别。
(4) 分类。利用每个候选区域的特征表示可以计算出候选区域框的类别,同时再次利用边界框回归和非极大值抑制来获得检测框最终的精确位置。
以上述4个方面依次描述算法实现。首先,展示一张本文实现的算法的整体结构图,如图2所示。
图2 目标检测算法结构Fig.2 Structure of object detection algorithm
对于任意大小的输入图像在提取特征图之前,首先缩放至固定大小,再送入网络进行特征提取;特征提取网络中包含了多个卷积层、池化层和激活函数;RPN网络首先经过3×3卷积,再分别生成正例锚定和对应边界框回归偏移量,然后计算出候选区域;而RoI池化层则利用候选区域从特征图中提取候选区域特征送入后续全连接和softmax网络做分类。
特征提取层的主要作用是提取能够很好地描述和区分图像目标的特征,本文使用ResNet50网络模型作为这一部分的结构模型[14]。使用在ImageNet图片分类数据集中训练好的网络参数,在这里直接进行使用,可以节省很多的调整参数的时间。
ResNet50中有2个基本的块:Conv Block和Identity Block。Conv Block输入和输出的维度不同,不能连续串联,用于改变网络的维度;Identity Block输入维度和输出维度是相同的,可以串联,用于加深网络。ResNet50的整体结构如图3所示。FR-CNN的特征提取网络部分只包含了长宽压缩了4次的内容,第5次压缩后的内容在RoI中使用。ResNet50结构中包括了多个Conv Block和Identity Block。最终输出为特征图。
图3 ResNet50整体结构Fig.3 Overall structure of ResNet50
区域生成网络中,FR-CNN抛弃了传统的滑动窗口和选择性搜索方法,直接使用RPN生成候选区域框,可以极大地提升检测框的生成速度。从图2的结构图可以看到,RPN网络分为2步:第1步通过softmax分类锚定获得正例和反例分类,可以对RPN进行训练使它对任意输入都具备识别能力。第2步用于计算对于锚定的边界框回归偏移量,以获得精确的正例,用收敛来保证精度。最后的正例层则负责综合正例锚定和对应边界框回归偏移量获取候选区域,在这个过程中剔除太小和超出边界的候选区域。获得的公用特征层在图像中就是特征图,其有2个应用,一个是和RoI池化结合使用;另一个是进行一次3×3的卷积后,进行一个9通道的1×1卷积,还有一个36通道的1×1卷积。
在FR-CNN中,锚定的数量是9,所以2个1×1卷积的结果是:① 9×4的卷积用于预测特征层上每一个网格点上每一个锚定的变化情况;② 9×1的卷积用于预测公用特征层上每一个网格点上每一个预测框内部是否包含了物体。当输入图像尺寸是600 pixel×600 pixel的彩色图像时,公用特征层的就是38×38×1 024,相当于把输入进来的图像分割成38×38的网格,然后每个网格存在9个锚定,锚定大小不等。
(1)
(2)
(3)
由式(1)可以看出,区域生成网络的损失函数分为两部分,第一部分为分类损失函数Lcls,是对边界框分类网络的损失函数;第二部分为回归损失函数Lreg,用于边界框的回归网络训练,Lreg计算公式如式(4)和(5):
(4)
(5)
RoI池化层则负责接收候选框,并进行池化操作后送入后续网络。从图1中可以看出,Rol池化层有2个输入:原始特征图和RPN输出的候选框。对于传统的CNN(如ResNet和VGG),网络训练好之后,输入的图像必须是固定大小尺寸,同时输出也需要固定尺寸。当输入图像大小不确定,就会产生问题。有2种解决办法:从图像中裁剪一部分传入网络或者将图像缩放成需要的尺寸后传入网络。
2种办法的示意如图4所示。可以看出,无论采取哪种办法,效果都不好。一方面,利用裁剪破坏了图像的完整结构;另一方面,缩放后破坏了图像原始形状信息。
(a) 剪裁
(b) 缩放图4 裁剪和缩放Fig.4 Cutting and scale
分类回归是分类器部分利用前面已经获得的候选区域特征,通过全连接层与softmax可以计算出每个候选目标分别属于哪个类别,输出分类的概率向量;再次利用边界框回归获得每个候选目标的位置偏移量,用于回归更加精确的目标检测框。全连接层的计算为:
(6)
非极大值抑制算法在计算机视觉方向有很多应用,例如目标检测算法和人脸识别算法等。在目标检测算法中,经过分类器后,会有很多被确定为样本的候选区域框,大量候选区域框都集中在目标附近,这些框会有互相重叠的部分,需要进行非极大值抑制方法来解决。非极大值抑制的本质是将其中局部范围内的最大值挑选出来,对非极大值的元素进行抑制,保留最优的框,如图5所示。
图5 非极大值抑制Fig.5 Non-maximum suppression
首先对所有的候选框的得分进行排序,选出分数最大的候选框,然后遍历剩余的框并设定一个值,当剩余的框和最高分的框交并比的值大于这个值时,证明重叠率很大,则删除这个剩余框。循环以上操作,最后得到一个最优解。
本文在FR-CNN框架的基础上引入了注意力模型对遥感图像进行目标检测,设计了一种结合了空间和通道的注意力机制模块——卷积块注意模块(Convolutional Block Attention Module,CBAM)[15],使用的特征提取网络是ResNet50,将CBAM加入到ResNet结构中,需要在ResNet的每个残差块后加入该模块,结构如图6所示。实验证明,该模块的加入提高了网络的检测性能。
图6 CBAM模型结构Fig.6 Structure of CBAM model
当输入F作为输入特征图时,本文提出的CBAM主要对其进行以下2个运算:
F′=Mc(F)⊗F,
(7)
F″=Ms(F′)⊗F′,
(8)
Mc(F)=σ(MLP(AvgPool(F)+MLP(MaxPool(F)))=
(9)
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=
(10)
式中,σ表示sigmoid激活函数。该部分显示的卷积层使用了7×7的卷积核,后面的实验曾使用3×3的卷积核,但总体来说7×7的卷积会表现更好。
本文利用网络卫星地图搜集了近500张海洋遥感图像作为数据集,其中80%作为训练图像,20%作为测试图像。首先是对于遥感图像数据的收集,使用卫星遥感图像以截图的方式进行数据收集。使用网络卫星地图裁减了500张不同视角、不同位置的海洋遥感图像。部分示例如图7所示。
图7 海洋遥感数据集示例图像Fig.7 Sample image of marine remote sensing dataset
在目标检测领域,均值平均精度(mean Average Precision,mAP)是判断一个目标检测算法的检测精度的主要指标。组成mAP的基础是AP,AP是由查准率(Precision)和召回率(Recall)组合得到的。
查准率是目标检测中会产生正样本和负样本,检测过程中可能会发生错误,假定已经识别结束时,被识别为正确的目标中有部分是正确目标(True Positive),但是也有一部分是错误目标(False Positive),查准率定义为:
(11)
召回率是定义被误认的目标为False Negative,被正确分类的为True Negative,则召回率定义为:
(12)
由于查准率和召回率的关系是其中一个升高,另一个一定降低,所以可以绘制图像并通过图像获得AP值,也就是Recall和Precision曲线下边的面积,如图8所示。mAP就是对AP的值求平均值。
图8 查准率和召回率Fig.8 Precision ratio and recall ratio
IoU示意如图9所示。
IoU(Intersection over Union)交并比:检测中使用的一个评估指标,是测量在特定数据集中检测相对物体准确度的一个标准。
IoU表示产生的候选框和原标记框的重叠率就是它们之间的交集和并集的比值。IoU值越高检测精度越高。最理想的情况是完全重叠,IoU值为1。计算如下:
(13)
图9 IoU示意图Fig.9 Schematic diagram of IoU
对大部分目标检测算法进行舰船目标检测的测试结果如表1所示。
表1 目标检测算法实验数据Tab.1 Experimental data of object detection algorithm
由表1可以看出,本文经过视觉注意力机制改进后的算法相比原算法和其他算法有优势,检测精度和显示效果较好,表明了工作的有效性。
本文使用深度学习框架和视觉注意力机制实现了对海洋遥感图像的舰船目标的自动检测,能够实现对舰船目标的快速检测和标定。文中的海洋遥感图像舰船目标检测算法使用深度学习实现对遥感图像的特征提取,相比传统算法有极大的优势和提升效果,而且使用视觉注意力机制对算法进行改进,提升了算法的检测精度和显示效果,提高了对于海洋舰船目标检测的定位精度,对海洋目标检测有重大意义。