.json批量转为.xml时ValueError: With n_samples=0,test_size=0.15and train_size=None的解决方法

今天在做目标检测时,需要把.json批量转为.xml(VOC2007数据集格式),代码参考的是下面这篇文章

Labelme标注的json文件转成xml文件(voc2007所需格式)

把原代码中labelme_path和saved_path换成自己的文件路径就可以成功转格式了,原博代码很清晰,提供的代码转格式转得很成功

但在运行到划分文件这部分代码时出现了一个错误,ValueError: With n_samples=0, test_size=0.15 and train_size=None, the resulting train set will be empty.

见下图

在网上搜了下都说是sklearn版本太高(我这里的版本是0.24.0),要降成0.19.1,经查看train_test_split( )的函数说明,这个错误和版本没关系。

主要错误是输入的total_files变量为空,长度为0,所以报错。

然后找到total_files最开始定义的位置

原博第98行

total_files = glob("./VOC2007/Annotations/*.xml")

"./VOC2007/Annotations/*.xml"的“.”指的是当前程序代码所在目录,我的目标保存文件夹VOC2007不在这个路径下,所以total_files是空的。将这行改为

total_files = glob(saved_path + "Annotations/*.xml")

问题解决

还需要注意检验是否转换成功和是否准确的步骤

  1. 打开labelImg软件
  2. 点击Change Save Dir,选择标注文件所在文件夹Annatations
  3. 点击Open Dir,选择图片所在文件夹JPEGImages
  4. 点击Next Image,一个一个查看,是否标注正确
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值