将 COCO 数据集转换为 VOC 数据集

要开始比较大规模跑数据了。在 VOC 上面已经能各种玩花了,老师说:换成 COCO 试试?

于是就开始苦逼地换数据集……

在改数据接口无果地情况下,只好将 COCO 转换成 VOC 的格式了。

代码思想很简单: 搞个一层的树:

  1. 获取所有 Image 信息,当作第一层节点
  2. 获取所有 BoundingBox 信息,当作叶子节点,插入到对应的 Image 节点中

COCO 的数据格式 组织得很清晰。我们只要拿到图片,然后将 bounding box 与 image 对应起来就好了。之间的纽带是 image id。

于是,凭着「一切从简」的原则,有了下面的这些代码:

和其他人的代码比起来,除了不用自己 create xml node 之外,除了更加简洁之外,没啥亮点了。

还有一个小 bug,如果 objects 是空的,那么会导 xml 里面没有 object 节点。试了没修好,自己加个判断吧/逃

参考资料

《将 COCO 数据集转换为 VOC 数据集》有2条评论

  1. 你好,想问一下您是把验证集当做测试集了吗,还有最后让加个判断是什么意思呢

    回复
    • 对于自己来说:
      – 官方的训练集 = 自己的训练集+自己的验证集
      – 官方的验证集 = 自己的测试集
      – 官方的测试集 = 完全的未知领域,完全不受管控地跑模型

      对于官方来说
      – 给你的训练集 = 有标注的数据
      – 给你的验证集 = 有标注的另一部分数据
      – 给你的测试集 = 给你发的期末考试卷,标准答案只有官方自己知道

发表评论