最近一个项目需要检测地物带方向的旋转框,于是看了下相关内容,用了R3Det和BBAVectors。这里做下记录。
旋转目标检测
- 定向包围框OBB(oriented bounding box),水平包围框HBB(horizontal bounding box)
- 旋转目标检测的挑战:目标纵横比较大 排列紧密,类别不平衡,目标比例差异,遥感图像目标的比例变化很大,传感器的空间分辨率
- 水平anchor高召回率,旋转anchor密集场景适应性
上面是三种OBB定义方式。(a) opencv定义法(90°-regression-based,[x,y,w,h,θ]):角度θ是指框与x轴所成的锐角,并且框的这条边记为w,另一条边记为h,因此角度的表示范围是[?90,0)。 (b) 长边定义法(180°-regression-based,[x,y,h,w,θ]):角度θ是指框的长边h与x轴所成的夹角,因此角度的表示范围是[?90,90)。? 有序四边形定义法(Point-based,
[
x
1
,
y
1
,
x
2
,
y
2
,
x
3
,
y
3
,
x
4
,
y
4
]
[x{1},y{1},x{2},y{2},x{3},y{3},x{4},y{4}]
[x1,y1,x2,y2,x3,y3,x4,y4] ):最左边的点(如果水平矩形的话有两个点满足取上面的那个)为起始点,逆时针排列。
R3Det
上交和旷世2019提出的旋转目标检测网络,有mmdetection版本 这是一个单阶段的目标检测网络。
1)RetinaNet
采用FPN作为backbone,提出focal loss来解决类别不平衡的问题,使用水平anchor,更快速的获得更多的proposals(后续refinement阶段使用refined旋转anchors以适应密集场景),回归时多了一个方向θ,共五个参数表示旋转框。由于倾斜交并比分数对角度很敏感,因此需要对预测框的精炼以提高旋转目标检测的召回率。
2)特征精炼模块
这个模块是为了重建特征图与框对齐,先双路卷积,再根据refined bboc的五个坐标双线性插值得到更精准的特征向量。遍历特征点后,将重建整个特征图。如下图所示。
BBAVectors
思路比较简单,先用CenterNet检测物体中心点,然后回归一个包围框的边缘感知向量(BBAVectors)来得到有方向的包围框。
CenterNet是一个Anchor-free的方法,U型结构,先ResNet卷积5次,在上采样,得到一个原始图像1/4大小的特征图。然后使用Heatmap用来定位关键点。这里,我们用来检测物体的中心点。Heatmap有k个通道,分别对应了不同类别的物体。Heatmap的每个像素点的值表示物体的置信度。然后在直接回归宽和高。那为什么不能直接回归旋转角θ呢,因为小的旋转可能对于loss来说微不足道,但会使IOU变化较大。于是本文设计了四个向量BBAVectors来描述包围框,这样就需要回归总计4*2+2=10维特征向量。
后面由于我们的任务不仅要得到OBB,还要得到车头的方向,于是在此基础上多回归了一个车头方向的向量,B=[t,r,b,l,w,h]变为B=[t,r,b,l,d,w,h],效果还不错。
|