diff --git a/docs/DATA.md b/docs/DATA.md index 7f67ac61cc8c2b01a403baa7e8f84b7be648ac4b..c47049b0a7c59d3db83bfaf7f839d6fa99b8880d 100644 --- a/docs/DATA.md +++ b/docs/DATA.md @@ -100,7 +100,7 @@ like dataset, run this command: # --annotation: the path of file, which contains the name of annotation files # --save-dir: the save path # --samples: the number of samples (default is -1, which mean all datas in dataset) -python ./tools/generate_data_for_training.py +python ./ppdet/data/tools/generate_data_for_training.py --type=json \ --annotation=./annotations/instances_val2017.json \ --save-dir=./roidb \ @@ -181,7 +181,7 @@ whole data pipeline is fully customizable through the yaml configuration files. ```sh # a small utility (`tools/labelme2coco.py`) is provided to convert # Labelme-annotated dataset to COCO format. - python ./tools/labelme2coco.py --json_input_dir ./labelme_annos/ + python ./ppdet/data/tools/labelme2coco.py --json_input_dir ./labelme_annos/ --image_input_dir ./labelme_imgs/ --output_dir ./cocome/ --train_proportion 0.8 diff --git a/docs/DATA_cn.md b/docs/DATA_cn.md index 6d00c5d09163135d693074bfb30e5187c028b19c..eff8b5489a2cdf9524473c563ce2d90ae9d9bd64 100644 --- a/docs/DATA_cn.md +++ b/docs/DATA_cn.md @@ -90,7 +90,7 @@ # --annotation: 一个包含所需标注文件名的文件的路径 # --save-dir: 保存路径 # --samples: sample的个数(默认是-1,代表使用所有sample) -python ./tools/generate_data_for_training.py +python ./ppdet/data/tools/generate_data_for_training.py --type=json \ --annotation=./annotations/instances_val2017.json \ --save-dir=./roidb \ @@ -168,7 +168,7 @@ coco = Reader(ccfg.DATA, ccfg.TRANSFORM, maxiter=-1) - 选择1:将数据集转换为VOC格式或者COCO格式。 ``` # 在./tools/中提供了labelme2coco.py用于将labelme标注的数据集转换为COCO数据集 - python ./tools/labelme2coco.py --json_input_dir ./labelme_annos/ + python ./ppdet/data/tools/labelme2coco.py --json_input_dir ./labelme_annos/ --image_input_dir ./labelme_imgs/ --output_dir ./cocome/ --train_proportion 0.8 diff --git a/docs/MODEL_ZOO.md b/docs/MODEL_ZOO.md index e3e60a2b3b0ff38b86d1c61c687795f613d593af..305f67c59f5eca14cce2516a949935d6804e44ba 100644 --- a/docs/MODEL_ZOO.md +++ b/docs/MODEL_ZOO.md @@ -80,6 +80,16 @@ The backbone models pretrained on ImageNet are available. All backbone models ar - `c3-c5` means adding `dcn` in resnet stage 3 to 5. - Detailed configuration file in [configs/dcn](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection/configs/dcn) +### Group Normalization +| Backbone | Type | Image/gpu | Lr schd | Box AP | Mask AP | Download | +| :------------------- | :------------- | :-----: | :-----: | :----: | :-----: | :----------------------------------------------------------: | +| ResNet50-FPN | Faster | 2 | 2x | 39.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_gn_2x.tar) | +| ResNet50-FPN | Mask | 1 | 2x | 40.1 | 35.8 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_gn_2x.tar) | + +#### Notes: +- Group Normalization reference from [Group Normalization](https://arxiv.org/abs/1803.08494). +- Detailed configuration file in [configs/gn](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection/configs/gn) + ### Yolo v3 | Backbone | Size | Image/gpu | Lr schd | Box AP | Download | diff --git a/docs/MODEL_ZOO_cn.md b/docs/MODEL_ZOO_cn.md index 20f9fb6a214b440ae401380d670dc980f15ad00f..57456b9f32c302f045752d8e54934ce20eeac1c3 100644 --- a/docs/MODEL_ZOO_cn.md +++ b/docs/MODEL_ZOO_cn.md @@ -80,6 +80,16 @@ Paddle提供基于ImageNet的骨架网络预训练模型。所有预训练模型 - `c3-c5`意思是在resnet模块的3到5阶段增加`dcn`. - 详细的配置文件在[configs/dcn](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection/configs/dcn) +### Group Normalization +| 骨架网络 | 网络类型 | 每张GPU图片个数 | 学习率策略 | Box AP | Mask AP | 下载 | +| :------------------- | :------------- |:--------: | :-----: | :----: | :-----: | :----------------------------------------------------------: | +| ResNet50-FPN | Faster | 2 | 2x | 39.7 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_gn_2x.tar) | +| ResNet50-FPN | Mask | 1 | 2x | 40.1 | 35.8 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_gn_2x.tar) | + +#### 注意事项: +- Group Normalization参考论文[Group Normalization](https://arxiv.org/abs/1803.08494). +- 详细的配置文件在[configs/gn](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection/configs/gn) + ### Yolo v3 | 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 | diff --git a/ppdet/utils/download.py b/ppdet/utils/download.py index c765247b1f87e77d07032114b852badf65468e2a..2b283d0c12a3254b3aa0c46abd5f9c9942fbcc6f 100644 --- a/ppdet/utils/download.py +++ b/ppdet/utils/download.py @@ -16,7 +16,6 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function - import os import os.path as osp import shutil @@ -40,20 +39,26 @@ DATASET_HOME = osp.expanduser("~/.cache/paddle/dataset") # download info: (url, md5sum) DATASETS = { 'coco': ([ - ('http://images.cocodataset.org/zips/train2017.zip', - 'cced6f7f71b7629ddf16f17bbcfab6b2', ), - ('http://images.cocodataset.org/zips/val2017.zip', - '442b8da7639aecaf257c1dceb8ba8c80', ), - ('http://images.cocodataset.org/annotations/annotations_trainval2017.zip', - 'f4bbac642086de4f52a3fdda2de5fa2c', ), + ( + 'http://images.cocodataset.org/zips/train2017.zip', + 'cced6f7f71b7629ddf16f17bbcfab6b2', ), + ( + 'http://images.cocodataset.org/zips/val2017.zip', + '442b8da7639aecaf257c1dceb8ba8c80', ), + ( + 'http://images.cocodataset.org/annotations/annotations_trainval2017.zip', + 'f4bbac642086de4f52a3fdda2de5fa2c', ), ], ["annotations", "train2017", "val2017"]), 'voc': ([ - ('http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar', - '6cd6e144f989b92b3379bac3b3de84fd', ), - ('http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar', - 'c52e279531787c972589f7e41ab4ae64', ), - ('http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar', - 'b6e924de25625d8de591ea690078ad9f', ), + ( + 'http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar', + '6cd6e144f989b92b3379bac3b3de84fd', ), + ( + 'http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar', + 'c52e279531787c972589f7e41ab4ae64', ), + ( + 'http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar', + 'b6e924de25625d8de591ea690078ad9f', ), ], ["VOCdevkit/VOC_all"]), } @@ -112,8 +117,7 @@ def get_dataset_path(path, annotation, image_dir): # dataset, VOC default label list should be used, # do not generate label_list.txt here. For default # label, see ../data/source/voc_loader.py - merge_and_create_list(devkit_dir, years, - output_tmp_dir) + merge_and_create_list(devkit_dir, years, output_tmp_dir) shutil.move(output_tmp_dir, output_dir) # remove source directory VOC2007 and VOC2012 shutil.rmtree(osp.join(devkit_dir, "VOC2007")) @@ -121,7 +125,7 @@ def get_dataset_path(path, annotation, image_dir): return data_dir # not match any dataset in DATASETS - raise ValueError("{} not exists and unknow dataset type".format(path)) + raise ValueError("{} not exists or unknow dataset type".format(path)) def get_path(url, root_dir, md5sum=None): @@ -174,13 +178,13 @@ def _dataset_exists(path, annotation, image_dir): annotation_path = osp.join(path, annotation) if not osp.isfile(annotation_path): logger.info("Config annotation {} is not a " - "file".format(annotation_path)) + "file".format(annotation_path)) return False if image_dir: image_path = osp.join(path, image_dir) if not osp.isdir(image_path): logger.info("Config image_dir {} is not a " - "directory".format(image_path)) + "directory".format(image_path)) return False return True