首页 PaddleCV 帖子详情
目标检测倾斜标注框如何处理?
收藏
快速回复
PaddleCV 问答目标检测 7194 51
目标检测倾斜标注框如何处理?
收藏
快速回复
PaddleCV 问答目标检测 7194 51

在目标检测数据处理阶段就遇到难题,需要把txt格式的数据转换成VOC或者COCO格式的数据。

我拿到的txt文件格式是这样子的  cls  x1  y1  x2  y2  x3  y3  x4  y4   

不过VOC格式的数据标注为 xmin、ymin、xmax、ymax  这意味着VOC格式数据的标注框一定是水平的矩形框,可能讲不明白,我画了一张图

如果是八个点的txt格式文件可以做到倾斜,但是四个点(xmin、ymin、xmax、ymax)的只能水平。还有一个COCO格式的数据格式,如果我没理解错的话应该是和四个点的类似,只是我没法理解bbox的四个值代表着什么呢?

对了,之所以用这两个(VOC和COCO)格式数据是因为PaddleDetection这么要求的~~第一次接触目标检测,可能有很多地方没有表达清楚。期待大佬解答一下,瑞斯拜!

0
收藏
回复
全部评论(51)
时间顺序
thinc
#2 回复于2020-10

或者换句话说, 我应该怎么处理我的txt数据呢

0
回复
AIStudio810260
#3 回复于2020-10

这种倾斜框不是很容易就能改成标准形式么?而且和anchor free里面的CornerNet形式很类似。。。

0
回复
AIStudio810260
#4 回复于2020-10

第二张图看起来是【x,y,w,h】形式啊,不过不管是哪种形式,PaddleDetection都能用的,默认是[x,y,w,h],如果是另一种,在config文件里打开

!BboxXYXY2XYWH

的开关就是了

0
回复
AIStudio810260
#5 回复于2020-10

框的介绍可以看:https://aistudio.baidu.com/aistudio/projectdetail/246941

这个项目,虽然看课程或者PaddleDetection文档会更全点……

0
回复
AIStudio810258
#6 回复于2020-10

我记得paddledetection,设置里可以选择数据格式是voc还是coco

0
回复
AIStudio810258
#7 回复于2020-10

用自己格式的数据集,就要重载数据读取函数

0
回复
AIStudio810258
#8 回复于2020-10

这里就有讲数据处理,包括如何修改Reader模块

https://paddledetection.readthedocs.io/tutorials/Custom_DataSet.html

看看有没帮助

0
回复
AIStudio810258
#9 回复于2020-10

我还是头次了解检测还有用倾斜标注框的,听听大佬们的间接吧

0
回复
AIStudio810258
#10 回复于2020-10

为什么用倾斜框标注数据?意义何在?我理解目标检测的loss函数只能处理标准的矩形框。回归不出来不规则的四边形吧

0
回复
AIStudio810258
#11 回复于2020-10

我推测这四个点的标注信息还是要转换成标准的矩形框使用吧,就是这四个点的外接矩形

0
回复
AIStudio810258
#12 回复于2020-10

x1  y1  x2  y2  x3  y3  x4  y4 重新配对就行了吧

0
回复
m
mar836924042
#13 回复于2020-10

COCO数据集里bbox:[163, 189, 12, 10]分别对应[x, y, width, height]。(x,y)是最左上角坐标,(width, height)对应标注框大小。。所以我觉得你读取斜框八个点的坐标,重新计算得到一个包含斜框的正矩形框坐标,再另外保存作为标签来用就可以了。

0
回复
AIStudio810260
#14 回复于2020-10

其实输入的处理都还好……要是输出的标注也要是倾斜框就……2333

0
回复
AIStudio810258
#15 回复于2020-10
其实输入的处理都还好……要是输出的标注也要是倾斜框就……2333

那就得边缘检测了吧

0
回复
AIStudio810258
#16 回复于2020-10
那就得边缘检测了吧

有背景的就麻烦了,难道还要用带注意力的边缘检测~~

0
回复
thinc
#17 回复于2020-10
其实输入的处理都还好……要是输出的标注也要是倾斜框就……2333

就是需要输出倾斜的标注框。。。

0
回复
thinc
#18 回复于2020-10
我记得paddledetection,设置里可以选择数据格式是voc还是coco

这两个数据格式都是水平框,没法处理第二种倾斜框

0
回复
thinc
#19 回复于2020-10
COCO数据集里bbox:[163, 189, 12, 10]分别对应[x, y, width, height]。(x,y)是最左上角坐标,(width, height)对应标注框大小。。所以我觉得你读取斜框八个点的坐标,重新计算得到一个包含斜框的正矩形框坐标,再另外保存作为标签来用就可以了。
展开

感谢bbox的介绍,我怕如果将斜框转换成水平框后area会变大,最后计算IoU时会不会有很多空间浪费,造成IoU值变小

0
回复
thinc
#20 回复于2020-10

交文件格式要求
每一行包含 name cls conf x1 y1 x2 y2 x3 y3 x4 y4 共十一个
参 数 , 预 测 对 象 个 数 对 应 行 数 。

 

上面是提交格式的要求~~~这应该就是八个点的那种吧......

0
回复
AIStudio810260
#21 回复于2020-10
thinc #20
交文件格式要求 每一行包含 name cls conf x1 y1 x2 y2 x3 y3 x4 y4 共十一个 参 数 , 预 测 对 象 个 数 对 应 行 数 。   上面是提交格式的要求~~~这应该就是八个点的那种吧......
展开

感觉如果要用PaddleDetection的话,这样只能改数据处理的源代码了……

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户