论文地址:https://arxiv.org/abs/2108.02092
目标:
在无人机飞行过程中捕获的背景杂乱的画面中检测其他无人机
挑战:
- 任意的移动(相机移动,目标也移动)
- 小尺寸,只占画面像素的0.05%~0.07%(PASCAL VOC (22.62%) and ImageNet (19.94%))
- 形状变换(拍摄角度不同,拍摄的无人机形状不同)
- 遮挡
基于region-proposal的方法无法捕捉到有足够区分力前景背景信息。
由于目标尺寸非常小,且具有复杂的移动特性,基于feature aggregation的方法表现也不好。
解决方案:
采用设计了两阶段的方法,并且引入了spatio-temporal attention。
第一阶段:针对每帧进行目标检测
分割网络,对无人机进行检测定位
(1)原始图像如果resize成小尺寸,则无人机可能只占1~2像素,严重影响检出。因此将图像切分成若干有重叠的区域(overlapping frame regions),每个区域都经过深度残差网络获取特征图
(2)为保持局部信息,对resnet50进行修改。
提取resnet的4个block的特征,并进行拼接(resize到统一尺度),最后用1X1的卷积压缩到原始特征尺度。
然后采用金字塔池化生成4个不同分辨率的特征图,再通过上采样后进行拼接。
然后使用channel-wise attention和pixel-wise attention来提升无人机定位准确度。
channel-wise attention:
目的是给不同的channel分配权重,提取有价值的channel,抑制无价值的channel。
最终attention vector与卷积得到的特征层(channels=512)进行乘积运算。
pixel-wise attention:
目的是给重要的位置更高的权重,给没有目标的区域更小的权重。
pixel-wise attention网络得到的是pixel-wise mask,mask与conv feature之间进行element-wise乘积。
pixel-wise可视化效果(提取的是哪层的feature map?)
Loss
无人机检测问题:
- 数据集存在严重的正负样本不均衡问题。
- 目标很小,检测结果偏差1~2个像素都有可能导致IOU<0.5
方案:
focal loss + Distance-IOU + smooth-L1
focal loss : 解决样本不均衡
Distance-IOU: 不仅能够最小化检测结果与GT之间的IOU,同时优化两个box之间的中心距离。
smooth-L1: 用于训练pixel-wise注意力网络。
第二阶段:利用时空信息调优
refine第一阶段检测结果,并且尝试发掘漏检的无人机。
使用移动边界来发掘新的无人机位置。
使用前后N帧画面,对检出的结果进行跟踪
然后从这些跟踪结果中提取cuboid,送入3D卷积神经网络来提取时空特征。
使用pixel-wise attention和channel-wise attention来加强特征图来提升无人机定位准确度。
Motion boundaries
由于移动信息包含了相机移动和目标移动,简单的光流不够有效,本文使用光流梯度捕获移动信息。
给定3帧相邻的图像,使用关键点检测以及前向光流和后向光流,然后最大化3帧的移动梯度
该方法的问题:
检出最大边界响应,不能全部覆盖无人机
由于光流计算的潜在近似性,光流梯度幅值的最大值与移动无人机不完全匹配
为了解决这个问题,本文扩展了运动边界,然后使用条件随机获取更好的候选位置。
Cuboids formation
已经通过stage-1获得了无人机候选区域,同时采用运动边界获得了新的候选区域,接下来从所有候选无人机位置中提取时空特征。
针对每个候选区域初始tracker,由于无人机目标小且还存在相机移动问题,可能在很短几帧内目标位置就出现明显偏移,因此设定轨迹长度为8帧。
跟踪策略是3帧前向,3帧后向。(Note that tracking is done after the motion stabilization of the corresponding eight frames)
为了上下文信息捕捉以及轨迹漂移补偿,针对每个跟踪目标从原始视频帧中提取N X N patches,组成N * N * 8的cuboid。
然后针对每个cuboid ,使用Inflated-3D网络提取时空特征(I3D具有快速,内存占用少,获取时空信息的能力强等特点)
为了与标准的I3D输入尺寸保持一致,把N*N*8 resize到224*224*8
在倒数第三层使用3D conv,得到14*14*480,然后采用线性插值resize到60*60*480(与stage1 resnet的输出保持一致)。
然后采用2D conv把维度调整为60*60*2048.(也尝试了超分辨率方法,但实验发现没有提升)
每个cubiod的时空卷积特征进行聚合,随后接入与stage-1相同的attention模块。
loss也与stage-1一致。
结果:
实施细节
stage-1:
NPS-Drones数据集:将每帧图片切分成9个overlapping patches
FL-Drones:将每帧图片切分成4个overlapping patches
end-to-end从零训练
stage-2
采用预训练的I3D网络
NPS-Drones数据集:cuboid中每个patch的尺寸为100*100
FL-Drones:cuboid中每个patch的尺寸由无人机目标的尺寸决定
Adam优化器
初始lr=0.001,无decay
采用最大最小尺寸阈值对候选框进行筛选
采用hard-negative mining
后处理阶段,移除值检测到一次的目标。
评估指标:
precision, recall, F1-score,AP
每帧图片作为独立的样本进行评估
数据集
NPS-Drones
50 videos, 分辨率(1920×1080 and 1280×760),采用GoPro-3采集
总画面帧数为:70250
画面中无人机尺寸:最小(10 × 8),平均( 16.2 × 11.6), and最大( 65 × 21)
和FL-Drones
前40个视频为训练集,最后10个位测试集
FL-Drones:
这个数据集难度更大,因为目标存在极端遮挡,更多的姿态和尺寸变化,包含室内和室外样本
14 videos, 分辨率(640×480 and 752×480)
总画面帧数为:38948
画面中无人机尺寸:最小(9 × 9),平均( 25.5 × 16.4), and最大( 259 × 197)
一半用来训练,一半用来测试
由于这俩数据集中的标注框比实际目标大,作者对这两个数据集进行了重新标注。
与SOTA对比
参与对比的方法
- 全卷积一阶段的目标检测FCOS:fully convolutional one-stage object detector [36],
- 小目标检测器SCRDet: cluttered and rotated small object detector [42],
- 实例分割Mask-RCNN: instance segmentation [13],
- 视频目标检测MEGA, SLSA,video object detectors [7, 39].
baseline的方法都是使用开源的预训练模型,训练iterations在8W~10W之间,使用一个1080Ti训练。
消融试验ablation studies
第一行只是用cross-entropy loss
第二行结合了focal loss和distance-IOU
第三行使用了channel-wise attention
第四行使用了pixel-wise attention
最后两行是指只有一个阶段,和使用两个阶段
第二阶段能够发现识别困难的无人机
检测失败的case
总结评价:
本文设计了一个two-stage的方法对无人机飞行拍摄画面中的其他无人机进行检测。本文并没有使用region-proposal的方法,而是使用了基于分割的方法,并且加入了pixel and channel-wise attention来提高无人机检测定位精度。同时还是用了motion信息提高召回率。
整个方法的算法复杂度是很高的,主要在于:
(1)在stage-1阶段,每帧图片都要分成9patches or 4 patches,每个patch单独进行resnet50特征提取
(2)在stage-2阶段,每个目标生成一个N*N*8的cubiod,每个cubiod需要单独的I3D处理
(3)非end2end的方式
不过这个任务难度也是非常大,本文实现的效果已经非常理想了。