极轻量的航空影像港口船舶目标检测器
2023-12-20李胜永王超男
李胜永,王超男,王 孟
(1.江苏航运职业技术学院 交通工程学院,江苏 南通 226000; 2.南通大学 理学院,江苏 南通 226000)
0 引 言
航空影像下的目标检测对于地貌勘探、智慧城市、交通监测、航运疏导等领域具有重要作用。借助航拍摄像头以及人工智能网络运算分析,能够实现诸多信息提取。然而,航空影像下的目标由于像素限制,在兼顾准确率的情况下很难有较高的召回率。比较传统的做法是增加输入图像的尺寸和增加网络的强壮程度[1-4],以提高网络对细微特征的学习能力,但是这都是以增加计算量[5-9]为代价的。为解决通用算法对航空图像中目标检测低效的问题,希望设计一种极其轻量的目标检测器用于捕捉航空影像中的小目标。
为了改变现有的对于航空影像下目标检测只追求精度而忽略速度的研究方向,更加关注平衡速度与精度的均衡,以实际的方案实现高精度的移动端平台检测部署。具体的方案有以下几点贡献:
(1)设计了一种极其轻量的网络作为检测器的骨干网络,使最终的网络模型大小仅仅为1.64 MB,对比动则上百兆的大型网络,这足够优秀;
(2)吸收了当前基于深度学习的目标检测器的诸多调优方法于提出的网络中,如原始比例非形变多尺度训练、基于mosaic[7]的随机数据增强、特征金字塔、平铺的小卷积核上下文级联以及GIOU loss[11]计算等技巧;
(3)收集了一个专用分类数据集用于预训练骨干网络以微调最终的目标检测器,验证专用的特征近似的预训练数据比在大型公共数据集上(如ImageNet)预训练结果更优;
(4)为提升小目标的检出率,并保留小目标的细微特征,技巧上使用4个相同大小的ROI区域平铺整个特征图,在不增加内存使用的情况下仅仅增加少量耗时却能大幅增加小目标检出率。由于基础网络足够快,对ROI有较高的容忍度。
1 超轻超快的目标检测器
目标检测器要做到轻量化重点在于骨干网络的宽度。受到人脸检测网络RetinaFace[12]的启发,设计了一个极其轻量的CNN网络作为骨干网络,该网络所有层中的最宽通道之处仅仅为128,并且全程使用小卷积核。参考MobileNet系列[13]网络,卷积层与深度可分离卷积相搭配有效缩减参数量,但摒弃了残差(Res)分枝。另外,特征金字塔中使用的反卷积模块均使用窄通道设定,摒弃无用的宽泛设定。首要考虑的重要目标是追求网络参数量的极致优化,因为参数量是部署嵌入式平台限制的最大障碍,而特征的细节可以通过扩大输入图像尺寸来弥补。网络的检测头部分,并依然遵循成熟的工作经验,参考YOLOv3[14]以及后续系列[7,8]算法,设计了3个不同尺度特征分支中获取目标信息。但与之不同的是,在每个分支中首先吸收当前先进的工作——空洞卷积[15]和瓶颈结构[16]搭建了一种上下文模块,用以获取更大的感受野并加强背景抑制。另外,目标置信度和坐标位置被分为两个分支计算,这种回归方案提升了网络的鲁棒性并加强了不同类别之间的相互抑制以促进减少误报。图1为整个设计的目标检测器的主要结构。
图1 极轻量检测器结构
1.1 极其轻量的骨干网络
审视先前的先进工作,所能查到的参数量较小的分类网络如ShuffleNet[17]、ReXNet[18]等,参数量最少的也需要1.4 MB。而设计出的骨干网络仅仅960 KB(量化后仅760 KB),这拥有足够的优越性。骨干网络的详细结构如图2所示。
图2 极轻量的骨干网络结构
首先,摒弃了MobileNet系列仍然较宽的主干分支结构,对网络宽度进行暴力裁剪,去除冗余的残差块,仅使用简单的层堆积,并对卷积核大小进行优化。当然,图2中每个卷积层都代表一个卷积、批量归一化以及激活层的组合(Conv+BN+ReLU)。一个全新的骨干网络,由于本身训练数据量的不足,除了对本身数据进行随机增强外,在大型数据集上进行预训练来微调基础训练可能会有较大改善,故针对设计的轻量骨干网络,进行大量的训练验证。
1.2 融合的检测头设计
目标检测器的重点在于良好的检测头设计。为此,通过对当前主流通用目标检测网络的重点调研,设计了一种汲取众家之长的检测头设计方案来搭配轻量的骨干网络,从而组成完整的轻量网络检测器。首先,出于对后续流程(嵌入式移动平台植入)考虑,检测头主体网络不宜太复杂。YOLOv3及其后续版本的多尺度特征分支是非常好的工作,简单而高效,同时平衡大小目标的侦测能力。但是,它的每个检测分支的置信度预测和位置预测被集成在同一个卷积层,这可能会造成较多的较高预测分数的误报。所以,每个检测分支的置信度和位置预测分为两个分支分别实现,从原理上看这并不会增加参数量和计算量,却能带来更好的收益。
另外,受到Inception系列网络[16]的启发,几个小卷积核的卷积层平行搭建会带来良好的特征融合的额外收益,并且很少增加网络的额外负担。以往的经验中,上下文融合[19]对检测网络性能十分重要。所以,结合Inception的思想,设计了一种上下文特征融合模块插入到每个检测分支中,用于减少正样本与背景之间地不当匹配,既提升了性能又不会增加网络整体的负担。如图3所示,为设计提出的上下文特征融合模块。
图3 携带空洞卷积的上下文融合模块
需要注意的是图3中每个Conv均表示Convlution+ReLU的组合体。在每个分支的上下文模块中,插入一个空洞卷积。相比普通卷积,空洞卷积可以帮助每个特征点获得足够大的实际感受野,这对实际应用场景中的小目标来说可以带来可观的收益。
1.3 数据层的训练策略
受到目标检测各应用领域中的优秀训练策略[7,12]的启发,在训练阶段的数据层中集成了一种强大的随机数据增强策略。
首先,经过消融实验的仔细对比,训练阶段维持图像中目标的原始比例而不产生形变能够提升网络的召回率,相对于固定尺寸做resize后再送入网络运算,目标形变会对实际场景的检测能力产生负面影响。为此,设计了一种针对不同大小的原始图像而采用不同大小的正方形窗口用于对原始图像的裁剪操作,裁剪会尽可能保留原始图像的大范围区域,这仅仅是为了训练阶段使目标不产生形变。
其次,为了尽可能地提升原始网络对背景干扰的可抗性,mosaic拼接方式[7]是良好的解决方案。为此,从网上随机爬虫和实际场景中进行初始网络侦测收集到大量的易误报的数据并与原始包含正样本的训练图像进行随机mosaic拼接并组成新的训练图像。由于这种方式缩小了实际目标的大小从而进一步促进了小目标的检出率。
另外,基于色阶变化的随机数据增强是提升检测器鲁棒性必不可少的策略。利用开源的随机数据增强库albumentations[20]并将其集成在网络的数据层中,对原始图像和mosaic后的图像进行3到5次色阶变化上的随机数据增强。
最后,吸收yolo系列最新研究成果[8]的可靠经验,多尺度的训练策略能够有效提升网络性能。不同于yolo系列,在训练阶段只采取尺度间隔较大的4种尺度用于训练,同时也弥补了集成的随机数据增强带来的训练阶段数据层处理耗时增加的坏处。
1.4 提升测试阶段专注度
由于骨干网络的轻量性,相比于宽而深的大型网络检测器,不可避免的会牺牲对于小目标的召回。为了弥补这一劣势,提出一种利用4个ROI(感兴趣区域)平铺图像的测试策略,当侦测场景对小目标的需求是必要的时候,这种策略能够带来不劣于甚至更优于大型网络的侦测效果。而代价仅仅是相对于原始轻量检测器增加3~4倍的耗时和存储ROI所占用地很小的内存。虽然耗时增加,但由于其本身巨大的轻量优势,几倍的耗时仍然可以媲美大型网络的运行速度。而异常小的内存占用在嵌入式平台上获得的收益是令人无法抗拒的。
2 实验与结果
为了验证所提出的多种策略给检测器带来的明显改进,进行了多种消融实验和与各种大型网络的对比实验。实验结果将充分验证所提出策略的有效性。同时,为了突出验证所提出的轻量网络在移动端的巨大优越性,在移动端嵌入式平台进行了算法移植并测试效能,且与先进算法进行对比。
2.1 实验环境
由于提出的算法涉及与多个公共网络的比对以及嵌入式平台的量化移植,整个开发流程使用多个深度学习框架。其中,主算法基于MXNet开发,并将其转换为Pytorch和caffe模型与公网进行对比。由于嵌入式平台转换工具仅支持对caffe模型,最终的算法模型转换为caffemodel,以进行量化并移植到嵌入式平台。
硬件方面,算法训练以及线上测试基于搭载4块GTX2080Ti GPU的linux服务器,单块GPU显存为12 G,单次迭代可支持32张图像同时计算,最佳模型训练时间约10天,共进行50个epoch的反向迭代。
值得一提的是,先前的工作[19]已经为本研究提供了成熟的数据集用于训练和测试。经过各种策略的数据增强,最终参与训练的正样本图像超过60万张,测试集超过4000张。
训练参数方面,分类模型及骨干网络预训练模型的基础学习率为0.1,并采用多步数策略进行阶梯衰减。反向优化算法使用SGD(随机梯度下降)进行参数优化,而损失函数仍然使用常用的Softmax损失进行梯度更新。最终的检测模型,训练基于骨干网络的预训练模型,基础学习率为0.01,衰减策略以及反向优化算法同分类模型,损失函数类似SSD算法,每个锚点配置16个anchor框进而采用平滑的交叉熵损失函数进行梯度计算,但改进IoU计算为GIoU。
另外,实验中涉及多个评估指标。分类模型使用top1和top5准确率来评价模型,分别指预测分数最高的类型的精确度和预测分数前5项中包含准确类型的精确度。检测模型方面,统计召回率(recall)与准确率(precision),前者表示预测出的准确目标数在所有准确目标数中的占比,后者表示预测出的准确目标数在所有预测目标数(包含误检)中的占比。与其它优秀模型的比对中使用了AP(average precision)值(平均准确率)进行评估,而AP值即为P-R(准确率与召回率)曲线所围面积。
2.2 骨干网络
在图2的基础上,增加了一个全局池化层、全连接层以及Softmax层以组成基本分类网络,然后进行实验测试。由于骨干网络是重新设计的轻量网络,故在ImageNet超大型数据集进行训练及测试,并对比当前的先进轻量网络进行对比。测试结果见表1。
表1 ImageNet测试集测试结果
从表1结果中可以看出,骨干网络在计算量和参数量上具有无可比拟的优势,这对后续移动端应用来说诱惑巨大。同时,虽然在top1上略弱于先进网络,但在top5精度上差距大幅缩小。
2.3 消融实验
为了验证在训练阶段采取的各种策略的有效性,以不同策略为变量进行了训练及测试。通过损失函数的收敛曲线(如图4所示)和测试结果(见表2)反映各模块差异。
图4 不同策略的训练loss收敛曲线
图中A~G各字母与表2中相互对应。可以看出完整的训练策略能收敛的最好。
表2 各种策略的消融实验测试结果
从表2中结果可以看出,置信度预测和位置预测以双分支结构以及上下文模块均对提升网络精度有益,尤其是上下文模块更为显著,这更有利于实际应用。而空洞卷积表现为带来更好的召回和准确率,这是由于精确的感受野提升了小目标定位的准确性,虽然在数据集上这种表现较为轻微,但实际应用中可能会带来良好的定位体验。
网络训练的输入上,利用随机裁剪截取正方形区域对比强行形变输入网络能够避免图像形变带来的坏处。从测试结果看,这种输入方式能够有效提升召回率,但是测试图像时需要对尺度不一的数据集利用pad归一化到网络输入的宽高比。
在训练数据集处理策略上,利用mosaic拼接训练图像理论上对小目标更有益,从测试结果看能够带来更好的召回率。见表3,将测试集限定不同最小宽高分块测试可以看出,提升的召回率主要的贡献来自小目标。另外,对训练集进行多次的随机数据增强能够带来更好的鲁棒性,召回率和准确率均有一定的提升,并且在实际场景测试中能够适应复杂的背景。
表3 对目标大小分区间的测试结果
2.4 与先进网络的对比
为了验证提出的超轻量检测器与先进通用目标检测器的性能差距,选用先进的开源项目在所使用的数据集中按照原始最优参数进行训练和测试,并将结果予以汇总。所有的测试结果以及效能数据统计在表4中,测试集结果统计AP。
表4 与先进公开网络算法的对比结果
通过与先进网络的对比结果可以看出,虽然原始的超轻量检测器AP拥有一定的劣势,但在计算量和网络参数大小上拥有无可比拟的优势,并且能够带来极快的运行速度。另外,对比先进网络的轻量版本(如mnet-retinaface),提出的超轻量检测器能够产生压倒性的优势。正是由于提出检测器的超轻量特性,而能够在实际应用中可能产生问题时拥有更多的操作空间,例如通过平铺固定大小的感兴趣区域来多次运行同一张图像的不同区域,最终将每个区域的结果汇总。这种策略仅仅需要牺牲一定的运行速度而带来巨大的结果收益。在内存紧张的移动端平台中,这种方法显得难能可贵。表4中Ours+,AP值能够直接媲美大型先进网络,虽然由于多次运行造成了模型的重复计算和运行速率的成倍增长,但最重要的优势是它能为移动平台节省大量的内存使用。如图5所示,具体比对了超轻量网络在实际航空图像中的侦测结果。
图5 与部分先进算法的仿真测试对比
2.5 嵌入式平台的应用
为了验证超轻量网络的实用性,将提出的超轻量检测网络迁移至嵌入式平台进行验证。使用Novatek公司开发的嵌入式平台,型号为NT9852x,如图6所示。该平台采用两组FPGA实现CNN硬件计算,并采用cpu实现后处理运算。首先使用特定工具对训练得到的浮点模型进行12 bit量化,量化后迁移至配套SDK进行算法实现。
图6 使用的嵌入式平台开发板
另外,为了验证提出的超轻量网络在移动端平台对先进网络的巨大实际应用优势,同步迁移了一些平台可以支持的先进网络进行具体实验对比,评测指标包括耗时(帧率)、量化后模型大小、内存使用量和量化模型数据集精度以直观看出优略。测试结果见表5。
从表5中可以看出,提出的超轻量网络在模型大小、帧率以及内存占用指标上优势巨大。先进网络YOLOv4的帧率不足5 fps,如不搭配辅助算法(如目标跟踪)则会造成目标延迟严重而无法实际使用,同时会占用巨大的内存而大幅增加开发成本。如采用ROI平铺的方式进行评测,提出的超轻量网络仅仅会多占用少许内存用于存放裁剪出的感兴趣区域,而帧率理论上会增加4倍,但由于超轻量网络本身的超快速度,仍然可以实现超过7 fps的侦测速率。同时,采用ROI方式可以大幅提升AP值并超过先进的网络1。如图7所示,显示了提出的超轻量网络在嵌入式平台端的实际效果(通过YUV420图像输入测试)。
表5 嵌入式平台测试结果
图7 移动平台的图像仿真结果
3 结束语
针对航空影像船只目标侦测任务中难以平衡精度和速度的难点,提出了一种超轻量的目标侦测网络以解决此问题。网络吸收了众多先进策略以提升测试精度,极其轻量CNN骨干网络大幅缩减了计算量和参数量以提升运算速度,融合的检测头设计提升网络的鲁棒性,结合先进的训练阶段数据预处理增强方法提高了目标细节特征的获取能力进而提升了侦测精度,而平铺感兴趣区域的侦测策略为网络的特殊场景实际应用提供了更广泛的选择性。这些策略的融合促进了精度与速度的平衡,并利用嵌入式平台实现算法的移动端应用,验证了提出算法的先进性和实用性。