未验证 提交 da57ee26 编写于 作者: G Guanghua Yu 提交者: GitHub

enhance voc to coco docs (#1649)

* enhance voc to coco docs

* fix voc annotation float type
上级 83b7a748
...@@ -29,6 +29,17 @@ python tools/x2coco.py \ ...@@ -29,6 +29,17 @@ python tools/x2coco.py \
--val_proportion 0.2 \ --val_proportion 0.2 \
--test_proportion 0.0 --test_proportion 0.0
``` ```
**参数说明:**
- `--dataset_type`:需要转换的数据格式,目前支持:’voc‘、’labelme‘和’cityscape‘
- `--json_input_dir`:使用labelme标注的json文件所在文件夹
- `--image_input_dir`:图像文件所在文件夹
- `--output_dir`:转换后的COCO格式数据集存放位置
- `--train_proportion`:标注数据中用于train的比例
- `--val_proportion`:标注数据中用于validation的比例
- `--test_proportion`:标注数据中用于infer的比例
(2)voc数据转换为COCO格式: (2)voc数据转换为COCO格式:
```bash ```bash
python tools/x2coco.py \ python tools/x2coco.py \
...@@ -41,17 +52,35 @@ python tools/x2coco.py \ ...@@ -41,17 +52,35 @@ python tools/x2coco.py \
**参数说明:** **参数说明:**
- `--dataset_type`:需要转换的数据格式,目前支持:’voc‘、’labelme‘和’cityscape‘ - `--dataset_type`:需要转换的数据格式,当前数据集是voc格式时,指定’voc‘即可。
- `--json_input_dir`:使用labelme标注的json文件所在文件夹 - `--voc_anno_dir`:VOC数据转换为COCO数据集时的voc数据集标注文件路径。
- `--image_input_dir`:图像文件所在文件夹 例如:
- `--output_dir`:转换后的COCO格式数据集存放位置 ```
- `--train_proportion`:标注数据中用于train的比例 ├──Annotations/
- `--val_proportion`:标注数据中用于validation的比例 ├── 009881.xml
- `--test_proportion`:标注数据中用于infer的比例 ├── 009882.xml
- `--voc_anno_dir`:VOC数据转换为COCO数据集时的voc数据集标注文件路径 ├── 009886.xml
- `--voc_anno_list`:VOC数据转换为COCO数据集时的标注列表文件,一般是`ImageSets/Main`下trainval.txt和test.txt文件 ...
- `--voc_label_list`:VOC数据转换为COCO数据集时的类别列表文件,文件中每一行表示一种物体类别 ```
- `--voc_out_name`:VOC数据转换为COCO数据集时的输出的COCO数据集格式json文件名 - `--voc_anno_list`:VOC数据转换为COCO数据集时的标注列表文件,文件中是文件名前缀列表,一般是`ImageSets/Main`下trainval.txt和test.txt文件。
例如:trainval.txt里的内容如下:
```
009881
009882
009886
...
```
- `--voc_label_list`:VOC数据转换为COCO数据集时的类别列表文件,文件中每一行表示一种物体类别。
例如:label_list.txt里的内容如下:
```
background
aeroplane
bicycle
...
```
- `--voc_out_name`:VOC数据转换为COCO数据集时的输出的COCO数据集格式json文件名。
### 方式二:将数据集转换为VOC格式 ### 方式二:将数据集转换为VOC格式
......
...@@ -216,8 +216,8 @@ def voc_get_image_info(annotation_root, im_id): ...@@ -216,8 +216,8 @@ def voc_get_image_info(annotation_root, im_id):
img_name = os.path.basename(filename) img_name = os.path.basename(filename)
size = annotation_root.find('size') size = annotation_root.find('size')
width = int(size.findtext('width')) width = float(size.findtext('width'))
height = int(size.findtext('height')) height = float(size.findtext('height'))
image_info = { image_info = {
'file_name': filename, 'file_name': filename,
...@@ -233,10 +233,10 @@ def voc_get_coco_annotation(obj, label2id): ...@@ -233,10 +233,10 @@ def voc_get_coco_annotation(obj, label2id):
assert label in label2id, "label is not in label2id." assert label in label2id, "label is not in label2id."
category_id = label2id[label] category_id = label2id[label]
bndbox = obj.find('bndbox') bndbox = obj.find('bndbox')
xmin = int(bndbox.findtext('xmin')) - 1 xmin = float(bndbox.findtext('xmin')) - 1
ymin = int(bndbox.findtext('ymin')) - 1 ymin = float(bndbox.findtext('ymin')) - 1
xmax = int(bndbox.findtext('xmax')) xmax = float(bndbox.findtext('xmax'))
ymax = int(bndbox.findtext('ymax')) ymax = float(bndbox.findtext('ymax'))
assert xmax > xmin and ymax > ymin, "Box size error." assert xmax > xmin and ymax > ymin, "Box size error."
o_width = xmax - xmin o_width = xmax - xmin
o_height = ymax - ymin o_height = ymax - ymin
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册