罗逸豪,孙 创,邵 成,张钧陶
(1.中国船舶集团有限公司第七一〇研究所,湖北 宜昌 443003;2.清江创新中心,湖北 武汉 430076;3.军事科学院系统工程研究院,北京 100141)
水面无人艇(Unmanned Surface Vehicles,USV)作为一种无人操作的水面舰艇,具有体积小、航速快、机动性强、模块化等特点,可用于执行危险以及不适于有人船执行的任务[1]。USV可实现自主规划与航行、环境感知、目标探测、自主避障等功能,在军事作战和民用领域中具备极高的应用价值[2]。其中无人艇自主目标检测算法是支撑任务完成的核心技术[3]。目前国内 USV尚未进行大规模应用,一个重要的原因就是水面目标检测算法性能不足。如何提高目标检测的精度和速度,增强应对复杂场景的稳定性,以及扩充识别目标的种类,都是水面目标识别中需要解决的问题。
USV的感知模块通常可采用以下传感器采集信息:导航雷达、激光雷达、声呐、红外热成像仪、可见光传感器。可见光相机作为轻量级、低功耗和信息丰富的传感器,虽然容易受到光照、天气等环境影响,但已成为USV水面目标检测的主流传感设备[4]。
可见光图像目标检测的研究可以追溯到20世纪90年代,早期的传统目标检测算法基于人工设计的特征,比如十分经典的SIFT[5]、HOG[6]、Haar[7]特征。然而,它们能够提取的特征信息往往局限于纹理、轮廓等,只适用于特定任务,并且需要大量的专业经验和知识进行手工设计[8]。而目前各式各样的应用环境充满着许多复杂因素和干扰,传统方法已经显得无能为力。2012年,AlexNet[9]采用卷积神经网络(Convolutional Neural Network,CNN)在 ImageNet[10]大规模图像分类数据集上取得了突破性的效果,引发了深度学习(Deep Learning)的火热浪潮。深度学习利用大数据对网络模型进行训练,克服了传统特征的诸多缺点,已成为当下各个应用领域中目标检测任务的主流算法。
USV水面目标检测任务是通用目标检测算法的一个重要应用方向。已有一些综述文献[11-14]对传统或基于深度学习的目标检测算法研究现状进行了综述,但它们仅采用经典的算法类型定义,并未囊括在此类型之外的最新相关工作。另一方面,文献[15-17]对无人水面艇感知技术发展进行了调研与展望,包含了检测、跟踪、定位、导航等多项技术,但未对水面目标检测进行全面深入的分析。
目标检测算法需要输出给定图像中所有物体的类别,还需用紧密的外接矩阵定位每一个目标,即分类+回归。通俗来讲,目标检测就是解决图像中所有物体“是什么”以及“在哪里”的问题。在2012年以前,传统的目标检测算法采用手工方式提取特征,其框架图如图1所示。
图1 传统目标检测模型框架Fig.1 Framework of traditional object detection model
基于滑动窗口的筛选方法旨在枚举出输入图像中所有可能的目标外接矩形框,最终得到一系列不同大小和尺寸的初始候选框(Anchor,也称为锚框,样本参考框)。然后从输入图像中截取每一个候选框中的图像输入特征提取算法得到图像特征。得到的特征(比如SIFT、HOG等手工特征)被输入到分类器(比如SVM[18]等)中以执行图像分类。最后通过后处理步骤(比如非极大值抑制[19],Non-Maximum Suppression,NMS)根据分类得分筛选出置信度高的候选框以得到最终的检测结果。
伴随着 2012 年 AlexNet[9]兴起的深度学习研究热潮,深度神经网络(Deep Neural Network,DNN)已经成为了计算机视觉领域中提取图像特征的主流模型。在图像分类任务中DNN取得了杰出的精度提升,因此人们自然而然地将其引入到目标检测问题中,将传统目标检测框架中的各个组件由DNN进行替换,最终实现“输入→深度学习模型→结果”的端到端模型,具体框架如图2所示。
图2 基于深度神经网络的目标检测模型框架Fig.2 Framework of object detection model based on DNN
不同类型的目标检测算法具有不同的采样策略。根据是否存在显式的候选框提取过程,目标检测模型可以分为两阶段(Two-stage)和一阶段(One-stage)检测方法。两阶段检测器通过候选框提取方法首先筛选出一批感兴趣区域(Region of Interest,ROI),然后再进行识别定位,整体上是一种由粗到精的检测过程;而一阶段检测器是直接使用固定的锚框进行识别定位,属于“一步到位”。这也是经典的目标检测算法分类方法。
另一方面,根据是否需要显式定义先验锚框,目标检测模型还可以分为基于锚框(Anchor-based)和无锚框(Anchor-free)检测方法。基于锚框的方法需要预先定义一定数量、尺寸、长宽比例的锚框以进行采样,而无锚框方法则不需要。大部分两阶段目标检测模型属于基于锚框的方法,而一阶段目标检测模型则两者皆有。在2018年左右,无锚框检测方法逐渐受到研究者的重视。
除此之外,Transformer[20]作为一种最早用于序列建模和机器翻译任务的基于注意力结构,在最近两年被广泛应用于图像目标检测领域。它提供了一个新的基于目标查询的采样方式,将目标检测作为一个集合预测问题。
接下来本章对上述类型的目标检测算法分别进行阐述。
R-CNN[21]是基于深度学习的两阶段目标检测器开山之作,在传统检测框架上,它采用CNN来提取图像特征。R-CNN检测器在第一个阶段中采用选择性搜索算法[22]生成约2 000个ROI。不同于传统的滑动窗口,选择性搜索算法可以排除掉一部分背景区域的干扰而尽可能筛选出目标区域。在第二阶段中R-CNN将每一个ROI裁剪并缩放至同样的大小,然后使用CNN提取图像特征。最后将特征向量输入到训练好的SVM分类器和回归器中得到分类置信度得分和目标边界框的坐标参数。虽然R-CNN相比传统检测算法实现了更高的精度,但是它将每一个ROI分别输入CNN提取特征,这导致了大量的重复计算,致使算法实时性过低,每张图像的计算时间接近一分钟。同时R-CNN中的各个组件是独立的,无法以端到端的方式进行训练和推理。
针对R-CNN的推理速度不足,SPPNet[23]直接使用CNN提取整张输入图像的特征,然后将特征图输入空间金字塔池化层得到固定长度的特征,最后进行分类和回归。类似地,Fast R-CNN[24]采用ROI池化层处理整张特征图以提取固定大小特征,然后输入到由全连接层构造的分类器和回归器中。虽然它们在一定程度上提升了检测器的速度,但是由于候选框提取算法的限制依然无法实现端到端检测。
为了实现快速的端到端目标检测模型,Faster R-CNN[25]提出了一种新的候选框提取算法——区域推荐网络(Region Proposal Network,RPN)。RPN由全卷积神经网络[26]构成,它在输入的特征图中每一个坐标点设置不同比例的固定锚框,输出带有前景/背景二分类结果的候选框。然后,根据所提取的候选框和映射机制可以从特征图上提取一系列ROI特征,输入到分类层和回归层得到检测结果。Faster R-CNN能够以端到端的方式进行训练和推理,极大地提升了检测速度和精度,并且扩展性和泛化性强,成为了经典的两阶段目标检测器范式,被广泛地应用于学术界和工业界。
后续的两阶段目标检测研究主要是基于Faster R-CNN的改进工作。R-FCN[27]生成位置敏感度得分图对每个候选框进行编码来提取空间感知区域特征,同时用卷积层替换了分类层和回归层中的全卷积层,实现了更快更准确的检测。Cascade R-CNN[28]提出了一种多阶段的检测模式,通过级联的方式结合多个R-CNN结构对回归结果不断地优化,实现了更精准的预测框。Dynamic R-CNN[29]采用动态训练方法来调整训练过程中的IoU阈值,逐步提高锚框的质量。RL-RPN[30]引入了一个顺序区域建议网络,该网络与检测器一起改进搜索策略,优化RPN结构。近几年越来越多的两阶段目标检测器被提出,比如CBNet[31]、DetNet[32]等。
两阶段目标检测器虽然检测精度较高,但是候选区域生成模块会带来更大的计算消耗,降低实际场景应用中的实时性。一阶段检测器没有用于候选框生成的单独阶段,将图像上所有位置都视为可能存在目标,以降低检测精度为代价来提升速度。
OverFeat[33]是第一个采用全卷积神经网络的一阶段目标检测器,它将目标检测看作是多区域分类,直接使用CNN来代替滑动窗口。全卷积神经网络的优势在于可以接受任意尺寸的图像输入,而全连接层的劣势正是只支持固定尺寸的输入。尽管OverFeat大大提升了检测速度,其粗糙的锚框生成策略和非端到端的训练策略使得它的检测精度不高。
后来Redmon等人提出了YOLO[34],把输入图像在长宽维度上划分为预设的N×N个网格单元。YOLO将目标检测视为回归问题,并规定每一个网格中都存在同一个类别的一个或者多个预测框,由框的中心点来确定目标所属于的网格。最终每一个网格都会得到C个类别的one-hot编码概率,B个预测框的坐标信息和其对应的置信度,输出的特征图尺寸(长×宽×通道)为 N×N×(5B+C)。YOLO因为其较高的准确率和极快的速度成为了最受欢迎的目标检测模型之一。然而它也有明显的缺点:对于小目标和聚集的物体检测精度不高。这些问题在其后续的版本v2–v4[35-37]中陆续得到了改善。直至2022年,YOLO已经发展到了第七代[38],逐渐与无锚框方法相融合。YOLO系列模型对数据集依赖度不高,运行速度快,是工业界应用最广泛的一阶段目标检测算法。
为了在保证实时性的同时尽可能地提高检测精度,SSD[39]有效地借鉴了RPN,YOLO和多尺度检测的思想,仍然将输入图像划分为固定的网格单元,并设定一系列具有多个长宽比例的锚框以扩充预测框的输出空间。每一个预设的锚框都会通过回归器训练得到预测框的坐标,并且由分类器得到(C+1)个类别的概率(1代表背景类别)。同时,SSD在多张不同尺寸的特征图上执行目标检测,以更好地发现大、中、小尺寸的目标。SSD的精度甚至超过了早期的Faster R-CNN,检测速度比YOLO更快,因此备受推崇。基于 SSD模型的后续研究有 DSOD[40]、RefineDet[41]、MT-DSSD[42]等,它们针对原始方法的跨域预训练、正负样本比例失衡、特征表达能力不强等问题进行优化。
考虑到一阶段探测器和两阶段探测器的精度之间的差异,普遍的观点是认为一阶段目标检测器在训练的过程中存在严重的正负样本不平衡问题,因为未经过筛选的大量锚框只有少量才包含待检测的目标。针对这一现象,RetinaNet[43]改进了交叉熵损失函数的表达式,提出了新的Focal Loss。它减少了训练过程中简单样本(可以被轻易识别的样本)对于梯度的贡献,使得检测器更加关注容易判错的困难样本。同时,RetinaNet引入了特征金字塔网络[44]来进行多尺度检测,大幅提高了检测精度。RetinaNet部署简单,泛化能力强,收敛速度快且易于训练,成为了学术界一阶段目标检测器研究的基线。近几年一阶段检测算法 ATSS[45]、GFL[46]、GFLv2[47]在损失函数上进一步优化,检测精度已与两阶段方法没有差距。
先前介绍的方法多是基于锚框的目标检测算法,这也是自深度学习目标检测研究以来的主流方法。然而,基于锚框的检测算法十分依赖人工预先设置的锚框,需要考虑其数量、尺度、长宽比等因素。当更换数据集之后,预先设置好的锚框参数则需要重新进行设计,这带来了巨大的工作量,使得检测器可扩展性不高。人工设置的锚框参数并不能保证最优,可能会导致训练样本失衡等问题而引起精度下降。同时,生成大量密集的锚框会使得检测器训练和推理的速度降低。因此,近几年无锚框检测算法受到了越来越多研究者的关注,成为了目标检测未来的研究方向之一。
在早期的无锚框方法研究中,UnitBox[48]率先提出了基于交并比(Intersection over Union,IoU)的回归损失函数。交并比是指在图像中预测框与真实框的交集和并集的面积比值,这也是评价目标检测器精度的主要依据。而主流基于锚框的检测器主要是采用L1损失函数,以预测框与真实框的4个顶点坐标差的绝对值来计算误差,这与IoU不是等价的。极有可能存在具有相同L1损失值样本的IoU值差异大。IoU损失函数使得检测器不需要预先设置的锚框,而以像素点为单位来进行预测,开辟了一个新的回归损失范式。
无锚框方法的另一条思路是预测目标框的关键点。CornerNet[49]采用CNN提取输入图像特征之后又续接了2个独立的分支,上分支负责预测目标框的左上角,下分支则负责预测右下角。上下两分支生成位置热图和嵌入向量,用来判定左上角和右下角是否属于同一个目标,最终使用偏移量误差来进行训练,提升了模型精度。在后续研究中,CenterNet[50]又引入了物体中心点预测来提高检测精度,ExtremeNet[51]则是采用最顶部、最左侧、最底部、最右侧4个极值点进行预测。
之后,FCOS[52]在结合了Focal Loss和IoU Loss的基础上,又提出了Center-ness Loss。它将落入真实框内的坐标点视作正样本,以坐标点到真实框四条边的距离进行回归,有助于抑制低质量边界框的产生,大幅提高检测器的整体性能。Center-ness Loss还保证了不同尺度的目标都具有足够数量的正样本,在一定程度上解决了正负样本不平衡问题,成为了代表性的无锚框检测算法配置。FSAF[53]和Foveabox[54]同样也是采取与FCOS类似的思路:在RetinaNet检测器上添加无锚检测分支以优化预测框。最近ObjectBox[55]不仅泛化性良好,而且超越了以往绝大多数方法的检测精度。
Transformer模型最早出现在自然语言处理领域,最近两年许多研究者将其应用于计算机视觉,在检测、分割、跟踪等任务中均取得了优异的性能。
DETR[56]是端到端 Transformer检测器的开山之作,它消除了手工设计的锚框和NMS后处理,并通过引入目标查询和集合预测直接检测所有对象,开辟了新的检测算法框架。具体地,DETR使用编码器-解码器作为颈部模块,使用前馈网络(Feed Forward Networks,FFN)作为检测头部。输入由CNN主干提取,展平成一维序列,附加位置编码,然后输入到编码器。设计基于目标查询的可学习位置编码附加到输入,然后并行地传输给解码器。训练过程中,在预测框和真实框之间应用二分匹配损失匹配,以识别一对一标签分配。DETR实现了具有竞争力的检测精度,但在小型目标上存在收敛速度慢和性能差的问题。
为了解决此问题,可变形DETR[57]提出了可学习的稀疏注意力机制,用于加速收敛,并引入了多尺度检测结构,提升了小目标进车精度并将训练次数减少了10倍。ACT[58]消除编码器的冗余查询,提出了一种自适应聚类转换器,基于多轮精确欧几里德局部敏感度哈希方法,ACT可以动态地将查询聚类到不同的原型中,然后通过将每个原型广播到相应的查询中,使用这些原型来近似查询关键注意力热图。与DETR相比,ACT降低15 GFLOPs的运算量,仅损失0.7%的平均精度。
DETR还可以引入空间先验知识,与基于锚框的方法相结合。为了增强目标查询和边界框与经验空间先验的关系,SMCA[59]提出了一种基于空间交叉注意力机制的一阶段检测方法。其训练次数比DETR少5倍。Meng等人提出了条件空间嵌入[60]方法,以空间先验明确表示目标的极端区域,从而缩小了定位不同区域的空间范围,使DETR收敛速度加快了8倍。Yao等人观察到不同的初始化点总是倾向于类似地分布,提出了一种两阶段高校DETR[61],包括密集建议生成和稀疏集预测部分,将DETR训练次数减少14倍。
Transformer结构还可以应用于目标检测模型的骨干网络和颈部模块,适用于两阶段、一阶段、无锚框等框架中。PVT[62-63]将 Transformer构造为一个从高到低分辨率的过程,以学习多尺度特征。基于局部增强的结构将骨干网络构造为局部到全局的组合,以有效地提取短距离和长距离视觉相关性,并避免二次计算开销,如Swin Transformer[64]、ViL[65]和 Focal Transformer[66]。与特征金字塔网络[44]类似,ZHANG等人通过结合非局部特征和多尺度特征,提出了FPT[67]用于密集预测任务。在模型网络构造过程中,Swin Transformer作为通用的视觉骨干网络,可以广泛应用于图像分类、目标检测和语义分割等任务,突破了 Transformer检测器的应用局限性。
然而,基于Transformer的目标检测算法通常只能在大规模数据集上实现较大的性能提升,无法在训练数据不足的情况下进行良好的推广[68]。可以采用迁移学习[69]的方法,从足够的数据集中预先训练,然后在小型和特定的下游任务中进行微调。
与传统目标检测算法类似,一些早期的研究工作利用人工设计的特征对水面目标检测进行了研究。许多方法将海上物体的检测视为显著性估计问题[70-73]。这些方法假设目标与其所处的直接背景有很好的区别。然而,此假设在很多情况下都不成立,比如在起雾和强光的环境下,以及需要检测视觉上接近于水的物体。经典的背景建模法和帧间差分法也不适合USV,因为起伏的海面导致USV的持续晃动,违反了静态相机假设,导致误报率很高[74]。RAJAN 等人[75]对基于传统视觉的水面目标物体检测和跟踪做了更为全面的综述,本文不再进行赘述。
因为现实水面环境复杂多变,USV拍摄的可见光图像的图像质量有所欠缺,包括天气起雾、运动模糊、光照变化等;另外,同一类别的水面目标物也可能在尺度、形状、纹理、大小等方面具有较大差异性。这增加了不同环境下的水面目标检测难度,在一定程度上限制了传统目标检测算法的应用范围。而深度学习目标检测算法迅速发展,已成为目前水面目标检测的主流技术。本章将从3个方面总结基于深度学习的水面目标检测技术进展。
基于深度学习的目标检测算法在2018年之前大多数分为两阶段或一阶段检测方法,因其技术成熟且易于实现,被广泛应用于各个领域。而在无人艇水面目标检测领域,应用深度学习技术起步较晚。
2017年 KUMAR 等人[76]提出了一种改进的VGG16[77]骨干网络用于海面物体的视觉目标检测。该工作发现由于训练数据的缺乏,CNN规模过大可能会造成过拟合现象。为了解决此问题,LEE等人[78]采用了预训练的方式,将通用目标数据集上训练好的模型进行微调,以适用于海事目标。
在之后的研究工作中,经典的两阶段检测模型Faster R-CNN被频繁采用。FU 等人[79]使用了一种改进的 Faster R-CNN 方法用于海上目标检测,使用层数更深、功能更强大的 ResNet[80]骨干网络提取特征,并利用深度归一化层、在线难样本挖掘对模型进行优化。CHEN等人[81]将多尺度策略融合到了 ResNet的多层卷积中,并在特征图上添加了双线性插值进行上采样,以增强小目标检测的效果。Yang等人[82]提出了一个基于 CNN的水面目标检测和跟踪定位系统,以Faster R-CNN模型检测目标位置,然后使用KFC算法[83]在视频序列中连续跟踪该目标。在后续研究中,MA等人[84]采用了混合骨干网络架构,通过DenseNet[85]与ResNet结合的策略,再结合双向特征金字塔网络,进一步增强了两阶段检测模型的精度。
基于两阶段的检测方法倾向于算法精度,但计算复杂度相对更大;相反,一阶段的目标检测识别算法在训练和推理过程占用内存更低,模型计算更快。在不追求更高的检测精度时,一阶段检测方法更受偏爱。陈欣佳等人[86]使用SSD模型执行快速的无人艇目标检测任务,并借助相关滤波(Correlation Filter)方法进行快速跟踪。YANG 等人[87]使用YOLOv3模型实现了实时的水面无人艇检测,然后通过卡尔曼滤波器将外观特征与运动状态估计相结合,实现了一种基于数据关联的多目标跟踪方法。无独有偶,王飞等人[88]也基于 YOLOv3开发了海雾气象条件下海上船只实时检测的深度学习算法。王孟月[89]借助DenseNet改进YOLOv3的骨干网络,以增强特征传播效率、促进有效特征重用以及提高网络性能。
图3 基于语义分割的检测示意图Fig.3 Schematic diagram of detection based on semantic segmentation
由于基于深度学习的语义分割网络模型在城市与道路场景中取得了良好的效果,一些工作[90-91]将CNN分割框架用于海上图像分割。为了改进早期方法在小障碍物上分割表现不佳以及镜像混淆的问题,KIM 等人[92]将跳跃连接和白化层应用于E-Net[93]以改进小目标检测,虽然精度和效率高于同期其他的分割方法,但每秒10帧的计算速度依然无法达到实时的检测效果。
在后续的研究中,STECCANELLA等人[94]提出用深度卷积替换 U-Net[95]中的传统卷积层以改进水线分割效果。在生成了水和非水区域的二进制掩码后,继续检测水中区域的障碍物。为了进一步解决小目标检测精度低和水反射误报率高的问题,BOVCON等人[96]提出了一种新的深度非对称编码器–解码器架构,设计了注意力机制和新的损失函数,并通过视觉和惯性信息融合提高了整体分割精度。但是基于分割的方法始终难以达到实时检测的效果。
早期有一些数据集用来评估海上监视和机器人导航的各种算法。FEFILATYEV等人[97]提出了一个数据集,该数据集包含在同一天记录的10个序列,在同一片公海采集。然而它仅用于地平线检测评估,不包含障碍物,限制了它们的视觉多样性。BLOISI等人[98]采集了10种海上目标跟踪序列。通过在一天中的不同时间进行记录,增加视觉多样性,并对船舶、船只和喷气式飞机等动态障碍物进行注释。然而,由于所有障碍物在非常明亮的水面上都是黑暗的,它们对目标检测几乎没有挑战性。MARQUES等人[99]和 RIBEIRO 等人[100]记录了 2个视觉上不同的海上机载探测数据集。该数据集是为无人机应用而设计的,它不具有在自主船上观察到的有利位置。
为了使数据集信息更加丰富,PATINO等人[101]提出了一个包含14个多传感器序列的数据集,用于障碍物检测、跟踪和威胁识别评估。数据集包含地平线和动态障碍物的注释,但不包含小型障碍物,如浮标。KRISTAN等人[102]构建了一个海上障碍物检测数据集,其中包含从USV捕获的12个不同序列,后来 BOVCON等人[103]将其扩展为与惯性测量单元同步的 28个立体摄像机序列。2个数据集都记录在同一个场景,并包含地平线、水边和大小动态障碍物的注释,通过在不同天气条件下进行记录,保持视觉多样性。
由于深度学习模型需要数据驱动,小型数据集会使得深度学习模型出现过拟合的问题。因此,PRASAD等人[104]提出了一个大型海上监视数据集,包含51个RGB和30个红外光谱序列,在一天的不同时间和不同天气条件下记录。大多数序列是从固定的岸上观测点记录的,而有些是从比机器人船更高的有利位置拍摄的。由于它主要是为监视而设计的,所以场景非常静态,几乎没有运动。为了使动态障碍物和地平线被很好地注释,最近MOOSBAUER等人[105]提供了通过基于颜色的半自动方法计算的粗略实例分割标签。GUNDOGDU等人[106]提出了一个具有400 000补丁的数据集,用于轮船分类任务,但该数据集不能用于检测器评估,因为轮船位置没有注释。SOLOVIEV等人[107]最近构建了具有接近2 000张图像的数据集,用于评估预训练的船舶探测器,因此不标注静态障碍物(如海岸)和动态障碍物(例如边界)。
大多数数据集被提出用于评估目标检测算法,只有少数数据集被设计用于训练分割方法。STECCANELLA等人[108]提出了一个由 191幅图像组成的逐像素注释数据集,这些图像在 7种海域中分别单独记录,用于训练和测试分割方法。数据集包含水域和非水域 2个语义标签,并且测试集与训练集没有很好地分离,视觉多样性有限。BOVCON 等人[109]提出了目前用于海面图像分割的最大和最详细的数据集。数据集是在不同时间和不同天气条件下记录的,历时2年,包含接近1 300张图像,每个像素点标记水、天空或者障碍物。
5.2 推广秸秆气化技术,有利于秸秆资源的综合利用,实现农业可持续发展。农民每年直接燃烧秸秆占全部秸秆总量的64%,大量的秸秆直接燃烧,不仅造成资源的严重浪费,也导致秸秆养畜、秸秆然扫后,还产生大量的co2气体和烟尘,造成空气污染,而秸秆气化技术可以有效解决这些问题。同时秸秆燃气比传统的直接燃烧热效率提高近一倍,可明显减小秸秆和森林资源的消耗,对退耕还林、天然林保护工程、控制水土流失,起到积极地促进作用。
由于在海洋试验现场采集数据成本高昂,许多数据集包含的图像数量较少。在 2022年,RAZA等人[110]使用 3D仿真平台 AILiveSim构建了一个舰船检测仿真数据集,包含 9471张高分辨率(1920×1080)图像,具有船舶、岩石、浮标等动态和静态目标,并使用 YOLOv5测试了模拟数据的可行性。最近,BOVCON 等人[111]构建了目前规模最大、最具挑战性的水面目标检测数据集MODS,包含了超过 8万张图像,记录了高度多样化的目标,并且设计了相应的评估方法、训练集和测试集,形成了一项新基准。这项研究工作在开源网站上进行了公开发布,系统地评估了19项两阶段、一阶段、基于语义分割的目标检测算法在该基准上的性能并进行排名,使得不同方法的跨论文比较更易实现。该工作使水面无人艇目标检测领域取得了关键进展。
虽然有许多研究工作将深度学习方法应用于水面目标检测任务中,但仍有一些缺陷和关键问题亟需解决。本章对关键问题进行归纳总结,并对可行的方案以及未来发展做了进一步的展望。
1)缺乏大规模数据集和统一的评价标准。
在通用目标检测研究中,PASCAL VOC[112]数据集是 2015年以前评价检测算法的金标准,MS COCO[113]数据集则是2015年以后的金标准,他们分别具有约2万和16万张图像。由于其涵盖类别多、场景复杂性高,被研究者们广泛采用,不同算法工作可以轻易地进行性能横向对比。
然而目前的许多海事数据集不能充分捕捉真实世界 USV 场景的复杂性,并且没有标准化评估方法,这使得不同方法的跨论文比较变得困难,阻碍了相关研究的进展。
2)深度学习方法陈旧。
人脸识别[114]和行人检测[115]也作为通用目标检测算法的2个应用子问题,分别衍生出了各自的特异性问题和新颖的算法,在现实应用场景中取得了良好的效果。而由前文内容可知,USV水面目标检测算法的应用相较于通用目标检测算法研究滞后 2年左右,并且所使用的方法通常为 Faster R-CNN和YOLOv3等经典模型,未引入新的模型和针对于水面情况的算法,性能有待进一步提高。
3)现实场景图像质量不佳。
无人艇面临着不断变化的外部环境和突发因素的影响,例如起雾、雨水、强光、海浪等因素的干扰,复杂的背景以及快速变化的视角,或是摄像设备的突然失焦。这均会使得采集的图像质量不佳,极有可能导致算法误判,在应用场景中产生严重后果。尽管深度学习算法比传统算法的精度和鲁棒性更强,在直接处理受损图像时依然不能达到令人满意的效果。
4)可见光相机信息单一。
单一的传感器不能全面地反映复杂海况,单目可见光相机仅能获取彩色图像,无法获取距离、温度等信息。无人艇系统由各体系模块化组成,可以搭载不同的传感器进行感知探测。因此需要利用雷达、声呐、红外等多种传感器信息进行协同、融合分析,提升系统的整体性能。
5)无法应对特定目标检测任务。
目前水面无人艇目标检测数据集涵盖的目标类别通常为船舶、人、浮标、岩石等常见水面目标。然而,当某些具体的应用场景需要检测数据集中未涵盖的特定目标,现有的USV水面目标检测算法难以满足需求。比如,需要检测海域中的冰山,搜寻水域和岸边的濒危两栖动物,在海域作战中检测信号弹、导弹、飞机等空中目标。
1)大规模数据集下的Transformer模型。
由于归纳偏差通常表示为关于数据分布或解空间的一组假设,在CNN中表现为局部性和平移不变性。局部性关注空间上紧密的元素,并将它们与远端元素隔离,变换不变性表明在输入的不同位置重复使用相同的匹配规则。因此CNN在处理图像数据中更关注于局部信息,却限制了数据集规模的上限。Transformer可以关注图像全局信息,在大规模数据集上表现出了更优越的性能。深层Transformer骨干网络和编码器–解码器结构可有效降低计算复杂度,避免深层特征过度平滑。
最新提出的 MODS大规模水面目标检测数据集包含8万张图像和超过6万个目标标注,有望成为评价水面目标检测算法的金标准。因此,在大规模数据驱动下,可以引入 Transformer进行模型设计,进一步提升水面目标检测算法的精度和泛化性。
2)新算法与模型的应用。
近几年目标检测算法在多个层面迅速发展。在骨干网络方面,ResNext[116]和Res2Net[117]已经成为了常用的模型,可以提取表达能力更强的图像特征,并且可变形卷积[118]也被广泛使用。在颈部模块方面,AugFPN[119]和 RCNet[120]联合设计了上下文和注意力模块大幅丰富了多尺度特征信息。在检测头部方面,DOOD[121]和TOOD[122]分别采用了解耦和联合的策略,进一步提高分类和定位的精度。除此之外还有许多训练策略[123-124]改善了正负样本不平衡问题。对于USV水面目标检测任务中环境复杂、小目标漏检、背景区域大等问题,需要借鉴通用目标检测算法,针对性的选择和设计解决方案。
3)基于图像重建与目标检测的多任务模型。
为解决图像质量不佳的问题,最直观的方法是引入图像重建算法对采集的图像进行预处理。CHEN等人[125]采用偏振成像技术对强反光区域进行抑制,QIAN 等[126]结合生成对抗网络和注意力机制对雨天采集的图像进行去雨处理。然而他们仅针对单一的图像受损因素进行预处理操作,适用范围较小。设计多任务模型[127]进一步提升算法性能十分有必要。
深度学习领域中的多任务学习是指让一个神经网络同时学习多项任务,目的是让每个任务之间能够互相帮助。这有利于提高模型实时性和减少算力消耗。其主要实现方式为参数共享,多个任务之间共用网络模型的部分参数,共同进行端到端训练,产生隐式训练数据增加的效果,增强模型的能力并降低过拟合的风险。多任务模型比独立地训练单个任务能实现更好的效果。
因此,图像重建和目标检测任务可以作为子任务统一至端到端模型,在大规模数据驱动下进行多任务联合学习,提高检测器在恶劣天气条件下的性能。
4)多模态融合算法。
多模态学习即是从多个模态表达或感知事物[128],比如通过2种不同成像原理的相机拍摄的图像,通过图像、音频、字母理解视频。多模态学习通常具有2种方式:协作和融合。
在水面目标检测任务中,基于协作的方法可以对相机、雷达、声呐、红外等多种数据的算法输出结果执行进一步分析,采用加权等方式得到最终的检测结果。基于融合的方法可以将多种传感器采集的图像进行融合,进一步探究多模态数据深层特征之间的关系,提高数据的利用率,构建鲁棒的算法系统。例如,MA等人[129]提出了Fusion GAN 模型,采用生成对抗网络实现红外与可见光图像融合。同时,随着3D目标检测[130]研究的兴起,可以将彩色图像与雷达点云数据进行配准融合[131-132]作为深度神经网络的输入。为提高USV感知环境的整体能力,多模态融合算法必将成为重要的发展趋势。
5)小样本、弱监督训练算法。
在特定目标检测任务中存在样本数量少、标注缺失、类别不明确、标注错误等问题。可以借助深度学习小样本学习[133]和弱监督训练[134]的方法,针对特定的水面检测任务充分利用已有的少量图像数据,解决深度学习模型欠拟合和过拟合的问题,提高目标检测算法精度。
水面无人艇在军事作战和民用领域中具备极高的应用价值,目标检测算法是支撑任务完成的核心技术。本文首先回顾了当前基于深度学习的目标检测算法的发展现状,从两阶段、一阶段、无锚框、Transformer 4个类别进行了全面的总结;然后从两阶段/一阶段方法、基于语义分割的方法、海事视觉感知数据集 3个方面归纳无人艇水面目标检测技术的研究现状;最后阐述了水面目标检测任务面临的4个关键问题:缺乏大规模数据集和统一的评价标准、深度学习方法陈旧、现实场景图像质量不佳、可见光相机信息单一、无法应对特定目标检测任务,并对多任务、多模态、弱监督等新技术进行了可行性分析和展望。未来,高度智能化的水面无人艇将会成为海事任务的重要力量。