目标检测倾斜标注框如何处理?
收藏
在目标检测数据处理阶段就遇到难题,需要把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
收藏
或者换句话说, 我应该怎么处理我的txt数据呢
这种倾斜框不是很容易就能改成标准形式么?而且和anchor free里面的CornerNet形式很类似。。。
第二张图看起来是【x,y,w,h】形式啊,不过不管是哪种形式,PaddleDetection都能用的,默认是[x,y,w,h],如果是另一种,在config文件里打开
的开关就是了
框的介绍可以看:https://aistudio.baidu.com/aistudio/projectdetail/246941
这个项目,虽然看课程或者PaddleDetection文档会更全点……
我记得paddledetection,设置里可以选择数据格式是voc还是coco
用自己格式的数据集,就要重载数据读取函数
这里就有讲数据处理,包括如何修改Reader模块
https://paddledetection.readthedocs.io/tutorials/Custom_DataSet.html
看看有没帮助
我还是头次了解检测还有用倾斜标注框的,听听大佬们的间接吧
为什么用倾斜框标注数据?意义何在?我理解目标检测的loss函数只能处理标准的矩形框。回归不出来不规则的四边形吧
我推测这四个点的标注信息还是要转换成标准的矩形框使用吧,就是这四个点的外接矩形
x1 y1 x2 y2 x3 y3 x4 y4 重新配对就行了吧
COCO数据集里bbox:[163, 189, 12, 10]分别对应[x, y, width, height]。(x,y)是最左上角坐标,(width, height)对应标注框大小。。所以我觉得你读取斜框八个点的坐标,重新计算得到一个包含斜框的正矩形框坐标,再另外保存作为标签来用就可以了。
其实输入的处理都还好……要是输出的标注也要是倾斜框就……2333
那就得边缘检测了吧
有背景的就麻烦了,难道还要用带注意力的边缘检测~~
就是需要输出倾斜的标注框。。。
这两个数据格式都是水平框,没法处理第二种倾斜框
感谢bbox的介绍,我怕如果将斜框转换成水平框后area会变大,最后计算IoU时会不会有很多空间浪费,造成IoU值变小
交文件格式要求
每一行包含 name cls conf x1 y1 x2 y2 x3 y3 x4 y4 共十一个
参 数 , 预 测 对 象 个 数 对 应 行 数 。
上面是提交格式的要求~~~这应该就是八个点的那种吧......
感觉如果要用PaddleDetection的话,这样只能改数据处理的源代码了……