将图像注释格式转换为用于 tensorflow 对象检测的 tfrecords api
Conversion of image annotation formats into tfrecords for tensorflow object detection api
寻求有关用于对象检测的图像注释格式的帮助API。
- Foreknow:
因为,我们知道图像有两种注释格式,Pascal VOC 和 COCO 格式。两者都有自己的规范,这是两者之间的主要区别:
帕斯卡挥发性有机化合物:
- 以 .xml 文件格式存储注释。
- 边界框格式 [x-左上、y-左上、x-右下、y-下右]
- 为数据集中的每个图像创建单独的 xml 注释文件。
可可:
- 以 .json 文件格式存储注释。
- 边界框格式[x-左上角,y-左上角,宽度,高度]。
- 为每个训练、测试和验证创建一个注释文件。
- Current-issue:
我有两个数据集要处理,这就是它们的注释方式。
数据集-1:
- 文件格式:Pascal VOC(.xml)
- 边界框格式:COCO。
- 文件创建:与 Pascal VOC 一样(数据集中每个图像的单独 xml 注释文件)。
数据集 2:
- 文件格式:Pascal VOC(.xml)
- 边界框格式:COCO。
- 文件创建:与COCO一样(为每个训练、测试和验证创建一个注释文件)
我无法通过的是我应该遵循哪种格式(Pascal VOC 或 COCO)将我的注释转换为 Tfrecords(.xml 到 .records),因为使用可以看到数据集的注释不完全属于任何一种格式。
例如,在this link中,作者写了一个脚本将.xml转换成.records,但这里它处理的是纯pascal VOC格式。
并且在 this link 他们正在处理纯 COCO 注释格式。
站在两种格式的中间,我应该走哪条路?
Which path should I follow as I am standing in the middle of both formats?
使用 Pascal VOC 格式将 .xml 转换为 .records。
- 的
create_tf_example
函数中进行以下更改
for index, row in group.TextLine.iterrows():
xmin.append(row['X']/imgwidth)
xmax.append((row['X']+row['Width'])/imgwidth)
ymin.append(row['Y']/imgheight)
ymax.append((row['Y']+row['Height'])/imgheight)
classes_text.append(row['class'].encode('utf8'))
classes.append(class_text_to_int(row['class']))'
如果您的 .xml 注释中有 X、Y、宽度、高度,而不是 xmin、ymin、xmax、ymax。
寻求有关用于对象检测的图像注释格式的帮助API。
- Foreknow:
因为,我们知道图像有两种注释格式,Pascal VOC 和 COCO 格式。两者都有自己的规范,这是两者之间的主要区别:
帕斯卡挥发性有机化合物:
- 以 .xml 文件格式存储注释。
- 边界框格式 [x-左上、y-左上、x-右下、y-下右]
- 为数据集中的每个图像创建单独的 xml 注释文件。
可可:
- 以 .json 文件格式存储注释。
- 边界框格式[x-左上角,y-左上角,宽度,高度]。
- 为每个训练、测试和验证创建一个注释文件。
- Current-issue:
我有两个数据集要处理,这就是它们的注释方式。
数据集-1:
- 文件格式:Pascal VOC(.xml)
- 边界框格式:COCO。
- 文件创建:与 Pascal VOC 一样(数据集中每个图像的单独 xml 注释文件)。
数据集 2:
- 文件格式:Pascal VOC(.xml)
- 边界框格式:COCO。
- 文件创建:与COCO一样(为每个训练、测试和验证创建一个注释文件)
我无法通过的是我应该遵循哪种格式(Pascal VOC 或 COCO)将我的注释转换为 Tfrecords(.xml 到 .records),因为使用可以看到数据集的注释不完全属于任何一种格式。
例如,在this link中,作者写了一个脚本将.xml转换成.records,但这里它处理的是纯pascal VOC格式。
并且在 this link 他们正在处理纯 COCO 注释格式。
站在两种格式的中间,我应该走哪条路?
Which path should I follow as I am standing in the middle of both formats?
使用 Pascal VOC 格式将 .xml 转换为 .records。
- 的
create_tf_example
函数中进行以下更改for index, row in group.TextLine.iterrows(): xmin.append(row['X']/imgwidth) xmax.append((row['X']+row['Width'])/imgwidth) ymin.append(row['Y']/imgheight) ymax.append((row['Y']+row['Height'])/imgheight) classes_text.append(row['class'].encode('utf8')) classes.append(class_text_to_int(row['class']))'
如果您的 .xml 注释中有 X、Y、宽度、高度,而不是 xmin、ymin、xmax、ymax。