聂振钢, 任静,卢继华
(北京理工大学 信息与电子学院,北京 100081)
海洋中环境复杂多变导致海洋作业困难,船舶流量监控对于海上探测、目标识别以及海域搜救等而言意义重大,对于其他海上事务也有非常好的应用前景. 大量的航拍图片若依靠人工判断,既耗时又耗力,准确率还低. 非机器学习的经典检测方法在准确率、含噪图像识别以及检测结果可靠性等方面已有较多研究[1-3],然而取得的突破性进展少,难以为复杂海域船舶流量识别提供有效方法. 随着卷积神经网络(convolutional neural network,CNN)[4-7]的出现及其所依托的计算能力不断发展,图像识别逐渐由目标检测[8]、语义分割[9]发展到实例分割,并实现了像素层面的目标定位. 空间金字塔池化(spatial pyramid pooling,SPP)[8]已成为所述网络成功实现准确率突破的重要技术基础,广泛应用于Fast RCNN[10]、Faster RCNN[11]以及Mask RCNN模型中. 输入图片在SPP中经卷积后生成特征图,接着经过一个多尺度池化结构生成新的特征图进行了多尺度池化避免对每一个感兴趣区域(region of interest,ROI)进行卷积,从而降低卷积运算量. 再将各尺度池化得到的特征输入到全连接层进行类别判断. Fast RCNN结构与SPP相比,有如下两处改进:①将SPP中ROI的多尺度池化变为单尺度池化;②最后一层激活函数softmax变为两个:一个用于目标分类,另一个用于微调边界框. Fast RCNN不再需要硬盘存储数据交换的中间变量,极大提高了网络的训练与测试速度. Faster RCNN将生成候选框整合入Fast RCNN模型中,取名为区域生成网络(regional proposal networks,RPN),RPN与后续检测共享特征提取网络的结果. RPN通过神经网络与多次非极大值抑制可以很好地给出潜在目标区域的预测,从而达到较好的准确率. Faster RCNN的改进:掩码区域卷积神经网络(Mask region- convolutional neural network,Mask RCNN)[12]是实例分割的代表,且已被证明在COCO及ImageNet数据集上识别准确度高于现有算法. Mask RCNN模型的典型应用包括医学图像分割[13]及车道线检测等[14].
在模型组成方面,Mask RCNN模型中的特征提取网络及特征金字塔网络通过空间金字塔池化获取特征及特征图,最主要的通过引入Mask分支生成候选框及边界框,而二者又分别继承了Faster RCNN和Fast RCNN的技术优势. 本文基于Mask RCNN模型对航拍图像海上船只目标进行定位并检测,改善了雾化图像难以识别的问题,使得船只数量及位置识别的准确率都达到了较高水平.
基于Mask RCNN模型的船舶检测示意如图1所示. 图1中Mask RCNN模型的处理过程包括括读取数据并处理、特征提取网络提取特征、特征金字塔网络(feature pyramid network,FPN)获取特征图、RPN网络提取感兴趣区域并生成候选框、划分类别和边界框以及Mask分支几部分.
读取数据并处理得到输入数据流,具体为:读取标注文件,生成包含图片名称、存储路径以及标注信息的图像信息字典;确认图片的存储路径正确,图片分辨率与预设相符合,预处理后的图片存入图像信息字典.
特征提取网络提取特征,具体为:经特征提取网络的Stage1到Stage5得特征C1~C5. 其中,Stage1对输入图片进行Zero padding即补0;经过步长为2、大小为7×7的卷积核conv,经conv卷积之后进行批正则化BN加快收敛,再经relu激活函数以及max pooling减少参数量和过拟合可能. Stage2到Stage5的结构均为conv block后跟若干identity block,Stage4中的identity block数量为22个;其中,identity block与conv block的差异是identity block特征图维度无变化,即identity block不需要在相加前对输入进行下采样操作. 从Stage1到Stage5的每一层都会输出相应的特征图,且每经过一个Stage,特征图的尺寸都会减少1/2;特征提取网络输出C1~C5,是5个不同大小、不同信息量以及不同目标位置准确度的特征图,每个特征图包含的目标信息量更加丰富,然而目标位置信息会更模糊.
FPN获取特征图,具体为:C1~C5输入特征金字塔网络(feature pyramid network,FPN)处理后获得特征图P2~P6,进入RPN获得边界预测,最后输出边界框划分、分类以及掩码预测. 具体为:利用上采样和侧边连接生成新的融合各尺度信息的新的特征图并输出P2~P6.
RPN网络提取感兴趣区域,具体为:首先,RPN在每个特征点上生成不同比例和大小的感兴趣区域(regional of interest,ROI);并对这些ROI进行初步分类,然后通过前景分数和极大度值抑制筛选出可信度较高的区域,生成候选框.
最后,图1中的ROIAlign将根据筛选及生成的候选框从原特征图中重新提取ROI且统一大小,对于每一个提取出来的ROI,Mask分支通过全卷积预测每一个像素是否属于该目标,全连接分支预测每个ROI中目标所属的类别和边界框,最后根据预设的分数阈值将置信度不高的目标剔除掉并输出所有大于预设置信度的预测目标.
在船舶检测时,输入图像的长和宽都不能超过1 024;输出检测结果,包含预测目标的可信度和位置;其中,位置通过边界框和掩码表示.
数据集分为训练集和验证集,共包含图片分辨率为768×768的8 992张图片. 其中,训练集和验证集的包含图片的数量是6 329和2 663,使用VGG图片标注工具(VGG image annotator,VIA)对数据进行标注,具体记录了图片名称、分辨率、各个目标的面积、位置的RLE编码以及为每一张图片和标注目标分配唯一的ID.
① 读取雾化图片及标注信息;依据标注文件获取所有图片的ID,再根据图片ID提取所有标注信息,为每一张图片建立一个信息字典,该字典包含由图片文件夹路径和文件名生成的图片的绝对路径以及标注信息. 接下来,根据字典的ID依次读取每张图片的字典,获取图片的各种信息并进行相应处理,包括读取图片信息(见图2(a))并将图片信息转化成一个固定大小的三维数组,读取图片的每一个标注信息,并进行解码转化成与图片大小相同的二进制掩码数组,即目标掩码位置区域(见图2(b)2(c)),再根据该掩码计算边界框位置.
② 进行特征提取及融合;将数据输入特征提取网络ResNet101进行特征提取,先生成32×32、64×64、128×128、256×256以及512×512的特征图. 并放弃512×512特征图. FPN对大小为32×32的特征图多进行一次最大池化生成一个尺度特征图.
③ 生成并筛选候选框;FPN得到特征图后,依据像素点按长宽比为0.5、1和2生成anchor框. 再通过前景、背景得分筛选以及非极大值抑制得到预设数量的候选框. 计算候选框和目标重叠度(intersection over union,IOU)值对anchor框进一步筛选得到的候选框. 各层级特征图的大小及生成的各类anchor框总数如表1所示.
表1 各层特征图形状与生成anchor框总数
某像素点在特征图上生成的anchor框在实际图片上的映射如图3所示.
图4是一张图片所生成的各类anchor框,从左往右依此是Positive anchors、Negative anchors以及Neutral anchors. 所述分类标准是与目标box的IOU值,其阈值分别是0.7和0.3. 图中,3种anchor框的数量分别是2、254以及261 632,且仅随机展示了部分Negative anchors和Neutral anchors.
④ 匹配特征图维度及基于Mask分支预测像素点归属预测;对RPN输出的每一个anchor框进行ROIAlign处理,获得固定大小的针对每一个候选目标的特征图. 再对候选目标特征图进行分类、边界框调整以及进行Mask分支操作,完成区域内部每个像素点的归属预测.
图5中,黑框为anchor框,对应右边为Mask分支处理后的输出.
本文所述的Mask RCNN网络模型训练与测试的服务器配置如下:i7-7820X、32 GB内存、GPU(1080Ti)以及11 GB显存. 2张图片1个batch,1 000个step组成1个epoch,训练了82个epoch.
在Mask RCNN网络的训练过程中需计算预测结果和标注值间的损失(即loss)并进行反向传播用于优化模型参数. 总loss如图6(a)所示,组成总loss的五部分组成分别如图6~图8所示.
其中,Mask RCNN目标边界框调整loss如图6(b)所示、Mask RCNN目标分类loss如图7(a)所示;Mask RCNN像素归属loss如图7(b)所示,RPN对候选框前景背景判断loss如图8(a)以及RPN提取的边界框loss如图8(b)所示. 从图6~图8中可看出,各loss随epoch增加的衰减趋势相同.
针对所搭建模型的边界框、掩码质量以及船只实例3种输出,分别进行测试并设计了检测标准,如表2所示. 针对①存在的船只被准确检测出来;②存在的船只没有被检测出来;③不是船只的部分当成船只给出检测结果. 根据这3种情况,用Positive表示预测存在的目标,Negative表示预测不存在的目标,用True表示目标实际存在,False表示目标实际不存在. 准确率计算公式为
准确率=TP/(TP+FP+TN).
(1)
式中:TP为预测正确的实例数量;FP为将错误的实例预测为正确的实例的数量;TN为没有成功预测实际存在实例的数量.
表2 目标检测判定逻辑
采用IOU对边界框和掩码质量分别进行检测来测试预测的船只位置准确度,然后对表2中3种情况的所有IOU取平均值,得出的测试结果如表3所示.
表3 Mask RCNN模型的测试结果表
从表3中Mask RCNN模型的测试结果可以看出,实例识别准确度即船只数量的识别准确率为89.86%,边界框位置准确度为85.42%,掩码位置准确度为81.04%. 在检测过程中,漏检的情况很少,影响实例识别准确率的主要原因是将非目标误检成了目标;影响边框位置准确度以及掩码位置准确度的原因比较多,比如目标特征尤其边缘特征的提取不够充分、特征图和原图在像素点上的映射误差以及RPN网络提取的ROI池化为固定尺寸的位置信息损失.
本文将Mask RCNN模型应用于海域卫星图片的船只检测中,能够自动检测观测海域中的船只数量并对其进行定位. 基于构建的数据集对搭建的Mask RCNN模型进行训练,根据训练集的表现以及此问题的特点对模型进行修改,提高模型的检测准确度,最后用训练好的模型对输入图片进行测试,并基于设定的IOU阈值计算标注区域和检测区域的IOU值对模型性能进行定量评估. 设定IOU的阈值为0.5,当标注目标和检测目标的IOU值大于0.5,认为是有效检测,计算所有IOU的平均值获得准确度. 经测试:船只数量检测准确度89.9%,边界框位置准确度85.4%,掩码准确度81.0%. 验证了该模型的准确性,实现了船只数量以及位置的高精度检测.