RSDD数据集标注读取
RSDD是一个公开的SAR舰船斜框检测数据集(RSDD-SAR)1,论文中说其标注格式为:
即[2]中所说的旋转框的长边定义法
D
l
e
D_{le}
Dle,mmrotate社区以
l
e
90
le90
le90表示。
现采用mmrotate的main分支中tools工具箱misc中的browse_dataset.py函数来验证。(mmrotate的dev1.x分支这个函数没有了,后续我将上传自己实现的版本)
首先原来的mmrotate的main分支中并没有关于RSDD数据集的定义函数以及对应的配置文件,这两个文件在我fork的项目中给予了复现,定义函数以及对应的配置文件。
这里给出分析结果贴图,左边的调试窗口显示了读取到的旋转框信息,中间是原图片对应的标注文件部分的截图,可以看到是一一对应的,所以读取标注文件成功。
这里为了方便逐个旋转框验证,稍微修改了原mmrotate的main分支tools工具箱misc中的browse_dataset.py函数,修改后的文件参见链接。可以看到标注和实际显示的是一个垂直关系。这就导致了在RSDD数据集上进行检测,其检测性能一直不能提高,网络不能得到较好的训练。
这是mmrotate.core.visualization.image.draw_rbboxes中的绘图逻辑:
与关于旋转框定义的一些理解和感想中描述的关于顺时针旋转的公式相一致。对比后发现,该函数输入参数
(
c
x
,
c
y
,
w
,
h
,
θ
)
(cx,cy,w,h,\theta)
(cx,cy,w,h,θ)中,
θ
\theta
θ是以第三个参数
w
w
w为基准计算旋转后点坐标的,而在长边定义法
D
l
e
D_{le}
Dle系列中,旋转角度是基于长边论述的,所以在读取数据集文件调用相关函数时,输入参数
(
c
x
,
c
y
,
w
,
h
,
θ
)
(cx,cy,w,h,\theta)
(cx,cy,w,h,θ)中的第三个参数
w
w
w为长边而非标注文件中写明width的参数。
徐从安, 苏航, 李健伟, 等. RSDD-SAR:SAR舰船斜框检测数据集[J]. 雷达学报, ↩︎