From b550a4029595b761a97bbd32482c4784b31f4918 Mon Sep 17 00:00:00 2001 From: Kaipeng Deng Date: Thu, 25 Jul 2019 13:44:10 +0800 Subject: [PATCH] fix infer doc and config default (#2917) * fix infer doc and config default * refine dataset exists * fix None proc --- .../configs/cascade_rcnn_r50_fpn_1x.yml | 2 +- .../configs/faster_rcnn_r101_1x.yml | 2 +- .../configs/faster_rcnn_r101_fpn_1x.yml | 2 +- .../configs/faster_rcnn_r101_fpn_2x.yml | 2 +- .../configs/faster_rcnn_r101_vd_fpn_1x.yml | 2 +- .../configs/faster_rcnn_r101_vd_fpn_2x.yml | 2 +- .../configs/faster_rcnn_r50_1x.yml | 2 +- .../configs/faster_rcnn_r50_2x.yml | 2 +- .../configs/faster_rcnn_r50_fpn_1x.yml | 2 +- .../configs/faster_rcnn_r50_fpn_2x.yml | 2 +- .../configs/faster_rcnn_r50_vd_1x.yml | 2 +- .../configs/faster_rcnn_r50_vd_fpn_2x.yml | 2 +- .../configs/faster_rcnn_se154_vd_fpn_s1x.yml | 2 +- .../faster_rcnn_x101_vd_64x4d_fpn_1x.yml | 2 +- .../faster_rcnn_x101_vd_64x4d_fpn_2x.yml | 2 +- .../configs/mask_rcnn_r101_fpn_1x.yml | 2 +- .../configs/mask_rcnn_r50_1x.yml | 2 +- .../configs/mask_rcnn_r50_2x.yml | 2 +- .../configs/mask_rcnn_r50_fpn_1x.yml | 2 +- .../configs/mask_rcnn_r50_fpn_2x.yml | 2 +- .../configs/mask_rcnn_r50_vd_fpn_2x.yml | 2 +- .../configs/mask_rcnn_se154_vd_fpn_s1x.yml | 2 +- .../configs/retinanet_r101_fpn_1x.yml | 2 +- .../configs/retinanet_r50_fpn_1x.yml | 2 +- .../configs/yolov3_darknet.yml | 2 +- .../configs/yolov3_mobilenet_v1.yml | 2 +- .../PaddleDetection/configs/yolov3_r34.yml | 2 +- .../PaddleDetection/docs/GETTING_STARTED.md | 2 +- .../docs/GETTING_STARTED_cn.md | 2 +- .../PaddleDetection/ppdet/data/data_feed.py | 13 +++++---- .../PaddleDetection/ppdet/utils/download.py | 28 +++++++++++-------- 31 files changed, 54 insertions(+), 45 deletions(-) diff --git a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml index 81f5eb09..f8830ae6 100644 --- a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml @@ -129,7 +129,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml index 27773309..c72c34d4 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml @@ -112,4 +112,4 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_1x.yml index dbb4d6d9..7c007467 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_1x.yml @@ -129,7 +129,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml index a742782b..9f9ea02a 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml @@ -129,7 +129,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml index 7c0fc39b..181d5408 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml @@ -130,7 +130,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml index 726de38a..33b75136 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml @@ -130,7 +130,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml index bf4a828f..12d34961 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml @@ -112,4 +112,4 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_2x.yml index 5257161a..255cd026 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_2x.yml @@ -112,4 +112,4 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_1x.yml index 0414a2ec..de8b573a 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_1x.yml @@ -129,7 +129,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml index a1989db6..bd1aec29 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml @@ -129,7 +129,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: coco/annotations/instances_val2017.json + annotation: dataset/coco/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml index 25ce550e..bcca9923 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml @@ -114,4 +114,4 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_fpn_2x.yml index ef19b275..7abacdf3 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_fpn_2x.yml @@ -130,7 +130,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml index 3e16ecc2..41dc0890 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml @@ -132,7 +132,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_1x.yml index 1d6759e6..988f47e1 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_1x.yml @@ -134,7 +134,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_2x.yml index 61f40e95..2282ad0d 100644 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_2x.yml @@ -133,7 +133,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml index d9a476b9..48a0e44a 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml @@ -136,7 +136,7 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml index b652affb..4fd6e344 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml @@ -120,4 +120,4 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_2x.yml index 58f9b39f..d4456919 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_2x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_2x.yml @@ -122,4 +122,4 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_1x.yml index 1059d7b4..656f59f8 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_1x.yml @@ -136,7 +136,7 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml index 9f760498..36784cde 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml @@ -136,7 +136,7 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml index 957c53d6..0ebae854 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml @@ -138,7 +138,7 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml index 63b84f98..d7f72b24 100644 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml +++ b/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml @@ -140,7 +140,7 @@ MaskRCNNEvalFeed: MaskRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 32 diff --git a/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml index 67399e13..7ad343d5 100644 --- a/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml @@ -101,5 +101,5 @@ FasterRCNNTestFeed: - !PadBatch pad_to_stride: 128 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/retinanet_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/retinanet_r50_fpn_1x.yml index ebd06911..87ee5f28 100644 --- a/PaddleCV/PaddleDetection/configs/retinanet_r50_fpn_1x.yml +++ b/PaddleCV/PaddleDetection/configs/retinanet_r50_fpn_1x.yml @@ -98,7 +98,7 @@ FasterRCNNEvalFeed: FasterRCNNTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json batch_transforms: - !PadBatch pad_to_stride: 128 diff --git a/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml b/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml index 50b97204..6a071814 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml @@ -77,4 +77,4 @@ YoloEvalFeed: YoloTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml index 2456da56..6ee6ff4a 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml @@ -78,4 +78,4 @@ YoloEvalFeed: YoloTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/yolov3_r34.yml b/PaddleCV/PaddleDetection/configs/yolov3_r34.yml index 0247eb8c..0cf6e419 100644 --- a/PaddleCV/PaddleDetection/configs/yolov3_r34.yml +++ b/PaddleCV/PaddleDetection/configs/yolov3_r34.yml @@ -80,4 +80,4 @@ YoloEvalFeed: YoloTestFeed: batch_size: 1 dataset: - annotation: annotations/instances_val2017.json + annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md b/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md index e8824ada..ae527a46 100644 --- a/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md +++ b/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md @@ -71,7 +71,7 @@ python tools/infer.py -c configs/faster_rcnn_r50_1x.yml --infer_dir=demo ``` The visualization files are saved in `output` by default, to specify a different -path, simply add a `--save_file=` flag. +path, simply add a `--output_dir=` flag. - Save inference model diff --git a/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md b/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md index 9116dd77..8f95a9c2 100644 --- a/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md +++ b/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md @@ -68,7 +68,7 @@ export CUDA_VISIBLE_DEVICES=0 python tools/infer.py -c configs/faster_rcnn_r50_1x.yml --infer_dir=demo ``` -可视化文件默认保存在`output`中,可通过`--save_file=`指定不同的输出路径。 +可视化文件默认保存在`output`中,可通过`--output_dir=`指定不同的输出路径。 - 保存推断模型 diff --git a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py b/PaddleCV/PaddleDetection/ppdet/data/data_feed.py index b3c7222c..1da81969 100644 --- a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py +++ b/PaddleCV/PaddleDetection/ppdet/data/data_feed.py @@ -52,11 +52,14 @@ def create_reader(feed, max_iter=0): # if `DATASET_DIR` does not exists, search ~/.paddle/dataset for a directory # named `DATASET_DIR` (e.g., coco, pascal), if not present either, download if feed.dataset.dataset_dir: - dataset_dir = get_dataset_path(feed.dataset.dataset_dir) - feed.dataset.annotation = os.path.join(dataset_dir, - feed.dataset.annotation) - feed.dataset.image_dir = os.path.join(dataset_dir, - feed.dataset.image_dir) + annotation = getattr(feed.dataset, 'annotation', None) + image_dir = getattr(feed.dataset, 'image_dir', None) + dataset_dir = get_dataset_path(feed.dataset.dataset_dir, + annotation, image_dir) + if annotation: + feed.dataset.annotation = os.path.join(dataset_dir, annotation) + if image_dir: + feed.dataset.image_dir = os.path.join(dataset_dir, image_dir) mixup_epoch = -1 if getattr(feed, 'mixup_epoch', None) is not None: diff --git a/PaddleCV/PaddleDetection/ppdet/utils/download.py b/PaddleCV/PaddleDetection/ppdet/utils/download.py index dbc1fa25..43f9891a 100644 --- a/PaddleCV/PaddleDetection/ppdet/utils/download.py +++ b/PaddleCV/PaddleDetection/ppdet/utils/download.py @@ -67,14 +67,13 @@ def get_weights_path(url): return get_path(url, WEIGHTS_HOME) -def get_dataset_path(path): +def get_dataset_path(path, annotation, image_dir): """ If path exists, return path. Otherwise, get dataset path from DATASET_HOME, if not exists, download it. """ - if _dataset_exists(path): - logger.debug("Dataset path: {}".format(osp.realpath(path))) + if _dataset_exists(path, annotation, image_dir): return path logger.info("Dataset {} not exitst, try searching {} or " @@ -82,7 +81,7 @@ def get_dataset_path(path): osp.realpath(path), DATASET_HOME)) for name, dataset in DATASETS.items(): - if path.lower().find(name) >= 0: + if os.path.split(path.strip().lower())[-1] == name: logger.info("Parse dataset_dir {} as dataset " "{}".format(path, name)) data_dir = osp.join(DATASET_HOME, name) @@ -163,19 +162,26 @@ def get_path(url, root_dir, md5sum=None): return fullpath -def _dataset_exists(path): +def _dataset_exists(path, annotation, image_dir): """ Check if user define dataset exists """ if not osp.exists(path): + logger.info("Config dataset_dir {} not exits".format(path)) return False - for name, dataset in DATASETS.items(): - if path.lower().find(name) >= 0: - for sub_dir in dataset[1]: - if not osp.exists(osp.join(path, sub_dir)): - return False - return True + if annotation: + annotation_path = osp.join(path, annotation) + if not osp.isfile(annotation_path): + logger.info("Config annotation {} is not a " + "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)) + return False return True -- GitLab