Egrt / yolov7-obb

在YOLOv7的基础上使用KLD损失修改为旋转目标检测yolov7-obb

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

voc_annotation.py运行时报错AttributeError: 'NoneType' object has no attribute 'find'

Cindy233 opened this issue · comments

作者您好!我按要求把VOC2007的数据放在VOCdevkit根目录下。但是经过调试发现,voc_annotation.py的的第58行 xmlbox = obj.find('rotated_bndbox') 返回值为None,不知道是为什么呀?

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

b = (int(float(xmlbox.find('x1').text)), int(float(xmlbox.find('y1').text)),
int(float(xmlbox.find('x2').text)), int(float(xmlbox.find('y2').text)),
int(float(xmlbox.find('x3').text)), int(float(xmlbox.find('y3').text)),
int(float(xmlbox.find('x4').text)), int(float(xmlbox.find('y4').text))) 因为转换那边的代码长这样嘛,但是VOC格式的数据集里面只有xmin,xmax,ymin,ymax。而没有x1,x2,y1y2....什么的。我就很困惑呜呜

b = (int(float(xmlbox.find('x1').text)), int(float(xmlbox.find('y1').text)), int(float(xmlbox.find('x2').text)), int(float(xmlbox.find('y2').text)), int(float(xmlbox.find('x3').text)), int(float(xmlbox.find('y3').text)), int(float(xmlbox.find('x4').text)), int(float(xmlbox.find('y4').text))) 因为转换那边的代码长这样嘛,但是VOC格式的数据集里面只有xmin,xmax,ymin,ymax。而没有x1,x2,y1y2....什么的。我就很困惑呜呜

用的并不是VOC数据集,只是数据集符合VOC数据集的大致格式,本项目用的数据集已经给出。

我没有在readme文件里找到您给的VOC数据集的下载源,我在网上下到的VOC07+12就是VOC2007+VOC2012。不知道您是否方便提供一个您所使用的数据链接呀(除了SSDD之外的类似VOC的那个数据集)

oh 我看到了您放的百度网盘的链接,那是一个仅有ship的数据集。还想请问一下您该模型是否可以用自己标注的数据集呢?

oh 我看到了您放的百度网盘的链接,那是一个仅有ship的数据集。还想请问一下您该模型是否可以用自己标注的数据集呢?

当然可以,如果不符合当前的voc_annotation.py的格式,稍作修改就行,RoLabelimg、anylabeling等都支持旋转目标标注。

oh 我看到了您放的百度网盘的链接,那是一个仅有ship的数据集。还想请问一下您该模型是否可以用自己标注的数据集呢?

当然可以,如果不符合当前的voc_annotation.py的格式,稍作修改就行,RoLabelimg、anylabeling等都支持旋转目标标注。

请问roLabelimg标注的xml格式,和您数据集的xml格式还是有一定的区别,roLabelimg的xml里坐标是cx,cy,w,h,theta,您那个数据集里xml是(x1, y1, x2, y2, x3, y3, x4, y4, class_name),请问这两种之间转换的代码有吗?

Thank you for your good work.
I am also facing issues that current annotation in VOC has no information about rotated_bndbox, while only giving annotations about xmin,ymin, xmax, ymax. Can you share the annotation about VOC containing (x1,y1,x2,y2,x3,y3,x4,y4)?

@Cindy233 @Egrt 请问百度网盘的ship链接在哪里呀,我也是网上下载了VOC07+12数据出现同样的问题

oh 我看到了您放的百度网盘的链接,那是一个仅有ship的数据集。还想请问一下您该模型是否可以用自己标注的数据集呢?

当然可以,如果不符合当前的voc_annotation.py的格式,稍作修改就行,RoLabelimg、anylabeling等都支持旋转目标标注。

请问roLabelimg标注的xml格式,和您数据集的xml格式还是有一定的区别,roLabelimg的xml里坐标是cx,cy,w,h,theta,您那个数据集里xml是(x1, y1, x2, y2, x3, y3, x4, y4, class_name),请问这两种之间转换的代码有吗?

你好!!请问你数据集转换好了吗 这个代码可以测试自己的数据集吗 怎么转换成这个代码能运行的格式呀 有代码吗?

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn
嗯嗯是的 在csdn上找到了很多 但是格式转换后和博主的ssdd的数据集格式还是有些不一样 您运行数据集需要更改voc_annotation.py这个文件吗 不知道您还有没有印象

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn
嗯嗯是的 在csdn上找到了很多 但是格式转换后和博主的ssdd的数据集格式还是有些不一样 您运行数据集需要更改voc_annotation.py这个文件吗 不知道您还有没有印象

找一下转成这种格式的代码:(x1, y1, x2, y2, x3, y3, x4, y4, class_name),我找的可以

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn
嗯嗯是的 在csdn上找到了很多 但是格式转换后和博主的ssdd的数据集格式还是有些不一样 您运行数据集需要更改voc_annotation.py这个文件吗 不知道您还有没有印象

找一下转成这种格式的代码:(x1, y1, x2, y2, x3, y3, x4, y4, class_name),我找的可以

不知道您的代码还有吗 方不方便发给我一下

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn
嗯嗯是的 在csdn上找到了很多 但是格式转换后和博主的ssdd的数据集格式还是有些不一样 您运行数据集需要更改voc_annotation.py这个文件吗 不知道您还有没有印象

找一下转成这种格式的代码:(x1, y1, x2, y2, x3, y3, x4, y4, class_name),我找的可以

不知道您的代码还有吗 方不方便发给我一下

自己找一下吧

我查了一下,发现是因为它读取的是VOC数据集的xml文件,而VOC的xml文件里面的object元素没有"rotated_bndbox"属性,只有"bndbox"属性。于是乎我不知道怎么能通过这个voc_annotation.py把VOC格式的标签转成rotated框文件。我是VOC格式下载的数据集有问题吗?(就是说,这个代码好像不太符合我下下来的VOC数据集。)

你好!!请问你转换好数据集了吗 rolabelImg标注出来的数据集也不能在这个代码里面测试,还是要转换,您找到怎么转换的代码了吗

你好,网上找一下都可以找到的,比如csdn
嗯嗯是的 在csdn上找到了很多 但是格式转换后和博主的ssdd的数据集格式还是有些不一样 您运行数据集需要更改voc_annotation.py这个文件吗 不知道您还有没有印象

找一下转成这种格式的代码:(x1, y1, x2, y2, x3, y3, x4, y4, class_name),我找的可以

不知道您的代码还有吗 方不方便发给我一下

我就是chatgpt随便写了一个,按照我想要的格式改好了