得到coco格式的数据集
虽然网上有一些对代码的结构说明或详细说明,但是很难看明白。我觉得还是把代码进行debug,在debug的过程中结合网上的说明一起看效果比较好。既然要debug,那么肯定要有相应格式的数据使得程序能够完整的运行。只是debug的话可以不需要下载所有的coco数据,找一些手头已经有的数据并将其转换成coco格式的数据。因为我之前下载了voc的数据,所以这里选择把voc的数据转换成coco格式的数据。
我主要参考下面网址的这个,里面详细介绍了voc格式的表示和coco数据的表示,还有voc转成coco的代码。两种格式的表示这里就不记录了,记录一下转换代码的大概思路。
https://www.cnblogs.com/marsggbo/p/11152462.html
里面的代码关于对于xml文件的寻找的一行代码稍微有点问题,没有加后缀,修改后的代码如下所示:
xml_f = os.path.join(xml_dir, line+".xml")
后来又发现一个关于目标种类id的一个需要注意的地方
PRE_DEFINE_CATEGORIES = {}
这段代码在空字典里面加上目标类别和对应的id,不然id会从0开始,而0被默认为是背景的id。
另外,运行该代码的命令行为:
python voc2coco.py "/home/wt/data/voc/VOCdevkit/VOC2007/ImageSets/Layout/voc2coco_test.txt" "/home/wt/data/voc/VOCdevkit/VOC2007/Annotations" "/home/wt/data/coco/annotations/debug.json"
第一个字符串是voc数据集需要转换的图像名字的txt,就是voc数据集ImageSets下的文件。第二个字符串是voc数据集注释文件的文件夹。第三个文件夹是自己建立的空.json文件的路径。空json的建立是直接新建空白文档,将后缀改成.json。
我下载的voc是.tar的压缩数据包,解压到当前文件夹下的代码是:
tar –xvf file.ta
转换后的.json需要查看一下,需要下载相应的工具。
安装工具jq
sudo apt-get install jq
查看json文件
cat activity_net.v1-3.min.json|jq
现在不想一点一点的看json文件,想先进行debug,发现相关问题的话再看该文件。