diff --git a/PaddleCV/PaddleDetection/.gitignore b/PaddleCV/PaddleDetection/.gitignore deleted file mode 100644 index 43369eea55459685633f4a95743b60834dad2d74..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/.gitignore +++ /dev/null @@ -1,64 +0,0 @@ -# Virtualenv -/.venv/ -/venv/ - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] - -# C extensions -*.so - -# json file -*.json - -# Distribution / packaging -/bin/ -/build/ -/develop-eggs/ -/dist/ -/eggs/ -/lib/ -/lib64/ -/output/ -/parts/ -/sdist/ -/var/ -/*.egg-info/ -/.installed.cfg -/*.egg -/.eggs - -# AUTHORS and ChangeLog will be generated while packaging -/AUTHORS -/ChangeLog - -# BCloud / BuildSubmitter -/build_submitter.* -/logger_client_log - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -.tox/ -.coverage -.cache -.pytest_cache -nosetests.xml -coverage.xml - -# Translations -*.mo - -# Sphinx documentation -/docs/_build/ - -*.json - - -dataset/coco/annotations -dataset/coco/train2017 -dataset/coco/val2017 -dataset/voc/VOCdevkit diff --git a/PaddleCV/PaddleDetection/.style.yapf b/PaddleCV/PaddleDetection/.style.yapf deleted file mode 100644 index 4741fb4f3bbc6681088cf9e960321e7b857a93a8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/.style.yapf +++ /dev/null @@ -1,3 +0,0 @@ -[style] -based_on_style = pep8 -column_limit = 80 diff --git a/PaddleCV/PaddleDetection/README.md b/PaddleCV/PaddleDetection/README.md deleted file mode 100644 index 488400bb36731c0e4d887fc0943c1a4ebd1d1a3d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/README.md +++ /dev/null @@ -1,138 +0,0 @@ -# **This project has been deprecated, please visit https://github.com/PaddlePaddle/PaddleDetection**
- - - -English | [简体中文](README_cn.md) - -# PaddleDetection - -The goal of PaddleDetection is to provide easy access to a wide range of object -detection models in both industry and research settings. We design -PaddleDetection to be not only performant, production-ready but also highly -flexible, catering to research needs. - - -
- -
- - -## Introduction - -Features: - -- Production Ready: - - Key operations are implemented in C++ and CUDA, together with PaddlePaddle's -highly efficient inference engine, enables easy deployment in server environments. - -- Highly Flexible: - - Components are designed to be modular. Model architectures, as well as data -preprocess pipelines, can be easily customized with simple configuration -changes. - -- Performance Optimized: - - With the help of the underlying PaddlePaddle framework, faster training and -reduced GPU memory footprint is achieved. Notably, YOLOv3 training is -much faster compared to other frameworks. Another example is Mask-RCNN -(ResNet50), we managed to fit up to 4 images per GPU (Tesla V100 16GB) during -multi-GPU training. - -Supported Architectures: - -| | ResNet | ResNet-vd [1](#vd) | ResNeXt-vd | SENet | MobileNet | DarkNet | VGG | -| ------------------- | :----: | ----------------------------: | :--------: | :---: | :-------: | :-----: | :--: | -| Faster R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ | ✗ | -| Faster R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | -| Mask R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ | ✗ | -| Mask R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | -| Cascade Faster-RCNN | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | -| Cascade Mask-RCNN | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | -| RetinaNet | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | -| YOLOv3 | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | -| SSD | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | - -[1] [ResNet-vd](https://arxiv.org/pdf/1812.01187) models offer much improved accuracy with negligible performance cost. - -Advanced Features: - -- [x] **Synchronized Batch Norm**: currently used by YOLOv3. -- [x] **Group Norm** -- [x] **Modulated Deformable Convolution** -- [x] **Deformable PSRoI Pooling** - -**NOTE:** Synchronized batch normalization can only be used on multiple GPU devices, can not be used on CPU devices or single GPU device. - -## Get Started - -- [Installation guide](docs/INSTALL.md) -- [Quick start on small dataset](docs/QUICK_STARTED.md) -- [Guide to traing, evaluate and arguments description](docs/GETTING_STARTED.md) -- [Guide to preprocess pipeline and custom dataset](docs/DATA.md) -- [Introduction to the configuration workflow](docs/CONFIG.md) -- [Examples for detailed configuration explanation](docs/config_example/) -- [IPython Notebook demo](demo/mask_rcnn_demo.ipynb) -- [Transfer learning document](docs/TRANSFER_LEARNING.md) - -## Model Zoo - -- Pretrained models are available in the [PaddleDetection model zoo](docs/MODEL_ZOO.md). -- [Face detection models](configs/face_detection/README.md) -- [Pretrained models for pedestrian and vehicle detection](contrib/README.md) - -## Model compression - -- [ Quantification aware training example](slim/quantization) -- [ Pruning compression example](slim/prune) - -## Depoly - -- [Export model for inference depolyment](docs/EXPORT_MODEL.md) -- [C++ inference depolyment](inference/README.md) - -## Benchmark - -- [Inference benchmark](docs/BENCHMARK_INFER_cn.md) - - -## Updates - -#### 10/2019 - -- Face detection models included: BlazeFace, Faceboxes. -- Enrich COCO models, box mAP up to 51.9%. -- Add CACacascade RCNN, one of the best single model of Objects365 2019 challenge Full Track champion. -- Add pretrained models for pedestrian and vehicle detection. -- Support mixed-precision training. -- Add C++ inference depolyment. -- Add model compression examples. - -#### 2/9/2019 - -- Add retrained models for GroupNorm. - -- Add Cascade-Mask-RCNN+FPN. - -#### 5/8/2019 - -- Add a series of models ralated modulated Deformable Convolution. - -#### 7/29/2019 - -- Update Chinese docs for PaddleDetection -- Fix bug in R-CNN models when train and test at the same time -- Add ResNext101-vd + Mask R-CNN + FPN models -- Add YOLOv3 on VOC models - -#### 7/3/2019 - -- Initial release of PaddleDetection and detection model zoo -- Models included: Faster R-CNN, Mask R-CNN, Faster R-CNN+FPN, Mask - R-CNN+FPN, Cascade-Faster-RCNN+FPN, RetinaNet, YOLOv3, and SSD. - - -## Contributing - -Contributions are highly welcomed and we would really appreciate your feedback!! diff --git a/PaddleCV/PaddleDetection/README_cn.md b/PaddleCV/PaddleDetection/README_cn.md deleted file mode 100644 index 78708bdc19caf8915f9528ea52aea221a7a22656..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/README_cn.md +++ /dev/null @@ -1,124 +0,0 @@ -# **该项目已被迁移到 https://github.com/PaddlePaddle/PaddleDetection** - -[English](README.md) | 简体中文 - -# PaddleDetection - -PaddleDetection的目的是为工业界和学术界提供丰富、易用的目标检测模型。不仅性能优越、易于部署,而且能够灵活的满足算法研究的需求。 - -
- -
- - -## 简介 - -特性: - -- 易部署: - - PaddleDetection的模型中使用的核心算子均通过C++或CUDA实现,同时基于PaddlePaddle的高性能推理引擎可以方便地部署在多种硬件平台上。 - -- 高灵活度: - - PaddleDetection通过模块化设计来解耦各个组件,基于配置文件可以轻松地搭建各种检测模型。 - -- 高性能: - - 基于PaddlePaddle框架的高性能内核,在模型训练速度、显存占用上有一定的优势。例如,YOLOv3的训练速度快于其他框架,在Tesla V100 16GB环境下,Mask-RCNN(ResNet50)可以单卡Batch Size可以达到4 (甚至到5)。 - -支持的模型结构: - -| | ResNet | ResNet-vd [1](#vd) | ResNeXt-vd | SENet | MobileNet | DarkNet | VGG | -|--------------------|:------:|------------------------------:|:----------:|:-----:|:---------:|:-------:|:---:| -| Faster R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ | ✗ | -| Faster R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | -| Mask R-CNN | ✓ | ✓ | x | ✓ | ✗ | ✗ | ✗ | -| Mask R-CNN + FPN | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | -| Cascade Faster-CNN | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | -| Cascade Mask-CNN | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | -| RetinaNet | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | -| YOLOv3 | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✗ | -| SSD | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | - -[1] [ResNet-vd](https://arxiv.org/pdf/1812.01187) 模型提供了较大的精度提高和较少的性能损失。 - -扩展特性: - -- [x] **Synchronized Batch Norm**: 目前在YOLOv3中使用。 -- [x] **Group Norm** -- [x] **Modulated Deformable Convolution** -- [x] **Deformable PSRoI Pooling** - -**注意:** Synchronized batch normalization 只能在多GPU环境下使用,不能在CPU环境或者单GPU环境下使用。 - - -## 使用教程 - -- [安装说明](docs/INSTALL_cn.md) -- [快速开始](docs/QUICK_STARTED_cn.md) -- [训练、评估及参数说明](docs/GETTING_STARTED_cn.md) -- [数据预处理及自定义数据集](docs/DATA_cn.md) -- [配置模块设计和介绍](docs/CONFIG_cn.md) -- [详细的配置信息和参数说明示例](docs/config_example/) -- [IPython Notebook demo](demo/mask_rcnn_demo.ipynb) -- [迁移学习教程](docs/TRANSFER_LEARNING_cn.md) - -## 模型库 - -- [模型库](docs/MODEL_ZOO_cn.md) -- [人脸检测模型](configs/face_detection/README.md) -- [行人检测和车辆检测预训练模型](contrib/README_cn.md) - - -## 模型压缩 -- [量化训练压缩示例](slim/quantization) -- [剪枝压缩示例](slim/prune) - -## 推理部署 - -- [模型导出教程](docs/EXPORT_MODEL.md) -- [C++推理部署](inference/README.md) - -## Benchmark - -- [推理Benchmark](docs/BENCHMARK_INFER_cn.md) - - - -## 版本更新 - -### 10/2019 - -- 增加人脸检测模型BlazeFace、Faceboxes。 -- 丰富基于COCO的模型,精度高达51.9%。 -- 增加Objects365 2019 Challenge上夺冠的最佳单模型之一CACascade-RCNN。 -- 增加行人检测和车辆检测预训练模型。 -- 支持FP16训练。 -- 增加跨平台的C++推理部署方案。 -- 增加模型压缩示例。 - - -### 2/9/2019 -- 增加GroupNorm模型。 -- 增加CascadeRCNN+Mask模型。 - -#### 5/8/2019 -- 增加Modulated Deformable Convolution系列模型。 - -#### 7/22/2019 - -- 增加检测库中文文档 -- 修复R-CNN系列模型训练同时进行评估的问题 -- 新增ResNext101-vd + Mask R-CNN + FPN模型 -- 新增基于VOC数据集的YOLOv3模型 - -#### 7/3/2019 - -- 首次发布PaddleDetection检测库和检测模型库 -- 模型包括:Faster R-CNN, Mask R-CNN, Faster R-CNN+FPN, Mask - R-CNN+FPN, Cascade-Faster-RCNN+FPN, RetinaNet, YOLOv3, 和SSD. - -## 如何贡献代码 - -我们非常欢迎你可以为PaddleDetection提供代码,也十分感谢你的反馈。 diff --git a/PaddleCV/PaddleDetection/configs/cascade_mask_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/cascade_mask_rcnn_r50_fpn_1x.yml deleted file mode 100644 index 1d17f53c60e66061ab8a21d624f4191a15ee5a01..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/cascade_mask_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: CascadeMaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 180000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/cascade_mask_rcnn_r50_fpn_1x/model_final/ -num_classes: 81 - -CascadeMaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - mask_assigner: MaskAssigner - mask_head: MaskHead - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_hi: [0.5, 0.6, 0.7] - bg_thresh_lo: [0.0, 0.0, 0.0] - fg_fraction: 0.25 - fg_thresh: [0.5, 0.6, 0.7] - -MaskAssigner: - resolution: 28 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml deleted file mode 100644 index 47c089c1d95a35aacdcc0766670dc984cb18dc32..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/cascade_rcnn_r50_fpn_1x/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - variant: b - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x_ms_test.yml b/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x_ms_test.yml deleted file mode 100644 index c345aeedbe6f65fbe19aaf87ddbadf5ed567c38d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/cascade_rcnn_r50_fpn_1x_ms_test.yml +++ /dev/null @@ -1,177 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/cascade_rcnn_r50_fpn_1x/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - variant: b - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -MultiScaleTEST: - score_thresh: 0.05 - nms_thresh: 0.5 - detections_per_im: 100 - enable_voting: true - vote_thresh: 0.9 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - sample_transforms: - - !DecodeImage - to_rgb: true - - !NormalizeImage - is_channel_first: false - is_scale: true - mean: - - 0.485 - - 0.456 - - 0.406 - std: - - 0.229 - - 0.224 - - 0.225 - - !MultiscaleTestResize - origin_target_size: 800 - origin_max_size: 1333 - target_size: - - 400 - - 500 - - 600 - - 700 - - 900 - - 1000 - - 1100 - - 1200 - max_size: 2000 - use_flip: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadMSTest - pad_to_stride: 32 - num_scale: 18 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x.yml b/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x.yml deleted file mode 100755 index 6d666470f6969c1d4d3a7a1c2a16f11642c904d6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x.yml +++ /dev/null @@ -1,257 +0,0 @@ -architecture: CascadeMaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 300000 -snapshot_iter: 10 -use_gpu: true -log_iter: 20 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/SENet154_vd_caffe_pretrained.tar -weights: output/cascade_mask_rcnn_dcn_se154_vd_fpn_gn_s1x/model_final/ -metric: COCO -num_classes: 81 - -CascadeMaskRCNN: - backbone: SENet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - mask_assigner: MaskAssigner - mask_head: MaskHead - -SENet: - depth: 152 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - freeze_norm: True - variant: d - dcn_v2_stages: [3, 4, 5] - std_senet: True - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - freeze_norm: False - norm_type: gn - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - norm_type: gn - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_hi: [0.5, 0.6, 0.7] - bg_thresh_lo: [0.0, 0.0, 0.0] - fg_fraction: 0.25 - fg_thresh: [0.5, 0.6, 0.7] - -MaskAssigner: - resolution: 28 - -CascadeBBoxHead: - head: CascadeXConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeXConvNormHead: - norm_type: gn - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 280000] - - !LinearWarmup - start_factor: 0.01 - steps: 2000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !RandomFlipImage - is_mask_flip: true - is_normalized: false - prob: 0.5 - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !ResizeImage - interp: 1 - target_size: - - 416 - - 448 - - 480 - - 512 - - 544 - - 576 - - 608 - - 640 - - 672 - - 704 - - 736 - - 768 - - 800 - - 832 - - 864 - - 896 - - 928 - - 960 - - 992 - - 1024 - - 1056 - - 1088 - - 1120 - - 1152 - - 1184 - - 1216 - - 1248 - - 1280 - - 1312 - - 1344 - - 1376 - - 1408 - max_size: 1600 - use_cv2: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 8 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !ResizeImage - interp: 1 - target_size: - - 800 - max_size: 1333 - use_cv2: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x_ms_test.yml b/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x_ms_test.yml deleted file mode 100644 index ea0b375b6f87cbbc358b3b7ec213cdab16661e47..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x_ms_test.yml +++ /dev/null @@ -1,272 +0,0 @@ -architecture: CascadeMaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 300000 -snapshot_iter: 10000 -use_gpu: true -log_iter: 20 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/SENet154_vd_caffe_pretrained.tar -weights: output/cascade_mask_rcnn_dcn_se154_vd_fpn_gn_s1x/model_final/ -metric: COCO -num_classes: 81 - -CascadeMaskRCNN: - backbone: SENet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - mask_assigner: MaskAssigner - mask_head: MaskHead - -SENet: - depth: 152 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - freeze_norm: True - variant: d - dcn_v2_stages: [3, 4, 5] - std_senet: True - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - freeze_norm: False - norm_type: gn - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - norm_type: gn - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_hi: [0.5, 0.6, 0.7] - bg_thresh_lo: [0.0, 0.0, 0.0] - fg_fraction: 0.25 - fg_thresh: [0.5, 0.6, 0.7] - -MaskAssigner: - resolution: 28 - -CascadeBBoxHead: - head: CascadeXConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeXConvNormHead: - norm_type: gn - -MultiScaleTEST: - score_thresh: 0.05 - nms_thresh: 0.5 - detections_per_im: 100 - enable_voting: true - vote_thresh: 0.9 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 280000] - - !LinearWarmup - start_factor: 0.01 - steps: 2000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !RandomFlipImage - is_mask_flip: true - is_normalized: false - prob: 0.5 - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !ResizeImage - interp: 1 - target_size: - - 416 - - 448 - - 480 - - 512 - - 544 - - 576 - - 608 - - 640 - - 672 - - 704 - - 736 - - 768 - - 800 - - 832 - - 864 - - 896 - - 928 - - 960 - - 992 - - 1024 - - 1056 - - 1088 - - 1120 - - 1152 - - 1184 - - 1216 - - 1248 - - 1280 - - 1312 - - 1344 - - 1376 - - 1408 - max_size: 1600 - use_cv2: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 8 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - sample_transforms: - - !DecodeImage - to_rgb: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !MultiscaleTestResize - origin_target_size: 800 - origin_max_size: 1333 - target_size: - - 400 - - 500 - - 600 - - 700 - - 900 - - 1000 - - 1100 - - 1200 - max_size: 2000 - use_flip: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadMSTest - pad_to_stride: 32 - # num_scale = (len(target_size) + 1) * (1 + use_flip) - num_scale: 18 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - sample_transforms: - - !DecodeImage - to_rgb: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r101_vd_fpn_1x.yml deleted file mode 100644 index 93373adb3a7f72b64ba45996ef61c2a9d3da8414..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r101_vd_fpn_1x.yml +++ /dev/null @@ -1,139 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/cascade_rcnn_dcn_r101_vd_fpn_1x/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNet: - norm_type: bn - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r50_fpn_1x.yml deleted file mode 100644 index 4c74bd877b644659812bbcab960a4ce4600277ef..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_r50_fpn_1x.yml +++ /dev/null @@ -1,139 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/cascade_rcnn_dcn_r50_fpn_1x/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNet: - norm_type: bn - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - variant: b - dcn_v2_stages: [3, 4, 5] - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml deleted file mode 100644 index dbbe2d8014d716e68ba481f4b66eb7fe50164356..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,141 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNeXt: - norm_type: bn - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeTwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r101_vd_fpn_1x.yml deleted file mode 100644 index d6a949efb1e68ae7c258e13f343d46e81746f77b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r101_vd_fpn_1x.yml +++ /dev/null @@ -1,139 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/faster_rcnn_dcn_r101_vd_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 2 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_fpn_1x.yml deleted file mode 100644 index 2048d61e46d4ce93ffb1c0d3bfd1075be2ea4472..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_fpn_1x.yml +++ /dev/null @@ -1,138 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -use_gpu: true -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_dcn_r50_fpn_1x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - norm_type: bn - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - dcn_v2_stages: [3, 4, 5] - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_lo: 0.0 - bg_thresh_hi: 0.5 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_vd_fpn_2x.yml deleted file mode 100644 index f0cb0ba27d31247415a479619d63da265b16df27..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_r50_vd_fpn_2x.yml +++ /dev/null @@ -1,139 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_pretrained.tar -weights: output/faster_rcnn_dcn_r50_vd_fpn_2x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 2 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml deleted file mode 100644 index b6d7b81cc3cc1944e71b0159bec1bc56c35dcf53..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,143 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: true - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: false diff --git a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r101_vd_fpn_1x.yml deleted file mode 100644 index f5a0b7c458a0a0856a98533a047407f58c684adc..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r101_vd_fpn_1x.yml +++ /dev/null @@ -1,146 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/mask_rcnn_dcn_r101_vd_fpn_1x/model_final -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_fpn_1x.yml deleted file mode 100644 index 04653001e9bc27bc247fe420076bd12923199263..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_fpn_1x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 180000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/mask_rcnn_dcn_r50_fpn_1x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_vd_fpn_2x.yml deleted file mode 100644 index d008fb84dcd24d0853a53717000a4b6578002564..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_r50_vd_fpn_2x.yml +++ /dev/null @@ -1,147 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 360000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_pretrained.tar -metric: COCO -weights: output/mask_rcnn_dcn_r50_vd_fpn_2x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml deleted file mode 100644 index 8076d1a5d4c209e174cf02d1a5dd36c3716456f9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/dcn/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,148 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -log_iter: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - variant: d - dcn_v2_stages: [3, 4, 5] - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/face_detection/README.md b/PaddleCV/PaddleDetection/configs/face_detection/README.md deleted file mode 100644 index b5e2119f8148dfa3a0ed5930ca285cce50236e2e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/face_detection/README.md +++ /dev/null @@ -1,261 +0,0 @@ -English | [简体中文](README_cn.md) - -# FaceDetection -The goal of FaceDetection is to provide efficient and high-speed face detection solutions, -including cutting-edge and classic models. - - -
- -
- -## Data Pipline -We use the [WIDER FACE dataset](http://shuoyang1213.me/WIDERFACE/) to carry out the training -and testing of the model, the official website gives detailed data introduction. -- WIDER Face data source: -Loads `wider_face` type dataset with directory structures like this: - - ``` - dataset/wider_face/ - ├── wider_face_split - │ ├── wider_face_train_bbx_gt.txt - │ ├── wider_face_val_bbx_gt.txt - ├── WIDER_train - │ ├── images - │ │ ├── 0--Parade - │ │ │ ├── 0_Parade_marchingband_1_100.jpg - │ │ │ ├── 0_Parade_marchingband_1_381.jpg - │ │ │ │ ... - │ │ ├── 10--People_Marching - │ │ │ ... - ├── WIDER_val - │ ├── images - │ │ ├── 0--Parade - │ │ │ ├── 0_Parade_marchingband_1_1004.jpg - │ │ │ ├── 0_Parade_marchingband_1_1045.jpg - │ │ │ │ ... - │ │ ├── 10--People_Marching - │ │ │ ... - ``` - -- Download dataset manually: -To download the WIDER FACE dataset, run the following commands: -``` -cd dataset/wider_face && ./download.sh -``` - -- Download dataset automatically: -If a training session is started but the dataset is not setup properly -(e.g, not found in dataset/wider_face), PaddleDetection can automatically -download them from [WIDER FACE dataset](http://shuoyang1213.me/WIDERFACE/), -the decompressed datasets will be cached in ~/.cache/paddle/dataset/ and can be discovered -automatically subsequently. - -### Data Augmentation - -- **Data-anchor-sampling:** Randomly transform the scale of the image to a certain range of scales, -greatly enhancing the scale change of the face. The specific operation is to obtain $v=\sqrt{width * height}$ -according to the randomly selected face height and width, and judge the value of `v` in which interval of - `[16,32,64,128]`. Assuming `v=45` && `32[1](#lite) | NAS [2](#nas) | -|:------------------------:|:--------:|:--------------------------:|:------------------------:| -| [BlazeFace](#BlazeFace) | ✓ | ✓ | ✓ | -| [FaceBoxes](#FaceBoxes) | ✓ | ✓ | x | - -[1] `Lite` edition means reduces the number of network layers and channels. -[2] `NAS` edition means use `Neural Architecture Search` algorithm to -optimized network structure. - -**Todo List:** -- [ ] HamBox -- [ ] Pyramidbox - -### Model Zoo - -#### mAP in WIDER FACE - -| Architecture | Type | Size | Img/gpu | Lr schd | Easy Set | Medium Set | Hard Set | Download | -|:------------:|:--------:|:----:|:-------:|:-------:|:---------:|:----------:|:---------:|:--------:| -| BlazeFace | Original | 640 | 8 | 32w | **0.915** | **0.892** | **0.797** | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_original.tar) | -| BlazeFace | Lite | 640 | 8 | 32w | 0.909 | 0.885 | 0.781 | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_lite.tar) | -| BlazeFace | NAS | 640 | 8 | 32w | 0.837 | 0.807 | 0.658 | [model](https://paddlemodels.bj.bcebos.com/object_detection/blazeface_nas.tar) | -| FaceBoxes | Original | 640 | 8 | 32w | 0.875 | 0.848 | 0.568 | [model](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_original.tar) | -| FaceBoxes | Lite | 640 | 8 | 32w | 0.898 | 0.872 | 0.752 | [model](https://paddlemodels.bj.bcebos.com/object_detection/faceboxes_lite.tar) | - -**NOTES:** -- Get mAP in `Easy/Medium/Hard Set` by multi-scale evaluation in `tools/face_eval.py`. -For details can refer to [Evaluation](#Evaluate-on-the-WIDER-FACE). -- BlazeFace-Lite Training and Testing ues [blazeface.yml](../../configs/face_detection/blazeface.yml) -configs file and set `lite_edition: true`. - -#### mAP in FDDB - -| Architecture | Type | Size | DistROC | ContROC | -|:------------:|:--------:|:----:|:-------:|:-------:| -| BlazeFace | Original | 640 | **0.992** | **0.762** | -| BlazeFace | Lite | 640 | 0.990 | 0.756 | -| BlazeFace | NAS | 640 | 0.981 | 0.741 | -| FaceBoxes | Original | 640 | 0.985 | 0.731 | -| FaceBoxes | Lite | 640 | 0.987 | 0.741 | - -**NOTES:** -- Get mAP by multi-scale evaluation on the FDDB dataset. -For details can refer to [Evaluation](#Evaluate-on-the-FDDB). - -#### Infer Time and Model Size comparison - -| Architecture | Type | Size | P4 (ms) | CPU (ms) | ARM (ms) | File size (MB) | Flops | -|:------------:|:--------:|:----:|:---------:|:--------:|:----------:|:--------------:|:---------:| -| BlazeFace | Original | 128 | - | - | - | - | - | -| BlazeFace | Lite | 128 | - | - | - | - | - | -| BlazeFace | NAS | 128 | - | - | - | - | - | -| FaceBoxes | Original | 128 | - | - | - | - | - | -| FaceBoxes | Lite | 128 | - | - | - | - | - | -| BlazeFace | Original | 320 | - | - | - | - | - | -| BlazeFace | Lite | 320 | - | - | - | - | - | -| BlazeFace | NAS | 320 | - | - | - | - | - | -| FaceBoxes | Original | 320 | - | - | - | - | - | -| FaceBoxes | Lite | 320 | - | - | - | - | - | -| BlazeFace | Original | 640 | - | - | - | - | - | -| BlazeFace | Lite | 640 | - | - | - | - | - | -| BlazeFace | NAS | 640 | - | - | - | - | - | -| FaceBoxes | Original | 640 | - | - | - | - | - | -| FaceBoxes | Lite | 640 | - | - | - | - | - | - - -**NOTES:** -- CPU: i5-7360U @ 2.30GHz. Single core and single thread. - - - -## Get Started -`Training` and `Inference` please refer to [GETTING_STARTED.md](../../docs/GETTING_STARTED.md) -- **NOTES:** -- `BlazeFace` and `FaceBoxes` is trained in 4 GPU with `batch_size=8` per gpu (total batch size as 32) -and trained 320000 iters.(If your GPU count is not 4, please refer to the rule of training parameters -in the table of [calculation rules](../../docs/GETTING_STARTED.md#faq)) -- Currently we do not support evaluation in training. - -### Evaluation -``` -export CUDA_VISIBLE_DEVICES=0 -export PYTHONPATH=$PYTHONPATH:. -python tools/face_eval.py -c configs/face_detection/blazeface.yml -``` -- Optional arguments -- `-d` or `--dataset_dir`: Dataset path, same as dataset_dir of configs. Such as: `-d dataset/wider_face`. -- `-f` or `--output_eval`: Evaluation file directory, default is `output/pred`. -- `-e` or `--eval_mode`: Evaluation mode, include `widerface` and `fddb`, default is `widerface`. -- `--multi_scale`: If you add this action button in the command, it will select `multi_scale` evaluation. -Default is `False`, it will select `single-scale` evaluation. - -After the evaluation is completed, the test result in txt format will be generated in `output/pred`, -and then mAP will be calculated according to different data sets. If you set `--eval_mode=widerface`, -it will [Evaluate on the WIDER FACE](#Evaluate-on-the-WIDER-FACE).If you set `--eval_mode=fddb`, -it will [Evaluate on the FDDB](#Evaluate-on-the-FDDB). - -#### Evaluate on the WIDER FACE -- Download the official evaluation script to evaluate the AP metrics: -``` -wget http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/support/eval_script/eval_tools.zip -unzip eval_tools.zip && rm -f eval_tools.zip -``` -- Modify the result path and the name of the curve to be drawn in `eval_tools/wider_eval.m`: -``` -# Modify the folder name where the result is stored. -pred_dir = './pred'; -# Modify the name of the curve to be drawn -legend_name = 'Fluid-BlazeFace'; -``` -- `wider_eval.m` is the main execution program of the evaluation module. The run command is as follows: -``` -matlab -nodesktop -nosplash -nojvm -r "run wider_eval.m;quit;" -``` - -#### Evaluate on the FDDB -[FDDB dataset](http://vis-www.cs.umass.edu/fddb/) details can refer to FDDB's official website. -- Download the official dataset and evaluation script to evaluate the ROC metrics: -``` -#external link to the Faces in the Wild data set -wget http://tamaraberg.com/faceDataset/originalPics.tar.gz -#The annotations are split into ten folds. See README for details. -wget http://vis-www.cs.umass.edu/fddb/FDDB-folds.tgz -#information on directory structure and file formats -wget http://vis-www.cs.umass.edu/fddb/README.txt -``` -- Install OpenCV: Requires [OpenCV library](http://sourceforge.net/projects/opencvlibrary/) -If the utility 'pkg-config' is not available for your operating system, -edit the Makefile to manually specify the OpenCV flags as following: -``` -INCS = -I/usr/local/include/opencv -LIBS = -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux -lml -``` - -- Compile FDDB evaluation code: execute `make` in evaluation folder. - -- Generate full image path list and groundtruth in FDDB-folds. The run command is as follows: -``` -cat `ls|grep -v"ellipse"` > filePath.txt` and `cat *ellipse* > fddb_annotFile.txt` -``` -- Evaluation -Finally evaluation command is: -``` -./evaluate -a ./FDDB/FDDB-folds/fddb_annotFile.txt \ - -d DETECTION_RESULT.txt -f 0 \ - -i ./FDDB -l ./FDDB/FDDB-folds/filePath.txt \ - -r ./OUTPUT_DIR -z .jpg -``` -**NOTES:** The interpretation of the argument can be performed by `./evaluate --help`. - -## Algorithm Description - -### BlazeFace -**Introduction:** -[BlazeFace](https://arxiv.org/abs/1907.05047) is Google Research published face detection model. -It's lightweight but good performance, and tailored for mobile GPU inference. It runs at a speed -of 200-1000+ FPS on flagship devices. - -**Particularity:** -- Anchor scheme stops at 8×8(input 128x128), 6 anchors per pixel at that resolution. -- 5 single, and 6 double BlazeBlocks: 5×5 depthwise convs, same accuracy with fewer layers. -- Replace the non-maximum suppression algorithm with a blending strategy that estimates the -regression parameters of a bounding box as a weighted mean between the overlapping predictions. - -**Edition information:** -- Original: Reference original paper reproduction. -- Lite: Replace 5x5 conv with 3x3 conv, fewer network layers and conv channels. -- NAS: use `Neural Architecture Search` algorithm to optimized network structure, -less network layer and conv channel number than `Lite`. - -### FaceBoxes -**Introduction:** -[FaceBoxes](https://arxiv.org/abs/1708.05234) which named A CPU Real-time Face Detector -with High Accuracy is face detector proposed by Shifeng Zhang, with high performance on -both speed and accuracy. This paper is published by IJCB(2017). - -**Particularity:** -- Anchor scheme stops at 20x20, 10x10, 5x5, which network input size is 640x640, -including 3, 1, 1 anchors per pixel at each resolution. The corresponding densities -are 1, 2, 4(20x20), 4(10x10) and 4(5x5). -- 2 convs with CReLU, 2 poolings, 3 inceptions and 2 convs with ReLU. -- Use density prior box to improve detection accuracy. - -**Edition information:** -- Original: Reference original paper reproduction. -- Lite: 2 convs with CReLU, 1 pooling, 2 convs with ReLU, 3 inceptions and 2 convs with ReLU. -Anchor scheme stops at 80x80 and 40x40, including 3, 1 anchors per pixel at each resolution. -The corresponding densities are 1, 2, 4(80x80) and 4(40x40), using less conv channel number than lite. - - -## Contributing -Contributions are highly welcomed and we would really appreciate your feedback!! diff --git a/PaddleCV/PaddleDetection/configs/face_detection/blazeface.yml b/PaddleCV/PaddleDetection/configs/face_detection/blazeface.yml deleted file mode 100644 index 692f14a7cc8091bc8df1f5edbfbca2a9c59b0073..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/face_detection/blazeface.yml +++ /dev/null @@ -1,130 +0,0 @@ -architecture: BlazeFace -max_iters: 320000 -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -pretrain_weights: -use_gpu: true -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: WIDERFACE -save_dir: output -weights: output/blazeface/model_final/ -# 1(label_class) + 1(background) -num_classes: 2 - -BlazeFace: - backbone: BlazeNet - output_decoder: - keep_top_k: 750 - nms_threshold: 0.3 - nms_top_k: 5000 - score_threshold: 0.01 - min_sizes: [[16.,24.], [32., 48., 64., 80., 96., 128.]] - use_density_prior_box: false - -BlazeNet: - with_extra_blocks: true - lite_edition: false - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 300000] - -OptimizerBuilder: - optimizer: - momentum: 0.0 - type: RMSPropOptimizer - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - use_process: True - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_train_bbx_gt.txt - image_dir: WIDER_train/images - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - prob: 0.5 - - !CropImageWithDataAchorSampling - anchor_sampler: - - [1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0] - batch_sampler: - - [1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - target_size: 640 - - !RandomInterpImage - target_size: 640 - - !RandomFlipImage - is_normalized: true - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDEvalFeed: - batch_size: 1 - use_process: false - fields: ['image', 'im_id', 'gt_box'] - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_val_bbx_gt.txt - image_dir: WIDER_val/images - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDTestFeed: - batch_size: 1 - use_process: false - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] diff --git a/PaddleCV/PaddleDetection/configs/face_detection/blazeface_nas.yml b/PaddleCV/PaddleDetection/configs/face_detection/blazeface_nas.yml deleted file mode 100644 index 45356bda7998c18b286edaa4e308f21875cce9d3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/face_detection/blazeface_nas.yml +++ /dev/null @@ -1,132 +0,0 @@ -architecture: BlazeFace -max_iters: 320000 -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -pretrain_weights: -use_gpu: true -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: WIDERFACE -save_dir: output -weights: output/blazeface_nas/model_final/ -# 1(label_class) + 1(background) -num_classes: 2 - -BlazeFace: - backbone: BlazeNet - output_decoder: - keep_top_k: 750 - nms_threshold: 0.3 - nms_top_k: 5000 - score_threshold: 0.01 - min_sizes: [[16.,24.], [32., 48., 64., 80., 96., 128.]] - use_density_prior_box: false - -BlazeNet: - blaze_filters: [[12, 12], [12, 12, 2], [12, 12]] - double_blaze_filters: [[12, 16, 24, 2], [24, 12, 24], [24, 16, 72, 2], [72, 12, 72]] - with_extra_blocks: true - lite_edition: false - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 300000] - -OptimizerBuilder: - optimizer: - momentum: 0.0 - type: RMSPropOptimizer - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - use_process: True - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_train_bbx_gt.txt - image_dir: WIDER_train/images - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - prob: 0.5 - - !CropImageWithDataAchorSampling - anchor_sampler: - - [1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0] - batch_sampler: - - [1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - target_size: 640 - - !RandomInterpImage - target_size: 640 - - !RandomFlipImage - is_normalized: true - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDEvalFeed: - batch_size: 1 - use_process: false - fields: ['image', 'im_id', 'gt_box'] - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_val_bbx_gt.txt - image_dir: WIDER_val/images - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDTestFeed: - batch_size: 1 - use_process: false - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] diff --git a/PaddleCV/PaddleDetection/configs/face_detection/faceboxes.yml b/PaddleCV/PaddleDetection/configs/face_detection/faceboxes.yml deleted file mode 100644 index b278723292ddf51e7a93a88b59f3b757f5d4455e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/face_detection/faceboxes.yml +++ /dev/null @@ -1,130 +0,0 @@ -architecture: FaceBoxes -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -pretrain_weights: -use_gpu: true -max_iters: 320000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: WIDERFACE -save_dir: output -weights: output/faceboxes/model_final/ -# 1(label_class) + 1(background) -num_classes: 2 - -FaceBoxes: - backbone: FaceBoxNet - densities: [[4, 2, 1], [1], [1]] - fixed_sizes: [[32., 64., 128.], [256.], [512.]] - output_decoder: - keep_top_k: 750 - nms_threshold: 0.3 - nms_top_k: 5000 - score_threshold: 0.01 - -FaceBoxNet: - with_extra_blocks: true - lite_edition: false - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 300000] - -OptimizerBuilder: - optimizer: - momentum: 0.0 - type: RMSPropOptimizer - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - use_process: True - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_train_bbx_gt.txt - image_dir: WIDER_train/images - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - prob: 0.5 - - !CropImageWithDataAchorSampling - anchor_sampler: - - [1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0] - batch_sampler: - - [1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - target_size: 640 - - !RandomInterpImage - target_size: 640 - - !RandomFlipImage - is_normalized: true - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDEvalFeed: - batch_size: 1 - use_process: false - fields: ['image', 'im_id', 'gt_box'] - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_val_bbx_gt.txt - image_dir: WIDER_val/images - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDTestFeed: - batch_size: 1 - use_process: false - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] diff --git a/PaddleCV/PaddleDetection/configs/face_detection/faceboxes_lite.yml b/PaddleCV/PaddleDetection/configs/face_detection/faceboxes_lite.yml deleted file mode 100644 index 157f0337e4fbda281b3c2fe9cdfd85dd81b51b40..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/face_detection/faceboxes_lite.yml +++ /dev/null @@ -1,130 +0,0 @@ -architecture: FaceBoxes -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -pretrain_weights: -use_gpu: true -max_iters: 320000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: WIDERFACE -save_dir: output -weights: output/faceboxes_lite/model_final/ -# 1(label_class) + 1(background) -num_classes: 2 - -FaceBoxes: - backbone: FaceBoxNet - densities: [[2, 1, 1], [1, 1]] - fixed_sizes: [[16., 32., 64.], [96., 128.]] - output_decoder: - keep_top_k: 750 - nms_threshold: 0.3 - nms_top_k: 5000 - score_threshold: 0.01 - -FaceBoxNet: - with_extra_blocks: true - lite_edition: true - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 300000] - -OptimizerBuilder: - optimizer: - momentum: 0.0 - type: RMSPropOptimizer - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - use_process: True - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_train_bbx_gt.txt - image_dir: WIDER_train/images - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - prob: 0.5 - - !CropImageWithDataAchorSampling - anchor_sampler: - - [1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0] - batch_sampler: - - [1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0] - target_size: 640 - - !RandomInterpImage - target_size: 640 - - !RandomFlipImage - is_normalized: true - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDEvalFeed: - batch_size: 1 - use_process: false - fields: ['image', 'im_id', 'gt_box'] - dataset: - dataset_dir: dataset/wider_face - annotation: wider_face_split/wider_face_val_bbx_gt.txt - image_dir: WIDER_val/images - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] - -SSDTestFeed: - batch_size: 1 - use_process: false - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 640, 640] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 640 - use_cv2: false - - !Permute {} - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [127.502231, 127.502231, 127.502231] diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml deleted file mode 100644 index c72c34d4da8ce429932069d5084f4e710ddba11b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_1x.yml +++ /dev/null @@ -1,115 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -use_gpu: true -max_iters: 180000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 10000 -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r101_1x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 101 - feature_maps: 4 - freeze_at: 2 - -ResNetC5: - depth: 101 - norm_type: affine_channel - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - use_random: true - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - sampling_ratio: 0 - spatial_scale: 0.0625 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index c11d6f2141a9b15c6a3ef2c50055fbc753338d53..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_1x.yml +++ /dev/null @@ -1,136 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: http://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -weights: output/faster_rcnn_r101_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml deleted file mode 100644 index 29838c78b60bddb7a92193088354fe0956e2d14b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_fpn_2x.yml +++ /dev/null @@ -1,136 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: http://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -weights: output/faster_rcnn_r101_fpn_2x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml deleted file mode 100644 index 2ef717ffc846d325a6e3f3c9b78752250d692f9d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_1x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/faster_rcnn_r101_vd_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml deleted file mode 100644 index 763d447c8cfb59c6fcd3045b0e8a34b8da38e73e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r101_vd_fpn_2x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/faster_rcnn_r101_vd_fpn_2x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml deleted file mode 100644 index 12d349612b3464cff0b945535a8d81a53b434a98..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_1x.yml +++ /dev/null @@ -1,115 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -use_gpu: true -max_iters: 180000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 10000 -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_1x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: 4 - freeze_at: 2 - -ResNetC5: - depth: 50 - norm_type: affine_channel - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - use_random: true - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - sampling_ratio: 0 - spatial_scale: 0.0625 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index 255cd02663845235beac103dad7faaaf03bb90f2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_2x.yml +++ /dev/null @@ -1,115 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -use_gpu: true -max_iters: 360000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 10000 -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_2x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: 4 - freeze_at: 2 - -ResNetC5: - depth: 50 - norm_type: affine_channel - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - use_random: true - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - sampling_ratio: 0 - spatial_scale: 0.0625 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index c719106104f1424008db3a079e2e1ac7a3d742b9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -use_gpu: true -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_fpn_1x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: bn - norm_decay: 0. - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_lo: 0.0 - bg_thresh_hi: 0.5 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml deleted file mode 100644 index 12ae624f6c642ff439a21a90a4f52d1da046c164..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_fpn_2x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -use_gpu: true -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_fpn_2x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: affine_channel - norm_decay: 0. - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_lo: 0.0 - bg_thresh_hi: 0.5 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml deleted file mode 100644 index f39a144a431f5998a8178c41c10ade796d270cb6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_1x.yml +++ /dev/null @@ -1,117 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -use_gpu: true -max_iters: 180000 -log_smooth_window: 20 -save_dir: output/faster-r50-vd-c4-1x -snapshot_iter: 10000 -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_vd_1x/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: 4 - freeze_at: 2 - variant: d - -ResNetC5: - depth: 50 - norm_type: affine_channel - variant: d - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - use_random: true - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - sampling_ratio: 0 - spatial_scale: 0.0625 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index 4b944ef9398b3dfebdc4f3731b8ef2522d103e22..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_r50_vd_fpn_2x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_pretrained.tar -weights: output/faster_rcnn_r50_vd_fpn_2x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 2 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml b/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml deleted file mode 100644 index c3dd761e6637f568c32d30af2300d87fe5f600ac..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_se154_vd_fpn_s1x.yml +++ /dev/null @@ -1,139 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 260000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/SENet154_vd_pretrained.tar -weights: output/faster_rcnn_se154_vd_fpn_s1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: SENet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -SENet: - depth: 152 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [200000, 240000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 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 deleted file mode 100644 index adb607b6e022f3c7c66c121922e2d28e4ba3e1d0..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,142 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/faster_rcnn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - values: null - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: true - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: false 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 deleted file mode 100644 index ee36efbe859ab42d7391d2867bf34d45b20b340f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/faster_rcnn_x101_vd_64x4d_fpn_2x.yml +++ /dev/null @@ -1,141 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/faster_rcnn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -FasterRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: true - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - shuffle: false diff --git a/PaddleCV/PaddleDetection/configs/gn/cascade_mask_rcnn_r50_fpn_gn_2x.yml b/PaddleCV/PaddleDetection/configs/gn/cascade_mask_rcnn_r50_fpn_gn_2x.yml deleted file mode 100644 index 52c61ad4b57bf1464fe9e2816cec710563a9d707..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/gn/cascade_mask_rcnn_r50_fpn_gn_2x.yml +++ /dev/null @@ -1,147 +0,0 @@ -architecture: CascadeMaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/cascade_mask_rcnn_r50_fpn_gn_2x/model_final/ -metric: COCO -num_classes: 81 - -CascadeMaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - mask_head: MaskHead - mask_assigner: MaskAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - norm_type: gn - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - norm_type: gn - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_hi: [0.5, 0.6, 0.7] - bg_thresh_lo: [0.0, 0.0, 0.0] - fg_fraction: 0.25 - fg_thresh: [0.5, 0.6, 0.7] - -MaskAssigner: - resolution: 28 - -CascadeBBoxHead: - head: CascadeXConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeXConvNormHead: - norm_type: gn - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/gn/faster_rcnn_r50_fpn_gn_2x.yml b/PaddleCV/PaddleDetection/configs/gn/faster_rcnn_r50_fpn_gn_2x.yml deleted file mode 100644 index a86deb4f6efab685cce14a329bd3b79f14ba36d8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/gn/faster_rcnn_r50_fpn_gn_2x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: FasterRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/faster_rcnn_r50_fpn_gn/model_final -num_classes: 81 - -FasterRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - norm_type: gn - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_lo: 0.0 - bg_thresh_hi: 0.5 - fg_fraction: 0.25 - fg_thresh: 0.5 - -BBoxHead: - head: XConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -XConvNormHead: - norm_type: gn - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 16 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/gn/mask_rcnn_r50_fpn_gn_2x.yml b/PaddleCV/PaddleDetection/configs/gn/mask_rcnn_r50_fpn_gn_2x.yml deleted file mode 100644 index bffe3ba45a78d5ddcbeb20fa15a85ebd9f034532..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/gn/mask_rcnn_r50_fpn_gn_2x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/mask_rcnn_r50_fpn_gn_2x/model_final/ -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - norm_type: gn - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - norm_type: gn - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: XConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -XConvNormHead: - norm_type: gn - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml deleted file mode 100644 index 12229a074fbcf1549a3d7581fcd91bd6c124d516..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_fpn_1x.yml +++ /dev/null @@ -1,143 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 180000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r101_fpn_1x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml deleted file mode 100644 index 91bb40c2f0d920ca1961e93a5e7adf804ff28d1b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r101_vd_fpn_1x.yml +++ /dev/null @@ -1,144 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_vd_pretrained.tar -weights: output/mask_rcnn_r101_vd_fpn_1x/model_final -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml deleted file mode 100644 index 6c3dd8418e55c899c1ea0e0bc7db1d39d9a0be9d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_1x.yml +++ /dev/null @@ -1,123 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 180000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r50_1x/model_final -num_classes: 81 - -MaskRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_assigner: BBoxAssigner - bbox_head: BBoxHead - mask_assigner: MaskAssigner - mask_head: MaskHead - -ResNet: - norm_type: affine_channel - norm_decay: 0. - depth: 50 - feature_maps: 4 - freeze_at: 2 - -ResNetC5: - depth: 50 - norm_type: affine_channel - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - spatial_scale: 0.0625 - sampling_ratio: 0 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - normalized: false - score_threshold: 0.05 - -MaskHead: - dilation: 1 - conv_dim: 256 - resolution: 14 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 14 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index 091b0cf89bfe44e74ac807bfb0f1a7a8ea1a6454..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_2x.yml +++ /dev/null @@ -1,125 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 360000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r50_2x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - rpn_head: RPNHead - roi_extractor: RoIAlign - bbox_assigner: BBoxAssigner - bbox_head: BBoxHead - mask_assigner: MaskAssigner - mask_head: MaskHead - - -ResNet: - norm_type: affine_channel - norm_decay: 0. - depth: 50 - feature_maps: 4 - freeze_at: 2 - -ResNetC5: - depth: 50 - norm_type: affine_channel - -RPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 12000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 6000 - post_nms_top_n: 1000 - -RoIAlign: - resolution: 14 - spatial_scale: 0.0625 - sampling_ratio: 0 - -BBoxHead: - head: ResNetC5 - nms: - keep_top_k: 100 - nms_threshold: 0.5 - normalized: false - score_threshold: 0.05 - -MaskHead: - dilation: 1 - conv_dim: 256 - resolution: 14 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 14 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - #start the warm up from base_lr * start_factor - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - 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 deleted file mode 100644 index a889ea283f445974e11d38479162b388d69ec3ad..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,143 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 180000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r50_fpn_1x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: bn - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml deleted file mode 100644 index 08977bba39b688920f427442c01510f93efa412b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_fpn_2x.yml +++ /dev/null @@ -1,143 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/mask_rcnn_r50_fpn_2x/model_final/ -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml deleted file mode 100644 index 12a5057528eaada329d70058acf3aa9a13727237..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_r50_vd_fpn_2x.yml +++ /dev/null @@ -1,145 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -use_gpu: true -max_iters: 360000 -snapshot_iter: 10000 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_pretrained.tar -metric: COCO -weights: output/mask_rcnn_r50_vd_fpn_2x/model_final/ -num_classes: 81 - -MaskRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNet: - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml deleted file mode 100644 index 4430055712504bfe79252c1614792d05fb46b89b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_se154_vd_fpn_s1x.yml +++ /dev/null @@ -1,147 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 260000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/SENet154_vd_pretrained.tar -weights: output/mask_rcnn_se154_vd_fpn_s1x/model_final/ -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: SENet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -SENet: - depth: 152 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - box_resolution: 7 - sampling_ratio: 2 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [200000, 240000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - # batch size per device - batch_size: 1 - dataset: - dataset_dir: dataset/coco - image_dir: train2017 - annotation: annotations/instances_train2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml deleted file mode 100644 index 75653ce2462e91b3be3290c5e6a5a3c12d816d71..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,146 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 180000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/mask_rcnn_x101_vd_64x4d_fpn_1x/model_final -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml b/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml deleted file mode 100644 index c5a711363330092aee30c2b4d9b08dd899f97beb..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/mask_rcnn_x101_vd_64x4d_fpn_2x.yml +++ /dev/null @@ -1,146 +0,0 @@ -architecture: MaskRCNN -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed -max_iters: 360000 -snapshot_iter: 10000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/mask_rcnn_x101_vd_64x4d_fpn_2x/model_final -metric: COCO -num_classes: 81 - -MaskRCNN: - backbone: ResNeXt - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: BBoxHead - bbox_assigner: BBoxAssigner - -ResNeXt: - depth: 101 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: affine_channel - variant: d - -FPN: - max_level: 6 - min_level: 2 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - aspect_ratios: [0.5, 1.0, 2.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - max_level: 6 - min_level: 2 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - max_level: 5 - min_level: 2 - sampling_ratio: 2 - box_resolution: 7 - mask_resolution: 14 - -MaskHead: - dilation: 1 - conv_dim: 256 - num_convs: 4 - resolution: 28 - -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [0.1, 0.1, 0.2, 0.2] - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - -MaskAssigner: - resolution: 28 - -BBoxHead: - head: TwoFCHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -TwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [240000, 320000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -MaskRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 - -MaskRCNNTestFeed: - batch_size: 1 - dataset: - annotation: annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/obj365/cascade_rcnn_dcnv2_se154_vd_fpn_gn_cas.yml b/PaddleCV/PaddleDetection/configs/obj365/cascade_rcnn_dcnv2_se154_vd_fpn_gn_cas.yml deleted file mode 100644 index be80042520367c1bb2d63ac2998651d789c9e298..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/obj365/cascade_rcnn_dcnv2_se154_vd_fpn_gn_cas.yml +++ /dev/null @@ -1,247 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 500000 -snapshot_iter: 10000 -use_gpu: true -log_iter: 20 -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_coco_pretrained.tar -weights: output/cascade_rcnn_dcnv2_se154_vd_fpn_gn_cas/model_final -metric: COCO -num_classes: 81 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -SENet: - depth: 152 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - freeze_norm: True - variant: d - dcn_v2_stages: [3, 4, 5] - std_senet: True - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - freeze_norm: False - norm_type: gn - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 1024 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: CascadeXConvNormHead - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -CascadeXConvNormHead: - norm_type: gn - -CascadeTwoFCHead: - mlp_dim: 1024 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [400000, 460000] - - !LinearWarmup - start_factor: 0.01 - steps: 2000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/objects365 - annotation: annotations/train.json - image_dir: train - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !RandomFlipImage - is_mask_flip: true - is_normalized: false - prob: 0.5 - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !ResizeImage - interp: 1 - target_size: - - 416 - - 448 - - 480 - - 512 - - 544 - - 576 - - 608 - - 640 - - 672 - - 704 - - 736 - - 768 - - 800 - - 832 - - 864 - - 896 - - 928 - - 960 - - 992 - - 1024 - - 1056 - - 1088 - - 1120 - - 1152 - - 1184 - - 1216 - - 1248 - - 1280 - - 1312 - - 1344 - - 1376 - - 1408 - max_size: 1600 - use_cv2: true - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - num_workers: 4 - class_aware_sampling: true - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/objects365 - annotation: annotations/val.json - image_dir: val - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !ResizeImage - target_size: 800 - max_size: 1333 - interp: 1 - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/obj365/annotations/val.json - sample_transforms: - - !DecodeImage - to_rgb: False - with_mixup: False - - !NormalizeImage - is_channel_first: false - is_scale: False - mean: - - 102.9801 - - 115.9465 - - 122.7717 - std: - - 1.0 - - 1.0 - - 1.0 - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml deleted file mode 100644 index 1864f379830292f1cc6a659995a71783688f61c3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/retinanet_r101_fpn_1x.yml +++ /dev/null @@ -1,105 +0,0 @@ -architecture: RetinaNet -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -use_gpu: true -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet101_pretrained.tar -weights: output/retinanet_r101_fpn_1x/model_final -log_smooth_window: 20 -snapshot_iter: 10000 -metric: COCO -save_dir: output -num_classes: 81 - -RetinaNet: - backbone: ResNet - fpn: FPN - retina_head: RetinaHead - -ResNet: - norm_type: affine_channel - norm_decay: 0. - depth: 101 - feature_maps: [3, 4, 5] - freeze_at: 2 - -FPN: - max_level: 7 - min_level: 3 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125] - has_extra_convs: true - -RetinaHead: - num_convs_per_octave: 4 - num_chan: 256 - max_level: 7 - min_level: 3 - prior_prob: 0.01 - base_scale: 4 - num_scales_per_octave: 3 - anchor_generator: - aspect_ratios: [1.0, 2.0, 0.5] - variance: [1.0, 1.0, 1.0, 1.0] - target_assign: - positive_overlap: 0.5 - negative_overlap: 0.4 - gamma: 2.0 - alpha: 0.25 - sigma: 3.0151134457776365 - output_decoder: - score_thresh: 0.05 - nms_thresh: 0.5 - pre_nms_top_n: 1000 - detections_per_im: 100 - nms_eta: 1.0 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 2 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - dataset: - 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 deleted file mode 100644 index 8c24ef4defd9e947406591a17ae2feb4833c61a1..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/retinanet_r50_fpn_1x.yml +++ /dev/null @@ -1,105 +0,0 @@ -architecture: RetinaNet -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 90000 -use_gpu: true -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/retinanet_r50_fpn_1x/model_final -log_smooth_window: 20 -snapshot_iter: 10000 -metric: COCO -save_dir: output -num_classes: 81 - -RetinaNet: - backbone: ResNet - fpn: FPN - retina_head: RetinaHead - -ResNet: - norm_type: affine_channel - norm_decay: 0. - depth: 50 - feature_maps: [3, 4, 5] - freeze_at: 2 - -FPN: - max_level: 7 - min_level: 3 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125] - has_extra_convs: true - -RetinaHead: - num_convs_per_octave: 4 - num_chan: 256 - max_level: 7 - min_level: 3 - prior_prob: 0.01 - base_scale: 4 - num_scales_per_octave: 3 - anchor_generator: - aspect_ratios: [1.0, 2.0, 0.5] - variance: [1.0, 1.0, 1.0, 1.0] - target_assign: - positive_overlap: 0.5 - negative_overlap: 0.4 - gamma: 2.0 - alpha: 0.25 - sigma: 3.0151134457776365 - output_decoder: - score_thresh: 0.05 - nms_thresh: 0.5 - pre_nms_top_n: 1000 - detections_per_im: 100 - nms_eta: 1.0 - -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/retinanet_x101_vd_64x4d_fpn_1x.yml b/PaddleCV/PaddleDetection/configs/retinanet_x101_vd_64x4d_fpn_1x.yml deleted file mode 100644 index 6cc33fafa485c4a64cefef67ec0d6ab0b237db84..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/retinanet_x101_vd_64x4d_fpn_1x.yml +++ /dev/null @@ -1,108 +0,0 @@ -architecture: RetinaNet -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 180000 -use_gpu: true -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNeXt101_vd_64x4d_pretrained.tar -weights: output/retinanet_x101_vd_64x4d_fpn_1x/model_final -log_smooth_window: 20 -log_iter: 20 -snapshot_iter: 30000 -metric: COCO -save_dir: output -num_classes: 81 - -RetinaNet: - backbone: ResNeXt - fpn: FPN - retina_head: RetinaHead - -ResNeXt: - depth: 101 - feature_maps: [3, 4, 5] - freeze_at: 2 - group_width: 4 - groups: 64 - norm_type: bn - variant: d - -FPN: - max_level: 7 - min_level: 3 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125] - has_extra_convs: true - -RetinaHead: - num_convs_per_octave: 4 - num_chan: 256 - max_level: 7 - min_level: 3 - prior_prob: 0.01 - base_scale: 4 - num_scales_per_octave: 3 - anchor_generator: - aspect_ratios: [1.0, 2.0, 0.5] - variance: [1.0, 1.0, 1.0, 1.0] - target_assign: - positive_overlap: 0.5 - negative_overlap: 0.4 - gamma: 2.0 - alpha: 0.25 - sigma: 3.0151134457776365 - output_decoder: - score_thresh: 0.05 - nms_thresh: 0.5 - pre_nms_top_n: 1000 - detections_per_im: 100 - nms_eta: 1.0 - -LearningRate: - base_lr: 0.005 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [120000, 160000] - - !LinearWarmup - start_factor: 0.1 - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 128 - num_workers: 2 diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml deleted file mode 100644 index a360830f05f4a1d56bdb915fd95e9a905460c8e5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_mobilenet_v1_voc.yml +++ /dev/null @@ -1,80 +0,0 @@ -architecture: SSD -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_coco_pretrained.tar -use_gpu: true -max_iters: 28000 -snapshot_iter: 2000 -log_smooth_window: 1 -metric: VOC -map_type: 11point -save_dir: output -weights: output/ssd_mobilenet_v1_voc/model_final/ -# 20(label_class) + 1(background) -num_classes: 21 - -SSD: - backbone: MobileNet - multi_box_head: MultiBoxHead - output_decoder: - background_label: 0 - keep_top_k: 200 - nms_eta: 1.0 - nms_threshold: 0.45 - nms_top_k: 400 - score_threshold: 0.01 - -MobileNet: - norm_decay: 0. - conv_group_scale: 1 - conv_learning_rate: 0.1 - extra_block_filters: [[256, 512], [128, 256], [128, 256], [64, 128]] - with_extra_blocks: true - -MultiBoxHead: - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2., 3.], [2., 3.]] - base_size: 300 - flip: true - max_ratio: 90 - max_sizes: [[], 150.0, 195.0, 240.0, 285.0, 300.0] - min_ratio: 20 - min_sizes: [60.0, 105.0, 150.0, 195.0, 240.0, 285.0] - offset: 0.5 - -LearningRate: - schedulers: - - !PiecewiseDecay - milestones: [10000, 15000, 20000, 25000] - values: [0.001, 0.0005, 0.00025, 0.0001, 0.00001] - -OptimizerBuilder: - optimizer: - momentum: 0.0 - type: RMSPropOptimizer - regularizer: - factor: 0.00005 - type: L2 - -SSDTrainFeed: - batch_size: 32 - use_process: true - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - -SSDEvalFeed: - batch_size: 64 - use_process: true - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - drop_last: false - -SSDTestFeed: - batch_size: 1 - dataset: - use_default_label: true - drop_last: false diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300.yml deleted file mode 100644 index f5e987bcb156a3a4973f9ae9d376d38597471ce2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300.yml +++ /dev/null @@ -1,149 +0,0 @@ -architecture: SSD -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -use_gpu: true -max_iters: 400000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar -save_dir: output -weights: output/ssd_vgg16_300/model_final -num_classes: 81 - -SSD: - backbone: VGG - multi_box_head: MultiBoxHead - output_decoder: - background_label: 0 - keep_top_k: 200 - nms_eta: 1.0 - nms_threshold: 0.45 - nms_top_k: 400 - score_threshold: 0.01 - -VGG: - depth: 16 - with_extra_blocks: true - normalizations: [20., -1, -1, -1, -1, -1] - -MultiBoxHead: - base_size: 300 - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2.], [2.]] - min_ratio: 15 - max_ratio: 90 - min_sizes: [30.0, 60.0, 111.0, 162.0, 213.0, 264.0] - max_sizes: [60.0, 111.0, 162.0, 213.0, 264.0, 315.0] - steps: [8, 16, 32, 64, 100, 300] - offset: 0.5 - flip: true - kernel_size: 3 - pad: 1 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [280000, 360000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - mean: [104, 117, 123] - prob: 0.5 - - !CropImage - avoid_no_bbox: true - batch_sampler: - - [1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0] - satisfy_all: false - - !ResizeImage - interp: 1 - target_size: 300 - use_cv2: false - - !RandomFlipImage - is_normalized: true - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDEvalFeed: - batch_size: 16 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - drop_last: false - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 300 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - max_size: 0 - target_size: 300 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml deleted file mode 100644 index 36c0537591f7771eb9c4814cdd8e4c77338e6a9f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_300_voc.yml +++ /dev/null @@ -1,151 +0,0 @@ -architecture: SSD -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -use_gpu: true -max_iters: 120001 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: VOC -map_type: 11point -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar -save_dir: output -weights: output/ssd_vgg16_300_voc/model_final/ -# 20(label_class) + 1(background) -num_classes: 21 - -SSD: - backbone: VGG - multi_box_head: MultiBoxHead - output_decoder: - background_label: 0 - keep_top_k: 200 - nms_eta: 1.0 - nms_threshold: 0.45 - nms_top_k: 400 - score_threshold: 0.01 - -VGG: - depth: 16 - with_extra_blocks: true - normalizations: [20., -1, -1, -1, -1, -1] - -MultiBoxHead: - base_size: 300 - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2.], [2.]] - min_ratio: 20 - max_ratio: 90 - min_sizes: [30.0, 60.0, 111.0, 162.0, 213.0, 264.0] - max_sizes: [60.0, 111.0, 162.0, 213.0, 264.0, 315.0] - steps: [8, 16, 32, 64, 100, 300] - offset: 0.5 - flip: true - min_max_aspect_ratios_order: true - kernel_size: 3 - pad: 1 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [80000, 100000] - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - mean: [104, 117, 123] - prob: 0.5 - - !CropImage - avoid_no_bbox: true - batch_sampler: - - [1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0] - satisfy_all: false - - !ResizeImage - interp: 1 - target_size: 300 - use_cv2: False - - !RandomFlipImage - is_normalized: true - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDEvalFeed: - batch_size: 32 - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - drop_last: false - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 300 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDTestFeed: - batch_size: 1 - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 300, 300] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - max_size: 0 - target_size: 300 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512.yml deleted file mode 100644 index 6214327642bfe3beb09e28cd7dbe891e8d49b848..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512.yml +++ /dev/null @@ -1,151 +0,0 @@ -architecture: SSD -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -use_gpu: true -max_iters: 400000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar -save_dir: output -weights: output/ssd_vgg16_512/model_final -num_classes: 81 - -SSD: - backbone: VGG - multi_box_head: MultiBoxHead - output_decoder: - background_label: 0 - keep_top_k: 200 - nms_eta: 1.0 - nms_threshold: 0.45 - nms_top_k: 400 - score_threshold: 0.01 - -VGG: - depth: 16 - with_extra_blocks: true - normalizations: [20., -1, -1, -1, -1, -1, -1] - extra_block_filters: [[256, 512, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 1, 4]] - - -MultiBoxHead: - base_size: 512 - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2., 3.], [2.], [2.]] - min_ratio: 15 - max_ratio: 90 - min_sizes: [20.0, 51.0, 133.0, 215.0, 296.0, 378.0, 460.0] - max_sizes: [51.0, 133.0, 215.0, 296.0, 378.0, 460.0, 542.0] - steps: [8, 16, 32, 64, 128, 256, 512] - offset: 0.5 - flip: true - kernel_size: 3 - pad: 1 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [280000, 360000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - mean: [104, 117, 123] - prob: 0.5 - - !CropImage - avoid_no_bbox: true - batch_sampler: - - [1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0] - satisfy_all: false - - !ResizeImage - interp: 1 - target_size: 512 - use_cv2: false - - !RandomFlipImage - is_normalized: true - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDEvalFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - drop_last: false - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - target_size: 512 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] - -SSDTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - max_size: 0 - target_size: 512 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [104, 117, 123] - std: [1, 1, 1] diff --git a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml b/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml deleted file mode 100644 index b2028e0b11e6d05d061788315de2630ac0ede52e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/ssd/ssd_vgg16_512_voc.yml +++ /dev/null @@ -1,155 +0,0 @@ -architecture: SSD -train_feed: SSDTrainFeed -eval_feed: SSDEvalFeed -test_feed: SSDTestFeed -use_gpu: true -max_iters: 120000 -snapshot_iter: 10000 -log_smooth_window: 20 -log_iter: 20 -metric: VOC -map_type: 11point -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar -save_dir: output -weights: output/ssd_vgg16_512_voc/model_final/ -# 20(label_class) + 1(background) -num_classes: 21 - -SSD: - backbone: VGG - multi_box_head: MultiBoxHead - output_decoder: - background_label: 0 - keep_top_k: 200 - nms_eta: 1.0 - nms_threshold: 0.45 - nms_top_k: 400 - score_threshold: 0.01 - -VGG: - depth: 16 - with_extra_blocks: true - normalizations: [20., -1, -1, -1, -1, -1, -1] - extra_block_filters: [[256, 512, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 2, 3], [128, 256, 1, 1, 4]] - - -MultiBoxHead: - base_size: 512 - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2., 3.], [2.], [2.]] - min_ratio: 20 - max_ratio: 90 - min_sizes: [20.0, 51.0, 133.0, 215.0, 296.0, 378.0, 460.0] - max_sizes: [51.0, 133.0, 215.0, 296.0, 378.0, 460.0, 542.0] - steps: [8, 16, 32, 64, 128, 256, 512] - offset: 0.5 - flip: true - kernel_size: 3 - pad: 1 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [80000, 100000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -SSDTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !RandomDistort - brightness_lower: 0.875 - brightness_upper: 1.125 - is_order: true - - !ExpandImage - max_ratio: 4 - mean: [123, 117, 104] - prob: 0.5 - - !CropImage - avoid_no_bbox: true - batch_sampler: - - [1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0] - satisfy_all: false - - !ResizeImage - interp: 1 - target_size: 512 - use_cv2: false - - !RandomFlipImage - is_normalized: true - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [123, 117, 104] - std: [1, 1, 1] - -SSDEvalFeed: - batch_size: 32 - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - drop_last: false - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ResizeImage - interp: 1 - target_size: 512 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [123, 117, 104] - std: [1, 1, 1] - -SSDTestFeed: - batch_size: 1 - dataset: - use_default_label: true - drop_last: false - image_shape: [3, 512, 512] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 1 - max_size: 0 - target_size: 512 - use_cv2: false - - !Permute - to_bgr: false - - !NormalizeImage - is_scale: false - mean: [123, 117, 104] - std: [1, 1, 1] diff --git a/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml b/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml deleted file mode 100644 index 9a1c243b8b245c4d0cb60e6ea9f57778e896d263..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml +++ /dev/null @@ -1,82 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 500200 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar -weights: output/yolov3_darknet/model_final -num_classes: 80 - -YOLOv3: - backbone: DarkNet - yolo_head: YOLOv3Head - -DarkNet: - norm_type: sync_bn - norm_decay: 0. - depth: 53 - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: true - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 400000 - - 450000 - - !LinearWarmup - start_factor: 0. - steps: 4000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 8 - bufsize: 128 - use_process: true - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml deleted file mode 100644 index 876d380ffcd4f59bcdeebd8fa0e51e98a1e58f93..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_darknet_voc.yml +++ /dev/null @@ -1,84 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 70000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: VOC -map_type: 11point -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar -weights: output/yolov3_darknet_voc/model_final -num_classes: 20 - -YOLOv3: - backbone: DarkNet - yolo_head: YOLOv3Head - -DarkNet: - norm_type: sync_bn - norm_decay: 0. - depth: 53 - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: false - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 55000 - - 62000 - - !LinearWarmup - start_factor: 0. - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - num_workers: 8 - bufsize: 128 - use_process: true - mixup_epoch: 250 - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - use_default_label: true diff --git a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml deleted file mode 100644 index 3e622025b587b56c6e79dd3a1cf1cbba00901406..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1.yml +++ /dev/null @@ -1,83 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 500200 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: COCO -pretrain_weights: http://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV1_pretrained.tar -weights: output/yolov3_mobilenet_v1/model_final -num_classes: 80 - -YOLOv3: - backbone: MobileNet - yolo_head: YOLOv3Head - -MobileNet: - norm_type: sync_bn - norm_decay: 0. - conv_group_scale: 1 - with_extra_blocks: false - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: true - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 400000 - - 450000 - - !LinearWarmup - start_factor: 0. - steps: 4000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 8 - bufsize: 128 - use_process: true - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_fruit.yml b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_fruit.yml deleted file mode 100644 index c89aefc4199123c3ec764e798a15bbb4775a3298..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_fruit.yml +++ /dev/null @@ -1,122 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 20000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 200 -metric: VOC -map_type: 11point -pretrain_weights: https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar -weights: output/yolov3_mobilenet_v1_fruit/best_model -num_classes: 3 -finetune_exclude_pretrained_params: ['yolo_output'] - -YOLOv3: - backbone: MobileNet - yolo_head: YOLOv3Head - -MobileNet: - norm_type: sync_bn - norm_decay: 0. - conv_group_scale: 1 - with_extra_blocks: false - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: true - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.00001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 15000 - - 18000 - - !LinearWarmup - start_factor: 0. - steps: 100 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/fruit - annotation: fruit-detection/train.txt - use_default_label: false - num_workers: 16 - bufsize: 128 - use_process: true - mixup_epoch: -1 - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !NormalizeBox {} - - !ExpandImage - max_ratio: 4.0 - mean: [123.675, 116.28, 103.53] - prob: 0.5 - - !RandomInterpImage - max_size: 0 - target_size: 608 - - !RandomFlipImage - is_mask_flip: false - is_normalized: true - prob: 0.5 - - !NormalizeImage - is_channel_first: false - is_scale: true - mean: - - 0.485 - - 0.456 - - 0.406 - std: - - 0.229 - - 0.224 - - 0.225 - - !Permute - channel_first: true - to_bgr: false - batch_transforms: - - !RandomShape - sizes: [608] - with_background: false - -YoloEvalFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/fruit - annotation: fruit-detection/val.txt - use_default_label: false - - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/fruit - use_default_label: false diff --git a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml deleted file mode 100644 index 63e4cbea93f8a89b4f7890d4ecf66213eb578f66..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_mobilenet_v1_voc.yml +++ /dev/null @@ -1,85 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 70000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: VOC -map_type: 11point -pretrain_weights: http://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV1_pretrained.tar -weights: output/yolov3_mobilenet_v1_voc/model_final -num_classes: 20 - -YOLOv3: - backbone: MobileNet - yolo_head: YOLOv3Head - -MobileNet: - norm_type: sync_bn - norm_decay: 0. - conv_group_scale: 1 - with_extra_blocks: false - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: false - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 55000 - - 62000 - - !LinearWarmup - start_factor: 0. - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - num_workers: 8 - bufsize: 128 - use_process: true - mixup_epoch: 250 - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - use_default_label: true diff --git a/PaddleCV/PaddleDetection/configs/yolov3_r34.yml b/PaddleCV/PaddleDetection/configs/yolov3_r34.yml deleted file mode 100644 index e864f8fd92d2f671c442f3beecd8344171952e48..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_r34.yml +++ /dev/null @@ -1,85 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 500200 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar -weights: output/yolov3_r34/model_final -num_classes: 80 - -YOLOv3: - backbone: ResNet - yolo_head: YOLOv3Head - -ResNet: - norm_type: sync_bn - freeze_at: 0 - freeze_norm: false - norm_decay: 0. - depth: 34 - feature_maps: [3, 4, 5] - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: true - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 400000 - - 450000 - - !LinearWarmup - start_factor: 0. - steps: 4000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 8 - bufsize: 128 - use_process: true - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - annotation: dataset/coco/annotations/instances_val2017.json diff --git a/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml b/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml deleted file mode 100644 index aa152e8fe88fb5eb3a86ac5b1623ce940ad81b1e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/configs/yolov3_r34_voc.yml +++ /dev/null @@ -1,87 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 70000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: VOC -map_type: 11point -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar -weights: output/yolov3_r34_voc/model_final -num_classes: 20 - -YOLOv3: - backbone: ResNet - yolo_head: YOLOv3Head - -ResNet: - norm_type: sync_bn - freeze_at: 0 - freeze_norm: false - norm_decay: 0. - depth: 34 - feature_maps: [3, 4, 5] - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: false - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 55000 - - 62000 - - !LinearWarmup - start_factor: 0. - steps: 1000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/voc - annotation: trainval.txt - use_default_label: true - num_workers: 8 - bufsize: 128 - use_process: true - mixup_epoch: 250 - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/voc - annotation: test.txt - use_default_label: true - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - use_default_label: true diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/001.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/001.png deleted file mode 100644 index 63ae9167fd03e8a95756fe5f6195fc8d741b9cfa..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/001.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/002.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/002.png deleted file mode 100644 index 0de905cf55e6b02487ee1b8220810df8eaa24c2c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/002.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/003.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/003.png deleted file mode 100644 index e9026e099df42d4267be07a71401eb5426b47745..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/003.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/004.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/004.png deleted file mode 100644 index d8118ec3e0ef63bc74e825b5e7638a1886580604..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/004.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/001.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/001.png deleted file mode 100644 index 5194d6ff891b9507fedfc53f36de4f00219c7f30..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/001.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/004.png b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/004.png deleted file mode 100644 index 7c62be5051f9a47c5f5e98ccd9f45c3fa5f30257..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/demo/output/004.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian.json b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian.json deleted file mode 100644 index f72fe6dc65209ab3506d18556fb8b83b6ec832a9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "images": [], - "annotations": [], - "categories": [ - { - "supercategory": "component", - "id": 1, - "name": "pedestrian" - } - ] -} diff --git a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian_yolov3_darknet.yml b/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian_yolov3_darknet.yml deleted file mode 100644 index adc9109aa356e109afc81bea13b856ce0f4be448..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/PedestrianDetection/pedestrian_yolov3_darknet.yml +++ /dev/null @@ -1,82 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 200000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 5000 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar -weights: https://paddlemodels.bj.bcebos.com/object_detection/pedestrian_yolov3_darknet.tar -num_classes: 1 - -YOLOv3: - backbone: DarkNet - yolo_head: YOLOv3Head - -DarkNet: - norm_type: sync_bn - norm_decay: 0. - depth: 53 - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: true - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 150000 - - 180000 - - !LinearWarmup - start_factor: 0. - steps: 4000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/pedestrian - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 8 - bufsize: 128 - use_process: true - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/pedestrian - annotation: annotations/instances_val2017.json - image_dir: val2017 - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - annotation: contrib/PedestrianDetection/pedestrian.json diff --git a/PaddleCV/PaddleDetection/contrib/README.md b/PaddleCV/PaddleDetection/contrib/README.md deleted file mode 100644 index fbb55512acec372fa31d2955afe65cbc8abf7b2e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# PaddleDetection applied for specific scenarios - -We provide some models implemented by PaddlePaddle to detect objects in specific scenarios, users can download the models and use them in these scenarios. - -| Task | Algorithm | Box AP | Download | -|:---------------------|:---------:|:------:| :-------------------------------------------------------------------------------------: | -| Vehicle Detection | YOLOv3 | 54.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/vehicle_yolov3_darknet.tar) | -| Pedestrian Detection | YOLOv3 | 51.8 | [model](https://paddlemodels.bj.bcebos.com/object_detection/pedestrian_yolov3_darknet.tar) | - -## Vehicle Detection - -One of major applications of vehichle detection is traffic monitoring. In this scenary, vehicles to be detected are mostly captured by the cameras mounted on top of traffic light columns. - -### 1. Network - -The network for detecting vehicles is YOLOv3, the backbone of which is Dacknet53. - -### 2. Configuration for training - -PaddleDetection provides users with a configuration file [yolov3_darnet.yml](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml) to train YOLOv3 on the COCO dataset, compared with this file, we modify some parameters as followed to conduct the training for vehicle detection: - -* max_iters: 120000 -* num_classes: 6 -* anchors: [[8, 9], [10, 23], [19, 15], [23, 33], [40, 25], [54, 50], [101, 80], [139, 145], [253, 224]] -* label_smooth: false -* nms/nms_top_k: 400 -* nms/score_threshold: 0.005 -* milestones: [60000, 80000] -* dataset_dir: dataset/vehicle - -### 3. Accuracy - -The accuracy of the model trained and evaluated on our private data is shown as followed: - -AP at IoU=.50:.05:.95 is 0.545. - -AP at IoU=.50 is 0.764. - -### 4. Inference - -Users can employ the model to conduct the inference: - -``` -export CUDA_VISIBLE_DEVICES=0 -export PYTHONPATH=$PYTHONPATH:. -python -u tools/infer.py -c contrib/VehicleDetection/vehicle_yolov3_darknet.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/vehicle_yolov3_darknet.tar \ - --infer_dir contrib/VehicleDetection/demo \ - --draw_threshold 0.2 \ - --output_dir contrib/VehicleDetection/demo/output - -``` - -Some inference results are visualized below: - -![](VehicleDetection/demo/output/001.jpeg) - -![](VehicleDetection/demo/output/005.png) - -## Pedestrian Detection - -The main applications of pedetestrian detection include intelligent monitoring. In this scenary, photos of pedetestrians are taken by surveillance cameras in public areas, then pedestrian detection are conducted on these photos. - -### 1. Network - -The network for detecting vehicles is YOLOv3, the backbone of which is Dacknet53. - -### 2. Configuration for training - -PaddleDetection provides users with a configuration file [yolov3_darnet.yml](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml) to train YOLOv3 on the COCO dataset, compared with this file, we modify some parameters as followed to conduct the training for pedestrian detection: - -* max_iters: 200000 -* num_classes: 1 -* snapshot_iter: 5000 -* milestones: [150000, 180000] -* dataset_dir: dataset/pedestrian - -### 3. Accuracy - -The accuracy of the model trained and evaluted on our private data is shown as followed: - -AP at IoU=.50:.05:.95 is 0.518. - -AP at IoU=.50 is 0.792. - -### 4. Inference - -Users can employ the model to conduct the inference: - -``` -export CUDA_VISIBLE_DEVICES=0 -export PYTHONPATH=$PYTHONPATH:. -python -u tools/infer.py -c contrib/PedestrianDetection/pedestrian_yolov3_darknet.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/pedestrian_yolov3_darknet.tar \ - --infer_dir contrib/PedestrianDetection/demo \ - --draw_threshold 0.3 \ - --output_dir contrib/PedestrianDetection/demo/output -``` - -Some inference results are visualized below: - -![](PedestrianDetection/demo/output/001.png) - -![](PedestrianDetection/demo/output/004.png) diff --git a/PaddleCV/PaddleDetection/contrib/README_cn.md b/PaddleCV/PaddleDetection/contrib/README_cn.md deleted file mode 100644 index 92fc25ece0ca62c0255582208706e8a773f80e5a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/README_cn.md +++ /dev/null @@ -1,106 +0,0 @@ -# PaddleDetection 特色垂类检测模型 - -我们提供了针对不同场景的基于PaddlePaddle的检测模型,用户可以下载模型进行使用。 - -| 任务 | 算法 | 精度(Box AP) | 下载 | -|:---------------------|:---------:|:------:| :---------------------------------------------------------------------------------: | -| 车辆检测 | YOLOv3 | 54.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/vehicle_yolov3_darknet.tar) | -| 行人检测 | YOLOv3 | 51.8 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/pedestrian_yolov3_darknet.tar) | - - -## 车辆检测(Vehicle Detection) - -车辆检测的主要应用之一是交通监控。在这样的监控场景中,待检测的车辆多为道路红绿灯柱上的摄像头拍摄所得。 - -### 1. 模型结构 - -Backbone为Dacknet53的YOLOv3。 - -### 2. 训练参数配置 - -PaddleDetection提供了使用COCO数据集对YOLOv3进行训练的参数配置文件[yolov3_darnet.yml](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml),与之相比,在进行车辆检测的模型训练时,我们对以下参数进行了修改: - -* max_iters: 120000 -* num_classes: 6 -* anchors: [[8, 9], [10, 23], [19, 15], [23, 33], [40, 25], [54, 50], [101, 80], [139, 145], [253, 224]] -* label_smooth: false -* nms/nms_top_k: 400 -* nms/score_threshold: 0.005 -* milestones: [60000, 80000] -* dataset_dir: dataset/vehicle - -### 3. 精度指标 - -模型在我们内部数据上的精度指标为: - -IOU=.50:.05:.95时的AP为 0.545。 - -IOU=.5时的AP为 0.764。 - -### 4. 预测 - -用户可以使用我们训练好的模型进行车辆检测: - -``` -export CUDA_VISIBLE_DEVICES=0 -export PYTHONPATH=$PYTHONPATH:. -python -u tools/infer.py -c contrib/VehicleDetection/vehicle_yolov3_darknet.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/vehicle_yolov3_darknet.tar \ - --infer_dir contrib/VehicleDetection/demo \ - --draw_threshold 0.2 \ - --output_dir contrib/VehicleDetection/demo/output - -``` - -预测结果示例: - -![](VehicleDetection/demo/output/001.jpeg) - -![](VehicleDetection/demo/output/005.png) - -## 行人检测(Pedestrian Detection) - -行人检测的主要应用有智能监控。在监控场景中,大多是从公共区域的监控摄像头视角拍摄行人,获取图像后再进行行人检测。 - -### 1. 模型结构 - -Backbone为Dacknet53的YOLOv3。 - - -### 2. 训练参数配置 - -PaddleDetection提供了使用COCO数据集对YOLOv3进行训练的参数配置文件[yolov3_darnet.yml](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/configs/yolov3_darknet.yml),与之相比,在进行行人检测的模型训练时,我们对以下参数进行了修改: - -* max_iters: 200000 -* num_classes: 1 -* snapshot_iter: 5000 -* milestones: [150000, 180000] -* dataset_dir: dataset/pedestrian - -### 2. 精度指标 - -模型在我们针对监控场景的内部数据上精度指标为: - -IOU=.5时的AP为 0.792。 - -IOU=.5-.95时的AP为 0.518。 - -### 3. 预测 - -用户可以使用我们训练好的模型进行行人检测: - -``` -export CUDA_VISIBLE_DEVICES=0 -export PYTHONPATH=$PYTHONPATH:. -python -u tools/infer.py -c contrib/PedestrianDetection/pedestrian_yolov3_darknet.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/pedestrian_yolov3_darknet.tar \ - --infer_dir contrib/PedestrianDetection/demo \ - --draw_threshold 0.3 \ - --output_dir contrib/PedestrianDetection/demo/output -``` - -预测结果示例: - -![](PedestrianDetection/demo/output/001.png) - -![](PedestrianDetection/demo/output/004.png) diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/001.jpeg b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/001.jpeg deleted file mode 100644 index 8786db5eb6773931c363358bb39462b33db55369..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/001.jpeg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/003.png b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/003.png deleted file mode 100644 index c01ab4ce769fb3b1c8863093a35d27da0ab10efd..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/003.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/004.png b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/004.png deleted file mode 100644 index 8907eb8d4d9b82e08ca214509c9fb41ca889db2a..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/004.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/005.png b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/005.png deleted file mode 100644 index bf17712809c2fe6fa8e7d4f093ec4ac94523537c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/005.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/001.jpeg b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/001.jpeg deleted file mode 100644 index aa2b679d4d2a73487edd5f9c67323ab18df93893..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/001.jpeg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/005.png b/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/005.png deleted file mode 100644 index 57f918a30fcc5bf7bda284c1a1a0304e8822d325..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/contrib/VehicleDetection/demo/output/005.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle.json b/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle.json deleted file mode 100644 index 5863a9a8c9e0d8b4daeff31e7fe7869e084d3fb4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "images": [], - "annotations": [], - "categories": [ - { - "supercategory": "component", - "id": 1, - "name": "car" - }, - { - "supercategory": "component", - "id": 2, - "name": "truck" - }, - { - "supercategory": "component", - "id": 3, - "name": "bus" - }, - { - "supercategory": "component", - "id": 4, - "name": "motorbike" - }, - { - "supercategory": "component", - "id": 5, - "name": "tricycle" - }, - { - "supercategory": "component", - "id": 6, - "name": "carplate" - } - ] -} diff --git a/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle_yolov3_darknet.yml b/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle_yolov3_darknet.yml deleted file mode 100644 index 6a923a0c109a30ed2e247fc7204e81ef0a82eef4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/contrib/VehicleDetection/vehicle_yolov3_darknet.yml +++ /dev/null @@ -1,82 +0,0 @@ -architecture: YOLOv3 -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed -use_gpu: true -max_iters: 120000 -log_smooth_window: 20 -save_dir: output -snapshot_iter: 2000 -metric: COCO -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar -weights: https://paddlemodels.bj.bcebos.com/object_detection/vehicle_yolov3_darknet.tar -num_classes: 6 - -YOLOv3: - backbone: DarkNet - yolo_head: YOLOv3Head - -DarkNet: - norm_type: sync_bn - norm_decay: 0. - depth: 53 - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[8, 9], [10, 23], [19, 15], - [23, 33], [40, 25], [54, 50], - [101, 80], [139, 145], [253, 224]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: false - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 400 - normalized: false - score_threshold: 0.005 - -LearningRate: - base_lr: 0.001 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 60000 - - 80000 - - !LinearWarmup - start_factor: 0. - steps: 4000 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0005 - type: L2 - -YoloTrainFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/vehicle - annotation: annotations/instances_train2017.json - image_dir: train2017 - num_workers: 8 - bufsize: 128 - use_process: true - -YoloEvalFeed: - batch_size: 8 - image_shape: [3, 608, 608] - dataset: - dataset_dir: dataset/vehicle - annotation: annotations/instances_val2017.json - image_dir: val2017 - -YoloTestFeed: - batch_size: 1 - image_shape: [3, 608, 608] - dataset: - annotation: contrib/VehicleDetection/vehicle.json diff --git a/PaddleCV/PaddleDetection/dataset/coco/download_coco.py b/PaddleCV/PaddleDetection/dataset/coco/download_coco.py deleted file mode 100644 index 2b4f7e764e17296ccd8905478bf3ccb3818b909f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/coco/download_coco.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import sys -import os.path as osp -import logging - -from ppdet.utils.download import download_dataset - -logging.basicConfig(level=logging.INFO) - -download_path = osp.split(osp.realpath(sys.argv[0]))[0] -download_dataset(download_path, 'coco') diff --git a/PaddleCV/PaddleDetection/dataset/fruit/download_fruit.py b/PaddleCV/PaddleDetection/dataset/fruit/download_fruit.py deleted file mode 100644 index 5cce18895af3eeb81c4e49f4897cc591b2f40f9b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/fruit/download_fruit.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import sys -import os.path as osp -import logging - -from ppdet.utils.download import download_dataset - -logging.basicConfig(level=logging.INFO) - -download_path = osp.split(osp.realpath(sys.argv[0]))[0] -download_dataset(download_path, 'fruit') diff --git a/PaddleCV/PaddleDetection/dataset/voc/create_list.py b/PaddleCV/PaddleDetection/dataset/voc/create_list.py deleted file mode 100644 index 1a237493bd50d7be3ee2ab5275159fc5783e5f59..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/voc/create_list.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import sys -import os.path as osp -import logging - -from ppdet.utils.download import create_voc_list - -logging.basicConfig(level=logging.INFO) - -voc_path = osp.split(osp.realpath(sys.argv[0]))[0] -create_voc_list(voc_path) diff --git a/PaddleCV/PaddleDetection/dataset/voc/download_voc.py b/PaddleCV/PaddleDetection/dataset/voc/download_voc.py deleted file mode 100644 index e7f32657f1697bd82f0f7dfbb52a3d1cb987c4bd..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/voc/download_voc.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import sys -import os.path as osp -import logging - -from ppdet.utils.download import download_dataset - -logging.basicConfig(level=logging.INFO) - -download_path = osp.split(osp.realpath(sys.argv[0]))[0] -download_dataset(download_path, 'voc') diff --git a/PaddleCV/PaddleDetection/dataset/voc/label_list.txt b/PaddleCV/PaddleDetection/dataset/voc/label_list.txt deleted file mode 100644 index 8420ab35ede7400974f25836a6bb543024686a0e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/voc/label_list.txt +++ /dev/null @@ -1,20 +0,0 @@ -aeroplane -bicycle -bird -boat -bottle -bus -car -cat -chair -cow -diningtable -dog -horse -motorbike -person -pottedplant -sheep -sofa -train -tvmonitor diff --git a/PaddleCV/PaddleDetection/dataset/wider_face/download.sh b/PaddleCV/PaddleDetection/dataset/wider_face/download.sh deleted file mode 100755 index 6c86a22c6826d88846a16fbd43f8b556d8610b8f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/dataset/wider_face/download.sh +++ /dev/null @@ -1,21 +0,0 @@ -# All rights `PaddleDetection` reserved -# References: -# @inproceedings{yang2016wider, -# Author = {Yang, Shuo and Luo, Ping and Loy, Chen Change and Tang, Xiaoou}, -# Booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, -# Title = {WIDER FACE: A Face Detection Benchmark}, -# Year = {2016}} - -DIR="$( cd "$(dirname "$0")" ; pwd -P )" -cd "$DIR" - -# Download the data. -echo "Downloading..." -wget https://dataset.bj.bcebos.com/wider_face/WIDER_train.zip -wget https://dataset.bj.bcebos.com/wider_face/WIDER_val.zip -wget https://dataset.bj.bcebos.com/wider_face/wider_face_split.zip -# Extract the data. -echo "Extracting..." -unzip WIDER_train.zip -unzip WIDER_val.zip -unzip wider_face_split.zip diff --git a/PaddleCV/PaddleDetection/demo/000000014439.jpg b/PaddleCV/PaddleDetection/demo/000000014439.jpg deleted file mode 100644 index 0abbdab06eb5950b93908cc91adfa640e8a3ac78..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/000000014439.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/000000014439_640x640.jpg b/PaddleCV/PaddleDetection/demo/000000014439_640x640.jpg deleted file mode 100644 index 58e9d3e228af43c9b55d8d0cb385ce82ebb8b996..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/000000014439_640x640.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/000000087038.jpg b/PaddleCV/PaddleDetection/demo/000000087038.jpg deleted file mode 100644 index 9f77f5d5f057b6f92dc096da704ecb8dee99bdf5..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/000000087038.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/000000570688.jpg b/PaddleCV/PaddleDetection/demo/000000570688.jpg deleted file mode 100644 index cb304bd56c4010c08611a30dcca58ea9140cea54..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/000000570688.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/cas.png b/PaddleCV/PaddleDetection/demo/cas.png deleted file mode 100644 index a60303c99ce0d1ba52e6f89414df8bd5c90fae62..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/cas.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/mask_rcnn_demo.ipynb b/PaddleCV/PaddleDetection/demo/mask_rcnn_demo.ipynb deleted file mode 100644 index 860b185043679e3c7bb28c4fdad505c9f16dda56..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/demo/mask_rcnn_demo.ipynb +++ /dev/null @@ -1,413 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Change working directory to the project root" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/yang/models/PaddleCV/PaddleDetection\n" - ] - } - ], - "source": [ - "%cd .." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Now let's take a look at the input image." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from PIL import Image\n", - "\n", - "image_path = 'demo/000000570688.jpg'\n", - "img = Image.open(image_path)\n", - "img" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "For inference, preprocess only involves decoding, normalization and transposing to CHW.\n", - "\n", - "**NOTE:** in most cases, one should use the configuration based [data feed](../docs/DATA.md) API which greatly simplifies the data pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "source": [ - "from ppdet.data.transform.operators import DecodeImage, NormalizeImage, Permute\n", - "\n", - "sample = {'im_file': image_path}\n", - "decode = DecodeImage(to_rgb=True)\n", - "normalize = NormalizeImage(\n", - " mean=[0.485, 0.456, 0.406],\n", - " std=[0.229, 0.224, 0.225],\n", - " is_scale=True,\n", - " is_channel_first=False)\n", - "permute = Permute(to_bgr=False, channel_first=True)\n", - "\n", - "sample = permute(normalize(decode(sample)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Some extra effort is needed to massage data into the desired format. \n", - "\n", - "**NOTE:** Again, if the data feed API is used, these are handled automatically." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "h = sample['h']\n", - "w = sample['w']\n", - "im_info = np.array((h, w, 1), dtype=np.float32)\n", - "\n", - "sample['im_info'] = im_info\n", - "sample['im_shape'] = im_info\n", - "\n", - "# we don't need these\n", - "for key in ['im_file', 'h', 'w']:\n", - " del sample[key]\n", - "\n", - "# batch of a single sample\n", - "sample = {k: v[np.newaxis, ...] for k, v in sample.items()}\n", - "\n", - "feed_var_def = [\n", - " {'name': 'image', 'shape': (h, w, 3)},\n", - " {'name': 'im_info', 'shape': [3]},\n", - " {'name': 'im_shape', 'shape': [3]},\n", - "]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Next, build the [Mask R-CNN](https://arxiv.org/abs/1703.06870) model and associated fluid programs" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "source": [ - "from paddle import fluid\n", - "from ppdet.modeling import (MaskRCNN, ResNet, ResNetC5, RPNHead, RoIAlign,\n", - " BBoxHead, MaskHead, BBoxAssigner, MaskAssigner)\n", - "\n", - "roi_size = 14\n", - "\n", - "model = MaskRCNN(\n", - " ResNet(feature_maps=4),\n", - " RPNHead(),\n", - " BBoxHead(ResNetC5()),\n", - " BBoxAssigner(),\n", - " RoIAlign(resolution=roi_size),\n", - " MaskAssigner(),\n", - " MaskHead())\n", - "\n", - "startup_prog = fluid.Program()\n", - "infer_prog = fluid.Program()\n", - "with fluid.program_guard(infer_prog, startup_prog):\n", - " with fluid.unique_name.guard():\n", - " feed_vars = {\n", - " var['name']: fluid.layers.data(\n", - " name=var['name'],\n", - " shape=var['shape'],\n", - " dtype='float32',\n", - " lod_level=0) for var in feed_var_def\n", - " }\n", - " test_fetches = model.test(feed_vars)\n", - "infer_prog = infer_prog.clone(for_test=True)\n", - "\n", - "# use GPU if available\n", - "if fluid.core.get_cuda_device_count() > 0:\n", - " place = fluid.CUDAPlace(0)\n", - "else:\n", - " place = fluid.CPUPlace()\n", - "\n", - "exe = fluid.Executor(place)\n", - "_ = exe.run(startup_prog)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Load the checkpoint weights, just wait a couple of minutes for it to be downloaded." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "100%|██████████| 140690/140690 [00:12<00:00, 10843.70KB/s]\n" - ] - } - ], - "source": [ - "from ppdet.utils import checkpoint\n", - "\n", - "ckpt_url = 'https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar'\n", - "checkpoint.load_checkpoint(exe, infer_prog, ckpt_url)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Run the program and fetch the result. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "source": [ - "output = exe.run(infer_prog, feed=sample,\n", - " fetch_list=[t.name for t in test_fetches.values()],\n", - " return_numpy=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Again, we need to massage the result a bit for visualization." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "source": [ - "res = {\n", - " k: (np.array(v), v.recursive_sequence_lengths())\n", - " for k, v in zip(test_fetches.keys(), output)\n", - "}\n", - "# fake image id\n", - "res['im_id'] = [[[0] for _ in range(res['bbox'][1][0][0])]]\n", - "res['im_shape'] = [[im_info]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "Now overlay the bboxes and masks onto the image...\n", - "\n", - "And voila, we've successully built and run the Mask R-CNN inference pipeline." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "autoscroll": false, - "ein.hycell": false, - "ein.tags": "worksheet-0", - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from ppdet.utils.coco_eval import bbox2out, mask2out, coco17_category_info\n", - "from ppdet.utils.visualizer import visualize_results\n", - "\n", - "cls2cat, cat2name = coco17_category_info()\n", - "bboxes = bbox2out([res], cls2cat)\n", - "masks = mask2out([res], cls2cat, roi_size)\n", - "\n", - "visualize_results(img, 0, cat2name, 0.5, bboxes, masks)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.16" - }, - "name": "mask_rcnn_demo.ipynb" - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/PaddleDetection/demo/obj365_gt.png b/PaddleCV/PaddleDetection/demo/obj365_gt.png deleted file mode 100644 index eb69077f6ba1676d9fc0ba3e4cada645c5ab7245..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/obj365_gt.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/obj365_pred.png b/PaddleCV/PaddleDetection/demo/obj365_pred.png deleted file mode 100644 index d99fb1fd198f1f8b6e003741375e9aa5524f117a..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/obj365_pred.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/orange_71.jpg b/PaddleCV/PaddleDetection/demo/orange_71.jpg deleted file mode 100644 index da7974a1a1371298f1ca5f4ef9c82bd3824d7ac3..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/orange_71.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/orange_71_detection.jpg b/PaddleCV/PaddleDetection/demo/orange_71_detection.jpg deleted file mode 100644 index 88cbf9c97120f79d5ef5f80ccb789a6e3c29bedf..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/orange_71_detection.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/output/000000570688.jpg b/PaddleCV/PaddleDetection/demo/output/000000570688.jpg deleted file mode 100644 index 8a0f84f38331093a0e1afc52d4b7747535bdbb6d..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/output/000000570688.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/output/12_Group_Group_12_Group_Group_12_935.jpg b/PaddleCV/PaddleDetection/demo/output/12_Group_Group_12_Group_Group_12_935.jpg deleted file mode 100644 index 2a563361ae03fbe079dba017374eee51ccbd17dd..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/output/12_Group_Group_12_Group_Group_12_935.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/demo/tensorboard_fruit.jpg b/PaddleCV/PaddleDetection/demo/tensorboard_fruit.jpg deleted file mode 100644 index 44a955fafffb4ab03d911818e20e6f72499f2f4f..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/demo/tensorboard_fruit.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/docs/BENCHMARK_INFER_cn.md b/PaddleCV/PaddleDetection/docs/BENCHMARK_INFER_cn.md deleted file mode 100644 index bc4c25fee1555eb124c25edfcd066af0f6c7bfcf..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/BENCHMARK_INFER_cn.md +++ /dev/null @@ -1,89 +0,0 @@ - - -# 推理Benchmark - - - -- 测试环境: - - CUDA 9.0 - - CUDNN 7.5 - - TensorRT-5.1.2.2 - - PaddlePaddle v1.6 - - GPU分别为: Tesla V100和Tesla P4 -- 测试方式: - - 为了方面比较不同模型的推理速度,输入采用同样大小的图片,为 3x640x640,采用 `demo/000000014439_640x640.jpg` 图片。 - - Batch Size=1 - - 去掉前10轮warmup时间,测试100轮的平均时间,单位ms/image,包括输入数据拷贝至GPU的时间、计算时间、数据拷贝只CPU的时间。 - - 采用Fluid C++预测引擎: 包含Fluid C++预测、Fluid-TensorRT预测,下面同时测试了Float32 (FP32) 和Float16 (FP16)的推理速度。 - - 测试时开启了 FLAGS_cudnn_exhaustive_search=True,使用exhaustive方式搜索卷积计算算法。 - -### 推理速度 - - - - - -| 模型 | Tesla V100 Fluid (ms/image) | Tesla V100 Fluid-TensorRT-FP32 (ms/image) | Tesla V100 Fluid-TensorRT-FP16 (ms/image) | Tesla P4 Fluid (ms/image) | Tesla P4 Fluid-TensorRT-FP32 (ms/image) | -| ------------------------------------- | ----------------------------- | ------------------------------------------- | ------------------------------------------- | --------------------------- | ----------------------------------------- | -| faster_rcnn_r50_1x | 147.488 | 146.124 | 142.416 | 471.547 | 471.631 | -| faster_rcnn_r50_2x | 147.636 | 147.73 | 141.664 | 471.548 | 472.86 | -| faster_rcnn_r50_vd_1x | 146.588 | 144.767 | 141.208 | 459.357 | 457.852 | -| faster_rcnn_r50_fpn_1x | 25.11 | 24.758 | 20.744 | 59.411 | 57.585 | -| faster_rcnn_r50_fpn_2x | 25.351 | 24.505 | 20.509 | 59.594 | 57.591 | -| faster_rcnn_r50_vd_fpn_2x | 25.514 | 25.292 | 21.097 | 61.026 | 58.377 | -| faster_rcnn_r50_fpn_gn_2x | 36.959 | 36.173 | 32.356 | 101.339 | 101.212 | -| faster_rcnn_dcn_r50_fpn_1x | 28.707 | 28.162 | 27.503 | 68.154 | 67.443 | -| faster_rcnn_dcn_r50_vd_fpn_2x | 28.576 | 28.271 | 27.512 | 68.959 | 68.448 | -| faster_rcnn_r101_1x | 153.267 | 150.985 | 144.849 | 490.104 | 486.836 | -| faster_rcnn_r101_fpn_1x | 30.949 | 30.331 | 24.021 | 73.591 | 69.736 | -| faster_rcnn_r101_fpn_2x | 30.918 | 29.126 | 23.677 | 73.563 | 70.32 | -| faster_rcnn_r101_vd_fpn_1x | 31.144 | 30.202 | 23.57 | 74.767 | 70.773 | -| faster_rcnn_r101_vd_fpn_2x | 30.678 | 29.969 | 23.327 | 74.882 | 70.842 | -| faster_rcnn_x101_vd_64x4d_fpn_1x | 60.36 | 58.461 | 45.172 | 132.178 | 131.734 | -| faster_rcnn_x101_vd_64x4d_fpn_2x | 59.003 | 59.163 | 46.065 | 131.422 | 132.186 | -| faster_rcnn_dcn_r101_vd_fpn_1x | 36.862 | 37.205 | 36.539 | 93.273 | 92.616 | -| faster_rcnn_dcn_x101_vd_64x4d_fpn_1x | 78.476 | 78.335 | 77.559 | 185.976 | 185.996 | -| faster_rcnn_se154_vd_fpn_s1x | 166.282 | 90.508 | 80.738 | 304.653 | 193.234 | -| mask_rcnn_r50_1x | 160.185 | 160.4 | 160.322 | - | - | -| mask_rcnn_r50_2x | 159.821 | 159.527 | 160.41 | - | - | -| mask_rcnn_r50_fpn_1x | 95.72 | 95.719 | 92.455 | 259.8 | 258.04 | -| mask_rcnn_r50_fpn_2x | 84.545 | 83.567 | 79.269 | 227.284 | 222.975 | -| mask_rcnn_r50_vd_fpn_2x | 82.07 | 82.442 | 77.187 | 223.75 | 221.683 | -| mask_rcnn_r50_fpn_gn_2x | 94.936 | 94.611 | 91.42 | 265.468 | 263.76 | -| mask_rcnn_dcn_r50_fpn_1x | 97.828 | 97.433 | 93.76 | 256.295 | 258.056 | -| mask_rcnn_dcn_r50_vd_fpn_2x | 77.831 | 79.453 | 76.983 | 205.469 | 204.499 | -| mask_rcnn_r101_fpn_1x | 95.543 | 97.929 | 90.314 | 252.997 | 250.782 | -| mask_rcnn_r101_vd_fpn_1x | 98.046 | 97.647 | 90.272 | 261.286 | 262.108 | -| mask_rcnn_x101_vd_64x4d_fpn_1x | 115.461 | 115.756 | 102.04 | 296.066 | 293.62 | -| mask_rcnn_x101_vd_64x4d_fpn_2x | 107.144 | 107.29 | 97.275 | 267.636 | 267.577 | -| mask_rcnn_dcn_r101_vd_fpn_1x | 85.504 | 84.875 | 84.907 | 225.202 | 226.585 | -| mask_rcnn_dcn_x101_vd_64x4d_fpn_1x | 129.937 | 129.934 | 127.804 | 326.786 | 326.161 | -| mask_rcnn_se154_vd_fpn_s1x | 214.188 | 139.807 | 121.516 | 440.391 | 439.727 | -| cascade_rcnn_r50_fpn_1x | 36.866 | 36.949 | 36.637 | 101.851 | 101.912 | -| cascade_mask_rcnn_r50_fpn_1x | 110.344 | 106.412 | 100.367 | 301.703 | 297.739 | -| cascade_rcnn_dcn_r50_fpn_1x | 40.412 | 39.58 | 39.853 | 110.346 | 110.077 | -| cascade_mask_rcnn_r50_fpn_gn_2x | 170.092 | 168.758 | 163.298 | 527.998 | 529.59 | -| cascade_rcnn_dcn_r101_vd_fpn_1x | 48.414 | 48.849 | 48.701 | 134.9 | 134.846 | -| cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x | 90.062 | 90.218 | 90.009 | 228.67 | 228.396 | -| retinanet_r101_fpn_1x | 55.59 | 54.636 | 48.489 | 90.394 | 83.951 | -| retinanet_r50_fpn_1x | 50.048 | 47.932 | 44.385 | 73.819 | 70.282 | -| retinanet_x101_vd_64x4d_fpn_1x | 83.329 | 83.446 | 70.76 | 145.936 | 146.168 | -| yolov3_darknet | 21.427 | 20.252 | 13.856 | 55.173 | 55.692 | -| yolov3_darknet_voc | 17.58 | 16.241 | 9.473 | 51.049 | 51.249 | -| yolov3_mobilenet_v1 | 12.869 | 11.834 | 9.408 | 24.887 | 21.352 | -| yolov3_mobilenet_v1_voc | 9.118 | 8.146 | 5.575 | 20.787 | 17.169 | -| yolov3_r34 | 14.914 | 14.125 | 11.176 | 20.798 | 20.822 | -| yolov3_r34_voc | 11.288 | 10.73 | 7.7 | 25.874 | 22.399 | -| ssd_mobilenet_v1_voc | 5.763 | 5.854 | 4.589 | 11.75 | 9.485 | -| ssd_vgg16_300 | 28.722 | 29.644 | 20.399 | 73.707 | 74.531 | -| ssd_vgg16_300_voc | 18.425 | 19.288 | 11.298 | 56.297 | 56.201 | -| ssd_vgg16_512 | 27.471 | 28.328 | 19.328 | 68.685 | 69.808 | -| ssd_vgg16_512_voc | 18.721 | 19.636 | 12.004 | 54.688 | 56.174 | - -1. RCNN系列模型Fluid-TensorRT速度相比Fluid预测没有优势,原因是: TensorRT仅支持定长输入,当前基于ResNet系列的RCNN模型,只有backbone部分采用了TensorRT子图计算,比较耗时的stage-5没有基于TensorRT计算。 Fluid对CNN模型也做了一系列的融合优化。后续TensorRT版本升级、或有其他优化策略时再更新数据。 -2. YOLO v3系列模型,Fluid-TensorRT相比Fluid预测加速5% - 10%不等。 -3. SSD和YOLOv3系列模型 TensorRT-FP16预测速度有一定的优势,加速约20% - 40%不等。具体如下图。 - -
- -
diff --git a/PaddleCV/PaddleDetection/docs/CACascadeRCNN.md b/PaddleCV/PaddleDetection/docs/CACascadeRCNN.md deleted file mode 100644 index 8e72b9af30183abf6c028ec2f4ee2ec695a29a6c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/CACascadeRCNN.md +++ /dev/null @@ -1,51 +0,0 @@ -# CACascade RCNN -## 简介 -CACascade RCNN是百度视觉技术部在Objects365 2019 Challenge上夺冠的最佳单模型之一,Objects365是在通用物体检测领域的一个全新的数据集,旨在促进对自然场景不同对象的检测研究。Objects365在63万张图像上标注了365个对象类,训练集中共有超过1000万个边界框。这里放出的是Full Track任务中最好的单模型之一。 - -
- -
- -## 方法描述 - -针对大规模物体检测算法的特点,我们提出了一种基于图片包含物体类别的数量的采样方式(Class Aware Sampling)。基于这种方式进行训练模型可以在更短的时间使模型收敛到更好的效果。 - -
- -
- -本次公布的最好单模型是一个基于Cascade RCNN的两阶段检测模型,在此基础上将Backbone替换为更加强大的SENet154模型,Deformable Conv模块以及更复杂二阶段网络结构,针对BatchSize比较小的情况增加了Group Normalization操作并同时使用了多尺度训练,最终达到了非常理想的效果。预训练模型先后分别在ImageNet和COCO数据集上进行了训练,其中在COCO数据集上训练时增加了Mask分支,其余结构与CACascade RCNN相同, 会在启动训练时自动下载。 - -## 使用方法 - -1.准备数据 - -数据需要通过[Objects365官方网站](https://www.objects365.org/download.html)进行申请下载,数据下载后将数据放置在dataset目录中。 -``` -${THIS REPO ROOT} - \--dataset - \-- objects365 - \-- annotations - |-- train.json - |-- val.json - \-- train - \-- val -``` - -2.启动训练模型 - -```bash -python tools/train.py -c configs/obj365/cascade_rcnn_dcnv2_se154_vd_fpn_gn.yml -``` - -3.模型预测结果 - -| 模型 | 验证集 mAP | 下载链接 | -| :-----------------: | :--------: | :----------------------------------------------------------: | -| CACascadeRCNN SE154 | 31.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcnv2_se154_vd_fpn_gn_cas_obj365.tar) | - -## 模型效果 - -
- -
diff --git a/PaddleCV/PaddleDetection/docs/CONFIG.md b/PaddleCV/PaddleDetection/docs/CONFIG.md deleted file mode 100644 index 3cba54eb546cfb648cc7b5bd2e135652a040b309..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/CONFIG.md +++ /dev/null @@ -1,206 +0,0 @@ -English | [简体中文](CONFIG_cn.md) - -# Config Pipline - -## Introduction - -PaddleDetection takes a rather principled approach to configuration management. We aim to automate the configuration workflow and to reduce configuration errors. - - -## Rationale - -Presently, configuration in mainstream frameworks are usually dictionary based: the global config is simply a giant, loosely defined Python dictionary. - -This approach is error prone, e.g., misspelled or displaced keys may lead to serious errors in training process, causing time loss and wasted resources. - -To avoid the common pitfalls, with automation and static analysis in mind, we propose a configuration design that is user friendly, easy to maintain and extensible. - - -## Design - -The design utilizes some of Python's reflection mechanism to extract configuration schematics from Python class definitions. - -To be specific, it extracts information from class constructor arguments, including names, docstrings, default values, data types (if type hints are available). - -This approach advocates modular and testable design, leading to a unified and extensible code base. - - -### API - -Most of the functionality is exposed in `ppdet.core.workspace` module. - -- `register`: This decorator register a class as configurable module; it understands several special annotations in the class definition. - - `__category__`: For better organization, modules are classified into categories. - - `__inject__`: A list of constructor arguments, which are intended to take module instances as input, module instances will be created at runtime an injected. The corresponding configuration value can be a class name string, a serialized object, a config key pointing to a serialized object, or a dict (in which case the constructor needs to handle it, see example below). - - `__op__`: Shortcut for wrapping PaddlePaddle operators into a callable objects, together with `__append_doc__` (extracting docstring from target PaddlePaddle operator automatically), this can be a real time saver. -- `serializable`: This decorator make a class directly serializable in yaml config file, by taking advantage of [pyyaml](https://pyyaml.org/wiki/PyYAMLDocumentation)'s serialization mechanism. -- `create`: Constructs a module instance according to global configuration. -- `load_config` and `merge_config`: Loading yaml file and merge config settings from command line. - - -### Example - -Take the `RPNHead` module for example, it is composed of several PaddlePaddle operators. We first wrap those operators into classes, then pass in instances of these classes when instantiating the `RPNHead` module. - -```python -# excerpt from `ppdet/modeling/ops.py` -from ppdet.core.workspace import register, serializable - -# ... more operators - -@register -@serializable -class GenerateProposals(object): - # NOTE this class simply wraps a PaddlePaddle operator - __op__ = fluid.layers.generate_proposals - # NOTE docstring for args are extracted from PaddlePaddle OP - __append_doc__ = True - - def __init__(self, - pre_nms_top_n=6000, - post_nms_top_n=1000, - nms_thresh=.5, - min_size=.1, - eta=1.): - super(GenerateProposals, self).__init__() - self.pre_nms_top_n = pre_nms_top_n - self.post_nms_top_n = post_nms_top_n - self.nms_thresh = nms_thresh - self.min_size = min_size - self.eta = eta - -# ... more operators - -# excerpt from `ppdet/modeling/anchor_heads/rpn_head.py` -from ppdet.core.workspace import register -from ppdet.modeling.ops import AnchorGenerator, RPNTargetAssign, GenerateProposals - -@register -class RPNHead(object): - """ - RPN Head - - Args: - anchor_generator (object): `AnchorGenerator` instance - rpn_target_assign (object): `RPNTargetAssign` instance - train_proposal (object): `GenerateProposals` instance for training - test_proposal (object): `GenerateProposals` instance for testing - """ - __inject__ = [ - 'anchor_generator', 'rpn_target_assign', 'train_proposal', - 'test_proposal' - ] - - def __init__(self, - anchor_generator=AnchorGenerator().__dict__, - rpn_target_assign=RPNTargetAssign().__dict__, - train_proposal=GenerateProposals(12000, 2000).__dict__, - test_proposal=GenerateProposals().__dict__): - super(RPNHead, self).__init__() - self.anchor_generator = anchor_generator - self.rpn_target_assign = rpn_target_assign - self.train_proposal = train_proposal - self.test_proposal = test_proposal - if isinstance(anchor_generator, dict): - self.anchor_generator = AnchorGenerator(**anchor_generator) - if isinstance(rpn_target_assign, dict): - self.rpn_target_assign = RPNTargetAssign(**rpn_target_assign) - if isinstance(train_proposal, dict): - self.train_proposal = GenerateProposals(**train_proposal) - if isinstance(test_proposal, dict): - self.test_proposal = GenerateProposals(**test_proposal) -``` - -The corresponding(generated) YAML snippet is as follows, note this is the configuration in **FULL**, all the default values can be omitted. In case of the above example, all arguments have default value, meaning nothing is required in the config file. - -```yaml -RPNHead: - test_proposal: - eta: 1.0 - min_size: 0.1 - nms_thresh: 0.5 - post_nms_top_n: 1000 - pre_nms_top_n: 6000 - train_proposal: - eta: 1.0 - min_size: 0.1 - nms_thresh: 0.5 - post_nms_top_n: 2000 - pre_nms_top_n: 12000 - anchor_generator: - # ... - rpn_target_assign: - # ... -``` - -Example snippet that make use of the `RPNHead` module. - -```python -from ppdet.core.workspace import load_config, merge_config, create - -load_config('some_config_file.yml') -merge_config(more_config_options_from_command_line) - -rpn_head = create('RPNHead') -# ... code that use the created module! -``` - -Configuration file can also have serialized objects in it, denoted with `!`, for example - -```yaml -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 -``` - -[Complete config files](config_example/) of multiple detection architectures are given and brief description of each parameter. - -## Requirements - -Two Python packages are used, both are optional. - -- [typeguard](https://github.com/agronholm/typeguard) is used for type checking in Python 3. -- [docstring\_parser](https://github.com/rr-/docstring_parser) is needed for docstring parsing. - -To install them, simply run: - -```shell -pip install typeguard http://github.com/willthefrog/docstring_parser/tarball/master -``` - - -## Tooling - -A small utility (`tools/configure.py`) is included to simplify the configuration process, it provides 4 commands to walk users through the configuration process: - -1. `list`: List currently registered modules by category, one can also specify which category to list with the `--category` flag. -2. `help`: Get help information for a module, including description, options, configuration template and example command line flags. -3. `analyze`: Check configuration file for missing/extraneous options, options with mismatch type (if type hint is given) and missing dependencies, it also highlights user provided values (overridden default values). -4. `generate`: Generate a configuration template for a given list of modules. By default it generates a complete configuration file, which can be quite verbose; if a `--minimal` flag is given, it generates a template that only contain non optional settings. For example, to generate a configuration for Faster R-CNN architecture with `ResNet` backbone and `FPN`, run: - - ```shell - python tools/configure.py generate FasterRCNN ResNet RPNHead RoIAlign BBoxAssigner BBoxHead FasterRCNNTrainFeed FasterRCNNTestFeed LearningRate OptimizerBuilder - ``` - - For a minimal version, run: - - ```shell - python tools/configure.py --minimal generate FasterRCNN BBoxHead - ``` - - -## FAQ - -**Q:** There are some configuration options that are used by multiple modules (e.g., `num_classes`), how do I avoid duplication in config files? - -**A:** We provided a `__shared__` annotation for exactly this purpose, simply annotate like this `__shared__ = ['num_classes']`. It works as follows: - -1. if `num_classes` is configured for a module in config file, it takes precedence. -2. if `num_classes` is not configured for a module but is present in the config file as a global key, its value will be used. -3. otherwise, the default value (`81`) will be used. diff --git a/PaddleCV/PaddleDetection/docs/CONFIG_cn.md b/PaddleCV/PaddleDetection/docs/CONFIG_cn.md deleted file mode 100644 index 8b7eaa653a65264db189fa88a125ce10b5a6f667..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/CONFIG_cn.md +++ /dev/null @@ -1,196 +0,0 @@ -# 配置模块 - -## 简介 - -为了使配置过程更加自动化并减少配置错误,PaddleDetection的配置管理采取了较为严谨的设计。 - - -## 设计思想 - -目前主流框架全局配置基本是一个Python dict,这种设计对配置的检查并不严格,拼写错误或者遗漏的配置项往往会造成训练过程中的严重错误,进而造成时间及资源的浪费。为了避免这些陷阱,从自动化和静态分析的原则出发,PaddleDetection采用了一种用户友好、 易于维护和扩展的配置设计。 - - -## 基本设计 - -利用Python的反射机制,PaddleDection的配置系统从Python类的构造函数抽取多种信息 - 如参数名、初始值、参数注释、数据类型(如果给出type hint)- 来作为配置规则。 这种设计便于设计的模块化,提升可测试性及扩展性。 - - -### API - -配置系统的大多数功能由 `ppdet.core.workspace` 模块提供 - -- `register`: 装饰器,将类注册为可配置模块;能够识别类定义中的一些特殊标注。 - - `__category__`: 为便于组织,模块可以分为不同类别。 - - `__inject__`: 如果模块由多个子模块组成,可以这些子模块实例作为构造函数的参数注入。对应的默认值及配置项可以是类名字符串,yaml序列化的对象,指向序列化对象的配置键值或者Python dict(构造函数需要对其作出处理,参见下面的例子)。 - - `__op__`: 配合 `__append_doc__` (抽取目标OP的 注释)使用,可以方便快速的封装PaddlePaddle底层OP。 -- `serializable`: 装饰器,利用 [pyyaml](https://pyyaml.org/wiki/PyYAMLDocumentation) 的序列化机制,可以直接将一个类实例序列化及反序列化。 -- `create`: 根据全局配置构造一个模块实例。 -- `load_config` and `merge_config`: 加载yaml文件,合并命令行提供的配置项。 - - -### 示例 - -以 `RPNHead` 模块为例,该模块包含多个PaddlePaddle OP,先将这些OP封装成类,并将其实例在构造 `RPNHead` 时注入。 - -```python -# excerpt from `ppdet/modeling/ops.py` -from ppdet.core.workspace import register, serializable - -# ... more operators - -@register -@serializable -class GenerateProposals(object): - # NOTE this class simply wraps a PaddlePaddle operator - __op__ = fluid.layers.generate_proposals - # NOTE docstring for args are extracted from PaddlePaddle OP - __append_doc__ = True - - def __init__(self, - pre_nms_top_n=6000, - post_nms_top_n=1000, - nms_thresh=.5, - min_size=.1, - eta=1.): - super(GenerateProposals, self).__init__() - self.pre_nms_top_n = pre_nms_top_n - self.post_nms_top_n = post_nms_top_n - self.nms_thresh = nms_thresh - self.min_size = min_size - self.eta = eta - -# ... more operators - -# excerpt from `ppdet/modeling/anchor_heads/rpn_head.py` -from ppdet.core.workspace import register -from ppdet.modeling.ops import AnchorGenerator, RPNTargetAssign, GenerateProposals - -@register -class RPNHead(object): - """ - RPN Head - - Args: - anchor_generator (object): `AnchorGenerator` instance - rpn_target_assign (object): `RPNTargetAssign` instance - train_proposal (object): `GenerateProposals` instance for training - test_proposal (object): `GenerateProposals` instance for testing - """ - __inject__ = [ - 'anchor_generator', 'rpn_target_assign', 'train_proposal', - 'test_proposal' - ] - - def __init__(self, - anchor_generator=AnchorGenerator().__dict__, - rpn_target_assign=RPNTargetAssign().__dict__, - train_proposal=GenerateProposals(12000, 2000).__dict__, - test_proposal=GenerateProposals().__dict__): - super(RPNHead, self).__init__() - self.anchor_generator = anchor_generator - self.rpn_target_assign = rpn_target_assign - self.train_proposal = train_proposal - self.test_proposal = test_proposal - if isinstance(anchor_generator, dict): - self.anchor_generator = AnchorGenerator(**anchor_generator) - if isinstance(rpn_target_assign, dict): - self.rpn_target_assign = RPNTargetAssign(**rpn_target_assign) - if isinstance(train_proposal, dict): - self.train_proposal = GenerateProposals(**train_proposal) - if isinstance(test_proposal, dict): - self.test_proposal = GenerateProposals(**test_proposal) -``` - -对应的yaml配置如下,请注意这里给出的是 **完整** 配置,其中所有默认值配置项都可以省略。上面的例子中的模块所有的构造函数参数都提供了默认值,因此配置文件中可以完全略过其配置。 - -```yaml -RPNHead: - test_proposal: - eta: 1.0 - min_size: 0.1 - nms_thresh: 0.5 - post_nms_top_n: 1000 - pre_nms_top_n: 6000 - train_proposal: - eta: 1.0 - min_size: 0.1 - nms_thresh: 0.5 - post_nms_top_n: 2000 - pre_nms_top_n: 12000 - anchor_generator: - # ... - rpn_target_assign: - # ... -``` - -`RPNHead` 模块实际使用代码示例。 - -```python -from ppdet.core.workspace import load_config, merge_config, create - -load_config('some_config_file.yml') -merge_config(more_config_options_from_command_line) - -rpn_head = create('RPNHead') -# ... code that use the created module! -``` - -配置文件用可以直接序列化模块实例,用 `!` 标示,如 - -```yaml -LearningRate: - base_lr: 0.01 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [60000, 80000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 -``` - -[示例配置文件](config_example/)中给出了多种检测结构的完整配置文件,以及其中各个超参的简要说明。 - -## 安装依赖 - -配置系统用到两个Python包,均为可选安装。 - -- [typeguard](https://github.com/agronholm/typeguard) 在Python 3中用来进行数据类型验证。 -- [docstring\_parser](https://github.com/rr-/docstring_parser) 用来解析注释。 - -如需安装,运行下面命令即可。 - -```shell -pip install typeguard http://github.com/willthefrog/docstring_parser/tarball/master -``` - - -## 相关工具 - -为了方便用户配置,PaddleDection提供了一个工具 (`tools/configure.py`), 共支持四个子命令: - -1. `list`: 列出当前已注册的模块,如需列出具体类别的模块,可以使用 `--category` 指定。 -2. `help`: 显示指定模块的帮助信息,如描述,配置项,配置文件模板及命令行示例。 -3. `analyze`: 检查配置文件中的缺少或者多余的配置项以及依赖缺失,如果给出type hint, 还可以检查配置项中错误的数据类型。非默认配置也会高亮显示。 -4. `generate`: 根据给出的模块列表生成配置文件,默认生成完整配置,如果指定 `--minimal` ,生成最小配置,即省略所有默认配置项。例如,执行下列命令可以生成Faster R-CNN (`ResNet` backbone + `FPN`) 架构的配置文件: - - ```shell - python tools/configure.py generate FasterRCNN ResNet RPNHead RoIAlign BBoxAssigner BBoxHead FasterRCNNTrainFeed FasterRCNNTestFeed LearningRate OptimizerBuilder - ``` - - 如需最小配置,运行: - - ```shell - python tools/configure.py --minimal generate FasterRCNN BBoxHead - ``` - - -## FAQ - -**Q:** 某些配置项会在多个模块中用到(如 `num_classes`),如何避免在配置文件中多次重复设置? - -**A:** 框架提供了 `__shared__` 标记来实现配置的共享,用户可以标记参数,如 `__shared__ = ['num_classes']` ,配置数值作用规则如下: - -1. 如果模块配置中提供了 `num_classes` ,会优先使用其数值。 -2. 如果模块配置中未提供 `num_classes` ,但配置文件中存在全局键值,那么会使用全局键值。 -3. 两者均为配置的情况下,将使用默认值(`81`)。 diff --git a/PaddleCV/PaddleDetection/docs/DATA.md b/PaddleCV/PaddleDetection/docs/DATA.md deleted file mode 100644 index 466405022c2a6d076844ffb73ebd74565240ca55..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/DATA.md +++ /dev/null @@ -1,235 +0,0 @@ -English | [简体中文](DATA_cn.md) - -# Data Pipline - -## Introduction - -The data pipeline is responsible for loading and converting data. Each -resulting data sample is a tuple of np.ndarrays. -For example, Faster R-CNN training uses samples of this format: `[(im, -im_info, im_id, gt_bbox, gt_class, is_crowd), (...)]`. - -### Implementation - -The data pipeline consists of four sub-systems: data parsing, image -pre-processing, data conversion and data feeding APIs. - -Data samples are collected to form `data.Dataset`s, usually 3 sets are -needed for training, validation, and testing respectively. - -First, `data.source` loads the data files into memory, then -`data.transform` processes them, and lastly, the batched samples -are fetched by `data.Reader`. - -Sub-systems details: -1. Data parsing -Parses various data sources and creates `data.Dataset` instances. Currently, -following data sources are supported: - -- COCO data source - -Loads `COCO` type datasets with directory structures like this: - - ``` - dataset/coco/ - ├── annotations - │ ├── instances_train2014.json - │ ├── instances_train2017.json - │ ├── instances_val2014.json - │ ├── instances_val2017.json - │ | ... - ├── train2017 - │ ├── 000000000009.jpg - │ ├── 000000580008.jpg - │ | ... - ├── val2017 - │ ├── 000000000139.jpg - │ ├── 000000000285.jpg - │ | ... - | ... - ``` - -- Pascal VOC data source - -Loads `Pascal VOC` like datasets with directory structure like this: - - ``` - dataset/voc/ - ├── train.txt - ├── val.txt - ├── test.txt - ├── label_list.txt (optional) - ├── VOCdevkit/VOC2007 - │ ├── Annotations - │ ├── 001789.xml - │ | ... - │ ├── JPEGImages - │ ├── 001789.xml - │ | ... - │ ├── ImageSets - │ | ... - ├── VOCdevkit/VOC2012 - │ ├── Annotations - │ ├── 003876.xml - │ | ... - │ ├── JPEGImages - │ ├── 003876.xml - │ | ... - │ ├── ImageSets - │ | ... - | ... - ``` - -**NOTE:** If you set `use_default_label=False` in yaml configs, the `label_list.txt` -of Pascal VOC dataset will be read, otherwise, `label_list.txt` is unnecessary and -the default Pascal VOC label list which defined in -[voc\_loader.py](../ppdet/data/source/voc_loader.py) will be used. - -- Roidb data source -A generalized data source serialized as pickle files, which have the following -structure: -```python -(records, cname2id) -# `cname2id` is a `dict` which maps category name to class IDs -# and `records` is a list of dict of this structure: -{ - 'im_file': im_fname, # image file name - 'im_id': im_id, # image ID - 'h': im_h, # height of image - 'w': im_w, # width of image - 'is_crowd': is_crowd, # crowd marker - 'gt_class': gt_class, # ground truth class - 'gt_bbox': gt_bbox, # ground truth bounding box - 'gt_poly': gt_poly, # ground truth segmentation -} -``` - -We provide a tool to generate roidb data sources. To convert `COCO` or `VOC` -like dataset, run this command: -```sh -# --type: the type of original data (xml or json) -# --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 ./ppdet/data/tools/generate_data_for_training.py - --type=json \ - --annotation=./annotations/instances_val2017.json \ - --save-dir=./roidb \ - --samples=-1 -``` - - 2. Image preprocessing -the `data.transform.operator` module provides operations such as image -decoding, expanding, cropping, etc. Multiple operators are combined to form -larger processing pipelines. - - 3. Data transformer -Transform a `data.Dataset` to achieve various desired effects, Notably: the -`data.transform.paralle_map` transformer accelerates image processing with -multi-threads or multi-processes. More transformers can be found in -`data.transform.transformer`. - - 4. Data feeding apis -To facilitate data pipeline building, we combine multiple `data.Dataset` to -form a `data.Reader` which can provide data for training, validation and -testing respectively. Users can simply call `Reader.[train|eval|infer]` to get -the corresponding data stream. Many aspect of the `Reader`, such as storage -location, preprocessing pipeline, acceleration mode can be configured with yaml -files. - -### APIs - -The main APIs are as follows: - -1. Data parsing - - - `source/coco_loader.py`: COCO dataset parser. [source](../ppdet/data/source/coco_loader.py) - - `source/voc_loader.py`: Pascal VOC dataset parser. [source](../ppdet/data/source/voc_loader.py) - [Note] To use a non-default label list for VOC datasets, a `label_list.txt` - file is needed, one can use the provided label list - (`data/pascalvoc/ImageSets/Main/label_list.txt`) or generate a custom one (with `tools/generate_data_for_training.py`). Also, `use_default_label` option should - be set to `false` in the configuration file - - `source/loader.py`: Roidb dataset parser. [source](../ppdet/data/source/loader.py) - -2. Operator - `transform/operators.py`: Contains a variety of data augmentation methods, including: -- `DecodeImage`: Read images in RGB format. -- `RandomFlipImage`: Horizontal flip. -- `RandomDistort`: Distort brightness, contrast, saturation, and hue. -- `ResizeImage`: Resize image with interpolation. -- `RandomInterpImage`: Use a random interpolation method to resize the image. -- `CropImage`: Crop image with respect to different scale, aspect ratio, and overlap. -- `ExpandImage`: Pad image to a larger size, padding filled with mean image value. -- `NormalizeImage`: Normalize image pixel values. -- `NormalizeBox`: Normalize the bounding box. -- `Permute`: Arrange the channels of the image and optionally convert image to BGR format. -- `MixupImage`: Mixup two images with given fraction[1](#mix). - -[1] Please refer to [this paper](https://arxiv.org/pdf/1710.09412.pdf)。 - -`transform/arrange_sample.py`: Assemble the data samples needed by different models. -3. Transformer -`transform/post_map.py`: Transformations that operates on whole batches, mainly for: -- Padding whole batch to given stride values -- Resize images to Multi-scales -- Randomly adjust the image size of the batch data -`transform/transformer.py`: Data filtering batching. -`transform/parallel_map.py`: Accelerate data processing with multi-threads/multi-processes. -4. Reader -`reader.py`: Combine source and transforms, return batch data according to `max_iter`. -`data_feed.py`: Configure default parameters for `reader.py`. - - -### Usage - -#### Canned Datasets - -Preset for common datasets, e.g., `COCO` and `Pascal Voc` are included. In -most cases, user can simply use these canned dataset as is. Moreover, the -whole data pipeline is fully customizable through the yaml configuration files. - -#### Custom Datasets - -- Option 1: Convert the dataset to COCO format. -```sh - # a small utility (`tools/x2coco.py`) is provided to convert - # Labelme-annotated dataset or cityscape dataset to COCO format. - python ./ppdet/data/tools/x2coco.py --dataset_type labelme - --json_input_dir ./labelme_annos/ - --image_input_dir ./labelme_imgs/ - --output_dir ./cocome/ - --train_proportion 0.8 - --val_proportion 0.2 - --test_proportion 0.0 - # --dataset_type: The data format which is need to be converted. Currently supported are: 'labelme' and 'cityscape' - # --json_input_dir:The path of json files which are annotated by Labelme. - # --image_input_dir:The path of images. - # --output_dir:The path of coverted COCO dataset. - # --train_proportion:The train proportion of annatation data. - # --val_proportion:The validation proportion of annatation data. - # --test_proportion: The inference proportion of annatation data. -``` - -- Option 2: - -1. Add `source/XX_loader.py` and implement the `load` function, following the - example of `source/coco_loader.py` and `source/voc_loader.py`. -2. Modify the `load` function in `source/loader.py` to make use of the newly - added data loader. -3. Modify `/source/__init__.py` accordingly. -```python -if data_cf['type'] in ['VOCSource', 'COCOSource', 'RoiDbSource']: - source_type = 'RoiDbSource' -# Replace the above code with the following code: -if data_cf['type'] in ['VOCSource', 'COCOSource', 'RoiDbSource', 'XXSource']: - source_type = 'RoiDbSource' -``` -4. In the configure file, define the `type` of `dataset` as `XXSource`. - -#### How to add data pre-processing? - -- To add pre-processing operation for a single image, refer to the classes in - `transform/operators.py`, and implement the desired transformation with a new - class. -- To add pre-processing for a batch, one needs to modify the `build_post_map` - function in `transform/post_map.py`. diff --git a/PaddleCV/PaddleDetection/docs/DATA_cn.md b/PaddleCV/PaddleDetection/docs/DATA_cn.md deleted file mode 100644 index 332e81b0d313e9e8072979667b614de6924cec45..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/DATA_cn.md +++ /dev/null @@ -1,212 +0,0 @@ -# 数据模块 - -## 介绍 -本模块是一个Python模块,用于加载数据并将其转换成适用于检测模型的训练、验证、测试所需要的格式——由多个np.ndarray组成的tuple数组,例如用于Faster R-CNN模型的训练数据格式为:`[(im, im_info, im_id, gt_bbox, gt_class, is_crowd), (...)]`。 - -### 实现 -该模块内部可分为4个子功能:数据解析、图片预处理、数据转换和数据获取接口。 - -我们采用`data.Dataset`表示一份数据,比如`COCO`数据包含3份数据,分别用于训练、验证和测试。原始数据存储与文件中,通过`data.source`加载到内存,然后使用`data.transform`对数据进行处理转换,最终通过`data.Reader`的接口可以获得用于训练、验证和测试的batch数据。 - -子功能介绍: - -1. 数据解析 - -数据解析得到的是`data.Dataset`,实现逻辑位于`data.source`中。通过它可以实现解析不同格式的数据集,已支持的数据源包括: - -- COCO数据源 - -该数据集目前分为COCO2014和COCO2017,主要由json文件和image文件组成,其组织结构如下所示: - - ``` - dataset/coco/ - ├── annotations - │ ├── instances_train2014.json - │ ├── instances_train2017.json - │ ├── instances_val2014.json - │ ├── instances_val2017.json - │ | ... - ├── train2017 - │ ├── 000000000009.jpg - │ ├── 000000580008.jpg - │ | ... - ├── val2017 - │ ├── 000000000139.jpg - │ ├── 000000000285.jpg - │ | ... - | ... - ``` - - -- Pascal VOC数据源 - -该数据集目前分为VOC2007和VOC2012,主要由xml文件和image文件组成,其组织结构如下所示: - - ``` - dataset/voc/ - ├── train.txt - ├── val.txt - ├── test.txt - ├── label_list.txt (optional) - ├── VOCdevkit/VOC2007 - │ ├── Annotations - │ ├── 001789.xml - │ | ... - │ ├── JPEGImages - │ ├── 001789.xml - │ | ... - │ ├── ImageSets - │ | ... - ├── VOCdevkit/VOC2012 - │ ├── Annotations - │ ├── 003876.xml - │ | ... - │ ├── JPEGImages - │ ├── 003876.xml - │ | ... - │ ├── ImageSets - │ | ... - | ... - ``` - -**说明:** 如果你在yaml配置文件中设置`use_default_label=False`, 将从`label_list.txt` -中读取类别列表,反之则可以没有`label_list.txt`文件,检测库会使用Pascal VOC数据集的默 -认类别列表,默认类别列表定义在[voc\_loader.py](../ppdet/data/source/voc_loader.py) - -- Roidb数据源 - 该数据集主要由COCO数据集和Pascal VOC数据集转换而成的pickle文件,包含一个dict,而dict中只包含一个命名为‘records’的list(可能还有一个命名为‘cname2cid’的字典),其内容如下所示: -```python -(records, catname2clsid) -'records'是一个list并且它的结构如下: -{ - 'im_file': im_fname, # 图像文件名 - 'im_id': im_id, # 图像id - 'h': im_h, # 图像高度 - 'w': im_w, # 图像宽度 - 'is_crowd': is_crowd, # 是否重叠 - 'gt_class': gt_class, # 真实框类别 - 'gt_bbox': gt_bbox, # 真实框坐标 - 'gt_poly': gt_poly, # 多边形坐标 -} -'cname2id'是一个dict,保存了类别名到id的映射 - -``` -我们在`./tools/`中提供了一个生成roidb数据集的代码,可以通过下面命令实现该功能。 -``` -# --type: 原始数据集的类别(只能是xml或者json) -# --annotation: 一个包含所需标注文件名的文件的路径 -# --save-dir: 保存路径 -# --samples: sample的个数(默认是-1,代表使用所有sample) -python ./ppdet/data/tools/generate_data_for_training.py - --type=json \ - --annotation=./annotations/instances_val2017.json \ - --save-dir=./roidb \ - --samples=-1 -``` - 2. 图片预处理 - 图片预处理通过包括图片解码、缩放、裁剪等操作,我们采用`data.transform.operator`算子的方式来统一实现,这样能方便扩展。此外,多个算子还可以组合形成复杂的处理流程, 并被`data.transformer`中的转换器使用,比如多线程完成一个复杂的预处理流程。 - - 3. 数据转换器 - 数据转换器的功能是完成对某个`data.Dataset`进行转换处理,从而得到一个新的`data.Dataset`。我们采用装饰器模式实现各种不同的`data.transform.transformer`。比如用于多进程预处理的`dataset.transform.paralle_map`转换器。 - - 4. 数据获取接口 - 为方便训练时的数据获取,我们将多个`data.Dataset`组合在一起构成一个`data.Reader`为用户提供数据,用户只需要调用`Reader.[train|eval|infer]`即可获得对应的数据流。`Reader`支持yaml文件配置数据地址、预处理过程、加速方式等。 - -### APIs - -主要的APIs如下: - - -1. 数据解析 - - - `source/coco_loader.py`:用于解析COCO数据集。[详见代码](../ppdet/data/source/coco_loader.py) - - `source/voc_loader.py`:用于解析Pascal VOC数据集。[详见代码](../ppdet/data/source/voc_loader.py) - [注意]在使用VOC数据集时,若不使用默认的label列表,则需要先使用`tools/generate_data_for_training.py`生成`label_list.txt`(使用方式与数据解析中的roidb数据集获取过程一致),或提供`label_list.txt`放置于`data/pascalvoc/ImageSets/Main`中;同时在配置文件中设置参数`use_default_label`为`true`。 - - `source/loader.py`:用于解析Roidb数据集。[详见代码](../ppdet/data/source/loader.py) - -2. 算子 - `transform/operators.py`:包含多种数据增强方式,主要包括: - -``` python -RandomFlipImage:水平翻转。 -RandomDistort:随机扰动图片亮度、对比度、饱和度和色相。 -ResizeImage:根据特定的插值方式调整图像大小。 -RandomInterpImage:使用随机的插值方式调整图像大小。 -CropImage:根据缩放比例、长宽比例两个参数生成若干候选框,再依据这些候选框和标注框的面积交并比(IoU)挑选出符合要求的裁剪结果。 -ExpandImage:将原始图片放进一张使用像素均值填充(随后会在减均值操作中减掉)的扩张图中,再对此图进行裁剪、缩放和翻转。 -DecodeImage:以RGB格式读取图像。 -Permute:对图像的通道进行排列并转为BGR格式。 -NormalizeImage:对图像像素值进行归一化。 -NormalizeBox:对bounding box进行归一化。 -MixupImage:按比例叠加两张图像。 -``` -[注意]:Mixup的操作可参考[论文](https://arxiv.org/pdf/1710.09412.pdf)。 - -`transform/arrange_sample.py`:实现对输入网络数据的排序。 -3. 转换 -`transform/post_map.py`:用于完成批数据的预处理操作,其主要包括: - -``` python -随机调整批数据的图像大小 -多尺度调整图像大小 -padding操作 -``` -`transform/transformer.py`:用于过滤无用的数据,并返回批数据。 -`transform/parallel_map.py`:用于实现加速。 -4. 读取 -`reader.py`:用于组合source和transformer操作,根据`max_iter`返回batch数据。 -`data_feed.py`: 用于配置 `reader.py`中所需的默认参数. - - - - -### 使用 -#### 常规使用 -结合yaml文件中的配置信息,完成本模块的功能。yaml文件的使用可以参见配置文件部分。 - - - 读取用于训练的数据 - -``` python -ccfg = load_cfg('./config.yml') -coco = Reader(ccfg.DATA, ccfg.TRANSFORM, maxiter=-1) -``` -#### 如何使用自定义数据集? - -- 选择1:将数据集转换为COCO格式。 -``` - # 在./tools/中提供了x2coco.py用于将labelme标注的数据集或cityscape数据集转换为COCO数据集 - python ./ppdet/data/tools/x2coco.py --dataset_type labelme - --json_input_dir ./labelme_annos/ - --image_input_dir ./labelme_imgs/ - --output_dir ./cocome/ - --train_proportion 0.8 - --val_proportion 0.2 - --test_proportion 0.0 - # --dataset_type:需要转换的数据格式,目前支持:’labelme‘和’cityscape‘ - # --json_input_dir:使用labelme标注的json文件所在文件夹 - # --image_input_dir:图像文件所在文件夹 - # --output_dir:转换后的COCO格式数据集存放位置 - # --train_proportion:标注数据中用于train的比例 - # --val_proportion:标注数据中用于validation的比例 - # --test_proportion: 标注数据中用于infer的比例 -``` -- 选择2: - -1. 仿照`./source/coco_loader.py`和`./source/voc_loader.py`,添加`./source/XX_loader.py`并实现`load`函数。 -2. 在`./source/loader.py`的`load`函数中添加使用`./source/XX_loader.py`的入口。 -3. 修改`./source/__init__.py`: - - -```python -if data_cf['type'] in ['VOCSource', 'COCOSource', 'RoiDbSource']: - source_type = 'RoiDbSource' -# 将上述代码替换为如下代码: -if data_cf['type'] in ['VOCSource', 'COCOSource', 'RoiDbSource', 'XXSource']: - source_type = 'RoiDbSource' -``` - -4. 在配置文件中修改`dataset`下的`type`为`XXSource`。 - -#### 如何增加数据预处理? -- 若增加单张图像的增强预处理,可在`transform/operators.py`中参考每个类的代码,新建一个类来实现新的数据增强;同时在配置文件中增加该预处理。 -- 若增加单个batch的图像预处理,可在`transform/post_map.py`中参考`build_post_map`中每个函数的代码,新建一个内部函数来实现新的批数据预处理;同时在配置文件中增加该预处理。 diff --git a/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md b/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md deleted file mode 100644 index 614d87e29c5e5d5685f64c9ee78cf7d1d5192d09..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md +++ /dev/null @@ -1,48 +0,0 @@ -# 模型导出 - -训练得到一个满足要求的模型后,如果想要将该模型接入到C++预测库或者Serving服务,需要通过`tools/export_model.py`导出该模型。 - -## 启动参数说明 - -| FLAG | 用途 | 默认值 | 备注 | -|:--------------:|:--------------:|:------------:|:-----------------------------------------:| -| -c | 指定配置文件 | None | | -| --output_dir | 模型保存路径 | `./output` | 模型默认保存在`output/配置文件名/`路径下 | - -## 使用示例 - -使用[训练/评估/推断](GETTING_STARTED_cn.md)中训练得到的模型进行试用,脚本如下 - -```bash -# 导出FasterRCNN模型, 模型中data层默认的shape为3x800x1333 -python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \ - --output_dir=./inference_model \ - -o weights=output/faster_rcnn_r50_1x/model_final \ - -``` - -预测模型会导出到`inference_model/faster_rcnn_r50_1x`目录下,模型名和参数名分别为`__model__`和`__params__`。 - -## 设置导出模型的输入大小 - -使用Fluid-TensorRT进行预测时,由于<=TensorRT 5.1的版本仅支持定长输入,保存模型的`data`层的图片大小需要和实际输入图片大小一致。而Fluid C++预测引擎没有此限制。可通过设置TestFeed的`image_shape`可以修改保存模型中的输入图片大小。示例如下: - -```bash -# 导出FasterRCNN模型,输入是3x640x640 -python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \ - --output_dir=./inference_model \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar \ - FasterRCNNTestFeed.image_shape=[3,640,640] - -# 导出YOLOv3模型,输入是3x320x320 -python tools/export_model.py -c configs/yolov3_darknet.yml \ - --output_dir=./inference_model \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar \ - YoloTestFeed.image_shape=[3,320,320] - -# 导出SSD模型,输入是3x300x300 -python tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml \ - --output_dir=./inference_model \ - -o weights= https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar \ - SSDTestFeed.image_shape=[3,300,300] -``` diff --git a/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md b/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md deleted file mode 100644 index 199b343ed2a80a1bf80fcf3d3206fbdf8413551f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/GETTING_STARTED.md +++ /dev/null @@ -1,187 +0,0 @@ -English | [简体中文](GETTING_STARTED_cn.md) - -# Getting Started - -For setting up the running environment, please refer to [installation -instructions](INSTALL.md). - - -## Training/Evaluation/Inference - -PaddleDetection provides scripots for training, evalution and inference with various features according to different configure. - -```bash -# set PYTHONPATH -export PYTHONPATH=$PYTHONPATH:. -# training in single-GPU and multi-GPU. specify different GPU numbers by CUDA_VISIBLE_DEVICES -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -python tools/train.py -c configs/faster_rcnn_r50_1x.yml -# GPU evalution -export CUDA_VISIBLE_DEVICES=0 -python tools/eval.py -c configs/faster_rcnn_r50_1x.yml -# Inference -python tools/infer.py -c configs/faster_rcnn_r50_1x.yml --infer_img=demo/000000570688.jpg -``` - -### Optional argument list - -list below can be viewed by `--help` - -| FLAG | script supported | description | default | remark | -| :----------------------: | :------------: | :---------------: | :--------------: | :-----------------: | -| -c | ALL | Select config file | None | **The whole description of configure can refer to [config_example](config_example)** | -| -o | ALL | Set parameters in configure file | None | `-o` has higher priority to file configured by `-c`. Such as `-o use_gpu=False max_iter=10000` | -| -r/--resume_checkpoint | train | Checkpoint path for resuming training | None | `-r output/faster_rcnn_r50_1x/10000` | -| --eval | train | Whether to perform evaluation in training | False | | -| --output_eval | train/eval | json path in evalution | current path | `--output_eval ./json_result` | -| -d/--dataset_dir | train/eval | path for dataset, same as dataset_dir in configs | None | `-d dataset/coco` | -| --fp16 | train | Whether to enable mixed precision training | False | GPU training is required | -| --loss_scale | train | Loss scaling factor for mixed precision training | 8.0 | enable when `--fp16` is True | -| --json_eval | eval | Whether to evaluate with already existed bbox.json or mask.json | False | json path is set in `--output_eval` | -| --output_dir | infer | Directory for storing the output visualization files | `./output` | `--output_dir output` | -| --draw_threshold | infer | Threshold to reserve the result for visualization | 0.5 | `--draw_threshold 0.7` | -| --infer_dir | infer | Directory for images to perform inference on | None | | -| --infer_img | infer | Image path | None | higher priority over --infer_dir | -| --use_tb | train/infer | Whether to record the data with [tb-paddle](https://github.com/linshuliang/tb-paddle), so as to display in Tensorboard | False | | -| --tb\_log_dir | train/infer | tb-paddle logging directory for image | train:`tb_log_dir/scalar` infer: `tb_log_dir/image` | | - - -## Examples - -### Training - -- Perform evaluation in training - - ```bash - export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml --eval - ``` - - Perform training and evalution alternatively and evaluate at each snapshot_iter. Meanwhile, the best model with highest MAP is saved at each `snapshot_iter` which has the same path as `model_final`. - - If evaluation dataset is large, we suggest decreasing evaluation times or evaluating after training. - -- Fine-tune other task - - When using pre-trained model to fine-tune other task, two methods can be used: - - 1. The excluded pre-trained parameters can be set by `finetune_exclude_pretrained_params` in YAML config - 2. Set -o finetune\_exclude\_pretrained_params in the arguments. - - ```bash - export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml \ - -o pretrain_weights=output/faster_rcnn_r50_1x/model_final/ \ - finetune_exclude_pretrained_params = ['cls_score','bbox_pred'] - ``` - -##### NOTES - -- `CUDA_VISIBLE_DEVICES` can specify different gpu numbers. Such as: `export CUDA_VISIBLE_DEVICES=0,1,2,3`. GPU calculation rules can refer [FAQ](#faq) -- Dataset will be downloaded automatically and cached in `~/.cache/paddle/dataset` if not be found locally. -- Pretrained model is downloaded automatically and cached in `~/.cache/paddle/weights`. -- Checkpoints are saved in `output` by default, and can be revised from save_dir in configure files. -- RCNN models training on CPU is not supported on PaddlePaddle<=1.5.1 and will be fixed on later version. - - -### Mixed Precision Training - -Mixed precision training can be enabled with `--fp16` flag. Currently Faster-FPN, Mask-FPN and Yolov3 have been verified to be working with little to no loss of precision (less than 0.2 mAP) - -To speed up mixed precision training, it is recommended to train in multi-process mode, for example - -```bash -python -m paddle.distributed.launch --selected_gpus 0,1,2,3,4,5,6,7 tools/train.py --fp16 -c configs/faster_rcnn_r50_fpn_1x.yml -``` - -If loss becomes `NaN` during training, try tweak the `--loss_scale` value. Please refer to the Nvidia [documentation](https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html#mptrain) on mixed precision training for details. - -Also, please note mixed precision training currently requires changing `norm_type` from `affine_channel` to `bn`. - - - -### Evaluation - -- Evaluate by specified weights path and dataset path - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python -u tools/eval.py -c configs/faster_rcnn_r50_1x.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar \ - -d dataset/coco - ``` - - The path of model to be evaluted can be both local path and link in [MODEL_ZOO](MODEL_ZOO_cn.md). - -- Evaluate with json - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python tools/eval.py -c configs/faster_rcnn_r50_1x.yml \ - --json_eval \ - -f evaluation/ - ``` - - The json file must be named bbox.json or mask.json, placed in the `evaluation/` directory. - -#### NOTES - -- Multi-GPU evaluation for R-CNN and SSD models is not supported at the -moment, but it is a planned feature - - -### Inference - -- Output specified directory && Set up threshold - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python tools/infer.py -c configs/faster_rcnn_r50_1x.yml \ - --infer_img=demo/000000570688.jpg \ - --output_dir=infer_output/ \ - --draw_threshold=0.5 \ - -o weights=output/faster_rcnn_r50_1x/model_final \ - --use_tb=Ture - ``` - - `--draw_threshold` is an optional argument. Default is 0.5. - Different thresholds will produce different results depending on the calculation of [NMS](https://ieeexplore.ieee.org/document/1699659). - - -- Export model - - ```bash - python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \ - --output_dir=inference_model \ - -o weights=output/faster_rcnn_r50_1x/model_final \ - FasterRCNNTestFeed.image_shape=[3,800,1333] - ``` - - Save inference model `tools/export_model.py`, which can be loaded by PaddlePaddle predict library. - -## FAQ - -**Q:** Why do I get `NaN` loss values during single GPU training?
-**A:** The default learning rate is tuned to multi-GPU training (8x GPUs), it must -be adapted for single GPU training accordingly (e.g., divide by 8). -The calculation rules are as follows,they are equivalent:
- - -| GPU number | Learning rate | Max_iters | Milestones | -| :---------: | :------------: | :-------: | :--------------: | -| 2 | 0.0025 | 720000 | [480000, 640000] | -| 4 | 0.005 | 360000 | [240000, 320000] | -| 8 | 0.01 | 180000 | [120000, 160000] | - - -**Q:** How to reduce GPU memory usage?
-**A:** Setting environment variable FLAGS_conv_workspace_size_limit to a smaller -number can reduce GPU memory footprint without affecting training speed. -Take Mask-RCNN (R50) as example, by setting `export FLAGS_conv_workspace_size_limit=512`, -batch size could reach 4 per GPU (Tesla V100 16GB). - - -**Q:** How to change data preprocessing?
-**A:** Set `sample_transform` in configuration. Note that **the whole transforms** need to be added in configuration. -For example, `DecodeImage`, `NormalizeImage` and `Permute` in RCNN models. For detail description, please refer -to [config_example](config_example). diff --git a/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md b/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md deleted file mode 100644 index 15cb8cdb239e72f204d598adbf78627000cb5bec..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/GETTING_STARTED_cn.md +++ /dev/null @@ -1,173 +0,0 @@ -# 开始 - -关于配置运行环境,请参考[安装指南](INSTALL_cn.md) - - -## 训练/评估/推断 - -PaddleDetection提供了训练/评估/推断三个功能的使用脚本,支持通过不同可选参数实现特定功能 - -```bash -# 设置PYTHONPATH路径 -export PYTHONPATH=$PYTHONPATH:. -# GPU训练 支持单卡,多卡训练,通过CUDA_VISIBLE_DEVICES指定卡号 -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -python tools/train.py -c configs/faster_rcnn_r50_1x.yml -# GPU评估 -export CUDA_VISIBLE_DEVICES=0 -python tools/eval.py -c configs/faster_rcnn_r50_1x.yml -# 推断 -python tools/infer.py -c configs/faster_rcnn_r50_1x.yml --infer_img=demo/000000570688.jpg -``` - -### 可选参数列表 - -以下列表可以通过`--help`查看 - -| FLAG | 支持脚本 | 用途 | 默认值 | 备注 | -| :----------------------: | :------------: | :---------------: | :--------------: | :-----------------: | -| -c | ALL | 指定配置文件 | None | **完整配置说明请参考[配置案例](config_example)** | -| -o | ALL | 设置配置文件里的参数内容 | None | 使用-o配置相较于-c选择的配置文件具有更高的优先级。例如:`-o use_gpu=False max_iter=10000` | -| -r/--resume_checkpoint | train | 从某一检查点恢复训练 | None | `-r output/faster_rcnn_r50_1x/10000` | -| --eval | train | 是否边训练边测试 | False | | -| --output_eval | train/eval | 编辑评测保存json路径 | 当前路径 | `--output_eval ./json_result` | -| -d/--dataset_dir | train/eval | 数据集路径, 同配置文件里的dataset_dir | None | `-d dataset/coco` | -| --fp16 | train | 是否使用混合精度训练模式 | False | 需使用GPU训练 | -| --loss_scale | train | 设置混合精度训练模式中损失值的缩放比例 | 8.0 | 需先开启`--fp16`后使用 | -| --json_eval | eval | 是否通过已存在的bbox.json或者mask.json进行评估 | False | json文件路径在`--output_eval`中设置 | -| --output_dir | infer | 输出推断后可视化文件 | `./output` | `--output_dir output` | -| --draw_threshold | infer | 可视化时分数阈值 | 0.5 | `--draw_threshold 0.7` | -| --infer_dir | infer | 用于推断的图片文件夹路径 | None | | -| --infer_img | infer | 用于推断的图片路径 | None | 相较于`--infer_dir`具有更高优先级 | -| --use_tb | train/infer | 是否使用[tb-paddle](https://github.com/linshuliang/tb-paddle)记录数据,进而在TensorBoard中显示 | False | | -| --tb\_log_dir | train/infer | 指定 tb-paddle 记录数据的存储路径 | train:`tb_log_dir/scalar` infer: `tb_log_dir/image` | | - - -## 使用示例 - -### 模型训练 - -- 边训练边测试 - - ```bash - export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml --eval -d dataset/coco - ``` - - 在训练中交替执行评估, 评估在每个snapshot\_iter时开始。每次评估后还会评出最佳mAP模型保存到`best_model`文件夹下。 - - 如果验证集很大,测试将会比较耗时,建议减少评估次数,或训练完再进行评估。 - - -- Fine-tune其他任务 - - 使用预训练模型fine-tune其他任务时,可采用如下两种方式: - - 1. 在YAML配置文件中设置`finetune_exclude_pretrained_params` - 2. 在命令行中添加-o finetune\_exclude\_pretrained_params对预训练模型进行选择性加载。 - - ```bash - export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml \ - -o pretrain_weights=output/faster_rcnn_r50_1x/model_final/ \ - finetune_exclude_pretrained_params=['cls_score','bbox_pred'] - ``` - - 详细说明请参考[Transfer Learning](TRANSFER_LEARNING_cn.md) - -#### 提示 - -- `CUDA_VISIBLE_DEVICES` 参数可以指定不同的GPU。例如: `export CUDA_VISIBLE_DEVICES=0,1,2,3`. GPU计算规则可以参考 [FAQ](#faq) -- 若本地未找到数据集,将自动下载数据集并保存在`~/.cache/paddle/dataset`中。 -- 预训练模型自动下载并保存在`〜/.cache/paddle/weights`中。 -- 模型checkpoints默认保存在`output`中,可通过修改配置文件中save_dir进行配置。 -- RCNN系列模型CPU训练在PaddlePaddle 1.5.1及以下版本暂不支持。 - -### 混合精度训练 - -通过设置 `--fp16` 命令行选项可以启用混合精度训练。目前混合精度训练已经在Faster-FPN, Mask-FPN 及 Yolov3 上进行验证,几乎没有精度损失(小于0.2 mAP)。 - -建议使用多进程方式来进一步加速混合精度训练。示例如下。 - -```bash -python -m paddle.distributed.launch --selected_gpus 0,1,2,3,4,5,6,7 tools/train.py --fp16 -c configs/faster_rcnn_r50_fpn_1x.yml -``` - -如果训练过程中loss出现`NaN`,请尝试调节`--loss_scale`选项数值,细节请参看混合精度训练相关的[Nvidia文档](https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/index.html#mptrain)。 - -另外,请注意将配置文件中的 `norm_type` 由 `affine_channel` 改为 `bn`。 - - -### 模型评估 - -- 指定权重和数据集路径 - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python -u tools/eval.py -c configs/faster_rcnn_r50_1x.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar \ - -d dataset/coco - ``` - - 评估模型可以为本地路径,例如`output/faster_rcnn_r50_1x/model_final/`, 也可以为[MODEL_ZOO](MODEL_ZOO_cn.md)中给出的模型链接。 - -- 通过json文件评估 - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python -u tools/eval.py -c configs/faster_rcnn_r50_1x.yml \ - --json_eval \ - --output_eval evaluation/ - ``` - - json文件必须命名为bbox.json或者mask.json,放在`evaluation/`目录下。 - -#### 提示 - -- R-CNN和SSD模型目前暂不支持多GPU评估,将在后续版本支持 - - -### 模型推断 - -- 设置输出路径 && 设置推断阈值 - - ```bash - export CUDA_VISIBLE_DEVICES=0 - python -u tools/infer.py -c configs/faster_rcnn_r50_1x.yml \ - --infer_img=demo/000000570688.jpg \ - --output_dir=infer_output/ \ - --draw_threshold=0.5 \ - -o weights=output/faster_rcnn_r50_1x/model_final \ - ``` - - - `--draw_threshold` 是个可选参数. 根据 [NMS](https://ieeexplore.ieee.org/document/1699659) 的计算, - 不同阈值会产生不同的结果。如果用户需要对自定义路径的模型进行推断,可以设置`-o weights`指定模型路径。 - -## FAQ - -**Q:** 为什么我使用单GPU训练loss会出`NaN`?
-**A:** 默认学习率是适配多GPU训练(8x GPU),若使用单GPU训练,须对应调整学习率(例如,除以8)。 -计算规则表如下所示,它们是等价的:
- - -| GPU数 | 学习率 | 最大轮数 | 变化节点 | -| :---------: | :------------: | :-------: | :--------------: | -| 2 | 0.0025 | 720000 | [480000, 640000] | -| 4 | 0.005 | 360000 | [240000, 320000] | -| 8 | 0.01 | 180000 | [120000, 160000] | - - -**Q:** 如何减少GPU显存使用率?
-**A:** 可通过设置环境变量`FLAGS_conv_workspace_size_limit`为较小的值来减少显存消耗,并且不 -会影响训练速度。以Mask-RCNN(R50)为例,设置`export FLAGS_conv_workspace_size_limit = 512`, -batch size可以达到每GPU 4 (Tesla V100 16GB)。 - - -**Q:** 如何修改数据预处理?
-**A:** 可在配置文件中设置 `sample_transform`。注意需要在配置文件中加入**完整预处理** -例如RCNN模型中`DecodeImage`, `NormalizeImage` and `Permute`。更多详细描述请参考[配置案例](config_example)。 - - -**Q:** affine_channel和batch norm是什么关系? -**A:** 在RCNN系列模型加载预训练模型初始化,有时候会固定住batch norm的参数, 使用预训练模型中的全局均值和方式,并且batch norm的scale和bias参数不更新,已发布的大多ResNet系列的RCNN模型采用这种方式。这种情况下可以在config中设置norm_type为bn或affine_channel, freeze_norm为true (默认为true),两种方式等价。affne_channel的计算方式为`scale * x + bias`。只不过设置affine_channel时,内部对batch norm的参数自动做了融合。如果训练使用的affine_channel,用保存的模型做初始化,训练其他任务时,即可使用affine_channel, 也可使用batch norm, 参数均可正确加载。 diff --git a/PaddleCV/PaddleDetection/docs/INSTALL.md b/PaddleCV/PaddleDetection/docs/INSTALL.md deleted file mode 100644 index 6a9baf0a4aa7078d27ee654764e9a99cc49071be..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/INSTALL.md +++ /dev/null @@ -1,205 +0,0 @@ -English | [简体中文](INSTALL_cn.md) - -# Installation - ---- -## Table of Contents - -- [Introduction](#introduction) -- [PaddlePaddle](#paddlepaddle) -- [Other Dependencies](#other-dependencies) -- [PaddleDetection](#paddle-detection) -- [Datasets](#datasets) - - -## Introduction - -This document covers how to install PaddleDetection, its dependencies -(including PaddlePaddle), together with COCO and Pascal VOC dataset. - -For general information about PaddleDetection, please see [README.md](../README.md). - - -## PaddlePaddle - -Running PaddleDetection requires PaddlePaddle Fluid v.1.5 and later. please follow the instructions in [installation document](http://www.paddlepaddle.org.cn/). - -Please make sure your PaddlePaddle installation was successful and the version -of your PaddlePaddle is not lower than required. Verify with the following commands. - -``` -# To check PaddlePaddle installation in your Python interpreter ->>> import paddle.fluid as fluid ->>> fluid.install_check.run_check() - -# To check PaddlePaddle version -python -c "import paddle; print(paddle.__version__)" -``` - -### Requirements: - -- Python2 or Python3 (Only support Python3 for windows) -- CUDA >= 8.0 -- cuDNN >= 5.0 -- nccl >= 2.1.2 - - -## Other Dependencies - -[COCO-API](https://github.com/cocodataset/cocoapi): - -COCO-API is needed for running. Installation is as follows: - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # if cython is not installed - pip install Cython - # Install into global site-packages - make install - # Alternatively, if you do not have permissions or prefer - # not to install the COCO API into global site-packages - python setup.py install --user - -**Installation of COCO-API in windows:** - - # if cython is not installed - pip install Cython - # Because the origin version of cocoapi does not support windows, another version is used which only supports Python3 - pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI - -## PaddleDetection - -**Clone Paddle models repository:** - -You can clone Paddle models and change working directory to PaddleDetection -with the following commands: - -``` -cd -git clone https://github.com/PaddlePaddle/models -cd models/PaddleCV/PaddleDetection -``` - -**Install Python dependencies:** - -Required python packages are specified in [requirements.txt](../requirements.txt), and can be installed with: - -``` -pip install -r requirements.txt -``` - -**Make sure the tests pass:** - -``` -export PYTHONPATH=`pwd`:$PYTHONPATH -python ppdet/modeling/tests/test_architectures.py -``` - - -## Datasets - -PaddleDetection includes support for [COCO](http://cocodataset.org) and [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/) by default, please follow these instructions to set up the dataset. - -**Create symlinks for local datasets:** - -Default dataset path in config files is `dataset/coco` and `dataset/voc`, if the -datasets are already available on disk, you can simply create symlinks to -their directories: - -``` -ln -sf /dataset/coco -ln -sf /dataset/voc -``` - -For Pascal VOC dataset, you should create file list by: - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/voc/create_list.py -``` - -**Download datasets manually:** - -On the other hand, to download the datasets, run the following commands: - -- COCO - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/coco/download_coco.py -``` - -`COCO` dataset with directory structures like this: - - ``` - dataset/coco/ - ├── annotations - │ ├── instances_train2014.json - │ ├── instances_train2017.json - │ ├── instances_val2014.json - │ ├── instances_val2017.json - │ | ... - ├── train2017 - │ ├── 000000000009.jpg - │ ├── 000000580008.jpg - │ | ... - ├── val2017 - │ ├── 000000000139.jpg - │ ├── 000000000285.jpg - │ | ... - | ... - ``` - -- Pascal VOC - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/voc/download_voc.py -python dataset/voc/create_list.py -``` - -`Pascal VOC` dataset with directory structure like this: - - ``` - dataset/voc/ - ├── train.txt - ├── val.txt - ├── test.txt - ├── label_list.txt (optional) - ├── VOCdevkit/VOC2007 - │ ├── Annotations - │ ├── 001789.xml - │ | ... - │ ├── JPEGImages - │ ├── 001789.xml - │ | ... - │ ├── ImageSets - │ | ... - ├── VOCdevkit/VOC2012 - │ ├── Annotations - │ ├── 003876.xml - │ | ... - │ ├── JPEGImages - │ ├── 003876.xml - │ | ... - │ ├── ImageSets - │ | ... - | ... - ``` - -**NOTE:** If you set `use_default_label=False` in yaml configs, the `label_list.txt` -of Pascal VOC dataset will be read, otherwise, `label_list.txt` is unnecessary and -the default Pascal VOC label list which defined in -[voc\_loader.py](../ppdet/data/source/voc_loader.py) will be used. - -**Download datasets automatically:** - -If a training session is started but the dataset is not setup properly (e.g, -not found in `dataset/coco` or `dataset/voc`), PaddleDetection can automatically -download them from [COCO-2017](http://images.cocodataset.org) and -[VOC2012](http://host.robots.ox.ac.uk/pascal/VOC), the decompressed datasets -will be cached in `~/.cache/paddle/dataset/` and can be discovered automatically -subsequently. - - -**NOTE:** For further informations on the datasets, please see [DATA.md](DATA.md) diff --git a/PaddleCV/PaddleDetection/docs/INSTALL_cn.md b/PaddleCV/PaddleDetection/docs/INSTALL_cn.md deleted file mode 100644 index f8eee189be251ecbf793689d01007f0275cae99c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/INSTALL_cn.md +++ /dev/null @@ -1,199 +0,0 @@ -# 安装文档 - ---- -## 目录 - -- [简介](#introduction) -- [PaddlePaddle](#paddlepaddle) -- [其他依赖安装](#other-dependencies) -- [PaddleDetection](#paddle-detection) -- [数据集](#datasets) - - -## 简介 - -这份文档介绍了如何安装PaddleDetection及其依赖项(包括PaddlePaddle),以及COCO和Pascal VOC数据集。 - -PaddleDetection的相关信息,请参考[README.md](../README.md). - - -## PaddlePaddle - - -运行PaddleDetection需要PaddlePaddle Fluid v.1.5及更高版本。请按照[安装文档](http://www.paddlepaddle.org.cn/)中的说明进行操作。 - -请确保您的PaddlePaddle安装成功并且版本不低于需求版本。使用以下命令进行验证。 - -``` -# 在您的Python解释器中确认PaddlePaddle安装成功 ->>> import paddle.fluid as fluid ->>> fluid.install_check.run_check() - -# 确认PaddlePaddle版本 -python -c "import paddle; print(paddle.__version__)" -``` - -### 环境需求: - -- Python2 or Python3 (windows系统仅支持Python3) -- CUDA >= 8.0 -- cuDNN >= 5.0 -- nccl >= 2.1.2 - - -## 其他依赖安装 - -[COCO-API](https://github.com/cocodataset/cocoapi): - -运行需要COCO-API,安装方式如下: - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # 若Cython未安装,请安装Cython - pip install Cython - # 安装至全局site-packages - make install - # 若您没有权限或更倾向不安装至全局site-packages - python setup.py install --user - -**windows用户安装COCO-API方式:** - - # 若Cython未安装,请安装Cython - pip install Cython - # 由于原版cocoapi不支持windows,采用第三方实现版本,该版本仅支持Python3 - pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI - -## PaddleDetection - -**克隆Paddle models模型库:** - -您可以通过以下命令克隆Paddle models模型库并切换工作目录至PaddleDetection: - -``` -cd -git clone https://github.com/PaddlePaddle/models -cd models/PaddleCV/PaddleDetection -``` - -**安装Python依赖库:** - -Python依赖库在[requirements.txt](../requirements.txt)中给出,可通过如下命令安装: - -``` -pip install -r requirements.txt -``` - -**确认测试通过:** - -``` -export PYTHONPATH=`pwd`:$PYTHONPATH -python ppdet/modeling/tests/test_architectures.py -``` - - -## 数据集 - - -PaddleDetection默认支持[COCO](http://cocodataset.org)和[Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/), -请按照如下步骤设置数据集。 - -**为本地数据集创建软链接:** - - -配置文件中默认的数据集路径是`dataset/coco`和`dataset/voc`,如果您本地磁盘上已有数据集, -只需创建软链接至数据集目录: - -``` -ln -sf /dataset/coco -ln -sf /dataset/voc -``` - -对于Pascal VOC数据集,需通过如下命令创建文件列表: - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/voc/create_list.py -``` - -**手动下载数据集:** - -若您本地没有数据集,可通过如下命令下载: - -- COCO - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/coco/download_coco.py -``` - -`COCO` 数据集目录结构如下: - - ``` - dataset/coco/ - ├── annotations - │ ├── instances_train2014.json - │ ├── instances_train2017.json - │ ├── instances_val2014.json - │ ├── instances_val2017.json - │ | ... - ├── train2017 - │ ├── 000000000009.jpg - │ ├── 000000580008.jpg - │ | ... - ├── val2017 - │ ├── 000000000139.jpg - │ ├── 000000000285.jpg - │ | ... - | ... - ``` - -- Pascal VOC - -``` -export PYTHONPATH=$PYTHONPATH:. -python dataset/voc/download_voc.py -python dataset/voc/create_list.py -``` - -`Pascal VOC` 数据集目录结构如下: - - ``` - dataset/voc/ - ├── train.txt - ├── val.txt - ├── test.txt - ├── label_list.txt (optional) - ├── VOCdevkit/VOC2007 - │ ├── Annotations - │ ├── 001789.xml - │ | ... - │ ├── JPEGImages - │ ├── 001789.xml - │ | ... - │ ├── ImageSets - │ | ... - ├── VOCdevkit/VOC2012 - │ ├── Annotations - │ ├── 003876.xml - │ | ... - │ ├── JPEGImages - │ ├── 003876.xml - │ | ... - │ ├── ImageSets - │ | ... - | ... - ``` - -**说明:** 如果你在yaml配置文件中设置`use_default_label=False`, 将从`label_list.txt` -中读取类别列表,反之则可以没有`label_list.txt`文件,检测库会使用Pascal VOC数据集的默 -认类别列表,默认类别列表定义在[voc\_loader.py](../ppdet/data/source/voc_loader.py) - -**自动下载数据集:** - -若您在数据集未成功设置(例如,在`dataset/coco`或`dataset/voc`中找不到)的情况下开始运行, -PaddleDetection将自动从[COCO-2017](http://images.cocodataset.org)或 -[VOC2012](http://host.robots.ox.ac.uk/pascal/VOC)下载,解压后的数据集将被保存在 -`〜/.cache/paddle/dataset/`目录下,下次运行时,也可自动从该目录发现数据集。 - - -**说明:** 更多有关数据集的介绍,请参考[DATA.md](DATA_cn.md) diff --git a/PaddleCV/PaddleDetection/docs/MODEL_ZOO.md b/PaddleCV/PaddleDetection/docs/MODEL_ZOO.md deleted file mode 100644 index d6042ada1293ea77a1670871bbff1d6f94f8a163..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/MODEL_ZOO.md +++ /dev/null @@ -1,165 +0,0 @@ -English | [简体中文](MODEL_ZOO_cn.md) - -# Model Zoo and Benchmark -## Environment - -- Python 2.7.1 -- PaddlePaddle >=1.5 -- CUDA 9.0 -- cuDNN >=7.4 -- NCCL 2.1.2 - -## Common settings - -- All models below were trained on `coco_2017_train`, and tested on `coco_2017_val`. -- Batch Normalization layers in backbones are replaced by Affine Channel layers. -- Unless otherwise noted, all ResNet backbones adopt the [ResNet-B](https://arxiv.org/pdf/1812.01187) variant.. -- For RCNN and RetinaNet models, only horizontal flipping data augmentation was used in the training phase and no augmentations were used in the testing phase. -- **Inf time (fps)**: the inference time is measured with fps (image/s) on a single GPU (Tesla V100) with cuDNN 7.5 by running 'tools/eval.py' on all validation set, which including data loadding, network forward and post processing. The batch size is 1. - - -## Training Schedules - -- We adopt exactly the same training schedules as [Detectron](https://github.com/facebookresearch/Detectron/blob/master/MODEL_ZOO.md#training-schedules). -- 1x indicates the schedule starts at a LR of 0.02 and is decreased by a factor of 10 after 60k and 80k iterations and eventually terminates at 90k iterations for minibatch size 16. For batch size 8, LR is decreased to 0.01, total training iterations are doubled, and the decay milestones are scaled by 2. -- 2x schedule is twice as long as 1x, with the LR milestones scaled accordingly. - -## ImageNet Pretrained Models - -The backbone models pretrained on ImageNet are available. All backbone models are pretrained on standard ImageNet-1k dataset and can be downloaded [here](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification#supported-models-and-performances). - -- **Notes:** The ResNet50 model was trained with cosine LR decay schedule and can be downloaded [here](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar). - -## Baselines - -### Faster & Mask R-CNN - -| Backbone | Type | Image/gpu | Lr schd | Inf time (fps) | Box AP | Mask AP | Download | -| :---------------------- | :------------- | :-------: | :-----: | :------------: | :----: | :-----: | :----------------------------------------------------------: | -| ResNet50 | Faster | 1 | 1x | 12.747 | 35.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar) | -| ResNet50 | Faster | 1 | 2x | 12.686 | 37.1 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_2x.tar) | -| ResNet50 | Mask | 1 | 1x | 11.615 | 36.5 | 32.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar) | -| ResNet50 | Mask | 1 | 2x | 11.494 | 38.2 | 33.4 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_2x.tar) | -| ResNet50-vd | Faster | 1 | 1x | 12.575 | 36.4 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_1x.tar) | -| ResNet50-FPN | Faster | 2 | 1x | 22.273 | 37.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Faster | 2 | 2x | 22.297 | 37.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_2x.tar) | -| ResNet50-FPN | Mask | 1 | 1x | 15.184 | 37.9 | 34.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Mask | 1 | 2x | 15.881 | 38.7 | 34.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_2x.tar) | -| ResNet50-FPN | Cascade Faster | 2 | 1x | 17.507 | 40.9 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Cascade Mask | 1 | 1x | - | 41.3 | 35.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_mask_rcnn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Faster | 2 | 2x | 21.847 | 38.9 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_fpn_2x.tar) | -| ResNet50-vd-FPN | Mask | 1 | 2x | 15.825 | 39.8 | 35.4 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar) | -| ResNet101 | Faster | 1 | 1x | 9.316 | 38.3 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_1x.tar) | -| ResNet101-FPN | Faster | 1 | 1x | 17.297 | 38.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_1x.tar) | -| ResNet101-FPN | Faster | 1 | 2x | 17.246 | 39.1 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_2x.tar) | -| ResNet101-FPN | Mask | 1 | 1x | 12.983 | 39.5 | 35.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar) | -| ResNet101-vd-FPN | Faster | 1 | 1x | 17.011 | 40.5 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_1x.tar) | -| ResNet101-vd-FPN | Faster | 1 | 2x | 16.934 | 40.8 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Mask | 1 | 1x | 13.105 | 41.4 | 36.8 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-64x4d-FPN | Faster | 1 | 1x | 8.815 | 42.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_1x.tar) | -| ResNeXt101-vd-64x4d-FPN | Faster | 1 | 2x | 8.809 | 41.7 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_2x.tar) | -| ResNeXt101-vd-64x4d-FPN | Mask | 1 | 1x | 7.689 | 42.9 | 37.9 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_1x.tar) | -| ResNeXt101-vd-64x4d-FPN | Mask | 1 | 2x | 7.859 | 42.6 | 37.6 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_2x.tar) | -| SENet154-vd-FPN | Faster | 1 | 1.44x | 3.408 | 42.9 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_se154_vd_fpn_s1x.tar) | -| SENet154-vd-FPN | Mask | 1 | 1.44x | 3.233 | 44.0 | 38.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_se154_vd_fpn_s1x.tar) | - -### Deformable ConvNets v2 - -| Backbone | Type | Conv | Image/gpu | Lr schd | Inf time (fps) | Box AP | Mask AP | Download | -| :---------------------- | :------------- | :---: | :-------: | :-----: | :------------: | :----: | :-----: | :----------------------------------------------------------: | -| ResNet50-FPN | Faster | c3-c5 | 2 | 1x | 19.978 | 41.0 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Faster | c3-c5 | 2 | 2x | 19.222 | 42.4 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r50_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Faster | c3-c5 | 2 | 1x | 14.477 | 44.1 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-64x4d-FPN | Faster | c3-c5 | 1 | 1x | 7.209 | 45.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| ResNet50-FPN | Mask | c3-c5 | 1 | 1x | 14.53 | 41.9 | 37.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Mask | c3-c5 | 1 | 2x | 14.832 | 42.9 | 38.0 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r50_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Mask | c3-c5 | 1 | 1x | 11.546 | 44.6 | 39.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-64x4d-FPN | Mask | c3-c5 | 1 | 1x | 6.45 | 46.2 | 40.4 | [model](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| ResNet50-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 44.2 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet101-vd-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 46.4 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 47.3 | - | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| SENet154-vd-FPN | Cascade Mask | c3-c5 | 1 | 1.44x | - | 51.9 | 43.9 | [model](https://paddlemodels.bj.bcebos.com/object_detection/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x.tar) | - -#### Notes: -- Deformable ConvNets v2(dcn_v2) reference from [Deformable ConvNets v2](https://arxiv.org/abs/1811.11168). -- `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 | Inf time (fps) | Box AP | Download | -| :----------- | :--: | :-------: | :-----: | :------------: | :----: | :----------------------------------------------------------: | -| DarkNet53 | 608 | 8 | 270e | 45.571 | 38.9 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| DarkNet53 | 416 | 8 | 270e | - | 37.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| DarkNet53 | 320 | 8 | 270e | - | 34.8 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| MobileNet-V1 | 608 | 8 | 270e | 78.302 | 29.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| MobileNet-V1 | 416 | 8 | 270e | - | 29.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| MobileNet-V1 | 320 | 8 | 270e | - | 27.1 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| ResNet34 | 608 | 8 | 270e | 63.356 | 36.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | -| ResNet34 | 416 | 8 | 270e | - | 34.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | -| ResNet34 | 320 | 8 | 270e | - | 31.4 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | - - -### Yolo v3 on Pascal VOC - -| Backbone | Size | Image/gpu | Lr schd | Inf time (fps) | Box AP | Download | -| :----------- | :--: | :-------: | :-----: | :------------: | :----: | :----------------------------------------------------------: | -| DarkNet53 | 608 | 8 | 270e | 54.977 | 83.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| DarkNet53 | 416 | 8 | 270e | - | 83.6 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| DarkNet53 | 320 | 8 | 270e | - | 82.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| MobileNet-V1 | 608 | 8 | 270e | 104.291 | 76.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| MobileNet-V1 | 416 | 8 | 270e | - | 76.7 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| MobileNet-V1 | 320 | 8 | 270e | - | 75.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| ResNet34 | 608 | 8 | 270e | 82.247 | 82.6 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | -| ResNet34 | 416 | 8 | 270e | - | 81.9 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | -| ResNet34 | 320 | 8 | 270e | - | 80.1 | [model](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | - -**Notes:** Yolo v3 is trained in 8 GPU with total batch size as 64 and trained 270 epoches. Yolo v3 training data augmentations: mixup, -randomly color distortion, randomly cropping, randomly expansion, randomly interpolation method, randomly flippling. Yolo v3 used randomly -reshaped minibatch in training, inferences can be performed on different image sizes with the same model weights, and we provided evaluation -results of image size 608/416/320 above. - -### RetinaNet - -| Backbone | Image/gpu | Lr schd | Box AP | Download | -| :---------------: | :-----: | :-----: | :----: | :-------: | -| ResNet50-FPN | 2 | 1x | 36.0 | [model](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r50_fpn_1x.tar) | -| ResNet101-FPN | 2 | 1x | 37.3 | [model](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r101_fpn_1x.tar) | -| ResNeXt101-vd-FPN | 1 | 1x | 40.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_x101_vd_64x4d_fpn_1x.tar) | - -**Notes:** In RetinaNet, the base LR is changed to 0.01 for minibatch size 16. - -### SSD - -| Backbone | Size | Image/gpu | Lr schd | Inf time (fps) | Box AP | Download | -| :------: | :--: | :-------: | :-----: | :------------: | :----: | :----------------------------------------------------------: | -| VGG16 | 300 | 8 | 40w | 81.613 | 25.1 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_300.tar) | -| VGG16 | 512 | 8 | 40w | 46.007 | 29.1 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_512.tar) | - -**Notes:** VGG-SSD is trained in 4 GPU with total batch size as 32 and trained 400000 iters. - -### SSD on Pascal VOC - -| Backbone | Size | Image/gpu | Lr schd | Inf time (fps) | Box AP | Download | -| :----------- | :--: | :-------: | :-----: | :------------: | :----: | :----------------------------------------------------------: | -| MobileNet v1 | 300 | 32 | 120e | 159.543 | 73.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar) | -| VGG16 | 300 | 8 | 240e | 117.279 | 77.5 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_300_voc.tar) | -| VGG16 | 512 | 8 | 240e | 65.975 | 80.2 | [model](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_512_voc.tar) | - -**NOTE**: MobileNet-SSD is trained in 2 GPU with totoal batch size as 64 and trained 120 epoches. VGG-SSD is trained in 4 GPU with total batch size as 32 and trained 240 epoches. SSD training data augmentations: randomly color distortion, -randomly cropping, randomly expansion, randomly flipping. - - -## Face Detection - -Please refer [face detection models](../configs/face_detection) for details. diff --git a/PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md b/PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md deleted file mode 100644 index 918a9cb249d105d9ed7cd0411ede8c5e8ce0c3d5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/MODEL_ZOO_cn.md +++ /dev/null @@ -1,156 +0,0 @@ -# 模型库和基线 - -## 测试环境 - -- Python 2.7.1 -- PaddlePaddle >=1.5 -- CUDA 9.0 -- cuDNN >=7.4 -- NCCL 2.1.2 - -## 通用设置 - -- 所有模型均在COCO17数据集中训练和测试。 -- 除非特殊说明,所有ResNet骨干网络采用[ResNet-B](https://arxiv.org/pdf/1812.01187)结构。 -- 对于RCNN和RetinaNet系列模型,训练阶段仅使用水平翻转作为数据增强,测试阶段不使用数据增强。 -- **推理时间(fps)**: 推理时间是在一张Tesla V100的GPU上通过'tools/eval.py'测试所有验证集得到,单位是fps(图片数/秒), cuDNN版本是7.5,包括数据加载、网络前向执行和后处理, batch size是1。 - -## 训练策略 - -- 我们采用和[Detectron](https://github.com/facebookresearch/Detectron/blob/master/MODEL_ZOO.md#training-schedules)相同的训练策略。 -- 1x 策略表示:在总batch size为16时,初始学习率为0.02,在6万轮和8万轮后学习率分别下降10倍,最终训练9万轮。在总batch size为8时,初始学习率为0.01,在12万轮和16万轮后学习率分别下降10倍,最终训练18万轮。 -- 2x 策略为1x策略的两倍,同时学习率调整位置也为1x的两倍。 - -## ImageNet预训练模型 - -Paddle提供基于ImageNet的骨架网络预训练模型。所有预训练模型均通过标准的Imagenet-1k数据集训练得到。[下载链接](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification#supported-models-and-performances) - -- 注:ResNet50模型通过余弦学习率调整策略训练得到。[下载链接](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar) - -## 基线 - -### Faster & Mask R-CNN - -| 骨架网络 | 网络类型 | 每张GPU图片个数 | 学习率策略 |推理时间(fps) | Box AP | Mask AP | 下载 | -| :------------------- | :------------- | :-----: | :-----: | :------------: | :-----: | :-----: | :-----------------------------------------------------: | -| ResNet50 | Faster | 1 | 1x | 12.747 | 35.2 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar) | -| ResNet50 | Faster | 1 | 2x | 12.686 | 37.1 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_2x.tar) | -| ResNet50 | Mask | 1 | 1x | 11.615 | 36.5 | 32.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar) | -| ResNet50 | Mask | 1 | 2x | 11.494 | 38.2 | 33.4 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_2x.tar) | -| ResNet50-vd | Faster | 1 | 1x | 12.575 | 36.4 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_1x.tar) | -| ResNet50-FPN | Faster | 2 | 1x | 22.273 | 37.2 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Faster | 2 | 2x | 22.297 | 37.7 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_fpn_2x.tar) | -| ResNet50-FPN | Mask | 1 | 1x | 15.184 | 37.9 | 34.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Mask | 1 | 2x | 15.881 | 38.7 | 34.7 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_fpn_2x.tar) | -| ResNet50-FPN | Cascade Faster | 2 | 1x | 17.507 | 40.9 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_r50_fpn_1x.tar) | -| ResNet50-FPN | Cascade Mask | 1 | 1x | - | 41.3 | 35.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_mask_rcnn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Faster | 2 | 2x | 21.847 | 38.9 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_vd_fpn_2x.tar) | -| ResNet50-vd-FPN | Mask | 1 | 2x | 15.825 | 39.8 | 35.4 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_vd_fpn_2x.tar) | -| ResNet101 | Faster | 1 | 1x | 9.316 | 38.3 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_1x.tar) | -| ResNet101-FPN | Faster | 1 | 1x | 17.297 | 38.7 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_1x.tar) | -| ResNet101-FPN | Faster | 1 | 2x | 17.246 | 39.1 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_fpn_2x.tar) | -| ResNet101-FPN | Mask | 1 | 1x | 12.983 | 39.5 | 35.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_fpn_1x.tar) | -| ResNet101-vd-FPN | Faster | 1 | 1x | 17.011 | 40.5 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_1x.tar) | -| ResNet101-vd-FPN | Faster | 1 | 2x | 16.934 | 40.8 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r101_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Mask | 1 | 1x | 13.105 | 41.4 | 36.8 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Faster | 1 | 1x | 8.815 | 42.2 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Faster | 1 | 2x | 8.809 | 41.7 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_x101_vd_64x4d_fpn_2x.tar) | -| ResNeXt101-vd-FPN | Mask | 1 | 1x | 7.689 | 42.9 | 37.9 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Mask | 1 | 2x | 7.859 | 42.6 | 37.6 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_x101_vd_64x4d_fpn_2x.tar) | -| SENet154-vd-FPN | Faster | 1 | 1.44x | 3.408 | 42.9 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_se154_vd_fpn_s1x.tar) | -| SENet154-vd-FPN | Mask | 1 | 1.44x | 3.233 | 44.0 | 38.7 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_se154_vd_fpn_s1x.tar) | - -### Deformable 卷积网络v2 - -| 骨架网络 | 网络类型 | 卷积 | 每张GPU图片个数 | 学习率策略 |推理时间(fps)| Box AP | Mask AP | 下载 | -| :------------------- | :------------- | :-----: |:--------: | :-----: | :-----------: |:----: | :-----: | :----------------------------------------------------------: | -| ResNet50-FPN | Faster | c3-c5 | 2 | 1x | 19.978 | 41.0 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Faster | c3-c5 | 2 | 2x | 19.222 | 42.4 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r50_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Faster | c3-c5 | 2 | 1x | 14.477 | 44.1 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Faster | c3-c5 | 1 | 1x | 7.209 | 45.2 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| ResNet50-FPN | Mask | c3-c5 | 1 | 1x | 14.53 | 41.9 | 37.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet50-vd-FPN | Mask | c3-c5 | 1 | 2x | 14.832 | 42.9 | 38.0 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r50_vd_fpn_2x.tar) | -| ResNet101-vd-FPN | Mask | c3-c5 | 1 | 1x | 11.546 | 44.6 | 39.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Mask | c3-c5 | 1 | 1x | 6.45 | 46.2 | 40.4 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| ResNet50-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 44.2 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_r50_fpn_1x.tar) | -| ResNet101-vd-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 46.4 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_r101_vd_fpn_1x.tar) | -| ResNeXt101-vd-FPN | Cascade Faster | c3-c5 | 2 | 1x | - | 47.3 | - | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_rcnn_dcn_x101_vd_64x4d_fpn_1x.tar) | -| SENet154-vd-FPN | Cascade Mask | c3-c5 | 1 | 1.44x | - | 51.9 | 43.9 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/cascade_mask_rcnn_dcnv2_se154_vd_fpn_gn_s1x.tar) | - -#### 注意事项: -- Deformable卷积网络v2(dcn_v2)参考自论文[Deformable ConvNets v2](https://arxiv.org/abs/1811.11168). -- `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图片个数 | 学习率策略 |推理时间(fps)| Box AP | 下载 | -| :----------- | :--: | :-----: | :-----: |:------------: |:----: | :-------: | -| DarkNet53 | 608 | 8 | 270e | 45.571 | 38.9 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| DarkNet53 | 416 | 8 | 270e | - | 37.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| DarkNet53 | 320 | 8 | 270e | - | 34.8 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet.tar) | -| MobileNet-V1 | 608 | 8 | 270e | 78.302 | 29.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| MobileNet-V1 | 416 | 8 | 270e | - | 29.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| MobileNet-V1 | 320 | 8 | 270e | - | 27.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1.tar) | -| ResNet34 | 608 | 8 | 270e | 63.356 | 36.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | -| ResNet34 | 416 | 8 | 270e | - | 34.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | -| ResNet34 | 320 | 8 | 270e | - | 31.4 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34.tar) | - -### Yolo v3 基于Pasacl VOC数据集 - -| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 |推理时间(fps)| Box AP | 下载 | -| :----------- | :--: | :-----: | :-----: |:------------: |:----: | :-------: | -| DarkNet53 | 608 | 8 | 270e | 54.977 | 83.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| DarkNet53 | 416 | 8 | 270e | - | 83.6 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| DarkNet53 | 320 | 8 | 270e | - | 82.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_darknet_voc.tar) | -| MobileNet-V1 | 608 | 8 | 270e | 104.291 | 76.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| MobileNet-V1 | 416 | 8 | 270e | - | 76.7 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| MobileNet-V1 | 320 | 8 | 270e | - | 75.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar) | -| ResNet34 | 608 | 8 | 270e | 82.247 | 82.6 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | -| ResNet34 | 416 | 8 | 270e | - | 81.9 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | -| ResNet34 | 320 | 8 | 270e | - | 80.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_r34_voc.tar) | - -**注意事项:** Yolo v3在8卡,总batch size为64下训练270轮。数据增强包括:mixup, 随机颜色失真,随机剪裁,随机扩张,随机插值法,随机翻转。Yolo v3在训练阶段对minibatch采用随机reshape,可以采用相同的模型测试不同尺寸图片,我们分别提供了尺寸为608/416/320大小的测试结果。 - -### RetinaNet - -| 骨架网络 | 每张GPU图片个数 | 学习率策略 | Box AP | 下载 | -| :---------------: | :-----: | :-----: | :----: | :-------: | -| ResNet50-FPN | 2 | 1x | 36.0 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r50_fpn_1x.tar) | -| ResNet101-FPN | 2 | 1x | 37.3 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_r101_fpn_1x.tar) | -| ResNeXt101-vd-FPN | 1 | 1x | 40.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/retinanet_x101_vd_64x4d_fpn_1x.tar) | - -**注意事项:** RetinaNet系列模型中,在总batch size为16下情况下,初始学习率改为0.01。 - -### SSD - -| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略|推理时间(fps) | Box AP | 下载 | -| :----------: | :--: | :-----: | :-----: |:------------: |:----: | :-------: | -| VGG16 | 300 | 8 | 40万 | 81.613 | 25.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_300.tar) | -| VGG16 | 512 | 8 | 40万 | 46.007 | 29.1 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_512.tar) | - -**注意事项:** VGG-SSD在总batch size为32下训练40万轮。 - -### SSD 基于Pascal VOC数据集 - -| 骨架网络 | 输入尺寸 | 每张GPU图片个数 | 学习率策略 |推理时间(fps)| Box AP | 下载 | -| :----------- | :--: | :-----: | :-----: | :------------: |:----: | :-------: | -| MobileNet v1 | 300 | 32 | 120e | 159.543 | 73.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar) | -| VGG16 | 300 | 8 | 240e | 117.279 | 77.5 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_300_voc.tar) | -| VGG16 | 512 | 8 | 240e | 65.975 | 80.2 | [下载链接](https://paddlemodels.bj.bcebos.com/object_detection/ssd_vgg16_512_voc.tar) | - -**注意事项:** MobileNet-SSD在2卡,总batch size为64下训练120周期。VGG-SSD在总batch size为32下训练240周期。数据增强包括:随机颜色失真,随机剪裁,随机扩张,随机翻转。 - -## 人脸检测 - -详细请参考[人脸检测模型](../configs/face_detection). diff --git a/PaddleCV/PaddleDetection/docs/QUICK_STARTED.md b/PaddleCV/PaddleDetection/docs/QUICK_STARTED.md deleted file mode 100644 index 18b8602328075a2734dc139c16215e95a6025a3d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/QUICK_STARTED.md +++ /dev/null @@ -1,67 +0,0 @@ -English | [简体中文](QUICK_STARTED_cn.md) - -# Quick Start - -This tutorial fine-tunes a tiny dataset by pretrained detection model for users to get a model and learn PaddleDetection quickly. The model can be trained in around 20min with good performance. - -## Data Preparation - -Dataset refers to [Kaggle](https://www.kaggle.com/mbkinaci/fruit-images-for-object-detection), which contains 240 images in train dataset and 60 images in test dataset. Data categories are apple, orange and banana. Download [here](https://dataset.bj.bcebos.com/PaddleDetection_demo/fruit-detection.tar) and uncompress the dataset after download, script for data preparation is located at [download_fruit.py](../dataset/fruit/download_fruit.py). Command is as follows: - -```bash -export PYTHONPATH=$PYTHONPATH:. -python dataset/fruit/download_fruit.py -``` - -- **Note: before started, run the following command and specifiy the GPU** - -```bash -export PYTHONPATH=$PYTHONPATH:. -export CUDA_VISIBLE_DEVICES=0 -``` - -Training: - -```bash -python -u tools/train.py -c configs/yolov3_mobilenet_v1_fruit.yml \ - --use_tb=True \ - --tb_log_dir=tb_fruit_dir/scalar \ - --eval -``` - -Use `yolov3_mobilenet_v1` to fine-tune the model from COCO dataset. Meanwhile, loss and mAP can be observed on tensorboard. - -```bash -tensorboard --logdir tb_fruit_dir/scalar/ --host --port -``` - -Result on tensorboard is shown below: - -
- -
- -Model can be downloaded [here](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_fruit.tar) - -Evaluation: - -```bash -python -u tools/eval.py -c configs/yolov3_mobilenet_v1_fruit.yml -``` - -Inference: - -```bash -python -u tools/infer.py -c configs/yolov3_mobilenet_v1_fruit.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_fruit.tar \ - --infer_img=demo/orange_71.jpg -``` - -Inference images are shown below: - -

- - -

- -For detailed infomation of training and evalution, please refer to [GETTING_STARTED.md](GETTING_STARTED.md). diff --git a/PaddleCV/PaddleDetection/docs/QUICK_STARTED_cn.md b/PaddleCV/PaddleDetection/docs/QUICK_STARTED_cn.md deleted file mode 100644 index c11f041ba4405ebbf6c60365bbe937df55e6374d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/QUICK_STARTED_cn.md +++ /dev/null @@ -1,67 +0,0 @@ -[English](QUICK_STARTED.md) | 简体中文 - -# 快速开始 - -为了使得用户能够在很短的时间内快速产出模型,掌握PaddleDetection的使用方式,这篇教程通过一个预训练检测模型对小数据集进行finetune。在P40上单卡大约20min即可产出一个效果不错的模型。 - -## 数据准备 - -数据集参考[Kaggle数据集](https://www.kaggle.com/mbkinaci/fruit-images-for-object-detection),其中训练数据集240张图片,测试数据集60张图片,数据类别为3类:苹果,橘子,香蕉。[下载链接](https://dataset.bj.bcebos.com/PaddleDetection_demo/fruit-detection.tar)。数据下载后分别解压即可, 数据准备脚本位于[download_fruit.py](../dataset/fruit/download_fruit.py)。下载数据方式如下: - -```bash -export PYTHONPATH=$PYTHONPATH:. -python dataset/fruit/download_fruit.py -``` - -- **注:在开始前,运行如下命令并指定GPU** - -```bash -export PYTHONPATH=$PYTHONPATH:. -export CUDA_VISIBLE_DEVICES=0 -``` - -训练命令如下: - -```bash -python -u tools/train.py -c configs/yolov3_mobilenet_v1_fruit.yml \ - --use_tb=True \ - --tb_log_dir=tb_fruit_dir/scalar \ - --eval -``` - -训练使用`yolov3_mobilenet_v1`基于COCO数据集训练好的模型进行finetune。训练期间可以通过tensorboard实时观察loss和精度值,启动命令如下: - -```bash -tensorboard --logdir tb_fruit_dir/scalar/ --host --port -``` - -tensorboard结果显示如下: - -
- -
- -训练模型[下载链接](https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_fruit.tar) - -评估命令如下: - -```bash -python -u tools/eval.py -c configs/yolov3_mobilenet_v1_fruit.yml -``` - -预测命令如下 - -```bash -python -u tools/infer.py -c configs/yolov3_mobilenet_v1_fruit.yml \ - -o weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_fruit.tar \ - --infer_img=demo/orange_71.jpg -``` - -预测图片如下: - -

- - -

- -更多训练及评估流程,请参考[GETTING_STARTED_cn.md](GETTING_STARTED_cn.md). diff --git a/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING.md b/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING.md deleted file mode 100644 index 0bc0377acb749ee896050660ba122a3a77ca20b7..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING.md +++ /dev/null @@ -1,39 +0,0 @@ -English | [简体中文](TRANSFER_LEARNING_cn.md) - -# Transfer Learning - -Transfer learning aims at learning new knowledge from existing knowledge. For example, take pretrained model from ImageNet to initialize detection models, or take pretrained model from COCO dataset to initialize train detection models in PascalVOC dataset. - -In transfer learning, if different dataset and the number of classes is used, the dimensional inconsistency will causes in loading parameters related to the number of classes; On the other hand, if more complicated model is used, need to motify the open-source model construction and selective load parameters. Thus, PaddleDetection should designate parameter fields and ignore loading the parameters which match the fields. - -## Transfer Learning in PaddleDetection - -In transfer learning, it's needed to load pretrained model selectively. The following two methods can be used: - -1. Set `finetune_exclude_pretrained_params` in YAML configuration files. Please refer to [configure file](../configs/yolov3_mobilenet_v1_fruit.yml#L15) -2. Set -o finetune_exclude_pretrained_params in command line. For example: - -```python -export PYTHONPATH=$PYTHONPATH:. -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml \ - -o pretrain_weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar \ - finetune_exclude_pretrained_params=['cls_score','bbox_pred'] -``` - -* Note: - -1. The path in pretrain\_weights is the open-source model link of faster RCNN from COCO dataset. For full models link, please refer to [MODEL_ZOO](MODEL_ZOO.md) -2. The parameter fields are set in finetune\_exclude\_pretrained\_params. If the name of parameter matches field (wildcard matching), the parameter will be ignored in loading. - -If users want to fine-tune by own dataet, and remain the model construction, need to ignore the parameters related to the number of classes. PaddleDetection lists ignored parameter fields corresponding to different model type. The table is shown below:
- -| model type | ignored parameter fields | -| :----------------: | :---------------------------------------: | -| Faster RCNN | cls\_score, bbox\_pred | -| Cascade RCNN | cls\_score, bbox\_pred | -| Mask RCNN | cls\_score, bbox\_pred, mask\_fcn\_logits | -| Cascade-Mask RCNN | cls\_score, bbox\_pred, mask\_fcn\_logits | -| RetinaNet | retnet\_cls\_pred\_fpn | -| SSD | ^conv2d\_ | -| YOLOv3 | yolo\_output | diff --git a/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING_cn.md b/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING_cn.md deleted file mode 100644 index a54210d0aa9ef32096620e1830d49a2b2430b189..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/TRANSFER_LEARNING_cn.md +++ /dev/null @@ -1,37 +0,0 @@ -# 迁移学习 - -迁移学习为利用已有知识,对新知识进行学习。例如利用ImageNet分类预训练模型做初始化来训练检测模型,利用在COCO数据集上的检测模型做初始化来训练基于PascalVOC数据集的检测模型。 - -在进行迁移学习时,由于会使用不同的数据集,数据类别数与COCO/VOC数据类别不同,导致在加载PaddlePaddle开源模型时,与类别数相关的权重(例如分类模块的fc层)会出现维度不匹配的问题;另外,如果需要结构更加复杂的模型,需要对已有开源模型结构进行调整,对应权重也需要选择性加载。因此,需要检测库能够指定参数字段,在加载模型时不加载匹配的权重。 - -## PaddleDetection进行迁移学习 - -在迁移学习中,对预训练模型进行选择性加载,可通过如下两种方式实现: - -1. 在 YMAL 配置文件中通过设置`finetune_exclude_pretrained_params`字段。可参考[配置文件](../configs/yolov3_mobilenet_v1_fruit.yml#L15) -2. 在 train.py的启动参数中设置 -o finetune_exclude_pretrained_params。例如: - -```python -export PYTHONPATH=$PYTHONPATH:. -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -python -u tools/train.py -c configs/faster_rcnn_r50_1x.yml \ - -o pretrain_weights=https://paddlemodels.bj.bcebos.com/object_detection/faster_rcnn_r50_1x.tar \ - finetune_exclude_pretrained_params=['cls_score','bbox_pred'] -``` - -* 说明: - -1. pretrain\_weights的路径为COCO数据集上开源的faster RCNN模型链接,完整模型链接可参考[MODEL_ZOO](MODEL_ZOO_cn.md) -2. finetune\_exclude\_pretrained\_params中设置参数字段,如果参数名能够匹配以上参数字段(通配符匹配方式),则在模型加载时忽略该参数。 - -如果用户需要利用自己的数据进行finetune,模型结构不变,只需要忽略与类别数相关的参数。PaddleDetection给出了不同模型类型所对应的忽略参数字段。如下表所示:
- -| 模型类型 | 忽略参数字段 | -| :----------------: | :---------------------------------------: | -| Faster RCNN | cls\_score, bbox\_pred | -| Cascade RCNN | cls\_score, bbox\_pred | -| Mask RCNN | cls\_score, bbox\_pred, mask\_fcn\_logits | -| Cascade-Mask RCNN | cls\_score, bbox\_pred, mask\_fcn\_logits | -| RetinaNet | retnet\_cls\_pred\_fpn | -| SSD | ^conv2d\_ | -| YOLOv3 | yolo\_output | diff --git a/PaddleCV/PaddleDetection/docs/config_example/mask_rcnn_r50_fpn_1x.yml b/PaddleCV/PaddleDetection/docs/config_example/mask_rcnn_r50_fpn_1x.yml deleted file mode 100644 index 50d38777a565e8b58e3d8dd4d40279e733bc3b1a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/config_example/mask_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,498 +0,0 @@ -# Architecture of detection, which is also the prefix of data feed module -architecture: MaskRCNN - -# Data feed module -train_feed: MaskRCNNTrainFeed -eval_feed: MaskRCNNEvalFeed -test_feed: MaskRCNNTestFeed - -# Use GPU or CPU, true by default -use_gpu: true - -# Maximum number of iteration. -# In rcnn models, max_iters is 180000 if lr schedule is 1x and batch_size is 1. -max_iters: 180000 - -# Snapshot period. If training and test at same time, evaluate model at each snapshot_iter. 10000 by default. -snapshot_iter: 10000 - -# Smooth the log output in specified iterations, 20 by default. -log_smooth_window: 20 - -# The number of iteration interval to display in training log. -log_iter: 20 - -# The directory to save models. -save_dir: output - -# The path of oretrained wegiths. If url is provided, it will download the pretrain_weights and decompress automatically. -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar - -# Evalution method, COCO and VOC are available. -metric: COCO - -# The path of final model for evaluation and test. -weights: output/mask_rcnn_r50_fpn_1x/model_final/ - -# Number of classes, 81 for COCO and 21 for VOC -num_classes: 81 - -# Mask RCNN architecture, see https://arxiv.org/abs/1703.06870 -MaskRCNN: - backbone: ResNet - fpn: FPN - roi_extractor: FPNRoIAlign - rpn_head: FPNRPNHead - bbox_assigner: BBoxAssigner - bbox_head: BBoxHead - mask_assigner: MaskAssigner - mask_head: MaskHead - rpn_only: false - -# Backbone module -ResNet: - # Index of stages using deformable conv v2, [] by default - dcn_v2_stages: [] - # ResNet depth, 50 by default - depth: 50 - # Stage index of returned feature map, [2,3,4,5] by default - feature_maps: - - 2 - - 3 - - 4 - - 5 - # Stage Index of backbone to freeze, 2 by default - freeze_at: 2 - # Whether freeze normalization layers, true by default - freeze_norm: true - # Weight decay for normalization layer weights, 0. by default - norm_decay: 0.0 - # Normalization type, bn/sync_bn/affine_channel, affine_channel by default - norm_type: affine_channel - # ResNet variant, supports 'a', 'b', 'c', 'd' currently, b by default - variant: b - -# FPN module -FPN: - # Whether has extra conv in higher levels, false by default - has_extra_convs: false - # Highest level of the backbone feature map to use, 6 by default - max_level: 6 - # Lowest level of the backbone feature map to use, 6 by default - min_level: 2 - # FPN normalization type, bn/sync_bn/affine_channel, null by default - norm_type: null - # Number of feature channels, 256 by default - num_chan: 256 - # Feature map scaling factors, [0.03125, 0.0625, 0.125, 0.25] by default - spatial_scale: - - 0.03125 - - 0.0625 - - 0.125 - - 0.25 - -# RPN module, if use non-FPN architecture, use RPNHead instead -# Extract proposals according to anchors and assign box targets and -# score targets to selected proposals to compute RPN loss. For FPN -# architecture, RPN is computed from each levels and collect proposals -# together. -FPNRPNHead: - # fluid.layers.anchor_generator - # Generate anchors for RCNN models. Each position of input produces - # N anchors. N = anchor_sizes * aspect_ratios. In FPNRPNHead, aspect_ratios - # is provided and anchor_sizes depends on FPN levels and anchor_start_size. - anchor_generator: - aspect_ratios: - - 0.5 - - 1.0 - - 2.0 - variance: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - # fluid.layers.rpn_target_assign - # Assign classification and regression targets to each anchor according - # to Intersection-over-Union(IoU) overlap between anchors and ground - # truth boxes. The classification targets is binary class labels. the - # positive labels are two kinds of anchors: the anchors with the highest - # IoU overlap with a ground-truth box, or an anchor that has an IoU overlap - # higher than rpn_positive_overlap with any ground-truth box. - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_negative_overlap: 0.3 - rpn_positive_overlap: 0.7 - rpn_straddle_thresh: 0.0 - # fluid.layers.generate_proposals in training - # Generate RoIs according to each box with probability to be a foreground - # object. The operation performs following steps: Transposes and resizes - # scores and bbox_deltas; Calculate box locations as proposal candidates; - # Clip boxes to image; Remove predicted boxes with small area; Apply NMS to - # get final proposals as output. - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 2000 - pre_nms_top_n: 2000 - # fluid.layers.generate_proposals in test - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - post_nms_top_n: 1000 - pre_nms_top_n: 1000 - # Size of anchor at the first scale, 32 by default - anchor_start_size: 32 - # highest level of FPN output, 6 by default - max_level: 6 - # Lowest level of FPN output, 2 by default - min_level: 2 - # Number of FPN output channels, 256 by default - num_chan: 256 - # Number of classes in RPN output, 1 by default - num_classes: 1 - -# RoI extractor module, if use non-FPN architecture, use RoIAlign instead -# For FPN architecture, proposals are distributed to different levels and -# apply roi align at each level. Then concat the outputs. -FPNRoIAlign: - # The canconical FPN feature map level, 4 by default - canconical_level: 4 - # The canconical FPN feature map size, 224 by default - canonical_size: 224 - # The highest level of FPN layer, 5 by default - max_level: 5 - # The lowest level of FPN layer, 2 by default - min_level: 2 - # Number of sampling points, 0 by default - sampling_ratio: 2 - # Box resolution, 7 by default - box_resolution: 7 - # Mask RoI resolution, 14 by default - mask_resolution: 14 - -# Mask head module -# Generate mask output and compute loss mask. -MaskHead: - # Number of convolutions, 4 for FPN, 0 otherwise. 0 by default - num_convs: 4 - # size of the output mask, 14 by default - resolution: 28 - # Dilation rate, 1 by default - dilation: 1 - # Number of channels after first conv, 256 by default - num_chan_reduced: 256 - # Number of output classes, 81 by default - num_classes: 81 - -# fluid.layers.generate_proposal_labels -# Combine boxes and gt_boxes, and sample foreground proposals and background -# prosals.Then assign classification and regression targets to selected RoIs. -BBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: - - 0.1 - - 0.1 - - 0.2 - - 0.2 - bg_thresh_hi: 0.5 - bg_thresh_lo: 0.0 - fg_fraction: 0.25 - fg_thresh: 0.5 - num_classes: 81 - shuffle_before_sample: true - -# fluid.layers.generate_mask_labels -# For given the RoIs and corresponding labels, sample foreground RoIs. -# Assign mask targets to selected RoIs which are encoded to K binary masks -# of resolution M x M. -MaskAssigner: - resolution: 28 - num_classes: 81 - -# BBox head module -# Faster bbox head following the RoI extractor, and apply post process, such as -# NMS and box coder.. -BBoxHead: - # Head after RoI extractor, ResNetC5/TwoFCHead - head: TwoFCHead - # fluid.layers.multiclass_nms - # Select a subset of detection bounding boxes that have high scores larger - # than score_threshold. Then prune away boxes that have high IoU overlap - # with already selected boxes by nms_threshold. - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - # fluid.layers.box_coder - box_coder: - axis: 1 - box_normalized: false - code_type: decode_center_size - prior_box_var: - - 0.1 - - 0.1 - - 0.2 - - 0.2 - num_classes: 81 - -# RCNN head with two Fully Connected layers -TwoFCHead: - # The number of output channels, 1024 by default - num_chan: 1024 - -# Learning rate configuration -LearningRate: - # Base learning rate, 0.01 by default - base_lr: 0.01 - # Learning rate schedulers, PiecewiseDecay and LinearWarmup by default - schedulers: - # fluid.layers.piecewise_decay - # Values has higher priority and if values is null, learning rate is multipled by gamma at each stage - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 120000 - - 160000 - values: null - # fluid.layers.linear_lr_warmup - # Start learning rate equals to base_lr * start_factor - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -# Optimizer module -OptimizerBuilder: - # fluid.optimizer - optimizer: - momentum: 0.9 - type: Momentum - # fluid.regularizer - regularizer: - factor: 0.0001 - type: L2 - -# Data feed module for training -MaskRCNNTrainFeed: - # Batch size per device, 1 by default - batch_size: 1 - # Dataset module - dataset: - # Annotation file path - annotation: annotations/instances_train2017.json - # Dataset directory - dataset_dir: dataset/coco - # Directory where image files are stored - image_dir: train2017 - # List of data fields needed - fields: - - image - - im_info - - im_id - - gt_box - - gt_label - - is_crowd - - gt_mask - # list of image dims - image_shape: - - 3 - - 800 - - 1333 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - to_rgb: true # default: true - with_mixup: false # default: false - # Flip images randomly - # Transform the x coordinates of bboxes and segmentations - - !RandomFlipImage - is_mask_flip: true # default: false - # Whether bbox is normalized - is_normalized: false # default: false - prob: 0.5 # default: 0.5 - # Normalize the image - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: false - # Whether divide by 255, true by default - is_scale: true - # default: [0.485, 0.456, 0.406] - mean: - - 0.485 - - 0.456 - - 0.406 - # default: [1, 1, 1] - std: - - 0.229 - - 0.224 - - 0.225 - # Rescale image to the specified target size, and capped at max_size - - !ResizeImage - # Resize method, cv2.INTER_LINEAR(1) by default - interp: 1 - max_size: 1333 - target_size: 800 - use_cv2: true # default: true - # Change the channel - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - to_bgr: false # default: true - # List of batch transformations to use - batch_transforms: - # Pad a batch of samples to same dimensions - - !PadBatch - pad_to_stride: 32 # default: 32 - # Drop last batch if size is uneven, false by default - drop_last: false - # Number of workers processes(or threads), 2 by default - num_workers: 2 - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: true - # If update im_info after padding, false by default - use_padded_im_info: false - # If use multi-process, false by default - use_process: false - -# Data feed module for test -MaskRCNNEvalFeed: - # Batch size per device, 1 by default - batch_size: 1 - # Dataset module - dataset: - # Annotation file path - annotation: annotations/instances_val2017.json - # Dataset directory - dataset_dir: dataset/coco - # Directory where image files are stored - image_dir: val2017 - # List of data fields needed - fields: - - image - - im_info - - im_id - - im_shape - # list of image dims - image_shape: - - 3 - - 800 - - 1333 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - to_rgb: true # default: true - with_mixup: false # default: false - # Normalize the image - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: false - # Whether divide by 255, true by default - is_scale: true - # default: [0.485, 0.456, 0.406] - mean: - - 0.485 - - 0.456 - - 0.406 - # default: [1, 1, 1] - std: - - 0.229 - - 0.224 - - 0.225 - # Rescale image to the specified target size, and capped at max_size - - !ResizeImage - # Resize method, cv2.INTER_LINEAR(1) by default - interp: 1 - max_size: 1333 - target_size: 800 - use_cv2: true # default: true - # Change the channel - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - to_bgr: false # default: true - # List of batch transformations to use - batch_transforms: - # Pad a batch of samples to same dimensions - - !PadBatch - pad_to_stride: 32 # default: 32 - # Drop last batch if size is uneven, false by default - drop_last: false - # Number of workers processes(or threads), 2 by default - num_workers: 2 - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: false - # If update im_info after padding, false by default - use_padded_im_info: true - # If use multi-process, false by default - use_process: false - -# Data feed module for test -MaskRCNNTestFeed: - # Batch size per device, 1 by default - batch_size: 1 - # Dataset module - dataset: - # Annotation file path - annotation: dataset/coco/annotations/instances_val2017.json - # List of data fields needed - fields: - - image - - im_info - - im_id - - im_shape - # list of image dims - image_shape: - - 3 - - 800 - - 1333 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - to_rgb: true # default: true - with_mixup: false # default: false - # Normalize the image - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: false - # Whether divide by 255, true by default - is_scale: true - # default: [0.485, 0.456, 0.406] - mean: - - 0.485 - - 0.456 - - 0.406 - # default: [1, 1, 1] - std: - - 0.229 - - 0.224 - - 0.225 - # Change the channel - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - to_bgr: false # default: true - # List of batch transformations to use - batch_transforms: - # Pad a batch of samples to same dimensions - - !PadBatch - pad_to_stride: 32 # default: 32 - # Drop last batch if size is uneven, false by default - drop_last: false - # Number of workers processes(or threads), 2 by default - num_workers: 2 - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: false - # If update im_info after padding, false by default - use_padded_im_info: true - # If use multi-process, false by default - use_process: false - - diff --git a/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml b/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml deleted file mode 100644 index 5a6dc7c210edc0ed2ac550a653463f3142dbc393..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/config_example/ssd_vgg16_300.yml +++ /dev/null @@ -1,427 +0,0 @@ -# Architecture of detection, which is also the prefix of data feed module. -architecture: SSD -# Data feed module. -# Data feed in training. -train_feed: SSDTrainFeed -# Data feed in Evaluation. -eval_feed: SSDEvalFeed -# Data feed in infer. -test_feed: SSDTestFeed -# Use GPU or CPU, true by default. -use_gpu: true -# Maximum number of iteration. -max_iters: 400000 -# Snapshot period. If training and test at same time, evaluate model at each snapshot_iter. 10000 by default. -snapshot_iter: 10000 -# Smooth the log output in specified iterations, 20 by default. -log_smooth_window: 20 -# The log in training is displayed once every period. -log_iter: 20 -# Evaluation method, COCO and VOC are available. -metric: COCO -# Evaluation mAP calculation method in VOC metric, 11point and integral are available. -map_type: 11point -# The path of final model for evaluation and test. -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/VGG16_caffe_pretrained.tar -# The directory to save models. -save_dir: output -# The path of final model for evaluation and test. -weights: output/ssd_vgg16_300/model_final -# Number of classes, 81 for COCO and 21 for VOC. -num_classes: 81 - -# SSD architecture, see https://arxiv.org/abs/1512.02325 -SSD: - # backbone instance, defined below. - backbone: VGG - # `MultiBoxHead` instance, defined below. - multi_box_head: MultiBoxHead - - # fluid.layers.detection_output, Detection Output Layer for SSD. - # This operation is to get the detection results by performing following two steps: - # 1. Decode input bounding box predictions according to the prior boxes. - # 2. Get the final detection results by applying multi-class non maximum suppression (NMS). - # this operation doesn’t clip the final output bounding boxes to the image window. - output_decoder: - # The index of background label, the background label will be ignored. - # If set to -1, then all categories will be considered. - background_label: 0 - # Number of total bboxes to be kept per image after NMS. - keep_top_k: 200 - # The parameter for adaptive NMS. - nms_eta: 1.0 - # The threshold to be used in NMS. - nms_threshold: 0.45 - # Maximum number of detections to be kept according to the confidences - # aftern the filtering detections based on score_threshold. - nms_top_k: 400 - # Threshold to filter out bounding boxes with low confidence score. - # If not provided, consider all boxes. - score_threshold: 0.01 - -# VGG backbone, see https://arxiv.org/abs/1409.1556 -VGG: - # the VGG net depth (16 or 19 - depth: 16 - # whether or not extra blocks should be added - with_extra_blocks: true - # in each extra block, params: - # [in_channel, out_channel, padding_size, stride_size, filter_size] - extra_block_filters: - - [256, 512, 1, 2, 3] - - [128, 256, 1, 2, 3] - - [128, 256, 0, 1, 3] - - [128, 256, 0, 1, 3] - # params list of init scale in l2 norm, skip init scale if param is -1. - normalizations: [20., -1, -1, -1, -1, -1] - -# fluid.layers.multi_box_head, Generate prior boxes for SSD algorithm. -# Generate `prior_box` according to the inputs list and other parameters -# Each position of the input produce N prior boxes, N is determined by -# the count of min_sizes, max_sizes and aspect_ratios, The size of the box -# is in range(min_size, max_size) interval, which is generated in sequence -# according to the aspect_ratios. -MultiBoxHead: - # the base_size is used to get min_size and max_size according to min_ratio and max_ratio. - base_size: 300 - # the aspect ratios of generated prior boxes. The length of input and aspect_ratios must be equal. - aspect_ratios: [[2.], [2., 3.], [2., 3.], [2., 3.], [2.], [2.]] - # the min ratio of generated prior boxes. - min_ratio: 15 - # the max ratio of generated prior boxes. - max_ratio: 90 - # If len(inputs) <=2, min_sizes must be set up, and the length of min_sizes - # should equal to the length of inputs. Default: None. - min_sizes: [30.0, 60.0, 111.0, 162.0, 213.0, 264.0] - # If len(inputs) <=2, max_sizes must be set up, and the length of min_sizes - # should equal to the length of inputs. Default: None. - max_sizes: [60.0, 111.0, 162.0, 213.0, 264.0, 315.0] - # If step_w and step_h are the same, step_w and step_h can be replaced by steps. - steps: [8, 16, 32, 64, 100, 300] - # Prior boxes center offset. Default: 0.5 - offset: 0.5 - # Whether to flip aspect ratios. Default:False. - flip: true - # The kernel size of conv2d. Default: 1. - kernel_size: 3 - # The padding of conv2d. Default:0. - pad: 1 - -# Learning rate configuration -LearningRate: - # Base learning rate, 0.01 by default - base_lr: 0.001 - # Learning rate schedulers, PiecewiseDecay and LinearWarmup by default - schedulers: - # fluid.layers.piecewise_decay - # Values has higher priority and if values is null, learning rate is multipled by gamma at each stage - - !PiecewiseDecay - gamma: 0.1 - milestones: [280000, 360000] - # fluid.layers.linear_lr_warmup - # Start learning rate equals to base_lr * start_factor - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -# Optimizer module -OptimizerBuilder: - # fluid.optimizer, Neural network in essence is a Optimization problem . - # With forward computing and back propagation , Optimizer use back-propagation - # gradients to optimize parameters in a neural network. - optimizer: - # Momentum optimizer adds momentum on the basis of SGD , - # reducing noise problem in the process of random gradient descent. - momentum: 0.9 - type: Momentum - # fluid.regularizer - regularizer: - # implements the L2 Weight Decay Regularization - # Small values of L2 can help prevent over fitting the training data. - factor: 0.0005 - type: L2 - -# Data feed module for training -SSDTrainFeed: - # Batch size per device - batch_size: 16 - # list of batch transformations to use - batch_transforms: [] - # The data buffer size - bufsize: 10 - # Dataset module - dataset: - # Dataset directory - dataset_dir: dataset/coco - # Annotation file path - annotation: annotations/instances_train2017.json - # Directory where image files are stored - image_dir: train2017 - # Drop last batch if size is uneven, false by default - drop_last: true - # List of data fields needed - fields: [image, gt_box, gt_label] - # list of image dims - image_shape: [3, 300, 300] - # number of workers processes (or threads) - num_workers: 8 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - # whether to convert BGR to RGB - to_rgb: true # default: true - # whether or not to mixup image and gt_bbbox/gt_score - with_mixup: false # default: false - # Transform the bounding box's coornidates to [0,1]. - - !NormalizeBox {} - # modify image brightness,contrast,saturation,hue,reordering channels and etc. - - !RandomDistort - # brightness_lower/ brightness_upper (float): the brightness - # between brightness_lower and brightness_upper - brightness_lower: 0.875 - brightness_upper: 1.125 - # brightness_prob (float): the probability of changing brightness - brightness_prob: 0.5 - # contrast_lower/ contrast_upper (float): the contrast between - # contrast_lower and contrast_lower - contrast_lower: 0.5 - contrast_upper: 1.5 - # contrast_prob (float): the probability of changing contrast - contrast_prob: 0.5 - # count (int): the kinds of doing distrot - count: 4 - # hue_lower/ hue_upper (float): the hue between hue_lower and hue_upper - hue_lower: -18 - hue_upper: 18 - # hue_prob (float): the probability of changing hue - hue_prob: 0.5 - # is_order (bool): whether determine the order of distortion - is_order: true - # saturation_lower/ saturation_upper (float): the saturation - # between saturation_lower and saturation_upper - saturation_lower: 0.5 - saturation_upper: 1.5 - # saturation_prob (float): the probability of changing saturation - saturation_prob: 0.5 - #Expand the image and modify bounding box. - # Operators: - # 1. Scale the image weight and height. - # 2. Construct new images with new height and width. - # 3. Fill the new image with the mean. - # 4. Put original imge into new image. - # 5. Rescale the bounding box. - # 6. Determine if the new bbox is satisfied in the new image. - - !ExpandImage - # max_ratio (float): the ratio of expanding - max_ratio: 4 - # mean (list): the pixel mean - mean: [104, 117, 123] - # prob (float): the probability of expanding image - prob: 0.5 - # Crop the image and modify bounding box. - # Operators: - # 1. Scale the image weight and height. - # 2. Crop the image according to a radom sample. - # 3. Rescale the bounding box. - # 4. Determine if the new bbox is satisfied in the new image. - - !CropImage - # avoid_no_bbox (bool): whether to to avoid the - # situation where the box does not appear. - avoid_no_bbox: false - # batch_sampler (list): Multiple sets of different parameters for cropping. - batch_sampler: - - [1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0] - - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0] - # satisfy_all (bool): whether all boxes must satisfy. - satisfy_all: false - # Rescale image to the specified target size, and capped at max_size if max_size != 0. - # If target_size is list, selected a scale randomly as the specified target size. - - !ResizeImage - # Resize method, cv2.INTER_LINEAR(1) by default - interp: 1 - # max_size (int): the max size of image - max_size: 0 - # target_size (int|list): the target size of image's short side, - # multi-scale training is adopted when type is list. - target_size: 300 - # use_cv2 (bool): use the cv2 interpolation method or use PIL interpolation method - use_cv2: false - # Filp the image and bounding box. - # Operators: - # 1. Flip the image numpy. - # 2. Transform the bboxes' x coordinates. (Must judge whether the coordinates are normalized!) - # 3. Transform the segmentations' x coordinates. (Must judge whether the coordinates are normalized!) - - !RandomFlipImage - # is_mask_flip (bool): whether flip the segmentation - is_mask_flip: false - # is_normalized (bool): whether the bbox scale to [0,1] - is_normalized: true - # prob (float): the probability of flipping image - prob: 0.5 - # Change the channel - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - # to_bgr (bool): confirm whether to convert RGB to BGR - to_bgr: true - # Normalize the image. - # Operators: - # 1.(optional) Scale the image to [0,1] - # 2. Each pixel minus mean and is divided by std - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: true - # Whether divide by 255, true by default - is_scale: false - # mean (list): the pixel mean - mean: [104, 117, 123] - # std (list): the pixel variance - std: [1, 1, 1] - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: true - # If use multi-process, false by default - use_process: true - -# Data feed module for Eval -SSDEvalFeed: - # Batch size per device - batch_size: 32 - # list of batch transformations to use - batch_transforms: [] - # The data buffer size - bufsize: 10 - # Dataset module - dataset: - # Dataset directory - dataset_dir: dataset/coco - # Annotation file path - annotation: annotations/instances_val2017.json - # Directory where image files are stored - image_dir: val2017 - # Drop last batch if size is uneven, false by default - drop_last: true - # List of data fields needed - fields: [image, im_shape, im_id, gt_box, gt_label, is_difficult] - # list of image dims - image_shape: [3, 300, 300] - # number of workers processes (or threads) - num_workers: 8 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - # whether to convert BGR to RGB - to_rgb: true # default: true - # whether or not to mixup image and gt_bbbox/gt_score - with_mixup: false # default: false - # Transform the bounding box's coornidates to [0,1]. - - !NormalizeBox {} - # Rescale image to the specified target size, and capped at max_size if max_size != 0. - # If target_size is list, selected a scale randomly as the specified target size. - - !ResizeImage - # Resize method, cv2.INTER_LINEAR(1) by default - interp: 1 - # max_size (int): the max size of image - max_size: 0 - # target_size (int|list): the target size of image's short side, - # multi-scale training is adopted when type is list. - target_size: 300 - # use_cv2 (bool): use the cv2 interpolation method or use PIL interpolation method - use_cv2: false - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - # to_bgr (bool): confirm whether to convert RGB to BGR - to_bgr: true - # Normalize the image. - # Operators: - # 1.(optional) Scale the image to [0,1] - # 2. Each pixel minus mean and is divided by std - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: true - # Whether divide by 255, true by default - is_scale: false - # mean (list): the pixel mean - mean: [104, 117, 123] - # std (list): the pixel variance - std: [1, 1, 1] - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: false - # If use multi-process, false by default - use_process: false - -# Data feed module for test -SSDTestFeed: - # Batch size per device - batch_size: 1 - # list of batch transformations to use - batch_transforms: [] - # The data buffer size - bufsize: 10 - # Dataset module - dataset: - # Annotation file path - annotation: dataset/coco/annotations/instances_val2017.json - # Drop last batch if size is uneven, false by default - drop_last: false - # List of data fields needed - fields: [image, im_id] - # list of image dims - image_shape: [3, 300, 300] - # number of workers processes (or threads) - num_workers: 8 - # List of sample transformations to use - sample_transforms: - # Transform the image data to numpy format. - - !DecodeImage - # whether to convert BGR to RGB - to_rgb: true # default: true - # whether or not to mixup image and gt_bbbox/gt_score - with_mixup: false # default: false - # Rescale image to the specified target size, and capped at max_size if max_size != 0. - # If target_size is list, selected a scale randomly as the specified target size. - - !ResizeImage - # Resize method, cv2.INTER_LINEAR(1) by default - interp: 1 - # max_size (int): the max size of image - max_size: 0 - # target_size (int|list): the target size of image's short side, - # multi-scale training is adopted when type is list. - target_size: 300 - # use_cv2 (bool): use the cv2 interpolation method or use PIL interpolation method - use_cv2: false - - !Permute - # The format of image, [H, W, C]/[C, H, W], true by default - channel_first: true - # to_bgr (bool): confirm whether to convert RGB to BGR - to_bgr: true - # Normalize the image. - # Operators: - # 1.(optional) Scale the image to [0,1] - # 2. Each pixel minus mean and is divided by std - - !NormalizeImage - # The format of image, [H, W, C]/[C, H, W], true by default - is_channel_first: true - # Whether divide by 255, true by default - is_scale: false - # mean (list): the pixel mean - mean: [104, 117, 123] - # std (list): the pixel variance - std: [1, 1, 1] - # Number of samples, -1 represents all samples. -1 by default - samples: -1 - # If samples should be shuffled, true by default - shuffle: false - # If use multi-process, false by default - use_process: false diff --git a/PaddleCV/PaddleDetection/docs/config_example/yolov3_darknet.yml b/PaddleCV/PaddleDetection/docs/config_example/yolov3_darknet.yml deleted file mode 100644 index 65f479b72bb2504f84bbed5fed20afd78bad0ea9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/docs/config_example/yolov3_darknet.yml +++ /dev/null @@ -1,323 +0,0 @@ -# Architecture of detection, which is also the prefix of data feed module -architecture: YOLOv3 - -# Data feed module. -train_feed: YoloTrainFeed -eval_feed: YoloEvalFeed -test_feed: YoloTestFeed - -# Use GPU or CPU, true by default. -use_gpu: true - -# Maximum number of iteration. -# In YOLOv3 model, default iteration number is to train for 270 epoches. -max_iters: 500200 - -# Smooth the log output in specified iterations, 20 by default. -log_smooth_window: 20 - -# The number of iteration interval to display in training log. -log_iter: 20 - -# The directory to save models. -save_dir: output - -# Snapshot period. If training and test at same time, evaluate model at each snapshot_iter. 2000 by default. -snapshot_iter: 2000 - -# Evalution method, COCO and VOC are available. -metric: COCO - -# The path of oretrained wegiths. If url is provided, it will be downloaded and decompressed automatically. -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/DarkNet53_pretrained.tar -# The path of final model for evaluation and test. -weights: output/yolov3_darknet/model_final - -# Number of classes, 80 for COCO and 20 for VOC. -num_classes: 80 - - -# YOLOv3 architecture, see https://arxiv.org/abs/1804.02767 -YOLOv3: - backbone: DarkNet - yolo_head: YOLOv3Head - -# Backbone module -DarkNet: - # Batch normalization type in training, sync_bn for synchronized batch normalization - norm_type: sync_bn - # L2 weight decay factor of batch normalization layer - norm_decay: 0. - # Darknet convolution layer number, only support 53 currently - depth: 53 - -# YOLOv3 head module -# Generate bbox output in evaluation and calculate loss in training -# fluid.layers.yolov3_loss / fluid.layers.yolo_box -YOLOv3Head: - # anchor mask of 3 yolo_loss/yolo_box layers, each yolo_loss/yolo_box layer has 3 anchors - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - # 9 anchors for 3 yolo_loss/yolo_box layer, generated by perform kmeans on COCO gtboxes - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - # L2 weight decay factor of batch normalization layer - norm_decay: 0. - # Ignore threshold for yolo_loss layer, 0.7 by default. - # Objectness loss will be ignored if a predcition bbox overlap a gtbox over ignore_thresh. - ignore_thresh: 0.7 - # Whether use label smooth in yolo_loss layer - # It is recommended to set as true when only num_classes is very big - label_smooth: true - # fluid.layers.multiclass_nms - # Non-max suppress for output prediction boxes, see multiclass_nms for following parameters. - # 1. Select detection bounding boxes with high scores larger than score_threshold. - # 2. Select detection bounding boxes with the largest nms_top_k scores. - # 3. Suppress detection bounding boxes which have high IoU overlap witch already selected boxes. - # 4. Keep the top keep_top_k detection bounding boxes as output. - nms: - # Which label is regard as backgroud and will be ignored, -1 for no backgroud label. - background_label: -1 - # Number of total bboxes to be kept per image after NMS step. - keep_top_k: 100 - # IoU threshold for NMS, bbox with IoU over nms_threshold will be suppressed. - nms_threshold: 0.45 - # Maximum number of detections to be kept according to the confidences after the filtering detections based on score_threshold. - nms_top_k: 1000 - # Whether detections are normalized. - normalized: false - # Threshold to filter out bounding boxes with low confidence score. - score_threshold: 0.01 - -# Learning rate configuration -LearningRate: - # Base learning rate for training, 1e-3 by default. - base_lr: 0.001 - # Learning rate schedulers, PiecewiseDecay and LinearWarmup by default - schedulers: - # fluid.layers.piecewise_decay - # each milestone stage decay gamma - - !PiecewiseDecay - gamma: 0.1 - milestones: - - 400000 - - 450000 - # fluid.layers.linear_lr_warmup - # Start learning rate equals to base_lr * start_factor - - !LinearWarmup - start_factor: 0. - steps: 4000 - -# Optimizer module -OptimizerBuilder: - # fluid.optimizer - optimizer: - momentum: 0.9 - type: Momentum - # fluid.regularizer - regularizer: - factor: 0.0005 - type: L2 - -# Data feed module for training -YoloTrainFeed: - # Batch size per device, 8 by default - batch_size: 8 - # Dataset module - dataset: - # Dataset directory. - dataset_dir: dataset/coco - # Annotation file path. - annotation: annotations/instances_train2017.json - # Directory where image files are stored. - image_dir: train2017 - # List of data fields needed. - fields: [image, gt_box, gt_label, gt_score] - # List of image dims - image_shape: [3, 608, 608] - # List of sample transformations to use. - sample_transforms: - # read image data and decode to numpy. - - !DecodeImage - to_rgb: true - # YOLOv3 use image mixup in training. - with_mixup: true - # Mixup two images in training, a trick to improve performance. - - !MixupImage - alpha: 1.5 # default: 1.5 - beta: 1.5 # default: 1.5 - # Normalize gtbox to range [0, 1] - - !NormalizeBox {} - # Random color distort: brightness, contrast, hue, saturation. - - !RandomDistort - brightness_lower: 0.5 - brightness_prob: 0.5 - brightness_upper: 1.5 - contrast_lower: 0.5 - contrast_prob: 0.5 - contrast_upper: 1.5 - count: 4 - hue_lower: -18 - hue_prob: 0.5 - hue_upper: 18 - is_order: false - saturation_lower: 0.5 - saturation_prob: 0.5 - saturation_upper: 1.5 - # Random Expand the image and modify bounding box. - # Operators: - # 1. Scale the image weight and height. - # 2. Construct new images with new height and width. - # 3. Fill the new image with the mean. - # 4. Put original imge into new image. - # 5. Rescale the bounding box. - # 6. Determine if the new bbox is satisfied in the new image. - - !ExpandImage - # max expand ratio, default 4.0. - max_ratio: 4.0 - mean: [123.675, 116.28, 103.53] - prob: 0.5 - # Random Crop the image and modify bounding box. - # Operators: - # 1. Scale the image weight and height. - # 2. Crop the image according to a radom sample. - # 3. Rescale the bounding box. - # 4. Determine if the new bbox is satisfied in the new image. - - !CropImage - # Recrop image if there are no bbox in output cropped image. - avoid_no_bbox: true - batch_sampler: [[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]] - # Whether should all bbox satisfy IoU constrains. - satisfy_all: false - # Interpolate image to target_size with random interpolate method: - # cv2.INTER_NEAREST, - # cv2.INTER_LINEAR, - # cv2.INTER_AREA, - # cv2.INTER_CUBIC, - # cv2.INTER_LANCZOS4, - - !RandomInterpImage - max_size: 0 - target_size: 608 - # Filp the image and bounding box. - # Operators: - # 1. Flip the image numpy. - # 2. Transform the bboxes' x coordinates. (Must judge whether the coordinates are normalized!) - # 3. Transform the segmentations' x coordinates. (Must judge whether the coordinates are normalized!) - - !RandomFlipImage - is_mask_flip: false - is_normalized: true - prob: 0.5 - # Normalize the image. - # Operators: - # 1.(optional) Scale the image to [0,1] - # 2. Each pixel minus mean and is divided by std - - !NormalizeImage - is_channel_first: false - is_scale: true - mean: [0.485, 0.456, 0.406] - std: [0.229, 0.224, 0.225] - # Change data layout to [C, H, W]. - - !Permute - channel_first: true - to_bgr: false - # List of batch transformations to use. - batch_transforms: - # Random reshape images in each mini-batch to different shapes. - - !RandomShape - sizes: [320, 352, 384, 416, 448, 480, 512, 544, 576, 608] - # YOLOv3 read gtbox into zero padded tensor with max box number as 50. - num_max_boxes: 50 - # YOLOv3 read gtlabel without regarding backgroud as label 0. - with_background: false - # Number of samples, -1 represents all samples. -1 by default. - samples: -1 - # Whether samples should be shuffled, true by default. - shuffle: true - # Whether drop last images which less than a batch. - drop_last: true - # Whether use multi-process reader in training. - use_process: true - # Use multi-process reader number. - num_workers: 8 - # Buffer size for reader. - bufsize: 128 - # Mixup image epoch number. - mixup_epoch: 250 - -# Data feed module for evaluation -YoloEvalFeed: - batch_size: 8 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: [] - fields: [image, im_size, im_id, gt_box, gt_label, is_difficult] - image_shape: [3, 608, 608] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - # Rescale image to the specified target size, and capped at max_size if max_size != 0. - # If target_size is list, selected a scale randomly as the specified target size. - - !ResizeImage - interp: 2 # 2 for cv2.INTER_CUBIC - max_size: 0 - target_size: 608 - use_cv2: true - - !NormalizeImage - is_channel_first: false - is_scale: true - mean: [0.485, 0.456, 0.406] - std: [0.229, 0.224, 0.225] - - !Permute - channel_first: true - to_bgr: false - num_max_boxes: 50 - samples: -1 - shuffle: false - drop_last: false - # Use multi-thread reader in evaluation mode. - use_process: false - # Thread number for multi-thread reader. - num_workers: 8 - with_background: false - -# Data feed module for test -YoloTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: [] - fields: [image, im_size, im_id] - sample_transforms: - - !DecodeImage - to_rgb: true - with_mixup: false - - !ResizeImage - interp: 2 - max_size: 0 - target_size: 608 - use_cv2: true - - !NormalizeImage - is_channel_first: false - is_scale: true - mean: [0.485, 0.456, 0.406] - std: [0.229, 0.224, 0.225] - - !Permute - channel_first: true - to_bgr: false - num_max_boxes: 50 - samples: -1 - shuffle: false - drop_last: false - # Use multi-thread reader in test mode. - use_process: false - num_workers: 8 - with_background: false diff --git a/PaddleCV/PaddleDetection/docs/images/bench_ssd_yolo_infer.png b/PaddleCV/PaddleDetection/docs/images/bench_ssd_yolo_infer.png deleted file mode 100644 index f81600b14cbe9af4b12f86c574ce2dffa937774f..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/docs/images/bench_ssd_yolo_infer.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/CMakeLists.txt b/PaddleCV/PaddleDetection/inference/CMakeLists.txt deleted file mode 100644 index ed610da047316d0b08d73d51e0223a06180b4026..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/CMakeLists.txt +++ /dev/null @@ -1,272 +0,0 @@ -cmake_minimum_required(VERSION 3.0) -project(cpp_inference_demo CXX C) -message("cmake module path: ${CMAKE_MODULE_PATH}") -message("cmake root path: ${CMAKE_ROOT}") -option(WITH_MKL "Compile demo with MKL/OpenBlas support,defaultuseMKL." ON) -option(WITH_GPU "Compile demo with GPU/CPU, default use CPU." ON) -option(WITH_STATIC_LIB "Compile demo with static/shared library, default use static." ON) -option(USE_TENSORRT "Compile demo with TensorRT." OFF) - -SET(PADDLE_DIR "" CACHE PATH "Location of libraries") -SET(OPENCV_DIR "" CACHE PATH "Location of libraries") -SET(CUDA_LIB "" CACHE PATH "Location of libraries") - - -include(external-cmake/yaml-cpp.cmake) - -macro(safe_set_static_flag) - foreach(flag_var - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - if(${flag_var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - endif(${flag_var} MATCHES "/MD") - endforeach(flag_var) -endmacro() - -if (WITH_MKL) - ADD_DEFINITIONS(-DUSE_MKL) -endif() - -if (NOT DEFINED PADDLE_DIR OR ${PADDLE_DIR} STREQUAL "") - message(FATAL_ERROR "please set PADDLE_DIR with -DPADDLE_DIR=/path/paddle_influence_dir") -endif() - -if (NOT DEFINED OPENCV_DIR OR ${OPENCV_DIR} STREQUAL "") - message(FATAL_ERROR "please set OPENCV_DIR with -DOPENCV_DIR=/path/opencv") -endif() - -include_directories("${CMAKE_SOURCE_DIR}/") -include_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/src/ext-yaml-cpp/include") -include_directories("${PADDLE_DIR}/") -include_directories("${PADDLE_DIR}/third_party/install/protobuf/include") -include_directories("${PADDLE_DIR}/third_party/install/glog/include") -include_directories("${PADDLE_DIR}/third_party/install/gflags/include") -include_directories("${PADDLE_DIR}/third_party/install/xxhash/include") -if (EXISTS "${PADDLE_DIR}/third_party/install/snappy/include") - include_directories("${PADDLE_DIR}/third_party/install/snappy/include") -endif() -if(EXISTS "${PADDLE_DIR}/third_party/install/snappystream/include") - include_directories("${PADDLE_DIR}/third_party/install/snappystream/include") -endif() -include_directories("${PADDLE_DIR}/third_party/install/zlib/include") -include_directories("${PADDLE_DIR}/third_party/boost") -include_directories("${PADDLE_DIR}/third_party/eigen3") - -if (EXISTS "${PADDLE_DIR}/third_party/install/snappy/lib") - link_directories("${PADDLE_DIR}/third_party/install/snappy/lib") -endif() -if(EXISTS "${PADDLE_DIR}/third_party/install/snappystream/lib") - link_directories("${PADDLE_DIR}/third_party/install/snappystream/lib") -endif() - -link_directories("${PADDLE_DIR}/third_party/install/zlib/lib") -link_directories("${PADDLE_DIR}/third_party/install/protobuf/lib") -link_directories("${PADDLE_DIR}/third_party/install/glog/lib") -link_directories("${PADDLE_DIR}/third_party/install/gflags/lib") -link_directories("${PADDLE_DIR}/third_party/install/xxhash/lib") -link_directories("${PADDLE_DIR}/paddle/lib/") -link_directories("${CMAKE_CURRENT_BINARY_DIR}/ext/yaml-cpp/lib") -link_directories("${CMAKE_CURRENT_BINARY_DIR}") -if (WIN32) - include_directories("${PADDLE_DIR}/paddle/fluid/inference") - link_directories("${PADDLE_DIR}/paddle/fluid/inference") - include_directories("${OPENCV_DIR}/build/include") - include_directories("${OPENCV_DIR}/opencv/build/include") - link_directories("${OPENCV_DIR}/build/x64/vc14/lib") -else () - include_directories("${PADDLE_DIR}/paddle/include") - link_directories("${PADDLE_DIR}/paddle/lib") - include_directories("${OPENCV_DIR}/include") - link_directories("${OPENCV_DIR}/lib") -endif () - -if (WIN32) - add_definitions("/DGOOGLE_GLOG_DLL_DECL=") - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /bigobj /MTd") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /bigobj /MT") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj /MTd") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /bigobj /MT") - if (WITH_STATIC_LIB) - safe_set_static_flag() - add_definitions(-DSTATIC_LIB) - endif() -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -o2 -std=c++11") - set(CMAKE_STATIC_LIBRARY_PREFIX "") -endif() - -# TODO let users define cuda lib path -if (WITH_GPU) - if (NOT DEFINED CUDA_LIB OR ${CUDA_LIB} STREQUAL "") - message(FATAL_ERROR "please set CUDA_LIB with -DCUDA_LIB=/path/cuda-8.0/lib64") - endif() - if (NOT WIN32) - if (NOT DEFINED CUDNN_LIB) - message(FATAL_ERROR "please set CUDNN_LIB with -DCUDNN_LIB=/path/cudnn_v7.4/cuda/lib64") - endif() - endif(NOT WIN32) -endif() - - -if (NOT WIN32) - if (USE_TENSORRT AND WITH_GPU) - include_directories("${PADDLE_DIR}/third_party/install/tensorrt/include") - link_directories("${PADDLE_DIR}/third_party/install/tensorrt/lib") - endif() -endif(NOT WIN32) - -if (NOT WIN32) - set(NGRAPH_PATH "${PADDLE_DIR}/third_party/install/ngraph") - if(EXISTS ${NGRAPH_PATH}) - include(GNUInstallDirs) - include_directories("${NGRAPH_PATH}/include") - link_directories("${NGRAPH_PATH}/${CMAKE_INSTALL_LIBDIR}") - set(NGRAPH_LIB ${NGRAPH_PATH}/${CMAKE_INSTALL_LIBDIR}/libngraph${CMAKE_SHARED_LIBRARY_SUFFIX}) - endif() -endif() - -if(WITH_MKL) - include_directories("${PADDLE_DIR}/third_party/install/mklml/include") - if (WIN32) - set(MATH_LIB ${PADDLE_DIR}/third_party/install/mklml/lib/mklml.lib - ${PADDLE_DIR}/third_party/install/mklml/lib/libiomp5md.lib) - else () - set(MATH_LIB ${PADDLE_DIR}/third_party/install/mklml/lib/libmklml_intel${CMAKE_SHARED_LIBRARY_SUFFIX} - ${PADDLE_DIR}/third_party/install/mklml/lib/libiomp5${CMAKE_SHARED_LIBRARY_SUFFIX}) - endif () - set(MKLDNN_PATH "${PADDLE_DIR}/third_party/install/mkldnn") - if(EXISTS ${MKLDNN_PATH}) - include_directories("${MKLDNN_PATH}/include") - if (WIN32) - set(MKLDNN_LIB ${MKLDNN_PATH}/lib/mkldnn.lib) - else () - set(MKLDNN_LIB ${MKLDNN_PATH}/lib/libmkldnn.so.0) - endif () - endif() -else() - set(MATH_LIB ${PADDLE_DIR}/third_party/install/openblas/lib/libopenblas${CMAKE_STATIC_LIBRARY_SUFFIX}) -endif() - -if(WITH_STATIC_LIB) - if (WIN32) - set(DEPS - ${PADDLE_DIR}/paddle/fluid/inference/libpaddle_fluid${CMAKE_STATIC_LIBRARY_SUFFIX}) - else () - set(DEPS - ${PADDLE_DIR}/paddle/lib/libpaddle_fluid${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -else() - if (WIN32) - set(DEPS - ${PADDLE_DIR}/paddle/fluid/inference/libpaddle_fluid${CMAKE_STATIC_LIBRARY_SUFFIX}) - else () - set(DEPS - ${PADDLE_DIR}/paddle/lib/libpaddle_fluid${CMAKE_SHARED_LIBRARY_SUFFIX}) - endif() -endif() - -if (NOT WIN32) - set(EXTERNAL_LIB "-lrt -ldl -lpthread") - set(DEPS ${DEPS} - ${MATH_LIB} ${MKLDNN_LIB} - glog gflags protobuf yaml-cpp z xxhash - ${EXTERNAL_LIB}) - if(EXISTS "${PADDLE_DIR}/third_party/install/snappystream/lib") - set(DEPS ${DEPS} snappystream) - endif() - if (EXISTS "${PADDLE_DIR}/third_party/install/snappy/lib") - set(DEPS ${DEPS} snappy) - endif() -else() - set(DEPS ${DEPS} - ${MATH_LIB} ${MKLDNN_LIB} - opencv_world346 glog libyaml-cppmt gflags_static libprotobuf zlibstatic xxhash ${EXTERNAL_LIB}) - set(DEPS ${DEPS} libcmt shlwapi) - if (EXISTS "${PADDLE_DIR}/third_party/install/snappy/lib") - set(DEPS ${DEPS} snappy) - endif() - if(EXISTS "${PADDLE_DIR}/third_party/install/snappystream/lib") - set(DEPS ${DEPS} snappystream) - endif() -endif(NOT WIN32) - -if(WITH_GPU) - if(NOT WIN32) - if (USE_TENSORRT) - set(DEPS ${DEPS} ${PADDLE_DIR}/third_party/install/tensorrt/lib/libnvinfer${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${PADDLE_DIR}/third_party/install/tensorrt/lib/libnvinfer_plugin${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() - set(DEPS ${DEPS} ${CUDA_LIB}/libcudart${CMAKE_SHARED_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${CUDNN_LIB}/libcudnn${CMAKE_SHARED_LIBRARY_SUFFIX}) - else() - set(DEPS ${DEPS} ${CUDA_LIB}/cudart${CMAKE_STATIC_LIBRARY_SUFFIX} ) - set(DEPS ${DEPS} ${CUDA_LIB}/cublas${CMAKE_STATIC_LIBRARY_SUFFIX} ) - set(DEPS ${DEPS} ${CUDA_LIB}/cudnn${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -endif() - -if (NOT WIN32) - set(OPENCV_LIB_DIR ${OPENCV_DIR}/lib) - if(EXISTS "${OPENCV_LIB_DIR}") - message("OPENCV_LIB:" ${OPENCV_LIB_DIR}) - else() - set(OPENCV_LIB_DIR ${OPENCV_DIR}/lib64) - message("OPENCV_LIB:" ${OPENCV_LIB_DIR}) - endif() - - set(OPENCV_3RD_LIB_DIR ${OPENCV_DIR}/share/OpenCV/3rdparty/lib) - if(EXISTS "${OPENCV_3RD_LIB_DIR}") - message("OPENCV_3RD_LIB_DIR:" ${OPENCV_3RD_LIB_DIR}) - else() - set(OPENCV_3RD_LIB_DIR ${OPENCV_DIR}/share/OpenCV/3rdparty/lib64) - message("OPENCV_3RD_LIB_DIR:" ${OPENCV_3RD_LIB_DIR}) - endif() - - set(DEPS ${DEPS} ${OPENCV_LIB_DIR}/libopencv_imgcodecs${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_LIB_DIR}/libopencv_imgproc${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_LIB_DIR}/libopencv_core${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_LIB_DIR}/libopencv_highgui${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/libIlmImf${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/liblibjasper${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/liblibpng${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/liblibtiff${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/libittnotify${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/liblibjpeg-turbo${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/liblibwebp${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/libzlib${CMAKE_STATIC_LIBRARY_SUFFIX}) - if(EXISTS "${OPENCV_3RD_LIB_DIR}/libippiw${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/libippiw${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() - if(EXISTS "${OPENCV_3RD_LIB_DIR}/libippicv${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(DEPS ${DEPS} ${OPENCV_3RD_LIB_DIR}/libippicv${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -endif() -# message(${CMAKE_CXX_FLAGS}) -# set(CMAKE_CXX_FLAGS "-g ${CMAKE_CXX_FLAGS}") - -SET(PADDLESEG_INFERENCE_SRCS preprocessor/preprocessor.cpp - preprocessor/preprocessor_detection.cpp predictor/detection_predictor.cpp - utils/detection_result.pb.cc) - -ADD_LIBRARY(libpaddleseg_inference STATIC ${PADDLESEG_INFERENCE_SRCS}) -target_link_libraries(libpaddleseg_inference ${DEPS}) - -add_executable(detection_demo detection_demo.cpp) - -ADD_DEPENDENCIES(libpaddleseg_inference ext-yaml-cpp) -ADD_DEPENDENCIES(detection_demo ext-yaml-cpp libpaddleseg_inference) -target_link_libraries(detection_demo ${DEPS} libpaddleseg_inference) - -if (WIN32) - add_custom_command(TARGET detection_demo POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mklml/lib/mklml.dll ./mklml.dll - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mklml/lib/libiomp5md.dll ./libiomp5md.dll - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mkldnn/lib/mkldnn.dll ./mkldnn.dll - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mklml/lib/mklml.dll ./release/mklml.dll - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mklml/lib/libiomp5md.dll ./release/libiomp5md.dll - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PADDLE_DIR}/third_party/install/mkldnn/lib/mkldnn.dll ./mkldnn.dll - ) -endif() - -execute_process(COMMAND cp -r ${CMAKE_SOURCE_DIR}/images ${CMAKE_SOURCE_DIR}/conf ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/PaddleCV/PaddleDetection/inference/LICENSE b/PaddleCV/PaddleDetection/inference/LICENSE deleted file mode 100644 index 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/PaddleCV/PaddleDetection/inference/README.md b/PaddleCV/PaddleDetection/inference/README.md deleted file mode 100644 index 302b5fb3818df8c1ca871095ff368129ce1292fd..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/README.md +++ /dev/null @@ -1,171 +0,0 @@ -# PaddleDetection C++预测部署方案 - -## 本文档结构 - -[1.说明](#1说明) - -[2.主要目录和文件](#2主要目录和文件) - -[3.编译](#3编译) - -[4.预测并可视化结果](#4预测并可视化结果) - - - - -## 1.说明 - -本目录提供一个跨平台的图像检测模型的C++预测部署方案,用户通过一定的配置,加上少量的代码,即可把模型集成到自己的服务中,完成相应的图像检测任务。 - -主要设计的目标包括以下四点: -- 跨平台,支持在 Windows 和 Linux 完成编译、开发和部署 -- 可扩展性,支持用户针对新模型开发自己特殊的数据预处理等逻辑 -- 高性能,除了`PaddlePaddle`自身带来的性能优势,我们还针对图像检测的特点对关键步骤进行了性能优化 -- 支持多种常见的图像检测模型,如YOLOv3, Faster-RCNN, Faster-RCNN+FPN,用户通过少量配置即可加载模型完成常见检测任务 - -## 2.主要目录和文件 - -```bash -deploy -├── detection_demo.cpp # 完成图像检测预测任务C++代码 -│ -├── conf -│ ├── detection_rcnn.yaml #示例faster rcnn 目标检测配置 -│ └── detection_rcnn_fpn.yaml #示例faster rcnn + fpn目标检测配置 -├── images -│ └── detection_rcnn # 示例faster rcnn + fpn目标检测测试图片目录 -├── tools -│ └── vis.py # 示例图像检测结果可视化脚本 -├── docs -│ ├── linux_build.md # Linux 编译指南 -│ ├── windows_vs2015_build.md # windows VS2015编译指南 -│ └── windows_vs2019_build.md # Windows VS2019编译指南 -│ -├── utils # 一些基础公共函数 -│ -├── preprocess # 数据预处理相关代码 -│ -├── predictor # 模型加载和预测相关代码 -│ -├── CMakeList.txt # cmake编译入口文件 -│ -└── external-cmake # 依赖的外部项目cmake(目前仅有yaml-cpp) - -``` - -## 3.编译 -支持在`Windows`和`Linux`平台编译和使用: -- [Linux 编译指南](./docs/linux_build.md) -- [Windows 使用 Visual Studio 2019 Community 编译指南](./docs/windows_vs2019_build.md) -- [Windows 使用 Visual Studio 2015 编译指南](./docs/windows_vs2015_build.md) - -`Windows`上推荐使用最新的`Visual Studio 2019 Community`直接编译`CMake`项目。 - -## 4.预测并可视化结果 - -完成编译后,便生成了需要的可执行文件和链接库。这里以我们基于`faster rcnn`检测模型为例,介绍部署图像检测模型的通用流程。 - -### 1. 下载模型文件 -我们提供faster rcnn,faster rcnn+fpn模型用于预测coco17数据集,可在以下链接下载:[faster rcnn示例模型下载地址](https://paddleseg.bj.bcebos.com/inference/faster_rcnn_pp50.zip), - [faster rcnn + fpn示例模型下载地址](https://paddleseg.bj.bcebos.com/inference/faster_rcnn_pp50_fpn.zip)。 - -下载并解压,解压后目录结构如下: -``` -faster_rcnn_pp50/ -├── __model__ # 模型文件 -│ -└── __params__ # 参数文件 -``` -解压后把上述目录拷贝到合适的路径: - -**假设**`Windows`系统上,我们模型和参数文件所在路径为`D:\projects\models\faster_rcnn_pp50`。 - -**假设**`Linux`上对应的路径则为`/root/projects/models/faster_rcnn_pp50/`。 - - -### 2. 修改配置 - -`inference`源代码(即本目录)的`conf`目录下提供了示例基于faster rcnn的配置文件`detection_rcnn.yaml`, 相关的字段含义和说明如下: - -```yaml -DEPLOY: - # 是否使用GPU预测 - USE_GPU: 1 - # 模型和参数文件所在目录路径 - MODEL_PATH: "/root/projects/models/faster_rcnn_pp50" - # 模型文件名 - MODEL_FILENAME: "__model__" - # 参数文件名 - PARAMS_FILENAME: "__params__" - # 预测图片的标准输入,尺寸不一致会resize - EVAL_CROP_SIZE: (608, 608) - # resize方式,支持 UNPADDING和RANGE_SCALING - RESIZE_TYPE: "RANGE_SCALING" - # 短边对齐的长度,仅在RANGE_SCALING下有效 - TARGET_SHORT_SIZE : 800 - # 均值 - MEAN: [0.4647, 0.4647, 0.4647] - # 方差 - STD: [0.0834, 0.0834, 0.0834] - # 图片类型, rgb或者rgba - IMAGE_TYPE: "rgb" - # 像素分类数 - NUM_CLASSES: 1 - # 通道数 - CHANNELS : 3 - # 预处理器, 目前提供图像检测的通用处理类DetectionPreProcessor - PRE_PROCESSOR: "DetectionPreProcessor" - # 预测模式,支持 NATIVE 和 ANALYSIS - PREDICTOR_MODE: "ANALYSIS" - # 每次预测的 batch_size - BATCH_SIZE : 3 - # 长边伸缩的最大长度,-1代表无限制。 - RESIZE_MAX_SIZE: 1333 - # 输入的tensor数量。 - FEEDS_SIZE: 3 - -``` -修改字段`MODEL_PATH`的值为你在**上一步**下载并解压的模型文件所放置的目录即可。更多配置文件字段介绍,请参考文档[预测部署方案配置文件说明](./docs/configuration.md)。 - -### 3. 执行预测 - -在终端中切换到生成的可执行文件所在目录为当前目录(Windows系统为`cmd`)。 - -`Linux` 系统中执行以下命令: -```shell -./detection_demo --conf=conf/detection_rcnn.yaml --input_dir=images/detection_rcnn -``` -`Windows` 中执行以下命令: -```shell -.\detection_demo.exe --conf=conf\detection_rcnn.yaml --input_dir=images\detection_rcnn\ -``` - - -预测使用的两个命令参数说明如下: - -| 参数 | 含义 | -|-------|----------| -| conf | 模型配置的Yaml文件路径 | -| input_dir | 需要预测的图片目录 | - -· -配置文件说明请参考上一步,样例程序会扫描input_dir目录下的所有图片,并为每一张图片生成对应的预测结果,输出到屏幕,并在`X`同一目录下保存到`X.pb文件`(X为对应图片的文件名)。可使用工具脚本vis.py将检测结果可视化。 - -**检测结果可视化** - -运行可视化脚本时,只需输入命令行参数图片路径、检测结果pb文件路径、目标框阈值以及类别-标签映射文件路径即可得到可视化的图片`X.png` (tools目录下提供coco17的类别标签映射文件coco17.json)。 - -```bash -python vis.py --img_path=../build/images/detection_rcnn/000000087038.jpg --img_result_path=../build/images/detection_rcnn/000000087038.jpg.pb --threshold=0.1 --c2l_path=coco17.json -``` - -检测结果(每个图片的结果用空行隔开) - -```原图:``` - -![原图](./demo_images/000000087038.jpg) - -```检测结果图:``` - -![检测结果](./demo_images/000000087038.jpg.png) - diff --git a/PaddleCV/PaddleDetection/inference/conf/detection_rcnn.yaml b/PaddleCV/PaddleDetection/inference/conf/detection_rcnn.yaml deleted file mode 100644 index 50c23fbb3e53ff159844e65da4ed194e169cffb6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/conf/detection_rcnn.yaml +++ /dev/null @@ -1,18 +0,0 @@ -DEPLOY: - USE_GPU: 1 - MODEL_PATH: "/root/projects/models/faster_rcnn_pp50" - MODEL_FILENAME: "__model__" - PARAMS_FILENAME: "__params__" - EVAL_CROP_SIZE: (608, 608) - RESIZE_TYPE: "RANGE_SCALING" - TARGET_SHORT_SIZE : 800 - MEAN: [0.485, 0.456, 0.406] - STD: [0.229, 0.224, 0.225] - IMAGE_TYPE: "rgb" - NUM_CLASSES: 1 - CHANNELS : 3 - PRE_PROCESSOR: "DetectionPreProcessor" - PREDICTOR_MODE: "ANALYSIS" - BATCH_SIZE : 3 - RESIZE_MAX_SIZE: 1333 - FEEDS_SIZE: 3 diff --git a/PaddleCV/PaddleDetection/inference/conf/detection_rcnn_fpn.yaml b/PaddleCV/PaddleDetection/inference/conf/detection_rcnn_fpn.yaml deleted file mode 100644 index 9d6635ef8c2b29fb0ca9318d1ec08f1f7be037f7..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/conf/detection_rcnn_fpn.yaml +++ /dev/null @@ -1,19 +0,0 @@ -DEPLOY: - USE_GPU: 1 - MODEL_PATH: "/root/projects/models/faster_rcnn_pp50_fpn" - MODEL_FILENAME: "__model__" - PARAMS_FILENAME: "__params__" - EVAL_CROP_SIZE: (608, 608) - RESIZE_TYPE: "RANGE_SCALING" - TARGET_SHORT_SIZE : 800 - MEAN: [0.485, 0.456, 0.406] - STD: [0.229, 0.224, 0.225] - IMAGE_TYPE: "rgb" - NUM_CLASSES: 1 - CHANNELS : 3 - PRE_PROCESSOR: "DetectionPreProcessor" - PREDICTOR_MODE: "ANALYSIS" - BATCH_SIZE : 1 - RESIZE_MAX_SIZE: 1333 - FEEDS_SIZE: 3 - COARSEST_STRIDE: 32 diff --git a/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg b/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg deleted file mode 100644 index 9f77f5d5f057b6f92dc096da704ecb8dee99bdf5..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg.png b/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg.png deleted file mode 100644 index aa2c63d1c3dd1ca08d517239842ce5bd40310d01..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/inference/demo_images/000000087038.jpg.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/detection_demo.cpp b/PaddleCV/PaddleDetection/inference/detection_demo.cpp deleted file mode 100644 index 7e711ed6970358c528a3198bb6168a871d83d380..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/detection_demo.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include -#include - -DEFINE_string(conf, "", "Configuration File Path"); -DEFINE_string(input_dir, "", "Directory of Input Images"); - -int main(int argc, char** argv) { - // 0. parse args - google::ParseCommandLineFlags(&argc, &argv, true); - if (FLAGS_conf.empty() || FLAGS_input_dir.empty()) { - std::cout << "Usage: ./predictor --conf=/config/path/to/your/model --input_dir=/directory/of/your/input/images"; - return -1; - } - // 1. create a predictor and init it with conf - PaddleSolution::DetectionPredictor predictor; - if (predictor.init(FLAGS_conf) != 0) { - LOG(FATAL) << "Fail to init predictor"; - return -1; - } - - // 2. get all the images with extension '.jpeg' at input_dir - auto imgs = PaddleSolution::utils::get_directory_images(FLAGS_input_dir, ".jpeg|.jpg|.JPEG|.JPG|.bmp|.BMP|.png|.PNG"); - - // 3. predict - predictor.predict(imgs); - return 0; -} diff --git a/PaddleCV/PaddleDetection/inference/docs/configuration.md b/PaddleCV/PaddleDetection/inference/docs/configuration.md deleted file mode 100644 index cb2f761f792009c1accb52048d6e4f2cdcb6ad29..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/docs/configuration.md +++ /dev/null @@ -1,75 +0,0 @@ -# 预测部署方案配置文件说明 -## 基本概念 -预测部署方案的配置文件旨在给用户提供一个预测部署方案定制化接口。用户仅需理解该配置文件相关字段的含义,无需编写任何代码,即可定制化预测部署方案。为了更好地表达每个字段的含义,首先介绍配置文件中字段的类型。 - -### 字段类型 -- **required**: 表明该字段必须显式定义,否则无法正常启动预测部署程序。 -- **optional**: 表明该字段可忽略不写,预测部署系统会提供默认值,相关默认值将在下文介绍。 - -### 字段值类型 -- **int**:表明该字段必须赋予整型类型的值。 -- **string**:表明该字段必须赋予字符串类型的值。 -- **list**:表明该字段必须赋予列表的值。 -- **tuple**: 表明该字段必须赋予双元素元组的值。 - -## 字段介绍 - -```yaml -# 预测部署时所有配置字段需在DEPLOY字段下 -DEPLOY: - # 类型:required int - # 含义:是否使用GPU预测。 0:不使用 1:使用 - USE_GPU: 1 - # 类型:required string - # 含义:模型和参数文件所在目录 - MODEL_PATH: "/path/to/model_directory" - # 类型:required string - # 含义:模型文件名 - MODEL_FILENAME: "__model__" - # 类型:required string - # 含义:参数文件名 - PARAMS_FILENAME: "__params__" - # 类型:optional string - # 含义:图像resize的类型。支持 UNPADDING 和 RANGE_SCALING模式。默认是UNPADDING模式。 - RESIZE_TYPE: "UNPADDING" - # 类型:required tuple - # 含义:当使用UNPADDING模式时,会将图像直接resize到该尺寸。 - EVAL_CROP_SIZE: (513, 513) - # 类型:optional int - # 含义:当使用RANGE_SCALING模式时,图像短边需要对齐该字段的值,长边会同比例 - # 的缩放,从而在保持图像长宽比例不变的情况下resize到新的尺寸。默认值为0。 - TARGET_SHORT_SIZE: 800 - # 类型:optional int - # 含义: 当使用RANGE_SCALING模式时,长边不能缩放到比该字段的值大。默认值为0。 - RESIZE_MAX_SIZE: 1333 - # 类型:required list - # 含义:图像进行归一化预处理时的均值 - MEAN: [104.008, 116.669, 122.675] - # 类型:required list - # 含义:图像进行归一化预处理时的方差 - STD: [1.0, 1.0, 1.0] - # 类型:string - # 含义:图片类型, rgb 或者 rgba - IMAGE_TYPE: "rgb" - # 类型:required int - # 含义:图像分类类型数 - NUM_CLASSES: 2 - # 类型:required int - # 含义:图片通道数 - CHANNELS : 3 - # 类型:required string - # 含义:预处理方式,目前提供图像检测的通用预处理类DetectionPreProcessor. - PRE_PROCESSOR: "DetectionPreProcessor" - # 类型:required string - # 含义:预测模式,支持 NATIVE 和 ANALYSIS - PREDICTOR_MODE: "ANALYSIS" - # 类型:required int - # 含义:每次预测的 batch_size - BATCH_SIZE : 3 - # 类型:optional int - # 含义: 输入张量的个数。大部分模型不需要设置。 默认值为1. - FEEDS_SIZE: 2 - # 类型: optional int - # 含义: 将图像的边变为该字段的值的整数倍。默认值为1。 - COARSEST_STRIDE: 32 -``` \ No newline at end of file diff --git a/PaddleCV/PaddleDetection/inference/docs/linux_build.md b/PaddleCV/PaddleDetection/inference/docs/linux_build.md deleted file mode 100644 index 2ad9e46383123efee47b941f97c8e7690c7b95d6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/docs/linux_build.md +++ /dev/null @@ -1,84 +0,0 @@ -# Linux平台 编译指南 - -## 说明 -本文档在 `Linux`平台使用`GCC 4.8.5` 和 `GCC 4.9.4`测试过,如果需要使用更高G++版本编译使用,则需要重新编译Paddle预测库,请参考: [从源码编译Paddle预测库](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html#id15)。 - -## 前置条件 -* G++ 4.8.2 ~ 4.9.4 -* CUDA 8.0/ CUDA 9.0 -* CMake 3.0+ - -请确保系统已经安装好上述基本软件,**下面所有示例以工作目录为 `/root/projects/`演示**。 - -### Step1: 下载代码 - -1. `mkdir -p /root/projects/paddle_models && cd /root/projects/paddle_models` -2. `git clone https://github.com/PaddlePaddle/models.git` - -`C++`预测代码在`/root/projects/paddle_models/models/PaddleCV/PaddleDetection/inference` 目录,该目录不依赖任何`PaddleDetection`下其他目录。 - - -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference - -目前仅支持`CUDA 8` 和 `CUDA 9`,请点击 [PaddlePaddle预测库下载地址](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html)下载对应的版本(develop版本)。 - - -下载并解压后`/root/projects/fluid_inference`目录包含内容为: -``` -fluid_inference -├── paddle # paddle核心库和头文件 -| -├── third_party # 第三方依赖库和头文件 -| -└── version.txt # 版本和编译信息 -``` - -### Step3: 安装配置OpenCV - -```shell -# 0. 切换到/root/projects目录 -cd /root/projects -# 1. 下载OpenCV3.4.6版本源代码 -wget -c https://paddleseg.bj.bcebos.com/inference/opencv-3.4.6.zip -# 2. 解压 -unzip opencv-3.4.6.zip && cd opencv-3.4.6 -# 3. 创建build目录并编译, 这里安装到/usr/local/opencv3目录 -mkdir build && cd build -cmake .. -DCMAKE_INSTALL_PREFIX=/root/projects/opencv3 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_IPP=OFF -DBUILD_IPP_IW=OFF -DWITH_LAPACK=OFF -DWITH_EIGEN=OFF -DCMAKE_INSTALL_LIBDIR=lib64 -DWITH_ZLIB=ON -DBUILD_ZLIB=ON -DWITH_JPEG=ON -DBUILD_JPEG=ON -DWITH_PNG=ON -DBUILD_PNG=ON -DWITH_TIFF=ON -DBUILD_TIFF=ON -make -j4 -make install -``` - -**注意:** 上述操作完成后,`opencv` 被安装在 `/root/projects/opencv3` 目录。 - -### Step4: 编译 - -`CMake`编译时,涉及到四个编译参数用于指定核心依赖库的路径, 他们的定义如下: - -| 参数名 | 含义 | -| ---- | ---- | -| CUDA_LIB | cuda的库路径 | -| CUDNN_LIB | cuDnn的库路径| -| OPENCV_DIR | OpenCV的安装路径, | -| PADDLE_DIR | Paddle预测库的路径 | - -执行下列操作时,**注意**把对应的参数改为你的上述依赖库实际路径: - -```shell -cd /root/projects/paddle_models/models/PaddleCV/PaddleDetection/inference - -mkdir build && cd build -cmake .. -DWITH_GPU=ON -DPADDLE_DIR=/root/projects/fluid_inference -DCUDA_LIB=/usr/local/cuda/lib64/ -DOPENCV_DIR=/root/projects/opencv3/ -DCUDNN_LIB=/usr/local/cuda/lib64/ -make -``` - - -### Step5: 预测及可视化 - -执行命令: - -``` -./detection_demo --conf=/path/to/your/conf --input_dir=/path/to/your/input/data/directory -``` - -更详细说明请参考ReadMe文档: [预测和可视化部分](../README.md) diff --git a/PaddleCV/PaddleDetection/inference/docs/windows_vs2015_build.md b/PaddleCV/PaddleDetection/inference/docs/windows_vs2015_build.md deleted file mode 100644 index be1c0289d404c17e561928173b104228ea63dbda..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/docs/windows_vs2015_build.md +++ /dev/null @@ -1,97 +0,0 @@ -# Windows平台使用 Visual Studio 2015 编译指南 - -本文档步骤,我们同时在`Visual Studio 2015` 和 `Visual Studio 2019 Community` 两个版本进行了测试,我们推荐使用[`Visual Studio 2019`直接编译`CMake`项目](./windows_vs2019_build.md)。 - - -## 前置条件 -* Visual Studio 2015 -* CUDA 8.0/ CUDA 9.0 -* CMake 3.0+ - -请确保系统已经安装好上述基本软件,**下面所有示例以工作目录为 `D:\projects`演示**。 - -### Step1: 下载代码 - -1. 打开`cmd`, 执行 `cd D:\projects\paddle_models` -2. `git clone https://github.com/PaddlePaddle/models.git` - -`C++`预测库代码在`D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference` 目录,该目录不依赖任何`PaddleDetection`下其他目录。 - - -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference - -根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到`D:\projects\`目录 - -| CUDA | GPU | 下载地址 | -|------|------|--------| -| 8.0 | Yes | [fluid_inference.zip](https://bj.bcebos.com/v1/paddleseg/fluid_inference_win.zip) | -| 9.0 | Yes | [fluid_inference_cuda90.zip](https://paddleseg.bj.bcebos.com/fluid_inference_cuda9_cudnn7.zip) | - -解压后`D:\projects\fluid_inference`目录包含内容为: -``` -fluid_inference -├── paddle # paddle核心库和头文件 -| -├── third_party # 第三方依赖库和头文件 -| -└── version.txt # 版本和编译信息 -``` - -### Step3: 安装配置OpenCV - -1. 在OpenCV官网下载适用于Windows平台的3.4.6版本, [下载地址](https://sourceforge.net/projects/opencvlibrary/files/3.4.6/opencv-3.4.6-vc14_vc15.exe/download) -2. 运行下载的可执行文件,将OpenCV解压至指定目录,如`D:\projects\opencv` -3. 配置环境变量,如下流程所示 - - 我的电脑->属性->高级系统设置->环境变量 - - 在系统变量中找到Path(如没有,自行创建),并双击编辑 - - 新建,将opencv路径填入并保存,如`D:\projects\opencv\build\x64\vc14\bin` - -### Step4: 以VS2015为例编译代码 - -以下命令需根据自己系统中各相关依赖的路径进行修改 - -* 调用VS2015, 请根据实际VS安装路径进行调整,打开cmd命令行工具执行以下命令 -* 其他vs版本(比如vs2019),请查找到对应版本的`vcvarsall.bat`路径,替换本命令即可 - -``` -call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -``` - -* CMAKE编译工程 - * PADDLE_DIR: fluid_inference预测库路径 - * CUDA_LIB: CUDA动态库目录, 请根据实际安装情况调整 - * OPENCV_DIR: OpenCV解压目录 - -``` -# 切换到预测库所在目录 -cd /d D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference -# 创建构建目录, 重新构建只需要删除该目录即可 -mkdir build -cd build -# cmake构建VS项目 -D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference\build> cmake .. -G "Visual Studio 14 2015 Win64" -DWITH_GPU=ON -DPADDLE_DIR=D:\projects\fluid_inference -DCUDA_LIB=D:\projects\cudalib\v9.0\lib\x64 -DOPENCV_DIR=D:\projects\opencv -T host=x64 -``` - -这里的`cmake`参数`-G`, 表示生成对应的VS版本的工程,可以根据自己的`VS`版本调整,具体请参考[cmake文档](https://cmake.org/cmake/help/v3.15/manual/cmake-generators.7.html) - -* 生成可执行文件 - -``` -D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference\build> msbuild /m /p:Configuration=Release cpp_inference_demo.sln -``` - -### Step5: 预测及可视化 - -上述`Visual Studio 2015`编译产出的可执行文件在`build\release`目录下,切换到该目录: -``` -cd /d D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference\build\release -``` - -之后执行命令: - -``` -detection_demo.exe --conf=/path/to/your/conf --input_dir=/path/to/your/input/data/directory -``` - -更详细说明请参考ReadMe文档: [预测和可视化部分](../README.md) - diff --git a/PaddleCV/PaddleDetection/inference/docs/windows_vs2019_build.md b/PaddleCV/PaddleDetection/inference/docs/windows_vs2019_build.md deleted file mode 100644 index f3f589a9a246e494439b26f516ea319c270ff9ab..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/docs/windows_vs2019_build.md +++ /dev/null @@ -1,102 +0,0 @@ -# Visual Studio 2019 Community CMake 编译指南 - -Windows 平台下,我们使用`Visual Studio 2015` 和 `Visual Studio 2019 Community` 进行了测试。微软从`Visual Studio 2017`开始即支持直接管理`CMake`跨平台编译项目,但是直到`2019`才提供了稳定和完全的支持,所以如果你想使用CMake管理项目编译构建,我们推荐你使用`Visual Studio 2019`环境下构建。 - -你也可以使用和`VS2015`一样,通过把`CMake`项目转化成`VS`项目来编译,其中**有差别的部分**在文档中我们有说明,请参考:[使用Visual Studio 2015 编译指南](./windows_vs2015_build.md) - -## 前置条件 -* Visual Studio 2019 -* CUDA 8.0/ CUDA 9.0 -* CMake 3.0+ - -请确保系统已经安装好上述基本软件,我们使用的是`VS2019`的社区版。 - -**下面所有示例以工作目录为 `D:\projects`演示**。 - -### Step1: 下载代码 - -1. 点击下载源代码:[下载地址](https://github.com/PaddlePaddle/models/archive/develop.zip) -2. 解压,解压后目录重命名为`paddle_models` - -以下代码目录路径为`D:\projects\paddle_models` 为例。 - - -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference - -根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到`D:\projects\`目录 - -| CUDA | GPU | 下载地址 | -|------|------|--------| -| 8.0 | Yes | [fluid_inference.zip](https://bj.bcebos.com/v1/paddleseg/fluid_inference_win.zip) | -| 9.0 | Yes | [fluid_inference_cuda90.zip](https://paddleseg.bj.bcebos.com/fluid_inference_cuda9_cudnn7.zip) | - -解压后`D:\projects\fluid_inference`目录包含内容为: -``` -fluid_inference -├── paddle # paddle核心库和头文件 -| -├── third_party # 第三方依赖库和头文件 -| -└── version.txt # 版本和编译信息 -``` -**注意:** `CUDA90`版本解压后目录名称为`fluid_inference_cuda90`。 - -### Step3: 安装配置OpenCV - -1. 在OpenCV官网下载适用于Windows平台的3.4.6版本, [下载地址](https://sourceforge.net/projects/opencvlibrary/files/3.4.6/opencv-3.4.6-vc14_vc15.exe/download) -2. 运行下载的可执行文件,将OpenCV解压至指定目录,如`D:\projects\opencv` -3. 配置环境变量,如下流程所示 - - 我的电脑->属性->高级系统设置->环境变量 - - 在系统变量中找到Path(如没有,自行创建),并双击编辑 - - 新建,将opencv路径填入并保存,如`D:\projects\opencv\build\x64\vc14\bin` - -### Step4: 使用Visual Studio 2019直接编译CMake - -1. 打开Visual Studio 2019 Community,点击`继续但无需代码` -![step2](https://paddleseg.bj.bcebos.com/inference/vs2019_step1.png) -2. 点击: `文件`->`打开`->`CMake` -![step2.1](https://paddleseg.bj.bcebos.com/inference/vs2019_step2.png) - -选择项目代码所在路径,并打开`CMakeList.txt`: - -![step2.2](https://paddleseg.bj.bcebos.com/inference/vs2019_step3.png) - -3. 点击:`项目`->`cpp_inference_demo的CMake设置` - -![step3](https://paddleseg.bj.bcebos.com/inference/vs2019_step4.png) - -4. 点击`浏览`,分别设置编译选项指定`CUDA`、`OpenCV`、`Paddle预测库`的路径 - -![step4](https://paddleseg.bj.bcebos.com/inference/vs2019_step5.png) - -三个编译参数的含义说明如下: - -| 参数名 | 含义 | -| ---- | ---- | -| CUDA_LIB | cuda的库路径 | -| OPENCV_DIR | OpenCV的安装路径, | -| PADDLE_DIR | Paddle预测库的路径 | - -**设置完成后**, 点击上图中`保存并生成CMake缓存以加载变量`。 - -5. 点击`生成`->`全部生成` - -![step6](https://paddleseg.bj.bcebos.com/inference/vs2019_step6.png) - - -### Step5: 预测及可视化 - -上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release`目录下,打开`cmd`,并切换到该目录: - -``` -cd D:\projects\paddle_models\models\PaddleCV\PaddleDetection\inference\build\x64-Release -``` - -之后执行命令: - -``` -detection_demo.exe --conf=/path/to/your/conf --input_dir=/path/to/your/input/data/directory -``` - -更详细说明请参考ReadMe文档: [预测和可视化部分](../README.md) - diff --git a/PaddleCV/PaddleDetection/inference/external-cmake/yaml-cpp.cmake b/PaddleCV/PaddleDetection/inference/external-cmake/yaml-cpp.cmake deleted file mode 100644 index 15fa2674e00d85f1db7bbdfdceeebadaf0eabf5a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/external-cmake/yaml-cpp.cmake +++ /dev/null @@ -1,29 +0,0 @@ - -find_package(Git REQUIRED) - -include(ExternalProject) - -message("${CMAKE_BUILD_TYPE}") - -ExternalProject_Add( - ext-yaml-cpp - GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git - GIT_TAG e0e01d53c27ffee6c86153fa41e7f5e57d3e5c90 - CMAKE_ARGS - -DYAML_CPP_BUILD_TESTS=OFF - -DYAML_CPP_BUILD_TOOLS=OFF - -DYAML_CPP_INSTALL=OFF - -DYAML_CPP_BUILD_CONTRIB=OFF - -DMSVC_SHARED_RT=OFF - -DBUILD_SHARED_LIBS=OFF - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} - -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} - -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/ext/yaml-cpp/lib - -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/ext/yaml-cpp/lib - PREFIX "${CMAKE_BINARY_DIR}/ext/yaml-cpp" - # Disable install step - INSTALL_COMMAND "" - LOG_DOWNLOAD ON -) diff --git a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000014439.jpg b/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000014439.jpg deleted file mode 100644 index 0abbdab06eb5950b93908cc91adfa640e8a3ac78..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000014439.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000087038.jpg b/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000087038.jpg deleted file mode 100644 index 9f77f5d5f057b6f92dc096da704ecb8dee99bdf5..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000087038.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000570688.jpg b/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000570688.jpg deleted file mode 100644 index cb304bd56c4010c08611a30dcca58ea9140cea54..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/inference/images/detection_rcnn/000000570688.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.cpp b/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.cpp deleted file mode 100644 index ba07e3b6c7fb2152bd7825950a3cd94769f36adc..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.cpp +++ /dev/null @@ -1,383 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "detection_predictor.h" -#include -#include -#include -#include "utils/detection_result.pb.h" - -namespace PaddleSolution { - /* lod_buffer: every item in lod_buffer is an image matrix after preprocessing - * input_buffer: same data with lod_buffer after flattening to 1-D vector and padding, needed to be empty before using this function - */ - void padding_minibatch(const std::vector> &lod_buffer, std::vector &input_buffer, - std::vector &resize_heights, std::vector &resize_widths, int channels, int coarsest_stride = 1) { - int batch_size = lod_buffer.size(); - int max_h = -1; - int max_w = -1; - for(int i = 0; i < batch_size; ++i) { - max_h = (max_h > resize_heights[i])? max_h:resize_heights[i]; - max_w = (max_w > resize_widths[i])? max_w:resize_widths[i]; - } - max_h = static_cast(ceil(static_cast(max_h) / static_cast(coarsest_stride)) * coarsest_stride); - max_w = static_cast(ceil(static_cast(max_w) / static_cast(coarsest_stride)) * coarsest_stride); - std::cout << "max_w: " << max_w << " max_h: " << max_h << std::endl; - input_buffer.insert(input_buffer.end(), batch_size * channels * max_h * max_w, 0); - // flatten tensor and padding - for(int i = 0; i < lod_buffer.size(); ++i) { - float *input_buffer_ptr = input_buffer.data() + i * channels * max_h * max_w; - const float *lod_ptr = lod_buffer[i].data(); - for(int c = 0; c < channels; ++c) { - for(int h = 0; h < resize_heights[i]; ++h) { - memcpy(input_buffer_ptr, lod_ptr, resize_widths[i] * sizeof(float)); - lod_ptr += resize_widths[i]; - input_buffer_ptr += max_w; - } - input_buffer_ptr += (max_h - resize_heights[i]) * max_w; - } - } - // change resize w, h - for(int i = 0; i < batch_size; ++i){ - resize_widths[i] = max_w; - resize_heights[i] = max_h; - } - } - - void output_detection_result(const float* out_addr, const std::vector> &lod_vector, const std::vector &imgs_batch){ - for(int i = 0; i < lod_vector[0].size() - 1; ++i) { - DetectionResult detection_result; - detection_result.set_filename(imgs_batch[i]); - std::cout << imgs_batch[i] << ":" << std::endl; - for (int j = lod_vector[0][i]; j < lod_vector[0][i+1]; ++j) { - DetectionBox *box_ptr = detection_result.add_detection_boxes(); - box_ptr->set_class_(static_cast(round(out_addr[0 + j * 6]))); - box_ptr->set_score(out_addr[1 + j * 6]); - box_ptr->set_left_top_x(out_addr[2 + j * 6]); - box_ptr->set_left_top_y(out_addr[3 + j * 6]); - box_ptr->set_right_bottom_x(out_addr[4 + j * 6]); - box_ptr->set_right_bottom_y(out_addr[5 + j * 6]); - printf("Class %d, score = %f, left top = [%f, %f], right bottom = [%f, %f]\n", - static_cast(round(out_addr[0 + j * 6])), out_addr[1 + j * 6], out_addr[2 + j * 6], - out_addr[3 + j * 6], out_addr[4 + j * 6], out_addr[5 + j * 6]); - } - printf("\n"); - std::ofstream output(imgs_batch[i] + ".pb", std::ios::out | std::ios::trunc | std::ios::binary); - detection_result.SerializeToOstream(&output); - output.close(); - } - } - - int DetectionPredictor::init(const std::string& conf) { - if (!_model_config.load_config(conf)) { - LOG(FATAL) << "Fail to load config file: [" << conf << "]"; - return -1; - } - _preprocessor = PaddleSolution::create_processor(conf); - if (_preprocessor == nullptr) { - LOG(FATAL) << "Failed to create_processor"; - return -1; - } - - bool use_gpu = _model_config._use_gpu; - const auto& model_dir = _model_config._model_path; - const auto& model_filename = _model_config._model_file_name; - const auto& params_filename = _model_config._param_file_name; - - // load paddle model file - if (_model_config._predictor_mode == "NATIVE") { - paddle::NativeConfig config; - auto prog_file = utils::path_join(model_dir, model_filename); - auto param_file = utils::path_join(model_dir, params_filename); - config.prog_file = prog_file; - config.param_file = param_file; - config.fraction_of_gpu_memory = 0; - config.use_gpu = use_gpu; - config.device = 0; - _main_predictor = paddle::CreatePaddlePredictor(config); - } else if (_model_config._predictor_mode == "ANALYSIS") { - paddle::AnalysisConfig config; - if (use_gpu) { - config.EnableUseGpu(100, 0); - } - auto prog_file = utils::path_join(model_dir, model_filename); - auto param_file = utils::path_join(model_dir, params_filename); - config.SetModel(prog_file, param_file); - config.SwitchUseFeedFetchOps(false); - config.SwitchSpecifyInputNames(true); - config.EnableMemoryOptim(); - _main_predictor = paddle::CreatePaddlePredictor(config); - } else { - return -1; - } - return 0; - - } - - int DetectionPredictor::predict(const std::vector& imgs) { - if (_model_config._predictor_mode == "NATIVE") { - return native_predict(imgs); - } - else if (_model_config._predictor_mode == "ANALYSIS") { - return analysis_predict(imgs); - } - return -1; - } - - int DetectionPredictor::native_predict(const std::vector& imgs) { - int config_batch_size = _model_config._batch_size; - - int channels = _model_config._channels; - int eval_width = _model_config._resize[0]; - int eval_height = _model_config._resize[1]; - std::size_t total_size = imgs.size(); - int default_batch_size = std::min(config_batch_size, (int)total_size); - int batch = total_size / default_batch_size + ((total_size % default_batch_size) != 0); - int batch_buffer_size = default_batch_size * channels * eval_width * eval_height; - - auto& input_buffer = _buffer; - auto& imgs_batch = _imgs_batch; - float sr; - // DetectionResultsContainer result_container; - for (int u = 0; u < batch; ++u) { - int batch_size = default_batch_size; - if (u == (batch - 1) && (total_size % default_batch_size)) { - batch_size = total_size % default_batch_size; - } - - int real_buffer_size = batch_size * channels * eval_width * eval_height; - std::vector feeds; - input_buffer.clear(); - imgs_batch.clear(); - for (int i = 0; i < batch_size; ++i) { - int idx = u * default_batch_size + i; - imgs_batch.push_back(imgs[idx]); - } - std::vector ori_widths; - std::vector ori_heights; - std::vector resize_widths; - std::vector resize_heights; - std::vector scale_ratios; - ori_widths.resize(batch_size); - ori_heights.resize(batch_size); - resize_widths.resize(batch_size); - resize_heights.resize(batch_size); - scale_ratios.resize(batch_size); - std::vector> lod_buffer(batch_size); - if (!_preprocessor->batch_process(imgs_batch, lod_buffer, ori_widths.data(), ori_heights.data(), - resize_widths.data(), resize_heights.data(), scale_ratios.data())) { - return -1; - } - // flatten and padding - padding_minibatch(lod_buffer, input_buffer, resize_heights, resize_widths, channels, _model_config._coarsest_stride); - paddle::PaddleTensor im_tensor, im_size_tensor, im_info_tensor; - - im_tensor.name = "image"; - im_tensor.shape = std::vector({ batch_size, channels, resize_heights[0], resize_widths[0] }); - im_tensor.data.Reset(input_buffer.data(), input_buffer.size() * sizeof(float)); - im_tensor.dtype = paddle::PaddleDType::FLOAT32; - - std::vector image_infos; - for(int i = 0; i < batch_size; ++i) { - image_infos.push_back(resize_heights[i]); - image_infos.push_back(resize_widths[i]); - image_infos.push_back(scale_ratios[i]); - } - im_info_tensor.name = "info"; - im_info_tensor.shape = std::vector({batch_size, 3}); - im_info_tensor.data.Reset(image_infos.data(), batch_size * 3 * sizeof(float)); - im_info_tensor.dtype = paddle::PaddleDType::FLOAT32; - - std::vector image_size; - for(int i = 0; i < batch_size; ++i) { - image_size.push_back(ori_heights[i]); - image_size.push_back(ori_widths[i]); - } - - std::vector image_size_f; - for(int i = 0; i < batch_size; ++i) { - image_size_f.push_back(ori_heights[i]); - image_size_f.push_back(ori_widths[i]); - image_size_f.push_back(1.0); - } - - int feeds_size = _model_config._feeds_size; - im_size_tensor.name = "im_size"; - if(feeds_size == 2) { - im_size_tensor.shape = std::vector({ batch_size, 2}); - im_size_tensor.data.Reset(image_size.data(), batch_size * 2 * sizeof(int)); - im_size_tensor.dtype = paddle::PaddleDType::INT32; - } - else if(feeds_size == 3) { - im_size_tensor.shape = std::vector({ batch_size, 3}); - im_size_tensor.data.Reset(image_size_f.data(), batch_size * 3 * sizeof(float)); - im_size_tensor.dtype = paddle::PaddleDType::FLOAT32; - } - std::cout << "Feed size = " << feeds_size << std::endl; - feeds.push_back(im_tensor); - if(_model_config._feeds_size > 2) { - feeds.push_back(im_info_tensor); - } - feeds.push_back(im_size_tensor); - _outputs.clear(); - - auto t1 = std::chrono::high_resolution_clock::now(); - if (!_main_predictor->Run(feeds, &_outputs, batch_size)) { - LOG(ERROR) << "Failed: NativePredictor->Run() return false at batch: " << u; - continue; - } - auto t2 = std::chrono::high_resolution_clock::now(); - auto duration = std::chrono::duration_cast(t2 - t1).count(); - std::cout << "runtime = " << duration << std::endl; - std::cout << "Number of outputs:" << _outputs.size() << std::endl; - int out_num = 1; - // print shape of first output tensor for debugging - std::cout << "size of outputs[" << 0 << "]: ("; - for (int j = 0; j < _outputs[0].shape.size(); ++j) { - out_num *= _outputs[0].shape[j]; - std::cout << _outputs[0].shape[j] << ","; - } - std::cout << ")" << std::endl; - - // const size_t nums = _outputs.front().data.length() / sizeof(float); - // if (out_num % batch_size != 0 || out_num != nums) { - // LOG(ERROR) << "outputs data size mismatch with shape size."; - // return -1; - // } - float* out_addr = (float *)(_outputs[0].data.data()); - output_detection_result(out_addr, _outputs[0].lod, imgs_batch); - } - return 0; - } - - int DetectionPredictor::analysis_predict(const std::vector& imgs) { - - int config_batch_size = _model_config._batch_size; - int channels = _model_config._channels; - int eval_width = _model_config._resize[0]; - int eval_height = _model_config._resize[1]; - auto total_size = imgs.size(); - int default_batch_size = std::min(config_batch_size, (int)total_size); - int batch = total_size / default_batch_size + ((total_size % default_batch_size) != 0); - int batch_buffer_size = default_batch_size * channels * eval_width * eval_height; - - auto& input_buffer = _buffer; - auto& imgs_batch = _imgs_batch; - //DetectionResultsContainer result_container; - for (int u = 0; u < batch; ++u) { - int batch_size = default_batch_size; - if (u == (batch - 1) && (total_size % default_batch_size)) { - batch_size = total_size % default_batch_size; - } - - int real_buffer_size = batch_size * channels * eval_width * eval_height; - std::vector feeds; - //input_buffer.resize(real_buffer_size); - input_buffer.clear(); - imgs_batch.clear(); - for (int i = 0; i < batch_size; ++i) { - int idx = u * default_batch_size + i; - imgs_batch.push_back(imgs[idx]); - } - - std::vector ori_widths; - std::vector ori_heights; - std::vector resize_widths; - std::vector resize_heights; - std::vector scale_ratios; - ori_widths.resize(batch_size); - ori_heights.resize(batch_size); - resize_widths.resize(batch_size); - resize_heights.resize(batch_size); - scale_ratios.resize(batch_size); - - std::vector> lod_buffer(batch_size); - if (!_preprocessor->batch_process(imgs_batch, lod_buffer, ori_widths.data(), ori_heights.data(), - resize_widths.data(), resize_heights.data(), scale_ratios.data())){ - std::cout << "Failed to preprocess!" << std::endl; - return -1; - } - - //flatten tensor - padding_minibatch(lod_buffer, input_buffer, resize_heights, resize_widths, channels, _model_config._coarsest_stride); - - std::vector input_names = _main_predictor->GetInputNames(); - auto im_tensor = _main_predictor->GetInputTensor(input_names.front()); - im_tensor->Reshape({ batch_size, channels, resize_heights[0], resize_widths[0] }); - im_tensor->copy_from_cpu(input_buffer.data()); - - if(input_names.size() > 2){ - std::vector image_infos; - for(int i = 0; i < batch_size; ++i) { - image_infos.push_back(resize_heights[i]); - image_infos.push_back(resize_widths[i]); - image_infos.push_back(scale_ratios[i]); - } - auto im_info_tensor = _main_predictor->GetInputTensor(input_names[1]); - im_info_tensor->Reshape({batch_size, 3}); - im_info_tensor->copy_from_cpu(image_infos.data()); - } - - std::vector image_size; - for(int i = 0; i < batch_size; ++i) { - image_size.push_back(ori_heights[i]); - image_size.push_back(ori_widths[i]); - } - std::vector image_size_f; - for(int i = 0; i < batch_size; ++i) { - image_size_f.push_back(static_cast(ori_heights[i])); - image_size_f.push_back(static_cast(ori_widths[i])); - image_size_f.push_back(1.0); - } - - auto im_size_tensor = _main_predictor->GetInputTensor(input_names.back()); - if(input_names.size() > 2) { - im_size_tensor->Reshape({batch_size, 3}); - im_size_tensor->copy_from_cpu(image_size_f.data()); - } - else{ - im_size_tensor->Reshape({batch_size, 2}); - im_size_tensor->copy_from_cpu(image_size.data()); - } - - - auto t1 = std::chrono::high_resolution_clock::now(); - _main_predictor->ZeroCopyRun(); - auto t2 = std::chrono::high_resolution_clock::now(); - auto duration = std::chrono::duration_cast(t2 - t1).count(); - std::cout << "runtime = " << duration << std::endl; - - auto output_names = _main_predictor->GetOutputNames(); - auto output_t = _main_predictor->GetOutputTensor(output_names[0]); - std::vector out_data; - std::vector output_shape = output_t->shape(); - - int out_num = 1; - std::cout << "size of outputs[" << 0 << "]: ("; - for (int j = 0; j < output_shape.size(); ++j) { - out_num *= output_shape[j]; - std::cout << output_shape[j] << ","; - } - std::cout << ")" << std::endl; - - out_data.resize(out_num); - output_t->copy_to_cpu(out_data.data()); - - float* out_addr = (float *)(out_data.data()); - auto lod_vector = output_t->lod(); - output_detection_result(out_addr, lod_vector, imgs_batch); - } - return 0; - } -} diff --git a/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.h b/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.h deleted file mode 100644 index 3bc4cfdd793291d7d89342c7fbccfdd558d1f004..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/predictor/detection_predictor.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace PaddleSolution { - class DetectionPredictor { - public: - // init a predictor with a yaml config file - int init(const std::string& conf); - // predict api - int predict(const std::vector& imgs); - - private: - int native_predict(const std::vector& imgs); - int analysis_predict(const std::vector& imgs); - private: - std::vector _buffer; - std::vector _imgs_batch; - std::vector _outputs; - - PaddleSolution::PaddleModelConfigPaser _model_config; - std::shared_ptr _preprocessor; - std::unique_ptr _main_predictor; - }; -} diff --git a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.cpp b/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.cpp deleted file mode 100644 index dbe7bcf624b649c02297bddd593d173b57550f17..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include - -#include "preprocessor.h" -#include "preprocessor_detection.h" - -namespace PaddleSolution { - - std::shared_ptr create_processor(const std::string& conf_file) { - - auto config = std::make_shared(); - if (!config->load_config(conf_file)) { - LOG(FATAL) << "fail to laod conf file [" << conf_file << "]"; - return nullptr; - } - - if (config->_pre_processor == "DetectionPreProcessor") { - auto p = std::make_shared(); - if (!p->init(config)) { - return nullptr; - } - return p; - } - - - LOG(FATAL) << "unknown processor_name [" << config->_pre_processor << "]"; - - return nullptr; - } -} diff --git a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.h b/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.h deleted file mode 100644 index a3fb2e029c8acf92010a258dd2824b85a0f2f90f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once -#include -#include -#include - -#include -#include -#include - -#include "utils/conf_parser.h" - -namespace PaddleSolution { - -class ImagePreProcessor { -protected: - ImagePreProcessor() {}; - -public: - virtual ~ImagePreProcessor() {} - - virtual bool single_process(const std::string& fname, float* data, int* ori_w, int* ori_h) { - return true; - } - - virtual bool batch_process(const std::vector& imgs, float* data, int* ori_w, int* ori_h) { - return true; - } - - virtual bool single_process(const std::string& fname, float* data) { - return true; - } - - virtual bool batch_process(const std::vector& imgs, float* data) { - return true; - } - - virtual bool single_process(const std::string& fname, std::vector &data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio) { - return true; - } - - virtual bool batch_process(const std::vector& imgs, std::vector> &data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio) { - return true; - } - -}; // end of class ImagePreProcessor - -std::shared_ptr create_processor(const std::string &config_file); - -} // end of namespace paddle_solution - diff --git a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.cpp b/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.cpp deleted file mode 100644 index ba8fd0e328c5a859e2d4b88adba0e56e5e3a7476..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.cpp +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include -#include - -#include - -#include "preprocessor_detection.h" -#include "utils/utils.h" - -namespace PaddleSolution { - bool DetectionPreProcessor::single_process(const std::string& fname, std::vector &vec_data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio) { - cv::Mat im1 = cv::imread(fname, -1); - cv::Mat im; - if(_config->_feeds_size == 3) { // faster rcnn - im1.convertTo(im, CV_32FC3, 1/255.0); - } - else if(_config->_feeds_size == 2){ //yolo v3 - im = im1; - } - if (im.data == nullptr || im.empty()) { - LOG(ERROR) << "Failed to open image: " << fname; - return false; - } - - int channels = im.channels(); - if (channels == 1) { - cv::cvtColor(im, im, cv::COLOR_GRAY2BGR); - } - channels = im.channels(); - if (channels != 3 && channels != 4) { - LOG(ERROR) << "Only support rgb(gray) and rgba image."; - return false; - } - *ori_w = im.cols; - *ori_h = im.rows; - cv::cvtColor(im, im, cv::COLOR_BGR2RGB); - //channels = im.channels(); - - //resize - int rw = im.cols; - int rh = im.rows; - float im_scale_ratio; - utils::scaling(_config->_resize_type, rw, rh, _config->_resize[0], _config->_resize[1], _config->_target_short_size, _config->_resize_max_size, im_scale_ratio); - cv::Size resize_size(rw, rh); - *resize_w = rw; - *resize_h = rh; - *scale_ratio = im_scale_ratio; - if (*ori_h != rh || *ori_w != rw) { - cv::Mat im_temp; - if(_config->_resize_type == utils::SCALE_TYPE::UNPADDING) { - cv::resize(im, im_temp, resize_size, 0, 0, cv::INTER_LINEAR); - } - else if(_config->_resize_type == utils::SCALE_TYPE::RANGE_SCALING) { - cv::resize(im, im_temp, cv::Size(), im_scale_ratio, im_scale_ratio, cv::INTER_LINEAR); - } - im = im_temp; - } - - vec_data.resize(channels * rw * rh); - float *data = vec_data.data(); - - float* pmean = _config->_mean.data(); - float* pscale = _config->_std.data(); - for (int h = 0; h < rh; ++h) { - const uchar* uptr = im.ptr(h); - const float* fptr = im.ptr(h); - int im_index = 0; - for (int w = 0; w < rw; ++w) { - for (int c = 0; c < channels; ++c) { - int top_index = (c * rh + h) * rw + w; - float pixel;// = static_cast(fptr[im_index]);// / 255.0; - if(_config->_feeds_size == 2){ //yolo v3 - pixel = static_cast(uptr[im_index++]) / 255.0; - } - else if(_config->_feeds_size == 3){ - pixel = fptr[im_index++]; - } - pixel = (pixel - pmean[c]) / pscale[c]; - data[top_index] = pixel; - } - } - } - return true; - } - - bool DetectionPreProcessor::batch_process(const std::vector& imgs, std::vector> &data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio) { - auto ic = _config->_channels; - auto iw = _config->_resize[0]; - auto ih = _config->_resize[1]; - std::vector threads; - for (int i = 0; i < imgs.size(); ++i) { - std::string path = imgs[i]; - int* width = &ori_w[i]; - int* height = &ori_h[i]; - int* resize_width = &resize_w[i]; - int* resize_height = &resize_h[i]; - float* sr = &scale_ratio[i]; - threads.emplace_back([this, &data, i, path, width, height, resize_width, resize_height, sr] { - std::vector buffer; - single_process(path, buffer, width, height, resize_width, resize_height, sr); - data[i] = buffer; - }); - } - for (auto& t : threads) { - if (t.joinable()) { - t.join(); - } - } - return true; - } - - bool DetectionPreProcessor::init(std::shared_ptr config) { - _config = config; - return true; - } - -} diff --git a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.h b/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.h deleted file mode 100644 index 731329040423756151a2590d3ed0f46b2800191d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/preprocessor/preprocessor_detection.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include "preprocessor.h" - -namespace PaddleSolution { - - class DetectionPreProcessor : public ImagePreProcessor { - - public: - DetectionPreProcessor() : _config(nullptr) { - }; - - bool init(std::shared_ptr config); - - bool single_process(const std::string& fname, std::vector &data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio); - - bool batch_process(const std::vector& imgs, std::vector> &data, int* ori_w, int* ori_h, int* resize_w, int* resize_h, float* scale_ratio); - private: - std::shared_ptr _config; - }; - -} diff --git a/PaddleCV/PaddleDetection/inference/tools/coco17.json b/PaddleCV/PaddleDetection/inference/tools/coco17.json deleted file mode 100644 index d3bbbaad038534baacf6f86f78db5d32bce16238..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/tools/coco17.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "0" : "background", - "1" : "person", - "2" : "bicycle", - "3" : "car", - "4" : "motorcycle", - "5" : "airplane", - "6" : "bus", - "7" : "train", - "8" : "truck", - "9" : "boat", - "10" : "traffic light", - "11" : "fire hydrant", - "12" : "stop sign", - "13" : "parking meter", - "14" : "bench", - "15" : "bird", - "16" : "cat", - "17" : "dog", - "18" : "horse", - "19" : "sheep", - "20" : "cow", - "21" : "elephant", - "22" : "bear", - "23" : "zebra", - "24" : "giraffe", - "25" : "backpack", - "26" : "umbrella", - "27" : "handbag", - "28" : "tie", - "29" : "suitcase", - "30" : "frisbee", - "31" : "skis", - "32" : "snowboard", - "33" : "sports ball", - "34" : "kite", - "35" : "baseball bat", - "36" : "baseball glove", - "37" : "skateboard", - "38" : "surfboard", - "39" : "tennis racket", - "40" : "bottle", - "41" : "wine glass", - "42" : "cup", - "43" : "fork", - "44" : "knife", - "45" : "spoon", - "46" : "bowl", - "47" : "banana", - "48" : "apple", - "49" : "sandwich", - "50" : "orange", - "51" : "broccoli", - "52" : "carrot", - "53" : "hot dog", - "54" : "pizza", - "55" : "donut", - "56" : "cake", - "57" : "chair", - "58" : "couch", - "59" : "potted plant", - "60" : "bed", - "61" : "dining table", - "62" : "toilet", - "63" : "tv", - "64" : "laptop", - "65" : "mouse", - "66" : "remote", - "67" : "keyboard", - "68" : "cell phone", - "69" : "microwave", - "70" : "oven", - "71" : "toaster", - "72" : "sink", - "73" : "refrigerator", - "74" : "book", - "75" : "clock", - "76" : "vase", - "77" : "scissors", - "78" : "teddy bear", - "79" : "hair drier", - "80" : "toothbrush" -} diff --git a/PaddleCV/PaddleDetection/inference/tools/detection_result_pb2.py b/PaddleCV/PaddleDetection/inference/tools/detection_result_pb2.py deleted file mode 100644 index 3dc66f368b6fea72f70d6a5685b19f23e8021d51..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/tools/detection_result_pb2.py +++ /dev/null @@ -1,151 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: detection_result.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='detection_result.proto', - package='PaddleSolution', - syntax='proto2', - serialized_pb=_b('\n\x16\x64\x65tection_result.proto\x12\x0ePaddleSolution\"\x84\x01\n\x0c\x44\x65tectionBox\x12\r\n\x05\x63lass\x18\x01 \x01(\x05\x12\r\n\x05score\x18\x02 \x01(\x02\x12\x12\n\nleft_top_x\x18\x03 \x01(\x02\x12\x12\n\nleft_top_y\x18\x04 \x01(\x02\x12\x16\n\x0eright_bottom_x\x18\x05 \x01(\x02\x12\x16\n\x0eright_bottom_y\x18\x06 \x01(\x02\"Z\n\x0f\x44\x65tectionResult\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x35\n\x0f\x64\x65tection_boxes\x18\x02 \x03(\x0b\x32\x1c.PaddleSolution.DetectionBox') -) -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - - - -_DETECTIONBOX = _descriptor.Descriptor( - name='DetectionBox', - full_name='PaddleSolution.DetectionBox', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='class', full_name='PaddleSolution.DetectionBox.class', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='score', full_name='PaddleSolution.DetectionBox.score', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='left_top_x', full_name='PaddleSolution.DetectionBox.left_top_x', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='left_top_y', full_name='PaddleSolution.DetectionBox.left_top_y', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='right_bottom_x', full_name='PaddleSolution.DetectionBox.right_bottom_x', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='right_bottom_y', full_name='PaddleSolution.DetectionBox.right_bottom_y', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=43, - serialized_end=175, -) - - -_DETECTIONRESULT = _descriptor.Descriptor( - name='DetectionResult', - full_name='PaddleSolution.DetectionResult', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='filename', full_name='PaddleSolution.DetectionResult.filename', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='detection_boxes', full_name='PaddleSolution.DetectionResult.detection_boxes', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=177, - serialized_end=267, -) - -_DETECTIONRESULT.fields_by_name['detection_boxes'].message_type = _DETECTIONBOX -DESCRIPTOR.message_types_by_name['DetectionBox'] = _DETECTIONBOX -DESCRIPTOR.message_types_by_name['DetectionResult'] = _DETECTIONRESULT - -DetectionBox = _reflection.GeneratedProtocolMessageType('DetectionBox', (_message.Message,), dict( - DESCRIPTOR = _DETECTIONBOX, - __module__ = 'detection_result_pb2' - # @@protoc_insertion_point(class_scope:PaddleSolution.DetectionBox) - )) -_sym_db.RegisterMessage(DetectionBox) - -DetectionResult = _reflection.GeneratedProtocolMessageType('DetectionResult', (_message.Message,), dict( - DESCRIPTOR = _DETECTIONRESULT, - __module__ = 'detection_result_pb2' - # @@protoc_insertion_point(class_scope:PaddleSolution.DetectionResult) - )) -_sym_db.RegisterMessage(DetectionResult) - - -# @@protoc_insertion_point(module_scope) diff --git a/PaddleCV/PaddleDetection/inference/tools/vis.py b/PaddleCV/PaddleDetection/inference/tools/vis.py deleted file mode 100644 index 1ca13bfbaf48669a78bf94344d378c37fe071f1a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/tools/vis.py +++ /dev/null @@ -1,104 +0,0 @@ -# coding: utf-8 -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import detection_result_pb2 -import cv2 -import sys -import gflags -import numpy as np -import json -from PIL import Image, ImageDraw, ImageFont - -Flags = gflags.FLAGS -gflags.DEFINE_string('img_path', 'abc', 'image path') -gflags.DEFINE_string('img_result_path', 'def', 'image result path') -gflags.DEFINE_float('threshold', 0.0, 'threshold of score') -gflags.DEFINE_string('c2l_path', 'ghk', 'class to label path') - -def colormap(rgb=False): - """ - Get colormap - """ - color_list = np.array([ - 0.000, 0.447, 0.741, 0.850, 0.325, 0.098, 0.929, 0.694, 0.125, 0.494, - 0.184, 0.556, 0.466, 0.674, 0.188, 0.301, 0.745, 0.933, 0.635, 0.078, - 0.184, 0.300, 0.300, 0.300, 0.600, 0.600, 0.600, 1.000, 0.000, 0.000, - 1.000, 0.500, 0.000, 0.749, 0.749, 0.000, 0.000, 1.000, 0.000, 0.000, - 0.000, 1.000, 0.667, 0.000, 1.000, 0.333, 0.333, 0.000, 0.333, 0.667, - 0.000, 0.333, 1.000, 0.000, 0.667, 0.333, 0.000, 0.667, 0.667, 0.000, - 0.667, 1.000, 0.000, 1.000, 0.333, 0.000, 1.000, 0.667, 0.000, 1.000, - 1.000, 0.000, 0.000, 0.333, 0.500, 0.000, 0.667, 0.500, 0.000, 1.000, - 0.500, 0.333, 0.000, 0.500, 0.333, 0.333, 0.500, 0.333, 0.667, 0.500, - 0.333, 1.000, 0.500, 0.667, 0.000, 0.500, 0.667, 0.333, 0.500, 0.667, - 0.667, 0.500, 0.667, 1.000, 0.500, 1.000, 0.000, 0.500, 1.000, 0.333, - 0.500, 1.000, 0.667, 0.500, 1.000, 1.000, 0.500, 0.000, 0.333, 1.000, - 0.000, 0.667, 1.000, 0.000, 1.000, 1.000, 0.333, 0.000, 1.000, 0.333, - 0.333, 1.000, 0.333, 0.667, 1.000, 0.333, 1.000, 1.000, 0.667, 0.000, - 1.000, 0.667, 0.333, 1.000, 0.667, 0.667, 1.000, 0.667, 1.000, 1.000, - 1.000, 0.000, 1.000, 1.000, 0.333, 1.000, 1.000, 0.667, 1.000, 0.167, - 0.000, 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, - 0.000, 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, - 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, - 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, 0.000, - 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, 0.833, - 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.143, 0.143, 0.143, 0.286, - 0.286, 0.286, 0.429, 0.429, 0.429, 0.571, 0.571, 0.571, 0.714, 0.714, - 0.714, 0.857, 0.857, 0.857, 1.000, 1.000, 1.000 - ]).astype(np.float32) - color_list = color_list.reshape((-1, 3)) * 255 - if not rgb: - color_list = color_list[:, ::-1] - return color_list - -if __name__ == "__main__": - if len(sys.argv) != 5: - print("Usage: python vis.py --img_path=/path/to/image --img_result_path=/path/to/image_result.pb --threshold=0.1 --c2l_path=/path/to/class2label.json") - else: - Flags(sys.argv) - color_list = colormap(rgb=True) - text_thickness = 1 - text_scale = 0.3 - with open(Flags.img_result_path, "rb") as f: - detection_result = detection_result_pb2.DetectionResult() - detection_result.ParseFromString(f.read()) - img = cv2.imread(Flags.img_path) - img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) - class2LabelMap = dict() - with open(Flags.c2l_path, "r", encoding="utf-8") as json_f: - class2LabelMap = json.load(json_f) - for box in detection_result.detection_boxes: - if box.score >= Flags.threshold: - box_class = getattr(box, 'class') - text_class_score_str = "%s %.2f" % (class2LabelMap.get(str(box_class)), box.score) - text_point = (int(box.left_top_x), int(box.left_top_y)) - - ptLeftTop = (int(box.left_top_x), int(box.left_top_y)) - ptRightBottom = (int(box.right_bottom_x), int(box.right_bottom_y)) - box_thickness = 1 - color = tuple([int(c) for c in color_list[box_class]]) - cv2.rectangle(img, ptLeftTop, ptRightBottom, color, box_thickness, 8) - if text_point[1] < 0: - text_point = (int(box.left_top_x), int(box.right_bottom_y)) - WHITE = (255, 255, 255) - font = cv2.FONT_HERSHEY_SIMPLEX - text_size = cv2.getTextSize(text_class_score_str, font, text_scale, text_thickness) - - text_box_left_top = (text_point[0], text_point[1] - text_size[0][1]) - text_box_right_bottom = (text_point[0] + text_size[0][0], text_point[1]) - - cv2.rectangle(img, text_box_left_top, text_box_right_bottom, color, -1, 8) - cv2.putText(img, text_class_score_str, text_point, font, text_scale, WHITE, text_thickness) - img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) - cv2.imwrite(Flags.img_path + ".png", img) diff --git a/PaddleCV/PaddleDetection/inference/utils/conf_parser.h b/PaddleCV/PaddleDetection/inference/utils/conf_parser.h deleted file mode 100644 index 21944d032b2c24cdb584dc076a696560d4665ea1..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/utils/conf_parser.h +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once -#include -#include -#include -#include - -#include -namespace PaddleSolution { - - class PaddleModelConfigPaser { - std::map _scaling_map; - public: - PaddleModelConfigPaser() - :_class_num(0), - _channels(0), - _use_gpu(0), - _batch_size(1), - _target_short_size(0), - _model_file_name("__model__"), - _param_file_name("__params__"), - _scaling_map{{"UNPADDING", 0}, - {"RANGE_SCALING",1}}, - _feeds_size(1), - _coarsest_stride(1) - { - } - ~PaddleModelConfigPaser() { - } - - void reset() { - _crop_size.clear(); - _resize.clear(); - _mean.clear(); - _std.clear(); - _img_type.clear(); - _class_num = 0; - _channels = 0; - _use_gpu = 0; - _target_short_size = 0; - _batch_size = 1; - _model_file_name = "__model__"; - _model_path = "./"; - _param_file_name="__params__"; - _resize_type = 0; - _resize_max_size = 0; - _feeds_size = 1; - _coarsest_stride = 1; - } - - std::string process_parenthesis(const std::string& str) { - if (str.size() < 2) { - return str; - } - std::string nstr(str); - if (str[0] == '(' && str.back() == ')') { - nstr[0] = '['; - nstr[str.size() - 1] = ']'; - } - return nstr; - } - - template - std::vector parse_str_to_vec(const std::string& str) { - std::vector data; - auto node = YAML::Load(str); - for (const auto& item : node) { - data.push_back(item.as()); - } - return data; - } - - bool load_config(const std::string& conf_file) { - - reset(); - - YAML::Node config = YAML::LoadFile(conf_file); - // 1. get resize - auto str = config["DEPLOY"]["EVAL_CROP_SIZE"].as(); - _resize = parse_str_to_vec(process_parenthesis(str)); - - // 0. get crop_size - if(config["DEPLOY"]["CROP_SIZE"].IsDefined()) { - auto crop_str = config["DEPLOY"]["CROP_SIZE"].as(); - _crop_size = parse_str_to_vec(process_parenthesis(crop_str)); - } - else { - _crop_size = _resize; - } - - // 2. get mean - for (const auto& item : config["DEPLOY"]["MEAN"]) { - _mean.push_back(item.as()); - } - - // 3. get std - for (const auto& item : config["DEPLOY"]["STD"]) { - _std.push_back(item.as()); - } - - // 4. get image type - _img_type = config["DEPLOY"]["IMAGE_TYPE"].as(); - // 5. get class number - _class_num = config["DEPLOY"]["NUM_CLASSES"].as(); - // 7. set model path - _model_path = config["DEPLOY"]["MODEL_PATH"].as(); - // 8. get model file_name - _model_file_name = config["DEPLOY"]["MODEL_FILENAME"].as(); - // 9. get model param file name - _param_file_name = config["DEPLOY"]["PARAMS_FILENAME"].as(); - // 10. get pre_processor - _pre_processor = config["DEPLOY"]["PRE_PROCESSOR"].as(); - // 11. use_gpu - _use_gpu = config["DEPLOY"]["USE_GPU"].as(); - // 12. predictor_mode - _predictor_mode = config["DEPLOY"]["PREDICTOR_MODE"].as(); - // 13. batch_size - _batch_size = config["DEPLOY"]["BATCH_SIZE"].as(); - // 14. channels - _channels = config["DEPLOY"]["CHANNELS"].as(); - // 15. target_short_size - if(config["DEPLOY"]["TARGET_SHORT_SIZE"].IsDefined()) { - _target_short_size = config["DEPLOY"]["TARGET_SHORT_SIZE"].as(); - } - // 16.resize_type - if(config["DEPLOY"]["RESIZE_TYPE"].IsDefined() && - _scaling_map.find(config["DEPLOY"]["RESIZE_TYPE"].as()) != _scaling_map.end()) { - _resize_type = _scaling_map[config["DEPLOY"]["RESIZE_TYPE"].as()]; - } - else{ - _resize_type = 0; - } - // 17.resize_max_size - if(config["DEPLOY"]["RESIZE_MAX_SIZE"].IsDefined()) { - _resize_max_size = config["DEPLOY"]["RESIZE_MAX_SIZE"].as(); - } - // 18.feeds_size - if(config["DEPLOY"]["FEEDS_SIZE"].IsDefined()){ - _feeds_size = config["DEPLOY"]["FEEDS_SIZE"].as(); - } - // 19. coarsest_stride - if(config["DEPLOY"]["COARSEST_STRIDE"].IsDefined()) { - _coarsest_stride = config["DEPLOY"]["COARSEST_STRIDE"].as(); - } - return true; - } - - void debug() const { - - std::cout << "SCALE_RESIZE: (" << _resize[0] << ", " << _resize[1] << ")" << std::endl; - - std::cout << "MEAN: ["; - for (int i = 0; i < _mean.size(); ++i) { - if (i != _mean.size() - 1) { - std::cout << _mean[i] << ", "; - } else { - std::cout << _mean[i]; - } - } - std::cout << "]" << std::endl; - - std::cout << "STD: ["; - for (int i = 0; i < _std.size(); ++i) { - if (i != _std.size() - 1) { - std::cout << _std[i] << ", "; - } - else { - std::cout << _std[i]; - } - } - std::cout << "]" << std::endl; - std::cout << "DEPLOY.TARGET_SHORT_SIZE: " << _target_short_size << std::endl; - std::cout << "DEPLOY.IMAGE_TYPE: " << _img_type << std::endl; - std::cout << "DEPLOY.NUM_CLASSES: " << _class_num << std::endl; - std::cout << "DEPLOY.CHANNELS: " << _channels << std::endl; - std::cout << "DEPLOY.MODEL_PATH: " << _model_path << std::endl; - std::cout << "DEPLOY.MODEL_FILENAME: " << _model_file_name << std::endl; - std::cout << "DEPLOY.PARAMS_FILENAME: " << _param_file_name << std::endl; - std::cout << "DEPLOY.PRE_PROCESSOR: " << _pre_processor << std::endl; - std::cout << "DEPLOY.USE_GPU: " << _use_gpu << std::endl; - std::cout << "DEPLOY.PREDICTOR_MODE: " << _predictor_mode << std::endl; - std::cout << "DEPLOY.BATCH_SIZE: " << _batch_size << std::endl; - } - //DEPLOY.COARSEST_STRIDE - int _coarsest_stride; - // DEPLOY.FEEDS_SIZE - int _feeds_size; - // DEPLOY.RESIZE_TYPE 0:unpadding 1:rangescaling Default:0 - int _resize_type; - // DEPLOY.RESIZE_MAX_SIZE - int _resize_max_size; - // DEPLOY.CROP_SIZE - std::vector _crop_size; - // DEPLOY.SCALE_RESIZE - std::vector _resize; - // DEPLOY.MEAN - std::vector _mean; - // DEPLOY.STD - std::vector _std; - // DEPLOY.IMAGE_TYPE - std::string _img_type; - // DEPLOY.TARGET_SHORT_SIZE - int _target_short_size; - // DEPLOY.NUM_CLASSES - int _class_num; - // DEPLOY.CHANNELS - int _channels; - // DEPLOY.MODEL_PATH - std::string _model_path; - // DEPLOY.MODEL_FILENAME - std::string _model_file_name; - // DEPLOY.PARAMS_FILENAME - std::string _param_file_name; - // DEPLOY.PRE_PROCESSOR - std::string _pre_processor; - // DEPLOY.USE_GPU - int _use_gpu; - // DEPLOY.PREDICTOR_MODE - std::string _predictor_mode; - // DEPLOY.BATCH_SIZE - int _batch_size; - }; - -} diff --git a/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.cc b/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.cc deleted file mode 100644 index b5cce7317914cf93f99d0d4efa3aee763972cc4e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.cc +++ /dev/null @@ -1,1159 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: detection_result.proto - -#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION -#include "detection_result.pb.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) - -namespace PaddleSolution { - -namespace { - -const ::google::protobuf::Descriptor* DetectionBox_descriptor_ = NULL; -const ::google::protobuf::internal::GeneratedMessageReflection* - DetectionBox_reflection_ = NULL; -const ::google::protobuf::Descriptor* DetectionResult_descriptor_ = NULL; -const ::google::protobuf::internal::GeneratedMessageReflection* - DetectionResult_reflection_ = NULL; - -} // namespace - - -void protobuf_AssignDesc_detection_5fresult_2eproto() GOOGLE_ATTRIBUTE_COLD; -void protobuf_AssignDesc_detection_5fresult_2eproto() { - protobuf_AddDesc_detection_5fresult_2eproto(); - const ::google::protobuf::FileDescriptor* file = - ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName( - "detection_result.proto"); - GOOGLE_CHECK(file != NULL); - DetectionBox_descriptor_ = file->message_type(0); - static const int DetectionBox_offsets_[6] = { - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, class__), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, score_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, left_top_x_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, left_top_y_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, right_bottom_x_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, right_bottom_y_), - }; - DetectionBox_reflection_ = - ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection( - DetectionBox_descriptor_, - DetectionBox::internal_default_instance(), - DetectionBox_offsets_, - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, _has_bits_), - -1, - -1, - sizeof(DetectionBox), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionBox, _internal_metadata_)); - DetectionResult_descriptor_ = file->message_type(1); - static const int DetectionResult_offsets_[2] = { - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionResult, filename_), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionResult, detection_boxes_), - }; - DetectionResult_reflection_ = - ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection( - DetectionResult_descriptor_, - DetectionResult::internal_default_instance(), - DetectionResult_offsets_, - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionResult, _has_bits_), - -1, - -1, - sizeof(DetectionResult), - GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DetectionResult, _internal_metadata_)); -} - -namespace { - -GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_); -void protobuf_AssignDescriptorsOnce() { - ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_, - &protobuf_AssignDesc_detection_5fresult_2eproto); -} - -void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD; -void protobuf_RegisterTypes(const ::std::string&) { - protobuf_AssignDescriptorsOnce(); - ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( - DetectionBox_descriptor_, DetectionBox::internal_default_instance()); - ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage( - DetectionResult_descriptor_, DetectionResult::internal_default_instance()); -} - -} // namespace - -void protobuf_ShutdownFile_detection_5fresult_2eproto() { - DetectionBox_default_instance_.Shutdown(); - delete DetectionBox_reflection_; - DetectionResult_default_instance_.Shutdown(); - delete DetectionResult_reflection_; -} - -void protobuf_InitDefaults_detection_5fresult_2eproto_impl() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - DetectionBox_default_instance_.DefaultConstruct(); - ::google::protobuf::internal::GetEmptyString(); - DetectionResult_default_instance_.DefaultConstruct(); - DetectionBox_default_instance_.get_mutable()->InitAsDefaultInstance(); - DetectionResult_default_instance_.get_mutable()->InitAsDefaultInstance(); -} - -GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_InitDefaults_detection_5fresult_2eproto_once_); -void protobuf_InitDefaults_detection_5fresult_2eproto() { - ::google::protobuf::GoogleOnceInit(&protobuf_InitDefaults_detection_5fresult_2eproto_once_, - &protobuf_InitDefaults_detection_5fresult_2eproto_impl); -} -void protobuf_AddDesc_detection_5fresult_2eproto_impl() { - GOOGLE_PROTOBUF_VERIFY_VERSION; - - protobuf_InitDefaults_detection_5fresult_2eproto(); - ::google::protobuf::DescriptorPool::InternalAddGeneratedFile( - "\n\026detection_result.proto\022\016PaddleSolution" - "\"\204\001\n\014DetectionBox\022\r\n\005class\030\001 \001(\005\022\r\n\005scor" - "e\030\002 \001(\002\022\022\n\nleft_top_x\030\003 \001(\002\022\022\n\nleft_top_" - "y\030\004 \001(\002\022\026\n\016right_bottom_x\030\005 \001(\002\022\026\n\016right" - "_bottom_y\030\006 \001(\002\"Z\n\017DetectionResult\022\020\n\010fi" - "lename\030\001 \001(\t\0225\n\017detection_boxes\030\002 \003(\0132\034." - "PaddleSolution.DetectionBox", 267); - ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile( - "detection_result.proto", &protobuf_RegisterTypes); - ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_detection_5fresult_2eproto); -} - -GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AddDesc_detection_5fresult_2eproto_once_); -void protobuf_AddDesc_detection_5fresult_2eproto() { - ::google::protobuf::GoogleOnceInit(&protobuf_AddDesc_detection_5fresult_2eproto_once_, - &protobuf_AddDesc_detection_5fresult_2eproto_impl); -} -// Force AddDescriptors() to be called at static initialization time. -struct StaticDescriptorInitializer_detection_5fresult_2eproto { - StaticDescriptorInitializer_detection_5fresult_2eproto() { - protobuf_AddDesc_detection_5fresult_2eproto(); - } -} static_descriptor_initializer_detection_5fresult_2eproto_; - -namespace { - -static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD GOOGLE_ATTRIBUTE_NORETURN; -static void MergeFromFail(int line) { - ::google::protobuf::internal::MergeFromFail(__FILE__, line); -} - -} // namespace - - -// =================================================================== - -#if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int DetectionBox::kClassFieldNumber; -const int DetectionBox::kScoreFieldNumber; -const int DetectionBox::kLeftTopXFieldNumber; -const int DetectionBox::kLeftTopYFieldNumber; -const int DetectionBox::kRightBottomXFieldNumber; -const int DetectionBox::kRightBottomYFieldNumber; -#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 - -DetectionBox::DetectionBox() - : ::google::protobuf::Message(), _internal_metadata_(NULL) { - if (this != internal_default_instance()) protobuf_InitDefaults_detection_5fresult_2eproto(); - SharedCtor(); - // @@protoc_insertion_point(constructor:PaddleSolution.DetectionBox) -} - -void DetectionBox::InitAsDefaultInstance() { -} - -DetectionBox::DetectionBox(const DetectionBox& from) - : ::google::protobuf::Message(), - _internal_metadata_(NULL) { - SharedCtor(); - UnsafeMergeFrom(from); - // @@protoc_insertion_point(copy_constructor:PaddleSolution.DetectionBox) -} - -void DetectionBox::SharedCtor() { - _cached_size_ = 0; - ::memset(&class__, 0, reinterpret_cast(&right_bottom_y_) - - reinterpret_cast(&class__) + sizeof(right_bottom_y_)); -} - -DetectionBox::~DetectionBox() { - // @@protoc_insertion_point(destructor:PaddleSolution.DetectionBox) - SharedDtor(); -} - -void DetectionBox::SharedDtor() { -} - -void DetectionBox::SetCachedSize(int size) const { - GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); - _cached_size_ = size; - GOOGLE_SAFE_CONCURRENT_WRITES_END(); -} -const ::google::protobuf::Descriptor* DetectionBox::descriptor() { - protobuf_AssignDescriptorsOnce(); - return DetectionBox_descriptor_; -} - -const DetectionBox& DetectionBox::default_instance() { - protobuf_InitDefaults_detection_5fresult_2eproto(); - return *internal_default_instance(); -} - -::google::protobuf::internal::ExplicitlyConstructed DetectionBox_default_instance_; - -DetectionBox* DetectionBox::New(::google::protobuf::Arena* arena) const { - DetectionBox* n = new DetectionBox; - if (arena != NULL) { - arena->Own(n); - } - return n; -} - -void DetectionBox::Clear() { -// @@protoc_insertion_point(message_clear_start:PaddleSolution.DetectionBox) -#if defined(__clang__) -#define ZR_HELPER_(f) \ - _Pragma("clang diagnostic push") \ - _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \ - __builtin_offsetof(DetectionBox, f) \ - _Pragma("clang diagnostic pop") -#else -#define ZR_HELPER_(f) reinterpret_cast(\ - &reinterpret_cast(16)->f) -#endif - -#define ZR_(first, last) do {\ - ::memset(&(first), 0,\ - ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\ -} while (0) - - ZR_(class__, right_bottom_y_); - -#undef ZR_HELPER_ -#undef ZR_ - - _has_bits_.Clear(); - if (_internal_metadata_.have_unknown_fields()) { - mutable_unknown_fields()->Clear(); - } -} - -bool DetectionBox::MergePartialFromCodedStream( - ::google::protobuf::io::CodedInputStream* input) { -#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure - ::google::protobuf::uint32 tag; - // @@protoc_insertion_point(parse_start:PaddleSolution.DetectionBox) - for (;;) { - ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127); - tag = p.first; - if (!p.second) goto handle_unusual; - switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // optional int32 class = 1; - case 1: { - if (tag == 8) { - set_has_class_(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( - input, &class__))); - } else { - goto handle_unusual; - } - if (input->ExpectTag(21)) goto parse_score; - break; - } - - // optional float score = 2; - case 2: { - if (tag == 21) { - parse_score: - set_has_score(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( - input, &score_))); - } else { - goto handle_unusual; - } - if (input->ExpectTag(29)) goto parse_left_top_x; - break; - } - - // optional float left_top_x = 3; - case 3: { - if (tag == 29) { - parse_left_top_x: - set_has_left_top_x(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( - input, &left_top_x_))); - } else { - goto handle_unusual; - } - if (input->ExpectTag(37)) goto parse_left_top_y; - break; - } - - // optional float left_top_y = 4; - case 4: { - if (tag == 37) { - parse_left_top_y: - set_has_left_top_y(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( - input, &left_top_y_))); - } else { - goto handle_unusual; - } - if (input->ExpectTag(45)) goto parse_right_bottom_x; - break; - } - - // optional float right_bottom_x = 5; - case 5: { - if (tag == 45) { - parse_right_bottom_x: - set_has_right_bottom_x(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( - input, &right_bottom_x_))); - } else { - goto handle_unusual; - } - if (input->ExpectTag(53)) goto parse_right_bottom_y; - break; - } - - // optional float right_bottom_y = 6; - case 6: { - if (tag == 53) { - parse_right_bottom_y: - set_has_right_bottom_y(); - DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< - float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( - input, &right_bottom_y_))); - } else { - goto handle_unusual; - } - if (input->ExpectAtEnd()) goto success; - break; - } - - default: { - handle_unusual: - if (tag == 0 || - ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == - ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { - goto success; - } - DO_(::google::protobuf::internal::WireFormat::SkipField( - input, tag, mutable_unknown_fields())); - break; - } - } - } -success: - // @@protoc_insertion_point(parse_success:PaddleSolution.DetectionBox) - return true; -failure: - // @@protoc_insertion_point(parse_failure:PaddleSolution.DetectionBox) - return false; -#undef DO_ -} - -void DetectionBox::SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:PaddleSolution.DetectionBox) - // optional int32 class = 1; - if (has_class_()) { - ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->class_(), output); - } - - // optional float score = 2; - if (has_score()) { - ::google::protobuf::internal::WireFormatLite::WriteFloat(2, this->score(), output); - } - - // optional float left_top_x = 3; - if (has_left_top_x()) { - ::google::protobuf::internal::WireFormatLite::WriteFloat(3, this->left_top_x(), output); - } - - // optional float left_top_y = 4; - if (has_left_top_y()) { - ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->left_top_y(), output); - } - - // optional float right_bottom_x = 5; - if (has_right_bottom_x()) { - ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->right_bottom_x(), output); - } - - // optional float right_bottom_y = 6; - if (has_right_bottom_y()) { - ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->right_bottom_y(), output); - } - - if (_internal_metadata_.have_unknown_fields()) { - ::google::protobuf::internal::WireFormat::SerializeUnknownFields( - unknown_fields(), output); - } - // @@protoc_insertion_point(serialize_end:PaddleSolution.DetectionBox) -} - -::google::protobuf::uint8* DetectionBox::InternalSerializeWithCachedSizesToArray( - bool deterministic, ::google::protobuf::uint8* target) const { - (void)deterministic; // Unused - // @@protoc_insertion_point(serialize_to_array_start:PaddleSolution.DetectionBox) - // optional int32 class = 1; - if (has_class_()) { - target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->class_(), target); - } - - // optional float score = 2; - if (has_score()) { - target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(2, this->score(), target); - } - - // optional float left_top_x = 3; - if (has_left_top_x()) { - target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(3, this->left_top_x(), target); - } - - // optional float left_top_y = 4; - if (has_left_top_y()) { - target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->left_top_y(), target); - } - - // optional float right_bottom_x = 5; - if (has_right_bottom_x()) { - target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->right_bottom_x(), target); - } - - // optional float right_bottom_y = 6; - if (has_right_bottom_y()) { - target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->right_bottom_y(), target); - } - - if (_internal_metadata_.have_unknown_fields()) { - target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( - unknown_fields(), target); - } - // @@protoc_insertion_point(serialize_to_array_end:PaddleSolution.DetectionBox) - return target; -} - -size_t DetectionBox::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:PaddleSolution.DetectionBox) - size_t total_size = 0; - - if (_has_bits_[0 / 32] & 63u) { - // optional int32 class = 1; - if (has_class_()) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::Int32Size( - this->class_()); - } - - // optional float score = 2; - if (has_score()) { - total_size += 1 + 4; - } - - // optional float left_top_x = 3; - if (has_left_top_x()) { - total_size += 1 + 4; - } - - // optional float left_top_y = 4; - if (has_left_top_y()) { - total_size += 1 + 4; - } - - // optional float right_bottom_x = 5; - if (has_right_bottom_x()) { - total_size += 1 + 4; - } - - // optional float right_bottom_y = 6; - if (has_right_bottom_y()) { - total_size += 1 + 4; - } - - } - if (_internal_metadata_.have_unknown_fields()) { - total_size += - ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( - unknown_fields()); - } - int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); - GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); - _cached_size_ = cached_size; - GOOGLE_SAFE_CONCURRENT_WRITES_END(); - return total_size; -} - -void DetectionBox::MergeFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:PaddleSolution.DetectionBox) - if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__); - const DetectionBox* source = - ::google::protobuf::internal::DynamicCastToGenerated( - &from); - if (source == NULL) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:PaddleSolution.DetectionBox) - ::google::protobuf::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:PaddleSolution.DetectionBox) - UnsafeMergeFrom(*source); - } -} - -void DetectionBox::MergeFrom(const DetectionBox& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:PaddleSolution.DetectionBox) - if (GOOGLE_PREDICT_TRUE(&from != this)) { - UnsafeMergeFrom(from); - } else { - MergeFromFail(__LINE__); - } -} - -void DetectionBox::UnsafeMergeFrom(const DetectionBox& from) { - GOOGLE_DCHECK(&from != this); - if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { - if (from.has_class_()) { - set_class_(from.class_()); - } - if (from.has_score()) { - set_score(from.score()); - } - if (from.has_left_top_x()) { - set_left_top_x(from.left_top_x()); - } - if (from.has_left_top_y()) { - set_left_top_y(from.left_top_y()); - } - if (from.has_right_bottom_x()) { - set_right_bottom_x(from.right_bottom_x()); - } - if (from.has_right_bottom_y()) { - set_right_bottom_y(from.right_bottom_y()); - } - } - if (from._internal_metadata_.have_unknown_fields()) { - ::google::protobuf::UnknownFieldSet::MergeToInternalMetdata( - from.unknown_fields(), &_internal_metadata_); - } -} - -void DetectionBox::CopyFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:PaddleSolution.DetectionBox) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void DetectionBox::CopyFrom(const DetectionBox& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:PaddleSolution.DetectionBox) - if (&from == this) return; - Clear(); - UnsafeMergeFrom(from); -} - -bool DetectionBox::IsInitialized() const { - - return true; -} - -void DetectionBox::Swap(DetectionBox* other) { - if (other == this) return; - InternalSwap(other); -} -void DetectionBox::InternalSwap(DetectionBox* other) { - std::swap(class__, other->class__); - std::swap(score_, other->score_); - std::swap(left_top_x_, other->left_top_x_); - std::swap(left_top_y_, other->left_top_y_); - std::swap(right_bottom_x_, other->right_bottom_x_); - std::swap(right_bottom_y_, other->right_bottom_y_); - std::swap(_has_bits_[0], other->_has_bits_[0]); - _internal_metadata_.Swap(&other->_internal_metadata_); - std::swap(_cached_size_, other->_cached_size_); -} - -::google::protobuf::Metadata DetectionBox::GetMetadata() const { - protobuf_AssignDescriptorsOnce(); - ::google::protobuf::Metadata metadata; - metadata.descriptor = DetectionBox_descriptor_; - metadata.reflection = DetectionBox_reflection_; - return metadata; -} - -#if PROTOBUF_INLINE_NOT_IN_HEADERS -// DetectionBox - -// optional int32 class = 1; -bool DetectionBox::has_class_() const { - return (_has_bits_[0] & 0x00000001u) != 0; -} -void DetectionBox::set_has_class_() { - _has_bits_[0] |= 0x00000001u; -} -void DetectionBox::clear_has_class_() { - _has_bits_[0] &= ~0x00000001u; -} -void DetectionBox::clear_class_() { - class__ = 0; - clear_has_class_(); -} -::google::protobuf::int32 DetectionBox::class_() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.class) - return class__; -} -void DetectionBox::set_class_(::google::protobuf::int32 value) { - set_has_class_(); - class__ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.class) -} - -// optional float score = 2; -bool DetectionBox::has_score() const { - return (_has_bits_[0] & 0x00000002u) != 0; -} -void DetectionBox::set_has_score() { - _has_bits_[0] |= 0x00000002u; -} -void DetectionBox::clear_has_score() { - _has_bits_[0] &= ~0x00000002u; -} -void DetectionBox::clear_score() { - score_ = 0; - clear_has_score(); -} -float DetectionBox::score() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.score) - return score_; -} -void DetectionBox::set_score(float value) { - set_has_score(); - score_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.score) -} - -// optional float left_top_x = 3; -bool DetectionBox::has_left_top_x() const { - return (_has_bits_[0] & 0x00000004u) != 0; -} -void DetectionBox::set_has_left_top_x() { - _has_bits_[0] |= 0x00000004u; -} -void DetectionBox::clear_has_left_top_x() { - _has_bits_[0] &= ~0x00000004u; -} -void DetectionBox::clear_left_top_x() { - left_top_x_ = 0; - clear_has_left_top_x(); -} -float DetectionBox::left_top_x() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.left_top_x) - return left_top_x_; -} -void DetectionBox::set_left_top_x(float value) { - set_has_left_top_x(); - left_top_x_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.left_top_x) -} - -// optional float left_top_y = 4; -bool DetectionBox::has_left_top_y() const { - return (_has_bits_[0] & 0x00000008u) != 0; -} -void DetectionBox::set_has_left_top_y() { - _has_bits_[0] |= 0x00000008u; -} -void DetectionBox::clear_has_left_top_y() { - _has_bits_[0] &= ~0x00000008u; -} -void DetectionBox::clear_left_top_y() { - left_top_y_ = 0; - clear_has_left_top_y(); -} -float DetectionBox::left_top_y() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.left_top_y) - return left_top_y_; -} -void DetectionBox::set_left_top_y(float value) { - set_has_left_top_y(); - left_top_y_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.left_top_y) -} - -// optional float right_bottom_x = 5; -bool DetectionBox::has_right_bottom_x() const { - return (_has_bits_[0] & 0x00000010u) != 0; -} -void DetectionBox::set_has_right_bottom_x() { - _has_bits_[0] |= 0x00000010u; -} -void DetectionBox::clear_has_right_bottom_x() { - _has_bits_[0] &= ~0x00000010u; -} -void DetectionBox::clear_right_bottom_x() { - right_bottom_x_ = 0; - clear_has_right_bottom_x(); -} -float DetectionBox::right_bottom_x() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.right_bottom_x) - return right_bottom_x_; -} -void DetectionBox::set_right_bottom_x(float value) { - set_has_right_bottom_x(); - right_bottom_x_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.right_bottom_x) -} - -// optional float right_bottom_y = 6; -bool DetectionBox::has_right_bottom_y() const { - return (_has_bits_[0] & 0x00000020u) != 0; -} -void DetectionBox::set_has_right_bottom_y() { - _has_bits_[0] |= 0x00000020u; -} -void DetectionBox::clear_has_right_bottom_y() { - _has_bits_[0] &= ~0x00000020u; -} -void DetectionBox::clear_right_bottom_y() { - right_bottom_y_ = 0; - clear_has_right_bottom_y(); -} -float DetectionBox::right_bottom_y() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.right_bottom_y) - return right_bottom_y_; -} -void DetectionBox::set_right_bottom_y(float value) { - set_has_right_bottom_y(); - right_bottom_y_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.right_bottom_y) -} - -inline const DetectionBox* DetectionBox::internal_default_instance() { - return &DetectionBox_default_instance_.get(); -} -#endif // PROTOBUF_INLINE_NOT_IN_HEADERS - -// =================================================================== - -#if !defined(_MSC_VER) || _MSC_VER >= 1900 -const int DetectionResult::kFilenameFieldNumber; -const int DetectionResult::kDetectionBoxesFieldNumber; -#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 - -DetectionResult::DetectionResult() - : ::google::protobuf::Message(), _internal_metadata_(NULL) { - if (this != internal_default_instance()) protobuf_InitDefaults_detection_5fresult_2eproto(); - SharedCtor(); - // @@protoc_insertion_point(constructor:PaddleSolution.DetectionResult) -} - -void DetectionResult::InitAsDefaultInstance() { -} - -DetectionResult::DetectionResult(const DetectionResult& from) - : ::google::protobuf::Message(), - _internal_metadata_(NULL) { - SharedCtor(); - UnsafeMergeFrom(from); - // @@protoc_insertion_point(copy_constructor:PaddleSolution.DetectionResult) -} - -void DetectionResult::SharedCtor() { - _cached_size_ = 0; - filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} - -DetectionResult::~DetectionResult() { - // @@protoc_insertion_point(destructor:PaddleSolution.DetectionResult) - SharedDtor(); -} - -void DetectionResult::SharedDtor() { - filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} - -void DetectionResult::SetCachedSize(int size) const { - GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); - _cached_size_ = size; - GOOGLE_SAFE_CONCURRENT_WRITES_END(); -} -const ::google::protobuf::Descriptor* DetectionResult::descriptor() { - protobuf_AssignDescriptorsOnce(); - return DetectionResult_descriptor_; -} - -const DetectionResult& DetectionResult::default_instance() { - protobuf_InitDefaults_detection_5fresult_2eproto(); - return *internal_default_instance(); -} - -::google::protobuf::internal::ExplicitlyConstructed DetectionResult_default_instance_; - -DetectionResult* DetectionResult::New(::google::protobuf::Arena* arena) const { - DetectionResult* n = new DetectionResult; - if (arena != NULL) { - arena->Own(n); - } - return n; -} - -void DetectionResult::Clear() { -// @@protoc_insertion_point(message_clear_start:PaddleSolution.DetectionResult) - if (has_filename()) { - filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - } - detection_boxes_.Clear(); - _has_bits_.Clear(); - if (_internal_metadata_.have_unknown_fields()) { - mutable_unknown_fields()->Clear(); - } -} - -bool DetectionResult::MergePartialFromCodedStream( - ::google::protobuf::io::CodedInputStream* input) { -#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure - ::google::protobuf::uint32 tag; - // @@protoc_insertion_point(parse_start:PaddleSolution.DetectionResult) - for (;;) { - ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127); - tag = p.first; - if (!p.second) goto handle_unusual; - switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { - // optional string filename = 1; - case 1: { - if (tag == 10) { - DO_(::google::protobuf::internal::WireFormatLite::ReadString( - input, this->mutable_filename())); - ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField( - this->filename().data(), this->filename().length(), - ::google::protobuf::internal::WireFormat::PARSE, - "PaddleSolution.DetectionResult.filename"); - } else { - goto handle_unusual; - } - if (input->ExpectTag(18)) goto parse_detection_boxes; - break; - } - - // repeated .PaddleSolution.DetectionBox detection_boxes = 2; - case 2: { - if (tag == 18) { - parse_detection_boxes: - DO_(input->IncrementRecursionDepth()); - parse_loop_detection_boxes: - DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth( - input, add_detection_boxes())); - } else { - goto handle_unusual; - } - if (input->ExpectTag(18)) goto parse_loop_detection_boxes; - input->UnsafeDecrementRecursionDepth(); - if (input->ExpectAtEnd()) goto success; - break; - } - - default: { - handle_unusual: - if (tag == 0 || - ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == - ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { - goto success; - } - DO_(::google::protobuf::internal::WireFormat::SkipField( - input, tag, mutable_unknown_fields())); - break; - } - } - } -success: - // @@protoc_insertion_point(parse_success:PaddleSolution.DetectionResult) - return true; -failure: - // @@protoc_insertion_point(parse_failure:PaddleSolution.DetectionResult) - return false; -#undef DO_ -} - -void DetectionResult::SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const { - // @@protoc_insertion_point(serialize_start:PaddleSolution.DetectionResult) - // optional string filename = 1; - if (has_filename()) { - ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField( - this->filename().data(), this->filename().length(), - ::google::protobuf::internal::WireFormat::SERIALIZE, - "PaddleSolution.DetectionResult.filename"); - ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( - 1, this->filename(), output); - } - - // repeated .PaddleSolution.DetectionBox detection_boxes = 2; - for (unsigned int i = 0, n = this->detection_boxes_size(); i < n; i++) { - ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( - 2, this->detection_boxes(i), output); - } - - if (_internal_metadata_.have_unknown_fields()) { - ::google::protobuf::internal::WireFormat::SerializeUnknownFields( - unknown_fields(), output); - } - // @@protoc_insertion_point(serialize_end:PaddleSolution.DetectionResult) -} - -::google::protobuf::uint8* DetectionResult::InternalSerializeWithCachedSizesToArray( - bool deterministic, ::google::protobuf::uint8* target) const { - (void)deterministic; // Unused - // @@protoc_insertion_point(serialize_to_array_start:PaddleSolution.DetectionResult) - // optional string filename = 1; - if (has_filename()) { - ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField( - this->filename().data(), this->filename().length(), - ::google::protobuf::internal::WireFormat::SERIALIZE, - "PaddleSolution.DetectionResult.filename"); - target = - ::google::protobuf::internal::WireFormatLite::WriteStringToArray( - 1, this->filename(), target); - } - - // repeated .PaddleSolution.DetectionBox detection_boxes = 2; - for (unsigned int i = 0, n = this->detection_boxes_size(); i < n; i++) { - target = ::google::protobuf::internal::WireFormatLite:: - InternalWriteMessageNoVirtualToArray( - 2, this->detection_boxes(i), false, target); - } - - if (_internal_metadata_.have_unknown_fields()) { - target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( - unknown_fields(), target); - } - // @@protoc_insertion_point(serialize_to_array_end:PaddleSolution.DetectionResult) - return target; -} - -size_t DetectionResult::ByteSizeLong() const { -// @@protoc_insertion_point(message_byte_size_start:PaddleSolution.DetectionResult) - size_t total_size = 0; - - // optional string filename = 1; - if (has_filename()) { - total_size += 1 + - ::google::protobuf::internal::WireFormatLite::StringSize( - this->filename()); - } - - // repeated .PaddleSolution.DetectionBox detection_boxes = 2; - { - unsigned int count = this->detection_boxes_size(); - total_size += 1UL * count; - for (unsigned int i = 0; i < count; i++) { - total_size += - ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( - this->detection_boxes(i)); - } - } - - if (_internal_metadata_.have_unknown_fields()) { - total_size += - ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( - unknown_fields()); - } - int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); - GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); - _cached_size_ = cached_size; - GOOGLE_SAFE_CONCURRENT_WRITES_END(); - return total_size; -} - -void DetectionResult::MergeFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_merge_from_start:PaddleSolution.DetectionResult) - if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__); - const DetectionResult* source = - ::google::protobuf::internal::DynamicCastToGenerated( - &from); - if (source == NULL) { - // @@protoc_insertion_point(generalized_merge_from_cast_fail:PaddleSolution.DetectionResult) - ::google::protobuf::internal::ReflectionOps::Merge(from, this); - } else { - // @@protoc_insertion_point(generalized_merge_from_cast_success:PaddleSolution.DetectionResult) - UnsafeMergeFrom(*source); - } -} - -void DetectionResult::MergeFrom(const DetectionResult& from) { -// @@protoc_insertion_point(class_specific_merge_from_start:PaddleSolution.DetectionResult) - if (GOOGLE_PREDICT_TRUE(&from != this)) { - UnsafeMergeFrom(from); - } else { - MergeFromFail(__LINE__); - } -} - -void DetectionResult::UnsafeMergeFrom(const DetectionResult& from) { - GOOGLE_DCHECK(&from != this); - detection_boxes_.MergeFrom(from.detection_boxes_); - if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { - if (from.has_filename()) { - set_has_filename(); - filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filename_); - } - } - if (from._internal_metadata_.have_unknown_fields()) { - ::google::protobuf::UnknownFieldSet::MergeToInternalMetdata( - from.unknown_fields(), &_internal_metadata_); - } -} - -void DetectionResult::CopyFrom(const ::google::protobuf::Message& from) { -// @@protoc_insertion_point(generalized_copy_from_start:PaddleSolution.DetectionResult) - if (&from == this) return; - Clear(); - MergeFrom(from); -} - -void DetectionResult::CopyFrom(const DetectionResult& from) { -// @@protoc_insertion_point(class_specific_copy_from_start:PaddleSolution.DetectionResult) - if (&from == this) return; - Clear(); - UnsafeMergeFrom(from); -} - -bool DetectionResult::IsInitialized() const { - - return true; -} - -void DetectionResult::Swap(DetectionResult* other) { - if (other == this) return; - InternalSwap(other); -} -void DetectionResult::InternalSwap(DetectionResult* other) { - filename_.Swap(&other->filename_); - detection_boxes_.UnsafeArenaSwap(&other->detection_boxes_); - std::swap(_has_bits_[0], other->_has_bits_[0]); - _internal_metadata_.Swap(&other->_internal_metadata_); - std::swap(_cached_size_, other->_cached_size_); -} - -::google::protobuf::Metadata DetectionResult::GetMetadata() const { - protobuf_AssignDescriptorsOnce(); - ::google::protobuf::Metadata metadata; - metadata.descriptor = DetectionResult_descriptor_; - metadata.reflection = DetectionResult_reflection_; - return metadata; -} - -#if PROTOBUF_INLINE_NOT_IN_HEADERS -// DetectionResult - -// optional string filename = 1; -bool DetectionResult::has_filename() const { - return (_has_bits_[0] & 0x00000001u) != 0; -} -void DetectionResult::set_has_filename() { - _has_bits_[0] |= 0x00000001u; -} -void DetectionResult::clear_has_filename() { - _has_bits_[0] &= ~0x00000001u; -} -void DetectionResult::clear_filename() { - filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - clear_has_filename(); -} -const ::std::string& DetectionResult::filename() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionResult.filename) - return filename_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -void DetectionResult::set_filename(const ::std::string& value) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionResult.filename) -} -void DetectionResult::set_filename(const char* value) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:PaddleSolution.DetectionResult.filename) -} -void DetectionResult::set_filename(const char* value, size_t size) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:PaddleSolution.DetectionResult.filename) -} -::std::string* DetectionResult::mutable_filename() { - set_has_filename(); - // @@protoc_insertion_point(field_mutable:PaddleSolution.DetectionResult.filename) - return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -::std::string* DetectionResult::release_filename() { - // @@protoc_insertion_point(field_release:PaddleSolution.DetectionResult.filename) - clear_has_filename(); - return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -void DetectionResult::set_allocated_filename(::std::string* filename) { - if (filename != NULL) { - set_has_filename(); - } else { - clear_has_filename(); - } - filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename); - // @@protoc_insertion_point(field_set_allocated:PaddleSolution.DetectionResult.filename) -} - -// repeated .PaddleSolution.DetectionBox detection_boxes = 2; -int DetectionResult::detection_boxes_size() const { - return detection_boxes_.size(); -} -void DetectionResult::clear_detection_boxes() { - detection_boxes_.Clear(); -} -const ::PaddleSolution::DetectionBox& DetectionResult::detection_boxes(int index) const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Get(index); -} -::PaddleSolution::DetectionBox* DetectionResult::mutable_detection_boxes(int index) { - // @@protoc_insertion_point(field_mutable:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Mutable(index); -} -::PaddleSolution::DetectionBox* DetectionResult::add_detection_boxes() { - // @@protoc_insertion_point(field_add:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Add(); -} -::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >* -DetectionResult::mutable_detection_boxes() { - // @@protoc_insertion_point(field_mutable_list:PaddleSolution.DetectionResult.detection_boxes) - return &detection_boxes_; -} -const ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >& -DetectionResult::detection_boxes() const { - // @@protoc_insertion_point(field_list:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_; -} - -inline const DetectionResult* DetectionResult::internal_default_instance() { - return &DetectionResult_default_instance_.get(); -} -#endif // PROTOBUF_INLINE_NOT_IN_HEADERS - -// @@protoc_insertion_point(namespace_scope) - -} // namespace PaddleSolution - -// @@protoc_insertion_point(global_scope) diff --git a/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.h b/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.h deleted file mode 100644 index 1b2f89ea9ca13f3f949bd19b097bb514a4afc525..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/utils/detection_result.pb.h +++ /dev/null @@ -1,563 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: detection_result.proto - -#ifndef PROTOBUF_detection_5fresult_2eproto__INCLUDED -#define PROTOBUF_detection_5fresult_2eproto__INCLUDED - -#include - -#include - -#if GOOGLE_PROTOBUF_VERSION < 3001000 -#error This file was generated by a newer version of protoc which is -#error incompatible with your Protocol Buffer headers. Please update -#error your headers. -#endif -#if 3001000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION -#error This file was generated by an older version of protoc which is -#error incompatible with your Protocol Buffer headers. Please -#error regenerate this file with a newer version of protoc. -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -// @@protoc_insertion_point(includes) - -namespace PaddleSolution { - -// Internal implementation detail -- do not call these. -void protobuf_AddDesc_detection_5fresult_2eproto(); -void protobuf_InitDefaults_detection_5fresult_2eproto(); -void protobuf_AssignDesc_detection_5fresult_2eproto(); -void protobuf_ShutdownFile_detection_5fresult_2eproto(); - -class DetectionBox; -class DetectionResult; - -// =================================================================== - -class DetectionBox : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:PaddleSolution.DetectionBox) */ { - public: - DetectionBox(); - virtual ~DetectionBox(); - - DetectionBox(const DetectionBox& from); - - inline DetectionBox& operator=(const DetectionBox& from) { - CopyFrom(from); - return *this; - } - - inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields(); - } - - inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields(); - } - - static const ::google::protobuf::Descriptor* descriptor(); - static const DetectionBox& default_instance(); - - static const DetectionBox* internal_default_instance(); - - void Swap(DetectionBox* other); - - // implements Message ---------------------------------------------- - - inline DetectionBox* New() const { return New(NULL); } - - DetectionBox* New(::google::protobuf::Arena* arena) const; - void CopyFrom(const ::google::protobuf::Message& from); - void MergeFrom(const ::google::protobuf::Message& from); - void CopyFrom(const DetectionBox& from); - void MergeFrom(const DetectionBox& from); - void Clear(); - bool IsInitialized() const; - - size_t ByteSizeLong() const; - bool MergePartialFromCodedStream( - ::google::protobuf::io::CodedInputStream* input); - void SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const; - ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( - bool deterministic, ::google::protobuf::uint8* output) const; - ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const { - return InternalSerializeWithCachedSizesToArray(false, output); - } - int GetCachedSize() const { return _cached_size_; } - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const; - void InternalSwap(DetectionBox* other); - void UnsafeMergeFrom(const DetectionBox& from); - private: - inline ::google::protobuf::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::google::protobuf::Metadata GetMetadata() const; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - // optional int32 class = 1; - bool has_class_() const; - void clear_class_(); - static const int kClassFieldNumber = 1; - ::google::protobuf::int32 class_() const; - void set_class_(::google::protobuf::int32 value); - - // optional float score = 2; - bool has_score() const; - void clear_score(); - static const int kScoreFieldNumber = 2; - float score() const; - void set_score(float value); - - // optional float left_top_x = 3; - bool has_left_top_x() const; - void clear_left_top_x(); - static const int kLeftTopXFieldNumber = 3; - float left_top_x() const; - void set_left_top_x(float value); - - // optional float left_top_y = 4; - bool has_left_top_y() const; - void clear_left_top_y(); - static const int kLeftTopYFieldNumber = 4; - float left_top_y() const; - void set_left_top_y(float value); - - // optional float right_bottom_x = 5; - bool has_right_bottom_x() const; - void clear_right_bottom_x(); - static const int kRightBottomXFieldNumber = 5; - float right_bottom_x() const; - void set_right_bottom_x(float value); - - // optional float right_bottom_y = 6; - bool has_right_bottom_y() const; - void clear_right_bottom_y(); - static const int kRightBottomYFieldNumber = 6; - float right_bottom_y() const; - void set_right_bottom_y(float value); - - // @@protoc_insertion_point(class_scope:PaddleSolution.DetectionBox) - private: - inline void set_has_class_(); - inline void clear_has_class_(); - inline void set_has_score(); - inline void clear_has_score(); - inline void set_has_left_top_x(); - inline void clear_has_left_top_x(); - inline void set_has_left_top_y(); - inline void clear_has_left_top_y(); - inline void set_has_right_bottom_x(); - inline void clear_has_right_bottom_x(); - inline void set_has_right_bottom_y(); - inline void clear_has_right_bottom_y(); - - ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; - ::google::protobuf::internal::HasBits<1> _has_bits_; - mutable int _cached_size_; - ::google::protobuf::int32 class__; - float score_; - float left_top_x_; - float left_top_y_; - float right_bottom_x_; - float right_bottom_y_; - friend void protobuf_InitDefaults_detection_5fresult_2eproto_impl(); - friend void protobuf_AddDesc_detection_5fresult_2eproto_impl(); - friend void protobuf_AssignDesc_detection_5fresult_2eproto(); - friend void protobuf_ShutdownFile_detection_5fresult_2eproto(); - - void InitAsDefaultInstance(); -}; -extern ::google::protobuf::internal::ExplicitlyConstructed DetectionBox_default_instance_; - -// ------------------------------------------------------------------- - -class DetectionResult : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:PaddleSolution.DetectionResult) */ { - public: - DetectionResult(); - virtual ~DetectionResult(); - - DetectionResult(const DetectionResult& from); - - inline DetectionResult& operator=(const DetectionResult& from) { - CopyFrom(from); - return *this; - } - - inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { - return _internal_metadata_.unknown_fields(); - } - - inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { - return _internal_metadata_.mutable_unknown_fields(); - } - - static const ::google::protobuf::Descriptor* descriptor(); - static const DetectionResult& default_instance(); - - static const DetectionResult* internal_default_instance(); - - void Swap(DetectionResult* other); - - // implements Message ---------------------------------------------- - - inline DetectionResult* New() const { return New(NULL); } - - DetectionResult* New(::google::protobuf::Arena* arena) const; - void CopyFrom(const ::google::protobuf::Message& from); - void MergeFrom(const ::google::protobuf::Message& from); - void CopyFrom(const DetectionResult& from); - void MergeFrom(const DetectionResult& from); - void Clear(); - bool IsInitialized() const; - - size_t ByteSizeLong() const; - bool MergePartialFromCodedStream( - ::google::protobuf::io::CodedInputStream* input); - void SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const; - ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( - bool deterministic, ::google::protobuf::uint8* output) const; - ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const { - return InternalSerializeWithCachedSizesToArray(false, output); - } - int GetCachedSize() const { return _cached_size_; } - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const; - void InternalSwap(DetectionResult* other); - void UnsafeMergeFrom(const DetectionResult& from); - private: - inline ::google::protobuf::Arena* GetArenaNoVirtual() const { - return _internal_metadata_.arena(); - } - inline void* MaybeArenaPtr() const { - return _internal_metadata_.raw_arena_ptr(); - } - public: - - ::google::protobuf::Metadata GetMetadata() const; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - // optional string filename = 1; - bool has_filename() const; - void clear_filename(); - static const int kFilenameFieldNumber = 1; - const ::std::string& filename() const; - void set_filename(const ::std::string& value); - void set_filename(const char* value); - void set_filename(const char* value, size_t size); - ::std::string* mutable_filename(); - ::std::string* release_filename(); - void set_allocated_filename(::std::string* filename); - - // repeated .PaddleSolution.DetectionBox detection_boxes = 2; - int detection_boxes_size() const; - void clear_detection_boxes(); - static const int kDetectionBoxesFieldNumber = 2; - const ::PaddleSolution::DetectionBox& detection_boxes(int index) const; - ::PaddleSolution::DetectionBox* mutable_detection_boxes(int index); - ::PaddleSolution::DetectionBox* add_detection_boxes(); - ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >* - mutable_detection_boxes(); - const ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >& - detection_boxes() const; - - // @@protoc_insertion_point(class_scope:PaddleSolution.DetectionResult) - private: - inline void set_has_filename(); - inline void clear_has_filename(); - - ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; - ::google::protobuf::internal::HasBits<1> _has_bits_; - mutable int _cached_size_; - ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox > detection_boxes_; - ::google::protobuf::internal::ArenaStringPtr filename_; - friend void protobuf_InitDefaults_detection_5fresult_2eproto_impl(); - friend void protobuf_AddDesc_detection_5fresult_2eproto_impl(); - friend void protobuf_AssignDesc_detection_5fresult_2eproto(); - friend void protobuf_ShutdownFile_detection_5fresult_2eproto(); - - void InitAsDefaultInstance(); -}; -extern ::google::protobuf::internal::ExplicitlyConstructed DetectionResult_default_instance_; - -// =================================================================== - - -// =================================================================== - -#if !PROTOBUF_INLINE_NOT_IN_HEADERS -// DetectionBox - -// optional int32 class = 1; -inline bool DetectionBox::has_class_() const { - return (_has_bits_[0] & 0x00000001u) != 0; -} -inline void DetectionBox::set_has_class_() { - _has_bits_[0] |= 0x00000001u; -} -inline void DetectionBox::clear_has_class_() { - _has_bits_[0] &= ~0x00000001u; -} -inline void DetectionBox::clear_class_() { - class__ = 0; - clear_has_class_(); -} -inline ::google::protobuf::int32 DetectionBox::class_() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.class) - return class__; -} -inline void DetectionBox::set_class_(::google::protobuf::int32 value) { - set_has_class_(); - class__ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.class) -} - -// optional float score = 2; -inline bool DetectionBox::has_score() const { - return (_has_bits_[0] & 0x00000002u) != 0; -} -inline void DetectionBox::set_has_score() { - _has_bits_[0] |= 0x00000002u; -} -inline void DetectionBox::clear_has_score() { - _has_bits_[0] &= ~0x00000002u; -} -inline void DetectionBox::clear_score() { - score_ = 0; - clear_has_score(); -} -inline float DetectionBox::score() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.score) - return score_; -} -inline void DetectionBox::set_score(float value) { - set_has_score(); - score_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.score) -} - -// optional float left_top_x = 3; -inline bool DetectionBox::has_left_top_x() const { - return (_has_bits_[0] & 0x00000004u) != 0; -} -inline void DetectionBox::set_has_left_top_x() { - _has_bits_[0] |= 0x00000004u; -} -inline void DetectionBox::clear_has_left_top_x() { - _has_bits_[0] &= ~0x00000004u; -} -inline void DetectionBox::clear_left_top_x() { - left_top_x_ = 0; - clear_has_left_top_x(); -} -inline float DetectionBox::left_top_x() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.left_top_x) - return left_top_x_; -} -inline void DetectionBox::set_left_top_x(float value) { - set_has_left_top_x(); - left_top_x_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.left_top_x) -} - -// optional float left_top_y = 4; -inline bool DetectionBox::has_left_top_y() const { - return (_has_bits_[0] & 0x00000008u) != 0; -} -inline void DetectionBox::set_has_left_top_y() { - _has_bits_[0] |= 0x00000008u; -} -inline void DetectionBox::clear_has_left_top_y() { - _has_bits_[0] &= ~0x00000008u; -} -inline void DetectionBox::clear_left_top_y() { - left_top_y_ = 0; - clear_has_left_top_y(); -} -inline float DetectionBox::left_top_y() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.left_top_y) - return left_top_y_; -} -inline void DetectionBox::set_left_top_y(float value) { - set_has_left_top_y(); - left_top_y_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.left_top_y) -} - -// optional float right_bottom_x = 5; -inline bool DetectionBox::has_right_bottom_x() const { - return (_has_bits_[0] & 0x00000010u) != 0; -} -inline void DetectionBox::set_has_right_bottom_x() { - _has_bits_[0] |= 0x00000010u; -} -inline void DetectionBox::clear_has_right_bottom_x() { - _has_bits_[0] &= ~0x00000010u; -} -inline void DetectionBox::clear_right_bottom_x() { - right_bottom_x_ = 0; - clear_has_right_bottom_x(); -} -inline float DetectionBox::right_bottom_x() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.right_bottom_x) - return right_bottom_x_; -} -inline void DetectionBox::set_right_bottom_x(float value) { - set_has_right_bottom_x(); - right_bottom_x_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.right_bottom_x) -} - -// optional float right_bottom_y = 6; -inline bool DetectionBox::has_right_bottom_y() const { - return (_has_bits_[0] & 0x00000020u) != 0; -} -inline void DetectionBox::set_has_right_bottom_y() { - _has_bits_[0] |= 0x00000020u; -} -inline void DetectionBox::clear_has_right_bottom_y() { - _has_bits_[0] &= ~0x00000020u; -} -inline void DetectionBox::clear_right_bottom_y() { - right_bottom_y_ = 0; - clear_has_right_bottom_y(); -} -inline float DetectionBox::right_bottom_y() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionBox.right_bottom_y) - return right_bottom_y_; -} -inline void DetectionBox::set_right_bottom_y(float value) { - set_has_right_bottom_y(); - right_bottom_y_ = value; - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionBox.right_bottom_y) -} - -inline const DetectionBox* DetectionBox::internal_default_instance() { - return &DetectionBox_default_instance_.get(); -} -// ------------------------------------------------------------------- - -// DetectionResult - -// optional string filename = 1; -inline bool DetectionResult::has_filename() const { - return (_has_bits_[0] & 0x00000001u) != 0; -} -inline void DetectionResult::set_has_filename() { - _has_bits_[0] |= 0x00000001u; -} -inline void DetectionResult::clear_has_filename() { - _has_bits_[0] &= ~0x00000001u; -} -inline void DetectionResult::clear_filename() { - filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - clear_has_filename(); -} -inline const ::std::string& DetectionResult::filename() const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionResult.filename) - return filename_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void DetectionResult::set_filename(const ::std::string& value) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); - // @@protoc_insertion_point(field_set:PaddleSolution.DetectionResult.filename) -} -inline void DetectionResult::set_filename(const char* value) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); - // @@protoc_insertion_point(field_set_char:PaddleSolution.DetectionResult.filename) -} -inline void DetectionResult::set_filename(const char* value, size_t size) { - set_has_filename(); - filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), - ::std::string(reinterpret_cast(value), size)); - // @@protoc_insertion_point(field_set_pointer:PaddleSolution.DetectionResult.filename) -} -inline ::std::string* DetectionResult::mutable_filename() { - set_has_filename(); - // @@protoc_insertion_point(field_mutable:PaddleSolution.DetectionResult.filename) - return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline ::std::string* DetectionResult::release_filename() { - // @@protoc_insertion_point(field_release:PaddleSolution.DetectionResult.filename) - clear_has_filename(); - return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); -} -inline void DetectionResult::set_allocated_filename(::std::string* filename) { - if (filename != NULL) { - set_has_filename(); - } else { - clear_has_filename(); - } - filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename); - // @@protoc_insertion_point(field_set_allocated:PaddleSolution.DetectionResult.filename) -} - -// repeated .PaddleSolution.DetectionBox detection_boxes = 2; -inline int DetectionResult::detection_boxes_size() const { - return detection_boxes_.size(); -} -inline void DetectionResult::clear_detection_boxes() { - detection_boxes_.Clear(); -} -inline const ::PaddleSolution::DetectionBox& DetectionResult::detection_boxes(int index) const { - // @@protoc_insertion_point(field_get:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Get(index); -} -inline ::PaddleSolution::DetectionBox* DetectionResult::mutable_detection_boxes(int index) { - // @@protoc_insertion_point(field_mutable:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Mutable(index); -} -inline ::PaddleSolution::DetectionBox* DetectionResult::add_detection_boxes() { - // @@protoc_insertion_point(field_add:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_.Add(); -} -inline ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >* -DetectionResult::mutable_detection_boxes() { - // @@protoc_insertion_point(field_mutable_list:PaddleSolution.DetectionResult.detection_boxes) - return &detection_boxes_; -} -inline const ::google::protobuf::RepeatedPtrField< ::PaddleSolution::DetectionBox >& -DetectionResult::detection_boxes() const { - // @@protoc_insertion_point(field_list:PaddleSolution.DetectionResult.detection_boxes) - return detection_boxes_; -} - -inline const DetectionResult* DetectionResult::internal_default_instance() { - return &DetectionResult_default_instance_.get(); -} -#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS -// ------------------------------------------------------------------- - - -// @@protoc_insertion_point(namespace_scope) - -} // namespace PaddleSolution - -// @@protoc_insertion_point(global_scope) - -#endif // PROTOBUF_detection_5fresult_2eproto__INCLUDED diff --git a/PaddleCV/PaddleDetection/inference/utils/detection_result.proto b/PaddleCV/PaddleDetection/inference/utils/detection_result.proto deleted file mode 100644 index 2d1cbb2464ac09b0dcea01f8331da5ee7894a4d5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/utils/detection_result.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto2"; -package PaddleSolution; - -message DetectionBox { - optional int32 class = 1; - optional float score = 2; - optional float left_top_x = 3; - optional float left_top_y = 4; - optional float right_bottom_x = 5; - optional float right_bottom_y = 6; -} - -message DetectionResult { - optional string filename = 1; - repeated DetectionBox detection_boxes = 2; -} - -//message DetectionResultsContainer { -// repeated DetectionResult result = 1; -//} - diff --git a/PaddleCV/PaddleDetection/inference/utils/utils.h b/PaddleCV/PaddleDetection/inference/utils/utils.h deleted file mode 100644 index 63245219edb6ad39e896f1eb041e8bff69613382..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/inference/utils/utils.h +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#pragma once - -#include -#include -#include -#include -#include -#include -#ifdef _WIN32 -#include -#else -#include -#include -#endif - -namespace PaddleSolution { - namespace utils { - enum SCALE_TYPE{ - UNPADDING, - RANGE_SCALING - }; - inline std::string path_join(const std::string& dir, const std::string& path) { - std::string seperator = "/"; - #ifdef _WIN32 - seperator = "\\"; - #endif - return dir + seperator + path; - } - #ifndef _WIN32 - // scan a directory and get all files with input extensions - inline std::vector get_directory_images(const std::string& path, const std::string& exts) - { - std::vector imgs; - struct dirent *entry; - DIR *dir = opendir(path.c_str()); - if (dir == NULL) { - closedir(dir); - return imgs; - } - - while ((entry = readdir(dir)) != NULL) { - std::string item = entry->d_name; - auto ext = strrchr(entry->d_name, '.'); - if (!ext || std::string(ext) == "." || std::string(ext) == "..") { - continue; - } - if (exts.find(ext) != std::string::npos) { - imgs.push_back(path_join(path, entry->d_name)); - } - } - sort(imgs.begin(), imgs.end()); - return imgs; - } - #else - // scan a directory and get all files with input extensions - inline std::vector get_directory_images(const std::string& path, const std::string& exts) - { - std::vector imgs; - for (const auto& item : std::experimental::filesystem::directory_iterator(path)) { - auto suffix = item.path().extension().string(); - if (exts.find(suffix) != std::string::npos && suffix.size() > 0) { - auto fullname = path_join(path, item.path().filename().string()); - imgs.push_back(item.path().string()); - } - } - sort(imgs.begin(), imgs.end()); - return imgs; - } - #endif - - inline int scaling(int resize_type, int &w, int &h, int new_w, int new_h, int target_size, int max_size, float &im_scale_ratio) - { - if(w <= 0 || h <= 0 || new_w <= 0 || new_h <= 0){ - return -1; - } - switch(resize_type) { - case SCALE_TYPE::UNPADDING: - { - w = new_w; - h = new_h; - im_scale_ratio=0; - } - break; - case SCALE_TYPE::RANGE_SCALING: - { - int im_max_size = std::max(w, h); - int im_min_size = std::min(w, h); - float scale_ratio= static_cast(target_size) / static_cast(im_min_size); - if(max_size > 0) { - if(round(scale_ratio * im_max_size) > max_size) { - scale_ratio = static_cast(max_size) / static_cast(im_max_size); - } - } - w = round(scale_ratio * static_cast(w)); - h = round(scale_ratio * static_cast(h)); - im_scale_ratio = scale_ratio; - } - break; - default : - { - std::cout << "Can't support this type of scaling strategy." << std::endl; - std::cout << "Throw exception at file " << __FILE__ << " on line " << __LINE__ << std::endl; - throw 0; - } - break; - } - return 0; - } - } -} diff --git a/PaddleCV/PaddleDetection/ppdet/__init__.py b/PaddleCV/PaddleDetection/ppdet/__init__.py deleted file mode 100644 index d0c32e26092f6ea25771279418582a24ea449ab2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/PaddleCV/PaddleDetection/ppdet/core/__init__.py b/PaddleCV/PaddleDetection/ppdet/core/__init__.py deleted file mode 100644 index f8561f944e4ca7453456c476092ba4e2d7a0bb5d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/core/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import ppdet.modeling -import ppdet.optimizer -import ppdet.data diff --git a/PaddleCV/PaddleDetection/ppdet/core/config/__init__.py b/PaddleCV/PaddleDetection/ppdet/core/config/__init__.py deleted file mode 100644 index d0c32e26092f6ea25771279418582a24ea449ab2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/core/config/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/PaddleCV/PaddleDetection/ppdet/core/config/schema.py b/PaddleCV/PaddleDetection/ppdet/core/config/schema.py deleted file mode 100644 index efba5be1dfd93243ff7a071f0f30accfa513e18f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/core/config/schema.py +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function -from __future__ import division - -import inspect -import importlib -import re - -try: - from docstring_parser import parse as doc_parse -except Exception: - - def doc_parse(*args): - if not doc_parse.__warning_sent__: - from ppdet.utils.cli import ColorTTY - color_tty = ColorTTY() - message = "docstring_parser is not installed, " \ - + "argument description is not available" - print(color_tty.yellow(message)) - doc_parse.__warning_sent__ = True - - doc_parse.__warning_sent__ = False - -try: - from typeguard import check_type -except Exception: - - def check_type(*args): - if not check_type.__warning_sent__: - from ppdet.utils.cli import ColorTTY - color_tty = ColorTTY() - message = "typeguard is not installed," \ - + "type checking is not available" - print(color_tty.yellow(message)) - check_type.__warning_sent__ = True - - check_type.__warning_sent__ = False - -__all__ = ['SchemaValue', 'SchemaDict', 'SharedConfig', 'extract_schema'] - - -class SchemaValue(object): - def __init__(self, name, doc='', type=None): - super(SchemaValue, self).__init__() - self.name = name - self.doc = doc - self.type = type - - def set_default(self, value): - self.default = value - - def has_default(self): - return hasattr(self, 'default') - - -class SchemaDict(dict): - def __init__(self, **kwargs): - super(SchemaDict, self).__init__() - self.schema = {} - self.strict = False - self.doc = "" - self.update(kwargs) - - def __setitem__(self, key, value): - # XXX also update regular dict to SchemaDict?? - if isinstance(value, dict) and key in self and isinstance(self[key], - SchemaDict): - self[key].update(value) - else: - super(SchemaDict, self).__setitem__(key, value) - - def __missing__(self, key): - if self.has_default(key): - return self.schema[key].default - elif key in self.schema: - return self.schema[key] - else: - raise KeyError(key) - - def copy(self): - newone = SchemaDict() - newone.__dict__.update(self.__dict__) - newone.update(self) - return newone - - def set_schema(self, key, value): - assert isinstance(value, SchemaValue) - self.schema[key] = value - - def set_strict(self, strict): - self.strict = strict - - def has_default(self, key): - return key in self.schema and self.schema[key].has_default() - - def is_default(self, key): - if not self.has_default(key): - return False - if hasattr(self[key], '__dict__'): - return True - else: - return key not in self or self[key] == self.schema[key].default - - def find_default_keys(self): - return [ - k for k in list(self.keys()) + list(self.schema.keys()) - if self.is_default(k) - ] - - def mandatory(self): - return any([k for k in self.schema.keys() if not self.has_default(k)]) - - def find_missing_keys(self): - missing = [ - k for k in self.schema.keys() - if k not in self and not self.has_default(k) - ] - placeholders = [k for k in self if self[k] in ('', '')] - return missing + placeholders - - def find_extra_keys(self): - return list(set(self.keys()) - set(self.schema.keys())) - - def find_mismatch_keys(self): - mismatch_keys = [] - for arg in self.schema.values(): - if arg.type is not None: - try: - check_type("{}.{}".format(self.name, arg.name), - self[arg.name], arg.type) - except Exception: - mismatch_keys.append(arg.name) - return mismatch_keys - - def validate(self): - missing_keys = self.find_missing_keys() - if missing_keys: - raise ValueError("Missing param for class<{}>: {}".format( - self.name, ", ".join(missing_keys))) - extra_keys = self.find_extra_keys() - if extra_keys and self.strict: - raise ValueError("Extraneous param for class<{}>: {}".format( - self.name, ", ".join(extra_keys))) - mismatch_keys = self.find_mismatch_keys() - if mismatch_keys: - raise TypeError("Wrong param type for class<{}>: {}".format( - self.name, ", ".join(mismatch_keys))) - - -class SharedConfig(object): - """ - Representation class for `__shared__` annotations, which work as follows: - - - if `key` is set for the module in config file, its value will take - precedence - - if `key` is not set for the module but present in the config file, its - value will be used - - otherwise, use the provided `default_value` as fallback - - Args: - key: config[key] will be injected - default_value: fallback value - """ - - def __init__(self, key, default_value=None): - super(SharedConfig, self).__init__() - self.key = key - self.default_value = default_value - - -def extract_schema(cls): - """ - Extract schema from a given class - - Args: - cls (type): Class from which to extract. - - Returns: - schema (SchemaDict): Extracted schema. - """ - ctor = cls.__init__ - # python 2 compatibility - if hasattr(inspect, 'getfullargspec'): - argspec = inspect.getfullargspec(ctor) - annotations = argspec.annotations - has_kwargs = argspec.varkw is not None - else: - argspec = inspect.getargspec(ctor) - # python 2 type hinting workaround, see pep-3107 - # however, since `typeguard` does not support python 2, type checking - # is still python 3 only for now - annotations = getattr(ctor, '__annotations__', {}) - has_kwargs = argspec.keywords is not None - - names = [arg for arg in argspec.args if arg != 'self'] - defaults = argspec.defaults - num_defaults = argspec.defaults is not None and len(argspec.defaults) or 0 - num_required = len(names) - num_defaults - - docs = cls.__doc__ - if docs is None and getattr(cls, '__category__', None) == 'op': - docs = cls.__call__.__doc__ - docstring = doc_parse(docs) - if docstring is None: - comments = {} - else: - comments = {} - for p in docstring.params: - match_obj = re.match('^([a-zA-Z_]+[a-zA-Z_0-9]*).*', p.arg_name) - if match_obj is not None: - comments[match_obj.group(1)] = p.description - - schema = SchemaDict() - schema.name = cls.__name__ - schema.doc = "" - if docs is not None: - start_pos = docs[0] == '\n' and 1 or 0 - schema.doc = docs[start_pos:].split("\n")[0].strip() - # XXX handle paddle's weird doc convention - if '**' == schema.doc[:2] and '**' == schema.doc[-2:]: - schema.doc = schema.doc[2:-2].strip() - schema.category = hasattr(cls, '__category__') and getattr( - cls, '__category__') or 'module' - schema.strict = not has_kwargs - schema.pymodule = importlib.import_module(cls.__module__) - schema.inject = getattr(cls, '__inject__', []) - schema.shared = getattr(cls, '__shared__', []) - for idx, name in enumerate(names): - comment = name in comments and comments[name] or name - if name in schema.inject: - type_ = None - else: - type_ = name in annotations and annotations[name] or None - value_schema = SchemaValue(name, comment, type_) - if name in schema.shared: - assert idx >= num_required, "shared config must have default value" - default = defaults[idx - num_required] - value_schema.set_default(SharedConfig(name, default)) - elif idx >= num_required: - default = defaults[idx - num_required] - value_schema.set_default(default) - schema.set_schema(name, value_schema) - - return schema diff --git a/PaddleCV/PaddleDetection/ppdet/core/config/yaml_helpers.py b/PaddleCV/PaddleDetection/ppdet/core/config/yaml_helpers.py deleted file mode 100644 index 8a7738b47f4f86acde78ab8a3bcac590d61615fa..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/core/config/yaml_helpers.py +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import importlib -import inspect - -import yaml -from .schema import SharedConfig - -__all__ = ['serializable', 'Callable'] - - -def _make_python_constructor(cls): - def python_constructor(loader, node): - if isinstance(node, yaml.SequenceNode): - args = loader.construct_sequence(node, deep=True) - return cls(*args) - else: - kwargs = loader.construct_mapping(node, deep=True) - try: - return cls(**kwargs) - except Exception as ex: - print("Error when construct {} instance from yaml config". - format(cls.__name__)) - raise ex - - return python_constructor - - -def _make_python_representer(cls): - # python 2 compatibility - if hasattr(inspect, 'getfullargspec'): - argspec = inspect.getfullargspec(cls) - else: - argspec = inspect.getargspec(cls.__init__) - argnames = [arg for arg in argspec.args if arg != 'self'] - - def python_representer(dumper, obj): - if argnames: - data = {name: getattr(obj, name) for name in argnames} - else: - data = obj.__dict__ - if '_id' in data: - del data['_id'] - return dumper.represent_mapping(u'!{}'.format(cls.__name__), data) - - return python_representer - - -def serializable(cls): - """ - Add loader and dumper for given class, which must be - "trivially serializable" - - Args: - cls: class to be serialized - - Returns: cls - """ - yaml.add_constructor(u'!{}'.format(cls.__name__), - _make_python_constructor(cls)) - yaml.add_representer(cls, _make_python_representer(cls)) - return cls - - -yaml.add_representer(SharedConfig, - lambda d, o: d.represent_data(o.default_value)) - - -@serializable -class Callable(object): - """ - Helper to be used in Yaml for creating arbitrary class objects - - Args: - full_type (str): the full module path to target function - """ - - def __init__(self, full_type, args=[], kwargs={}): - super(Callable, self).__init__() - self.full_type = full_type - self.args = args - self.kwargs = kwargs - - def __call__(self): - if '.' in self.full_type: - idx = self.full_type.rfind('.') - module = importlib.import_module(self.full_type[:idx]) - func_name = self.full_type[idx + 1:] - else: - try: - module = importlib.import_module('builtins') - except Exception: - module = importlib.import_module('__builtin__') - func_name = self.full_type - - func = getattr(module, func_name) - return func(*self.args, **self.kwargs) diff --git a/PaddleCV/PaddleDetection/ppdet/core/workspace.py b/PaddleCV/PaddleDetection/ppdet/core/workspace.py deleted file mode 100644 index bf505d6e4d1aab311057763c52f4ef501606a7fb..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/core/workspace.py +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function -from __future__ import division - -import importlib -import os -import sys - -import yaml -import copy - -from .config.schema import SchemaDict, SharedConfig, extract_schema -from .config.yaml_helpers import serializable - -__all__ = [ - 'global_config', - 'load_config', - 'merge_config', - 'get_registered_modules', - 'create', - 'register', - 'serializable', - 'dump_value', -] - - -def dump_value(value): - # XXX this is hackish, but collections.abc is not available in python 2 - if hasattr(value, '__dict__') or isinstance(value, (dict, tuple, list)): - value = yaml.dump(value, default_flow_style=True) - value = value.replace('\n', '') - value = value.replace('...', '') - return "'{}'".format(value) - else: - # primitive types - return str(value) - - -class AttrDict(dict): - """Single level attribute dict, NOT recursive""" - - def __init__(self, **kwargs): - super(AttrDict, self).__init__() - super(AttrDict, self).update(kwargs) - - def __getattr__(self, key): - if key in self: - return self[key] - raise AttributeError("object has no attribute '{}'".format(key)) - - -global_config = AttrDict() - - -def load_config(file_path): - """ - Load config from file. - - Args: - file_path (str): Path of the config file to be loaded. - - Returns: global config - """ - _, ext = os.path.splitext(file_path) - assert ext in ['.yml', '.yaml'], "only support yaml files for now" - with open(file_path) as f: - merge_config(yaml.load(f, Loader=yaml.Loader)) - return global_config - - -def merge_config(config): - """ - Merge config into global config. - - Args: - config (dict): Config to be merged. - - Returns: global config - """ - for key, value in config.items(): - if isinstance(value, dict) and key in global_config: - global_config[key].update(value) - else: - global_config[key] = value - - -def get_registered_modules(): - return {k: v for k, v in global_config.items() if isinstance(v, SchemaDict)} - - -def make_partial(cls): - op_module = importlib.import_module(cls.__op__.__module__) - op = getattr(op_module, cls.__op__.__name__) - cls.__category__ = getattr(cls, '__category__', None) or 'op' - - def partial_apply(self, *args, **kwargs): - kwargs_ = self.__dict__.copy() - kwargs_.update(kwargs) - return op(*args, **kwargs_) - - if getattr(cls, '__append_doc__', True): # XXX should default to True? - if sys.version_info[0] > 2: - cls.__doc__ = "Wrapper for `{}` OP".format(op.__name__) - cls.__init__.__doc__ = op.__doc__ - cls.__call__ = partial_apply - cls.__call__.__doc__ = op.__doc__ - else: - # XXX work around for python 2 - partial_apply.__doc__ = op.__doc__ - cls.__call__ = partial_apply - return cls - - -def register(cls): - """ - Register a given module class. - - Args: - cls (type): Module class to be registered. - - Returns: cls - """ - if cls.__name__ in global_config: - raise ValueError("Module class already registered: {}".format( - cls.__name__)) - if hasattr(cls, '__op__'): - cls = make_partial(cls) - global_config[cls.__name__] = extract_schema(cls) - return cls - - -def create(cls_or_name, **kwargs): - """ - Create an instance of given module class. - - Args: - cls_or_name (type or str): Class of which to create instance. - - Returns: instance of type `cls_or_name` - """ - assert type(cls_or_name) in [type, str - ], "should be a class or name of a class" - name = type(cls_or_name) == str and cls_or_name or cls_or_name.__name__ - assert name in global_config and \ - isinstance(global_config[name], SchemaDict), \ - "the module {} is not registered".format(name) - config = global_config[name] - config.update(kwargs) - config.validate() - cls = getattr(config.pymodule, name) - - kwargs = {} - kwargs.update(global_config[name]) - - # parse `shared` annoation of registered modules - if getattr(config, 'shared', None): - for k in config.shared: - target_key = config[k] - shared_conf = config.schema[k].default - assert isinstance(shared_conf, SharedConfig) - if target_key is not None and not isinstance(target_key, - SharedConfig): - continue # value is given for the module - elif shared_conf.key in global_config: - # `key` is present in config - kwargs[k] = global_config[shared_conf.key] - else: - kwargs[k] = shared_conf.default_value - - # parse `inject` annoation of registered modules - if getattr(config, 'inject', None): - for k in config.inject: - target_key = config[k] - # optional dependency - if target_key is None: - continue - # also accept dictionaries and serialized objects - if isinstance(target_key, dict) or hasattr(target_key, '__dict__'): - continue - elif isinstance(target_key, str): - if target_key not in global_config: - raise ValueError("Missing injection config:", target_key) - target = global_config[target_key] - if isinstance(target, SchemaDict): - kwargs[k] = create(target_key) - elif hasattr(target, '__dict__'): # serialized object - kwargs[k] = target - else: - raise ValueError("Unsupported injection type:", target_key) - # prevent modification of global config values of reference types - # (e.g., list, dict) from within the created module instances - kwargs = copy.deepcopy(kwargs) - return cls(**kwargs) diff --git a/PaddleCV/PaddleDetection/ppdet/data/README.md b/PaddleCV/PaddleDetection/ppdet/data/README.md deleted file mode 120000 index 238fc99bf487f0505c27541ecaa9a64b0bcd62f7..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/README.md +++ /dev/null @@ -1 +0,0 @@ -docs/DATA.md \ No newline at end of file diff --git a/PaddleCV/PaddleDetection/ppdet/data/README_cn.md b/PaddleCV/PaddleDetection/ppdet/data/README_cn.md deleted file mode 120000 index c8e59f3054954c6abe6732b01998a87d6d3074c4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/README_cn.md +++ /dev/null @@ -1 +0,0 @@ -docs/DATA_cn.md \ No newline at end of file diff --git a/PaddleCV/PaddleDetection/ppdet/data/__init__.py b/PaddleCV/PaddleDetection/ppdet/data/__init__.py deleted file mode 100644 index 1104c33f6ac34b8ec32681f5c4a7fc4d89274bfb..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/__init__.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# module to prepare data for detection model training -# -# implementation notes: -# - Dateset -# basic interface to accessing data samples in stream mode -# -# - xxxSource (RoiDbSource) -# * subclass of 'Dataset' -# * load data from local files and other source data -# -# - xxxOperator (DecodeImage) -# * subclass of 'BaseOperator' -# * each op can transform a sample, eg: decode/resize/crop image -# * each op must obey basic rules defined in transform.operator.base -# -# - transformer -# * subclass of 'Dataset' -# * 'MappedDataset' accept a 'xxxSource' and a list of 'xxxOperator' -# to build a transformed 'Dataset' - -from __future__ import absolute_import - -from .dataset import Dataset -from .reader import Reader -import traceback -if traceback.extract_stack()[0][ - 0] == 'ppdet/data/tools/generate_data_for_training.py': - __all__ = ['Dataset', 'Reader'] -else: - from .data_feed import create_reader - __all__ = ['Dataset', 'Reader', 'create_reader'] diff --git a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py b/PaddleCV/PaddleDetection/ppdet/data/data_feed.py deleted file mode 100644 index cbaebc2e4860e40481a8e1defdeea3edde22eb7e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py +++ /dev/null @@ -1,1067 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function -from __future__ import division - -import os -import inspect - -from ppdet.core.workspace import register, serializable -from ppdet.utils.download import get_dataset_path - -from ppdet.data.reader import Reader -# XXX these are for triggering the decorator -from ppdet.data.transform.operators import ( - DecodeImage, MixupImage, NormalizeBox, NormalizeImage, RandomDistort, - RandomFlipImage, RandomInterpImage, ResizeImage, ExpandImage, CropImage, - Permute, MultiscaleTestResize) -from ppdet.data.transform.arrange_sample import ( - ArrangeRCNN, ArrangeEvalRCNN, ArrangeTestRCNN, ArrangeSSD, ArrangeEvalSSD, - ArrangeTestSSD, ArrangeYOLO, ArrangeEvalYOLO, ArrangeTestYOLO) - -__all__ = [ - 'PadBatch', 'MultiScale', 'RandomShape', 'PadMSTest', 'DataSet', - 'CocoDataSet', 'DataFeed', 'TrainFeed', 'EvalFeed', 'FasterRCNNTrainFeed', - 'MaskRCNNTrainFeed', 'FasterRCNNEvalFeed', 'MaskRCNNEvalFeed', - 'FasterRCNNTestFeed', 'MaskRCNNTestFeed', 'SSDTrainFeed', 'SSDEvalFeed', - 'SSDTestFeed', 'YoloTrainFeed', 'YoloEvalFeed', 'YoloTestFeed', - 'create_reader' -] - - -def _prepare_data_config(feed, args_path): - # if `DATASET_DIR` does not exists, search ~/.paddle/dataset for a directory - # named `DATASET_DIR` (e.g., coco, pascal), if not present either, download - dataset_home = args_path if args_path else feed.dataset.dataset_dir - if dataset_home: - annotation = getattr(feed.dataset, 'annotation', None) - image_dir = getattr(feed.dataset, 'image_dir', None) - dataset_dir = get_dataset_path(dataset_home, 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: - mixup_epoch = feed.mixup_epoch - - data_config = { - 'ANNO_FILE': feed.dataset.annotation, - 'IMAGE_DIR': feed.dataset.image_dir, - 'USE_DEFAULT_LABEL': feed.dataset.use_default_label, - 'IS_SHUFFLE': feed.shuffle, - 'SAMPLES': feed.samples, - 'WITH_BACKGROUND': feed.with_background, - 'MIXUP_EPOCH': mixup_epoch, - 'TYPE': type(feed.dataset).__source__ - } - - if feed.mode == 'TRAIN': - data_config['CLASS_AWARE_SAMPLING'] = getattr( - feed, 'class_aware_sampling', False) - - if len(getattr(feed.dataset, 'images', [])) > 0: - data_config['IMAGES'] = feed.dataset.images - - return data_config - - -def create_reader(feed, max_iter=0, args_path=None, my_source=None): - """ - Return iterable data reader. - - Args: - max_iter (int): number of iterations. - my_source (callable): callable function to create a source iterator - which is used to provide source data in 'ppdet.data.reader' - """ - - # if `DATASET_DIR` does not exists, search ~/.paddle/dataset for a directory - # named `DATASET_DIR` (e.g., coco, pascal), if not present either, download - data_config = _prepare_data_config(feed, args_path) - - bufsize = getattr(feed, 'bufsize', 10) - use_process = getattr(feed, 'use_process', False) - memsize = getattr(feed, 'memsize', '3G') - transform_config = { - 'WORKER_CONF': { - 'bufsize': bufsize, - 'worker_num': feed.num_workers, - 'use_process': use_process, - 'memsize': memsize - }, - 'BATCH_SIZE': feed.batch_size, - 'DROP_LAST': feed.drop_last, - 'USE_PADDED_IM_INFO': feed.use_padded_im_info, - } - - batch_transforms = feed.batch_transforms - pad = [t for t in batch_transforms if isinstance(t, PadBatch)] - rand_shape = [t for t in batch_transforms if isinstance(t, RandomShape)] - multi_scale = [t for t in batch_transforms if isinstance(t, MultiScale)] - pad_ms_test = [t for t in batch_transforms if isinstance(t, PadMSTest)] - - if any(pad): - transform_config['IS_PADDING'] = True - if pad[0].pad_to_stride != 0: - transform_config['COARSEST_STRIDE'] = pad[0].pad_to_stride - if any(rand_shape): - transform_config['RANDOM_SHAPES'] = rand_shape[0].sizes - if any(multi_scale): - transform_config['MULTI_SCALES'] = multi_scale[0].scales - if any(pad_ms_test): - transform_config['ENABLE_MULTISCALE_TEST'] = True - transform_config['NUM_SCALE'] = feed.num_scale - transform_config['COARSEST_STRIDE'] = pad_ms_test[0].pad_to_stride - - if hasattr(inspect, 'getfullargspec'): - argspec = inspect.getfullargspec - else: - argspec = inspect.getargspec - - ops = [] - for op in feed.sample_transforms: - op_dict = op.__dict__.copy() - argnames = [ - arg for arg in argspec(type(op).__init__).args if arg != 'self' - ] - op_dict = {k: v for k, v in op_dict.items() if k in argnames} - op_dict['op'] = op.__class__.__name__ - ops.append(op_dict) - transform_config['OPS'] = ops - - return Reader.create(feed.mode, data_config, transform_config, max_iter, - my_source) - - -# XXX batch transforms are only stubs for now, actually handled by `post_map` -@serializable -class PadBatch(object): - """ - Pad a batch of samples to same dimensions - - Args: - pad_to_stride (int): pad to multiple of strides, e.g., 32 - """ - - def __init__(self, pad_to_stride=0): - super(PadBatch, self).__init__() - self.pad_to_stride = pad_to_stride - - -@serializable -class MultiScale(object): - """ - Randomly resize image by scale - - Args: - scales (list): list of int, randomly resize to one of these scales - """ - - def __init__(self, scales=[]): - super(MultiScale, self).__init__() - self.scales = scales - - -@serializable -class RandomShape(object): - """ - Randomly reshape a batch - - Args: - sizes (list): list of int, random choose a size from these - """ - - def __init__(self, sizes=[]): - super(RandomShape, self).__init__() - self.sizes = sizes - - -@serializable -class PadMSTest(object): - """ - Padding for multi-scale test - - Args: - pad_to_stride (int): pad to multiple of strides, e.g., 32 - """ - - def __init__(self, pad_to_stride=0): - super(PadMSTest, self).__init__() - self.pad_to_stride = pad_to_stride - - -@serializable -class DataSet(object): - """ - Dataset, e.g., coco, pascal voc - - Args: - annotation (str): annotation file path - image_dir (str): directory where image files are stored - shuffle (bool): shuffle samples - """ - __source__ = 'RoiDbSource' - - def __init__(self, - annotation, - image_dir=None, - dataset_dir=None, - use_default_label=None): - super(DataSet, self).__init__() - self.dataset_dir = dataset_dir - self.annotation = annotation - self.image_dir = image_dir - self.use_default_label = use_default_label - - -COCO_DATASET_DIR = 'dataset/coco' -COCO_TRAIN_ANNOTATION = 'annotations/instances_train2017.json' -COCO_TRAIN_IMAGE_DIR = 'train2017' -COCO_VAL_ANNOTATION = 'annotations/instances_val2017.json' -COCO_VAL_IMAGE_DIR = 'val2017' - - -@serializable -class CocoDataSet(DataSet): - def __init__(self, - dataset_dir=COCO_DATASET_DIR, - annotation=COCO_TRAIN_ANNOTATION, - image_dir=COCO_TRAIN_IMAGE_DIR): - super(CocoDataSet, self).__init__( - dataset_dir=dataset_dir, annotation=annotation, image_dir=image_dir) - - -VOC_DATASET_DIR = 'dataset/voc' -VOC_TRAIN_ANNOTATION = 'train.txt' -VOC_VAL_ANNOTATION = 'val.txt' -VOC_IMAGE_DIR = None -VOC_USE_DEFAULT_LABEL = True - - -@serializable -class VocDataSet(DataSet): - __source__ = 'VOCSource' - - def __init__(self, - dataset_dir=VOC_DATASET_DIR, - annotation=VOC_TRAIN_ANNOTATION, - image_dir=VOC_IMAGE_DIR, - use_default_label=VOC_USE_DEFAULT_LABEL): - super(VocDataSet, self).__init__( - dataset_dir=dataset_dir, - annotation=annotation, - image_dir=image_dir, - use_default_label=use_default_label) - - -@serializable -class SimpleDataSet(DataSet): - __source__ = 'SimpleSource' - - def __init__(self, - dataset_dir=None, - annotation=None, - image_dir=None, - use_default_label=None): - super(SimpleDataSet, self).__init__( - dataset_dir=dataset_dir, annotation=annotation, image_dir=image_dir) - self.images = [] - - def add_images(self, images): - self.images.extend(images) - - -@serializable -class DataFeed(object): - """ - DataFeed encompasses all data loading related settings - - Args: - dataset (object): a `Dataset` instance - fields (list): list of data fields needed - image_shape (list): list of image dims (C, MAX_DIM, MIN_DIM) - sample_transforms (list): list of sample transformations to use - batch_transforms (list): list of batch transformations to use - batch_size (int): number of images per device - shuffle (bool): if samples should be shuffled - drop_last (bool): drop last batch if size is uneven - num_workers (int): number of workers processes (or threads) - bufsize (int): size of queue used to buffer results from workers - use_process (bool): use process or thread as workers - memsize (str): size of shared memory used in result queue - when 'use_process' is True, default to '3G' - """ - __category__ = 'data' - - def __init__(self, - dataset, - fields, - image_shape, - sample_transforms=None, - batch_transforms=None, - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - with_background=True, - num_workers=2, - bufsize=10, - use_process=False, - memsize=None, - use_padded_im_info=False, - class_aware_sampling=False): - super(DataFeed, self).__init__() - self.fields = fields - self.image_shape = image_shape - self.sample_transforms = sample_transforms - self.batch_transforms = batch_transforms - self.batch_size = batch_size - self.shuffle = shuffle - self.samples = samples - self.drop_last = drop_last - self.with_background = with_background - self.num_workers = num_workers - self.bufsize = bufsize - self.use_process = use_process - self.memsize = memsize - self.dataset = dataset - self.use_padded_im_info = use_padded_im_info - self.class_aware_sampling = class_aware_sampling - if isinstance(dataset, dict): - self.dataset = DataSet(**dataset) - - -# for custom (i.e., Non-preset) datasets -@register -class TrainFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset, - fields, - image_shape, - sample_transforms=[], - batch_transforms=[], - batch_size=1, - shuffle=True, - samples=-1, - drop_last=False, - with_background=True, - num_workers=2, - bufsize=10, - use_process=True, - memsize=None): - super(TrainFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers, - bufsize=bufsize, - use_process=use_process, - memsize=memsize) - - -@register -class EvalFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset, - fields, - image_shape, - sample_transforms=[], - batch_transforms=[], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - with_background=True, - num_workers=2): - super(EvalFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers) - - -@register -class TestFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset, - fields, - image_shape, - sample_transforms=[], - batch_transforms=[], - batch_size=1, - shuffle=False, - drop_last=False, - with_background=True, - num_workers=2): - super(TestFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers) - - -# yapf: disable -@register -class FasterRCNNTrainFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet().__dict__, - fields=[ - 'image', 'im_info', 'im_id', 'gt_box', 'gt_label', - 'is_crowd' - ], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - RandomFlipImage(prob=0.5), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - ResizeImage(target_size=800, max_size=1333, interp=1), - Permute(to_bgr=False) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=True, - samples=-1, - drop_last=False, - bufsize=10, - num_workers=2, - use_process=False, - memsize=None, - class_aware_sampling=False): - # XXX this should be handled by the data loader, since `fields` is - # given, just collect them - sample_transforms.append(ArrangeRCNN()) - super(FasterRCNNTrainFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - bufsize=bufsize, - num_workers=num_workers, - use_process=use_process, - memsize=memsize, - class_aware_sampling=class_aware_sampling) - # XXX these modes should be unified - self.mode = 'TRAIN' - - -@register -class FasterRCNNEvalFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_info', 'im_id', 'im_shape', 'gt_box', - 'gt_label', 'is_difficult'], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - ResizeImage(target_size=800, max_size=1333, interp=1), - Permute(to_bgr=False) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - num_workers=2, - use_padded_im_info=True, - enable_multiscale=False, - num_scale=1, - enable_aug_flip=False): - sample_transforms.append(ArrangeEvalRCNN()) - super(FasterRCNNEvalFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - use_padded_im_info=use_padded_im_info) - self.mode = 'VAL' - self.enable_multiscale = enable_multiscale - self.num_scale = num_scale - self.enable_aug_flip = enable_aug_flip - - -@register -class FasterRCNNTestFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=SimpleDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - Permute(to_bgr=False) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - num_workers=2, - use_padded_im_info=True): - sample_transforms.append(ArrangeTestRCNN()) - if isinstance(dataset, dict): - dataset = SimpleDataSet(**dataset) - super(FasterRCNNTestFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - use_padded_im_info=use_padded_im_info) - self.mode = 'TEST' - - -# XXX currently use two presets, in the future, these should be combined into a -# single `RCNNTrainFeed`. Mask (and keypoint) should be processed -# automatically if `gt_mask` (or `gt_keypoints`) is in the required fields -@register -class MaskRCNNTrainFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet().__dict__, - fields=[ - 'image', 'im_info', 'im_id', 'gt_box', 'gt_label', - 'is_crowd', 'gt_mask' - ], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - RandomFlipImage(prob=0.5, is_mask_flip=True), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - ResizeImage(target_size=800, - max_size=1333, - interp=1, - use_cv2=True), - Permute(to_bgr=False, channel_first=True) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=True, - samples=-1, - drop_last=False, - num_workers=2, - use_process=False, - use_padded_im_info=False): - sample_transforms.append(ArrangeRCNN(is_mask=True)) - super(MaskRCNNTrainFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - use_process=use_process) - self.mode = 'TRAIN' - - -@register -class MaskRCNNEvalFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - ResizeImage(target_size=800, - max_size=1333, - interp=1, - use_cv2=True), - Permute(to_bgr=False, channel_first=True) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - num_workers=2, - use_process=False, - use_padded_im_info=True, - enable_multiscale=False, - num_scale=1, - enable_aug_flip=False): - sample_transforms.append(ArrangeTestRCNN()) - super(MaskRCNNEvalFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - use_process=use_process, - use_padded_im_info=use_padded_im_info) - self.mode = 'VAL' - self.enable_multiscale = enable_multiscale - self.num_scale = num_scale - self.enable_aug_flip = enable_aug_flip - - -@register -class MaskRCNNTestFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=SimpleDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], - sample_transforms=[ - DecodeImage(to_rgb=True), - NormalizeImage( - mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - Permute(to_bgr=False, channel_first=True) - ], - batch_transforms=[PadBatch()], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - num_workers=2, - use_process=False, - use_padded_im_info=True): - sample_transforms.append(ArrangeTestRCNN()) - if isinstance(dataset, dict): - dataset = SimpleDataSet(**dataset) - super(MaskRCNNTestFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - use_process=use_process, - use_padded_im_info=use_padded_im_info) - self.mode = 'TEST' - - -@register -class SSDTrainFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=VocDataSet().__dict__, - fields=['image', 'gt_box', 'gt_label'], - image_shape=[3, 300, 300], - sample_transforms=[ - DecodeImage(to_rgb=True, with_mixup=False), - NormalizeBox(), - RandomDistort(brightness_lower=0.875, - brightness_upper=1.125, - is_order=True), - ExpandImage(max_ratio=4, prob=0.5), - CropImage(batch_sampler=[[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]], - satisfy_all=False, avoid_no_bbox=False), - ResizeImage(target_size=300, use_cv2=False, interp=1), - RandomFlipImage(is_normalized=True), - Permute(), - NormalizeImage(mean=[127.5, 127.5, 127.5], - std=[127.502231, 127.502231, 127.502231], - is_scale=False) - ], - batch_transforms=[], - batch_size=32, - shuffle=True, - samples=-1, - drop_last=True, - num_workers=8, - bufsize=10, - use_process=True, - memsize=None): - sample_transforms.append(ArrangeSSD()) - super(SSDTrainFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - bufsize=bufsize, - use_process=use_process, - memsize=None) - self.mode = 'TRAIN' - - -@register -class SSDEvalFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__( - self, - dataset=VocDataSet(VOC_VAL_ANNOTATION).__dict__, - fields=['image', 'im_shape', 'im_id', 'gt_box', - 'gt_label', 'is_difficult'], - image_shape=[3, 300, 300], - sample_transforms=[ - DecodeImage(to_rgb=True, with_mixup=False), - NormalizeBox(), - ResizeImage(target_size=300, use_cv2=False, interp=1), - Permute(), - NormalizeImage( - mean=[127.5, 127.5, 127.5], - std=[127.502231, 127.502231, 127.502231], - is_scale=False) - ], - batch_transforms=[], - batch_size=64, - shuffle=False, - samples=-1, - drop_last=True, - num_workers=8, - bufsize=10, - use_process=False, - memsize=None): - sample_transforms.append(ArrangeEvalSSD(fields)) - super(SSDEvalFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - bufsize=bufsize, - use_process=use_process, - memsize=memsize) - self.mode = 'VAL' - - -@register -class SSDTestFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=SimpleDataSet(VOC_VAL_ANNOTATION).__dict__, - fields=['image', 'im_id', 'im_shape'], - image_shape=[3, 300, 300], - sample_transforms=[ - DecodeImage(to_rgb=True), - ResizeImage(target_size=300, use_cv2=False, interp=1), - Permute(), - NormalizeImage( - mean=[127.5, 127.5, 127.5], - std=[127.502231, 127.502231, 127.502231], - is_scale=False) - ], - batch_transforms=[], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - num_workers=8, - bufsize=10, - use_process=False, - memsize=None): - sample_transforms.append(ArrangeTestSSD()) - if isinstance(dataset, dict): - dataset = SimpleDataSet(**dataset) - super(SSDTestFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - num_workers=num_workers, - bufsize=bufsize, - use_process=use_process, - memsize=memsize) - self.mode = 'TEST' - - -@register -class YoloTrainFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet().__dict__, - fields=['image', 'gt_box', 'gt_label', 'gt_score'], - image_shape=[3, 608, 608], - sample_transforms=[ - DecodeImage(to_rgb=True, with_mixup=True), - MixupImage(alpha=1.5, beta=1.5), - NormalizeBox(), - RandomDistort(), - ExpandImage(max_ratio=4., prob=.5, - mean=[123.675, 116.28, 103.53]), - CropImage([[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]]), - RandomInterpImage(target_size=608), - RandomFlipImage(is_normalized=True), - NormalizeImage( - mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - Permute(to_bgr=False), - ], - batch_transforms=[ - RandomShape(sizes=[ - 320, 352, 384, 416, 448, 480, 512, 544, 576, 608 - ]) - ], - batch_size=8, - shuffle=True, - samples=-1, - drop_last=True, - with_background=False, - num_workers=8, - bufsize=128, - use_process=True, - memsize=None, - num_max_boxes=50, - mixup_epoch=250, - class_aware_sampling=False): - sample_transforms.append(ArrangeYOLO()) - super(YoloTrainFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers, - bufsize=bufsize, - use_process=use_process, - memsize=memsize, - class_aware_sampling=class_aware_sampling) - self.num_max_boxes = num_max_boxes - self.mixup_epoch = mixup_epoch - self.mode = 'TRAIN' - - -@register -class YoloEvalFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=CocoDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_size', 'im_id', 'gt_box', - 'gt_label', 'is_difficult'], - image_shape=[3, 608, 608], - sample_transforms=[ - DecodeImage(to_rgb=True), - ResizeImage(target_size=608, interp=2), - NormalizeImage( - mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - Permute(to_bgr=False), - ], - batch_transforms=[], - batch_size=8, - shuffle=False, - samples=-1, - drop_last=False, - with_background=False, - num_workers=8, - num_max_boxes=50, - use_process=False, - memsize=None): - sample_transforms.append(ArrangeEvalYOLO()) - super(YoloEvalFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers, - use_process=use_process, - memsize=memsize) - self.num_max_boxes = num_max_boxes - self.mode = 'VAL' - self.bufsize = 128 - - # support image shape config, resize image with image_shape - for i, trans in enumerate(sample_transforms): - if isinstance(trans, ResizeImage): - sample_transforms[i] = ResizeImage( - target_size=self.image_shape[-1], - interp=trans.interp) - - -@register -class YoloTestFeed(DataFeed): - __doc__ = DataFeed.__doc__ - - def __init__(self, - dataset=SimpleDataSet(COCO_VAL_ANNOTATION, - COCO_VAL_IMAGE_DIR).__dict__, - fields=['image', 'im_size', 'im_id'], - image_shape=[3, 608, 608], - sample_transforms=[ - DecodeImage(to_rgb=True), - ResizeImage(target_size=608, interp=2), - NormalizeImage(mean=[0.485, 0.456, 0.406], - std=[0.229, 0.224, 0.225], - is_scale=True, - is_channel_first=False), - Permute(to_bgr=False), - ], - batch_transforms=[], - batch_size=1, - shuffle=False, - samples=-1, - drop_last=False, - with_background=False, - num_workers=8, - num_max_boxes=50, - use_process=False, - memsize=None): - sample_transforms.append(ArrangeTestYOLO()) - if isinstance(dataset, dict): - dataset = SimpleDataSet(**dataset) - super(YoloTestFeed, self).__init__( - dataset, - fields, - image_shape, - sample_transforms, - batch_transforms, - batch_size=batch_size, - shuffle=shuffle, - samples=samples, - drop_last=drop_last, - with_background=with_background, - num_workers=num_workers, - use_process=use_process, - memsize=memsize) - self.mode = 'TEST' - self.bufsize = 128 - - # support image shape config, resize image with image_shape - for i, trans in enumerate(sample_transforms): - if isinstance(trans, ResizeImage): - sample_transforms[i] = ResizeImage( - target_size=self.image_shape[-1], - interp=trans.interp) -# yapf: enable diff --git a/PaddleCV/PaddleDetection/ppdet/data/dataset.py b/PaddleCV/PaddleDetection/ppdet/data/dataset.py deleted file mode 100644 index 31d4df4a0146fd7bc5cdd21d02e06d58ebe0f99f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/dataset.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# interface for accessing data samples in stream - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - - -class Dataset(object): - """interface to access a stream of data samples""" - - def __init__(self): - self._epoch = -1 - - def __next__(self): - return self.next() - - def __iter__(self): - return self - - def __str__(self): - return "{}(fname:{}, epoch:{:d}, size:{:d}, pos:{:d})".format( - type(self).__name__, self._fname, self._epoch, - self.size(), self._pos) - - def next(self): - """get next sample""" - raise NotImplementedError('%s.next not available' % - (self.__class__.__name__)) - - def reset(self): - """reset to initial status and begins a new epoch""" - raise NotImplementedError('%s.reset not available' % - (self.__class__.__name__)) - - def size(self): - """get number of samples in this dataset""" - raise NotImplementedError('%s.size not available' % - (self.__class__.__name__)) - - def drained(self): - """whether all sampled has been readed out for this epoch""" - raise NotImplementedError('%s.drained not available' % - (self.__class__.__name__)) - - def epoch_id(self): - """return epoch id for latest sample""" - raise NotImplementedError('%s.epoch_id not available' % - (self.__class__.__name__)) diff --git a/PaddleCV/PaddleDetection/ppdet/data/reader.py b/PaddleCV/PaddleDetection/ppdet/data/reader.py deleted file mode 100644 index b2d4d07850601fb047b7b17fcb7c33ce6f35f6ea..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/reader.py +++ /dev/null @@ -1,142 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# Interface to build readers for detection data like COCO or VOC -# - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -from numbers import Integral - -import logging -from .source import build_source -from .transform import build_mapper, map, batch, batch_map - -logger = logging.getLogger(__name__) - - -class Reader(object): - """Interface to make readers for training or evaluation""" - - def __init__(self, data_cf, trans_conf, maxiter=-1): - self._data_cf = data_cf - self._trans_conf = trans_conf - self._maxiter = maxiter - self._cname2cid = None - assert isinstance(self._maxiter, Integral), "maxiter should be int" - - def _make_reader(self, mode, my_source=None): - """Build reader for training or validation""" - if my_source is None: - file_conf = self._data_cf[mode] - - # 1, Build data source - - sc_conf = {'data_cf': file_conf, 'cname2cid': self._cname2cid} - sc = build_source(sc_conf) - else: - sc = my_source - - # 2, Buid a transformed dataset - ops = self._trans_conf[mode]['OPS'] - batchsize = self._trans_conf[mode]['BATCH_SIZE'] - drop_last = False if 'DROP_LAST' not in \ - self._trans_conf[mode] else self._trans_conf[mode]['DROP_LAST'] - - mapper = build_mapper(ops, {'is_train': mode == 'TRAIN'}) - - worker_args = None - if 'WORKER_CONF' in self._trans_conf[mode]: - worker_args = self._trans_conf[mode]['WORKER_CONF'] - worker_args = {k.lower(): v for k, v in worker_args.items()} - - mapped_ds = map(sc, mapper, worker_args) - # In VAL mode, gt_bbox, gt_label can be empty, and should - # not be dropped - batched_ds = batch( - mapped_ds, batchsize, drop_last, drop_empty=(mode != "VAL")) - - trans_conf = {k.lower(): v for k, v in self._trans_conf[mode].items()} - need_keys = { - 'is_padding', - 'coarsest_stride', - 'random_shapes', - 'multi_scales', - 'use_padded_im_info', - 'enable_multiscale_test', - 'num_scale', - } - bm_config = { - key: value - for key, value in trans_conf.items() if key in need_keys - } - - batched_ds = batch_map(batched_ds, bm_config) - - batched_ds.reset() - if mode.lower() == 'train': - if self._cname2cid is not None: - logger.warn('cname2cid already set, it will be overridden') - self._cname2cid = getattr(sc, 'cname2cid', None) - - # 3, Build a reader - maxit = -1 if self._maxiter <= 0 else self._maxiter - - def _reader(): - n = 0 - while True: - for _batch in batched_ds: - yield _batch - n += 1 - if maxit > 0 and n == maxit: - return - batched_ds.reset() - if maxit <= 0: - return - - if hasattr(sc, 'get_imid2path'): - _reader.imid2path = sc.get_imid2path() - - return _reader - - def train(self): - """Build reader for training""" - return self._make_reader('TRAIN') - - def val(self): - """Build reader for validation""" - return self._make_reader('VAL') - - def test(self): - """Build reader for inference""" - return self._make_reader('TEST') - - @classmethod - def create(cls, - mode, - data_config, - transform_config, - max_iter=-1, - my_source=None, - ret_iter=True): - """ create a specific reader """ - reader = Reader({mode: data_config}, {mode: transform_config}, max_iter) - if ret_iter: - return reader._make_reader(mode, my_source) - else: - return reader diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/__init__.py b/PaddleCV/PaddleDetection/ppdet/data/source/__init__.py deleted file mode 100644 index e55df6962b36906edac71e8b3cb25334a1d336a4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/__init__.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import copy - -from .roidb_source import RoiDbSource -from .simple_source import SimpleSource -from .iterator_source import IteratorSource -from .class_aware_sampling_roidb_source import ClassAwareSamplingRoiDbSource - - -def build_source(config): - """ - Build dataset from source data, default source type is 'RoiDbSource' - Args: - config (dict): should have following structure: - { - data_cf (dict): - anno_file (str): label file or image list file path - image_dir (str): root directory for images - samples (int): number of samples to load, -1 means all - is_shuffle (bool): should samples be shuffled - load_img (bool): should images be loaded - mixup_epoch (int): parse mixup in first n epoch - with_background (bool): whether load background as a class - cname2cid (dict): the label name to id dictionary - } - """ - if 'data_cf' in config: - data_cf = config['data_cf'] - data_cf['cname2cid'] = config['cname2cid'] - else: - data_cf = config - - data_cf = {k.lower(): v for k, v in data_cf.items()} - - args = copy.deepcopy(data_cf) - # defaut type is 'RoiDbSource' - source_type = 'RoiDbSource' - if 'type' in data_cf: - if data_cf['type'] in ['VOCSource', 'COCOSource', 'RoiDbSource']: - if 'class_aware_sampling' in args and args['class_aware_sampling']: - source_type = 'ClassAwareSamplingRoiDbSource' - else: - source_type = 'RoiDbSource' - if 'class_aware_sampling' in args: - del args['class_aware_sampling'] - else: - source_type = data_cf['type'] - del args['type'] - if source_type == 'RoiDbSource': - return RoiDbSource(**args) - elif source_type == 'SimpleSource': - return SimpleSource(**args) - elif source_type == 'ClassAwareSamplingRoiDbSource': - return ClassAwareSamplingRoiDbSource(**args) - else: - raise ValueError('source type not supported: ' + source_type) diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/class_aware_sampling_roidb_source.py b/PaddleCV/PaddleDetection/ppdet/data/source/class_aware_sampling_roidb_source.py deleted file mode 100644 index 0175037c352594c48cce09ca033de18534937f87..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/class_aware_sampling_roidb_source.py +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#function: -# interface to load data from local files and parse it for samples, -# eg: roidb data in pickled files - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os -import random - -import copy -import collections -import pickle as pkl -import numpy as np -from .roidb_source import RoiDbSource - - -class ClassAwareSamplingRoiDbSource(RoiDbSource): - """ interface to load class aware sampling roidb data from files - """ - - def __init__(self, - anno_file, - image_dir=None, - samples=-1, - is_shuffle=True, - load_img=False, - cname2cid=None, - use_default_label=None, - mixup_epoch=-1, - with_background=True): - """ Init - - Args: - fname (str): label file path - image_dir (str): root dir for images - samples (int): samples to load, -1 means all - is_shuffle (bool): whether to shuffle samples - load_img (bool): whether load data in this class - cname2cid (dict): the label name to id dictionary - use_default_label (bool):whether use the default mapping of label to id - mixup_epoch (int): parse mixup in first n epoch - with_background (bool): whether load background - as a class - """ - super(ClassAwareSamplingRoiDbSource, self).__init__( - anno_file=anno_file, - image_dir=image_dir, - samples=samples, - is_shuffle=is_shuffle, - load_img=load_img, - cname2cid=cname2cid, - use_default_label=use_default_label, - mixup_epoch=mixup_epoch, - with_background=with_background) - self._img_weights = None - - def __str__(self): - return 'ClassAwareSamplingRoidbSource(fname:%s,epoch:%d,size:%d)' \ - % (self._fname, self._epoch, self.size()) - - def next(self): - """ load next sample - """ - if self._epoch < 0: - self.reset() - - _pos = np.random.choice( - self._samples, 1, replace=False, p=self._img_weights)[0] - sample = copy.deepcopy(self._roidb[_pos]) - - if self._load_img: - sample['image'] = self._load_image(sample['im_file']) - else: - sample['im_file'] = os.path.join(self._image_dir, sample['im_file']) - - return sample - - def _calc_img_weights(self): - """ calculate the probabilities of each sample - """ - imgs_cls = [] - num_per_cls = {} - img_weights = [] - for i, roidb in enumerate(self._roidb): - img_cls = set( - [k for cls in self._roidb[i]['gt_class'] for k in cls]) - imgs_cls.append(img_cls) - for c in img_cls: - if c not in num_per_cls: - num_per_cls[c] = 1 - else: - num_per_cls[c] += 1 - - for i in range(len(self._roidb)): - weights = 0 - for c in imgs_cls[i]: - weights += 1 / num_per_cls[c] - img_weights.append(weights) - # Probabilities sum to 1 - img_weights = img_weights / np.sum(img_weights) - return img_weights - - def reset(self): - """ implementation of Dataset.reset - """ - if self._roidb is None: - self._roidb = self._load() - - if self._img_weights is None: - self._img_weights = self._calc_img_weights() - - self._samples = len(self._roidb) - - if self._epoch < 0: - self._epoch = 0 diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/coco_loader.py b/PaddleCV/PaddleDetection/ppdet/data/source/coco_loader.py deleted file mode 100644 index db18498905358eef66b07969dab8f65606d3cdc0..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/coco_loader.py +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import numpy as np -from pycocotools.coco import COCO - -import logging -logger = logging.getLogger(__name__) - - -def load(anno_path, sample_num=-1, with_background=True): - """ - Load COCO records with annotations in json file 'anno_path' - - Args: - anno_path (str): json file path - sample_num (int): number of samples to load, -1 means all - with_background (bool): whether load background as a class. - if True, total class number will - be 81. default True - - Returns: - (records, cname2cid) - 'records' is list of dict whose structure is: - { - 'im_file': im_fname, # image file name - 'im_id': img_id, # image id - 'h': im_h, # height of image - 'w': im_w, # width - 'is_crowd': is_crowd, - 'gt_score': gt_score, - 'gt_class': gt_class, - 'gt_bbox': gt_bbox, - 'gt_poly': gt_poly, - } - 'cname2cid' is a dict used to map category name to class id - """ - assert anno_path.endswith('.json'), 'invalid coco annotation file: ' \ - + anno_path - coco = COCO(anno_path) - img_ids = coco.getImgIds() - cat_ids = coco.getCatIds() - records = [] - ct = 0 - - # when with_background = True, mapping category to classid, like: - # background:0, first_class:1, second_class:2, ... - catid2clsid = dict( - {catid: i + int(with_background) - for i, catid in enumerate(cat_ids)}) - cname2cid = dict({ - coco.loadCats(catid)[0]['name']: clsid - for catid, clsid in catid2clsid.items() - }) - - for img_id in img_ids: - img_anno = coco.loadImgs(img_id)[0] - im_fname = img_anno['file_name'] - im_w = float(img_anno['width']) - im_h = float(img_anno['height']) - - ins_anno_ids = coco.getAnnIds(imgIds=img_id, iscrowd=False) - instances = coco.loadAnns(ins_anno_ids) - - bboxes = [] - for inst in instances: - x, y, box_w, box_h = inst['bbox'] - x1 = max(0, x) - y1 = max(0, y) - x2 = min(im_w - 1, x1 + max(0, box_w - 1)) - y2 = min(im_h - 1, y1 + max(0, box_h - 1)) - if inst['area'] > 0 and x2 >= x1 and y2 >= y1: - inst['clean_bbox'] = [x1, y1, x2, y2] - bboxes.append(inst) - else: - logger.warn( - 'Found an invalid bbox in annotations: im_id: {}, area: {} x1: {}, y1: {}, x2: {}, y2: {}.'. - format(img_id, float(inst['area']), x1, y1, x2, y2)) - num_bbox = len(bboxes) - - gt_bbox = np.zeros((num_bbox, 4), dtype=np.float32) - gt_class = np.zeros((num_bbox, 1), dtype=np.int32) - gt_score = np.ones((num_bbox, 1), dtype=np.float32) - is_crowd = np.zeros((num_bbox, 1), dtype=np.int32) - difficult = np.zeros((num_bbox, 1), dtype=np.int32) - gt_poly = [None] * num_bbox - - for i, box in enumerate(bboxes): - catid = box['category_id'] - gt_class[i][0] = catid2clsid[catid] - gt_bbox[i, :] = box['clean_bbox'] - is_crowd[i][0] = box['iscrowd'] - if 'segmentation' in box: - gt_poly[i] = box['segmentation'] - - coco_rec = { - 'im_file': im_fname, - 'im_id': np.array([img_id]), - 'h': im_h, - 'w': im_w, - 'is_crowd': is_crowd, - 'gt_class': gt_class, - 'gt_bbox': gt_bbox, - 'gt_score': gt_score, - 'gt_poly': gt_poly, - 'difficult': difficult - } - - logger.debug('Load file: {}, im_id: {}, h: {}, w: {}.'.format( - im_fname, img_id, im_h, im_w)) - records.append(coco_rec) - ct += 1 - if sample_num > 0 and ct >= sample_num: - break - assert len(records) > 0, 'not found any coco record in %s' % (anno_path) - logger.info('{} samples in file {}'.format(ct, anno_path)) - return records, cname2cid diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/iterator_source.py b/PaddleCV/PaddleDetection/ppdet/data/source/iterator_source.py deleted file mode 100644 index 2785d4843e660843b554197a82530c8129244321..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/iterator_source.py +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import numpy as np -import copy - -import logging -logger = logging.getLogger(__name__) - -from ..dataset import Dataset - - -class IteratorSource(Dataset): - """ - Load data samples from iterator in stream mode - - Args: - iter_maker (callable): callable function to generate a iter - samples (int): number of samples to load, -1 means all - """ - - def __init__(self, - iter_maker, - samples=-1, - **kwargs): - super(IteratorSource, self).__init__() - self._epoch = -1 - - self._iter_maker = iter_maker - self._data_iter = None - self._pos = -1 - self._drained = False - self._samples = samples - self._sample_num = -1 - - def next(self): - if self._epoch < 0: - self.reset() - - if self._data_iter is not None: - try: - sample = next(self._data_iter) - self._pos += 1 - ret = sample - except StopIteration as e: - if self._sample_num <= 0: - self._sample_num = self._pos - elif self._sample_num != self._pos: - logger.info('num of loaded samples is different ' - 'with previouse setting[prev:%d,now:%d]' % (self._sample_num, self._pos)) - self._sample_num = self._pos - - self._data_iter = None - self._drained = True - raise e - else: - raise StopIteration("no more data in " + str(self)) - - if self._samples > 0 and self._pos >= self._samples: - self._data_iter = None - self._drained = True - raise StopIteration("no more data in " + str(self)) - else: - return ret - - def reset(self): - if self._data_iter is None: - self._data_iter = self._iter_maker() - - if self._epoch < 0: - self._epoch = 0 - else: - self._epoch += 1 - - self._pos = 0 - self._drained = False - - def size(self): - return self._sample_num - - def drained(self): - assert self._epoch >= 0, "the first epoch has not started yet" - return self._pos >= self.size() - - def epoch_id(self): - return self._epoch - diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/loader.py b/PaddleCV/PaddleDetection/ppdet/data/source/loader.py deleted file mode 100644 index bc73c8ea67b3bd82ca38ba4a65fd7a185a0c86b1..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/loader.py +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# load data records from local files(maybe in COCO or VOC data formats) - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os - -import numpy as np -import logging -import pickle as pkl - -logger = logging.getLogger(__name__) - - -def check_records(records): - """ check the fields of 'records' must contains some keys - """ - needed_fields = [ - 'im_file', 'im_id', 'h', 'w', 'is_crowd', 'gt_class', 'gt_bbox', - 'gt_poly' - ] - - for i, rec in enumerate(records): - for k in needed_fields: - assert k in rec, 'not found field[%s] in record[%d]' % (k, i) - - -def load_roidb(anno_file, sample_num=-1): - """ load normalized data records from file - 'anno_file' which is a pickled file. - And the records should has a structure: - { - 'im_file': str, # image file name - 'im_id': int, # image id - 'h': int, # height of image - 'w': int, # width of image - 'is_crowd': bool, - 'gt_class': list of np.ndarray, # classids info - 'gt_bbox': list of np.ndarray, # bounding box info - 'gt_poly': list of int, # poly info - } - - Args: - anno_file (str): file name for picked records - sample_num (int): number of samples to load - - Returns: - list of records for detection model training - """ - - assert anno_file.endswith('.roidb'), 'invalid roidb file[%s]' % (anno_file) - with open(anno_file, 'rb') as f: - roidb = f.read() - # for support python3 and python2 - try: - records, cname2cid = pkl.loads(roidb, encoding='bytes') - except: - records, cname2cid = pkl.loads(roidb) - - assert type(records) is list, 'invalid data type from roidb' - - if sample_num > 0 and sample_num < len(records): - records = records[:sample_num] - - return records, cname2cid - - -def load(fname, - samples=-1, - with_background=True, - with_cat2id=False, - use_default_label=None, - cname2cid=None): - """ Load data records from 'fnames' - - Args: - fnames (str): file name for data record, eg: - instances_val2017.json or COCO17_val2017.roidb - samples (int): number of samples to load, default to all - with_background (bool): whether load background as a class. - default True. - with_cat2id (bool): whether return cname2cid info out - use_default_label (bool): whether use the default mapping of label to id - cname2cid (dict): the mapping of category name to id - - Returns: - list of loaded records whose structure is: - { - 'im_file': str, # image file name - 'im_id': int, # image id - 'h': int, # height of image - 'w': int, # width of image - 'is_crowd': bool, - 'gt_class': list of np.ndarray, # classids info - 'gt_bbox': list of np.ndarray, # bounding box info - 'gt_poly': list of int, # poly info - } - - """ - - if fname.endswith('.roidb'): - records, cname2cid = load_roidb(fname, samples) - elif fname.endswith('.json'): - from . import coco_loader - records, cname2cid = coco_loader.load(fname, samples, with_background) - elif "wider_face" in fname: - from . import widerface_loader - records = widerface_loader.load(fname, samples) - return records - elif os.path.isfile(fname): - from . import voc_loader - if use_default_label is None or cname2cid is not None: - records, cname2cid = voc_loader.get_roidb(fname, samples, cname2cid, - with_background=with_background) - else: - records, cname2cid = voc_loader.load(fname, samples, - use_default_label, - with_background=with_background) - else: - raise ValueError('invalid file type when load data from file[%s]' % - (fname)) - check_records(records) - if with_cat2id: - return records, cname2cid - else: - return records diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/roidb_source.py b/PaddleCV/PaddleDetection/ppdet/data/source/roidb_source.py deleted file mode 100644 index 7d42e87b898010235f794ffdc3d6b3e4ee2adc24..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/roidb_source.py +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#function: -# interface to load data from local files and parse it for samples, -# eg: roidb data in pickled files - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os -import random - -import copy -import pickle as pkl -from ..dataset import Dataset - - -class RoiDbSource(Dataset): - """ interface to load roidb data from files - """ - - def __init__(self, - anno_file, - image_dir=None, - samples=-1, - is_shuffle=True, - load_img=False, - cname2cid=None, - use_default_label=None, - mixup_epoch=-1, - with_background=True): - """ Init - - Args: - fname (str): label file path - image_dir (str): root dir for images - samples (int): samples to load, -1 means all - is_shuffle (bool): whether to shuffle samples - load_img (bool): whether load data in this class - cname2cid (dict): the label name to id dictionary - use_default_label (bool):whether use the default mapping of label to id - mixup_epoch (int): parse mixup in first n epoch - with_background (bool): whether load background - as a class - """ - super(RoiDbSource, self).__init__() - self._epoch = -1 - assert os.path.isfile(anno_file) or os.path.isdir(anno_file), \ - 'anno_file {} is not a file or a directory'.format(anno_file) - self._fname = anno_file - self._image_dir = image_dir if image_dir is not None else '' - if image_dir is not None: - assert os.path.isdir(image_dir), \ - 'image_dir {} is not a directory'.format(image_dir) - self._roidb = None - self._pos = -1 - self._drained = False - self._samples = samples - self._is_shuffle = is_shuffle - self._load_img = load_img - self.use_default_label = use_default_label - self._mixup_epoch = mixup_epoch - self._with_background = with_background - self.cname2cid = cname2cid - self._imid2path = None - - def __str__(self): - return 'RoiDbSource(fname:%s,epoch:%d,size:%d,pos:%d)' \ - % (self._fname, self._epoch, self.size(), self._pos) - - def next(self): - """ load next sample - """ - if self._epoch < 0: - self.reset() - if self._pos >= self._samples: - self._drained = True - raise StopIteration('%s no more data' % (str(self))) - sample = copy.deepcopy(self._roidb[self._pos]) - if self._load_img: - sample['image'] = self._load_image(sample['im_file']) - else: - sample['im_file'] = os.path.join(self._image_dir, sample['im_file']) - - if self._epoch < self._mixup_epoch: - mix_idx = random.randint(1, self._samples - 1) - mix_pos = (mix_idx + self._pos) % self._samples - sample['mixup'] = copy.deepcopy(self._roidb[mix_pos]) - if self._load_img: - sample['mixup']['image'] = \ - self._load_image(sample['mixup']['im_file']) - else: - sample['mixup']['im_file'] = \ - os.path.join(self._image_dir, sample['mixup']['im_file']) - self._pos += 1 - return sample - - def _load(self): - """ load data from file - """ - from . import loader - records, cname2cid = loader.load(self._fname, self._samples, - self._with_background, True, - self.use_default_label, self.cname2cid) - self.cname2cid = cname2cid - return records - - def _load_image(self, where): - fn = os.path.join(self._image_dir, where) - with open(fn, 'rb') as f: - return f.read() - - def reset(self): - """ implementation of Dataset.reset - """ - if self._roidb is None: - self._roidb = self._load() - - self._samples = len(self._roidb) - if self._is_shuffle: - random.shuffle(self._roidb) - - if self._epoch < 0: - self._epoch = 0 - else: - self._epoch += 1 - - self._pos = 0 - self._drained = False - - def size(self): - """ implementation of Dataset.size - """ - return len(self._roidb) - - def drained(self): - """ implementation of Dataset.drained - """ - assert self._epoch >= 0, 'The first epoch has not begin!' - return self._pos >= self.size() - - def epoch_id(self): - """ return epoch id for latest sample - """ - return self._epoch - - def get_imid2path(self): - """return image id to image path map""" - if self._imid2path is None: - self._imid2path = {} - for record in self._roidb: - im_id = record['im_id'] - im_id = im_id if isinstance(im_id, int) else im_id[0] - im_path = os.path.join(self._image_dir, record['im_file']) - self._imid2path[im_id] = im_path - return self._imid2path diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/simple_source.py b/PaddleCV/PaddleDetection/ppdet/data/source/simple_source.py deleted file mode 100644 index a65dd054e369d97b303b9018facac3381440dfec..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/simple_source.py +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# interface to load data from txt file. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import numpy as np -import copy -from ..dataset import Dataset - - -class SimpleSource(Dataset): - """ - Load image files for testing purpose - - Args: - images (list): list of path of images - samples (int): number of samples to load, -1 means all - load_img (bool): should images be loaded - """ - - def __init__(self, - images=[], - samples=-1, - load_img=True, - **kwargs): - super(SimpleSource, self).__init__() - self._epoch = -1 - for image in images: - assert image != '' and os.path.isfile(image), \ - "Image {} not found".format(image) - self._images = images - self._fname = None - self._simple = None - self._pos = -1 - self._drained = False - self._samples = samples - self._load_img = load_img - self._imid2path = {} - - def next(self): - if self._epoch < 0: - self.reset() - - if self._pos >= self.size(): - self._drained = True - raise StopIteration("no more data in " + str(self)) - else: - sample = copy.deepcopy(self._simple[self._pos]) - if self._load_img: - sample['image'] = self._load_image(sample['im_file']) - - self._pos += 1 - return sample - - def _load(self): - ct = 0 - records = [] - for image in self._images: - if self._samples > 0 and ct >= self._samples: - break - rec = {'im_id': np.array([ct]), 'im_file': image} - self._imid2path[ct] = image - ct += 1 - records.append(rec) - assert len(records) > 0, "no image file found" - return records - - def _load_image(self, where): - with open(where, 'rb') as f: - return f.read() - - def reset(self): - if self._simple is None: - self._simple = self._load() - - if self._epoch < 0: - self._epoch = 0 - else: - self._epoch += 1 - - self._pos = 0 - self._drained = False - - def size(self): - return len(self._simple) - - def drained(self): - assert self._epoch >= 0, "the first epoch has not started yet" - return self._pos >= self.size() - - def epoch_id(self): - return self._epoch - - def get_imid2path(self): - """return image id to image path map""" - return self._imid2path diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/voc_loader.py b/PaddleCV/PaddleDetection/ppdet/data/source/voc_loader.py deleted file mode 100644 index 8fc1b79547b8e70b612e956c9c0ac3b1427f5b19..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/voc_loader.py +++ /dev/null @@ -1,272 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import numpy as np - -import xml.etree.ElementTree as ET - - -def get_roidb(anno_path, - sample_num=-1, - cname2cid=None, - with_background=True): - """ - Load VOC records with annotations in xml directory 'anno_path' - - Notes: - ${anno_path} must contains xml file and image file path for annotations - - Args: - anno_path (str): root directory for voc annotation data - sample_num (int): number of samples to load, -1 means all - cname2cid (dict): the label name to id dictionary - with_background (bool): whether load background as a class. - if True, total class number will - be 81. default True - - Returns: - (records, catname2clsid) - 'records' is list of dict whose structure is: - { - 'im_file': im_fname, # image file name - 'im_id': im_id, # image id - 'h': im_h, # height of image - 'w': im_w, # width - 'is_crowd': is_crowd, - 'gt_class': gt_class, - 'gt_bbox': gt_bbox, - 'gt_poly': gt_poly, - } - 'cname2id' is a dict to map category name to class id - """ - - data_dir = os.path.dirname(anno_path) - - records = [] - ct = 0 - existence = False if cname2cid is None else True - if cname2cid is None: - cname2cid = {} - - # mapping category name to class id - # background:0, first_class:1, second_class:2, ... - with open(anno_path, 'r') as fr: - while True: - line = fr.readline() - if not line: - break - img_file, xml_file = [os.path.join(data_dir, x) \ - for x in line.strip().split()[:2]] - if not os.path.isfile(xml_file): - continue - tree = ET.parse(xml_file) - if tree.find('id') is None: - im_id = np.array([ct]) - else: - im_id = np.array([int(tree.find('id').text)]) - - objs = tree.findall('object') - im_w = float(tree.find('size').find('width').text) - im_h = float(tree.find('size').find('height').text) - gt_bbox = np.zeros((len(objs), 4), dtype=np.float32) - gt_class = np.zeros((len(objs), 1), dtype=np.int32) - gt_score = np.ones((len(objs), 1), dtype=np.float32) - is_crowd = np.zeros((len(objs), 1), dtype=np.int32) - difficult = np.zeros((len(objs), 1), dtype=np.int32) - for i, obj in enumerate(objs): - cname = obj.find('name').text - if not existence and cname not in cname2cid: - # the background's id is 0, so need to add 1. - cname2cid[cname] = len(cname2cid) + int(with_background) - elif existence and cname not in cname2cid: - raise KeyError( - 'Not found cname[%s] in cname2cid when map it to cid.' % - (cname)) - gt_class[i][0] = cname2cid[cname] - _difficult = int(obj.find('difficult').text) - x1 = float(obj.find('bndbox').find('xmin').text) - y1 = float(obj.find('bndbox').find('ymin').text) - x2 = float(obj.find('bndbox').find('xmax').text) - y2 = float(obj.find('bndbox').find('ymax').text) - x1 = max(0, x1) - y1 = max(0, y1) - x2 = min(im_w - 1, x2) - y2 = min(im_h - 1, y2) - gt_bbox[i] = [x1, y1, x2, y2] - is_crowd[i][0] = 0 - difficult[i][0] = _difficult - voc_rec = { - 'im_file': img_file, - 'im_id': im_id, - 'h': im_h, - 'w': im_w, - 'is_crowd': is_crowd, - 'gt_class': gt_class, - 'gt_score': gt_score, - 'gt_bbox': gt_bbox, - 'gt_poly': [], - 'difficult': difficult - } - if len(objs) != 0: - records.append(voc_rec) - - ct += 1 - if sample_num > 0 and ct >= sample_num: - break - assert len(records) > 0, 'not found any voc record in %s' % (anno_path) - return [records, cname2cid] - - -def load(anno_path, - sample_num=-1, - use_default_label=True, - with_background=True): - """ - Load VOC records with annotations in - xml directory 'anno_path' - - Notes: - ${anno_path} must contains xml file and image file path for annotations - - Args: - @anno_path (str): root directory for voc annotation data - @sample_num (int): number of samples to load, -1 means all - @use_default_label (bool): whether use the default mapping of label to id - @with_background (bool): whether load background as a class. - if True, total class number will - be 81. default True - - Returns: - (records, catname2clsid) - 'records' is list of dict whose structure is: - { - 'im_file': im_fname, # image file name - 'im_id': im_id, # image id - 'h': im_h, # height of image - 'w': im_w, # width - 'is_crowd': is_crowd, - 'gt_class': gt_class, - 'gt_bbox': gt_bbox, - 'gt_poly': gt_poly, - } - 'cname2id' is a dict to map category name to class id - """ - - data_dir = os.path.dirname(anno_path) - - # mapping category name to class id - # if with_background is True: - # background:0, first_class:1, second_class:2, ... - # if with_background is False: - # first_class:0, second_class:1, ... - records = [] - ct = 0 - cname2cid = {} - if not use_default_label: - label_path = os.path.join(data_dir, 'label_list.txt') - with open(label_path, 'r') as fr: - label_id = int(with_background) - for line in fr.readlines(): - cname2cid[line.strip()] = label_id - label_id += 1 - else: - cname2cid = pascalvoc_label(with_background) - - with open(anno_path, 'r') as fr: - while True: - line = fr.readline() - if not line: - break - img_file, xml_file = [os.path.join(data_dir, x) \ - for x in line.strip().split()[:2]] - if not os.path.isfile(xml_file): - continue - tree = ET.parse(xml_file) - if tree.find('id') is None: - im_id = np.array([ct]) - else: - im_id = np.array([int(tree.find('id').text)]) - - objs = tree.findall('object') - im_w = float(tree.find('size').find('width').text) - im_h = float(tree.find('size').find('height').text) - gt_bbox = np.zeros((len(objs), 4), dtype=np.float32) - gt_class = np.zeros((len(objs), 1), dtype=np.int32) - gt_score = np.ones((len(objs), 1), dtype=np.float32) - is_crowd = np.zeros((len(objs), 1), dtype=np.int32) - difficult = np.zeros((len(objs), 1), dtype=np.int32) - for i, obj in enumerate(objs): - cname = obj.find('name').text - gt_class[i][0] = cname2cid[cname] - _difficult = int(obj.find('difficult').text) - x1 = float(obj.find('bndbox').find('xmin').text) - y1 = float(obj.find('bndbox').find('ymin').text) - x2 = float(obj.find('bndbox').find('xmax').text) - y2 = float(obj.find('bndbox').find('ymax').text) - x1 = max(0, x1) - y1 = max(0, y1) - x2 = min(im_w - 1, x2) - y2 = min(im_h - 1, y2) - gt_bbox[i] = [x1, y1, x2, y2] - is_crowd[i][0] = 0 - difficult[i][0] = _difficult - voc_rec = { - 'im_file': img_file, - 'im_id': im_id, - 'h': im_h, - 'w': im_w, - 'is_crowd': is_crowd, - 'gt_class': gt_class, - 'gt_score': gt_score, - 'gt_bbox': gt_bbox, - 'gt_poly': [], - 'difficult': difficult - } - if len(objs) != 0: - records.append(voc_rec) - - ct += 1 - if sample_num > 0 and ct >= sample_num: - break - assert len(records) > 0, 'not found any voc record in %s' % (anno_path) - return [records, cname2cid] - - -def pascalvoc_label(with_background=True): - labels_map = { - 'aeroplane': 1, - 'bicycle': 2, - 'bird': 3, - 'boat': 4, - 'bottle': 5, - 'bus': 6, - 'car': 7, - 'cat': 8, - 'chair': 9, - 'cow': 10, - 'diningtable': 11, - 'dog': 12, - 'horse': 13, - 'motorbike': 14, - 'person': 15, - 'pottedplant': 16, - 'sheep': 17, - 'sofa': 18, - 'train': 19, - 'tvmonitor': 20 - } - if not with_background: - labels_map = {k: v - 1 for k, v in labels_map.items()} - return labels_map diff --git a/PaddleCV/PaddleDetection/ppdet/data/source/widerface_loader.py b/PaddleCV/PaddleDetection/ppdet/data/source/widerface_loader.py deleted file mode 100644 index 97ed476004e8c7a6ef67dfe155487efd2277f15c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/source/widerface_loader.py +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import numpy as np -import logging -logger = logging.getLogger(__name__) - - -def load(anno_path, - sample_num=-1, - cname2cid=None, - with_background=True): - """ - Load WiderFace records with 'anno_path' - - Args: - anno_path (str): root directory for voc annotation data - sample_num (int): number of samples to load, -1 means all - with_background (bool): whether load background as a class. - if True, total class number will - be 2. default True - - Returns: - (records, catname2clsid) - 'records' is list of dict whose structure is: - { - 'im_file': im_fname, # image file name - 'im_id': im_id, # image id - 'gt_class': gt_class, - 'gt_bbox': gt_bbox, - } - 'cname2id' is a dict to map category name to class id - """ - - txt_file = anno_path - - records = [] - ct = 0 - file_lists = _load_file_list(txt_file) - cname2cid = widerface_label(with_background) - - for item in file_lists: - im_fname = item[0] - im_id = np.array([ct]) - gt_bbox = np.zeros((len(item) - 2, 4), dtype=np.float32) - gt_class = np.ones((len(item) - 2, 1), dtype=np.int32) - for index_box in range(len(item)): - if index_box >= 2: - temp_info_box = item[index_box].split(' ') - xmin = float(temp_info_box[0]) - ymin = float(temp_info_box[1]) - w = float(temp_info_box[2]) - h = float(temp_info_box[3]) - # Filter out wrong labels - if w < 0 or h < 0: - continue - xmin = max(0, xmin) - ymin = max(0, ymin) - xmax = xmin + w - ymax = ymin + h - gt_bbox[index_box - 2] = [xmin, ymin, xmax, ymax] - - widerface_rec = { - 'im_file': im_fname, - 'im_id': im_id, - 'gt_bbox': gt_bbox, - 'gt_class': gt_class, - } - # logger.debug - if len(item) != 0: - records.append(widerface_rec) - - ct += 1 - if sample_num > 0 and ct >= sample_num: - break - assert len(records) > 0, 'not found any widerface in %s' % (anno_path) - logger.info('{} samples in file {}'.format(ct, anno_path)) - return records, cname2cid - - -def _load_file_list(input_txt): - with open(input_txt, 'r') as f_dir: - lines_input_txt = f_dir.readlines() - - file_dict = {} - num_class = 0 - for i in range(len(lines_input_txt)): - line_txt = lines_input_txt[i].strip('\n\t\r') - if '.jpg' in line_txt: - if i != 0: - num_class += 1 - file_dict[num_class] = [] - file_dict[num_class].append(line_txt) - if '.jpg' not in line_txt: - if len(line_txt) > 6: - split_str = line_txt.split(' ') - x1_min = float(split_str[0]) - y1_min = float(split_str[1]) - x2_max = float(split_str[2]) - y2_max = float(split_str[3]) - line_txt = str(x1_min) + ' ' + str(y1_min) + ' ' + str( - x2_max) + ' ' + str(y2_max) - file_dict[num_class].append(line_txt) - else: - file_dict[num_class].append(line_txt) - - return list(file_dict.values()) - - -def widerface_label(with_background=True): - labels_map = { - 'face': 1 - } - if not with_background: - labels_map = {k: v - 1 for k, v in labels_map.items()} - return labels_map diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/000012.jpg b/PaddleCV/PaddleDetection/ppdet/data/tests/000012.jpg deleted file mode 100644 index b829107b842f6f15706744fdcbea05ec7341b311..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/ppdet/data/tests/000012.jpg and /dev/null differ diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/coco.yml b/PaddleCV/PaddleDetection/ppdet/data/tests/coco.yml deleted file mode 100644 index 80ae7ed9e424601082e233e7158d9c0a28f1727b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/coco.yml +++ /dev/null @@ -1,48 +0,0 @@ -DATA: - TRAIN: - ANNO_FILE: data/coco.test/train2017.roidb - IMAGE_DIR: data/coco.test/train2017 - SAMPLES: 10 - TYPE: RoiDbSource - VAL: - ANNO_FILE: data/coco.test/val2017.roidb - IMAGE_DIR: data/coco.test/val2017 - SAMPLES: 10 - TYPE: RoiDbSource -TRANSFORM: - TRAIN: - OPS: - - OP: DecodeImage - TO_RGB: False - - OP: RandomFlipImage - PROB: 0.5 - - OP: NormalizeImage - MEAN: [102.9801, 115.9465, 122.7717] - IS_SCALE: False - IS_CHANNEL_FIRST: False - - OP: ResizeImage - TARGET_SIZE: 800 - MAX_SIZE: 1333 - - OP: Permute - TO_BGR: False - - OP: ArrangeRCNN - BATCH_SIZE: 1 - IS_PADDING: True - DROP_LAST: False - WORKER_CONF: - BUFSIZE: 100 - WORKER_NUM: 4 - USE_PROCESS: True - MEMSIZE: 2G - VAL: - OPS: - - OP: DecodeImage - TO_RGB: True - - OP: ResizeImage - TARGET_SIZE: 224 - - OP: ArrangeSSD - BATCH_SIZE: 1 - WORKER_CONF: - BUFSIZE: 100 - WORKER_NUM: 4 - USE_PROCESS: True diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/data/prepare_data.sh b/PaddleCV/PaddleDetection/ppdet/data/tests/data/prepare_data.sh deleted file mode 100755 index a81abc5d80b16e795d8020d00a27ef7c851f0185..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/data/prepare_data.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -#function: -# prepare coco data for testing - -root=$(dirname `readlink -f ${BASH_SOURCE}[0]`) -cwd=`pwd` - -if [[ $cwd != $root ]];then - pushd $root 2>&1 1>/dev/null -fi - -test_coco_python2_url="http://filecenter.matrix.baidu.com/api/v1/file/wanglong03/coco.test.python2.zip/20190603095315/download" -test_coco_python3_url="http://filecenter.matrix.baidu.com/api/v1/file/wanglong03/coco.test.python3.zip/20190603095447/download" - -if [[ $1 = "python2" ]];then - test_coco_data_url=${test_coco_python2_url} - coco_zip_file="coco.test.python2.zip" -else - test_coco_data_url=${test_coco_python3_url} - coco_zip_file="coco.test.python3.zip" -fi -echo "download testing coco from url[${test_coco_data_url}]" -coco_root_dir=${coco_zip_file/.zip/} - -# clear already exist file or directory -rm -rf ${coco_root_dir} ${coco_zip_file} - -wget ${test_coco_data_url} -O ${coco_zip_file} -if [ -e $coco_zip_file ];then - echo "succeed to download ${coco_zip_file}, so unzip it" - unzip ${coco_zip_file} >/dev/null 2>&1 -fi - -if [ -e ${coco_root_dir} ];then - rm -rf coco.test - ln -s ${coco_root_dir} coco.test - echo "succeed to generate coco data in[${coco_root_dir}] for testing" - exit 0 -else - echo "failed to generate coco data" - exit 1 -fi diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/rcnn_dataset.yml b/PaddleCV/PaddleDetection/ppdet/data/tests/rcnn_dataset.yml deleted file mode 100644 index b57fd55e94df68a4a9ddbbaa60ca20226377c451..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/rcnn_dataset.yml +++ /dev/null @@ -1,32 +0,0 @@ -DATA: - TRAIN: - ANNO_FILE: data/coco.test/train2017.roidb - IMAGE_DIR: data/coco.test/train2017 - SAMPLES: 10 - IS_SHUFFLE: True - TYPE: RoiDbSource -TRANSFORM: - TRAIN: - OPS: - - OP: DecodeImage - TO_RGB: False - - OP: RandomFlipImage - PROB: 0.5 - - OP: NormalizeImage - MEAN: [102.9801, 115.9465, 122.7717] - IS_SCALE: False - IS_CHANNEL_FIRST: False - - OP: ResizeImage - TARGET_SIZE: 800 - MAX_SIZE: 1333 - - OP: Permute - TO_BGR: False - - OP: ArrangeRCNN - BATCH_SIZE: 1 - IS_PADDING: True - DROP_LAST: False - WORKER_CONF: - BUFSIZE: 100 - WORKER_NUM: 4 - MEMSIZE: 2G - USE_PROCESS: True diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/run_all_tests.py b/PaddleCV/PaddleDetection/ppdet/data/tests/run_all_tests.py deleted file mode 100644 index a1882d5dd38a4da14335244e7603af47568b7bbf..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/run_all_tests.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#!/usr/bin/python -#-*-coding:utf-8-*- -"""Run all tests -""" - -import unittest -import test_loader -import test_operator -import test_roidb_source -import test_iterator_source -import test_transformer -import test_reader - -if __name__ == '__main__': - alltests = unittest.TestSuite([ - unittest.TestLoader().loadTestsFromTestCase(t) \ - for t in [ - test_loader.TestLoader, - test_operator.TestBase, - test_roidb_source.TestRoiDbSource, - test_iterator_source.TestIteratorSource, - test_transformer.TestTransformer, - test_reader.TestReader, - ] - ]) - - was_succ = unittest\ - .TextTestRunner(verbosity=2)\ - .run(alltests)\ - .wasSuccessful() - - exit(0 if was_succ else 1) diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/set_env.py b/PaddleCV/PaddleDetection/ppdet/data/tests/set_env.py deleted file mode 100644 index bc46ac0f10e3b1690cf59bd6803eedd0bee6d9d4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/set_env.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import sys -import os -import six -import logging - -import matplotlib -matplotlib.use('Agg', force=False) - -prefix = os.path.dirname(os.path.abspath(__file__)) - -#coco data for testing -if six.PY3: - version = 'python3' -else: - version = 'python2' - -data_root = os.path.join(prefix, 'data/coco.test.%s' % (version)) - -# coco data for testing -coco_data = { - 'TRAIN': { - 'ANNO_FILE': os.path.join(data_root, 'train2017.roidb'), - 'IMAGE_DIR': os.path.join(data_root, 'train2017') - }, - 'VAL': { - 'ANNO_FILE': os.path.join(data_root, 'val2017.roidb'), - 'IMAGE_DIR': os.path.join(data_root, 'val2017') - } -} - -script = os.path.join(os.path.dirname(__file__), 'data/prepare_data.sh') - -if not os.path.exists(data_root): - ret = os.system('bash %s %s' % (script, version)) - if ret != 0: - logging.error('not found file[%s], you should manually prepare ' - 'your data using "data/prepare_data.sh"' % (data_root)) - sys.exit(1) diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_iterator_source.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_iterator_source.py deleted file mode 100644 index c32a734fb258dce2205d24f1dc60479fadaf57a6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_iterator_source.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import unittest -import sys -import logging - -import set_env -from ppdet.data.source import IteratorSource - - -def _generate_iter_maker(num=10): - def _reader(): - for i in range(num): - yield {'image': 'image_' + str(i), 'label': i} - - return _reader - -class TestIteratorSource(unittest.TestCase): - """Test cases for dataset.source.roidb_source - """ - - @classmethod - def setUpClass(cls): - """ setup - """ - pass - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_basic(self): - """ test basic apis 'next/size/drained' - """ - iter_maker = _generate_iter_maker() - iter_source = IteratorSource(iter_maker) - for i, sample in enumerate(iter_source): - self.assertTrue('image' in sample) - self.assertGreater(len(sample['image']), 0) - self.assertTrue(iter_source.drained()) - self.assertEqual(i + 1, iter_source.size()) - - def test_reset(self): - """ test functions 'reset/epoch_id' - """ - iter_maker = _generate_iter_maker() - iter_source = IteratorSource(iter_maker) - - self.assertTrue(iter_source.next() is not None) - self.assertEqual(iter_source.epoch_id(), 0) - - iter_source.reset() - - self.assertEqual(iter_source.epoch_id(), 1) - self.assertTrue(iter_source.next() is not None) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_loader.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_loader.py deleted file mode 100644 index dc835aa0f12ecb82e267c57f7a9f875a9adc48ce..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_loader.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals -import os -import time -import unittest -import sys -import logging -import numpy as np - -import set_env - - -class TestLoader(unittest.TestCase): - """Test cases for dataset.source.loader - """ - - @classmethod - def setUpClass(cls): - """ setup - """ - cls.prefix = os.path.dirname(os.path.abspath(__file__)) - # json data - cls.anno_path = os.path.join(cls.prefix, - 'data/coco/instances_val2017.json') - cls.image_dir = os.path.join(cls.prefix, 'data/coco/val2017') - cls.anno_path1 = os.path.join(cls.prefix, - "data/voc/ImageSets/Main/train.txt") - cls.image_dir1 = os.path.join(cls.prefix, "data/voc/JPEGImages") - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_load_coco_in_json(self): - """ test loading COCO data in json file - """ - from ppdet.data.source.coco_loader import load - if not os.path.exists(self.anno_path): - logging.warn('not found %s, so skip this test' % (self.anno_path)) - return - samples = 10 - records, cname2id = load(self.anno_path, samples) - self.assertEqual(len(records), samples) - self.assertGreater(len(cname2id), 0) - - def test_load_coco_in_roidb(self): - """ test loading COCO data in pickled records - """ - anno_path = os.path.join(self.prefix, - 'data/roidbs/instances_val2017.roidb') - - if not os.path.exists(anno_path): - logging.warn('not found %s, so skip this test' % (anno_path)) - return - - samples = 10 - from ppdet.data.source.loader import load_roidb - records, cname2cid = load_roidb(anno_path, samples) - self.assertEqual(len(records), samples) - self.assertGreater(len(cname2cid), 0) - - def test_load_voc_in_xml(self): - """ test loading VOC data in xml files - """ - from ppdet.data.source.voc_loader import load - if not os.path.exists(self.anno_path1): - logging.warn('not found %s, so skip this test' % (self.anno_path1)) - return - samples = 3 - records, cname2cid = load(self.anno_path1, samples) - self.assertEqual(len(records), samples) - self.assertGreater(len(cname2cid), 0) - - def test_load_voc_in_roidb(self): - """ test loading VOC data in pickled records - """ - anno_path = os.path.join(self.prefix, 'data/roidbs/train.roidb') - - if not os.path.exists(anno_path): - logging.warn('not found %s, so skip this test' % (anno_path)) - return - - samples = 3 - from ppdet.data.source.loader import load_roidb - records, cname2cid = load_roidb(anno_path, samples) - self.assertEqual(len(records), samples) - self.assertGreater(len(cname2cid), 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_operator.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_operator.py deleted file mode 100644 index 85d5b229d48fab968f38639d5f7533e5646f25c3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_operator.py +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import unittest -import logging -import numpy as np -import set_env -import ppdet.data.transform as tf -logging.basicConfig(level=logging.INFO) - - -class TestBase(unittest.TestCase): - """Test cases for dataset.transform.operator - """ - - @classmethod - def setUpClass(cls, with_mixup=False): - """ setup - """ - roidb_fname = set_env.coco_data['TRAIN']['ANNO_FILE'] - image_dir = set_env.coco_data['TRAIN']['IMAGE_DIR'] - import pickle as pkl - with open(roidb_fname, 'rb') as f: - roidb = f.read() - roidb = pkl.loads(roidb) - fn = os.path.join(image_dir, roidb[0][0]['im_file']) - with open(fn, 'rb') as f: - roidb[0][0]['image'] = f.read() - if with_mixup: - mixup_fn = os.path.join(image_dir, roidb[0][1]['im_file']) - roidb[0][0]['mixup'] = roidb[0][1] - with open(fn, 'rb') as f: - roidb[0][0]['mixup']['image'] = f.read() - cls.sample = roidb[0][0] - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_ops_all(self): - """ test operators - """ - # ResizeImage - ops_conf = [{ - 'op': 'DecodeImage' - }, { - 'op': 'ResizeImage', - 'target_size': 300, - 'max_size': 1333 - }] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - data = self.sample.copy() - result0 = mapper(data) - self.assertIsNotNone(result0['image']) - self.assertEqual(len(result0['image'].shape), 3) - # RandFlipImage - ops_conf = [{'op': 'RandomFlipImage'}] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - result1 = mapper(result0) - self.assertEqual(result1['image'].shape, result0['image'].shape) - self.assertEqual(result1['gt_bbox'].shape, result0['gt_bbox'].shape) - # NormalizeImage - ops_conf = [{'op': 'NormalizeImage', 'is_channel_first': False}] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - result2 = mapper(result1) - im1 = result1['image'] - count = np.where(im1 <= 1)[0] - if im1.dtype == 'float64': - self.assertEqual(count, im1.shape[0] * im1.shape[1], im1.shape[2]) - # ArrangeSample - ops_conf = [{'op': 'ArrangeRCNN'}] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - result3 = mapper(result2) - self.assertEqual(type(result3), tuple) - - def test_ops_part1(self): - """test Crop and Resize - """ - ops_conf = [{ - 'op': 'DecodeImage' - }, { - 'op': 'NormalizeBox' - }, { - 'op': 'CropImage', - 'batch_sampler': [[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]] - }] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - data = self.sample.copy() - result = mapper(data) - self.assertEqual(len(result['image'].shape), 3) - - def test_ops_part2(self): - """test Expand and RandomDistort - """ - ops_conf = [{ - 'op': 'DecodeImage' - }, { - 'op': 'NormalizeBox' - }, { - 'op': 'ExpandImage', - 'max_ratio': 1.5, - 'prob': 1 - }] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - data = self.sample.copy() - result = mapper(data) - self.assertEqual(len(result['image'].shape), 3) - self.assertGreater(result['gt_bbox'].shape[0], 0) - - def test_ops_part3(self): - """test Mixup and RandomInterp - """ - ops_conf = [{ - 'op': 'DecodeImage', - 'with_mixup': True, - }, { - 'op': 'MixupImage', - }, { - 'op': 'RandomInterpImage', - 'target_size': 608 - }] - mapper = tf.build_mapper(ops_conf) - self.assertTrue(mapper is not None) - data = self.sample.copy() - result = mapper(data) - self.assertEqual(len(result['image'].shape), 3) - self.assertGreater(result['gt_bbox'].shape[0], 0) - #self.assertGreater(result['gt_score'].shape[0], 0) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_reader.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_reader.py deleted file mode 100644 index e94484dff077d9b12a82f7337cd9cb165e8bd23f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_reader.py +++ /dev/null @@ -1,159 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import unittest -import sys -import logging -import numpy as np -import yaml - -import set_env -from ppdet.data.reader import Reader -from ppdet.data.source import build_source -from ppdet.data.source import IteratorSource - - -class TestReader(unittest.TestCase): - """Test cases for dataset.reader - """ - - @classmethod - def setUpClass(cls): - """ setup - """ - prefix = os.path.dirname(os.path.abspath(__file__)) - coco_yml = os.path.join(prefix, 'coco.yml') - with open(coco_yml, 'rb') as f: - cls.coco_conf = yaml.load(f.read()) - - cls.coco_conf['DATA']['TRAIN'] = set_env.coco_data['TRAIN'] - cls.coco_conf['DATA']['VAL'] = set_env.coco_data['VAL'] - - rcnn_yml = os.path.join(prefix, 'rcnn_dataset.yml') - - with open(rcnn_yml, 'rb') as f: - cls.rcnn_conf = yaml.load(f.read()) - - cls.rcnn_conf['DATA']['TRAIN'] = set_env.coco_data['TRAIN'] - cls.rcnn_conf['DATA']['VAL'] = set_env.coco_data['VAL'] - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_train(self): - """ Test reader for training - """ - coco = Reader( - self.coco_conf['DATA'], self.coco_conf['TRANSFORM'], maxiter=1000) - train_rd = coco.train() - self.assertTrue(train_rd is not None) - - ct = 0 - total = 0 - bytes = 0 - prev_ts = None - for sample in train_rd(): - if prev_ts is None: - start_ts = time.time() - prev_ts = start_ts - - ct += 1 - bytes += 4 * sample[0][0].size * len(sample[0]) - self.assertTrue(sample is not None) - cost = time.time() - prev_ts - if cost >= 1.0: - total += ct - qps = total / (time.time() - start_ts) - bps = bytes / (time.time() - start_ts) - - logging.info('got %d/%d samples in %.3fsec with qps:%d bps:%d' % - (ct, total, cost, qps, bps)) - bytes = 0 - ct = 0 - prev_ts = time.time() - - total += ct - self.assertEqual(total, coco._maxiter) - - def test_val(self): - """ Test reader for validation - """ - coco = Reader(self.coco_conf['DATA'], self.coco_conf['TRANSFORM'], 10) - val_rd = coco.val() - self.assertTrue(val_rd is not None) - - # test 3 epoches - for _ in range(3): - ct = 0 - for sample in val_rd(): - ct += 1 - self.assertTrue(sample is not None) - self.assertGreaterEqual(ct, coco._maxiter) - - def test_rcnn_train(self): - """ Test reader for training - """ - anno = self.rcnn_conf['DATA']['TRAIN']['ANNO_FILE'] - if not os.path.exists(anno): - logging.error('exit test_rcnn for not found file[%s]' % (anno)) - return - - rcnn = Reader(self.rcnn_conf['DATA'], self.rcnn_conf['TRANSFORM'], 10) - rcnn_rd = rcnn.train() - self.assertTrue(rcnn_rd is not None) - - ct = 0 - out = None - for sample in rcnn_rd(): - out = sample - ct += 1 - self.assertTrue(sample is not None) - self.assertEqual(out[0][0].shape[0], 3) - self.assertEqual(out[0][1].shape[0], 3) - self.assertEqual(out[0][3].shape[1], 4) - self.assertEqual(out[0][4].shape[1], 1) - self.assertEqual(out[0][5].shape[1], 1) - self.assertGreaterEqual(ct, rcnn._maxiter) - - def test_create(self): - """ Test create a reader using my source - """ - def _my_data_reader(): - mydata = build_source(self.rcnn_conf['DATA']['TRAIN']) - for i, sample in enumerate(mydata): - yield sample - - my_source = IteratorSource(_my_data_reader) - mode = 'TRAIN' - train_rd = Reader.create(mode, - self.rcnn_conf['DATA'][mode], - self.rcnn_conf['TRANSFORM'][mode], - max_iter=10, my_source=my_source) - - out = None - for sample in train_rd(): - out = sample - self.assertTrue(sample is not None) - self.assertEqual(out[0][0].shape[0], 3) - self.assertEqual(out[0][1].shape[0], 3) - self.assertEqual(out[0][3].shape[1], 4) - self.assertEqual(out[0][4].shape[1], 1) - self.assertEqual(out[0][5].shape[1], 1) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_roidb_source.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_roidb_source.py deleted file mode 100644 index 105cc9cd7d9d971bf2a3f69cccf251ce2943275a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_roidb_source.py +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import unittest -import sys -import logging - -import set_env -from ppdet.data.source import build_source - - -class TestRoiDbSource(unittest.TestCase): - """Test cases for dataset.source.roidb_source - """ - - @classmethod - def setUpClass(cls): - """ setup - """ - anno_path = set_env.coco_data['TRAIN']['ANNO_FILE'] - image_dir = set_env.coco_data['TRAIN']['IMAGE_DIR'] - cls.config = { - 'data_cf': { - 'anno_file': anno_path, - 'image_dir': image_dir, - 'samples': 100, - 'load_img': True - }, - 'cname2cid': None - } - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_basic(self): - """ test basic apis 'next/size/drained' - """ - roi_source = build_source(self.config) - for i, sample in enumerate(roi_source): - self.assertTrue('image' in sample) - self.assertGreater(len(sample['image']), 0) - self.assertTrue(roi_source.drained()) - self.assertEqual(i + 1, roi_source.size()) - - def test_reset(self): - """ test functions 'reset/epoch_id' - """ - roi_source = build_source(self.config) - - self.assertTrue(roi_source.next() is not None) - self.assertEqual(roi_source.epoch_id(), 0) - - roi_source.reset() - - self.assertEqual(roi_source.epoch_id(), 1) - self.assertTrue(roi_source.next() is not None) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tests/test_transformer.py b/PaddleCV/PaddleDetection/ppdet/data/tests/test_transformer.py deleted file mode 100644 index 9123669293e6d0f432d1e90aa32e933d7fb6851c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tests/test_transformer.py +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import unittest -import sys -import logging -import numpy as np - -import set_env -import ppdet.data.transform as tf -from ppdet.data.source import build_source - -logger = logging.getLogger(__name__) - -logging.basicConfig(level=logging.INFO) - - -class TestTransformer(unittest.TestCase): - """Test cases for dataset.transform.transformer - """ - - @classmethod - def setUpClass(cls): - """ setup - """ - - prefix = os.path.dirname(os.path.abspath(__file__)) - # json data - anno_path = set_env.coco_data['TRAIN']['ANNO_FILE'] - image_dir = set_env.coco_data['TRAIN']['IMAGE_DIR'] - cls.sc_config = { - 'anno_file': anno_path, - 'image_dir': image_dir, - 'samples': 200 - } - - cls.ops = [{ - 'op': 'DecodeImage', - 'to_rgb': True - }, { - 'op': 'ResizeImage', - 'target_size': 800, - 'max_size': 1333 - }, { - 'op': 'ArrangeRCNN', - 'is_mask': False - }] - - @classmethod - def tearDownClass(cls): - """ tearDownClass """ - pass - - def test_map(self): - """ test transformer.map - """ - mapper = tf.build_mapper(self.ops) - ds = build_source(self.sc_config) - mapped_ds = tf.map(ds, mapper) - ct = 0 - for sample in mapped_ds: - self.assertTrue(type(sample[0]) is np.ndarray) - ct += 1 - - self.assertEqual(ct, mapped_ds.size()) - - def test_parallel_map(self): - """ test transformer.map with concurrent workers - """ - mapper = tf.build_mapper(self.ops) - ds = build_source(self.sc_config) - worker_conf = {'WORKER_NUM': 2, 'use_process': True} - mapped_ds = tf.map(ds, mapper, worker_conf) - - ct = 0 - for sample in mapped_ds: - self.assertTrue(type(sample[0]) is np.ndarray) - ct += 1 - - self.assertTrue(mapped_ds.drained()) - self.assertEqual(ct, mapped_ds.size()) - mapped_ds.reset() - - ct = 0 - for sample in mapped_ds: - self.assertTrue(type(sample[0]) is np.ndarray) - ct += 1 - - self.assertEqual(ct, mapped_ds.size()) - - def test_batch(self): - """ test batched dataset - """ - batchsize = 2 - mapper = tf.build_mapper(self.ops) - ds = build_source(self.sc_config) - mapped_ds = tf.map(ds, mapper) - batched_ds = tf.batch(mapped_ds, batchsize, True) - for sample in batched_ds: - out = sample - self.assertEqual(len(out), batchsize) - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/tools/generate_data_for_training.py b/PaddleCV/PaddleDetection/ppdet/data/tools/generate_data_for_training.py deleted file mode 100644 index 30b196f61418f28edbdb80c95a1d9adbdf00c11b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tools/generate_data_for_training.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# tool used convert COCO or VOC data to a pickled file whose -# schema for each sample is the same. -# -# notes: -# Original data format of COCO or VOC can also be directly -# used by 'PPdetection' to train. -# This tool just convert data to a unified schema, -# and it's useful when debuging with small dataset. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import argparse - -import os -import sys -import logging -import pickle as pkl - -path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../') -if path not in sys.path: - sys.path.insert(0, path) - -from data.source import loader - - -def parse_args(): - """ parse arguments - """ - parser = argparse.ArgumentParser( - description='Generate Standard Dataset for PPdetection') - - parser.add_argument( - '--type', - type=str, - default='json', - help='file format of label file, eg: json for COCO and xml for VOC') - parser.add_argument( - '--annotation', - type=str, - help='label file name for COCO or VOC dataset, ' - 'eg: instances_val2017.json or train.txt') - parser.add_argument( - '--save-dir', - type=str, - default='roidb', - help='directory to save roidb file which contains pickled samples') - parser.add_argument( - '--samples', - type=int, - default=-1, - help='number of samples to dump, default to all') - - args = parser.parse_args() - return args - - -def dump_coco_as_pickle(args): - """ Load COCO data, and then save it as pickled file. - - Notes: - label file of COCO contains a json which consists - of label info for each sample - """ - samples = args.samples - save_dir = args.save_dir - if not os.path.exists(save_dir): - os.makedirs(save_dir) - anno_path = args.annotation - roidb, cat2id = loader.load(anno_path, samples, with_cat2id=True) - samples = len(roidb) - dsname = os.path.basename(anno_path).rstrip('.json') - roidb_fname = save_dir + "/%s.roidb" % (dsname) - with open(roidb_fname, "wb") as fout: - pkl.dump((roidb, cat2id), fout) - - #for rec in roidb: - # sys.stderr.write('%s\n' % (rec['im_file'])) - logging.info('dumped %d samples to file[%s]' % (samples, roidb_fname)) - - -def dump_voc_as_pickle(args): - """ Load VOC data, and then save it as pickled file. - - Notes: - we assume label file of VOC contains lines - each of which corresponds to a xml file - that contains it's label info - """ - samples = args.samples - save_dir = args.save_dir - if not os.path.exists(save_dir): - os.makedirs(save_dir) - save_dir = args.save_dir - anno_path = os.path.expanduser(args.annotation) - roidb, cat2id = loader.load( - anno_path, samples, with_cat2id=True, use_default_label=None) - samples = len(roidb) - part = anno_path.split('/') - dsname = part[-4] - roidb_fname = save_dir + "/%s.roidb" % (dsname) - with open(roidb_fname, "wb") as fout: - pkl.dump((roidb, cat2id), fout) - anno_path = os.path.join(anno_path.split('/train.txt')[0], 'label_list.txt') - with open(anno_path, 'w') as fw: - for key in cat2id.keys(): - fw.write(key + '\n') - logging.info('dumped %d samples to file[%s]' % (samples, roidb_fname)) - - -if __name__ == "__main__": - """ Make sure you have already downloaded original COCO or VOC data, - then you can convert it using this tool. - - Usage: - python generate_data_for_training.py --type=json - --annotation=./annotations/instances_val2017.json - --save-dir=./roidb --samples=100 - """ - args = parse_args() - - # VOC data are organized in xml files - if args.type == 'xml': - dump_voc_as_pickle(args) - # COCO data are organized in json file - elif args.type == 'json': - dump_coco_as_pickle(args) - else: - TypeError('Can\'t deal with {} type. '\ - 'Only xml or json file format supported'.format(args.type)) diff --git a/PaddleCV/PaddleDetection/ppdet/data/tools/x2coco.py b/PaddleCV/PaddleDetection/ppdet/data/tools/x2coco.py deleted file mode 100644 index 0379fab6335cb7886da8fe9f5170717a4453c6d6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/tools/x2coco.py +++ /dev/null @@ -1,297 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import argparse -import glob -import json -import os -import os.path as osp -import sys -import shutil - -import numpy as np -import PIL.ImageDraw - - -class MyEncoder(json.JSONEncoder): - def default(self, obj): - if isinstance(obj, np.integer): - return int(obj) - elif isinstance(obj, np.floating): - return float(obj) - elif isinstance(obj, np.ndarray): - return obj.tolist() - else: - return super(MyEncoder, self).default(obj) - - -def getbbox(self, points): - polygons = points - mask = self.polygons_to_mask([self.height, self.width], polygons) - return self.mask2box(mask) - - -def images_labelme(data, num): - image = {} - image['height'] = data['imageHeight'] - image['width'] = data['imageWidth'] - image['id'] = num + 1 - image['file_name'] = data['imagePath'].split('/')[-1] - return image - -def images_cityscape(data, num, img_file): - image = {} - image['height'] = data['imgHeight'] - image['width'] = data['imgWidth'] - image['id'] = num + 1 - image['file_name'] = img_file - return image - - -def categories(label, labels_list): - category = {} - category['supercategory'] = 'component' - category['id'] = len(labels_list) + 1 - category['name'] = label - return category - - -def annotations_rectangle(points, label, image_num, object_num, label_to_num): - annotation = {} - seg_points = np.asarray(points).copy() - seg_points[1, :] = np.asarray(points)[2, :] - seg_points[2, :] = np.asarray(points)[1, :] - annotation['segmentation'] = [list(seg_points.flatten())] - annotation['iscrowd'] = 0 - annotation['image_id'] = image_num + 1 - annotation['bbox'] = list( - map(float, [ - points[0][0], points[0][1], points[1][0] - points[0][0], points[1][ - 1] - points[0][1] - ])) - annotation['area'] = annotation['bbox'][2] * annotation['bbox'][3] - annotation['category_id'] = label_to_num[label] - annotation['id'] = object_num + 1 - return annotation - - -def annotations_polygon(height, width, points, label, image_num, object_num, label_to_num): - annotation = {} - annotation['segmentation'] = [list(np.asarray(points).flatten())] - annotation['iscrowd'] = 0 - annotation['image_id'] = image_num + 1 - annotation['bbox'] = list(map(float, get_bbox(height, width, points))) - annotation['area'] = annotation['bbox'][2] * annotation['bbox'][3] - annotation['category_id'] = label_to_num[label] - annotation['id'] = object_num + 1 - return annotation - - -def get_bbox(height, width, points): - polygons = points - mask = np.zeros([height, width], dtype=np.uint8) - mask = PIL.Image.fromarray(mask) - xy = list(map(tuple, polygons)) - PIL.ImageDraw.Draw(mask).polygon(xy=xy, outline=1, fill=1) - mask = np.array(mask, dtype=bool) - index = np.argwhere(mask == 1) - rows = index[:, 0] - clos = index[:, 1] - left_top_r = np.min(rows) - left_top_c = np.min(clos) - right_bottom_r = np.max(rows) - right_bottom_c = np.max(clos) - return [ - left_top_c, left_top_r, right_bottom_c - left_top_c, - right_bottom_r - left_top_r - ] - - -def deal_json(ds_type, img_path, json_path): - data_coco = {} - label_to_num = {} - images_list = [] - categories_list = [] - annotations_list = [] - labels_list = [] - image_num = -1 - object_num = -1 - for img_file in os.listdir(img_path): - img_label = img_file.split('.')[0] - if img_file.split('.')[-1] not in ['bmp', 'jpg', 'jpeg', 'png', 'JPEG', 'JPG', 'PNG']: - continue - label_file = osp.join(json_path, img_label + '.json') - print('Generating dataset from:', label_file) - image_num = image_num + 1 - with open(label_file) as f: - data = json.load(f) - if ds_type == 'labelme': - images_list.append(images_labelme(data, image_num)) - elif ds_type == 'cityscape': - images_list.append(images_cityscape(data, image_num, img_file)) - if ds_type == 'labelme': - for shapes in data['shapes']: - object_num = object_num + 1 - label = shapes['label'] - if label not in labels_list: - categories_list.append(categories(label, labels_list)) - labels_list.append(label) - label_to_num[label] = len(labels_list) - points = shapes['points'] - p_type = shapes['shape_type'] - if p_type == 'polygon': - annotations_list.append( - annotations_polygon(data['imageHeight'], data[ - 'imageWidth'], points, label, image_num, object_num, label_to_num)) - - if p_type == 'rectangle': - points.append([points[0][0], points[1][1]]) - points.append([points[1][0], points[0][1]]) - annotations_list.append( - annotations_rectangle(points, label, image_num, object_num, label_to_num)) - elif ds_type == 'cityscape': - for shapes in data['objects']: - object_num = object_num + 1 - label = shapes['label'] - if label not in labels_list: - categories_list.append(categories(label, labels_list)) - labels_list.append(label) - label_to_num[label] = len(labels_list) - points = shapes['polygon'] - annotations_list.append( - annotations_polygon(data['imgHeight'], data[ - 'imgWidth'], points, label, image_num, object_num, label_to_num)) - data_coco['images'] = images_list - data_coco['categories'] = categories_list - data_coco['annotations'] = annotations_list - return data_coco - - -def main(): - parser = argparse.ArgumentParser( - formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument('--dataset_type', help='the type of dataset') - parser.add_argument('--json_input_dir', help='input annotated directory') - parser.add_argument('--image_input_dir', help='image directory') - parser.add_argument( - '--output_dir', help='output dataset directory', default='../../../') - parser.add_argument( - '--train_proportion', - help='the proportion of train dataset', - type=float, - default=1.0) - parser.add_argument( - '--val_proportion', - help='the proportion of validation dataset', - type=float, - default=0.0) - parser.add_argument( - '--test_proportion', - help='the proportion of test dataset', - type=float, - default=0.0) - args = parser.parse_args() - try: - assert args.dataset_type in ['labelme', 'cityscape'] - except AssertionError as e: - print('Now only support the cityscape dataset and labelme dataset!!') - os._exit(0) - try: - assert os.path.exists(args.json_input_dir) - except AssertionError as e: - print('The json folder does not exist!') - os._exit(0) - try: - assert os.path.exists(args.image_input_dir) - except AssertionError as e: - print('The image folder does not exist!') - os._exit(0) - try: - assert args.train_proportion + args.val_proportion + args.test_proportion == 1.0 - except AssertionError as e: - print( - 'The sum of pqoportion of training, validation and test datase must be 1!' - ) - os._exit(0) - - # Allocate the dataset. - total_num = len(glob.glob(osp.join(args.json_input_dir, '*.json'))) - if args.train_proportion != 0: - train_num = int(total_num * args.train_proportion) - os.makedirs(args.output_dir + '/train') - else: - train_num = 0 - if args.val_proportion == 0.0: - val_num = 0 - test_num = total_num - train_num - if args.test_proportion != 0.0: - os.makedirs(args.output_dir + '/test') - else: - val_num = int(total_num * args.val_proportion) - test_num = total_num - train_num - val_num - os.makedirs(args.output_dir + '/val') - if args.test_proportion != 0.0: - os.makedirs(args.output_dir + '/test') - count = 1 - for img_name in os.listdir(args.image_input_dir): - if count <= train_num: - shutil.copyfile( - osp.join(args.image_input_dir, img_name), - osp.join(args.output_dir + '/train/', img_name)) - else: - if count <= train_num + val_num: - shutil.copyfile( - osp.join(args.image_input_dir, img_name), - osp.join(args.output_dir + '/val/', img_name)) - else: - shutil.copyfile( - osp.join(args.image_input_dir, img_name), - osp.join(args.output_dir + '/test/', img_name)) - count = count + 1 - - # Deal with the json files. - if not os.path.exists(args.output_dir + '/annotations'): - os.makedirs(args.output_dir + '/annotations') - if args.train_proportion != 0: - train_data_coco = deal_json(args.dataset_type, - args.output_dir + '/train', - args.json_input_dir) - train_json_path = osp.join(args.output_dir + '/annotations', - 'instance_train.json') - json.dump( - train_data_coco, - open(train_json_path, 'w'), - indent=4, - cls=MyEncoder) - if args.val_proportion != 0: - val_data_coco = deal_json(args.dataset_type, - args.output_dir + '/val', - args.json_input_dir) - val_json_path = osp.join(args.output_dir + '/annotations', - 'instance_val.json') - json.dump( - val_data_coco, open(val_json_path, 'w'), indent=4, cls=MyEncoder) - if args.test_proportion != 0: - test_data_coco = deal_json(args.dataset_type, - args.output_dir + '/test', - args.json_input_dir) - test_json_path = osp.join(args.output_dir + '/annotations', - 'instance_test.json') - json.dump( - test_data_coco, open(test_json_path, 'w'), indent=4, cls=MyEncoder) - -if __name__ == '__main__': - main() diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/__init__.py b/PaddleCV/PaddleDetection/ppdet/data/transform/__init__.py deleted file mode 100644 index f4d15e9c3354c6c44912c456eb766eae4d7d32c5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/__init__.py +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function - -import copy -import logging -import traceback - -from .transformer import MappedDataset, BatchedDataset -from .post_map import build_post_map -from .parallel_map import ParallelMappedDataset -from .operators import BaseOperator, registered_ops - -__all__ = ['build_mapper', 'map', 'batch', 'batch_map'] - -logger = logging.getLogger(__name__) - - -def build_mapper(ops, context=None): - """ - Build a mapper for operators in 'ops' - - Args: - ops (list of operator.BaseOperator or list of op dict): - configs for oprators, eg: - [{'name': 'DecodeImage', 'params': {'to_rgb': True}}, {xxx}] - context (dict): a context object for mapper - - Returns: - a mapper function which accept one argument 'sample' and - return the processed result - """ - new_ops = [] - for _dict in ops: - new_dict = {} - for i, j in _dict.items(): - new_dict[i.lower()] = j - new_ops.append(new_dict) - ops = new_ops - op_funcs = [] - op_repr = [] - for op in ops: - if type(op) is dict and 'op' in op: - op_func = getattr(BaseOperator, op['op']) - params = copy.deepcopy(op) - del params['op'] - o = op_func(**params) - elif not isinstance(op, BaseOperator): - op_func = getattr(BaseOperator, op['name']) - params = {} if 'params' not in op else op['params'] - o = op_func(**params) - else: - assert isinstance(op, BaseOperator), \ - "invalid operator when build ops" - o = op - op_funcs.append(o) - op_repr.append('{{{}}}'.format(str(o))) - op_repr = '[{}]'.format(','.join(op_repr)) - - def _mapper(sample): - ctx = {} if context is None else copy.deepcopy(context) - for f in op_funcs: - try: - out = f(sample, ctx) - sample = out - except Exception as e: - stack_info = traceback.format_exc() - logger.warn("fail to map op [{}] with error: {} and stack:\n{}". - format(f, e, str(stack_info))) - raise e - - return out - - _mapper.ops = op_repr - return _mapper - - -def map(ds, mapper, worker_args=None): - """ - Apply 'mapper' to 'ds' - - Args: - ds (instance of Dataset): dataset to be mapped - mapper (function): action to be executed for every data sample - worker_args (dict): configs for concurrent mapper - Returns: - a mapped dataset - """ - - if worker_args is not None: - return ParallelMappedDataset(ds, mapper, worker_args) - else: - return MappedDataset(ds, mapper) - - -def batch(ds, batchsize, drop_last=False, drop_empty=True): - """ - Batch data samples to batches - Args: - batchsize (int): number of samples for a batch - drop_last (bool): drop last few samples if not enough for a batch - - Returns: - a batched dataset - """ - - return BatchedDataset( - ds, batchsize, drop_last=drop_last, drop_empty=drop_empty) - - -def batch_map(ds, config): - """ - Post process the batches. - - Args: - ds (instance of Dataset): dataset to be mapped - mapper (function): action to be executed for every batch - Returns: - a batched dataset which is processed - """ - - mapper = build_post_map(**config) - return MappedDataset(ds, mapper) - - -for nm in registered_ops: - op = getattr(BaseOperator, nm) - locals()[nm] = op - -__all__ += registered_ops diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/arrange_sample.py b/PaddleCV/PaddleDetection/ppdet/data/transform/arrange_sample.py deleted file mode 100644 index bebce691d36ddb12141dd7bfdf81030ff8ed2d1f..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/arrange_sample.py +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# operators to process sample, -# eg: decode/resize/crop image - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import logging -import numpy as np -from .operators import BaseOperator, register_op - -logger = logging.getLogger(__name__) - - -@register_op -class ArrangeRCNN(BaseOperator): - """ - Transform dict to tuple format needed for training. - - Args: - is_mask (bool): whether to use include mask data - """ - - def __init__(self, is_mask=False): - super(ArrangeRCNN, self).__init__() - self.is_mask = is_mask - assert isinstance(self.is_mask, bool), "wrong type for is_mask" - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing following items - (image, im_info, im_id, gt_bbox, gt_class, is_crowd, gt_masks) - """ - im = sample['image'] - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - keys = list(sample.keys()) - if 'is_crowd' in keys: - is_crowd = sample['is_crowd'] - else: - raise KeyError("The dataset doesn't have 'is_crowd' key.") - if 'im_info' in keys: - im_info = sample['im_info'] - else: - raise KeyError("The dataset doesn't have 'im_info' key.") - im_id = sample['im_id'] - - outs = (im, im_info, im_id, gt_bbox, gt_class, is_crowd) - gt_masks = [] - if self.is_mask and len(sample['gt_poly']) != 0 \ - and 'is_crowd' in keys: - valid = True - segms = sample['gt_poly'] - assert len(segms) == is_crowd.shape[0] - for i in range(len(sample['gt_poly'])): - segm, iscrowd = segms[i], is_crowd[i] - gt_segm = [] - if iscrowd: - gt_segm.append([[0, 0]]) - else: - for poly in segm: - if len(poly) == 0: - valid = False - break - gt_segm.append(np.array(poly).reshape(-1, 2)) - if (not valid) or len(gt_segm) == 0: - break - gt_masks.append(gt_segm) - outs = outs + (gt_masks, ) - return outs - - -@register_op -class ArrangeEvalRCNN(BaseOperator): - """ - Transform dict to the tuple format needed for evaluation. - """ - - def __init__(self): - super(ArrangeEvalRCNN, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, im_info, im_id, im_shape, gt_bbox, - gt_class, difficult) - """ - ims = [] - keys = sorted(list(sample.keys())) - for k in keys: - if 'image' in k: - ims.append(sample[k]) - if 'im_info' in keys: - im_info = sample['im_info'] - else: - raise KeyError("The dataset doesn't have 'im_info' key.") - im_id = sample['im_id'] - h = sample['h'] - w = sample['w'] - # For rcnn models in eval and infer stage, original image size - # is needed to clip the bounding boxes. And box clip op in - # bbox prediction needs im_info as input in format of [N, 3], - # so im_shape is appended by 1 to match dimension. - im_shape = np.array((h, w, 1), dtype=np.float32) - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - difficult = sample['difficult'] - remain_list = [im_info, im_id, im_shape, gt_bbox, gt_class, difficult] - ims.extend(remain_list) - outs = tuple(ims) - return outs - - -@register_op -class ArrangeTestRCNN(BaseOperator): - """ - Transform dict to the tuple format needed for training. - """ - - def __init__(self): - super(ArrangeTestRCNN, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, im_info, im_id, im_shape) - """ - ims = [] - keys = sorted(list(sample.keys())) - for k in keys: - if 'image' in k: - ims.append(sample[k]) - if 'im_info' in keys: - im_info = sample['im_info'] - else: - raise KeyError("The dataset doesn't have 'im_info' key.") - im_id = sample['im_id'] - h = sample['h'] - w = sample['w'] - # For rcnn models in eval and infer stage, original image size - # is needed to clip the bounding boxes. And box clip op in - # bbox prediction needs im_info as input in format of [N, 3], - # so im_shape is appended by 1 to match dimension. - im_shape = np.array((h, w, 1), dtype=np.float32) - remain_list = [im_info, im_id, im_shape] - ims.extend(remain_list) - outs = tuple(ims) - return outs - - -@register_op -class ArrangeSSD(BaseOperator): - """ - Transform dict to tuple format needed for training. - """ - - def __init__(self): - super(ArrangeSSD, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, gt_bbox, gt_class, difficult) - """ - im = sample['image'] - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - outs = (im, gt_bbox, gt_class) - return outs - - -@register_op -class ArrangeEvalSSD(BaseOperator): - """ - Transform dict to tuple format needed for training. - """ - - def __init__(self, fields): - super(ArrangeEvalSSD, self).__init__() - self.fields = fields - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: (image) - """ - outs = [] - if len(sample['gt_bbox']) != len(sample['gt_class']): - raise ValueError("gt num mismatch: bbox and class.") - for field in self.fields: - if field == 'im_shape': - h = sample['h'] - w = sample['w'] - im_shape = np.array((h, w)) - outs.append(im_shape) - elif field == 'is_difficult': - outs.append(sample['difficult']) - elif field == 'gt_box': - outs.append(sample['gt_bbox']) - elif field == 'gt_label': - outs.append(sample['gt_class']) - else: - outs.append(sample[field]) - - outs = tuple(outs) - - return outs - - -@register_op -class ArrangeTestSSD(BaseOperator): - """ - Transform dict to tuple format needed for training. - - Args: - is_mask (bool): whether to use include mask data - """ - - def __init__(self): - super(ArrangeTestSSD, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: (image) - """ - im = sample['image'] - im_id = sample['im_id'] - h = sample['h'] - w = sample['w'] - im_shape = np.array((h, w)) - outs = (im, im_id, im_shape) - return outs - - -@register_op -class ArrangeYOLO(BaseOperator): - """ - Transform dict to the tuple format needed for training. - """ - - def __init__(self): - super(ArrangeYOLO, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, gt_bbox, gt_class, gt_score, - is_crowd, im_info, gt_masks) - """ - im = sample['image'] - if len(sample['gt_bbox']) != len(sample['gt_class']): - raise ValueError("gt num mismatch: bbox and class.") - if len(sample['gt_bbox']) != len(sample['gt_score']): - raise ValueError("gt num mismatch: bbox and score.") - gt_bbox = np.zeros((50, 4), dtype=im.dtype) - gt_class = np.zeros((50, ), dtype=np.int32) - gt_score = np.zeros((50, ), dtype=im.dtype) - gt_num = min(50, len(sample['gt_bbox'])) - if gt_num > 0: - gt_bbox[:gt_num, :] = sample['gt_bbox'][:gt_num, :] - gt_class[:gt_num] = sample['gt_class'][:gt_num, 0] - gt_score[:gt_num] = sample['gt_score'][:gt_num, 0] - # parse [x1, y1, x2, y2] to [x, y, w, h] - gt_bbox[:, 2:4] = gt_bbox[:, 2:4] - gt_bbox[:, :2] - gt_bbox[:, :2] = gt_bbox[:, :2] + gt_bbox[:, 2:4] / 2. - outs = (im, gt_bbox, gt_class, gt_score) - return outs - - -@register_op -class ArrangeEvalYOLO(BaseOperator): - """ - Transform dict to the tuple format needed for evaluation. - """ - - def __init__(self): - super(ArrangeEvalYOLO, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, im_shape, im_id, gt_bbox, gt_class, - difficult) - """ - im = sample['image'] - if len(sample['gt_bbox']) != len(sample['gt_class']): - raise ValueError("gt num mismatch: bbox and class.") - im_id = sample['im_id'] - h = sample['h'] - w = sample['w'] - im_shape = np.array((h, w)) - gt_bbox = np.zeros((50, 4), dtype=im.dtype) - gt_class = np.zeros((50, ), dtype=np.int32) - difficult = np.zeros((50, ), dtype=np.int32) - gt_num = min(50, len(sample['gt_bbox'])) - if gt_num > 0: - gt_bbox[:gt_num, :] = sample['gt_bbox'][:gt_num, :] - gt_class[:gt_num] = sample['gt_class'][:gt_num, 0] - difficult[:gt_num] = sample['difficult'][:gt_num, 0] - outs = (im, im_shape, im_id, gt_bbox, gt_class, difficult) - return outs - - -@register_op -class ArrangeTestYOLO(BaseOperator): - """ - Transform dict to the tuple format needed for inference. - """ - - def __init__(self): - super(ArrangeTestYOLO, self).__init__() - - def __call__(self, sample, context=None): - """ - Args: - sample: a dict which contains image - info and annotation info. - context: a dict which contains additional info. - Returns: - sample: a tuple containing the following items: - (image, gt_bbox, gt_class, gt_score, is_crowd, - im_info, gt_masks) - """ - im = sample['image'] - im_id = sample['im_id'] - h = sample['h'] - w = sample['w'] - im_shape = np.array((h, w)) - outs = (im, im_shape, im_id) - return outs diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/op_helper.py b/PaddleCV/PaddleDetection/ppdet/data/transform/op_helper.py deleted file mode 100644 index 838714f4dda2b664ae4d2b1f3ee343e5b6e50360..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/op_helper.py +++ /dev/null @@ -1,389 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# this file contains helper methods for BBOX processing - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np -import random -import math -import cv2 - - -def meet_emit_constraint(src_bbox, sample_bbox): - center_x = (src_bbox[2] + src_bbox[0]) / 2 - center_y = (src_bbox[3] + src_bbox[1]) / 2 - if center_x >= sample_bbox[0] and \ - center_x <= sample_bbox[2] and \ - center_y >= sample_bbox[1] and \ - center_y <= sample_bbox[3]: - return True - return False - - -def clip_bbox(src_bbox): - src_bbox[0] = max(min(src_bbox[0], 1.0), 0.0) - src_bbox[1] = max(min(src_bbox[1], 1.0), 0.0) - src_bbox[2] = max(min(src_bbox[2], 1.0), 0.0) - src_bbox[3] = max(min(src_bbox[3], 1.0), 0.0) - return src_bbox - - -def bbox_area(src_bbox): - if src_bbox[2] < src_bbox[0] or src_bbox[3] < src_bbox[1]: - return 0. - else: - width = src_bbox[2] - src_bbox[0] - height = src_bbox[3] - src_bbox[1] - return width * height - - -def is_overlap(object_bbox, sample_bbox): - if object_bbox[0] >= sample_bbox[2] or \ - object_bbox[2] <= sample_bbox[0] or \ - object_bbox[1] >= sample_bbox[3] or \ - object_bbox[3] <= sample_bbox[1]: - return False - else: - return True - - -def filter_and_process(sample_bbox, bboxes, labels, scores=None): - new_bboxes = [] - new_labels = [] - new_scores = [] - for i in range(len(bboxes)): - new_bbox = [0, 0, 0, 0] - obj_bbox = [bboxes[i][0], bboxes[i][1], bboxes[i][2], bboxes[i][3]] - if not meet_emit_constraint(obj_bbox, sample_bbox): - continue - if not is_overlap(obj_bbox, sample_bbox): - continue - sample_width = sample_bbox[2] - sample_bbox[0] - sample_height = sample_bbox[3] - sample_bbox[1] - new_bbox[0] = (obj_bbox[0] - sample_bbox[0]) / sample_width - new_bbox[1] = (obj_bbox[1] - sample_bbox[1]) / sample_height - new_bbox[2] = (obj_bbox[2] - sample_bbox[0]) / sample_width - new_bbox[3] = (obj_bbox[3] - sample_bbox[1]) / sample_height - new_bbox = clip_bbox(new_bbox) - if bbox_area(new_bbox) > 0: - new_bboxes.append(new_bbox) - new_labels.append([labels[i][0]]) - if scores is not None: - new_scores.append([scores[i][0]]) - bboxes = np.array(new_bboxes) - labels = np.array(new_labels) - scores = np.array(new_scores) - return bboxes, labels, scores - - -def bbox_area_sampling(bboxes, labels, scores, target_size, min_size): - new_bboxes = [] - new_labels = [] - new_scores = [] - for i, bbox in enumerate(bboxes): - w = float((bbox[2] - bbox[0]) * target_size) - h = float((bbox[3] - bbox[1]) * target_size) - if w * h < float(min_size * min_size): - continue - else: - new_bboxes.append(bbox) - new_labels.append(labels[i]) - if scores is not None and scores.size != 0: - new_scores.append(scores[i]) - bboxes = np.array(new_bboxes) - labels = np.array(new_labels) - scores = np.array(new_scores) - return bboxes, labels, scores - - -def generate_sample_bbox(sampler): - scale = np.random.uniform(sampler[2], sampler[3]) - aspect_ratio = np.random.uniform(sampler[4], sampler[5]) - aspect_ratio = max(aspect_ratio, (scale**2.0)) - aspect_ratio = min(aspect_ratio, 1 / (scale**2.0)) - bbox_width = scale * (aspect_ratio**0.5) - bbox_height = scale / (aspect_ratio**0.5) - xmin_bound = 1 - bbox_width - ymin_bound = 1 - bbox_height - xmin = np.random.uniform(0, xmin_bound) - ymin = np.random.uniform(0, ymin_bound) - xmax = xmin + bbox_width - ymax = ymin + bbox_height - sampled_bbox = [xmin, ymin, xmax, ymax] - return sampled_bbox - - -def generate_sample_bbox_square(sampler, image_width, image_height): - scale = np.random.uniform(sampler[2], sampler[3]) - aspect_ratio = np.random.uniform(sampler[4], sampler[5]) - aspect_ratio = max(aspect_ratio, (scale**2.0)) - aspect_ratio = min(aspect_ratio, 1 / (scale**2.0)) - bbox_width = scale * (aspect_ratio**0.5) - bbox_height = scale / (aspect_ratio**0.5) - if image_height < image_width: - bbox_width = bbox_height * image_height / image_width - else: - bbox_height = bbox_width * image_width / image_height - xmin_bound = 1 - bbox_width - ymin_bound = 1 - bbox_height - xmin = np.random.uniform(0, xmin_bound) - ymin = np.random.uniform(0, ymin_bound) - xmax = xmin + bbox_width - ymax = ymin + bbox_height - sampled_bbox = [xmin, ymin, xmax, ymax] - return sampled_bbox - - -def data_anchor_sampling(bbox_labels, image_width, image_height, scale_array, - resize_width): - num_gt = len(bbox_labels) - # np.random.randint range: [low, high) - rand_idx = np.random.randint(0, num_gt) if num_gt != 0 else 0 - - if num_gt != 0: - norm_xmin = bbox_labels[rand_idx][0] - norm_ymin = bbox_labels[rand_idx][1] - norm_xmax = bbox_labels[rand_idx][2] - norm_ymax = bbox_labels[rand_idx][3] - - xmin = norm_xmin * image_width - ymin = norm_ymin * image_height - wid = image_width * (norm_xmax - norm_xmin) - hei = image_height * (norm_ymax - norm_ymin) - range_size = 0 - - area = wid * hei - for scale_ind in range(0, len(scale_array) - 1): - if area > scale_array[scale_ind] ** 2 and area < \ - scale_array[scale_ind + 1] ** 2: - range_size = scale_ind + 1 - break - - if area > scale_array[len(scale_array) - 2]**2: - range_size = len(scale_array) - 2 - - scale_choose = 0.0 - if range_size == 0: - rand_idx_size = 0 - else: - # np.random.randint range: [low, high) - rng_rand_size = np.random.randint(0, range_size + 1) - rand_idx_size = rng_rand_size % (range_size + 1) - - if rand_idx_size == range_size: - min_resize_val = scale_array[rand_idx_size] / 2.0 - max_resize_val = min(2.0 * scale_array[rand_idx_size], - 2 * math.sqrt(wid * hei)) - scale_choose = random.uniform(min_resize_val, max_resize_val) - else: - min_resize_val = scale_array[rand_idx_size] / 2.0 - max_resize_val = 2.0 * scale_array[rand_idx_size] - scale_choose = random.uniform(min_resize_val, max_resize_val) - - sample_bbox_size = wid * resize_width / scale_choose - - w_off_orig = 0.0 - h_off_orig = 0.0 - if sample_bbox_size < max(image_height, image_width): - if wid <= sample_bbox_size: - w_off_orig = np.random.uniform(xmin + wid - sample_bbox_size, - xmin) - else: - w_off_orig = np.random.uniform(xmin, - xmin + wid - sample_bbox_size) - - if hei <= sample_bbox_size: - h_off_orig = np.random.uniform(ymin + hei - sample_bbox_size, - ymin) - else: - h_off_orig = np.random.uniform(ymin, - ymin + hei - sample_bbox_size) - - else: - w_off_orig = np.random.uniform(image_width - sample_bbox_size, 0.0) - h_off_orig = np.random.uniform(image_height - sample_bbox_size, 0.0) - - w_off_orig = math.floor(w_off_orig) - h_off_orig = math.floor(h_off_orig) - - # Figure out top left coordinates. - w_off = float(w_off_orig / image_width) - h_off = float(h_off_orig / image_height) - - sampled_bbox = [ - w_off, h_off, w_off + float(sample_bbox_size / image_width), - h_off + float(sample_bbox_size / image_height) - ] - return sampled_bbox - else: - return 0 - - -def jaccard_overlap(sample_bbox, object_bbox): - if sample_bbox[0] >= object_bbox[2] or \ - sample_bbox[2] <= object_bbox[0] or \ - sample_bbox[1] >= object_bbox[3] or \ - sample_bbox[3] <= object_bbox[1]: - return 0 - intersect_xmin = max(sample_bbox[0], object_bbox[0]) - intersect_ymin = max(sample_bbox[1], object_bbox[1]) - intersect_xmax = min(sample_bbox[2], object_bbox[2]) - intersect_ymax = min(sample_bbox[3], object_bbox[3]) - intersect_size = (intersect_xmax - intersect_xmin) * ( - intersect_ymax - intersect_ymin) - sample_bbox_size = bbox_area(sample_bbox) - object_bbox_size = bbox_area(object_bbox) - overlap = intersect_size / ( - sample_bbox_size + object_bbox_size - intersect_size) - return overlap - - -def intersect_bbox(bbox1, bbox2): - if bbox2[0] > bbox1[2] or bbox2[2] < bbox1[0] or \ - bbox2[1] > bbox1[3] or bbox2[3] < bbox1[1]: - intersection_box = [0.0, 0.0, 0.0, 0.0] - else: - intersection_box = [ - max(bbox1[0], bbox2[0]), max(bbox1[1], bbox2[1]), - min(bbox1[2], bbox2[2]), min(bbox1[3], bbox2[3]) - ] - return intersection_box - - -def bbox_coverage(bbox1, bbox2): - inter_box = intersect_bbox(bbox1, bbox2) - intersect_size = bbox_area(inter_box) - - if intersect_size > 0: - bbox1_size = bbox_area(bbox1) - return intersect_size / bbox1_size - else: - return 0. - - -def satisfy_sample_constraint(sampler, - sample_bbox, - gt_bboxes, - satisfy_all=False): - if sampler[6] == 0 and sampler[7] == 0: - return True - satisfied = [] - for i in range(len(gt_bboxes)): - object_bbox = [ - gt_bboxes[i][0], gt_bboxes[i][1], gt_bboxes[i][2], gt_bboxes[i][3] - ] - overlap = jaccard_overlap(sample_bbox, object_bbox) - if sampler[6] != 0 and \ - overlap < sampler[6]: - satisfied.append(False) - continue - if sampler[7] != 0 and \ - overlap > sampler[7]: - satisfied.append(False) - continue - satisfied.append(True) - if not satisfy_all: - return True - - if satisfy_all: - return np.all(satisfied) - else: - return False - - -def satisfy_sample_constraint_coverage(sampler, sample_bbox, gt_bboxes): - if sampler[6] == 0 and sampler[7] == 0: - has_jaccard_overlap = False - else: - has_jaccard_overlap = True - if sampler[8] == 0 and sampler[9] == 0: - has_object_coverage = False - else: - has_object_coverage = True - - if not has_jaccard_overlap and not has_object_coverage: - return True - found = False - for i in range(len(gt_bboxes)): - object_bbox = [ - gt_bboxes[i][0], gt_bboxes[i][1], gt_bboxes[i][2], gt_bboxes[i][3] - ] - if has_jaccard_overlap: - overlap = jaccard_overlap(sample_bbox, object_bbox) - if sampler[6] != 0 and \ - overlap < sampler[6]: - continue - if sampler[7] != 0 and \ - overlap > sampler[7]: - continue - found = True - if has_object_coverage: - object_coverage = bbox_coverage(object_bbox, sample_bbox) - if sampler[8] != 0 and \ - object_coverage < sampler[8]: - continue - if sampler[9] != 0 and \ - object_coverage > sampler[9]: - continue - found = True - if found: - return True - return found - - -def crop_image_sampling(img, sample_bbox, image_width, image_height, - target_size): - # no clipping here - xmin = int(sample_bbox[0] * image_width) - xmax = int(sample_bbox[2] * image_width) - ymin = int(sample_bbox[1] * image_height) - ymax = int(sample_bbox[3] * image_height) - - w_off = xmin - h_off = ymin - width = xmax - xmin - height = ymax - ymin - cross_xmin = max(0.0, float(w_off)) - cross_ymin = max(0.0, float(h_off)) - cross_xmax = min(float(w_off + width - 1.0), float(image_width)) - cross_ymax = min(float(h_off + height - 1.0), float(image_height)) - cross_width = cross_xmax - cross_xmin - cross_height = cross_ymax - cross_ymin - - roi_xmin = 0 if w_off >= 0 else abs(w_off) - roi_ymin = 0 if h_off >= 0 else abs(h_off) - roi_width = cross_width - roi_height = cross_height - - roi_y1 = int(roi_ymin) - roi_y2 = int(roi_ymin + roi_height) - roi_x1 = int(roi_xmin) - roi_x2 = int(roi_xmin + roi_width) - - cross_y1 = int(cross_ymin) - cross_y2 = int(cross_ymin + cross_height) - cross_x1 = int(cross_xmin) - cross_x2 = int(cross_xmin + cross_width) - - sample_img = np.zeros((height, width, 3)) - sample_img[roi_y1: roi_y2, roi_x1: roi_x2] = \ - img[cross_y1: cross_y2, cross_x1: cross_x2] - - sample_img = cv2.resize( - sample_img, (target_size, target_size), interpolation=cv2.INTER_AREA) - - return sample_img diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/operators.py b/PaddleCV/PaddleDetection/ppdet/data/transform/operators.py deleted file mode 100644 index b09998120ffc1e76e42299489f16bacc6424454c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/operators.py +++ /dev/null @@ -1,991 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# operators to process sample, -# eg: decode/resize/crop image - -from __future__ import absolute_import -from __future__ import print_function -from __future__ import division - -import uuid -import logging -import random -import math -import numpy as np -import cv2 -from PIL import Image, ImageEnhance - -from ppdet.core.workspace import serializable - -from .op_helper import (satisfy_sample_constraint, filter_and_process, - generate_sample_bbox, clip_bbox, data_anchor_sampling, - satisfy_sample_constraint_coverage, crop_image_sampling, - generate_sample_bbox_square, bbox_area_sampling) - -logger = logging.getLogger(__name__) - -registered_ops = [] - - -def register_op(cls): - registered_ops.append(cls.__name__) - if not hasattr(BaseOperator, cls.__name__): - setattr(BaseOperator, cls.__name__, cls) - else: - raise KeyError("The {} class has been registered.".format(cls.__name__)) - return serializable(cls) - - -class BboxError(ValueError): - pass - - -class ImageError(ValueError): - pass - - -class BaseOperator(object): - def __init__(self, name=None): - if name is None: - name = self.__class__.__name__ - self._id = name + '_' + str(uuid.uuid4())[-6:] - - def __call__(self, sample, context=None): - """ Process a sample. - Args: - sample (dict): a dict of sample, eg: {'image':xx, 'label': xxx} - context (dict): info about this sample processing - Returns: - result (dict): a processed sample - """ - return sample - - def __str__(self): - return str(self._id) - - -@register_op -class DecodeImage(BaseOperator): - def __init__(self, to_rgb=True, with_mixup=False): - """ Transform the image data to numpy format. - - Args: - to_rgb (bool): whether to convert BGR to RGB - with_mixup (bool): whether or not to mixup image and gt_bbbox/gt_score - """ - - super(DecodeImage, self).__init__() - self.to_rgb = to_rgb - self.with_mixup = with_mixup - if not isinstance(self.to_rgb, bool): - raise TypeError("{}: input type is invalid.".format(self)) - if not isinstance(self.with_mixup, bool): - raise TypeError("{}: input type is invalid.".format(self)) - - def __call__(self, sample, context=None): - """ load image if 'im_file' field is not empty but 'image' is""" - if 'image' not in sample: - with open(sample['im_file'], 'rb') as f: - sample['image'] = f.read() - - im = sample['image'] - data = np.frombuffer(im, dtype='uint8') - im = cv2.imdecode(data, 1) # BGR mode, but need RGB mode - if self.to_rgb: - im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) - sample['image'] = im - - if 'h' not in sample: - sample['h'] = im.shape[0] - if 'w' not in sample: - sample['w'] = im.shape[1] - # make default im_info with [h, w, 1] - sample['im_info'] = np.array( - [im.shape[0], im.shape[1], 1.], dtype=np.float32) - # decode mixup image - if self.with_mixup and 'mixup' in sample: - self.__call__(sample['mixup'], context) - return sample - - -@register_op -class MultiscaleTestResize(BaseOperator): - def __init__(self, - origin_target_size=800, - origin_max_size=1333, - target_size=[], - max_size=2000, - interp=cv2.INTER_LINEAR, - use_flip=True): - """ - Rescale image to the each size in target size, and capped at max_size. - - Args: - origin_target_size(int): original target size of image's short side. - origin_max_size(int): original max size of image. - target_size (list): A list of target sizes of image's short side. - max_size (int): the max size of image. - interp (int): the interpolation method. - use_flip (bool): whether use flip augmentation. - """ - super(MultiscaleTestResize, self).__init__() - self.origin_target_size = int(origin_target_size) - self.origin_max_size = int(origin_max_size) - self.max_size = int(max_size) - self.interp = int(interp) - self.use_flip = use_flip - - if not isinstance(target_size, list): - raise TypeError( - "Type of target_size is invalid. Must be List, now is {}". - format(type(target_size))) - self.target_size = target_size - if not (isinstance(self.origin_target_size, int) and isinstance( - self.origin_max_size, int) and isinstance(self.max_size, int) - and isinstance(self.interp, int)): - raise TypeError("{}: input type is invalid.".format(self)) - - def __call__(self, sample, context=None): - """ Resize the image numpy for multi-scale test. - """ - origin_ims = {} - im = sample['image'] - if not isinstance(im, np.ndarray): - raise TypeError("{}: image type is not numpy.".format(self)) - if len(im.shape) != 3: - raise ImageError('{}: image is not 3-dimensional.'.format(self)) - im_shape = im.shape - im_size_min = np.min(im_shape[0:2]) - im_size_max = np.max(im_shape[0:2]) - if float(im_size_min) == 0: - raise ZeroDivisionError('{}: min size of image is 0'.format(self)) - base_name_list = ['image'] - origin_ims['image'] = im - if self.use_flip: - sample['flip_image'] = im[:, ::-1, :] - base_name_list.append('flip_image') - origin_ims['flip_image'] = sample['flip_image'] - im_info = [] - for base_name in base_name_list: - im_scale = float(self.origin_target_size) / float(im_size_min) - # Prevent the biggest axis from being more than max_size - if np.round(im_scale * im_size_max) > self.origin_max_size: - im_scale = float(self.origin_max_size) / float(im_size_max) - im_scale_x = im_scale - im_scale_y = im_scale - - resize_w = np.round(im_scale_x * float(im_shape[1])) - resize_h = np.round(im_scale_y * float(im_shape[0])) - im_resize = cv2.resize( - origin_ims[base_name], - None, - None, - fx=im_scale_x, - fy=im_scale_y, - interpolation=self.interp) - im_info.extend([resize_h, resize_w, im_scale]) - sample[base_name] = im_resize - for i, size in enumerate(self.target_size): - im_scale = float(size) / float(im_size_min) - if np.round(im_scale * im_size_max) > self.max_size: - im_scale = float(self.max_size) / float(im_size_max) - im_scale_x = im_scale - im_scale_y = im_scale - resize_w = np.round(im_scale_x * float(im_shape[1])) - resize_h = np.round(im_scale_y * float(im_shape[0])) - im_resize = cv2.resize( - origin_ims[base_name], - None, - None, - fx=im_scale_x, - fy=im_scale_y, - interpolation=self.interp) - im_info.extend([resize_h, resize_w, im_scale]) - name = base_name + '_scale_' + str(i) - sample[name] = im_resize - sample['im_info'] = np.array(im_info, dtype=np.float32) - return sample - - -@register_op -class ResizeImage(BaseOperator): - def __init__(self, - target_size=0, - max_size=0, - interp=cv2.INTER_LINEAR, - use_cv2=True): - """ - Rescale image to the specified target size, and capped at max_size - if max_size != 0. - If target_size is list, selected a scale randomly as the specified - target size. - - Args: - target_size (int|list): the target size of image's short side, - multi-scale training is adopted when type is list. - max_size (int): the max size of image - interp (int): the interpolation method - use_cv2 (bool): use the cv2 interpolation method or use PIL - interpolation method - """ - super(ResizeImage, self).__init__() - self.max_size = int(max_size) - self.interp = int(interp) - self.use_cv2 = use_cv2 - if not (isinstance(target_size, int) or isinstance(target_size, list)): - raise TypeError( - "Type of target_size is invalid. Must be Integer or List, now is {}". - format(type(target_size))) - self.target_size = target_size - if not (isinstance(self.max_size, int) and isinstance(self.interp, - int)): - raise TypeError("{}: input type is invalid.".format(self)) - - def __call__(self, sample, context=None): - """ Resize the image numpy. - """ - im = sample['image'] - if not isinstance(im, np.ndarray): - raise TypeError("{}: image type is not numpy.".format(self)) - if len(im.shape) != 3: - raise ImageError('{}: image is not 3-dimensional.'.format(self)) - im_shape = im.shape - im_size_min = np.min(im_shape[0:2]) - im_size_max = np.max(im_shape[0:2]) - if isinstance(self.target_size, list): - # Case for multi-scale training - selected_size = random.choice(self.target_size) - else: - selected_size = self.target_size - if float(im_size_min) == 0: - raise ZeroDivisionError('{}: min size of image is 0'.format(self)) - if self.max_size != 0: - im_scale = float(selected_size) / float(im_size_min) - # Prevent the biggest axis from being more than max_size - if np.round(im_scale * im_size_max) > self.max_size: - im_scale = float(self.max_size) / float(im_size_max) - im_scale_x = im_scale - im_scale_y = im_scale - - resize_w = np.round(im_scale_x * float(im_shape[1])) - resize_h = np.round(im_scale_y * float(im_shape[0])) - im_info = [resize_h, resize_w, im_scale] - if 'im_info' in sample and sample['im_info'][2] != 1.: - sample['im_info'] = np.append( - list(sample['im_info']), im_info).astype(np.float32) - else: - sample['im_info'] = np.array(im_info).astype(np.float32) - else: - im_scale_x = float(selected_size) / float(im_shape[1]) - im_scale_y = float(selected_size) / float(im_shape[0]) - - resize_w = selected_size - resize_h = selected_size - - if self.use_cv2: - im = cv2.resize( - im, - None, - None, - fx=im_scale_x, - fy=im_scale_y, - interpolation=self.interp) - else: - im = Image.fromarray(im) - im = im.resize((resize_w, resize_h), self.interp) - im = np.array(im) - - sample['image'] = im - return sample - - -@register_op -class RandomFlipImage(BaseOperator): - def __init__(self, prob=0.5, is_normalized=False, is_mask_flip=False): - """ - Args: - prob (float): the probability of flipping image - is_normalized (bool): whether the bbox scale to [0,1] - is_mask_flip (bool): whether flip the segmentation - """ - super(RandomFlipImage, self).__init__() - self.prob = prob - self.is_normalized = is_normalized - self.is_mask_flip = is_mask_flip - if not (isinstance(self.prob, float) and - isinstance(self.is_normalized, bool) and - isinstance(self.is_mask_flip, bool)): - raise TypeError("{}: input type is invalid.".format(self)) - - def flip_segms(self, segms, height, width): - def _flip_poly(poly, width): - flipped_poly = np.array(poly) - flipped_poly[0::2] = width - np.array(poly[0::2]) - 1 - return flipped_poly.tolist() - - def _flip_rle(rle, height, width): - if 'counts' in rle and type(rle['counts']) == list: - rle = mask_util.frPyObjects([rle], height, width) - mask = mask_util.decode(rle) - mask = mask[:, ::-1, :] - rle = mask_util.encode(np.array(mask, order='F', dtype=np.uint8)) - return rle - - def is_poly(segm): - assert isinstance(segm, (list, dict)), \ - "Invalid segm type: {}".format(type(segm)) - return isinstance(segm, list) - - flipped_segms = [] - for segm in segms: - if is_poly(segm): - # Polygon format - flipped_segms.append([_flip_poly(poly, width) for poly in segm]) - else: - # RLE format - import pycocotools.mask as mask_util - flipped_segms.append(_flip_rle(segm, height, width)) - return flipped_segms - - def __call__(self, sample, context=None): - """Filp the image and bounding box. - Operators: - 1. Flip the image numpy. - 2. Transform the bboxes' x coordinates. - (Must judge whether the coordinates are normalized!) - 3. Transform the segmentations' x coordinates. - (Must judge whether the coordinates are normalized!) - Output: - sample: the image, bounding box and segmentation part - in sample are flipped. - """ - gt_bbox = sample['gt_bbox'] - im = sample['image'] - if not isinstance(im, np.ndarray): - raise TypeError("{}: image is not a numpy array.".format(self)) - if len(im.shape) != 3: - raise ImageError("{}: image is not 3-dimensional.".format(self)) - height, width, _ = im.shape - if np.random.uniform(0, 1) < self.prob: - im = im[:, ::-1, :] - if gt_bbox.shape[0] == 0: - return sample - oldx1 = gt_bbox[:, 0].copy() - oldx2 = gt_bbox[:, 2].copy() - if self.is_normalized: - gt_bbox[:, 0] = 1 - oldx2 - gt_bbox[:, 2] = 1 - oldx1 - else: - gt_bbox[:, 0] = width - oldx2 - 1 - gt_bbox[:, 2] = width - oldx1 - 1 - if gt_bbox.shape[0] != 0 and (gt_bbox[:, 2] < gt_bbox[:, 0]).all(): - m = "{}: invalid box, x2 should be greater than x1".format(self) - raise BboxError(m) - sample['gt_bbox'] = gt_bbox - if self.is_mask_flip and len(sample['gt_poly']) != 0: - sample['gt_poly'] = self.flip_segms(sample['gt_poly'], height, - width) - sample['flipped'] = True - sample['image'] = im - return sample - - -@register_op -class NormalizeImage(BaseOperator): - def __init__(self, - mean=[0.485, 0.456, 0.406], - std=[1, 1, 1], - is_scale=True, - is_channel_first=True): - """ - Args: - mean (list): the pixel mean - std (list): the pixel variance - """ - super(NormalizeImage, self).__init__() - self.mean = mean - self.std = std - self.is_scale = is_scale - self.is_channel_first = is_channel_first - if not (isinstance(self.mean, list) and isinstance(self.std, list) and - isinstance(self.is_scale, bool)): - raise TypeError("{}: input type is invalid.".format(self)) - from functools import reduce - if reduce(lambda x, y: x * y, self.std) == 0: - raise ValueError('{}: std is invalid!'.format(self)) - - def __call__(self, sample, context=None): - """Normalize the image. - Operators: - 1.(optional) Scale the image to [0,1] - 2. Each pixel minus mean and is divided by std - """ - for k in sample.keys(): - if 'image' in k: - im = sample[k] - im = im.astype(np.float32, copy=False) - if self.is_channel_first: - mean = np.array(self.mean)[:, np.newaxis, np.newaxis] - std = np.array(self.std)[:, np.newaxis, np.newaxis] - else: - mean = np.array(self.mean)[np.newaxis, np.newaxis, :] - std = np.array(self.std)[np.newaxis, np.newaxis, :] - if self.is_scale: - im = im / 255.0 - im -= mean - im /= std - sample[k] = im - return sample - - -@register_op -class RandomDistort(BaseOperator): - def __init__(self, - brightness_lower=0.5, - brightness_upper=1.5, - contrast_lower=0.5, - contrast_upper=1.5, - saturation_lower=0.5, - saturation_upper=1.5, - hue_lower=-18, - hue_upper=18, - brightness_prob=0.5, - contrast_prob=0.5, - saturation_prob=0.5, - hue_prob=0.5, - count=4, - is_order=False): - """ - Args: - brightness_lower/ brightness_upper (float): the brightness - between brightness_lower and brightness_upper - contrast_lower/ contrast_upper (float): the contrast between - contrast_lower and contrast_lower - saturation_lower/ saturation_upper (float): the saturation - between saturation_lower and saturation_upper - hue_lower/ hue_upper (float): the hue between - hue_lower and hue_upper - brightness_prob (float): the probability of changing brightness - contrast_prob (float): the probability of changing contrast - saturation_prob (float): the probability of changing saturation - hue_prob (float): the probability of changing hue - count (int): the kinds of doing distrot - is_order (bool): whether determine the order of distortion - """ - super(RandomDistort, self).__init__() - self.brightness_lower = brightness_lower - self.brightness_upper = brightness_upper - self.contrast_lower = contrast_lower - self.contrast_upper = contrast_upper - self.saturation_lower = saturation_lower - self.saturation_upper = saturation_upper - self.hue_lower = hue_lower - self.hue_upper = hue_upper - self.brightness_prob = brightness_prob - self.contrast_prob = contrast_prob - self.saturation_prob = saturation_prob - self.hue_prob = hue_prob - self.count = count - self.is_order = is_order - - def random_brightness(self, img): - brightness_delta = np.random.uniform(self.brightness_lower, - self.brightness_upper) - prob = np.random.uniform(0, 1) - if prob < self.brightness_prob: - img = ImageEnhance.Brightness(img).enhance(brightness_delta) - return img - - def random_contrast(self, img): - contrast_delta = np.random.uniform(self.contrast_lower, - self.contrast_upper) - prob = np.random.uniform(0, 1) - if prob < self.contrast_prob: - img = ImageEnhance.Contrast(img).enhance(contrast_delta) - return img - - def random_saturation(self, img): - saturation_delta = np.random.uniform(self.saturation_lower, - self.saturation_upper) - prob = np.random.uniform(0, 1) - if prob < self.saturation_prob: - img = ImageEnhance.Color(img).enhance(saturation_delta) - return img - - def random_hue(self, img): - hue_delta = np.random.uniform(self.hue_lower, self.hue_upper) - prob = np.random.uniform(0, 1) - if prob < self.hue_prob: - img = np.array(img.convert('HSV')) - img[:, :, 0] = img[:, :, 0] + hue_delta - img = Image.fromarray(img, mode='HSV').convert('RGB') - return img - - def __call__(self, sample, context): - """random distort the image""" - ops = [ - self.random_brightness, self.random_contrast, - self.random_saturation, self.random_hue - ] - if self.is_order: - prob = np.random.uniform(0, 1) - if prob < 0.5: - ops = [ - self.random_brightness, - self.random_saturation, - self.random_hue, - self.random_contrast, - ] - else: - ops = random.sample(ops, self.count) - assert 'image' in sample, "image data not found" - im = sample['image'] - im = Image.fromarray(im) - for id in range(self.count): - im = ops[id](im) - im = np.asarray(im) - sample['image'] = im - return sample - - -@register_op -class ExpandImage(BaseOperator): - def __init__(self, max_ratio, prob, mean=[127.5, 127.5, 127.5]): - """ - Args: - max_ratio (float): the ratio of expanding - prob (float): the probability of expanding image - mean (list): the pixel mean - """ - super(ExpandImage, self).__init__() - self.max_ratio = max_ratio - self.mean = mean - self.prob = prob - - def __call__(self, sample, context): - """ - Expand the image and modify bounding box. - Operators: - 1. Scale the image width and height. - 2. Construct new images with new height and width. - 3. Fill the new image with the mean. - 4. Put original imge into new image. - 5. Rescale the bounding box. - 6. Determine if the new bbox is satisfied in the new image. - Returns: - sample: the image, bounding box are replaced. - """ - - prob = np.random.uniform(0, 1) - assert 'image' in sample, 'not found image data' - im = sample['image'] - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - im_width = sample['w'] - im_height = sample['h'] - if prob < self.prob: - if self.max_ratio - 1 >= 0.01: - expand_ratio = np.random.uniform(1, self.max_ratio) - height = int(im_height * expand_ratio) - width = int(im_width * expand_ratio) - h_off = math.floor(np.random.uniform(0, height - im_height)) - w_off = math.floor(np.random.uniform(0, width - im_width)) - expand_bbox = [ - -w_off / im_width, -h_off / im_height, - (width - w_off) / im_width, (height - h_off) / im_height - ] - expand_im = np.ones((height, width, 3)) - expand_im = np.uint8(expand_im * np.squeeze(self.mean)) - expand_im = Image.fromarray(expand_im) - im = Image.fromarray(im) - expand_im.paste(im, (int(w_off), int(h_off))) - expand_im = np.asarray(expand_im) - gt_bbox, gt_class, _ = filter_and_process(expand_bbox, gt_bbox, - gt_class) - sample['image'] = expand_im - sample['gt_bbox'] = gt_bbox - sample['gt_class'] = gt_class - sample['w'] = width - sample['h'] = height - - return sample - - -@register_op -class CropImage(BaseOperator): - def __init__(self, batch_sampler, satisfy_all=False, avoid_no_bbox=True): - """ - Args: - batch_sampler (list): Multiple sets of different - parameters for cropping. - satisfy_all (bool): whether all boxes must satisfy. - e.g.[[1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 1.0], - [1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0]] - [max sample, max trial, min scale, max scale, - min aspect ratio, max aspect ratio, - min overlap, max overlap] - avoid_no_bbox (bool): whether to to avoid the - situation where the box does not appear. - """ - super(CropImage, self).__init__() - self.batch_sampler = batch_sampler - self.satisfy_all = satisfy_all - self.avoid_no_bbox = avoid_no_bbox - - def __call__(self, sample, context): - """ - Crop the image and modify bounding box. - Operators: - 1. Scale the image width and height. - 2. Crop the image according to a radom sample. - 3. Rescale the bounding box. - 4. Determine if the new bbox is satisfied in the new image. - Returns: - sample: the image, bounding box are replaced. - """ - assert 'image' in sample, "image data not found" - im = sample['image'] - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - im_width = sample['w'] - im_height = sample['h'] - gt_score = None - if 'gt_score' in sample: - gt_score = sample['gt_score'] - sampled_bbox = [] - gt_bbox = gt_bbox.tolist() - for sampler in self.batch_sampler: - found = 0 - for i in range(sampler[1]): - if found >= sampler[0]: - break - sample_bbox = generate_sample_bbox(sampler) - if satisfy_sample_constraint(sampler, sample_bbox, gt_bbox, - self.satisfy_all): - sampled_bbox.append(sample_bbox) - found = found + 1 - im = np.array(im) - while sampled_bbox: - idx = int(np.random.uniform(0, len(sampled_bbox))) - sample_bbox = sampled_bbox.pop(idx) - sample_bbox = clip_bbox(sample_bbox) - crop_bbox, crop_class, crop_score = \ - filter_and_process(sample_bbox, gt_bbox, gt_class, gt_score) - if self.avoid_no_bbox: - if len(crop_bbox) < 1: - continue - xmin = int(sample_bbox[0] * im_width) - xmax = int(sample_bbox[2] * im_width) - ymin = int(sample_bbox[1] * im_height) - ymax = int(sample_bbox[3] * im_height) - im = im[ymin:ymax, xmin:xmax] - sample['image'] = im - sample['gt_bbox'] = crop_bbox - sample['gt_class'] = crop_class - sample['gt_score'] = crop_score - return sample - return sample - - -@register_op -class CropImageWithDataAchorSampling(BaseOperator): - def __init__(self, - batch_sampler, - anchor_sampler=None, - target_size=None, - das_anchor_scales=[16, 32, 64, 128], - sampling_prob=0.5, - min_size=8., - avoid_no_bbox=True): - """ - Args: - anchor_sampler (list): anchor_sampling sets of different - parameters for cropping. - batch_sampler (list): Multiple sets of different - parameters for cropping. - e.g.[[1, 10, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.2, 0.0]] - [[1, 50, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0], - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0], - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0], - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0], - [1, 50, 0.3, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0]] - [max sample, max trial, min scale, max scale, - min aspect ratio, max aspect ratio, - min overlap, max overlap, min coverage, max coverage] - target_size (bool): target image size. - das_anchor_scales (list[float]): a list of anchor scales in data - anchor smapling. - min_size (float): minimum size of sampled bbox. - avoid_no_bbox (bool): whether to to avoid the - situation where the box does not appear. - """ - super(CropImageWithDataAchorSampling, self).__init__() - self.anchor_sampler = anchor_sampler - self.batch_sampler = batch_sampler - self.target_size = target_size - self.sampling_prob = sampling_prob - self.min_size = min_size - self.avoid_no_bbox = avoid_no_bbox - self.das_anchor_scales = np.array(das_anchor_scales) - - def __call__(self, sample, context): - """ - Crop the image and modify bounding box. - Operators: - 1. Scale the image width and height. - 2. Crop the image according to a radom sample. - 3. Rescale the bounding box. - 4. Determine if the new bbox is satisfied in the new image. - Returns: - sample: the image, bounding box are replaced. - """ - assert 'image' in sample, "image data not found" - im = sample['image'] - gt_bbox = sample['gt_bbox'] - gt_class = sample['gt_class'] - image_width = sample['w'] - image_height = sample['h'] - gt_score = None - if 'gt_score' in sample: - gt_score = sample['gt_score'] - sampled_bbox = [] - gt_bbox = gt_bbox.tolist() - - prob = np.random.uniform(0., 1.) - if prob > self.sampling_prob: # anchor sampling - assert self.anchor_sampler - for sampler in self.anchor_sampler: - found = 0 - for i in range(sampler[1]): - if found >= sampler[0]: - break - sample_bbox = data_anchor_sampling( - gt_bbox, image_width, image_height, - self.das_anchor_scales, self.target_size) - if sample_bbox == 0: - break - if satisfy_sample_constraint_coverage(sampler, sample_bbox, - gt_bbox): - sampled_bbox.append(sample_bbox) - found = found + 1 - im = np.array(im) - while sampled_bbox: - idx = int(np.random.uniform(0, len(sampled_bbox))) - sample_bbox = sampled_bbox.pop(idx) - - crop_bbox, crop_class, crop_score = filter_and_process( - sample_bbox, gt_bbox, gt_class, gt_score) - crop_bbox, crop_class, crop_score = bbox_area_sampling( - crop_bbox, crop_class, crop_score, self.target_size, - self.min_size) - - if self.avoid_no_bbox: - if len(crop_bbox) < 1: - continue - im = crop_image_sampling(im, sample_bbox, image_width, - image_height, self.target_size) - sample['image'] = im - sample['gt_bbox'] = crop_bbox - sample['gt_class'] = crop_class - sample['gt_score'] = crop_score - return sample - return sample - - else: - for sampler in self.batch_sampler: - found = 0 - for i in range(sampler[1]): - if found >= sampler[0]: - break - sample_bbox = generate_sample_bbox_square( - sampler, image_width, image_height) - if satisfy_sample_constraint_coverage(sampler, sample_bbox, - gt_bbox): - sampled_bbox.append(sample_bbox) - found = found + 1 - im = np.array(im) - while sampled_bbox: - idx = int(np.random.uniform(0, len(sampled_bbox))) - sample_bbox = sampled_bbox.pop(idx) - sample_bbox = clip_bbox(sample_bbox) - - crop_bbox, crop_class, crop_score = filter_and_process( - sample_bbox, gt_bbox, gt_class, gt_score) - # sampling bbox according the bbox area - crop_bbox, crop_class, crop_score = bbox_area_sampling( - crop_bbox, crop_class, crop_score, self.target_size, - self.min_size) - - if self.avoid_no_bbox: - if len(crop_bbox) < 1: - continue - xmin = int(sample_bbox[0] * image_width) - xmax = int(sample_bbox[2] * image_width) - ymin = int(sample_bbox[1] * image_height) - ymax = int(sample_bbox[3] * image_height) - im = im[ymin:ymax, xmin:xmax] - sample['image'] = im - sample['gt_bbox'] = crop_bbox - sample['gt_class'] = crop_class - sample['gt_score'] = crop_score - return sample - return sample - - -@register_op -class NormalizeBox(BaseOperator): - """Transform the bounding box's coornidates to [0,1].""" - - def __init__(self): - super(NormalizeBox, self).__init__() - - def __call__(self, sample, context): - gt_bbox = sample['gt_bbox'] - width = sample['w'] - height = sample['h'] - for i in range(gt_bbox.shape[0]): - gt_bbox[i][0] = gt_bbox[i][0] / width - gt_bbox[i][1] = gt_bbox[i][1] / height - gt_bbox[i][2] = gt_bbox[i][2] / width - gt_bbox[i][3] = gt_bbox[i][3] / height - sample['gt_bbox'] = gt_bbox - return sample - - -@register_op -class Permute(BaseOperator): - def __init__(self, to_bgr=True, channel_first=True): - """ - Change the channel. - Args: - to_bgr (bool): confirm whether to convert RGB to BGR - channel_first (bool): confirm whether to change channel - - """ - super(Permute, self).__init__() - self.to_bgr = to_bgr - self.channel_first = channel_first - if not (isinstance(self.to_bgr, bool) and - isinstance(self.channel_first, bool)): - raise TypeError("{}: input type is invalid.".format(self)) - - def __call__(self, sample, context=None): - assert 'image' in sample, "image data not found" - for k in sample.keys(): - if 'image' in k: - im = sample[k] - if self.channel_first: - im = np.swapaxes(im, 1, 2) - im = np.swapaxes(im, 1, 0) - if self.to_bgr: - im = im[[2, 1, 0], :, :] - sample[k] = im - return sample - - -@register_op -class MixupImage(BaseOperator): - def __init__(self, alpha=1.5, beta=1.5): - """ Mixup image and gt_bbbox/gt_score - Args: - alpha (float): alpha parameter of beta distribute - beta (float): beta parameter of beta distribute - """ - super(MixupImage, self).__init__() - self.alpha = alpha - self.beta = beta - if self.alpha <= 0.0: - raise ValueError("alpha shold be positive in {}".format(self)) - if self.beta <= 0.0: - raise ValueError("beta shold be positive in {}".format(self)) - - def _mixup_img(self, img1, img2, factor): - h = max(img1.shape[0], img2.shape[0]) - w = max(img1.shape[1], img2.shape[1]) - img = np.zeros((h, w, img1.shape[2]), 'float32') - img[:img1.shape[0], :img1.shape[1], :] = \ - img1.astype('float32') * factor - img[:img2.shape[0], :img2.shape[1], :] += \ - img2.astype('float32') * (1.0 - factor) - return img.astype('uint8') - - def __call__(self, sample, context=None): - if 'mixup' not in sample: - return sample - factor = np.random.beta(self.alpha, self.beta) - factor = max(0.0, min(1.0, factor)) - if factor >= 1.0: - sample.pop('mixup') - return sample - if factor <= 0.0: - return sample['mixup'] - im = self._mixup_img(sample['image'], sample['mixup']['image'], factor) - gt_bbox1 = sample['gt_bbox'] - gt_bbox2 = sample['mixup']['gt_bbox'] - gt_bbox = np.concatenate((gt_bbox1, gt_bbox2), axis=0) - gt_class1 = sample['gt_class'] - gt_class2 = sample['mixup']['gt_class'] - gt_class = np.concatenate((gt_class1, gt_class2), axis=0) - - gt_score1 = sample['gt_score'] - gt_score2 = sample['mixup']['gt_score'] - gt_score = np.concatenate( - (gt_score1 * factor, gt_score2 * (1. - factor)), axis=0) - sample['image'] = im - sample['gt_bbox'] = gt_bbox - sample['gt_score'] = gt_score - sample['gt_class'] = gt_class - sample['h'] = im.shape[0] - sample['w'] = im.shape[1] - sample.pop('mixup') - return sample - - -@register_op -class RandomInterpImage(BaseOperator): - def __init__(self, target_size=0, max_size=0): - """ - Random reisze image by multiply interpolate method. - Args: - target_size (int): the taregt size of image's short side - max_size (int): the max size of image - """ - super(RandomInterpImage, self).__init__() - self.target_size = target_size - self.max_size = max_size - if not (isinstance(self.target_size, int) and - isinstance(self.max_size, int)): - raise TypeError('{}: input type is invalid.'.format(self)) - interps = [ - cv2.INTER_NEAREST, - cv2.INTER_LINEAR, - cv2.INTER_AREA, - cv2.INTER_CUBIC, - cv2.INTER_LANCZOS4, - ] - self.resizers = [] - for interp in interps: - self.resizers.append(ResizeImage(target_size, max_size, interp)) - - def __call__(self, sample, context=None): - """Resise the image numpy by random resizer.""" - resizer = random.choice(self.resizers) - return resizer(sample, context) diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/parallel_map.py b/PaddleCV/PaddleDetection/ppdet/data/transform/parallel_map.py deleted file mode 100644 index 2ba55a8d203cfa7f467e1790b372cf6ce6e02fdb..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/parallel_map.py +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# function: -# transform samples in 'source' using 'mapper' - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import sys -import six -import uuid -import logging -import signal -import threading -from .transformer import ProxiedDataset - -logger = logging.getLogger(__name__) - - -class EndSignal(object): - def __init__(self, errno=0, errmsg=''): - self.errno = errno - self.errmsg = errmsg - - -class ParallelMappedDataset(ProxiedDataset): - """ - Transform samples to mapped samples which is similar to 'basic.MappedDataset', - but multiple workers (threads or processes) will be used - - Notes: - this class is not thread-safe - """ - - def __init__(self, source, mapper, worker_args): - super(ParallelMappedDataset, self).__init__(source) - worker_args = {k.lower(): v for k, v in worker_args.items()} - - args = {'bufsize': 100, 'worker_num': 8, - 'use_process': False, 'memsize': '3G'} - args.update(worker_args) - if args['use_process'] and type(args['memsize']) is str: - assert args['memsize'][-1].lower() == 'g', \ - "invalid param for memsize[%s], should be ended with 'G' or 'g'" % (args['memsize']) - gb = args['memsize'][:-1] - args['memsize'] = int(gb) * 1024 ** 3 - - self._worker_args = args - self._started = False - self._source = source - self._mapper = mapper - self._exit = False - self._setup() - - def _setup(self): - """setup input/output queues and workers """ - use_process = self._worker_args.get('use_process', False) - if use_process and sys.platform == "win32": - logger.info("Use multi-thread reader instead of " - "multi-process reader on Windows.") - use_process = False - - bufsize = self._worker_args['bufsize'] - if use_process: - from .shared_queue import SharedQueue as Queue - from multiprocessing import Process as Worker - from multiprocessing import Event - memsize = self._worker_args['memsize'] - self._inq = Queue(bufsize, memsize=memsize) - self._outq = Queue(bufsize, memsize=memsize) - else: - if six.PY3: - from queue import Queue - else: - from Queue import Queue - from threading import Thread as Worker - from threading import Event - self._inq = Queue(bufsize) - self._outq = Queue(bufsize) - - consumer_num = self._worker_args['worker_num'] - id = str(uuid.uuid4())[-3:] - self._producer = threading.Thread( - target=self._produce, - args=('producer-' + id, self._source, self._inq)) - self._producer.daemon = True - - self._consumers = [] - for i in range(consumer_num): - p = Worker( - target=self._consume, - args=('consumer-' + id + '_' + str(i), self._inq, self._outq, - self._mapper)) - self._consumers.append(p) - p.daemon = True - - self._epoch = -1 - self._feeding_ev = Event() - self._produced = 0 # produced sample in self._produce - self._consumed = 0 # consumed sample in self.next - self._stopped_consumers = 0 - - def _produce(self, id, source, inq): - """Fetch data from source and feed it to 'inq' queue""" - while True: - self._feeding_ev.wait() - if self._exit: - break - try: - inq.put(source.next()) - self._produced += 1 - except StopIteration: - self._feeding_ev.clear() - self._feeding_ev.wait() # wait other guy to wake up me - logger.debug("producer[{}] starts new epoch".format(id)) - except Exception as e: - msg = "producer[{}] failed with error: {}".format(id, str(e)) - inq.put(EndSignal(-1, msg)) - break - - logger.debug("producer[{}] exits".format(id)) - - def _consume(self, id, inq, outq, mapper): - """Fetch data from 'inq', process it and put result to 'outq'""" - while True: - sample = inq.get() - if isinstance(sample, EndSignal): - sample.errmsg += "[consumer[{}] exits]".format(id) - outq.put(sample) - logger.debug("end signal received, " + - "consumer[{}] exits".format(id)) - break - - try: - result = mapper(sample) - outq.put(result) - except Exception as e: - msg = 'failed to map consumer[%s], error: {}'.format(str(e), id) - outq.put(EndSignal(-1, msg)) - break - - def drained(self): - assert self._epoch >= 0, "first epoch has not started yet" - return self._source.drained() and self._produced == self._consumed - - def stop(self): - """ notify to exit - """ - self._exit = True - self._feeding_ev.set() - for _ in range(len(self._consumers)): - self._inq.put(EndSignal(0, "notify consumers to exit")) - - def next(self): - """ get next transformed sample - """ - if self._epoch < 0: - self.reset() - - if self.drained(): - raise StopIteration() - - while True: - sample = self._outq.get() - if isinstance(sample, EndSignal): - self._stopped_consumers += 1 - if sample.errno != 0: - logger.warn("consumer failed with error: {}".format( - sample.errmsg)) - - if self._stopped_consumers < len(self._consumers): - self._inq.put(sample) - else: - raise ValueError("all consumers exited, no more samples") - else: - self._consumed += 1 - return sample - - def reset(self): - """ reset for a new epoch of samples - """ - if self._epoch < 0: - self._epoch = 0 - for p in self._consumers: - p.start() - self._producer.start() - else: - if not self.drained(): - logger.warn("do not reset before epoch[%d] finishes".format( - self._epoch)) - self._produced = self._produced - self._consumed - else: - self._produced = 0 - - self._epoch += 1 - - assert self._stopped_consumers == 0, "some consumers already exited," \ - + " cannot start another epoch" - - self._source.reset() - self._consumed = 0 - self._feeding_ev.set() - - -# FIXME(dengkaipeng): fix me if you have better impliment -# handle terminate reader process, do not print stack frame -def _reader_exit(signum, frame): - logger.debug("Reader process exit.") - sys.exit() - - -signal.signal(signal.SIGTERM, _reader_exit) diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/post_map.py b/PaddleCV/PaddleDetection/ppdet/data/transform/post_map.py deleted file mode 100644 index d556160e5a485753fe2d68600d320fcda6c91496..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/post_map.py +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import logging -import cv2 -import numpy as np - -logger = logging.getLogger(__name__) - - -def build_post_map(coarsest_stride=1, - is_padding=False, - random_shapes=[], - multi_scales=[], - use_padded_im_info=False, - enable_multiscale_test=False, - num_scale=1): - """ - Build a mapper for post-processing batches - - Args: - config (dict of parameters): - { - coarsest_stride (int): stride of the coarsest FPN level - is_padding (bool): whether to padding in minibatch - random_shapes (list of int): resize to image to random shapes, - [] for not resize. - multi_scales (list of int): resize image by random scales, - [] for not resize. - use_padded_im_info (bool): whether to update im_info after padding - enable_multiscale_test (bool): whether to use multiscale test. - num_scale (int) : the number of scales for multiscale test. - } - Returns: - a mapper function which accept one argument 'batch' and - return the processed result - """ - - def padding_minibatch(batch_data): - if len(batch_data) == 1 and coarsest_stride == 1: - return batch_data - max_shape = np.array([data[0].shape for data in batch_data]).max(axis=0) - if coarsest_stride > 1: - max_shape[1] = int( - np.ceil(max_shape[1] / coarsest_stride) * coarsest_stride) - max_shape[2] = int( - np.ceil(max_shape[2] / coarsest_stride) * coarsest_stride) - padding_batch = [] - for data in batch_data: - im_c, im_h, im_w = data[0].shape[:] - padding_im = np.zeros( - (im_c, max_shape[1], max_shape[2]), dtype=np.float32) - padding_im[:, :im_h, :im_w] = data[0] - if use_padded_im_info: - data[1][:2] = max_shape[1:3] - padding_batch.append((padding_im, ) + data[1:]) - return padding_batch - - def padding_multiscale_test(batch_data): - if len(batch_data) != 1: - raise NotImplementedError( - "Batch size must be 1 when using multiscale test, but now batch size is {}". - format(len(batch_data))) - if coarsest_stride > 1: - padding_batch = [] - padding_images = [] - data = batch_data[0] - for i, input in enumerate(data): - if i < num_scale: - im_c, im_h, im_w = input.shape - max_h = int( - np.ceil(im_h / coarsest_stride) * coarsest_stride) - max_w = int( - np.ceil(im_w / coarsest_stride) * coarsest_stride) - padding_im = np.zeros( - (im_c, max_h, max_w), dtype=np.float32) - padding_im[:, :im_h, :im_w] = input - data[num_scale][3 * i:3 * i + 2] = [max_h, max_w] - padding_batch.append(padding_im) - else: - padding_batch.append(input) - return [tuple(padding_batch)] - # no need to padding - return batch_data - - def random_shape(batch_data): - # For YOLO: gt_bbox is normalized, is scale invariant. - shape = np.random.choice(random_shapes) - scaled_batch = [] - h, w = batch_data[0][0].shape[1:3] - scale_x = float(shape) / w - scale_y = float(shape) / h - for data in batch_data: - im = cv2.resize( - data[0].transpose((1, 2, 0)), - None, - None, - fx=scale_x, - fy=scale_y, - interpolation=cv2.INTER_NEAREST) - scaled_batch.append((im.transpose(2, 0, 1), ) + data[1:]) - return scaled_batch - - def multi_scale_resize(batch_data): - # For RCNN: image shape in record in im_info. - scale = np.random.choice(multi_scales) - scaled_batch = [] - for data in batch_data: - im = cv2.resize( - data[0].transpose((1, 2, 0)), - None, - None, - fx=scale, - fy=scale, - interpolation=cv2.INTER_NEAREST) - im_info = [im.shape[:2], scale] - scaled_batch.append((im.transpose(2, 0, 1), im_info) + data[2:]) - return scaled_batch - - def _mapper(batch_data): - try: - if is_padding: - batch_data = padding_minibatch(batch_data) - if len(random_shapes) > 0: - batch_data = random_shape(batch_data) - if len(multi_scales) > 0: - batch_data = multi_scale_resize(batch_data) - if enable_multiscale_test: - batch_data = padding_multiscale_test(batch_data) - except Exception as e: - errmsg = "post-process failed with error: " + str(e) - logger.warn(errmsg) - raise e - - return batch_data - - return _mapper diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/__init__.py b/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/__init__.py deleted file mode 100644 index f118eb76a5f8349162a3a5dfc41bed2bb26a2cb0..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -__all__ = ['SharedBuffer', 'SharedMemoryMgr', 'SharedQueue'] - -from .sharedmemory import SharedBuffer -from .sharedmemory import SharedMemoryMgr -from .sharedmemory import SharedMemoryError -from .queue import SharedQueue diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/queue.py b/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/queue.py deleted file mode 100644 index 0bd44d3e9e0b34cefa3adfd8008a90e0963c5b62..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/queue.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import sys -import six -if six.PY3: - import pickle - from io import BytesIO as StringIO -else: - import cPickle as pickle - from cStringIO import StringIO - -import logging -import traceback -import multiprocessing as mp -from multiprocessing.queues import Queue -from .sharedmemory import SharedMemoryMgr - -logger = logging.getLogger(__name__) - - -class SharedQueueError(ValueError): - """ SharedQueueError - """ - pass - - -class SharedQueue(Queue): - """ a Queue based on shared memory to communicate data between Process, - and it's interface is compatible with 'multiprocessing.queues.Queue' - """ - - def __init__(self, maxsize=0, mem_mgr=None, memsize=None, pagesize=None): - """ init - """ - if six.PY3: - super(SharedQueue, self).__init__(maxsize, ctx=mp.get_context()) - else: - super(SharedQueue, self).__init__(maxsize) - - if mem_mgr is not None: - self._shared_mem = mem_mgr - else: - self._shared_mem = SharedMemoryMgr( - capacity=memsize, pagesize=pagesize) - - def put(self, obj, **kwargs): - """ put an object to this queue - """ - obj = pickle.dumps(obj, -1) - buff = None - try: - buff = self._shared_mem.malloc(len(obj)) - buff.put(obj) - super(SharedQueue, self).put(buff, **kwargs) - except Exception as e: - stack_info = traceback.format_exc() - err_msg = 'failed to put a element to SharedQueue '\ - 'with stack info[%s]' % (stack_info) - logger.warn(err_msg) - - if buff is not None: - buff.free() - raise e - - def get(self, **kwargs): - """ get an object from this queue - """ - buff = None - try: - buff = super(SharedQueue, self).get(**kwargs) - data = buff.get() - return pickle.load(StringIO(data)) - except Exception as e: - stack_info = traceback.format_exc() - err_msg = 'failed to get element from SharedQueue '\ - 'with stack info[%s]' % (stack_info) - logger.warn(err_msg) - raise e - finally: - if buff is not None: - buff.free() - - def release(self): - self._shared_mem.release() - self._shared_mem = None diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/sharedmemory.py b/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/sharedmemory.py deleted file mode 100644 index 765708d3b960b61fac8cd2ed985e29f43bab0fe0..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/shared_queue/sharedmemory.py +++ /dev/null @@ -1,535 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# utils for memory management which is allocated on sharedmemory, -# note that these structures may not be thread-safe - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os -import time -import math -import struct -import sys -import six - -if six.PY3: - import pickle -else: - import cPickle as pickle - -import json -import uuid -import random -import numpy as np -import weakref -import logging -from multiprocessing import Lock -from multiprocessing import RawArray - -logger = logging.getLogger(__name__) - - -class SharedMemoryError(ValueError): - """ SharedMemoryError - """ - pass - - -class SharedBufferError(SharedMemoryError): - """ SharedBufferError - """ - pass - - -class MemoryFullError(SharedMemoryError): - """ MemoryFullError - """ - - def __init__(self, errmsg=''): - super(MemoryFullError, self).__init__() - self.errmsg = errmsg - - -def memcopy(dst, src, offset=0, length=None): - """ copy data from 'src' to 'dst' in bytes - """ - length = length if length is not None else len(src) - assert type(dst) == np.ndarray, 'invalid type for "dst" in memcopy' - if type(src) is not np.ndarray: - if type(src) is str and six.PY3: - src = src.encode() - src = np.frombuffer(src, dtype='uint8', count=len(src)) - - dst[:] = src[offset:offset + length] - - -class SharedBuffer(object): - """ Buffer allocated from SharedMemoryMgr, and it stores data on shared memory - - note that: - every instance of this should be freed explicitely by calling 'self.free' - """ - - def __init__(self, owner, capacity, pos, size=0, alloc_status=''): - """ Init - - Args: - owner (str): manager to own this buffer - capacity (int): capacity in bytes for this buffer - pos (int): page position in shared memory - size (int): bytes already used - alloc_status (str): debug info about allocator when allocate this - """ - self._owner = owner - self._cap = capacity - self._pos = pos - self._size = size - self._alloc_status = alloc_status - assert self._pos >= 0 and self._cap > 0, \ - "invalid params[%d:%d] to construct SharedBuffer" \ - % (self._pos, self._cap) - - def owner(self): - """ get owner - """ - return SharedMemoryMgr.get_mgr(self._owner) - - def put(self, data, override=False): - """ put data to this buffer - - Args: - data (str): data to be stored in this buffer - - Returns: - None - - Raises: - SharedMemoryError when not enough space in this buffer - """ - assert type(data) in [str, bytes], \ - 'invalid type[%s] for SharedBuffer::put' % (str(type(data))) - if self._size > 0 and not override: - raise SharedBufferError('already has already been setted before') - - if self.capacity() < len(data): - raise SharedBufferError('data[%d] is larger than size of buffer[%s]'\ - % (len(data), str(self))) - - self.owner().put_data(self, data) - self._size = len(data) - - def get(self, offset=0, size=None, no_copy=True): - """ get the data stored this buffer - - Args: - offset (int): position for the start point to 'get' - size (int): size to get - - Returns: - data (np.ndarray('uint8')): user's data in numpy - which is passed in by 'put' - None: if no data stored in - """ - offset = offset if offset >= 0 else self._size + offset - if self._size <= 0: - return None - - size = self._size if size is None else size - assert offset + size <= self._cap, 'invalid offset[%d] '\ - 'or size[%d] for capacity[%d]' % (offset, size, self._cap) - return self.owner().get_data(self, offset, size, no_copy=no_copy) - - def size(self): - """ bytes of used memory - """ - return self._size - - def resize(self, size): - """ resize the used memory to 'size', should not be greater than capacity - """ - assert size >= 0 and size <= self._cap, \ - "invalid size[%d] for resize" % (size) - - self._size = size - - def capacity(self): - """ size of allocated memory - """ - return self._cap - - def __str__(self): - """ human readable format - """ - return "SharedBuffer(owner:%s, pos:%d, size:%d, "\ - "capacity:%d, alloc_status:[%s], pid:%d)" \ - % (str(self._owner), self._pos, self._size, \ - self._cap, self._alloc_status, os.getpid()) - - def free(self): - """ free this buffer to it's owner - """ - if self._owner is not None: - self.owner().free(self) - self._owner = None - self._cap = 0 - self._pos = -1 - self._size = 0 - return True - else: - return False - - -class PageAllocator(object): - """ allocator used to malloc and free shared memory which - is split into pages - """ - s_allocator_header = 12 - - def __init__(self, base, total_pages, page_size): - """ init - """ - self._magic_num = 1234321000 + random.randint(100, 999) - self._base = base - self._total_pages = total_pages - self._page_size = page_size - - header_pages = int( - math.ceil((total_pages + self.s_allocator_header) / page_size)) - - self._header_pages = header_pages - self._free_pages = total_pages - header_pages - self._header_size = self._header_pages * page_size - self._reset() - - def _dump_alloc_info(self, fname): - hpages, tpages, pos, used = self.header() - - start = self.s_allocator_header - end = start + self._page_size * hpages - alloc_flags = self._base[start:end].tostring() - info = { - 'magic_num': self._magic_num, - 'header_pages': hpages, - 'total_pages': tpages, - 'pos': pos, - 'used': used - } - info['alloc_flags'] = alloc_flags - fname = fname + '.' + str(uuid.uuid4())[:6] - with open(fname, 'wb') as f: - f.write(pickle.dumps(info, -1)) - logger.warn('dump alloc info to file[%s]' % (fname)) - - def _reset(self): - alloc_page_pos = self._header_pages - used_pages = self._header_pages - header_info = struct.pack( - str('III'), self._magic_num, alloc_page_pos, used_pages) - assert len(header_info) == self.s_allocator_header, \ - 'invalid size of header_info' - - memcopy(self._base[0:self.s_allocator_header], header_info) - self.set_page_status(0, self._header_pages, '1') - self.set_page_status(self._header_pages, self._free_pages, '0') - - def header(self): - """ get header info of this allocator - """ - header_str = self._base[0:self.s_allocator_header].tostring() - magic, pos, used = struct.unpack(str('III'), header_str) - - assert magic == self._magic_num, \ - 'invalid header magic[%d] in shared memory' % (magic) - return self._header_pages, self._total_pages, pos, used - - def empty(self): - """ are all allocatable pages available - """ - header_pages, pages, pos, used = self.header() - return header_pages == used - - def full(self): - """ are all allocatable pages used - """ - header_pages, pages, pos, used = self.header() - return header_pages + used == pages - - def __str__(self): - header_pages, pages, pos, used = self.header() - desc = '{page_info[magic:%d,total:%d,used:%d,header:%d,alloc_pos:%d,pagesize:%d]}' \ - % (self._magic_num, pages, used, header_pages, pos, self._page_size) - return 'PageAllocator:%s' % (desc) - - def set_alloc_info(self, alloc_pos, used_pages): - """ set allocating position to new value - """ - memcopy(self._base[4:12], struct.pack(str('II'), alloc_pos, used_pages)) - - def set_page_status(self, start, page_num, status): - """ set pages from 'start' to 'end' with new same status 'status' - """ - assert status in ['0', '1'], 'invalid status[%s] for page status '\ - 'in allocator[%s]' % (status, str(self)) - start += self.s_allocator_header - end = start + page_num - assert start >= 0 and end <= self._header_size, 'invalid end[%d] of pages '\ - 'in allocator[%s]' % (end, str(self)) - memcopy(self._base[start:end], str(status * page_num)) - - def get_page_status(self, start, page_num, ret_flag=False): - start += self.s_allocator_header - end = start + page_num - assert start >= 0 and end <= self._header_size, 'invalid end[%d] of pages '\ - 'in allocator[%s]' % (end, str(self)) - status = self._base[start:end].tostring().decode() - if ret_flag: - return status - - zero_num = status.count('0') - if zero_num == 0: - return (page_num, 1) - else: - return (zero_num, 0) - - def malloc_page(self, page_num): - header_pages, pages, pos, used = self.header() - end = pos + page_num - if end > pages: - pos = self._header_pages - end = pos + page_num - - start_pos = pos - flags = '' - while True: - # maybe flags already has some '0' pages, - # so just check 'page_num - len(flags)' pages - flags = self.get_page_status( - pos, page_num, ret_flag=True) - - if flags.count('0') == page_num: - break - - # not found enough pages, so shift to next few pages - free_pos = flags.rfind('1') + 1 - pos += free_pos - end = pos + page_num - if end > pages: - pos = self._header_pages - end = pos + page_num - flags = '' - - # not found available pages after scan all pages - if pos <= start_pos and end >= start_pos: - logger.debug('not found available pages after scan all pages') - break - - page_status = (flags.count('0'), 0) - if page_status != (page_num, 0): - free_pages = self._total_pages - used - if free_pages == 0: - err_msg = 'all pages have been used:%s' % (str(self)) - else: - err_msg = 'not found available pages with page_status[%s] '\ - 'and %d free pages' % (str(page_status), free_pages) - err_msg = 'failed to malloc %d pages at pos[%d] for reason[%s] and allocator status[%s]' \ - % (page_num, pos, err_msg, str(self)) - raise MemoryFullError(err_msg) - - self.set_page_status(pos, page_num, '1') - used += page_num - self.set_alloc_info(end, used) - return pos - - def free_page(self, start, page_num): - """ free 'page_num' pages start from 'start' - """ - page_status = self.get_page_status(start, page_num) - assert page_status == (page_num, 1), \ - 'invalid status[%s] when free [%d, %d]' \ - % (str(page_status), start, page_num) - self.set_page_status(start, page_num, '0') - _, _, pos, used = self.header() - used -= page_num - self.set_alloc_info(pos, used) - - -DEFAULT_SHARED_MEMORY_SIZE = 1024 * 1024 * 1024 - - -class SharedMemoryMgr(object): - """ manage a continouse block of memory, provide - 'malloc' to allocate new buffer, and 'free' to free buffer - """ - s_memory_mgrs = weakref.WeakValueDictionary() - s_mgr_num = 0 - s_log_statis = False - - @classmethod - def get_mgr(cls, id): - """ get a SharedMemoryMgr with size of 'capacity' - """ - assert id in cls.s_memory_mgrs, 'invalid id[%s] for memory managers' % ( - id) - return cls.s_memory_mgrs[id] - - def __init__(self, capacity=None, pagesize=None): - """ init - """ - logger.debug('create SharedMemoryMgr') - - pagesize = 64 * 1024 if pagesize is None else pagesize - assert type(pagesize) is int, "invalid type of pagesize[%s]" \ - % (str(pagesize)) - - capacity = DEFAULT_SHARED_MEMORY_SIZE if capacity is None else capacity - assert type(capacity) is int, "invalid type of capacity[%s]" \ - % (str(capacity)) - - assert capacity > 0, '"size of shared memory should be greater than 0' - self._released = False - self._cap = capacity - self._page_size = pagesize - - assert self._cap % self._page_size == 0, \ - "capacity[%d] and pagesize[%d] are not consistent" \ - % (self._cap, self._page_size) - self._total_pages = self._cap // self._page_size - - self._pid = os.getpid() - SharedMemoryMgr.s_mgr_num += 1 - self._id = self._pid * 100 + SharedMemoryMgr.s_mgr_num - SharedMemoryMgr.s_memory_mgrs[self._id] = self - self._locker = Lock() - self._setup() - - def _setup(self): - self._shared_mem = RawArray('c', self._cap) - self._base = np.frombuffer( - self._shared_mem, dtype='uint8', count=self._cap) - self._locker.acquire() - try: - self._allocator = PageAllocator(self._base, self._total_pages, - self._page_size) - finally: - self._locker.release() - - def malloc(self, size, wait=True): - """ malloc a new SharedBuffer - - Args: - size (int): buffer size to be malloc - wait (bool): whether to wait when no enough memory - - Returns: - SharedBuffer - - Raises: - SharedMemoryError when not found available memory - """ - page_num = int(math.ceil(size / self._page_size)) - size = page_num * self._page_size - - start = None - ct = 0 - errmsg = '' - while True: - self._locker.acquire() - try: - start = self._allocator.malloc_page(page_num) - alloc_status = str(self._allocator) - except MemoryFullError as e: - start = None - errmsg = e.errmsg - if not wait: - raise e - finally: - self._locker.release() - - if start is None: - time.sleep(0.1) - if ct % 100 == 0: - logger.warn('not enough space for reason[%s]' % (errmsg)) - - ct += 1 - else: - break - - return SharedBuffer(self._id, size, start, alloc_status=alloc_status) - - def free(self, shared_buf): - """ free a SharedBuffer - - Args: - shared_buf (SharedBuffer): buffer to be freed - - Returns: - None - - Raises: - SharedMemoryError when failed to release this buffer - """ - assert shared_buf._owner == self._id, "invalid shared_buf[%s] "\ - "for it's not allocated from me[%s]" % (str(shared_buf), str(self)) - cap = shared_buf.capacity() - start_page = shared_buf._pos - page_num = cap // self._page_size - - #maybe we don't need this lock here - self._locker.acquire() - try: - self._allocator.free_page(start_page, page_num) - finally: - self._locker.release() - - def put_data(self, shared_buf, data): - """ fill 'data' into 'shared_buf' - """ - assert len(data) <= shared_buf.capacity(), 'too large data[%d] '\ - 'for this buffer[%s]' % (len(data), str(shared_buf)) - start = shared_buf._pos * self._page_size - end = start + len(data) - assert start >= 0 and end <= self._cap, "invalid start "\ - "position[%d] when put data to buff:%s" % (start, str(shared_buf)) - self._base[start:end] = np.frombuffer(data, 'uint8', len(data)) - - def get_data(self, shared_buf, offset, size, no_copy=True): - """ extract 'data' from 'shared_buf' in range [offset, offset + size) - """ - start = shared_buf._pos * self._page_size - start += offset - if no_copy: - return self._base[start:start + size] - else: - return self._base[start:start + size].tostring() - - def __str__(self): - return 'SharedMemoryMgr:{id:%d, %s}' % (self._id, str(self._allocator)) - - def __del__(self): - if SharedMemoryMgr.s_log_statis: - logger.info('destroy [%s]' % (self)) - - if not self._released and not self._allocator.empty(): - logger.debug('not empty when delete this SharedMemoryMgr[%s]' % - (self)) - else: - self._released = True - - if self._id in SharedMemoryMgr.s_memory_mgrs: - del SharedMemoryMgr.s_memory_mgrs[self._id] - SharedMemoryMgr.s_mgr_num -= 1 diff --git a/PaddleCV/PaddleDetection/ppdet/data/transform/transformer.py b/PaddleCV/PaddleDetection/ppdet/data/transform/transformer.py deleted file mode 100644 index ad8845677db7cc17b5212876762a9b697344ba29..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/data/transform/transformer.py +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np -import functools -import collections -from ..dataset import Dataset - - -class ProxiedDataset(Dataset): - """proxy method called to 'self._ds' when if not defined""" - - def __init__(self, ds): - super(ProxiedDataset, self).__init__() - self._ds = ds - methods = filter(lambda k: not k.startswith('_'), - Dataset.__dict__.keys()) - for m in methods: - func = functools.partial(self._proxy_method, getattr(self, m)) - setattr(self, m, func) - - def _proxy_method(self, func, *args, **kwargs): - """ - proxy call to 'func', if not available then call self._ds.xxx - whose name is the same with func.__name__ - """ - method = func.__name__ - try: - return func(*args, **kwargs) - except NotImplementedError: - ds_func = getattr(self._ds, method) - return ds_func(*args, **kwargs) - - -class MappedDataset(ProxiedDataset): - def __init__(self, ds, mapper): - super(MappedDataset, self).__init__(ds) - self._ds = ds - self._mapper = mapper - - def next(self): - sample = self._ds.next() - return self._mapper(sample) - - -class BatchedDataset(ProxiedDataset): - """ - Batching samples - - Args: - ds (instance of Dataset): dataset to be batched - batchsize (int): sample number for each batch - drop_last (bool): drop last samples when not enough for one batch - drop_empty (bool): drop samples which have empty field - """ - - def __init__(self, ds, batchsize, drop_last=False, drop_empty=True): - super(BatchedDataset, self).__init__(ds) - self._batchsz = batchsize - self._drop_last = drop_last - self._drop_empty = drop_empty - - def next(self): - """proxy to self._ds.next""" - - def empty(x): - if isinstance(x, np.ndarray) and x.size == 0: - return True - elif isinstance(x, collections.Sequence) and len(x) == 0: - return True - else: - return False - - def has_empty(items): - if any(x is None for x in items): - return True - if any(empty(x) for x in items): - return True - return False - - batch = [] - for _ in range(self._batchsz): - try: - out = self._ds.next() - while self._drop_empty and has_empty(out): - out = self._ds.next() - batch.append(out) - except StopIteration: - if not self._drop_last and len(batch) > 0: - return batch - else: - raise StopIteration - return batch diff --git a/PaddleCV/PaddleDetection/ppdet/experimental/__init__.py b/PaddleCV/PaddleDetection/ppdet/experimental/__init__.py deleted file mode 100644 index f70396193135830ef2d1de8e357842ea1ef0eea2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/experimental/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from .mixed_precision import * -from . import mixed_precision - -__all__ = mixed_precision.__all__ diff --git a/PaddleCV/PaddleDetection/ppdet/experimental/mixed_precision.py b/PaddleCV/PaddleDetection/ppdet/experimental/mixed_precision.py deleted file mode 100644 index d8c333bf4b99b51857e47779b2f8998758cd0318..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/experimental/mixed_precision.py +++ /dev/null @@ -1,338 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function - -import six -from paddle.fluid.framework import Parameter -from paddle.fluid import layers -from paddle.fluid import core -from paddle.fluid import unique_name -import paddle.fluid.layer_helper_base as lhb -import paddle.fluid.optimizer as optim - -__all__ = ['mixed_precision_global_state', 'mixed_precision_context', - 'StaticLossScale', 'DynamicLossScale'] - -_mixed_precision_global_state = None - - -def mixed_precision_global_state(): - return _mixed_precision_global_state - - -class LossScale(object): - def __init__(self): - super(LossScale, self).__init__() - - def get_loss_scale_var(self): - return self.scale - - def increment(self): - raise NotImplementedError() - - def decrement(self): - raise NotImplementedError() - - -class StaticLossScale(LossScale): - """ - Static (fixed) loss scale manager. - - Args: - init_loss_scale (float): initial loss scale value. - - Examples: - - .. code-block:: python - - from paddle import fluid - from ppdet.experimental import (mixed_precision_context, - StaticLossScale) - - with mixed_precision_context(StaticLossScale(8.), True) as ctx: - # ... - # scale loss - loss_scale = ctx.get_loss_scale_var() - - """ - - def __init__(self, init_loss_scale=1.): - super(StaticLossScale, self).__init__() - self.scale = layers.create_global_var( - name=unique_name.generate("loss_scale"), - shape=[1], - value=init_loss_scale, - dtype='float32', - persistable=True) - - -class DynamicLossScale(LossScale): - """ - Dynamic loss scale manager. it works as follows: - if gradients is valid for `increment_every` steps, loss scale values is - increased by `factor`, otherwise loss scale values is decreased by `factor` - - Args: - init_loss_scale (float): initial loss scale value. - increment_every (int): minimum 'good' steps before loss scale increase. - factor (float): increase/decrease loss scale by this much. - - Examples: - - .. code-block:: python - - from paddle import fluid - from ppdet.experimental import (mixed_precision_context, - DynamicLossScale) - - loss_scale = DynamicLossScale(8., 1000, 4.) - with mixed_precision_context(loss_scale, True) as ctx: - # ... - # scale loss - loss_scale = ctx.get_loss_scale_var() - - """ - - def __init__(self, init_loss_scale=2**15, increment_every=2000, factor=2.): - super(DynamicLossScale, self).__init__() - self.scale = layers.create_global_var( - name=unique_name.generate("loss_scale"), - shape=[1], - value=init_loss_scale, - dtype='float32', - persistable=True) - self.good_steps = layers.create_global_var( - name=unique_name.generate("good_steps"), - shape=[1], - value=0, - dtype='int32', - persistable=True) - self.increment_every = layers.fill_constant( - shape=[1], dtype='int32', value=increment_every) - self.factor = factor - - def increment(self): - enough_steps = layers.less_than(self.increment_every, - self.good_steps + 1) - with layers.Switch() as switch: - with switch.case(enough_steps): - new_scale = self.scale * self.factor - scale_valid = layers.isfinite(new_scale) - with layers.Switch() as switch2: - with switch2.case(scale_valid): - layers.assign(new_scale, self.scale) - layers.assign(layers.zeros_like(self.good_steps), - self.good_steps) - with switch2.default(): - layers.increment(self.good_steps) - with switch.default(): - layers.increment(self.good_steps) - - def decrement(self): - new_scale = self.scale / self.factor - one = layers.fill_constant(shape=[1], dtype='float32', value=1.0) - less_than_one = layers.less_than(new_scale, one) - with layers.Switch() as switch: - with switch.case(less_than_one): - layers.assign(one, self.scale) - with switch.default(): - layers.assign(new_scale, self.scale) - - layers.assign(layers.zeros_like(self.good_steps), - self.good_steps) - - -class mixed_precision_context(object): - """ - Context manager for mixed precision training. - - Args: - loss_scale (float, str or obj): loss scale settings, can be: - 1. an number: use fixed loss scale. - 2. 'dynamic': use a default `DynamicLossScale`. - 3. `DynamicLossScale` or `StaticLossScale` instance. - enabled (bool): enable mixed precision training. - - Examples: - - .. code-block:: python - - from paddle import fluid - from ppdet.experimental import mixed_precision_context - - with mixed_precision_context('dynamic', True) as ctx: - # cast inputs to float16 - inputs = fluid.layers.cast(inputs, "float16") - # build model here - logits = model(inputs) - # use float32 for softmax - logits = fluid.layers.cast(logits, "float32") - softmax = fluid.layers.softmax(logits) - loss = fluid.layers.cross_entropy(input=softmax, label=label) - avg_loss = fluid.layers.mean(loss) - # scale loss - loss_scale = ctx.get_loss_scale_var() - avg_loss *= loss_scale - optimizer = fluid.optimizer.Momentum(...) - optimizer.minimize(avg_loss) - - """ - - def __init__(self, loss_scale=1., enabled=True): - super(mixed_precision_context, self).__init__() - self.enabled = enabled - if not enabled: - return - monkey_patch() - if isinstance(loss_scale, six.integer_types + (float,)): - self.loss_scale = StaticLossScale(loss_scale) - elif loss_scale == 'dynamic': - self.loss_scale = DynamicLossScale() - else: - assert isinstance(loss_scale, LossScale), \ - "Invalid loss scale argument" - self.loss_scale = loss_scale - - @property - def dynamic_scaling(self): - return isinstance(self.loss_scale, DynamicLossScale) - - def __getattr__(self, attr): - if attr in ['get_loss_scale_var', 'increment', 'decrement']: - return getattr(self.loss_scale, attr) - - def __enter__(self): - if not self.enabled: - return - global _mixed_precision_global_state - _mixed_precision_global_state = self - return mixed_precision_global_state() - - def __exit__(self, *args): - if not self.enabled: - return - global _mixed_precision_global_state - _mixed_precision_global_state = None - return mixed_precision_global_state() - - -def create_parameter(self, - attr, - shape, - dtype, - is_bias=False, - default_initializer=None): - mp_state = mixed_precision_global_state() - is_half = (isinstance(dtype, str) and dtype == 'float16') \ - or (isinstance(dtype, core.VarDesc.VarType) - and dtype == core.VarDesc.VarType.FP16) - - if is_half and mp_state is not None: - dtype = 'float32' - - param = self._create_parameter(attr, shape, dtype, - is_bias, default_initializer) - if not is_half or mp_state is None: - return param - - param16 = self.main_program.current_block().create_var( - name=param.name + '.fp16', - dtype='float16', - type=param.type, - persistable=False) - self.append_op( - type='cast', - inputs={'X': [param]}, - outputs={'Out': [param16]}, - attrs={'in_dtype': param.dtype, - 'out_dtype': param16.dtype}) - return param16 - - -def scale_gradient(block, context): - state = mixed_precision_global_state() - if state is None: - return - scale = state.get_loss_scale_var() - op_desc = block.desc.op(block.desc.op_size() - 1) - op_role_attr_name = core.op_proto_and_checker_maker.kOpRoleAttrName() - bwd_role = core.op_proto_and_checker_maker.OpRole.Backward - for name in [n for n in op_desc.output_arg_names() if n in context]: - fwd_var = block._var_recursive(context[name]) - if not isinstance(fwd_var, Parameter): - continue # TODO verify all use cases - clip_op_desc = block.desc.append_op() - clip_op_desc.set_type("elementwise_div") - clip_op_desc.set_input("X", [name]) - clip_op_desc.set_input("Y", [scale.name]) - clip_op_desc.set_output("Out", [name]) - clip_op_desc._set_attr(op_role_attr_name, bwd_role) - - -def update_loss_scale(grads): - state = mixed_precision_global_state() - if state is None or not state.dynamic_scaling: - return - per_grad_check = layers.stack([layers.reduce_sum(g) for g in grads]) - grad_valid = layers.isfinite(per_grad_check) - - with layers.Switch() as switch: - with switch.case(grad_valid): - state.increment() - with switch.default(): - state.decrement() - return grad_valid - - -def backward(self, loss, **kwargs): - state = mixed_precision_global_state() - callbacks = 'callbacks' in kwargs and kwargs['callbacks'] or None - if callbacks is None: - from paddle.fluid.clip import error_clip_callback - callbacks = [error_clip_callback] # XXX what if gradient is zero? - if state is not None: - kwargs['callbacks'] = [scale_gradient] + callbacks - else: - kwargs['callbacks'] = callbacks - param_grads = self._backward(loss, **kwargs) - if state is not None: - grad_valid = update_loss_scale(v for k, v in param_grads) - if state.dynamic_scaling: - with layers.Switch() as switch: - with switch.case(grad_valid): - pass - with switch.default(): - for _, g in param_grads: - layers.assign(layers.zeros_like(g), g) - - return param_grads - - -mixed_precision_patched = False - - -# XXX this is a temporary measure, until thoroughly evaluated -def monkey_patch(): - global mixed_precision_patched - if mixed_precision_patched: - return - create_parameter_orig = lhb.LayerHelperBase.create_parameter - lhb.LayerHelperBase.create_parameter = create_parameter - lhb.LayerHelperBase._create_parameter = create_parameter_orig - backward_orig = optim.Optimizer.backward - optim.Optimizer.backward = backward - optim.Optimizer._backward = backward_orig - mixed_precision_patched = True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/__init__.py deleted file mode 100644 index f9491d771626848a631804ac3bf663f2ee6ec82c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -# XXX for triggering decorators -from . import anchor_heads -from . import architectures -from . import backbones -from . import roi_extractors -from . import roi_heads -from . import ops -from . import target_assigners - -from .anchor_heads import * -from .architectures import * -from .backbones import * -from .roi_extractors import * -from .roi_heads import * -from .ops import * -from .target_assigners import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/__init__.py deleted file mode 100644 index 1ed22160d23cc5c7437507350037e71134ee8824..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from . import rpn_head -from . import yolo_head -from . import retina_head - -from .rpn_head import * -from .yolo_head import * -from .retina_head import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/retina_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/retina_head.py deleted file mode 100644 index 41246e8b6267881f62386653841ecfb525a254e1..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/retina_head.py +++ /dev/null @@ -1,407 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np - -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Normal, Constant -from paddle.fluid.regularizer import L2Decay -from ppdet.modeling.ops import (AnchorGenerator, RetinaTargetAssign, - RetinaOutputDecoder) - -from ppdet.core.workspace import register - -__all__ = ['RetinaHead'] - - -@register -class RetinaHead(object): - """ - Retina Head - - Args: - anchor_generator (object): `AnchorGenerator` instance - target_assign (object): `RetinaTargetAssign` instance - output_decoder (object): `RetinaOutputDecoder` instance - num_convs_per_octave (int): Number of convolution layers in each octave - num_chan (int): Number of octave output channels - max_level (int): Highest level of FPN output - min_level (int): Lowest level of FPN output - prior_prob (float): Used to set the bias init for the class prediction layer - base_scale (int): Anchors are generated based on this scale - num_scales_per_octave (int): Number of anchor scales per octave - num_classes (int): Number of classes - gamma (float): The parameter in focal loss - alpha (float): The parameter in focal loss - sigma (float): The parameter in smooth l1 loss - """ - __inject__ = ['anchor_generator', 'target_assign', 'output_decoder'] - __shared__ = ['num_classes'] - - def __init__(self, - anchor_generator=AnchorGenerator().__dict__, - target_assign=RetinaTargetAssign().__dict__, - output_decoder=RetinaOutputDecoder().__dict__, - num_convs_per_octave=4, - num_chan=256, - max_level=7, - min_level=3, - prior_prob=0.01, - base_scale=4, - num_scales_per_octave=3, - num_classes=81, - gamma=2.0, - alpha=0.25, - sigma=3.0151134457776365): - self.anchor_generator = anchor_generator - self.target_assign = target_assign - self.output_decoder = output_decoder - self.num_convs_per_octave = num_convs_per_octave - self.num_chan = num_chan - self.max_level = max_level - self.min_level = min_level - self.prior_prob = prior_prob - self.base_scale = base_scale - self.num_scales_per_octave = num_scales_per_octave - self.num_classes = num_classes - self.gamma = gamma - self.alpha = alpha - self.sigma = sigma - if isinstance(anchor_generator, dict): - self.anchor_generator = AnchorGenerator(**anchor_generator) - if isinstance(target_assign, dict): - self.target_assign = RetinaTargetAssign(**target_assign) - if isinstance(output_decoder, dict): - self.output_decoder = RetinaOutputDecoder(**output_decoder) - - def _class_subnet(self, body_feats, spatial_scale): - """ - Get class predictions of all level FPN level. - - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - - Returns: - cls_pred_input(list): Class prediction of all input fpn levels. - """ - assert len(body_feats) == self.max_level - self.min_level + 1 - fpn_name_list = list(body_feats.keys()) - cls_pred_list = [] - for lvl in range(self.min_level, self.max_level + 1): - fpn_name = fpn_name_list[self.max_level - lvl] - subnet_blob = body_feats[fpn_name] - for i in range(self.num_convs_per_octave): - conv_name = 'retnet_cls_conv_n{}_fpn{}'.format(i, lvl) - conv_share_name = 'retnet_cls_conv_n{}_fpn{}'.format( - i, self.min_level) - subnet_blob_in = subnet_blob - subnet_blob = fluid.layers.conv2d( - input=subnet_blob_in, - num_filters=self.num_chan, - filter_size=3, - stride=1, - padding=1, - act='relu', - name=conv_name, - param_attr=ParamAttr( - name=conv_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=conv_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - - # class prediction - cls_name = 'retnet_cls_pred_fpn{}'.format(lvl) - cls_share_name = 'retnet_cls_pred_fpn{}'.format(self.min_level) - num_anchors = self.num_scales_per_octave * len( - self.anchor_generator.aspect_ratios) - cls_dim = num_anchors * (self.num_classes - 1) - # bias initialization: b = -log((1 - pai) / pai) - bias_init = float(-np.log((1 - self.prior_prob) / self.prior_prob)) - out_cls = fluid.layers.conv2d( - input=subnet_blob, - num_filters=cls_dim, - filter_size=3, - stride=1, - padding=1, - act=None, - name=cls_name, - param_attr=ParamAttr( - name=cls_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=cls_share_name + '_b', - initializer=Constant(value=bias_init), - learning_rate=2., - regularizer=L2Decay(0.))) - cls_pred_list.append(out_cls) - - return cls_pred_list - - def _bbox_subnet(self, body_feats, spatial_scale): - """ - Get bounding box predictions of all level FPN level. - - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - - Returns: - bbox_pred_input(list): Bounding box prediction of all input fpn - levels. - """ - assert len(body_feats) == self.max_level - self.min_level + 1 - fpn_name_list = list(body_feats.keys()) - bbox_pred_list = [] - for lvl in range(self.min_level, self.max_level + 1): - fpn_name = fpn_name_list[self.max_level - lvl] - subnet_blob = body_feats[fpn_name] - for i in range(self.num_convs_per_octave): - conv_name = 'retnet_bbox_conv_n{}_fpn{}'.format(i, lvl) - conv_share_name = 'retnet_bbox_conv_n{}_fpn{}'.format( - i, self.min_level) - subnet_blob_in = subnet_blob - subnet_blob = fluid.layers.conv2d( - input=subnet_blob_in, - num_filters=self.num_chan, - filter_size=3, - stride=1, - padding=1, - act='relu', - name=conv_name, - param_attr=ParamAttr( - name=conv_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=conv_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - - # bbox prediction - bbox_name = 'retnet_bbox_pred_fpn{}'.format(lvl) - bbox_share_name = 'retnet_bbox_pred_fpn{}'.format(self.min_level) - num_anchors = self.num_scales_per_octave * len( - self.anchor_generator.aspect_ratios) - bbox_dim = num_anchors * 4 - out_bbox = fluid.layers.conv2d( - input=subnet_blob, - num_filters=bbox_dim, - filter_size=3, - stride=1, - padding=1, - act=None, - name=bbox_name, - param_attr=ParamAttr( - name=bbox_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=bbox_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - bbox_pred_list.append(out_bbox) - return bbox_pred_list - - def _anchor_generate(self, body_feats, spatial_scale): - """ - Get anchor boxes of all level FPN level. - - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - - Return: - anchor_input(list): Anchors of all input fpn levels with shape of. - anchor_var_input(list): Anchor variance of all input fpn levels with - shape. - """ - assert len(body_feats) == self.max_level - self.min_level + 1 - fpn_name_list = list(body_feats.keys()) - anchor_list = [] - anchor_var_list = [] - for lvl in range(self.min_level, self.max_level + 1): - anchor_sizes = [] - stride = int(1 / spatial_scale[self.max_level - lvl]) - for octave in range(self.num_scales_per_octave): - anchor_size = stride * ( - 2**(float(octave) / - float(self.num_scales_per_octave))) * self.base_scale - anchor_sizes.append(anchor_size) - fpn_name = fpn_name_list[self.max_level - lvl] - anchor, anchor_var = self.anchor_generator( - input=body_feats[fpn_name], - anchor_sizes=anchor_sizes, - aspect_ratios=self.anchor_generator.aspect_ratios, - stride=[stride, stride]) - anchor_list.append(anchor) - anchor_var_list.append(anchor_var) - return anchor_list, anchor_var_list - - def _get_output(self, body_feats, spatial_scale): - """ - Get class, bounding box predictions and anchor boxes of all level FPN level. - - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - - Returns: - cls_pred_input(list): Class prediction of all input fpn levels. - bbox_pred_input(list): Bounding box prediction of all input fpn - levels. - anchor_input(list): Anchors of all input fpn levels with shape of. - anchor_var_input(list): Anchor variance of all input fpn levels with - shape. - """ - assert len(body_feats) == self.max_level - self.min_level + 1 - # class subnet - cls_pred_list = self._class_subnet(body_feats, spatial_scale) - # bbox subnet - bbox_pred_list = self._bbox_subnet(body_feats, spatial_scale) - #generate anchors - anchor_list, anchor_var_list = self._anchor_generate(body_feats, - spatial_scale) - cls_pred_reshape_list = [] - bbox_pred_reshape_list = [] - anchor_reshape_list = [] - anchor_var_reshape_list = [] - for i in range(self.max_level - self.min_level + 1): - cls_pred_transpose = fluid.layers.transpose( - cls_pred_list[i], perm=[0, 2, 3, 1]) - cls_pred_reshape = fluid.layers.reshape( - cls_pred_transpose, shape=(0, -1, self.num_classes - 1)) - bbox_pred_transpose = fluid.layers.transpose( - bbox_pred_list[i], perm=[0, 2, 3, 1]) - bbox_pred_reshape = fluid.layers.reshape( - bbox_pred_transpose, shape=(0, -1, 4)) - anchor_reshape = fluid.layers.reshape(anchor_list[i], shape=(-1, 4)) - anchor_var_reshape = fluid.layers.reshape( - anchor_var_list[i], shape=(-1, 4)) - cls_pred_reshape_list.append(cls_pred_reshape) - bbox_pred_reshape_list.append(bbox_pred_reshape) - anchor_reshape_list.append(anchor_reshape) - anchor_var_reshape_list.append(anchor_var_reshape) - output = {} - output['cls_pred'] = cls_pred_reshape_list - output['bbox_pred'] = bbox_pred_reshape_list - output['anchor'] = anchor_reshape_list - output['anchor_var'] = anchor_var_reshape_list - return output - - def get_prediction(self, body_feats, spatial_scale, im_info): - """ - Get prediction bounding box in test stage. - - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - im_info (Variable): A 2-D LoDTensor with shape [B, 3]. B is the - number of input images, each element consists of im_height, - im_width, im_scale. - - Returns: - pred_result(Variable): Prediction result with shape [N, 6]. Each - row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]. - N is the total number of prediction. - """ - output = self._get_output(body_feats, spatial_scale) - cls_pred_reshape_list = output['cls_pred'] - bbox_pred_reshape_list = output['bbox_pred'] - anchor_reshape_list = output['anchor'] - for i in range(self.max_level - self.min_level + 1): - cls_pred_reshape_list[i] = fluid.layers.sigmoid( - cls_pred_reshape_list[i]) - pred_result = self.output_decoder( - bboxes=bbox_pred_reshape_list, - scores=cls_pred_reshape_list, - anchors=anchor_reshape_list, - im_info=im_info) - return {'bbox': pred_result} - - def get_loss(self, body_feats, spatial_scale, im_info, gt_box, gt_label, - is_crowd): - """ - Calculate the loss of retinanet. - Args: - fpn_dict(dict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - im_info(Variable): A 2-D LoDTensor with shape [B, 3]. B is the - number of input images, each element consists of im_height, - im_width, im_scale. - gt_box(Variable): The ground-truth bounding boxes with shape [M, 4]. - M is the number of groundtruth. - gt_label(Variable): The ground-truth labels with shape [M, 1]. - M is the number of groundtruth. - is_crowd(Variable): Indicates groud-truth is crowd or not with - shape [M, 1]. M is the number of groundtruth. - - Returns: - Type: dict - loss_cls(Variable): focal loss. - loss_bbox(Variable): smooth l1 loss. - """ - output = self._get_output(body_feats, spatial_scale) - cls_pred_reshape_list = output['cls_pred'] - bbox_pred_reshape_list = output['bbox_pred'] - anchor_reshape_list = output['anchor'] - anchor_var_reshape_list = output['anchor_var'] - - cls_pred_input = fluid.layers.concat(cls_pred_reshape_list, axis=1) - bbox_pred_input = fluid.layers.concat(bbox_pred_reshape_list, axis=1) - anchor_input = fluid.layers.concat(anchor_reshape_list, axis=0) - anchor_var_input = fluid.layers.concat(anchor_var_reshape_list, axis=0) - score_pred, loc_pred, score_tgt, loc_tgt, bbox_weight, fg_num = \ - self.target_assign( - bbox_pred=bbox_pred_input, - cls_logits=cls_pred_input, - anchor_box=anchor_input, - anchor_var=anchor_var_input, - gt_boxes=gt_box, - gt_labels=gt_label, - is_crowd=is_crowd, - im_info=im_info, - num_classes=self.num_classes - 1) - fg_num = fluid.layers.reduce_sum(fg_num, name='fg_num') - loss_cls = fluid.layers.sigmoid_focal_loss( - x=score_pred, - label=score_tgt, - fg_num=fg_num, - gamma=self.gamma, - alpha=self.alpha) - loss_cls = fluid.layers.reduce_sum(loss_cls, name='loss_cls') - loss_bbox = fluid.layers.smooth_l1( - x=loc_pred, - y=loc_tgt, - sigma=self.sigma, - inside_weight=bbox_weight, - outside_weight=bbox_weight) - loss_bbox = fluid.layers.reduce_sum(loss_bbox, name='loss_bbox') - loss_bbox = loss_bbox / fg_num - return {'loss_cls': loss_cls, 'loss_bbox': loss_bbox} diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/rpn_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/rpn_head.py deleted file mode 100644 index 876aafe36553b31cb1b41fec402949eb5a4c9f4b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/rpn_head.py +++ /dev/null @@ -1,497 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Normal -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register -from ppdet.modeling.ops import (AnchorGenerator, RPNTargetAssign, - GenerateProposals) - -__all__ = ['RPNTargetAssign', 'GenerateProposals', 'RPNHead', 'FPNRPNHead'] - - -@register -class RPNHead(object): - """ - RPN Head - - Args: - anchor_generator (object): `AnchorGenerator` instance - rpn_target_assign (object): `RPNTargetAssign` instance - train_proposal (object): `GenerateProposals` instance for training - test_proposal (object): `GenerateProposals` instance for testing - num_classes (int): number of classes in rpn output - """ - __inject__ = [ - 'anchor_generator', 'rpn_target_assign', 'train_proposal', - 'test_proposal' - ] - - def __init__(self, - anchor_generator=AnchorGenerator().__dict__, - rpn_target_assign=RPNTargetAssign().__dict__, - train_proposal=GenerateProposals(12000, 2000).__dict__, - test_proposal=GenerateProposals().__dict__, - num_classes=1): - super(RPNHead, self).__init__() - self.anchor_generator = anchor_generator - self.rpn_target_assign = rpn_target_assign - self.train_proposal = train_proposal - self.test_proposal = test_proposal - self.num_classes = num_classes - if isinstance(anchor_generator, dict): - self.anchor_generator = AnchorGenerator(**anchor_generator) - if isinstance(rpn_target_assign, dict): - self.rpn_target_assign = RPNTargetAssign(**rpn_target_assign) - if isinstance(train_proposal, dict): - self.train_proposal = GenerateProposals(**train_proposal) - if isinstance(test_proposal, dict): - self.test_proposal = GenerateProposals(**test_proposal) - - def _get_output(self, input): - """ - Get anchor and RPN head output. - - Args: - input(Variable): feature map from backbone with shape of [N, C, H, W] - - Returns: - rpn_cls_score(Variable): Output of rpn head with shape of - [N, num_anchors, H, W]. - rpn_bbox_pred(Variable): Output of rpn head with shape of - [N, num_anchors * 4, H, W]. - """ - dim_out = input.shape[1] - rpn_conv = fluid.layers.conv2d( - input=input, - num_filters=dim_out, - filter_size=3, - stride=1, - padding=1, - act='relu', - name='conv_rpn', - param_attr=ParamAttr( - name="conv_rpn_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="conv_rpn_b", learning_rate=2., regularizer=L2Decay(0.))) - # Generate anchors - self.anchor, self.anchor_var = self.anchor_generator(input=rpn_conv) - num_anchor = self.anchor.shape[2] - # Proposal classification scores - self.rpn_cls_score = fluid.layers.conv2d( - rpn_conv, - num_filters=num_anchor * self.num_classes, - filter_size=1, - stride=1, - padding=0, - act=None, - name='rpn_cls_score', - param_attr=ParamAttr( - name="rpn_cls_logits_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="rpn_cls_logits_b", - learning_rate=2., - regularizer=L2Decay(0.))) - # Proposal bbox regression deltas - self.rpn_bbox_pred = fluid.layers.conv2d( - rpn_conv, - num_filters=4 * num_anchor, - filter_size=1, - stride=1, - padding=0, - act=None, - name='rpn_bbox_pred', - param_attr=ParamAttr( - name="rpn_bbox_pred_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="rpn_bbox_pred_b", - learning_rate=2., - regularizer=L2Decay(0.))) - return self.rpn_cls_score, self.rpn_bbox_pred - - def get_proposals(self, body_feats, im_info, mode='train'): - """ - Get proposals according to the output of backbone. - - Args: - body_feats (dict): The dictionary of feature maps from backbone. - im_info(Variable): The information of image with shape [N, 3] with - shape (height, width, scale). - body_feat_names(list): A list of names of feature maps from - backbone. - - Returns: - rpn_rois(Variable): Output proposals with shape of (rois_num, 4). - """ - - # In RPN Heads, only the last feature map of backbone is used. - # And body_feat_names[-1] represents the last level name of backbone. - body_feat = list(body_feats.values())[-1] - rpn_cls_score, rpn_bbox_pred = self._get_output(body_feat) - - if self.num_classes == 1: - rpn_cls_prob = fluid.layers.sigmoid( - rpn_cls_score, name='rpn_cls_prob') - else: - rpn_cls_score = fluid.layers.transpose( - rpn_cls_score, perm=[0, 2, 3, 1]) - rpn_cls_score = fluid.layers.reshape( - rpn_cls_score, shape=(0, 0, 0, -1, self.num_classes)) - rpn_cls_prob_tmp = fluid.layers.softmax( - rpn_cls_score, use_cudnn=False, name='rpn_cls_prob') - rpn_cls_prob_slice = fluid.layers.slice( - rpn_cls_prob_tmp, axes=[4], starts=[1], - ends=[self.num_classes]) - rpn_cls_prob, _ = fluid.layers.topk(rpn_cls_prob_slice, 1) - rpn_cls_prob = fluid.layers.reshape( - rpn_cls_prob, shape=(0, 0, 0, -1)) - rpn_cls_prob = fluid.layers.transpose( - rpn_cls_prob, perm=[0, 3, 1, 2]) - prop_op = self.train_proposal if mode == 'train' else self.test_proposal - rpn_rois, rpn_roi_probs = prop_op( - scores=rpn_cls_prob, - bbox_deltas=rpn_bbox_pred, - im_info=im_info, - anchors=self.anchor, - variances=self.anchor_var) - return rpn_rois - - def _transform_input(self, rpn_cls_score, rpn_bbox_pred, anchor, - anchor_var): - rpn_cls_score = fluid.layers.transpose(rpn_cls_score, perm=[0, 2, 3, 1]) - rpn_bbox_pred = fluid.layers.transpose(rpn_bbox_pred, perm=[0, 2, 3, 1]) - anchor = fluid.layers.reshape(anchor, shape=(-1, 4)) - anchor_var = fluid.layers.reshape(anchor_var, shape=(-1, 4)) - rpn_cls_score = fluid.layers.reshape( - x=rpn_cls_score, shape=(0, -1, self.num_classes)) - rpn_bbox_pred = fluid.layers.reshape(x=rpn_bbox_pred, shape=(0, -1, 4)) - return rpn_cls_score, rpn_bbox_pred, anchor, anchor_var - - def _get_loss_input(self): - for attr in ['rpn_cls_score', 'rpn_bbox_pred', 'anchor', 'anchor_var']: - if not getattr(self, attr, None): - raise ValueError("self.{} should not be None,".format(attr), - "call RPNHead.get_proposals first") - return self._transform_input(self.rpn_cls_score, self.rpn_bbox_pred, - self.anchor, self.anchor_var) - - def get_loss(self, im_info, gt_box, is_crowd, gt_label=None): - """ - Sample proposals and Calculate rpn loss. - - Args: - im_info(Variable): The information of image with shape [N, 3] with - shape (height, width, scale). - gt_box(Variable): The ground-truth bounding boxes with shape [M, 4]. - M is the number of groundtruth. - is_crowd(Variable): Indicates groud-truth is crowd or not with - shape [M, 1]. M is the number of groundtruth. - - Returns: - Type: dict - rpn_cls_loss(Variable): RPN classification loss. - rpn_bbox_loss(Variable): RPN bounding box regression loss. - - """ - rpn_cls, rpn_bbox, anchor, anchor_var = self._get_loss_input() - if self.num_classes == 1: - score_pred, loc_pred, score_tgt, loc_tgt, bbox_weight = \ - self.rpn_target_assign( - bbox_pred=rpn_bbox, - cls_logits=rpn_cls, - anchor_box=anchor, - anchor_var=anchor_var, - gt_boxes=gt_box, - is_crowd=is_crowd, - im_info=im_info) - score_tgt = fluid.layers.cast(x=score_tgt, dtype='float32') - score_tgt.stop_gradient = True - rpn_cls_loss = fluid.layers.sigmoid_cross_entropy_with_logits( - x=score_pred, label=score_tgt) - else: - score_pred, loc_pred, score_tgt, loc_tgt, bbox_weight = \ - self.rpn_target_assign( - bbox_pred=rpn_bbox, - cls_logits=rpn_cls, - anchor_box=anchor, - anchor_var=anchor_var, - gt_boxes=gt_box, - gt_labels=gt_label, - is_crowd=is_crowd, - num_classes=self.num_classes, - im_info=im_info) - labels_int64 = fluid.layers.cast(x=score_tgt, dtype='int64') - labels_int64.stop_gradient = True - rpn_cls_loss = fluid.layers.softmax_with_cross_entropy( - logits=score_pred, label=labels_int64, numeric_stable_mode=True) - - rpn_cls_loss = fluid.layers.reduce_mean( - rpn_cls_loss, name='loss_rpn_cls') - - loc_tgt = fluid.layers.cast(x=loc_tgt, dtype='float32') - loc_tgt.stop_gradient = True - rpn_reg_loss = fluid.layers.smooth_l1( - x=loc_pred, - y=loc_tgt, - sigma=3.0, - inside_weight=bbox_weight, - outside_weight=bbox_weight) - rpn_reg_loss = fluid.layers.reduce_sum( - rpn_reg_loss, name='loss_rpn_bbox') - score_shape = fluid.layers.shape(score_tgt) - score_shape = fluid.layers.cast(x=score_shape, dtype='float32') - norm = fluid.layers.reduce_prod(score_shape) - norm.stop_gradient = True - rpn_reg_loss = rpn_reg_loss / norm - - return {'loss_rpn_cls': rpn_cls_loss, 'loss_rpn_bbox': rpn_reg_loss} - - -@register -class FPNRPNHead(RPNHead): - """ - RPN Head that supports FPN input - - Args: - anchor_generator (object): `AnchorGenerator` instance - rpn_target_assign (object): `RPNTargetAssign` instance - train_proposal (object): `GenerateProposals` instance for training - test_proposal (object): `GenerateProposals` instance for testing - anchor_start_size (int): size of anchor at the first scale - num_chan (int): number of FPN output channels - min_level (int): lowest level of FPN output - max_level (int): highest level of FPN output - num_classes (int): number of classes in rpn output - """ - - __inject__ = [ - 'anchor_generator', 'rpn_target_assign', 'train_proposal', - 'test_proposal' - ] - - def __init__(self, - anchor_generator=AnchorGenerator().__dict__, - rpn_target_assign=RPNTargetAssign().__dict__, - train_proposal=GenerateProposals(12000, 2000).__dict__, - test_proposal=GenerateProposals().__dict__, - anchor_start_size=32, - num_chan=256, - min_level=2, - max_level=6, - num_classes=1): - super(FPNRPNHead, self).__init__(anchor_generator, rpn_target_assign, - train_proposal, test_proposal) - self.anchor_start_size = anchor_start_size - self.num_chan = num_chan - self.min_level = min_level - self.max_level = max_level - self.num_classes = num_classes - - self.fpn_rpn_list = [] - self.anchors_list = [] - self.anchor_var_list = [] - - def _get_output(self, input, feat_lvl): - """ - Get anchor and FPN RPN head output at one level. - - Args: - input(Variable): Body feature from backbone. - feat_lvl(int): Indicate the level of rpn output corresponding - to the level of feature map. - - Return: - rpn_cls_score(Variable): Output of one level of fpn rpn head with - shape of [N, num_anchors, H, W]. - rpn_bbox_pred(Variable): Output of one level of fpn rpn head with - shape of [N, num_anchors * 4, H, W]. - """ - slvl = str(feat_lvl) - conv_name = 'conv_rpn_fpn' + slvl - cls_name = 'rpn_cls_logits_fpn' + slvl - bbox_name = 'rpn_bbox_pred_fpn' + slvl - conv_share_name = 'conv_rpn_fpn' + str(self.min_level) - cls_share_name = 'rpn_cls_logits_fpn' + str(self.min_level) - bbox_share_name = 'rpn_bbox_pred_fpn' + str(self.min_level) - - num_anchors = len(self.anchor_generator.aspect_ratios) - conv_rpn_fpn = fluid.layers.conv2d( - input=input, - num_filters=self.num_chan, - filter_size=3, - padding=1, - act='relu', - name=conv_name, - param_attr=ParamAttr( - name=conv_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=conv_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - - self.anchors, self.anchor_var = self.anchor_generator( - input=conv_rpn_fpn, - anchor_sizes=(self.anchor_start_size * 2. - **(feat_lvl - self.min_level), ), - stride=(2.**feat_lvl, 2.**feat_lvl)) - - cls_num_filters = num_anchors * self.num_classes - self.rpn_cls_score = fluid.layers.conv2d( - input=conv_rpn_fpn, - num_filters=cls_num_filters, - filter_size=1, - act=None, - name=cls_name, - param_attr=ParamAttr( - name=cls_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=cls_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - self.rpn_bbox_pred = fluid.layers.conv2d( - input=conv_rpn_fpn, - num_filters=num_anchors * 4, - filter_size=1, - act=None, - name=bbox_name, - param_attr=ParamAttr( - name=bbox_share_name + '_w', - initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name=bbox_share_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - return self.rpn_cls_score, self.rpn_bbox_pred - - def _get_single_proposals(self, body_feat, im_info, feat_lvl, mode='train'): - """ - Get proposals in one level according to the output of fpn rpn head - - Args: - body_feat(Variable): the feature map from backone. - im_info(Variable): The information of image with shape [N, 3] with - format (height, width, scale). - feat_lvl(int): Indicate the level of proposals corresponding to - the feature maps. - - Returns: - rpn_rois_fpn(Variable): Output proposals with shape of (rois_num, 4). - rpn_roi_probs_fpn(Variable): Scores of proposals with - shape of (rois_num, 1). - """ - - rpn_cls_score_fpn, rpn_bbox_pred_fpn = self._get_output(body_feat, - feat_lvl) - - prop_op = self.train_proposal if mode == 'train' else self.test_proposal - if self.num_classes == 1: - rpn_cls_prob_fpn = fluid.layers.sigmoid( - rpn_cls_score_fpn, name='rpn_cls_prob_fpn' + str(feat_lvl)) - else: - rpn_cls_score_fpn = fluid.layers.transpose( - rpn_cls_score_fpn, perm=[0, 2, 3, 1]) - rpn_cls_score_fpn = fluid.layers.reshape( - rpn_cls_score_fpn, shape=(0, 0, 0, -1, self.num_classes)) - rpn_cls_prob_fpn = fluid.layers.softmax( - rpn_cls_score_fpn, - use_cudnn=False, - name='rpn_cls_prob_fpn' + str(feat_lvl)) - rpn_cls_prob_fpn = fluid.layers.slice( - rpn_cls_prob_fpn, axes=[4], starts=[1], - ends=[self.num_classes]) - rpn_cls_prob_fpn, _ = fluid.layers.topk(rpn_cls_prob_fpn, 1) - rpn_cls_prob_fpn = fluid.layers.reshape( - rpn_cls_prob_fpn, shape=(0, 0, 0, -1)) - rpn_cls_prob_fpn = fluid.layers.transpose( - rpn_cls_prob_fpn, perm=[0, 3, 1, 2]) - rpn_rois_fpn, rpn_roi_prob_fpn = prop_op( - scores=rpn_cls_prob_fpn, - bbox_deltas=rpn_bbox_pred_fpn, - im_info=im_info, - anchors=self.anchors, - variances=self.anchor_var) - return rpn_rois_fpn, rpn_roi_prob_fpn - - def get_proposals(self, fpn_feats, im_info, mode='train'): - """ - Get proposals in multiple levels according to the output of fpn - rpn head - - Args: - fpn_feats(dict): A dictionary represents the output feature map - of FPN with their name. - im_info(Variable): The information of image with shape [N, 3] with - format (height, width, scale). - - Return: - rois_list(Variable): Output proposals in shape of [rois_num, 4] - """ - rois_list = [] - roi_probs_list = [] - fpn_feat_names = list(fpn_feats.keys()) - for lvl in range(self.min_level, self.max_level + 1): - fpn_feat_name = fpn_feat_names[self.max_level - lvl] - fpn_feat = fpn_feats[fpn_feat_name] - rois_fpn, roi_probs_fpn = self._get_single_proposals( - fpn_feat, im_info, lvl, mode) - self.fpn_rpn_list.append((self.rpn_cls_score, self.rpn_bbox_pred)) - rois_list.append(rois_fpn) - roi_probs_list.append(roi_probs_fpn) - self.anchors_list.append(self.anchors) - self.anchor_var_list.append(self.anchor_var) - prop_op = self.train_proposal if mode == 'train' else self.test_proposal - post_nms_top_n = prop_op.post_nms_top_n - rois_collect = fluid.layers.collect_fpn_proposals( - rois_list, - roi_probs_list, - self.min_level, - self.max_level, - post_nms_top_n, - name='collect') - return rois_collect - - def _get_loss_input(self): - rpn_clses = [] - rpn_bboxes = [] - anchors = [] - anchor_vars = [] - for i in range(len(self.fpn_rpn_list)): - single_input = self._transform_input( - self.fpn_rpn_list[i][0], self.fpn_rpn_list[i][1], - self.anchors_list[i], self.anchor_var_list[i]) - rpn_clses.append(single_input[0]) - rpn_bboxes.append(single_input[1]) - anchors.append(single_input[2]) - anchor_vars.append(single_input[3]) - - rpn_cls = fluid.layers.concat(rpn_clses, axis=1) - rpn_bbox = fluid.layers.concat(rpn_bboxes, axis=1) - anchors = fluid.layers.concat(anchors) - anchor_var = fluid.layers.concat(anchor_vars) - return rpn_cls, rpn_bbox, anchors, anchor_var diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/yolo_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/yolo_head.py deleted file mode 100644 index 7e756f267762827b3666e8143dce9a695fc526e2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/anchor_heads/yolo_head.py +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay - -from ppdet.modeling.ops import MultiClassNMS -from ppdet.core.workspace import register - -__all__ = ['YOLOv3Head'] - - -@register -class YOLOv3Head(object): - """ - Head block for YOLOv3 network - - Args: - norm_decay (float): weight decay for normalization layer weights - num_classes (int): number of output classes - ignore_thresh (float): threshold to ignore confidence loss - label_smooth (bool): whether to use label smoothing - anchors (list): anchors - anchor_masks (list): anchor masks - nms (object): an instance of `MultiClassNMS` - """ - __inject__ = ['nms'] - __shared__ = ['num_classes', 'weight_prefix_name'] - - def __init__(self, - norm_decay=0., - num_classes=80, - ignore_thresh=0.7, - label_smooth=True, - anchors=[[10, 13], [16, 30], [33, 23], [30, 61], [62, 45], - [59, 119], [116, 90], [156, 198], [373, 326]], - anchor_masks=[[6, 7, 8], [3, 4, 5], [0, 1, 2]], - nms=MultiClassNMS( - score_threshold=0.01, - nms_top_k=1000, - keep_top_k=100, - nms_threshold=0.45, - background_label=-1).__dict__, - weight_prefix_name=''): - self.norm_decay = norm_decay - self.num_classes = num_classes - self.ignore_thresh = ignore_thresh - self.label_smooth = label_smooth - self.anchor_masks = anchor_masks - self._parse_anchors(anchors) - self.nms = nms - self.prefix_name = weight_prefix_name - if isinstance(nms, dict): - self.nms = MultiClassNMS(**nms) - - def _conv_bn(self, - input, - ch_out, - filter_size, - stride, - padding, - act='leaky', - is_test=True, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - act=None, - param_attr=ParamAttr(name=name + ".conv.weights"), - bias_attr=False) - - bn_name = name + ".bn" - bn_param_attr = ParamAttr( - regularizer=L2Decay(self.norm_decay), name=bn_name + '.scale') - bn_bias_attr = ParamAttr( - regularizer=L2Decay(self.norm_decay), name=bn_name + '.offset') - out = fluid.layers.batch_norm( - input=conv, - act=None, - is_test=is_test, - param_attr=bn_param_attr, - bias_attr=bn_bias_attr, - moving_mean_name=bn_name + '.mean', - moving_variance_name=bn_name + '.var') - - if act == 'leaky': - out = fluid.layers.leaky_relu(x=out, alpha=0.1) - return out - - def _detection_block(self, input, channel, is_test=True, name=None): - assert channel % 2 == 0, \ - "channel {} cannot be divided by 2 in detection block {}" \ - .format(channel, name) - - conv = input - for j in range(2): - conv = self._conv_bn( - conv, - channel, - filter_size=1, - stride=1, - padding=0, - is_test=is_test, - name='{}.{}.0'.format(name, j)) - conv = self._conv_bn( - conv, - channel * 2, - filter_size=3, - stride=1, - padding=1, - is_test=is_test, - name='{}.{}.1'.format(name, j)) - route = self._conv_bn( - conv, - channel, - filter_size=1, - stride=1, - padding=0, - is_test=is_test, - name='{}.2'.format(name)) - tip = self._conv_bn( - route, - channel * 2, - filter_size=3, - stride=1, - padding=1, - is_test=is_test, - name='{}.tip'.format(name)) - return route, tip - - def _upsample(self, input, scale=2, name=None): - out = fluid.layers.resize_nearest( - input=input, scale=float(scale), name=name) - return out - - def _parse_anchors(self, anchors): - """ - Check ANCHORS/ANCHOR_MASKS in config and parse mask_anchors - - """ - self.anchors = [] - self.mask_anchors = [] - - assert len(anchors) > 0, "ANCHORS not set." - assert len(self.anchor_masks) > 0, "ANCHOR_MASKS not set." - - for anchor in anchors: - assert len(anchor) == 2, "anchor {} len should be 2".format(anchor) - self.anchors.extend(anchor) - - anchor_num = len(anchors) - for masks in self.anchor_masks: - self.mask_anchors.append([]) - for mask in masks: - assert mask < anchor_num, "anchor mask index overflow" - self.mask_anchors[-1].extend(anchors[mask]) - - def _get_outputs(self, input, is_train=True): - """ - Get YOLOv3 head output - - Args: - input (list): List of Variables, output of backbone stages - is_train (bool): whether in train or test mode - - Returns: - outputs (list): Variables of each output layer - """ - - outputs = [] - - # get last out_layer_num blocks in reverse order - out_layer_num = len(self.anchor_masks) - blocks = input[-1:-out_layer_num - 1:-1] - - route = None - for i, block in enumerate(blocks): - if i > 0: # perform concat in first 2 detection_block - block = fluid.layers.concat(input=[route, block], axis=1) - route, tip = self._detection_block( - block, - channel=512 // (2**i), - is_test=(not is_train), - name=self.prefix_name + "yolo_block.{}".format(i)) - - # out channel number = mask_num * (5 + class_num) - num_filters = len(self.anchor_masks[i]) * (self.num_classes + 5) - block_out = fluid.layers.conv2d( - input=tip, - num_filters=num_filters, - filter_size=1, - stride=1, - padding=0, - act=None, - param_attr=ParamAttr(name=self.prefix_name + - "yolo_output.{}.conv.weights".format(i)), - bias_attr=ParamAttr( - regularizer=L2Decay(0.), - name=self.prefix_name + - "yolo_output.{}.conv.bias".format(i))) - outputs.append(block_out) - - if i < len(blocks) - 1: - # do not perform upsample in the last detection_block - route = self._conv_bn( - input=route, - ch_out=256 // (2**i), - filter_size=1, - stride=1, - padding=0, - is_test=(not is_train), - name=self.prefix_name + "yolo_transition.{}".format(i)) - # upsample - route = self._upsample(route) - - return outputs - - def get_loss(self, input, gt_box, gt_label, gt_score): - """ - Get final loss of network of YOLOv3. - - Args: - input (list): List of Variables, output of backbone stages - gt_box (Variable): The ground-truth boudding boxes. - gt_label (Variable): The ground-truth class labels. - gt_score (Variable): The ground-truth boudding boxes mixup scores. - - Returns: - loss (Variable): The loss Variable of YOLOv3 network. - - """ - outputs = self._get_outputs(input, is_train=True) - - losses = [] - downsample = 32 - for i, output in enumerate(outputs): - anchor_mask = self.anchor_masks[i] - loss = fluid.layers.yolov3_loss( - x=output, - gt_box=gt_box, - gt_label=gt_label, - gt_score=gt_score, - anchors=self.anchors, - anchor_mask=anchor_mask, - class_num=self.num_classes, - ignore_thresh=self.ignore_thresh, - downsample_ratio=downsample, - use_label_smooth=self.label_smooth, - name=self.prefix_name + "yolo_loss" + str(i)) - losses.append(fluid.layers.reduce_mean(loss)) - downsample //= 2 - - return sum(losses) - - def get_prediction(self, input, im_size): - """ - Get prediction result of YOLOv3 network - - Args: - input (list): List of Variables, output of backbone stages - im_size (Variable): Variable of size([h, w]) of each image - - Returns: - pred (Variable): The prediction result after non-max suppress. - - """ - - outputs = self._get_outputs(input, is_train=False) - - boxes = [] - scores = [] - downsample = 32 - for i, output in enumerate(outputs): - box, score = fluid.layers.yolo_box( - x=output, - img_size=im_size, - anchors=self.mask_anchors[i], - class_num=self.num_classes, - conf_thresh=self.nms.score_threshold, - downsample_ratio=downsample, - name=self.prefix_name + "yolo_box" + str(i)) - boxes.append(box) - scores.append(fluid.layers.transpose(score, perm=[0, 2, 1])) - - downsample //= 2 - - yolo_boxes = fluid.layers.concat(boxes, axis=1) - yolo_scores = fluid.layers.concat(scores, axis=2) - pred = self.nms(bboxes=yolo_boxes, scores=yolo_scores) - return {'bbox': pred} diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/__init__.py deleted file mode 100644 index 6d2f8aef6172f37e1389a573aa12c4bcc4f71b6c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from . import faster_rcnn -from . import mask_rcnn -from . import cascade_rcnn -from . import cascade_mask_rcnn -from . import yolov3 -from . import ssd -from . import retinanet -from . import blazeface -from . import faceboxes - -from .faster_rcnn import * -from .mask_rcnn import * -from .cascade_rcnn import * -from .cascade_mask_rcnn import * -from .yolov3 import * -from .ssd import * -from .retinanet import * -from .blazeface import * -from .faceboxes import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/blazeface.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/blazeface.py deleted file mode 100644 index cc9a2bb338fd1f3b40be09b7e351c24df06651a4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/blazeface.py +++ /dev/null @@ -1,182 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np -from paddle import fluid - -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register -from ppdet.modeling.ops import SSDOutputDecoder - -__all__ = ['BlazeFace'] - - -@register -class BlazeFace(object): - """ - BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs, - see https://arxiv.org/abs/1907.05047 - - Args: - backbone (object): backbone instance - output_decoder (object): `SSDOutputDecoder` instance - min_sizes (list|None): min sizes of generated prior boxes. - max_sizes (list|None): max sizes of generated prior boxes. Default: None. - num_classes (int): number of output classes - use_density_prior_box (bool): whether or not use density_prior_box - instead of prior_box - densities (list|None): the densities of generated density prior boxes, - this attribute should be a list or tuple of integers - """ - - __category__ = 'architecture' - __inject__ = ['backbone', 'output_decoder'] - __shared__ = ['num_classes'] - - def __init__(self, - backbone="BlazeNet", - output_decoder=SSDOutputDecoder().__dict__, - min_sizes=[[16., 24.], [32., 48., 64., 80., 96., 128.]], - max_sizes=None, - steps=[8., 16.], - num_classes=2, - use_density_prior_box=False, - densities=[[2, 2], [2, 1, 1, 1, 1, 1]]): - super(BlazeFace, self).__init__() - self.backbone = backbone - self.num_classes = num_classes - self.output_decoder = output_decoder - if isinstance(output_decoder, dict): - self.output_decoder = SSDOutputDecoder(**output_decoder) - self.min_sizes = min_sizes - self.max_sizes = max_sizes - self.steps = steps - self.use_density_prior_box = use_density_prior_box - self.densities = densities - - def build(self, feed_vars, mode='train'): - im = feed_vars['image'] - if mode == 'train': - gt_box = feed_vars['gt_box'] - gt_label = feed_vars['gt_label'] - - body_feats = self.backbone(im) - locs, confs, box, box_var = self._multi_box_head( - inputs=body_feats, - image=im, - num_classes=self.num_classes, - use_density_prior_box=self.use_density_prior_box) - - if mode == 'train': - loss = fluid.layers.ssd_loss( - locs, - confs, - gt_box, - gt_label, - box, - box_var, - overlap_threshold=0.35, - neg_overlap=0.35) - loss = fluid.layers.reduce_sum(loss) - loss.persistable = True - return {'loss': loss} - else: - pred = self.output_decoder(locs, confs, box, box_var) - return {'bbox': pred} - - def _multi_box_head(self, - inputs, - image, - num_classes=2, - use_density_prior_box=False): - def permute_and_reshape(input, last_dim): - trans = fluid.layers.transpose(input, perm=[0, 2, 3, 1]) - compile_shape = [0, -1, last_dim] - return fluid.layers.reshape(trans, shape=compile_shape) - - def _is_list_or_tuple_(data): - return (isinstance(data, list) or isinstance(data, tuple)) - - locs, confs = [], [] - boxes, vars = [], [] - b_attr = ParamAttr(learning_rate=2., regularizer=L2Decay(0.)) - - for i, input in enumerate(inputs): - min_size = self.min_sizes[i] - - if use_density_prior_box: - densities = self.densities[i] - box, var = fluid.layers.density_prior_box( - input, - image, - densities=densities, - fixed_sizes=min_size, - fixed_ratios=[1.], - clip=False, - offset=0.5) - else: - box, var = fluid.layers.prior_box( - input, - image, - min_sizes=min_size, - max_sizes=None, - steps=[self.steps[i]] * 2, - aspect_ratios=[1.], - clip=False, - flip=False, - offset=0.5) - - num_boxes = box.shape[2] - - box = fluid.layers.reshape(box, shape=[-1, 4]) - var = fluid.layers.reshape(var, shape=[-1, 4]) - num_loc_output = num_boxes * 4 - num_conf_output = num_boxes * num_classes - # get loc - mbox_loc = fluid.layers.conv2d( - input, num_loc_output, 3, 1, 1, bias_attr=b_attr) - loc = permute_and_reshape(mbox_loc, 4) - # get conf - mbox_conf = fluid.layers.conv2d( - input, num_conf_output, 3, 1, 1, bias_attr=b_attr) - conf = permute_and_reshape(mbox_conf, 2) - - locs.append(loc) - confs.append(conf) - boxes.append(box) - vars.append(var) - - face_mbox_loc = fluid.layers.concat(locs, axis=1) - face_mbox_conf = fluid.layers.concat(confs, axis=1) - prior_boxes = fluid.layers.concat(boxes) - box_vars = fluid.layers.concat(vars) - return face_mbox_loc, face_mbox_conf, prior_boxes, box_vars - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars): - return self.build(feed_vars, 'eval') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') - - def is_bbox_normalized(self): - return True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_mask_rcnn.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_mask_rcnn.py deleted file mode 100644 index f77ee62759bd9fe7e2b97669e0bdd82d1bddd9ad..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_mask_rcnn.py +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -import paddle.fluid as fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['CascadeMaskRCNN'] - - -@register -class CascadeMaskRCNN(object): - """ - Cascade Mask R-CNN architecture, see https://arxiv.org/abs/1712.00726 - - Args: - backbone (object): backbone instance - rpn_head (object): `RPNhead` instance - bbox_assigner (object): `BBoxAssigner` instance - roi_extractor (object): ROI extractor instance - bbox_head (object): `BBoxHead` instance - mask_assigner (object): `MaskAssigner` instance - mask_head (object): `MaskHead` instance - fpn (object): feature pyramid network instance - """ - - __category__ = 'architecture' - __inject__ = [ - 'backbone', 'rpn_head', 'bbox_assigner', 'roi_extractor', 'bbox_head', - 'mask_assigner', 'mask_head', 'fpn' - ] - - def __init__(self, - backbone, - rpn_head, - roi_extractor='FPNRoIAlign', - bbox_head='CascadeBBoxHead', - bbox_assigner='CascadeBBoxAssigner', - mask_assigner='MaskAssigner', - mask_head='MaskHead', - rpn_only=False, - fpn='FPN'): - super(CascadeMaskRCNN, self).__init__() - assert fpn is not None, "cascade RCNN requires FPN" - self.backbone = backbone - self.fpn = fpn - self.rpn_head = rpn_head - self.bbox_assigner = bbox_assigner - self.roi_extractor = roi_extractor - self.bbox_head = bbox_head - self.mask_assigner = mask_assigner - self.mask_head = mask_head - self.rpn_only = rpn_only - # Cascade local cfg - self.cls_agnostic_bbox_reg = 2 - (brw0, brw1, brw2) = self.bbox_assigner.bbox_reg_weights - self.cascade_bbox_reg_weights = [ - [1. / brw0, 1. / brw0, 2. / brw0, 2. / brw0], - [1. / brw1, 1. / brw1, 2. / brw1, 2. / brw1], - [1. / brw2, 1. / brw2, 2. / brw2, 2. / brw2] - ] - self.cascade_rcnn_loss_weight = [1.0, 0.5, 0.25] - - def build(self, feed_vars, mode='train'): - if mode == 'train': - required_fields = [ - 'gt_label', 'gt_box', 'gt_mask', 'is_crowd', 'im_info' - ] - else: - required_fields = ['im_shape', 'im_info'] - self._input_check(required_fields, feed_vars) - - im = feed_vars['image'] - if mode == 'train': - gt_box = feed_vars['gt_box'] - is_crowd = feed_vars['is_crowd'] - - im_info = feed_vars['im_info'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - # backbone - body_feats = self.backbone(im) - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = OrderedDict((k, fluid.layers.cast(v, 'float32')) - for k, v in body_feats.items()) - - # FPN - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - # rpn proposals - rpn_rois = self.rpn_head.get_proposals(body_feats, im_info, mode=mode) - - if mode == 'train': - rpn_loss = self.rpn_head.get_loss(im_info, gt_box, is_crowd) - else: - if self.rpn_only: - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, rpn_rois) - rois = rpn_rois / im_scale - return {'proposal': rois} - - proposal_list = [] - roi_feat_list = [] - rcnn_pred_list = [] - rcnn_target_list = [] - - proposals = None - bbox_pred = None - for i in range(3): - if i > 0: - refined_bbox = self._decode_box( - proposals, - bbox_pred, - curr_stage=i - 1, ) - else: - refined_bbox = rpn_rois - - if mode == 'train': - outs = self.bbox_assigner( - input_rois=refined_bbox, feed_vars=feed_vars, curr_stage=i) - - proposals = outs[0] - rcnn_target_list.append(outs) - else: - proposals = refined_bbox - proposal_list.append(proposals) - - # extract roi features - roi_feat = self.roi_extractor(body_feats, proposals, spatial_scale) - roi_feat_list.append(roi_feat) - - # bbox head - cls_score, bbox_pred = self.bbox_head.get_output( - roi_feat, - wb_scalar=1.0 / self.cascade_rcnn_loss_weight[i], - name='_' + str(i + 1) if i > 0 else '') - rcnn_pred_list.append((cls_score, bbox_pred)) - - # get mask rois - rois = proposal_list[2] - - if mode == 'train': - loss = self.bbox_head.get_loss(rcnn_pred_list, rcnn_target_list, - self.cascade_rcnn_loss_weight) - loss.update(rpn_loss) - - labels_int32 = rcnn_target_list[2][1] - - mask_rois, roi_has_mask_int32, mask_int32 = self.mask_assigner( - rois=rois, - gt_classes=feed_vars['gt_label'], - is_crowd=feed_vars['is_crowd'], - gt_segms=feed_vars['gt_mask'], - im_info=feed_vars['im_info'], - labels_int32=labels_int32) - - if self.fpn is None: - bbox_head_feat = self.bbox_head.get_head_feat() - feat = fluid.layers.gather(bbox_head_feat, roi_has_mask_int32) - else: - feat = self.roi_extractor( - body_feats, mask_rois, spatial_scale, is_mask=True) - mask_loss = self.mask_head.get_loss(feat, mask_int32) - loss.update(mask_loss) - - total_loss = fluid.layers.sum(list(loss.values())) - loss.update({'loss': total_loss}) - return loss - else: - mask_name = 'mask_pred' - mask_pred, bbox_pred = self.single_scale_eval( - body_feats, spatial_scale, im_info, mask_name, bbox_pred, - roi_feat_list, rcnn_pred_list, proposal_list, - feed_vars['im_shape']) - return {'bbox': bbox_pred, 'mask': mask_pred} - - def build_multi_scale(self, feed_vars, mask_branch=False): - required_fields = ['image', 'im_info'] - self._input_check(required_fields, feed_vars) - - ims = [] - for k in feed_vars.keys(): - if 'image' in k: - ims.append(feed_vars[k]) - result = {} - - if not mask_branch: - assert 'im_shape' in feed_vars, \ - "{} has no im_shape field".format(feed_vars) - result.update(feed_vars) - - for i, im in enumerate(ims): - im_info = fluid.layers.slice( - input=feed_vars['im_info'], - axes=[1], - starts=[3 * i], - ends=[3 * i + 3]) - body_feats = self.backbone(im) - result.update(body_feats) - - # FPN - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - rois = self.rpn_head.get_proposals(body_feats, im_info, mode='test') - if not mask_branch: - im_shape = feed_vars['im_shape'] - body_feat_names = list(body_feats.keys()) - proposal_list = [] - roi_feat_list = [] - rcnn_pred_list = [] - - proposals = None - bbox_pred = None - for i in range(3): - if i > 0: - refined_bbox = self._decode_box( - proposals, - bbox_pred, - curr_stage=i - 1, ) - else: - refined_bbox = rois - - proposals = refined_bbox - proposal_list.append(proposals) - - # extract roi features - roi_feat = self.roi_extractor(body_feats, proposals, - spatial_scale) - roi_feat_list.append(roi_feat) - - # bbox head - cls_score, bbox_pred = self.bbox_head.get_output( - roi_feat, - wb_scalar=1.0 / self.cascade_rcnn_loss_weight[i], - name='_' + str(i + 1) if i > 0 else '') - rcnn_pred_list.append((cls_score, bbox_pred)) - - # get mask rois - if self.fpn is None: - body_feat = body_feats[body_feat_names[-1]] - pred = self.bbox_head.get_prediction( - im_info, - im_shape, - roi_feat_list, - rcnn_pred_list, - proposal_list, - self.cascade_bbox_reg_weights, - return_box_score=True) - bbox_name = 'bbox_' + str(i) - score_name = 'score_' + str(i) - if 'flip' in im.name: - bbox_name += '_flip' - score_name += '_flip' - result[bbox_name] = pred['bbox'] - result[score_name] = pred['score'] - else: - mask_name = 'mask_pred_' + str(i) - bbox_pred = feed_vars['bbox'] - result.update({im.name: im}) - if 'flip' in im.name: - mask_name += '_flip' - bbox_pred = feed_vars['bbox_flip'] - mask_pred, bbox_pred = self.single_scale_eval( - body_feats, - spatial_scale, - im_info, - mask_name, - bbox_pred=bbox_pred, - use_multi_test=True) - result[mask_name] = mask_pred - return result - - def single_scale_eval(self, - body_feats, - spatial_scale, - im_info, - mask_name, - bbox_pred, - roi_feat_list=None, - rcnn_pred_list=None, - proposal_list=None, - im_shape=None, - use_multi_test=False): - if self.fpn is None: - last_feat = body_feats[list(body_feats.keys())[-1]] - if not use_multi_test: - bbox_pred = self.bbox_head.get_prediction( - im_info, im_shape, roi_feat_list, rcnn_pred_list, proposal_list, - self.cascade_bbox_reg_weights) - bbox_pred = bbox_pred['bbox'] - - # share weight - bbox_shape = fluid.layers.shape(bbox_pred) - bbox_size = fluid.layers.reduce_prod(bbox_shape) - bbox_size = fluid.layers.reshape(bbox_size, [1, 1]) - size = fluid.layers.fill_constant([1, 1], value=6, dtype='int32') - cond = fluid.layers.less_than(x=bbox_size, y=size) - - mask_pred = fluid.layers.create_global_var( - shape=[1], - value=0.0, - dtype='float32', - persistable=False, - name=mask_name) - with fluid.layers.control_flow.Switch() as switch: - with switch.case(cond): - fluid.layers.assign(input=bbox_pred, output=mask_pred) - with switch.default(): - bbox = fluid.layers.slice(bbox_pred, [1], starts=[2], ends=[6]) - - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, bbox) - - mask_rois = bbox * im_scale - if self.fpn is None: - mask_feat = self.roi_extractor(last_feat, mask_rois) - mask_feat = self.bbox_head.get_head_feat(mask_feat) - else: - mask_feat = self.roi_extractor( - body_feats, mask_rois, spatial_scale, is_mask=True) - - mask_out = self.mask_head.get_prediction(mask_feat, bbox) - fluid.layers.assign(input=mask_out, output=mask_pred) - return mask_pred, bbox_pred - - def _input_check(self, require_fields, feed_vars): - for var in require_fields: - assert var in feed_vars, \ - "{} has no {} field".format(feed_vars, var) - - def _decode_box(self, proposals, bbox_pred, curr_stage): - rcnn_loc_delta_r = fluid.layers.reshape( - bbox_pred, (-1, self.cls_agnostic_bbox_reg, 4)) - # only use fg box delta to decode box - rcnn_loc_delta_s = fluid.layers.slice( - rcnn_loc_delta_r, axes=[1], starts=[1], ends=[2]) - refined_bbox = fluid.layers.box_coder( - prior_box=proposals, - prior_box_var=self.cascade_bbox_reg_weights[curr_stage], - target_box=rcnn_loc_delta_s, - code_type='decode_center_size', - box_normalized=False, - axis=1, ) - refined_bbox = fluid.layers.reshape(refined_bbox, shape=[-1, 4]) - - return refined_bbox - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars, multi_scale=None, mask_branch=False): - if multi_scale: - return self.build_multi_scale(feed_vars, mask_branch) - return self.build(feed_vars, 'test') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_rcnn.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_rcnn.py deleted file mode 100644 index b80a8d7f62ccd13f632fe8124372156d656d2abc..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/cascade_rcnn.py +++ /dev/null @@ -1,289 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -import paddle.fluid as fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['CascadeRCNN'] - - -@register -class CascadeRCNN(object): - """ - Cascade R-CNN architecture, see https://arxiv.org/abs/1712.00726 - - Args: - backbone (object): backbone instance - rpn_head (object): `RPNhead` instance - bbox_assigner (object): `BBoxAssigner` instance - roi_extractor (object): ROI extractor instance - bbox_head (object): `BBoxHead` instance - fpn (object): feature pyramid network instance - """ - - __category__ = 'architecture' - __inject__ = [ - 'backbone', 'fpn', 'rpn_head', 'bbox_assigner', 'roi_extractor', - 'bbox_head' - ] - - def __init__(self, - backbone, - rpn_head, - roi_extractor='FPNRoIAlign', - bbox_head='CascadeBBoxHead', - bbox_assigner='CascadeBBoxAssigner', - rpn_only=False, - fpn='FPN'): - super(CascadeRCNN, self).__init__() - assert fpn is not None, "cascade RCNN requires FPN" - self.backbone = backbone - self.fpn = fpn - self.rpn_head = rpn_head - self.bbox_assigner = bbox_assigner - self.roi_extractor = roi_extractor - self.bbox_head = bbox_head - self.rpn_only = rpn_only - # Cascade local cfg - self.cls_agnostic_bbox_reg = 2 - (brw0, brw1, brw2) = self.bbox_assigner.bbox_reg_weights - self.cascade_bbox_reg_weights = [ - [1. / brw0, 1. / brw0, 2. / brw0, 2. / brw0], - [1. / brw1, 1. / brw1, 2. / brw1, 2. / brw1], - [1. / brw2, 1. / brw2, 2. / brw2, 2. / brw2] - ] - self.cascade_rcnn_loss_weight = [1.0, 0.5, 0.25] - - def build(self, feed_vars, mode='train'): - if mode == 'train': - required_fields = ['gt_label', 'gt_box', 'is_crowd', 'im_info'] - else: - required_fields = ['im_shape', 'im_info'] - self._input_check(required_fields, feed_vars) - - im = feed_vars['image'] - im_info = feed_vars['im_info'] - - if mode == 'train': - gt_box = feed_vars['gt_box'] - is_crowd = feed_vars['is_crowd'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - # backbone - body_feats = self.backbone(im) - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = OrderedDict((k, fluid.layers.cast(v, 'float32')) - for k, v in body_feats.items()) - - # FPN - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - # rpn proposals - rpn_rois = self.rpn_head.get_proposals(body_feats, im_info, mode=mode) - - if mode == 'train': - rpn_loss = self.rpn_head.get_loss(im_info, gt_box, is_crowd) - else: - if self.rpn_only: - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, rpn_rois) - rois = rpn_rois / im_scale - return {'proposal': rois} - - proposal_list = [] - roi_feat_list = [] - rcnn_pred_list = [] - rcnn_target_list = [] - - proposals = None - bbox_pred = None - for i in range(3): - if i > 0: - refined_bbox = self._decode_box( - proposals, - bbox_pred, - curr_stage=i - 1, ) - else: - refined_bbox = rpn_rois - - if mode == 'train': - outs = self.bbox_assigner( - input_rois=refined_bbox, feed_vars=feed_vars, curr_stage=i) - - proposals = outs[0] - rcnn_target_list.append(outs) - else: - proposals = refined_bbox - proposal_list.append(proposals) - - # extract roi features - roi_feat = self.roi_extractor(body_feats, proposals, spatial_scale) - roi_feat_list.append(roi_feat) - - # bbox head - cls_score, bbox_pred = self.bbox_head.get_output( - roi_feat, - wb_scalar=1.0 / self.cascade_rcnn_loss_weight[i], - name='_' + str(i + 1) if i > 0 else '') - rcnn_pred_list.append((cls_score, bbox_pred)) - - if mode == 'train': - loss = self.bbox_head.get_loss(rcnn_pred_list, rcnn_target_list, - self.cascade_rcnn_loss_weight) - loss.update(rpn_loss) - total_loss = fluid.layers.sum(list(loss.values())) - loss.update({'loss': total_loss}) - return loss - else: - pred = self.bbox_head.get_prediction( - im_info, feed_vars['im_shape'], roi_feat_list, rcnn_pred_list, - proposal_list, self.cascade_bbox_reg_weights, - self.cls_agnostic_bbox_reg) - return pred - - def build_multi_scale(self, feed_vars): - required_fields = ['image', 'im_shape', 'im_info'] - self._input_check(required_fields, feed_vars) - ims = [] - for k in feed_vars.keys(): - if 'image' in k: - ims.append(feed_vars[k]) - result = {} - result.update(feed_vars) - for i, im in enumerate(ims): - im_info = fluid.layers.slice( - input=feed_vars['im_info'], - axes=[1], - starts=[3 * i], - ends=[3 * i + 3]) - im_shape = feed_vars['im_shape'] - - # backbone - body_feats = self.backbone(im) - result.update(body_feats) - body_feat_names = list(body_feats.keys()) - - # FPN - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - # rpn proposals - rpn_rois = self.rpn_head.get_proposals( - body_feats, im_info, mode='test') - - proposal_list = [] - roi_feat_list = [] - rcnn_pred_list = [] - - proposals = None - bbox_pred = None - for i in range(3): - if i > 0: - refined_bbox = self._decode_box( - proposals, - bbox_pred, - curr_stage=i - 1, ) - else: - refined_bbox = rpn_rois - - proposals = refined_bbox - proposal_list.append(proposals) - - # extract roi features - roi_feat = self.roi_extractor(body_feats, proposals, - spatial_scale) - roi_feat_list.append(roi_feat) - - # bbox head - cls_score, bbox_pred = self.bbox_head.get_output( - roi_feat, - wb_scalar=1.0 / self.cascade_rcnn_loss_weight[i], - name='_' + str(i + 1) if i > 0 else '') - rcnn_pred_list.append((cls_score, bbox_pred)) - - # get mask rois - rois = proposal_list[2] - - if self.fpn is None: - last_feat = body_feats[list(body_feats.keys())[-1]] - roi_feat = self.roi_extractor(last_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, spatial_scale) - - pred = self.bbox_head.get_prediction( - im_info, - im_shape, - roi_feat_list, - rcnn_pred_list, - proposal_list, - self.cascade_bbox_reg_weights, - self.cls_agnostic_bbox_reg, - return_box_score=True) - bbox_name = 'bbox_' + str(i) - score_name = 'score_' + str(i) - if 'flip' in im.name: - bbox_name += '_flip' - score_name += '_flip' - result[bbox_name] = pred['bbox'] - result[score_name] = pred['score'] - return result - - def _input_check(self, require_fields, feed_vars): - for var in require_fields: - assert var in feed_vars, \ - "{} has no {} field".format(feed_vars, var) - - def _decode_box(self, proposals, bbox_pred, curr_stage): - rcnn_loc_delta_r = fluid.layers.reshape( - bbox_pred, (-1, self.cls_agnostic_bbox_reg, 4)) - # only use fg box delta to decode box - rcnn_loc_delta_s = fluid.layers.slice( - rcnn_loc_delta_r, axes=[1], starts=[1], ends=[2]) - refined_bbox = fluid.layers.box_coder( - prior_box=proposals, - prior_box_var=self.cascade_bbox_reg_weights[curr_stage], - target_box=rcnn_loc_delta_s, - code_type='decode_center_size', - box_normalized=False, - axis=1, ) - refined_bbox = fluid.layers.reshape(refined_bbox, shape=[-1, 4]) - - return refined_bbox - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars, multi_scale=None): - if multi_scale: - return self.build_multi_scale(feed_vars) - return self.build(feed_vars, 'test') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faceboxes.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faceboxes.py deleted file mode 100644 index 194b3a7e864f30051a20e514bbf9a1e970548afc..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faceboxes.py +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np -from paddle import fluid - -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register -from ppdet.modeling.ops import SSDOutputDecoder - -__all__ = ['FaceBoxes'] - - -@register -class FaceBoxes(object): - """ - FaceBoxes: Sub-millisecond Neural Face Detection on Mobile GPUs, - see https://https://arxiv.org/abs/1708.05234 - - Args: - backbone (object): backbone instance - output_decoder (object): `SSDOutputDecoder` instance - densities (list|None): the densities of generated density prior boxes, - this attribute should be a list or tuple of integers. - fixed_sizes (list|None): the fixed sizes of generated density prior boxes, - this attribute should a list or tuple of same length with `densities`. - num_classes (int): number of output classes - """ - - __category__ = 'architecture' - __inject__ = ['backbone', 'output_decoder'] - __shared__ = ['num_classes'] - - def __init__(self, - backbone="FaceBoxNet", - output_decoder=SSDOutputDecoder().__dict__, - densities=[[4, 2, 1], [1], [1]], - fixed_sizes=[[32., 64., 128.], [256.], [512.]], - num_classes=2): - super(FaceBoxes, self).__init__() - self.backbone = backbone - self.num_classes = num_classes - self.output_decoder = output_decoder - if isinstance(output_decoder, dict): - self.output_decoder = SSDOutputDecoder(**output_decoder) - self.densities = densities - self.fixed_sizes = fixed_sizes - - def build(self, feed_vars, mode='train'): - im = feed_vars['image'] - if mode == 'train': - gt_box = feed_vars['gt_box'] - gt_label = feed_vars['gt_label'] - - body_feats = self.backbone(im) - locs, confs, box, box_var = self._multi_box_head( - inputs=body_feats, image=im, num_classes=self.num_classes) - - if mode == 'train': - loss = fluid.layers.ssd_loss( - locs, - confs, - gt_box, - gt_label, - box, - box_var, - overlap_threshold=0.35, - neg_overlap=0.35) - loss = fluid.layers.reduce_sum(loss) - loss.persistable = True - return {'loss': loss} - else: - pred = self.output_decoder(locs, confs, box, box_var) - return {'bbox': pred} - - def _multi_box_head(self, inputs, image, num_classes=2): - def permute_and_reshape(input, last_dim): - trans = fluid.layers.transpose(input, perm=[0, 2, 3, 1]) - compile_shape = [0, -1, last_dim] - return fluid.layers.reshape(trans, shape=compile_shape) - - def _is_list_or_tuple_(data): - return (isinstance(data, list) or isinstance(data, tuple)) - - locs, confs = [], [] - boxes, vars = [], [] - b_attr = ParamAttr(learning_rate=2., regularizer=L2Decay(0.)) - - for i, input in enumerate(inputs): - densities = self.densities[i] - fixed_sizes = self.fixed_sizes[i] - box, var = fluid.layers.density_prior_box( - input, - image, - densities=densities, - fixed_sizes=fixed_sizes, - fixed_ratios=[1.], - clip=False, - offset=0.5) - - num_boxes = box.shape[2] - - box = fluid.layers.reshape(box, shape=[-1, 4]) - var = fluid.layers.reshape(var, shape=[-1, 4]) - num_loc_output = num_boxes * 4 - num_conf_output = num_boxes * num_classes - # get loc - mbox_loc = fluid.layers.conv2d( - input, num_loc_output, 3, 1, 1, bias_attr=b_attr) - loc = permute_and_reshape(mbox_loc, 4) - # get conf - mbox_conf = fluid.layers.conv2d( - input, num_conf_output, 3, 1, 1, bias_attr=b_attr) - conf = permute_and_reshape(mbox_conf, 2) - - locs.append(loc) - confs.append(conf) - boxes.append(box) - vars.append(var) - - face_mbox_loc = fluid.layers.concat(locs, axis=1) - face_mbox_conf = fluid.layers.concat(confs, axis=1) - prior_boxes = fluid.layers.concat(boxes) - box_vars = fluid.layers.concat(vars) - return face_mbox_loc, face_mbox_conf, prior_boxes, box_vars - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars): - return self.build(feed_vars, 'eval') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') - - def is_bbox_normalized(self): - return True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faster_rcnn.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faster_rcnn.py deleted file mode 100644 index e0ef7355c0d358d7b409ce3080f2416cd38de0b3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/faster_rcnn.py +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -from paddle import fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['FasterRCNN'] - - -@register -class FasterRCNN(object): - """ - Faster R-CNN architecture, see https://arxiv.org/abs/1506.01497 - Args: - backbone (object): backbone instance - rpn_head (object): `RPNhead` instance - bbox_assigner (object): `BBoxAssigner` instance - roi_extractor (object): ROI extractor instance - bbox_head (object): `BBoxHead` instance - fpn (object): feature pyramid network instance - """ - - __category__ = 'architecture' - __inject__ = [ - 'backbone', 'rpn_head', 'bbox_assigner', 'roi_extractor', 'bbox_head', - 'fpn' - ] - - def __init__(self, - backbone, - rpn_head, - roi_extractor, - bbox_head='BBoxHead', - bbox_assigner='BBoxAssigner', - rpn_only=False, - fpn=None): - super(FasterRCNN, self).__init__() - self.backbone = backbone - self.rpn_head = rpn_head - self.bbox_assigner = bbox_assigner - self.roi_extractor = roi_extractor - self.bbox_head = bbox_head - self.fpn = fpn - self.rpn_only = rpn_only - - def build(self, feed_vars, mode='train'): - if mode == 'train': - required_fields = ['gt_label', 'gt_box', 'is_crowd', 'im_info'] - else: - required_fields = ['im_shape', 'im_info'] - self._input_check(required_fields, feed_vars) - - im = feed_vars['image'] - im_info = feed_vars['im_info'] - if mode == 'train': - gt_box = feed_vars['gt_box'] - is_crowd = feed_vars['is_crowd'] - else: - im_shape = feed_vars['im_shape'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - body_feats = self.backbone(im) - body_feat_names = list(body_feats.keys()) - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = OrderedDict((k, fluid.layers.cast(v, 'float32')) - for k, v in body_feats.items()) - - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - rois = self.rpn_head.get_proposals(body_feats, im_info, mode=mode) - - if mode == 'train': - rpn_loss = self.rpn_head.get_loss(im_info, gt_box, is_crowd) - # sampled rpn proposals - for var in ['gt_label', 'is_crowd', 'gt_box', 'im_info']: - assert var in feed_vars, "{} has no {}".format(feed_vars, var) - outs = self.bbox_assigner( - rpn_rois=rois, - gt_classes=feed_vars['gt_label'], - is_crowd=feed_vars['is_crowd'], - gt_boxes=feed_vars['gt_box'], - im_info=feed_vars['im_info']) - - rois = outs[0] - labels_int32 = outs[1] - bbox_targets = outs[2] - bbox_inside_weights = outs[3] - bbox_outside_weights = outs[4] - else: - if self.rpn_only: - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, rois) - rois = rois / im_scale - return {'proposal': rois} - if self.fpn is None: - # in models without FPN, roi extractor only uses the last level of - # feature maps. And body_feat_names[-1] represents the name of - # last feature map. - body_feat = body_feats[body_feat_names[-1]] - roi_feat = self.roi_extractor(body_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, spatial_scale) - - if mode == 'train': - loss = self.bbox_head.get_loss(roi_feat, labels_int32, bbox_targets, - bbox_inside_weights, - bbox_outside_weights) - loss.update(rpn_loss) - total_loss = fluid.layers.sum(list(loss.values())) - loss.update({'loss': total_loss}) - return loss - else: - pred = self.bbox_head.get_prediction(roi_feat, rois, im_info, - im_shape) - return pred - - def build_multi_scale(self, feed_vars): - required_fields = ['image', 'im_info', 'im_shape'] - self._input_check(required_fields, feed_vars) - ims = [] - for k in feed_vars.keys(): - if 'image' in k: - ims.append(feed_vars[k]) - result = {} - result.update(feed_vars) - for i, im in enumerate(ims): - im_info = fluid.layers.slice( - input=feed_vars['im_info'], - axes=[1], - starts=[3 * i], - ends=[3 * i + 3]) - im_shape = feed_vars['im_shape'] - body_feats = self.backbone(im) - result.update(body_feats) - body_feat_names = list(body_feats.keys()) - - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - rois = self.rpn_head.get_proposals(body_feats, im_info, mode='test') - - if self.fpn is None: - # in models without FPN, roi extractor only uses the last level of - # feature maps. And body_feat_names[-1] represents the name of - # last feature map. - body_feat = body_feats[body_feat_names[-1]] - roi_feat = self.roi_extractor(body_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, spatial_scale) - - pred = self.bbox_head.get_prediction( - roi_feat, rois, im_info, im_shape, return_box_score=True) - bbox_name = 'bbox_' + str(i) - score_name = 'score_' + str(i) - if 'flip' in im.name: - bbox_name += '_flip' - score_name += '_flip' - result[bbox_name] = pred['bbox'] - result[score_name] = pred['score'] - return result - - def _input_check(self, require_fields, feed_vars): - for var in require_fields: - assert var in feed_vars, \ - "{} has no {} field".format(feed_vars, var) - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars, multi_scale=None): - if multi_scale: - return self.build_multi_scale(feed_vars) - return self.build(feed_vars, 'test') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/mask_rcnn.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/mask_rcnn.py deleted file mode 100644 index 715f3efa90e52c3330f36e9ba787082722f2c8bb..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/mask_rcnn.py +++ /dev/null @@ -1,285 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -import paddle.fluid as fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['MaskRCNN'] - - -@register -class MaskRCNN(object): - """ - Mask R-CNN architecture, see https://arxiv.org/abs/1703.06870 - Args: - backbone (object): backbone instance - rpn_head (object): `RPNhead` instance - bbox_assigner (object): `BBoxAssigner` instance - roi_extractor (object): ROI extractor instance - bbox_head (object): `BBoxHead` instance - mask_assigner (object): `MaskAssigner` instance - mask_head (object): `MaskHead` instance - fpn (object): feature pyramid network instance - """ - - __category__ = 'architecture' - __inject__ = [ - 'backbone', 'rpn_head', 'bbox_assigner', 'roi_extractor', 'bbox_head', - 'mask_assigner', 'mask_head', 'fpn' - ] - - def __init__(self, - backbone, - rpn_head, - bbox_head='BBoxHead', - bbox_assigner='BBoxAssigner', - roi_extractor='RoIAlign', - mask_assigner='MaskAssigner', - mask_head='MaskHead', - rpn_only=False, - fpn=None): - super(MaskRCNN, self).__init__() - self.backbone = backbone - self.rpn_head = rpn_head - self.bbox_assigner = bbox_assigner - self.roi_extractor = roi_extractor - self.bbox_head = bbox_head - self.mask_assigner = mask_assigner - self.mask_head = mask_head - self.rpn_only = rpn_only - self.fpn = fpn - - def build(self, feed_vars, mode='train'): - if mode == 'train': - required_fields = [ - 'gt_label', 'gt_box', 'gt_mask', 'is_crowd', 'im_info' - ] - else: - required_fields = ['im_shape', 'im_info'] - self._input_check(required_fields, feed_vars) - im = feed_vars['image'] - im_info = feed_vars['im_info'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - # backbone - body_feats = self.backbone(im) - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = OrderedDict((k, fluid.layers.cast(v, 'float32')) - for k, v in body_feats.items()) - - # FPN - spatial_scale = None - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - # RPN proposals - rois = self.rpn_head.get_proposals(body_feats, im_info, mode=mode) - - if mode == 'train': - rpn_loss = self.rpn_head.get_loss(im_info, feed_vars['gt_box'], - feed_vars['is_crowd']) - - outs = self.bbox_assigner( - rpn_rois=rois, - gt_classes=feed_vars['gt_label'], - is_crowd=feed_vars['is_crowd'], - gt_boxes=feed_vars['gt_box'], - im_info=feed_vars['im_info']) - rois = outs[0] - labels_int32 = outs[1] - - if self.fpn is None: - last_feat = body_feats[list(body_feats.keys())[-1]] - roi_feat = self.roi_extractor(last_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, spatial_scale) - - loss = self.bbox_head.get_loss(roi_feat, labels_int32, *outs[2:]) - loss.update(rpn_loss) - - mask_rois, roi_has_mask_int32, mask_int32 = self.mask_assigner( - rois=rois, - gt_classes=feed_vars['gt_label'], - is_crowd=feed_vars['is_crowd'], - gt_segms=feed_vars['gt_mask'], - im_info=feed_vars['im_info'], - labels_int32=labels_int32) - if self.fpn is None: - bbox_head_feat = self.bbox_head.get_head_feat() - feat = fluid.layers.gather(bbox_head_feat, roi_has_mask_int32) - else: - feat = self.roi_extractor( - body_feats, mask_rois, spatial_scale, is_mask=True) - - mask_loss = self.mask_head.get_loss(feat, mask_int32) - loss.update(mask_loss) - - total_loss = fluid.layers.sum(list(loss.values())) - loss.update({'loss': total_loss}) - return loss - - else: - if self.rpn_only: - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, rois) - rois = rois / im_scale - return {'proposal': rois} - mask_name = 'mask_pred' - mask_pred, bbox_pred = self.single_scale_eval( - body_feats, mask_name, rois, im_info, feed_vars['im_shape'], - spatial_scale) - return {'bbox': bbox_pred, 'mask': mask_pred} - - def build_multi_scale(self, feed_vars, mask_branch=False): - required_fields = ['image', 'im_info'] - self._input_check(required_fields, feed_vars) - - ims = [] - for k in feed_vars.keys(): - if 'image' in k: - ims.append(feed_vars[k]) - result = {} - - if not mask_branch: - assert 'im_shape' in feed_vars, \ - "{} has no im_shape field".format(feed_vars) - result.update(feed_vars) - - for i, im in enumerate(ims): - im_info = fluid.layers.slice( - input=feed_vars['im_info'], - axes=[1], - starts=[3 * i], - ends=[3 * i + 3]) - body_feats = self.backbone(im) - result.update(body_feats) - - # FPN - if self.fpn is not None: - body_feats, spatial_scale = self.fpn.get_output(body_feats) - rois = self.rpn_head.get_proposals(body_feats, im_info, mode='test') - if not mask_branch: - im_shape = feed_vars['im_shape'] - body_feat_names = list(body_feats.keys()) - if self.fpn is None: - body_feat = body_feats[body_feat_names[-1]] - roi_feat = self.roi_extractor(body_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, - spatial_scale) - pred = self.bbox_head.get_prediction( - roi_feat, rois, im_info, im_shape, return_box_score=True) - bbox_name = 'bbox_' + str(i) - score_name = 'score_' + str(i) - if 'flip' in im.name: - bbox_name += '_flip' - score_name += '_flip' - result[bbox_name] = pred['bbox'] - result[score_name] = pred['score'] - else: - mask_name = 'mask_pred_' + str(i) - bbox_pred = feed_vars['bbox'] - result.update({im.name: im}) - if 'flip' in im.name: - mask_name += '_flip' - bbox_pred = feed_vars['bbox_flip'] - mask_pred, bbox_pred = self.single_scale_eval( - body_feats, mask_name, rois, im_info, feed_vars['im_shape'], - spatial_scale, bbox_pred) - result[mask_name] = mask_pred - return result - - def single_scale_eval(self, - body_feats, - mask_name, - rois, - im_info, - im_shape, - spatial_scale, - bbox_pred=None): - if self.fpn is None: - last_feat = body_feats[list(body_feats.keys())[-1]] - roi_feat = self.roi_extractor(last_feat, rois) - else: - roi_feat = self.roi_extractor(body_feats, rois, spatial_scale) - if not bbox_pred: - bbox_pred = self.bbox_head.get_prediction(roi_feat, rois, im_info, - im_shape) - bbox_pred = bbox_pred['bbox'] - - # share weight - bbox_shape = fluid.layers.shape(bbox_pred) - bbox_size = fluid.layers.reduce_prod(bbox_shape) - bbox_size = fluid.layers.reshape(bbox_size, [1, 1]) - size = fluid.layers.fill_constant([1, 1], value=6, dtype='int32') - cond = fluid.layers.less_than(x=bbox_size, y=size) - - mask_pred = fluid.layers.create_global_var( - shape=[1], - value=0.0, - dtype='float32', - persistable=False, - name=mask_name) - with fluid.layers.control_flow.Switch() as switch: - with switch.case(cond): - fluid.layers.assign(input=bbox_pred, output=mask_pred) - with switch.default(): - bbox = fluid.layers.slice(bbox_pred, [1], starts=[2], ends=[6]) - - im_scale = fluid.layers.slice( - im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, bbox) - - mask_rois = bbox * im_scale - if self.fpn is None: - mask_feat = self.roi_extractor(last_feat, mask_rois) - mask_feat = self.bbox_head.get_head_feat(mask_feat) - else: - mask_feat = self.roi_extractor( - body_feats, mask_rois, spatial_scale, is_mask=True) - - mask_out = self.mask_head.get_prediction(mask_feat, bbox) - fluid.layers.assign(input=mask_out, output=mask_pred) - return mask_pred, bbox_pred - - def _input_check(self, require_fields, feed_vars): - for var in require_fields: - assert var in feed_vars, \ - "{} has no {} field".format(feed_vars, var) - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars, multi_scale=None, mask_branch=False): - if multi_scale: - return self.build_multi_scale(feed_vars, mask_branch) - return self.build(feed_vars, 'test') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/retinanet.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/retinanet.py deleted file mode 100644 index 4ce5ac500c65fa713b3735b480e8e40b9b123063..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/retinanet.py +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -import paddle.fluid as fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['RetinaNet'] - - -@register -class RetinaNet(object): - """ - RetinaNet architecture, see https://arxiv.org/abs/1708.02002 - - Args: - backbone (object): backbone instance - fpn (object): feature pyramid network instance - retina_head (object): `RetinaHead` instance - """ - - __category__ = 'architecture' - __inject__ = ['backbone', 'fpn', 'retina_head'] - - def __init__(self, backbone, fpn, retina_head): - super(RetinaNet, self).__init__() - self.backbone = backbone - self.fpn = fpn - self.retina_head = retina_head - - def build(self, feed_vars, mode='train'): - im = feed_vars['image'] - im_info = feed_vars['im_info'] - if mode == 'train': - gt_box = feed_vars['gt_box'] - gt_label = feed_vars['gt_label'] - is_crowd = feed_vars['is_crowd'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - # backbone - body_feats = self.backbone(im) - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = OrderedDict((k, fluid.layers.cast(v, 'float32')) - for k, v in body_feats.items()) - - # FPN - body_feats, spatial_scale = self.fpn.get_output(body_feats) - - # retinanet head - if mode == 'train': - loss = self.retina_head.get_loss(body_feats, spatial_scale, im_info, - gt_box, gt_label, is_crowd) - total_loss = fluid.layers.sum(list(loss.values())) - loss.update({'loss': total_loss}) - return loss - else: - pred = self.retina_head.get_prediction(body_feats, spatial_scale, - im_info) - return pred - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars): - return self.build(feed_vars, 'test') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/ssd.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/ssd.py deleted file mode 100644 index e899075f21291a38a5af0e4c8d5e70af4e55eaec..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/ssd.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -import paddle.fluid as fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register -from ppdet.modeling.ops import SSDOutputDecoder - -__all__ = ['SSD'] - - -@register -class SSD(object): - """ - Single Shot MultiBox Detector, see https://arxiv.org/abs/1512.02325 - - Args: - backbone (object): backbone instance - multi_box_head (object): `MultiBoxHead` instance - output_decoder (object): `SSDOutputDecoder` instance - num_classes (int): number of output classes - """ - - __category__ = 'architecture' - __inject__ = ['backbone', 'multi_box_head', 'output_decoder'] - __shared__ = ['num_classes'] - - def __init__(self, - backbone, - multi_box_head='MultiBoxHead', - output_decoder=SSDOutputDecoder().__dict__, - num_classes=21): - super(SSD, self).__init__() - self.backbone = backbone - self.multi_box_head = multi_box_head - self.num_classes = num_classes - self.output_decoder = output_decoder - if isinstance(output_decoder, dict): - self.output_decoder = SSDOutputDecoder(**output_decoder) - - def build(self, feed_vars, mode='train'): - im = feed_vars['image'] - if mode == 'train' or mode == 'eval': - gt_box = feed_vars['gt_box'] - gt_label = feed_vars['gt_label'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - # backbone - body_feats = self.backbone(im) - - if isinstance(body_feats, OrderedDict): - body_feat_names = list(body_feats.keys()) - body_feats = [body_feats[name] for name in body_feat_names] - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = [fluid.layers.cast(v, 'float32') for v in body_feats] - - locs, confs, box, box_var = self.multi_box_head( - inputs=body_feats, image=im, num_classes=self.num_classes) - - if mode == 'train': - loss = fluid.layers.ssd_loss(locs, confs, gt_box, gt_label, box, - box_var) - loss = fluid.layers.reduce_sum(loss) - return {'loss': loss} - else: - pred = self.output_decoder(locs, confs, box, box_var) - return {'bbox': pred} - - def train(self, feed_vars): - return self.build(feed_vars, 'train') - - def eval(self, feed_vars): - return self.build(feed_vars, 'eval') - - def test(self, feed_vars): - return self.build(feed_vars, 'test') - - def is_bbox_normalized(self): - # SSD use output_decoder in output layers, bbox is normalized - # to range [0, 1], is_bbox_normalized is used in eval.py and infer.py - return True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/yolov3.py b/PaddleCV/PaddleDetection/ppdet/modeling/architectures/yolov3.py deleted file mode 100644 index 2912ffda5215af594d57255397b8a572455aa090..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/architectures/yolov3.py +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -from paddle import fluid - -from ppdet.experimental import mixed_precision_global_state -from ppdet.core.workspace import register - -__all__ = ['YOLOv3'] - - -@register -class YOLOv3(object): - """ - YOLOv3 network, see https://arxiv.org/abs/1804.02767 - - Args: - backbone (object): an backbone instance - yolo_head (object): an `YOLOv3Head` instance - """ - - __category__ = 'architecture' - __inject__ = ['backbone', 'yolo_head'] - - def __init__(self, backbone, yolo_head='YOLOv3Head'): - super(YOLOv3, self).__init__() - self.backbone = backbone - self.yolo_head = yolo_head - - def build(self, feed_vars, mode='train'): - im = feed_vars['image'] - - mixed_precision_enabled = mixed_precision_global_state() is not None - - # cast inputs to FP16 - if mixed_precision_enabled: - im = fluid.layers.cast(im, 'float16') - - body_feats = self.backbone(im) - - if isinstance(body_feats, OrderedDict): - body_feat_names = list(body_feats.keys()) - body_feats = [body_feats[name] for name in body_feat_names] - - # cast features back to FP32 - if mixed_precision_enabled: - body_feats = [fluid.layers.cast(v, 'float32') for v in body_feats] - - if mode == 'train': - gt_box = feed_vars['gt_box'] - gt_label = feed_vars['gt_label'] - gt_score = feed_vars['gt_score'] - - return { - 'loss': self.yolo_head.get_loss(body_feats, gt_box, gt_label, - gt_score) - } - else: - im_size = feed_vars['im_size'] - return self.yolo_head.get_prediction(body_feats, im_size) - - def train(self, feed_vars): - return self.build(feed_vars, mode='train') - - def eval(self, feed_vars): - return self.build(feed_vars, mode='test') - - def test(self, feed_vars): - return self.build(feed_vars, mode='test') diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/__init__.py deleted file mode 100644 index 48081429fecd83ad086fb66fb7eac99e0cc96fb5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from . import resnet -from . import resnext -from . import darknet -from . import mobilenet -from . import senet -from . import fpn -from . import vgg -from . import blazenet -from . import faceboxnet - -from .resnet import * -from .resnext import * -from .darknet import * -from .mobilenet import * -from .senet import * -from .fpn import * -from .vgg import * -from .blazenet import * -from .faceboxnet import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/blazenet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/blazenet.py deleted file mode 100644 index 54c3f7e262464661f39fb73a9c5c70eabe4955c9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/blazenet.py +++ /dev/null @@ -1,314 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr - -from ppdet.core.workspace import register - -__all__ = ['BlazeNet'] - - -@register -class BlazeNet(object): - """ - BlazeFace, see https://arxiv.org/abs/1907.05047 - - Args: - blaze_filters (list): number of filter for each blaze block - double_blaze_filters (list): number of filter for each double_blaze block - with_extra_blocks (bool): whether or not extra blocks should be added - lite_edition (bool): whether or not is blazeface-lite - """ - - def __init__( - self, - blaze_filters=[[24, 24], [24, 24], [24, 48, 2], [48, 48], [48, 48]], - double_blaze_filters=[[48, 24, 96, 2], [96, 24, 96], [96, 24, 96], - [96, 24, 96, 2], [96, 24, 96], [96, 24, 96]], - with_extra_blocks=True, - lite_edition=False): - super(BlazeNet, self).__init__() - - self.blaze_filters = blaze_filters - self.double_blaze_filters = double_blaze_filters - self.with_extra_blocks = with_extra_blocks - self.lite_edition = lite_edition - - def __call__(self, input): - if not self.lite_edition: - conv1_num_filters = self.blaze_filters[0][0] - conv = self._conv_norm( - input=input, - num_filters=conv1_num_filters, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv1") - - for k, v in enumerate(self.blaze_filters): - assert len(v) in [2, 3], \ - "blaze_filters {} not in [2, 3]" - if len(v) == 2: - conv = self.BlazeBlock( - conv, v[0], v[1], name='blaze_{}'.format(k)) - elif len(v) == 3: - conv = self.BlazeBlock( - conv, - v[0], - v[1], - stride=v[2], - name='blaze_{}'.format(k)) - - layers = [] - for k, v in enumerate(self.double_blaze_filters): - assert len(v) in [3, 4], \ - "blaze_filters {} not in [3, 4]" - if len(v) == 3: - conv = self.BlazeBlock( - conv, - v[0], - v[1], - double_channels=v[2], - name='double_blaze_{}'.format(k)) - elif len(v) == 4: - layers.append(conv) - conv = self.BlazeBlock( - conv, - v[0], - v[1], - double_channels=v[2], - stride=v[3], - name='double_blaze_{}'.format(k)) - layers.append(conv) - - if not self.with_extra_blocks: - return layers[-1] - return layers[-2], layers[-1] - else: - conv1 = self._conv_norm( - input=input, - num_filters=24, - filter_size=5, - stride=2, - padding=2, - act='relu', - name="conv1") - conv2 = self.Blaze_lite(conv1, 24, 24, 1, 'conv2') - conv3 = self.Blaze_lite(conv2, 24, 28, 1, 'conv3') - conv4 = self.Blaze_lite(conv3, 28, 32, 2, 'conv4') - conv5 = self.Blaze_lite(conv4, 32, 36, 1, 'conv5') - conv6 = self.Blaze_lite(conv5, 36, 42, 1, 'conv6') - conv7 = self.Blaze_lite(conv6, 42, 48, 2, 'conv7') - in_ch = 48 - for i in range(5): - conv7 = self.Blaze_lite(conv7, in_ch, in_ch + 8, 1, - 'conv{}'.format(8 + i)) - in_ch += 8 - assert in_ch == 88 - conv13 = self.Blaze_lite(conv7, 88, 96, 2, 'conv13') - for i in range(4): - conv13 = self.Blaze_lite(conv13, 96, 96, 1, - 'conv{}'.format(14 + i)) - - return conv7, conv13 - - def BlazeBlock(self, - input, - in_channels, - out_channels, - double_channels=None, - stride=1, - use_5x5kernel=True, - name=None): - assert stride in [1, 2] - use_pool = not stride == 1 - use_double_block = double_channels is not None - act = 'relu' if use_double_block else None - - if use_5x5kernel: - conv_dw = self._conv_norm( - input=input, - filter_size=5, - num_filters=in_channels, - stride=stride, - padding=2, - num_groups=in_channels, - use_cudnn=False, - name=name + "1_dw") - else: - conv_dw_1 = self._conv_norm( - input=input, - filter_size=3, - num_filters=in_channels, - stride=1, - padding=1, - num_groups=in_channels, - use_cudnn=False, - name=name + "1_dw_1") - conv_dw = self._conv_norm( - input=conv_dw_1, - filter_size=3, - num_filters=in_channels, - stride=stride, - padding=1, - num_groups=in_channels, - use_cudnn=False, - name=name + "1_dw_2") - - conv_pw = self._conv_norm( - input=conv_dw, - filter_size=1, - num_filters=out_channels, - stride=1, - padding=0, - act=act, - name=name + "1_sep") - - if use_double_block: - if use_5x5kernel: - conv_dw = self._conv_norm( - input=conv_pw, - filter_size=5, - num_filters=out_channels, - stride=1, - padding=2, - use_cudnn=False, - name=name + "2_dw") - else: - conv_dw_1 = self._conv_norm( - input=conv_pw, - filter_size=3, - num_filters=out_channels, - stride=1, - padding=1, - num_groups=out_channels, - use_cudnn=False, - name=name + "2_dw_1") - conv_dw = self._conv_norm( - input=conv_dw_1, - filter_size=3, - num_filters=out_channels, - stride=1, - padding=1, - num_groups=out_channels, - use_cudnn=False, - name=name + "2_dw_2") - - conv_pw = self._conv_norm( - input=conv_dw, - filter_size=1, - num_filters=double_channels, - stride=1, - padding=0, - name=name + "2_sep") - - # shortcut - if use_pool: - shortcut_channel = double_channels or out_channels - shortcut_pool = self._pooling_block(input, stride, stride) - channel_pad = self._conv_norm( - input=shortcut_pool, - filter_size=1, - num_filters=shortcut_channel, - stride=1, - padding=0, - name="shortcut" + name) - return fluid.layers.elementwise_add( - x=channel_pad, y=conv_pw, act='relu') - return fluid.layers.elementwise_add(x=input, y=conv_pw, act='relu') - - def Blaze_lite(self, input, in_channels, out_channels, stride=1, name=None): - assert stride in [1, 2] - use_pool = not stride == 1 - ues_pad = not in_channels == out_channels - conv_dw = self._conv_norm( - input=input, - filter_size=3, - num_filters=in_channels, - stride=stride, - padding=1, - num_groups=in_channels, - name=name + "_dw") - - conv_pw = self._conv_norm( - input=conv_dw, - filter_size=1, - num_filters=out_channels, - stride=1, - padding=0, - name=name + "_sep") - - if use_pool: - shortcut_pool = self._pooling_block(input, stride, stride) - if ues_pad: - conv_pad = shortcut_pool if use_pool else input - channel_pad = self._conv_norm( - input=conv_pad, - filter_size=1, - num_filters=out_channels, - stride=1, - padding=0, - name="shortcut" + name) - return fluid.layers.elementwise_add( - x=channel_pad, y=conv_pw, act='relu') - return fluid.layers.elementwise_add(x=input, y=conv_pw, act='relu') - - def _conv_norm( - self, - input, - filter_size, - num_filters, - stride, - padding, - num_groups=1, - act='relu', # None - use_cudnn=True, - name=None): - parameter_attr = ParamAttr( - learning_rate=0.1, - initializer=fluid.initializer.MSRA(), - name=name + "_weights") - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=parameter_attr, - bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act) - - def _pooling_block(self, - conv, - pool_size, - pool_stride, - pool_padding=0, - ceil_mode=True): - pool = fluid.layers.pool2d( - input=conv, - pool_size=pool_size, - pool_type='max', - pool_stride=pool_stride, - pool_padding=pool_padding, - ceil_mode=ceil_mode) - return pool diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/darknet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/darknet.py deleted file mode 100644 index 37583ab29d8cd0602b0f406b52c2ce8dae1ce3e7..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/darknet.py +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import six - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register - -__all__ = ['DarkNet'] - - -@register -class DarkNet(object): - """ - DarkNet, see https://pjreddie.com/darknet/yolo/ - Args: - depth (int): network depth, currently only darknet 53 is supported - norm_type (str): normalization type, 'bn' and 'sync_bn' are supported - norm_decay (float): weight decay for normalization layer weights - """ - __shared__ = ['norm_type', 'weight_prefix_name'] - - def __init__(self, - depth=53, - norm_type='bn', - norm_decay=0., - weight_prefix_name=''): - assert depth in [53], "unsupported depth value" - self.depth = depth - self.norm_type = norm_type - self.norm_decay = norm_decay - self.depth_cfg = {53: ([1, 2, 8, 8, 4], self.basicblock)} - self.prefix_name = weight_prefix_name - - def _conv_norm(self, - input, - ch_out, - filter_size, - stride, - padding, - act='leaky', - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - act=None, - param_attr=ParamAttr(name=name + ".conv.weights"), - bias_attr=False) - - bn_name = name + ".bn" - bn_param_attr = ParamAttr( - regularizer=L2Decay(float(self.norm_decay)), - name=bn_name + '.scale') - bn_bias_attr = ParamAttr( - regularizer=L2Decay(float(self.norm_decay)), - name=bn_name + '.offset') - - out = fluid.layers.batch_norm( - input=conv, - act=None, - param_attr=bn_param_attr, - bias_attr=bn_bias_attr, - moving_mean_name=bn_name + '.mean', - moving_variance_name=bn_name + '.var') - - # leaky relu here has `alpha` as 0.1, can not be set by - # `act` param in fluid.layers.batch_norm above. - if act == 'leaky': - out = fluid.layers.leaky_relu(x=out, alpha=0.1) - - return out - - def _downsample(self, - input, - ch_out, - filter_size=3, - stride=2, - padding=1, - name=None): - return self._conv_norm( - input, - ch_out=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - name=name) - - def basicblock(self, input, ch_out, name=None): - conv1 = self._conv_norm( - input, - ch_out=ch_out, - filter_size=1, - stride=1, - padding=0, - name=name + ".0") - conv2 = self._conv_norm( - conv1, - ch_out=ch_out * 2, - filter_size=3, - stride=1, - padding=1, - name=name + ".1") - out = fluid.layers.elementwise_add(x=input, y=conv2, act=None) - return out - - def layer_warp(self, block_func, input, ch_out, count, name=None): - out = block_func(input, ch_out=ch_out, name='{}.0'.format(name)) - for j in six.moves.xrange(1, count): - out = block_func(out, ch_out=ch_out, name='{}.{}'.format(name, j)) - return out - - def __call__(self, input): - """ - Get the backbone of DarkNet, that is output for the 5 stages. - - Args: - input (Variable): input variable. - - Returns: - The last variables of each stage. - """ - stages, block_func = self.depth_cfg[self.depth] - stages = stages[0:5] - conv = self._conv_norm( - input=input, - ch_out=32, - filter_size=3, - stride=1, - padding=1, - name=self.prefix_name + "yolo_input") - downsample_ = self._downsample( - input=conv, - ch_out=conv.shape[1] * 2, - name=self.prefix_name + "yolo_input.downsample") - blocks = [] - for i, stage in enumerate(stages): - block = self.layer_warp( - block_func=block_func, - input=downsample_, - ch_out=32 * 2**i, - count=stage, - name=self.prefix_name + "stage.{}".format(i)) - blocks.append(block) - if i < len(stages) - 1: # do not downsaple in the last stage - downsample_ = self._downsample( - input=block, - ch_out=block.shape[1] * 2, - name=self.prefix_name + "stage.{}.downsample".format(i)) - return blocks diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/faceboxnet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/faceboxnet.py deleted file mode 100644 index 0b82c86b232a9784928167f1d226eb07562821c2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/faceboxnet.py +++ /dev/null @@ -1,364 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr - -from ppdet.core.workspace import register - -__all__ = ['FaceBoxNet'] - - -@register -class FaceBoxNet(object): - """ - FaceBoxes, see https://https://arxiv.org/abs/1708.05234 - - Args: - with_extra_blocks (bool): whether or not extra blocks should be added - lite_edition (bool): whether or not is FaceBoxes-lite - """ - - def __init__(self, - with_extra_blocks=True, - lite_edition=False): - super(FaceBoxNet, self).__init__() - - self.with_extra_blocks = with_extra_blocks - self.lite_edition = lite_edition - - def __call__(self, input): - if self.lite_edition: - return self._simplified_edition(input) - else: - return self._original_edition(input) - - def _simplified_edition(self, input): - conv_1_1 = self._conv_norm_crelu( - input=input, - num_filters=8, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_1_1") - - conv_1_2 = self._conv_norm_crelu( - input=conv_1_1, - num_filters=24, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_1_2") - - pool1 = fluid.layers.pool2d( - input=conv_1_2, - pool_size=3, - pool_padding=1, - pool_type='avg', - name="pool_1") - - conv_2_1 = self._conv_norm( - input=pool1, - num_filters=48, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_2_1") - - conv_2_2 = self._conv_norm( - input=conv_2_1, - num_filters=64, - filter_size=1, - stride=1, - padding=0, - act='relu', - name="conv_2_2") - - conv_inception = conv_2_2 - - for i in range(3): - conv_inception = self._inceptionA(conv_inception, i) - - layers = [] - layers.append(conv_inception) - - conv_3_1 = self._conv_norm( - input=conv_inception, - num_filters=128, - filter_size=1, - stride=1, - padding=0, - act='relu', - name="conv_3_1") - - conv_3_2 = self._conv_norm( - input=conv_3_1, - num_filters=256, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_3_2") - - layers.append(conv_3_2) - - if not self.with_extra_blocks: - return layers[-1] - return layers[-2], layers[-1] - - def _original_edition(self, input): - conv_1 = self._conv_norm_crelu( - input=input, - num_filters=24, - filter_size=7, - stride=4, - padding=3, - act='relu', - name="conv_1") - - pool_1 = fluid.layers.pool2d( - input=conv_1, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max', - name="pool_1") - - conv_2 = self._conv_norm_crelu( - input=pool_1, - num_filters=64, - filter_size=5, - stride=2, - padding=2, - act='relu', - name="conv_2") - - pool_2 = fluid.layers.pool2d( - input=conv_1, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max', - name="pool_2") - - conv_inception = pool_2 - - for i in range(3): - conv_inception = self._inceptionA(conv_inception, i) - - layers = [] - layers.append(conv_inception) - - conv_3_1 = self._conv_norm( - input=conv_inception, - num_filters=128, - filter_size=1, - stride=1, - padding=0, - act='relu', - name="conv_3_1") - - conv_3_2 = self._conv_norm( - input=conv_3_1, - num_filters=256, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_3_2") - - layers.append(conv_3_2) - - conv_4_1 = self._conv_norm( - input=conv_3_2, - num_filters=128, - filter_size=1, - stride=1, - padding=0, - act='relu', - name="conv_4_1") - - conv_4_2 = self._conv_norm( - input=conv_4_1, - num_filters=256, - filter_size=3, - stride=2, - padding=1, - act='relu', - name="conv_4_2") - - layers.append(conv_4_2) - - if not self.with_extra_blocks: - return layers[-1] - - return layers[-3], layers[-2], layers[-1] - - def _conv_norm( - self, - input, - filter_size, - num_filters, - stride, - padding, - num_groups=1, - act='relu', - use_cudnn=True, - name=None): - parameter_attr = ParamAttr( - learning_rate=0.1, - initializer=fluid.initializer.MSRA(), - name=name + "_weights") - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=parameter_attr, - bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act) - - def _conv_norm_crelu( - self, - input, - filter_size, - num_filters, - stride, - padding, - num_groups=1, - act='relu', - use_cudnn=True, - name=None): - parameter_attr = ParamAttr( - learning_rate=0.1, - initializer=fluid.initializer.MSRA(), - name=name + "_weights") - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=parameter_attr, - bias_attr=False) - - conv_a = fluid.layers.batch_norm(input=conv, act=act) - conv_b = fluid.layers.scale(conv_a, -1) - - concat = fluid.layers.concat([conv_a, conv_b], axis=1) - - return concat - - def _pooling_block(self, - conv, - pool_size, - pool_stride, - pool_padding=0, - ceil_mode=True): - pool = fluid.layers.pool2d( - input=conv, - pool_size=pool_size, - pool_type='max', - pool_stride=pool_stride, - pool_padding=pool_padding, - ceil_mode=ceil_mode) - return pool - - def _inceptionA(self, data, idx): - idx = str(idx) - - pool1 = fluid.layers.pool2d( - input=data, - pool_size=3, - pool_padding=1, - pool_type='avg', - name='inceptionA_' + idx + '_pool1') - conv1 = self._conv_norm( - input=pool1, - filter_size=1, - num_filters=32, - stride=1, - padding=0, - act='relu', - name='inceptionA_' + idx + '_conv1') - - conv2 = self._conv_norm( - input=data, - filter_size=1, - num_filters=32, - stride=1, - padding=0, - act='relu', - name='inceptionA_' + idx + '_conv2') - - conv3 = self._conv_norm( - input=data, - filter_size=1, - num_filters=24, - stride=1, - padding=0, - act='relu', - name='inceptionA_' + idx + '_conv3_1') - conv3 = self._conv_norm( - input=conv3, - filter_size=3, - num_filters=32, - stride=1, - padding=1, - act='relu', - name='inceptionA_' + idx + '_conv3_2') - - conv4 = self._conv_norm( - input=data, - filter_size=1, - num_filters=24, - stride=1, - padding=0, - act='relu', - name='inceptionA_' + idx + '_conv4_1') - conv4 = self._conv_norm( - input=conv4, - filter_size=3, - num_filters=32, - stride=1, - padding=1, - act='relu', - name='inceptionA_' + idx + '_conv4_2') - conv4 = self._conv_norm( - input=conv4, - filter_size=3, - num_filters=32, - stride=1, - padding=1, - act='relu', - name='inceptionA_' + idx + '_conv4_3') - - concat = fluid.layers.concat( - [conv1, conv2, conv3, conv4], axis=1) - - return concat diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/fpn.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/fpn.py deleted file mode 100644 index 9bd491a662dd640c62668c5878d47ea48c21d223..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/fpn.py +++ /dev/null @@ -1,216 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict -import copy -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Xavier -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register -from ppdet.modeling.ops import ConvNorm - -__all__ = ['FPN'] - - -@register -class FPN(object): - """ - Feature Pyramid Network, see https://arxiv.org/abs/1612.03144 - - Args: - num_chan (int): number of feature channels - min_level (int): lowest level of the backbone feature map to use - max_level (int): highest level of the backbone feature map to use - spatial_scale (list): feature map scaling factor - has_extra_convs (bool): whether has extral convolutions in higher levels - norm_type (str|None): normalization type, 'bn'/'sync_bn'/'affine_channel' - """ - __shared__ = ['norm_type', 'freeze_norm'] - - def __init__(self, - num_chan=256, - min_level=2, - max_level=6, - spatial_scale=[1. / 32., 1. / 16., 1. / 8., 1. / 4.], - has_extra_convs=False, - norm_type=None, - freeze_norm=False): - self.freeze_norm = freeze_norm - self.num_chan = num_chan - self.min_level = min_level - self.max_level = max_level - self.spatial_scale = spatial_scale - self.has_extra_convs = has_extra_convs - self.norm_type = norm_type - - def _add_topdown_lateral(self, body_name, body_input, upper_output): - lateral_name = 'fpn_inner_' + body_name + '_lateral' - topdown_name = 'fpn_topdown_' + body_name - fan = body_input.shape[1] - if self.norm_type: - initializer = Xavier(fan_out=fan) - lateral = ConvNorm( - body_input, - self.num_chan, - 1, - initializer=initializer, - norm_type=self.norm_type, - freeze_norm=self.freeze_norm, - name=lateral_name, - norm_name=lateral_name) - else: - lateral = fluid.layers.conv2d( - body_input, - self.num_chan, - 1, - param_attr=ParamAttr( - name=lateral_name + "_w", initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name=lateral_name + "_b", - learning_rate=2., - regularizer=L2Decay(0.)), - name=lateral_name) - topdown = fluid.layers.resize_nearest( - upper_output, scale=2., name=topdown_name) - - return lateral + topdown - - def get_output(self, body_dict): - """ - Add FPN onto backbone. - - Args: - body_dict(OrderedDict): Dictionary of variables and each element is the - output of backbone. - - Return: - fpn_dict(OrderedDict): A dictionary represents the output of FPN with - their name. - spatial_scale(list): A list of multiplicative spatial scale factor. - """ - spatial_scale = copy.deepcopy(self.spatial_scale) - body_name_list = list(body_dict.keys())[::-1] - num_backbone_stages = len(body_name_list) - self.fpn_inner_output = [[] for _ in range(num_backbone_stages)] - fpn_inner_name = 'fpn_inner_' + body_name_list[0] - body_input = body_dict[body_name_list[0]] - fan = body_input.shape[1] - if self.norm_type: - initializer = Xavier(fan_out=fan) - self.fpn_inner_output[0] = ConvNorm( - body_input, - self.num_chan, - 1, - initializer=initializer, - norm_type=self.norm_type, - freeze_norm=self.freeze_norm, - name=fpn_inner_name, - norm_name=fpn_inner_name) - else: - self.fpn_inner_output[0] = fluid.layers.conv2d( - body_input, - self.num_chan, - 1, - param_attr=ParamAttr( - name=fpn_inner_name + "_w", - initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name=fpn_inner_name + "_b", - learning_rate=2., - regularizer=L2Decay(0.)), - name=fpn_inner_name) - for i in range(1, num_backbone_stages): - body_name = body_name_list[i] - body_input = body_dict[body_name] - top_output = self.fpn_inner_output[i - 1] - fpn_inner_single = self._add_topdown_lateral(body_name, body_input, - top_output) - self.fpn_inner_output[i] = fpn_inner_single - fpn_dict = {} - fpn_name_list = [] - for i in range(num_backbone_stages): - fpn_name = 'fpn_' + body_name_list[i] - fan = self.fpn_inner_output[i].shape[1] * 3 * 3 - if self.norm_type: - initializer = Xavier(fan_out=fan) - fpn_output = ConvNorm( - self.fpn_inner_output[i], - self.num_chan, - 3, - initializer=initializer, - norm_type=self.norm_type, - freeze_norm=self.freeze_norm, - name=fpn_name, - norm_name=fpn_name) - else: - fpn_output = fluid.layers.conv2d( - self.fpn_inner_output[i], - self.num_chan, - filter_size=3, - padding=1, - param_attr=ParamAttr( - name=fpn_name + "_w", initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name=fpn_name + "_b", - learning_rate=2., - regularizer=L2Decay(0.)), - name=fpn_name) - fpn_dict[fpn_name] = fpn_output - fpn_name_list.append(fpn_name) - if not self.has_extra_convs and self.max_level - self.min_level == len( - spatial_scale): - body_top_name = fpn_name_list[0] - body_top_extension = fluid.layers.pool2d( - fpn_dict[body_top_name], - 1, - 'max', - pool_stride=2, - name=body_top_name + '_subsampled_2x') - fpn_dict[body_top_name + '_subsampled_2x'] = body_top_extension - fpn_name_list.insert(0, body_top_name + '_subsampled_2x') - spatial_scale.insert(0, spatial_scale[0] * 0.5) - # Coarser FPN levels introduced for RetinaNet - highest_backbone_level = self.min_level + len(spatial_scale) - 1 - if self.has_extra_convs and self.max_level > highest_backbone_level: - fpn_blob = body_dict[body_name_list[0]] - for i in range(highest_backbone_level + 1, self.max_level + 1): - fpn_blob_in = fpn_blob - fpn_name = 'fpn_' + str(i) - if i > highest_backbone_level + 1: - fpn_blob_in = fluid.layers.relu(fpn_blob) - fan = fpn_blob_in.shape[1] * 3 * 3 - fpn_blob = fluid.layers.conv2d( - input=fpn_blob_in, - num_filters=self.num_chan, - filter_size=3, - stride=2, - padding=1, - param_attr=ParamAttr( - name=fpn_name + "_w", initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name=fpn_name + "_b", - learning_rate=2., - regularizer=L2Decay(0.)), - name=fpn_name) - fpn_dict[fpn_name] = fpn_blob - fpn_name_list.insert(0, fpn_name) - spatial_scale.insert(0, spatial_scale[0] * 0.5) - res_dict = OrderedDict([(k, fpn_dict[k]) for k in fpn_name_list]) - return res_dict, spatial_scale diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/mobilenet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/mobilenet.py deleted file mode 100644 index 56afdf96454a994591a3d97e71b8d9619e0e68c8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/mobilenet.py +++ /dev/null @@ -1,210 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register - -__all__ = ['MobileNet'] - - -@register -class MobileNet(object): - """ - MobileNet v1, see https://arxiv.org/abs/1704.04861 - - Args: - norm_type (str): normalization type, 'bn' and 'sync_bn' are supported - norm_decay (float): weight decay for normalization layer weights - conv_group_scale (int): scaling factor for convolution groups - with_extra_blocks (bool): if extra blocks should be added - extra_block_filters (list): number of filter for each extra block - """ - __shared__ = ['norm_type', 'weight_prefix_name'] - - def __init__(self, - norm_type='bn', - norm_decay=0., - conv_group_scale=1, - conv_learning_rate=1.0, - with_extra_blocks=False, - extra_block_filters=[[256, 512], [128, 256], [128, 256], - [64, 128]], - weight_prefix_name=''): - self.norm_type = norm_type - self.norm_decay = norm_decay - self.conv_group_scale = conv_group_scale - self.conv_learning_rate = conv_learning_rate - self.with_extra_blocks = with_extra_blocks - self.extra_block_filters = extra_block_filters - self.prefix_name = weight_prefix_name - - def _conv_norm(self, - input, - filter_size, - num_filters, - stride, - padding, - num_groups=1, - act='relu', - use_cudnn=True, - name=None): - parameter_attr = ParamAttr( - learning_rate=self.conv_learning_rate, - initializer=fluid.initializer.MSRA(), - name=name + "_weights") - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=parameter_attr, - bias_attr=False) - - bn_name = name + "_bn" - norm_decay = self.norm_decay - bn_param_attr = ParamAttr( - regularizer=L2Decay(norm_decay), name=bn_name + '_scale') - bn_bias_attr = ParamAttr( - regularizer=L2Decay(norm_decay), name=bn_name + '_offset') - return fluid.layers.batch_norm( - input=conv, - act=act, - param_attr=bn_param_attr, - bias_attr=bn_bias_attr, - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def depthwise_separable(self, - input, - num_filters1, - num_filters2, - num_groups, - stride, - scale, - name=None): - depthwise_conv = self._conv_norm( - input=input, - filter_size=3, - num_filters=int(num_filters1 * scale), - stride=stride, - padding=1, - num_groups=int(num_groups * scale), - use_cudnn=False, - name=name + "_dw") - - pointwise_conv = self._conv_norm( - input=depthwise_conv, - filter_size=1, - num_filters=int(num_filters2 * scale), - stride=1, - padding=0, - name=name + "_sep") - return pointwise_conv - - def _extra_block(self, - input, - num_filters1, - num_filters2, - num_groups, - stride, - name=None): - pointwise_conv = self._conv_norm( - input=input, - filter_size=1, - num_filters=int(num_filters1), - stride=1, - num_groups=int(num_groups), - padding=0, - name=name + "_extra1") - normal_conv = self._conv_norm( - input=pointwise_conv, - filter_size=3, - num_filters=int(num_filters2), - stride=2, - num_groups=int(num_groups), - padding=1, - name=name + "_extra2") - return normal_conv - - def __call__(self, input): - scale = self.conv_group_scale - - blocks = [] - # input 1/1 - out = self._conv_norm( - input, 3, int(32 * scale), 2, 1, name=self.prefix_name + "conv1") - # 1/2 - out = self.depthwise_separable( - out, 32, 64, 32, 1, scale, name=self.prefix_name + "conv2_1") - out = self.depthwise_separable( - out, 64, 128, 64, 2, scale, name=self.prefix_name + "conv2_2") - # 1/4 - out = self.depthwise_separable( - out, 128, 128, 128, 1, scale, name=self.prefix_name + "conv3_1") - out = self.depthwise_separable( - out, 128, 256, 128, 2, scale, name=self.prefix_name + "conv3_2") - # 1/8 - blocks.append(out) - out = self.depthwise_separable( - out, 256, 256, 256, 1, scale, name=self.prefix_name + "conv4_1") - out = self.depthwise_separable( - out, 256, 512, 256, 2, scale, name=self.prefix_name + "conv4_2") - # 1/16 - blocks.append(out) - for i in range(5): - out = self.depthwise_separable( - out, - 512, - 512, - 512, - 1, - scale, - name=self.prefix_name + "conv5_" + str(i + 1)) - module11 = out - - out = self.depthwise_separable( - out, 512, 1024, 512, 2, scale, name=self.prefix_name + "conv5_6") - # 1/32 - out = self.depthwise_separable( - out, 1024, 1024, 1024, 1, scale, name=self.prefix_name + "conv6") - module13 = out - blocks.append(out) - if not self.with_extra_blocks: - return blocks - - num_filters = self.extra_block_filters - module14 = self._extra_block(module13, num_filters[0][0], - num_filters[0][1], 1, 2, - self.prefix_name + "conv7_1") - module15 = self._extra_block(module14, num_filters[1][0], - num_filters[1][1], 1, 2, - self.prefix_name + "conv7_2") - module16 = self._extra_block(module15, num_filters[2][0], - num_filters[2][1], 1, 2, - self.prefix_name + "conv7_3") - module17 = self._extra_block(module16, num_filters[3][0], - num_filters[3][1], 1, 2, - self.prefix_name + "conv7_4") - return module11, module13, module14, module15, module16, module17 diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/name_adapter.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/name_adapter.py deleted file mode 100644 index 2cb16d0c9cc82d9c07988ae47c6347973add0dc8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/name_adapter.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -class NameAdapter(object): - """Fix the backbones variable names for pretrained weight""" - - def __init__(self, model): - super(NameAdapter, self).__init__() - self.model = model - - @property - def model_type(self): - return getattr(self.model, '_model_type', '') - - @property - def variant(self): - return getattr(self.model, 'variant', '') - - def fix_conv_norm_name(self, name): - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - # the naming rule is same as pretrained weight - if self.model_type == 'SEResNeXt': - bn_name = name + "_bn" - return bn_name - - def fix_shortcut_name(self, name): - if self.model_type == 'SEResNeXt': - name = 'conv' + name + '_prj' - return name - - def fix_bottleneck_name(self, name): - if self.model_type == 'SEResNeXt': - conv_name1 = 'conv' + name + '_x1' - conv_name2 = 'conv' + name + '_x2' - conv_name3 = 'conv' + name + '_x3' - shortcut_name = name - else: - conv_name1 = name + "_branch2a" - conv_name2 = name + "_branch2b" - conv_name3 = name + "_branch2c" - shortcut_name = name + "_branch1" - return conv_name1, conv_name2, conv_name3, shortcut_name - - def fix_layer_warp_name(self, stage_num, count, i): - name = 'res' + str(stage_num) - if count > 10 and stage_num == 4: - if i == 0: - conv_name = name + "a" - else: - conv_name = name + "b" + str(i) - else: - conv_name = name + chr(ord("a") + i) - if self.model_type == 'SEResNeXt': - conv_name = str(stage_num + 2) + '_' + str(i + 1) - return conv_name - - def fix_c1_stage_name(self): - return "res_conv1" if self.model_type == 'ResNeXt' else "conv1" diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnet.py deleted file mode 100644 index 496f5e76cbec09639c63b3b5d6499ee0d6f32598..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnet.py +++ /dev/null @@ -1,431 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.framework import Variable -from paddle.fluid.regularizer import L2Decay -from paddle.fluid.initializer import Constant - -from ppdet.core.workspace import register, serializable -from numbers import Integral - -from .name_adapter import NameAdapter - -__all__ = ['ResNet', 'ResNetC5'] - - -@register -@serializable -class ResNet(object): - """ - Residual Network, see https://arxiv.org/abs/1512.03385 - Args: - depth (int): ResNet depth, should be 18, 34, 50, 101, 152. - freeze_at (int): freeze the backbone at which stage - norm_type (str): normalization type, 'bn'/'sync_bn'/'affine_channel' - freeze_norm (bool): freeze normalization layers - norm_decay (float): weight decay for normalization layer weights - variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently - feature_maps (list): index of stages whose feature maps are returned - dcn_v2_stages (list): index of stages who select deformable conv v2 - """ - __shared__ = ['norm_type', 'freeze_norm', 'weight_prefix_name'] - - def __init__(self, - depth=50, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=0., - variant='b', - feature_maps=[2, 3, 4, 5], - dcn_v2_stages=[], - weight_prefix_name=''): - super(ResNet, self).__init__() - - if isinstance(feature_maps, Integral): - feature_maps = [feature_maps] - - assert depth in [18, 34, 50, 101, 152], \ - "depth {} not in [18, 34, 50, 101, 152]" - assert variant in ['a', 'b', 'c', 'd'], "invalid ResNet variant" - assert 0 <= freeze_at <= 4, "freeze_at should be 0, 1, 2, 3 or 4" - assert len(feature_maps) > 0, "need one or more feature maps" - assert norm_type in ['bn', 'sync_bn', 'affine_channel'] - - self.depth = depth - self.freeze_at = freeze_at - self.norm_type = norm_type - self.norm_decay = norm_decay - self.freeze_norm = freeze_norm - self.variant = variant - self._model_type = 'ResNet' - self.feature_maps = feature_maps - self.dcn_v2_stages = dcn_v2_stages - self.depth_cfg = { - 18: ([2, 2, 2, 2], self.basicblock), - 34: ([3, 4, 6, 3], self.basicblock), - 50: ([3, 4, 6, 3], self.bottleneck), - 101: ([3, 4, 23, 3], self.bottleneck), - 152: ([3, 8, 36, 3], self.bottleneck) - } - self.stage_filters = [64, 128, 256, 512] - self._c1_out_chan_num = 64 - self.na = NameAdapter(self) - self.prefix_name = weight_prefix_name - - def _conv_offset(self, - input, - filter_size, - stride, - padding, - act=None, - name=None): - out_channel = filter_size * filter_size * 3 - out = fluid.layers.conv2d( - input, - num_filters=out_channel, - filter_size=filter_size, - stride=stride, - padding=padding, - param_attr=ParamAttr( - initializer=Constant(0.0), name=name + ".w_0"), - bias_attr=ParamAttr( - initializer=Constant(0.0), name=name + ".b_0"), - act=act, - name=name) - return out - - def _conv_norm(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None, - dcn_v2=False): - _name = self.prefix_name + name if self.prefix_name != '' else name - if not dcn_v2: - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=_name + "_weights"), - bias_attr=False, - name=_name + '.conv2d.output.1') - else: - # select deformable conv" - offset_mask = self._conv_offset( - input=input, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - act=None, - name=_name + "_conv_offset") - offset_channel = filter_size**2 * 2 - mask_channel = filter_size**2 - offset, mask = fluid.layers.split( - input=offset_mask, - num_or_sections=[offset_channel, mask_channel], - dim=1) - mask = fluid.layers.sigmoid(mask) - conv = fluid.layers.deformable_conv( - input=input, - offset=offset, - mask=mask, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - deformable_groups=1, - im2col_step=1, - param_attr=ParamAttr(name=_name + "_weights"), - bias_attr=False, - name=_name + ".conv2d.output.1") - - bn_name = self.na.fix_conv_norm_name(name) - bn_name = self.prefix_name + bn_name if self.prefix_name != '' else bn_name - - norm_lr = 0. if self.freeze_norm else 1. - norm_decay = self.norm_decay - pattr = ParamAttr( - name=bn_name + '_scale', - learning_rate=norm_lr, - regularizer=L2Decay(norm_decay)) - battr = ParamAttr( - name=bn_name + '_offset', - learning_rate=norm_lr, - regularizer=L2Decay(norm_decay)) - - if self.norm_type in ['bn', 'sync_bn']: - global_stats = True if self.freeze_norm else False - out = fluid.layers.batch_norm( - input=conv, - act=act, - name=bn_name + '.output.1', - param_attr=pattr, - bias_attr=battr, - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance', - use_global_stats=global_stats) - scale = fluid.framework._get_var(pattr.name) - bias = fluid.framework._get_var(battr.name) - elif self.norm_type == 'affine_channel': - scale = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=pattr, - default_initializer=fluid.initializer.Constant(1.)) - bias = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=battr, - default_initializer=fluid.initializer.Constant(0.)) - out = fluid.layers.affine_channel( - x=conv, scale=scale, bias=bias, act=act) - if self.freeze_norm: - scale.stop_gradient = True - bias.stop_gradient = True - return out - - def _shortcut(self, input, ch_out, stride, is_first, name): - max_pooling_in_short_cut = self.variant == 'd' - ch_in = input.shape[1] - # the naming rule is same as pretrained weight - name = self.na.fix_shortcut_name(name) - std_senet = getattr(self, 'std_senet', False) - if ch_in != ch_out or stride != 1 or (self.depth < 50 and is_first): - if std_senet: - if is_first: - return self._conv_norm(input, ch_out, 1, stride, name=name) - else: - return self._conv_norm(input, ch_out, 3, stride, name=name) - if max_pooling_in_short_cut and not is_first: - input = fluid.layers.pool2d( - input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - ceil_mode=True, - pool_type='avg') - return self._conv_norm(input, ch_out, 1, 1, name=name) - return self._conv_norm(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck(self, - input, - num_filters, - stride, - is_first, - name, - dcn_v2=False): - if self.variant == 'a': - stride1, stride2 = stride, 1 - else: - stride1, stride2 = 1, stride - - # ResNeXt - groups = getattr(self, 'groups', 1) - group_width = getattr(self, 'group_width', -1) - if groups == 1: - expand = 4 - elif (groups * group_width) == 256: - expand = 1 - else: # FIXME hard code for now, handles 32x4d, 64x4d and 32x8d - num_filters = num_filters // 2 - expand = 2 - - conv_name1, conv_name2, conv_name3, \ - shortcut_name = self.na.fix_bottleneck_name(name) - std_senet = getattr(self, 'std_senet', False) - if std_senet: - conv_def = [ - [int(num_filters / 2), 1, stride1, 'relu', 1, conv_name1], - [num_filters, 3, stride2, 'relu', groups, conv_name2], - [num_filters * expand, 1, 1, None, 1, conv_name3] - ] - else: - conv_def = [[num_filters, 1, stride1, 'relu', 1, conv_name1], - [num_filters, 3, stride2, 'relu', groups, conv_name2], - [num_filters * expand, 1, 1, None, 1, conv_name3]] - - residual = input - for i, (c, k, s, act, g, _name) in enumerate(conv_def): - residual = self._conv_norm( - input=residual, - num_filters=c, - filter_size=k, - stride=s, - act=act, - groups=g, - name=_name, - dcn_v2=(i == 1 and dcn_v2)) - short = self._shortcut( - input, - num_filters * expand, - stride, - is_first=is_first, - name=shortcut_name) - # Squeeze-and-Excitation - if callable(getattr(self, '_squeeze_excitation', None)): - residual = self._squeeze_excitation( - input=residual, num_channels=num_filters, name='fc' + name) - return fluid.layers.elementwise_add( - x=short, y=residual, act='relu', name=name + ".add.output.5") - - def basicblock(self, - input, - num_filters, - stride, - is_first, - name, - dcn_v2=False): - assert dcn_v2 is False, "Not implemented yet." - conv0 = self._conv_norm( - input=input, - num_filters=num_filters, - filter_size=3, - act='relu', - stride=stride, - name=name + "_branch2a") - conv1 = self._conv_norm( - input=conv0, - num_filters=num_filters, - filter_size=3, - act=None, - name=name + "_branch2b") - short = self._shortcut( - input, num_filters, stride, is_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv1, act='relu') - - def layer_warp(self, input, stage_num): - """ - Args: - input (Variable): input variable. - stage_num (int): the stage number, should be 2, 3, 4, 5 - - Returns: - The last variable in endpoint-th stage. - """ - assert stage_num in [2, 3, 4, 5] - - stages, block_func = self.depth_cfg[self.depth] - count = stages[stage_num - 2] - - ch_out = self.stage_filters[stage_num - 2] - is_first = False if stage_num != 2 else True - dcn_v2 = True if stage_num in self.dcn_v2_stages else False - # Make the layer name and parameter name consistent - # with ImageNet pre-trained model - conv = input - for i in range(count): - conv_name = self.na.fix_layer_warp_name(stage_num, count, i) - if self.depth < 50: - is_first = True if i == 0 and stage_num == 2 else False - conv = block_func( - input=conv, - num_filters=ch_out, - stride=2 if i == 0 and stage_num != 2 else 1, - is_first=is_first, - name=conv_name, - dcn_v2=dcn_v2) - return conv - - def c1_stage(self, input): - out_chan = self._c1_out_chan_num - - conv1_name = self.na.fix_c1_stage_name() - - if self.variant in ['c', 'd']: - conv_def = [ - [out_chan // 2, 3, 2, "conv1_1"], - [out_chan // 2, 3, 1, "conv1_2"], - [out_chan, 3, 1, "conv1_3"], - ] - else: - conv_def = [[out_chan, 7, 2, conv1_name]] - - for (c, k, s, _name) in conv_def: - input = self._conv_norm( - input=input, - num_filters=c, - filter_size=k, - stride=s, - act='relu', - name=_name) - - output = fluid.layers.pool2d( - input=input, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - return output - - def __call__(self, input): - assert isinstance(input, Variable) - assert not (set(self.feature_maps) - set([2, 3, 4, 5])), \ - "feature maps {} not in [2, 3, 4, 5]".format(self.feature_maps) - - res_endpoints = [] - - res = input - feature_maps = self.feature_maps - severed_head = getattr(self, 'severed_head', False) - if not severed_head: - res = self.c1_stage(res) - feature_maps = range(2, max(self.feature_maps) + 1) - - for i in feature_maps: - res = self.layer_warp(res, i) - if i in self.feature_maps: - res_endpoints.append(res) - if self.freeze_at >= i: - res.stop_gradient = True - - return OrderedDict([('res{}_sum'.format(self.feature_maps[idx]), feat) - for idx, feat in enumerate(res_endpoints)]) - - -@register -@serializable -class ResNetC5(ResNet): - __doc__ = ResNet.__doc__ - - def __init__(self, - depth=50, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=0., - variant='b', - feature_maps=[5], - weight_prefix_name=''): - super(ResNetC5, self).__init__(depth, freeze_at, norm_type, freeze_norm, - norm_decay, variant, feature_maps) - self.severed_head = True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnext.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnext.py deleted file mode 100644 index 5452511376de21ccca731b0f4e08b38552fb4e9d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/resnext.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from ppdet.core.workspace import register, serializable -from .resnet import ResNet - -__all__ = ['ResNeXt'] - - -@register -@serializable -class ResNeXt(ResNet): - """ - ResNeXt, see https://arxiv.org/abs/1611.05431 - Args: - depth (int): network depth, should be 50, 101, 152. - groups (int): group convolution cardinality - group_width (int): width of each group convolution - freeze_at (int): freeze the backbone at which stage - norm_type (str): normalization type, 'bn', 'sync_bn' or 'affine_channel' - freeze_norm (bool): freeze normalization layers - norm_decay (float): weight decay for normalization layer weights - variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently - feature_maps (list): index of the stages whose feature maps are returned - dcn_v2_stages (list): index of stages who select deformable conv v2 - """ - - def __init__(self, - depth=50, - groups=64, - group_width=4, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=True, - variant='a', - feature_maps=[2, 3, 4, 5], - dcn_v2_stages=[], - weight_prefix_name=''): - assert depth in [50, 101, 152], "depth {} should be 50, 101 or 152" - super(ResNeXt, self).__init__(depth, freeze_at, norm_type, freeze_norm, - norm_decay, variant, feature_maps) - self.depth_cfg = { - 50: ([3, 4, 6, 3], self.bottleneck), - 101: ([3, 4, 23, 3], self.bottleneck), - 152: ([3, 8, 36, 3], self.bottleneck) - } - self.stage_filters = [256, 512, 1024, 2048] - self.groups = groups - self.group_width = group_width - self._model_type = 'ResNeXt' - self.dcn_v2_stages = dcn_v2_stages - - -@register -@serializable -class ResNeXtC5(ResNeXt): - __doc__ = ResNeXt.__doc__ - - def __init__(self, - depth=50, - groups=64, - group_width=4, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=True, - variant='a', - feature_maps=[5], - weight_prefix_name=''): - super(ResNeXtC5, self).__init__(depth, groups, group_width, freeze_at, - norm_type, freeze_norm, norm_decay, - variant, feature_maps) - self.severed_head = True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/senet.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/senet.py deleted file mode 100644 index 09c69ff199f03837b979127664d7e752db7e587a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/senet.py +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import math - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr - -from ppdet.core.workspace import register, serializable -from .resnext import ResNeXt - -__all__ = ['SENet', 'SENetC5'] - - -@register -@serializable -class SENet(ResNeXt): - """ - Squeeze-and-Excitation Networks, see https://arxiv.org/abs/1709.01507 - Args: - depth (int): SENet depth, should be 50, 101, 152 - groups (int): group convolution cardinality - group_width (int): width of each group convolution - freeze_at (int): freeze the backbone at which stage - norm_type (str): normalization type, 'bn', 'sync_bn' or 'affine_channel' - freeze_norm (bool): freeze normalization layers - norm_decay (float): weight decay for normalization layer weights - variant (str): ResNet variant, supports 'a', 'b', 'c', 'd' currently - feature_maps (list): index of the stages whose feature maps are returned - dcn_v2_stages (list): index of stages who select deformable conv v2 - """ - - def __init__(self, - depth=50, - groups=64, - group_width=4, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=0., - variant='d', - feature_maps=[2, 3, 4, 5], - dcn_v2_stages=[], - std_senet=False, - weight_prefix_name=''): - super(SENet, self).__init__(depth, groups, group_width, freeze_at, - norm_type, freeze_norm, norm_decay, variant, - feature_maps) - if depth < 152: - self.stage_filters = [128, 256, 512, 1024] - else: - self.stage_filters = [256, 512, 1024, 2048] - self.reduction_ratio = 16 - self.std_senet = std_senet - self._c1_out_chan_num = 128 - self._model_type = 'SEResNeXt' - self.dcn_v2_stages = dcn_v2_stages - - def _squeeze_excitation(self, input, num_channels, name=None): - pool = fluid.layers.pool2d( - input=input, - pool_size=0, - pool_type='avg', - global_pooling=True, - use_cudnn=False) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - squeeze = fluid.layers.fc( - input=pool, - size=int(num_channels / self.reduction_ratio), - act='relu', - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv), - name=name + '_sqz_weights'), - bias_attr=ParamAttr(name=name + '_sqz_offset')) - stdv = 1.0 / math.sqrt(squeeze.shape[1] * 1.0) - excitation = fluid.layers.fc( - input=squeeze, - size=num_channels, - act='sigmoid', - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv), - name=name + '_exc_weights'), - bias_attr=ParamAttr(name=name + '_exc_offset')) - scale = fluid.layers.elementwise_mul(x=input, y=excitation, axis=0) - return scale - - -@register -@serializable -class SENetC5(SENet): - __doc__ = SENet.__doc__ - - def __init__(self, - depth=50, - groups=64, - group_width=4, - freeze_at=2, - norm_type='affine_channel', - freeze_norm=True, - norm_decay=0., - variant='d', - feature_maps=[5], - weight_prefix_name=''): - super(SENetC5, self).__init__(depth, groups, group_width, freeze_at, - norm_type, freeze_norm, norm_decay, - variant, feature_maps) - self.severed_head = True diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/vgg.py b/PaddleCV/PaddleDetection/ppdet/modeling/backbones/vgg.py deleted file mode 100644 index 28bd29272773dd670e0ef7223814a25784c54bf1..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/backbones/vgg.py +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr - -from ppdet.core.workspace import register - -__all__ = ['VGG'] - - -@register -class VGG(object): - """ - VGG, see https://arxiv.org/abs/1409.1556 - - Args: - depth (int): the VGG net depth (16 or 19) - normalizations (list): params list of init scale in l2 norm, skip init - scale if param is -1. - with_extra_blocks (bool): whether or not extra blocks should be added - extra_block_filters (list): in each extra block, params: - [in_channel, out_channel, padding_size, stride_size, filter_size] - """ - - def __init__(self, - depth=16, - with_extra_blocks=False, - normalizations=[20., -1, -1, -1, -1, -1], - extra_block_filters=[[256, 512, 1, 2, 3], [128, 256, 1, 2, 3], - [128, 256, 0, 1, 3], [128, 256, 0, 1, 3]]): - assert depth in [16, 19], \ - "depth {} not in [16, 19]" - - self.depth = depth - self.depth_cfg = { - 16: [2, 2, 3, 3, 3], - 19: [2, 2, 4, 4, 4] - } - self.with_extra_blocks = with_extra_blocks - self.normalizations = normalizations - self.extra_block_filters = extra_block_filters - - def __call__(self, input): - layers = [] - layers += self._vgg_block(input) - - if not self.with_extra_blocks: - return layers[-1] - - layers += self._add_extras_block(layers[-1]) - norm_cfg = self.normalizations - for k, v in enumerate(layers): - if not norm_cfg[k] == -1: - layers[k] = self._l2_norm_scale(v, init_scale=norm_cfg[k]) - - return layers - - def _vgg_block(self, input): - nums = self.depth_cfg[self.depth] - vgg_base = [64, 128, 256, 512, 512] - conv = input - layers = [] - for k, v in enumerate(vgg_base): - conv = self._conv_block(conv, v, nums[k], name="conv{}_".format(k + 1)) - layers.append(conv) - if k == 4: - conv = self._pooling_block(conv, 3, 1, pool_padding=1) - else: - conv = self._pooling_block(conv, 2, 2) - - fc6 = self._conv_layer(conv, 1024, 3, 1, 6, dilation=6, name="fc6") - fc7 = self._conv_layer(fc6, 1024, 1, 1, 0, name="fc7") - - return [layers[3], fc7] - - def _add_extras_block(self, input): - cfg = self.extra_block_filters - conv = input - layers = [] - for k, v in enumerate(cfg): - assert len(v) == 5, "extra_block_filters size not fix" - conv = self._extra_block(conv, v[0], v[1], - v[2], v[3], v[4], name="conv{}_".format(6 + k)) - layers.append(conv) - - return layers - - def _conv_block(self, input, num_filter, groups, name=None): - conv = input - for i in range(groups): - conv = self._conv_layer( - input=conv, - num_filters=num_filter, - filter_size=3, - stride=1, - padding=1, - act='relu', - name=name + str(i + 1)) - return conv - - def _extra_block(self, - input, - num_filters1, - num_filters2, - padding_size, - stride_size, - filter_size, - name=None): - # 1x1 conv - conv_1 = self._conv_layer( - input=input, - num_filters=int(num_filters1), - filter_size=1, - stride=1, - act='relu', - padding=0, - name=name + "1") - - # 3x3 conv - conv_2 = self._conv_layer( - input=conv_1, - num_filters=int(num_filters2), - filter_size=filter_size, - stride=stride_size, - act='relu', - padding=padding_size, - name=name + "2") - return conv_2 - - def _conv_layer(self, - input, - num_filters, - filter_size, - stride, - padding, - dilation=1, - act='relu', - use_cudnn=True, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - dilation=dilation, - act=act, - use_cudnn=use_cudnn, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=ParamAttr(name=name + "_biases"), - name=name + '.conv2d.output.1') - return conv - - def _pooling_block(self, - conv, - pool_size, - pool_stride, - pool_padding=0, - ceil_mode=True): - pool = fluid.layers.pool2d( - input=conv, - pool_size=pool_size, - pool_type='max', - pool_stride=pool_stride, - pool_padding=pool_padding, - ceil_mode=ceil_mode) - return pool - - def _l2_norm_scale(self, input, init_scale=1.0, channel_shared=False): - from paddle.fluid.layer_helper import LayerHelper - from paddle.fluid.initializer import Constant - helper = LayerHelper("Scale") - l2_norm = fluid.layers.l2_normalize( - input, axis=1) # l2 norm along channel - shape = [1] if channel_shared else [input.shape[1]] - scale = helper.create_parameter( - attr=helper.param_attr, - shape=shape, - dtype=input.dtype, - default_initializer=Constant(init_scale)) - out = fluid.layers.elementwise_mul( - x=l2_norm, y=scale, axis=-1 if channel_shared else 1, - name="conv4_3_norm_scale") - return out diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py b/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py deleted file mode 100644 index 6b407cfbd82d1588cbc020b3e8bf5e7d5f4b930c..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import print_function -from __future__ import division - -from collections import OrderedDict -from ppdet.data.transform.operators import * - -from paddle import fluid - -__all__ = ['create_feed'] - -# yapf: disable -feed_var_def = [ - {'name': 'im_info', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_id', 'shape': [1], 'dtype': 'int32', 'lod_level': 0}, - {'name': 'gt_box', 'shape': [4], 'dtype': 'float32', 'lod_level': 1}, - {'name': 'gt_label', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'is_crowd', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'gt_mask', 'shape': [2], 'dtype': 'float32', 'lod_level': 3}, - {'name': 'is_difficult', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'gt_score', 'shape': [1], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_shape', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_size', 'shape': [2], 'dtype': 'int32', 'lod_level': 0}, -] -# yapf: enable - - -def create_feed(feed, use_pyreader=True, sub_prog_feed=False): - image_shape = feed.image_shape - feed_var_map = {var['name']: var for var in feed_var_def} - feed_var_map['image'] = { - 'name': 'image', - 'shape': image_shape, - 'dtype': 'float32', - 'lod_level': 0 - } - - # tensor padding with 0 is used instead of LoD tensor when - # num_max_boxes is set - if getattr(feed, 'num_max_boxes', None) is not None: - feed_var_map['gt_label']['shape'] = [feed.num_max_boxes] - feed_var_map['gt_score']['shape'] = [feed.num_max_boxes] - feed_var_map['gt_box']['shape'] = [feed.num_max_boxes, 4] - feed_var_map['is_difficult']['shape'] = [feed.num_max_boxes] - feed_var_map['gt_label']['lod_level'] = 0 - feed_var_map['gt_score']['lod_level'] = 0 - feed_var_map['gt_box']['lod_level'] = 0 - feed_var_map['is_difficult']['lod_level'] = 0 - - base_name_list = ['image'] - num_scale = getattr(feed, 'num_scale', 1) - sample_transform = feed.sample_transforms - multiscale_test = False - aug_flip = False - for t in sample_transform: - if isinstance(t, MultiscaleTestResize): - multiscale_test = True - aug_flip = t.use_flip - assert (len(t.target_size)+1)*(aug_flip+1) == num_scale, \ - "num_scale: {} is not equal to the actual number of scale: {}."\ - .format(num_scale, (len(t.target_size)+1)*(aug_flip+1)) - break - - if aug_flip: - num_scale //= 2 - base_name_list.insert(0, 'flip_image') - feed_var_map['flip_image'] = { - 'name': 'flip_image', - 'shape': image_shape, - 'dtype': 'float32', - 'lod_level': 0 - } - - image_name_list = [] - if multiscale_test: - for base_name in base_name_list: - for i in range(0, num_scale): - name = base_name if i == 0 else base_name + '_scale_' + str(i - - 1) - feed_var_map[name] = { - 'name': name, - 'shape': image_shape, - 'dtype': 'float32', - 'lod_level': 0 - } - image_name_list.append(name) - feed_var_map['im_info']['shape'] = [feed.num_scale * 3] - feed.fields = image_name_list + feed.fields[1:] - if sub_prog_feed: - box_names = ['bbox', 'bbox_flip'] - for box_name in box_names: - sub_prog_feed = { - 'name': box_name, - 'shape': [6], - 'dtype': 'float32', - 'lod_level': 1 - } - - feed.fields = feed.fields + [box_name] - feed_var_map[box_name] = sub_prog_feed - - feed_vars = OrderedDict([(key, fluid.layers.data( - name=feed_var_map[key]['name'], - shape=feed_var_map[key]['shape'], - dtype=feed_var_map[key]['dtype'], - lod_level=feed_var_map[key]['lod_level'])) for key in feed.fields]) - - pyreader = None - if use_pyreader: - pyreader = fluid.io.PyReader( - feed_list=list(feed_vars.values()), - capacity=64, - use_double_buffer=True, - iterable=False) - return pyreader, feed_vars diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/ops.py b/PaddleCV/PaddleDetection/ppdet/modeling/ops.py deleted file mode 100644 index 1312f86b49077536043ceb96cbca0f6a1c9b9ef3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/ops.py +++ /dev/null @@ -1,349 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from numbers import Integral - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.regularizer import L2Decay -from ppdet.core.workspace import register, serializable - -__all__ = [ - 'AnchorGenerator', 'RPNTargetAssign', 'GenerateProposals', 'MultiClassNMS', - 'BBoxAssigner', 'MaskAssigner', 'RoIAlign', 'RoIPool', 'MultiBoxHead', - 'SSDOutputDecoder', 'RetinaTargetAssign', 'RetinaOutputDecoder', 'ConvNorm' -] - - -def ConvNorm(input, - num_filters, - filter_size, - stride=1, - groups=1, - norm_decay=0., - norm_type='affine_channel', - norm_groups=32, - dilation=1, - lr_scale=1, - freeze_norm=False, - act=None, - norm_name=None, - initializer=None, - name=None): - fan = num_filters - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=((filter_size - 1) // 2) * dilation, - dilation=dilation, - groups=groups, - act=None, - param_attr=ParamAttr( - name=name + "_weights", - initializer=initializer, - learning_rate=lr_scale), - bias_attr=False, - name=name + '.conv2d.output.1') - - norm_lr = 0. if freeze_norm else 1. - pattr = ParamAttr( - name=norm_name + '_scale', - learning_rate=norm_lr * lr_scale, - regularizer=L2Decay(norm_decay)) - battr = ParamAttr( - name=norm_name + '_offset', - learning_rate=norm_lr * lr_scale, - regularizer=L2Decay(norm_decay)) - - if norm_type in ['bn', 'sync_bn']: - global_stats = True if freeze_norm else False - out = fluid.layers.batch_norm( - input=conv, - act=act, - name=norm_name + '.output.1', - param_attr=pattr, - bias_attr=battr, - moving_mean_name=norm_name + '_mean', - moving_variance_name=norm_name + '_variance', - use_global_stats=global_stats) - scale = fluid.framework._get_var(pattr.name) - bias = fluid.framework._get_var(battr.name) - elif norm_type == 'gn': - out = fluid.layers.group_norm( - input=conv, - act=act, - name=norm_name + '.output.1', - groups=norm_groups, - param_attr=pattr, - bias_attr=battr) - scale = fluid.framework._get_var(pattr.name) - bias = fluid.framework._get_var(battr.name) - elif norm_type == 'affine_channel': - scale = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=pattr, - default_initializer=fluid.initializer.Constant(1.)) - bias = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=battr, - default_initializer=fluid.initializer.Constant(0.)) - out = fluid.layers.affine_channel( - x=conv, scale=scale, bias=bias, act=act) - if freeze_norm: - scale.stop_gradient = True - bias.stop_gradient = True - return out - - -@register -@serializable -class AnchorGenerator(object): - __op__ = fluid.layers.anchor_generator - __append_doc__ = True - - def __init__(self, - stride=[16.0, 16.0], - anchor_sizes=[32, 64, 128, 256, 512], - aspect_ratios=[0.5, 1., 2.], - variance=[1., 1., 1., 1.]): - super(AnchorGenerator, self).__init__() - self.anchor_sizes = anchor_sizes - self.aspect_ratios = aspect_ratios - self.variance = variance - self.stride = stride - - -@register -@serializable -class RPNTargetAssign(object): - __op__ = fluid.layers.rpn_target_assign - __append_doc__ = True - - def __init__(self, - rpn_batch_size_per_im=256, - rpn_straddle_thresh=0., - rpn_fg_fraction=0.5, - rpn_positive_overlap=0.7, - rpn_negative_overlap=0.3, - use_random=True): - super(RPNTargetAssign, self).__init__() - self.rpn_batch_size_per_im = rpn_batch_size_per_im - self.rpn_straddle_thresh = rpn_straddle_thresh - self.rpn_fg_fraction = rpn_fg_fraction - self.rpn_positive_overlap = rpn_positive_overlap - self.rpn_negative_overlap = rpn_negative_overlap - self.use_random = use_random - - -@register -@serializable -class GenerateProposals(object): - __op__ = fluid.layers.generate_proposals - __append_doc__ = True - - def __init__(self, - pre_nms_top_n=6000, - post_nms_top_n=1000, - nms_thresh=.5, - min_size=.1, - eta=1.): - super(GenerateProposals, self).__init__() - self.pre_nms_top_n = pre_nms_top_n - self.post_nms_top_n = post_nms_top_n - self.nms_thresh = nms_thresh - self.min_size = min_size - self.eta = eta - - -@register -class MaskAssigner(object): - __op__ = fluid.layers.generate_mask_labels - __append_doc__ = True - __shared__ = ['num_classes'] - - def __init__(self, num_classes=81, resolution=14): - super(MaskAssigner, self).__init__() - self.num_classes = num_classes - self.resolution = resolution - - -@register -@serializable -class MultiClassNMS(object): - __op__ = fluid.layers.multiclass_nms - __append_doc__ = True - - def __init__(self, - score_threshold=.05, - nms_top_k=-1, - keep_top_k=100, - nms_threshold=.5, - normalized=False, - nms_eta=1.0, - background_label=0): - super(MultiClassNMS, self).__init__() - self.score_threshold = score_threshold - self.nms_top_k = nms_top_k - self.keep_top_k = keep_top_k - self.nms_threshold = nms_threshold - self.normalized = normalized - self.nms_eta = nms_eta - self.background_label = background_label - - -@register -class BBoxAssigner(object): - __op__ = fluid.layers.generate_proposal_labels - __append_doc__ = True - __shared__ = ['num_classes'] - - def __init__(self, - batch_size_per_im=512, - fg_fraction=.25, - fg_thresh=.5, - bg_thresh_hi=.5, - bg_thresh_lo=0., - bbox_reg_weights=[0.1, 0.1, 0.2, 0.2], - num_classes=81, - shuffle_before_sample=True): - super(BBoxAssigner, self).__init__() - self.batch_size_per_im = batch_size_per_im - self.fg_fraction = fg_fraction - self.fg_thresh = fg_thresh - self.bg_thresh_hi = bg_thresh_hi - self.bg_thresh_lo = bg_thresh_lo - self.bbox_reg_weights = bbox_reg_weights - self.class_nums = num_classes - self.use_random = shuffle_before_sample - - -@register -class RoIAlign(object): - __op__ = fluid.layers.roi_align - __append_doc__ = True - - def __init__(self, resolution=7, spatial_scale=1. / 16, sampling_ratio=0): - super(RoIAlign, self).__init__() - if isinstance(resolution, Integral): - resolution = [resolution, resolution] - self.pooled_height = resolution[0] - self.pooled_width = resolution[1] - self.spatial_scale = spatial_scale - self.sampling_ratio = sampling_ratio - - -@register -class RoIPool(object): - __op__ = fluid.layers.roi_pool - __append_doc__ = True - - def __init__(self, resolution=7, spatial_scale=1. / 16): - super(RoIPool, self).__init__() - if isinstance(resolution, Integral): - resolution = [resolution, resolution] - self.pooled_height = resolution[0] - self.pooled_width = resolution[1] - self.spatial_scale = spatial_scale - - -@register -class MultiBoxHead(object): - __op__ = fluid.layers.multi_box_head - __append_doc__ = True - - def __init__(self, - min_ratio=20, - max_ratio=90, - base_size=300, - min_sizes=[60.0, 105.0, 150.0, 195.0, 240.0, 285.0], - max_sizes=[[], 150.0, 195.0, 240.0, 285.0, 300.0], - aspect_ratios=[[2.], [2., 3.], [2., 3.], [2., 3.], [2., 3.], - [2., 3.]], - steps=None, - offset=0.5, - flip=True, - min_max_aspect_ratios_order=False, - kernel_size=1, - pad=0): - super(MultiBoxHead, self).__init__() - self.min_ratio = min_ratio - self.max_ratio = max_ratio - self.base_size = base_size - self.min_sizes = min_sizes - self.max_sizes = max_sizes - self.aspect_ratios = aspect_ratios - self.steps = steps - self.offset = offset - self.flip = flip - self.min_max_aspect_ratios_order = min_max_aspect_ratios_order - self.kernel_size = kernel_size - self.pad = pad - - -@register -@serializable -class SSDOutputDecoder(object): - __op__ = fluid.layers.detection_output - __append_doc__ = True - - def __init__(self, - nms_threshold=0.45, - nms_top_k=400, - keep_top_k=200, - score_threshold=0.01, - nms_eta=1.0, - background_label=0): - super(SSDOutputDecoder, self).__init__() - self.nms_threshold = nms_threshold - self.background_label = background_label - self.nms_top_k = nms_top_k - self.keep_top_k = keep_top_k - self.score_threshold = score_threshold - self.nms_eta = nms_eta - - -@register -@serializable -class RetinaTargetAssign(object): - __op__ = fluid.layers.retinanet_target_assign - __append_doc__ = True - - def __init__(self, positive_overlap=0.5, negative_overlap=0.4): - super(RetinaTargetAssign, self).__init__() - self.positive_overlap = positive_overlap - self.negative_overlap = negative_overlap - - -@register -@serializable -class RetinaOutputDecoder(object): - __op__ = fluid.layers.retinanet_detection_output - __append_doc__ = True - - def __init__(self, - score_thresh=0.05, - nms_thresh=0.3, - pre_nms_top_n=1000, - detections_per_im=100, - nms_eta=1.0): - super(RetinaOutputDecoder, self).__init__() - self.score_threshold = score_thresh - self.nms_threshold = nms_thresh - self.nms_top_k = pre_nms_top_n - self.keep_top_k = detections_per_im - self.nms_eta = nms_eta diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/__init__.py deleted file mode 100644 index 15d2525db8c8dd2f72c09641ced94a0c0864b2a0..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from . import roi_extractor -from .roi_extractor import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/roi_extractor.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/roi_extractor.py deleted file mode 100644 index 1caf3936f584bc0eb116d32a7e38559a917afe85..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_extractors/roi_extractor.py +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle.fluid as fluid - -from ppdet.core.workspace import register -from ppdet.modeling.ops import RoIAlign, RoIPool - -__all__ = ['RoIPool', 'RoIAlign', 'FPNRoIAlign'] - - -@register -class FPNRoIAlign(object): - """ - RoI align pooling for FPN feature maps - Args: - sampling_ratio (int): number of sampling points - min_level (int): lowest level of FPN layer - max_level (int): highest level of FPN layer - canconical_level (int): the canconical FPN feature map level - canonical_size (int): the canconical FPN feature map size - box_resolution (int): box resolution - mask_resolution (int): mask roi resolution - """ - - def __init__(self, - sampling_ratio=0, - min_level=2, - max_level=5, - canconical_level=4, - canonical_size=224, - box_resolution=7, - mask_resolution=14): - super(FPNRoIAlign, self).__init__() - self.sampling_ratio = sampling_ratio - self.min_level = min_level - self.max_level = max_level - self.canconical_level = canconical_level - self.canonical_size = canonical_size - self.box_resolution = box_resolution - self.mask_resolution = mask_resolution - - def __call__(self, head_inputs, rois, spatial_scale, is_mask=False): - """ - Adopt RoI align onto several level of feature maps to get RoI features. - Distribute RoIs to different levels by area and get a list of RoI - features by distributed RoIs and their corresponding feature maps. - - Returns: - roi_feat(Variable): RoI features with shape of [M, C, R, R], - where M is the number of RoIs and R is RoI resolution - - """ - k_min = self.min_level - k_max = self.max_level - num_roi_lvls = k_max - k_min + 1 - name_list = list(head_inputs.keys()) - input_name_list = name_list[-num_roi_lvls:] - spatial_scale = spatial_scale[-num_roi_lvls:] - rois_dist, restore_index = fluid.layers.distribute_fpn_proposals( - rois, k_min, k_max, self.canconical_level, self.canonical_size) - # rois_dist is in ascend order - roi_out_list = [] - resolution = is_mask and self.mask_resolution or self.box_resolution - for lvl in range(num_roi_lvls): - name_index = num_roi_lvls - lvl - 1 - rois_input = rois_dist[lvl] - head_input = head_inputs[input_name_list[name_index]] - sc = spatial_scale[name_index] - roi_out = fluid.layers.roi_align( - input=head_input, - rois=rois_input, - pooled_height=resolution, - pooled_width=resolution, - spatial_scale=sc, - sampling_ratio=self.sampling_ratio) - roi_out_list.append(roi_out) - roi_feat_shuffle = fluid.layers.concat(roi_out_list) - roi_feat_ = fluid.layers.gather(roi_feat_shuffle, restore_index) - roi_feat = fluid.layers.lod_reset(roi_feat_, rois) - - return roi_feat diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/__init__.py deleted file mode 100644 index 345a0eb3e30d69af15b8a5f0b4766e8693462e5d..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -from . import bbox_head -from . import mask_head -from . import cascade_head - -from .bbox_head import * -from .mask_head import * -from .cascade_head import * diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/bbox_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/bbox_head.py deleted file mode 100644 index 314aeb6087e05aa1c33d26b6b838075523ff2b10..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/bbox_head.py +++ /dev/null @@ -1,319 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Normal, Xavier -from paddle.fluid.regularizer import L2Decay -from paddle.fluid.initializer import MSRA - -from ppdet.modeling.ops import MultiClassNMS -from ppdet.modeling.ops import ConvNorm -from ppdet.core.workspace import register, serializable -from ppdet.experimental import mixed_precision_global_state - -__all__ = ['BBoxHead', 'TwoFCHead', 'XConvNormHead'] - - -@register -@serializable -class BoxCoder(object): - __op__ = fluid.layers.box_coder - __append_doc__ = True - - def __init__(self, - prior_box_var=[0.1, 0.1, 0.2, 0.2], - code_type='decode_center_size', - box_normalized=False, - axis=1): - super(BoxCoder, self).__init__() - self.prior_box_var = prior_box_var - self.code_type = code_type - self.box_normalized = box_normalized - self.axis = axis - - -@register -class XConvNormHead(object): - """ - RCNN head with serveral convolution layers - - Args: - conv_num (int): num of convolution layers for the rcnn head - conv_dim (int): num of filters for the conv layers - mlp_dim (int): num of filters for the fc layers - """ - __shared__ = ['norm_type', 'freeze_norm'] - - def __init__(self, - num_conv=4, - conv_dim=256, - mlp_dim=1024, - norm_type=None, - freeze_norm=False): - super(XConvNormHead, self).__init__() - self.conv_dim = conv_dim - self.mlp_dim = mlp_dim - self.num_conv = num_conv - self.norm_type = norm_type - self.freeze_norm = freeze_norm - - def __call__(self, roi_feat): - conv = roi_feat - fan = self.conv_dim * 3 * 3 - initializer = MSRA(uniform=False, fan_in=fan) - for i in range(self.num_conv): - name = 'bbox_head_conv' + str(i) - conv = ConvNorm( - conv, - self.conv_dim, - 3, - act='relu', - initializer=initializer, - norm_type=self.norm_type, - freeze_norm=self.freeze_norm, - name=name, - norm_name=name) - fan = conv.shape[1] * conv.shape[2] * conv.shape[3] - head_heat = fluid.layers.fc(input=conv, - size=self.mlp_dim, - act='relu', - name='fc6' + name, - param_attr=ParamAttr( - name='fc6%s_w' % name, - initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name='fc6%s_b' % name, - learning_rate=2, - regularizer=L2Decay(0.))) - return head_heat - - -@register -class TwoFCHead(object): - """ - RCNN head with two Fully Connected layers - - Args: - mlp_dim (int): num of filters for the fc layers - """ - - def __init__(self, mlp_dim=1024): - super(TwoFCHead, self).__init__() - self.mlp_dim = mlp_dim - - def __call__(self, roi_feat): - fan = roi_feat.shape[1] * roi_feat.shape[2] * roi_feat.shape[3] - - mixed_precision_enabled = mixed_precision_global_state() is not None - - if mixed_precision_enabled: - roi_feat = fluid.layers.cast(roi_feat, 'float16') - - fc6 = fluid.layers.fc(input=roi_feat, - size=self.mlp_dim, - act='relu', - name='fc6', - param_attr=ParamAttr( - name='fc6_w', - initializer=Xavier(fan_out=fan)), - bias_attr=ParamAttr( - name='fc6_b', - learning_rate=2., - regularizer=L2Decay(0.))) - head_feat = fluid.layers.fc(input=fc6, - size=self.mlp_dim, - act='relu', - name='fc7', - param_attr=ParamAttr( - name='fc7_w', initializer=Xavier()), - bias_attr=ParamAttr( - name='fc7_b', - learning_rate=2., - regularizer=L2Decay(0.))) - - if mixed_precision_enabled: - head_feat = fluid.layers.cast(head_feat, 'float32') - - return head_feat - - -@register -class BBoxHead(object): - """ - RCNN bbox head - - Args: - head (object): the head module instance, e.g., `ResNetC5`, `TwoFCHead` - box_coder (object): `BoxCoder` instance - nms (object): `MultiClassNMS` instance - num_classes: number of output classes - """ - __inject__ = ['head', 'box_coder', 'nms'] - __shared__ = ['num_classes'] - - def __init__(self, - head, - box_coder=BoxCoder().__dict__, - nms=MultiClassNMS().__dict__, - num_classes=81): - super(BBoxHead, self).__init__() - self.head = head - self.num_classes = num_classes - self.box_coder = box_coder - self.nms = nms - if isinstance(box_coder, dict): - self.box_coder = BoxCoder(**box_coder) - if isinstance(nms, dict): - self.nms = MultiClassNMS(**nms) - self.head_feat = None - - def get_head_feat(self, input=None): - """ - Get the bbox head feature map. - """ - - if input is not None: - feat = self.head(input) - if isinstance(feat, OrderedDict): - feat = list(feat.values())[0] - self.head_feat = feat - return self.head_feat - - def _get_output(self, roi_feat): - """ - Get bbox head output. - - Args: - roi_feat (Variable): RoI feature from RoIExtractor. - - Returns: - cls_score(Variable): Output of rpn head with shape of - [N, num_anchors, H, W]. - bbox_pred(Variable): Output of rpn head with shape of - [N, num_anchors * 4, H, W]. - """ - head_feat = self.get_head_feat(roi_feat) - # when ResNetC5 output a single feature map - if not isinstance(self.head, TwoFCHead) and not isinstance( - self.head, XConvNormHead): - head_feat = fluid.layers.pool2d( - head_feat, pool_type='avg', global_pooling=True) - cls_score = fluid.layers.fc(input=head_feat, - size=self.num_classes, - act=None, - name='cls_score', - param_attr=ParamAttr( - name='cls_score_w', - initializer=Normal( - loc=0.0, scale=0.01)), - bias_attr=ParamAttr( - name='cls_score_b', - learning_rate=2., - regularizer=L2Decay(0.))) - bbox_pred = fluid.layers.fc(input=head_feat, - size=4 * self.num_classes, - act=None, - name='bbox_pred', - param_attr=ParamAttr( - name='bbox_pred_w', - initializer=Normal( - loc=0.0, scale=0.001)), - bias_attr=ParamAttr( - name='bbox_pred_b', - learning_rate=2., - regularizer=L2Decay(0.))) - return cls_score, bbox_pred - - def get_loss(self, roi_feat, labels_int32, bbox_targets, - bbox_inside_weights, bbox_outside_weights): - """ - Get bbox_head loss. - - Args: - roi_feat (Variable): RoI feature from RoIExtractor. - labels_int32(Variable): Class label of a RoI with shape [P, 1]. - P is the number of RoI. - bbox_targets(Variable): Box label of a RoI with shape - [P, 4 * class_nums]. - bbox_inside_weights(Variable): Indicates whether a box should - contribute to loss. Same shape as bbox_targets. - bbox_outside_weights(Variable): Indicates whether a box should - contribute to loss. Same shape as bbox_targets. - - Return: - Type: Dict - loss_cls(Variable): bbox_head loss. - loss_bbox(Variable): bbox_head loss. - """ - - cls_score, bbox_pred = self._get_output(roi_feat) - - labels_int64 = fluid.layers.cast(x=labels_int32, dtype='int64') - labels_int64.stop_gradient = True - loss_cls = fluid.layers.softmax_with_cross_entropy( - logits=cls_score, label=labels_int64, numeric_stable_mode=True) - loss_cls = fluid.layers.reduce_mean(loss_cls) - loss_bbox = fluid.layers.smooth_l1( - x=bbox_pred, - y=bbox_targets, - inside_weight=bbox_inside_weights, - outside_weight=bbox_outside_weights, - sigma=1.0) - loss_bbox = fluid.layers.reduce_mean(loss_bbox) - return {'loss_cls': loss_cls, 'loss_bbox': loss_bbox} - - def get_prediction(self, - roi_feat, - rois, - im_info, - im_shape, - return_box_score=False): - """ - Get prediction bounding box in test stage. - - Args: - roi_feat (Variable): RoI feature from RoIExtractor. - rois (Variable): Output of generate_proposals in rpn head. - im_info (Variable): A 2-D LoDTensor with shape [B, 3]. B is the - number of input images, each element consists of im_height, - im_width, im_scale. - im_shape (Variable): Actual shape of original image with shape - [B, 3]. B is the number of images, each element consists of - original_height, original_width, 1 - - Returns: - pred_result(Variable): Prediction result with shape [N, 6]. Each - row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]. - N is the total number of prediction. - """ - cls_score, bbox_pred = self._get_output(roi_feat) - - im_scale = fluid.layers.slice(im_info, [1], starts=[2], ends=[3]) - im_scale = fluid.layers.sequence_expand(im_scale, rois) - boxes = rois / im_scale - cls_prob = fluid.layers.softmax(cls_score, use_cudnn=False) - bbox_pred = fluid.layers.reshape(bbox_pred, (-1, self.num_classes, 4)) - decoded_box = self.box_coder(prior_box=boxes, target_box=bbox_pred) - cliped_box = fluid.layers.box_clip(input=decoded_box, im_info=im_shape) - if return_box_score: - return {'bbox': cliped_box, 'score': cls_prob} - pred_result = self.nms(bboxes=cliped_box, scores=cls_prob) - return {'bbox': pred_result} diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/cascade_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/cascade_head.py deleted file mode 100644 index d36ff4c7541d8825e9491e696f787e10ef95b97e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/cascade_head.py +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Normal, Xavier -from paddle.fluid.regularizer import L2Decay -from paddle.fluid.initializer import MSRA - -from ppdet.modeling.ops import MultiClassNMS -from ppdet.modeling.ops import ConvNorm -from ppdet.core.workspace import register - -__all__ = ['CascadeBBoxHead'] - - -@register -class CascadeBBoxHead(object): - """ - Cascade RCNN bbox head - - Args: - head (object): the head module instance - nms (object): `MultiClassNMS` instance - num_classes: number of output classes - """ - __inject__ = ['head', 'nms'] - __shared__ = ['num_classes'] - - def __init__(self, head, nms=MultiClassNMS().__dict__, num_classes=81): - super(CascadeBBoxHead, self).__init__() - self.head = head - self.nms = nms - self.num_classes = num_classes - if isinstance(nms, dict): - self.nms = MultiClassNMS(**nms) - - def get_output(self, - roi_feat, - cls_agnostic_bbox_reg=2, - wb_scalar=1.0, - name=''): - """ - Get bbox head output. - - Args: - roi_feat (Variable): RoI feature from RoIExtractor. - cls_agnostic_bbox_reg(Int): BBox regressor are class agnostic. - wb_scalar(Float): Weights and Bias's learning rate. - name(String): Layer's name - - Returns: - cls_score(Variable): cls score. - bbox_pred(Variable): bbox regression. - """ - head_feat = self.head(roi_feat, wb_scalar, name) - cls_score = fluid.layers.fc(input=head_feat, - size=self.num_classes, - act=None, - name='cls_score' + name, - param_attr=ParamAttr( - name='cls_score%s_w' % name, - initializer=Normal( - loc=0.0, scale=0.01), - learning_rate=wb_scalar), - bias_attr=ParamAttr( - name='cls_score%s_b' % name, - learning_rate=wb_scalar * 2, - regularizer=L2Decay(0.))) - bbox_pred = fluid.layers.fc(input=head_feat, - size=4 * cls_agnostic_bbox_reg, - act=None, - name='bbox_pred' + name, - param_attr=ParamAttr( - name='bbox_pred%s_w' % name, - initializer=Normal( - loc=0.0, scale=0.001), - learning_rate=wb_scalar), - bias_attr=ParamAttr( - name='bbox_pred%s_b' % name, - learning_rate=wb_scalar * 2, - regularizer=L2Decay(0.))) - return cls_score, bbox_pred - - def get_loss(self, rcnn_pred_list, rcnn_target_list, rcnn_loss_weight_list): - """ - Get bbox_head loss. - - Args: - rcnn_pred_list(List): Cascade RCNN's head's output including - bbox_pred and cls_score - rcnn_target_list(List): Cascade rcnn's bbox and label target - rcnn_loss_weight_list(List): The weight of location and class loss - - Return: - loss_cls(Variable): bbox_head loss. - loss_bbox(Variable): bbox_head loss. - """ - loss_dict = {} - for i, (rcnn_pred, rcnn_target - ) in enumerate(zip(rcnn_pred_list, rcnn_target_list)): - labels_int64 = fluid.layers.cast(x=rcnn_target[1], dtype='int64') - labels_int64.stop_gradient = True - - loss_cls = fluid.layers.softmax_with_cross_entropy( - logits=rcnn_pred[0], - label=labels_int64, - numeric_stable_mode=True, ) - loss_cls = fluid.layers.reduce_mean( - loss_cls, name='loss_cls_' + str(i)) * rcnn_loss_weight_list[i] - - loss_bbox = fluid.layers.smooth_l1( - x=rcnn_pred[1], - y=rcnn_target[2], - inside_weight=rcnn_target[3], - outside_weight=rcnn_target[4], - sigma=1.0, # detectron use delta = 1./sigma**2 - ) - loss_bbox = fluid.layers.reduce_mean( - loss_bbox, - name='loss_bbox_' + str(i)) * rcnn_loss_weight_list[i] - - loss_dict['loss_cls_%d' % i] = loss_cls - loss_dict['loss_loc_%d' % i] = loss_bbox - - return loss_dict - - def get_prediction(self, - im_info, - im_shape, - roi_feat_list, - rcnn_pred_list, - proposal_list, - cascade_bbox_reg_weights, - cls_agnostic_bbox_reg=2, - return_box_score=False): - """ - Get prediction bounding box in test stage. - : - Args: - im_info (Variable): A 2-D LoDTensor with shape [B, 3]. B is the - number of input images, each element consists - of im_height, im_width, im_scale. - im_shape (Variable): Actual shape of original image with shape - [B, 3]. B is the number of images, each element consists of - original_height, original_width, 1 - rois_feat_list (List): RoI feature from RoIExtractor. - rcnn_pred_list (Variable): Cascade rcnn's head's output - including bbox_pred and cls_score - proposal_list (List): RPN proposal boxes. - cascade_bbox_reg_weights (List): BBox decode var. - cls_agnostic_bbox_reg(Int): BBox regressor are class agnostic - - Returns: - pred_result(Variable): Prediction result with shape [N, 6]. Each - row has 6 values: [label, confidence, xmin, ymin, xmax, ymax]. - N is the total number of prediction. - """ - self.im_scale = fluid.layers.slice(im_info, [1], starts=[2], ends=[3]) - boxes_cls_prob_l = [] - - rcnn_pred = rcnn_pred_list[-1] # stage 3 - repreat_num = 1 - repreat_num = 3 - bbox_reg_w = cascade_bbox_reg_weights[-1] - for i in range(repreat_num): - # cls score - if i < 2: - cls_score, _ = self.get_output( - roi_feat_list[-1], # roi_feat_3 - name='_' + str(i + 1) if i > 0 else '') - else: - cls_score = rcnn_pred[0] - cls_prob = fluid.layers.softmax(cls_score, use_cudnn=False) - boxes_cls_prob_l.append(cls_prob) - - boxes_cls_prob_mean = ( - boxes_cls_prob_l[0] + boxes_cls_prob_l[1] + boxes_cls_prob_l[2] - ) / 3.0 - - # bbox pred - proposals_boxes = proposal_list[-1] - im_scale_lod = fluid.layers.sequence_expand(self.im_scale, - proposals_boxes) - proposals_boxes = proposals_boxes / im_scale_lod - bbox_pred = rcnn_pred[1] - bbox_pred_new = fluid.layers.reshape(bbox_pred, - (-1, cls_agnostic_bbox_reg, 4)) - if cls_agnostic_bbox_reg == 2: - # only use fg box delta to decode box - bbox_pred_new = fluid.layers.slice( - bbox_pred_new, axes=[1], starts=[1], ends=[2]) - bbox_pred_new = fluid.layers.expand(bbox_pred_new, - [1, self.num_classes, 1]) - decoded_box = fluid.layers.box_coder( - prior_box=proposals_boxes, - prior_box_var=bbox_reg_w, - target_box=bbox_pred_new, - code_type='decode_center_size', - box_normalized=False, - axis=1) - - box_out = fluid.layers.box_clip(input=decoded_box, im_info=im_shape) - if return_box_score: - return {'bbox': box_out, 'score': boxes_cls_prob_mean} - pred_result = self.nms(bboxes=box_out, scores=boxes_cls_prob_mean) - return {"bbox": pred_result} - - -@register -class CascadeXConvNormHead(object): - """ - RCNN head with serveral convolution layers - - Args: - conv_num (int): num of convolution layers for the rcnn head - conv_dim (int): num of filters for the conv layers - mlp_dim (int): num of filters for the fc layers - """ - __shared__ = ['norm_type', 'freeze_norm'] - - def __init__(self, - num_conv=4, - conv_dim=256, - mlp_dim=1024, - norm_type=None, - freeze_norm=False): - super(CascadeXConvNormHead, self).__init__() - self.conv_dim = conv_dim - self.mlp_dim = mlp_dim - self.num_conv = num_conv - self.norm_type = norm_type - self.freeze_norm = freeze_norm - - def __call__(self, roi_feat, wb_scalar=1.0, name=''): - conv = roi_feat - fan = self.conv_dim * 3 * 3 - initializer = MSRA(uniform=False, fan_in=fan) - for i in range(self.num_conv): - name = 'bbox_head_conv' + str(i) - conv = ConvNorm( - conv, - self.conv_dim, - 3, - act='relu', - initializer=initializer, - norm_type=self.norm_type, - freeze_norm=self.freeze_norm, - lr_scale=wb_scalar, - name=name, - norm_name=name) - fan = conv.shape[1] * conv.shape[2] * conv.shape[3] - head_heat = fluid.layers.fc(input=conv, - size=self.mlp_dim, - act='relu', - name='fc6' + name, - param_attr=ParamAttr( - name='fc6%s_w' % name, - initializer=Xavier(fan_out=fan), - learning_rate=wb_scalar), - bias_attr=ParamAttr( - name='fc6%s_b' % name, - regularizer=L2Decay(0.), - learning_rate=wb_scalar * 2)) - return head_heat - - -@register -class CascadeTwoFCHead(object): - """ - RCNN head with serveral convolution layers - - Args: - mlp_dim (int): num of filters for the fc layers - """ - - def __init__(self, mlp_dim): - super(CascadeTwoFCHead, self).__init__() - self.mlp_dim = mlp_dim - - def __call__(self, roi_feat, wb_scalar=1.0, name=''): - fan = roi_feat.shape[1] * roi_feat.shape[2] * roi_feat.shape[3] - fc6 = fluid.layers.fc(input=roi_feat, - size=self.mlp_dim, - act='relu', - name='fc6' + name, - param_attr=ParamAttr( - name='fc6%s_w' % name, - initializer=Xavier(fan_out=fan), - learning_rate=wb_scalar), - bias_attr=ParamAttr( - name='fc6%s_b' % name, - learning_rate=wb_scalar * 2, - regularizer=L2Decay(0.))) - head_feat = fluid.layers.fc(input=fc6, - size=self.mlp_dim, - act='relu', - name='fc7' + name, - param_attr=ParamAttr( - name='fc7%s_w' % name, - initializer=Xavier(), - learning_rate=wb_scalar), - bias_attr=ParamAttr( - name='fc7%s_b' % name, - learning_rate=wb_scalar * 2, - regularizer=L2Decay(0.))) - return head_feat diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/mask_head.py b/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/mask_head.py deleted file mode 100644 index f61add0402664113de83e5537acae459260481ee..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/roi_heads/mask_head.py +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import MSRA -from paddle.fluid.regularizer import L2Decay - -from ppdet.core.workspace import register -from ppdet.modeling.ops import ConvNorm - -__all__ = ['MaskHead'] - - -@register -class MaskHead(object): - """ - RCNN mask head - Args: - num_convs (int): num of convolutions, 4 for FPN, 1 otherwise - conv_dim (int): num of channels after first convolution - resolution (int): size of the output mask - dilation (int): dilation rate - num_classes (int): number of output classes - """ - - __shared__ = ['num_classes'] - - def __init__(self, - num_convs=0, - conv_dim=256, - resolution=14, - dilation=1, - num_classes=81, - norm_type=None): - super(MaskHead, self).__init__() - self.num_convs = num_convs - self.conv_dim = conv_dim - self.resolution = resolution - self.dilation = dilation - self.num_classes = num_classes - self.norm_type = norm_type - - def _mask_conv_head(self, roi_feat, num_convs, norm_type): - if norm_type == 'gn': - for i in range(num_convs): - layer_name = "mask_inter_feat_" + str(i + 1) - fan = self.conv_dim * 3 * 3 - initializer = MSRA(uniform=False, fan_in=fan) - roi_feat = ConvNorm( - roi_feat, - self.conv_dim, - 3, - act='relu', - dilation=self.dilation, - initializer=initializer, - norm_type=self.norm_type, - name=layer_name, - norm_name=layer_name) - else: - for i in range(num_convs): - layer_name = "mask_inter_feat_" + str(i + 1) - fan = self.conv_dim * 3 * 3 - initializer = MSRA(uniform=False, fan_in=fan) - roi_feat = fluid.layers.conv2d( - input=roi_feat, - num_filters=self.conv_dim, - filter_size=3, - padding=1 * self.dilation, - act='relu', - stride=1, - dilation=self.dilation, - name=layer_name, - param_attr=ParamAttr( - name=layer_name + '_w', initializer=initializer), - bias_attr=ParamAttr( - name=layer_name + '_b', - learning_rate=2., - regularizer=L2Decay(0.))) - fan = roi_feat.shape[1] * 2 * 2 - feat = fluid.layers.conv2d_transpose( - input=roi_feat, - num_filters=self.conv_dim, - filter_size=2, - stride=2, - act='relu', - param_attr=ParamAttr( - name='conv5_mask_w', - initializer=MSRA( - uniform=False, fan_in=fan)), - bias_attr=ParamAttr( - name='conv5_mask_b', learning_rate=2., regularizer=L2Decay(0.))) - return feat - - def _get_output(self, roi_feat): - class_num = self.num_classes - # configure the conv number for FPN if necessary - head_feat = self._mask_conv_head(roi_feat, self.num_convs, - self.norm_type) - fan = class_num - mask_logits = fluid.layers.conv2d( - input=head_feat, - num_filters=class_num, - filter_size=1, - act=None, - param_attr=ParamAttr( - name='mask_fcn_logits_w', - initializer=MSRA( - uniform=False, fan_in=fan)), - bias_attr=ParamAttr( - name="mask_fcn_logits_b", - learning_rate=2., - regularizer=L2Decay(0.))) - return mask_logits - - def get_loss(self, roi_feat, mask_int32): - mask_logits = self._get_output(roi_feat) - num_classes = self.num_classes - resolution = self.resolution - dim = num_classes * resolution * resolution - mask_logits = fluid.layers.reshape(mask_logits, (-1, dim)) - - mask_label = fluid.layers.cast(x=mask_int32, dtype='float32') - mask_label.stop_gradient = True - loss_mask = fluid.layers.sigmoid_cross_entropy_with_logits( - x=mask_logits, label=mask_label, ignore_index=-1, normalize=True) - loss_mask = fluid.layers.reduce_sum(loss_mask, name='loss_mask') - return {'loss_mask': loss_mask} - - def get_prediction(self, roi_feat, bbox_pred): - """ - Get prediction mask in test stage. - - Args: - roi_feat (Variable): RoI feature from RoIExtractor. - bbox_pred (Variable): predicted bbox. - - Returns: - mask_pred (Variable): Prediction mask with shape - [N, num_classes, resolution, resolution]. - """ - mask_logits = self._get_output(roi_feat) - mask_prob = fluid.layers.sigmoid(mask_logits) - mask_prob = fluid.layers.lod_reset(mask_prob, bbox_pred) - return mask_prob diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/target_assigners.py b/PaddleCV/PaddleDetection/ppdet/modeling/target_assigners.py deleted file mode 100644 index 57d7bd738d2ee730effa3406df04fddedf1e5cd8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/target_assigners.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from paddle import fluid - -from ppdet.core.workspace import register -from ppdet.modeling.ops import BBoxAssigner, MaskAssigner - -__all__ = ['BBoxAssigner', 'MaskAssigner', 'CascadeBBoxAssigner'] - - -@register -class CascadeBBoxAssigner(object): - __shared__ = ['num_classes'] - - def __init__(self, - batch_size_per_im=512, - fg_fraction=.25, - fg_thresh=[0.5, 0.6, 0.7], - bg_thresh_hi=[0.5, 0.6, 0.7], - bg_thresh_lo=[0., 0., 0.], - bbox_reg_weights=[10, 20, 30], - num_classes=81, - shuffle_before_sample=True): - super(CascadeBBoxAssigner, self).__init__() - self.batch_size_per_im = batch_size_per_im - self.fg_fraction = fg_fraction - self.fg_thresh = fg_thresh - self.bg_thresh_hi = bg_thresh_hi - self.bg_thresh_lo = bg_thresh_lo - self.bbox_reg_weights = bbox_reg_weights - self.class_nums = num_classes - self.use_random = shuffle_before_sample - - def __call__(self, input_rois, feed_vars, curr_stage): - - curr_bbox_reg_w = [ - 1. / self.bbox_reg_weights[curr_stage], - 1. / self.bbox_reg_weights[curr_stage], - 2. / self.bbox_reg_weights[curr_stage], - 2. / self.bbox_reg_weights[curr_stage], - ] - outs = fluid.layers.generate_proposal_labels( - rpn_rois=input_rois, - gt_classes=feed_vars['gt_label'], - is_crowd=feed_vars['is_crowd'], - gt_boxes=feed_vars['gt_box'], - im_info=feed_vars['im_info'], - batch_size_per_im=self.batch_size_per_im, - fg_thresh=self.fg_thresh[curr_stage], - bg_thresh_hi=self.bg_thresh_hi[curr_stage], - bg_thresh_lo=self.bg_thresh_lo[curr_stage], - bbox_reg_weights=curr_bbox_reg_w, - use_random=self.use_random, - class_nums=2, - is_cls_agnostic=True, - is_cascade_rcnn=True if curr_stage > 0 else False) - return outs diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/tests/__init__.py b/PaddleCV/PaddleDetection/ppdet/modeling/tests/__init__.py deleted file mode 100644 index 33ed0ecf10ec4cad807ebb6df1590de65eeeab1e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/tests/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/tests/decorator_helper.py b/PaddleCV/PaddleDetection/ppdet/modeling/tests/decorator_helper.py deleted file mode 100644 index 894833ce15eab82ea06c2e66a8e53cb2e7e057b5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/tests/decorator_helper.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import paddle.fluid as fluid - -__all__ = ['prog_scope'] - - -def prog_scope(): - def __impl__(fn): - def __fn__(*args, **kwargs): - prog = fluid.Program() - startup_prog = fluid.Program() - scope = fluid.core.Scope() - with fluid.scope_guard(scope): - with fluid.program_guard(prog, startup_prog): - with fluid.unique_name.guard(): - fn(*args, **kwargs) - - return __fn__ - - return __impl__ diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/tests/test_architectures.py b/PaddleCV/PaddleDetection/ppdet/modeling/tests/test_architectures.py deleted file mode 100644 index 7df9580666858a834506a9a0beac742e548266f5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/modeling/tests/test_architectures.py +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import unittest -import numpy as np - -import paddle.fluid as fluid - -from ppdet.modeling.tests.decorator_helper import prog_scope -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.modeling.model_input import create_feed - - -class TestFasterRCNN(unittest.TestCase): - def setUp(self): - self.set_config() - self.cfg = load_config(self.cfg_file) - self.detector_type = self.cfg['architecture'] - - def set_config(self): - self.cfg_file = 'configs/faster_rcnn_r50_1x.yml' - - @prog_scope() - def test_train(self): - train_feed = create(self.cfg['train_feed']) - model = create(self.detector_type) - _, feed_vars = create_feed(train_feed) - train_fetches = model.train(feed_vars) - - @prog_scope() - def test_test(self): - test_feed = create(self.cfg['eval_feed']) - model = create(self.detector_type) - _, feed_vars = create_feed(test_feed) - test_fetches = model.eval(feed_vars) - - -class TestMaskRCNN(TestFasterRCNN): - def set_config(self): - self.cfg_file = 'configs/mask_rcnn_r50_1x.yml' - - -class TestCascadeRCNN(TestFasterRCNN): - def set_config(self): - self.cfg_file = 'configs/cascade_rcnn_r50_fpn_1x.yml' - - -class TestYolov3(TestFasterRCNN): - def set_config(self): - self.cfg_file = 'configs/yolov3_darknet.yml' - - -class TestRetinaNet(TestFasterRCNN): - def set_config(self): - self.cfg_file = 'configs/retinanet_r50_fpn_1x.yml' - - -class TestSSD(TestFasterRCNN): - def set_config(self): - self.cfg_file = 'configs/ssd/ssd_mobilenet_v1_voc.yml' - - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/PaddleDetection/ppdet/optimizer.py b/PaddleCV/PaddleDetection/ppdet/optimizer.py deleted file mode 100644 index e695aad043b8778128f1b6870a27d2b0b3fe6adc..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/optimizer.py +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import logging - -from paddle import fluid - -import paddle.fluid.optimizer as optimizer -import paddle.fluid.regularizer as regularizer - -from ppdet.core.workspace import register, serializable - -__all__ = ['LearningRate', 'OptimizerBuilder'] - -logger = logging.getLogger(__name__) - - -@serializable -class PiecewiseDecay(object): - """ - Multi step learning rate decay - - Args: - gamma (float): decay factor - milestones (list): steps at which to decay learning rate - """ - - def __init__(self, gamma=0.1, milestones=[60000, 80000], values=None): - super(PiecewiseDecay, self).__init__() - self.gamma = gamma - self.milestones = milestones - self.values = values - - def __call__(self, base_lr=None, learning_rate=None): - if self.values is not None: - return fluid.layers.piecewise_decay(self.milestones, self.values) - assert base_lr is not None, "either base LR or values should be provided" - values = [base_lr] - lr = base_lr - for _ in self.milestones: - lr *= self.gamma - values.append(lr) - return fluid.layers.piecewise_decay(self.milestones, values) - - -@serializable -class LinearWarmup(object): - """ - Warm up learning rate linearly - - Args: - steps (int): warm up steps - start_factor (float): initial learning rate factor - """ - - def __init__(self, steps=500, start_factor=1. / 3): - super(LinearWarmup, self).__init__() - self.steps = steps - self.start_factor = start_factor - - def __call__(self, base_lr, learning_rate): - start_lr = base_lr * self.start_factor - - return fluid.layers.linear_lr_warmup( - learning_rate=learning_rate, - warmup_steps=self.steps, - start_lr=start_lr, - end_lr=base_lr) - - -@register -class LearningRate(object): - """ - Learning Rate configuration - - Args: - base_lr (float): base learning rate - schedulers (list): learning rate schedulers - """ - __category__ = 'optim' - - def __init__(self, - base_lr=0.01, - schedulers=[PiecewiseDecay(), LinearWarmup()]): - super(LearningRate, self).__init__() - self.base_lr = base_lr - self.schedulers = schedulers - - def __call__(self): - lr = None - for sched in self.schedulers: - lr = sched(self.base_lr, lr) - return lr - - -@register -class OptimizerBuilder(): - """ - Build optimizer handles - - Args: - regularizer (object): an `Regularizer` instance - optimizer (object): an `Optimizer` instance - """ - __category__ = 'optim' - - def __init__(self, - regularizer={'type': 'L2', - 'factor': .0001}, - optimizer={'type': 'Momentum', - 'momentum': .9}): - self.regularizer = regularizer - self.optimizer = optimizer - - def __call__(self, learning_rate): - reg_type = self.regularizer['type'] + 'Decay' - reg_factor = self.regularizer['factor'] - regularization = getattr(regularizer, reg_type)(reg_factor) - - optim_args = self.optimizer.copy() - optim_type = optim_args['type'] - del optim_args['type'] - op = getattr(optimizer, optim_type) - return op(learning_rate=learning_rate, - regularization=regularization, - **optim_args) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/__init__.py b/PaddleCV/PaddleDetection/ppdet/utils/__init__.py deleted file mode 100644 index d0c32e26092f6ea25771279418582a24ea449ab2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/PaddleCV/PaddleDetection/ppdet/utils/check.py b/PaddleCV/PaddleDetection/ppdet/utils/check.py deleted file mode 100644 index 9e816eaadcbf21b48e80ab6e607bff97269e7c39..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/check.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import sys - -import paddle.fluid as fluid - -import logging -logger = logging.getLogger(__name__) - -__all__ = ['check_gpu'] - - -def check_gpu(use_gpu): - """ - Log error and exit when set use_gpu=true in paddlepaddle - cpu version. - """ - err = "Config use_gpu cannot be set as true while you are " \ - "using paddlepaddle cpu version ! \nPlease try: \n" \ - "\t1. Install paddlepaddle-gpu to run model on GPU \n" \ - "\t2. Set use_gpu as false in config file to run " \ - "model on CPU" - - try: - if use_gpu and not fluid.is_compiled_with_cuda(): - logger.error(err) - sys.exit(1) - except Exception as e: - pass - diff --git a/PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py b/PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py deleted file mode 100644 index 54c364812b041280148a1d0b85543209dc449724..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/checkpoint.py +++ /dev/null @@ -1,291 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import errno -import os -import shutil -import time -import numpy as np -import re -import paddle.fluid as fluid - -from .download import get_weights_path - -import logging -logger = logging.getLogger(__name__) - -__all__ = [ - 'load_checkpoint', - 'load_and_fusebn', - 'load_params', - 'save', -] - - -def is_url(path): - """ - Whether path is URL. - Args: - path (string): URL string or not. - """ - return path.startswith('http://') or path.startswith('https://') - - -def _get_weight_path(path): - env = os.environ - if 'PADDLE_TRAINERS_NUM' in env and 'PADDLE_TRAINER_ID' in env: - trainer_id = int(env['PADDLE_TRAINER_ID']) - num_trainers = int(env['PADDLE_TRAINERS_NUM']) - if num_trainers <= 1: - path = get_weights_path(path) - else: - from ppdet.utils.download import map_path, WEIGHTS_HOME - weight_path = map_path(path, WEIGHTS_HOME) - lock_path = weight_path + '.lock' - if not os.path.exists(weight_path): - try: - os.makedirs(os.path.dirname(weight_path)) - except OSError as e: - if e.errno != errno.EEXIST: - raise - with open(lock_path, 'w'): # touch - os.utime(lock_path, None) - if trainer_id == 0: - get_weights_path(path) - os.remove(lock_path) - else: - while os.path.exists(lock_path): - time.sleep(1) - path = weight_path - else: - path = get_weights_path(path) - return path - - -def load_params(exe, prog, path, ignore_params=[]): - """ - Load model from the given path. - Args: - exe (fluid.Executor): The fluid.Executor object. - prog (fluid.Program): load weight to which Program object. - path (string): URL string or loca model path. - ignore_params (bool): ignore variable to load when finetuning. - It can be specified by finetune_exclude_pretrained_params - and the usage can refer to docs/TRANSFER_LEARNING.md - """ - - if is_url(path): - path = _get_weight_path(path) - - if not os.path.exists(path): - raise ValueError("Model pretrain path {} does not " - "exists.".format(path)) - - logger.info('Loading parameters from {}...'.format(path)) - - def _if_exist(var): - do_ignore = False - param_exist = os.path.exists(os.path.join(path, var.name)) - if len(ignore_params) > 0: - # Parameter related to num_classes will be ignored in finetuning - do_ignore_list = [ - bool(re.match(name, var.name)) for name in ignore_params - ] - do_ignore = any(do_ignore_list) - if do_ignore and param_exist: - logger.info('In load_params, ignore {}'.format(var.name)) - do_load = param_exist and not do_ignore - if do_load: - logger.debug('load weight {}'.format(var.name)) - return do_load - - fluid.io.load_vars(exe, path, prog, predicate=_if_exist) - - -def load_checkpoint(exe, prog, path): - """ - Load model from the given path. - Args: - exe (fluid.Executor): The fluid.Executor object. - prog (fluid.Program): load weight to which Program object. - path (string): URL string or loca model path. - """ - if is_url(path): - path = _get_weight_path(path) - - if not os.path.exists(path): - raise ValueError("Model checkpoint path {} does not " - "exists.".format(path)) - - logger.info('Loading checkpoint from {}...'.format(path)) - fluid.io.load_persistables(exe, path, prog) - - -def global_step(scope=None): - """ - Load global step in scope. - Args: - scope (fluid.Scope): load global step from which scope. If None, - from default global_scope(). - - Returns: - global step: int. - """ - if scope is None: - scope = fluid.global_scope() - v = scope.find_var('@LR_DECAY_COUNTER@') - step = np.array(v.get_tensor())[0] if v else 0 - return step - - -def save(exe, prog, path): - """ - Load model from the given path. - Args: - exe (fluid.Executor): The fluid.Executor object. - prog (fluid.Program): save weight from which Program object. - path (string): the path to save model. - """ - if os.path.isdir(path): - shutil.rmtree(path) - logger.info('Save model to {}.'.format(path)) - fluid.io.save_persistables(exe, path, prog) - - -def load_and_fusebn(exe, prog, path): - """ - Fuse params of batch norm to scale and bias. - - Args: - exe (fluid.Executor): The fluid.Executor object. - prog (fluid.Program): save weight from which Program object. - path (string): the path to save model. - """ - logger.info('Load model and fuse batch norm if have from {}...'.format( - path)) - - if is_url(path): - path = _get_weight_path(path) - - if not os.path.exists(path): - raise ValueError("Model path {} does not exists.".format(path)) - - def _if_exist(var): - b = os.path.exists(os.path.join(path, var.name)) - - if b: - logger.debug('load weight {}'.format(var.name)) - return b - - all_vars = list(filter(_if_exist, prog.list_vars())) - - # Since the program uses affine-channel, there is no running mean and var - # in the program, here append running mean and var. - # NOTE, the params of batch norm should be like: - # x_scale - # x_offset - # x_mean - # x_variance - # x is any prefix - mean_variances = set() - bn_vars = [] - - bn_in_path = True - - inner_prog = fluid.Program() - inner_start_prog = fluid.Program() - inner_block = inner_prog.global_block() - with fluid.program_guard(inner_prog, inner_start_prog): - for block in prog.blocks: - ops = list(block.ops) - if not bn_in_path: - break - for op in ops: - if op.type == 'affine_channel': - # remove 'scale' as prefix - scale_name = op.input('Scale')[0] # _scale - bias_name = op.input('Bias')[0] # _offset - prefix = scale_name[:-5] - mean_name = prefix + 'mean' - variance_name = prefix + 'variance' - - if not os.path.exists(os.path.join(path, mean_name)): - bn_in_path = False - break - if not os.path.exists(os.path.join(path, variance_name)): - bn_in_path = False - break - - bias = block.var(bias_name) - - mean_vb = inner_block.create_var( - name=mean_name, - type=bias.type, - shape=bias.shape, - dtype=bias.dtype, - persistable=True) - variance_vb = inner_block.create_var( - name=variance_name, - type=bias.type, - shape=bias.shape, - dtype=bias.dtype, - persistable=True) - - mean_variances.add(mean_vb) - mean_variances.add(variance_vb) - - bn_vars.append( - [scale_name, bias_name, mean_name, variance_name]) - - if not bn_in_path: - fluid.io.load_vars(exe, path, prog, vars=all_vars) - logger.warning( - "There is no paramters of batch norm in model {}. " - "Skip to fuse batch norm. And load paramters done.".format(path)) - return - - # load running mean and running variance on cpu place into global scope. - place = fluid.CPUPlace() - exe_cpu = fluid.Executor(place) - fluid.io.load_vars(exe_cpu, path, vars=[v for v in mean_variances]) - - # load params on real place into global scope. - fluid.io.load_vars(exe, path, prog, vars=all_vars) - - eps = 1e-5 - for names in bn_vars: - scale_name, bias_name, mean_name, var_name = names - - scale = fluid.global_scope().find_var(scale_name).get_tensor() - bias = fluid.global_scope().find_var(bias_name).get_tensor() - mean = fluid.global_scope().find_var(mean_name).get_tensor() - var = fluid.global_scope().find_var(var_name).get_tensor() - - scale_arr = np.array(scale) - bias_arr = np.array(bias) - mean_arr = np.array(mean) - var_arr = np.array(var) - - bn_std = np.sqrt(np.add(var_arr, eps)) - new_scale = np.float32(np.divide(scale_arr, bn_std)) - new_bias = bias_arr - mean_arr * new_scale - - # fuse to scale and bias in affine_channel - scale.set(new_scale, exe.place) - bias.set(new_bias, exe.place) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/cli.py b/PaddleCV/PaddleDetection/ppdet/utils/cli.py deleted file mode 100644 index b8ba59d78f1ddf606012fd0cf6d71a71d79eea05..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/cli.py +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from argparse import ArgumentParser, RawDescriptionHelpFormatter - -import yaml -import re -from ppdet.core.workspace import get_registered_modules, dump_value - -__all__ = ['ColorTTY', 'ArgsParser'] - - -class ColorTTY(object): - def __init__(self): - super(ColorTTY, self).__init__() - self.colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'] - - def __getattr__(self, attr): - if attr in self.colors: - color = self.colors.index(attr) + 31 - - def color_message(message): - return "[{}m{}".format(color, message) - - setattr(self, attr, color_message) - return color_message - - def bold(self, message): - return self.with_code('01', message) - - def with_code(self, code, message): - return "[{}m{}".format(code, message) - - -class ArgsParser(ArgumentParser): - def __init__(self): - super(ArgsParser, self).__init__( - formatter_class=RawDescriptionHelpFormatter) - self.add_argument("-c", "--config", help="configuration file to use") - self.add_argument( - "-o", "--opt", nargs='*', help="set configuration options") - - def parse_args(self, argv=None): - args = super(ArgsParser, self).parse_args(argv) - assert args.config is not None, \ - "Please specify --config=configure_file_path." - args.opt = self._parse_opt(args.opt) - return args - - def _parse_opt(self, opts): - config = {} - if not opts: - return config - for s in opts: - s = s.strip() - k, v = s.split('=', 1) - if '.' not in k: - config[k] = yaml.load(v, Loader=yaml.Loader) - else: - keys = k.split('.') - if keys[0] not in config: - config[keys[0]] = {} - cur = config[keys[0]] - for idx, key in enumerate(keys[1:]): - if idx == len(keys) - 2: - cur[key] = yaml.load(v, Loader=yaml.Loader) - else: - cur[key] = {} - cur = cur[key] - return config - - -def print_total_cfg(config): - modules = get_registered_modules() - color_tty = ColorTTY() - green = '___{}___'.format(color_tty.colors.index('green') + 31) - - styled = {} - for key in config.keys(): - if not config[key]: # empty schema - continue - - if key not in modules and not hasattr(config[key], '__dict__'): - styled[key] = config[key] - continue - elif key in modules: - module = modules[key] - else: - type_name = type(config[key]).__name__ - if type_name in modules: - module = modules[type_name].copy() - module.update({ - k: v - for k, v in config[key].__dict__.items() - if k in module.schema - }) - key += " ({})".format(type_name) - default = module.find_default_keys() - missing = module.find_missing_keys() - mismatch = module.find_mismatch_keys() - extra = module.find_extra_keys() - dep_missing = [] - for dep in module.inject: - if isinstance(module[dep], str) and module[dep] != '': - if module[dep] not in modules: # not a valid module - dep_missing.append(dep) - else: - dep_mod = modules[module[dep]] - # empty dict but mandatory - if not dep_mod and dep_mod.mandatory(): - dep_missing.append(dep) - override = list( - set(module.keys()) - set(default) - set(extra) - set(dep_missing)) - replacement = {} - for name in set(override + default + extra + mismatch + missing): - new_name = name - if name in missing: - value = "" - else: - value = module[name] - - if name in extra: - value = dump_value(value) + " " - elif name in mismatch: - value = dump_value(value) + " " - elif name in dep_missing: - value = dump_value(value) + " " - elif name in override and value != '': - mark = green - new_name = mark + name - replacement[new_name] = value - styled[key] = replacement - buffer = yaml.dump(styled, default_flow_style=False, default_style='') - buffer = (re.sub(r"", r"[31m[0m", buffer)) - buffer = (re.sub(r"", r"[33m[0m", buffer)) - buffer = (re.sub(r"", r"[31m[0m", buffer)) - buffer = (re.sub(r"", - r"[31m[0m", buffer)) - buffer = re.sub(r"___(\d+)___(.*?):", r"[\1m\2[0m:", buffer) - print(buffer) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/coco_eval.py b/PaddleCV/PaddleDetection/ppdet/utils/coco_eval.py deleted file mode 100644 index cb5df475fb16f10fffa18a02920687780a3fe298..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/coco_eval.py +++ /dev/null @@ -1,560 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os -import sys -import json -import cv2 -import numpy as np -import matplotlib -matplotlib.use('Agg') - -import logging -logger = logging.getLogger(__name__) - -__all__ = [ - 'bbox_eval', - 'mask_eval', - 'bbox2out', - 'mask2out', - 'get_category_info', - 'proposal_eval', - 'cocoapi_eval', -] - - -def clip_bbox(bbox): - xmin = max(min(bbox[0], 1.), 0.) - ymin = max(min(bbox[1], 1.), 0.) - xmax = max(min(bbox[2], 1.), 0.) - ymax = max(min(bbox[3], 1.), 0.) - return xmin, ymin, xmax, ymax - - -def proposal_eval(results, anno_file, outfile, max_dets=(100, 300, 1000)): - assert 'proposal' in results[0] - assert outfile.endswith('.json') - - xywh_results = proposal2out(results) - assert len( - xywh_results) > 0, "The number of valid proposal detected is zero.\n \ - Please use reasonable model and check input data." - - with open(outfile, 'w') as f: - json.dump(xywh_results, f) - - cocoapi_eval(outfile, 'proposal', anno_file=anno_file, max_dets=max_dets) - # flush coco evaluation result - sys.stdout.flush() - - -def bbox_eval(results, - anno_file, - outfile, - with_background=True, - is_bbox_normalized=False): - assert 'bbox' in results[0] - assert outfile.endswith('.json') - from pycocotools.coco import COCO - - coco_gt = COCO(anno_file) - cat_ids = coco_gt.getCatIds() - - # when with_background = True, mapping category to classid, like: - # background:0, first_class:1, second_class:2, ... - clsid2catid = dict( - {i + int(with_background): catid - for i, catid in enumerate(cat_ids)}) - - xywh_results = bbox2out( - results, clsid2catid, is_bbox_normalized=is_bbox_normalized) - - if len(xywh_results) == 0: - logger.warning("The number of valid bbox detected is zero.\n \ - Please use reasonable model and check input data.\n \ - stop eval!") - return [0.0] - with open(outfile, 'w') as f: - json.dump(xywh_results, f) - - map_stats = cocoapi_eval(outfile, 'bbox', coco_gt=coco_gt) - # flush coco evaluation result - sys.stdout.flush() - return map_stats - - -def mask_eval(results, anno_file, outfile, resolution, thresh_binarize=0.5): - assert 'mask' in results[0] - assert outfile.endswith('.json') - from pycocotools.coco import COCO - - coco_gt = COCO(anno_file) - clsid2catid = {i + 1: v for i, v in enumerate(coco_gt.getCatIds())} - - segm_results = mask2out(results, clsid2catid, resolution, thresh_binarize) - if len(segm_results) == 0: - logger.warning("The number of valid mask detected is zero.\n \ - Please use reasonable model and check input data.") - return - - with open(outfile, 'w') as f: - json.dump(segm_results, f) - - cocoapi_eval(outfile, 'segm', coco_gt=coco_gt) - - -def cocoapi_eval(jsonfile, - style, - coco_gt=None, - anno_file=None, - max_dets=(100, 300, 1000)): - """ - Args: - jsonfile: Evaluation json file, eg: bbox.json, mask.json. - style: COCOeval style, can be `bbox` , `segm` and `proposal`. - coco_gt: Whether to load COCOAPI through anno_file, - eg: coco_gt = COCO(anno_file) - anno_file: COCO annotations file. - max_dets: COCO evaluation maxDets. - """ - assert coco_gt != None or anno_file != None - from pycocotools.coco import COCO - from pycocotools.cocoeval import COCOeval - - if coco_gt == None: - coco_gt = COCO(anno_file) - logger.info("Start evaluate...") - coco_dt = coco_gt.loadRes(jsonfile) - if style == 'proposal': - coco_eval = COCOeval(coco_gt, coco_dt, 'bbox') - coco_eval.params.useCats = 0 - coco_eval.params.maxDets = list(max_dets) - else: - coco_eval = COCOeval(coco_gt, coco_dt, style) - coco_eval.evaluate() - coco_eval.accumulate() - coco_eval.summarize() - return coco_eval.stats - - -def proposal2out(results, is_bbox_normalized=False): - xywh_res = [] - for t in results: - bboxes = t['proposal'][0] - lengths = t['proposal'][1][0] - im_ids = np.array(t['im_id'][0]) - if bboxes.shape == (1, 1) or bboxes is None: - continue - - k = 0 - for i in range(len(lengths)): - num = lengths[i] - im_id = int(im_ids[i][0]) - for j in range(num): - dt = bboxes[k] - xmin, ymin, xmax, ymax = dt.tolist() - - if is_bbox_normalized: - xmin, ymin, xmax, ymax = \ - clip_bbox([xmin, ymin, xmax, ymax]) - w = xmax - xmin - h = ymax - ymin - else: - w = xmax - xmin + 1 - h = ymax - ymin + 1 - - bbox = [xmin, ymin, w, h] - coco_res = { - 'image_id': im_id, - 'category_id': 1, - 'bbox': bbox, - 'score': 1.0 - } - xywh_res.append(coco_res) - k += 1 - return xywh_res - - -def bbox2out(results, clsid2catid, is_bbox_normalized=False): - """ - Args: - results: request a dict, should include: `bbox`, `im_id`, - if is_bbox_normalized=True, also need `im_shape`. - clsid2catid: class id to category id map of COCO2017 dataset. - is_bbox_normalized: whether or not bbox is normalized. - """ - xywh_res = [] - for t in results: - bboxes = t['bbox'][0] - lengths = t['bbox'][1][0] - im_ids = np.array(t['im_id'][0]) - if bboxes.shape == (1, 1) or bboxes is None: - continue - - k = 0 - for i in range(len(lengths)): - num = lengths[i] - im_id = int(im_ids[i][0]) - for j in range(num): - dt = bboxes[k] - clsid, score, xmin, ymin, xmax, ymax = dt.tolist() - catid = (clsid2catid[int(clsid)]) - - if is_bbox_normalized: - xmin, ymin, xmax, ymax = \ - clip_bbox([xmin, ymin, xmax, ymax]) - w = xmax - xmin - h = ymax - ymin - im_height, im_width = t['im_shape'][0][i].tolist() - xmin *= im_width - ymin *= im_height - w *= im_width - h *= im_height - else: - w = xmax - xmin + 1 - h = ymax - ymin + 1 - - bbox = [xmin, ymin, w, h] - coco_res = { - 'image_id': im_id, - 'category_id': catid, - 'bbox': bbox, - 'score': score - } - xywh_res.append(coco_res) - k += 1 - return xywh_res - - -def mask2out(results, clsid2catid, resolution, thresh_binarize=0.5): - import pycocotools.mask as mask_util - scale = (resolution + 2.0) / resolution - - segm_res = [] - - # for each batch - for t in results: - bboxes = t['bbox'][0] - - lengths = t['bbox'][1][0] - im_ids = np.array(t['im_id'][0]) - if bboxes.shape == (1, 1) or bboxes is None: - continue - if len(bboxes.tolist()) == 0: - continue - - masks = t['mask'][0] - - s = 0 - # for each sample - for i in range(len(lengths)): - num = lengths[i] - im_id = int(im_ids[i][0]) - im_shape = t['im_shape'][0][i] - - bbox = bboxes[s:s + num][:, 2:] - clsid_scores = bboxes[s:s + num][:, 0:2] - mask = masks[s:s + num] - s += num - - im_h = int(im_shape[0]) - im_w = int(im_shape[1]) - - expand_bbox = expand_boxes(bbox, scale) - expand_bbox = expand_bbox.astype(np.int32) - - padded_mask = np.zeros( - (resolution + 2, resolution + 2), dtype=np.float32) - - for j in range(num): - xmin, ymin, xmax, ymax = expand_bbox[j].tolist() - clsid, score = clsid_scores[j].tolist() - clsid = int(clsid) - padded_mask[1:-1, 1:-1] = mask[j, clsid, :, :] - - catid = clsid2catid[clsid] - - w = xmax - xmin + 1 - h = ymax - ymin + 1 - w = np.maximum(w, 1) - h = np.maximum(h, 1) - - resized_mask = cv2.resize(padded_mask, (w, h)) - resized_mask = np.array( - resized_mask > thresh_binarize, dtype=np.uint8) - im_mask = np.zeros((im_h, im_w), dtype=np.uint8) - - x0 = min(max(xmin, 0), im_w) - x1 = min(max(xmax + 1, 0), im_w) - y0 = min(max(ymin, 0), im_h) - y1 = min(max(ymax + 1, 0), im_h) - - im_mask[y0:y1, x0:x1] = resized_mask[(y0 - ymin):(y1 - ymin), ( - x0 - xmin):(x1 - xmin)] - segm = mask_util.encode( - np.array( - im_mask[:, :, np.newaxis], order='F'))[0] - catid = clsid2catid[clsid] - segm['counts'] = segm['counts'].decode('utf8') - coco_res = { - 'image_id': im_id, - 'category_id': catid, - 'segmentation': segm, - 'score': score - } - segm_res.append(coco_res) - return segm_res - - -def expand_boxes(boxes, scale): - """ - Expand an array of boxes by a given scale. - """ - w_half = (boxes[:, 2] - boxes[:, 0]) * .5 - h_half = (boxes[:, 3] - boxes[:, 1]) * .5 - x_c = (boxes[:, 2] + boxes[:, 0]) * .5 - y_c = (boxes[:, 3] + boxes[:, 1]) * .5 - - w_half *= scale - h_half *= scale - - boxes_exp = np.zeros(boxes.shape) - boxes_exp[:, 0] = x_c - w_half - boxes_exp[:, 2] = x_c + w_half - boxes_exp[:, 1] = y_c - h_half - boxes_exp[:, 3] = y_c + h_half - - return boxes_exp - - -def get_category_info(anno_file=None, - with_background=True, - use_default_label=False): - if use_default_label or anno_file is None \ - or not os.path.exists(anno_file): - logger.info("Not found annotation file {}, load " - "coco17 categories.".format(anno_file)) - return coco17_category_info(with_background) - else: - logger.info("Load categories from {}".format(anno_file)) - return get_category_info_from_anno(anno_file, with_background) - - -def get_category_info_from_anno(anno_file, with_background=True): - """ - Get class id to category id map and category id - to category name map from annotation file. - - Args: - anno_file (str): annotation file path - with_background (bool, default True): - whether load background as class 0. - """ - from pycocotools.coco import COCO - coco = COCO(anno_file) - cats = coco.loadCats(coco.getCatIds()) - clsid2catid = { - i + int(with_background): cat['id'] - for i, cat in enumerate(cats) - } - catid2name = {cat['id']: cat['name'] for cat in cats} - - return clsid2catid, catid2name - - -def coco17_category_info(with_background=True): - """ - Get class id to category id map and category id - to category name map of COCO2017 dataset - - Args: - with_background (bool, default True): - whether load background as class 0. - """ - clsid2catid = { - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9, - 10: 10, - 11: 11, - 12: 13, - 13: 14, - 14: 15, - 15: 16, - 16: 17, - 17: 18, - 18: 19, - 19: 20, - 20: 21, - 21: 22, - 22: 23, - 23: 24, - 24: 25, - 25: 27, - 26: 28, - 27: 31, - 28: 32, - 29: 33, - 30: 34, - 31: 35, - 32: 36, - 33: 37, - 34: 38, - 35: 39, - 36: 40, - 37: 41, - 38: 42, - 39: 43, - 40: 44, - 41: 46, - 42: 47, - 43: 48, - 44: 49, - 45: 50, - 46: 51, - 47: 52, - 48: 53, - 49: 54, - 50: 55, - 51: 56, - 52: 57, - 53: 58, - 54: 59, - 55: 60, - 56: 61, - 57: 62, - 58: 63, - 59: 64, - 60: 65, - 61: 67, - 62: 70, - 63: 72, - 64: 73, - 65: 74, - 66: 75, - 67: 76, - 68: 77, - 69: 78, - 70: 79, - 71: 80, - 72: 81, - 73: 82, - 74: 84, - 75: 85, - 76: 86, - 77: 87, - 78: 88, - 79: 89, - 80: 90 - } - - catid2name = { - 0: 'background', - 1: 'person', - 2: 'bicycle', - 3: 'car', - 4: 'motorcycle', - 5: 'airplane', - 6: 'bus', - 7: 'train', - 8: 'truck', - 9: 'boat', - 10: 'traffic light', - 11: 'fire hydrant', - 13: 'stop sign', - 14: 'parking meter', - 15: 'bench', - 16: 'bird', - 17: 'cat', - 18: 'dog', - 19: 'horse', - 20: 'sheep', - 21: 'cow', - 22: 'elephant', - 23: 'bear', - 24: 'zebra', - 25: 'giraffe', - 27: 'backpack', - 28: 'umbrella', - 31: 'handbag', - 32: 'tie', - 33: 'suitcase', - 34: 'frisbee', - 35: 'skis', - 36: 'snowboard', - 37: 'sports ball', - 38: 'kite', - 39: 'baseball bat', - 40: 'baseball glove', - 41: 'skateboard', - 42: 'surfboard', - 43: 'tennis racket', - 44: 'bottle', - 46: 'wine glass', - 47: 'cup', - 48: 'fork', - 49: 'knife', - 50: 'spoon', - 51: 'bowl', - 52: 'banana', - 53: 'apple', - 54: 'sandwich', - 55: 'orange', - 56: 'broccoli', - 57: 'carrot', - 58: 'hot dog', - 59: 'pizza', - 60: 'donut', - 61: 'cake', - 62: 'chair', - 63: 'couch', - 64: 'potted plant', - 65: 'bed', - 67: 'dining table', - 70: 'toilet', - 72: 'tv', - 73: 'laptop', - 74: 'mouse', - 75: 'remote', - 76: 'keyboard', - 77: 'cell phone', - 78: 'microwave', - 79: 'oven', - 80: 'toaster', - 81: 'sink', - 82: 'refrigerator', - 84: 'book', - 85: 'clock', - 86: 'vase', - 87: 'scissors', - 88: 'teddy bear', - 89: 'hair drier', - 90: 'toothbrush' - } - - if not with_background: - clsid2catid = {k - 1: v for k, v in clsid2catid.items()} - - return clsid2catid, catid2name diff --git a/PaddleCV/PaddleDetection/ppdet/utils/colormap.py b/PaddleCV/PaddleDetection/ppdet/utils/colormap.py deleted file mode 100644 index 566185ef90390e2f45747bee48e3b008f7dfc0e9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/colormap.py +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np - - -def colormap(rgb=False): - """ - Get colormap - """ - color_list = np.array([ - 0.000, 0.447, 0.741, 0.850, 0.325, 0.098, 0.929, 0.694, 0.125, 0.494, - 0.184, 0.556, 0.466, 0.674, 0.188, 0.301, 0.745, 0.933, 0.635, 0.078, - 0.184, 0.300, 0.300, 0.300, 0.600, 0.600, 0.600, 1.000, 0.000, 0.000, - 1.000, 0.500, 0.000, 0.749, 0.749, 0.000, 0.000, 1.000, 0.000, 0.000, - 0.000, 1.000, 0.667, 0.000, 1.000, 0.333, 0.333, 0.000, 0.333, 0.667, - 0.000, 0.333, 1.000, 0.000, 0.667, 0.333, 0.000, 0.667, 0.667, 0.000, - 0.667, 1.000, 0.000, 1.000, 0.333, 0.000, 1.000, 0.667, 0.000, 1.000, - 1.000, 0.000, 0.000, 0.333, 0.500, 0.000, 0.667, 0.500, 0.000, 1.000, - 0.500, 0.333, 0.000, 0.500, 0.333, 0.333, 0.500, 0.333, 0.667, 0.500, - 0.333, 1.000, 0.500, 0.667, 0.000, 0.500, 0.667, 0.333, 0.500, 0.667, - 0.667, 0.500, 0.667, 1.000, 0.500, 1.000, 0.000, 0.500, 1.000, 0.333, - 0.500, 1.000, 0.667, 0.500, 1.000, 1.000, 0.500, 0.000, 0.333, 1.000, - 0.000, 0.667, 1.000, 0.000, 1.000, 1.000, 0.333, 0.000, 1.000, 0.333, - 0.333, 1.000, 0.333, 0.667, 1.000, 0.333, 1.000, 1.000, 0.667, 0.000, - 1.000, 0.667, 0.333, 1.000, 0.667, 0.667, 1.000, 0.667, 1.000, 1.000, - 1.000, 0.000, 1.000, 1.000, 0.333, 1.000, 1.000, 0.667, 1.000, 0.167, - 0.000, 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, - 0.000, 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, - 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, - 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, 0.000, - 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, 0.833, - 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.143, 0.143, 0.143, 0.286, - 0.286, 0.286, 0.429, 0.429, 0.429, 0.571, 0.571, 0.571, 0.714, 0.714, - 0.714, 0.857, 0.857, 0.857, 1.000, 1.000, 1.000 - ]).astype(np.float32) - color_list = color_list.reshape((-1, 3)) * 255 - if not rgb: - color_list = color_list[:, ::-1] - return color_list diff --git a/PaddleCV/PaddleDetection/ppdet/utils/dist_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/dist_utils.py deleted file mode 100644 index 32eead4a797ba70cb6980e0368ff9873102680c2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/dist_utils.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import - -import os - -import paddle.fluid as fluid - - -def nccl2_prepare(trainer_id, startup_prog, main_prog): - config = fluid.DistributeTranspilerConfig() - config.mode = "nccl2" - t = fluid.DistributeTranspiler(config=config) - t.transpile( - trainer_id, - trainers=os.environ.get('PADDLE_TRAINER_ENDPOINTS'), - current_endpoint=os.environ.get('PADDLE_CURRENT_ENDPOINT'), - startup_program=startup_prog, - program=main_prog) - - -def prepare_for_multi_process(exe, build_strategy, startup_prog, main_prog): - trainer_id = int(os.environ.get('PADDLE_TRAINER_ID', 0)) - num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - if num_trainers < 2: - return - build_strategy.num_trainers = num_trainers - build_strategy.trainer_id = trainer_id - nccl2_prepare(trainer_id, startup_prog, main_prog) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/download.py b/PaddleCV/PaddleDetection/ppdet/utils/download.py deleted file mode 100644 index 772e19044c320bc0fb7ba5e75216951915074cf5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/download.py +++ /dev/null @@ -1,361 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import os.path as osp -import shutil -import requests -import tqdm -import hashlib -import tarfile -import zipfile - -from .voc_utils import create_list - -import logging -logger = logging.getLogger(__name__) - -__all__ = ['get_weights_path', 'get_dataset_path'] - -WEIGHTS_HOME = osp.expanduser("~/.cache/paddle/weights") -DATASET_HOME = osp.expanduser("~/.cache/paddle/dataset") - -# dict of {dataset_name: (download_info, sub_dirs)} -# 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', ), - ], ["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', ), - ], ["VOCdevkit/VOC2012", "VOCdevkit/VOC2007"]), - 'wider_face': ([ - ( - 'https://dataset.bj.bcebos.com/wider_face/WIDER_train.zip', - '3fedf70df600953d25982bcd13d91ba2', ), - ( - 'https://dataset.bj.bcebos.com/wider_face/WIDER_val.zip', - 'dfa7d7e790efa35df3788964cf0bbaea', ), - ( - 'https://dataset.bj.bcebos.com/wider_face/wider_face_split.zip', - 'a4a898d6193db4b9ef3260a68bad0dc7', ), - ], ["WIDER_train", "WIDER_val", "wider_face_split"]), - 'fruit': ([( - 'https://dataset.bj.bcebos.com/PaddleDetection_demo/fruit-detection.tar', - 'ee4a1bf2e321b75b0850cc6e063f79d7', ), ], ["fruit-detection"]), - 'objects365': (), -} - -DOWNLOAD_RETRY_LIMIT = 3 - - -def get_weights_path(url): - """Get weights path from WEIGHT_HOME, if not exists, - download it from url. - """ - path, _ = get_path(url, WEIGHTS_HOME) - return 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, annotation, image_dir): - return path - - logger.info("Dataset {} is not valid for reason above, try searching {} or " - "downloading dataset...".format( - osp.realpath(path), DATASET_HOME)) - - for name, dataset in DATASETS.items(): - if os.path.split(path.strip().lower())[-1] == name: - logger.info("Parse dataset_dir {} as dataset " - "{}".format(path, name)) - if name == 'objects365': - raise NotImplementedError( - "Dataset {} is not valid for download automatically." - "Please apply and download the dataset from." - "https://www.objects365.org/download.html") - data_dir = osp.join(DATASET_HOME, name) - - # For voc, only check dir VOCdevkit/VOC2012, VOCdevkit/VOC2007 - if name == 'voc': - exists = True - for sub_dir in dataset[1]: - check_dir = osp.join(data_dir, sub_dir) - if osp.exists(check_dir): - logger.info("Found {}".format(check_dir)) - else: - exists = False - if exists: - return data_dir - - # voc exist is checked above, voc is not exist here - check_exist = name != 'voc' - for url, md5sum in dataset[0]: - get_path(url, data_dir, md5sum, check_exist) - - # voc should create list after download - if name == 'voc': - create_voc_list(data_dir) - return data_dir - - # not match any dataset in DATASETS - raise ValueError("Dataset {} is not valid and cannot parse dataset type " - "'{}' for automaticly downloading, which only supports " - "'voc', 'coco', 'wider_face' and 'fruit' currently".format( - path, osp.split(path)[-1])) - - -def create_voc_list(data_dir, devkit_subdir='VOCdevkit'): - logger.info("Create voc file list...") - devkit_dir = osp.join(data_dir, devkit_subdir) - years = ['2007', '2012'] - - # NOTE: since using auto download VOC - # dataset, VOC default label list should be used, - # do not generate label_list.txt here. For default - # label, see ../data/source/voc_loader.py - create_list(devkit_dir, years, data_dir) - logger.info("Create voc file list finished") - - -def map_path(url, root_dir): - # parse path after download to decompress under root_dir - fname = osp.split(url)[-1] - zip_formats = ['.zip', '.tar', '.gz'] - fpath = fname - for zip_format in zip_formats: - fpath = fpath.replace(zip_format, '') - return osp.join(root_dir, fpath) - - -def get_path(url, root_dir, md5sum=None, check_exist=True): - """ Download from given url to root_dir. - if file or directory specified by url is exists under - root_dir, return the path directly, otherwise download - from url and decompress it, return the path. - - url (str): download url - root_dir (str): root dir for downloading, it should be - WEIGHTS_HOME or DATASET_HOME - md5sum (str): md5 sum of download package - """ - # parse path after download to decompress under root_dir - fullpath = map_path(url, root_dir) - - # For same zip file, decompressed directory name different - # from zip file name, rename by following map - decompress_name_map = { - "VOCtrainval_11-May-2012": "VOCdevkit/VOC2012", - "VOCtrainval_06-Nov-2007": "VOCdevkit/VOC2007", - "VOCtest_06-Nov-2007": "VOCdevkit/VOC2007", - "annotations_trainval": "annotations" - } - for k, v in decompress_name_map.items(): - if fullpath.find(k) >= 0: - fullpath = osp.join(osp.split(fullpath)[0], v) - - exist_flag = False - if osp.exists(fullpath) and check_exist: - exist_flag = True - logger.info("Found {}".format(fullpath)) - else: - exist_flag = False - fullname = _download(url, root_dir, md5sum) - _decompress(fullname) - - return fullpath, exist_flag - - -def download_dataset(path, dataset=None): - if dataset not in DATASETS.keys(): - logger.error("Unknown dataset {}, it should be " - "{}".format(dataset, DATASETS.keys())) - return - dataset_info = DATASETS[dataset][0] - for info in dataset_info: - get_path(info[0], path, info[1], False) - logger.info("Download dataset {} finished.".format(dataset)) - - -def _dataset_exists(path, annotation, image_dir): - """ - Check if user define dataset exists - """ - if not osp.exists(path): - logger.info("Config dataset_dir {} is not exits, " - "dataset config is not valid".format(path)) - return False - - if annotation: - annotation_path = osp.join(path, annotation) - if not osp.isfile(annotation_path): - logger.info("Config annotation {} is not a " - "file, dataset config is not " - "valid".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, dataset config is not " - "valid".format(image_path)) - return False - return True - - -def _download(url, path, md5sum=None): - """ - Download from url, save to path. - - url (str): download url - path (str): download to given path - """ - if not osp.exists(path): - os.makedirs(path) - - fname = osp.split(url)[-1] - fullname = osp.join(path, fname) - retry_cnt = 0 - - while not (osp.exists(fullname) and _md5check(fullname, md5sum)): - if retry_cnt < DOWNLOAD_RETRY_LIMIT: - retry_cnt += 1 - else: - raise RuntimeError("Download from {} failed. " - "Retry limit reached".format(url)) - - logger.info("Downloading {} from {}".format(fname, url)) - - req = requests.get(url, stream=True) - if req.status_code != 200: - raise RuntimeError("Downloading from {} failed with code " - "{}!".format(url, req.status_code)) - - # For protecting download interupted, download to - # tmp_fullname firstly, move tmp_fullname to fullname - # after download finished - tmp_fullname = fullname + "_tmp" - total_size = req.headers.get('content-length') - with open(tmp_fullname, 'wb') as f: - if total_size: - for chunk in tqdm.tqdm( - req.iter_content(chunk_size=1024), - total=(int(total_size) + 1023) // 1024, - unit='KB'): - f.write(chunk) - else: - for chunk in req.iter_content(chunk_size=1024): - if chunk: - f.write(chunk) - shutil.move(tmp_fullname, fullname) - - return fullname - - -def _md5check(fullname, md5sum=None): - if md5sum is None: - return True - - logger.info("File {} md5 checking...".format(fullname)) - md5 = hashlib.md5() - with open(fullname, 'rb') as f: - for chunk in iter(lambda: f.read(4096), b""): - md5.update(chunk) - calc_md5sum = md5.hexdigest() - - if calc_md5sum != md5sum: - logger.info("File {} md5 check failed, {}(calc) != " - "{}(base)".format(fullname, calc_md5sum, md5sum)) - return False - return True - - -def _decompress(fname): - """ - Decompress for zip and tar file - """ - logger.info("Decompressing {}...".format(fname)) - - # For protecting decompressing interupted, - # decompress to fpath_tmp directory firstly, if decompress - # successed, move decompress files to fpath and delete - # fpath_tmp and remove download compress file. - fpath = osp.split(fname)[0] - fpath_tmp = osp.join(fpath, 'tmp') - if osp.isdir(fpath_tmp): - shutil.rmtree(fpath_tmp) - os.makedirs(fpath_tmp) - - if fname.find('tar') >= 0: - with tarfile.open(fname) as tf: - tf.extractall(path=fpath_tmp) - elif fname.find('zip') >= 0: - with zipfile.ZipFile(fname) as zf: - zf.extractall(path=fpath_tmp) - else: - raise TypeError("Unsupport compress file type {}".format(fname)) - - for f in os.listdir(fpath_tmp): - src_dir = osp.join(fpath_tmp, f) - dst_dir = osp.join(fpath, f) - _move_and_merge_tree(src_dir, dst_dir) - - shutil.rmtree(fpath_tmp) - os.remove(fname) - - -def _move_and_merge_tree(src, dst): - """ - Move src directory to dst, if dst is already exists, - merge src to dst - """ - if not osp.exists(dst): - shutil.move(src, dst) - else: - for fp in os.listdir(src): - src_fp = osp.join(src, fp) - dst_fp = osp.join(dst, fp) - if osp.isdir(src_fp): - if osp.isdir(dst_fp): - _move_and_merge_tree(src_fp, dst_fp) - else: - shutil.move(src_fp, dst_fp) - elif osp.isfile(src_fp) and \ - not osp.isfile(dst_fp): - shutil.move(src_fp, dst_fp) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py deleted file mode 100644 index dbded30197b46e12282d50991406a6585c0cb572..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/eval_utils.py +++ /dev/null @@ -1,247 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import logging -import numpy as np -import os -import time - -import paddle.fluid as fluid - -from ppdet.utils.voc_eval import bbox_eval as voc_bbox_eval -from ppdet.utils.post_process import mstest_box_post_process, mstest_mask_post_process, box_flip - -__all__ = ['parse_fetches', 'eval_run', 'eval_results', 'json_eval_results'] - -logger = logging.getLogger(__name__) - - -def parse_fetches(fetches, prog=None, extra_keys=None): - """ - Parse fetch variable infos from model fetches, - values for fetch_list and keys for stat - """ - keys, values = [], [] - cls = [] - for k, v in fetches.items(): - if hasattr(v, 'name'): - keys.append(k) - v.persistable = True - values.append(v.name) - else: - cls.append(v) - - if prog is not None and extra_keys is not None: - for k in extra_keys: - try: - v = fluid.framework._get_var(k, prog) - keys.append(k) - values.append(v.name) - except Exception: - pass - - return keys, values, cls - - -def length2lod(length_lod): - offset_lod = [0] - for i in length_lod: - offset_lod.append(offset_lod[-1] + i) - return [offset_lod] - - -def get_sub_feed(input, place): - new_dict = {} - res_feed = {} - key_name = ['bbox', 'im_info', 'im_id', 'im_shape', 'bbox_flip'] - for k in key_name: - if k in input.keys(): - new_dict[k] = input[k] - for k in input.keys(): - if 'image' in k: - new_dict[k] = input[k] - for k, v in new_dict.items(): - data_t = fluid.LoDTensor() - data_t.set(v[0], place) - if 'bbox' in k: - lod = length2lod(v[1][0]) - data_t.set_lod(lod) - res_feed[k] = data_t - return res_feed - - -def clean_res(result, keep_name_list): - clean_result = {} - for k in result.keys(): - if k in keep_name_list: - clean_result[k] = result[k] - result.clear() - return clean_result - - -def eval_run(exe, - compile_program, - pyreader, - keys, - values, - cls, - cfg=None, - sub_prog=None, - sub_keys=None, - sub_values=None): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - if len(cls) != 0: - values = [] - for i in range(len(cls)): - _, accum_map = cls[i].get_map_var() - cls[i].reset(exe) - values.append(accum_map) - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - - try: - pyreader.start() - while True: - outs = exe.run(compile_program, - fetch_list=values, - return_numpy=False) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - multi_scale_test = getattr(cfg, 'MultiScaleTEST', None) - mask_multi_scale_test = multi_scale_test and 'Mask' in cfg.architecture - - if multi_scale_test: - post_res = mstest_box_post_process(res, cfg) - res.update(post_res) - if mask_multi_scale_test: - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - sub_feed = get_sub_feed(res, place) - sub_prog_outs = exe.run(sub_prog, - feed=sub_feed, - fetch_list=sub_values, - return_numpy=False) - sub_prog_res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(sub_keys, sub_prog_outs) - } - post_res = mstest_mask_post_process(sub_prog_res, cfg) - res.update(post_res) - if multi_scale_test: - res = clean_res( - res, ['im_info', 'bbox', 'im_id', 'im_shape', 'mask']) - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - except (StopIteration, fluid.core.EOFException): - pyreader.reset() - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def eval_results(results, - feed, - metric, - num_classes, - resolution=None, - is_bbox_normalized=False, - output_directory=None, - map_type='11point'): - """Evaluation for evaluation program results""" - box_ap_stats = [] - if metric == 'COCO': - from ppdet.utils.coco_eval import proposal_eval, bbox_eval, mask_eval - anno_file = getattr(feed.dataset, 'annotation', None) - with_background = getattr(feed, 'with_background', True) - if 'proposal' in results[0]: - output = 'proposal.json' - if output_directory: - output = os.path.join(output_directory, 'proposal.json') - proposal_eval(results, anno_file, output) - if 'bbox' in results[0]: - output = 'bbox.json' - if output_directory: - output = os.path.join(output_directory, 'bbox.json') - - box_ap_stats = bbox_eval( - results, - anno_file, - output, - with_background, - is_bbox_normalized=is_bbox_normalized) - - if 'mask' in results[0]: - output = 'mask.json' - if output_directory: - output = os.path.join(output_directory, 'mask.json') - mask_eval(results, anno_file, output, resolution) - else: - if 'accum_map' in results[-1]: - res = np.mean(results[-1]['accum_map'][0]) - logger.info('mAP: {:.2f}'.format(res * 100.)) - box_ap_stats.append(res * 100.) - elif 'bbox' in results[0]: - box_ap = voc_bbox_eval( - results, - num_classes, - is_bbox_normalized=is_bbox_normalized, - map_type=map_type) - box_ap_stats.append(box_ap) - return box_ap_stats - - -def json_eval_results(feed, metric, json_directory=None): - """ - cocoapi eval with already exists proposal.json, bbox.json or mask.json - """ - assert metric == 'COCO' - from ppdet.utils.coco_eval import cocoapi_eval - anno_file = getattr(feed.dataset, 'annotation', None) - json_file_list = ['proposal.json', 'bbox.json', 'mask.json'] - if json_directory: - assert os.path.exists( - json_directory), "The json directory:{} does not exist".format( - json_directory) - for k, v in enumerate(json_file_list): - json_file_list[k] = os.path.join(str(json_directory), v) - - coco_eval_style = ['proposal', 'bbox', 'segm'] - for i, v_json in enumerate(json_file_list): - if os.path.exists(v_json): - cocoapi_eval(v_json, coco_eval_style[i], anno_file=anno_file) - else: - logger.info("{} not exists!".format(v_json)) diff --git a/PaddleCV/PaddleDetection/ppdet/utils/map_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/map_utils.py deleted file mode 100644 index fe0530596bb54920a81235ee6716e2d43918899a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/map_utils.py +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import sys -import numpy as np -import logging -logger = logging.getLogger(__name__) - -__all__ = ['bbox_area', 'jaccard_overlap', 'DetectionMAP'] - - -def bbox_area(bbox, is_bbox_normalized): - """ - Calculate area of a bounding box - """ - norm = 1. - float(is_bbox_normalized) - width = bbox[2] - bbox[0] + norm - height = bbox[3] - bbox[1] + norm - return width * height - - -def jaccard_overlap(pred, gt, is_bbox_normalized=False): - """ - Calculate jaccard overlap ratio between two bounding box - """ - if pred[0] >= gt[2] or pred[2] <= gt[0] or \ - pred[1] >= gt[3] or pred[3] <= gt[1]: - return 0. - inter_xmin = max(pred[0], gt[0]) - inter_ymin = max(pred[1], gt[1]) - inter_xmax = min(pred[2], gt[2]) - inter_ymax = min(pred[3], gt[3]) - inter_size = bbox_area([inter_xmin, inter_ymin, inter_xmax, inter_ymax], - is_bbox_normalized) - pred_size = bbox_area(pred, is_bbox_normalized) - gt_size = bbox_area(gt, is_bbox_normalized) - overlap = float(inter_size) / (pred_size + gt_size - inter_size) - return overlap - - -class DetectionMAP(object): - """ - Calculate detection mean average precision. - Currently support two types: 11point and integral - - Args: - class_num (int): the class number. - overlap_thresh (float): The threshold of overlap - ratio between prediction bounding box and - ground truth bounding box for deciding - true/false positive. Default 0.5. - map_type (str): calculation method of mean average - precision, currently support '11point' and - 'integral'. Default '11point'. - is_bbox_normalized (bool): whther bounding boxes - is normalized to range[0, 1]. Default False. - evaluate_difficult (bool): whether to evaluate - difficult bounding boxes. Default False. - """ - - def __init__(self, - class_num, - overlap_thresh=0.5, - map_type='11point', - is_bbox_normalized=False, - evaluate_difficult=False): - self.class_num = class_num - self.overlap_thresh = overlap_thresh - assert map_type in ['11point', 'integral'], \ - "map_type currently only support '11point' "\ - "and 'integral'" - self.map_type = map_type - self.is_bbox_normalized = is_bbox_normalized - self.evaluate_difficult = evaluate_difficult - self.reset() - - def update(self, bbox, gt_box, gt_label, difficult=None): - """ - Update metric statics from given prediction and ground - truth infomations. - """ - if difficult is None: - difficult = np.zeros_like(gt_label) - - # record class gt count - for gtl, diff in zip(gt_label, difficult): - if self.evaluate_difficult or int(diff) == 0: - self.class_gt_counts[int(np.array(gtl))] += 1 - - # record class score positive - visited = [False] * len(gt_label) - for b in bbox: - label, score, xmin, ymin, xmax, ymax = b.tolist() - pred = [xmin, ymin, xmax, ymax] - max_idx = -1 - max_overlap = -1.0 - for i, gl in enumerate(gt_label): - if int(gl) == int(label): - overlap = jaccard_overlap(pred, gt_box[i], - self.is_bbox_normalized) - if overlap > max_overlap: - max_overlap = overlap - max_idx = i - - if max_overlap > self.overlap_thresh: - if self.evaluate_difficult or \ - int(np.array(difficult[max_idx])) == 0: - if not visited[max_idx]: - self.class_score_poss[int(label)].append([score, 1.0]) - visited[max_idx] = True - else: - self.class_score_poss[int(label)].append([score, 0.0]) - else: - self.class_score_poss[int(label)].append([score, 0.0]) - - def reset(self): - """ - Reset metric statics - """ - self.class_score_poss = [[] for _ in range(self.class_num)] - self.class_gt_counts = [0] * self.class_num - self.mAP = None - - def accumulate(self): - """ - Accumulate metric results and calculate mAP - """ - mAP = 0. - valid_cnt = 0 - for score_pos, count in zip(self.class_score_poss, - self.class_gt_counts): - if count == 0 or len(score_pos) == 0: - continue - - accum_tp_list, accum_fp_list = \ - self._get_tp_fp_accum(score_pos) - precision = [] - recall = [] - for ac_tp, ac_fp in zip(accum_tp_list, accum_fp_list): - precision.append(float(ac_tp) / (ac_tp + ac_fp)) - recall.append(float(ac_tp) / count) - - if self.map_type == '11point': - max_precisions = [0.] * 11 - start_idx = len(precision) - 1 - for j in range(10, -1, -1): - for i in range(start_idx, -1, -1): - if recall[i] < float(j) / 10.: - start_idx = i - if j > 0: - max_precisions[j - 1] = max_precisions[j] - break - else: - if max_precisions[j] < precision[i]: - max_precisions[j] = precision[i] - mAP += sum(max_precisions) / 11. - valid_cnt += 1 - elif self.map_type == 'integral': - import math - ap = 0. - prev_recall = 0. - for i in range(len(precision)): - recall_gap = math.fabs(recall[i] - prev_recall) - if recall_gap > 1e-6: - ap += precision[i] * recall_gap - prev_recall = recall[i] - mAP += ap - valid_cnt += 1 - else: - logger.error("Unspported mAP type {}".format(self.map_type)) - sys.exit(1) - - self.mAP = mAP / float(valid_cnt) if valid_cnt > 0 else mAP - - def get_map(self): - """ - Get mAP result - """ - if self.mAP is None: - logger.error("mAP is not calculated.") - return self.mAP - - def _get_tp_fp_accum(self, score_pos_list): - """ - Calculate accumulating true/false positive results from - [score, pos] records - """ - sorted_list = sorted(score_pos_list, key=lambda s: s[0], reverse=True) - accum_tp = 0 - accum_fp = 0 - accum_tp_list = [] - accum_fp_list = [] - for (score, pos) in sorted_list: - accum_tp += int(pos) - accum_tp_list.append(accum_tp) - accum_fp += 1 - int(pos) - accum_fp_list.append(accum_fp) - return accum_tp_list, accum_fp_list diff --git a/PaddleCV/PaddleDetection/ppdet/utils/post_process.py b/PaddleCV/PaddleDetection/ppdet/utils/post_process.py deleted file mode 100644 index cc80bc186626c4e983328ffd53f53d217230a244..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/post_process.py +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import logging -import numpy as np - -import paddle.fluid as fluid - -__all__ = ['nms'] - -logger = logging.getLogger(__name__) - - -def box_flip(boxes, im_shape): - im_width = im_shape[0][1] - flipped_boxes = boxes.copy() - - flipped_boxes[:, 0::4] = im_width - boxes[:, 2::4] - 1 - flipped_boxes[:, 2::4] = im_width - boxes[:, 0::4] - 1 - return flipped_boxes - - -def nms(dets, thresh): - """Apply classic DPM-style greedy NMS.""" - if dets.shape[0] == 0: - return [] - scores = dets[:, 0] - x1 = dets[:, 1] - y1 = dets[:, 2] - x2 = dets[:, 3] - y2 = dets[:, 4] - - areas = (x2 - x1 + 1) * (y2 - y1 + 1) - order = scores.argsort()[::-1] - - ndets = dets.shape[0] - suppressed = np.zeros((ndets), dtype=np.int) - - # nominal indices - # _i, _j - # sorted indices - # i, j - # temp variables for box i's (the box currently under consideration) - # ix1, iy1, ix2, iy2, iarea - - # variables for computing overlap with box j (lower scoring box) - # xx1, yy1, xx2, yy2 - # w, h - # inter, ovr - - for _i in range(ndets): - i = order[_i] - if suppressed[i] == 1: - continue - ix1 = x1[i] - iy1 = y1[i] - ix2 = x2[i] - iy2 = y2[i] - iarea = areas[i] - for _j in range(_i + 1, ndets): - j = order[_j] - if suppressed[j] == 1: - continue - xx1 = max(ix1, x1[j]) - yy1 = max(iy1, y1[j]) - xx2 = min(ix2, x2[j]) - yy2 = min(iy2, y2[j]) - w = max(0.0, xx2 - xx1 + 1) - h = max(0.0, yy2 - yy1 + 1) - inter = w * h - ovr = inter / (iarea + areas[j] - inter) - if ovr >= thresh: - suppressed[j] = 1 - - return np.where(suppressed == 0)[0] - - -def bbox_area(box): - w = box[2] - box[0] + 1 - h = box[3] - box[1] + 1 - return w * h - - -def bbox_overlaps(x, y): - N = x.shape[0] - K = y.shape[0] - overlaps = np.zeros((N, K), dtype=np.float32) - for k in range(K): - y_area = bbox_area(y[k]) - for n in range(N): - iw = min(x[n, 2], y[k, 2]) - max(x[n, 0], y[k, 0]) + 1 - if iw > 0: - ih = min(x[n, 3], y[k, 3]) - max(x[n, 1], y[k, 1]) + 1 - if ih > 0: - x_area = bbox_area(x[n]) - ua = x_area + y_area - iw * ih - overlaps[n, k] = iw * ih / ua - return overlaps - - -def box_voting(nms_dets, dets, vote_thresh): - top_dets = nms_dets.copy() - top_boxes = nms_dets[:, 1:] - all_boxes = dets[:, 1:] - all_scores = dets[:, 0] - top_to_all_overlaps = bbox_overlaps(top_boxes, all_boxes) - for k in range(nms_dets.shape[0]): - inds_to_vote = np.where(top_to_all_overlaps[k] >= vote_thresh)[0] - boxes_to_vote = all_boxes[inds_to_vote, :] - ws = all_scores[inds_to_vote] - top_dets[k, 1:] = np.average(boxes_to_vote, axis=0, weights=ws) - - return top_dets - - -def get_nms_result(boxes, scores, cfg): - cls_boxes = [[] for _ in range(cfg.num_classes)] - for j in range(1, cfg.num_classes): - inds = np.where(scores[:, j] > cfg.MultiScaleTEST['score_thresh'])[0] - scores_j = scores[inds, j] - boxes_j = boxes[inds, j * 4:(j + 1) * 4] - dets_j = np.hstack((scores_j[:, np.newaxis], boxes_j)).astype( - np.float32, copy=False) - keep = nms(dets_j, cfg.MultiScaleTEST['nms_thresh']) - nms_dets = dets_j[keep, :] - if cfg.MultiScaleTEST['enable_voting']: - nms_dets = box_voting(nms_dets, dets_j, - cfg.MultiScaleTEST['vote_thresh']) - #add labels - label = np.array([j for _ in range(len(keep))]) - nms_dets = np.hstack((label[:, np.newaxis], nms_dets)).astype( - np.float32, copy=False) - cls_boxes[j] = nms_dets - # Limit to max_per_image detections **over all classes** - image_scores = np.hstack( - [cls_boxes[j][:, 1] for j in range(1, cfg.num_classes)]) - if len(image_scores) > cfg.MultiScaleTEST['detections_per_im']: - image_thresh = np.sort(image_scores)[-cfg.MultiScaleTEST[ - 'detections_per_im']] - for j in range(1, cfg.num_classes): - keep = np.where(cls_boxes[j][:, 1] >= image_thresh)[0] - cls_boxes[j] = cls_boxes[j][keep, :] - - im_results = np.vstack([cls_boxes[j] for j in range(1, cfg.num_classes)]) - return im_results - - -def mstest_box_post_process(result, cfg): - """ - Multi-scale Test - Only available for batch_size=1 now. - """ - post_bbox = {} - use_flip = False - ms_boxes = [] - ms_scores = [] - im_shape = result['im_shape'][0] - for k in result.keys(): - if 'bbox' in k: - boxes = result[k][0] - boxes = np.reshape(boxes, (-1, 4 * cfg.num_classes)) - scores = result['score' + k[4:]][0] - if 'flip' in k: - boxes = box_flip(boxes, im_shape) - use_flip = True - ms_boxes.append(boxes) - ms_scores.append(scores) - - ms_boxes = np.concatenate(ms_boxes) - ms_scores = np.concatenate(ms_scores) - bbox_pred = get_nms_result(ms_boxes, ms_scores, cfg) - post_bbox.update({'bbox': (bbox_pred, [[len(bbox_pred)]])}) - if use_flip: - bbox = bbox_pred[:, 2:] - bbox_flip = np.append( - bbox_pred[:, :2], box_flip(bbox, im_shape), axis=1) - post_bbox.update({'bbox_flip': (bbox_flip, [[len(bbox_flip)]])}) - return post_bbox - - -def mstest_mask_post_process(result, cfg): - mask_list = [] - im_shape = result['im_shape'][0] - M = cfg.FPNRoIAlign['mask_resolution'] - for k in result.keys(): - if 'mask' in k: - masks = result[k][0] - if len(masks.shape) != 4: - masks = np.zeros((0, M, M)) - mask_list.append(masks) - continue - if 'flip' in k: - masks = masks[:, :, :, ::-1] - mask_list.append(masks) - - mask_pred = np.mean(mask_list, axis=0) - return {'mask': (mask_pred, [[len(mask_pred)]])} diff --git a/PaddleCV/PaddleDetection/ppdet/utils/stats.py b/PaddleCV/PaddleDetection/ppdet/utils/stats.py deleted file mode 100644 index 4d7e36babf8d53170162cfd5581f591e376ec8cd..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/stats.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import collections -import numpy as np -import datetime - -__all__ = ['TrainingStats', 'Time'] - - -class SmoothedValue(object): - """Track a series of values and provide access to smoothed values over a - window or the global series average. - """ - - def __init__(self, window_size): - self.deque = collections.deque(maxlen=window_size) - - def add_value(self, value): - self.deque.append(value) - - def get_median_value(self): - return np.median(self.deque) - - -def Time(): - return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') - - -class TrainingStats(object): - def __init__(self, window_size, stats_keys): - self.smoothed_losses_and_metrics = { - key: SmoothedValue(window_size) - for key in stats_keys - } - - def update(self, stats): - for k, v in self.smoothed_losses_and_metrics.items(): - v.add_value(stats[k]) - - def get(self, extras=None): - stats = collections.OrderedDict() - if extras: - for k, v in extras.items(): - stats[k] = v - for k, v in self.smoothed_losses_and_metrics.items(): - stats[k] = format(v.get_median_value(), '.6f') - - return stats - - def log(self, extras=None): - d = self.get(extras) - strs = ', '.join(str(dict({x: y})).strip('{}') for x, y in d.items()) - return strs diff --git a/PaddleCV/PaddleDetection/ppdet/utils/visualizer.py b/PaddleCV/PaddleDetection/ppdet/utils/visualizer.py deleted file mode 100644 index ff35dc2d577fcaff042583d63c709a498dadb1da..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/visualizer.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np -import pycocotools.mask as mask_util -from PIL import Image, ImageDraw - -from .colormap import colormap - -__all__ = ['visualize_results'] - - -def visualize_results(image, - im_id, - catid2name, - threshold=0.5, - bbox_results=None, - mask_results=None): - """ - Visualize bbox and mask results - """ - if mask_results: - image = draw_mask(image, im_id, mask_results, threshold) - if bbox_results: - image = draw_bbox(image, im_id, catid2name, bbox_results, - threshold) - return image - - -def draw_mask(image, im_id, segms, threshold, alpha=0.7): - """ - Draw mask on image - """ - mask_color_id = 0 - w_ratio = .4 - color_list = colormap(rgb=True) - img_array = np.array(image).astype('float32') - for dt in np.array(segms): - if im_id != dt['image_id']: - continue - segm, score = dt['segmentation'], dt['score'] - if score < threshold: - continue - mask = mask_util.decode(segm) * 255 - color_mask = color_list[mask_color_id % len(color_list), 0:3] - mask_color_id += 1 - for c in range(3): - color_mask[c] = color_mask[c] * (1 - w_ratio) + w_ratio * 255 - idx = np.nonzero(mask) - img_array[idx[0], idx[1], :] *= 1.0 - alpha - img_array[idx[0], idx[1], :] += alpha * color_mask - return Image.fromarray(img_array.astype('uint8')) - - -def draw_bbox(image, im_id, catid2name, bboxes, threshold): - """ - Draw bbox on image - """ - draw = ImageDraw.Draw(image) - - catid2color = {} - color_list = colormap(rgb=True)[:40] - for dt in np.array(bboxes): - if im_id != dt['image_id']: - continue - catid, bbox, score = dt['category_id'], dt['bbox'], dt['score'] - if score < threshold: - continue - - xmin, ymin, w, h = bbox - xmax = xmin + w - ymax = ymin + h - - if catid not in catid2color: - idx = np.random.randint(len(color_list)) - catid2color[catid] = color_list[idx] - color = tuple(catid2color[catid]) - - # draw bbox - draw.line( - [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin), - (xmin, ymin)], - width=2, - fill=color) - - # draw label - text = "{} {:.2f}".format(catid2name[catid], score) - tw, th = draw.textsize(text) - draw.rectangle([(xmin + 1, ymin - th), - (xmin + tw + 1, ymin)], - fill=color) - draw.text((xmin + 1, ymin - th), text, fill=(255, 255, 255)) - - return image diff --git a/PaddleCV/PaddleDetection/ppdet/utils/voc_eval.py b/PaddleCV/PaddleDetection/ppdet/utils/voc_eval.py deleted file mode 100644 index 67e66e4c683aaf7d5af2fd352817daf1ad3576d4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/voc_eval.py +++ /dev/null @@ -1,186 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import os -import sys -import numpy as np - -from ..data.source.voc_loader import pascalvoc_label -from .map_utils import DetectionMAP -from .coco_eval import bbox2out - -import logging -logger = logging.getLogger(__name__) - -__all__ = [ - 'bbox_eval', 'bbox2out', 'get_category_info' -] - - -def bbox_eval(results, - class_num, - overlap_thresh=0.5, - map_type='11point', - is_bbox_normalized=False, - evaluate_difficult=False): - """ - Bounding box evaluation for VOC dataset - - Args: - results (list): prediction bounding box results. - class_num (int): evaluation class number. - overlap_thresh (float): the postive threshold of - bbox overlap - map_type (string): method for mAP calcualtion, - can only be '11point' or 'integral' - is_bbox_normalized (bool): whether bbox is normalized - to range [0, 1]. - evaluate_difficult (bool): whether to evaluate - difficult gt bbox. - """ - assert 'bbox' in results[0] - logger.info("Start evaluate...") - - detection_map = DetectionMAP(class_num=class_num, - overlap_thresh=overlap_thresh, - map_type=map_type, - is_bbox_normalized=is_bbox_normalized, - evaluate_difficult=evaluate_difficult) - - for t in results: - bboxes = t['bbox'][0] - bbox_lengths = t['bbox'][1][0] - - if bboxes.shape == (1, 1) or bboxes is None: - continue - - gt_boxes = t['gt_box'][0] - gt_labels = t['gt_label'][0] - difficults = t['is_difficult'][0] if not evaluate_difficult \ - else None - - if len(t['gt_box'][1]) == 0: - # gt_box, gt_label, difficult read as zero padded Tensor - bbox_idx = 0 - for i in range(len(gt_boxes)): - gt_box = gt_boxes[i] - gt_label = gt_labels[i] - difficult = None if difficults is None \ - else difficults[i] - bbox_num = bbox_lengths[i] - bbox = bboxes[bbox_idx: bbox_idx + bbox_num] - gt_box, gt_label, difficult = prune_zero_padding( - gt_box, gt_label, difficult) - detection_map.update(bbox, gt_box, gt_label, difficult) - bbox_idx += bbox_num - else: - # gt_box, gt_label, difficult read as LoDTensor - gt_box_lengths = t['gt_box'][1][0] - bbox_idx = 0 - gt_box_idx = 0 - for i in range(len(bbox_lengths)): - bbox_num = bbox_lengths[i] - gt_box_num = gt_box_lengths[i] - bbox = bboxes[bbox_idx: bbox_idx + bbox_num] - gt_box = gt_boxes[gt_box_idx: gt_box_idx + gt_box_num] - gt_label = gt_labels[gt_box_idx: gt_box_idx + gt_box_num] - difficult = None if difficults is None else \ - difficults[gt_box_idx: gt_box_idx + gt_box_num] - detection_map.update(bbox, gt_box, gt_label, difficult) - bbox_idx += bbox_num - gt_box_idx += gt_box_num - - logger.info("Accumulating evaluatation results...") - detection_map.accumulate() - map_stat = 100. * detection_map.get_map() - logger.info("mAP({:.2f}, {}) = {:.2f}".format(overlap_thresh, - map_type, map_stat)) - return map_stat - - -def prune_zero_padding(gt_box, gt_label, difficult=None): - valid_cnt = 0 - for i in range(len(gt_box)): - if gt_box[i, 0] == 0 and gt_box[i, 1] == 0 and \ - gt_box[i, 2] == 0 and gt_box[i, 3] == 0: - break - valid_cnt += 1 - return (gt_box[:valid_cnt], gt_label[:valid_cnt], - difficult[:valid_cnt] if difficult is not None else None) - - -def get_category_info(anno_file=None, - with_background=True, - use_default_label=False): - if use_default_label or anno_file is None \ - or not os.path.exists(anno_file): - logger.info("Not found annotation file {}, load " - "voc2012 categories.".format(anno_file)) - return vocall_category_info(with_background) - else: - logger.info("Load categories from {}".format(anno_file)) - return get_category_info_from_anno(anno_file, with_background) - - -def get_category_info_from_anno(anno_file, with_background=True): - """ - Get class id to category id map and category id - to category name map from annotation file. - - Args: - anno_file (str): annotation file path - with_background (bool, default True): - whether load background as class 0. - """ - cats = [] - with open(anno_file) as f: - for line in f.readlines(): - cats.append(line.strip()) - - if cats[0] != 'background' and with_background: - cats.insert(0, 'background') - if cats[0] == 'background' and not with_background: - cats = cats[1:] - - clsid2catid = {i: i for i in range(len(cats))} - catid2name = {i: name for i, name in enumerate(cats)} - - return clsid2catid, catid2name - - -def vocall_category_info(with_background=True): - """ - Get class id to category id map and category id - to category name map of mixup voc dataset - - Args: - with_background (bool, default True): - whether load background as class 0. - """ - label_map = pascalvoc_label(with_background) - label_map = sorted(label_map.items(), key=lambda x: x[1]) - cats = [l[0] for l in label_map] - - if with_background: - cats.insert(0, 'background') - - clsid2catid = {i: i for i in range(len(cats))} - catid2name = {i: name for i, name in enumerate(cats)} - - return clsid2catid, catid2name diff --git a/PaddleCV/PaddleDetection/ppdet/utils/voc_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/voc_utils.py deleted file mode 100644 index 88252e2351164cf3402e94a2c0e6f49277d7736b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/voc_utils.py +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import os.path as osp -import re -import random -import shutil - -__all__ = ['create_list'] - - -def create_list(devkit_dir, years, output_dir): - """ - create following list: - 1. trainval.txt - 2. test.txt - """ - trainval_list = [] - test_list = [] - for year in years: - trainval, test = _walk_voc_dir(devkit_dir, year, output_dir) - trainval_list.extend(trainval) - test_list.extend(test) - - random.shuffle(trainval_list) - with open(osp.join(output_dir, 'trainval.txt'), 'w') as ftrainval: - for item in trainval_list: - ftrainval.write(item[0] + ' ' + item[1] + '\n') - - with open(osp.join(output_dir, 'test.txt'), 'w') as fval: - ct = 0 - for item in test_list: - ct += 1 - fval.write(item[0] + ' ' + item[1] + '\n') - - -def _get_voc_dir(devkit_dir, year, type): - return osp.join(devkit_dir, 'VOC' + year, type) - - -def _walk_voc_dir(devkit_dir, year, output_dir): - filelist_dir = _get_voc_dir(devkit_dir, year, 'ImageSets/Main') - annotation_dir = _get_voc_dir(devkit_dir, year, 'Annotations') - img_dir = _get_voc_dir(devkit_dir, year, 'JPEGImages') - trainval_list = [] - test_list = [] - added = set() - - for _, _, files in os.walk(filelist_dir): - for fname in files: - img_ann_list = [] - if re.match('[a-z]+_trainval\.txt', fname): - img_ann_list = trainval_list - elif re.match('[a-z]+_test\.txt', fname): - img_ann_list = test_list - else: - continue - fpath = osp.join(filelist_dir, fname) - for line in open(fpath): - name_prefix = line.strip().split()[0] - if name_prefix in added: - continue - added.add(name_prefix) - ann_path = osp.join(osp.relpath(annotation_dir, output_dir), - name_prefix + '.xml') - img_path = osp.join(osp.relpath(img_dir, output_dir), - name_prefix + '.jpg') - img_ann_list.append((img_path, ann_path)) - - return trainval_list, test_list diff --git a/PaddleCV/PaddleDetection/ppdet/utils/widerface_eval_utils.py b/PaddleCV/PaddleDetection/ppdet/utils/widerface_eval_utils.py deleted file mode 100644 index a19cd08350e7be9b3c7db8aa45e95f86b7088bf5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/ppdet/utils/widerface_eval_utils.py +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import numpy as np - -from ppdet.data.source.widerface_loader import widerface_label -from ppdet.utils.coco_eval import bbox2out - -import logging -logger = logging.getLogger(__name__) - -__all__ = [ - 'get_shrink', 'bbox_vote', 'save_widerface_bboxes', 'save_fddb_bboxes', - 'to_chw_bgr', 'bbox2out', 'get_category_info' -] - - -def to_chw_bgr(image): - """ - Transpose image from HWC to CHW and from RBG to BGR. - Args: - image (np.array): an image with HWC and RBG layout. - """ - # HWC to CHW - if len(image.shape) == 3: - image = np.swapaxes(image, 1, 2) - image = np.swapaxes(image, 1, 0) - # RBG to BGR - image = image[[2, 1, 0], :, :] - return image - - -def bbox_vote(det): - order = det[:, 4].ravel().argsort()[::-1] - det = det[order, :] - if det.shape[0] == 0: - dets = np.array([[10, 10, 20, 20, 0.002]]) - det = np.empty(shape=[0, 5]) - while det.shape[0] > 0: - # IOU - area = (det[:, 2] - det[:, 0] + 1) * (det[:, 3] - det[:, 1] + 1) - xx1 = np.maximum(det[0, 0], det[:, 0]) - yy1 = np.maximum(det[0, 1], det[:, 1]) - xx2 = np.minimum(det[0, 2], det[:, 2]) - yy2 = np.minimum(det[0, 3], det[:, 3]) - w = np.maximum(0.0, xx2 - xx1 + 1) - h = np.maximum(0.0, yy2 - yy1 + 1) - inter = w * h - o = inter / (area[0] + area[:] - inter) - - # nms - merge_index = np.where(o >= 0.3)[0] - det_accu = det[merge_index, :] - det = np.delete(det, merge_index, 0) - if merge_index.shape[0] <= 1: - if det.shape[0] == 0: - try: - dets = np.row_stack((dets, det_accu)) - except: - dets = det_accu - continue - det_accu[:, 0:4] = det_accu[:, 0:4] * np.tile(det_accu[:, -1:], (1, 4)) - max_score = np.max(det_accu[:, 4]) - det_accu_sum = np.zeros((1, 5)) - det_accu_sum[:, 0:4] = np.sum(det_accu[:, 0:4], - axis=0) / np.sum(det_accu[:, -1:]) - det_accu_sum[:, 4] = max_score - try: - dets = np.row_stack((dets, det_accu_sum)) - except: - dets = det_accu_sum - dets = dets[0:750, :] - # Only keep 0.3 or more - keep_index = np.where(dets[:, 4] >= 0.01)[0] - dets = dets[keep_index, :] - return dets - - -def get_shrink(height, width): - """ - Args: - height (int): image height. - width (int): image width. - """ - # avoid out of memory - max_shrink_v1 = (0x7fffffff / 577.0 / (height * width))**0.5 - max_shrink_v2 = ((678 * 1024 * 2.0 * 2.0) / (height * width))**0.5 - - def get_round(x, loc): - str_x = str(x) - if '.' in str_x: - str_before, str_after = str_x.split('.') - len_after = len(str_after) - if len_after >= 3: - str_final = str_before + '.' + str_after[0:loc] - return float(str_final) - else: - return x - - max_shrink = get_round(min(max_shrink_v1, max_shrink_v2), 2) - 0.3 - if max_shrink >= 1.5 and max_shrink < 2: - max_shrink = max_shrink - 0.1 - elif max_shrink >= 2 and max_shrink < 3: - max_shrink = max_shrink - 0.2 - elif max_shrink >= 3 and max_shrink < 4: - max_shrink = max_shrink - 0.3 - elif max_shrink >= 4 and max_shrink < 5: - max_shrink = max_shrink - 0.4 - elif max_shrink >= 5: - max_shrink = max_shrink - 0.5 - - shrink = max_shrink if max_shrink < 1 else 1 - return shrink, max_shrink - - -def save_widerface_bboxes(image_path, bboxes_scores, output_dir): - image_name = image_path.split('/')[-1] - image_class = image_path.split('/')[-2] - odir = os.path.join(output_dir, image_class) - if not os.path.exists(odir): - os.makedirs(odir) - - ofname = os.path.join(odir, '%s.txt' % (image_name[:-4])) - f = open(ofname, 'w') - f.write('{:s}\n'.format(image_class + '/' + image_name)) - f.write('{:d}\n'.format(bboxes_scores.shape[0])) - for box_score in bboxes_scores: - xmin, ymin, xmax, ymax, score = box_score - f.write('{:.1f} {:.1f} {:.1f} {:.1f} {:.3f}\n'.format(xmin, ymin, ( - xmax - xmin + 1), (ymax - ymin + 1), score)) - f.close() - logger.info("The predicted result is saved as {}".format(ofname)) - - -def save_fddb_bboxes(bboxes_scores, - output_dir, - output_fname='pred_fddb_res.txt'): - if not os.path.exists(output_dir): - os.makedirs(output_dir) - predict_file = os.path.join(output_dir, output_fname) - f = open(predict_file, 'w') - for image_path, dets in bboxes_scores.iteritems(): - f.write('{:s}\n'.format(image_path)) - f.write('{:d}\n'.format(dets.shape[0])) - for box_score in dets: - xmin, ymin, xmax, ymax, score = box_score - width, height = xmax - xmin, ymax - ymin - f.write('{:.1f} {:.1f} {:.1f} {:.1f} {:.3f}\n' - .format(xmin, ymin, width, height, score)) - logger.info("The predicted result is saved as {}".format(predict_file)) - return predict_file - - -def get_category_info(anno_file=None, - with_background=True, - use_default_label=False): - if use_default_label or anno_file is None \ - or not os.path.exists(anno_file): - logger.info("Not found annotation file {}, load " - "wider-face categories.".format(anno_file)) - return widerfaceall_category_info(with_background) - else: - logger.info("Load categories from {}".format(anno_file)) - return get_category_info_from_anno(anno_file, with_background) - - -def get_category_info_from_anno(anno_file, with_background=True): - """ - Get class id to category id map and category id - to category name map from annotation file. - Args: - anno_file (str): annotation file path - with_background (bool, default True): - whether load background as class 0. - """ - cats = [] - with open(anno_file) as f: - for line in f.readlines(): - cats.append(line.strip()) - - if cats[0] != 'background' and with_background: - cats.insert(0, 'background') - if cats[0] == 'background' and not with_background: - cats = cats[1:] - - clsid2catid = {i: i for i in range(len(cats))} - catid2name = {i: name for i, name in enumerate(cats)} - - return clsid2catid, catid2name - - -def widerfaceall_category_info(with_background=True): - """ - Get class id to category id map and category id - to category name map of mixup wider_face dataset - - Args: - with_background (bool, default True): - whether load background as class 0. - """ - label_map = widerface_label(with_background) - label_map = sorted(label_map.items(), key=lambda x: x[1]) - cats = [l[0] for l in label_map] - - if with_background: - cats.insert(0, 'background') - - clsid2catid = {i: i for i in range(len(cats))} - catid2name = {i: name for i, name in enumerate(cats)} - - return clsid2catid, catid2name diff --git a/PaddleCV/PaddleDetection/requirements.txt b/PaddleCV/PaddleDetection/requirements.txt deleted file mode 100644 index 798b006ad7baa3b4f24b4a7db15a63d6d2e533f4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -tqdm -docstring_parser @ http://github.com/willthefrog/docstring_parser/tarball/master -typeguard ; python_version >= '3.4' -tb-paddle -tb-nightly diff --git a/PaddleCV/PaddleDetection/slim/distillation/README.md b/PaddleCV/PaddleDetection/slim/distillation/README.md deleted file mode 100755 index e46e6a2c92ac502f48d7d929a81b61228ed10d7a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/distillation/README.md +++ /dev/null @@ -1,141 +0,0 @@ ->运行该示例前请安装Paddle1.6或更高版本 - -# 检测模型蒸馏示例 - -## 概述 - -该示例使用PaddleSlim提供的[蒸馏策略](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/tutorial.md#3-蒸馏)对检测库中的模型进行蒸馏训练。 -在阅读该示例前,建议您先了解以下内容: - -- [检测库的常规训练方法](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection) -- [PaddleSlim使用文档](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md) - - -## 配置文件说明 - -关于配置文件如何编写您可以参考: - -- [PaddleSlim配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#122-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8) -- [蒸馏策略配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#23-蒸馏) - -这里以ResNet34-YoloV3蒸馏MobileNetV1-YoloV3模型为例,首先,为了对`student model`和`teacher model`有个总体的认识,从而进一步确认蒸馏的对象,我们通过以下命令分别观察两个网络变量(Variable)的名称和形状: - -```python -# 观察student model的Variable -for v in fluid.default_main_program().list_vars(): - if "py_reader" not in v.name and "double_buffer" not in v.name and "generated_var" not in v.name: - print(v.name, v.shape) -# 观察teacher model的Variable -for v in teacher_program.list_vars(): - print(v.name, v.shape) -``` - -经过对比可以发现,`student model`和`teacher model`的部分中间结果分别为: - -```bash -# student model -conv2d_15.tmp_0 -# teacher model -teacher_teacher_conv2d_1.tmp_0 -``` - - -所以,我们用`l2_distiller`对这两个特征图做蒸馏。在配置文件中进行如下配置: - -```yaml -distillers: - l2_distiller: - class: 'L2Distiller' - teacher_feature_map: 'teacher_teacher_conv2d_1.tmp_0' - student_feature_map: 'conv2d_15.tmp_0' - distillation_loss_weight: 1 -strategies: - distillation_strategy: - class: 'DistillationStrategy' - distillers: ['l2_distiller'] - start_epoch: 0 - end_epoch: 270 -``` - -我们也可以根据上述操作为蒸馏策略选择其他loss,PaddleSlim支持的有`FSP_loss`, `L2_loss`和`softmax_with_cross_entropy_loss` 。 - -## 训练 - -根据[PaddleDetection/tools/train.py](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/tools/train.py)编写压缩脚本compress.py。 -在该脚本中定义了Compressor对象,用于执行压缩任务。 - - - - -您可以通过运行脚本`run.sh`运行该示例。 - - -### 保存断点(checkpoint) - -如果在配置文件中设置了`checkpoint_path`, 则在蒸馏任务执行过程中会自动保存断点,当任务异常中断时, -重启任务会自动从`checkpoint_path`路径下按数字顺序加载最新的checkpoint文件。如果不想让重启的任务从断点恢复, -需要修改配置文件中的`checkpoint_path`,或者将`checkpoint_path`路径下文件清空。 - ->注意:配置文件中的信息不会保存在断点中,重启前对配置文件的修改将会生效。 - - -## 评估 - -如果在配置文件中设置了`checkpoint_path`,则每个epoch会保存一个压缩后的用于评估的模型, -该模型会保存在`${checkpoint_path}/${epoch_id}/eval_model/`路径下,包含`__model__`和`__params__`两个文件。 -其中,`__model__`用于保存模型结构信息,`__params__`用于保存参数(parameters)信息。 - -如果不需要保存评估模型,可以在定义Compressor对象时,将`save_eval_model`选项设置为False(默认为True)。 - -运行命令为: -``` -python ../eval.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --model_name __model__ \ - --params_name __params__ \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" -``` - -## 预测 - -如果在配置文件中设置了`checkpoint_path`,并且在定义Compressor对象时指定了`prune_infer_model`选项,则每个epoch都会 -保存一个`inference model`。该模型是通过删除eval_program中多余的operators而得到的。 - -该模型会保存在`${checkpoint_path}/${epoch_id}/eval_model/`路径下,包含`__model__.infer`和`__params__`两个文件。 -其中,`__model__.infer`用于保存模型结构信息,`__params__`用于保存参数(parameters)信息。 - -更多关于`prune_infer_model`选项的介绍,请参考:[Compressor介绍](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#121-%E5%A6%82%E4%BD%95%E6%94%B9%E5%86%99%E6%99%AE%E9%80%9A%E8%AE%AD%E7%BB%83%E8%84%9A%E6%9C%AC) - -### python预测 - -在脚本slim/infer.py中展示了如何使用fluid python API加载使用预测模型进行预测。 - -运行命令为: -``` -python ../infer.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --model_name __model__.infer \ - --params_name __params__ \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - --infer_dir ../../demo -``` - -### PaddleLite - -该示例中产出的预测(inference)模型可以直接用PaddleLite进行加载使用。 -关于PaddleLite如何使用,请参考:[PaddleLite使用文档](https://github.com/PaddlePaddle/Paddle-Lite/wiki#%E4%BD%BF%E7%94%A8) - -## 示例结果 - ->当前release的结果并非超参调优后的最好结果,仅做示例参考,后续我们会优化当前结果。 - -### MobileNetV1-YOLO-V3 - -| FLOPS |Box AP| -|---|---| -|baseline|76.2 | -|蒸馏后|76.27 | - - -## FAQ diff --git a/PaddleCV/PaddleDetection/slim/distillation/compress.py b/PaddleCV/PaddleDetection/slim/distillation/compress.py deleted file mode 100644 index 6dc4fff9742ec258b30cad4408b5e6f428273495..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/distillation/compress.py +++ /dev/null @@ -1,324 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import multiprocessing -import numpy as np -from collections import deque, OrderedDict -from paddle.fluid.contrib.slim.core import Compressor -from paddle.fluid.framework import IrGraph - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid - -import sys -sys.path.append("../../") -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader -from ppdet.utils.eval_utils import parse_fetches, eval_results -from ppdet.utils.stats import TrainingStats -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def eval_run(exe, compile_program, reader, keys, values, cls, test_feed): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - if len(cls) != 0: - values = [] - for i in range(len(cls)): - _, accum_map = cls[i].get_map_var() - cls[i].reset(exe) - values.append(accum_map) - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - for data in reader(): - data = test_feed.feed(data) - feed_data = {'image': data['image'], 'im_size': data['im_size']} - outs = exe.run(compile_program, - feed=feed_data, - fetch_list=[values[0]], - return_numpy=False) - outs.append(data['gt_box']) - outs.append(data['gt_label']) - outs.append(data['is_difficult']) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def main(): - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int( - os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - if 'train_feed' not in cfg: - train_feed = create(main_arch + 'TrainFeed') - else: - train_feed = create(cfg.train_feed) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - lr_builder = create('LearningRate') - optim_builder = create('OptimizerBuilder') - - # build program - model = create(main_arch) - _, train_feed_vars = create_feed(train_feed, False) - train_fetches = model.train(train_feed_vars) - loss = train_fetches['loss'] - lr = lr_builder() - opt = optim_builder(lr) - opt.minimize(loss) - #for v in fluid.default_main_program().list_vars(): - # if "py_reader" not in v.name and "double_buffer" not in v.name and "generated_var" not in v.name: - # print(v.name, v.shape) - - cfg.max_iters = 258 - train_reader = create_reader(train_feed, cfg.max_iters, FLAGS.dataset_dir) - - exe.run(fluid.default_startup_program()) - - # parse train fetches - train_keys, train_values, _ = parse_fetches(train_fetches) - train_keys.append('lr') - train_values.append(lr.name) - - train_fetch_list = [] - for k, v in zip(train_keys, train_values): - train_fetch_list.append((k, v)) - print("train_fetch_list: {}".format(train_fetch_list)) - - eval_prog = fluid.Program() - startup_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - _, test_feed_vars = create_feed(eval_feed, False) - fetches = model.eval(test_feed_vars) - eval_prog = eval_prog.clone(True) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - test_data_feed = fluid.DataFeeder(test_feed_vars.values(), place) - - # parse eval fetches - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - eval_keys, eval_values, eval_cls = parse_fetches(fetches, eval_prog, - extra_keys) - - eval_fetch_list = [] - for k, v in zip(eval_keys, eval_values): - eval_fetch_list.append((k, v)) - print("eval_fetch_list: {}".format(eval_fetch_list)) - - exe.run(startup_prog) - checkpoint.load_params(exe, - fluid.default_main_program(), cfg.pretrain_weights) - - best_box_ap_list = [] - - def eval_func(program, scope): - results = eval_run(exe, program, eval_reader, eval_keys, eval_values, - eval_cls, test_data_feed) - - resolution = None - is_bbox_normalized = False - if 'mask' in results[0]: - resolution = model.mask_head.resolution - box_ap_stats = eval_results(results, eval_feed, cfg.metric, - cfg.num_classes, resolution, - is_bbox_normalized, FLAGS.output_eval) - if len(best_box_ap_list) == 0: - best_box_ap_list.append(box_ap_stats[0]) - elif box_ap_stats[0] > best_box_ap_list[0]: - best_box_ap_list[0] = box_ap_stats[0] - logger.info("Best test box ap: {}".format(best_box_ap_list[0])) - return best_box_ap_list[0] - - test_feed = [('image', test_feed_vars['image'].name), - ('im_size', test_feed_vars['im_size'].name)] - - teacher_cfg = load_config(FLAGS.teacher_config) - teacher_arch = teacher_cfg.architecture - teacher_programs = [] - teacher_program = fluid.Program() - teacher_startup_program = fluid.Program() - with fluid.program_guard(teacher_program, teacher_startup_program): - with fluid.unique_name.guard('teacher_'): - teacher_feed_vars = OrderedDict() - for name, var in train_feed_vars.items(): - teacher_feed_vars[name] = teacher_program.global_block( - )._clone_variable( - var, force_persistable=False) - model = create(teacher_arch) - train_fetches = model.train(teacher_feed_vars) - #print("="*50+"teacher_model_params"+"="*50) - #for v in teacher_program.list_vars(): - # print(v.name, v.shape) - #return - - exe.run(teacher_startup_program) - assert FLAGS.teacher_pretrained and os.path.exists( - FLAGS.teacher_pretrained - ), "teacher_pretrained should be set when teacher_model is not None." - - def if_exist(var): - return os.path.exists(os.path.join(FLAGS.teacher_pretrained, var.name)) - - fluid.io.load_vars( - exe, - FLAGS.teacher_pretrained, - main_program=teacher_program, - predicate=if_exist) - - teacher_programs.append(teacher_program.clone(for_test=True)) - - com = Compressor( - place, - fluid.global_scope(), - fluid.default_main_program(), - train_reader=train_reader, - train_feed_list=[(key, value.name) - for key, value in train_feed_vars.items()], - train_fetch_list=train_fetch_list, - eval_program=eval_prog, - eval_reader=eval_reader, - eval_feed_list=test_feed, - eval_func={'map': eval_func}, - eval_fetch_list=eval_fetch_list[0:1], - save_eval_model=True, - prune_infer_model=[["image", "im_size"], ["multiclass_nms_0.tmp_0"]], - teacher_programs=teacher_programs, - train_optimizer=None, - distiller_optimizer=opt, - log_period=20) - com.config(FLAGS.slim_file) - com.run() - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-t", - "--teacher_config", - default=None, - type=str, - help="Config file of teacher architecture.") - parser.add_argument( - "-s", - "--slim_file", - default=None, - type=str, - help="Config file of PaddleSlim.") - parser.add_argument( - "-r", - "--resume_checkpoint", - default=None, - type=str, - help="Checkpoint path for resuming training.") - parser.add_argument( - "--eval", - action='store_true', - default=False, - help="Whether to perform evaluation in train") - parser.add_argument( - "--teacher_pretrained", - default=None, - type=str, - help="Whether to use pretrained model.") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/distillation/run.sh b/PaddleCV/PaddleDetection/slim/distillation/run.sh deleted file mode 100644 index a5497bdce2464c72e14fa2168b87db60685e83e8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/distillation/run.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -# download pretrain model -root_url="https://paddlemodels.bj.bcebos.com/object_detection" -yolov3_r34_voc="yolov3_r34_voc.tar" -pretrain_dir='./pretrain' - -if [ ! -d ${pretrain_dir} ]; then - mkdir ${pretrain_dir} -fi - -cd ${pretrain_dir} - -if [ ! -f ${yolov3_r34_voc} ]; then - wget ${root_url}/${yolov3_r34_voc} - tar xf ${yolov3_r34_voc} -fi -cd - - -# enable GC strategy -export FLAGS_fast_eager_deletion_mode=1 -export FLAGS_eager_delete_tensor_gb=0.0 - -# for distillation -#----------------- -export CUDA_VISIBLE_DEVICES=0,1,2,3 - - -# Fixing name conflicts in distillation -cd ${pretrain_dir}/yolov3_r34_voc -for files in $(ls teacher_*) - do mv $files ${files#*_} -done -for files in $(ls *) - do mv $files "teacher_"$files -done -cd - - -python -u compress.py \ --c ../../configs/yolov3_mobilenet_v1_voc.yml \ --t yolov3_resnet34.yml \ --s yolov3_mobilenet_v1_yolov3_resnet34_distillation.yml \ --o YoloTrainFeed.batch_size=64 \ --d ../../dataset/voc \ ---teacher_pretrained ./pretrain/yolov3_r34_voc \ -> yolov3_distallation.log 2>&1 & -tailf yolov3_distallation.log diff --git a/PaddleCV/PaddleDetection/slim/distillation/yolov3_mobilenet_v1_yolov3_resnet34_distillation.yml b/PaddleCV/PaddleDetection/slim/distillation/yolov3_mobilenet_v1_yolov3_resnet34_distillation.yml deleted file mode 100644 index 6a2a5a2575b71563c557c528a4dc94f00dce73ca..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/distillation/yolov3_mobilenet_v1_yolov3_resnet34_distillation.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: 1.0 -distillers: - l2_distiller: - class: 'L2Distiller' - teacher_feature_map: 'teacher_teacher_conv2d_1.tmp_0' - student_feature_map: 'conv2d_15.tmp_0' - distillation_loss_weight: 1 -strategies: - distillation_strategy: - class: 'DistillationStrategy' - distillers: ['l2_distiller'] - start_epoch: 0 - end_epoch: 270 -compressor: - epoch: 271 - checkpoint_path: './checkpoints/' - strategies: - - distillation_strategy diff --git a/PaddleCV/PaddleDetection/slim/distillation/yolov3_resnet34.yml b/PaddleCV/PaddleDetection/slim/distillation/yolov3_resnet34.yml deleted file mode 100644 index c04bdde9f6e35a1ce53231e3862a37364ff7dbb8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/distillation/yolov3_resnet34.yml +++ /dev/null @@ -1,34 +0,0 @@ -architecture: YOLOv3 -log_smooth_window: 20 -metric: VOC -map_type: 11point -num_classes: 20 -weight_prefix_name: teacher_ - -YOLOv3: - backbone: ResNet - yolo_head: YOLOv3Head - -ResNet: - norm_type: sync_bn - freeze_at: 0 - freeze_norm: false - norm_decay: 0. - depth: 34 - feature_maps: [3, 4, 5] - -YOLOv3Head: - anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - anchors: [[10, 13], [16, 30], [33, 23], - [30, 61], [62, 45], [59, 119], - [116, 90], [156, 198], [373, 326]] - norm_decay: 0. - ignore_thresh: 0.7 - label_smooth: false - nms: - background_label: -1 - keep_top_k: 100 - nms_threshold: 0.45 - nms_top_k: 1000 - normalized: false - score_threshold: 0.01 diff --git a/PaddleCV/PaddleDetection/slim/eval.py b/PaddleCV/PaddleDetection/slim/eval.py deleted file mode 100644 index 579f58d2932e215362efa9e8864c16d1a451b26a..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/eval.py +++ /dev/null @@ -1,194 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import multiprocessing -import numpy as np -import datetime -from collections import deque -import sys -sys.path.append("../../") -from paddle.fluid.contrib.slim import Compressor -from paddle.fluid.framework import IrGraph -from paddle.fluid import core -from paddle.fluid.contrib.slim.quantization import QuantizationTransformPass -from paddle.fluid.contrib.slim.quantization import QuantizationFreezePass -from paddle.fluid.contrib.slim.quantization import ConvertToInt8Pass -from paddle.fluid.contrib.slim.quantization import TransformForMobilePass - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid - -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader - -from ppdet.utils.eval_utils import parse_fetches, eval_results -from ppdet.utils.stats import TrainingStats -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def eval_run(exe, compile_program, reader, keys, values, cls, test_feed): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - for data in reader(): - data = test_feed.feed(data) - feed_data = {'image': data['image'], 'im_size': data['im_size']} - outs = exe.run(compile_program, - feed=feed_data, - fetch_list=values[0], - return_numpy=False) - outs.append(data['gt_box']) - outs.append(data['gt_label']) - outs.append(data['is_difficult']) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def main(): - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int( - os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - _, test_feed_vars = create_feed(eval_feed, False) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - #eval_pyreader.decorate_sample_list_generator(eval_reader, place) - test_data_feed = fluid.DataFeeder(test_feed_vars.values(), place) - - assert os.path.exists(FLAGS.model_path) - infer_prog, feed_names, fetch_targets = fluid.io.load_inference_model( - dirname=FLAGS.model_path, - executor=exe, - model_filename=FLAGS.model_name, - params_filename=FLAGS.params_name) - - eval_keys = ['bbox', 'gt_box', 'gt_label', 'is_difficult'] - eval_values = [ - 'multiclass_nms_0.tmp_0', 'gt_box', 'gt_label', 'is_difficult' - ] - eval_cls = [] - eval_values[0] = fetch_targets[0] - - results = eval_run(exe, infer_prog, eval_reader, eval_keys, eval_values, - eval_cls, test_data_feed) - - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - eval_results(results, eval_feed, cfg.metric, cfg.num_classes, resolution, - False, FLAGS.output_eval) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-m", "--model_path", default=None, type=str, help="path of checkpoint") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - parser.add_argument( - "--model_name", - default='model', - type=str, - help="model file name to load_inference_model") - parser.add_argument( - "--params_name", - default='params', - type=str, - help="params file name to load_inference_model") - - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/infer.py b/PaddleCV/PaddleDetection/slim/infer.py deleted file mode 100644 index a5c00de983a15c40db60deb9097c3d8f92a557aa..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/infer.py +++ /dev/null @@ -1,300 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys -import glob -import time - -import numpy as np -from PIL import Image -sys.path.append("../../") - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid -from ppdet.utils.cli import print_total_cfg -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.modeling.model_input import create_feed -from ppdet.data.data_feed import create_reader - -from ppdet.utils.eval_utils import parse_fetches -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -from ppdet.utils.visualizer import visualize_results -import ppdet.utils.checkpoint as checkpoint - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def get_save_image_name(output_dir, image_path): - """ - Get save image name from source image path. - """ - if not os.path.exists(output_dir): - os.makedirs(output_dir) - image_name = os.path.split(image_path)[-1] - name, ext = os.path.splitext(image_name) - return os.path.join(output_dir, "{}".format(name)) + ext - - -def get_test_images(infer_dir, infer_img): - """ - Get image path list in TEST mode - """ - assert infer_img is not None or infer_dir is not None, \ - "--infer_img or --infer_dir should be set" - assert infer_img is None or os.path.isfile(infer_img), \ - "{} is not a file".format(infer_img) - assert infer_dir is None or os.path.isdir(infer_dir), \ - "{} is not a directory".format(infer_dir) - images = [] - - # infer_img has a higher priority - if infer_img and os.path.isfile(infer_img): - images.append(infer_img) - return images - - infer_dir = os.path.abspath(infer_dir) - assert os.path.isdir(infer_dir), \ - "infer_dir {} is not a directory".format(infer_dir) - exts = ['jpg', 'jpeg', 'png', 'bmp'] - exts += [ext.upper() for ext in exts] - for ext in exts: - images.extend(glob.glob('{}/*.{}'.format(infer_dir, ext))) - - assert len(images) > 0, "no image found in {}".format(infer_dir) - logger.info("Found {} inference images in total.".format(len(images))) - - return images - - -def main(): - cfg = load_config(FLAGS.config) - - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - # print_total_cfg(cfg) - - if 'test_feed' not in cfg: - test_feed = create(main_arch + 'TestFeed') - else: - test_feed = create(cfg.test_feed) - - test_images = get_test_images(FLAGS.infer_dir, FLAGS.infer_img) - test_feed.dataset.add_images(test_images) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - infer_prog, feed_var_names, fetch_list = fluid.io.load_inference_model( - dirname=FLAGS.model_path, - model_filename=FLAGS.model_name, - params_filename=FLAGS.params_name, - executor=exe) - - reader = create_reader(test_feed) - feeder = fluid.DataFeeder( - place=place, feed_list=feed_var_names, program=infer_prog) - - # parse infer fetches - assert cfg.metric in ['COCO', 'VOC'], \ - "unknown metric type {}".format(cfg.metric) - extra_keys = [] - if cfg['metric'] == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg['metric'] == 'VOC': - extra_keys = ['im_id', 'im_shape'] - keys, values, _ = parse_fetches({ - 'bbox': fetch_list - }, infer_prog, extra_keys) - - # parse dataset category - if cfg.metric == 'COCO': - from ppdet.utils.coco_eval import bbox2out, mask2out, get_category_info - if cfg.metric == "VOC": - from ppdet.utils.voc_eval import bbox2out, get_category_info - - anno_file = getattr(test_feed.dataset, 'annotation', None) - with_background = getattr(test_feed, 'with_background', True) - use_default_label = getattr(test_feed, 'use_default_label', False) - clsid2catid, catid2name = get_category_info(anno_file, with_background, - use_default_label) - - # whether output bbox is normalized in model output layer - is_bbox_normalized = False - - # use tb-paddle to log image - if FLAGS.use_tb: - from tb_paddle import SummaryWriter - tb_writer = SummaryWriter(FLAGS.tb_log_dir) - tb_image_step = 0 - tb_image_frame = 0 # each frame can display ten pictures at most. - - imid2path = reader.imid2path - keys = ['bbox'] - infer_time = True - compile_prog = fluid.compiler.CompiledProgram(infer_prog) - - for iter_id, data in enumerate(reader()): - feed_data = [[d[0], d[1]] for d in data] - # for infer time - if infer_time: - warmup_times = 10 - repeats_time = 100 - feed_data_dict = feeder.feed(feed_data) - for i in range(warmup_times): - exe.run(compile_prog, - feed=feed_data_dict, - fetch_list=fetch_list, - return_numpy=False) - start_time = time.time() - for i in range(repeats_time): - exe.run(compile_prog, - feed=feed_data_dict, - fetch_list=fetch_list, - return_numpy=False) - - print("infer time: {} ms/sample".format((time.time() - start_time) * - 1000 / repeats_time)) - infer_time = False - - outs = exe.run(compile_prog, - feed=feeder.feed(feed_data), - fetch_list=fetch_list, - return_numpy=False) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - res['im_id'] = [[d[2] for d in data]] - logger.info('Infer iter {}'.format(iter_id)) - - bbox_results = None - mask_results = None - if 'bbox' in res: - bbox_results = bbox2out([res], clsid2catid, is_bbox_normalized) - if 'mask' in res: - mask_results = mask2out([res], clsid2catid, - model.mask_head.resolution) - - # visualize result - im_ids = res['im_id'][0] - for im_id in im_ids: - image_path = imid2path[int(im_id)] - image = Image.open(image_path).convert('RGB') - - # use tb-paddle to log original image - if FLAGS.use_tb: - original_image_np = np.array(image) - tb_writer.add_image( - "original/frame_{}".format(tb_image_frame), - original_image_np, - tb_image_step, - dataformats='HWC') - - image = visualize_results(image, - int(im_id), catid2name, - FLAGS.draw_threshold, bbox_results, - mask_results) - - # use tb-paddle to log image with bbox - if FLAGS.use_tb: - infer_image_np = np.array(image) - tb_writer.add_image( - "bbox/frame_{}".format(tb_image_frame), - infer_image_np, - tb_image_step, - dataformats='HWC') - tb_image_step += 1 - if tb_image_step % 10 == 0: - tb_image_step = 0 - tb_image_frame += 1 - - save_name = get_save_image_name(FLAGS.output_dir, image_path) - logger.info("Detection bbox results save in {}".format(save_name)) - image.save(save_name, quality=95) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "--infer_dir", - type=str, - default=None, - help="Directory for images to perform inference on.") - parser.add_argument( - "--infer_img", - type=str, - default=None, - help="Image path, has higher priority over --infer_dir") - parser.add_argument( - "--output_dir", - type=str, - default="output", - help="Directory for storing the output visualization files.") - parser.add_argument( - "--draw_threshold", - type=float, - default=0.5, - help="Threshold to reserve the result for visualization.") - parser.add_argument( - "--use_tb", - type=bool, - default=False, - help="whether to record the data to Tensorboard.") - parser.add_argument( - '--tb_log_dir', - type=str, - default="tb_log_dir/image", - help='Tensorboard logging directory for image.') - parser.add_argument( - '--model_path', type=str, default=None, help="inference model path") - parser.add_argument( - '--model_name', - type=str, - default='__model__.infer', - help="model filename for inference model") - parser.add_argument( - '--params_name', - type=str, - default='__params__', - help="params filename for inference model") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/prune/README.md b/PaddleCV/PaddleDetection/slim/prune/README.md deleted file mode 100644 index b06fdd2bdd6a3cd75eb00ab7952dfd546b2bfaad..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/prune/README.md +++ /dev/null @@ -1,221 +0,0 @@ ->运行该示例前请安装Paddle1.6或更高版本 - -# 检测模型卷积通道剪裁示例 - -## 概述 - -该示例使用PaddleSlim提供的[卷积通道剪裁压缩策略](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/tutorial.md#2-%E5%8D%B7%E7%A7%AF%E6%A0%B8%E5%89%AA%E8%A3%81%E5%8E%9F%E7%90%86)对检测库中的模型进行压缩。 -在阅读该示例前,建议您先了解以下内容: - -- 检测库的常规训练方法 -- [检测模型数据准备](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/docs/INSTALL_cn.md#%E6%95%B0%E6%8D%AE%E9%9B%86) -- [PaddleSlim使用文档](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md) - - -## 配置文件说明 - -关于配置文件如何编写您可以参考: - -- [PaddleSlim配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#122-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8) -- [裁剪策略配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#22-%E6%A8%A1%E5%9E%8B%E9%80%9A%E9%81%93%E5%89%AA%E8%A3%81) - -其中,配置文件中的`pruned_params`需要根据当前模型的网络结构特点设置,它用来指定要裁剪的parameters. - -这里以MobileNetV1-YoloV3模型为例,其卷积可以三种:主干网络中的普通卷积,主干网络中的`depthwise convolution`和`yolo block`里的普通卷积。PaddleSlim暂时无法对`depthwise convolution`直接进行剪裁, 因为`depthwise convolution`的`channel`的变化会同时影响到前后的卷积层。我们这里只对主干网络中的普通卷积和`yolo block`里的普通卷积做裁剪。 - -通过以下方式可视化模型结构: - -``` -from paddle.fluid.framework import IrGraph -from paddle.fluid import core - -graph = IrGraph(core.Graph(train_prog.desc), for_test=True) -marked_nodes = set() -for op in graph.all_op_nodes(): - print(op.name()) - if op.name().find('conv') > -1: - marked_nodes.add(op) -graph.draw('.', 'forward', marked_nodes) -``` - -该示例中MobileNetV1-YoloV3模型结构的可视化结果:MobileNetV1-YoloV3.pdf - -同时通过以下命令观察目标卷积层的参数(parameters)的名称和shape: - -``` -for param in fluid.default_main_program().global_block().all_parameters(): - if 'weights' in param.name: - print(param.name, param.shape) -``` - - -从可视化结果,我们可以排除后续会做concat的卷积层,最终得到如下要裁剪的参数名称: - -``` -conv2_1_sep_weights -conv2_2_sep_weights -conv3_1_sep_weights -conv4_1_sep_weights -conv5_1_sep_weights -conv5_2_sep_weights -conv5_3_sep_weights -conv5_4_sep_weights -conv5_5_sep_weights -conv5_6_sep_weights -yolo_block.0.0.0.conv.weights -yolo_block.0.0.1.conv.weights -yolo_block.0.1.0.conv.weights -yolo_block.0.1.1.conv.weights -yolo_block.1.0.0.conv.weights -yolo_block.1.0.1.conv.weights -yolo_block.1.1.0.conv.weights -yolo_block.1.1.1.conv.weights -yolo_block.1.2.conv.weights -yolo_block.2.0.0.conv.weights -yolo_block.2.0.1.conv.weights -yolo_block.2.1.1.conv.weights -yolo_block.2.2.conv.weights -yolo_block.2.tip.conv.weights -``` - -``` -(conv2_1_sep_weights)|(conv2_2_sep_weights)|(conv3_1_sep_weights)|(conv4_1_sep_weights)|(conv5_1_sep_weights)|(conv5_2_sep_weights)|(conv5_3_sep_weights)|(conv5_4_sep_weights)|(conv5_5_sep_weights)|(conv5_6_sep_weights)|(yolo_block.0.0.0.conv.weights)|(yolo_block.0.0.1.conv.weights)|(yolo_block.0.1.0.conv.weights)|(yolo_block.0.1.1.conv.weights)|(yolo_block.1.0.0.conv.weights)|(yolo_block.1.0.1.conv.weights)|(yolo_block.1.1.0.conv.weights)|(yolo_block.1.1.1.conv.weights)|(yolo_block.1.2.conv.weights)|(yolo_block.2.0.0.conv.weights)|(yolo_block.2.0.1.conv.weights)|(yolo_block.2.1.1.conv.weights)|(yolo_block.2.2.conv.weights)|(yolo_block.2.tip.conv.weights) -``` - -综上,我们将MobileNetV2配置文件中的`pruned_params`设置为以下正则表达式: - -``` -(conv2_1_sep_weights)|(conv2_2_sep_weights)|(conv3_1_sep_weights)|(conv4_1_sep_weights)|(conv5_1_sep_weights)|(conv5_2_sep_weights)|(conv5_3_sep_weights)|(conv5_4_sep_weights)|(conv5_5_sep_weights)|(conv5_6_sep_weights)|(yolo_block.0.0.0.conv.weights)|(yolo_block.0.0.1.conv.weights)|(yolo_block.0.1.0.conv.weights)|(yolo_block.0.1.1.conv.weights)|(yolo_block.1.0.0.conv.weights)|(yolo_block.1.0.1.conv.weights)|(yolo_block.1.1.0.conv.weights)|(yolo_block.1.1.1.conv.weights)|(yolo_block.1.2.conv.weights)|(yolo_block.2.0.0.conv.weights)|(yolo_block.2.0.1.conv.weights)|(yolo_block.2.1.1.conv.weights)|(yolo_block.2.2.conv.weights)|(yolo_block.2.tip.conv.weights) -``` - -我们可以用上述操作观察其它检测模型的参数名称规律,然后设置合适的正则表达式来剪裁合适的参数。 - -## 训练 - -根据PaddleDetection/tools/train.py编写压缩脚本compress.py。 -在该脚本中定义了Compressor对象,用于执行压缩任务。 - -### 执行示例 - -step1: 设置gpu卡 -``` -export CUDA_VISIBLE_DEVICES=0 -``` -step2: 开始训练 - -使用PaddleDetection提供的配置文件在用8卡进行训练: - -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -o max_iters=258 \ - YoloTrainFeed.batch_size=64 \ - -d "../../dataset/voc" -``` - ->通过命令行覆盖设置max_iters选项,因为PaddleDetection中训练是以`batch`为单位迭代的,并没有涉及`epoch`的概念,但是PaddleSlim需要知道当前训练进行到第几个`epoch`, 所以需要将`max_iters`设置为一个`epoch`内的`batch`的数量。 - -如果要调整训练卡数,需要调整配置文件`yolov3_mobilenet_v1_voc.yml`中的以下参数: - -- **max_iters:** 一个`epoch`中batch的数量,需要设置为`total_num / batch_size`, 其中`total_num`为训练样本总数量,`batch_size`为多卡上总的batch size. -- **YoloTrainFeed.batch_size:** 当使用DataLoader时,表示单张卡上的batch size; 当使用普通reader时,则表示多卡上的总的`batch_size`。`batch_size`受限于显存大小。 -- **LeaningRate.base_lr:** 根据多卡的总`batch_size`调整`base_lr`,两者大小正相关,可以简单的按比例进行调整。 -- **LearningRate.schedulers.PiecewiseDecay.milestones:** 请根据batch size的变化对其调整。 -- **LearningRate.schedulers.PiecewiseDecay.LinearWarmup.steps:** 请根据batch size的变化对其进行调整。 - - -以下为4卡训练示例,通过命令行覆盖`yolov3_mobilenet_v1_voc.yml`中的参数: - -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -o max_iters=258 \ - YoloTrainFeed.batch_size=64 \ - -d "../../dataset/voc" -``` - -以下为2卡训练示例,受显存所制,单卡`batch_size`不变,总`batch_size`减小,`base_lr`减小,一个epoch内batch数量增加,同时需要调整学习率相关参数,如下: -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -o max_iters=516 \ - LeaningRate.base_lr=0.005 \ - YoloTrainFeed.batch_size=32 \ - LearningRate.schedulers='[!PiecewiseDecay {gamma: 0.1, milestones: [110000, 124000]}, !LinearWarmup {start_factor: 0., steps: 2000}]' \ - -d "../../dataset/voc" -``` - -通过`python compress.py --help`查看可配置参数。 -通过`python ../../tools/configure.py ${option_name} help`查看如何通过命令行覆盖配置文件`yolov3_mobilenet_v1_voc.yml`中的参数。 - -### 保存断点(checkpoint) - -如果在配置文件中设置了`checkpoint_path`, 则在压缩任务执行过程中会自动保存断点,当任务异常中断时, -重启任务会自动从`checkpoint_path`路径下按数字顺序加载最新的checkpoint文件。如果不想让重启的任务从断点恢复, -需要修改配置文件中的`checkpoint_path`,或者将`checkpoint_path`路径下文件清空。 - ->注意:配置文件中的信息不会保存在断点中,重启前对配置文件的修改将会生效。 - - -## 评估 - -如果在配置文件中设置了`checkpoint_path`,则每个epoch会保存一个压缩后的用于评估的模型, -该模型会保存在`${checkpoint_path}/${epoch_id}/eval_model/`路径下,包含`__model__`和`__params__`两个文件。 -其中,`__model__`用于保存模型结构信息,`__params__`用于保存参数(parameters)信息。 - -如果不需要保存评估模型,可以在定义Compressor对象时,将`save_eval_model`选项设置为False(默认为True)。 - -运行命令为: -``` -python ../eval.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --model_name __model__ \ - --params_name __params__ \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" -``` - -## 预测 - -如果在配置文件中设置了`checkpoint_path`,并且在定义Compressor对象时指定了`prune_infer_model`选项,则每个epoch都会 -保存一个`inference model`。该模型是通过删除eval_program中多余的operators而得到的。 - -该模型会保存在`${checkpoint_path}/${epoch_id}/eval_model/`路径下,包含`__model__.infer`和`__params__`两个文件。 -其中,`__model__.infer`用于保存模型结构信息,`__params__`用于保存参数(parameters)信息。 - -更多关于`prune_infer_model`选项的介绍,请参考:[Compressor介绍](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#121-%E5%A6%82%E4%BD%95%E6%94%B9%E5%86%99%E6%99%AE%E9%80%9A%E8%AE%AD%E7%BB%83%E8%84%9A%E6%9C%AC) - -### python预测 - -在脚本PaddleDetection/tools/infer.py中展示了如何使用fluid python API加载使用预测模型进行预测。 - -运行命令为: -``` -python ../infer.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --model_name __model__.infer \ - --params_name __params__ \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - --infer_dir ../../demo -``` - -### PaddleLite - -该示例中产出的预测(inference)模型可以直接用PaddleLite进行加载使用。 -关于PaddleLite如何使用,请参考:[PaddleLite使用文档](https://github.com/PaddlePaddle/Paddle-Lite/wiki#%E4%BD%BF%E7%94%A8) - -## 示例结果 - -> 当前release的结果并非超参调优后的最好结果,仅做示例参考,后续我们会优化当前结果。 - -### MobileNetV1-YOLO-V3 - -| FLOPS |Box AP| model_size |Paddle Fluid inference time(ms)| Paddle Lite inference time(ms)| -|---|---|---|---|---| -|baseline|76.2 |93M |- |-| -|-50%|69.48 |51M |- |-| - -## FAQ diff --git a/PaddleCV/PaddleDetection/slim/prune/compress.py b/PaddleCV/PaddleDetection/slim/prune/compress.py deleted file mode 100644 index 66f9a0cb50514bfbdf2964024064caf6702cfbc4..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/prune/compress.py +++ /dev/null @@ -1,255 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import multiprocessing -import numpy as np -import sys -sys.path.append("../../") -from paddle.fluid.contrib.slim import Compressor - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader -from ppdet.utils.eval_utils import parse_fetches, eval_results -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def eval_run(exe, compile_program, reader, keys, values, cls, test_feed): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - if len(cls) != 0: - values = [] - for i in range(len(cls)): - _, accum_map = cls[i].get_map_var() - cls[i].reset(exe) - values.append(accum_map) - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - for data in reader(): - data = test_feed.feed(data) - feed_data = {'image': data['image'], 'im_size': data['im_size']} - outs = exe.run(compile_program, - feed=feed_data, - fetch_list=[values[0]], - return_numpy=False) - outs.append(data['gt_box']) - outs.append(data['gt_label']) - outs.append(data['is_difficult']) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def main(): - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int( - os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - if 'train_feed' not in cfg: - train_feed = create(main_arch + 'TrainFeed') - else: - train_feed = create(cfg.train_feed) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - lr_builder = create('LearningRate') - optim_builder = create('OptimizerBuilder') - - # build program - startup_prog = fluid.Program() - train_prog = fluid.Program() - with fluid.program_guard(train_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - _, feed_vars = create_feed(train_feed, False) - train_fetches = model.train(feed_vars) - loss = train_fetches['loss'] - lr = lr_builder() - optimizer = optim_builder(lr) - optimizer.minimize(loss) - - train_reader = create_reader(train_feed, cfg.max_iters, FLAGS.dataset_dir) - - # parse train fetches - train_keys, train_values, _ = parse_fetches(train_fetches) - train_keys.append("lr") - train_values.append(lr.name) - - train_fetch_list = [] - for k, v in zip(train_keys, train_values): - train_fetch_list.append((k, v)) - - eval_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - _, test_feed_vars = create_feed(eval_feed, False) - fetches = model.eval(test_feed_vars) - - eval_prog = eval_prog.clone(True) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - test_data_feed = fluid.DataFeeder(test_feed_vars.values(), place) - - # parse eval fetches - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - eval_keys, eval_values, eval_cls = parse_fetches(fetches, eval_prog, - extra_keys) - eval_fetch_list = [] - for k, v in zip(eval_keys, eval_values): - eval_fetch_list.append((k, v)) - - exe.run(startup_prog) - checkpoint.load_params(exe, train_prog, cfg.pretrain_weights) - - best_box_ap_list = [] - - def eval_func(program, scope): - - #place = fluid.CPUPlace() - #exe = fluid.Executor(place) - results = eval_run(exe, program, eval_reader, eval_keys, eval_values, - eval_cls, test_data_feed) - - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - box_ap_stats = eval_results(results, eval_feed, cfg.metric, - cfg.num_classes, resolution, False, - FLAGS.output_eval) - if len(best_box_ap_list) == 0: - best_box_ap_list.append(box_ap_stats[0]) - elif box_ap_stats[0] > best_box_ap_list[0]: - best_box_ap_list[0] = box_ap_stats[0] - logger.info("Best test box ap: {}".format(best_box_ap_list[0])) - return best_box_ap_list[0] - - test_feed = [('image', test_feed_vars['image'].name), - ('im_size', test_feed_vars['im_size'].name)] - - com = Compressor( - place, - fluid.global_scope(), - train_prog, - train_reader=train_reader, - train_feed_list=[(key, value.name) for key, value in feed_vars.items()], - train_fetch_list=train_fetch_list, - eval_program=eval_prog, - eval_reader=eval_reader, - eval_feed_list=test_feed, - eval_func={'map': eval_func}, - eval_fetch_list=[eval_fetch_list[0]], - save_eval_model=True, - prune_infer_model=[["image", "im_size"], ["multiclass_nms_0.tmp_0"]], - train_optimizer=None) - com.config(FLAGS.slim_file) - com.run() - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-s", - "--slim_file", - default=None, - type=str, - help="Config file of PaddleSlim.") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/prune/images/MobileNetV1-YoloV3.pdf b/PaddleCV/PaddleDetection/slim/prune/images/MobileNetV1-YoloV3.pdf deleted file mode 100644 index f5d3a22db5030ffc6beb1e7f8c92bddd61e366e6..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/slim/prune/images/MobileNetV1-YoloV3.pdf and /dev/null differ diff --git a/PaddleCV/PaddleDetection/slim/prune/yolov3_mobilenet_v1_slim.yaml b/PaddleCV/PaddleDetection/slim/prune/yolov3_mobilenet_v1_slim.yaml deleted file mode 100644 index ff9859eafe5872dee13f33a3703502e334d1c85e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/prune/yolov3_mobilenet_v1_slim.yaml +++ /dev/null @@ -1,23 +0,0 @@ -version: 1.0 -pruners: - pruner_1: - class: 'StructurePruner' - pruning_axis: - '*': 0 - criterions: - '*': 'l1_norm' -strategies: - uniform_pruning_strategy: - class: 'UniformPruneStrategy' - pruner: 'pruner_1' - start_epoch: 0 - target_ratio: 0.5 - pruned_params: '(conv2_1_sep_weights)|(conv2_2_sep_weights)|(conv3_1_sep_weights)|(conv4_1_sep_weights)|(conv5_1_sep_weights)|(conv5_2_sep_weights)|(conv5_3_sep_weights)|(conv5_4_sep_weights)|(conv5_5_sep_weights)|(conv5_6_sep_weights)|(yolo_block.0.0.0.conv.weights)|(yolo_block.0.0.1.conv.weights)|(yolo_block.0.1.0.conv.weights)|(yolo_block.0.1.1.conv.weights)|(yolo_block.1.0.0.conv.weights)|(yolo_block.1.0.1.conv.weights)|(yolo_block.1.1.0.conv.weights)|(yolo_block.1.1.1.conv.weights)|(yolo_block.1.2.conv.weights)|(yolo_block.2.0.0.conv.weights)|(yolo_block.2.0.1.conv.weights)|(yolo_block.2.1.1.conv.weights)|(yolo_block.2.2.conv.weights)|(yolo_block.2.tip.conv.weights)' - metric_name: 'acc_top1' -compressor: - epoch: 271 - eval_epoch: 10 - #init_model: './checkpoints/0' # Please enable this option for loading checkpoint. - checkpoint_path: './checkpoints/' - strategies: - - uniform_pruning_strategy diff --git a/PaddleCV/PaddleDetection/slim/quantization/README.md b/PaddleCV/PaddleDetection/slim/quantization/README.md deleted file mode 100644 index d451e959a8828c24fcafb9ac52b8c5a2a3ce8de5..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/quantization/README.md +++ /dev/null @@ -1,245 +0,0 @@ ->运行该示例前请安装Paddle1.6或更高版本 - -# 检测模型量化压缩示例 - -## 概述 - -该示例使用PaddleSlim提供的[量化压缩策略](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/tutorial.md#1-quantization-aware-training%E9%87%8F%E5%8C%96%E4%BB%8B%E7%BB%8D)对检测模型进行压缩。 -在阅读该示例前,建议您先了解以下内容: - -- [检测模型的常规训练方法](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection) -- [PaddleSlim使用文档](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md) - - -## 配置文件说明 - -关于配置文件如何编写您可以参考: - -- [PaddleSlim配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#122-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8) -- [量化策略配置文件编写说明](https://github.com/PaddlePaddle/models/blob/develop/PaddleSlim/docs/usage.md#21-%E9%87%8F%E5%8C%96%E8%AE%AD%E7%BB%83) - -其中save_out_nodes需要得到检测结果的Variable的名称,下面介绍如何确定save_out_nodes的参数 -以MobileNet V1为例,可在compress.py中构建好网络之后,直接打印Variable得到Variable的名称信息。 -代码示例: -``` - eval_keys, eval_values, eval_cls = parse_fetches(fetches, eval_prog, - extra_keys) - # print(eval_values) -``` -根据运行结果可看到Variable的名字为:`multiclass_nms_0.tmp_0`。 -## 训练 - -根据 [PaddleCV/PaddleDetection/tools/train.py](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/tools/train.py) 编写压缩脚本compress.py。 -在该脚本中定义了Compressor对象,用于执行压缩任务。 - -通过`python compress.py --help`查看可配置参数,简述如下: - -- config: 检测库的配置,其中配置了训练超参数、数据集信息等。 -- slim_file: PaddleSlim的配置文件,参见[配置文件说明](#配置文件说明)。 - -您可以通过运行以下命令运行该示例。 - -step1: 设置gpu卡 -``` -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -``` -step2: 开始训练 - -使用PaddleDetection提供的配置文件用8卡进行训练: - -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" \ - -o max_iters=258 \ - LearningRate.base_lr=0.0001 \ - LearningRate.schedulers="[!PiecewiseDecay {gamma: 0.1, milestones: [258, 516]}]" \ - pretrain_weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar \ - YoloTrainFeed.batch_size=64 -``` - ->通过命令行覆盖设置max_iters选项,因为PaddleDetection中训练是以`batch`为单位迭代的,并没有涉及`epoch`的概念,但是PaddleSlim需要知道当前训练进行到第几个`epoch`, 所以需要将`max_iters`设置为一个`epoch`内的`batch`的数量。 - -如果要调整训练卡数,需要调整配置文件`yolov3_mobilenet_v1_voc.yml`中的以下参数: - -- **max_iters:** 一个`epoch`中batch的数量,需要设置为`total_num / batch_size`, 其中`total_num`为训练样本总数量,`batch_size`为多卡上总的batch size. -- **YoloTrainFeed.batch_size:** 当使用DataLoader时,表示单张卡上的batch size; 当使用普通reader时,则表示多卡上的总的batch_size。batch_size受限于显存大小。 -- **LeaningRate.base_lr:** 根据多卡的总`batch_size`调整`base_lr`,两者大小正相关,可以简单的按比例进行调整。 -- **LearningRate.schedulers.PiecewiseDecay.milestones:** 请根据batch size的变化对其调整。 -- **LearningRate.schedulers.PiecewiseDecay.LinearWarmup.steps:** 请根据batch size的变化对其进行调整。 - - -以下为4卡训练示例,通过命令行覆盖`yolov3_mobilenet_v1_voc.yml`中的参数: - -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" \ - -o max_iters=258 \ - LearningRate.base_lr=0.0001 \ - LearningRate.schedulers="[!PiecewiseDecay {gamma: 0.1, milestones: [258, 516]}]" \ - pretrain_weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar \ - YoloTrainFeed.batch_size=64 - -``` - -以下为2卡训练示例,受显存所制,单卡`batch_size`不变, 总`batch_size`减小,`base_lr`减小,一个epoch内batch数量增加,同时需要调整学习率相关参数,如下: - -``` -python compress.py \ - -s yolov3_mobilenet_v1_slim.yaml \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" \ - -o max_iters=516 \ - LearningRate.base_lr=0.00005 \ - LearningRate.schedulers="[!PiecewiseDecay {gamma: 0.1, milestones: [516, 1012]}]" \ - pretrain_weights=https://paddlemodels.bj.bcebos.com/object_detection/yolov3_mobilenet_v1_voc.tar \ - YoloTrainFeed.batch_size=32 -``` - -通过`python compress.py --help`查看可配置参数。 -通过`python ../../tools/configure.py ${option_name} help`查看如何通过命令行覆盖配置文件`yolov3_mobilenet_v1_voc.yml`中的参数。 - - - -### 训练时的模型结构 -这部分介绍来源于[量化low-level API介绍](https://github.com/PaddlePaddle/models/tree/develop/PaddleSlim/quant_low_level_api#1-%E9%87%8F%E5%8C%96%E8%AE%AD%E7%BB%83low-level-apis%E4%BB%8B%E7%BB%8D)。 - -PaddlePaddle框架中和量化相关的IrPass, 分别有QuantizationTransformPass、QuantizationFreezePass、ConvertToInt8Pass。在训练时,对网络应用了QuantizationTransformPass,作用是在网络中的conv2d、depthwise_conv2d、mul等算子的各个输入前插入连续的量化op和反量化op,并改变相应反向算子的某些输入。示例图如下: - -

-
-图1:应用QuantizationTransformPass后的结果 -

- -### 保存断点(checkpoint) - -如果在配置文件中设置了`checkpoint_path`, 则在压缩任务执行过程中会自动保存断点,当任务异常中断时, -重启任务会自动从`checkpoint_path`路径下按数字顺序加载最新的checkpoint文件。如果不想让重启的任务从断点恢复, -需要修改配置文件中的`checkpoint_path`,或者将`checkpoint_path`路径下文件清空。 - ->注意:配置文件中的信息不会保存在断点中,重启前对配置文件的修改将会生效。 - - -### 保存评估和预测模型 - -如果在配置文件的量化策略中设置了`float_model_save_path`, `int8_model_save_path` 在训练结束后,会保存模型量化压缩之后用于预测的模型。接下来介绍这2种预测模型的区别。 - -#### FP32模型 -在介绍量化训练时的模型结构时介绍了PaddlePaddle框架中和量化相关的IrPass, 分别是QuantizationTransformPass、QuantizationFreezePass、ConvertToInt8Pass。FP32模型是在应用QuantizationFreezePass并删除eval_program中多余的operators之后,保存的模型。 - -QuantizationFreezePass主要用于改变IrGraph中量化op和反量化op的顺序,即将类似图1中的量化op和反量化op顺序改变为图2中的布局。除此之外,QuantizationFreezePass还会将`conv2d`、`depthwise_conv2d`、`mul`等算子的权重离线量化为int8_t范围内的值(但数据类型仍为float32),以减少预测过程中对权重的量化操作,示例如图2: - -

-
-图2:应用QuantizationFreezePass后的结果 -

- -#### 8-bit模型 -在对训练网络进行QuantizationFreezePass之后,执行ConvertToInt8Pass, -其主要目的是将执行完QuantizationFreezePass后输出的权重类型由`FP32`更改为`INT8`。换言之,用户可以选择将量化后的权重保存为float32类型(不执行ConvertToInt8Pass)或者int8_t类型(执行ConvertToInt8Pass),示例如图3: - -

-
-图3:应用ConvertToInt8Pass后的结果 -

- -> 综上,可得在量化过程中有以下几种模型结构: - -1. 原始模型 -2. 经QuantizationTransformPass之后得到的适用于训练的量化模型结构,在${checkpoint_path}下保存的`eval_model`是这种结构,在训练过程中每个epoch结束时也使用这个网络结构进行评估,虽然这个模型结构不是最终想要的模型结构,但是每个epoch的评估结果可用来挑选模型。 -3. 经QuantizationFreezePass之后得到的FP32模型结构,具体结构已在上面进行介绍。本文档中列出的数据集的评估结果是对FP32模型结构进行评估得到的结果。这种模型结构在训练过程中只会保存一次,也就是在量化配置文件中设置的`end_epoch`结束时进行保存,如果想将其他epoch的训练结果转化成FP32模型,可使用脚本 PaddleSlim/classification/quantization/freeze.py进行转化,具体使用方法在[评估](#评估)中介绍。 -4. 经ConvertToInt8Pass之后得到的8-bit模型结构,具体结构已在上面进行介绍。这种模型结构在训练过程中只会保存一次,也就是在量化配置文件中设置的`end_epoch`结束时进行保存,如果想将其他epoch的训练结果转化成8-bit模型,可使用脚本 slim/quantization/freeze.py进行转化,具体使用方法在[评估](#评估)中介绍。 - - -## 评估 - -### 每个epoch保存的评估模型 -因为量化的最终模型只有在end_epoch时保存一次,不能保证保存的模型是最好的,因此 -如果在配置文件中设置了`checkpoint_path`,则每个epoch会保存一个量化后的用于评估的模型, -该模型会保存在`${checkpoint_path}/${epoch_id}/eval_model/`路径下,包含`__model__`和`__params__`两个文件。 -其中,`__model__`用于保存模型结构信息,`__params__`用于保存参数(parameters)信息。模型结构和训练时一样。 - -如果不需要保存评估模型,可以在定义Compressor对象时,将`save_eval_model`选项设置为False(默认为True)。 - -脚本slim/eval.py中为使用该模型在评估数据集上做评估的示例。 -运行命令为: -``` -python ../eval.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --model_name __model__ \ - --params_name __params__ \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" -``` - -在评估之后,选取效果最好的epoch的模型,可使用脚本 slim/quantization/freeze.py将该模型转化为以上介绍的2种模型:FP32模型,int8模型,需要配置的参数为: - -- model_path, 加载的模型路径,`为${checkpoint_path}/${epoch_id}/eval_model/` -- weight_quant_type 模型参数的量化方式,和配置文件中的类型保持一致 -- save_path `FP32`, `8-bit` 模型的保存路径,分别为 `${save_path}/float/`, `${save_path}/int8/` - -运行命令示例: -``` -python freeze.py \ - --model_path ${checkpoint_path}/${epoch_id}/eval_model/ \ - --weight_quant_type ${weight_quant_type} \ - --save_path ${any path you want} \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" -``` - -### 最终评估模型 -最终使用的评估模型是FP32模型,使用脚本slim/eval.py中为使用该模型在评估数据集上做评估的示例。 -运行命令为: -``` -python ../eval.py \ - --model_path ${float_model_path} - --model_name model \ - --params_name weights \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - -d "../../dataset/voc" -``` - -## 预测 - -### python预测 -FP32模型可直接使用原生PaddlePaddle Fluid预测方法进行预测。 - -在脚本slim/infer.py中展示了如何使用fluid python API加载使用预测模型进行预测。 - -运行命令示例: -``` -python ../infer.py \ - --model_path ${save_path}/float \ - --model_name model \ - --params_name weights \ - -c ../../configs/yolov3_mobilenet_v1_voc.yml \ - --infer_dir ../../demo -``` - - -### PaddleLite预测 -FP32模型可使用PaddleLite进行加载预测,可参见教程[Paddle-Lite如何加载运行量化模型](https://github.com/PaddlePaddle/Paddle-Lite/wiki/model_quantization) - - -## 示例结果 - ->当前release的结果并非超参调优后的最好结果,仅做示例参考,后续我们会优化当前结果。 - -### MobileNetV1-YOLO-V3 - -| weight量化方式 | activation量化方式| Box ap |Paddle Fluid inference time(ms)| Paddle Lite inference time(ms)| -|---|---|---|---|---| -|baseline|- |76.2%|- |-| -|abs_max|abs_max|- |- |-| -|abs_max|moving_average_abs_max|74.48%|10.99|3348.68| -|channel_wise_abs_max|abs_max|- |- |-| - -> 注: lite端运行手机信息:Android手机, -型号:BKL-AL20,运行内存RAM:4GB 6GB,CPU核心数:八核 4*A73 2.36GHz+4*A53 1.8GHz,操作系统:EMUI 8.0,CPU品牌:麒麟970 - - -## FAQ diff --git a/PaddleCV/PaddleDetection/slim/quantization/compress.py b/PaddleCV/PaddleDetection/slim/quantization/compress.py deleted file mode 100644 index 0e145abcf70c54a3b7960243e20c0cb8cb6d39d9..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/quantization/compress.py +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import multiprocessing -import numpy as np -import datetime -from collections import deque -import sys -sys.path.append("../../") -from paddle.fluid.contrib.slim import Compressor -from paddle.fluid.framework import IrGraph -from paddle.fluid import core - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid - -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader - -from ppdet.utils.eval_utils import parse_fetches, eval_results -from ppdet.utils.stats import TrainingStats -from ppdet.utils.cli import ArgsParser, print_total_cfg -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def eval_run(exe, compile_program, reader, keys, values, cls, test_feed): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - if len(cls) != 0: - values = [] - for i in range(len(cls)): - _, accum_map = cls[i].get_map_var() - cls[i].reset(exe) - values.append(accum_map) - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - for data in reader(): - data = test_feed.feed(data) - feed_data = {'image': data['image'], 'im_size': data['im_size']} - outs = exe.run(compile_program, - feed=feed_data, - fetch_list=[values[0]], - return_numpy=False) - outs.append(data['gt_box']) - outs.append(data['gt_label']) - outs.append(data['is_difficult']) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def main(): - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int( - os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - if 'train_feed' not in cfg: - train_feed = create(main_arch + 'TrainFeed') - else: - train_feed = create(cfg.train_feed) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - lr_builder = create('LearningRate') - optim_builder = create('OptimizerBuilder') - - # build program - startup_prog = fluid.Program() - train_prog = fluid.Program() - with fluid.program_guard(train_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - _, feed_vars = create_feed(train_feed, False) - train_fetches = model.train(feed_vars) - loss = train_fetches['loss'] - lr = lr_builder() - optimizer = optim_builder(lr) - optimizer.minimize(loss) - - train_reader = create_reader(train_feed, cfg.max_iters, FLAGS.dataset_dir) - - # parse train fetches - train_keys, train_values, _ = parse_fetches(train_fetches) - train_values.append(lr) - - train_fetch_list = [] - for k, v in zip(train_keys, train_values): - train_fetch_list.append((k, v)) - print("train_fetch_list: {}".format(train_fetch_list)) - - eval_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - _, test_feed_vars = create_feed(eval_feed, False) - fetches = model.eval(test_feed_vars) - eval_prog = eval_prog.clone(True) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - #eval_pyreader.decorate_sample_list_generator(eval_reader, place) - test_data_feed = fluid.DataFeeder(test_feed_vars.values(), place) - - # parse eval fetches - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - eval_keys, eval_values, eval_cls = parse_fetches(fetches, eval_prog, - extra_keys) - # print(eval_values) - - eval_fetch_list = [] - for k, v in zip(eval_keys, eval_values): - eval_fetch_list.append((k, v)) - - exe.run(startup_prog) - - start_iter = 0 - - checkpoint.load_params(exe, train_prog, cfg.pretrain_weights) - - best_box_ap_list = [] - - def eval_func(program, scope): - - #place = fluid.CPUPlace() - #exe = fluid.Executor(place) - results = eval_run(exe, program, eval_reader, eval_keys, eval_values, - eval_cls, test_data_feed) - - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - box_ap_stats = eval_results(results, eval_feed, cfg.metric, - cfg.num_classes, resolution, False, - FLAGS.output_eval) - if len(best_box_ap_list) == 0: - best_box_ap_list.append(box_ap_stats[0]) - elif box_ap_stats[0] > best_box_ap_list[0]: - best_box_ap_list[0] = box_ap_stats[0] - logger.info("Best test box ap: {}".format(best_box_ap_list[0])) - return best_box_ap_list[0] - - test_feed = [('image', test_feed_vars['image'].name), - ('im_size', test_feed_vars['im_size'].name)] - - com = Compressor( - place, - fluid.global_scope(), - train_prog, - train_reader=train_reader, - train_feed_list=[(key, value.name) for key, value in feed_vars.items()], - train_fetch_list=train_fetch_list, - eval_program=eval_prog, - eval_reader=eval_reader, - eval_feed_list=test_feed, - eval_func={'map': eval_func}, - eval_fetch_list=[eval_fetch_list[0]], - prune_infer_model=[["image", "im_size"], ["multiclass_nms_0.tmp_0"]], - train_optimizer=None) - com.config(FLAGS.slim_file) - com.run() - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-s", - "--slim_file", - default=None, - type=str, - help="Config file of PaddleSlim.") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/quantization/freeze.py b/PaddleCV/PaddleDetection/slim/quantization/freeze.py deleted file mode 100644 index 42c7bc62fd771366430f3658d9446a0f12fe2125..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/quantization/freeze.py +++ /dev/null @@ -1,226 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import multiprocessing -import numpy as np -import datetime -from collections import deque -import sys -sys.path.append("../../") -from paddle.fluid.contrib.slim import Compressor -from paddle.fluid.framework import IrGraph -from paddle.fluid import core -from paddle.fluid.contrib.slim.quantization import QuantizationTransformPass -from paddle.fluid.contrib.slim.quantization import QuantizationFreezePass -from paddle.fluid.contrib.slim.quantization import ConvertToInt8Pass -from paddle.fluid.contrib.slim.quantization import TransformForMobilePass - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid - -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader - -from ppdet.utils.eval_utils import parse_fetches, eval_results -from ppdet.utils.stats import TrainingStats -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def eval_run(exe, compile_program, reader, keys, values, cls, test_feed): - """ - Run evaluation program, return program outputs. - """ - iter_id = 0 - results = [] - - images_num = 0 - start_time = time.time() - has_bbox = 'bbox' in keys - for data in reader(): - data = test_feed.feed(data) - feed_data = {'image': data['image'], 'im_size': data['im_size']} - outs = exe.run(compile_program, - feed=feed_data, - fetch_list=values[0], - return_numpy=False) - outs.append(data['gt_box']) - outs.append(data['gt_label']) - outs.append(data['is_difficult']) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - results.append(res) - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - iter_id += 1 - images_num += len(res['bbox'][1][0]) if has_bbox else 1 - logger.info('Test finish iter {}'.format(iter_id)) - - end_time = time.time() - fps = images_num / (end_time - start_time) - if has_bbox: - logger.info('Total number of images: {}, inference time: {} fps.'. - format(images_num, fps)) - else: - logger.info('Total iteration: {}, inference time: {} batch/s.'.format( - images_num, fps)) - - return results - - -def main(): - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int( - os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - _, test_feed_vars = create_feed(eval_feed, False) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - #eval_pyreader.decorate_sample_list_generator(eval_reader, place) - test_data_feed = fluid.DataFeeder(test_feed_vars.values(), place) - - assert os.path.exists(FLAGS.model_path) - infer_prog, feed_names, fetch_targets = fluid.io.load_inference_model( - dirname=FLAGS.model_path, - executor=exe, - model_filename='__model__.infer', - params_filename='__params__') - - eval_keys = ['bbox', 'gt_box', 'gt_label', 'is_difficult'] - eval_values = [ - 'multiclass_nms_0.tmp_0', 'gt_box', 'gt_label', 'is_difficult' - ] - eval_cls = [] - eval_values[0] = fetch_targets[0] - - results = eval_run(exe, infer_prog, eval_reader, eval_keys, eval_values, - eval_cls, test_data_feed) - - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - box_ap_stats = eval_results(results, eval_feed, cfg.metric, cfg.num_classes, - resolution, False, FLAGS.output_eval) - - logger.info("freeze the graph for inference") - test_graph = IrGraph(core.Graph(infer_prog.desc), for_test=True) - - freeze_pass = QuantizationFreezePass( - scope=fluid.global_scope(), - place=place, - weight_quantize_type=FLAGS.weight_quant_type) - freeze_pass.apply(test_graph) - server_program = test_graph.to_program() - fluid.io.save_inference_model( - dirname=os.path.join(FLAGS.save_path, 'float'), - feeded_var_names=feed_names, - target_vars=fetch_targets, - executor=exe, - main_program=server_program, - model_filename='model', - params_filename='weights') - - logger.info("convert the weights into int8 type") - convert_int8_pass = ConvertToInt8Pass( - scope=fluid.global_scope(), place=place) - convert_int8_pass.apply(test_graph) - server_int8_program = test_graph.to_program() - fluid.io.save_inference_model( - dirname=os.path.join(FLAGS.save_path, 'int8'), - feeded_var_names=feed_names, - target_vars=fetch_targets, - executor=exe, - main_program=server_int8_program, - model_filename='model', - params_filename='weights') - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-m", "--model_path", default=None, type=str, help="path of checkpoint") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - parser.add_argument( - "--weight_quant_type", - default='abs_max', - type=str, - help="quantization type for weight") - parser.add_argument( - "--save_path", - default='./output', - type=str, - help="path to save quantization inference model") - - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/slim/quantization/images/ConvertToInt8Pass.png b/PaddleCV/PaddleDetection/slim/quantization/images/ConvertToInt8Pass.png deleted file mode 100644 index 8b5849819c0bc8e592dc8f864d8945330df85ab1..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/slim/quantization/images/ConvertToInt8Pass.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/slim/quantization/images/FreezePass.png b/PaddleCV/PaddleDetection/slim/quantization/images/FreezePass.png deleted file mode 100644 index acd2b0a890a8af85bec6eecdb22e47ad386a178c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/slim/quantization/images/FreezePass.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/slim/quantization/images/TransformForMobilePass.png b/PaddleCV/PaddleDetection/slim/quantization/images/TransformForMobilePass.png deleted file mode 100644 index 4104cacc67af0be1c7bc152696e2ae544127aace..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/slim/quantization/images/TransformForMobilePass.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/slim/quantization/images/TransformPass.png b/PaddleCV/PaddleDetection/slim/quantization/images/TransformPass.png deleted file mode 100644 index f29ab62753e0e6ddf28d0c1dda7139705fc24b18..0000000000000000000000000000000000000000 Binary files a/PaddleCV/PaddleDetection/slim/quantization/images/TransformPass.png and /dev/null differ diff --git a/PaddleCV/PaddleDetection/slim/quantization/yolov3_mobilenet_v1_slim.yaml b/PaddleCV/PaddleDetection/slim/quantization/yolov3_mobilenet_v1_slim.yaml deleted file mode 100644 index 9d453450d91edf4d10c6aa5fd9fd29f21953e5d3..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/slim/quantization/yolov3_mobilenet_v1_slim.yaml +++ /dev/null @@ -1,19 +0,0 @@ -version: 1.0 -strategies: - quantization_strategy: - class: 'QuantizationStrategy' - start_epoch: 0 - end_epoch: 4 - float_model_save_path: './output/yolov3/float' - int8_model_save_path: './output/yolov3/int8' - weight_bits: 8 - activation_bits: 8 - weight_quantize_type: 'abs_max' - activation_quantize_type: 'moving_average_abs_max' - save_in_nodes: ['image', 'im_size'] - save_out_nodes: ['multiclass_nms_0.tmp_0'] -compressor: - epoch: 5 - checkpoint_path: './checkpoints/yolov3/' - strategies: - - quantization_strategy diff --git a/PaddleCV/PaddleDetection/tools/__init__.py b/PaddleCV/PaddleDetection/tools/__init__.py deleted file mode 100644 index d0c32e26092f6ea25771279418582a24ea449ab2..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/PaddleCV/PaddleDetection/tools/configure.py b/PaddleCV/PaddleDetection/tools/configure.py deleted file mode 100644 index 560d161513ae8f0115d8d3d5f97f6a0695642015..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/configure.py +++ /dev/null @@ -1,202 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import print_function - -import sys -from argparse import ArgumentParser, RawDescriptionHelpFormatter - -import yaml - -from ppdet.core.workspace import get_registered_modules, load_config, dump_value -from ppdet.utils.cli import ColorTTY, print_total_cfg - -color_tty = ColorTTY() - -MISC_CONFIG = { - "architecture": "", - "max_iters": "", - "train_feed": "", - "eval_feed": "", - "test_feed": "", - "pretrain_weights": "", - "save_dir": "", - "weights": "", - "metric": "", - "map_type": "11point", - "log_smooth_window": 20, - "snapshot_iter": 10000, - "log_iter": 20, - "use_gpu": True, - "finetune_exclude_pretrained_params": "", -} - - -def dump_config(module, minimal=False): - args = module.schema.values() - if minimal: - args = [arg for arg in args if not arg.has_default()] - return yaml.dump( - { - module.name: { - arg.name: arg.default if arg.has_default() else "" - for arg in args - } - }, - default_flow_style=False, - default_style='') - - -def list_modules(**kwargs): - target_category = kwargs['category'] - module_schema = get_registered_modules() - module_by_category = {} - - for schema in module_schema.values(): - category = schema.category - if target_category is not None and schema.category != target_category: - continue - if category not in module_by_category: - module_by_category[category] = [schema] - else: - module_by_category[category].append(schema) - - for cat, modules in module_by_category.items(): - print("Available modules in the category '{}':".format(cat)) - print("") - max_len = max([len(mod.name) for mod in modules]) - for mod in modules: - print(color_tty.green(mod.name.ljust(max_len)), - mod.doc.split('\n')[0]) - print("") - - -def help_module(**kwargs): - schema = get_registered_modules()[kwargs['module']] - - doc = schema.doc is None and "Not documented" or "{}".format(schema.doc) - func_args = {arg.name: arg.doc for arg in schema.schema.values()} - max_len = max([len(k) for k in func_args.keys()]) - opts = "\n".join([ - "{} {}".format(color_tty.green(k.ljust(max_len)), v) - for k, v in func_args.items() - ]) - template = dump_config(schema) - print("{}\n\n{}\n\n{}\n\n{}\n\n{}\n\n{}\n{}\n".format( - color_tty.bold(color_tty.blue("MODULE DESCRIPTION:")), - doc, - color_tty.bold(color_tty.blue("MODULE OPTIONS:")), - opts, - color_tty.bold(color_tty.blue("CONFIGURATION TEMPLATE:")), - template, - color_tty.bold(color_tty.blue("COMMAND LINE OPTIONS:")), )) - for arg in schema.schema.values(): - print("--opt {}.{}={}".format(schema.name, arg.name, - dump_value(arg.default) - if arg.has_default() else "")) - - -def generate_config(**kwargs): - minimal = kwargs['minimal'] - modules = kwargs['modules'] - module_schema = get_registered_modules() - visited = [] - schema = [] - - def walk(m): - if m in visited: - return - s = module_schema[m] - schema.append(s) - visited.append(m) - - for mod in modules: - walk(mod) - - # XXX try to be smart about when to add header, - # if any "architecture" module, is included, head will be added as well - if any([getattr(m, 'category', None) == 'architecture' for m in schema]): - # XXX for ordered printing - header = "" - for k, v in MISC_CONFIG.items(): - header += yaml.dump( - { - k: v - }, default_flow_style=False, default_style='') - print(header) - - for s in schema: - print(dump_config(s, minimal)) - - -# FIXME this is pretty hackish, maybe implement a custom YAML printer? -def analyze_config(**kwargs): - config = load_config(kwargs['file']) - print_total_cfg(config) - - -if __name__ == '__main__': - argv = sys.argv[1:] - - parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter) - subparsers = parser.add_subparsers(help='Supported Commands') - list_parser = subparsers.add_parser("list", help="list available modules") - help_parser = subparsers.add_parser( - "help", help="show detail options for module") - generate_parser = subparsers.add_parser( - "generate", help="generate configuration template") - analyze_parser = subparsers.add_parser( - "analyze", help="analyze configuration file") - - list_parser.set_defaults(func=list_modules) - help_parser.set_defaults(func=help_module) - generate_parser.set_defaults(func=generate_config) - analyze_parser.set_defaults(func=analyze_config) - - list_group = list_parser.add_mutually_exclusive_group() - list_group.add_argument( - "-c", - "--category", - type=str, - default=None, - help="list modules for ") - - help_parser.add_argument( - "module", - help="module to show info for", - choices=list(get_registered_modules().keys())) - - generate_parser.add_argument( - "modules", - nargs='+', - help="include these module in generated configuration template", - choices=list(get_registered_modules().keys())) - generate_group = generate_parser.add_mutually_exclusive_group() - generate_group.add_argument( - "--minimal", action='store_true', help="only include required options") - generate_group.add_argument( - "--full", - action='store_false', - dest='minimal', - help="include all options") - - analyze_parser.add_argument("file", help="configuration file to analyze") - - if len(sys.argv) < 2: - parser.print_help() - sys.exit(1) - - args = parser.parse_args(argv) - if hasattr(args, 'func'): - args.func(**vars(args)) diff --git a/PaddleCV/PaddleDetection/tools/eval.py b/PaddleCV/PaddleDetection/tools/eval.py deleted file mode 100644 index 15692d3dd8b13789faaaa6a9a0bb3ed9385f37a6..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/eval.py +++ /dev/null @@ -1,183 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -import paddle.fluid as fluid - -from ppdet.utils.eval_utils import parse_fetches, eval_run, eval_results, json_eval_results -import ppdet.utils.checkpoint as checkpoint -from ppdet.utils.check import check_gpu -from ppdet.modeling.model_input import create_feed -from ppdet.data.data_feed import create_reader -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.utils.cli import print_total_cfg -from ppdet.utils.cli import ArgsParser - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def main(): - """ - Main evaluate function - """ - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - print_total_cfg(cfg) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - multi_scale_test = getattr(cfg, 'MultiScaleTEST', None) - - # define executor - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - # build program - model = create(main_arch) - startup_prog = fluid.Program() - eval_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - pyreader, feed_vars = create_feed(eval_feed) - if multi_scale_test is None: - fetches = model.eval(feed_vars) - else: - fetches = model.eval(feed_vars, multi_scale_test) - eval_prog = eval_prog.clone(True) - reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - pyreader.decorate_sample_list_generator(reader, place) - - # eval already exists json file - if FLAGS.json_eval: - logger.info( - "In json_eval mode, PaddleDetection will evaluate json files in " - "output_eval directly. And proposal.json, bbox.json and mask.json " - "will be detected by default.") - json_eval_results( - eval_feed, cfg.metric, json_directory=FLAGS.output_eval) - return - - compile_program = fluid.compiler.CompiledProgram( - eval_prog).with_data_parallel() - - # load model - exe.run(startup_prog) - if 'weights' in cfg: - checkpoint.load_params(exe, eval_prog, cfg.weights) - - assert cfg.metric in ['COCO', 'VOC'], \ - "unknown metric type {}".format(cfg.metric) - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - - keys, values, cls = parse_fetches(fetches, eval_prog, extra_keys) - - # whether output bbox is normalized in model output layer - is_bbox_normalized = False - if hasattr(model, 'is_bbox_normalized') and \ - callable(model.is_bbox_normalized): - is_bbox_normalized = model.is_bbox_normalized() - - sub_eval_prog = None - sub_keys = None - sub_values = None - # build sub-program - if 'Mask' in main_arch and multi_scale_test: - sub_eval_prog = fluid.Program() - with fluid.program_guard(sub_eval_prog, startup_prog): - with fluid.unique_name.guard(): - _, feed_vars = create_feed( - eval_feed, use_pyreader=False, sub_prog_feed=True) - sub_fetches = model.eval( - feed_vars, multi_scale_test, mask_branch=True) - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - sub_keys, sub_values, _ = parse_fetches(sub_fetches, sub_eval_prog, - extra_keys) - sub_eval_prog = sub_eval_prog.clone(True) - - if 'weights' in cfg: - checkpoint.load_params(exe, sub_eval_prog, cfg.weights) - - results = eval_run(exe, compile_program, pyreader, keys, values, cls, cfg, - sub_eval_prog, sub_keys, sub_values) - - # evaluation - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - # if map_type not set, use default 11point, only use in VOC eval - map_type = cfg.map_type if 'map_type' in cfg else '11point' - eval_results(results, eval_feed, cfg.metric, cfg.num_classes, resolution, - is_bbox_normalized, FLAGS.output_eval, map_type) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "--json_eval", - action='store_true', - default=False, - help="Whether to re eval with already exists bbox.json or mask.json") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - parser.add_argument( - "-f", - "--output_eval", - default=None, - type=str, - help="Evaluation file directory, default is current directory.") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/tools/export_model.py b/PaddleCV/PaddleDetection/tools/export_model.py deleted file mode 100644 index b0c9edac316220ca2b752fad05eec5437f698de8..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/export_model.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -from paddle import fluid - -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.modeling.model_input import create_feed -from ppdet.utils.cli import ArgsParser -import ppdet.utils.checkpoint as checkpoint - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def prune_feed_vars(feeded_var_names, target_vars, prog): - """ - Filter out feed variables which are not in program, - pruned feed variables are only used in post processing - on model output, which are not used in program, such - as im_id to identify image order, im_shape to clip bbox - in image. - """ - exist_var_names = [] - prog = prog.clone() - prog = prog._prune(targets=target_vars) - global_block = prog.global_block() - for name in feeded_var_names: - try: - v = global_block.var(name) - exist_var_names.append(str(v.name)) - except Exception: - logger.info('save_inference_model pruned unused feed ' - 'variables {}'.format(name)) - pass - return exist_var_names - - -def save_infer_model(FLAGS, exe, feed_vars, test_fetches, infer_prog): - cfg_name = os.path.basename(FLAGS.config).split('.')[0] - save_dir = os.path.join(FLAGS.output_dir, cfg_name) - feed_var_names = [var.name for var in feed_vars.values()] - target_vars = list(test_fetches.values()) - feed_var_names = prune_feed_vars(feed_var_names, target_vars, infer_prog) - logger.info("Export inference model to {}, input: {}, output: " - "{}...".format(save_dir, feed_var_names, - [str(var.name) for var in target_vars])) - fluid.io.save_inference_model( - save_dir, - feeded_var_names=feed_var_names, - target_vars=target_vars, - executor=exe, - main_program=infer_prog, - params_filename="__params__") - - -def main(): - cfg = load_config(FLAGS.config) - - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - - if 'test_feed' not in cfg: - test_feed = create(main_arch + 'TestFeed') - else: - test_feed = create(cfg.test_feed) - - # Use CPU for exporting inference model instead of GPU - place = fluid.CPUPlace() - exe = fluid.Executor(place) - - model = create(main_arch) - - startup_prog = fluid.Program() - infer_prog = fluid.Program() - with fluid.program_guard(infer_prog, startup_prog): - with fluid.unique_name.guard(): - _, feed_vars = create_feed(test_feed, use_pyreader=False) - test_fetches = model.test(feed_vars) - infer_prog = infer_prog.clone(True) - - exe.run(startup_prog) - checkpoint.load_params(exe, infer_prog, cfg.weights) - - save_infer_model(FLAGS, exe, feed_vars, test_fetches, infer_prog) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "--output_dir", - type=str, - default="output", - help="Directory for storing the output model files.") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/tools/face_eval.py b/PaddleCV/PaddleDetection/tools/face_eval.py deleted file mode 100644 index f74d5ba431e2933e346d8430e9ba9b2ad20af170..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/face_eval.py +++ /dev/null @@ -1,298 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -import paddle.fluid as fluid -import numpy as np -from PIL import Image -from collections import OrderedDict - -import ppdet.utils.checkpoint as checkpoint -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -from ppdet.utils.widerface_eval_utils import get_shrink, bbox_vote, \ - save_widerface_bboxes, save_fddb_bboxes, to_chw_bgr -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def face_img_process(image, - mean=[104., 117., 123.], - std=[127.502231, 127.502231, 127.502231]): - img = np.array(image) - img = to_chw_bgr(img) - img = img.astype('float32') - img -= np.array(mean)[:, np.newaxis, np.newaxis].astype('float32') - img /= np.array(std)[:, np.newaxis, np.newaxis].astype('float32') - img = [img] - img = np.array(img) - return img - - -def face_eval_run(exe, - compile_program, - fetches, - img_root_dir, - gt_file, - pred_dir='output/pred', - eval_mode='widerface', - multi_scale=False): - # load ground truth files - with open(gt_file, 'r') as f: - gt_lines = f.readlines() - imid2path = [] - pos_gt = 0 - while pos_gt < len(gt_lines): - name_gt = gt_lines[pos_gt].strip('\n\t').split()[0] - imid2path.append(name_gt) - pos_gt += 1 - n_gt = int(gt_lines[pos_gt].strip('\n\t').split()[0]) - pos_gt += 1 + n_gt - logger.info('The ground truth file load {} images'.format(len(imid2path))) - - dets_dist = OrderedDict() - for iter_id, im_path in enumerate(imid2path): - image_path = os.path.join(img_root_dir, im_path) - if eval_mode == 'fddb': - image_path += '.jpg' - image = Image.open(image_path).convert('RGB') - if multi_scale: - shrink, max_shrink = get_shrink(image.size[1], image.size[0]) - det0 = detect_face(exe, compile_program, fetches, image, shrink) - det1 = flip_test(exe, compile_program, fetches, image, shrink) - [det2, det3] = multi_scale_test(exe, compile_program, fetches, image, - max_shrink) - det4 = multi_scale_test_pyramid(exe, compile_program, fetches, image, - max_shrink) - det = np.row_stack((det0, det1, det2, det3, det4)) - dets = bbox_vote(det) - else: - dets = detect_face(exe, compile_program, fetches, image, 1) - if eval_mode == 'widerface': - save_widerface_bboxes(image_path, dets, pred_dir) - else: - dets_dist[im_path] = dets - if iter_id % 100 == 0: - logger.info('Test iter {}'.format(iter_id)) - if eval_mode == 'fddb': - save_fddb_bboxes(dets_dist, pred_dir) - logger.info("Finish evaluation.") - - -def detect_face(exe, compile_program, fetches, image, shrink): - image_shape = [3, image.size[1], image.size[0]] - if shrink != 1: - h, w = int(image_shape[1] * shrink), int(image_shape[2] * shrink) - image = image.resize((w, h), Image.ANTIALIAS) - image_shape = [3, h, w] - - img = face_img_process(image) - detection, = exe.run(compile_program, - feed={'image': img}, - fetch_list=[fetches['bbox']], - return_numpy=False) - detection = np.array(detection) - # layout: xmin, ymin, xmax. ymax, score - if np.prod(detection.shape) == 1: - logger.info("No face detected") - return np.array([[0, 0, 0, 0, 0]]) - det_conf = detection[:, 1] - det_xmin = image_shape[2] * detection[:, 2] / shrink - det_ymin = image_shape[1] * detection[:, 3] / shrink - det_xmax = image_shape[2] * detection[:, 4] / shrink - det_ymax = image_shape[1] * detection[:, 5] / shrink - - det = np.column_stack((det_xmin, det_ymin, det_xmax, det_ymax, det_conf)) - return det - - -def flip_test(exe, compile_program, fetches, image, shrink): - img = image.transpose(Image.FLIP_LEFT_RIGHT) - det_f = detect_face(exe, compile_program, fetches, img, shrink) - det_t = np.zeros(det_f.shape) - # image.size: [width, height] - det_t[:, 0] = image.size[0] - det_f[:, 2] - det_t[:, 1] = det_f[:, 1] - det_t[:, 2] = image.size[0] - det_f[:, 0] - det_t[:, 3] = det_f[:, 3] - det_t[:, 4] = det_f[:, 4] - return det_t - - -def multi_scale_test(exe, compile_program, fetches, image, max_shrink): - # Shrink detecting is only used to detect big faces - st = 0.5 if max_shrink >= 0.75 else 0.5 * max_shrink - det_s = detect_face(exe, compile_program, fetches, image, st) - index = np.where( - np.maximum(det_s[:, 2] - det_s[:, 0] + 1, det_s[:, 3] - det_s[:, 1] + 1) - > 30)[0] - det_s = det_s[index, :] - # Enlarge one times - bt = min(2, max_shrink) if max_shrink > 1 else (st + max_shrink) / 2 - det_b = detect_face(exe, compile_program, fetches, image, bt) - - # Enlarge small image x times for small faces - if max_shrink > 2: - bt *= 2 - while bt < max_shrink: - det_b = np.row_stack((det_b, detect_face(exe, compile_program, - fetches, image, bt))) - bt *= 2 - det_b = np.row_stack((det_b, detect_face(exe, compile_program, fetches, - image, max_shrink))) - - # Enlarged images are only used to detect small faces. - if bt > 1: - index = np.where( - np.minimum(det_b[:, 2] - det_b[:, 0] + 1, - det_b[:, 3] - det_b[:, 1] + 1) < 100)[0] - det_b = det_b[index, :] - # Shrinked images are only used to detect big faces. - else: - index = np.where( - np.maximum(det_b[:, 2] - det_b[:, 0] + 1, - det_b[:, 3] - det_b[:, 1] + 1) > 30)[0] - det_b = det_b[index, :] - return det_s, det_b - - -def multi_scale_test_pyramid(exe, compile_program, fetches, image, max_shrink): - # Use image pyramids to detect faces - det_b = detect_face(exe, compile_program, fetches, image, 0.25) - index = np.where( - np.maximum(det_b[:, 2] - det_b[:, 0] + 1, det_b[:, 3] - det_b[:, 1] + 1) - > 30)[0] - det_b = det_b[index, :] - - st = [0.75, 1.25, 1.5, 1.75] - for i in range(len(st)): - if st[i] <= max_shrink: - det_temp = detect_face(exe, compile_program, fetches, image, st[i]) - # Enlarged images are only used to detect small faces. - if st[i] > 1: - index = np.where( - np.minimum(det_temp[:, 2] - det_temp[:, 0] + 1, - det_temp[:, 3] - det_temp[:, 1] + 1) < 100)[0] - det_temp = det_temp[index, :] - # Shrinked images are only used to detect big faces. - else: - index = np.where( - np.maximum(det_temp[:, 2] - det_temp[:, 0] + 1, - det_temp[:, 3] - det_temp[:, 1] + 1) > 30)[0] - det_temp = det_temp[index, :] - det_b = np.row_stack((det_b, det_temp)) - return det_b - - -def main(): - """ - Main evaluate function - """ - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - # define executor - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - # build program - model = create(main_arch) - startup_prog = fluid.Program() - eval_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - _, feed_vars = create_feed(eval_feed, use_pyreader=False) - fetches = model.eval(feed_vars) - - eval_prog = eval_prog.clone(True) - - # load model - exe.run(startup_prog) - if 'weights' in cfg: - checkpoint.load_params(exe, eval_prog, cfg.weights) - - assert cfg.metric in ['WIDERFACE'], \ - "unknown metric type {}".format(cfg.metric) - - annotation_file = getattr(eval_feed.dataset, 'annotation', None) - dataset_dir = FLAGS.dataset_dir if FLAGS.dataset_dir else \ - getattr(eval_feed.dataset, 'dataset_dir', None) - img_root_dir = dataset_dir - if FLAGS.eval_mode == "widerface": - image_dir = getattr(eval_feed.dataset, 'image_dir', None) - img_root_dir = os.path.join(dataset_dir, image_dir) - gt_file = os.path.join(dataset_dir, annotation_file) - pred_dir = FLAGS.output_eval if FLAGS.output_eval else 'output/pred' - face_eval_run( - exe, - eval_prog, - fetches, - img_root_dir, - gt_file, - pred_dir=pred_dir, - eval_mode=FLAGS.eval_mode, - multi_scale=FLAGS.multi_scale) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - parser.add_argument( - "-f", - "--output_eval", - default=None, - type=str, - help="Evaluation file directory, default is current directory.") - parser.add_argument( - "-e", - "--eval_mode", - default="widerface", - type=str, - help="Evaluation mode, include `widerface` and `fddb`, default is `widerface`." - ) - parser.add_argument( - "--multi_scale", - action='store_true', - default=False, - help="If True it will select `multi_scale` evaluation. Default is `False`, it will select `single-scale` evaluation.") - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/tools/infer.py b/PaddleCV/PaddleDetection/tools/infer.py deleted file mode 100644 index ed10814846037dcabdb301e244370848c647a61b..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/infer.py +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import glob - -import numpy as np -from PIL import Image - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid - -from ppdet.utils.cli import print_total_cfg -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.modeling.model_input import create_feed -from ppdet.data.data_feed import create_reader - -from ppdet.utils.eval_utils import parse_fetches -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -from ppdet.utils.visualizer import visualize_results -import ppdet.utils.checkpoint as checkpoint - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def get_save_image_name(output_dir, image_path): - """ - Get save image name from source image path. - """ - if not os.path.exists(output_dir): - os.makedirs(output_dir) - image_name = os.path.split(image_path)[-1] - name, ext = os.path.splitext(image_name) - return os.path.join(output_dir, "{}".format(name)) + ext - - -def get_test_images(infer_dir, infer_img): - """ - Get image path list in TEST mode - """ - assert infer_img is not None or infer_dir is not None, \ - "--infer_img or --infer_dir should be set" - assert infer_img is None or os.path.isfile(infer_img), \ - "{} is not a file".format(infer_img) - assert infer_dir is None or os.path.isdir(infer_dir), \ - "{} is not a directory".format(infer_dir) - images = [] - - # infer_img has a higher priority - if infer_img and os.path.isfile(infer_img): - images.append(infer_img) - return images - - infer_dir = os.path.abspath(infer_dir) - assert os.path.isdir(infer_dir), \ - "infer_dir {} is not a directory".format(infer_dir) - exts = ['jpg', 'jpeg', 'png', 'bmp'] - exts += [ext.upper() for ext in exts] - for ext in exts: - images.extend(glob.glob('{}/*.{}'.format(infer_dir, ext))) - - assert len(images) > 0, "no image found in {}".format(infer_dir) - logger.info("Found {} inference images in total.".format(len(images))) - - return images - - -def main(): - cfg = load_config(FLAGS.config) - - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - print_total_cfg(cfg) - - if 'test_feed' not in cfg: - test_feed = create(main_arch + 'TestFeed') - else: - test_feed = create(cfg.test_feed) - - test_images = get_test_images(FLAGS.infer_dir, FLAGS.infer_img) - test_feed.dataset.add_images(test_images) - - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - model = create(main_arch) - - startup_prog = fluid.Program() - infer_prog = fluid.Program() - with fluid.program_guard(infer_prog, startup_prog): - with fluid.unique_name.guard(): - _, feed_vars = create_feed(test_feed, use_pyreader=False) - test_fetches = model.test(feed_vars) - infer_prog = infer_prog.clone(True) - - reader = create_reader(test_feed) - feeder = fluid.DataFeeder(place=place, feed_list=feed_vars.values()) - - exe.run(startup_prog) - if cfg.weights: - checkpoint.load_params(exe, infer_prog, cfg.weights) - - # parse infer fetches - assert cfg.metric in ['COCO', 'VOC', 'WIDERFACE'], \ - "unknown metric type {}".format(cfg.metric) - extra_keys = [] - if cfg['metric'] == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg['metric'] == 'VOC' or cfg['metric'] == 'WIDERFACE': - extra_keys = ['im_id', 'im_shape'] - keys, values, _ = parse_fetches(test_fetches, infer_prog, extra_keys) - - # parse dataset category - if cfg.metric == 'COCO': - from ppdet.utils.coco_eval import bbox2out, mask2out, get_category_info - if cfg.metric == "VOC": - from ppdet.utils.voc_eval import bbox2out, get_category_info - if cfg.metric == "WIDERFACE": - from ppdet.utils.widerface_eval_utils import bbox2out, get_category_info - - anno_file = getattr(test_feed.dataset, 'annotation', None) - with_background = getattr(test_feed, 'with_background', True) - use_default_label = getattr(test_feed, 'use_default_label', False) - clsid2catid, catid2name = get_category_info(anno_file, with_background, - use_default_label) - - # whether output bbox is normalized in model output layer - is_bbox_normalized = False - if hasattr(model, 'is_bbox_normalized') and \ - callable(model.is_bbox_normalized): - is_bbox_normalized = model.is_bbox_normalized() - - # use tb-paddle to log image - if FLAGS.use_tb: - from tb_paddle import SummaryWriter - tb_writer = SummaryWriter(FLAGS.tb_log_dir) - tb_image_step = 0 - tb_image_frame = 0 # each frame can display ten pictures at most. - - imid2path = reader.imid2path - for iter_id, data in enumerate(reader()): - outs = exe.run(infer_prog, - feed=feeder.feed(data), - fetch_list=values, - return_numpy=False) - res = { - k: (np.array(v), v.recursive_sequence_lengths()) - for k, v in zip(keys, outs) - } - logger.info('Infer iter {}'.format(iter_id)) - - bbox_results = None - mask_results = None - if 'bbox' in res: - bbox_results = bbox2out([res], clsid2catid, is_bbox_normalized) - if 'mask' in res: - mask_results = mask2out([res], clsid2catid, - model.mask_head.resolution) - - # visualize result - im_ids = res['im_id'][0] - for im_id in im_ids: - image_path = imid2path[int(im_id)] - image = Image.open(image_path).convert('RGB') - - # use tb-paddle to log original image - if FLAGS.use_tb: - original_image_np = np.array(image) - tb_writer.add_image( - "original/frame_{}".format(tb_image_frame), - original_image_np, - tb_image_step, - dataformats='HWC') - - image = visualize_results(image, - int(im_id), catid2name, - FLAGS.draw_threshold, bbox_results, - mask_results) - - # use tb-paddle to log image with bbox - if FLAGS.use_tb: - infer_image_np = np.array(image) - tb_writer.add_image( - "bbox/frame_{}".format(tb_image_frame), - infer_image_np, - tb_image_step, - dataformats='HWC') - tb_image_step += 1 - if tb_image_step % 10 == 0: - tb_image_step = 0 - tb_image_frame += 1 - - save_name = get_save_image_name(FLAGS.output_dir, image_path) - logger.info("Detection bbox results save in {}".format(save_name)) - image.save(save_name, quality=95) - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "--infer_dir", - type=str, - default=None, - help="Directory for images to perform inference on.") - parser.add_argument( - "--infer_img", - type=str, - default=None, - help="Image path, has higher priority over --infer_dir") - parser.add_argument( - "--output_dir", - type=str, - default="output", - help="Directory for storing the output visualization files.") - parser.add_argument( - "--draw_threshold", - type=float, - default=0.5, - help="Threshold to reserve the result for visualization.") - parser.add_argument( - "--use_tb", - type=bool, - default=False, - help="whether to record the data to Tensorboard.") - parser.add_argument( - '--tb_log_dir', - type=str, - default="tb_log_dir/image", - help='Tensorboard logging directory for image.') - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/PaddleDetection/tools/train.py b/PaddleCV/PaddleDetection/tools/train.py deleted file mode 100644 index 6d04c665ecbae873a043624a80661c385194fe9e..0000000000000000000000000000000000000000 --- a/PaddleCV/PaddleDetection/tools/train.py +++ /dev/null @@ -1,376 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import numpy as np -import random -import datetime -from collections import deque - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be set before -# `import paddle`. Otherwise, it would not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -from paddle import fluid -from paddle.fluid import profiler - -from ppdet.experimental import mixed_precision_context -from ppdet.core.workspace import load_config, merge_config, create -from ppdet.data.data_feed import create_reader - -from ppdet.utils.cli import print_total_cfg -from ppdet.utils import dist_utils -from ppdet.utils.eval_utils import parse_fetches, eval_run, eval_results -from ppdet.utils.stats import TrainingStats -from ppdet.utils.cli import ArgsParser -from ppdet.utils.check import check_gpu -import ppdet.utils.checkpoint as checkpoint -from ppdet.modeling.model_input import create_feed - -import logging -FORMAT = '%(asctime)s-%(levelname)s: %(message)s' -logging.basicConfig(level=logging.INFO, format=FORMAT) -logger = logging.getLogger(__name__) - - -def main(): - env = os.environ - FLAGS.dist = 'PADDLE_TRAINER_ID' in env and 'PADDLE_TRAINERS_NUM' in env - if FLAGS.dist: - trainer_id = int(env['PADDLE_TRAINER_ID']) - local_seed = (99 + trainer_id) - random.seed(local_seed) - np.random.seed(local_seed) - - if FLAGS.enable_ce: - random.seed(0) - np.random.seed(0) - - cfg = load_config(FLAGS.config) - if 'architecture' in cfg: - main_arch = cfg.architecture - else: - raise ValueError("'architecture' not specified in config file.") - - merge_config(FLAGS.opt) - - if 'log_iter' not in cfg: - cfg.log_iter = 20 - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - if not FLAGS.dist or trainer_id == 0: - print_total_cfg(cfg) - - if cfg.use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int(os.environ.get('CPU_NUM', 1)) - - if 'train_feed' not in cfg: - train_feed = create(main_arch + 'TrainFeed') - else: - train_feed = create(cfg.train_feed) - - if FLAGS.eval: - if 'eval_feed' not in cfg: - eval_feed = create(main_arch + 'EvalFeed') - else: - eval_feed = create(cfg.eval_feed) - - if 'FLAGS_selected_gpus' in env: - device_id = int(env['FLAGS_selected_gpus']) - else: - device_id = 0 - place = fluid.CUDAPlace(device_id) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - - lr_builder = create('LearningRate') - optim_builder = create('OptimizerBuilder') - - # build program - startup_prog = fluid.Program() - train_prog = fluid.Program() - if FLAGS.enable_ce: - startup_prog.random_seed = 1000 - train_prog.random_seed = 1000 - with fluid.program_guard(train_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - train_pyreader, feed_vars = create_feed(train_feed) - - if FLAGS.fp16: - assert (getattr(model.backbone, 'norm_type', None) - != 'affine_channel'), \ - '--fp16 currently does not support affine channel, ' \ - ' please modify backbone settings to use batch norm' - - with mixed_precision_context(FLAGS.loss_scale, FLAGS.fp16) as ctx: - train_fetches = model.train(feed_vars) - - loss = train_fetches['loss'] - if FLAGS.fp16: - loss *= ctx.get_loss_scale_var() - lr = lr_builder() - optimizer = optim_builder(lr) - optimizer.minimize(loss) - if FLAGS.fp16: - loss /= ctx.get_loss_scale_var() - - # parse train fetches - train_keys, train_values, _ = parse_fetches(train_fetches) - train_values.append(lr) - - if FLAGS.eval: - eval_prog = fluid.Program() - with fluid.program_guard(eval_prog, startup_prog): - with fluid.unique_name.guard(): - model = create(main_arch) - eval_pyreader, feed_vars = create_feed(eval_feed) - fetches = model.eval(feed_vars) - eval_prog = eval_prog.clone(True) - - eval_reader = create_reader(eval_feed, args_path=FLAGS.dataset_dir) - eval_pyreader.decorate_sample_list_generator(eval_reader, place) - - # parse eval fetches - extra_keys = [] - if cfg.metric == 'COCO': - extra_keys = ['im_info', 'im_id', 'im_shape'] - if cfg.metric == 'VOC': - extra_keys = ['gt_box', 'gt_label', 'is_difficult'] - if cfg.metric == 'WIDERFACE': - extra_keys = ['im_id', 'im_shape', 'gt_box'] - eval_keys, eval_values, eval_cls = parse_fetches(fetches, eval_prog, - extra_keys) - - # compile program for multi-devices - build_strategy = fluid.BuildStrategy() - build_strategy.fuse_all_optimizer_ops = False - build_strategy.fuse_elewise_add_act_ops = True - # only enable sync_bn in multi GPU devices - sync_bn = getattr(model.backbone, 'norm_type', None) == 'sync_bn' - build_strategy.sync_batch_norm = sync_bn and devices_num > 1 \ - and cfg.use_gpu - - exec_strategy = fluid.ExecutionStrategy() - # iteration number when CompiledProgram tries to drop local execution scopes. - # Set it to be 1 to save memory usages, so that unused variables in - # local execution scopes can be deleted after each iteration. - exec_strategy.num_iteration_per_drop_scope = 1 - if FLAGS.dist: - dist_utils.prepare_for_multi_process(exe, build_strategy, startup_prog, - train_prog) - exec_strategy.num_threads = 1 - - exe.run(startup_prog) - compiled_train_prog = fluid.CompiledProgram(train_prog).with_data_parallel( - loss_name=loss.name, - build_strategy=build_strategy, - exec_strategy=exec_strategy) - - if FLAGS.eval: - compiled_eval_prog = fluid.compiler.CompiledProgram(eval_prog) - - fuse_bn = getattr(model.backbone, 'norm_type', None) == 'affine_channel' - - ignore_params = cfg.finetune_exclude_pretrained_params \ - if 'finetune_exclude_pretrained_params' in cfg else [] - - start_iter = 0 - if FLAGS.resume_checkpoint: - checkpoint.load_checkpoint(exe, train_prog, FLAGS.resume_checkpoint) - start_iter = checkpoint.global_step() - elif cfg.pretrain_weights and fuse_bn and not ignore_params: - checkpoint.load_and_fusebn(exe, train_prog, cfg.pretrain_weights) - elif cfg.pretrain_weights: - checkpoint.load_params( - exe, train_prog, cfg.pretrain_weights, ignore_params=ignore_params) - - train_reader = create_reader(train_feed, (cfg.max_iters - start_iter) * - devices_num, FLAGS.dataset_dir) - train_pyreader.decorate_sample_list_generator(train_reader, place) - - # whether output bbox is normalized in model output layer - is_bbox_normalized = False - if hasattr(model, 'is_bbox_normalized') and \ - callable(model.is_bbox_normalized): - is_bbox_normalized = model.is_bbox_normalized() - - # if map_type not set, use default 11point, only use in VOC eval - map_type = cfg.map_type if 'map_type' in cfg else '11point' - - train_stats = TrainingStats(cfg.log_smooth_window, train_keys) - train_pyreader.start() - start_time = time.time() - end_time = time.time() - - cfg_name = os.path.basename(FLAGS.config).split('.')[0] - save_dir = os.path.join(cfg.save_dir, cfg_name) - time_stat = deque(maxlen=cfg.log_smooth_window) - best_box_ap_list = [0.0, 0] #[map, iter] - - # use tb-paddle to log data - if FLAGS.use_tb: - from tb_paddle import SummaryWriter - tb_writer = SummaryWriter(FLAGS.tb_log_dir) - tb_loss_step = 0 - tb_mAP_step = 0 - - for it in range(start_iter, cfg.max_iters): - start_time = end_time - end_time = time.time() - time_stat.append(end_time - start_time) - time_cost = np.mean(time_stat) - eta_sec = (cfg.max_iters - it) * time_cost - eta = str(datetime.timedelta(seconds=int(eta_sec))) - outs = exe.run(compiled_train_prog, fetch_list=train_values) - stats = {k: np.array(v).mean() for k, v in zip(train_keys, outs[:-1])} - - # use tb-paddle to log loss - if FLAGS.use_tb: - if it % cfg.log_iter == 0: - for loss_name, loss_value in stats.items(): - tb_writer.add_scalar(loss_name, loss_value, tb_loss_step) - tb_loss_step += 1 - - train_stats.update(stats) - logs = train_stats.log() - if it % cfg.log_iter == 0 and (not FLAGS.dist or trainer_id == 0): - strs = 'iter: {}, lr: {:.6f}, {}, time: {:.3f}, eta: {}'.format( - it, np.mean(outs[-1]), logs, time_cost, eta) - logger.info(strs) - - #only for continuous evaluation - if FLAGS.enable_ce and it == cfg.max_iters - 1: - print("kpis\t{}_train_loss\t{}".format(cfg.architecture, stats['loss'])) - print("kpis\t{}_train_time\t{}".format(cfg.architecture, time_cost)) - - # profiler tools, used for benchmark - if FLAGS.is_profiler and it == 5: - profiler.start_profiler("All") - elif FLAGS.is_profiler and it == 10: - profiler.stop_profiler("total", FLAGS.profiler_path) - return - - if (it > 0 and it % cfg.snapshot_iter == 0 or it == cfg.max_iters - 1) \ - and (not FLAGS.dist or trainer_id == 0): - save_name = str(it) if it != cfg.max_iters - 1 else "model_final" - checkpoint.save(exe, train_prog, os.path.join(save_dir, save_name)) - - if FLAGS.eval: - # evaluation - results = eval_run(exe, compiled_eval_prog, eval_pyreader, - eval_keys, eval_values, eval_cls) - resolution = None - if 'mask' in results[0]: - resolution = model.mask_head.resolution - box_ap_stats = eval_results( - results, eval_feed, cfg.metric, cfg.num_classes, resolution, - is_bbox_normalized, FLAGS.output_eval, map_type) - - # use tb_paddle to log mAP - if FLAGS.use_tb: - tb_writer.add_scalar("mAP", box_ap_stats[0], tb_mAP_step) - tb_mAP_step += 1 - - if box_ap_stats[0] > best_box_ap_list[0]: - best_box_ap_list[0] = box_ap_stats[0] - best_box_ap_list[1] = it - checkpoint.save(exe, train_prog, - os.path.join(save_dir, "best_model")) - logger.info("Best test box ap: {}, in iter: {}".format( - best_box_ap_list[0], best_box_ap_list[1])) - - train_pyreader.reset() - - -if __name__ == '__main__': - parser = ArgsParser() - parser.add_argument( - "-r", - "--resume_checkpoint", - default=None, - type=str, - help="Checkpoint path for resuming training.") - parser.add_argument( - "--fp16", - action='store_true', - default=False, - help="Enable mixed precision training.") - parser.add_argument( - "--loss_scale", - default=8., - type=float, - help="Mixed precision training loss scale.") - parser.add_argument( - "--eval", - action='store_true', - default=False, - help="Whether to perform evaluation in train") - parser.add_argument( - "--output_eval", - default=None, - type=str, - help="Evaluation directory, default is current directory.") - parser.add_argument( - "-d", - "--dataset_dir", - default=None, - type=str, - help="Dataset path, same as DataFeed.dataset.dataset_dir") - parser.add_argument( - "--use_tb", - type=bool, - default=False, - help="whether to record the data to Tensorboard.") - parser.add_argument( - '--tb_log_dir', - type=str, - default="tb_log_dir/scalar", - help='Tensorboard logging directory for scalar.') - parser.add_argument( - '--enable_ce', - type=bool, - default=False, - help="If set True, enable continuous evaluation job." - "This flag is only used for internal test.") - - #NOTE:args for profiler tools, used for benchmark - parser.add_argument( - '--is_profiler', - type=int, - default=0, - help='The switch of profiler tools. (used for benchmark)') - parser.add_argument( - '--profiler_path', - type=str, - default="./", - help='The profiler output file path. (used for benchmark)') - FLAGS = parser.parse_args() - main() diff --git a/PaddleCV/Research/AGEchallenge/Classification/1. PrepareData.ipynb b/PaddleCV/Research/AGEchallenge/Classification/1. PrepareData.ipynb deleted file mode 100644 index 438786023ccd0e83bf29163079ab0c5b2f931e12..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/Classification/1. PrepareData.ipynb +++ /dev/null @@ -1,368 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Angle closure classification Baseline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## requirement install" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install xlrd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Zip File Extract\n", - "\n", - "Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!unzip -q ../datasets/Training100.zip -d ../datasets/\n", - "!unzip -q ../datasets/Validation_ASOCT_Image.zip -d ../datasets/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Explore Data & Train/Val split" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import csv\n", - "import matplotlib.pyplot as plt\n", - "import cv2\n", - "import os, shutil\n", - "import pprint\n", - "import pandas as pd\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "xlsx_file_path = os.path.join(data_root_path, \"Training100_Location.xlsx\")\n", - "\n", - "# Load\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "label_file_path = os.path.join(data_root_path, \"train_cls.csv\")\n", - "\n", - "# Save\n", - "train_file_path = os.path.join(data_root_path, \"cls_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"cls_val_split.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ASOCT_NameLeft_LabelX1Y1Right_LabelX2Y2
0T0056-10.jpg1228.833656466.95960111870.803864451.592300
1T0047-06.jpg1207.935545525.93876411792.231404432.521881
2T0066-15.jpg0239.372633476.27392501899.775568501.007410
3T0025-15.jpg0177.708404545.65593501862.380363439.228928
4T0088-06.jpg0285.256170735.07601401884.122651767.858589
\n", - "
" - ], - "text/plain": [ - " ASOCT_Name Left_Label X1 Y1 Right_Label X2 \\\n", - "0 T0056-10.jpg 1 228.833656 466.959601 1 1870.803864 \n", - "1 T0047-06.jpg 1 207.935545 525.938764 1 1792.231404 \n", - "2 T0066-15.jpg 0 239.372633 476.273925 0 1899.775568 \n", - "3 T0025-15.jpg 0 177.708404 545.655935 0 1862.380363 \n", - "4 T0088-06.jpg 0 285.256170 735.076014 0 1884.122651 \n", - "\n", - " Y2 \n", - "0 451.592300 \n", - "1 432.521881 \n", - "2 501.007410 \n", - "3 439.228928 \n", - "4 767.858589 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "xlsx_file = pd.read_excel(xlsx_file_path)\n", - "xlsx_file.to_csv(label_file_path, \n", - " index=False, columns=['ASOCT_Name', 'Left_Label', 'Right_Label'])\n", - "xlsx_file.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[['ASOCT_Name', 'Left_Label', 'Right_Label'],\n", - " ['T0056-10.jpg', '1', '1'],\n", - " ['T0047-06.jpg', '1', '1'],\n", - " ['T0066-15.jpg', '0', '0'],\n", - " ['T0025-15.jpg', '0', '0']]\n" - ] - } - ], - "source": [ - "data_list = []\n", - "\n", - "with open(label_file_path,'r') as f: \n", - " lines=csv.reader(f) \n", - " for key, line in enumerate(lines): \n", - " data_list.append(line)\n", - " \n", - "pprint.pprint(data_list[:5])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1280, 320]\n", - "[1280, 320]\n" - ] - } - ], - "source": [ - "# left, right\n", - "# negative sample (label==0): 1280, 1280\n", - "# positive sample (label==1): 320, 320\n", - "left_label_counter = [0, 0]\n", - "right_label_counter = [0, 0]\n", - "\n", - "for line in data_list[1:]:\n", - " file_name, l_label, r_label = line\n", - " left_label_counter[int(l_label)] += 1\n", - " right_label_counter[int(r_label)] += 1\n", - " \n", - "print(left_label_counter)\n", - "print(right_label_counter)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Left label == Right label, in **TRAINING SET**\n", - "for line in data_list[1:]:\n", - " file_name, l_label, r_label = line\n", - " if int(l_label) != int(r_label):\n", - " print(line)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Train/Val Split" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def train_val_split(data_list, train_ratio=0.8, shuffle_seed=42):\n", - " testee_list = list(set( [line[0].split(\"-\")[0] for line in data_list[1:]] ))\n", - " \n", - " # Split by patient id, prevent data leakage\n", - " val_testee_idx = np.random.choice(testee_list, int(len(testee_list) * (1-train_ratio)), replace=False)\n", - "\n", - " train_list = []\n", - " val_list = []\n", - " \n", - " for line in data_list[1:]:\n", - " file_name, _, _ = line\n", - " if file_name.split(\"-\")[0] in val_testee_idx:\n", - " val_list.append(line)\n", - " else:\n", - " train_list.append(line)\n", - " \n", - " return train_list, val_list" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1296\n", - "304\n" - ] - } - ], - "source": [ - "train_data_list, val_data_list = train_val_split(data_list)\n", - "print(len(train_data_list))\n", - "print(len(val_data_list))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# Write to files\n", - "with open(train_file_path, \"w+\") as f:\n", - " for line in train_data_list:\n", - "# file_name, l_label, r_label = line\n", - " f.write(\"{},{},{}\\n\".format(*line))\n", - " \n", - "with open(val_file_path, \"w+\") as f:\n", - " for line in val_data_list:\n", - " f.write(\"{},{},{}\\n\".format(*line))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/PaddleCV/Research/AGEchallenge/Classification/2. Train.ipynb b/PaddleCV/Research/AGEchallenge/Classification/2. Train.ipynb deleted file mode 100644 index 11d2631e2a9bdf52ffeb4cd8ad590871069d90f4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/Classification/2. Train.ipynb +++ /dev/null @@ -1,558 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Angle closure classification Baseline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training\n", - "\n", - "- Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`\n", - "- Assume `weights` are stored @ `./AGE_challenge Baseline/weights/`\n", - "- In training phase, we use standard ResNet34 with `sigmoid(fc(1))` output\n", - "- We split a single image into two parts" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Download ImageNet weight" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2019-08-06 13:36:07-- https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar\n", - "Resolving paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)... 220.181.33.44, 220.181.33.43\n", - "Connecting to paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)|220.181.33.44|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 87470080 (83M) [application/x-tar]\n", - "Saving to: ‘../weights/ResNet34_pretrained.tar’\n", - "\n", - "ResNet34_pretrained 100%[===================>] 83.42M 1.80MB/s in 66s \n", - "\n", - "2019-08-06 13:37:13 (1.27 MB/s) - ‘../weights/ResNet34_pretrained.tar’ saved [87470080/87470080]\n", - "\n" - ] - } - ], - "source": [ - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "!rm ../weights/ResNet34_pretrained.tar \n", - "!rm -rf ../weights/ResNet34_pretrained\n", - "\n", - "!wget -P ../weights/ https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar \n", - "!tar xvf ../weights/ResNet34_pretrained.tar -C ../weights/ > /dev/null # silent\n", - "!rm ../weights/ResNet34_pretrained/fc*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Main Code" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time\n", - "from sklearn.metrics import roc_auc_score, confusion_matrix, roc_curve" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from resnet import *" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"cls_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"cls_val_split.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 32 // 2 # image split * 2\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Data Loader" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# Real time data augmentation in training\n", - "\n", - "def rotate_image(image, angle=90, scale=1.0):\n", - " '''\n", - " Rotate the image\n", - " :param image: image to be processed\n", - " :param angle: Rotation angle in degrees. Positive values mean counter-clockwise rotation (the coordinate origin is assumed to be the top-left corner).\n", - " :param scale: Isotropic scale factor.\n", - " '''\n", - " w = image.shape[1]\n", - " h = image.shape[0]\n", - " #rotate matrix\n", - " M = cv2.getRotationMatrix2D((w/2,h/2), angle, scale)\n", - " #rotate\n", - " image = cv2.warpAffine(image,M,(w,h))\n", - " return image\n", - "\n", - "def vflip_image(image):\n", - " return cv2.flip(image, flipCode=1)\n", - "\n", - "def crop_image(img, target_size, center):\n", - " \"\"\" crop_image \"\"\"\n", - " height, width = img.shape[:2]\n", - " size = target_size\n", - " if center == True:\n", - " w_start = (width - size) // 2\n", - " h_start = (height - size) // 2\n", - " else:\n", - " w_start = np.random.randint(0, width - size + 1)\n", - " h_start = np.random.randint(0, height - size + 1)\n", - " w_end = w_start + size\n", - " h_end = h_start + size\n", - " img = img[h_start:h_end, w_start:w_end, :]\n", - " return img\n", - "\n", - "def split_image(img):\n", - " rows,_,_ = img.shape\n", - " # left, right split\n", - " return [img[:, :rows, :], img[:, -rows:, :]]" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "# data reader and xmap wrapper to enable multiprocessing data load\n", - "\n", - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " single_img_path, l_label, r_label = line.split(\",\")\n", - " batch_data.append([single_img_path, int(l_label), int(r_label)])\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data, mode, rotate=True, flip=True):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file, l_label, r_label = sample\n", - "\n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255\n", - " \n", - " img = np.concatenate(split_image(img), axis=-1) # concat at channel dim\n", - " img = cv2.resize(img, (256, 256))\n", - " \n", - " if mode == 'train':\n", - " img = crop_image(img, target_size=224, center=False)\n", - "# img = img + np.random.randn(*img.shape) * 0.3 / 255 \n", - " if rotate:\n", - " angle = np.random.randint(1, 30, size=1)\n", - " img = rotate_image(img, angle)\n", - " if flip and np.random.randint(0,2):\n", - " img = vflip_image(img)\n", - " else:\n", - " img = crop_image(img, target_size=224, center=True)\n", - " \n", - " img = img.transpose((2, 0, 1))\n", - "\n", - " batch_data.append((img[:3,:,:], l_label))\n", - " batch_data.append((img[3:,:,:], r_label))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False, mode='train'):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data, mode=mode)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "with open(train_file_path) as flist:\n", - " train_file_list = [os.path.join(image_path,line.strip()) for line in flist]\n", - "\n", - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1296\n", - "304\n", - "../datasets/Training100/ASOCT_Image/T0047-06.jpg,1,1\n" - ] - } - ], - "source": [ - "print(len(train_file_list))\n", - "print(len(val_file_list))\n", - "\n", - "print(train_file_list[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "np.random.shuffle(train_file_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1072, 224]\n" - ] - } - ], - "source": [ - "# Class imbalance\n", - "classes_collaction = [0] * 2\n", - "for line in train_file_list:\n", - " file, c_l, c_r = line.split(\",\")\n", - " classes_collaction[int(c_l)] +=1\n", - " \n", - "print(classes_collaction)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataloader = data_loader(train_file_list, image_path, BATCH_SIZE, False, mode='train')\n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True, mode='val')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define model (compute graph)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 224, 224]\n", - " \n", - " model = ResNet34()\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " label = FL.data(name='label', shape=[1], dtype='int64')\n", - " \n", - " logit = model.net(input_feature, class_dim=1)\n", - " predict = FL.sigmoid(logit)\n", - "\n", - " reader = fluid.io.PyReader(feed_list=[input_feature, label], \n", - " capacity=64, iterable=True, use_double_buffer=True)\n", - "\n", - " cost = FL.log_loss(predict, FL.cast(label, \"float32\"), epsilon=1e-7)\n", - " loss = FL.mean(cost)\n", - "\n", - " accuracy = FL.mean(FL.cast(FL.equal(FL.cast(FL.round(predict),\"int64\"), label), \"float32\") )\n", - " \n", - " return [loss, accuracy, predict, reader]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "def calc_auc_numpy(y_pred, y_true):\n", - " auc = roc_auc_score(y_true, y_pred)\n", - "\n", - " fpr, tpr, thresh = roc_curve(y_true, y_pred)\n", - " optimal_idx = np.argmax(tpr - fpr)\n", - " \n", - " print(\"Best Sensi: %1.4f\" % (tpr[optimal_idx]))\n", - " print(\"Best Speci: %1.4f\" % (1-fpr[optimal_idx]))\n", - " print(\"Best Thresh: %1.4f\" % (thresh[optimal_idx]))\n", - " \n", - " y_pred = (y_pred > 0.5).astype(np.int_)\n", - " print(confusion_matrix(y_true, y_pred))\n", - " \n", - " return auc" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "def train(use_cuda, params_dirname_prefix, pretrained_model=False, EPOCH_NUM=10):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " train_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - "\n", - " with fluid.program_guard(train_prog, startup_prog):\n", - " # fluid.unique_name.guard() to share parameters with test network\n", - " with fluid.unique_name.guard():\n", - " train_loss, train_acc, train_output, train_reader = network()\n", - " \n", - " optimizer = fluid.optimizer.Adam(learning_rate=1e-4)\n", - " optimizer.minimize(train_loss)\n", - " \n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_loss, val_acc, val_output, val_reader = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - "\n", - " train_loss.persistable = True\n", - " train_acc.persistable = True\n", - " val_loss.persistable = True\n", - " val_acc.persistable = True\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=train_prog, predicate=if_exist)\n", - "\n", - " train_reader.decorate_sample_list_generator( train_dataloader, places=place )\n", - " val_reader.decorate_sample_list_generator( val_dataloader, places=place )\n", - "\n", - " # For training test cost\n", - " def train_test(val_prog, val_reader):\n", - " count = 0\n", - " accumulated = [0,0]\n", - " \n", - " prediction = []\n", - " label_values = []\n", - " \n", - " for tid, val_data in enumerate(val_reader()):\n", - " avg_cost_np = exe.run(\n", - " program=val_prog,\n", - " feed=val_data,\n", - " fetch_list=[val_loss, val_acc, val_output],\n", - " use_program_cache=True)\n", - " accumulated = [\n", - " x[0] + x[1][0] for x in zip(accumulated, avg_cost_np)\n", - " ]\n", - " prediction.append(avg_cost_np[2])\n", - " label_values.append( np.array(val_data[0]['label']) )\n", - " count += 1\n", - "\n", - " prediction = np.concatenate(prediction, 0)\n", - " label_values = np.concatenate(label_values, 0)\n", - " \n", - " auc = calc_auc_numpy(prediction, label_values)\n", - " \n", - " return [x / count for x in accumulated], auc\n", - "\n", - " # main train loop.\n", - " def train_loop():\n", - " step = 0\n", - " best_auc = 0.\n", - "\n", - " for pass_id in range(EPOCH_NUM):\n", - " data_load_time = time.time()\n", - " for step_id, data_train in enumerate(train_reader()):\n", - " data_load_costtime = time.time() - data_load_time\n", - " start_time = time.time()\n", - " avg_loss_value = exe.run(\n", - " train_prog,\n", - " feed=data_train,\n", - " fetch_list=[train_loss, train_acc], \n", - " use_program_cache=True)\n", - " cost_time = time.time() - start_time\n", - " if step_id % 50 == 0:\n", - " print(\"Pass %d, Epoch %d, Cost %f, Acc %f, Time %f, LoadTime %f\" % (\n", - " step_id, pass_id, avg_loss_value[0], avg_loss_value[1], cost_time, data_load_costtime))\n", - " else:\n", - " pass\n", - " step += 1\n", - " data_load_time = time.time()\n", - "\n", - " metrics, auc = train_test(val_prog, val_reader)\n", - " avg_cost_test, accuracy_test = metrics\n", - " \n", - " print('Test with Epoch {0}, Loss {1:2.4}, Acc {2:2.4}, Auc {3:2.4}'.format(\n", - " pass_id, avg_cost_test, accuracy_test, auc))\n", - " \n", - " if auc >= best_auc:\n", - " best_data = [pass_id, avg_cost_test, accuracy_test, auc]\n", - " best_auc = auc\n", - " print(\"\\nBest AUC, Checkpoint Saved!\\n\")\n", - " if not os.path.isdir(params_dirname_prefix+\"_best/\"):\n", - " os.makedirs(params_dirname_prefix+\"_best/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_best/\", main_program=train_prog)\n", - "\n", - " if not os.path.isdir(params_dirname_prefix+\"_checkpoint/\"):\n", - " os.makedirs(params_dirname_prefix+\"_checkpoint/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_checkpoint/\", main_program=train_prog)\n", - " train_loop()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# download imagenet pretrain weight from:\n", - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "# remove ResNet34_pretrained/fc*\n", - "train(use_cuda=True, params_dirname_prefix=\"../weights/classify_weights\", \n", - " pretrained_model=\"../weights/ResNet34_pretrained\", EPOCH_NUM=20)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/Classification/3. Inference.ipynb b/PaddleCV/Research/AGEchallenge/Classification/3. Inference.ipynb deleted file mode 100644 index d88a7f9335663790e68de313bd3b1bffb438dd69..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/Classification/3. Inference.ipynb +++ /dev/null @@ -1,329 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Angle closure classification Baseline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inference\n", - "\n", - "- Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`\n", - "- Assume `weights` are stored @ `./AGE_challenge Baseline/weights/`\n", - "- In training phase, we use standard ResNet34 with `sigmoid(fc(1))` output\n", - "- We split a single image into two parts" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time\n", - "from sklearn.metrics import roc_auc_score, confusion_matrix, roc_curve" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from resnet import *" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "\n", - "val_file_path = os.path.join(data_root_path, \"cls_val_split.csv\")\n", - "\n", - "output_file = \"./Classification_Results.csv\"" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 32 // 2 # image split * 2\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Inference Data Loader" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Real time data augmentation\n", - "def crop_image(img, target_size, center):\n", - " \"\"\" crop_image \"\"\"\n", - " height, width = img.shape[:2]\n", - " size = target_size\n", - " if center == True:\n", - " w_start = (width - size) // 2\n", - " h_start = (height - size) // 2\n", - " else:\n", - " w_start = np.random.randint(0, width - size + 1)\n", - " h_start = np.random.randint(0, height - size + 1)\n", - " w_end = w_start + size\n", - " h_end = h_start + size\n", - " img = img[h_start:h_end, w_start:w_end, :]\n", - " return img\n", - "\n", - "def split_image(img):\n", - " rows,_,_ = img.shape\n", - " # left, right split\n", - " return [img[:, :rows, :], img[:, -rows:, :]]\n", - " \n", - "# data reader and xmap wrapper to enable multiprocessing data load\n", - "\n", - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " single_img_path, _, _ = line.split(\",\")\n", - " batch_data.append(single_img_path)\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file = sample\n", - "\n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255\n", - " \n", - " img = np.concatenate(split_image(img), axis=-1) # concat at channel dim\n", - " img = cv2.resize(img, (256, 256))\n", - " \n", - " img = crop_image(img, target_size=224, center=True)\n", - " \n", - " img = img.transpose((2, 0, 1))\n", - "\n", - " batch_data.append((file, 0, img[:3,:,:]))\n", - " batch_data.append((file, 1, img[3:,:,:]))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist]\n", - " \n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define model (compute graph)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 224, 224]\n", - " \n", - " model = ResNet34()\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " \n", - " logit = model.net(input_feature, class_dim=1)\n", - " predict = FL.sigmoid(logit)\n", - "\n", - " return predict" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def inference(use_cuda, pretrained_model, threshold=0.5):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - "\n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_output = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=val_prog, predicate=if_exist)\n", - " \n", - " positive_ratio = 1. / (1. - threshold)\n", - " negative_ratio = 1. / threshold\n", - " \n", - " result = {}\n", - " for tid, data in enumerate(val_dataloader()):\n", - " file_names, part_splits, val_datas = [],[],[]\n", - " for item in data:\n", - " file_names.append(item[0])\n", - " part_splits.append(item[1])\n", - " val_datas.append(item[2])\n", - " \n", - " batch_preds, = exe.run(\n", - " program=val_prog,\n", - " feed={\"pixel\":np.array(val_datas)},\n", - " fetch_list=[val_output],\n", - " use_program_cache=True)\n", - "\n", - " for file, part, pred in zip(file_names, part_splits, batch_preds[:,0]):\n", - " if pred >= threshold:\n", - " threshold_pred = (pred-threshold) * positive_ratio\n", - " else:\n", - " threshold_pred = (pred-threshold) * negative_ratio\n", - " if file not in result.keys():\n", - " result[file] = [0, 0]\n", - " result[file][part] = threshold_pred\n", - " return result\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "result = inference(True, \"../weights/classify_weights_best/\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "with open(output_file, \"w+\") as f:\n", - " f.write(\"{},{},{}\\n\".format(\"ASOCT_NAME\", \"LEFT_ANGLE_RESULTS\", \"RIGHT_ANGLE_RESULTS\"))\n", - " for file, pred_labels in result.items():\n", - " f.write(\"{},{},{}\\n\".format(file.split(\"/\")[-1], *pred_labels))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/Classification/README.md b/PaddleCV/Research/AGEchallenge/Classification/README.md deleted file mode 100644 index 9eb387c90ceafface85bc7c72ef431353e171af7..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/Classification/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Angle closure Glaucoma Evaluation Challenge -The goal of the challenge is to evaluate and compare automated algorithms for angle closure classification and localization of scleral spur (SS) points on a common dataset of AS-OCT images. We invite the medical image analysis community to participate by developing and testing existing and novel automated classification and segmentation methods. -More detail [AGE challenge](https://age.grand-challenge.org/Details/). - -## Angle closure classification task - -1. Prepare data - - * We assume that you have downloaded data(two zip files), and stored @ `../datasets/`. - * (Updated on August 5) Replace update files. - * We provide a demo about `zip file extract`, `xlsx reader`, `data structure explore` and `Train/Val split`. - -2. Train - - * We assume that you have downloaded data, extracted compressed files, and stored @ `../datasets/`. - * Based on PaddlePaddle and [ResNet34](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py), we provide a baseline about `pretrain weight download and load`, `datareader`, `computation graph of ResNet34 model`, `training` and `evaluation metrics`. - -3. Inference - - * We assume that you have downloaded data, extracted compressed files, and stored @ `../datasets/`. - * We assume that you store checkpoint files @ `../weights/` - * Based on PaddlePaddle and [ResNet34](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py), we provide a baseline about `inference` and `dump result to csv file`. diff --git a/PaddleCV/Research/AGEchallenge/Classification/resnet.py b/PaddleCV/Research/AGEchallenge/Classification/resnet.py deleted file mode 100644 index 3f705d40e9f71bbc9e2ee0164ab27c38bbb17530..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/Classification/resnet.py +++ /dev/null @@ -1,198 +0,0 @@ -#copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import math - -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr - -__all__ = ["ResNet", "ResNet18", "ResNet34", "ResNet50", "ResNet101", "ResNet152"] - -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} - - -class ResNet(): - def __init__(self, layers=50): - self.params = train_parameters - self.layers = layers - - def net(self, input, class_dim=1000): - layers = self.layers - supported_layers = [18, 34, 50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - - if layers == 18: - depth = [2, 2, 2, 2] - elif layers == 34 or layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu',name="conv1") - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - if layers >= 50: - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152] and block == 2: - if i == 0: - conv_name="res"+str(block+2)+"a" - else: - conv_name="res"+str(block+2)+"b"+str(i) - else: - conv_name="res"+str(block+2)+chr(97+i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, name=conv_name) - - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - out = fluid.layers.fc(input=pool, - size=class_dim, - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv))) - else: - for block in range(len(depth)): - for i in range(depth[block]): - conv_name="res"+str(block+2)+chr(97+i) - conv = self.basic_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - is_first=block==i==0, - name=conv_name) - - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - out = fluid.layers.fc(input=pool, - size=class_dim, - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv))) - return out - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - name=bn_name+'.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance',) - - def shortcut(self, input, ch_out, stride, is_first, name): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1 or is_first == True: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck_block(self, input, num_filters, stride, name): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu',name=name+"_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name+"_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None, name=name+"_branch2c") - - short = self.shortcut(input, num_filters * 4, stride, is_first=False, name=name + "_branch1") - - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu',name=name+".add.output.5") - - def basic_block(self, input, num_filters, stride, is_first, name): - conv0 = self.conv_bn_layer(input=input, num_filters=num_filters, filter_size=3, act='relu', stride=stride, - name=name+"_branch2a") - conv1 = self.conv_bn_layer(input=conv0, num_filters=num_filters, filter_size=3, act=None, - name=name+"_branch2b") - short = self.shortcut(input, num_filters, stride, is_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv1, act='relu') - - -def ResNet18(): - model = ResNet(layers=18) - return model - - -def ResNet34(): - model = ResNet(layers=34) - return model - - -def ResNet50(): - model = ResNet(layers=50) - return model - - -def ResNet101(): - model = ResNet(layers=101) - return model - - -def ResNet152(): - model = ResNet(layers=152) - return model diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/1. PrepareData.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationFCN/1. PrepareData.ipynb deleted file mode 100644 index 4f963cc4ed9374b7ed80ddaab7496beaff390f4c..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationFCN/1. PrepareData.ipynb +++ /dev/null @@ -1,652 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (FCN)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## requirement install" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install xlrd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Zip File Extract\n", - "\n", - "Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!unzip -q ../datasets/Training100.zip -d ../datasets/\n", - "!unzip -q ../datasets/Validation_ASOCT_Image.zip -d ../datasets/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Explore Data" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import csv\n", - "import matplotlib.pyplot as plt\n", - "import cv2\n", - "import os, shutil\n", - "import pprint\n", - "import pandas as pd\n", - "from mpl_toolkits.mplot3d.axes3d import Axes3D\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "xlsx_file_path = os.path.join(data_root_path, \"Training100_Location.xlsx\")\n", - "\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "label_file_path = os.path.join(data_root_path, \"train_loc.csv\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"loc_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")\n", - "\n", - "img_save_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ASOCT_NameLeft_LabelX1Y1Right_LabelX2Y2
0T0056-10.jpg1228.833656466.95960111870.803864451.592300
1T0047-06.jpg1207.935545525.93876411792.231404432.521881
2T0066-15.jpg0239.372633476.27392501899.775568501.007410
3T0025-15.jpg0177.708404545.65593501862.380363439.228928
4T0088-06.jpg0285.256170735.07601401884.122651767.858589
\n", - "
" - ], - "text/plain": [ - " ASOCT_Name Left_Label X1 Y1 Right_Label X2 \\\n", - "0 T0056-10.jpg 1 228.833656 466.959601 1 1870.803864 \n", - "1 T0047-06.jpg 1 207.935545 525.938764 1 1792.231404 \n", - "2 T0066-15.jpg 0 239.372633 476.273925 0 1899.775568 \n", - "3 T0025-15.jpg 0 177.708404 545.655935 0 1862.380363 \n", - "4 T0088-06.jpg 0 285.256170 735.076014 0 1884.122651 \n", - "\n", - " Y2 \n", - "0 451.592300 \n", - "1 432.521881 \n", - "2 501.007410 \n", - "3 439.228928 \n", - "4 767.858589 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "xlsx_file = pd.read_excel(xlsx_file_path)\n", - "xlsx_file.to_csv(label_file_path, \n", - " index=False, columns=['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'])\n", - "xlsx_file.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'],\n", - " ['T0056-10.jpg',\n", - " '228.83365553922314',\n", - " '466.95960107867666',\n", - " '1870.8038638045307',\n", - " '451.59230045548907']]\n" - ] - } - ], - "source": [ - "data_list = []\n", - "\n", - "with open(label_file_path,'r') as f: \n", - " lines=csv.reader(f) \n", - " for key, line in enumerate(lines): \n", - " data_list.append(line)\n", - " \n", - "pprint.pprint(data_list[:2])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# visualization\n", - "plt.figure(figsize=(15,5))\n", - "\n", - "file_name, l_x, l_y, r_x, r_y = data_list[1]\n", - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "\n", - "plt.imshow(img)\n", - "plt.scatter(float(l_x), float(l_y), c='r')\n", - "plt.scatter(float(r_x), float(r_y), c='r')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Center Split\n", - "\n", - "Assume images.shape = nrows, ncols, channel\n", - "\n", - "Especially 998, 2130, 3 for AGE dataset.\n", - "\n", - "Every image is cropped to two images\n", - "\n", - "- Left: [:, :nrow, :]\n", - "- Right: [:, -nrow:, :]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def center_split(img, l_point, r_point):\n", - " # img: 3D nparray\n", - " # l_point/r_point: (x,y)\n", - " nrow, ncol, ch = img.shape\n", - " left_img, right_img = img[:,:nrow,:], img[:,-nrow:,:]\n", - " \n", - "# l_point = l_point\n", - " r_point = (r_point[0] - (ncol-nrow), r_point[1])\n", - " return left_img, right_img, l_point, r_point" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "left_img, right_img, l_point, r_point = \\\n", - " center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - "\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.imshow(left_img)\n", - "plt.scatter(*l_point, c='r')\n", - "plt.subplot(1,2,2)\n", - "plt.imshow(right_img)\n", - "plt.scatter(*r_point, c='r')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prepare heatmap data for FCN model" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "\n", - "plt.figure(figsize=(10,5))\n", - "plt.subplot(1,3,1)\n", - "plt.imshow(left_img)\n", - "plt.scatter(*l_point, c='r')\n", - "plt.subplot(1,3,2)\n", - "\n", - "ratio = 256.0 / img.shape[0]\n", - "img = cv2.resize(img, (256, 256))\n", - "left_hm = generate_hm(img.shape[0], img.shape[0], (l_point[0] * ratio, l_point[1] * ratio))\n", - "plt.imshow(left_hm)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# 3D view of Heatmap\n", - "fig = plt.figure()\n", - "ax = Axes3D(fig)\n", - "\n", - "# 生成数据\n", - "X = np.arange(0, 256, 1)\n", - "Y = np.arange(0, 256, 1)\n", - "X, Y = np.meshgrid(X, Y)\n", - "\n", - "ax.plot_surface(X, Y, left_hm)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Train/Val split" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def train_val_split(data_list, train_ratio=0.8, shuffle_seed=42):\n", - " testee_list = list(set( [line[0].split(\"-\")[0] for line in data_list[1:]] ))\n", - " \n", - " val_testee_idx = np.random.choice(testee_list, int(len(testee_list) * (1-train_ratio)), replace=False)\n", - "\n", - " train_list = []\n", - " val_list = []\n", - " \n", - " for line in data_list[1:]:\n", - " file_name = line[0]\n", - " if file_name.split(\"-\")[0] in val_testee_idx:\n", - " val_list.append(line)\n", - " else:\n", - " train_list.append(line)\n", - " \n", - " return train_list, val_list" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1296\n", - "304\n" - ] - } - ], - "source": [ - "train_data_list, val_data_list = train_val_split(data_list)\n", - "print(len(train_data_list))\n", - "print(len(val_data_list))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Center Split & Save\n", - "\n", - "Some coordinates might be -1" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['T0032-02.jpg', '-1.0', '-1.0', '1843.6821495037216', '423.24170285359793']\n", - "['T0032-04.jpg', '-1.0', '-1.0', '1830.46875', '417.4608405707196']\n", - "['T0044-15.jpg', '-1.0', '-1.0', '1921.7379475363339', '842.1701745834812']\n", - "['T0032-01.jpg', '-1.0', '-1.0', '1844.5079869727044', '429.0225651364764']\n", - "['T0032-03.jpg', '-1.0', '-1.0', '1846.1596619106695', '414.98332816377166']\n", - "['T0044-14.jpg', '-1.0', '-1.0', '1911.931717476072', '850.6125930521091']\n" - ] - } - ], - "source": [ - "split_train_list = []\n", - "\n", - "if os.path.exists(img_save_path):\n", - " shutil.rmtree(img_save_path)\n", - "os.mkdir(img_save_path)\n", - "\n", - "for item in train_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " l_x, l_y, r_x, r_y = list(map(lambda x:float(x), [l_x, l_y, r_x, r_y]))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " \n", - " if l_x != -1 and l_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " split_train_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " else:\n", - " print(item)\n", - " if r_x != -1 and r_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - " split_train_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])\n", - " else:\n", - " print(item)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['T0035-16.jpg', '-1.0', '-1.0', '1828.555184528656', '455.6486820725847']\n" - ] - } - ], - "source": [ - "split_val_list = []\n", - "for item in val_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " l_x, l_y, r_x, r_y = list(map(lambda x:float(x), [l_x, l_y, r_x, r_y]))\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " if l_x != -1 and l_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " split_val_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " else:\n", - " print(item)\n", - " if r_x != -1 and r_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - " split_val_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])\n", - " else:\n", - " print(item)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "with open(train_file_path, \"w+\") as f:\n", - " for item in split_train_list:\n", - " f.write(\"{},{},{}\\n\".format(*item))\n", - "\n", - "with open(val_file_path, \"w+\") as f:\n", - " for item in split_val_list:\n", - " f.write(\"{},{},{}\\n\".format(*item))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/2. Train.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationFCN/2. Train.ipynb deleted file mode 100644 index 3c0f21f716a71294a37cbb07080fdd79e9baf28e..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationFCN/2. Train.ipynb +++ /dev/null @@ -1,501 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (FCN)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training\n", - "\n", - "- Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`\n", - "- Assume `weights` are stored @ `./AGE_challenge Baseline/weights/`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Download ImageNet weight" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2019-08-06 14:16:30-- https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar\n", - "Resolving paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)... 111.206.47.194, 202.106.5.21\n", - "Connecting to paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)|111.206.47.194|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 87470080 (83M) [application/x-tar]\n", - "Saving to: ‘../weights/ResNet34_pretrained.tar’\n", - "\n", - "ResNet34_pretrained 100%[===================>] 83.42M 2.08MB/s in 43s \n", - "\n", - "2019-08-06 14:17:14 (1.93 MB/s) - ‘../weights/ResNet34_pretrained.tar’ saved [87470080/87470080]\n", - "\n" - ] - } - ], - "source": [ - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "!rm ../weights/ResNet34_pretrained.tar \n", - "!rm -rf ../weights/ResNet34_pretrained\n", - "\n", - "!wget -P ../weights/ https://paddle-imagenet-models-name.bj.bcebos.com/ResNet34_pretrained.tar \n", - "!tar xvf ../weights/ResNet34_pretrained.tar -C ../weights/ > /dev/null # silent\n", - "!rm ../weights/ResNet34_pretrained/fc*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Main Code" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# preprocess: extract left/right label col in Training100_Location.xlsx\n", - "# save to train_csv file\n", - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"loc_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 32\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Remove last global pooling and fullyconnect layer to enable FCN arch.\n", - "# Standard ResNet Implement: \n", - "# https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py\n", - "from resnet_modified import *" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Data Loader" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def vflip_image(image):\n", - " return cv2.flip(image, flipCode=1)\n", - "\n", - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " file_name, p_x, p_y = line.split(\",\")\n", - " batch_data.append([file_name, float(p_x), float(p_y)])\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data, mode, rotate=True, flip=True):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file, p_x, p_y = sample\n", - " \n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255.0\n", - " \n", - " ratio = 256.0 / img.shape[0]\n", - " p_x, p_y = p_x * ratio, p_y * ratio\n", - " img = cv2.resize(img, (256, 256))\n", - "\n", - " if mode == 'train':\n", - " img = img + np.random.randn(*img.shape) * 0.3 / 255 \n", - " if flip and np.random.randint(0,2):\n", - " img = vflip_image(img)\n", - " p_x = 256 - p_x\n", - " else:\n", - " pass\n", - " \n", - " hm = generate_hm(256, 256, (p_x, p_y))\n", - " img = img.transpose((2, 0, 1))\n", - " batch_data.append((img, hm))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False, mode='train'):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data, mode=mode)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "with open(train_file_path) as flist:\n", - " train_file_list = [os.path.join(image_path,line.strip()) for line in flist]\n", - "\n", - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist] " - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2586\n", - "607\n", - "../datasets/Training100/ASOCT_Image_loc/T0056-10_left.jpg,228.83365553922314,466.95960107867666\n" - ] - } - ], - "source": [ - "print(len(train_file_list))\n", - "print(len(val_file_list))\n", - "print(train_file_list[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "np.random.shuffle(train_file_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataloader = data_loader(train_file_list, image_path, BATCH_SIZE, False, mode='train')\n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True, mode='val')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define model (compute graph)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 256, 256]\n", - " \n", - " model = ResNet34()\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " hm = FL.data(name='label', shape=data_shape[1:], dtype='float32')\n", - " \n", - " logit = model.net(input_feature, class_dim=1)\n", - " pred_hm = FL.squeeze(\n", - " FL.conv2d_transpose(logit, num_filters=1, output_size=256), axes=[1]) # Bs, 256,256\n", - " \n", - " reader = fluid.io.PyReader(feed_list=[input_feature, hm], \n", - " capacity=64, iterable=True, use_double_buffer=True)\n", - "\n", - " cost = FL.square_error_cost(pred_hm, hm)\n", - " loss = FL.mean(cost)\n", - " \n", - " return [loss, pred_hm, reader]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def calc_dist(pred_hm, hm):\n", - " hm = np.array(hm)\n", - " \n", - " mean_dis = 0.\n", - " for single_hm, single_pred_hm in zip(hm, pred_hm):\n", - " # Find argmax_x, argmax_y from 2D tensor\n", - " label_x, label_y = np.unravel_index(single_hm.argmax(), single_hm.shape)\n", - " pred_x, pred_y = np.unravel_index(single_pred_hm.argmax(), single_pred_hm.shape)\n", - " mean_dis += np.sqrt((pred_x - label_x) ** 2 + (pred_y - label_y) ** 2)\n", - " \n", - " return mean_dis / hm.shape[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "def train(use_cuda, params_dirname_prefix, pretrained_model=False, EPOCH_NUM=10):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " train_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - "\n", - " with fluid.program_guard(train_prog, startup_prog):\n", - " # fluid.unique_name.guard() to share parameters with test network\n", - " with fluid.unique_name.guard():\n", - " train_loss, train_output, train_reader = network()\n", - " \n", - " optimizer = fluid.optimizer.Adam(learning_rate=1e-4)\n", - " optimizer.minimize(train_loss)\n", - " \n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_loss, val_output, val_reader = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - "\n", - " train_loss.persistable = True\n", - " val_loss.persistable = True\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=train_prog, predicate=if_exist)\n", - "\n", - " train_reader.decorate_sample_list_generator( train_dataloader, places=place )\n", - " val_reader.decorate_sample_list_generator( val_dataloader, places=place )\n", - "\n", - " # For training test cost\n", - " def train_test(val_prog, val_reader):\n", - " count = 0\n", - " accumulated = [0,0]\n", - " \n", - " prediction = []\n", - " label_values = []\n", - " \n", - " for tid, val_data in enumerate(val_reader()):\n", - " avg_cost_np = exe.run(\n", - " program=val_prog,\n", - " feed=val_data,\n", - " fetch_list=[val_loss, val_output],\n", - " use_program_cache=True)\n", - " accumulated = [\n", - " x[0] + x[1][0] for x in zip(accumulated, avg_cost_np)\n", - " ]\n", - " prediction.append(avg_cost_np[1])\n", - " label_values.append( np.array(val_data[0]['label']) )\n", - " count += 1\n", - "\n", - " prediction = np.concatenate(prediction, 0)\n", - " label_values = np.concatenate(label_values, 0)\n", - "\n", - " mean_dis = calc_dist(prediction, label_values)\n", - " \n", - " return [x / count for x in accumulated], mean_dis\n", - "\n", - " # main train loop.\n", - " def train_loop():\n", - " step = 0\n", - " best_dist = 65536.\n", - "\n", - " for pass_id in range(EPOCH_NUM):\n", - " data_load_time = time.time()\n", - " for step_id, data_train in enumerate(train_reader()):\n", - " data_load_costtime = time.time() - data_load_time\n", - " start_time = time.time()\n", - " avg_loss_value = exe.run(\n", - " train_prog,\n", - " feed=data_train,\n", - " fetch_list=[train_loss, train_output], \n", - " use_program_cache=True)\n", - " cost_time = time.time() - start_time\n", - " if step_id % 50 == 0:\n", - " mean_dis = calc_dist(avg_loss_value[1], data_train[0]['label'])\n", - " print(\"Pass %d, Epoch %d, Cost %f, EuDis %f, Time %f, LoadTime %f\" % (\n", - " step_id, pass_id, avg_loss_value[0], mean_dis, cost_time, data_load_costtime))\n", - " else:\n", - " pass\n", - " step += 1\n", - " data_load_time = time.time()\n", - "\n", - " avg_cost_test, avg_dist_test = train_test(val_prog, val_reader)\n", - "\n", - " print('Test with Epoch {0}, Loss {1:2.4}, EuDis {2:2.4}'.format(\n", - " pass_id, avg_cost_test[0], avg_dist_test))\n", - "\n", - " if avg_dist_test < best_dist:\n", - " best_dist = avg_dist_test\n", - " print(\"\\nBest Dis, Checkpoint Saved!\\n\")\n", - " if not os.path.isdir(params_dirname_prefix+\"_best/\"):\n", - " os.makedirs(params_dirname_prefix+\"_best/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_best/\", main_program=train_prog)\n", - "\n", - " if not os.path.isdir(params_dirname_prefix+\"_checkpoint/\"):\n", - " os.makedirs(params_dirname_prefix+\"_checkpoint/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_checkpoint/\", main_program=train_prog)\n", - " train_loop()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# download imagenet pretrain weight from:\n", - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "# remove ResNet34_pretrained/fc*\n", - "train(use_cuda=True, params_dirname_prefix=\"../weights/loc_fcn\", \n", - " pretrained_model=\"../weights/ResNet34_pretrained\", EPOCH_NUM=40)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/3. Inference and Result Visualization.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationFCN/3. Inference and Result Visualization.ipynb deleted file mode 100644 index b77403509bac3353034a663c98aa366939b1ab32..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationFCN/3. Inference and Result Visualization.ipynb +++ /dev/null @@ -1,538 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (FCN)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Result Visualization\n", - "\n", - "- output_file do not contain coordinates==-1 images\n", - "- Due to the preprocessing step\n", - "- For real inference, keep all images in val_data_list." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time\n", - "import matplotlib.pyplot as plt\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 32\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# preprocess: extract left/right label col in Training100_Location.xlsx\n", - "# save to train_csv file\n", - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")\n", - "origin_data_dir = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "\n", - "# !!!For real inference, keep all images in val_file_path file!!!\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")\n", - "output_file = \"./Localization_Results.csv\"" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Remove last global pooling and fullyconnect layer to enable FCN arch.\n", - "# Standard ResNet Implement: \n", - "# https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py\n", - "from resnet_modified import *" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " file_name, p_x, p_y = line.split(\",\")\n", - " batch_data.append([file_name, float(p_x), float(p_y)])\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file, p_x, p_y = sample\n", - " \n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255.0\n", - " \n", - " ratio = 256.0 / img.shape[0]\n", - " img = cv2.resize(img, (256, 256))\n", - " \n", - " hm = generate_hm(256, 256, (p_x * ratio, p_y * ratio))\n", - "\n", - " img = img.transpose((2, 0, 1))\n", - " batch_data.append((img, file, (p_x, p_y)))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)\n", - " \n", - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist] \n", - "\n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 256, 256]\n", - " \n", - " model = ResNet34()\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " \n", - " logit = model.net(input_feature, class_dim=1)\n", - " pred_hm = FL.squeeze(\n", - " FL.conv2d_transpose(logit, num_filters=1, output_size=256), axes=[1]) # Bs, 256,256\n", - "\n", - " return pred_hm" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def calc_dist(pred_hm, points, ratio=1.0):\n", - " dis_arr = []\n", - " pred_idx = []\n", - " for point, single_pred_hm in zip(points, pred_hm):\n", - " label_y, label_x = point\n", - " pred_x, pred_y = np.unravel_index(single_pred_hm.argmax(), single_pred_hm.shape)\n", - " pred_x, pred_y = pred_x * ratio, pred_y * ratio\n", - " dis_arr.append( np.sqrt((pred_x - label_x) ** 2 + (pred_y - label_y) ** 2))\n", - " pred_idx.append((pred_y, pred_x))\n", - " \n", - " return np.array(dis_arr), pred_idx" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def infer(use_cuda, pretrained_model):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - " \n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_output = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=val_prog, predicate=if_exist)\n", - "\n", - " file_names, points, pred_hms = [],[],[]\n", - "\n", - " for tid, val_data in enumerate(val_dataloader()):\n", - " imgs = []\n", - " for item in val_data:\n", - " imgs.append(item[0])\n", - " file_names.append(item[1])\n", - " points.append(item[2])\n", - " \n", - " batch_pred_hm, = exe.run(\n", - " program=val_prog,\n", - " feed={\"pixel\":np.array(imgs)},\n", - " fetch_list=[val_output],\n", - " use_program_cache=True)\n", - " pred_hms.append(batch_pred_hm)\n", - "\n", - " pred_hms = np.concatenate(pred_hms, 0)\n", - "\n", - " return file_names, np.array(points), pred_hms" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(607, 256, 256)\n", - "(607, 2)\n", - "(607,)\n" - ] - } - ], - "source": [ - "file_names, points, pred_hms = \\\n", - " infer(use_cuda=True, pretrained_model=\"../weights/loc_fcn_best\")\n", - "\n", - "print(pred_hms.shape)\n", - "print(points.shape)\n", - "\n", - "ratio = 998. / 256. # all cropped images have same shape\n", - "dis, pred_idx = calc_dist(pred_hms, points, ratio)\n", - "print(dis.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Minimum Distance: 0.70, idx: 400\n", - "Maximum Distance: 66.02, idx: 588\n", - "Average Distance: 19.66\n" - ] - } - ], - "source": [ - "print(\"Minimum Distance: {:.2f}, idx: {}\".format(dis.min(), dis.argmin()))\n", - "print(\"Maximum Distance: {:.2f}, idx: {}\".format(dis.max(), dis.argmax()))\n", - "print(\"Average Distance: {:.2f}\".format(dis.mean()))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Number')" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "_ = plt.hist(dis, bins=100, facecolor=\"blue\", edgecolor=\"black\", alpha=0.7)\n", - "plt.xlabel(\"Euclidean Distance\")\n", - "plt.ylabel(\"Number\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Good Case\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Good Case\")\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "idx = dis.argmin()\n", - "\n", - "img = cv2.imread(file_names[idx])[:,:,::-1]\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.title(\"Loc Result\")\n", - "plt.imshow(img)\n", - "plt.scatter(*points[idx], c='r', s=150)\n", - "plt.scatter(*pred_idx[idx], c='b', s=120, marker='*')\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.title(\"Pred Heatmap\")\n", - "plt.imshow(pred_hms[idx])" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bad Case\n", - "../datasets/Training100/ASOCT_Image_loc/T0035-10_left.jpg\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Bad Case\")\n", - "\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "idx = dis.argmax()\n", - "print(file_names[idx])\n", - "\n", - "img = cv2.imread(file_names[idx])[:,:,::-1]\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.title(\"Loc Result\")\n", - "plt.imshow(img)\n", - "plt.scatter(*points[idx], c='r', s=150)\n", - "plt.scatter(*pred_idx[idx], c='b', s=120, marker='*')\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.title(\"Pred Heatmap\")\n", - "plt.imshow(pred_hms[idx])" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "result = {}\n", - "for file, pred_id in zip(file_names, pred_idx):\n", - " # T0055-15_right.jpg -> T0055-15\n", - " ori_name = file.split(\"/\")[-1].split(\"_\")[0]\n", - " if ori_name not in result.keys():\n", - " result[ori_name] = [[-1, -1],[-1, -1]]\n", - "\n", - " if \"left\" in file: result[ori_name][0] = pred_id\n", - " else: \n", - " image = cv2.imread(os.path.join(origin_data_dir, ori_name+\".jpg\"))\n", - " nrows, ncols, ch = image.shape\n", - " result[ori_name][1] = [(ncols - nrows) + pred_id[0], pred_id[1]]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "# output_file do not contain coordinates==-1 images\n", - "# Due to the preprocessing step\n", - "# For real inference, keep all images in val_data_list.\n", - "\n", - "with open(output_file, \"w+\") as f:\n", - " f.write(\"{},{},{},{},{}\\n\".format(\"ASOCT_NAME\", \"X_LEFT\", \"Y_LEFT\", \"X_RIGHT\", \"Y_RIGHT\"))\n", - " for file, pred_point in result.items():\n", - " f.write(\"{},{},{},{},{}\\n\".format(file+\".jpg\", *pred_point[0], *pred_point[1]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/README.md b/PaddleCV/Research/AGEchallenge/LocalizationFCN/README.md deleted file mode 100644 index 49a6c00cb7d3c45a5b284122a7f305b58ca986ae..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationFCN/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Angle closure Glaucoma Evaluation Challenge -The goal of the challenge is to evaluate and compare automated algorithms for angle closure classification and localization of scleral spur (SS) points on a common dataset of AS-OCT images. We invite the medical image analysis community to participate by developing and testing existing and novel automated classification and segmentation methods. -More detail [AGE challenge](https://age.grand-challenge.org/Details/). - -## Scleral spur localization task (FCN model) - -1. Method - - * Inspired by Fully Convolutional Networks (FCN), a keypoint is equivalent to 2D gaussian heatmap. - - - - - * Then, a localization task could be transformed to a heatmap regression task. - -2. Prepare data - - * We assume that you have downloaded data(two zip files), and store @ `../datasets/`. - * (Updated on August 5) Replace update files. - * We provide a demo about `zip file extract`, `data structure explore`, and `Train/Val split`. - -3. Train - - * We assume that you have download data, extract compressed files, and store @ `../datasets/`. - * Based on PaddlePaddle and [ResNet34](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py), we modify the model structure to enable FCN model, which global pooling layer and final fc layer were removed. - -4. Inference - - * We assume that you have download data, extract compressed files, and store @ `../datasets/`. - * We assume that you stored checkpoint files @ `../weights/loc_fcn` - * We provide a baseline about `inference` and `visualization`. - - - - \ No newline at end of file diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/1.png b/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/1.png deleted file mode 100644 index be44b9eea1b002f79e86396013a530cca3d4bf88..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/1.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/2.png b/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/2.png deleted file mode 100644 index b1a90b26998f9f4540bd15d6a1faaa597d094b7d..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/2.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/3.png b/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/3.png deleted file mode 100644 index 9871349db8f9f32c25b6dfd392836fcd34d39306..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/3.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/4.png b/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/4.png deleted file mode 100644 index 197113efd65cf9375d84e5aeadbfe7baad14d1d9..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationFCN/assets/4.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationFCN/resnet_modified.py b/PaddleCV/Research/AGEchallenge/LocalizationFCN/resnet_modified.py deleted file mode 100644 index 7319464d42046c8fd048c43bfa5e881ee1d39b43..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationFCN/resnet_modified.py +++ /dev/null @@ -1,199 +0,0 @@ -#copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import math - -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr - -__all__ = ["ResNet", "ResNet18", "ResNet34", "ResNet50", "ResNet101", "ResNet152"] - -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} - - -class ResNet(): - def __init__(self, layers=50): - self.params = train_parameters - self.layers = layers - - def net(self, input, class_dim=1000): - layers = self.layers - supported_layers = [18, 34, 50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - - if layers == 18: - depth = [2, 2, 2, 2] - elif layers == 34 or layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu',name="conv1") - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - if layers >= 50: - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152] and block == 2: - if i == 0: - conv_name="res"+str(block+2)+"a" - else: - conv_name="res"+str(block+2)+"b"+str(i) - else: - conv_name="res"+str(block+2)+chr(97+i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, name=conv_name) - out = conv -# pool = fluid.layers.pool2d( -# input=conv, pool_size=7, pool_type='avg', global_pooling=True) -# stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) -# out = fluid.layers.fc(input=pool, -# size=class_dim, -# param_attr=fluid.param_attr.ParamAttr( -# initializer=fluid.initializer.Uniform(-stdv, stdv))) - else: - for block in range(len(depth)): - for i in range(depth[block]): - conv_name="res"+str(block+2)+chr(97+i) - conv = self.basic_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - is_first=block==i==0, - name=conv_name) - -# pool = fluid.layers.pool2d( -# input=conv, pool_size=7, pool_type='avg', global_pooling=True) -# stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) -# out = fluid.layers.fc(input=pool, -# size=class_dim, -# param_attr=fluid.param_attr.ParamAttr( -# initializer=fluid.initializer.Uniform(-stdv, stdv))) - out = conv - return out - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - name=bn_name+'.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance',) - - def shortcut(self, input, ch_out, stride, is_first, name): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1 or is_first == True: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck_block(self, input, num_filters, stride, name): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu',name=name+"_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name+"_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None, name=name+"_branch2c") - - short = self.shortcut(input, num_filters * 4, stride, is_first=False, name=name + "_branch1") - - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu',name=name+".add.output.5") - - def basic_block(self, input, num_filters, stride, is_first, name): - conv0 = self.conv_bn_layer(input=input, num_filters=num_filters, filter_size=3, act='relu', stride=stride, - name=name+"_branch2a") - conv1 = self.conv_bn_layer(input=conv0, num_filters=num_filters, filter_size=3, act=None, - name=name+"_branch2b") - short = self.shortcut(input, num_filters, stride, is_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv1, act='relu') - - -def ResNet18(): - model = ResNet(layers=18) - return model - - -def ResNet34(): - model = ResNet(layers=34) - return model - - -def ResNet50(): - model = ResNet(layers=50) - return model - - -def ResNet101(): - model = ResNet(layers=101) - return model - - -def ResNet152(): - model = ResNet(layers=152) - return model diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/1. PrepareData.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/1. PrepareData.ipynb deleted file mode 100644 index 23acd427512f639f13a33bb3fa655c86c1953629..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/1. PrepareData.ipynb +++ /dev/null @@ -1,448 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (RCNN)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## requirement install" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Looking in indexes: http://pip.baidu.com/root/baidu/+simple/\n", - "Requirement already satisfied: xlrd in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (1.2.0)\n", - "Looking in indexes: http://pip.baidu.com/root/baidu/+simple/\n", - "Requirement already satisfied: tqdm in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (4.32.1)\n", - "Looking in indexes: http://pip.baidu.com/root/baidu/+simple/\n", - "Requirement already satisfied: pycocotools in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages/pycocotools-2.0-py3.7-linux-x86_64.egg (2.0)\n", - "Requirement already satisfied: setuptools>=18.0 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from pycocotools) (41.0.1)\n", - "Requirement already satisfied: cython>=0.27.3 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from pycocotools) (0.29.12)\n", - "Requirement already satisfied: matplotlib>=2.1.0 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from pycocotools) (3.1.1)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (1.1.0)\n", - "Requirement already satisfied: cycler>=0.10 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (0.10.0)\n", - "Requirement already satisfied: numpy>=1.11 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (1.16.4)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (2.8.0)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from matplotlib>=2.1.0->pycocotools) (2.4.1.1)\n", - "Requirement already satisfied: six in /home/aiib-mia/anaconda3/envs/age/lib/python3.7/site-packages (from cycler>=0.10->matplotlib>=2.1.0->pycocotools) (1.12.0)\n" - ] - } - ], - "source": [ - "!pip install xlrd\n", - "!pip install tqdm\n", - "!pip install pycocotools" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Zip File Extract\n", - "\n", - "Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "unzip: cannot find or open ../datasets/Training100.zip, ../datasets/Training100.zip.zip or ../datasets/Training100.zip.ZIP.\n", - "unzip: cannot find or open ../datasets/Validation_ASOCT_Image.zip, ../datasets/Validation_ASOCT_Image.zip.zip or ../datasets/Validation_ASOCT_Image.zip.ZIP.\n" - ] - } - ], - "source": [ - "!unzip -q ../datasets/Training100.zip -d ../datasets/\n", - "!unzip -q ../datasets/Validation_ASOCT_Image.zip -d ../datasets/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Explore Data" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import csv\n", - "import matplotlib.pyplot as plt\n", - "import cv2\n", - "import os, shutil\n", - "import pprint\n", - "import coco_parser\n", - "import json\n", - "import pandas as pd\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "xlsx_file_path = os.path.join(data_root_path, \"Training100_Location.xlsx\")\n", - "\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "label_file_path = os.path.join(data_root_path, \"train_loc.csv\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"train2017\")\n", - "val_file_path = os.path.join(data_root_path, \"val2017\")\n", - "\n", - "json_path = os.path.join(data_root_path, \"annotations\")\n", - "train_json_path = os.path.join(json_path, \"instances_train2017.json\")\n", - "val_json_path = os.path.join(json_path, \"instances_val2017.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "xlsx_file = pd.read_excel(xlsx_file_path)\n", - "xlsx_file.to_csv(label_file_path, \n", - " index=False, columns=['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'])" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'],\n", - " ['T0056-10.jpg',\n", - " '228.83365553922314',\n", - " '466.95960107867666',\n", - " '1870.8038638045307',\n", - " '451.59230045548907']]\n" - ] - } - ], - "source": [ - "data_list = []\n", - "\n", - "with open(label_file_path,'r') as f: \n", - " lines=csv.reader(f) \n", - " for key, line in enumerate(lines): \n", - " data_list.append(line)\n", - " \n", - "pprint.pprint(data_list[:2])" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(8, 5))\n", - "\n", - "file_name, l_x, l_y, r_x, r_y = data_list[1]\n", - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "\n", - "binary_mask = np.zeros((img.shape[0], img.shape[1]))\n", - "l_x, l_y = int(float(l_x)), int(float(l_y))\n", - "binary_mask[l_y - 100 : l_y + 100, l_x - 100 : l_x + 100] = 1\n", - "\n", - "plt.figure(figsize=(8,8))\n", - "\n", - "plt.subplot(2,1,1)\n", - "plt.imshow(img)\n", - "plt.scatter(float(l_x), float(l_y), c='r')\n", - "plt.scatter(float(r_x), float(r_y), c='r')\n", - "\n", - "plt.subplot(2,1,2)\n", - "plt.imshow(binary_mask)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Train/Val split" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def train_val_split(data_list, train_ratio=0.8, shuffle_seed=42):\n", - " testee_list = list(set( [line[0].split(\"-\")[0] for line in data_list[1:]] ))\n", - " \n", - " val_testee_idx = np.random.choice(testee_list, int(len(testee_list) * (1-train_ratio)), replace=False)\n", - "\n", - " train_list = []\n", - " val_list = []\n", - " \n", - " for line in data_list[1:]:\n", - " file_name = line[0]\n", - " if file_name.split(\"-\")[0] in val_testee_idx:\n", - " val_list.append(line)\n", - " else:\n", - " train_list.append(line)\n", - " \n", - " return train_list, val_list" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1296\n", - "304\n" - ] - } - ], - "source": [ - "train_data_list, val_data_list = train_val_split(data_list)\n", - "print(len(train_data_list))\n", - "print(len(val_data_list))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def center_split(img, l_point, r_point):\n", - " # img: 3D nparray\n", - " # l_point/r_point: (x,y)\n", - " nrow, ncol, ch = img.shape\n", - " left_img, right_img = img[:,:nrow,:], img[:,-nrow:,:]\n", - " \n", - "# l_point = l_point\n", - " r_point = (r_point[0] - (ncol-nrow), r_point[1])\n", - " return left_img, right_img, l_point, r_point" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "split_train_list = []\n", - "\n", - "if os.path.exists(train_file_path):\n", - " shutil.rmtree(train_file_path)\n", - "os.mkdir(train_file_path)\n", - "\n", - "for item in train_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " cv2.imwrite(os.path.join( train_file_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " cv2.imwrite(os.path.join( train_file_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - "\n", - " split_train_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " split_train_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(15,5))\n", - "\n", - "file_name, l_x, l_y = split_train_list[1]\n", - "img = cv2.imread(os.path.join(train_file_path, file_name))[:,:,::-1]\n", - "\n", - "binary_mask = np.zeros((img.shape[0], img.shape[1]))\n", - "l_x, l_y = int(float(l_x)), int(float(l_y))\n", - "binary_mask[l_y - 100 : l_y + 100, l_x - 100 : l_x + 100] = 1\n", - "\n", - "plt.figure(figsize=(8,8))\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.imshow(img)\n", - "plt.scatter(float(l_x), float(l_y), c='r')\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.imshow(binary_mask)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "split_val_list = []\n", - "\n", - "if os.path.exists(val_file_path):\n", - " shutil.rmtree(val_file_path)\n", - "os.mkdir(val_file_path)\n", - "\n", - "for item in val_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " cv2.imwrite(os.path.join( val_file_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " cv2.imwrite(os.path.join( val_file_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - "\n", - " split_val_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " split_val_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "# Remove -1 in get_coco_dict()\n", - "coco_train_dict = coco_parser.get_coco_dict(train_file_path, split_train_list, box_range=100)\n", - "coco_val_dict = coco_parser.get_coco_dict(val_file_path, split_val_list, box_range=100)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "if not os.path.exists(json_path):\n", - " os.mkdir(json_path)\n", - "\n", - "with open(train_json_path, 'w+') as output_json_file:\n", - " json.dump(coco_train_dict, output_json_file)\n", - "\n", - "with open(val_json_path, 'w+') as output_json_file:\n", - " json.dump(coco_val_dict, output_json_file)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/2. Train.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/2. Train.ipynb deleted file mode 100644 index 22e542c6038ed4bbadaa2050f8d96faf0c9ca787..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/2. Train.ipynb +++ /dev/null @@ -1,144 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (RCNN)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training\n", - "\n", - "- Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Download PaddleDetection\n", - " https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection\n", - " \n", - "- To use Origin PaddleDetection for AGE loc task :\n", - "- Replace `PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml` with `./cascade_rcnn_r50_fpn_1x.yml`\n", - "- Or, you might edit configs/cascade_rcnn_r50_fpn_1x.yml\n", - "\n", - "```\n", - "max_iters: 12960\n", - "snapshot_iter: 2000\n", - "LearningRate:\n", - " milestones: [6000, 8000]\n", - "```\n", - "\n", - "for more details, see [PaddleDetection Docs](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection/docs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Custom dataset (coco type)\n", - "\n", - "- coco type json files and folder architecture was constructed in pervious cell.\n", - "- Under data10461/Training100/, you need these three folders:\n", - "\n", - "```\n", - "annotations\n", - "\tinstances_train2017.json\n", - "\tinstances_val2017.json\n", - "train2017\n", - "\t***.jpg\n", - "val2017\n", - "\t***.jpg\n", - "```\n", - "\n", - "for more details, see [Data.md](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/docs/DATA.md), [Data.md中文版](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/docs/DATA_cn.md)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/aiib-mia/Desktop/shangfangxin/AGE_challenge Baseline/LocalizationRCNN/PaddleDetection\n" - ] - } - ], - "source": [ - "!rm -rf ./PaddleDetection/dataset/coco\n", - "# you might replace this path to absolute path\n", - "!ln -sf ../../../datasets/Training100/ ./PaddleDetection/dataset/coco\n", - "%cd ./PaddleDetection" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "env: PYTHONPATH=./\n", - "./\r\n" - ] - } - ], - "source": [ - "%set_env PYTHONPATH=./\n", - "!echo $PYTHONPATH" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# too many lines of training log, set print frequence to per 1000 steps. 12960 steps in total\n", - "!python tools/train.py -c configs/cascade_rcnn_r50_fpn_1x.yml -o log_iter=1000" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/3. Inference.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/3. Inference.ipynb deleted file mode 100644 index 943d9b1d2096799c8dbcb046a2bcabce96cb9eee..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/3. Inference.ipynb +++ /dev/null @@ -1,554 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (RCNN)\n", - "\n", - "- During distance evaluating, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "sys.path.append('PaddleDetection')" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mdocstring_parser is not installed, argument description is not available\u001b[0m\n" - ] - } - ], - "source": [ - "import os\n", - "import glob\n", - "\n", - "import numpy as np\n", - "import pandas as pd\n", - "import cv2\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from paddle import fluid\n", - "\n", - "from ppdet.core.workspace import load_config, create\n", - "from ppdet.modeling.model_input import create_feed\n", - "from ppdet.data.data_feed import create_reader\n", - "from ppdet.utils.coco_eval import bbox2out, mask2out, get_category_info\n", - "\n", - "from ppdet.utils.eval_utils import parse_fetches\n", - "import ppdet.utils.checkpoint as checkpoint\n", - "\n", - "from ppdet.utils.colormap import colormap\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "FORMAT = '%(asctime)s-%(levelname)s: %(message)s'\n", - "logging.basicConfig(level=logging.INFO, format=FORMAT)\n", - "logger = logging.getLogger(__name__)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "config_path = \"./PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml\"\n", - "weight_path = \"./PaddleDetection/output/cascade_rcnn_r50_fpn_1x/model_final\"\n", - "infer_dir = \"./PaddleDetection/dataset/coco/val2017\"\n", - "origin_data_dir = \"./PaddleDetection/dataset/coco/ASOCT_Image\"\n", - "anno_file = \"./PaddleDetection/dataset/coco/annotations/instances_val2017.json\"\n", - "output_file = \"./Localization_Results.csv\"\n", - "\n", - "data_root_path = \"../datasets/Training100/\"\n", - "label_file_path = os.path.join(data_root_path, \"train_loc.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def get_test_images(infer_dir, infer_img):\n", - " \"\"\"\n", - " Get image path list in TEST mode\n", - " \"\"\"\n", - " assert infer_img is not None or infer_dir is not None, \\\n", - " \"--infer_img or --infer_dir should be set\"\n", - " assert infer_img is None or os.path.isfile(infer_img), \\\n", - " \"{} is not a file\".format(infer_img)\n", - " assert infer_dir is None or os.path.isdir(infer_dir), \\\n", - " \"{} is not a directory\".format(infer_dir)\n", - " images = []\n", - "\n", - " # infer_img has a higher priority\n", - " if infer_img and os.path.isfile(infer_img):\n", - " images.append(infer_img)\n", - " return images\n", - "\n", - " infer_dir = os.path.abspath(infer_dir)\n", - " assert os.path.isdir(infer_dir), \\\n", - " \"infer_dir {} is not a directory\".format(infer_dir)\n", - " exts = ['jpg', 'jpeg', 'png', 'bmp']\n", - " exts += [ext.upper() for ext in exts]\n", - " for ext in exts:\n", - " images.extend(glob.glob('{}/*.{}'.format(infer_dir, ext)))\n", - "\n", - " assert len(images) > 0, \"no image found in {}\".format(infer_dir)\n", - " print(\"Found {} inference images in total.\".format(len(images)))\n", - "\n", - " return images" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "cfg = load_config(config_path)\n", - "\n", - "if 'architecture' in cfg:\n", - " main_arch = cfg.architecture\n", - "else:\n", - " raise ValueError(\"'architecture' not specified in config file.\")\n", - "\n", - "if 'test_feed' not in cfg:\n", - " test_feed = create(main_arch + 'TestFeed')\n", - "else:\n", - " test_feed = create(cfg.test_feed)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Found 608 inference images in total.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2019-08-07 15:30:53,437-INFO: Loading checkpoint from ./PaddleDetection/output/cascade_rcnn_r50_fpn_1x/model_final...\n" - ] - } - ], - "source": [ - "test_images = get_test_images(infer_dir, infer_img=None)\n", - "test_feed.dataset.add_images(test_images)\n", - "\n", - "place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace()\n", - "exe = fluid.Executor(place)\n", - "\n", - "model = create(main_arch)\n", - "\n", - "startup_prog = fluid.Program()\n", - "infer_prog = fluid.Program()\n", - "with fluid.program_guard(infer_prog, startup_prog):\n", - " with fluid.unique_name.guard():\n", - " _, feed_vars = create_feed(test_feed, use_pyreader=False)\n", - " test_fetches = model.test(feed_vars)\n", - "infer_prog = infer_prog.clone(True)\n", - "\n", - "reader = create_reader(test_feed)\n", - "feeder = fluid.DataFeeder(place=place, feed_list=feed_vars.values())\n", - "\n", - "exe.run(startup_prog)\n", - "checkpoint.load_checkpoint(exe, infer_prog, weight_path)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2019-08-07 15:30:53,593-INFO: Load categories from ./PaddleDetection/dataset/coco/annotations/instances_val2017.json\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loading annotations into memory...\n", - "Done (t=0.00s)\n", - "creating index...\n", - "index created!\n" - ] - } - ], - "source": [ - "# parse infer fetches\n", - "extra_keys = ['im_info', 'im_id', 'im_shape']\n", - "\n", - "keys, values, _ = parse_fetches(test_fetches, infer_prog, extra_keys)\n", - "\n", - "# anno_file = getattr(test_feed.dataset, 'annotation', None)\n", - "with_background = getattr(test_feed, 'with_background', True)\n", - "use_default_label = getattr(test_feed, 'use_default_label', False)\n", - "clsid2catid, catid2name = get_category_info(anno_file, with_background,\n", - " use_default_label)\n", - "\n", - "# whether output bbox is normalized in model output layer\n", - "is_bbox_normalized = False\n", - "if hasattr(model, 'is_bbox_normalized') and \\\n", - " callable(model.is_bbox_normalized):\n", - " is_bbox_normalized = model.is_bbox_normalized()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def draw_bbox(image, im_id, catid2name, bboxes, threshold, is_bbox_normalized=False):\n", - " catid2color = {}\n", - " color_list = colormap(rgb=True)[:40]\n", - "\n", - " for dt in np.array(bboxes):\n", - " if im_id != dt['image_id']:\n", - " continue\n", - " catid, bbox, score = dt['category_id'], dt['bbox'], dt['score']\n", - " if score < threshold:\n", - " continue\n", - "\n", - " xmin, ymin, w, h = bbox\n", - " if is_bbox_normalized:\n", - " im_width, im_height = image.size\n", - " xmin *= im_width\n", - " ymin *= im_height\n", - " w *= im_width\n", - " h *= im_height\n", - " xmax = xmin + w\n", - " ymax = ymin + h\n", - "\n", - " if catid not in catid2color:\n", - " idx = np.random.randint(len(color_list))\n", - " catid2color[catid] = color_list[idx]\n", - " color = tuple(map(lambda x:int(x*255), catid2color[catid]))\n", - " xmin, ymin, xmax, ymax = int(xmin),int(ymin), int(xmax),int(ymax)\n", - "\n", - " # draw bbox\n", - " cv2.rectangle(image, (xmin,ymin), (xmax,ymax), color,10)\n", - " # draw label\n", - " text = \"{} {:.2f}\".format(catid2name[catid], score)\n", - " cv2.putText(image,text,(xmin, ymin-10), cv2.FONT_HERSHEY_SIMPLEX, 2,color,5, cv2.LINE_AA)\n", - " return image\n", - " \n", - "def calc_box(image, im_id, bboxes, threshold, is_bbox_normalized=False):\n", - " best_box = []\n", - " best_score = 0.\n", - " for dt in np.array(bboxes):\n", - " if im_id != dt['image_id']:\n", - " continue\n", - " catid, bbox, score = dt['category_id'], dt['bbox'], dt['score']\n", - " if score < threshold:\n", - " continue\n", - "\n", - " xmin, ymin, w, h = bbox\n", - " if is_bbox_normalized:\n", - " im_width, im_height = image.size\n", - " xmin *= im_width\n", - " ymin *= im_height\n", - " w *= im_width\n", - " h *= im_height\n", - " xmax = xmin + w\n", - " ymax = ymin + h\n", - "\n", - " xmin, ymin, xmax, ymax = int(xmin),int(ymin), int(xmax),int(ymax)\n", - " \n", - " if best_score < score:\n", - " best_score = score\n", - " best_box = (xmin, ymin, xmax, ymax)\n", - "\n", - " return best_box" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Save File" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "imid2path = reader.imid2path\n", - "result = {}\n", - "for iter_id, data in enumerate(reader()):\n", - " outs = exe.run(infer_prog,\n", - " feed=feeder.feed(data),\n", - " fetch_list=values,\n", - " return_numpy=False)\n", - " res = {\n", - " k: (np.array(v), v.recursive_sequence_lengths())\n", - " for k, v in zip(keys, outs)\n", - " }\n", - " \n", - " bbox_results = bbox2out([res], clsid2catid, is_bbox_normalized)\n", - "\n", - " im_ids = res['im_id'][0]\n", - " for im_id in im_ids:\n", - " image_path = imid2path[int(im_id)]\n", - " image = cv2.imread(image_path)[:,:,::-1]\n", - "\n", - " box = calc_box(image, int(im_id), bbox_results, 0.1, is_bbox_normalized)\n", - "\n", - " file_name = image_path.split(\"/\")[-1].split(\"_\")[0]\n", - " point = ((box[2] + box[0]) / 2, (box[3] + box[1]) / 2)\n", - " \n", - " if file_name not in result.keys():\n", - " result[file_name] = [[-1, -1], [-1, -1]]\n", - " if \"left\" in image_path: result[file_name][0] = point\n", - " else: \n", - " image = cv2.imread(os.path.join(origin_data_dir, file_name+\".jpg\"))\n", - " nrows, ncols, ch = image.shape\n", - " result[file_name][1] = [(ncols - nrows) + point[0], point[1]]\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "with open(output_file, \"w+\") as f:\n", - " f.write(\"{},{},{},{},{}\\n\".format(\"ASOCT_NAME\", \"X_LEFT\", \"Y_LEFT\", \"X_RIGHT\", \"Y_RIGHT\"))\n", - " for file, pred_point in result.items():\n", - " f.write(\"{},{},{},{},{}\\n\".format(file+\".jpg\", *pred_point[0], *pred_point[1]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Result Visualization" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "imid2path = reader.imid2path\n", - "plt.figure(figsize=(10, 7))\n", - "for iter_id, data in enumerate(reader()):\n", - " outs = exe.run(infer_prog,\n", - " feed=feeder.feed(data),\n", - " fetch_list=values,\n", - " return_numpy=False)\n", - " res = {\n", - " k: (np.array(v), v.recursive_sequence_lengths())\n", - " for k, v in zip(keys, outs)\n", - " }\n", - "\n", - " bbox_results = bbox2out([res], clsid2catid, is_bbox_normalized)\n", - "\n", - " # visualize result\n", - " im_ids = res['im_id'][0]\n", - " image_path = imid2path[int(im_ids[0])]\n", - " image = cv2.imread(image_path)[:,:,::-1]\n", - " image = draw_bbox(image.copy(), int(im_ids[0]), \n", - " catid2name, bbox_results, 0.5, is_bbox_normalized)\n", - " plt.subplot(2,3,iter_id+1)\n", - " plt.imshow(image)\n", - " if iter_id > 4: break" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Distance Evaluating" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "result_csv = pd.read_csv(output_file).merge(\n", - " pd.read_csv(label_file_path), left_on=\"ASOCT_NAME\", right_on=\"ASOCT_Name\", \n", - " how='left'\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "result_csv[\"x1_dis\"] = result_csv.apply(\n", - " func=lambda x:np.sqrt((x['X1']-x['X_LEFT'])**2 + (x['Y1']-x['Y_LEFT'])**2),\n", - " axis=1\n", - " )\n", - "result_csv.loc[result_csv['X1'] == -1, 'x1_dis'] = 0\n", - "result_csv[\"x2_dis\"] = result_csv.apply(\n", - " func=lambda x:np.sqrt((x['X2']-x['X_RIGHT'])**2 + (x['Y2']-x['Y_RIGHT'])**2),\n", - " axis=1\n", - " )\n", - "result_csv.loc[result_csv['X2'] == -1, 'x2_dis'] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(608,)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dis = np.concatenate([result_csv['x1_dis'].values, result_csv['x2_dis'].values], axis=0)\n", - "dis.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Minimum Distance: 0.00, idx: 160\n", - "Maximum Distance: 97.52, idx: 33\n", - "Average Distance: 14.98\n" - ] - } - ], - "source": [ - "print(\"Minimum Distance: {:.2f}, idx: {}\".format(dis.min(), dis.argmin()))\n", - "print(\"Maximum Distance: {:.2f}, idx: {}\".format(dis.max(), dis.argmax()))\n", - "print(\"Average Distance: {:.2f}\".format(dis.mean()))" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Number')" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10,5))\n", - "_ = plt.hist(dis, bins=100, facecolor=\"blue\", edgecolor=\"black\", alpha=0.7)\n", - "plt.xlabel(\"Euclidean Distance\")\n", - "plt.ylabel(\"Number\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/README.md b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/README.md deleted file mode 100644 index 164dbb204e441ddc499fa09aec54bb2033deb243..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Angle closure Glaucoma Evaluation Challenge -The goal of the challenge is to evaluate and compare automated algorithms for angle closure classification and localization of scleral spur (SS) points on a common dataset of AS-OCT images. We invite the medical image analysis community to participate by developing and testing existing and novel automated classification and segmentation methods. -More detail [AGE challenge](https://age.grand-challenge.org/Details/). - -## Scleral spur localization task (RCNN model) - -1. Method - - * A localization task could be transformed to a object detection task. - - - - * Then, a image could be splited into 2 parts, the right part: - - - -2. Prepare data - - * We assume that you have downloaded data(two zip files), and stored @ `../datasets/`. - * (Updated on August 5) Replace update files. - * We provide a demo about `zip file extract`, `data structure explore`, `format data to coco type` and `Train/Val split`. - -3. Train - - * We assume that you have downloaded data, extracted compressed files, and stored @ `../datasets/`. - * You should download or clone [PaddleModels](https://github.com/PaddlePaddle/models) manually. - * After you download whole repo, use soft link command: - - ``` - $ git clone https://github.com/PaddlePaddle/models - $ cd models/PaddleCV/ - $ ln -sf ./PaddleDetection Research/AGEchallenge/LocalizationRCNN/PaddleDetection - ``` - - * Based on [PaddleDetection](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleDetection), we provide a guideline to modify config file. - * You could also simply replace `PaddleDetection/configs/cascade_rcnn_r50_fpn_1x.yml` with `./cascade_rcnn_r50_fpn_1x.yml` - * `PaddleDetection/tools/train.py` will automatically download pretrain weights, default save to `~/.cache/paddle/weights/`. - * We provide a demo to call `PaddleDetection/tools/train.py`, which starts training, save checkpoint to `PaddleDetection/output/cascade_rcnn_r50_fpn_1x/` - -4. Inference - - * We assume that you have downloaded data, extracted compressed files, and stored @ `../datasets/`. - * We assume that you stored checkpoint files @ `PaddleDetection/output/cascade_rcnn_r50_fpn_1x/` - * We provide a demo about `inference` and `visualization`. - - - - \ No newline at end of file diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/1.png b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/1.png deleted file mode 100644 index 948218cc75da676bdead3a0beb93bc7ff393c92c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/1.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/2.png b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/2.png deleted file mode 100644 index 416857777d978f5830c732cde4a60cda0cdd757c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/2.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/3.png b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/3.png deleted file mode 100644 index cde07a203488dbc83432b13b6d5e8a682696d8c6..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/3.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/4.png b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/4.png deleted file mode 100644 index 3837010a0c9e6da0e6375fe7c98b5ca9bb27e0ef..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/assets/4.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/cascade_rcnn_r50_fpn_1x.yml b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/cascade_rcnn_r50_fpn_1x.yml deleted file mode 100644 index 017729014e9bd39ba247d5ea95f65bd0bd9b27e8..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/cascade_rcnn_r50_fpn_1x.yml +++ /dev/null @@ -1,137 +0,0 @@ -architecture: CascadeRCNN -train_feed: FasterRCNNTrainFeed -eval_feed: FasterRCNNEvalFeed -test_feed: FasterRCNNTestFeed -max_iters: 12960 -snapshot_iter: 2000 -use_gpu: true -log_smooth_window: 20 -save_dir: output -pretrain_weights: https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_cos_pretrained.tar -weights: output/cascade_rcnn_r50_fpn_1x/model_final -metric: COCO -num_classes: 2 - -CascadeRCNN: - backbone: ResNet - fpn: FPN - rpn_head: FPNRPNHead - roi_extractor: FPNRoIAlign - bbox_head: CascadeBBoxHead - bbox_assigner: CascadeBBoxAssigner - -ResNet: - norm_type: affine_channel - depth: 50 - feature_maps: [2, 3, 4, 5] - freeze_at: 2 - variant: b - -FPN: - min_level: 2 - max_level: 6 - num_chan: 256 - spatial_scale: [0.03125, 0.0625, 0.125, 0.25] - -FPNRPNHead: - anchor_generator: - anchor_sizes: [32, 64, 128, 256, 512] - aspect_ratios: [0.5, 1.0, 2.0] - stride: [16.0, 16.0] - variance: [1.0, 1.0, 1.0, 1.0] - anchor_start_size: 32 - min_level: 2 - max_level: 6 - num_chan: 256 - rpn_target_assign: - rpn_batch_size_per_im: 256 - rpn_fg_fraction: 0.5 - rpn_positive_overlap: 0.7 - rpn_negative_overlap: 0.3 - rpn_straddle_thresh: 0.0 - train_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 2000 - post_nms_top_n: 2000 - test_proposal: - min_size: 0.0 - nms_thresh: 0.7 - pre_nms_top_n: 1000 - post_nms_top_n: 1000 - -FPNRoIAlign: - canconical_level: 4 - canonical_size: 224 - min_level: 2 - max_level: 5 - box_resolution: 7 - sampling_ratio: 2 - -CascadeBBoxAssigner: - batch_size_per_im: 512 - bbox_reg_weights: [10, 20, 30] - bg_thresh_lo: [0.0, 0.0, 0.0] - bg_thresh_hi: [0.5, 0.6, 0.7] - fg_thresh: [0.5, 0.6, 0.7] - fg_fraction: 0.25 - -CascadeBBoxHead: - head: FC6FC7Head - nms: - keep_top_k: 100 - nms_threshold: 0.5 - score_threshold: 0.05 - -FC6FC7Head: - num_chan: 1024 - -LearningRate: - base_lr: 0.02 - schedulers: - - !PiecewiseDecay - gamma: 0.1 - milestones: [6000, 8000] - - !LinearWarmup - start_factor: 0.3333333333333333 - steps: 500 - -OptimizerBuilder: - optimizer: - momentum: 0.9 - type: Momentum - regularizer: - factor: 0.0001 - type: L2 - -FasterRCNNTrainFeed: - batch_size: 2 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_train2017.json - image_dir: train2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 - -FasterRCNNEvalFeed: - batch_size: 1 - dataset: - dataset_dir: dataset/coco - annotation: annotations/instances_val2017.json - image_dir: val2017 - batch_transforms: - - !PadBatch - pad_to_stride: 32 - -FasterRCNNTestFeed: - batch_size: 1 - dataset: - annotation: dataset/coco/annotations/instances_val2017.json - batch_transforms: - - !PadBatch - pad_to_stride: 32 - drop_last: false - num_workers: 2 diff --git a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/coco_parser.py b/PaddleCV/Research/AGEchallenge/LocalizationRCNN/coco_parser.py deleted file mode 100644 index 349c1626a5cbabc2c756ecb6cfadb052b93e641f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationRCNN/coco_parser.py +++ /dev/null @@ -1,105 +0,0 @@ -# Ref: https://github.com/waspinator/pycococreator/blob/master/examples/shapes/shapes_to_coco.py -import datetime -import os -import re -import fnmatch -import cv2 -import numpy as np - -INFO = { - "description": "AGE Challenge Location", - "url": "https://age.grand-challenge.org/PaddlePaddle/", - "version": "0.1.0", - "year": 2019, - "contributor": "shangfangxin@baidu.com", - "date_created": datetime.datetime.utcnow().isoformat(' ') -} - -LICENSES = [ - { - "id": 1, - "name": "", - "url": "" - } -] - -CATEGORIES = [ - { - 'id': 1, - 'name': 'point', - 'supercategory': 'shape', - }, -] - -def create_image_info(image_id, file_name, image_size, - date_captured=datetime.datetime.utcnow().isoformat(' '), - license_id=1, coco_url="", flickr_url=""): - - image_info = { - "id": image_id, - "file_name": file_name, - "width": image_size[1], - "height": image_size[0], - "date_captured": date_captured, - "license": license_id, - "coco_url": coco_url, - "flickr_url": flickr_url - } - - return image_info - -def create_annotation_info(image, annotation_id, image_id, category_info, bounding_box=None): - - annotation_info = { - "id": annotation_id, - "image_id": image_id, - "category_id": category_info["id"], - "iscrowd": category_info["is_crowd"], - "area": bounding_box[2] * bounding_box[3], - "bbox": bounding_box, - "segmentation": [[]], - "width": image.shape[1], - "height": image.shape[0], - } - - return annotation_info - -def create_anno_info(image, point_x, point_y, image_id, category_info, segmentation_id, box_range): - bounding_box = [point_x - box_range, point_y - box_range, box_range*2, box_range*2] - return create_annotation_info(image, - segmentation_id, image_id, category_info, bounding_box) - - -def get_coco_dict(img_path, data_list, box_range=20): - - coco_output = { - "info": INFO, - "licenses": LICENSES, - "categories": CATEGORIES, - "images": [], - "annotations": [] - } - - image_id = 1 - segmentation_id = 1 - for item in data_list: - image_filename, p_x, p_y = item - p_x, p_y = int(float(p_x)), int(float(p_y)) - image_filename = os.path.join(img_path, image_filename) - - image = cv2.imread(image_filename) - image_info = create_image_info( - image_id, os.path.basename(image_filename), image.shape) - coco_output["images"].append(image_info) - - # filter for associated png annotations - class_id = 1 - category_info = {'id': class_id, 'is_crowd': 0} - - if p_x != -1 and p_y != -1: - coco_output["annotations"].append( - create_anno_info(image, p_x, p_y, image_id, category_info, segmentation_id, box_range)) - segmentation_id = segmentation_id + 1 - - image_id = image_id + 1 - return coco_output \ No newline at end of file diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/1. PrepareData.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationUNet/1. PrepareData.ipynb deleted file mode 100644 index f1ab6c172b03b5c33726179f67caaf5568db56ca..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/1. PrepareData.ipynb +++ /dev/null @@ -1,652 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (ResNet50+UNet)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## requirement install" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install xlrd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Zip File Extract\n", - "\n", - "Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!unzip -q ../datasets/Training100.zip -d ../datasets/\n", - "!unzip -q ../datasets/Validation_ASOCT_Image.zip -d ../datasets/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Explore Data" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import csv\n", - "import matplotlib.pyplot as plt\n", - "import cv2\n", - "import os, shutil\n", - "import pprint\n", - "import pandas as pd\n", - "from mpl_toolkits.mplot3d.axes3d import Axes3D\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "data_root_path = \"../datasets/Training100/\"\n", - "xlsx_file_path = os.path.join(data_root_path, \"Training100_Location.xlsx\")\n", - "\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "label_file_path = os.path.join(data_root_path, \"train_loc.csv\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"loc_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")\n", - "\n", - "img_save_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ASOCT_NameLeft_LabelX1Y1Right_LabelX2Y2
0T0056-10.jpg1228.833656466.95960111870.803864451.592300
1T0047-06.jpg1207.935545525.93876411792.231404432.521881
2T0066-15.jpg0239.372633476.27392501899.775568501.007410
3T0025-15.jpg0177.708404545.65593501862.380363439.228928
4T0088-06.jpg0285.256170735.07601401884.122651767.858589
\n", - "
" - ], - "text/plain": [ - " ASOCT_Name Left_Label X1 Y1 Right_Label X2 \\\n", - "0 T0056-10.jpg 1 228.833656 466.959601 1 1870.803864 \n", - "1 T0047-06.jpg 1 207.935545 525.938764 1 1792.231404 \n", - "2 T0066-15.jpg 0 239.372633 476.273925 0 1899.775568 \n", - "3 T0025-15.jpg 0 177.708404 545.655935 0 1862.380363 \n", - "4 T0088-06.jpg 0 285.256170 735.076014 0 1884.122651 \n", - "\n", - " Y2 \n", - "0 451.592300 \n", - "1 432.521881 \n", - "2 501.007410 \n", - "3 439.228928 \n", - "4 767.858589 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "xlsx_file = pd.read_excel(xlsx_file_path)\n", - "xlsx_file.to_csv(label_file_path, \n", - " index=False, columns=['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'])\n", - "xlsx_file.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[['ASOCT_Name', 'X1', 'Y1', 'X2', 'Y2'],\n", - " ['T0056-10.jpg',\n", - " '228.83365553922314',\n", - " '466.95960107867666',\n", - " '1870.8038638045307',\n", - " '451.59230045548907']]\n" - ] - } - ], - "source": [ - "data_list = []\n", - "\n", - "with open(label_file_path,'r') as f: \n", - " lines=csv.reader(f) \n", - " for key, line in enumerate(lines): \n", - " data_list.append(line)\n", - " \n", - "pprint.pprint(data_list[:2])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# visualization\n", - "plt.figure(figsize=(15,5))\n", - "\n", - "file_name, l_x, l_y, r_x, r_y = data_list[1]\n", - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "\n", - "plt.imshow(img)\n", - "plt.scatter(float(l_x), float(l_y), c='r')\n", - "plt.scatter(float(r_x), float(r_y), c='r')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Center Split\n", - "\n", - "Assume images.shape = nrows, ncols, channel\n", - "\n", - "Especially 998, 2130, 3 for AGE dataset.\n", - "\n", - "Every image is cropped to two images\n", - "\n", - "- Left: [:, :nrow, :]\n", - "- Right: [:, -nrow:, :]" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def center_split(img, l_point, r_point):\n", - " # img: 3D nparray\n", - " # l_point/r_point: (x,y)\n", - " nrow, ncol, ch = img.shape\n", - " left_img, right_img = img[:,:nrow,:], img[:,-nrow:,:]\n", - " \n", - "# l_point = l_point\n", - " r_point = (r_point[0] - (ncol-nrow), r_point[1])\n", - " return left_img, right_img, l_point, r_point" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "left_img, right_img, l_point, r_point = \\\n", - " center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - "\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.imshow(left_img)\n", - "plt.scatter(*l_point, c='r')\n", - "plt.subplot(1,2,2)\n", - "plt.imshow(right_img)\n", - "plt.scatter(*r_point, c='r')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prepare heatmap data for UNet model" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "img = cv2.imread(os.path.join(image_path, file_name))[:,:,::-1]\n", - "\n", - "plt.figure(figsize=(10,5))\n", - "plt.subplot(1,3,1)\n", - "plt.imshow(left_img)\n", - "plt.scatter(*l_point, c='r')\n", - "plt.subplot(1,3,2)\n", - "\n", - "ratio = 256.0 / img.shape[0]\n", - "img = cv2.resize(img, (256, 256))\n", - "left_hm = generate_hm(img.shape[0], img.shape[0], (l_point[0] * ratio, l_point[1] * ratio))\n", - "plt.imshow(left_hm)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# 3D view of Heatmap\n", - "fig = plt.figure()\n", - "ax = Axes3D(fig)\n", - "\n", - "# 生成数据\n", - "X = np.arange(0, 256, 1)\n", - "Y = np.arange(0, 256, 1)\n", - "X, Y = np.meshgrid(X, Y)\n", - "\n", - "ax.plot_surface(X, Y, left_hm)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Train/Val split" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def train_val_split(data_list, train_ratio=0.8, shuffle_seed=42):\n", - " testee_list = list(set( [line[0].split(\"-\")[0] for line in data_list[1:]] ))\n", - " \n", - " val_testee_idx = np.random.choice(testee_list, int(len(testee_list) * (1-train_ratio)), replace=False)\n", - "\n", - " train_list = []\n", - " val_list = []\n", - " \n", - " for line in data_list[1:]:\n", - " file_name = line[0]\n", - " if file_name.split(\"-\")[0] in val_testee_idx:\n", - " val_list.append(line)\n", - " else:\n", - " train_list.append(line)\n", - " \n", - " return train_list, val_list" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1296\n", - "304\n" - ] - } - ], - "source": [ - "train_data_list, val_data_list = train_val_split(data_list)\n", - "print(len(train_data_list))\n", - "print(len(val_data_list))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Center Split & Save\n", - "\n", - "Some coordinates might be -1" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['T0032-02.jpg', '-1.0', '-1.0', '1843.6821495037216', '423.24170285359793']\n", - "['T0032-04.jpg', '-1.0', '-1.0', '1830.46875', '417.4608405707196']\n", - "['T0044-15.jpg', '-1.0', '-1.0', '1921.7379475363339', '842.1701745834812']\n", - "['T0032-01.jpg', '-1.0', '-1.0', '1844.5079869727044', '429.0225651364764']\n", - "['T0032-03.jpg', '-1.0', '-1.0', '1846.1596619106695', '414.98332816377166']\n", - "['T0044-14.jpg', '-1.0', '-1.0', '1911.931717476072', '850.6125930521091']\n" - ] - } - ], - "source": [ - "split_train_list = []\n", - "\n", - "if os.path.exists(img_save_path):\n", - " shutil.rmtree(img_save_path)\n", - "os.mkdir(img_save_path)\n", - "\n", - "for item in train_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " l_x, l_y, r_x, r_y = list(map(lambda x:float(x), [l_x, l_y, r_x, r_y]))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " \n", - " if l_x != -1 and l_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " split_train_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " else:\n", - " print(item)\n", - " if r_x != -1 and r_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - " split_train_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])\n", - " else:\n", - " print(item)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['T0035-16.jpg', '-1.0', '-1.0', '1828.555184528656', '455.6486820725847']\n" - ] - } - ], - "source": [ - "split_val_list = []\n", - "for item in val_data_list:\n", - " file_name, l_x, l_y, r_x, r_y = item\n", - " l_x, l_y, r_x, r_y = list(map(lambda x:float(x), [l_x, l_y, r_x, r_y]))\n", - " img = cv2.imread(os.path.join(image_path, file_name))\n", - " # split\n", - " left_img, right_img, l_point, r_point = center_split(img, (float(l_x), float(l_y)), (float(r_x), float(r_y)))\n", - " if l_x != -1 and l_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_left.jpg'), left_img)\n", - " split_val_list.append([file_name.split(\".\")[0]+'_left.jpg', *l_point])\n", - " else:\n", - " print(item)\n", - " if r_x != -1 and r_y != -1:\n", - " cv2.imwrite(os.path.join( img_save_path, file_name.split(\".\")[0]+'_right.jpg'), right_img)\n", - " split_val_list.append([file_name.split(\".\")[0]+'_right.jpg', *r_point])\n", - " else:\n", - " print(item)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "with open(train_file_path, \"w+\") as f:\n", - " for item in split_train_list:\n", - " f.write(\"{},{},{}\\n\".format(*item))\n", - "\n", - "with open(val_file_path, \"w+\") as f:\n", - " for item in split_val_list:\n", - " f.write(\"{},{},{}\\n\".format(*item))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/2. Train.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationUNet/2. Train.ipynb deleted file mode 100644 index 133818f491735e9cd218c247a13976d1f8dd6530..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/2. Train.ipynb +++ /dev/null @@ -1,502 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (ResNet50+UNet)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Training\n", - "\n", - "- Assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/`\n", - "- Assume `weights` are stored @ `./AGE_challenge Baseline/weights/`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Download ImageNet weight" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2019-08-08 16:00:14-- https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_pretrained.tar\n", - "Resolving paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)... 202.106.5.21, 111.206.47.194\n", - "Connecting to paddle-imagenet-models-name.bj.bcebos.com (paddle-imagenet-models-name.bj.bcebos.com)|202.106.5.21|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 102717440 (98M) [application/x-tar]\n", - "Saving to: ‘../weights/ResNet50_pretrained.tar’\n", - "\n", - "ResNet50_pretrained 100%[===================>] 97.96M 2.93MB/s in 34s \n", - "\n", - "2019-08-08 16:00:48 (2.90 MB/s) - ‘../weights/ResNet50_pretrained.tar’ saved [102717440/102717440]\n", - "\n" - ] - } - ], - "source": [ - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "!rm ../weights/ResNet50_pretrained.tar \n", - "!rm -rf ../weights/ResNet50_pretrained\n", - "\n", - "!wget -P ../weights/ https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_pretrained.tar \n", - "!tar xvf ../weights/ResNet50_pretrained.tar -C ../weights/ > /dev/null # silent\n", - "!rm ../weights/ResNet50_pretrained/fc*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Main Code" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# preprocess: extract left/right label col in Training100_Location.xlsx\n", - "# save to train_csv file\n", - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")\n", - "\n", - "train_file_path = os.path.join(data_root_path, \"loc_train_split.csv\")\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 8\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "# Remove last global pooling and fullyconnect layer to enable UNet arch.\n", - "# Standard ResNet Implement: \n", - "# https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py\n", - "from resnet import *\n", - "from res_unet_paddle import *" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Data Loader" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def vflip_image(image):\n", - " return cv2.flip(image, flipCode=1)\n", - "\n", - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " file_name, p_x, p_y = line.split(\",\")\n", - " batch_data.append([file_name, float(p_x), float(p_y)])\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data, mode, rotate=True, flip=True):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file, p_x, p_y = sample\n", - " \n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255.0\n", - " \n", - " ratio = 256.0 / img.shape[0]\n", - " p_x, p_y = p_x * ratio, p_y * ratio\n", - " img = cv2.resize(img, (256, 256))\n", - "\n", - " if mode == 'train':\n", - " img = img + np.random.randn(*img.shape) * 0.3 / 255 \n", - " if flip and np.random.randint(0,2):\n", - " img = vflip_image(img)\n", - " p_x = 256 - p_x\n", - " else:\n", - " pass\n", - " \n", - " hm = generate_hm(256, 256, (p_x, p_y))\n", - " img = img.transpose((2, 0, 1))\n", - " batch_data.append((img, hm))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False, mode='train'):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data, mode=mode)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "with open(train_file_path) as flist:\n", - " train_file_list = [os.path.join(image_path,line.strip()) for line in flist]\n", - "\n", - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist] " - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2586\n", - "607\n", - "../datasets/Training100/ASOCT_Image_loc/T0056-10_left.jpg,228.83365553922314,466.95960107867666\n" - ] - } - ], - "source": [ - "print(len(train_file_list))\n", - "print(len(val_file_list))\n", - "print(train_file_list[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "np.random.shuffle(train_file_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "train_dataloader = data_loader(train_file_list, image_path, BATCH_SIZE, False, mode='train')\n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True, mode='val')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define model (compute graph)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 256, 256]\n", - " \n", - " model = ResUNet(\n", - " ResNet50().net, 1\n", - " )\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " hm = FL.data(name='label', shape=data_shape[1:], dtype='float32')\n", - " \n", - " logit = model.net(input_feature)\n", - " pred_hm = FL.squeeze(logit, axes=[1]) # Bs, 256,256\n", - "\n", - " reader = fluid.io.PyReader(feed_list=[input_feature, hm], \n", - " capacity=64, iterable=True, use_double_buffer=True)\n", - "\n", - " cost = FL.square_error_cost(pred_hm, hm)\n", - " loss = FL.mean(cost)\n", - " \n", - " return [loss, pred_hm, reader]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def calc_dist(pred_hm, hm):\n", - " hm = np.array(hm)\n", - " \n", - " mean_dis = 0.\n", - " for single_hm, single_pred_hm in zip(hm, pred_hm):\n", - " # Find argmax_x, argmax_y from 2D tensor\n", - " label_x, label_y = np.unravel_index(single_hm.argmax(), single_hm.shape)\n", - " pred_x, pred_y = np.unravel_index(single_pred_hm.argmax(), single_pred_hm.shape)\n", - " mean_dis += np.sqrt((pred_x - label_x) ** 2 + (pred_y - label_y) ** 2)\n", - " \n", - " return mean_dis / hm.shape[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "def train(use_cuda, params_dirname_prefix, pretrained_model=False, EPOCH_NUM=10):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " train_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - "\n", - " with fluid.program_guard(train_prog, startup_prog):\n", - " # fluid.unique_name.guard() to share parameters with test network\n", - " with fluid.unique_name.guard():\n", - " train_loss, train_output, train_reader = network()\n", - " \n", - " optimizer = fluid.optimizer.Adam(learning_rate=1e-4)\n", - " optimizer.minimize(train_loss)\n", - " \n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_loss, val_output, val_reader = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - "\n", - " train_loss.persistable = True\n", - " val_loss.persistable = True\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=train_prog, predicate=if_exist)\n", - "\n", - " train_reader.decorate_sample_list_generator( train_dataloader, places=place )\n", - " val_reader.decorate_sample_list_generator( val_dataloader, places=place )\n", - "\n", - " # For training test cost\n", - " def train_test(val_prog, val_reader):\n", - " count = 0\n", - " accumulated = [0,0]\n", - " \n", - " prediction = []\n", - " label_values = []\n", - " \n", - " for tid, val_data in enumerate(val_reader()):\n", - " avg_cost_np = exe.run(\n", - " program=val_prog,\n", - " feed=val_data,\n", - " fetch_list=[val_loss, val_output],\n", - " use_program_cache=True)\n", - " accumulated = [\n", - " x[0] + x[1][0] for x in zip(accumulated, avg_cost_np)\n", - " ]\n", - " prediction.append(avg_cost_np[1])\n", - " label_values.append( np.array(val_data[0]['label']) )\n", - " count += 1\n", - "\n", - " prediction = np.concatenate(prediction, 0)\n", - " label_values = np.concatenate(label_values, 0)\n", - "\n", - " mean_dis = calc_dist(prediction, label_values)\n", - " \n", - " return [x / count for x in accumulated], mean_dis\n", - "\n", - " # main train loop.\n", - " def train_loop():\n", - " step = 0\n", - " best_dist = 65536.\n", - "\n", - " for pass_id in range(EPOCH_NUM):\n", - " data_load_time = time.time()\n", - " for step_id, data_train in enumerate(train_reader()):\n", - " data_load_costtime = time.time() - data_load_time\n", - " start_time = time.time()\n", - " avg_loss_value = exe.run(\n", - " train_prog,\n", - " feed=data_train,\n", - " fetch_list=[train_loss, train_output], \n", - " use_program_cache=True)\n", - " cost_time = time.time() - start_time\n", - " if step_id % 50 == 0:\n", - " mean_dis = calc_dist(avg_loss_value[1], data_train[0]['label'])\n", - " print(\"Pass %d, Epoch %d, Cost %f, EuDis %f, Time %f, LoadTime %f\" % (\n", - " step_id, pass_id, avg_loss_value[0], mean_dis, cost_time, data_load_costtime))\n", - " else:\n", - " pass\n", - " step += 1\n", - " data_load_time = time.time()\n", - "\n", - " avg_cost_test, avg_dist_test = train_test(val_prog, val_reader)\n", - "\n", - " print('Test with Epoch {0}, Loss {1:2.4}, EuDis {2:2.4}'.format(\n", - " pass_id, avg_cost_test[0], avg_dist_test))\n", - "\n", - " if avg_dist_test < best_dist:\n", - " best_dist = avg_dist_test\n", - " print(\"\\nBest Dis, Checkpoint Saved!\\n\")\n", - " if not os.path.isdir(params_dirname_prefix+\"_best/\"):\n", - " os.makedirs(params_dirname_prefix+\"_best/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_best/\", main_program=train_prog)\n", - "\n", - " if not os.path.isdir(params_dirname_prefix+\"_checkpoint/\"):\n", - " os.makedirs(params_dirname_prefix+\"_checkpoint/\")\n", - " fluid.io.save_persistables(exe, params_dirname_prefix+\"_checkpoint/\", main_program=train_prog)\n", - " train_loop()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# download imagenet pretrain weight from:\n", - "# https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification\n", - "train(use_cuda=True, params_dirname_prefix=\"../weights/loc_unet\", \n", - " pretrained_model=\"../weights/ResNet50_pretrained\", EPOCH_NUM=40)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/3. Inference and Result Visualization.ipynb b/PaddleCV/Research/AGEchallenge/LocalizationUNet/3. Inference and Result Visualization.ipynb deleted file mode 100644 index 310db838e2ee9f6817a77df74bfb73135698a8ef..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/3. Inference and Result Visualization.ipynb +++ /dev/null @@ -1,540 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# [Angle closure Glaucoma Evaluation Challenge](https://age.grand-challenge.org/Details/)\n", - "## Scleral spur localization Baseline (ResNet50+UNet)\n", - "\n", - "- To keep model training stable, images with coordinate == -1, were removed.\n", - "\n", - "- For real inference, you MIGHT keep all images in val_file_path file." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Result Visualization\n", - "\n", - "- output_file do not contain coordinates==-1 images\n", - "- Due to the preprocessing step\n", - "- For real inference, keep all images in val_data_list." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, random, functools, math\n", - "import cv2\n", - "import numpy as np\n", - "import time\n", - "import matplotlib.pyplot as plt\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running Verify Fluid Program ... \n", - "Your Paddle Fluid works well on SINGLE GPU or CPU.\n", - "Your Paddle Fluid works well on MUTIPLE GPU or CPU.\n", - "Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now\n" - ] - } - ], - "source": [ - "import paddle\n", - "import paddle.fluid as fluid\n", - "import paddle.fluid.layers as FL\n", - "import paddle.fluid.optimizer as FO\n", - "fluid.install_check.run_check()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 8\n", - "THREAD = 8\n", - "BUF_SIZE = 32" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# preprocess: extract left/right label col in Training100_Location.xlsx\n", - "# save to train_csv file\n", - "data_root_path = \"../datasets/Training100/\"\n", - "image_path = os.path.join(data_root_path, \"ASOCT_Image_loc\")\n", - "origin_data_dir = os.path.join(data_root_path, \"ASOCT_Image\")\n", - "\n", - "# !!!For real inference, keep all images in val_file_path file!!!\n", - "val_file_path = os.path.join(data_root_path, \"loc_val_split.csv\")\n", - "output_file = \"./Localization_Results.csv\"" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# Remove last global pooling and fullyconnect layer to enable UNet arch.\n", - "# Standard ResNet Implement: \n", - "# https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py\n", - "from resnet import *\n", - "from res_unet_paddle import *" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def gaussian_k(x0,y0, sigma, width, height):\n", - " \"\"\" Make a square gaussian kernel centered at (x0, y0) with sigma as SD.\n", - " \"\"\"\n", - " x = np.arange(0, width, 1, float) ## (width,)\n", - " y = np.arange(0, height, 1, float)[:, np.newaxis] ## (height,1)\n", - " return np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))\n", - "\n", - "def generate_hm(height, width, point, s=10):\n", - " \"\"\" Generate a full Heap Map for every landmarks in an array\n", - " Args:\n", - " height : The height of Heat Map (the height of target output)\n", - " width : The width of Heat Map (the width of target output)\n", - " point : (x,y)\n", - " \"\"\"\n", - " hm = gaussian_k(point[0], point[1], s, height, width)\n", - " return hm" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def reader(img_path, file_list, batch_size=32, shuffle=True, shuffle_seed=42):\n", - " def read_file_list():\n", - " batch_data = []\n", - " np.random.shuffle(file_list)\n", - " for line in file_list:\n", - " file_name, p_x, p_y = line.split(\",\")\n", - " batch_data.append([file_name, float(p_x), float(p_y)])\n", - " if len(batch_data) == batch_size:\n", - " yield batch_data\n", - " batch_data = []\n", - " if len(batch_data) != 0:\n", - " yield batch_data\n", - " return read_file_list\n", - "\n", - "def process_batch_data(input_data):\n", - " batch_data = []\n", - " for sample in input_data:\n", - " file, p_x, p_y = sample\n", - " \n", - " img = cv2.imread( file )\n", - " img = img[:, :, ::-1].astype('float32') / 255.0\n", - " \n", - " ratio = 256.0 / img.shape[0]\n", - " img = cv2.resize(img, (256, 256))\n", - " \n", - " hm = generate_hm(256, 256, (p_x * ratio, p_y * ratio))\n", - "\n", - " img = img.transpose((2, 0, 1))\n", - " batch_data.append((img, file, (p_x, p_y)))\n", - "\n", - " return batch_data" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def data_loader(img_list, img_path, batch_size, order=False):\n", - " data_reader = reader(img_path, img_list, batch_size)\n", - " mapper = functools.partial(process_batch_data)\n", - " \n", - " data_reader = paddle.reader.shuffle(data_reader, 32)\n", - " \n", - " return paddle.reader.xmap_readers(\n", - " mapper, data_reader, THREAD, BUF_SIZE, order=order)\n", - " \n", - "with open(val_file_path) as flist:\n", - " val_file_list = [os.path.join(image_path,line.strip()) for line in flist] \n", - "\n", - "val_dataloader = data_loader(val_file_list, image_path, BATCH_SIZE, True)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def network():\n", - " data_shape = [3, 256, 256]\n", - " \n", - " model = ResUNet(\n", - " ResNet50().net, 1\n", - " )\n", - " \n", - " input_feature = FL.data(name='pixel', shape=data_shape, dtype='float32')\n", - " \n", - " logit = model.net(input_feature)\n", - " pred_hm = FL.squeeze(logit, axes=[1]) # Bs, 256,256\n", - "\n", - " return pred_hm" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def calc_dist(pred_hm, points, ratio=1.0):\n", - " dis_arr = []\n", - " pred_idx = []\n", - " for point, single_pred_hm in zip(points, pred_hm):\n", - " label_y, label_x = point\n", - " pred_x, pred_y = np.unravel_index(single_pred_hm.argmax(), single_pred_hm.shape)\n", - " pred_x, pred_y = pred_x * ratio, pred_y * ratio\n", - " dis_arr.append( np.sqrt((pred_x - label_x) ** 2 + (pred_y - label_y) ** 2))\n", - " pred_idx.append((pred_y, pred_x))\n", - " \n", - " return np.array(dis_arr), pred_idx" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def infer(use_cuda, pretrained_model):\n", - " place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()\n", - " \n", - " startup_prog = fluid.Program()\n", - " val_prog = fluid.Program()\n", - " \n", - " # 定义预测网络\n", - " with fluid.program_guard(val_prog, startup_prog):\n", - " # Use fluid.unique_name.guard() to share parameters with train network\n", - " with fluid.unique_name.guard():\n", - " val_output = network()\n", - "\n", - " val_prog = val_prog.clone(for_test=True)\n", - " val_output.persistable = True\n", - " \n", - " exe = fluid.Executor(place)\n", - " exe.run(startup_prog)\n", - "\n", - " if pretrained_model:\n", - " def if_exist(var):\n", - " return os.path.exists(os.path.join(pretrained_model, var.name))\n", - "\n", - " fluid.io.load_vars(\n", - " exe, pretrained_model, main_program=val_prog, predicate=if_exist)\n", - "\n", - " file_names, points, pred_hms = [],[],[]\n", - "\n", - " for tid, val_data in enumerate(val_dataloader()):\n", - " imgs = []\n", - " for item in val_data:\n", - " imgs.append(item[0])\n", - " file_names.append(item[1])\n", - " points.append(item[2])\n", - " \n", - " batch_pred_hm, = exe.run(\n", - " program=val_prog,\n", - " feed={\"pixel\":np.array(imgs)},\n", - " fetch_list=[val_output],\n", - " use_program_cache=True)\n", - " pred_hms.append(batch_pred_hm)\n", - "\n", - " pred_hms = np.concatenate(pred_hms, 0)\n", - "\n", - " return file_names, np.array(points), pred_hms" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(607, 256, 256)\n", - "(607, 2)\n", - "(607,)\n" - ] - } - ], - "source": [ - "file_names, points, pred_hms = \\\n", - " infer(use_cuda=True, pretrained_model=\"../weights/loc_unet_best\")\n", - "\n", - "print(pred_hms.shape)\n", - "print(points.shape)\n", - "\n", - "ratio = 998. / 256. # all cropped images have same shape\n", - "dis, pred_idx = calc_dist(pred_hms, points, ratio)\n", - "print(dis.shape)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Minimum Distance: 0.61, idx: 42\n", - "Maximum Distance: 62.52, idx: 420\n", - "Average Distance: 14.96\n" - ] - } - ], - "source": [ - "print(\"Minimum Distance: {:.2f}, idx: {}\".format(dis.min(), dis.argmin()))\n", - "print(\"Maximum Distance: {:.2f}, idx: {}\".format(dis.max(), dis.argmax()))\n", - "print(\"Average Distance: {:.2f}\".format(dis.mean()))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Number')" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "_ = plt.hist(dis, bins=100, facecolor=\"blue\", edgecolor=\"black\", alpha=0.7)\n", - "plt.xlabel(\"Euclidean Distance\")\n", - "plt.ylabel(\"Number\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Good Case\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Good Case\")\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "idx = dis.argmin()\n", - "\n", - "img = cv2.imread(file_names[idx])[:,:,::-1]\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.title(\"Loc Result\")\n", - "plt.imshow(img)\n", - "plt.scatter(*points[idx], c='r', s=150)\n", - "plt.scatter(*pred_idx[idx], c='b', s=120, marker='*')\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.title(\"Pred Heatmap\")\n", - "plt.imshow(pred_hms[idx])" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bad Case\n", - "../datasets/Training100/ASOCT_Image_loc/T0035-09_left.jpg\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Bad Case\")\n", - "\n", - "plt.figure(figsize=(8,5))\n", - "\n", - "idx = dis.argmax()\n", - "print(file_names[idx])\n", - "\n", - "img = cv2.imread(file_names[idx])[:,:,::-1]\n", - "\n", - "plt.subplot(1,2,1)\n", - "plt.title(\"Loc Result\")\n", - "plt.imshow(img)\n", - "plt.scatter(*points[idx], c='r', s=150)\n", - "plt.scatter(*pred_idx[idx], c='b', s=120, marker='*')\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.title(\"Pred Heatmap\")\n", - "plt.imshow(pred_hms[idx])" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "result = {}\n", - "for file, pred_id in zip(file_names, pred_idx):\n", - " # T0055-15_right.jpg -> T0055-15\n", - " ori_name = file.split(\"/\")[-1].split(\"_\")[0]\n", - " if ori_name not in result.keys():\n", - " result[ori_name] = [[-1, -1],[-1, -1]]\n", - "\n", - " if \"left\" in file: result[ori_name][0] = pred_id\n", - " else: \n", - " image = cv2.imread(os.path.join(origin_data_dir, ori_name+\".jpg\"))\n", - " nrows, ncols, ch = image.shape\n", - " result[ori_name][1] = [(ncols - nrows) + pred_id[0], pred_id[1]]" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "# output_file do not contain coordinates==-1 images\n", - "# Due to the preprocessing step\n", - "# For real inference, keep all images in val_data_list.\n", - "\n", - "with open(output_file, \"w+\") as f:\n", - " f.write(\"{},{},{},{},{}\\n\".format(\"ASOCT_NAME\", \"X_LEFT\", \"Y_LEFT\", \"X_RIGHT\", \"Y_RIGHT\"))\n", - " for file, pred_point in result.items():\n", - " f.write(\"{},{},{},{},{}\\n\".format(file+\".jpg\", *pred_point[0], *pred_point[1]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/README.md b/PaddleCV/Research/AGEchallenge/LocalizationUNet/README.md deleted file mode 100644 index 5598f2663b63d3b3567002282e3a5c8908a77af3..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Angle closure Glaucoma Evaluation Challenge -The goal of the challenge is to evaluate and compare automated algorithms for angle closure classification and localization of scleral spur (SS) points on a common dataset of AS-OCT images. We invite the medical image analysis community to participate by developing and testing existing and novel automated classification and segmentation methods. -More detail [AGE challenge](https://age.grand-challenge.org/Details/). - -## Scleral spur localization task (ResNet50+UNet model) - -1. Method - - * Inspired by UNet method, a keypoint is equivalent to 2D gaussian heatmap. - - - - - * Then, a localization task could be transformed to a heatmap regression task. - -2. Prepare data - - * We assume that you have downloaded data(two zip files), and store @ `../datasets/`. - * (Updated on August 5) Replace update files. - * We provide a demo about `zip file extract`, `data structure explore`, and `Train/Val split`. - -3. Train - - * We assume that you have download data, extract compressed files, and store @ `../datasets/`. - * Based on PaddlePaddle and [ResNet50](https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet.py), we modify the model structure to enable UNet model, which global pooling layer and final fc layer were removed. - -4. Inference - - * We assume that you have download data, extract compressed files, and store @ `../datasets/`. - * We assume that you stored checkpoint files @ `../weights/loc_unet` - * We provide a baseline about `inference` and `visualization`. - - - - diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/1.png b/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/1.png deleted file mode 100644 index be44b9eea1b002f79e86396013a530cca3d4bf88..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/1.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/2.png b/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/2.png deleted file mode 100644 index b1a90b26998f9f4540bd15d6a1faaa597d094b7d..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/2.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/3.png b/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/3.png deleted file mode 100644 index dfd1a015da77950a1ce789b4bba895209609296b..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/3.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/4.png b/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/4.png deleted file mode 100644 index beae1c839714206b38474aba5e851320661de6af..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/AGEchallenge/LocalizationUNet/assets/4.png and /dev/null differ diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/res_unet_paddle.py b/PaddleCV/Research/AGEchallenge/LocalizationUNet/res_unet_paddle.py deleted file mode 100644 index a64da38da7e7f20dcc45e5d87e3aa66826d6a2f4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/res_unet_paddle.py +++ /dev/null @@ -1,62 +0,0 @@ -import paddle -import paddle.fluid as fluid -import paddle.fluid.layers as FL -from paddle.fluid.param_attr import ParamAttr - -from resnet import * - -def conv_bn_layer(input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = FL.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - - bn_name = name + "_bn" - return FL.batch_norm(input=conv, - act=act, - name=bn_name+'.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance',) - -def DoubleConv_up(x, out_channels, name=None): - x = conv_bn_layer(x, out_channels, 3, 1, act='relu', name=name+"1") - x = conv_bn_layer(x, out_channels, 3, 1, act='relu', name=name+"2") - return x - - -def ConvUp(x1, x2, out_channels, name=None): - x1 = FL.conv2d_transpose(x1, num_filters=x1.shape[1] // 2, filter_size=2, stride=2) - x = FL.concat([x1,x2], axis=1) - x = DoubleConv_up(x, out_channels, name=name+"_doubleconv") - return x - -class ResUNet(): - def __init__(self, backbone, out_channels): - self.backbone = backbone - self.out_channels = out_channels - - def net(self, input): - c1, c2, c3, c4, c5 = self.backbone(input) - channels = [64, 128, 256, 512] - x = ConvUp(c5, c4, channels[2], name='up5') - x = ConvUp(x, c3, channels[1], name='up6') - x = ConvUp(x, c2, channels[0], name='up7') - x = ConvUp(x, c1, channels[0], name='up8') - x = FL.conv2d_transpose(x, num_filters=self.out_channels, filter_size=2, stride=2) - - return x \ No newline at end of file diff --git a/PaddleCV/Research/AGEchallenge/LocalizationUNet/resnet.py b/PaddleCV/Research/AGEchallenge/LocalizationUNet/resnet.py deleted file mode 100644 index da4d53958fea871a228e6a9c44b9e23a28bf4047..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/LocalizationUNet/resnet.py +++ /dev/null @@ -1,188 +0,0 @@ -#copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import math - -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr - -__all__ = ["ResNet", "ResNet18", "ResNet34", "ResNet50", "ResNet101", "ResNet152"] - -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} - - -class ResNet(): - def __init__(self, layers=50): - self.params = train_parameters - self.layers = layers - - def net(self, input): - layers = self.layers - supported_layers = [18, 34, 50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - - if layers == 18: - depth = [2, 2, 2, 2] - elif layers == 34 or layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - - unet_collector = [] - - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu',name="conv1") - unet_collector.append(conv) - - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - if layers >= 50: - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152] and block == 2: - if i == 0: - conv_name="res"+str(block+2)+"a" - else: - conv_name="res"+str(block+2)+"b"+str(i) - else: - conv_name="res"+str(block+2)+chr(97+i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, name=conv_name) - unet_collector.append(conv) - else: - for block in range(len(depth)): - for i in range(depth[block]): - conv_name="res"+str(block+2)+chr(97+i) - conv = self.basic_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - is_first=block==i==0, - name=conv_name) - unet_collector.append(conv) - return unet_collector - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - name=bn_name+'.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance',) - - def shortcut(self, input, ch_out, stride, is_first, name): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1 or is_first == True: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck_block(self, input, num_filters, stride, name): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu',name=name+"_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name+"_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None, name=name+"_branch2c") - - short = self.shortcut(input, num_filters * 4, stride, is_first=False, name=name + "_branch1") - - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu',name=name+".add.output.5") - - def basic_block(self, input, num_filters, stride, is_first, name): - conv0 = self.conv_bn_layer(input=input, num_filters=num_filters, filter_size=3, act='relu', stride=stride, - name=name+"_branch2a") - conv1 = self.conv_bn_layer(input=conv0, num_filters=num_filters, filter_size=3, act=None, - name=name+"_branch2b") - short = self.shortcut(input, num_filters, stride, is_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv1, act='relu') - - -def ResNet18(): - model = ResNet(layers=18) - return model - - -def ResNet34(): - model = ResNet(layers=34) - return model - - -def ResNet50(): - model = ResNet(layers=50) - return model - - -def ResNet101(): - model = ResNet(layers=101) - return model - - -def ResNet152(): - model = ResNet(layers=152) - return model diff --git a/PaddleCV/Research/AGEchallenge/README.md b/PaddleCV/Research/AGEchallenge/README.md deleted file mode 100644 index c237374f1f48be26935fdfde45e2d065fb4d9416..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/AGEchallenge/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Angle closure Glaucoma Evaluation Challenge -The goal of the challenge is to evaluate and compare automated algorithms for angle closure classification and localization of scleral spur (SS) points on a common dataset of AS-OCT images. We invite the medical image analysis community to participate by developing and testing existing and novel automated classification and segmentation methods. -More detail [AGE challenge](https://age.grand-challenge.org/Details/). - -## 1.Download data -After you sign up `Grand Challenge` and join the [AGE challenge](https://age.grand-challenge.org/Details/). - -Dataset can be downloaded from the [Download page](https://age.grand-challenge.org/Download/) - -We assume `Training100.zip` and `Validation_ASOCT_Image.zip` are stored @ `./AGE_challenge Baseline/datasets/` - -## 2.Environment installation -* Python >= 3.5 -* cuDNN >= 7.3 -* CUDA 9 -* paddlepaddle-gpu >= 1.5.0 -* xlrd == 1.2.0 -* tqdm == 4.32.2 -* pycocotools == 2.0.0 - -More detail [PaddlePaddle Installation Manuals](https://www.paddlepaddle.org.cn/documentation/docs/en/1.5/beginners_guide/install/index_en.html) - -## 3. Angle closure classification task - -See `Classification/`. - -## 4. Scleral spur localization task - -We provide two baseline models for localization task. - -See `LocalizationFCN/` and `LocalizationRCNN/`. \ No newline at end of file diff --git a/PaddleCV/Research/PWCNet/AverageMeter.py b/PaddleCV/Research/PWCNet/AverageMeter.py deleted file mode 100644 index 633e6c067d465559d2da61913342da2e521ac731..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/AverageMeter.py +++ /dev/null @@ -1,18 +0,0 @@ - - -class AverageMeter(object): - """Computes and stores the average and current value""" - def __init__(self): - self.reset() - - def reset(self): - self.val = 0 - self.avg = 0 - self.sum = 0 - self.count = 0 - - def update(self, val, n=1): - self.val = val - self.sum += val * n - self.count += n - self.avg = self.sum / self.count diff --git a/PaddleCV/Research/PWCNet/README.md b/PaddleCV/Research/PWCNet/README.md deleted file mode 100644 index b3335013b641836c47b61dd31f8a6f5459188254..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# PWCNet reimplement using paddlepaddle DyGraph -PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume. -# Environment -``` -cenntos7 -paddle develop version (after 20191201) install from source -python3.7 -SciPy 1.1.0 -``` -code will update for paddle v1.7 later. -# Compile correlation op -``` -cd correlation_op -sh make.sh -``` -# Datasets -1.Please download the `FlyingChairs dataset` and `FlyingChairs_train_val.txt` from https://lmb.informatik.uni-freiburg.de/resources/datasets - -Or you can use `./data/download.sh` to download datasets. - -We split the data to train and val by using `FlyingChairs_train_val.txt` with `1 for train and 2 for val`. -# Inference -Note that the paddle models `pwc_net_paddle.pdparams` and `pwc_net_chairs_paddle.pdparams` are transferred from the pytorch pth files `pwc_net.pth.tar` and `pwc_net_chairs.pth.tar`. - -Run -``` -python infer.py -``` - -| Input img1 | Input img2 | -|-------|------------| -| | | - -|prediction with pwc_net_paddle.pdparams| prediction with pwc_net_chairs_paddle.pdparams| -|-------------|-------------| -| | | - -# First Train with L2 loss -A single gpu is supported. Multi gpus will be supported later. - -You should check parameters in `my_args.py` as you like. - -And change them in `train.sh`. -``` ---data_root ---train_val_txt ---batch_size -``` -Then run -``` -./train.sh -``` -Some results during training can be seen -``` -./img1.png -./img2.png -./hsv_pd.png # ground truth -./hsv_predict.png # output of model -``` - -# Finetune with L1 loss -finetune from your best pretrain model by adding --pretrained your_best_model_name eg. `--pretrained epoch_7_pwc_net_paddle` - -Run -``` -./finetune.sh -``` -# Note -This code reimplement PWCNet like the code of `https://github.com/NVlabs/PWC-Net` -If you want to want to train like the paper -``` -@InProceedings{Sun2018PWC-Net, - author = {Deqing Sun and Xiaodong Yang and Ming-Yu Liu and Jan Kautz}, - title = {{PWC-Net}: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume}, - booktitle = CVPR, - year = {2018}, -} -``` -Please use all the datasets in `./data/download.sh` if you like. And use the code in `./data/datasets.py`. - -Reference works -``` -https://github.com/NVlabs/PWC-Net -https://github.com/ClementPinard/FlowNetPytorch -https://github.com/NVIDIA/flownet2-pytorch/blob/master/datasets.py -``` \ No newline at end of file diff --git a/PaddleCV/Research/PWCNet/__init__.py b/PaddleCV/Research/PWCNet/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/PWCNet/correlation_op/README.md b/PaddleCV/Research/PWCNet/correlation_op/README.md deleted file mode 100644 index d83c6fe61d6fef1d01139289b69605628e689d72..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/README.md +++ /dev/null @@ -1,14 +0,0 @@ -自定义OP编译: -1. 使用paddle develop 12月1日之后的版本 -2. sh make.sh编译成correlation_lib.so动态库 -3. 添加动态库路径到LD_LIBRARY_PATH: -``` -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`python3.7 -c 'import paddle; print(paddle.sysconfig.get_lib())'` -``` -4. 添加correlation op的python路径: -``` -export PYTHONPATH=$PYTHONPATH:`pwd` -``` -5. python test_correlation.py运行单测,验证是否加载成功。 - -PS: 如果paddle whl包是从官网上下载的,需要使用gcc 4.8,即把make.sh中的g++ 改为 g++-4.8 diff --git a/PaddleCV/Research/PWCNet/correlation_op/correlation.py b/PaddleCV/Research/PWCNet/correlation_op/correlation.py deleted file mode 100644 index 05e9267d1fcb51344e096592ad86d22223b99f75..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/correlation.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle.fluid as fluid -import os -file_dir = os.path.dirname(os.path.abspath(__file__)) -fluid.load_op_library(os.path.join(file_dir, 'correlation_lib.so')) - -from paddle.fluid.layer_helper import LayerHelper - -def correlation(input1, input2, pad_size, kernel_size, max_displacement, stride1, stride2, corr_type_multiply=1): - helper = LayerHelper("correlation", **locals()) - output = helper.create_variable_for_type_inference(dtype=input1.dtype) - helper.append_op(type="correlation", inputs={"Input1": input1, "Input2": input2}, attrs={"pad_size": pad_size, "kernel_size": kernel_size, "max_displacement": max_displacement, "stride1": stride1, "stride2": stride2, "corr_type_multiply": corr_type_multiply}, outputs = {"Output": output}) - return output diff --git a/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cc b/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cc deleted file mode 100644 index 4902db3ed7115d0d315ae2f2cbab5ea1a5ee6528..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cc +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#include -#include -#include -#include "paddle/fluid/framework/op_registry.h" - -namespace paddle { -namespace operators { - -using Tensor = framework::Tensor; - -inline std::vector CorrelationOutputSize(int batch, int input_height, int input_width, int stride1, int stride2, int kernel_size, int pad_size, int max_displacement) { - - std::vector output_shape({batch}); - int kernel_radius = (kernel_size - 1) / 2; - int border_radius = kernel_radius + max_displacement; - int padded_input_height = input_height + 2 * pad_size; - int padded_input_width = input_width + 2 * pad_size; - int output_channel = ((max_displacement/stride2) * 2 + 1) * ((max_displacement/stride2) * 2 + 1); - output_shape.push_back(output_channel); - int output_height = std::ceil(static_cast(padded_input_height - 2 * border_radius) / static_cast(stride1)); - int output_width = std::ceil(static_cast(padded_input_width - 2 * border_radius) / static_cast(stride1)); - output_shape.push_back(output_height); - output_shape.push_back(output_width); - return output_shape; -} - -class CorrelationOpMaker : public framework::OpProtoAndCheckerMaker { - public: - void Make() override{ - AddInput("Input1", "input1"); - AddInput("Input2", "input2"); - AddOutput("Output", "output"); - AddAttr("pad_size", "pad size for input1 and input2"); - AddAttr("kernel_size", "kernel size of input1 and input2"); - AddAttr("max_displacement", "max displacement of input1 and input2"); - AddAttr("stride1", "Input1 stride"); - AddAttr("stride2", "Input2 stride"); - AddAttr("corr_type_multiply", "correlation coefficient").SetDefault(1); - AddComment(R"DOC(Correlation of two feature map. Only support NCHW data format.)DOC"); - } -}; - -class CorrelationOp : public framework::OperatorWithKernel { - public: - using framework::OperatorWithKernel::OperatorWithKernel; - - void InferShape(framework::InferShapeContext* ctx) const override{ - PADDLE_ENFORCE_EQ(ctx->HasInput("Input1"), true, "Input(input1) cannot be null"); - PADDLE_ENFORCE_EQ(ctx->HasInput("Input2"), true, "Input(input2) cannot be null"); - int stride1 = ctx->Attrs().Get("stride1"); - int stride2 = ctx->Attrs().Get("stride2"); - int max_displacement = ctx->Attrs().Get("max_displacement"); - int pad_size = ctx->Attrs().Get("pad_size"); - int kernel_size = ctx->Attrs().Get("kernel_size"); - - auto in_dims = ctx->GetInputDim("Input1"); - auto in2_dims = ctx->GetInputDim("Input2"); - PADDLE_ENFORCE_EQ(in_dims.size() == 4, true, "input1 must be 4-dims"); - PADDLE_ENFORCE_EQ(in2_dims.size() == 4, true, "input2 must be 4-dims"); - std::vector output_shape = CorrelationOutputSize(in_dims[0], in_dims[2], in_dims[3], stride1, stride2, kernel_size, pad_size, max_displacement); - ctx->SetOutputDim("Output", framework::make_ddim(output_shape)); - } - - protected: - framework::OpKernelType GetExpectedKernelType( - const framework::ExecutionContext& ctx) const override{ - auto input_data_type = OperatorWithKernel::IndicateVarDataType(ctx, "Input1"); - PADDLE_ENFORCE_EQ(input_data_type, ctx.Input("Input2")->type(), "Input1 and Input2 shoule have same type"); - return framework::OpKernelType(input_data_type, ctx.GetPlace()); - } -}; - -template -class CorrelationOpGradMaker : public framework::SingleGradOpMaker { - public: - using framework::SingleGradOpMaker::SingleGradOpMaker; - - protected: - std::unique_ptr Apply() const override { - auto* op = new T(); - op->SetType("correlation_grad"); - op->SetInput("Input1", this->Input("Input1")); - op->SetInput("Input2", this->Input("Input2")); - op->SetInput(framework::GradVarName("Output"), this->OutputGrad("Output")); - op->SetOutput(framework::GradVarName("Input1"), this->InputGrad("Input1")); - op->SetOutput(framework::GradVarName("Input2"), this->InputGrad("Input2")); - op->SetAttrMap(this->Attrs()); - - return std::unique_ptr(op); - } -}; - -class CorrelationOpGrad : public framework::OperatorWithKernel { - public: - using framework::OperatorWithKernel::OperatorWithKernel; - - void InferShape(framework::InferShapeContext* ctx) const override{ - PADDLE_ENFORCE_EQ(ctx->HasInput("Input1"), true, "Input(Input1) should not be null"); - PADDLE_ENFORCE_EQ(ctx->HasInput("Input2"), true, "Input(Input2) should not be null"); - PADDLE_ENFORCE_EQ(ctx->HasInput(framework::GradVarName("Output")), true, "Input(Output@GRAD) should not be null"); - - auto in1_dims = ctx->GetInputDim("Input1"); - auto in2_dims = ctx->GetInputDim("Input2"); - ctx->SetOutputDim(framework::GradVarName("Input1"), in1_dims); - ctx->SetOutputDim(framework::GradVarName("Input2"), in1_dims); - } - - protected: - framework::OpKernelType GetExpectedKernelType( - const framework::ExecutionContext& ctx) const override{ - const auto* var = ctx.InputVar(framework::GradVarName("Output")); - if (var == nullptr) { - PADDLE_THROW("cannot find Output@GRAD"); - } - return framework::OpKernelType(OperatorWithKernel::IndicateVarDataType(ctx, "Input1"), ctx.GetPlace()); - } -}; - -} // namespace operators -} // namespace paddle - -namespace ops = paddle::operators; -REGISTER_OPERATOR(correlation, ops::CorrelationOp, ops::CorrelationOpMaker, - ops::CorrelationOpGradMaker, - ops::CorrelationOpGradMaker); -REGISTER_OPERATOR(correlation_grad, ops::CorrelationOpGrad); diff --git a/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cu b/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cu deleted file mode 100644 index 161844430fe4b9dfeaf80dbe127d802d67a6de76..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/correlation_op.cu +++ /dev/null @@ -1,434 +0,0 @@ -/* Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. */ - -#pragma once -#include -#include "paddle/fluid/framework/op_registry.h" - -#define THREADS_PER_BLOCK 32 -#define FULL_MASK 0xffffffff - -namespace paddle { -namespace operators { - -using Tensor = framework::Tensor; - -template -__forceinline__ __device__ T warpReduceSum(T val) { - for (int offset = 16; offset > 0; offset /= 2) { - val += __shfl_down_sync(FULL_MASK, val, offset); - } - return val; -} - -template -__forceinline__ __device__ T blockReduceSum(T val) { - static __shared__ T shared[32]; - int lane = threadIdx.x % warpSize; - int wid = threadIdx.x / warpSize; - - val = warpReduceSum(val); - if (lane == 0) - shared[wid] = val; - - __syncthreads(); - val = (threadIdx.x < blockDim.x / warpSize) ? shared[lane] : 0; - - if (wid == 0) - val = warpReduceSum(val); - - return val; -} - -template -__global__ void set_zero(T *x, int num) { - for(int i = blockIdx.x * blockDim.x + threadIdx.x; i < num; i += blockDim.x * gridDim.x) - x[i] = static_cast(0); -} - -template -__global__ void channel_first(const T *input, T *rinput, const int channel, const int height, const int width, const int pad_size) { - int n = blockIdx.x; - int h = blockIdx.y; - int w = blockIdx.z; - - int ch_off = threadIdx.x; - T value; - int dimchw = channel * height * width; - int dimhw = height * width; - - int p_dimw = (width + 2 * pad_size); - int p_dimh = (height + 2 * pad_size); - int p_dimchw = channel * p_dimw * p_dimh; - int p_dimcw = channel * p_dimw; - - for (int c = ch_off; c < channel; c += THREADS_PER_BLOCK) { - value = input[n * dimchw + c * dimhw + h * width + w]; - rinput[n * p_dimchw + (h + pad_size) * p_dimcw + (w + pad_size) * channel + c] = value; - } -} - -template -__global__ void correlation_forward(T *output, const int output_channel, const int output_height, const int output_width, const T *rinput1, const int input_channel, const int input_height, const int input_width, const T *rinput2, const int pad_size, const int kernel_size, const int max_displacement, const int stride1, const int stride2) { - - int p_input_width = input_width + 2 * pad_size; - int p_input_height = input_height + 2 * pad_size; - - int kernel_rad = (kernel_size - 1) / 2; - int displacement_rad = max_displacement / stride2; - - int displacement_size = 2 * displacement_rad + 1; - - int n = blockIdx.x; - int h1 = blockIdx.y * stride1 + max_displacement; - int w1 = blockIdx.z * stride1 + max_displacement; - int c = threadIdx.x; - - int p_dimchw = p_input_height * p_input_width * input_channel; - int p_dimcw = p_input_width * input_channel; - int p_dimc = input_channel; - - int t_dimchw = output_channel * output_height * output_width; - int t_dimhw = output_height * output_width; - int t_dimw = output_width; - - int nelems = kernel_size * kernel_size * p_dimc; - - for (int tj = -displacement_rad; tj <= displacement_rad; ++tj) { - for(int ti = -displacement_rad; ti <= displacement_rad; ++ti) { - int w2 = w1 + ti * stride2; - int h2 = h1 + tj * stride2; - - T acc0 = 0; - for(int j = -kernel_rad; j <= kernel_rad; ++j) { - for(int i = -kernel_rad; i <= kernel_rad; ++i) { - for(int ch = c; ch < p_dimc; ch += blockDim.x) { - int index1 = n * p_dimchw + (h1 + j) * p_dimcw + (w1 + i) * p_dimc + ch; - int index2 = n * p_dimchw + (h2 + j) * p_dimcw + (w2 + i) * p_dimc + ch; - acc0 += static_cast(rinput1[index1] * rinput2[index2]); - } - } - } - if (blockDim.x == warpSize) { - __syncwarp(); - acc0 = warpReduceSum(acc0); - } else { - __syncthreads(); - acc0 = blockReduceSum(acc0); - } - - if (threadIdx.x == 0) { - int tc = (tj + displacement_rad) * displacement_size + (ti + displacement_rad); - const int t_index = n * t_dimchw + tc * t_dimhw + blockIdx.y * t_dimw + blockIdx.z; - output[t_index] = static_cast(acc0 / nelems); - } - } - } - -} - -//class CorrelationKernel -template -class CorrelationKernel : public framework::OpKernel { - public: - void Compute(const framework::ExecutionContext &ctx) const override { - PADDLE_ENFORCE_EQ(platform::is_gpu_place(ctx.GetPlace()), true, "It must be CUDAPlace"); - - auto *input1 = ctx.Input("Input1"); - auto *input2 = ctx.Input("Input2"); - int pad_size = ctx.Attr("pad_size"); - int kernel_size = ctx.Attr("kernel_size"); - int stride1 = ctx.Attr("stride1"); - int stride2 = ctx.Attr("stride2"); - int max_displacement = ctx.Attr("max_displacement"); - int corr_type_multiply = ctx.Attr("corr_type_multiply"); - - auto *output = ctx.Output("Output"); - output->mutable_data(ctx.GetPlace()); - auto &dev_ctx = ctx.template device_context(); - - // base on input1, NCHW - auto in_dims = input1->dims(); - int N = in_dims[0]; - int C = in_dims[1]; - int H = in_dims[2]; - int W = in_dims[3]; - - int padded_input_height = H + 2 * pad_size; - int padded_input_width = W + 2 * pad_size; - - Tensor rinput1 = ctx.AllocateTmpTensor({N, padded_input_height, padded_input_width, C}, dev_ctx); - rinput1.mutable_data(ctx.GetPlace()); - - Tensor rinput2 = ctx.AllocateTmpTensor({N, padded_input_height, padded_input_width, C}, dev_ctx); - rinput2.mutable_data(ctx.GetPlace()); - - set_zero<<<(rinput1.numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(rinput1.data(), rinput1.numel()); - set_zero<<<(rinput2.numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(rinput2.data(), rinput2.numel()); - set_zero<<<(output->numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(output->data(), output->numel()); - - auto out_dims = output->dims(); - int OC = out_dims[1]; - int OH = out_dims[2]; - int OW = out_dims[3]; - - dim3 blocks_grid(N, H, W); - dim3 threads_block(THREADS_PER_BLOCK); - - channel_first<<>>(input1->data(), rinput1.data(), C, H, W, pad_size); - channel_first<<>>(input2->data(), rinput2.data(), C, H, W, pad_size); - - dim3 threadsPerBlock(THREADS_PER_BLOCK); - dim3 totalBlocksCorr(N, OH, OW); - - correlation_forward<<>>(output->data(), OC, OH, OW, rinput1.data(), -C, H, W, rinput2.data(), pad_size, kernel_size, max_displacement, stride1, stride2); - } -}; - -template -__global__ void correlation_backward_input1(int item, T *grad_input1, const int input_channel, const int input_height, const int input_width, const T *grad_output, const int output_channel, const int output_height, const int output_width, const T *rinput2, const int pad_size, const int kernel_size, const int max_displacement, const int stride1, const int stride2) { - - int n = item; - int h = blockIdx.x * stride1 + pad_size; - int w = blockIdx.y * stride1 + pad_size; - int c = blockIdx.z; - int tch_off = threadIdx.x; - - int kernel_rad = (kernel_size - 1) / 2; - int displacement_rad = max_displacement / stride2; - int displacement_size = 2 * displacement_rad + 1; - - int xmin = (w - kernel_rad - max_displacement) / stride1; - int ymin = (h - kernel_rad - max_displacement) / stride1; - - int xmax = (w + kernel_rad - max_displacement) / stride1; - int ymax = (h + kernel_rad - max_displacement) / stride1; - - if (xmax < 0 || ymax < 0 || xmin >= output_width || ymin >= output_height) { - return; - } - - if (xmin > xmax || ymin > ymax) { - return; - } - - xmin = max(0, xmin); - xmax = min(output_width - 1, xmax); - - ymin = max(0, ymin); - ymax = min(output_height - 1, ymax); - - int p_input_width = input_width + 2 * pad_size; - int p_input_height = input_height + 2 * pad_size; - int p_dimchw = input_channel * p_input_height * p_input_width; - int p_dimcw = input_channel * p_input_width; - int p_dimc = input_channel; - - int t_dimchw = output_channel * output_height * output_width; - int t_dimhw = output_height * output_width; - int t_dimw = output_width; - - int o_dimchw = input_channel * input_height * input_width; - int o_dimhw = input_height * input_width; - int o_dimw = input_width; - - int nelems = kernel_size * kernel_size * input_channel; - - __shared__ T prod_sum[THREADS_PER_BLOCK]; - prod_sum[tch_off] = 0; - - for (int tc = tch_off; tc < output_channel; tc += THREADS_PER_BLOCK) { - int i2 = (tc % displacement_size - displacement_rad) * stride2; - int j2 = (tc / displacement_size - displacement_rad) * stride2; - - int index2 = n * p_dimchw + (h + j2) * p_dimcw + (w + i2) * p_dimc + c; - - T val2 = rinput2[index2]; - for (int j = ymin; j <= ymax; ++j) { - for (int i = xmin; i <= xmax; ++i) { - int t_index = n * t_dimchw + tc * t_dimhw + j * t_dimw + i; - prod_sum[tch_off] += grad_output[t_index] * val2; - } - } - } - - __syncthreads(); - - if (tch_off == 0) { - T reduce_sum = 0; - for (int index = 0; index < THREADS_PER_BLOCK; index++) { - reduce_sum += prod_sum[index]; - } - const int index1 = n * o_dimchw + c * o_dimhw + (h - pad_size) * o_dimw + (w - pad_size); - grad_input1[index1] = static_cast(reduce_sum / nelems); - } - -} - -template -__global__ void correlation_backward_input2(int item, T *grad_input2, const int input_channel, const int input_height, const int input_width, const T *grad_output, const int output_channel, const int output_height, const int output_width, const T *rinput1, const int pad_size, const int kernel_size, const int max_displacement, const int stride1, const int stride2){ - - int n = item; - int h = blockIdx.x * stride1 + pad_size; - int w = blockIdx.y * stride1 + pad_size; - int c = blockIdx.z; - - int tch_off = threadIdx.x; - - int kernel_rad = (kernel_size - 1) / 2; - int displacement_rad = max_displacement / stride2; - int displacement_size = 2 * displacement_rad + 1; - - int p_input_width = input_width + 2 * pad_size; - int p_input_height = input_height + 2 * pad_size; - int p_dimchw = input_channel * p_input_height * p_input_width; - int p_dimcw = input_channel * p_input_width; - int p_dimc = input_channel; - - int t_dimchw = output_channel * output_height * output_width; - int t_dimhw = output_height * output_width; - int t_dimw = output_width; - - int o_dimchw = input_channel * input_height * input_width; - int o_dimhw = input_height * input_width; - int o_dimw = input_width; - - int nelems = kernel_size * kernel_size * input_channel; - - __shared__ T prod_sum[THREADS_PER_BLOCK]; - prod_sum[tch_off] = 0; - - for (int tc = tch_off; tc < output_channel; tc += THREADS_PER_BLOCK) { - int i2 = (tc % displacement_size - displacement_rad) * stride2; - int j2 = (tc / displacement_size - displacement_rad) * stride2; - - int xmin = (w - kernel_rad - max_displacement - i2) / stride1; - int ymin = (h - kernel_rad - max_displacement - j2) / stride1; - - int xmax = (w + kernel_rad - max_displacement - i2) / stride1; - int ymax = (h + kernel_rad - max_displacement - j2) / stride1; - - if (xmax < 0 || ymax < 0 || xmin >= output_width || ymin >= output_height) { - continue; - } - - if (xmin > xmax || ymin > ymax) { - continue; - } - - xmin = max(0, xmin); - xmax = min(output_width - 1, xmax); - - ymin = max(0, ymin); - ymax = min(output_height - 1, ymax); - - int index1 = n * p_dimchw + (h - j2) * p_dimcw + (w - i2) * p_dimc + c; - T val1 = rinput1[index1]; - for (int j = ymin; j <= ymax; ++j) { - for (int i = xmin; i <= xmax; ++i) { - int t_index = n * t_dimchw + tc * t_dimhw + j * t_dimw + i; - prod_sum[tch_off] += grad_output[t_index] * val1; - } - } - } - - __syncthreads(); - - if (tch_off == 0) { - T reduce_sum = 0; - for (int index = 0; index < THREADS_PER_BLOCK; index++) { - reduce_sum += prod_sum[index]; - } - const int index2 = n * o_dimchw + c * o_dimhw + (h - pad_size) * o_dimw + (w - pad_size); - grad_input2[index2] = static_cast(reduce_sum / nelems); - } -} - -template -class CorrelationGradKernel : public framework::OpKernel { - public: - void Compute(const framework::ExecutionContext &ctx) const override { - PADDLE_ENFORCE_EQ(platform::is_gpu_place(ctx.GetPlace()), true, "It must use CUDAPlace."); - const auto *input1 = ctx.Input("Input1"); - const auto *input2 = ctx.Input("Input2"); - const auto *grad_output = ctx.Input(framework::GradVarName("Output")); - const int pad_size = ctx.Attr("pad_size"); - const int kernel_size = ctx.Attr("kernel_size"); - const int stride1 = ctx.Attr("stride1"); - const int stride2 = ctx.Attr("stride2"); - const int max_displacement = ctx.Attr("max_displacement"); - const int corr_type_multiply = ctx.Attr("corr_type_multiply"); - - auto *grad_input1 = ctx.Output(framework::GradVarName("Input1")); - grad_input1->mutable_data(ctx.GetPlace()); - auto *grad_input2 = ctx.Output(framework::GradVarName("Input2")); - grad_input2->mutable_data(ctx.GetPlace()); - auto &dev_ctx = ctx.template device_context(); - - auto in_dims = input1->dims(); - int N = in_dims[0]; - int C = in_dims[1]; - int H = in_dims[2]; - int W = in_dims[3]; - - int padded_input_height = H + 2 * pad_size; - int padded_input_width = W + 2 * pad_size; - - Tensor rinput1 = ctx.AllocateTmpTensor({N, padded_input_height, padded_input_width, C}, dev_ctx); - rinput1.mutable_data(ctx.GetPlace()); - - Tensor rinput2 = ctx.AllocateTmpTensor({N, padded_input_height, padded_input_width, C}, dev_ctx); - rinput2.mutable_data(ctx.GetPlace()); - - set_zero<<<(rinput1.numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(rinput1.data(), rinput1.numel()); - set_zero<<<(rinput2.numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(rinput2.data(), rinput2.numel()); - set_zero<<<(grad_input1->numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(grad_input1->data(), grad_input1->numel()); - set_zero<<<(grad_input2->numel() + 512 - 1)/512, 512, 0, dev_ctx.stream()>>>(grad_input2->data(), grad_input2->numel()); - - auto grad_out_dims = grad_output->dims(); - int GOC = grad_out_dims[1]; - int GOH = grad_out_dims[2]; - int GOW = grad_out_dims[3]; - - dim3 blocks_grid(N, H, W); - dim3 threads_block(THREADS_PER_BLOCK); - - channel_first<<>>(input1->data(), rinput1.data(), C, H, W, pad_size); - channel_first<<>>(input2->data(), rinput2.data(), C, H, W, pad_size); - - dim3 threadsPerBlock(THREADS_PER_BLOCK); - dim3 totalBlocksCorr(H, W, C); - - for (int n = 0; n < N; n++) { - correlation_backward_input1<<>>(n, grad_input1->data(), C, H, W, grad_output->data(), GOC, GOH, GOW, rinput2.data(), pad_size, kernel_size, max_displacement, stride1, stride2); - } - - for (int n = 0; n < N; n++) { - correlation_backward_input2<<>>(n, grad_input2->data(), C, H, W, grad_output->data(), GOC, GOH, GOW, rinput1.data(), pad_size, kernel_size, max_displacement, stride1, stride2); - } - } -}; - -} // namespace operators -} // namespace paddle - -namespace ops = paddle::operators; -REGISTER_OP_CUDA_KERNEL( - correlation, ops::CorrelationKernel, - ops::CorrelationKernel); -REGISTER_OP_CUDA_KERNEL( - correlation_grad, ops::CorrelationGradKernel, - ops::CorrelationGradKernel); - diff --git a/PaddleCV/Research/PWCNet/correlation_op/make.sh b/PaddleCV/Research/PWCNet/correlation_op/make.sh deleted file mode 100644 index 0aa8deb6b3db2908838dbba10b976e37979bf231..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/make.sh +++ /dev/null @@ -1,22 +0,0 @@ -include_dir=$( python3.7 -c 'import paddle; print(paddle.sysconfig.get_include())' ) -lib_dir=$( python3.7 -c 'import paddle; print(paddle.sysconfig.get_lib())' ) - -echo $include_dir -echo $lib_dir - -OPS='correlation_op' -for op in ${OPS} -do -nvcc ${op}.cu -c -o ${op}.cu.o -ccbin cc -DPADDLE_WITH_CUDA -DEIGEN_USE_GPU -DPADDLE_USE_DSO -DPADDLE_WITH_MKLDNN -Xcompiler -fPIC -std=c++11 -Xcompiler -fPIC -w --expt-relaxed-constexpr -O0 -g -DNVCC \ - -I ${include_dir}/third_party/ \ - -I ${include_dir} -done - -##g++-4.8 correlation_op.cu.o correlation_op.cc -o correlation_lib.so -DPADDLE_WITH_MKLDNN -shared -fPIC -std=c++11 -O0 -g \ -g++ correlation_op.cu.o correlation_op.cc -o correlation_lib.so -DPADDLE_WITH_MKLDNN -shared -fPIC -std=c++11 -O0 -g \ - -I ${include_dir}/third_party/ \ - -I ${include_dir} \ - -L ${lib_dir} \ - -L /usr/local/cuda/lib64 -lpaddle_framework -lcudart - -rm *.cu.o diff --git a/PaddleCV/Research/PWCNet/correlation_op/test_correlation.py b/PaddleCV/Research/PWCNet/correlation_op/test_correlation.py deleted file mode 100644 index 89e254adafe41465be93f98cef837cc6514bf9db..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/correlation_op/test_correlation.py +++ /dev/null @@ -1,88 +0,0 @@ -import unittest -from correlation import correlation -import numpy as np -import paddle.fluid as fluid -from paddle.fluid.dygraph.base import to_variable - -def corr(x_1, x_2, pad_size=4, kernel_size=1, max_displacement=4, stride1=1, stride2=1, corr_multiply=1): - K = kernel_size - # rinput1 = np.pad(x_1, tuple([pad_size for _ in range(4)]), mode='constant').transpose(1, 2).transpose(2, 3) - # rinput2 = np.pad(x_2, tuple([pad_size for _ in range(4)]), mode='constant').transpose(1, 2).transpose(2, 3) - - rinput1 = np.pad(x_1, ((0, 0), (0, 0), (pad_size, pad_size), (pad_size, pad_size)), mode='constant') - rinput2 = np.pad(x_2, ((0, 0), (0, 0), (pad_size, pad_size), (pad_size, pad_size)), mode='constant') - rinput1 = np.transpose(rinput1, (0, 2, 3, 1)) - rinput2 = np.transpose(rinput2, (0, 2, 3, 1)) - B = int(rinput1.shape[0]) - H = int(x_1.shape[2]) - W = int(x_2.shape[3]) - d = max_displacement - D = 2 * d + 1 - output = np.zeros((B, D * D, H, W), dtype=np.float32) - - for b in range(B): - for i in range(H): - for j in range(W): - for k in range(-d, d + 1): - for l in range(-d, d + 1): - x1_index = i + pad_size - y1_index = j + pad_size - x2_index = x1_index + k - y2_index = y1_index + l - output[b, l + d + D * (k + d), i, j] = np.mean( - rinput1[b, x1_index:x1_index + K, y1_index:y1_index + K] * rinput2[b, - x2_index:x2_index + K, - y2_index:y2_index + K]) - - return output - -class TestCorrelationOp(unittest.TestCase): - def test_check_output(self): - #x_shape = (1, 196, 3, 3) - np.random.seed(13) - np.set_printoptions(threshold=np.inf) - x_shape = (2, 10, 3, 3) - x_type = 'float32' - x1 = fluid.layers.data(name='x1', shape=x_shape, dtype=x_type, append_batch_size=False) - x2 = fluid.layers.data(name='x2', shape=x_shape, dtype=x_type, append_batch_size=False) - - x1_np = np.random.randn(2,3,4,5).astype(x_type) - x2_np = np.random.randn(2,3,4,5).astype(x_type) - out_np = corr(x1_np, x2_np, pad_size=4, kernel_size=1, max_displacement=4, stride1=1, stride2=1) - - out = correlation(x1, x2, pad_size=4, kernel_size=1, max_displacement=4, stride1=1, stride2=1) - - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - res = exe.run(feed={'x1':x1_np, 'x2':x2_np}, fetch_list=[out.name]) - - self.assertTrue(np.allclose(res[0], out_np)) - -class Net(fluid.dygraph.Layer): - def __init__(self, name_scope): - super(Net, self).__init__(name_scope) - def forward(self, x1, x2): - y = correlation(x1, x2, pad_size=4, kernel_size=1, max_displacement=4, stride1=1, stride2=1) - return y - -class TestCorrelationOpDyGraph(unittest.TestCase): - def test_check_output(self): - np.random.seed(13) - np.set_printoptions(threshold=np.inf) - x_shape = (2, 10, 3, 3) - x_type = 'float32' - place = fluid.CUDAPlace(0) - with fluid.dygraph.guard(place): - x1_np = np.random.randn(2,3,4,5).astype(x_type) - x2_np = np.random.randn(2,3,4,5).astype(x_type) - out_np = corr(x1_np, x2_np, pad_size=4, kernel_size=1, max_displacement=4, stride1=1, stride2=1) - - x1 = to_variable(x1_np) - x2 = to_variable(x2_np) - corr_pd = Net('corr_pd') - y = corr_pd(x1, x2) - out = y.numpy() - self.assertTrue(np.allclose(out, out_np)) - -if __name__ == '__main__': - unittest.main() diff --git a/PaddleCV/Research/PWCNet/data/__init__.py b/PaddleCV/Research/PWCNet/data/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/PWCNet/data/datasets.py b/PaddleCV/Research/PWCNet/data/datasets.py deleted file mode 100644 index 080e875df614c6ad8499822b492c85555321b338..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/data/datasets.py +++ /dev/null @@ -1,475 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# @FileName: datasets.py reference https://github.com/NVIDIA/flownet2-pytorch/blob/master/datasets.py -import paddle -import paddle.fluid as fluid -import numpy as np -import argparse -import os, math, random -import sys -from os.path import * -import numpy as np -from glob import glob -sys.path.append('../') -import data.utils.frame_utils as frame_utils -from scipy.misc import imsave -from src import flow_vis -from src.read_files import read_txt_to_index - - -class StaticRandomCrop(object): - def __init__(self, image_size, crop_size): - self.th, self.tw = crop_size - h, w = image_size - self.h1 = random.randint(0, h - self.th) - self.w1 = random.randint(0, w - self.tw) - - def __call__(self, img): - return img[self.h1:(self.h1 + self.th), self.w1:(self.w1 + self.tw), :] - - -class StaticCenterCrop(object): - def __init__(self, image_size, crop_size): - self.th, self.tw = crop_size - self.h, self.w = image_size - - def __call__(self, img): - return img[(self.h - self.th) // 2:(self.h + self.th) // 2, (self.w - self.tw) // 2:(self.w + self.tw) // 2, :] - - -class MpiSintel(object): - def __init__(self, args, is_cropped=False, root='', dstype='clean', replicates=1): - self.args = args - self.is_cropped = is_cropped - self.crop_size = args.crop_size - self.render_size = args.inference_size - self.replicates = replicates - - flow_root = join(root, 'flow') - image_root = join(root, dstype) - - file_list = sorted(glob(join(flow_root, '*/*.flo'))) - - self.flow_list = [] - self.image_list = [] - - for file in file_list: - if 'test' in file: - # print file - continue - - fbase = file[len(flow_root) + 1:] - fprefix = fbase[:-8] - fnum = int(fbase[-8:-4]) - - img1 = join(image_root, fprefix + "%04d" % (fnum + 0) + '.png') - img2 = join(image_root, fprefix + "%04d" % (fnum + 1) + '.png') - - if not isfile(img1) or not isfile(img2) or not isfile(file): - continue - - self.image_list += [[img1, img2]] - self.flow_list += [file] - - self.size = len(self.image_list) - - self.frame_size = frame_utils.read_gen(self.image_list[0][0]).shape - - if (self.render_size[0] < 0) or (self.render_size[1] < 0) or (self.frame_size[0] % 64) or ( - self.frame_size[1] % 64): - self.render_size[0] = ((self.frame_size[0]) // 64) * 64 - self.render_size[1] = ((self.frame_size[1]) // 64) * 64 - - args.inference_size = self.render_size - - assert (len(self.image_list) == len(self.flow_list)) - - def __getitem__(self, index): - - index = index % self.size - - img1 = frame_utils.read_gen(self.image_list[index][0]) - img2 = frame_utils.read_gen(self.image_list[index][1]) - - flow = frame_utils.read_gen(self.flow_list[index]) - - images = [img1, img2] - image_size = img1.shape[:2] - - if self.is_cropped: - cropper = StaticRandomCrop(image_size, self.crop_size) - else: - cropper = StaticCenterCrop(image_size, self.render_size) - images = list(map(cropper, images)) - flow = cropper(flow) - - images = np.array(images).transpose(3, 0, 1, 2) - flow = flow.transpose(2, 0, 1) - return [images], [flow] - - def __len__(self): - return self.size * self.replicates - - -class MpiSintelClean(MpiSintel): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(MpiSintelClean, self).__init__(args, is_cropped=is_cropped, root=root, dstype='clean', - replicates=replicates) - - -class MpiSintelFinal(MpiSintel): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(MpiSintelFinal, self).__init__(args, is_cropped=is_cropped, root=root, dstype='final', - replicates=replicates) - - -class FlyingChairs(object): - def __init__(self, train_val, args, is_cropped, txt_file, root='/path/to/FlyingChairs_release/data', replicates=1): - self.args = args - self.is_cropped = is_cropped - self.crop_size = args.crop_size - self.render_size = args.inference_size - self.replicates = replicates - - images = sorted(glob(join(root, '*.ppm'))) - - flow_list = sorted(glob(join(root, '*.flo'))) - - assert (len(images) // 2 == len(flow_list)) - - image_list = [] - for i in range(len(flow_list)): - im1 = images[2 * i] - im2 = images[2 * i + 1] - image_list += [[im1, im2]] - - assert len(image_list) == len(flow_list) - if train_val == 'train': - intindex = np.array(read_txt_to_index(txt_file)) - image_list = np.array(image_list) - image_list = image_list[intindex == 1] - image_list = image_list.tolist() - flow_list = np.array(flow_list) - flow_list = flow_list[intindex == 1] - flow_list = flow_list.tolist() - assert len(image_list) == len(flow_list) - elif train_val == 'val': - intindex = np.array(read_txt_to_index(txt_file)) - image_list = np.array(image_list) - image_list = image_list[intindex == 2] - image_list = image_list.tolist() - flow_list = np.array(flow_list) - flow_list = flow_list[intindex == 2] - flow_list = flow_list.tolist() - assert len(image_list) == len(flow_list) - else: - raise ValueError('FlyingChairs_train_val.txt not found for txt_file ......') - self.flow_list = flow_list - self.image_list = image_list - - self.size = len(self.image_list) - - self.frame_size = frame_utils.read_gen(self.image_list[0][0]).shape - - if (self.render_size[0] < 0) or (self.render_size[1] < 0) or (self.frame_size[0] % 64) or ( - self.frame_size[1] % 64): - self.render_size[0] = ((self.frame_size[0]) // 64) * 64 - self.render_size[1] = ((self.frame_size[1]) // 64) * 64 - - args.inference_size = self.render_size - - def __getitem__(self, index): - index = index % self.size - - img1 = frame_utils.read_gen(self.image_list[index][0]) - img2 = frame_utils.read_gen(self.image_list[index][1]) - - flow = frame_utils.read_gen(self.flow_list[index]) - - images = [img1, img2] - image_size = img1.shape[:2] - if self.is_cropped: - cropper = StaticRandomCrop(image_size, self.crop_size) - else: - cropper = StaticCenterCrop(image_size, self.render_size) - images = list(map(cropper, images)) - flow = cropper(flow) - - images = np.array(images).transpose(3, 0, 1, 2) - flow = flow.transpose(2, 0, 1) - return [images], [flow] - - def __len__(self): - return self.size * self.replicates - - -def reader_flyingchairs(dataset): - n = len(dataset) - - def reader(): - for i in range(n): - a, b = dataset[i] - yield a[0][:,0,:,:].transpose(1,2,0), a[0][:,1,:,:].transpose(1,2,0), b[0].transpose(1, 2, 0)# a single entry of data is created each time - return reader - - -class FlyingThings(object): - def __init__(self, args, is_cropped, root='/path/to/flyingthings3d', dstype='frames_cleanpass', replicates=1): - self.args = args - self.is_cropped = is_cropped - self.crop_size = args.crop_size - self.render_size = args.inference_size - self.replicates = replicates - - image_dirs = sorted(glob(join(root, dstype, 'TRAIN/*/*'))) - image_dirs = sorted([join(f, 'left') for f in image_dirs] + [join(f, 'right') for f in image_dirs]) - - flow_dirs = sorted(glob(join(root, 'optical_flow_flo_format/TRAIN/*/*'))) - flow_dirs = sorted( - [join(f, 'into_future/left') for f in flow_dirs] + [join(f, 'into_future/right') for f in flow_dirs]) - - assert (len(image_dirs) == len(flow_dirs)) - - self.image_list = [] - self.flow_list = [] - - for idir, fdir in zip(image_dirs, flow_dirs): - images = sorted(glob(join(idir, '*.png'))) - flows = sorted(glob(join(fdir, '*.flo'))) - for i in range(len(flows)): - self.image_list += [[images[i], images[i + 1]]] - self.flow_list += [flows[i]] - - assert len(self.image_list) == len(self.flow_list) - - self.size = len(self.image_list) - - self.frame_size = frame_utils.read_gen(self.image_list[0][0]).shape - - if (self.render_size[0] < 0) or (self.render_size[1] < 0) or (self.frame_size[0] % 64) or ( - self.frame_size[1] % 64): - self.render_size[0] = ((self.frame_size[0]) // 64) * 64 - self.render_size[1] = ((self.frame_size[1]) // 64) * 64 - - args.inference_size = self.render_size - - def __getitem__(self, index): - index = index % self.size - - img1 = frame_utils.read_gen(self.image_list[index][0]) - img2 = frame_utils.read_gen(self.image_list[index][1]) - - flow = frame_utils.read_gen(self.flow_list[index]) - - images = [img1, img2] - image_size = img1.shape[:2] - if self.is_cropped: - cropper = StaticRandomCrop(image_size, self.crop_size) - else: - cropper = StaticCenterCrop(image_size, self.render_size) - images = list(map(cropper, images)) - flow = cropper(flow) - - images = np.array(images).transpose(3, 0, 1, 2) - flow = flow.transpose(2, 0, 1) - return [images], [flow] - - def __len__(self): - return self.size * self.replicates - - -class FlyingThingsClean(FlyingThings): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(FlyingThingsClean, self).__init__(args, is_cropped=is_cropped, root=root, dstype='frames_cleanpass', - replicates=replicates) - - -class FlyingThingsFinal(FlyingThings): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(FlyingThingsFinal, self).__init__(args, is_cropped=is_cropped, root=root, dstype='frames_finalpass', - replicates=replicates) - - -class ChairsSDHom(object): - def __init__(self, args, is_cropped, root='/path/to/chairssdhom/data', dstype='train', replicates=1): - self.args = args - self.is_cropped = is_cropped - self.crop_size = args.crop_size - self.render_size = args.inference_size - self.replicates = replicates - - image1 = sorted(glob(join(root, dstype, 't0/*.png'))) - image2 = sorted(glob(join(root, dstype, 't1/*.png'))) - self.flow_list = sorted(glob(join(root, dstype, 'flow/*.flo'))) - - assert (len(image1) == len(self.flow_list)) - - self.image_list = [] - for i in range(len(self.flow_list)): - im1 = image1[i] - im2 = image2[i] - self.image_list += [[im1, im2]] - - assert len(self.image_list) == len(self.flow_list) - - self.size = len(self.image_list) - - self.frame_size = frame_utils.read_gen(self.image_list[0][0]).shape - - if (self.render_size[0] < 0) or (self.render_size[1] < 0) or (self.frame_size[0] % 64) or ( - self.frame_size[1] % 64): - self.render_size[0] = ((self.frame_size[0]) // 64) * 64 - self.render_size[1] = ((self.frame_size[1]) // 64) * 64 - - args.inference_size = self.render_size - - def __getitem__(self, index): - index = index % self.size - - img1 = frame_utils.read_gen(self.image_list[index][0]) - img2 = frame_utils.read_gen(self.image_list[index][1]) - - flow = frame_utils.read_gen(self.flow_list[index]) - flow = flow[::-1, :, :] - - images = [img1, img2] - image_size = img1.shape[:2] - if self.is_cropped: - cropper = StaticRandomCrop(image_size, self.crop_size) - else: - cropper = StaticCenterCrop(image_size, self.render_size) - images = list(map(cropper, images)) - flow = cropper(flow) - - images = np.array(images).transpose(3, 0, 1, 2) - flow = flow.transpose(2, 0, 1) - return [images], [flow] - - def __len__(self): - return self.size * self.replicates - - -class ChairsSDHomTrain(ChairsSDHom): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(ChairsSDHomTrain, self).__init__(args, is_cropped=is_cropped, root=root, dstype='train', - replicates=replicates) - - -class ChairsSDHomTest(ChairsSDHom): - def __init__(self, args, is_cropped=False, root='', replicates=1): - super(ChairsSDHomTest, self).__init__(args, is_cropped=is_cropped, root=root, dstype='test', - replicates=replicates) - - -class ImagesFromFolder(object): - def __init__(self, args, is_cropped, root='/path/to/frames/only/folder', iext='png', replicates=1): - self.args = args - self.is_cropped = is_cropped - self.crop_size = args.crop_size - self.render_size = args.inference_size - self.replicates = replicates - - images = sorted(glob(join(root, '*.' + iext))) - self.image_list = [] - for i in range(len(images) - 1): - im1 = images[i] - im2 = images[i + 1] - self.image_list += [[im1, im2]] - - self.size = len(self.image_list) - - self.frame_size = frame_utils.read_gen(self.image_list[0][0]).shape - - if (self.render_size[0] < 0) or (self.render_size[1] < 0) or (self.frame_size[0] % 64) or ( - self.frame_size[1] % 64): - self.render_size[0] = ((self.frame_size[0]) // 64) * 64 - self.render_size[1] = ((self.frame_size[1]) // 64) * 64 - - args.inference_size = self.render_size - - def __getitem__(self, index): - index = index % self.size - - img1 = frame_utils.read_gen(self.image_list[index][0]) - img2 = frame_utils.read_gen(self.image_list[index][1]) - - images = [img1, img2] - image_size = img1.shape[:2] - if self.is_cropped: - cropper = StaticRandomCrop(image_size, self.crop_size) - else: - cropper = StaticCenterCrop(image_size, self.render_size) - images = list(map(cropper, images)) - - images = np.array(images).transpose(3, 0, 1, 2) - return [images], [np.zeros(images.size()[0:1] + (2,) + images.size()[-2:])] - - def __len__(self): - return self.size * self.replicates - - -if __name__ == '__main__': - parser = argparse.ArgumentParser() - args = parser.parse_args() - args.inference_size = [1080, 1920] - args.crop_size = [384, 512] - - index = 50 - flyingchairs_dataset = FlyingChairs(args, True, root='/ssd2/zhenghe/DATA/FlyingChairs_release/data') - # a, b = flyingchairs_dataset[index] - # im1 = a[0][:,0,:,:].transpose(1,2,0) - # im2 = a[0][:,1,:,:].transpose(1,2,0) - # flo = b[0].transpose(1, 2, 0) / 20.0 - # flow_color = flow_vis.flow_to_color(flo, convert_to_bgr=False) - # imsave('./hsv_pd.png', flow_color) - sample_num = len(flyingchairs_dataset) - reader = reader_flyingchairs(flyingchairs_dataset) - BATCH_SIZE = 8 - train_batch_reader = paddle.batch(reader, BATCH_SIZE, drop_last=True) - epoch_num = 1 - - with fluid.dygraph.guard(): - for epoch in range(epoch_num): - for batch_id, data in enumerate(train_batch_reader()): - im1_data = np.array( - [x[0] for x in data]).astype('float32') - im2_data = np.array( - [x[1] for x in data]).astype('float32') - flo_data = np.array( - [x[2] for x in data]).astype('float32') - if batch_id % 500 == 0: - # if batch_id < 10: - print(batch_id) - print(im1_data.shape) - print(im2_data.shape) - print(flo_data.shape) - im1 = im1_data[0, :, :, :] - im2 = im2_data[0, :, :, :] - flo = flo_data[0, :, :, :] - print(im1.shape) - print(im2.shape) - print(flo.shape) - imsave('./img1.png', im1) - imsave('./img2.png', im2) - flow_color = flow_vis.flow_to_color(flo, convert_to_bgr=False) - imsave('./hsv_pd.png', flow_color) - print("batch_id:", batch_id) - print(batch_id * BATCH_SIZE) - print(sample_num) - # img = fluid.dygraph.to_variable(dy_x_data) - - - - - diff --git a/PaddleCV/Research/PWCNet/data/download.sh b/PaddleCV/Research/PWCNet/data/download.sh deleted file mode 100755 index 8a0c5dad4d5fb233be56050983bf1f0b293944d0..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/data/download.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -#mkdir FlyingThings3D_release -#cd FlyingThings3D_release -# -#wget http://lmb.informatik.uni-freiburg.de/data/SceneFlowDatasets_CVPR16/Release_april16/data/FlyingThings3D/raw_data/flyingthings3d__frames_cleanpass.tar -#wget http://lmb.informatik.uni-freiburg.de/data/SceneFlowDatasets_CVPR16/Release_april16/data/FlyingThings3D/derived_data/flyingthings3d__optical_flow.tar.bz2 -# -#tar xvf flyingthings3d__frames_cleanpass.tar -#tar xvf flyingthings3d__optical_flow.tar.bz2 -# -#cd .. -wget http://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs/FlyingChairs.zip -unzip FlyingChairs.zip - -#wget https://lmb.informatik.uni-freiburg.de/data/FlowNet2/ChairsSDHom/ChairsSDHom.tar.gz -#tar xvzf ChairsSDHom.tar.gz diff --git a/PaddleCV/Research/PWCNet/data/frame_0010.png b/PaddleCV/Research/PWCNet/data/frame_0010.png deleted file mode 100644 index 80df246723859bb1e0aaca2f41944537cdc18d70..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/data/frame_0010.png and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/data/frame_0011.png b/PaddleCV/Research/PWCNet/data/frame_0011.png deleted file mode 100644 index 0ee97e97a7eba203eb6f67f032f81a8fbdb2c3ed..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/data/frame_0011.png and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/data/utils/__init__.py b/PaddleCV/Research/PWCNet/data/utils/__init__.py deleted file mode 100644 index 139597f9cb07c5d48bed18984ec4747f4b4f3438..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/data/utils/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/PaddleCV/Research/PWCNet/data/utils/flow_utils.py b/PaddleCV/Research/PWCNet/data/utils/flow_utils.py deleted file mode 100644 index 4ee0ecbb16a92bb9f738d278b61a18862ad518a5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/data/utils/flow_utils.py +++ /dev/null @@ -1,57 +0,0 @@ -import numpy as np - -TAG_CHAR = np.array([202021.25], np.float32) - - -def readFlow(fn): - """ Read .flo file in Middlebury format""" - # Code adapted from: - # http://stackoverflow.com/questions/28013200/reading-middlebury-flow-files-with-python-bytes-array-numpy - - # WARNING: this will work on little-endian architectures (eg Intel x86) only! - # print 'fn = %s'%(fn) - with open(fn, 'rb') as f: - magic = np.fromfile(f, np.float32, count=1) - if 202021.25 != magic: - print('Magic number incorrect. Invalid .flo file') - return None - else: - w = np.fromfile(f, np.int32, count=1) - h = np.fromfile(f, np.int32, count=1) - # print 'Reading %d x %d flo file\n' % (w, h) - data = np.fromfile(f, np.float32, count=2 * int(w) * int(h)) - # Reshape data into 3D array (columns, rows, bands) - # The reshape here is for visualization, the original code is (w,h,2) - return np.resize(data, (int(h), int(w), 2)) - - -def writeFlow(filename, uv, v=None): - """ Write optical flow to file. - - If v is None, uv is assumed to contain both u and v channels, - stacked in depth. - Original code by Deqing Sun, adapted from Daniel Scharstein. - """ - nBands = 2 - - if v is None: - assert (uv.ndim == 3) - assert (uv.shape[2] == 2) - u = uv[:, :, 0] - v = uv[:, :, 1] - else: - u = uv - - assert (u.shape == v.shape) - height, width = u.shape - f = open(filename, 'wb') - # write the header - f.write(TAG_CHAR) - np.array(width).astype(np.int32).tofile(f) - np.array(height).astype(np.int32).tofile(f) - # arrange into matrix form - tmp = np.zeros((height, width * nBands)) - tmp[:, np.arange(width) * 2] = u - tmp[:, np.arange(width) * 2 + 1] = v - tmp.astype(np.float32).tofile(f) - f.close() \ No newline at end of file diff --git a/PaddleCV/Research/PWCNet/data/utils/frame_utils.py b/PaddleCV/Research/PWCNet/data/utils/frame_utils.py deleted file mode 100644 index 40a8ea5a206aec428241ac7674de83a1a4099de0..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/data/utils/frame_utils.py +++ /dev/null @@ -1,18 +0,0 @@ -import numpy as np -from os.path import * -from scipy.misc import imread -from . import flow_utils - -def read_gen(file_name): - ext = splitext(file_name)[-1] - if ext == '.png' or ext == '.jpeg' or ext == '.ppm' or ext == '.jpg': - im = imread(file_name) - if im.shape[2] > 3: - return im[:,:,:3] - else: - return im - elif ext == '.bin' or ext == '.raw': - return np.load(file_name) - elif ext == '.flo': - return flow_utils.readFlow(file_name).astype(np.float32) - return [] \ No newline at end of file diff --git a/PaddleCV/Research/PWCNet/finetune.sh b/PaddleCV/Research/PWCNet/finetune.sh deleted file mode 100755 index 29d2e802da3cc3fa13413ab768071e19d59e3147..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/finetune.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -python3 train.py --loss l1 --pretrained ./out/pwc_net_paddle --dataset FlyingChairs --train_val_txt data_dir/FlyingChairs_release/FlyingChairs_train_val.txt --data_root data_dir/FlyingChairs_release/data - -# use multi gpus NEED TO DO LATER -#python3 -m paddle.distributed.launch --selected_gpus=0,1 train.py --use_multi_gpu --batch_size 40 --loss l1 --pretrained ./out/pwc_net_paddle --dataset FlyingChairs --train_val_txt data_dir/FlyingChairs_release/FlyingChairs_train_val.txt --data_root data_dir/FlyingChairs_release/data diff --git a/PaddleCV/Research/PWCNet/infer.py b/PaddleCV/Research/PWCNet/infer.py deleted file mode 100644 index 717c18f02c017e910b4a86e09616386668822e8a..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/infer.py +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Infer for PWCNet.""" -import sys -import pickle -import time -import cv2 -import numpy as np -from math import ceil -from scipy.ndimage import imread -from scipy.misc import imsave -import paddle.fluid as fluid -from models.model import PWCDCNet -from src import flow_vis - - - -def writeFlowFile(filename, uv): - """ - According to the matlab code of Deqing Sun and c++ source code of Daniel Scharstein - Contact: dqsun@cs.brown.edu - Contact: schar@middlebury.edu - """ - TAG_STRING = np.array(202021.25, dtype=np.float32) - if uv.shape[2] != 2: - sys.exit("writeFlowFile: flow must have two bands!"); - H = np.array(uv.shape[0], dtype=np.int32) - W = np.array(uv.shape[1], dtype=np.int32) - with open(filename, 'wb') as f: - f.write(TAG_STRING.tobytes()) - f.write(W.tobytes()) - f.write(H.tobytes()) - f.write(uv.tobytes()) - - -def load_dict(filename_): - with open(filename_, 'rb') as f: - ret_di = pickle.load(f) - return ret_di - - -def pad_input(x0): - intWidth = x0.shape[2] - intHeight = x0.shape[3] - if intWidth != ((intWidth >> 6) << 6): - intWidth_pad = (((intWidth >> 6) + 1) << 6) # more than necessary - intPaddingLeft = int((intWidth_pad - intWidth) / 2) - intPaddingRight = intWidth_pad - intWidth - intPaddingLeft - else: - intWidth_pad = intWidth - intPaddingLeft = 0 - intPaddingRight = 0 - - if intHeight != ((intHeight >> 6) << 6): - intHeight_pad = (((intHeight >> 6) + 1) << 6) # more than necessary - intPaddingTop = int((intHeight_pad - intHeight) / 2) - intPaddingBottom = intHeight_pad - intHeight - intPaddingTop - else: - intHeight_pad = intHeight - intPaddingTop = 0 - intPaddingBottom = 0 - - out = fluid.layers.pad2d(input=x0, - paddings=[intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom], - mode='edge') - - return out, [intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom, intWidth, intHeight] - - -def main(): - im1_fn = 'data/frame_0010.png' - im2_fn = 'data/frame_0011.png' - flow_fn = './tmp/frame_0010_pd.flo' - if len(sys.argv) > 1: - im1_fn = sys.argv[1] - if len(sys.argv) > 2: - im2_fn = sys.argv[2] - if len(sys.argv) > 3: - flow_fn = sys.argv[3] - - im_all = [imread(img) for img in [im1_fn, im2_fn]] - im_all = [im[:, :, :3] for im in im_all] - - # rescale the image size to be multiples of 64 - divisor = 64. - H = im_all[0].shape[0] - W = im_all[0].shape[1] - print('origin shape : ', H, W) - - H_ = int(ceil(H / divisor) * divisor) - W_ = int(ceil(W / divisor) * divisor) - print('resize shape: ', H_, W_) - for i in range(len(im_all)): - im_all[i] = cv2.resize(im_all[i], (W_, H_)) - - for _i, _inputs in enumerate(im_all): - im_all[_i] = im_all[_i][:, :, ::-1] - im_all[_i] = 1.0 * im_all[_i] / 255.0 - im_all[_i] = np.transpose(im_all[_i], (2, 0, 1)) - im_all = np.concatenate((im_all[0], im_all[1]), axis=0).astype(np.float32) - im_all = im_all[np.newaxis, :, :, :] - - with fluid.dygraph.guard(place=fluid.CUDAPlace(0)): - im_all = fluid.dygraph.to_variable(im_all) - im_all, [intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom, intWidth, intHeight] = pad_input( - im_all) - - model = PWCDCNet("pwcnet") - model.eval() - pd_pretrain, _ = fluid.dygraph.load_dygraph("paddle_model/pwc_net_paddle") - model.set_dict(pd_pretrain) - start = time.time() - flo = model(im_all) - end = time.time() - print('Time of PWCNet model for one infer step: ', end - start) - flo = flo[0].numpy() * 20.0 - # scale the flow back to the input size - flo = np.swapaxes(np.swapaxes(flo, 0, 1), 1, 2) - flo = flo[intPaddingTop * 2:intPaddingTop * 2 + intHeight * 2, - intPaddingLeft * 2: intPaddingLeft * 2 + intWidth * 2, :] - u_ = cv2.resize(flo[:, :, 0], (W, H)) - v_ = cv2.resize(flo[:, :, 1], (W, H)) - u_ *= W / float(W_) - v_ *= H / float(H_) - flo = np.dstack((u_, v_)) - - # # Apply the coloring (for OpenCV, set convert_to_bgr=True) - flow_color = flow_vis.flow_to_color(flo, convert_to_bgr=False) - imsave('./tmp/hsv_pd.png', flow_color) - - writeFlowFile(flow_fn, flo) - - -if __name__ == '__main__': - main() - - diff --git a/PaddleCV/Research/PWCNet/models/__init__.py b/PaddleCV/Research/PWCNet/models/__init__.py deleted file mode 100644 index 44a41a91f24512697caec6068c7ce1f4101c93b5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/models/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import models.model diff --git a/PaddleCV/Research/PWCNet/models/model.py b/PaddleCV/Research/PWCNet/models/model.py deleted file mode 100644 index 435e9f4dbc375251468906ca0f33ac3c79701804..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/models/model.py +++ /dev/null @@ -1,277 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle.fluid as fluid -from paddle.fluid.dygraph import Conv2D, Conv2DTranspose -from correlation_op.correlation import correlation - - -class PWCDCNet(fluid.dygraph.Layer): - def __init__(self, name_scope, md=4): - super(PWCDCNet, self).__init__(name_scope) - self.param_attr = fluid.ParamAttr( - name='conv_weights', - regularizer=fluid.regularizer.L2DecayRegularizer( - regularization_coeff=0.0004), - initializer=fluid.initializer.MSRAInitializer(uniform=True, fan_in=None, seed=0)) - self.md = md - self.conv1a = Conv2D("conv1a", 16, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv1aa = Conv2D("conv1aa", 16, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv1b = Conv2D("conv1b", 16, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2a = Conv2D("conv2a", 32, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv2aa = Conv2D("conv2aa", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2b = Conv2D("conv2b", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv3a = Conv2D("conv3a", 64, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv3aa = Conv2D("conv3aa", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv3b = Conv2D("conv3b", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4a = Conv2D("conv4a", 96, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv4aa = Conv2D("conv4aa", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4b = Conv2D("conv4b", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5a = Conv2D("conv5a", 128, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv5aa = Conv2D("conv5aa", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5b = Conv2D("conv5b", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6aa = Conv2D("conv6aa", 196, filter_size=3, stride=2, padding=1, param_attr=self.param_attr) - self.conv6a = Conv2D("conv6a", 196, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6b = Conv2D("conv6b", 196, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - - self.conv6_0 = Conv2D("conv6_0", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6_1 = Conv2D("conv6_1", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6_2 = Conv2D("conv6_2", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6_3 = Conv2D("conv6_3", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv6_4 = Conv2D("conv6_4", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.predict_flow6 = Conv2D("predict_flow6", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - self.deconv6 = Conv2DTranspose("deconv6", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - self.upfeat6 = Conv2DTranspose("upfeat6", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - - self.conv5_0 = Conv2D("conv5_0", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5_1 = Conv2D("conv5_1", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5_2 = Conv2D("conv5_2", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5_3 = Conv2D("conv5_3", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv5_4 = Conv2D("conv5_4", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.predict_flow5 = Conv2D("predict_flow5", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - self.deconv5 = Conv2DTranspose("deconv5", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - self.upfeat5 = Conv2DTranspose("upfeat5", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - - self.conv4_0 = Conv2D("conv4_0", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4_1 = Conv2D("conv4_1", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4_2 = Conv2D("conv4_2", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4_3 = Conv2D("conv4_3", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv4_4 = Conv2D("conv4_4", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.predict_flow4 = Conv2D("predict_flow4", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - self.deconv4 = Conv2DTranspose("deconv4", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - self.upfeat4 = Conv2DTranspose("upfeat4", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - - self.conv3_0 = Conv2D("conv3_0", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv3_1 = Conv2D("conv3_1", 128, filter_size=3, stride=1, padding=1 ,param_attr=self.param_attr) - self.conv3_2 = Conv2D("conv3_2", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv3_3 = Conv2D("conv3_3", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv3_4 = Conv2D("conv3_4", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.predict_flow3 = Conv2D("predict_flow3", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - self.deconv3 = Conv2DTranspose("deconv3", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - self.upfeat3 = Conv2DTranspose("upfeat3", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - - self.conv2_0 = Conv2D("conv2_0", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2_1 = Conv2D("conv2_1", 128, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2_2 = Conv2D("conv2_2", 96, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2_3 = Conv2D("conv2_3", 64, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.conv2_4 = Conv2D("conv2_4", 32, filter_size=3, stride=1, padding=1, param_attr=self.param_attr) - self.predict_flow2 = Conv2D("predict_flow2", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - self.deconv2 = Conv2DTranspose("deconv2", 2, filter_size=4, stride=2, padding=1, param_attr=self.param_attr) - - self.dc_conv1 = Conv2D("dc_conv1", 128, filter_size=3, stride=1, padding=1, dilation=1, param_attr=self.param_attr) - self.dc_conv2 = Conv2D("dc_conv2", 128, filter_size=3, stride=1, padding=2, dilation=2, param_attr=self.param_attr) - self.dc_conv3 = Conv2D("dc_conv3", 128, filter_size=3, stride=1, padding=4, dilation=4, param_attr=self.param_attr) - self.dc_conv4 = Conv2D("dc_conv4", 96, filter_size=3, stride=1, padding=8, dilation=8, param_attr=self.param_attr) - self.dc_conv5 = Conv2D("dc_conv5", 64, filter_size=3, stride=1, padding=16, dilation=16, param_attr=self.param_attr) - self.dc_conv6 = Conv2D("dc_conv6", 32, filter_size=3, stride=1, padding=1, dilation=1, param_attr=self.param_attr) - self.dc_conv7 = Conv2D("dc_conv7", 2, filter_size=3,stride=1,padding=1, param_attr=self.param_attr) - - def warp(self, x, flo): - """ - warp an image/tensor (im2) back to im1, according to the optical flow - - x: [B, C, H, W] (im2) - flo: [B, 2, H, W] flow - - """ - - B, C, H, W = x.shape - # mesh grid - xx_pd = fluid.layers.range(0, W, 1, 'float32') - xx_pd = fluid.layers.reshape(xx_pd, shape=[1, -1]) - xx_pd = fluid.layers.expand(x=xx_pd, expand_times=[H, 1]) - xx_pd = fluid.layers.reshape(xx_pd, shape=[1, 1, H, W]) - xx_pd = fluid.layers.expand(x=xx_pd, expand_times=[B, 1, 1, 1]) - - yy_pd = fluid.layers.range(0, H, 1, 'float32') - yy_pd = fluid.layers.reshape(yy_pd, shape=[-1, 1]) - yy_pd = fluid.layers.expand(x=yy_pd, expand_times=[1, W]) - yy_pd = fluid.layers.reshape(x=yy_pd, shape=[1, 1, H, W]) - yy_pd = fluid.layers.expand(x=yy_pd, expand_times=[B, 1, 1, 1]) - grid_pd = fluid.layers.concat(input=[xx_pd, yy_pd], axis=1) - flo_pd = flo - vgrid_pd = fluid.layers.elementwise_add(grid_pd, flo_pd) - vgrid_pd_0 = 2.0 * fluid.layers.slice(vgrid_pd, axes=[1], starts=[0], ends=[1]) / max(W - 1, 1) - 1.0 - vgrid_pd_1 = 2.0 * fluid.layers.slice(vgrid_pd, axes=[1], starts=[1], ends=[2]) / max(H - 1, 1) - 1.0 - vgrid_pd = fluid.layers.concat(input=[vgrid_pd_0, vgrid_pd_1], axis=1) - vgrid_pd = fluid.layers.transpose(vgrid_pd, [0, 2, 3, 1]) - output = fluid.layers.grid_sampler(name='grid_sample', x=x, grid=vgrid_pd) - - mask = fluid.layers.zeros_like(x) - mask = mask + 1.0 - mask = fluid.layers.grid_sampler(name='grid_sample', x=mask, grid=vgrid_pd) - mask_temp1 = fluid.layers.cast(mask < 0.9990, 'float32') - mask = mask * (1 - mask_temp1) - mask = fluid.layers.cast(mask > 0, 'float32') - outwarp = fluid.layers.elementwise_mul(output, mask) - - return outwarp - - def corr(self, x_1, x_2): - out = correlation(x_1, x_2, pad_size=self.md, kernel_size=1, max_displacement=self.md, - stride1=1, stride2=1, corr_type_multiply=1) - return out - - def forward(self, x, output_more=False): - im1 = fluid.layers.slice(x, axes=[1], starts=[0], ends=[3]) - im2 = fluid.layers.slice(x, axes=[1], starts=[3], ends=[6]) - # print("\n\n***************************PWC Net details *************** \n\n") - c11 = fluid.layers.leaky_relu(self.conv1a(im1), 0.1) - c11 = fluid.layers.leaky_relu(self.conv1aa(c11), 0.1) - c11 = fluid.layers.leaky_relu(self.conv1b(c11), 0.1) - - c21 = fluid.layers.leaky_relu(self.conv1a(im2), 0.1) - c21 = fluid.layers.leaky_relu(self.conv1aa(c21), 0.1) - c21 = fluid.layers.leaky_relu(self.conv1b(c21), 0.1) - - c12 = fluid.layers.leaky_relu(self.conv2a(c11), 0.1) - c12 = fluid.layers.leaky_relu(self.conv2aa(c12), 0.1) - c12 = fluid.layers.leaky_relu(self.conv2b(c12), 0.1) - - c22 = fluid.layers.leaky_relu(self.conv2a(c21), 0.1) - c22 = fluid.layers.leaky_relu(self.conv2aa(c22), 0.1) - c22 = fluid.layers.leaky_relu(self.conv2b(c22), 0.1) - - c13 = fluid.layers.leaky_relu(self.conv3a(c12), 0.1) - c13 = fluid.layers.leaky_relu(self.conv3aa(c13), 0.1) - c13 = fluid.layers.leaky_relu(self.conv3b(c13), 0.1) - - c23 = fluid.layers.leaky_relu(self.conv3a(c22), 0.1) - c23 = fluid.layers.leaky_relu(self.conv3aa(c23), 0.1) - c23 = fluid.layers.leaky_relu(self.conv3b(c23), 0.1) - - c14 = fluid.layers.leaky_relu(self.conv4a(c13), 0.1) - c14 = fluid.layers.leaky_relu(self.conv4aa(c14), 0.1) - c14 = fluid.layers.leaky_relu(self.conv4b(c14), 0.1) - - c24 = fluid.layers.leaky_relu(self.conv4a(c23), 0.1) - c24 = fluid.layers.leaky_relu(self.conv4aa(c24), 0.1) - c24 = fluid.layers.leaky_relu(self.conv4b(c24), 0.1) - - c15 = fluid.layers.leaky_relu(self.conv5a(c14), 0.1) - c15 = fluid.layers.leaky_relu(self.conv5aa(c15), 0.1) - c15 = fluid.layers.leaky_relu(self.conv5b(c15), 0.1) - - c25 = fluid.layers.leaky_relu(self.conv5a(c24), 0.1) - c25 = fluid.layers.leaky_relu(self.conv5aa(c25), 0.1) - c25 = fluid.layers.leaky_relu(self.conv5b(c25), 0.1) - - c16 = fluid.layers.leaky_relu(self.conv6aa(c15), 0.1) - c16 = fluid.layers.leaky_relu(self.conv6a(c16), 0.1) - c16 = fluid.layers.leaky_relu(self.conv6b(c16), 0.1) - - c26 = fluid.layers.leaky_relu(self.conv6aa(c25), 0.1) - c26 = fluid.layers.leaky_relu(self.conv6a(c26), 0.1) - c26 = fluid.layers.leaky_relu(self.conv6b(c26), 0.1) - - corr6 = self.corr(c16, c26) - corr6 = fluid.layers.leaky_relu(corr6, alpha=0.1) - - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv6_0(corr6), 0.1), corr6], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv6_1(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv6_2(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv6_3(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv6_4(x), 0.1), x], axis=1) - - flow6 = self.predict_flow6(x) - up_flow6 = self.deconv6(flow6) - up_feat6 = self.upfeat6(x) - - warp5 = self.warp(c25, up_flow6 * 0.625) - corr5 = self.corr(c15, warp5) - corr5 = fluid.layers.leaky_relu(corr5, alpha=0.1) - - x = fluid.layers.concat(input=[corr5, c15, up_flow6, up_feat6], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv5_0(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv5_1(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv5_2(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv5_3(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv5_4(x), 0.1), x], axis=1) - - flow5 = self.predict_flow5(x) - up_flow5 = self.deconv5(flow5) - up_feat5 = self.upfeat5(x) - - warp4 = self.warp(c24, up_flow5 * 1.25) - corr4 = self.corr(c14, warp4) - corr4 = fluid.layers.leaky_relu(corr4, alpha=0.1) - - x = fluid.layers.concat(input=[corr4, c14, up_flow5, up_feat5], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv4_0(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv4_1(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv4_2(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv4_3(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv4_4(x), 0.1), x], axis=1) - - flow4 = self.predict_flow4(x) - up_flow4 = self.deconv4(flow4) - up_feat4 = self.upfeat4(x) - - warp3 = self.warp(c23, up_flow4 * 2.5) - corr3 = self.corr(c13, warp3) - corr3 = fluid.layers.leaky_relu(corr3, alpha=0.1) - - x = fluid.layers.concat(input=[corr3, c13, up_flow4, up_feat4], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv3_0(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv3_1(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv3_2(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv3_3(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv3_4(x), 0.1), x], axis=1) - - flow3 = self.predict_flow3(x) - up_flow3 = self.deconv3(flow3) - up_feat3 = self.upfeat3(x) - - warp2 = self.warp(c22, up_flow3 * 5.0) - corr2 = self.corr(c12, warp2) - corr2 = fluid.layers.leaky_relu(corr2, alpha=0.1) - - x = fluid.layers.concat(input=[corr2, c12, up_flow3, up_feat3], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv2_0(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv2_1(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv2_2(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv2_3(x), 0.1), x], axis=1) - x = fluid.layers.concat(input=[fluid.layers.leaky_relu(self.conv2_4(x), 0.1), x], axis=1) - - flow2 = self.predict_flow2(x) - - x = fluid.layers.leaky_relu(self.dc_conv4(fluid.layers.leaky_relu( - self.dc_conv3(fluid.layers.leaky_relu(self.dc_conv2(fluid.layers.leaky_relu(self.dc_conv1(x), 0.1)), 0.1)), - 0.1)), 0.1) - flow2 += self.dc_conv7( - fluid.layers.leaky_relu(self.dc_conv6(fluid.layers.leaky_relu(self.dc_conv5(x), 0.1)), 0.1)) - if not output_more: - return flow2 - else: - return [flow2, flow3, flow4, flow5, flow6] - diff --git a/PaddleCV/Research/PWCNet/my_args.py b/PaddleCV/Research/PWCNet/my_args.py deleted file mode 100644 index bb673efe10534ba319fa240c09f05d044be76d4b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/my_args.py +++ /dev/null @@ -1,17 +0,0 @@ -import argparse - -parser = argparse.ArgumentParser(description='PWCNet_paddle') -parser.add_argument('--dataset', default='FlyingChairs', help='dataset type : FlyingChairs') -parser.add_argument('--data_root', default='', help='the path of selected datasets') -parser.add_argument('--model_out_dir', default='./out', help='the path of selected datasets') -parser.add_argument('--loss', default='l2', help='loss type : first train with l2 and finetune with l1') -parser.add_argument('--train_val_txt', default='', help='the path of selected train_val_txt of dataset') -parser.add_argument('--numEpoch', '-e', type=int, default=100, help='Number of epochs to train') -parser.add_argument('--batch_size', '-b', type=int, default=40, help='batch size') -parser.add_argument('--pretrained', default=None, help='path to the pretrained model weights') -parser.add_argument('--optimize', default=None, help='path to the pretrained optimize weights') -parser.add_argument('--use_multi_gpu',action = 'store_true', help='Enable multi gpu mode') - -args = parser.parse_args() -args.inference_size = [384, 512] -args.crop_size = [384, 448] \ No newline at end of file diff --git a/PaddleCV/Research/PWCNet/paddle_model/pwc_net_chairs_paddle.pdparams b/PaddleCV/Research/PWCNet/paddle_model/pwc_net_chairs_paddle.pdparams deleted file mode 100755 index 1b8a626b6bd1c5d30e65154bc6bb54f336716b25..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/paddle_model/pwc_net_chairs_paddle.pdparams and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/paddle_model/pwc_net_paddle.pdparams b/PaddleCV/Research/PWCNet/paddle_model/pwc_net_paddle.pdparams deleted file mode 100755 index 6e947b41ca33f8871bb72d3ad1e8f0b709c8f354..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/paddle_model/pwc_net_paddle.pdparams and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/src/__init__.py b/PaddleCV/Research/PWCNet/src/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/PWCNet/src/flow_vis.py b/PaddleCV/Research/PWCNet/src/flow_vis.py deleted file mode 100644 index d2fe36828f829151ec307f1b4e1dc687b4ecc8b3..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/src/flow_vis.py +++ /dev/null @@ -1,163 +0,0 @@ -# MIT License -# -# Copyright (c) 2018 Tom Runia -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to conditions. -# -# Author: Tom Runia -# Date Created: 2018-08-03 - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import numpy as np - - -def make_colorwheel(): - ''' - Generates a color wheel for optical flow visualization as presented in: - Baker et al. "A Database and Evaluation Methodology for Optical Flow" (ICCV, 2007) - URL: http://vision.middlebury.edu/flow/flowEval-iccv07.pdf - - According to the C++ source code of Daniel Scharstein - According to the Matlab source code of Deqing Sun - ''' - - RY = 15 - YG = 6 - GC = 4 - CB = 11 - BM = 13 - MR = 6 - - ncols = RY + YG + GC + CB + BM + MR - colorwheel = np.zeros((ncols, 3)) - col = 0 - - # RY - colorwheel[0:RY, 0] = 255 - colorwheel[0:RY, 1] = np.floor(255*np.arange(0,RY)/RY) - col = col+RY - # YG - colorwheel[col:col+YG, 0] = 255 - np.floor(255*np.arange(0,YG)/YG) - colorwheel[col:col+YG, 1] = 255 - col = col+YG - # GC - colorwheel[col:col+GC, 1] = 255 - colorwheel[col:col+GC, 2] = np.floor(255*np.arange(0,GC)/GC) - col = col+GC - # CB - colorwheel[col:col+CB, 1] = 255 - np.floor(255*np.arange(CB)/CB) - colorwheel[col:col+CB, 2] = 255 - col = col+CB - # BM - colorwheel[col:col+BM, 2] = 255 - colorwheel[col:col+BM, 0] = np.floor(255*np.arange(0,BM)/BM) - col = col+BM - # MR - colorwheel[col:col+MR, 2] = 255 - np.floor(255*np.arange(MR)/MR) - colorwheel[col:col+MR, 0] = 255 - return colorwheel - - -def flow_compute_color(u, v, convert_to_bgr=False): - ''' - Applies the flow color wheel to (possibly clipped) flow components u and v. - - According to the C++ source code of Daniel Scharstein - According to the Matlab source code of Deqing Sun - - :param u: np.ndarray, input horizontal flow - :param v: np.ndarray, input vertical flow - :param convert_to_bgr: bool, whether to change ordering and output BGR instead of RGB - :return: - ''' - - flow_image = np.zeros((u.shape[0], u.shape[1], 3), np.uint8) - - colorwheel = make_colorwheel() # shape [55x3] - ncols = colorwheel.shape[0] - - rad = np.sqrt(np.square(u) + np.square(v)) - a = np.arctan2(-v, -u)/np.pi - - fk = (a+1) / 2*(ncols-1) - k0 = np.floor(fk).astype(np.int32) - k1 = k0 + 1 - k1[k1 == ncols] = 0 - f = fk - k0 - - for i in range(colorwheel.shape[1]): - - tmp = colorwheel[:,i] - col0 = tmp[k0] / 255.0 - col1 = tmp[k1] / 255.0 - col = (1-f)*col0 + f*col1 - - idx = (rad <= 1) - col[idx] = 1 - rad[idx] * (1-col[idx]) - col[~idx] = col[~idx] * 0.75 # out of range? - - # Note the 2-i => BGR instead of RGB - ch_idx = 2-i if convert_to_bgr else i - flow_image[:,:,ch_idx] = np.floor(255 * col) - - return flow_image - - -def flow_to_color(flow_uv, clip_flow=None, convert_to_bgr=False): - ''' - Expects a two dimensional flow image of shape [H,W,2] - - According to the C++ source code of Daniel Scharstein - According to the Matlab source code of Deqing Sun - - :param flow_uv: np.ndarray of shape [H,W,2] - :param clip_flow: float, maximum clipping value for flow - :return: - ''' - assert flow_uv.ndim == 3, 'input flow must have three dimensions' - assert flow_uv.shape[2] == 2, 'input flow must have shape [H,W,2]' - - if clip_flow is not None: - flow_uv = np.clip(flow_uv, 0, clip_flow) - - u = flow_uv[:,:,0] - v = flow_uv[:,:,1] - - rad = np.sqrt(np.square(u) + np.square(v)) - rad_max = np.max(rad) - - epsilon = 1e-5 - u = u / (rad_max + epsilon) - v = v / (rad_max + epsilon) - return flow_compute_color(u, v, convert_to_bgr) - - -def read_flow(filename): - """ - https://github.com/sampepose/flownet2-tf/blob/master/src/flowlib.py - read optical flow from Middlebury .flo file - :param filename: name of the flow file - :return: optical flow data in matrix - """ - f = open(filename, 'rb') - magic = np.fromfile(f, np.float32, count=1) - data2d = None - - if 202021.25 != magic: - print('Magic number incorrect. Invalid .flo file') - else: - w = np.fromfile(f, np.int32, count=1) - h = np.fromfile(f, np.int32, count=1) - print("Reading %d x %d flo file" % (h, w)) - data2d = np.fromfile(f, np.float32, count=2 * w[0] * h[0]) - # reshape data into 3D array (columns, rows, channels) - data2d = np.resize(data2d, (h[0], w[0], 2)) - f.close() - return data2d diff --git a/PaddleCV/Research/PWCNet/src/multiscaleloss.py b/PaddleCV/Research/PWCNet/src/multiscaleloss.py deleted file mode 100644 index a52a74acf278fde4a99335af21459050fd28a7ef..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/src/multiscaleloss.py +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid - - -def EPE(input_flow, target_flow, loss_type, sparse=False, mean=True): - if loss_type == 'l1': - EPE_map = fluid.layers.abs(input_flow - target_flow) - else: - EPE_map = fluid.layers.square(input_flow - target_flow) - if sparse: #TODO mask = (target_flow[:,0] == 0) & (target_flow[:,1] == 0) EPE_map = EPE_map[~mask] - mask_temp1 = fluid.layers.cast(target_flow[:, 0] == 0, 'float32') - mask_temp2 = fluid.layers.cast(target_flow[:, 1] == 0, 'float32') - mask = 1 - fluid.layers.elementwise_mul(mask_temp1, mask_temp2) - mask = fluid.layers.reshape(mask, [mask.shape[0], 1, mask.shape[1], mask.shape[2]]) - mask = fluid.layers.concat([mask, mask], 1) - EPE_map = EPE_map * mask - - if mean: - return fluid.layers.mean(EPE_map) - else: - batch_size = EPE_map.shape[0] - res_sum = fluid.layers.reduce_sum(EPE_map) - res = res_sum / batch_size - return res - - -def sparse_max_pool(input, size): - '''Downsample the input by considering 0 values as invalid. - - Unfortunately, no generic interpolation mode can resize a sparse map correctly, - the strategy here is to use max pooling for positive values and "min pooling" - for negative values, the two results are then summed. - This technique allows sparsity to be minized, contrary to nearest interpolation, - which could potentially lose information for isolated data points.''' - - positive = fluid.layers.cast(input > 0, 'float32') - negative = fluid.layers.cast(input < 0, 'float32') - output = fluid.layers.adaptive_pool2d(input * positive, size) - fluid.layers.adaptive_pool2d(-input * negative, - size) - return output - - -def multiscaleEPE(network_output, target_flow, loss_type, weights=None, sparse=False): - def one_scale(output, target, sparse, loss_type): - if sparse: - h = output.shape[2] - w = output.shape[3] - target_scaled = sparse_max_pool(target, [h, w]) - else: - target_scaled = fluid.layers.resize_bilinear(target, out_shape=[output.shape[2], - output.shape[3]], - align_corners=False, align_mode=False) - return EPE(output, target_scaled, loss_type=loss_type, sparse=sparse, mean=False) - - if type(network_output) not in [tuple, list]: - network_output = [network_output] - if weights is None: - weights = [0.005, 0.01, 0.02, 0.08, 0.32] # as in original article - assert(len(weights) == len(network_output)) - - loss = 0 - for output, weight in zip(network_output, weights): - loss += weight * one_scale(output, target_flow, sparse, loss_type) - return loss - - -def realEPE(output, target, sparse=False): - upsampled_output = fluid.layers.resize_bilinear(output, out_shape=[target.shape[2], - target.shape[3]], - align_corners=False, align_mode=False) - return EPE(upsampled_output, target, sparse, mean=True) - diff --git a/PaddleCV/Research/PWCNet/src/read_files.py b/PaddleCV/Research/PWCNet/src/read_files.py deleted file mode 100644 index 743a57ddc2552c668c5a76b3511659c861ab160f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/src/read_files.py +++ /dev/null @@ -1,22 +0,0 @@ -def read_txt(videoTxt): - with open(videoTxt, 'r') as f: - videolist = f.readlines() - return videolist - - -def read_txt_to_index(file): - data = read_txt(file) - data = list(map(int, data)) - return data - - -def main(): - file = 'data_dir/FlyingChairs_release/FlyingChairs_train_val.txt' - data = read_txt_to_index(file) - data = list(map(int, data)) - print(data) - print(len(data)) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/Research/PWCNet/tmp/hsv_pd.png b/PaddleCV/Research/PWCNet/tmp/hsv_pd.png deleted file mode 100755 index 0ebc10300e6d3e93260ddbec59bc9d002958c01a..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/tmp/hsv_pd.png and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/tmp/hsv_pd_chairs.png b/PaddleCV/Research/PWCNet/tmp/hsv_pd_chairs.png deleted file mode 100755 index cc3249bf0ca991502f715f26e29a723b9319b8ce..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/PWCNet/tmp/hsv_pd_chairs.png and /dev/null differ diff --git a/PaddleCV/Research/PWCNet/train.py b/PaddleCV/Research/PWCNet/train.py deleted file mode 100644 index 7dc3b05edf1ccd2b59594e5c4a157e90b9390735..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/train.py +++ /dev/null @@ -1,275 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Trainer for PWCNet.""" -import sys -import os -os.environ['FLAGS_fraction_of_gpu_memory_to_use'] = "0.99999" -os.environ["FLAGS_eager_delete_tensor_gb"] = "0" -import pickle -import time -import cv2 -import numpy as np -import paddle -import paddle.fluid as fluid -from scipy.misc import imsave -from src import flow_vis -from models.model import PWCDCNet -from data.datasets import FlyingChairs, reader_flyingchairs -from src.multiscaleloss import multiscaleEPE, realEPE -from AverageMeter import * -from my_args import args - - -def writeFlowFile(filename, uv): - """ - According to the matlab code of Deqing Sun and c++ source code of Daniel Scharstein - Contact: dqsun@cs.brown.edu - Contact: schar@middlebury.edu - """ - TAG_STRING = np.array(202021.25, dtype=np.float32) - if uv.shape[2] != 2: - sys.exit("writeFlowFile: flow must have two bands!"); - H = np.array(uv.shape[0], dtype=np.int32) - W = np.array(uv.shape[1], dtype=np.int32) - with open(filename, 'wb') as f: - f.write(TAG_STRING.tobytes()) - f.write(W.tobytes()) - f.write(H.tobytes()) - f.write(uv.tobytes()) - - -def load_dict(filename_): - with open(filename_, 'rb') as f: - ret_di = pickle.load(f) - return ret_di - - -def pad_input(x0): - intWidth = x0.shape[2] - intHeight = x0.shape[3] - if intWidth != ((intWidth >> 6) << 6): - intWidth_pad = (((intWidth >> 6) + 1) << 6) # more than necessary - intPaddingLeft = int((intWidth_pad - intWidth) / 2) - intPaddingRight = intWidth_pad - intWidth - intPaddingLeft - else: - intWidth_pad = intWidth - intPaddingLeft = 0 - intPaddingRight = 0 - - if intHeight != ((intHeight >> 6) << 6): - intHeight_pad = (((intHeight >> 6) + 1) << 6) # more than necessary - intPaddingTop = int((intHeight_pad - intHeight) / 2) - intPaddingBottom = intHeight_pad - intHeight - intPaddingTop - else: - intHeight_pad = intHeight - intPaddingTop = 0 - intPaddingBottom = 0 - - out = fluid.layers.pad2d(input=x0, - paddings=[intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom], - mode='edge') - - return out, [intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom, intWidth, intHeight] - - -def val(model, batch_reader, epoch, batch_num): - model.eval() - loss_cnt = AverageMeter() - for batch_id, data in enumerate(batch_reader()): - start = time.time() - im1_data = np.array( - [x[0] for x in data]).astype('float32') - im2_data = np.array( - [x[1] for x in data]).astype('float32') - flo_data = np.array( - [x[2] for x in data]).astype('float32') - step = im1_data.shape[0] - - im_all = np.concatenate((im1_data, im2_data), axis=3).astype(np.float32) - im_all = im_all / 255.0 - im_all = np.swapaxes(np.swapaxes(im_all, 1, 2), 1, 3) - label = flo_data / 20.0 - label = np.swapaxes(np.swapaxes(label, 1, 2), 1, 3) - - im_all = fluid.dygraph.to_variable(im_all) - label = fluid.dygraph.to_variable(label) - # im_all, [intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom, intWidth, intHeight] = pad_input( - # im_all) - - end = time.time() - read_data_time = end - start - start = time.time() - network_output = model(im_all, output_more=False) - loss = realEPE(network_output, label) - end = time.time() - loss_cnt.update(loss.numpy()[0], step) - print('val epoch {} batch {}/{} run time: {}s read data time {}s loss {}'.format(epoch, batch_id, batch_num, - round(end - start, 2), - round(read_data_time, 2), - loss.numpy())) - return round(loss_cnt.avg, 4) - - -def train(model, train_batch_reader, adam, epoch, batch_num, args): - loss_type = args.loss - model.train() - for batch_id, data in enumerate(train_batch_reader()): - start = time.time() - im1_data = np.array( - [x[0] for x in data]).astype('float32') - im2_data = np.array( - [x[1] for x in data]).astype('float32') - flo_data = np.array( - [x[2] for x in data]).astype('float32') - im_all = np.concatenate((im1_data, im2_data), axis=3).astype(np.float32) - im_all = im_all / 255.0 - im_all = np.swapaxes(np.swapaxes(im_all, 1, 2), 1, 3) - label = flo_data / 20.0 - label = np.swapaxes(np.swapaxes(label, 1, 2), 1, 3) - if batch_id % 10 == 0: - im1 = im_all[0, :3, :, :] * 255 - im2 = im_all[0, 3:, :, :] * 255 - im1 = np.swapaxes(np.swapaxes(im1, 0, 1), 1, 2).astype(np.uint8) - im2 = np.swapaxes(np.swapaxes(im2, 0, 1), 1, 2).astype(np.uint8) - - flo = label[0, :, :, :] * 20 - flo = np.swapaxes(np.swapaxes(flo, 0, 1), 1, 2) - imsave('./img1.png', im1) - imsave('./img2.png', im2) - flow_color = flow_vis.flow_to_color(flo, convert_to_bgr=False) - imsave('./hsv_pd.png', flow_color) - H = im_all[0].shape[1] - W = im_all[0].shape[2] - - im_all = fluid.dygraph.to_variable(im_all) - label = fluid.dygraph.to_variable(label) - im_all, [intPaddingLeft, intPaddingRight, intPaddingTop, intPaddingBottom, intWidth, intHeight] = pad_input( - im_all) - - label, _ = pad_input(label) - end = time.time() - read_data_time = end - start - start = time.time() - network_output = model(im_all, output_more=True) - if batch_id % 10 == 0: - flo = network_output[0][0].numpy() * 20.0 - # scale the flow back to the input size - flo = np.swapaxes(np.swapaxes(flo, 0, 1), 1, 2) - flo = flo[intPaddingTop * 2:intPaddingTop * 2 + intHeight * 2, - intPaddingLeft * 2: intPaddingLeft * 2 + intWidth * 2, :] - - u_ = cv2.resize(flo[:, :, 0], (W, H)) - v_ = cv2.resize(flo[:, :, 1], (W, H)) - flo = np.dstack((u_, v_)) - flow_color = flow_vis.flow_to_color(flo, convert_to_bgr=False) - imsave('./hsv_predict.png', flow_color) - loss = multiscaleEPE(network_output, label, loss_type, weights=None, sparse=False) - - end = time.time() - loss.backward() - if args.use_multi_gpu: - model.apply_collective_grads() - adam.minimize(loss) - model.clear_gradients() - print('epoch {} batch {}/{} run time: {}s read data time {}s loss {}'.format(epoch, batch_id, batch_num, - round(end - start, 2), - round(read_data_time, 2), - loss.numpy())) - - -def main(): - print(args) - if args.use_multi_gpu: - place = fluid.CUDAPlace(fluid.dygraph.parallel.Env().dev_id) - else: - place = fluid.CUDAPlace(0) - - with fluid.dygraph.guard(place=place): - if args.use_multi_gpu: - strategy = fluid.dygraph.parallel.prepare_context() - model = PWCDCNet("pwcnet") - if args.pretrained: - print('-----------load pretrained model:', args.pretrained) - pd_pretrain, _ = fluid.dygraph.load_dygraph(args.pretrained) - model.set_dict(pd_pretrain) - - adam = fluid.optimizer.AdamOptimizer(learning_rate=0.0001, regularization=fluid.regularizer.L2DecayRegularizer( - regularization_coeff=0.0004)) - if args.optimize: - print('--------------load pretrained model:', args.optimize) - adam_pretrain, _ = fluid.dygraph.load_dygraph(args.optimize) - adam.set_dict(adam_pretrain) - if args.use_multi_gpu: - model = fluid.dygraph.parallel.DataParallel(model, strategy) - - if args.dataset == 'FlyingChairs': - train_flyingchairs_dataset = FlyingChairs('train', args, is_cropped=True, txt_file=args.train_val_txt, - root=args.data_root) - val_flyingchairs_dataset = FlyingChairs('val', args, is_cropped=False, txt_file=args.train_val_txt, - root=args.data_root) - else: - raise ValueError('dataset name is wrong, please fix it by using args.dataset') - - train_sample_num = len(train_flyingchairs_dataset) - val_sample_num = len(val_flyingchairs_dataset) - print('train sample num: ', train_sample_num) - print('val sample num: ', val_sample_num) - train_reader = reader_flyingchairs(train_flyingchairs_dataset) - val_reader = reader_flyingchairs(val_flyingchairs_dataset) - if args.use_multi_gpu: - train_reader = fluid.contrib.reader.distributed_batch_reader( - train_reader) - val_reader = fluid.contrib.reader.distributed_batch_reader( - val_reader) - BATCH_SIZE = args.batch_size - train_batch_num = round(train_sample_num / BATCH_SIZE) - val_batch_num = round(val_sample_num / BATCH_SIZE) - train_batch_reader = paddle.batch(paddle.reader.shuffle(train_reader, buf_size=BATCH_SIZE * 100), BATCH_SIZE, - drop_last=True) - val_batch_reader = paddle.batch(val_reader, BATCH_SIZE, drop_last=False) - epoch_num = args.numEpoch - val_value = 100000000 - rm_best_model = "" - - for epoch in range(epoch_num): - train(model, train_batch_reader, adam, epoch, train_batch_num, args) - pd_save_dir = args.model_out_dir - if not os.path.exists(pd_save_dir): - os.makedirs(pd_save_dir) - pd_model_save = os.path.join(pd_save_dir, 'epoch_' + str(epoch) + "_pwc_net_paddle") - rm_dir = os.path.join(pd_save_dir, 'epoch_' + str(epoch - 1) + "_pwc_net_paddle.pdparams") - if os.path.exists(rm_dir): - os.remove(rm_dir) - if args.use_multi_gpu: - if fluid.dygraph.parallel.Env().local_rank == 0: - fluid.dygraph.save_dygraph(model.state_dict(), pd_model_save) - fluid.dygraph.save_dygraph(adam.state_dict(), os.path.join(pd_save_dir, 'adam')) - else: - fluid.dygraph.save_dygraph(model.state_dict(), pd_model_save) - fluid.dygraph.save_dygraph(adam.state_dict(), os.path.join(pd_save_dir, 'adam')) - val_loss_value = val(model, val_batch_reader, epoch, val_batch_num) - if val_loss_value < val_value: - best_model = os.path.join(pd_save_dir, "pwc_net_paddle_" + str(val_loss_value) + '.pdparams') - os.link(pd_model_save + '.pdparams', best_model) - if os.path.exists(rm_best_model): - os.remove(rm_best_model) - rm_best_model = best_model - val_value = val_loss_value - - -if __name__ == '__main__': - main() - - - diff --git a/PaddleCV/Research/PWCNet/train.sh b/PaddleCV/Research/PWCNet/train.sh deleted file mode 100755 index 7c2b7226bef96ebdbbe6c768255a8419e0d32de0..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/PWCNet/train.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -python3 train.py --dataset FlyingChairs --train_val_txt data_dir/FlyingChairs_release/FlyingChairs_train_val.txt --data_root data_dir/FlyingChairs_release/data -# use multi gpus NEED TO DO LATER -#python3 -m paddle.distributed.launch --selected_gpus=0,1 --log_dir ./mylog train.py --use_multi_gpu --batch_size 20 --dataset FlyingChairs --train_val_txt data_dir/FlyingChairs_release/FlyingChairs_train_val.txt --data_root data_dir/FlyingChairs_release/data diff --git a/PaddleCV/Research/SemSegPaddle/README.md b/PaddleCV/Research/SemSegPaddle/README.md deleted file mode 100644 index f4fd9a731b947c95accbaff6686e8d272debf076..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/README.md +++ /dev/null @@ -1,139 +0,0 @@ -# SemSegPaddle: A Paddle-based Framework for Deep Learning in Semantic Segmentation - -This is a Paddle implementation of semantic segmentation models on multiple datasets, including Cityscapes, Pascal Context, and ADE20K. - -## Updates - -- [**2020/01/08**] We release ***PSPNet-ResNet101*** and ***GloRe-ResNet101*** models on Pascal Context and Cityscapes datasets. - -## Highlights - -Synchronized Batch Normlization is important for segmenation. - - The implementation is easy to use as it is pure-python, no any C++ extra extension libs. - - - Paddle provides sync_batch_norm. - - -## Support models - -We split our models into backbone and decoder network, where backbone network are transfered from classification networks. - -Backbone: - - ResNet - - ResNeXt - - HRNet - - EfficientNet - -Decoder: - - PSPNet: [Pyramid Scene Parsing Network](http://openaccess.thecvf.com/content_cvpr_2017/papers/Zhao_Pyramid_Scene_Parsing_CVPR_2017_paper.pdf) - - DeepLabv3: [Rethinking Atrous Convolution for Semantic Image Segmentation](https://arxiv.org/abs/1706.05587) - - GloRe: [Graph-Based Global Reasoning Networks](http://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Graph-Based_Global_Reasoning_Networks_CVPR_2019_paper.pdf) - - GINet: [GINet: Graph Interaction Netowrk for Scene Parsing]() - - - -## Peformance - - - Performance of Cityscapes validation set. - -**Method** | **Backbone** | **lr** | **BatchSize** | **epoch** | **mean IoU (Single-scale)** | **Trained weights** | -------------|:------------:|:----------:|:--------------:|:------------:|:---------------------------:|------------------------| -PSPNet | resnet101 | 0.01 | 8 | 80 | 78.1 | [pspnet_resnet_cityscapes_epoch_80.pdparams](https://pan.baidu.com/s/1adfvtq2JnLKRv_j7lOmW1A)| -GloRe | resnet101 | 0.01 | 8 | 80 | 78.4 | [pspnet_resnet_pascalcontext_epoch_80.pdparams](https://pan.baidu.com/s/1r4SbrYKbVk38c0dXZLAi9w) | - - - - Performance of Pascal-context validation set. - -**Method** | **Backbone** | **lr** | **BatchSize** | **epoch** | **mean IoU (Single-scale)** | **Trained weights** | -------------|:------------:|:----------:|:--------------:|:------------:|:---------------------------:|:----------------------:| -PSPNet | resnet101 | 0.005 | 16 | 80 | 48.9 | [glore_resnet_cityscapes_epoch_80.pdparams](https://pan.baidu.com/s/1l7-sqt2DsUunD9l4YivgQw) | -GloRe | resnet101 | 0.005 | 16 | 80 | 48.4 | [glore_resnet_pascalcontext_epoch_80.pdparams](https://pan.baidu.com/s/1rVuk7OfSj-AXR3ZCFGNmKg) | - - -## Environment - -This repo is developed under the following configurations: - - - Hardware: 4 GPUs for training, 1 GPU for testing - - Software: Centos 6.10, ***CUDA>=9.2 Python>=3.6, Paddle>=1.6*** - - -## Quick start: training and testing models - -### 1. Preparing data - -Download the [Cityscapes](https://www.cityscapes-dataset.com/) dataset. It should have this basic structure: - - cityscapes/ - ├── cityscapes_list - │ ├── test.lst - │ ├── train.lst - │ ├── train+.lst - │ ├── train++.lst - │ ├── trainval.lst - │ └── val.lst - ├── gtFine - │ ├── test - │ ├── train - │ └── val - ├── leftImg8bit - │ ├── test - │ ├── train - │ └── val - ├── license.txt - └── README - - Download Pascal-Context dataset. It should have this basic structure: - - pascalContext/ - ├── GroundTruth_trainval_mat - ├── GroundTruth_trainval_png - ├── JPEGImages - ├── pascal_context_train.txt - ├── pascal_context_val.txt - ├── README.md - └── VOCdevkit - - Then, create symlinks for the Cityscapes and Pascal-Context datasets - ``` - cd SemSegPaddle/data - ln -s $cityscapes ./ - ln -s $pascalContext ./ - ``` - -### 2. Download pretrained weights - Downlaod pretrained [resnet-101](https://pan.baidu.com/s/1niXBDZnLlUIulB7FY068DQ) weights file, and put it into the directory: ***./pretrained_model*** - - Then, run the following command: -``` - tar -zxvf ./repretrained/resnet101_v2.tgz -C pretrained_model -``` - -### 3. Training - -select confiure file for training according to the DECODER\_NAME, BACKBONE\_NAME and DATASET\_NAME. -``` -CUDA_VISIBLE_DEVICES=0,1,2,3 python -m paddle.distributed.launch train.py --use_gpu --use_mpio \ - --cfg ./configs/pspnet_res101_cityscapes.yaml -``` - -### 4. Testing -select confiure file for testing according to the DECODER\_NAME, BACKBONE\_NAME and DATASET\_NAME. - -Single-scale testing: -``` -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --use_mpio \ - --cfg ./configs/pspnet_res101_cityscapes.yaml -``` - -Multi-scale testing: -``` -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --use_mpio \ - --multi_scales \ - --cfg ./configs/pspnet_res101_cityscapes.yaml -``` - -## Contact -If you have any questions regarding the repo, please create an issue. diff --git a/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_cityscapes.yaml b/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_cityscapes.yaml deleted file mode 100644 index 093758b507bf5a8bc963ca20d3e4fff56adf7fdd..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_cityscapes.yaml +++ /dev/null @@ -1,46 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.75 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 1024 - CROP_SIZE: 769 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 2 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "cityscapes" - DATA_DIR: "./data/cityscapes/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 19 - TEST_FILE_LIST: "./data/cityscapes/cityscapes_list/test.lst" - TRAIN_FILE_LIST: "./data/cityscapes/cityscapes_list/train.lst" - VAL_FILE_LIST: "./data/cityscapes/cityscapes_list/val.lst" - IGNORE_INDEX: 255 - DATA_DIM: 3 -MODEL: - MODEL_NAME: "deeplabv3" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0,0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - DEEPLABv3: - DEPTH_MULTIPLIER: 1 - ASPP_WITH_SEP_CONV: True - AuxHead: True -TRAIN: - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - MODEL_SAVE_DIR: "./snapshots/deeplabv3_resnet_cityscapes/" - SNAPSHOT_EPOCH: 1 -TEST: - TEST_MODEL: "./snapshots/deeplabv3_resnet_cityscapes" - BASE_SIZE: 2048 - CROP_SIZE: 769 - SLIDE_WINDOW: True -SOLVER: - LR: 0.01 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" - diff --git a/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_pascalcontext.yaml b/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_pascalcontext.yaml deleted file mode 100644 index fa41bfb02844293390df3ce6c2e271cb5a2e80ee..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/deeplabv3_res101_pascalcontext.yaml +++ /dev/null @@ -1,47 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 520 - CROP_SIZE: 520 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 4 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "pascalContext" - DATA_DIR: "./data/pascalContext/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 59 - TEST_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - TRAIN_FILE_LIST: "./data/pascalContext/pascal_context_train.txt" - VAL_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - IGNORE_INDEX: -1 - DATA_DIM: 3 - SEPARATOR: ' ' -MODEL: - MODEL_NAME: "deeplabv3" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0,0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - DEEPLABv3: - DEPTH_MULTIPLIER: 1 - ASPP_WITH_SEP_CONV: True - AuxHead: True -TRAIN: - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - MODEL_SAVE_DIR: "./snapshots/deeplabv3_resnet_pascalcontext/" - SNAPSHOT_EPOCH: 1 -TEST: - TEST_MODEL: "./snapshots/deeplabv3_resnet_pascalcontext" - BASE_SIZE: 520 - CROP_SIZE: 520 - SLIDE_WINDOW: True -SOLVER: - LR: 0.005 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" - diff --git a/PaddleCV/Research/SemSegPaddle/configs/glore_res101_cityscapes.yaml b/PaddleCV/Research/SemSegPaddle/configs/glore_res101_cityscapes.yaml deleted file mode 100644 index fa26415584f1f6391b2562981bbfdbaa06d02354..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/glore_res101_cityscapes.yaml +++ /dev/null @@ -1,45 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 1024 - CROP_SIZE: 769 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 2 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "cityscapes" - DATA_DIR: "./data/cityscapes/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 19 - TEST_FILE_LIST: "./data/cityscapes/cityscapes_list/test.lst" - TRAIN_FILE_LIST: "./data/cityscapes/cityscapes_list/train.lst" - VAL_FILE_LIST: "./data/cityscapes/cityscapes_list/val.lst" - IGNORE_INDEX: 255 - DATA_DIM: 3 -MODEL: - MODEL_NAME: "glore" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0, 0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - GLORE: - DEPTH_MULTIPLIER: 1 - AuxHead: True -TRAIN: - MODEL_SAVE_DIR: "snapshots/glore_res101_cityscapes/" - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - SNAPSHOT_EPOCH: 1 -TEST: - TEST_MODEL: "snapshots/glore_res101_cityscapes" - BASE_SIZE: 2048 - CROP_SIZE: 769 - SLIDE_WINDOW: True -SOLVER: - LR: 0.01 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" - diff --git a/PaddleCV/Research/SemSegPaddle/configs/glore_res101_pascalcontext.yaml b/PaddleCV/Research/SemSegPaddle/configs/glore_res101_pascalcontext.yaml deleted file mode 100644 index 9dd26b95aba4d14a33af2751182c9c2ff485416a..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/glore_res101_pascalcontext.yaml +++ /dev/null @@ -1,45 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 520 - CROP_SIZE: 520 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 4 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "pascalContext" - DATA_DIR: "./data/pascalContext/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 59 - TEST_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - TRAIN_FILE_LIST: "./data/pascalContext/pascal_context_train.txt" - VAL_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - IGNORE_INDEX: -1 - DATA_DIM: 3 - SEPARATOR: ' ' -MODEL: - MODEL_NAME: "glore" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0,0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - GLORE: - DEPTH_MULTIPLIER: 1 - AuxHead: True -TEST: - TEST_MODEL: "snapshots/glore_res101_pascalContext" - BASE_SIZE: 520 - CROP_SIZE: 520 - SLIDE_WINDOW: True -TRAIN: - MODEL_SAVE_DIR: "snapshots/glore_res101_pascalContext/" - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - SNAPSHOT_EPOCH: 1 -SOLVER: - LR: 0.005 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" diff --git a/PaddleCV/Research/SemSegPaddle/configs/pspnet_hrnet_cityscapes.yaml b/PaddleCV/Research/SemSegPaddle/configs/pspnet_hrnet_cityscapes.yaml deleted file mode 100644 index 8aa5a38c869811fac76cc3e0e994d3140ea0b012..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/pspnet_hrnet_cityscapes.yaml +++ /dev/null @@ -1,43 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.75 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 2048 - CROP_SIZE: 769 - SLIDE_WINDOW: True -TRAIN_BATCH_SIZE_PER_GPU: 2 -EVAL_BATCH_SIZE: 1 -NUM_TRAINERS: 4 -DATASET: - DATASET_NAME: "cityscapes" - DATA_DIR: "./data/cityscapes/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 19 - TEST_FILE_LIST: "./data/cityscapes/cityscapes_list/test.lst" - TRAIN_FILE_LIST: "./data/cityscapes/cityscapes_list/train.lst" - VAL_FILE_LIST: "./data/cityscapes/cityscapes_list/val.lst" - IGNORE_INDEX: 255 - DATA_DIM: 3 -MODEL: - MODEL_NAME: "pspnet" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0,] - BACKBONE: "hrnet" - PSPNET: - DEPTH_MULTIPLIER: 1 - AuxHead: False -TRAIN: - MODEL_SAVE_DIR: "snapshots/pspnet_hrnet_cityscapes/" - PRETRAINED_MODEL_DIR: "./pretrained_model/HRNet_W40_C_pretrained/" - SNAPSHOT_EPOCH: 1 -TEST: - TEST_MODEL: "snapshots/pspnet_hrnet_cityscapes" - BASE_SIZE: 2048 - CROP_SIZE: 769 - SLIDE_WINDOW: True -SOLVER: - LR: 0.001 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 240 - LOSS: "['softmax_loss']" - diff --git a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_ade.yaml b/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_ade.yaml deleted file mode 100644 index 02423c5bbd99b5bc5188b9299088fb5b05a7294f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_ade.yaml +++ /dev/null @@ -1,44 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 520 - CROP_SIZE: 520 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 2 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "ade" - DATA_DIR: "./data/ade/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 150 - TEST_FILE_LIST: "./data/ade/ade_val.lst" - TRAIN_FILE_LIST: "./data/ade/ade_train.lst" - VAL_FILE_LIST: "./data/ade/ade_val.lst" - IGNORE_INDEX: -1 - DATA_DIM: 3 -MODEL: - MODEL_NAME: "pspnet" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0, 0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - PSPNET: - DEPTH_MULTIPLIER: 1 - AuxHead: True -TEST: - TEST_MODEL: "snapshots/pspnet_res101_ade/" - BASE_SIZE: 520 - CROP_SIZE: 520 - SLIDE_WINDOW: True -TRAIN: - MODEL_SAVE_DIR: "snapshots/pspnet_res101_ade/" - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - SNAPSHOT_EPOCH: 10 -SOLVER: - LR: 0.01 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 120 - LOSS: "['softmax_loss']" diff --git a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_cityscapes.yaml b/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_cityscapes.yaml deleted file mode 100644 index a759677e92398993a8f052de6f20bd5fc65e8984..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_cityscapes.yaml +++ /dev/null @@ -1,45 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 1024 - CROP_SIZE: 769 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 2 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "cityscapes" - DATA_DIR: "./data/cityscapes/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 19 - TEST_FILE_LIST: "./data/cityscapes/cityscapes_list/test.lst" - TRAIN_FILE_LIST: "./data/cityscapes/cityscapes_list/train.lst" - VAL_FILE_LIST: "./data/cityscapes/cityscapes_list/val.lst" - IGNORE_INDEX: 255 - DATA_DIM: 3 -MODEL: - MODEL_NAME: "pspnet" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0, 0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - PSPNET: - DEPTH_MULTIPLIER: 1 - AuxHead: True -TRAIN: - MODEL_SAVE_DIR: "snapshots/pspnet_res101_cityscapes/" - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - SNAPSHOT_EPOCH: 1 -TEST: - TEST_MODEL: "snapshots/pspnet_res101_cityscapes" - BASE_SIZE: 2048 - CROP_SIZE: 769 - SLIDE_WINDOW: True -SOLVER: - LR: 0.01 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" - diff --git a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_pascalcontext.yaml b/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_pascalcontext.yaml deleted file mode 100644 index 111a6768b78ef0459a5e15b9c40526f9499915f9..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/configs/pspnet_res101_pascalcontext.yaml +++ /dev/null @@ -1,45 +0,0 @@ -DATAAUG: - RAND_SCALE_MIN: 0.5 - RAND_SCALE_MAX: 2.0 - BASE_SIZE: 520 - CROP_SIZE: 520 - EXTRA: True -TRAIN_BATCH_SIZE_PER_GPU: 4 -NUM_TRAINERS: 4 -EVAL_BATCH_SIZE: 1 -DATASET: - DATASET_NAME: "pascalContext" - DATA_DIR: "./data/pascalContext/" - IMAGE_TYPE: "rgb" # choice rgb or rgba - NUM_CLASSES: 59 - TEST_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - TRAIN_FILE_LIST: "./data/pascalContext/pascal_context_train.txt" - VAL_FILE_LIST: "./data/pascalContext/pascal_context_val.txt" - IGNORE_INDEX: -1 - DATA_DIM: 3 - SEPARATOR: ' ' -MODEL: - MODEL_NAME: "pspnet" - DEFAULT_NORM_TYPE: "bn" - MULTI_LOSS_WEIGHT: [1.0,0.4] - BACKBONE: "resnet" - BACKBONE_LAYERS: 101 - BACKBONE_MULTI_GRID: True - PSPNET: - DEPTH_MULTIPLIER: 1 - AuxHead: True -TEST: - TEST_MODEL: "snapshots/pspnet_res101_pascalContext" - BASE_SIZE: 520 - CROP_SIZE: 520 - SLIDE_WINDOW: True -TRAIN: - MODEL_SAVE_DIR: "snapshots/pspnet_res101_pascalContext/" - PRETRAINED_MODEL_DIR: "./pretrained_model/resnet101_v2/" - SNAPSHOT_EPOCH: 1 -SOLVER: - LR: 0.005 - LR_POLICY: "poly" - OPTIMIZER: "sgd" - NUM_EPOCHS: 80 - LOSS: "['softmax_loss']" diff --git a/PaddleCV/Research/SemSegPaddle/data/note.txt b/PaddleCV/Research/SemSegPaddle/data/note.txt deleted file mode 100644 index 08a033d979d1aee4253a7b48b6aff911616f38f4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/data/note.txt +++ /dev/null @@ -1 +0,0 @@ -please create symlinks for datasets diff --git a/PaddleCV/Research/SemSegPaddle/eval.py b/PaddleCV/Research/SemSegPaddle/eval.py deleted file mode 100644 index 4195be40e939ecf4bc67adf2c393fde86a01f15c..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/eval.py +++ /dev/null @@ -1,311 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -# GPU memory garbage collection optimization flags -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" -import sys -import time -import argparse -import functools -import pprint -import cv2 -import numpy as np -import paddle -import paddle.fluid as fluid -import math - -from src.utils.config import cfg -from src.utils.timer import Timer, calculate_eta -from src.models.model_builder import build_model -from src.models.model_builder import ModelPhase -from src.datasets import build_dataset -from src.utils.metrics import ConfusionMatrix - - -def parse_args(): - parser = argparse.ArgumentParser(description='SemsegPaddle') - parser.add_argument( - '--cfg', - dest='cfg_file', - help='Config file for training (and optionally testing)', - default=None, - type=str) - parser.add_argument( - '--use_gpu', - dest='use_gpu', - help='Use gpu or cpu', - action='store_true', - default=False) - parser.add_argument( - '--use_mpio', - dest='use_mpio', - help='Use multiprocess IO or not', - action='store_true', - default=False) - parser.add_argument( - 'opts', - help='See utils/config.py for all options', - default=None, - nargs=argparse.REMAINDER) - parser.add_argument( - '--multi_scales', - dest='multi_scales', - help='Use multi_scales for eval', - action='store_true', - default=False) - parser.add_argument( - '--flip', - dest='flip', - help='flip the image or not', - action='store_true', - default=False) - if len(sys.argv) == 1: - parser.print_help() - sys.exit(1) - return parser.parse_args() - - -def evaluate(cfg, ckpt_dir=None, use_gpu=False, use_mpio=False, multi_scales=False, flip=False, **kwargs): - np.set_printoptions(precision=5, suppress=True) - - num_classes = cfg.DATASET.NUM_CLASSES - base_size = cfg.TEST.BASE_SIZE - crop_size = cfg.TEST.CROP_SIZE - startup_prog = fluid.Program() - test_prog = fluid.Program() - dataset = build_dataset(cfg.DATASET.DATASET_NAME, - file_list=cfg.DATASET.VAL_FILE_LIST, - mode=ModelPhase.EVAL, - data_dir=cfg.DATASET.DATA_DIR) - - def data_generator(): - #TODO: check is batch reader compatitable with Windows - if use_mpio: - data_gen = dataset.multiprocess_generator( - num_processes=cfg.DATALOADER.NUM_WORKERS, - max_queue_size=cfg.DATALOADER.BUF_SIZE) - else: - data_gen = dataset.generator() - - for b in data_gen: - yield b[0], b[1], b[2] - - py_reader, avg_loss, out, grts, masks = build_model( - test_prog, startup_prog, phase=ModelPhase.EVAL) - - py_reader.decorate_sample_generator( - data_generator, drop_last=False, batch_size=cfg.EVAL_BATCH_SIZE, places=fluid.cuda_places()) - - # Get device environment - places = fluid.cuda_places() if use_gpu else fluid.cpu_places() - place = places[0] - dev_count = len(places) - print("#Device count: {}".format(dev_count)) - - exe = fluid.Executor(place) - exe.run(startup_prog) - - test_prog = test_prog.clone(for_test=True) - - ckpt_dir = cfg.TEST.TEST_MODEL if not ckpt_dir else ckpt_dir - - if ckpt_dir is not None: - filename= '{}_{}_{}_epoch_{}.pdparams'.format(str(cfg.MODEL.MODEL_NAME), - str(cfg.MODEL.BACKBONE), str(cfg.DATASET.DATASET_NAME), cfg.SOLVER.NUM_EPOCHS) - print("loading testing model file: {}/{}".format(ckpt_dir, filename)) - fluid.io.load_params(exe, ckpt_dir, main_program=test_prog, filename=filename) - - # Use streaming confusion matrix to calculate mean_iou - np.set_printoptions( - precision=4, suppress=True, linewidth=160, floatmode="fixed") - conf_mat = ConfusionMatrix(cfg.DATASET.NUM_CLASSES, streaming=True) - - #fetch_list: return of the model - fetch_list = [avg_loss.name, out.name] - num_images = 0 - step = 0 - all_step = cfg.DATASET.VAL_TOTAL_IMAGES // cfg.EVAL_BATCH_SIZE - timer = Timer() - timer.start() - for data in py_reader(): - mask = np.array(data[0]['mask']) - label = np.array(data[0]['label']) - image_org = np.array(data[0]['image']) - image = np.transpose(image_org, (0, 2, 3, 1)) # BCHW->BHWC - image = np.squeeze(image) - - if cfg.TEST.SLIDE_WINDOW: - if not multi_scales: - scales = [1.0] - else: - scales = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25] if cfg.DATASET.DATASET_NAME == 'cityscapes' else [0.5, 0.75, 1.0, 1.25, 1.5, 1.75] - #scales = [0.75, 1.0, 1.25] # fast multi-scale testing - - #strides - stride = int(crop_size *1.0 / 3) # 1/3 > 2/3 > 1/2 for input_size: 769 x 769 - h, w = image.shape[0:2] - scores = np.zeros(shape=[num_classes, h, w], dtype='float32') - - for scale in scales: - long_size = int(math.ceil(base_size * scale)) - if h > w: - height = long_size - width = int(1.0 * w * long_size / h + 0.5) - short_size = width - else: - width = long_size - height = int(1.0 * h * long_size / w + 0.5) - short_size = height - # print('org_img_size: {}x{}, rescale_img_size: {}x{}'.format(h, w, height, width)) - cur_img = image_resize(image, height, width) - # pading - if long_size <= crop_size: - pad_img = pad_single_image(cur_img, crop_size) - label_feed, mask_feed = get_feed(pad_img) - pad_img = mapper_image(pad_img) - loss, pred1 = exe.run( - test_prog, - feed={'image':pad_img, 'label':label_feed, 'mask':mask_feed}, - fetch_list = fetch_list, - return_numpy=True) - pred1 = np.array(pred1) - outputs = pred1[:, :, :height, :width] - if flip: - pad_img_flip = flip_left_right_image(cur_img) - pad_img_flip = pad_single_image(pad_img_flip, crop_size) - label_feed, mask_feed = get_feed(pad_img_flip) - - pad_img_flip = mapper_image(pad_img_flip) - loss, pred1 = exe.run( - test_prog, - feed={'image':pad_img_flip, 'label':label_feed, 'mask':mask_feed}, - fetch_list = fetch_list, - return_numpy=True) - pred1 = np.flip(pred1, 3) - outputs += pred1[:, :, :height, :width] - else: - if short_size < crop_size: - pad_img = pad_single_image(cur_img, crop_size) - else: - pad_img = cur_img - ph, pw = pad_img.shape[0:2] - - #slid window - h_grids = int(math.ceil(1.0 * (ph - crop_size) / stride)) + 1 - w_grids = int(math.ceil(1.0 * (pw - crop_size) / stride)) + 1 - outputs = np.zeros(shape=[1, num_classes, ph, pw], dtype='float32') - count_norm = np.zeros(shape=[1, 1, ph, pw], dtype='int32') - for idh in range(h_grids): - for idw in range(w_grids): - h0 = idh * stride - w0 = idw * stride - h1 = min(h0 + crop_size, ph) - w1 = min(w0 + crop_size, pw) - #print('(h0,w0,h1,w1):({},{},{},{})'.format(h0, w0, h1, w1)) - crop_img = crop_image(pad_img, h0, w0, h1, w1) - pad_crop_img = pad_single_image(crop_img, crop_size) - label_feed, mask_feed = get_feed(pad_crop_img) - pad_crop_img = mapper_image(pad_crop_img) - loss, pred1 = exe.run( - test_prog, - feed={'image':pad_crop_img, 'label':label_feed, 'mask':mask_feed}, - fetch_list = fetch_list, - return_numpy=True) - pred1 = np.array(pred1) - outputs[:, :, h0:h1, w0:w1] += pred1[:, :, 0:h1-h0, 0:w1-w0] - count_norm[:, :, h0:h1, w0:w1] += 1 - if flip: - pad_img_flip = flip_left_right_image(crop_img) - pad_img_flip = pad_single_image(pad_img_flip, crop_size) - label_feed, mask_feed = get_feed(pad_img_flip) - pad_img_flip = mapper_image(pad_img_flip) - loss, pred1 = exe.run( - test_prog, - feed={'image':pad_img_flip, 'label':label_feed, 'mask':mask_feed}, - fetch_list = fetch_list, - return_numpy = True) - pred1 = np.flip(pred1, 3) - outputs[:, :, h0:h1, w0:w1] += pred1[:, :, 0:h1-h0, 0:w1-w0] - count_norm[:, :, h0:h1, w0:w1] += 1 - - outputs = 1.0 * outputs / count_norm - outputs = outputs[:, :, :height, :width] - with fluid.dygraph.guard(): - outputs = fluid.dygraph.to_variable(outputs) - outputs = fluid.layers.resize_bilinear(outputs, out_shape=[h, w]) - score = outputs.numpy()[0] - scores += score - else: - # taking the original image as the model input - loss, pred = exe.run( - test_prog, - feed={'image':image_org, 'label':label, 'mask':mask}, - fetch_list = fetch_list, - return_numpy = True) - scores = pred[0] - # computing IoU with all scale result - pred = np.argmax(scores, axis=0).astype('int64') - pred = pred[np.newaxis, :, :, np.newaxis] - step += 1 - num_images += pred.shape[0] - conf_mat.calculate(pred, label, mask) - _, iou = conf_mat.mean_iou() - _, acc = conf_mat.accuracy() - - print("[EVAL] step={}/{} acc={:.4f} IoU={:.4f}".format(step, all_step, acc, iou)) - - category_iou, avg_iou = conf_mat.mean_iou() - category_acc, avg_acc = conf_mat.accuracy() - print("[EVAL] #image={} acc={:.4f} IoU={:.4f}".format(num_images, avg_acc, avg_iou)) - print("[EVAL] Category IoU:", category_iou) - print("[EVAL] Category Acc:", category_acc) - print("[EVAL] Kappa:{:.4f}".format(conf_mat.kappa())) - print("flip = ", flip) - print("scales = ", scales) - - return category_iou, avg_iou, category_acc, avg_acc - -def image_resize(image, height, width): - if image.shape[0] == 3: - image = np.transpose(image, (1, 2, 0)) - image = cv2.resize(image, (width, height), interpolation=cv2.INTER_LINEAR) - return image - -def pad_single_image(image, crop_size): - h, w = image.shape[0:2] - pad_h = crop_size - h if h < crop_size else 0 - pad_w = crop_size - w if w < crop_size else 0 - image = cv2.copyMakeBorder(image, 0, pad_h, 0, pad_w, cv2.BORDER_CONSTANT,value=0) - return image - -def mapper_image(image): - # HxWx3 -> 3xHxW -> 1x3xHxW - image_array = np.transpose(image, (2, 0, 1)) - image_array = image_array.astype('float32') - image_array = image_array[np.newaxis, :] - return image_array - -def flip_left_right_image(image): - return cv2.flip(image, 1) - -def get_feed(image): - h, w = image.shape[0:2] - return np.zeros([1, 1, h, w], dtype='int32'), np.zeros([1, 1, h, w], dtype='int32') - -def crop_image(image, h0, w0, h1, w1): - return image[h0:h1, w0:w1, :] - -def main(): - args = parse_args() - if args.cfg_file is not None: - cfg.update_from_file(args.cfg_file) - if args.opts: - cfg.update_from_list(args.opts) - cfg.check_and_infer() - print(pprint.pformat(cfg)) - evaluate(cfg, **args.__dict__) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_cityscapes.sh b/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_cityscapes.sh deleted file mode 100755 index 98e44a0892d2e4be7c9505864d7b459d8a20bbe6..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_cityscapes.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - - -# Deeplabv3_Res101_Cityscapes -# 1.1 Training -CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --use_gpu \ - --use_mpio \ - --cfg ./configs/deeplabv3_res101_cityscapes.yaml | tee -a train.log 2>&1 -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/deeplabv3_res101_cityscapes.yaml -# 1.3 multi-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --multi_scales \ - --cfg ./configs/deeplabv3_res101_cityscapes.yaml - - diff --git a/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_pascalcontext.sh b/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_pascalcontext.sh deleted file mode 100755 index a356a18d6483bf613975e3808c3e63a3db25d543..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/expes/deeplabv3_res101_pascalcontext.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - - -# Deeplabv3_Res101_PascalContext -# 1.1 Training -CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --use_gpu \ - --use_mpio \ - --cfg ./configs/deeplabv3_res101_pascalcontext.yaml | tee -a train.log 2>&1 -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/deeplabv3_res101_pascalcontext.yaml -# 1.3 multi-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --multi_scales \ - --cfg ./configs/deeplabv3_res101_pascalcontext.yaml - - - - diff --git a/PaddleCV/Research/SemSegPaddle/expes/glore_res101_cityscapes.sh b/PaddleCV/Research/SemSegPaddle/expes/glore_res101_cityscapes.sh deleted file mode 100755 index 075b0b974da19641b32c8410bcda9c897dabcab0..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/expes/glore_res101_cityscapes.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - - -# GloRe_Res101_Cityscapes -# 1.1 Training -CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --use_gpu \ - --use_mpio \ - --cfg ./configs/glore_res101_cityscapes.yaml | tee -a train.log 2>&1 -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/glore_res101_cityscapes.yaml -# 1.3 multi-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --multi_scales \ - --cfg ./configs/glore_res101_cityscapes.yaml - diff --git a/PaddleCV/Research/SemSegPaddle/expes/glore_res101_pascalcontext.sh b/PaddleCV/Research/SemSegPaddle/expes/glore_res101_pascalcontext.sh deleted file mode 100755 index 452df25133713ac1c864f06dbbe9f21c3e162781..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/expes/glore_res101_pascalcontext.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - - -# GloRe_Res101_PascalContext -:<&1 -! -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/glore_res101_pascalcontext.yaml -:<&1 -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/pspnet_res101_cityscapes.yaml -# 1.3 multi-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --multi_scales \ - --cfg ./configs/pspnet_res101_cityscapes.yaml diff --git a/PaddleCV/Research/SemSegPaddle/expes/pspnet_res101_pascalcontext.sh b/PaddleCV/Research/SemSegPaddle/expes/pspnet_res101_pascalcontext.sh deleted file mode 100755 index 1959e6e01a0c59c45f30b9e0bb1ec0dbf7c4dde5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/expes/pspnet_res101_pascalcontext.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - - -#PSPNet_Res101_PascalContext -# 1.1 training -CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --use_gpu \ - --cfg ./configs/pspnet_res101_pascalcontext.yaml | tee -a train.log 2>&1 -# 1.2 single-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --cfg ./configs/pspnet_res101_pascalcontext.yaml -# 1.3 multi-scale testing -CUDA_VISIBLE_DEVICES=0 python eval.py --use_gpu \ - --multi_scales \ - --cfg ./configs/pspnet_res101_pascalcontext.yaml diff --git a/PaddleCV/Research/SemSegPaddle/pretrained_model/note.txt b/PaddleCV/Research/SemSegPaddle/pretrained_model/note.txt deleted file mode 100644 index 6580b2565e4d36e172b75abf55e41752620a80ee..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/pretrained_model/note.txt +++ /dev/null @@ -1 +0,0 @@ -please put the pretrained weights of backbone here diff --git a/PaddleCV/Research/SemSegPaddle/snapshots/note.txt b/PaddleCV/Research/SemSegPaddle/snapshots/note.txt deleted file mode 100644 index 9fe80f1163d114bb2bfc9c8033de12576b7a7c3e..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/snapshots/note.txt +++ /dev/null @@ -1 +0,0 @@ -please put the trained model here diff --git a/PaddleCV/Research/SemSegPaddle/src/__init__.py b/PaddleCV/Research/SemSegPaddle/src/__init__.py deleted file mode 100644 index a65af8351df2131361501fc0dce51af3b3252313..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import datasets, models, utils diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/__init__.py b/PaddleCV/Research/SemSegPaddle/src/datasets/__init__.py deleted file mode 100644 index 7c1c1a7255c4c7fbb58906bf96fd8061b14abc34..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from .cityscapes import CityscapesSeg -from .pascal_context import PascalContextSeg -from .ade import AdeSeg -datasets ={ - 'cityscapes': CityscapesSeg, - 'pascalcontext': PascalContextSeg, - 'adechallengedata2016': AdeSeg, -} -def build_dataset(name, **kwargs): - return datasets[name.lower()](**kwargs) - - diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/ade.py b/PaddleCV/Research/SemSegPaddle/src/datasets/ade.py deleted file mode 100644 index 6b63d8e297ff1ced2705c7b484cff9d3f2b61a35..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/ade.py +++ /dev/null @@ -1,105 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import print_function -import sys -import os -import math -import random -import functools -import io -import time -import codecs -import numpy as np -import paddle -import paddle.fluid as fluid -import cv2 -from PIL import Image -import copy - -from src.utils.config import cfg -from src.models.model_builder import ModelPhase -from .baseseg import BaseSeg - - -class AdeSeg(BaseSeg): - def __init__(self, - file_list, - data_dir, - shuffle=False, - mode=ModelPhase.TRAIN, base_size=520, crop_size=520, rand_scale=True): - super(AdeSeg, self).__init__(file_list, data_dir, shuffle, mode, base_size, crop_size, rand_scale) - - def _mask_transform(self, mask): - target = np.array(mask).astype('int32') - 1 - return target - - - - def load_image(self, line, src_dir, mode=ModelPhase.TRAIN): - # original image cv2.imread flag setting - cv2_imread_flag = cv2.IMREAD_COLOR - if cfg.DATASET.IMAGE_TYPE == "rgba": - # If use RBGA 4 channel ImageType, use IMREAD_UNCHANGED flags to - # reserver alpha channel - cv2_imread_flag = cv2.IMREAD_UNCHANGED - #print("line: ", line) - parts = line.strip().split(cfg.DATASET.SEPARATOR) - if len(parts) != 2: - if mode == ModelPhase.TRAIN or mode == ModelPhase.EVAL: - raise Exception("File list format incorrect! It should be" - " image_name{}label_name\\n".format( - cfg.DATASET.SEPARATOR)) - img_name, grt_name = parts[0], None - else: - img_name, grt_name = parts[0], parts[1] - - img_path = os.path.join(src_dir, img_name) - img = self.cv2_imread(img_path, cv2_imread_flag) - - if grt_name is not None: - grt_path = os.path.join(src_dir, grt_name) - grt = self.pil_imread(grt_path) - else: - grt = None - - if img is None: - raise Exception( - "Empty image, src_dir: {}, img: {} & lab: {}".format( - src_dir, img_path, grt_path)) - - img_height = img.shape[0] - img_width = img.shape[1] - #print('img.shape',img.shape) - if grt is not None: - grt_height = grt.shape[0] - grt_width = grt.shape[1] - - if img_height != grt_height or img_width != grt_width: - raise Exception( - "source img and label img must has the same size") - else: - if mode == ModelPhase.TRAIN or mode == ModelPhase.EVAL: - raise Exception( - "Empty image, src_dir: {}, img: {} & lab: {}".format( - src_dir, img_path, grt_path)) - - if len(img.shape) < 3: - img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) - - grt = self._mask_transform(grt) - - return img, grt, img_name, grt_name - diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/baseseg.py b/PaddleCV/Research/SemSegPaddle/src/datasets/baseseg.py deleted file mode 100644 index 5433342c8c0d54b2b45bd2fd9a4e01e0b135d0b4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/baseseg.py +++ /dev/null @@ -1,239 +0,0 @@ -from __future__ import print_function -import sys -import os -import math -import random -import functools -import io -import time -import codecs -import numpy as np -import paddle -import paddle.fluid as fluid -import cv2 -import copy -from PIL import Image, ImageOps, ImageFilter, ImageEnhance - -from src.models.model_builder import ModelPhase -from src.utils.config import cfg -from .data_utils import GeneratorEnqueuer - - -class BaseSeg(object): - def __init__(self, file_list, data_dir, shuffle=False, mode=ModelPhase.TRAIN, base_size=1024, crop_size=769, rand_scale=True): - self.mode = mode - self.shuffle = shuffle - self.data_dir = data_dir - self.shuffle_seed = 0 - - self.crop_size = crop_size - self.base_size = base_size # short edge when training - self.rand_scale = rand_scale - - # NOTE: Please ensure file list was save in UTF-8 coding format - with codecs.open(file_list, 'r', 'utf-8') as flist: - self.lines = [line.strip() for line in flist] - self.all_lines = copy.deepcopy(self.lines) - if shuffle and cfg.NUM_TRAINERS > 1: - np.random.RandomState(self.shuffle_seed).shuffle(self.all_lines) - elif shuffle: - np.random.shuffle(self.lines) - self.num_trainers= cfg.NUM_TRAINERS - self.trainer_id=cfg.TRAINER_ID - - def generator(self): - if self.shuffle and cfg.NUM_TRAINERS > 1: - np.random.RandomState(self.shuffle_seed).shuffle(self.all_lines) - num_lines = len(self.all_lines) // cfg.NUM_TRAINERS - self.lines = self.all_lines[num_lines * cfg.TRAINER_ID: num_lines * (cfg.TRAINER_ID + 1)] - self.shuffle_seed += 1 - elif self.shuffle: - np.random.shuffle(self.lines) - - for line in self.lines: - yield self.process_image(line, self.data_dir, self.mode) - - def sharding_generator(self, pid=0, num_processes=1): - """ - Use line id as shard key for multiprocess io - It's a normal generator if pid=0, num_processes=1 - """ - for index, line in enumerate(self.lines): - # Use index and pid to shard file list - if index % num_processes == pid: - yield self.process_image(line, self.data_dir, self.mode) - - def batch_reader(self, batch_size): - br = self.batch(self.reader, batch_size) - for batch in br: - yield batch[0], batch[1], batch[2] - - def multiprocess_generator(self, max_queue_size=32, num_processes=8): - # Re-shuffle file list - if self.shuffle and cfg.NUM_TRAINERS > 1: - np.random.RandomState(self.shuffle_seed).shuffle(self.all_lines) - num_lines = len(self.all_lines) // self.num_trainers - self.lines = self.all_lines[num_lines * self.trainer_id: num_lines * (self.trainer_id + 1)] - self.shuffle_seed += 1 - elif self.shuffle: - np.random.shuffle(self.lines) - - # Create multiple sharding generators according to num_processes for multiple processes - generators = [] - for pid in range(num_processes): - generators.append(self.sharding_generator(pid, num_processes)) - - try: - enqueuer = GeneratorEnqueuer(generators) - enqueuer.start(max_queue_size=max_queue_size, workers=num_processes) - while True: - generator_out = None - while enqueuer.is_running(): - if not enqueuer.queue.empty(): - generator_out = enqueuer.queue.get(timeout=5) - break - else: - time.sleep(0.01) - if generator_out is None: - break - yield generator_out - finally: - if enqueuer is not None: - enqueuer.stop() - - def batch(self, reader, batch_size, is_test=False, drop_last=False): - def batch_reader(is_test=False, drop_last=drop_last): - if is_test: - imgs, grts, img_names, valid_shapes, org_shapes = [], [], [], [], [] - for img, grt, img_name, valid_shape, org_shape in reader(): - imgs.append(img) - grts.append(grt) - img_names.append(img_name) - valid_shapes.append(valid_shape) - org_shapes.append(org_shape) - if len(imgs) == batch_size: - yield np.array(imgs), np.array( - grts), img_names, np.array(valid_shapes), np.array( - org_shapes) - imgs, grts, img_names, valid_shapes, org_shapes = [], [], [], [], [] - - if not drop_last and len(imgs) > 0: - yield np.array(imgs), np.array(grts), img_names, np.array( - valid_shapes), np.array(org_shapes) - else: - imgs, labs, ignore = [], [], [] - bs = 0 - for img, lab, ig in reader(): - imgs.append(img) - labs.append(lab) - ignore.append(ig) - bs += 1 - if bs == batch_size: - yield np.array(imgs), np.array(labs), np.array(ignore) - bs = 0 - imgs, labs, ignore = [], [], [] - - if not drop_last and bs > 0: - yield np.array(imgs), np.array(labs), np.array(ignore) - - return batch_reader(is_test, drop_last) - - def load_image(self, line, src_dir, mode=ModelPhase.TRAIN): - raise NotImplemented - - def pil_imread(self, file_path): - """read pseudo-color label""" - im = Image.open(file_path) - return np.asarray(im) - - def cv2_imread(self, file_path, flag=cv2.IMREAD_COLOR): - # resolve cv2.imread open Chinese file path issues on Windows Platform. - return cv2.imdecode(np.fromfile(file_path, dtype=np.uint8), flag) - - def normalize_image(self, img): - img = img.transpose((2, 0, 1)).astype('float32') / 255.0 - img_mean = np.array(cfg.MEAN).reshape((len(cfg.MEAN), 1, 1)) - img_std = np.array(cfg.STD).reshape((len(cfg.STD), 1, 1)) - img -= img_mean - img /= img_std - - return img - - def process_image(self, line, data_dir, mode): - """ process_image """ - img, grt, img_name, grt_name = self.load_image( line, data_dir, mode=mode) # img.type: numpy.array, grt.type: numpy.array - if mode == ModelPhase.TRAIN: - # numpy.array convert to PIL.Image - img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) - grt = Image.fromarray(grt.astype('uint8')).convert('L') - - crop_size = self.crop_size - # random scale - if self.rand_scale: - short_size = random.randint(int(self.base_size * cfg.DATAAUG.RAND_SCALE_MIN), int(self.base_size * cfg.DATAAUG.RAND_SCALE_MAX)) - else: - short_size = self.base_size - w, h = img.size - if h > w: - out_w = short_size - out_h = int(1.0 * h / w * out_w) - else: - out_h = short_size - out_w = int(1.0 * w / h * out_h) - img = img.resize((out_w, out_h), Image.BILINEAR) - grt = grt.resize((out_w, out_h), Image.NEAREST) - - # rand flip - if random.random() > 0.5: - img = img.transpose(Image.FLIP_LEFT_RIGHT) - grt = grt.transpose(Image.FLIP_LEFT_RIGHT) - - # padding - if short_size < crop_size: - pad_h = crop_size - out_h if out_h < crop_size else 0 - pad_w = crop_size - out_w if out_w < crop_size else 0 - img = ImageOps.expand(img, border=(pad_w // 2, pad_h // 2, pad_w - pad_w // 2, pad_h - pad_h // 2), fill=0) - grt = ImageOps.expand(grt, border=(pad_w // 2, pad_h // 2, pad_w - pad_w // 2, pad_h - pad_h // 2), fill=cfg.DATASET.IGNORE_INDEX) - - # random crop - w, h = img.size - x = random.randint(0, w - crop_size) - y = random.randint(0, h - crop_size) - img = img.crop((x, y, x + crop_size, y + crop_size)) - grt = grt.crop((x, y, x + crop_size, y + crop_size)) - - - # gaussian blur - if cfg.DATAAUG_EXTRA: - if random.random() > 0.7: - img = img.filter(ImageFilter.GaussianBlur(radius=random.random())) - - # PIL.Image -> cv2 - img = cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR) - grt = np.array(grt) - - elif ModelPhase.is_eval(mode): - org_shape = [img.shape[0], img.shape[1]] # 1024 x 2048 for cityscapes - - elif ModelPhase.is_visual(mode): - org_shape = [img.shape[0], img.shape[1]] - #img, grt = resize(img, grt, mode=mode) - valid_shape = [img.shape[0], img.shape[1]] - #img, grt = rand_crop(img, grt, mode=mode) - else: - raise ValueError("Dataset mode={} Error!".format(mode)) - - # Normalize image - img = self.normalize_image(img) - - if ModelPhase.is_train(mode) or ModelPhase.is_eval(mode): - grt = np.expand_dims(np.array(grt).astype('int32'), axis=0) - ignore = (grt != cfg.DATASET.IGNORE_INDEX).astype('int32') - - - if ModelPhase.is_train(mode): - return (img, grt, ignore) - elif ModelPhase.is_eval(mode): - return (img, grt, ignore) - elif ModelPhase.is_visual(mode): - return (img, grt, img_name, valid_shape, org_shape) diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/cityscapes.py b/PaddleCV/Research/SemSegPaddle/src/datasets/cityscapes.py deleted file mode 100644 index e9487bf40c180b96564342badeea2e7599c56377..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/cityscapes.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import print_function -import sys -import os -import math -import random -import functools -import io -import time -import codecs -import numpy as np -import paddle -import paddle.fluid as fluid -import cv2 -from PIL import Image -import copy - -from src.utils.config import cfg -from src.models.model_builder import ModelPhase -from .baseseg import BaseSeg - - -class CityscapesSeg(BaseSeg): - def __init__(self, file_list, data_dir, shuffle=False, mode=ModelPhase.TRAIN, base_size=1024, crop_size=769, rand_scale=True): - - super(CityscapesSeg, self).__init__(file_list, data_dir, shuffle, mode, base_size, crop_size, rand_scale) - - def load_image(self, line, src_dir, mode=ModelPhase.TRAIN): - # original image cv2.imread flag setting - cv2_imread_flag = cv2.IMREAD_COLOR - if cfg.DATASET.IMAGE_TYPE == "rgba": - # If use RBGA 4 channel ImageType, use IMREAD_UNCHANGED flags to - # reserver alpha channel - cv2_imread_flag = cv2.IMREAD_UNCHANGED - - parts = line.strip().split(cfg.DATASET.SEPARATOR) - if len(parts) != 2: - if mode == ModelPhase.TRAIN or mode == ModelPhase.EVAL: - raise Exception("File list format incorrect! It should be image_name {} label_name\\n".format(cfg.DATASET.SEPARATOR)) - img_name, grt_name = parts[0], None - else: - img_name, grt_name = parts[0], parts[1] - - img_path = os.path.join(src_dir, img_name) - img = self.cv2_imread(img_path, cv2_imread_flag) - - if grt_name is not None: - grt_path = os.path.join(src_dir, grt_name) - grt = self.pil_imread(grt_path) - else: - grt = None - - img_height = img.shape[0] - img_width = img.shape[1] - if grt is not None: - grt_height = grt.shape[0] - grt_width = grt.shape[1] - id_to_trainid = [255, 255, 255, 255, 255, - 255, 255, 255, 0, 1, - 255, 255, 2, 3, 4, - 255, 255, 255, 5, 255, - 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, - 255, 255, 16, 17, 18] - grt_ = np.zeros([grt_height, grt_width]) - - for h in range(grt_height): - for w in range(grt_width): - grt_[h][w] = id_to_trainid[int(grt[h][w])+1] - - if img_height != grt_height or img_width != grt_width: - raise Exception("source img and label img must has the same size") - else: - if mode == ModelPhase.TRAIN or mode == ModelPhase.EVAL: - raise Exception("Empty image, src_dir: {}, img: {} & lab: {}".format(src_dir, img_path, grt_path)) - - if len(img.shape) < 3: - img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) - - return img, grt_, img_name, grt_name diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/data_utils.py b/PaddleCV/Research/SemSegPaddle/src/datasets/data_utils.py deleted file mode 100644 index 65bea35f1ade62289e704271a6a37af27c8c2c7c..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/data_utils.py +++ /dev/null @@ -1,115 +0,0 @@ -""" -This code is based on https://github.com/fchollet/keras/blob/master/keras/utils/data_utils.py -""" - -import time -import numpy as np -import threading -import multiprocessing -try: - import queue -except ImportError: - import Queue as queue - - -class GeneratorEnqueuer(object): - """ - Multiple generators - - Args: - generators: - wait_time (float): time to sleep in-between calls to `put()`. - """ - - def __init__(self, generators, wait_time=0.05): - self.wait_time = wait_time - self._generators = generators - self._threads = [] - self._stop_events = [] - self.queue = None - self._manager = None - self.workers = 1 - - def start(self, workers=1, max_queue_size=16): - """ - Start worker threads which add data from the generator into the queue. - - Args: - workers (int): number of worker threads - max_queue_size (int): queue size - (when full, threads could block on `put()`) - """ - - self.workers = workers - - def data_generator_task(pid): - """ - Data generator task. - """ - - def task(pid): - if (self.queue is not None - and self.queue.qsize() < max_queue_size): - generator_output = next(self._generators[pid]) - self.queue.put((generator_output)) - else: - time.sleep(self.wait_time) - - while not self._stop_events[pid].is_set(): - try: - task(pid) - except Exception: - self._stop_events[pid].set() - break - - try: - self._manager = multiprocessing.Manager() - self.queue = self._manager.Queue(maxsize=max_queue_size) - for pid in range(self.workers): - self._stop_events.append(multiprocessing.Event()) - thread = multiprocessing.Process( - target=data_generator_task, args=(pid, )) - thread.daemon = True - self._threads.append(thread) - thread.start() - except: - self.stop() - raise - - def is_running(self): - """ - Returns: - bool: Whether the worker theads are running. - """ - - # If queue is not empty then still in runing state wait for consumer - if not self.queue.empty(): - return True - - for pid in range(self.workers): - if not self._stop_events[pid].is_set(): - return True - - return False - - def stop(self, timeout=None): - """ - Stops running threads and wait for them to exit, if necessary. - Should be called by the same thread which called `start()`. - - Args: - timeout(int|None): maximum time to wait on `thread.join()`. - """ - if self.is_running(): - for pid in range(self.workers): - self._stop_events[pid].set() - - for thread in self._threads: - if thread.is_alive(): - thread.join(timeout) - if self._manager: - self._manager.shutdown() - - self._threads = [] - self._stop_events = [] - self.queue = None diff --git a/PaddleCV/Research/SemSegPaddle/src/datasets/pascal_context.py b/PaddleCV/Research/SemSegPaddle/src/datasets/pascal_context.py deleted file mode 100644 index 44cbe4065d8f51588be8f24ee46ffddb9b02e368..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/datasets/pascal_context.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import print_function -import sys -import os -import math -import random -import functools -import io -import time -import codecs -import numpy as np -import paddle -import paddle.fluid as fluid -import cv2 -from PIL import Image -import copy - -from src.utils.config import cfg -from src.models.model_builder import ModelPhase -from .baseseg import BaseSeg - - -class PascalContextSeg(BaseSeg): - def __init__(self, - file_list, - data_dir, - shuffle=False, - mode=ModelPhase.TRAIN, base_size=520, crop_size=520, rand_scale=True): - super(PascalContextSeg, self).__init__(file_list, data_dir, shuffle, mode, base_size, crop_size, rand_scale) - - def _mask_transform(self, mask): - target = np.array(mask).astype('int32') - 1 - return target - - def load_image(self, line, src_dir, mode=ModelPhase.TRAIN): - # original image cv2.imread flag setting - cv2_imread_flag = cv2.IMREAD_COLOR - if cfg.DATASET.IMAGE_TYPE == "rgba": - # If use RBGA 4 channel ImageType, use IMREAD_UNCHANGED flags to - # reserver alpha channel - cv2_imread_flag = cv2.IMREAD_UNCHANGED - parts = line.strip().split(cfg.DATASET.SEPARATOR) - if len(parts) != 2: - if mode == ModelPhase.TRAIN or mode == ModelPhase.EVAL: - raise Exception("File list format incorrect! It should be" - " image_name{}label_name\\n".format( - cfg.DATASET.SEPARATOR)) - img_name, grt_name = parts[0], None - else: - img_name, grt_name = parts[0], parts[1] - - img_path = os.path.join(src_dir, img_name) - img = self.cv2_imread(img_path, cv2_imread_flag) - - if grt_name is not None: - grt_path = os.path.join(src_dir, grt_name) - grt = self.pil_imread(grt_path) - else: - grt = None - - if len(img.shape) < 3: - img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) - - grt = self._mask_transform(grt) - return img, grt, img_name, grt_name - diff --git a/PaddleCV/Research/SemSegPaddle/src/models/__init__.py b/PaddleCV/Research/SemSegPaddle/src/models/__init__.py deleted file mode 100644 index 0d80c0d8102d2e8160af9b66d0609a2973209e51..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#import models.modeling -#import models.libs -#import models.backbone -from . import modeling, libs, backbone diff --git a/PaddleCV/Research/SemSegPaddle/src/models/backbone/__init__.py b/PaddleCV/Research/SemSegPaddle/src/models/backbone/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/SemSegPaddle/src/models/backbone/hrnet.py b/PaddleCV/Research/SemSegPaddle/src/models/backbone/hrnet.py deleted file mode 100644 index a8c3ab91e6d925791480ec2c2d4163a19a72b831..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/backbone/hrnet.py +++ /dev/null @@ -1,220 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle -import paddle.fluid as fluid -from paddle.fluid.initializer import MSRA -from paddle.fluid.param_attr import ParamAttr - -from src.utils.config import cfg - -class HRNet(): - """ - Reference: - Sun, Ke, et al. "Deep High-Resolution Representation Learning for Human Pose Estimation.", In CVPR 2019 - """ - def __init__(self, stride=4, seg_flag=False): - self.stride= stride - self.seg_flag=seg_flag - - def conv_bn_layer(self, input, filter_size, num_filters, stride=1, padding=1, num_groups=1, if_act=True, name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=num_groups, - act=None, - param_attr=ParamAttr(initializer=MSRA(), name=name + '_weights'), - bias_attr=False) - bn_name = name + '_bn' - bn = fluid.layers.batch_norm(input=conv, - param_attr=ParamAttr(name=bn_name + "_scale", - initializer=fluid.initializer.Constant(1.0)), - bias_attr=ParamAttr(name=bn_name + "_offset", - initializer=fluid.initializer.Constant(0.0)), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - if if_act: - bn = fluid.layers.relu(bn) - return bn - - - def basic_block(self, input, num_filters, stride=1, downsample=False, name=None): - residual = input - conv = self.conv_bn_layer(input=input, filter_size=3, num_filters=num_filters, stride=stride, name=name + '_conv1') - conv = self.conv_bn_layer(input=conv, filter_size=3, num_filters=num_filters, if_act=False, name=name + '_conv2') - if downsample: - residual = self.conv_bn_layer(input=input, filter_size=1, num_filters=num_filters, if_act=False, - name=name + '_downsample') - return fluid.layers.elementwise_add(x=residual, y=conv, act='relu') - - - - def bottleneck_block(self, input, num_filters, stride=1, downsample=False, name=None): - residual = input - conv = self.conv_bn_layer(input=input, filter_size=1, num_filters=num_filters, name=name + '_conv1') - conv = self.conv_bn_layer(input=conv, filter_size=3, num_filters=num_filters, stride=stride, name=name + '_conv2') - conv = self.conv_bn_layer(input=conv, filter_size=1, num_filters=num_filters * 4, if_act=False, - name=name + '_conv3') - if downsample: - residual = self.conv_bn_layer(input=input, filter_size=1, num_filters=num_filters * 4, if_act=False, - name=name + '_downsample') - return fluid.layers.elementwise_add(x=residual, y=conv, act='relu') - - def fuse_layers(self, x, channels, multi_scale_output=True, name=None): - out = [] - for i in range(len(channels) if multi_scale_output else 1): - residual = x[i] - shape = residual.shape - width = shape[-1] - height = shape[-2] - for j in range(len(channels)): - if j > i: - y = self.conv_bn_layer(x[j], filter_size=1, num_filters=channels[i], if_act=False, - name=name + '_layer_' + str(i + 1) + '_' + str(j + 1)) - y = fluid.layers.resize_bilinear(input=y, out_shape=[height, width]) - residual = fluid.layers.elementwise_add(x=residual, y=y, act=None) - elif j < i: - y = x[j] - for k in range(i - j): - if k == i - j - 1: - y = self.conv_bn_layer(y, filter_size=3, num_filters=channels[i], stride=2, if_act=False, - name=name + '_layer_' + str(i + 1) + '_' + str(j + 1) + '_' + str(k + 1)) - else: - y = self.conv_bn_layer(y, filter_size=3, num_filters=channels[j], stride=2, - name=name + '_layer_' + str(i + 1) + '_' + str(j + 1) + '_' + str(k + 1)) - residual = fluid.layers.elementwise_add(x=residual, y=y, act=None) - - residual = fluid.layers.relu(residual) - out.append(residual) - return out - - def branches(self, x, block_num, channels, name=None): - out = [] - for i in range(len(channels)): - residual = x[i] - for j in range(block_num): - residual = self.basic_block(residual, channels[i], - name=name + '_branch_layer_' + str(i + 1) + '_' + str(j + 1)) - out.append(residual) - return out - - def high_resolution_module(self, x, channels, multi_scale_output=True, name=None): - residual = self.branches(x, 4, channels, name=name) - out = self.fuse_layers(residual, channels, multi_scale_output=multi_scale_output, name=name) - return out - - def transition_layer(self, x, in_channels, out_channels, name=None): - num_in = len(in_channels) - num_out = len(out_channels) - out = [] - for i in range(num_out): - if i < num_in: - if in_channels[i] != out_channels[i]: - residual = self.conv_bn_layer(x[i], filter_size=3, num_filters=out_channels[i], - name=name + '_layer_' + str(i + 1)) - out.append(residual) - else: - out.append(x[i]) - else: - residual = self.conv_bn_layer(x[-1], filter_size=3, num_filters=out_channels[i], stride=2, - name=name + '_layer_' + str(i + 1)) - out.append(residual) - return out - - def stage(self, x, num_modules, channels, multi_scale_output=True, name=None): - out = x - for i in range(num_modules): - if i == num_modules - 1 and multi_scale_output == False: - out = self.high_resolution_module(out, channels, multi_scale_output=False, name=name + '_' + str(i + 1)) - else: - out = self.high_resolution_module(out, channels, name=name + '_' + str(i + 1)) - - return out - - def layer1(self, input, name=None): - conv = input - for i in range(4): - conv = self.bottleneck_block(conv, num_filters=64, downsample=True if i == 0 else False, - name=name + '_' + str(i + 1)) - return conv - - #def highResolutionNet(input, num_classes): - def net(self, input, num_classes=1000): - - channels_2 = cfg.MODEL.HRNET.STAGE2.NUM_CHANNELS - channels_3 = cfg.MODEL.HRNET.STAGE3.NUM_CHANNELS - channels_4 = cfg.MODEL.HRNET.STAGE4.NUM_CHANNELS - - num_modules_2 = cfg.MODEL.HRNET.STAGE2.NUM_MODULES - num_modules_3 = cfg.MODEL.HRNET.STAGE3.NUM_MODULES - num_modules_4 = cfg.MODEL.HRNET.STAGE4.NUM_MODULES - - x = self.conv_bn_layer(input=input, filter_size=3, num_filters=64, stride=2, if_act=True, name='layer1_1') - x = self.conv_bn_layer(input=x, filter_size=3, num_filters=64, stride=2, if_act=True, name='layer1_2') - - la1 = self.layer1(x, name='layer2') - tr1 = self.transition_layer([la1], [256], channels_2, name='tr1') - st2 = self.stage(tr1, num_modules_2, channels_2, name='st2') - tr2 = self.transition_layer(st2, channels_2, channels_3, name='tr2') - st3 = self.stage(tr2, num_modules_3, channels_3, name='st3') - tr3 = self.transition_layer(st3, channels_3, channels_4, name='tr3') - st4 = self.stage(tr3, num_modules_4, channels_4, name='st4') - - # upsample - shape = st4[0].shape - height, width = shape[-2], shape[-1] - st4[1] = fluid.layers.resize_bilinear(st4[1], out_shape=[height, width]) - st4[2] = fluid.layers.resize_bilinear(st4[2], out_shape=[height, width]) - st4[3] = fluid.layers.resize_bilinear(st4[3], out_shape=[height, width]) - - out = fluid.layers.concat(st4, axis=1) - if self.seg_flag and self.stride==4: - return out - - last_channels = sum(channels_4) - - out = conv_bn_layer(input=out, filter_size=1, num_filters=last_channels, stride=1, if_act=True, name='conv-2') - out= fluid.layers.conv2d( - input=out, - num_filters=num_classes, - filter_size=1, - stride=1, - padding=0, - act=None, - param_attr=ParamAttr(initializer=MSRA(), name='conv-1_weights'), - bias_attr=False) - - out = fluid.layers.resize_bilinear(out, input.shape[2:]) - - - return out - - -def hrnet(): - model = HRNet(stride=4, seg_flag=True) - return model - -if __name__ == '__main__': - image_shape = [3, 769, 769] - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - logit = hrnet(image, 4) - print("logit:", logit.shape) diff --git a/PaddleCV/Research/SemSegPaddle/src/models/backbone/mobilenet_v2.py b/PaddleCV/Research/SemSegPaddle/src/models/backbone/mobilenet_v2.py deleted file mode 100644 index 5022a7826d16ef2cb24237b3f11cfb23e5189ff3..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/backbone/mobilenet_v2.py +++ /dev/null @@ -1,302 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import paddle.fluid as fluid -from paddle.fluid.initializer import MSRA -from paddle.fluid.param_attr import ParamAttr - -__all__ = [ - 'MobileNetV2', 'MobileNetV2_x0_25', 'MobileNetV2_x0_5', 'MobileNetV2_x1_0', - 'MobileNetV2_x1_5', 'MobileNetV2_x2_0', 'MobileNetV2_scale' -] - - - -class MobileNetV2(): - def __init__(self, scale=1.0, change_depth=False, output_stride=None): - self.scale = scale - self.change_depth = change_depth - self.bottleneck_params_list = [ - (1, 16, 1, 1), - (6, 24, 2, 2), - (6, 32, 3, 2), - (6, 64, 4, 2), - (6, 96, 3, 1), - (6, 160, 3, 2), - (6, 320, 1, 1), - ] if change_depth == False else [ - (1, 16, 1, 1), - (6, 24, 2, 2), - (6, 32, 5, 2), - (6, 64, 7, 2), - (6, 96, 5, 1), - (6, 160, 3, 2), - (6, 320, 1, 1), - ] - self.modify_bottle_params(output_stride) - - def modify_bottle_params(self, output_stride=None): - if output_stride is not None and output_stride % 2 != 0: - raise Exception("output stride must to be even number") - if output_stride is None: - return - else: - stride = 2 - for i, layer_setting in enumerate(self.bottleneck_params_list): - t, c, n, s = layer_setting - stride = stride * s - if stride > output_stride: - s = 1 - self.bottleneck_params_list[i] = (t, c, n, s) - - def net(self, input, class_dim=1000, end_points=None, decode_points=None): - scale = self.scale - change_depth = self.change_depth - #if change_depth is True, the new depth is 1.4 times as deep as before. - bottleneck_params_list = self.bottleneck_params_list - decode_ends = dict() - - def check_points(count, points): - if points is None: - return False - else: - if isinstance(points, list): - return (True if count in points else False) - else: - return (True if count == points else False) - - #conv1 - input = self.conv_bn_layer( - input, - num_filters=int(32 * scale), - filter_size=3, - stride=2, - padding=1, - if_act=True, - name='conv1_1') - layer_count = 1 - - #print("node test:", layer_count, input.shape) - - if check_points(layer_count, decode_points): - decode_ends[layer_count] = input - - if check_points(layer_count, end_points): - return input, decode_ends - - # bottleneck sequences - i = 1 - in_c = int(32 * scale) - for layer_setting in bottleneck_params_list: - t, c, n, s = layer_setting - i += 1 - input, depthwise_output = self.invresi_blocks( - input=input, - in_c=in_c, - t=t, - c=int(c * scale), - n=n, - s=s, - name='conv' + str(i)) - in_c = int(c * scale) - layer_count += n - - #print("node test:", layer_count, input.shape) - if check_points(layer_count, decode_points): - decode_ends[layer_count] = depthwise_output - - if check_points(layer_count, end_points): - return input, decode_ends - - #last_conv - input = self.conv_bn_layer( - input=input, - num_filters=int(1280 * scale) if scale > 1.0 else 1280, - filter_size=1, - stride=1, - padding=0, - if_act=True, - name='conv9') - - input = fluid.layers.pool2d( - input=input, - pool_size=7, - pool_stride=1, - pool_type='avg', - global_pooling=True) - - output = fluid.layers.fc( - input=input, - size=class_dim, - param_attr=ParamAttr(name='fc10_weights'), - bias_attr=ParamAttr(name='fc10_offset')) - return output - - def conv_bn_layer(self, - input, - filter_size, - num_filters, - stride, - padding, - channels=None, - num_groups=1, - if_act=True, - name=None, - use_cudnn=True): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=ParamAttr(name=name + '_weights'), - bias_attr=False) - bn_name = name + '_bn' - bn = fluid.layers.batch_norm( - input=conv, - param_attr=ParamAttr(name=bn_name + "_scale"), - bias_attr=ParamAttr(name=bn_name + "_offset"), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - if if_act: - return fluid.layers.relu6(bn) - else: - return bn - - def shortcut(self, input, data_residual): - return fluid.layers.elementwise_add(input, data_residual) - - def inverted_residual_unit(self, - input, - num_in_filter, - num_filters, - ifshortcut, - stride, - filter_size, - padding, - expansion_factor, - name=None): - num_expfilter = int(round(num_in_filter * expansion_factor)) - - channel_expand = self.conv_bn_layer( - input=input, - num_filters=num_expfilter, - filter_size=1, - stride=1, - padding=0, - num_groups=1, - if_act=True, - name=name + '_expand') - - bottleneck_conv = self.conv_bn_layer( - input=channel_expand, - num_filters=num_expfilter, - filter_size=filter_size, - stride=stride, - padding=padding, - num_groups=num_expfilter, - if_act=True, - name=name + '_dwise', - use_cudnn=False) - - depthwise_output = bottleneck_conv - - linear_out = self.conv_bn_layer( - input=bottleneck_conv, - num_filters=num_filters, - filter_size=1, - stride=1, - padding=0, - num_groups=1, - if_act=False, - name=name + '_linear') - - if ifshortcut: - out = self.shortcut(input=input, data_residual=linear_out) - return out, depthwise_output - else: - return linear_out, depthwise_output - - def invresi_blocks(self, input, in_c, t, c, n, s, name=None): - first_block, depthwise_output = self.inverted_residual_unit( - input=input, - num_in_filter=in_c, - num_filters=c, - ifshortcut=False, - stride=s, - filter_size=3, - padding=1, - expansion_factor=t, - name=name + '_1') - - last_residual_block = first_block - last_c = c - - for i in range(1, n): - last_residual_block, depthwise_output = self.inverted_residual_unit( - input=last_residual_block, - num_in_filter=last_c, - num_filters=c, - ifshortcut=True, - stride=1, - filter_size=3, - padding=1, - expansion_factor=t, - name=name + '_' + str(i + 1)) - return last_residual_block, depthwise_output - - -def MobileNetV2_x0_25(): - model = MobileNetV2(scale=0.25) - return model - - -def MobileNetV2_x0_5(): - model = MobileNetV2(scale=0.5) - return model - - -def MobileNetV2_x1_0(): - model = MobileNetV2(scale=1.0) - return model - - -def MobileNetV2_x1_5(): - model = MobileNetV2(scale=1.5) - return model - - -def MobileNetV2_x2_0(): - model = MobileNetV2(scale=2.0) - return model - - -def MobileNetV2_scale(): - model = MobileNetV2(scale=1.2, change_depth=True) - return model - - -if __name__ == '__main__': - image_shape = [3, 224, 224] - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - model = MobileNetV2_x1_0() - logit, decode_ends = model.net(image) - #print("logit:", logit.shape) diff --git a/PaddleCV/Research/SemSegPaddle/src/models/backbone/resnet.py b/PaddleCV/Research/SemSegPaddle/src/models/backbone/resnet.py deleted file mode 100644 index d988ee9687cbe40f72453ede5d7af7f935b2cafa..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/backbone/resnet.py +++ /dev/null @@ -1,303 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import math -import numpy as np -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from src.utils.config import cfg - -__all__ = [ - "ResNet", "ResNet18", "ResNet34", "ResNet50", "ResNet101", "ResNet152" -] - -class ResNet(): - def __init__(self, layers=50, scale=1.0): - self.layers = layers - self.scale = scale - - def net(self, - input, - class_dim=1000, - end_points=None, - decode_points=None, - resize_points=None, - dilation_dict=None): - layers = self.layers - supported_layers = [18, 34, 50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - - decode_ends = dict() - - def check_points(count, points): - if points is None: - return False - else: - if isinstance(points, list): - return (True if count in points else False) - else: - return (True if count == points else False) - - def get_dilated_rate(dilation_dict, idx): - if dilation_dict is None or idx not in dilation_dict: - return 1 - else: - return dilation_dict[idx] - - if layers == 18: - depth = [2, 2, 2, 2] - elif layers == 34 or layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - - # stage_1: 3 3x3_Conv - conv = self.conv_bn_layer( - input=input, - num_filters=int(64 * self.scale), - filter_size=3, - stride=2, - act='relu', - name="conv1_1") - conv = self.conv_bn_layer( - input=conv, - num_filters=int(64 * self.scale), - filter_size=3, - stride=1, - act='relu', - name="conv1_2") - conv = self.conv_bn_layer( - input=conv, - num_filters=int(128 * self.scale), - filter_size=3, - stride=1, - act='relu', - name="conv1_3") - - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - - layer_count = 1 - if check_points(layer_count, decode_points): - decode_ends[layer_count] = conv - - if check_points(layer_count, end_points): - return conv, decode_ends - - if layers >= 50: - for block in range(len(depth)): - for i in range(depth[block]): #depth = [3, 4, 23, 3] - if layers in [101, 152] and block == 2: - if i == 0: - conv_name = "res" + str(block + 2) + "a" - else: - conv_name = "res" + str(block + 2) + "b" + str(i) - else: - conv_name = "res" + str(block + 2) + chr(97 + i) - dilation_rate = get_dilated_rate(dilation_dict, block) - # added by Rosun, employ multi-grid - if cfg.MODEL.BACKBONE_MULTI_GRID== True and block==3: - if i==0: - dilation_rate = dilation_rate*(i+1) - else: - dilation_rate = dilation_rate*(2*i) # 2, 4 - print("employ multi-grid for resnet backbone network: dilation_rate={}\n".format(dilation_rate)) - - conv = self.bottleneck_block( - input=conv, - num_filters=int(num_filters[block] * self.scale), - stride=2 - if i == 0 and block != 0 and dilation_rate == 1 else 1, - name=conv_name, - dilation=dilation_rate) - layer_count += 3 - - if check_points(layer_count, decode_points): - decode_ends[layer_count] = conv - - if check_points(layer_count, end_points): - return conv, decode_ends - - if check_points(layer_count, resize_points): - conv = self.interp( - conv, - np.ceil( - np.array(conv.shape[2:]).astype('int32') / 2)) - - pool = fluid.layers.pool2d(input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - out = fluid.layers.fc(input=pool, - size=class_dim, - param_attr=fluid.param_attr.ParamAttr(initializer=fluid.initializer.Uniform(-stdv, stdv))) - else: - for block in range(len(depth)): - for i in range(depth[block]): - conv_name = "res" + str(block + 2) + chr(97 + i) - conv = self.basic_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - is_first=block == i == 0, - name=conv_name) - layer_count += 2 - if check_points(layer_count, decode_points): - decode_ends[layer_count] = conv - - if check_points(layer_count, end_points): - return conv, decode_ends - - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - out = fluid.layers.fc( - input=pool, - size=class_dim, - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv))) - return out - - def zero_padding(self, input, padding): - return fluid.layers.pad( - input, [0, 0, 0, 0, padding, padding, padding, padding]) - - def interp(self, input, out_shape): - out_shape = list(out_shape.astype("int32")) - return fluid.layers.resize_bilinear(input, out_shape=out_shape) - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - dilation=1, - groups=1, - act=None, - name=None): - - bias_attr=False - - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2 if dilation == 1 else 0, - dilation=dilation, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=bias_attr, - name=name + '.conv2d.output.1') - - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - name=bn_name + '.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance', ) - - def shortcut(self, input, ch_out, stride, is_first, name): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1 or is_first == True: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck_block(self, input, num_filters, stride, name, dilation=1): - if self.layers == 101: - strides = [1, stride] - else: - strides = [stride, 1] - - conv0 = self.conv_bn_layer( - input=input, - num_filters=num_filters, - filter_size=1, - dilation=1, - stride=strides[0], - act='relu', - name=name + "_branch2a") - if dilation > 1: - conv0 = self.zero_padding(conv0, dilation) - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - dilation=dilation, - stride=strides[1], - act='relu', - name=name + "_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, - num_filters=num_filters * 4, - dilation=1, - filter_size=1, - act=None, - name=name + "_branch2c") - - short = self.shortcut( - input, - num_filters * 4, - stride, - is_first=False, - name=name + "_branch1") - - return fluid.layers.elementwise_add( - x=short, y=conv2, act='relu', name=name + ".add.output.5") - - def basic_block(self, input, num_filters, stride, is_first, name): - conv0 = self.conv_bn_layer( - input=input, - num_filters=num_filters, - filter_size=3, - act='relu', - stride=stride, - name=name + "_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - act=None, - name=name + "_branch2b") - short = self.shortcut( - input, num_filters, stride, is_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv1, act='relu') - - -def ResNet18(): - model = ResNet(layers=18) - return model - - -def ResNet34(): - model = ResNet(layers=34) - return model - - -def ResNet50(): - model = ResNet(layers=50) - return model - - -def ResNet101(): - model = ResNet(layers=101) - return model - - -def ResNet152(): - model = ResNet(layers=152) - return model diff --git a/PaddleCV/Research/SemSegPaddle/src/models/backbone/xception.py b/PaddleCV/Research/SemSegPaddle/src/models/backbone/xception.py deleted file mode 100644 index be84e3ba0a83f0650ab35e5653722a8da0de4bd2..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/backbone/xception.py +++ /dev/null @@ -1,317 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import contextlib -import paddle -import math -import paddle.fluid as fluid -from src.models.libs.model_libs import scope, name_scope -from src.models.libs.model_libs import bn, bn_relu, relu -from src.models.libs.model_libs import conv -from src.models.libs.model_libs import separate_conv - -__all__ = ['xception_65', 'xception_41', 'xception_71'] - - -def check_data(data, number): - if type(data) == int: - return [data] * number - assert len(data) == number - return data - - -def check_stride(s, os): - if s <= os: - return True - else: - return False - - -def check_points(count, points): - if points is None: - return False - else: - if isinstance(points, list): - return (True if count in points else False) - else: - return (True if count == points else False) - - -class Xception(): - def __init__(self, backbone="xception_65"): - self.bottleneck_params = self.gen_bottleneck_params(backbone) - self.backbone = backbone - - def gen_bottleneck_params(self, backbone='xception_65'): - if backbone == 'xception_65': - bottleneck_params = { - "entry_flow": (3, [2, 2, 2], [128, 256, 728]), - "middle_flow": (16, 1, 728), - "exit_flow": (2, [2, 1], [[728, 1024, 1024], [1536, 1536, - 2048]]) - } - elif backbone == 'xception_41': - bottleneck_params = { - "entry_flow": (3, [2, 2, 2], [128, 256, 728]), - "middle_flow": (8, 1, 728), - "exit_flow": (2, [2, 1], [[728, 1024, 1024], [1536, 1536, - 2048]]) - } - elif backbone == 'xception_71': - bottleneck_params = { - "entry_flow": (5, [2, 1, 2, 1, 2], [128, 256, 256, 728, 728]), - "middle_flow": (16, 1, 728), - "exit_flow": (2, [2, 1], [[728, 1024, 1024], [1536, 1536, - 2048]]) - } - else: - raise Exception( - "xception backbont only support xception_41/xception_65/xception_71" - ) - return bottleneck_params - - def net(self, - input, - output_stride=32, - num_classes=1000, - end_points=None, - decode_points=None): - self.stride = 2 - self.block_point = 0 - self.output_stride = output_stride - self.decode_points = decode_points - self.short_cuts = dict() - with scope(self.backbone): - # Entry flow - data = self.entry_flow(input) - if check_points(self.block_point, end_points): - return data, self.short_cuts - - # Middle flow - data = self.middle_flow(data) - if check_points(self.block_point, end_points): - return data, self.short_cuts - - # Exit flow - data = self.exit_flow(data) - if check_points(self.block_point, end_points): - return data, self.short_cuts - - data = fluid.layers.reduce_mean(data, [2, 3], keep_dim=True) - data = fluid.layers.dropout(data, 0.5) - stdv = 1.0 / math.sqrt(data.shape[1] * 1.0) - with scope("logit"): - out = fluid.layers.fc( - input=data, - size=num_classes, - act='softmax', - param_attr=fluid.param_attr.ParamAttr( - name='weights', - initializer=fluid.initializer.Uniform(-stdv, stdv)), - bias_attr=fluid.param_attr.ParamAttr(name='bias')) - - return out - - def entry_flow(self, data): - param_attr = fluid.ParamAttr( - name=name_scope + 'weights', - regularizer=None, - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.09)) - with scope("entry_flow"): - with scope("conv1"): - data = bn_relu( - conv( - data, 32, 3, stride=2, padding=1, - param_attr=param_attr)) - with scope("conv2"): - data = bn_relu( - conv( - data, 64, 3, stride=1, padding=1, - param_attr=param_attr)) - - # get entry flow params - block_num = self.bottleneck_params["entry_flow"][0] - strides = self.bottleneck_params["entry_flow"][1] - chns = self.bottleneck_params["entry_flow"][2] - strides = check_data(strides, block_num) - chns = check_data(chns, block_num) - - # params to control your flow - s = self.stride - block_point = self.block_point - output_stride = self.output_stride - with scope("entry_flow"): - for i in range(block_num): - block_point = block_point + 1 - with scope("block" + str(i + 1)): - stride = strides[i] if check_stride(s * strides[i], - output_stride) else 1 - data, short_cuts = self.xception_block( - data, chns[i], [1, 1, stride]) - s = s * stride - if check_points(block_point, self.decode_points): - self.short_cuts[block_point] = short_cuts[1] - - self.stride = s - self.block_point = block_point - return data - - def middle_flow(self, data): - block_num = self.bottleneck_params["middle_flow"][0] - strides = self.bottleneck_params["middle_flow"][1] - chns = self.bottleneck_params["middle_flow"][2] - strides = check_data(strides, block_num) - chns = check_data(chns, block_num) - - # params to control your flow - s = self.stride - block_point = self.block_point - output_stride = self.output_stride - with scope("middle_flow"): - for i in range(block_num): - block_point = block_point + 1 - with scope("block" + str(i + 1)): - stride = strides[i] if check_stride(s * strides[i], - output_stride) else 1 - data, short_cuts = self.xception_block( - data, chns[i], [1, 1, strides[i]], skip_conv=False) - s = s * stride - if check_points(block_point, self.decode_points): - self.short_cuts[block_point] = short_cuts[1] - - self.stride = s - self.block_point = block_point - return data - - def exit_flow(self, data): - block_num = self.bottleneck_params["exit_flow"][0] - strides = self.bottleneck_params["exit_flow"][1] - chns = self.bottleneck_params["exit_flow"][2] - strides = check_data(strides, block_num) - chns = check_data(chns, block_num) - - assert (block_num == 2) - # params to control your flow - s = self.stride - block_point = self.block_point - output_stride = self.output_stride - with scope("exit_flow"): - with scope('block1'): - block_point += 1 - stride = strides[0] if check_stride(s * strides[0], - output_stride) else 1 - data, short_cuts = self.xception_block(data, chns[0], - [1, 1, stride]) - s = s * stride - if check_points(block_point, self.decode_points): - self.short_cuts[block_point] = short_cuts[1] - with scope('block2'): - block_point += 1 - stride = strides[1] if check_stride(s * strides[1], - output_stride) else 1 - data, short_cuts = self.xception_block( - data, - chns[1], [1, 1, stride], - dilation=2, - has_skip=False, - activation_fn_in_separable_conv=True) - s = s * stride - if check_points(block_point, self.decode_points): - self.short_cuts[block_point] = short_cuts[1] - - self.stride = s - self.block_point = block_point - return data - - def xception_block(self, - input, - channels, - strides=1, - filters=3, - dilation=1, - skip_conv=True, - has_skip=True, - activation_fn_in_separable_conv=False): - repeat_number = 3 - channels = check_data(channels, repeat_number) - filters = check_data(filters, repeat_number) - strides = check_data(strides, repeat_number) - data = input - results = [] - for i in range(repeat_number): - with scope('separable_conv' + str(i + 1)): - if not activation_fn_in_separable_conv: - data = relu(data) - data = separate_conv( - data, - channels[i], - strides[i], - filters[i], - dilation=dilation) - else: - data = separate_conv( - data, - channels[i], - strides[i], - filters[i], - dilation=dilation, - act=relu) - results.append(data) - if not has_skip: - return data, results - if skip_conv: - param_attr = fluid.ParamAttr( - name=name_scope + 'weights', - regularizer=None, - initializer=fluid.initializer.TruncatedNormal( - loc=0.0, scale=0.09)) - with scope('shortcut'): - skip = bn( - conv( - input, - channels[-1], - 1, - strides[-1], - groups=1, - padding=0, - param_attr=param_attr)) - else: - skip = input - return data + skip, results - - -def xception_65(): - model = Xception("xception_65") - return model - - -def xception_41(): - model = Xception("xception_41") - return model - - -def xception_71(): - model = Xception("xception_71") - return model - - -if __name__ == '__main__': - image_shape = [3, 224, 224] - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - model = xception_65() - logit = model.net(image) diff --git a/PaddleCV/Research/SemSegPaddle/src/models/libs/__init__.py b/PaddleCV/Research/SemSegPaddle/src/models/libs/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/SemSegPaddle/src/models/libs/model_libs.py b/PaddleCV/Research/SemSegPaddle/src/models/libs/model_libs.py deleted file mode 100644 index cae973a2262fbcdd58c5eda85c0a8d981bfd98fe..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/libs/model_libs.py +++ /dev/null @@ -1,219 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import sys -import paddle -import paddle.fluid as fluid -from src.utils.config import cfg -import contextlib - -bn_regularizer = fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0) -name_scope = "" - - -@contextlib.contextmanager -def scope(name): - global name_scope - bk = name_scope - name_scope = name_scope + name + '/' - yield - name_scope = bk - - -def max_pool(input, kernel, stride, padding): - data = fluid.layers.pool2d( - input, - pool_size=kernel, - pool_type='max', - pool_stride=stride, - pool_padding=padding) - return data - - -def avg_pool(input, kernel, stride, padding=0): - data = fluid.layers.pool2d( - input, - pool_size=kernel, - pool_type='avg', - pool_stride=stride, - pool_padding=padding) - return data - - -def group_norm(input, G, eps=1e-5, param_attr=None, bias_attr=None): - N, C, H, W = input.shape - if C % G != 0: - # print "group can not divide channle:", C, G - for d in range(10): - for t in [d, -d]: - if G + t <= 0: continue - if C % (G + t) == 0: - G = G + t - break - if C % G == 0: - # print "use group size:", G - break - assert C % G == 0 - x = fluid.layers.group_norm( - input, - groups=G, - param_attr=param_attr, - bias_attr=bias_attr, - name=name_scope + 'group_norm') - return x - - -def bn(*args, **kargs): - if cfg.MODEL.DEFAULT_NORM_TYPE == 'bn': - with scope('BatchNorm'): - return fluid.layers.batch_norm( - *args, - epsilon=cfg.MODEL.DEFAULT_EPSILON, - momentum=cfg.MODEL.BN_MOMENTUM, - param_attr=fluid.ParamAttr( - name=name_scope + 'gamma', regularizer=bn_regularizer), - bias_attr=fluid.ParamAttr( - name=name_scope + 'beta', regularizer=bn_regularizer), - moving_mean_name=name_scope + 'moving_mean', - moving_variance_name=name_scope + 'moving_variance', - **kargs) - elif cfg.MODEL.DEFAULT_NORM_TYPE == 'gn': - with scope('GroupNorm'): - return group_norm( - args[0], - cfg.MODEL.DEFAULT_GROUP_NUMBER, - eps=cfg.MODEL.DEFAULT_EPSILON, - param_attr=fluid.ParamAttr( - name=name_scope + 'gamma', regularizer=bn_regularizer), - bias_attr=fluid.ParamAttr( - name=name_scope + 'beta', regularizer=bn_regularizer)) - else: - raise Exception("Unsupport norm type:" + cfg.MODEL.DEFAULT_NORM_TYPE) - -def bn_zero(*args, **kargs): - if cfg.MODEL.DEFAULT_NORM_TYPE == 'bn': - with scope('BatchNormZeroInit'): - return fluid.layers.batch_norm( - *args, - epsilon=cfg.MODEL.DEFAULT_EPSILON, - momentum=cfg.MODEL.BN_MOMENTUM, - param_attr=fluid.ParamAttr( - name=name_scope + 'gamma', regularizer=bn_regularizer, - initializer=fluid.initializer.ConstantInitializer(value=0.0)), - bias_attr=fluid.ParamAttr( - name=name_scope + 'beta', regularizer=bn_regularizer, - initializer=fluid.initializer.ConstantInitializer(value=0.0)), - moving_mean_name=name_scope + 'moving_mean', - moving_variance_name=name_scope + 'moving_variance', - **kargs) - - -def bn_relu(data): - return fluid.layers.relu(bn(data)) - - -def relu(data): - return fluid.layers.relu(data) - - -def conv(*args, **kargs): - kargs['param_attr'] = name_scope + 'weights' - if 'bias_attr' in kargs and kargs['bias_attr']: - kargs['bias_attr'] = fluid.ParamAttr( - name=name_scope + 'biases', - regularizer=None, - initializer=fluid.initializer.ConstantInitializer(value=0.0)) - else: - kargs['bias_attr'] = False - return fluid.layers.conv2d(*args, **kargs) - - -def deconv(*args, **kargs): - kargs['param_attr'] = name_scope + 'weights' - if 'bias_attr' in kargs and kargs['bias_attr']: - kargs['bias_attr'] = name_scope + 'biases' - else: - kargs['bias_attr'] = False - return fluid.layers.conv2d_transpose(*args, **kargs) - - -def separate_conv(input, channel, stride, filter, dilation=1, act=None): - param_attr = fluid.ParamAttr( - name=name_scope + 'weights', - regularizer=fluid.regularizer.L2DecayRegularizer( - regularization_coeff=0.0), - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.33)) - with scope('depthwise'): - input = conv( - input, - input.shape[1], - filter, - stride, - groups=input.shape[1], - padding=(filter // 2) * dilation, - dilation=dilation, - use_cudnn=False, - param_attr=param_attr) - input = bn(input) - if act: input = act(input) - - param_attr = fluid.ParamAttr( - name=name_scope + 'weights', - regularizer=None, - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.06)) - with scope('pointwise'): - input = conv( - input, channel, 1, 1, groups=1, padding=0, param_attr=param_attr) - input = bn(input) - if act: input = act(input) - return input - - -def FCNHead(input, mid_feat_channel, num_classes, output_shape): - # Arch: Conv_3x3 + BN + ReLU + Dropout + Conv_1x1 - - # Conv_3x3 + BN + ReLU - aux_seg_name= "Aux_layer1" - with scope(aux_seg_name): - conv_feat= conv(input, mid_feat_channel, filter_size=3, padding=1, bias_attr=False, name=aux_seg_name + '_conv') - bn_feat = bn(conv_feat, act='relu') - # Dropout - dropout_out = fluid.layers.dropout(bn_feat, dropout_prob=0.1, name="Aux_dropout") - - # Conv_1x1 + bilinear_upsample - aux_seg_name= "Aux_layer2" - with scope(aux_seg_name): - aux_logit = conv(dropout_out, num_classes, filter_size=1, bias_attr=True, name= aux_seg_name + '_logit_conv') - aux_logit_interp = fluid.layers.resize_bilinear(aux_logit, out_shape=output_shape, name= aux_seg_name + '_logit_interp') - - return aux_logit_interp - -def conv1d(x, output_channels, name_scope, bias_attr=False): - ''' - x:B, C, N - reshape to 4D --> conv2d --> reshape to 3D - ''' - B, C, N = x.shape - with scope(name_scope): - x = fluid.layers.reshape(x, shape=[B, C, N, 1]) - if bias_attr: - x = conv(x, output_channels, filter_size=1, name=name_scope, bias_attr=bias_attr) - else: - x = conv(x, output_channels, filter_size=1, name=name_scope) - x = fluid.layers.reshape(x, shape=[B, C, N]) - return x diff --git a/PaddleCV/Research/SemSegPaddle/src/models/model_builder.py b/PaddleCV/Research/SemSegPaddle/src/models/model_builder.py deleted file mode 100644 index 6ffc133fc862783c72825fc38c82ce4d271d3c41..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/model_builder.py +++ /dev/null @@ -1,273 +0,0 @@ -import sys -import struct -import importlib - -import paddle.fluid as fluid -import numpy as np -from paddle.fluid.proto.framework_pb2 import VarType - -from src.utils import solver -from src.utils.config import cfg -from src.utils.loss import multi_softmax_with_loss, multi_dice_loss, multi_bce_loss - - -class ModelPhase(object): - """ - Standard name for model phase in PaddleSeg - - The following standard keys are defined: - * `TRAIN`: training mode. - * `EVAL`: testing/evaluation mode. - * `PREDICT`: prediction/inference mode. - * `VISUAL` : visualization mode - """ - - TRAIN = 'train' - EVAL = 'eval' - PREDICT = 'predict' - VISUAL = 'visual' - - @staticmethod - def is_train(phase): - return phase == ModelPhase.TRAIN - - @staticmethod - def is_predict(phase): - return phase == ModelPhase.PREDICT - - @staticmethod - def is_eval(phase): - return phase == ModelPhase.EVAL - - @staticmethod - def is_visual(phase): - return phase == ModelPhase.VISUAL - - @staticmethod - def is_valid_phase(phase): - """ Check valid phase """ - if ModelPhase.is_train(phase) or ModelPhase.is_predict(phase) \ - or ModelPhase.is_eval(phase) or ModelPhase.is_visual(phase): - return True - - return False - - -def map_model_name(model_name): - name_dict = { - "deeplabv3": "deeplabv3.deeplabv3", - "pspnet": "pspnet.pspnet", - "glore": "glore.glore", - } - if model_name in name_dict.keys(): - return name_dict[model_name] - else: - raise Exception( - "unknow model name, only support unet, deeplabv3p, icnet") - - -def get_func(func_name): - """Helper to return a function object by name. func_name must identify a - function in this module or the path to a function relative to the base - 'modeling' module. - """ - print("func_name: ", func_name) - if func_name == '': - return None - try: - parts = func_name.split('.') - # Refers to a function in this module - if len(parts) == 1: - return globals()[parts[0]] - # Otherwise, assume we're referencing a module under modeling - module_name = 'src.models.' + '.'.join(parts[:-1]) - print("module_name: ", module_name) - # method 1 - #from src.models.modeling import pspnet - # method 2 - module = importlib.import_module(module_name) - return getattr(module, parts[-1]) - except Exception: - print('Failed to find function: {}'.format(func_name)) - return module - - -def softmax(logit): - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - logit = fluid.layers.softmax(logit) - logit = fluid.layers.transpose(logit, [0, 3, 1, 2]) - return logit - -def sigmoid_to_softmax(logit): - """ - one channel to two channel - """ - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - logit = fluid.layers.sigmoid(logit) - logit_back = 1 - logit - logit = fluid.layers.concat([logit_back, logit], axis=-1) - logit = fluid.layers.transpose(logit, [0, 3, 1, 2]) - return logit - - -def build_model(main_prog, start_prog, phase=ModelPhase.TRAIN): - if not ModelPhase.is_valid_phase(phase): - raise ValueError("ModelPhase {} is not valid!".format(phase)) - if ModelPhase.is_train(phase): - width = cfg.DATAAUG.CROP_SIZE - height = cfg.DATAAUG.CROP_SIZE - else: - width = cfg.TEST.CROP_SIZE - height = cfg.TEST.CROP_SIZE - - image_shape = [cfg.DATASET.DATA_DIM, height, width] - grt_shape = [1, height, width] - class_num = cfg.DATASET.NUM_CLASSES - - with fluid.program_guard(main_prog, start_prog): - with fluid.unique_name.guard(): - # 在导出模型的时候,增加图像标准化预处理,减小预测部署时图像的处理流程 - # 预测部署时只须对输入图像增加batch_size维度即可 - if ModelPhase.is_predict(phase): - origin_image = fluid.layers.data(name='image', - shape=[ -1, 1, 1, cfg.DATASET.DATA_DIM], - dtype='float32', - append_batch_size=False) - image = fluid.layers.transpose(origin_image, [0, 3, 1, 2]) - origin_shape = fluid.layers.shape(image)[-2:] - mean = np.array(cfg.MEAN).reshape(1, len(cfg.MEAN), 1, 1) - mean = fluid.layers.assign(mean.astype('float32')) - std = np.array(cfg.STD).reshape(1, len(cfg.STD), 1, 1) - std = fluid.layers.assign(std.astype('float32')) - image = (image/255 - mean)/std - image = fluid.layers.resize_bilinear(image, - out_shape=[height, width], align_corners=False, align_mode=0) - else: - image = fluid.layers.data( name='image', shape=image_shape, dtype='float32') - label = fluid.layers.data( name='label', shape=grt_shape, dtype='int32') - mask = fluid.layers.data( name='mask', shape=grt_shape, dtype='int32') - - # use PyReader when doing traning and evaluation - if ModelPhase.is_train(phase) or ModelPhase.is_eval(phase): - iterable = True if ModelPhase.is_eval(phase) else False - print("iterable: ", iterable) - py_reader = fluid.io.PyReader( - feed_list=[image, label, mask], - capacity=cfg.DATALOADER.BUF_SIZE, - iterable=iterable, - use_double_buffer=True, - return_list=False) - - model_name = map_model_name(cfg.MODEL.MODEL_NAME) - model_func = get_func("modeling." + model_name) - - loss_type = cfg.SOLVER.LOSS - if not isinstance(loss_type, list): - loss_type = list(loss_type) - - # dice_loss或bce_loss只适用两类分割中 - if class_num > 2 and (("dice_loss" in loss_type) or ("bce_loss" in loss_type)): - raise Exception("dice loss and bce loss is only applicable to binary classfication") - - # 在两类分割情况下,当loss函数选择dice_loss或bce_loss的时候,最后logit输出通道数设置为1 - if ("dice_loss" in loss_type) or ("bce_loss" in loss_type): - class_num = 1 - if "softmax_loss" in loss_type: - raise Exception("softmax loss can not combine with dice loss or bce loss") - - logits = model_func(image, class_num) - - # 根据选择的loss函数计算相应的损失函数 - if ModelPhase.is_train(phase) or ModelPhase.is_eval(phase): - loss_valid = False - avg_loss_list = [] - valid_loss = [] - if "softmax_loss" in loss_type: - avg_loss_list.append(multi_softmax_with_loss(logits, - label, mask,class_num)) - loss_valid = True - valid_loss.append("softmax_loss") - if "dice_loss" in loss_type: - avg_loss_list.append(multi_dice_loss(logits, label, mask)) - loss_valid = True - valid_loss.append("dice_loss") - if "bce_loss" in loss_type: - avg_loss_list.append(multi_bce_loss(logits, label, mask)) - loss_valid = True - valid_loss.append("bce_loss") - if not loss_valid: - raise Exception("SOLVER.LOSS: {} is set wrong. it should " - "include one of (softmax_loss, bce_loss, dice_loss) at least" - " example: ['softmax_loss'], ['dice_loss'], ['bce_loss', 'dice_loss']".format(cfg.SOLVER.LOSS)) - - invalid_loss = [x for x in loss_type if x not in valid_loss] - if len(invalid_loss) > 0: - print("Warning: the loss {} you set is invalid. it will not be included in loss computed.".format(invalid_loss)) - - avg_loss = 0 - for i in range(0, len(avg_loss_list)): - avg_loss += avg_loss_list[i] - - #get pred result in original size - if isinstance(logits, tuple): - logit = logits[0] - else: - logit = logits - - if logit.shape[2:] != label.shape[2:]: - logit = fluid.layers.resize_bilinear(logit, label.shape[2:]) - - # return image input and logit output for inference graph prune - if ModelPhase.is_predict(phase): - # 两类分割中,使用dice_loss或bce_loss返回的logit为单通道,进行到两通道的变换 - if class_num == 1: - logit = sigmoid_to_softmax(logit) - else: - logit = softmax(logit) - logit = fluid.layers.resize_bilinear(logit, out_shape=origin_shape, align_corners=False, align_mode=0) - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - logit = fluid.layers.argmax(logit, axis=3) - return origin_image, logit - - if class_num == 1: - out = sigmoid_to_softmax(logit) - out = fluid.layers.transpose(out, [0, 2, 3, 1]) - else: - out = fluid.layers.transpose(logit, [0, 2, 3, 1]) - - pred = fluid.layers.argmax(out, axis=3) - pred = fluid.layers.unsqueeze(pred, axes=[3]) - if ModelPhase.is_visual(phase): - if class_num == 1: - logit = sigmoid_to_softmax(logit) - else: - logit = softmax(logit) - return pred, logit - - if ModelPhase.is_eval(phase): - out = fluid.layers.transpose(out, [0, 3, 1, 2]) #unnormalized probability - #return py_reader, avg_loss, pred, label, mask - return py_reader, avg_loss, out, label, mask - - if ModelPhase.is_train(phase): - optimizer = solver.Solver(main_prog, start_prog) - decayed_lr = optimizer.optimise(avg_loss) - return py_reader, avg_loss, decayed_lr, pred, label, mask - - -def to_int(string, dest="I"): - return struct.unpack(dest, string)[0] - - -def parse_shape_from_file(filename): - with open(filename, "rb") as file: - version = file.read(4) - lod_level = to_int(file.read(8), dest="Q") - for i in range(lod_level): - _size = to_int(file.read(8), dest="Q") - _ = file.read(_size) - version = file.read(4) - tensor_desc_size = to_int(file.read(4)) - tensor_desc = VarType.TensorDesc() - tensor_desc.ParseFromString(file.read(tensor_desc_size)) - return tuple(tensor_desc.dims) diff --git a/PaddleCV/Research/SemSegPaddle/src/models/modeling/__init__.py b/PaddleCV/Research/SemSegPaddle/src/models/modeling/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/SemSegPaddle/src/models/modeling/deeplabv3.py b/PaddleCV/Research/SemSegPaddle/src/models/modeling/deeplabv3.py deleted file mode 100644 index 4a4fd31554d71ad38a5f5a8a4494146f9cfbf4f8..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/modeling/deeplabv3.py +++ /dev/null @@ -1,174 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import contextlib -import paddle -import paddle.fluid as fluid -from src.utils.config import cfg -from src.models.libs.model_libs import scope, name_scope -from src.models.libs.model_libs import bn, bn_relu, relu, FCNHead -from src.models.libs.model_libs import conv -from src.models.libs.model_libs import separate_conv -from src.models.backbone.mobilenet_v2 import MobileNetV2 as mobilenet_backbone -from src.models.backbone.xception import Xception as xception_backbone -from src.models.backbone.resnet import ResNet as resnet_backbone -from src.models.backbone.hrnet import HRNet as hrnet_backbone - - - -def ASPPHead(input, mid_channel, num_classes, output_shape): - # Arch of Atorus Spatial Pyramid Pooling Module: - # - # |----> ImagePool + Conv_1x1 + BN + ReLU + bilinear_interp-------->|————————| - # | | | - # |----> Conv_1x1 + BN + ReLU -------->| | - # | | | - # x----->|----> AtrousConv_3x3 + BN + ReLU -------->| concat |----> Conv_1x1 + BN + ReLU -->Dropout --> Conv_1x1 - # | | | - # |----> AtrousConv_3x3 + BN + ReLU -------->| | - # | | | - # |----> AtorusConv_3x3 + BN + ReLU -------->|________| - # - # - - if cfg.MODEL.BACKBONE_OUTPUT_STRIDE == 16: - aspp_ratios = [6, 12, 18] - elif cfg.MODEL.BACKBONE_OUTPUT_STRIDE == 8: - aspp_ratios = [12, 24, 36] - else: - raise Exception("deeplab only support stride 8 or 16") - - param_attr = fluid.ParamAttr(name=name_scope + 'weights', regularizer=None, - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.06)) - with scope('ASPPHead'): - with scope("image_pool"): - image_avg = fluid.layers.reduce_mean( input, [2, 3], keep_dim=True) - image_avg = bn_relu( conv( image_avg, mid_channel, 1, 1, groups=1, padding=0, param_attr=param_attr)) - image_avg = fluid.layers.resize_bilinear(image_avg, input.shape[2:]) - - with scope("aspp0"): - aspp0 = bn_relu( conv( input, mid_channel, 1, 1, groups=1, padding=0, param_attr=param_attr)) - with scope("aspp1"): - if cfg.MODEL.DEEPLAB.ASPP_WITH_SEP_CONV: - aspp1 = separate_conv( input, mid_channel, 1, 3, dilation=aspp_ratios[0], act=relu) - else: - aspp1 = bn_relu( conv( input, mid_channel, stride=1, filter_size=3, dilation=aspp_ratios[0], - padding=aspp_ratios[0], param_attr=param_attr)) - with scope("aspp2"): - if cfg.MODEL.DEEPLAB.ASPP_WITH_SEP_CONV: - aspp2 = separate_conv( input, mid_channel, 1, 3, dilation=aspp_ratios[1], act=relu) - else: - aspp2 = bn_relu( conv( input, mid_channel, stride=1, filter_size=3, dilation=aspp_ratios[1], - padding=aspp_ratios[1], param_attr=param_attr)) - with scope("aspp3"): - if cfg.MODEL.DEEPLAB.ASPP_WITH_SEP_CONV: - aspp3 = separate_conv( input, mid_channel, 1, 3, dilation=aspp_ratios[2], act=relu) - else: - aspp3 = bn_relu( conv( input, mid_channel, stride=1, filter_size=3, dilation=aspp_ratios[2], - padding=aspp_ratios[2], param_attr=param_attr)) - with scope("concat"): - feat = fluid.layers.concat([image_avg, aspp0, aspp1, aspp2, aspp3], axis=1) - feat = bn_relu( conv( feat, 2*mid_channel, 1, 1, groups=1, padding=0, param_attr=param_attr)) - feat = fluid.layers.dropout(feat, 0.1) - - # Conv_1x1 + bilinear_upsample - seg_name = "logit" - with scope(seg_name): - param_attr = fluid.ParamAttr( name= seg_name+'_weights', - regularizer=fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0), - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.01)) - logit = conv(feat, num_classes, filter_size=1, param_attr=param_attr, bias_attr=True, name=seg_name+'_conv') - logit_interp = fluid.layers.resize_bilinear(logit, out_shape=output_shape, name=seg_name+'_interp') - - return logit_interp - - - -def mobilenetv2(input): - # Backbone: mobilenetv2结构配置 - # DEPTH_MULTIPLIER: mobilenetv2的scale设置,默认1.0 - # OUTPUT_STRIDE:下采样倍数 - # end_points: mobilenetv2的block数 - # decode_point: 从mobilenetv2中引出分支所在block数, 作为decoder输入 - scale = cfg.MODEL.DEEPLABv3.DEPTH_MULTIPLIER - output_stride = cfg.MODEL.DEEPLABv3.OUTPUT_STRIDE - model = mobilenet_backbone(scale=scale, output_stride=output_stride) - end_points = 18 - decode_point = 4 - data, decode_shortcuts = model.net( - input, end_points=end_points, decode_points=decode_point) - decode_shortcut = decode_shortcuts[decode_point] - return data, decode_shortcut - - -def xception(input): - # Backbone: Xception结构配置, xception_65, xception_41, xception_71三种可选 - # decode_point: 从Xception中引出分支所在block数,作为decoder输入 - # end_point:Xception的block数 - cfg.MODEL.DEFAULT_EPSILON = 1e-3 - model = xception_backbone(cfg.MODEL.BACKBONE) - backbone = cfg.MODEL.BACKBONE - output_stride = cfg.MODEL.DEEPLABv3.OUTPUT_STRIDE - if '65' in backbone: - decode_point = 2 - end_points = 21 - if '41' in backbone: - decode_point = 2 - end_points = 13 - if '71' in backbone: - decode_point = 3 - end_points = 23 - data, decode_shortcuts = model.net( - input, - output_stride=output_stride, - end_points=end_points, - decode_points=decode_point) - decode_shortcut = decode_shortcuts[decode_point] - return data, decode_shortcut - - -def resnet(input): - # dilation_dict: - # key: stage num - # value: dilation factor - - scale = cfg.MODEL.DEEPLABv3.DEPTH_MULTIPLIER - layers = cfg.MODEL.BACKBONE_LAYERS - end_points = layers - 1 - decode_points = [91,100 ] # [10, 22, 91, 100], for obtaining feature maps of res2,res3, res4, and res5 - dilation_dict = {2:2, 3:4} - model = resnet_backbone(layers, scale) - res5, feat_dict = model.net(input, - end_points=end_points, - dilation_dict=dilation_dict, - decode_points=decode_points) - return res5, feat_dict - - -def hrnet(input): - model = hrnet_backbone(stride=4, seg_flag=True) - feats = model.net(input) - return feats - -def deeplabv3(input, num_classes): - """ - Chen, Liang-Chieh, et al. "Rethinking atrous convolution for semantic image segmentation", in arXiv:1706:05587 - """ - if 'xception' in cfg.MODEL.BACKBONE: - data, decode_shortcut = xception(input) - elif 'mobilenet' in cfg.MODEL.BACKBONE: - data, decode_shortcut = mobilenetv2(input) - elif 'resnet' in cfg.MODEL.BACKBONE: - res5, feat_dict = resnet(input) - res4 = feat_dict[91] - elif 'hrnet' in cfg.MODEL.BACKBONE: - res5 = hrnet(input) - else: - raise Exception("deeplabv3 only support xception, mobilenet, resnet, and hrnet backbone") - - logit = ASPPHead(res5, mid_channel= 256, num_classes= num_classes, output_shape= input.shape[2:]) - if cfg.MODEL.DEEPLABv3.AuxHead: - aux_logit = FCNHead(res4, 256, num_classes, input.shape[2:]) - return logit, aux_logit - return logit - diff --git a/PaddleCV/Research/SemSegPaddle/src/models/modeling/glore.py b/PaddleCV/Research/SemSegPaddle/src/models/modeling/glore.py deleted file mode 100644 index 9b909a1c1865f507f0f533f7c85391840e8eac9b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/modeling/glore.py +++ /dev/null @@ -1,126 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import sys -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from src.models.libs.model_libs import scope, name_scope -from src.models.libs.model_libs import avg_pool, conv, bn, bn_zero, conv1d, FCNHead -from src.models.backbone.resnet import ResNet as resnet_backbone -from src.utils.config import cfg - - -def get_logit_interp(input, num_classes, out_shape, name="logit"): - # 1x1_Conv - param_attr = fluid.ParamAttr( - name= name + 'weights', - regularizer= fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0), - initializer= fluid.initializer.TruncatedNormal(loc=0.0, scale=0.01)) - - with scope(name): - logit = conv(input, num_classes, filter_size=1, param_attr=param_attr, bias_attr=True, name=name+'_conv') - logit_interp = fluid.layers.resize_bilinear( logit, out_shape=out_shape, name=name+'_interp') - return logit_interp - - -def gcn_module(name_scope, x, num_node, num_state): - ''' - input: any tensor of 3D, B,C,N - ''' - print(x.shape) - h = fluid.layers.transpose(x, perm=[0, 2, 1]) #B,C,N-->B,N,C - h = conv1d(h, num_node, name_scope+'_conv1d1', bias_attr=True) - h = fluid.layers.transpose(h, perm=[0, 2, 1]) #B,C,N - h = fluid.layers.elementwise_add(h, x, act='relu') - h = conv1d(h, num_state, name_scope+'_conv1d2', bias_attr= False) - return h - -def gru_module(x, num_state, num_node): - ''' - Global Reasoning Unit: projection --> graph reasoning --> reverse projection - params: - x: B x C x H x W - num_state: the dimension of each vertex feature - num_node: the number of vertet - output: B x C x H x W - feature trans: - B, C, H, W --> B, N, H, W --> B, N, H*W -->B, N, C1 -->B, C1, N-->B, C1, N-->B, C1, H*W-->B, C, H, W - --> B, C1,H, W -->B, C1,H*W -->B, H*W, C1 - ''' - # generate B - num_batch, C, H, W = x.shape - with scope('projection'): - B = conv(x, num_node, - filter_size=1, - bias_attr=True, - name='projection'+'_conv') #num_batch, node, H, W - B = fluid.layers.reshape(B, shape=[num_batch, num_node, H*W]) # Projection Matrix: num_batch, node, L=H*W - # reduce dimension - with scope('reduce_channel'): - x_reduce = conv(x, num_state, - filter_size=1, - bias_attr=True, - name='reduce_channel'+'_conv') #num_batch, num_state, H, W - x_reduce = fluid.layers.reshape(x_reduce, shape=[num_batch, num_state, H*W]) #num_batch, num_state, L - x_reduce = fluid.layers.transpose(x_reduce, perm=[0, 2, 1]) #num_batch, L, num_state - - V = fluid.layers.transpose(fluid.layers.matmul(B, x_reduce), perm=[0,2,1]) #num_batch, num_state, num_node - #L = fluid.layers.fill_constant(shape=[1], value=H*W, dtype='float32') - #V = fluid.layers.elementwise_div(V, L) - new_V = gcn_module('gru'+'_gcn', V, num_node, num_state) - - B = fluid.layers.reshape(B, shape= [num_batch, num_node, H*W]) - D = fluid.layers.transpose(B, perm=[0, 2, 1]) - Y = fluid.layers.matmul(D, fluid.layers.transpose(new_V, perm=[0, 2, 1])) - Y = fluid.layers.transpose(Y, perm=[0, 2, 1]) - Y = fluid.layers.reshape(Y, shape=[num_batch, num_state, H, W]) - with scope('extend_dim'): - Y = conv(Y, C, filter_size=1, bias_attr=False, name='extend_dim'+'_conv') - #Y = bn_zero(Y) - Y = bn(Y) - out = fluid.layers.elementwise_add(Y, x) - return out - -def resnet(input): - # end_points: end_layer of resnet backbone - # dilation_dict: dilation factor for stages_key - scale = cfg.MODEL.GLORE.DEPTH_MULTIPLIER - layers = cfg.MODEL.BACKBONE_LAYERS - end_points = layers - 1 - dilation_dict = {2:2, 3:4} - decode_points= [91, 100] - model = resnet_backbone(layers, scale) - res5, feat_dict = model.net(input, - end_points=end_points, - dilation_dict=dilation_dict, - decode_points= decode_points) - - return res5, feat_dict - -def glore(input, num_classes): - """ - Reference: - Chen, Yunpeng, et al. "Graph-Based Global Reasoning Networks", In CVPR 2019 - """ - - # Backbone: ResNet - res5, feat_dict = resnet(input) - res4= feat_dict[91] - # 3x3 Conv. 2048 -> 512 - reduce_kernel=3 - if cfg.DATASET.DATASET_NAME=='cityscapes': - reduce_kernel=1 - with scope('feature'): - feature = conv(res5, 512, filter_size=reduce_kernel, bias_attr=False, name='feature_conv') - feature = bn(feature, act='relu') - # GRU Module - gru_output = gru_module(feature, num_state= 128, num_node = 64) - dropout = fluid.layers.dropout(gru_output, dropout_prob=0.1, name="dropout") - - logit = get_logit_interp(dropout, num_classes, input.shape[2:]) - if cfg.MODEL.GLORE.AuxHead: - aux_logit = FCNHead(res4, 256, num_classes, input.shape[2:]) - return logit, aux_logit - - return logit - diff --git a/PaddleCV/Research/SemSegPaddle/src/models/modeling/pspnet.py b/PaddleCV/Research/SemSegPaddle/src/models/modeling/pspnet.py deleted file mode 100644 index 286c48bd733cf3a8c3aa3a49a0d5e8f0d18a2e1f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/models/modeling/pspnet.py +++ /dev/null @@ -1,100 +0,0 @@ -from __future__ import division -from __future__ import print_function -import sys -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from src.models.libs.model_libs import scope, name_scope -from src.models.libs.model_libs import avg_pool, conv, bn, FCNHead -from src.models.backbone.resnet import ResNet as resnet_backbone -from src.models.backbone.hrnet import HRNet as hrnet_backbone -from src.utils.config import cfg - - -def PSPHead(input, out_features, num_classes, output_shape): - # Arch of Pyramid Scene Parsing Module: - # - # |----> Pool_1x1 + Conv_1x1 + BN + ReLU + bilinear_interp-------->|————————| - # | | | - # |----> Pool_2x2 + Conv_1x1 + BN + ReLU + bilinear_interp-------->| | - # x ------>| | concat |----> Conv_3x3 + BN + ReLU -->Dropout --> Conv_1x1 - # | |----> Pool_3x3 + Conv_1x1 + BN + ReLU + bilinear_interp-------->| | - # | | | | - # | |----> Pool_6x6 + Conv_1x1 + BN + ReLU + bilinear_interp-------->|________| - # | ^ - # |——————————————————————————————————————————————————————————————————————————————| - # - cat_layers = [] - sizes = (1,2,3,6) - # 4 parallel pooling branches - for size in sizes: - psp_name = "psp" + str(size) - with scope(psp_name): - pool_feat = fluid.layers.adaptive_pool2d(input, pool_size=[size, size], pool_type='avg', - name=psp_name+'_adapool') - conv_feat = conv(pool_feat, out_features, filter_size=1, bias_attr=True, - name= psp_name + '_conv') - bn_feat = bn(conv_feat, act='relu') - interp = fluid.layers.resize_bilinear(bn_feat, out_shape=input.shape[2:], name=psp_name+'_interp') - cat_layers.append(interp) - cat_layers = [input] + cat_layers[::-1] - cat = fluid.layers.concat(cat_layers, axis=1, name='psp_cat') - - # Conv_3x3 + BN + ReLU - psp_end_name = "psp_end" - with scope(psp_end_name): - data = conv(cat, out_features, filter_size=3, padding=1, bias_attr=True, name=psp_end_name) - out = bn(data, act='relu') - # Dropout - dropout_out = fluid.layers.dropout(out, dropout_prob=0.1, name="dropout") - - # Conv_1x1 + bilinear_upsample - seg_name = "logit" - with scope(seg_name): - param_attr = fluid.ParamAttr( name= seg_name+'_weights', - regularizer=fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0), - initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.01)) - logit = conv(dropout_out, num_classes, filter_size=1, param_attr=param_attr, bias_attr=True, name=seg_name+'_conv') - logit_interp = fluid.layers.resize_bilinear(logit, out_shape=output_shape, name=seg_name+'_interp') - - return logit_interp - -def resnet(input): - # dilation_dict: - # key: stage num - # value: dilation factor - - scale = cfg.MODEL.PSPNET.DEPTH_MULTIPLIER - layers = cfg.MODEL.BACKBONE_LAYERS - end_points = layers - 1 - decode_points = [91, 100] # [10, 22, 91, 100], for obtaining feature maps of res2,res3, res4, and res5 - dilation_dict = {2:2, 3:4} - model = resnet_backbone(layers, scale) - res5, feat_dict = model.net(input, - end_points=end_points, - dilation_dict=dilation_dict, - decode_points=decode_points) - return res5, feat_dict - -def hrnet(input): - model = hrnet_backbone(stride=4, seg_flag=True) - feats = model.net(input) - return feats - -def pspnet(input, num_classes): - """ - Reference: - Zhao, Hengshuang, et al. "Pyramid scene parsing network.", In CVPR 2017 - """ - if 'resnet' in cfg.MODEL.BACKBONE: - res5, feat_dict = resnet(input) - res4 = feat_dict[91] - elif 'hrnet' in cfg.MODEL.BACKBONE: - res5 = hrnet(input) - else: - raise Exception("pspnet only support resnet and hrnet backbone") - logit = PSPHead(res5, 512, num_classes, input.shape[2:]) - if cfg.MODEL.PSPNET.AuxHead: - aux_logit = FCNHead(res4, 256, num_classes, input.shape[2:]) - return logit, aux_logit - return logit - diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/__init__.py b/PaddleCV/Research/SemSegPaddle/src/utils/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/collect.py b/PaddleCV/Research/SemSegPaddle/src/utils/collect.py deleted file mode 100644 index c434bf47a443e03dbd4ef352cbf7ceacd152cd4a..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/collect.py +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License" -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""A simple attribute dictionary used for representing configuration options.""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import copy -import codecs -from ast import literal_eval - -import yaml -import six - - -class SegConfig(dict): - def __init__(self, *args, **kwargs): - super(SegConfig, self).__init__(*args, **kwargs) - self.immutable = False - - def __setattr__(self, key, value, create_if_not_exist=True): - if key in ["immutable"]: - self.__dict__[key] = value - return - - t = self - keylist = key.split(".") - for k in keylist[:-1]: - t = t.__getattr__(k, create_if_not_exist) - - t.__getattr__(keylist[-1], create_if_not_exist) - t[keylist[-1]] = value - - def __getattr__(self, key, create_if_not_exist=True): - if key in ["immutable"]: - return self.__dict__[key] - - if not key in self: - if not create_if_not_exist: - raise KeyError - self[key] = SegConfig() - return self[key] - - def __setitem__(self, key, value): - # - if self.immutable: - raise AttributeError( - 'Attempted to set "{}" to "{}", but SegConfig is immutable'. - format(key, value)) - # - if isinstance(value, six.string_types): - try: - value = literal_eval(value) - except ValueError: - pass - except SyntaxError: - pass - super(SegConfig, self).__setitem__(key, value) - - def update_from_segconfig(self, other): - if isinstance(other, dict): - other = SegConfig(other) - assert isinstance(other, SegConfig) - diclist = [("", other)] - while len(diclist): - prefix, tdic = diclist[0] - diclist = diclist[1:] - for key, value in tdic.items(): - key = "{}.{}".format(prefix, key) if prefix else key - if isinstance(value, dict): - diclist.append((key, value)) - continue - try: - self.__setattr__(key, value, create_if_not_exist=False) - except KeyError: - raise KeyError('Non-existent config key: {}'.format(key)) - - def check_and_infer(self): - if self.DATASET.IMAGE_TYPE in ['rgb', 'gray']: - self.DATASET.DATA_DIM = 3 - elif self.DATASET.IMAGE_TYPE in ['rgba']: - self.DATASET.DATA_DIM = 4 - else: - raise KeyError( - 'DATASET.IMAGE_TYPE config error, only support `rgb`, `gray` and `rgba`' - ) - if self.MEAN is not None: - self.DATASET.PADDING_VALUE = [x*255.0 for x in self.MEAN] - """ - if not self.TRAIN_CROP_SIZE: - raise ValueError( - 'TRAIN_CROP_SIZE is empty! Please set a pair of values in format (width, height)' - ) - - if not self.EVAL_CROP_SIZE: - raise ValueError( - 'EVAL_CROP_SIZE is empty! Please set a pair of values in format (width, height)' - ) - """ - - # Ensure file list is use UTF-8 encoding - train_sets = codecs.open(self.DATASET.TRAIN_FILE_LIST, 'r', 'utf-8').readlines() - val_sets = codecs.open(self.DATASET.VAL_FILE_LIST, 'r', 'utf-8').readlines() - test_sets = codecs.open(self.DATASET.TEST_FILE_LIST, 'r', 'utf-8').readlines() - self.DATASET.TRAIN_TOTAL_IMAGES = len(train_sets) - self.DATASET.VAL_TOTAL_IMAGES = len(val_sets) - self.DATASET.TEST_TOTAL_IMAGES = len(test_sets) - - if self.MODEL.MODEL_NAME == 'icnet' and \ - len(self.MODEL.MULTI_LOSS_WEIGHT) != 3: - self.MODEL.MULTI_LOSS_WEIGHT = [1.0, 0.4, 0.16] - - def update_from_list(self, config_list): - if len(config_list) % 2 != 0: - raise ValueError( - "Command line options config format error! Please check it: {}". - format(config_list)) - for key, value in zip(config_list[0::2], config_list[1::2]): - try: - self.__setattr__(key, value, create_if_not_exist=False) - except KeyError: - raise KeyError('Non-existent config key: {}'.format(key)) - - def update_from_file(self, config_file): - with codecs.open(config_file, 'r', 'utf-8') as file: - dic = yaml.load(file, Loader=yaml.FullLoader) - self.update_from_segconfig(dic) - - def set_immutable(self, immutable): - self.immutable = immutable - for value in self.values(): - if isinstance(value, SegConfig): - value.set_immutable(immutable) - - def is_immutable(self): - return self.immutable diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/config.py b/PaddleCV/Research/SemSegPaddle/src/utils/config.py deleted file mode 100644 index 9bec393bc63f9e69e4c4546233075915077835e4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/config.py +++ /dev/null @@ -1,192 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License" -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import print_function -from __future__ import unicode_literals -from .collect import SegConfig -import numpy as np - -cfg = SegConfig() - -########################## 基本配置 ########################################### -# 均值,图像预处理减去的均值 -#cfg.MEAN = [0.5, 0.5, 0.5] -cfg.MEAN = [0.485, 0.456, 0.406] -# 标准差,图像预处理除以标准差· -cfg.STD = [0.229, 0.224, 0.225] -# 批处理大小 -cfg.TRAIN_BATCH_SIZE_PER_GPU = 2 -cfg.TRAIN_BATCH_SIZE= 8 -cfg.EVAL_BATCH_SIZE= 8 -# 多进程训练总进程数 -cfg.NUM_TRAINERS = 1 -# 多进程训练进程ID -cfg.TRAINER_ID = 0 -########################## 数据载入配置 ####################################### -# 数据载入时的并发数, 建议值8 -cfg.DATALOADER.NUM_WORKERS = 8 -# 数据载入时缓存队列大小, 建议值256 -cfg.DATALOADER.BUF_SIZE = 256 - -########################## 数据集配置 ######################################### -cfg.DATASET.DATASET_NAME = 'cityscapes' -# 数据主目录目录 -cfg.DATASET.DATA_DIR = './data_local/cityscapes/' -# 训练集列表 -cfg.DATASET.TRAIN_FILE_LIST = './data_local/cityscapes/train.list' -# 训练集数量 -cfg.DATASET.TRAIN_TOTAL_IMAGES = 5 -# 验证集列表 -cfg.DATASET.VAL_FILE_LIST = './data_local/cityscapes/val.list' -# 验证数据数量 -cfg.DATASET.VAL_TOTAL_IMAGES = 50 -# 测试数据列表 -cfg.DATASET.TEST_FILE_LIST = './data_local/cityscapes/test.list' -# 测试数据数量 -cfg.DATASET.TEST_TOTAL_IMAGES = 1525 -# Tensorboard 可视化的数据集 -cfg.DATASET.VIS_FILE_LIST = None -# 类别数(需包括背景类) -cfg.DATASET.NUM_CLASSES = 19 -# 输入图像类型, 支持三通道'rgb',四通道'rgba',单通道灰度图'gray' -cfg.DATASET.IMAGE_TYPE = 'rgb' -# 输入图片的通道数 -cfg.DATASET.DATA_DIM = 3 -# 数据列表分割符, 默认为空格 -cfg.DATASET.SEPARATOR = '\t' -# 忽略的像素标签值, 默认为255,一般无需改动 -cfg.DATASET.IGNORE_INDEX = 255 -# 数据增强是图像的padding值 -cfg.DATASET.PADDING_VALUE = [127.5, 127.5, 127.5] - -########################### 数据增强配置 ###################################### -cfg.DATAAUG.EXTRA = True -cfg.DATAAUG.BASE_SIZE = 1024 -cfg.DATAAUG.CROP_SIZE = 769 -cfg.DATAAUG.RAND_SCALE_MIN = 0.75 -cfg.DATAAUG.RAND_SCALE_MAX = 2.0 - - -########################### 训练配置 ########################################## -# 模型保存路径 -cfg.TRAIN.MODEL_SAVE_DIR = '' -# 预训练模型路径 -cfg.TRAIN.PRETRAINED_MODEL_DIR = '' -# 是否resume,继续训练 -cfg.TRAIN.RESUME_MODEL_DIR = '' -# 是否使用多卡间同步BatchNorm均值和方差 -cfg.TRAIN.SYNC_BATCH_NORM = True -# 模型参数保存的epoch间隔数,可用来继续训练中断的模型 -cfg.TRAIN.SNAPSHOT_EPOCH = 10 - -########################### 模型优化相关配置 ################################## -# 初始学习率 -cfg.SOLVER.LR = 0.001 -# 学习率下降方法, 支持poly piecewise cosine 三种 -cfg.SOLVER.LR_POLICY = "poly" -# 优化算法, 支持SGD和Adam两种算法 -cfg.SOLVER.OPTIMIZER = "sgd" -# 动量参数 -cfg.SOLVER.MOMENTUM = 0.9 -# 二阶矩估计的指数衰减率 -cfg.SOLVER.MOMENTUM2 = 0.999 -# 学习率Poly下降指数 -cfg.SOLVER.POWER = 0.9 -# step下降指数 -cfg.SOLVER.GAMMA = 0.1 -# step下降间隔 -cfg.SOLVER.DECAY_EPOCH = [10, 20] -# 学习率权重衰减,0-1 -#cfg.SOLVER.WEIGHT_DECAY = 0.0001 -cfg.SOLVER.WEIGHT_DECAY = 0.00004 -# 训练开始epoch数,默认为1 -cfg.SOLVER.BEGIN_EPOCH = 1 -# 训练epoch数,正整数 -cfg.SOLVER.NUM_EPOCHS = 30 -# loss的选择,支持softmax_loss, bce_loss, dice_loss -cfg.SOLVER.LOSS = ["softmax_loss"] -# 是否开启warmup学习策略 -cfg.SOLVER.LR_WARMUP = False -# warmup的迭代次数 -cfg.SOLVER.LR_WARMUP_STEPS = 2000 - -########################## 测试配置 ########################################### -# 测试模型路径 -cfg.TEST.TEST_MODEL = '' -cfg.TEST.BASE_SIZE = 2048 -cfg.TEST.CROP_SIZE = 769 -cfg.TEST.SLIDE_WINDOW = True - -########################## 模型通用配置 ####################################### -# 模型名称, 支持pspnet, deeplabv3, glore, ginet -cfg.MODEL.MODEL_NAME = '' -# BatchNorm类型: bn、gn(group_norm) -cfg.MODEL.DEFAULT_NORM_TYPE = 'bn' -# 多路损失加权值 -cfg.MODEL.MULTI_LOSS_WEIGHT = [1.0, 0.4] -# DEFAULT_NORM_TYPE为gn时group数 -cfg.MODEL.DEFAULT_GROUP_NUMBER = 32 -# 极小值, 防止分母除0溢出,一般无需改动 -cfg.MODEL.DEFAULT_EPSILON = 1e-5 -# BatchNorm动量, 一般无需改动 -cfg.MODEL.BN_MOMENTUM = 0.99 -# 是否使用FP16训练 -cfg.MODEL.FP16 = False -# 混合精度训练需对LOSS进行scale, 默认为动态scale,静态scale可以设置为512.0 -cfg.MODEL.SCALE_LOSS = "DYNAMIC" -# backbone network, (resnet, hrnet, xception_65, mobilenetv2) -cfg.MODEL.BACKBONE= "resnet" -# backbone_layer: 101 and 50 for resnet -cfg.MODEL.BACKBONE_LAYERS=101 -# strides= input.size / feature_maps.size -cfg.MODEL.BACKBONE_OUTPUT_STRIDE=8 -cfg.MODEL.BACKBONE_MULTI_GRID = False - - - -########################## PSPNET模型配置 ###################################### -# RESNET backbone scale 设置 -cfg.MODEL.PSPNET.DEPTH_MULTIPLIER = 1 -# Aux loss -cfg.MODEL.PSPNET.AuxHead= True - - -########################## GloRe模型配置 ###################################### -# RESNET backbone scale 设置 -cfg.MODEL.GLORE.DEPTH_MULTIPLIER = 1 -# Aux loss -cfg.MODEL.GLORE.AuxHead= True - -########################## DeepLabv3模型配置 #################################### -# MobileNet v2 backbone scale 设置 -cfg.MODEL.DEEPLABv3.DEPTH_MULTIPLIER = 1.0 -# ASPP是否使用可分离卷积 -cfg.MODEL.DEEPLABv3.ASPP_WITH_SEP_CONV = True -cfg.MODEL.DEEPLABv3.AuxHead= True - - - -########################## HRNET模型配置 ###################################### -# HRNET STAGE2 设置 -cfg.MODEL.HRNET.STAGE2.NUM_MODULES = 1 -cfg.MODEL.HRNET.STAGE2.NUM_CHANNELS = [40, 80] -# HRNET STAGE3 设置 -cfg.MODEL.HRNET.STAGE3.NUM_MODULES = 4 -cfg.MODEL.HRNET.STAGE3.NUM_CHANNELS = [40, 80, 160] -# HRNET STAGE4 设置 -cfg.MODEL.HRNET.STAGE4.NUM_MODULES = 3 -cfg.MODEL.HRNET.STAGE4.NUM_CHANNELS = [40, 80, 160, 320] - - diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/dist_utils.py b/PaddleCV/Research/SemSegPaddle/src/utils/dist_utils.py deleted file mode 100755 index 64c8800fd2010d4e1e5def6cc4ea2e1ad673b4a3..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/dist_utils.py +++ /dev/null @@ -1,92 +0,0 @@ -#copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import paddle.fluid as fluid - - -def nccl2_prepare(args, startup_prog, main_prog): - config = fluid.DistributeTranspilerConfig() - config.mode = "nccl2" - t = fluid.DistributeTranspiler(config=config) - - envs = args.dist_env - - t.transpile( - envs["trainer_id"], - trainers=','.join(envs["trainer_endpoints"]), - current_endpoint=envs["current_endpoint"], - startup_program=startup_prog, - program=main_prog) - - -def pserver_prepare(args, train_prog, startup_prog): - config = fluid.DistributeTranspilerConfig() - config.slice_var_up = args.split_var - t = fluid.DistributeTranspiler(config=config) - envs = args.dist_env - training_role = envs["training_role"] - - t.transpile( - envs["trainer_id"], - program=train_prog, - pservers=envs["pserver_endpoints"], - trainers=envs["num_trainers"], - sync_mode=not args.async_mode, - startup_program=startup_prog) - if training_role == "PSERVER": - pserver_program = t.get_pserver_program(envs["current_endpoint"]) - pserver_startup_program = t.get_startup_program( - envs["current_endpoint"], - pserver_program, - startup_program=startup_prog) - return pserver_program, pserver_startup_program - elif training_role == "TRAINER": - train_program = t.get_trainer_program() - return train_program, startup_prog - else: - raise ValueError( - 'PADDLE_TRAINING_ROLE environment variable must be either TRAINER or PSERVER' - ) - - -def nccl2_prepare_paddle(trainer_id, startup_prog, main_prog): - config = fluid.DistributeTranspilerConfig() - config.mode = "nccl2" - t = fluid.DistributeTranspiler(config=config) - t.transpile( - trainer_id, - trainers=os.environ.get('PADDLE_TRAINER_ENDPOINTS'), - current_endpoint=os.environ.get('PADDLE_CURRENT_ENDPOINT'), - startup_program=startup_prog, - program=main_prog) - - -def prepare_for_multi_process(exe, build_strategy, train_prog): - # prepare for multi-process - trainer_id = int(os.environ.get('PADDLE_TRAINER_ID', 0)) - num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - if num_trainers < 2: return - - build_strategy.num_trainers = num_trainers - build_strategy.trainer_id = trainer_id - # NOTE(zcd): use multi processes to train the model, - # and each process use one GPU card. - startup_prog = fluid.Program() - nccl2_prepare_paddle(trainer_id, startup_prog, train_prog) - # the startup_prog are run two times, but it doesn't matter. - exe.run(startup_prog) diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/fp16_utils.py b/PaddleCV/Research/SemSegPaddle/src/utils/fp16_utils.py deleted file mode 100644 index 38edda500c17aefba4f8c9c59284a40c03c99843..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/fp16_utils.py +++ /dev/null @@ -1,31 +0,0 @@ -import os -from paddle import fluid - -def load_fp16_vars(executor, dirname, program): - load_dirname = os.path.normpath(dirname) - - def _if_exist(var): - name = var.name[:-7] if var.name.endswith('.master') else var.name - b = os.path.exists(os.path.join(load_dirname, name)) - if not b and isinstance(var, fluid.framework.Parameter): - print("===== {} not found ====".format(var.name)) - return b - - load_prog = fluid.Program() - load_block = load_prog.global_block() - vars = list(filter(_if_exist, program.list_vars())) - - for var in vars: - new_var = fluid.io._clone_var_in_block_(load_block, var) - name = var.name[:-7] if var.name.endswith('.master') else var.name - file_path = os.path.join(load_dirname, name) - load_block.append_op( - type='load', - inputs={}, - outputs={'Out': [new_var]}, - attrs={ - 'file_path': file_path, - 'load_as_fp16': var.dtype == fluid.core.VarDesc.VarType.FP16 - }) - - executor.run(load_prog) \ No newline at end of file diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/loss.py b/PaddleCV/Research/SemSegPaddle/src/utils/loss.py deleted file mode 100644 index 6bb6e98332912770b794ee6a84d849fef81773d6..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/loss.py +++ /dev/null @@ -1,121 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys -import paddle.fluid as fluid -import numpy as np -import importlib -from src.utils.config import cfg - - -def softmax_with_loss(logit, label, ignore_mask=None, num_classes=2): - ignore_mask = fluid.layers.cast(ignore_mask, 'float32') - label = fluid.layers.elementwise_min( label, fluid.layers.assign(np.array([num_classes - 1], dtype=np.int32))) - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - logit = fluid.layers.reshape(logit, [-1, num_classes]) - label = fluid.layers.reshape(label, [-1, 1]) - label = fluid.layers.cast(label, 'int64') - ignore_mask = fluid.layers.reshape(ignore_mask, [-1, 1]) - - loss, probs = fluid.layers.softmax_with_cross_entropy( - logit, - label, - ignore_index=cfg.DATASET.IGNORE_INDEX, - return_softmax=True) - - loss = loss * ignore_mask - avg_loss = fluid.layers.mean(loss) / fluid.layers.mean(ignore_mask) - - label.stop_gradient = True - ignore_mask.stop_gradient = True - return avg_loss - -# to change, how to appicate ignore index and ignore mask -def dice_loss(logit, label, ignore_mask=None, epsilon=0.00001): - if logit.shape[1] != 1 or label.shape[1] != 1 or ignore_mask.shape[1] != 1: - raise Exception("dice loss is only applicable to one channel classfication") - ignore_mask = fluid.layers.cast(ignore_mask, 'float32') - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - label = fluid.layers.transpose(label, [0, 2, 3, 1]) - label = fluid.layers.cast(label, 'int64') - ignore_mask = fluid.layers.transpose(ignore_mask, [0, 2, 3, 1]) - logit = fluid.layers.sigmoid(logit) - logit = logit * ignore_mask - label = label * ignore_mask - reduce_dim = list(range(1, len(logit.shape))) - inse = fluid.layers.reduce_sum(logit * label, dim=reduce_dim) - dice_denominator = fluid.layers.reduce_sum( - logit, dim=reduce_dim) + fluid.layers.reduce_sum( - label, dim=reduce_dim) - dice_score = 1 - inse * 2 / (dice_denominator + epsilon) - label.stop_gradient = True - ignore_mask.stop_gradient = True - return fluid.layers.reduce_mean(dice_score) - -def bce_loss(logit, label, ignore_mask=None): - if logit.shape[1] != 1 or label.shape[1] != 1 or ignore_mask.shape[1] != 1: - raise Exception("bce loss is only applicable to binary classfication") - label = fluid.layers.cast(label, 'float32') - loss = fluid.layers.sigmoid_cross_entropy_with_logits( - x=logit, - label=label, - ignore_index=cfg.DATASET.IGNORE_INDEX, - normalize=True) # or False - loss = fluid.layers.reduce_sum(loss) - label.stop_gradient = True - ignore_mask.stop_gradient = True - return loss - - -def multi_softmax_with_loss(logits, label, ignore_mask=None, num_classes=2): - if isinstance(logits, tuple): - print("logits.type: ",type(logits)) - avg_loss = 0 - for i, logit in enumerate(logits): - logit_label = fluid.layers.resize_nearest(label, logit.shape[2:]) - logit_mask = (logit_label.astype('int32') != - cfg.DATASET.IGNORE_INDEX).astype('int32') - loss = softmax_with_loss(logit, logit_label, logit_mask, - num_classes) - avg_loss += cfg.MODEL.MULTI_LOSS_WEIGHT[i] * loss - else: - avg_loss = softmax_with_loss(logits, label, ignore_mask, num_classes) - return avg_loss - -def multi_dice_loss(logits, label, ignore_mask=None): - if isinstance(logits, tuple): - avg_loss = 0 - for i, logit in enumerate(logits): - logit_label = fluid.layers.resize_nearest(label, logit.shape[2:]) - logit_mask = (logit_label.astype('int32') != - cfg.DATASET.IGNORE_INDEX).astype('int32') - loss = dice_loss(logit, logit_label, logit_mask) - avg_loss += cfg.MODEL.MULTI_LOSS_WEIGHT[i] * loss - else: - avg_loss = dice_loss(logits, label, ignore_mask) - return avg_loss - -def multi_bce_loss(logits, label, ignore_mask=None): - if isinstance(logits, tuple): - avg_loss = 0 - for i, logit in enumerate(logits): - logit_label = fluid.layers.resize_nearest(label, logit.shape[2:]) - logit_mask = (logit_label.astype('int32') != - cfg.DATASET.IGNORE_INDEX).astype('int32') - loss = bce_loss(logit, logit_label, logit_mask) - avg_loss += cfg.MODEL.MULTI_LOSS_WEIGHT[i] * loss - else: - avg_loss = bce_loss(logits, label, ignore_mask) - return avg_loss diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/metrics.py b/PaddleCV/Research/SemSegPaddle/src/utils/metrics.py deleted file mode 100644 index 2898be028f3dfa03ad9892310da89f7695829542..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/metrics.py +++ /dev/null @@ -1,145 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import sys -import numpy as np -from scipy.sparse import csr_matrix - - -class ConfusionMatrix(object): - """ - Confusion Matrix for segmentation evaluation - """ - - def __init__(self, num_classes=2, streaming=False): - self.confusion_matrix = np.zeros([num_classes, num_classes], - dtype='int64') - self.num_classes = num_classes - self.streaming = streaming - - def calculate(self, pred, label, ignore=None): - # If not in streaming mode, clear matrix everytime when call `calculate` - if not self.streaming: - self.zero_matrix() - - label = np.transpose(label, (0, 2, 3, 1)) - ignore = np.transpose(ignore, (0, 2, 3, 1)) - mask = np.array(ignore) == 1 - - label = np.asarray(label)[mask] - pred = np.asarray(pred)[mask] - one = np.ones_like(pred) - # Accumuate ([row=label, col=pred], 1) into sparse matrix - spm = csr_matrix((one, (label, pred)), - shape=(self.num_classes, self.num_classes)) - spm = spm.todense() - self.confusion_matrix += spm - - def zero_matrix(self): - """ Clear confusion matrix """ - self.confusion_matrix = np.zeros([self.num_classes, self.num_classes], - dtype='int64') - - def mean_iou(self): - iou_list = [] - avg_iou = 0 - # TODO: use numpy sum axis api to simpliy - vji = np.zeros(self.num_classes, dtype=int) - vij = np.zeros(self.num_classes, dtype=int) - for j in range(self.num_classes): - v_j = 0 - for i in range(self.num_classes): - v_j += self.confusion_matrix[j][i] - vji[j] = v_j - - for i in range(self.num_classes): - v_i = 0 - for j in range(self.num_classes): - v_i += self.confusion_matrix[j][i] - vij[i] = v_i - - for c in range(self.num_classes): - total = vji[c] + vij[c] - self.confusion_matrix[c][c] - if total == 0: - iou = 0 - else: - iou = float(self.confusion_matrix[c][c]) / total - avg_iou += iou - iou_list.append(iou) - avg_iou = float(avg_iou) / float(self.num_classes) - return np.array(iou_list), avg_iou - - def accuracy(self): - total = self.confusion_matrix.sum() - total_right = 0 - for c in range(self.num_classes): - total_right += self.confusion_matrix[c][c] - if total == 0: - avg_acc = 0 - else: - avg_acc = float(total_right) / total - - vij = np.zeros(self.num_classes, dtype=int) - for i in range(self.num_classes): - v_i = 0 - for j in range(self.num_classes): - v_i += self.confusion_matrix[j][i] - vij[i] = v_i - - acc_list = [] - for c in range(self.num_classes): - if vij[c] == 0: - acc = 0 - else: - acc = self.confusion_matrix[c][c] / float(vij[c]) - acc_list.append(acc) - return np.array(acc_list), avg_acc - - def kappa(self): - vji = np.zeros(self.num_classes) - vij = np.zeros(self.num_classes) - for j in range(self.num_classes): - v_j = 0 - for i in range(self.num_classes): - v_j += self.confusion_matrix[j][i] - vji[j] = v_j - - for i in range(self.num_classes): - v_i = 0 - for j in range(self.num_classes): - v_i += self.confusion_matrix[j][i] - vij[i] = v_i - - total = self.confusion_matrix.sum() - - # avoid spillovers - # TODO: is it reasonable to hard code 10000.0? - total = float(total) / 10000.0 - vji = vji / 10000.0 - vij = vij / 10000.0 - - tp = 0 - tc = 0 - for c in range(self.num_classes): - tp += vji[c] * vij[c] - tc += self.confusion_matrix[c][c] - - tc = tc / 10000.0 - pe = tp / (total * total) - po = tc / total - - kappa = (po - pe) / (1 - pe) - return kappa diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/palette.py b/PaddleCV/Research/SemSegPaddle/src/utils/palette.py deleted file mode 100644 index 16f59602e1cc0b37d5c770df33c820934553c2ff..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/palette.py +++ /dev/null @@ -1,66 +0,0 @@ -def get_cityscapes_palette(num_cls=19): - """ Returns the color map for visualizing the segmentation mask. - Args: - num_cls: Number of classes - Returns: - The color map - """ - - palette = [0] * (num_cls * 3) - palette[0:3] = (128, 64, 128) # 0: 'road' - palette[3:6] = (244, 35,232) # 1 'sidewalk' - palette[6:9] = (70, 70, 70) # 2''building' - palette[9:12] = (102,102,156) # 3 wall - palette[12:15] = (190,153,153) # 4 fence - palette[15:18] = (153,153,153) # 5 pole - palette[18:21] = (250,170, 30) # 6 'traffic light' - palette[21:24] = (220,220, 0) # 7 'traffic sign' - palette[24:27] = (107,142, 35) # 8 'vegetation' - palette[27:30] = (152,251,152) # 9 'terrain' - palette[30:33] = ( 70,130,180) # 10 sky - palette[33:36] = (220, 20, 60) # 11 person - palette[36:39] = (255, 0, 0) # 12 rider - palette[39:42] = (0, 0, 142) # 13 car - palette[42:45] = (0, 0, 70) # 14 truck - palette[45:48] = (0, 60,100) # 15 bus - palette[48:51] = (0, 80,100) # 16 train - palette[51:54] = (0, 0,230) # 17 'motorcycle' - palette[54:57] = (119, 11, 32) # 18 'bicycle' - palette[57:60] = (105, 105, 105) - - return palette - - -def get_gene_palette(num_cls=182): #Ref: CCNet - """ Returns the color map for visualizing the segmentation mask. - Args: - num_cls: Number of classes - Returns: - The color map - """ - - n = num_cls - palette = [0] * (n * 3) - for j in range(0, n): - lab = j - palette[j * 3 + 0] = 0 - palette[j * 3 + 1] = 0 - palette[j * 3 + 2] = 0 - i = 0 - while lab: - palette[j * 3 + 0] |= (((lab >> 0) & 1) << (7 - i)) - palette[j * 3 + 1] |= (((lab >> 1) & 1) << (7 - i)) - palette[j * 3 + 2] |= (((lab >> 2) & 1) << (7 - i)) - i += 1 - lab >>= 3 - return palette - -def get_palette(dataset): - if dataset == 'cityscapes': - palette = get_cityscapes_palette(19) - elif dataset == 'pascalContext': - palette = get_gene_palette(num_cls=59) - else: - raise RuntimeError("unkonw dataset :{}".format(dataset)) - return palette - diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/solver.py b/PaddleCV/Research/SemSegPaddle/src/utils/solver.py deleted file mode 100644 index 62baf9a610244b3a20bf976cec52727ec684ab8b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/solver.py +++ /dev/null @@ -1,159 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys -import paddle.fluid as fluid -import numpy as np -import importlib -from src.utils.config import cfg -from paddle.fluid.contrib.mixed_precision.decorator import OptimizerWithMixedPrecison, decorate, AutoMixedPrecisionLists - - -class Solver(object): - def __init__(self, main_prog, start_prog): - total_images = cfg.DATASET.TRAIN_TOTAL_IMAGES - self.weight_decay = cfg.SOLVER.WEIGHT_DECAY - self.momentum = cfg.SOLVER.MOMENTUM - self.momentum2 = cfg.SOLVER.MOMENTUM2 - self.step_per_epoch = total_images // cfg.TRAIN_BATCH_SIZE - if total_images % cfg.TRAIN_BATCH_SIZE != 0: - self.step_per_epoch += 1 - self.total_step = cfg.SOLVER.NUM_EPOCHS * self.step_per_epoch - self.main_prog = main_prog - self.start_prog = start_prog - self.warmup_step = cfg.SOLVER.LR_WARMUP_STEPS if cfg.SOLVER.LR_WARMUP else -1 - self.decay_step = self.total_step - self.warmup_step - self.decay_epochs = cfg.SOLVER.NUM_EPOCHS - self.warmup_step / self.step_per_epoch - - def lr_warmup(self, learning_rate, start_lr, end_lr): - linear_step = end_lr - start_lr - lr = fluid.layers.tensor.create_global_var( - shape=[1], - value=0.0, - dtype='float32', - persistable=True, - name="learning_rate_warmup") - - global_step = fluid.layers.learning_rate_scheduler._decay_step_counter() - warmup_counter = fluid.layers.autoincreased_step_counter( - counter_name='@LR_DECAY_COUNTER_WARMUP_IN_SEG@', begin=1, step=1) - global_counter = fluid.default_main_program().global_block( - ).vars['@LR_DECAY_COUNTER@'] - warmup_counter = fluid.layers.cast(warmup_counter, 'float32') - - with fluid.layers.control_flow.Switch() as switch: - with switch.case(warmup_counter <= self.warmup_step): - decayed_lr = start_lr + linear_step * ( - warmup_counter / self.warmup_step) - fluid.layers.tensor.assign(decayed_lr, lr) - # hold the global_step to 0 during the warm-up phase - fluid.layers.increment(global_counter, value=-1) - with switch.default(): - fluid.layers.tensor.assign(learning_rate, lr) - return lr - - def piecewise_decay(self): - gamma = cfg.SOLVER.GAMMA - bd = [self.step_per_epoch * e for e in cfg.SOLVER.DECAY_EPOCH] - lr = [cfg.SOLVER.LR * (gamma**i) for i in range(len(bd) + 1)] - decayed_lr = fluid.layers.piecewise_decay(boundaries=bd, values=lr) - return decayed_lr - - def poly_decay(self): - power = cfg.SOLVER.POWER - decayed_lr = fluid.layers.polynomial_decay( - cfg.SOLVER.LR, self.decay_step, end_learning_rate=0, power=power) - return decayed_lr - - def cosine_decay(self): - decayed_lr = fluid.layers.cosine_decay( - cfg.SOLVER.LR, self.step_per_epoch, self.decay_epochs) - return decayed_lr - - def get_lr(self, lr_policy): - if lr_policy.lower() == 'poly': - decayed_lr = self.poly_decay() - elif lr_policy.lower() == 'piecewise': - decayed_lr = self.piecewise_decay() - elif lr_policy.lower() == 'cosine': - decayed_lr = self.cosine_decay() - else: - raise Exception( - "unsupport learning decay policy! only support poly,piecewise,cosine" - ) - - decayed_lr = self.lr_warmup(decayed_lr, 0, cfg.SOLVER.LR) - return decayed_lr - - def sgd_optimizer(self, lr_policy, loss): - decayed_lr = self.get_lr(lr_policy) - optimizer = fluid.optimizer.Momentum( - learning_rate=decayed_lr, - momentum=self.momentum, - regularization=fluid.regularizer.L2Decay( - regularization_coeff=self.weight_decay), - ) - if cfg.MODEL.FP16: - if cfg.MODEL.MODEL_NAME in ["pspnet"]: - custom_black_list = {"pool2d"} - else: - custom_black_list = {} - amp_lists = AutoMixedPrecisionLists( - custom_black_list=custom_black_list) - assert isinstance(cfg.MODEL.SCALE_LOSS, float) or isinstance(cfg.MODEL.SCALE_LOSS, str), \ - "data type of MODEL.SCALE_LOSS must be float or str" - if isinstance(cfg.MODEL.SCALE_LOSS, float): - optimizer = decorate( - optimizer, - amp_lists=amp_lists, - init_loss_scaling=cfg.MODEL.SCALE_LOSS, - use_dynamic_loss_scaling=False) - else: - assert cfg.MODEL.SCALE_LOSS.lower() in [ - 'dynamic' - ], "if MODEL.SCALE_LOSS is a string,\ - must be set as 'DYNAMIC'!" - - optimizer = decorate( - optimizer, - amp_lists=amp_lists, - use_dynamic_loss_scaling=True) - - optimizer.minimize(loss) - return decayed_lr - - def adam_optimizer(self, lr_policy, loss): - decayed_lr = self.get_lr(lr_policy) - optimizer = fluid.optimizer.Adam( - learning_rate=decayed_lr, - beta1=self.momentum, - beta2=self.momentum2, - regularization=fluid.regularizer.L2Decay( - regularization_coeff=self.weight_decay), - ) - optimizer.minimize(loss) - return decayed_lr - - def optimise(self, loss): - lr_policy = cfg.SOLVER.LR_POLICY - opt = cfg.SOLVER.OPTIMIZER - - if opt.lower() == 'adam': - return self.adam_optimizer(lr_policy, loss) - elif opt.lower() == 'sgd': - return self.sgd_optimizer(lr_policy, loss) - else: - raise Exception( - "unsupport optimizer solver, only support adam and sgd") diff --git a/PaddleCV/Research/SemSegPaddle/src/utils/timer.py b/PaddleCV/Research/SemSegPaddle/src/utils/timer.py deleted file mode 100644 index 8e32c343def6e7cab81c6447a090b796d3ce00eb..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/src/utils/timer.py +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License" -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import time - - -def calculate_eta(remaining_step, speed): - if remaining_step < 0: - remaining_step = 0 - remaining_time = int(remaining_step / speed) - result = "{:0>2}:{:0>2}:{:0>2}" - arr = [] - for i in range(2, -1, -1): - arr.append(int(remaining_time / 60**i)) - remaining_time %= 60**i - return result.format(*arr) - - -class Timer(object): - """ Simple timer class for measuring time consuming """ - - def __init__(self): - self._start_time = 0.0 - self._end_time = 0.0 - self._elapsed_time = 0.0 - self._is_running = False - - def start(self): - self._is_running = True - self._start_time = time.time() - - def restart(self): - self.start() - - def stop(self): - self._is_running = False - self._end_time = time.time() - - def elapsed_time(self): - self._end_time = time.time() - self._elapsed_time = self._end_time - self._start_time - if not self.is_running: - return 0.0 - - return self._elapsed_time - - @property - def is_running(self): - return self._is_running diff --git a/PaddleCV/Research/SemSegPaddle/train.py b/PaddleCV/Research/SemSegPaddle/train.py deleted file mode 100644 index e91113e5de996a6f19988fa44fa0c8d32d37620d..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/train.py +++ /dev/null @@ -1,429 +0,0 @@ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -# GPU memory garbage collection optimization flags -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" - -import sys -import timeit -import argparse -import pprint -import shutil -import functools -import paddle -import numpy as np -import paddle.fluid as fluid - -from src.utils.metrics import ConfusionMatrix -from src.utils.config import cfg -from src.utils.timer import Timer, calculate_eta -from src.utils import dist_utils -from src.datasets import build_dataset -from src.models.model_builder import build_model -from src.models.model_builder import ModelPhase -from src.models.model_builder import parse_shape_from_file -from eval import evaluate -from vis import visualize - - -def parse_args(): - parser = argparse.ArgumentParser(description='semseg-paddle') - parser.add_argument( - '--cfg', - dest='cfg_file', - help='Config file for training (and optionally testing)', - default=None, - type=str) - parser.add_argument( - '--use_gpu', - dest='use_gpu', - help='Use gpu or cpu', - action='store_true', - default=False) - parser.add_argument( - '--use_mpio', - dest='use_mpio', - help='Use multiprocess I/O or not', - action='store_true', - default=False) - parser.add_argument( - '--log_steps', - dest='log_steps', - help='Display logging information at every log_steps', - default=10, - type=int) - parser.add_argument( - '--debug', - dest='debug', - help='debug mode, display detail information of training', - action='store_true') - parser.add_argument( - '--use_tb', - dest='use_tb', - help='whether to record the data during training to Tensorboard', - action='store_true') - parser.add_argument( - '--tb_log_dir', - dest='tb_log_dir', - help='Tensorboard logging directory', - default=None, - type=str) - parser.add_argument( - '--do_eval', - dest='do_eval', - help='Evaluation models result on every new checkpoint', - action='store_true') - parser.add_argument( - 'opts', - help='See utils/config.py for all options', - default=None, - nargs=argparse.REMAINDER) - return parser.parse_args() - - - - -def save_checkpoint(exe, program, ckpt_name): - """ - Save checkpoint for evaluation or resume training - """ - filename= '{}_{}_{}_epoch_{}.pdparams'.format(str(cfg.MODEL.MODEL_NAME), - str(cfg.MODEL.BACKBONE), str(cfg.DATASET.DATASET_NAME), ckpt_name) - ckpt_dir = cfg.TRAIN.MODEL_SAVE_DIR - - print("Save model checkpoint to {}".format(ckpt_dir)) - if not os.path.isdir(ckpt_dir): - os.makedirs(ckpt_dir) - - fluid.io.save_params(exe, ckpt_dir, program, filename) - return ckpt_dir - - -def load_checkpoint(exe, program): - """ - Load checkpoiont from pretrained model directory for resume training - """ - - print('Resume model training from:', cfg.TRAIN.RESUME_MODEL_DIR) - if not os.path.exists(cfg.TRAIN.RESUME_MODEL_DIR): - raise ValueError("TRAIN.PRETRAIN_MODEL {} not exist!".format( - cfg.TRAIN.RESUME_MODEL_DIR)) - - fluid.io.load_persistables( - exe, cfg.TRAIN.RESUME_MODEL_DIR, main_program=program) - - model_path = cfg.TRAIN.RESUME_MODEL_DIR - # Check is path ended by path spearator - if model_path[-1] == os.sep: - model_path = model_path[0:-1] - epoch_name = os.path.basename(model_path) - # If resume model is final model - if epoch_name == 'final': - begin_epoch = cfg.SOLVER.NUM_EPOCHS - # If resume model path is end of digit, restore epoch status - elif epoch_name.isdigit(): - epoch = int(epoch_name) - begin_epoch = epoch + 1 - else: - raise ValueError("Resume model path is not valid!") - print("Model checkpoint loaded successfully!") - - return begin_epoch - - -def print_info(*msg): - if cfg.TRAINER_ID == 0: - print(*msg) - - -def train(cfg): - startup_prog = fluid.Program() - train_prog = fluid.Program() - drop_last = True - dataset = build_dataset(cfg.DATASET.DATASET_NAME, - file_list=cfg.DATASET.TRAIN_FILE_LIST, - mode=ModelPhase.TRAIN, - shuffle=True, - data_dir=cfg.DATASET.DATA_DIR, - base_size= cfg.DATAAUG.BASE_SIZE, crop_size= cfg.DATAAUG.CROP_SIZE, rand_scale=True) - - def data_generator(): - if args.use_mpio: - data_gen = dataset.multiprocess_generator( - num_processes=cfg.DATALOADER.NUM_WORKERS, - max_queue_size=cfg.DATALOADER.BUF_SIZE) - else: - data_gen = dataset.generator() - - batch_data = [] - for b in data_gen: - batch_data.append(b) - if len(batch_data) == (cfg.TRAIN_BATCH_SIZE // cfg.NUM_TRAINERS): - for item in batch_data: - yield item[0], item[1], item[2] - batch_data = [] - # If use sync batch norm strategy, drop last batch if number of samples - # in batch_data is less then cfg.BATCH_SIZE to avoid NCCL hang issues - if not cfg.TRAIN.SYNC_BATCH_NORM: - for item in batch_data: - yield item[0], item[1], item[2] - - # Get device environment - gpu_id = int(os.environ.get('FLAGS_selected_gpus', 0)) - place = fluid.CUDAPlace(gpu_id) if args.use_gpu else fluid.CPUPlace() - places = fluid.cuda_places() if args.use_gpu else fluid.cpu_places() - - # Get number of GPU - dev_count = cfg.NUM_TRAINERS if cfg.NUM_TRAINERS > 1 else len(places) - print_info("#device count: {}".format(dev_count)) - cfg.TRAIN_BATCH_SIZE = dev_count * int(cfg.TRAIN_BATCH_SIZE_PER_GPU) - print_info("#train_batch_size: {}".format(cfg.TRAIN_BATCH_SIZE)) - print_info("#batch_size_per_dev: {}".format(cfg.TRAIN_BATCH_SIZE_PER_GPU)) - - py_reader, avg_loss, lr, pred, grts, masks = build_model( - train_prog, startup_prog, phase=ModelPhase.TRAIN) - py_reader.decorate_sample_generator( - data_generator, batch_size=cfg.TRAIN_BATCH_SIZE_PER_GPU, drop_last=drop_last) - - exe = fluid.Executor(place) - exe.run(startup_prog) - - exec_strategy = fluid.ExecutionStrategy() - # Clear temporary variables every 100 iteration - if args.use_gpu: - exec_strategy.num_threads = fluid.core.get_cuda_device_count() - exec_strategy.num_iteration_per_drop_scope = 100 - build_strategy = fluid.BuildStrategy() - - if cfg.NUM_TRAINERS > 1 and args.use_gpu: - dist_utils.prepare_for_multi_process(exe, build_strategy, train_prog) - exec_strategy.num_threads = 1 - - if cfg.TRAIN.SYNC_BATCH_NORM and args.use_gpu: - if dev_count > 1: - # Apply sync batch norm strategy - print_info("Sync BatchNorm strategy is effective.") - build_strategy.sync_batch_norm = True - else: - print_info( - "Sync BatchNorm strategy will not be effective if GPU device" - " count <= 1") - compiled_train_prog = fluid.CompiledProgram(train_prog).with_data_parallel( - loss_name=avg_loss.name, - exec_strategy=exec_strategy, - build_strategy=build_strategy) - - # Resume training - begin_epoch = cfg.SOLVER.BEGIN_EPOCH - if cfg.TRAIN.RESUME_MODEL_DIR: - begin_epoch = load_checkpoint(exe, train_prog) - # Load pretrained model - elif os.path.exists(cfg.TRAIN.PRETRAINED_MODEL_DIR): - print_info('Pretrained model dir: ', cfg.TRAIN.PRETRAINED_MODEL_DIR) - load_vars = [] - load_fail_vars = [] - - def var_shape_matched(var, shape): - """ - Check whehter persitable variable shape is match with current network - """ - var_exist = os.path.exists( - os.path.join(cfg.TRAIN.PRETRAINED_MODEL_DIR, var.name)) - if var_exist: - var_shape = parse_shape_from_file( - os.path.join(cfg.TRAIN.PRETRAINED_MODEL_DIR, var.name)) - return var_shape == shape - return False - - for x in train_prog.list_vars(): - if isinstance(x, fluid.framework.Parameter): - shape = tuple(fluid.global_scope().find_var( - x.name).get_tensor().shape()) - if var_shape_matched(x, shape): - load_vars.append(x) - else: - load_fail_vars.append(x) - - fluid.io.load_vars( - exe, dirname=cfg.TRAIN.PRETRAINED_MODEL_DIR, vars=load_vars) - for var in load_vars: - print_info("Parameter[{}] loaded sucessfully!".format(var.name)) - for var in load_fail_vars: - print_info( - "Parameter[{}] don't exist or shape does not match current network, skip" - " to load it.".format(var.name)) - print_info("{}/{} pretrained parameters loaded successfully!".format( - len(load_vars), - len(load_vars) + len(load_fail_vars))) - else: - print_info( - 'Pretrained model dir {} not exists, training from scratch...'. - format(cfg.TRAIN.PRETRAINED_MODEL_DIR)) - - fetch_list = [avg_loss.name, lr.name] - if args.debug: - # Fetch more variable info and use streaming confusion matrix to - # calculate IoU results if in debug mode - np.set_printoptions( - precision=4, suppress=True, linewidth=160, floatmode="fixed") - fetch_list.extend([pred.name, grts.name, masks.name]) - cm = ConfusionMatrix(cfg.DATASET.NUM_CLASSES, streaming=True) - - if args.use_tb: - if not args.tb_log_dir: - print_info("Please specify the log directory by --tb_log_dir.") - exit(1) - - from tb_paddle import SummaryWriter - log_writer = SummaryWriter(args.tb_log_dir) - - # trainer_id = int(os.getenv("PADDLE_TRAINER_ID", 0)) - # num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - global_step = 0 - all_step = cfg.DATASET.TRAIN_TOTAL_IMAGES // cfg.TRAIN_BATCH_SIZE - if cfg.DATASET.TRAIN_TOTAL_IMAGES % cfg.TRAIN_BATCH_SIZE and drop_last != True: - all_step += 1 - all_step *= (cfg.SOLVER.NUM_EPOCHS - begin_epoch + 1) - - avg_loss = 0.0 - timer = Timer() - timer.start() - if begin_epoch > cfg.SOLVER.NUM_EPOCHS: - raise ValueError( - ("begin epoch[{}] is larger than cfg.SOLVER.NUM_EPOCHS[{}]").format( - begin_epoch, cfg.SOLVER.NUM_EPOCHS)) - - if args.use_mpio: - print_info("Use multiprocess reader") - else: - print_info("Use multi-thread reader") - - for epoch in range(begin_epoch, cfg.SOLVER.NUM_EPOCHS + 1): - py_reader.start() - while True: - try: - if args.debug: - # Print category IoU and accuracy to check whether the - # traning process is corresponed to expectation - loss, lr, pred, grts, masks = exe.run( - program=compiled_train_prog, - fetch_list=fetch_list, - return_numpy=True) - cm.calculate(pred, grts, masks) - avg_loss += np.mean(np.array(loss)) - global_step += 1 - - if global_step % args.log_steps == 0: - speed = args.log_steps / timer.elapsed_time() - avg_loss /= args.log_steps - category_acc, mean_acc = cm.accuracy() - category_iou, mean_iou = cm.mean_iou() - - print_info(( - "epoch={}/{} step={}/{} lr={:.5f} loss={:.4f} acc={:.5f} mIoU={:.5f} step/sec={:.3f} | ETA {}" - ).format(epoch, cfg.SOLVER.NUM_EPOCHS, global_step, all_step, lr[0], avg_loss, mean_acc, - mean_iou, speed, - calculate_eta(all_step - global_step, speed))) - print_info("Category IoU: ", category_iou) - print_info("Category Acc: ", category_acc) - if args.use_tb: - log_writer.add_scalar('Train/mean_iou', mean_iou, - global_step) - log_writer.add_scalar('Train/mean_acc', mean_acc, - global_step) - log_writer.add_scalar('Train/loss', avg_loss, - global_step) - log_writer.add_scalar('Train/lr', lr[0], - global_step) - log_writer.add_scalar('Train/step/sec', speed, - global_step) - sys.stdout.flush() - avg_loss = 0.0 - cm.zero_matrix() - timer.restart() - else: - # If not in debug mode, avoid unnessary log and calculate - loss, lr = exe.run( - program=compiled_train_prog, - fetch_list=fetch_list, - return_numpy=True) - avg_loss += np.mean(np.array(loss)) - global_step += 1 - - if global_step % args.log_steps == 0 and cfg.TRAINER_ID == 0: - avg_loss /= args.log_steps - speed = args.log_steps / timer.elapsed_time() - print(( - "epoch={}/{} step={}/{} lr={:.5f} loss={:.4f} step/sec={:.3f} | ETA {}" - ).format(epoch, cfg.SOLVER.NUM_EPOCHS, global_step, all_step, lr[0], avg_loss, speed, - calculate_eta(all_step - global_step, speed))) - if args.use_tb: - log_writer.add_scalar('Train/loss', avg_loss, - global_step) - log_writer.add_scalar('Train/lr', lr[0], - global_step) - log_writer.add_scalar('Train/speed', speed, - global_step) - sys.stdout.flush() - avg_loss = 0.0 - timer.restart() - - except fluid.core.EOFException: - py_reader.reset() - break - except Exception as e: - print(e) - - if epoch % cfg.TRAIN.SNAPSHOT_EPOCH == 0 and cfg.TRAINER_ID == 0: - ckpt_dir = save_checkpoint(exe, train_prog, epoch) - - if args.do_eval: - print("Evaluation start") - _, mean_iou, _, mean_acc = evaluate( - cfg=cfg, - ckpt_dir=ckpt_dir, - use_gpu=args.use_gpu, - use_mpio=args.use_mpio) - if args.use_tb: - log_writer.add_scalar('Evaluate/mean_iou', mean_iou, - global_step) - log_writer.add_scalar('Evaluate/mean_acc', mean_acc, - global_step) - - # Use Tensorboard to visualize results - if args.use_tb and cfg.DATASET.VIS_FILE_LIST is not None: - visualize( - cfg=cfg, - use_gpu=args.use_gpu, - vis_file_list=cfg.DATASET.VIS_FILE_LIST, - vis_dir="visual", - ckpt_dir=ckpt_dir, - log_writer=log_writer) - - # save final model - if cfg.TRAINER_ID == 0: - save_checkpoint(exe, train_prog, 'final') - - -def main(args): - if args.cfg_file is not None: - cfg.update_from_file(args.cfg_file) - if args.opts: - cfg.update_from_list(args.opts) - - cfg.TRAINER_ID = int(os.getenv("PADDLE_TRAINER_ID", 0)) - cfg.NUM_TRAINERS = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - - cfg.check_and_infer() - print_info(pprint.pformat(cfg)) - train(cfg) - - -if __name__ == '__main__': - args = parse_args() - start = timeit.default_timer() - main(args) - end = timeit.default_timer() - print("training time: {} h".format(1.0*(end-start)/3600)) diff --git a/PaddleCV/Research/SemSegPaddle/vis.py b/PaddleCV/Research/SemSegPaddle/vis.py deleted file mode 100644 index b32998b79b544da47a93879fa3a733fa2d5b170b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/SemSegPaddle/vis.py +++ /dev/null @@ -1,235 +0,0 @@ -# coding: utf8 -# copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -# GPU memory garbage collection optimization flags -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" - -import sys -import argparse -import pprint -import cv2 -import numpy as np -import paddle.fluid as fluid - -from PIL import Image as PILImage -from src.utils.config import cfg -from src.datasets.cityscapes import CityscapesSeg -from src.models.model_builder import build_model -from src.models.model_builder import ModelPhase - - -def parse_args(): - parser = argparse.ArgumentParser(description='PaddeSeg visualization tools') - parser.add_argument( - '--cfg', - dest='cfg_file', - help='Config file for training (and optionally testing)', - default=None, - type=str) - parser.add_argument( - '--use_gpu', dest='use_gpu', help='Use gpu or cpu', action='store_true') - parser.add_argument( - '--vis_dir', - dest='vis_dir', - help='visual save dir', - type=str, - default='visual') - parser.add_argument( - '--local_test', - dest='local_test', - help='if in local test mode, only visualize 5 images for testing', - action='store_true') - parser.add_argument( - 'opts', - help='See config.py for all options', - default=None, - nargs=argparse.REMAINDER) - if len(sys.argv) == 1: - parser.print_help() - sys.exit(1) - return parser.parse_args() - - -def makedirs(directory): - if not os.path.exists(directory): - os.makedirs(directory) - - -def get_color_map_list(num_classes): - """ Returns the color map for visualizing the segmentation mask, - which can support arbitrary number of classes. - Args: - num_classes: Number of classes - Returns: - The color map - """ - color_map = num_classes * [0, 0, 0] - for i in range(0, num_classes): - j = 0 - lab = i - while lab: - color_map[i * 3] |= (((lab >> 0) & 1) << (7 - j)) - color_map[i * 3 + 1] |= (((lab >> 1) & 1) << (7 - j)) - color_map[i * 3 + 2] |= (((lab >> 2) & 1) << (7 - j)) - j += 1 - lab >>= 3 - - return color_map - - -def to_png_fn(fn): - """ - Append png as filename postfix - """ - directory, filename = os.path.split(fn) - basename, ext = os.path.splitext(filename) - - return basename + ".png" - - -def visualize(cfg, - vis_file_list=None, - use_gpu=False, - vis_dir="visual_predict", - ckpt_dir=None, - log_writer=None, - local_test=False, - **kwargs): - if vis_file_list is None: - vis_file_list = cfg.DATASET.TEST_FILE_LIST - dataset = SegDataset( - file_list=vis_file_list, - mode=ModelPhase.VISUAL, - data_dir=cfg.DATASET.DATA_DIR) - - startup_prog = fluid.Program() - test_prog = fluid.Program() - pred, logit = build_model(test_prog, startup_prog, phase=ModelPhase.VISUAL) - # Clone forward graph - test_prog = test_prog.clone(for_test=True) - - # Generator full colormap for maximum 256 classes - color_map = get_color_map_list(256) - - # Get device environment - place = fluid.CUDAPlace(0) if use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(startup_prog) - - ckpt_dir = cfg.TEST.TEST_MODEL if not ckpt_dir else ckpt_dir - - fluid.io.load_params(exe, ckpt_dir, main_program=test_prog) - - save_dir = os.path.join('visual', vis_dir) - makedirs(save_dir) - - fetch_list = [pred.name] - test_reader = dataset.batch(dataset.generator, batch_size=1, is_test=True) - img_cnt = 0 - for imgs, grts, img_names, valid_shapes, org_shapes in test_reader: - pred_shape = (imgs.shape[2], imgs.shape[3]) - pred, = exe.run( - program=test_prog, - feed={'image': imgs}, - fetch_list=fetch_list, - return_numpy=True) - - num_imgs = pred.shape[0] - # TODO: use multi-thread to write images - for i in range(num_imgs): - # Add more comments - res_map = np.squeeze(pred[i, :, :, :]).astype(np.uint8) - img_name = img_names[i] - res_shape = (res_map.shape[0], res_map.shape[1]) - if res_shape[0] != pred_shape[0] or res_shape[1] != pred_shape[1]: - res_map = cv2.resize( - res_map, pred_shape, interpolation=cv2.INTER_NEAREST) - valid_shape = (valid_shapes[i, 0], valid_shapes[i, 1]) - res_map = res_map[0:valid_shape[0], 0:valid_shape[1]] - org_shape = (org_shapes[i, 0], org_shapes[i, 1]) - res_map = cv2.resize( - res_map, (org_shape[1], org_shape[0]), - interpolation=cv2.INTER_NEAREST) - - png_fn = to_png_fn(img_name) - - # colorful segment result visualization - vis_fn = os.path.join(save_dir, png_fn) - dirname = os.path.dirname(vis_fn) - makedirs(dirname) - - pred_mask = PILImage.fromarray(res_map.astype(np.uint8), mode='P') - pred_mask.putpalette(color_map) - pred_mask.save(vis_fn) - - img_cnt += 1 - print("#{} visualize image path: {}".format(img_cnt, vis_fn)) - - # Use Tensorboard to visualize image - if log_writer is not None: - # Calulate epoch from ckpt_dir folder name - epoch = int(os.path.split(ckpt_dir)[-1]) - print("Tensorboard visualization epoch", epoch) - - pred_mask_np = np.array(pred_mask.convert("RGB")) - log_writer.add_image( - "Predict/{}".format(img_name), - pred_mask_np, - epoch, - dataformats='HWC') - # Original image - # BGR->RGB - img = cv2.imread( - os.path.join(cfg.DATASET.DATA_DIR, img_name))[..., ::-1] - log_writer.add_image( - "Images/{}".format(img_name), - img, - epoch, - dataformats='HWC') - # add ground truth (label) images - grt = grts[i] - if grt is not None: - grt = grt[0:valid_shape[0], 0:valid_shape[1]] - grt_pil = PILImage.fromarray(grt.astype(np.uint8), mode='P') - grt_pil.putpalette(color_map) - grt_pil = grt_pil.resize((org_shape[1], org_shape[0])) - grt = np.array(grt_pil.convert("RGB")) - log_writer.add_image( - "Label/{}".format(img_name), - grt, - epoch, - dataformats='HWC') - - # If in local_test mode, only visualize 5 images just for testing - # procedure - if local_test and img_cnt >= 5: - break - - -if __name__ == '__main__': - args = parse_args() - if args.cfg_file is not None: - cfg.update_from_file(args.cfg_file) - if args.opts: - cfg.update_from_list(args.opts) - cfg.check_and_infer() - print(pprint.pformat(cfg)) - visualize(cfg, **args.__dict__) diff --git a/PaddleCV/Research/astar2019/README.md b/PaddleCV/Research/astar2019/README.md deleted file mode 100644 index 6854ce9c8ccb3520a4ae6ca11e5b079350867bcc..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/astar2019/README.md +++ /dev/null @@ -1,26 +0,0 @@ -### 百度之星轻量化检测比赛评测工具 - -数据目录结构如下: - -``` -your/path/coco/ -├── annotations -│   ├── instances_train2017.json -│   ├── instances_val2017.json -| ... -├── train2017 -│   ├── 000000000009.jpg -│   ├── 000000580008.jpg -| ... -├── val2017 -│   ├── 000000000139.jpg -│   ├── 000000000285.jpg -| ... - -``` - -命令示例: -```bash -# Evaluate -python score.py --model_dir your/path/saved_model/ --data_dir your/path/coco/ -``` diff --git a/PaddleCV/Research/astar2019/image_util.py b/PaddleCV/Research/astar2019/image_util.py deleted file mode 100644 index f544187359d56afc04ef0be18f4ef9c6ca442b4e..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/astar2019/image_util.py +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from PIL import Image, ImageEnhance, ImageDraw -from PIL import ImageFile -import numpy as np -import random -import math - -ImageFile.LOAD_TRUNCATED_IMAGES = True #otherwise IOError raised image file is truncated - - -class sampler(): - def __init__(self, max_sample, max_trial, min_scale, max_scale, - min_aspect_ratio, max_aspect_ratio, min_jaccard_overlap, - max_jaccard_overlap): - self.max_sample = max_sample - self.max_trial = max_trial - self.min_scale = min_scale - self.max_scale = max_scale - self.min_aspect_ratio = min_aspect_ratio - self.max_aspect_ratio = max_aspect_ratio - self.min_jaccard_overlap = min_jaccard_overlap - self.max_jaccard_overlap = max_jaccard_overlap - - -class bbox(): - def __init__(self, xmin, ymin, xmax, ymax): - self.xmin = xmin - self.ymin = ymin - self.xmax = xmax - self.ymax = ymax - - -def bbox_area(src_bbox): - width = src_bbox.xmax - src_bbox.xmin - height = src_bbox.ymax - src_bbox.ymin - return width * height - - -def generate_sample(sampler): - scale = np.random.uniform(sampler.min_scale, sampler.max_scale) - aspect_ratio = np.random.uniform(sampler.min_aspect_ratio, - sampler.max_aspect_ratio) - aspect_ratio = max(aspect_ratio, (scale**2.0)) - aspect_ratio = min(aspect_ratio, 1 / (scale**2.0)) - - bbox_width = scale * (aspect_ratio**0.5) - bbox_height = scale / (aspect_ratio**0.5) - xmin_bound = 1 - bbox_width - ymin_bound = 1 - bbox_height - xmin = np.random.uniform(0, xmin_bound) - ymin = np.random.uniform(0, ymin_bound) - xmax = xmin + bbox_width - ymax = ymin + bbox_height - sampled_bbox = bbox(xmin, ymin, xmax, ymax) - return sampled_bbox - - -def jaccard_overlap(sample_bbox, object_bbox): - if sample_bbox.xmin >= object_bbox.xmax or \ - sample_bbox.xmax <= object_bbox.xmin or \ - sample_bbox.ymin >= object_bbox.ymax or \ - sample_bbox.ymax <= object_bbox.ymin: - return 0 - intersect_xmin = max(sample_bbox.xmin, object_bbox.xmin) - intersect_ymin = max(sample_bbox.ymin, object_bbox.ymin) - intersect_xmax = min(sample_bbox.xmax, object_bbox.xmax) - intersect_ymax = min(sample_bbox.ymax, object_bbox.ymax) - intersect_size = (intersect_xmax - intersect_xmin) * ( - intersect_ymax - intersect_ymin) - sample_bbox_size = bbox_area(sample_bbox) - object_bbox_size = bbox_area(object_bbox) - overlap = intersect_size / ( - sample_bbox_size + object_bbox_size - intersect_size) - return overlap - - -def satisfy_sample_constraint(sampler, sample_bbox, bbox_labels): - if sampler.min_jaccard_overlap == 0 and sampler.max_jaccard_overlap == 0: - return True - for i in range(len(bbox_labels)): - object_bbox = bbox(bbox_labels[i][1], bbox_labels[i][2], - bbox_labels[i][3], bbox_labels[i][4]) - overlap = jaccard_overlap(sample_bbox, object_bbox) - if sampler.min_jaccard_overlap != 0 and \ - overlap < sampler.min_jaccard_overlap: - continue - if sampler.max_jaccard_overlap != 0 and \ - overlap > sampler.max_jaccard_overlap: - continue - return True - return False - - -def generate_batch_samples(batch_sampler, bbox_labels): - sampled_bbox = [] - index = [] - c = 0 - for sampler in batch_sampler: - found = 0 - for i in range(sampler.max_trial): - if found >= sampler.max_sample: - break - sample_bbox = generate_sample(sampler) - if satisfy_sample_constraint(sampler, sample_bbox, bbox_labels): - sampled_bbox.append(sample_bbox) - found = found + 1 - index.append(c) - c = c + 1 - return sampled_bbox - - -def clip_bbox(src_bbox): - src_bbox.xmin = max(min(src_bbox.xmin, 1.0), 0.0) - src_bbox.ymin = max(min(src_bbox.ymin, 1.0), 0.0) - src_bbox.xmax = max(min(src_bbox.xmax, 1.0), 0.0) - src_bbox.ymax = max(min(src_bbox.ymax, 1.0), 0.0) - return src_bbox - - -def meet_emit_constraint(src_bbox, sample_bbox): - center_x = (src_bbox.xmax + src_bbox.xmin) / 2 - center_y = (src_bbox.ymax + src_bbox.ymin) / 2 - if center_x >= sample_bbox.xmin and \ - center_x <= sample_bbox.xmax and \ - center_y >= sample_bbox.ymin and \ - center_y <= sample_bbox.ymax: - return True - return False - - -def transform_labels(bbox_labels, sample_bbox): - proj_bbox = bbox(0, 0, 0, 0) - sample_labels = [] - for i in range(len(bbox_labels)): - sample_label = [] - object_bbox = bbox(bbox_labels[i][1], bbox_labels[i][2], - bbox_labels[i][3], bbox_labels[i][4]) - if not meet_emit_constraint(object_bbox, sample_bbox): - continue - sample_width = sample_bbox.xmax - sample_bbox.xmin - sample_height = sample_bbox.ymax - sample_bbox.ymin - proj_bbox.xmin = (object_bbox.xmin - sample_bbox.xmin) / sample_width - proj_bbox.ymin = (object_bbox.ymin - sample_bbox.ymin) / sample_height - proj_bbox.xmax = (object_bbox.xmax - sample_bbox.xmin) / sample_width - proj_bbox.ymax = (object_bbox.ymax - sample_bbox.ymin) / sample_height - proj_bbox = clip_bbox(proj_bbox) - if bbox_area(proj_bbox) > 0: - sample_label.append(bbox_labels[i][0]) - sample_label.append(float(proj_bbox.xmin)) - sample_label.append(float(proj_bbox.ymin)) - sample_label.append(float(proj_bbox.xmax)) - sample_label.append(float(proj_bbox.ymax)) - #sample_label.append(bbox_labels[i][5]) - sample_label = sample_label + bbox_labels[i][5:] - sample_labels.append(sample_label) - return sample_labels - - -def crop_image(img, bbox_labels, sample_bbox, image_width, image_height): - sample_bbox = clip_bbox(sample_bbox) - xmin = int(sample_bbox.xmin * image_width) - xmax = int(sample_bbox.xmax * image_width) - ymin = int(sample_bbox.ymin * image_height) - ymax = int(sample_bbox.ymax * image_height) - sample_img = img[ymin:ymax, xmin:xmax] - sample_labels = transform_labels(bbox_labels, sample_bbox) - return sample_img, sample_labels - - -def random_brightness(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._brightness_prob: - delta = np.random.uniform(-settings._brightness_delta, - settings._brightness_delta) + 1 - img = ImageEnhance.Brightness(img).enhance(delta) - return img - - -def random_contrast(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._contrast_prob: - delta = np.random.uniform(-settings._contrast_delta, - settings._contrast_delta) + 1 - img = ImageEnhance.Contrast(img).enhance(delta) - return img - - -def random_saturation(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._saturation_prob: - delta = np.random.uniform(-settings._saturation_delta, - settings._saturation_delta) + 1 - img = ImageEnhance.Color(img).enhance(delta) - return img - - -def random_hue(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._hue_prob: - delta = np.random.uniform(-settings._hue_delta, settings._hue_delta) - img_hsv = np.array(img.convert('HSV')) - img_hsv[:, :, 0] = img_hsv[:, :, 0] + delta - img = Image.fromarray(img_hsv, mode='HSV').convert('RGB') - return img - - -def distort_image(img, settings): - prob = np.random.uniform(0, 1) - # Apply different distort order - if prob > 0.5: - img = random_brightness(img, settings) - img = random_contrast(img, settings) - img = random_saturation(img, settings) - img = random_hue(img, settings) - else: - img = random_brightness(img, settings) - img = random_saturation(img, settings) - img = random_hue(img, settings) - img = random_contrast(img, settings) - return img - - -def expand_image(img, bbox_labels, img_width, img_height, settings): - prob = np.random.uniform(0, 1) - if prob < settings._expand_prob: - if settings._expand_max_ratio - 1 >= 0.01: - expand_ratio = np.random.uniform(1, settings._expand_max_ratio) - height = int(img_height * expand_ratio) - width = int(img_width * expand_ratio) - h_off = math.floor(np.random.uniform(0, height - img_height)) - w_off = math.floor(np.random.uniform(0, width - img_width)) - expand_bbox = bbox(-w_off / img_width, -h_off / img_height, - (width - w_off) / img_width, - (height - h_off) / img_height) - expand_img = np.ones((height, width, 3)) - expand_img = np.uint8(expand_img * np.squeeze(settings._img_mean)) - expand_img = Image.fromarray(expand_img) - expand_img.paste(img, (int(w_off), int(h_off))) - bbox_labels = transform_labels(bbox_labels, expand_bbox) - return expand_img, bbox_labels, width, height - return img, bbox_labels, img_width, img_height diff --git a/PaddleCV/Research/astar2019/reader.py b/PaddleCV/Research/astar2019/reader.py deleted file mode 100644 index 39efa44aa0ea53b3f6a111d315add7e23dc21519..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/astar2019/reader.py +++ /dev/null @@ -1,361 +0,0 @@ -# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import xml.etree.ElementTree -import os -import time -import copy -import six -import math -import numpy as np -from PIL import Image -from PIL import ImageDraw -import image_util -import paddle - - -class Settings(object): - def __init__(self, - dataset=None, - data_dir=None, - label_file=None, - resize_h=300, - resize_w=300, - mean_value=[127.5, 127.5, 127.5], - apply_distort=True, - apply_expand=True, - ap_version='11point'): - self._dataset = dataset - self._ap_version = ap_version - self._data_dir = data_dir - if 'pascalvoc' in dataset: - self._label_list = [] - label_fpath = os.path.join(data_dir, label_file) - for line in open(label_fpath): - self._label_list.append(line.strip()) - - self._apply_distort = apply_distort - self._apply_expand = apply_expand - self._resize_height = resize_h - self._resize_width = resize_w - self._img_mean = np.array(mean_value)[:, np.newaxis, np.newaxis].astype( - 'float32') - self._expand_prob = 0.5 - self._expand_max_ratio = 4 - self._hue_prob = 0.5 - self._hue_delta = 18 - self._contrast_prob = 0.5 - self._contrast_delta = 0.5 - self._saturation_prob = 0.5 - self._saturation_delta = 0.5 - self._brightness_prob = 0.5 - self._brightness_delta = 0.125 - - @property - def dataset(self): - return self._dataset - - @property - def ap_version(self): - return self._ap_version - - @property - def apply_expand(self): - return self._apply_expand - - @property - def apply_distort(self): - return self._apply_distort - - @property - def data_dir(self): - return self._data_dir - - @data_dir.setter - def data_dir(self, data_dir): - self._data_dir = data_dir - - @property - def label_list(self): - return self._label_list - - @property - def resize_h(self): - return self._resize_height - - @property - def resize_w(self): - return self._resize_width - - @property - def img_mean(self): - return self._img_mean - - -def preprocess(img, bbox_labels, mode, settings): - img_width, img_height = img.size - sampled_labels = bbox_labels - if mode == 'train': - if settings._apply_distort: - img = image_util.distort_image(img, settings) - if settings._apply_expand: - img, bbox_labels, img_width, img_height = image_util.expand_image( - img, bbox_labels, img_width, img_height, settings) - # sampling - batch_sampler = [] - # hard-code here - batch_sampler.append( - image_util.sampler(1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0)) - sampled_bbox = image_util.generate_batch_samples(batch_sampler, - bbox_labels) - - img = np.array(img) - if len(sampled_bbox) > 0: - idx = int(np.random.uniform(0, len(sampled_bbox))) - img, sampled_labels = image_util.crop_image( - img, bbox_labels, sampled_bbox[idx], img_width, img_height) - - img = Image.fromarray(img) - img = img.resize((settings.resize_w, settings.resize_h), Image.ANTIALIAS) - img = np.array(img) - - if mode == 'train': - mirror = int(np.random.uniform(0, 2)) - if mirror == 1: - img = img[:, ::-1, :] - for i in six.moves.xrange(len(sampled_labels)): - tmp = sampled_labels[i][1] - sampled_labels[i][1] = 1 - sampled_labels[i][3] - sampled_labels[i][3] = 1 - tmp - # HWC to CHW - if len(img.shape) == 3: - img = np.swapaxes(img, 1, 2) - img = np.swapaxes(img, 1, 0) - # RBG to BGR - img = img[[2, 1, 0], :, :] - img = img.astype('float32') - img -= settings.img_mean - img = img * 0.007843 - return img, sampled_labels - - -def coco(settings, coco_api, file_list, mode, batch_size, shuffle, data_dir): - from pycocotools.coco import COCO - - def reader(): - if mode == 'train' and shuffle: - np.random.shuffle(file_list) - batch_out = [] - for image in file_list: - image_name = image['file_name'] - image_path = os.path.join(data_dir, image_name) - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - im = Image.open(image_path) - if im.mode == 'L': - im = im.convert('RGB') - im_width, im_height = im.size - im_id = image['id'] - - # layout: category_id | xmin | ymin | xmax | ymax | iscrowd - bbox_labels = [] - annIds = coco_api.getAnnIds(imgIds=image['id']) - anns = coco_api.loadAnns(annIds) - for ann in anns: - bbox_sample = [] - # start from 1, leave 0 to background - bbox_sample.append(float(ann['category_id'])) - bbox = ann['bbox'] - xmin, ymin, w, h = bbox - xmax = xmin + w - ymax = ymin + h - bbox_sample.append(float(xmin) / im_width) - bbox_sample.append(float(ymin) / im_height) - bbox_sample.append(float(xmax) / im_width) - bbox_sample.append(float(ymax) / im_height) - bbox_sample.append(float(ann['iscrowd'])) - bbox_labels.append(bbox_sample) - im, sample_labels = preprocess(im, bbox_labels, mode, settings) - sample_labels = np.array(sample_labels) - if len(sample_labels) == 0: continue - im = im.astype('float32') - boxes = sample_labels[:, 1:5] - lbls = sample_labels[:, 0].astype('int32') - iscrowd = sample_labels[:, -1].astype('int32') - if 'cocoMAP' in settings.ap_version: - batch_out.append((im, boxes, lbls, iscrowd, - [im_id, im_width, im_height])) - else: - batch_out.append((im, boxes, lbls, iscrowd)) - - if len(batch_out) == batch_size: - yield batch_out - batch_out = [] - - if mode == 'test' and len(batch_out) > 1: - yield batch_out - batch_out = [] - - return reader - - -def pascalvoc(settings, file_list, mode, batch_size, shuffle): - def reader(): - if mode == 'train' and shuffle: - np.random.shuffle(file_list) - batch_out = [] - cnt = 0 - for image in file_list: - image_path, label_path = image.split() - image_path = os.path.join(settings.data_dir, image_path) - label_path = os.path.join(settings.data_dir, label_path) - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - im = Image.open(image_path) - if im.mode == 'L': - im = im.convert('RGB') - im_width, im_height = im.size - - # layout: label | xmin | ymin | xmax | ymax | difficult - bbox_labels = [] - root = xml.etree.ElementTree.parse(label_path).getroot() - for object in root.findall('object'): - bbox_sample = [] - # start from 1 - bbox_sample.append( - float(settings.label_list.index(object.find('name').text))) - bbox = object.find('bndbox') - difficult = float(object.find('difficult').text) - bbox_sample.append(float(bbox.find('xmin').text) / im_width) - bbox_sample.append(float(bbox.find('ymin').text) / im_height) - bbox_sample.append(float(bbox.find('xmax').text) / im_width) - bbox_sample.append(float(bbox.find('ymax').text) / im_height) - bbox_sample.append(difficult) - bbox_labels.append(bbox_sample) - im, sample_labels = preprocess(im, bbox_labels, mode, settings) - sample_labels = np.array(sample_labels) - if len(sample_labels) == 0: continue - im = im.astype('float32') - boxes = sample_labels[:, 1:5] - lbls = sample_labels[:, 0].astype('int32') - difficults = sample_labels[:, -1].astype('int32') - - batch_out.append((im, boxes, lbls, difficults)) - if len(batch_out) == batch_size: - yield batch_out - cnt += len(batch_out) - batch_out = [] - - if mode == 'test' and len(batch_out) > 1: - yield batch_out - cnt += len(batch_out) - batch_out = [] - - return reader - - -def train(settings, - file_list, - batch_size, - shuffle=True, - num_workers=8, - enable_ce=False): - file_path = os.path.join(settings.data_dir, file_list) - readers = [] - if 'coco' in settings.dataset: - # cocoapi - from pycocotools.coco import COCO - coco_api = COCO(file_path) - image_ids = coco_api.getImgIds() - images = coco_api.loadImgs(image_ids) - np.random.shuffle(images) - n = int(math.ceil(len(images) // num_workers)) - image_lists = [images[i:i + n] for i in range(0, len(images), n)] - - if '2014' in file_list: - sub_dir = "train2014" - elif '2017' in file_list: - sub_dir = "train2017" - data_dir = os.path.join(settings.data_dir, sub_dir) - for l in image_lists: - readers.append( - coco(settings, coco_api, l, 'train', batch_size, shuffle, - data_dir)) - else: - images = [line.strip() for line in open(file_path)] - np.random.shuffle(images) - n = int(math.ceil(len(images) // num_workers)) - image_lists = [images[i:i + n] for i in range(0, len(images), n)] - for l in image_lists: - readers.append(pascalvoc(settings, l, 'train', batch_size, shuffle)) - return paddle.reader.multiprocess_reader(readers, False) - - -def test(settings, file_list, batch_size): - file_list = os.path.join(settings.data_dir, file_list) - if 'coco' in settings.dataset: - from pycocotools.coco import COCO - coco_api = COCO(file_list) - image_ids = coco_api.getImgIds() - images = coco_api.loadImgs(image_ids) - if '2014' in file_list: - sub_dir = "val2014" - elif '2017' in file_list: - sub_dir = "val2017" - data_dir = os.path.join(settings.data_dir, sub_dir) - return coco(settings, coco_api, images, 'test', batch_size, False, - data_dir) - else: - image_list = [line.strip() for line in open(file_list)] - return pascalvoc(settings, image_list, 'test', batch_size, False) - - -def infer(settings, image_path): - def reader(): - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - img = Image.open(image_path) - if img.mode == 'L': - img = img.convert('RGB') - im_width, im_height = img.size - img = img.resize((settings.resize_w, settings.resize_h), - Image.ANTIALIAS) - img = np.array(img) - # HWC to CHW - if len(img.shape) == 3: - img = np.swapaxes(img, 1, 2) - img = np.swapaxes(img, 1, 0) - # RBG to BGR - img = img[[2, 1, 0], :, :] - img = img.astype('float32') - img -= settings.img_mean - img = img * 0.007843 - return img - - return reader diff --git a/PaddleCV/Research/astar2019/score.py b/PaddleCV/Research/astar2019/score.py deleted file mode 100644 index 808f173859824e2cbcc1d40600e04148ff4d09a5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/astar2019/score.py +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -# os.environ["CUDA_VISIBLE_DEVICES"] = "0" -# os.environ["FLAGS_fraction_of_gpu_memory_to_use"] = "0.3" -import sys -sys.path.insert(0, ".") -import argparse -import functools - -import paddle.fluid as fluid -import reader -from utils import * -import json -from pycocotools.coco import COCO -from pycocotools.cocoeval import COCOeval -import tempfile - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('batch_size', int, 32, "Minibatch size.") -add_arg('data_dir', str, '', "The data root path.") -add_arg('test_list', str, '', "The testing data lists.") -add_arg('model_dir', str, '', "The model path.") -add_arg('nms_threshold', float, 0.45, "NMS threshold.") -add_arg('ap_version', str, 'cocoMAP', "cocoMAP.") -add_arg('mean_value_B', float, 127.5, "Mean value for B channel which will be subtracted.") #123.68 -add_arg('mean_value_G', float, 127.5, "Mean value for G channel which will be subtracted.") #116.78 -add_arg('mean_value_R', float, 127.5, "Mean value for R channel which will be subtracted.") #103.94 - -def use_coco_api_compute_mAP(data_args, test_list, num_classes, test_reader, exe, infer_program, - feeded_var_names, feeder, target_var, batch_size): - cocoGt = COCO(os.path.join(data_args.data_dir, test_list)) - json_category_id_to_contiguous_id = { - v: i + 1 - for i, v in enumerate(cocoGt.getCatIds()) - } - contiguous_category_id_to_json_id = { - v: k - for k, v in json_category_id_to_contiguous_id.items() - } - - dts_res = [] - - executor = fluid.Executor(fluid.CUDAPlace(0)) - test_program = fluid.Program() - with fluid.program_guard(test_program): - boxes = fluid.layers.data( - name='boxes', shape=[-1, -1, 4], dtype='float32') - scores = fluid.layers.data( - name='scores', shape=[-1, num_classes, -1], dtype='float32') - pred_result = fluid.layers.multiclass_nms( - bboxes=boxes, - scores=scores, - score_threshold=0.01, - nms_top_k=-1, - nms_threshold=0.45, - keep_top_k=-1, - normalized=False) - - executor.run(fluid.default_startup_program()) - - for batch_id, data in enumerate(test_reader()): - boxes_np, scores_np = exe.run(program=infer_program, - feed={feeded_var_names[0]: feeder.feed(data)['image']}, - fetch_list=target_var) - - nms_out = executor.run( - program=test_program, - feed={ - 'boxes': boxes_np, - 'scores': scores_np - }, - fetch_list=[pred_result], return_numpy=False) - if batch_id % 20 == 0: - print("Batch {0}".format(batch_id)) - dts_res += get_batch_dt_res(nms_out, data, contiguous_category_id_to_json_id, batch_size) - - _, tmp_file = tempfile.mkstemp() - with open(tmp_file, 'w') as outfile: - json.dump(dts_res, outfile) - print("start evaluate using coco api") - cocoDt = cocoGt.loadRes(tmp_file) - cocoEval = COCOeval(cocoGt, cocoDt, "bbox") - cocoEval.evaluate() - cocoEval.accumulate() - cocoEval.summarize() - - mAP = cocoEval.stats[0] - return mAP - -def compute_score(model_dir, data_dir, test_list='annotations/instances_val2017.json', batch_size=32, height=300, width=300, num_classes=81, - mean_value=[127.5, 127.5, 127.5]): - """ - compute score, mAP, flops of a model - - Args: - model_dir (string): directory of model - data_dir (string): directory of coco dataset, like '/your/path/to/coco', '/work/datasets/coco' - - Returns: - tuple: score, mAP, flops. - - """ - - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - [infer_program, feeded_var_names, target_var] = fluid.io.load_inference_model(dirname=model_dir, executor=exe) - - image_shape = [3, height, width] - - data_args = reader.Settings( - dataset='coco2017', - data_dir=data_dir, - resize_h=height, - resize_w=width, - mean_value=mean_value, - apply_distort=False, - apply_expand=False, - ap_version='cocoMAP') - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - gt_box = fluid.layers.data( - name='gt_box', shape=[4], dtype='float32', lod_level=1) - gt_label = fluid.layers.data( - name='gt_label', shape=[1], dtype='int32', lod_level=1) - gt_iscrowd = fluid.layers.data( - name='gt_iscrowd', shape=[1], dtype='int32', lod_level=1) - gt_image_info = fluid.layers.data( - name='gt_image_id', shape=[3], dtype='int32') - - test_reader = reader.test(data_args, test_list, batch_size) - feeder = fluid.DataFeeder( - place=place, - feed_list=[image, gt_box, gt_label, gt_iscrowd, gt_image_info]) - - mAP = use_coco_api_compute_mAP(data_args, test_list, num_classes, test_reader, exe, infer_program, - feeded_var_names, feeder, target_var, batch_size) - total_flops_params, is_quantize = summary(infer_program) - MAdds = np.sum(total_flops_params['flops']) / 2000000.0 - - if is_quantize: - MAdds /= 2.0 - - print('mAP:', mAP) - print('MAdds:', MAdds) - - if MAdds < 160.0: - MAdds = 160.0 - - if MAdds > 1300.0: - score = 0.0 - else: - score = mAP * 100 - (5.1249 * np.log(MAdds) - 14.499) - - print('score:', score) - - return score, mAP, MAdds - - -if __name__ == '__main__': - args = parser.parse_args() - print_arguments(args) - score, mAP, flops = compute_score(args.model_dir, args.data_dir, batch_size=args.batch_size) diff --git a/PaddleCV/Research/astar2019/utils.py b/PaddleCV/Research/astar2019/utils.py deleted file mode 100644 index 0ed49b81e6482c21fd88fc0988fa5b90d112417d..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/astar2019/utils.py +++ /dev/null @@ -1,268 +0,0 @@ -"""Contains common utility functions.""" -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from collections import OrderedDict -from prettytable import PrettyTable -import distutils.util -import numpy as np -import six - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -def summary(main_prog): - ''' - It can summary model's PARAMS, FLOPs until now. - It support common operator like conv, fc, pool, relu, sigmoid, bn etc. - Args: - main_prog: main program - Returns: - print summary on terminal - ''' - collected_ops_list = [] - is_quantize = False - for one_b in main_prog.blocks: - block_vars = one_b.vars - for one_op in one_b.ops: - if str(one_op.type).find('quantize') > -1: - is_quantize = True - op_info = OrderedDict() - spf_res = _summary_model(block_vars, one_op) - if spf_res is None: - continue - # TODO: get the operator name - op_info['type'] = one_op.type - op_info['input_shape'] = spf_res[0][1:] - op_info['out_shape'] = spf_res[1][1:] - op_info['PARAMs'] = spf_res[2] - op_info['FLOPs'] = spf_res[3] - collected_ops_list.append(op_info) - - - summary_table, total = _format_summary(collected_ops_list) - _print_summary(summary_table, total) - return total, is_quantize - - -def _summary_model(block_vars, one_op): - ''' - Compute operator's params and flops. - Args: - block_vars: all vars of one block - one_op: one operator to count - Returns: - in_data_shape: one operator's input data shape - out_data_shape: one operator's output data shape - params: one operator's PARAMs - flops: : one operator's FLOPs - ''' - if one_op.type in ['conv2d', 'depthwise_conv2d']: - k_arg_shape = block_vars[one_op.input("Filter")[0]].shape - in_data_shape = block_vars[one_op.input("Input")[0]].shape - out_data_shape = block_vars[one_op.output("Output")[0]].shape - c_out, c_in, k_h, k_w = k_arg_shape - _, c_out_, h_out, w_out = out_data_shape - #assert c_out == c_out_, 'shape error!' - k_groups = one_op.attr("groups") - kernel_ops = k_h * k_w * (c_in / k_groups) - bias_ops = 0 if one_op.input("Bias") == [] else 1 - params = c_out * (kernel_ops + bias_ops) - flops = h_out * w_out * c_out * (kernel_ops + bias_ops) - # base nvidia paper, include mul and add - flops = 2 * flops - - # var_name = block_vars[one_op.input("Filter")[0]].name - # if var_name.endswith('.int8'): - # flops /= 2.0 - - elif one_op.type == 'pool2d': - in_data_shape = block_vars[one_op.input("X")[0]].shape - out_data_shape = block_vars[one_op.output("Out")[0]].shape - _, c_out, h_out, w_out = out_data_shape - k_size = one_op.attr("ksize") - params = 0 - flops = h_out * w_out * c_out * (k_size[0] * k_size[1]) - - elif one_op.type == 'mul': - k_arg_shape = block_vars[one_op.input("Y")[0]].shape - in_data_shape = block_vars[one_op.input("X")[0]].shape - out_data_shape = block_vars[one_op.output("Out")[0]].shape - # TODO: fc has mul ops - # add attr to mul op, tell us whether it belongs to 'fc' - # this's not the best way - if 'fc' not in one_op.output("Out")[0]: - return None - k_in, k_out = k_arg_shape - # bias in sum op - params = k_in * k_out + 1 - flops = k_in * k_out - - # var_name = block_vars[one_op.input("Y")[0]].name - # if var_name.endswith('.int8'): - # flops /= 2.0 - - elif one_op.type in ['sigmoid', 'tanh', 'relu', 'leaky_relu', 'prelu']: - in_data_shape = block_vars[one_op.input("X")[0]].shape - out_data_shape = block_vars[one_op.output("Out")[0]].shape - params = 0 - if one_op.type == 'prelu': - params = 1 - flops = 1 - for one_dim in in_data_shape[1:]: - flops *= one_dim - - elif one_op.type == 'batch_norm': - in_data_shape = block_vars[one_op.input("X")[0]].shape - out_data_shape = block_vars[one_op.output("Y")[0]].shape - _, c_in, h_out, w_out = in_data_shape - # gamma, beta - params = c_in * 2 - # compute mean and std - flops = h_out * w_out * c_in * 2 - - else: - return None - - return in_data_shape, out_data_shape, params, flops - - -def _format_summary(collected_ops_list): - ''' - Format summary report. - Args: - collected_ops_list: the collected operator with summary - Returns: - summary_table: summary report format - total: sum param and flops - ''' - summary_table = PrettyTable( - ["No.", "TYPE", "INPUT", "OUTPUT", "PARAMs", "FLOPs"]) - summary_table.align = 'r' - - total = {} - total_params = [] - total_flops = [] - for i, one_op in enumerate(collected_ops_list): - # notice the order - table_row = [ - i, - one_op['type'], - one_op['input_shape'], - one_op['out_shape'], - int(one_op['PARAMs']), - int(one_op['FLOPs']), - ] - summary_table.add_row(table_row) - total_params.append(int(one_op['PARAMs'])) - total_flops.append(int(one_op['FLOPs'])) - - total['params'] = total_params - total['flops'] = total_flops - - return summary_table, total - - -def _print_summary(summary_table, total): - ''' - Print all the summary on terminal. - Args: - summary_table: summary report format - total: sum param and flops - ''' - parmas = total['params'] - flops = total['flops'] - print(summary_table) - print('Total PARAMs: {}({:.4f}M)'.format( - sum(parmas), sum(parmas) / (10 ** 6))) - print('Total FLOPs: {}({:.2f}G)'.format(sum(flops), sum(flops) / 10 ** 9)) - print( - "Notice: \n now supported ops include [Conv, DepthwiseConv, FC(mul), BatchNorm, Pool, Activation(sigmoid, tanh, relu, leaky_relu, prelu)]" - ) - - -def get_batch_dt_res(nmsed_out_v, data, contiguous_category_id_to_json_id, batch_size): - dts_res = [] - lod = nmsed_out_v[0].lod()[0] - nmsed_out_v = np.array(nmsed_out_v[0]) - real_batch_size = min(batch_size, len(data)) - assert (len(lod) == real_batch_size + 1), \ - "Error Lod Tensor offset dimension. Lod({}) vs. batch_size({})".format(len(lod), batch_size) - k = 0 - for i in range(real_batch_size): - dt_num_this_img = lod[i + 1] - lod[i] - image_id = int(data[i][4][0]) - image_width = int(data[i][4][1]) - image_height = int(data[i][4][2]) - for j in range(dt_num_this_img): - dt = nmsed_out_v[k] - k = k + 1 - category_id, score, xmin, ymin, xmax, ymax = dt.tolist() - xmin = max(min(xmin, 1.0), 0.0) * image_width - ymin = max(min(ymin, 1.0), 0.0) * image_height - xmax = max(min(xmax, 1.0), 0.0) * image_width - ymax = max(min(ymax, 1.0), 0.0) * image_height - w = xmax - xmin - h = ymax - ymin - bbox = [xmin, ymin, w, h] - dt_res = { - 'image_id': image_id, - 'category_id': contiguous_category_id_to_json_id[category_id], - 'bbox': bbox, - 'score': score - } - dts_res.append(dt_res) - return dts_res diff --git a/PaddleCV/Research/danet/README.md b/PaddleCV/Research/danet/README.md deleted file mode 100644 index 02348ae2d2c06a548ac6ad9987d398eb83dce49d..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/README.md +++ /dev/null @@ -1,155 +0,0 @@ -# [Dual Attention Network for Scene Segmentation (CVPR2019)](https://arxiv.org/pdf/1809.02983.pdf) - -本项目是[DANet](https://arxiv.org/pdf/1809.02983.pdf)的 PaddlePaddle(>=1.5.2) 实现, 包含模型训练,验证等内容。 - -## 模型简介 -![net](img/Network.png) -骨干网络使用ResNet,为更好地进行语义分割任务,作者对ResNet做出以下改动: - - 1、将最后两个layer的downsampling取消,使得特征图是原图的1/8,保持较高空间分辨率。 - 2、最后两个layer采用空洞卷积扩大感受野。 -然后接上两个并行的注意力模块(位置注意力和通道注意力),最终将两个模块的结果进行elementwise操作,之后再接一层卷积输出分割图。 - -### 位置注意力 - -![position](img/position.png) - -A是骨干网络ResNet输出经过一层卷积生成的特征图,维度为CHW; -A经过3个卷积操作输出维度均为CHW的B、C、D。将B、C、D都reshape到CN(N = H*W); -然后将B reshape后的结果转置与C相乘,得到N * N的矩阵, 对于矩阵的每一个点进行softmax; -然后将D与softmax后的结果相乘并reshape到CHW,再与A进行elementwise。 - -### 通道注意力 -![channel](img/channel.png) - - -A是骨干网络ResNet输出经过一层卷积生成的特征图,维度为CHW; -A经过3个reshape操作输出维度均为CN(N = H*W)的B、C、D; -然后将B转置与C相乘,得到C * C的矩阵,对于矩阵的每一个点进行softmax; -然后将D与softmax后的结果相乘并reshape到CHW,再与A进行elementwise。 - - - -## 数据准备 - -公开数据集:Cityscapes - -训练集2975张,验证集500张,测试集1525张,图片分辨率都是1024*2048。 - -数据集来源:AIstudio数据集页面上[下载](https://aistudio.baidu.com/aistudio/datasetDetail/11503), cityscapes.zip解压至dataset文件夹下,train.zip解压缩到cityscapes/leftImg8bit,其目录结构如下: -```text -dataset - ├── cityscapes # Cityscapes数据集 - ├── gtFine # 精细化标注的label - ├── leftImg8bit # 训练,验证,测试图片 - ├── trainLabels.txt # 训练图片路径 - ├── valLabels.txt # 验证图片路径 - ... ... -``` -## 训练说明 - -#### 数据增强策略 - 1、随机尺度缩放:尺度范围0.75到2.0 - 2、随机左右翻转:发生概率0.5 - 3、同比例缩放:缩放的大小由选项1决定。 - 4、随机裁剪: - 5、高斯模糊:发生概率0.3(可选) - 6、颜色抖动,对比度,锐度,亮度; 发生概率0.3(可选) -###### 默认1、2、3、4、5、6都开启 - -#### 学习率调节策略 - 1、使用热身策略,学习率由0递增到base_lr,热身轮数(epoch)是5 - 2、在热身策略之后使用学习率衰减策略(poly),学习率由base_lr递减到0 - -#### 优化器选择 - Momentum: 动量0.9,正则化系数1e-4 - -#### 加载预训练模型 - 设置 --load_pretrained_model(默认为False) - 预训练文件: - checkpoint/DANet50_pretrained_model_paddle1.6.pdparams - checkpoint/DANet101_pretrained_model_paddle1.6.pdparams - -#### 加载训练好的模型 - 设置 --load_better_model(默认为False) - 训练好的文件: - checkpoint/DANet101_better_model_paddle1.6.pdparams -##### 【注】 - 训练时paddle版本是1.5.2,代码已转为1.6版本(兼容1.6版本),预训练参数、训练好的参数来自1.5.2版本 - -#### 配置模型文件路径 -[预训练参数、最优模型参数下载](https://paddlemodels.bj.bcebos.com/DANet/DANet_models.tar) - -其目录结构如下: -```text -checkpoint - ├── DANet50_pretrained_model_paddle1.6.pdparams # DANet50预训练模型,需要paddle >=1.6.0 - ├── DANet101_pretrained_model_paddle1.6.pdparams # DANet101预训练模型,需要paddle >=1.6.0 - ├── DANet101_better_model_paddle1.6.pdparams # DANet101训练最优模型,需要paddle >=1.6.0 - ├── DANet101_better_model_paddle1.5.2 # DANet101在1.5.2版本训练的最优模型,需要paddle >= 1.5.2 - -``` - -## 模型训练 - -```sh -cd danet -export PYTHONPATH=`pwd`:$PYTHONPATH -# open garbage collection to save memory -export FLAGS_eager_delete_tensor_gb=0.0 -# setting visible devices for train -export CUDA_VISIBLE_DEVICES=0,1,2,3 -``` - -executor执行以下命令进行训练 -```sh -python train_executor.py --backbone resnet101 --base_size 1024 --crop_size 768 --epoch_num 350 --batch_size 2 --lr 0.003 --lr_scheduler poly --warm_up --warmup_epoch 2 --cuda --use_data_parallel --load_pretrained_model --save_model checkpoint/DANet101_better_model_paddle1.5.2 --multi_scales --flip --dilated --multi_grid --scale --multi_dilation 4 8 16 -``` -参数含义: 使用ResNet101骨干网络,训练图片基础大小是1024,裁剪大小是768,训练轮数是350次,batch size是2 -学习率是0.003,学习率衰减策略是poly,使用学习率热身,热身轮数是2轮,使用GPU,使用数据并行, 加载预训练模型,设置加载的模型地址,使用多尺度测试, 使用图片左右翻转测试,使用空洞卷积,使用multi_grid,multi_dilation设置为4 8 16,使用多尺度训练 -##### Windows下训练需要去掉 --use_data_parallel -#### 或者 -dygraph执行以下命令进行训练 -```sh -python train_dygraph.py --backbone resnet101 --base_size 1024 --crop_size 768 --epoch_num 350 --batch_size 2 --lr 0.003 --lr_scheduler poly --cuda --use_data_parallel --load_pretrained_model --save_model checkpoint/DANet101_better_model_paddle1.6 --multi_scales --flip --dilated --multi_grid --scale --multi_dilation 4 8 16 -``` -参数含义: 使用ResNet101骨干网络,训练图片基础大小是1024,裁剪大小是768,训练轮数是350次,batch size是2,学习率是0.003,学习率衰减策略是poly,使用GPU, 使用数据并行,加载预训练模型,设置加载的模型地址,使用多尺度测试,使用图片左右翻转测试,使用空洞卷积,使用multi_grid,multi_dilation设置4 8 16,使用多尺度训练 - -#### 【注】 -##### train_executor.py使用executor方式训练(适合paddle >= 1.5.2),train_dygraph.py使用动态图方式训练(适合paddle >= 1.6.0),两种方式都可以 -##### 动态图方式训练暂时不支持学习率热身 - -#### 在训练阶段,输出的验证结果不是真实的,需要使用eval.py来获得验证的最终结果。 - - ## 模型验证 -```sh -# open garbage collection to save memory -export FLAGS_eager_delete_tensor_gb=0.0 -# setting visible devices for prediction -export CUDA_VISIBLE_DEVICES=0 - -python eval.py --backbone resnet101 --base_size 2048 --crop_size 1024 --cuda --use_data_parallel --load_better_model --save_model checkpoint/DANet101_better_model_paddle1.6 --multi_scales --flip --dilated --multi_grid --multi_dilation 4 8 16 -``` -##### 如果需要把executor训练的参数转成dygraph模式下进行验证的话,请在命令行加上--change_executor_to_dygraph - -## 验证结果 -评测指标:mean IOU(平均交并比) - - -| 模型 | 单尺度 | 多尺度 | -| :---:|:---:| :---:| -|DANet101|0.8043836|0.8138021 - -##### 具体数值 -| 模型 | cls1 | cls2 | cls3 | cls4 | cls5 | cls6 | cls7 | cls8 | cls9 | cls10 | cls11 | cls12 | cls13 | cls14 | cls15 | cls16 |cls17 | cls18 | cls19 | -| :---:|:---: | :---:| :---:|:---: | :---:| :---:|:---: | :---:| :---:|:---: |:---: |:---: |:---: | :---: | :---: |:---: | :---:| :---: |:---: | -|DANet101-SS|0.98212|0.85372|0.92799|0.59976|0.63318|0.65819|0.72023|0.80000|0.92605|0.65788|0.94841|0.83377|0.65206|0.95566|0.87148|0.91233|0.84352|0.71948|0.78737| -|DANet101-MS|0.98047|0.84637|0.93084|0.62699|0.64839|0.67769|0.73650|0.81343|0.92942|0.67010|0.95127|0.84466|0.66635|0.95749|0.87755|0.92370|0.85344|0.73007|0.79742| - -## 输出结果可视化 -![val_1](img/val_1.png) -###### 输入图片 -![val_gt](img/val_gt.png) -###### 图片label -![val_output](img/val_output.png) -###### DANet101模型输出 diff --git a/PaddleCV/Research/danet/checkpoint/.gitkeep b/PaddleCV/Research/danet/checkpoint/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/Research/danet/danet.py b/PaddleCV/Research/danet/danet.py deleted file mode 100644 index 566a13e5cb7c9079de704db86647bcf2a5cabf1b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/danet.py +++ /dev/null @@ -1,641 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import shutil -import paddle.fluid as fluid -import os - - -__all__ = ['DANet'] - - -class ConvBN(fluid.dygraph.Layer): - - def __init__(self, - name_scope, - num_filters, - filter_size=3, - stride=1, - dilation=1, - act=None, - learning_rate=1.0, - dtype='float32', - bias_attr=False): - super(ConvBN, self).__init__(name_scope) - - if dilation != 1: - padding = dilation - else: - padding = (filter_size - 1) // 2 - - self._conv = fluid.dygraph.Conv2D(name_scope, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - dilation=dilation, - act=None, - dtype=dtype, - bias_attr=bias_attr if bias_attr is False else fluid.ParamAttr( - learning_rate=learning_rate, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=learning_rate, - name='weight') - ) - self._bn = fluid.dygraph.BatchNorm(name_scope, - num_channels=num_filters, - act=act, - dtype=dtype, - momentum=0.9, - epsilon=1e-5, - bias_attr=fluid.ParamAttr( - learning_rate=learning_rate, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=learning_rate, - name='weight'), - moving_mean_name='running_mean', - moving_variance_name='running_var' - ) - - def forward(self, inputs): - x = self._conv(inputs) - x = self._bn(x) - return x - - -class BasicBlock(fluid.dygraph.Layer): - - def __init__(self, - name_scope, - num_filters, - stride=1, - dilation=1, - same=False): - super(BasicBlock, self).__init__(name_scope) - self._conv0 = ConvBN(self.full_name(), - num_filters=num_filters, - filter_size=3, - stride=stride, - dilation=dilation, - act='relu') - self._conv1 = ConvBN(self.full_name(), - num_filters=num_filters, - filter_size=3, - stride=1, - dilation=dilation, - act=None) - - self.same = same - - if not same: - self._skip = ConvBN(self.full_name(), - num_filters=num_filters, - filter_size=1, - stride=stride, - act=None) - - def forward(self, inputs): - x = self._conv0(inputs) - x = self._conv1(x) - if self.same: - skip = inputs - else: - skip = self._skip(inputs) - x = fluid.layers.elementwise_add(x, skip, act='relu') - return x - - -class BottleneckBlock(fluid.dygraph.Layer): - def __init__(self, name_scope, num_filters, stride, dilation=1, same=False): - super(BottleneckBlock, self).__init__(name_scope) - self.expansion = 4 - - self._conv0 = ConvBN(name_scope, - num_filters=num_filters, - filter_size=1, - stride=1, - act='relu') - self._conv1 = ConvBN(name_scope, - num_filters=num_filters, - filter_size=3, - stride=stride, - dilation=dilation, - act='relu') - self._conv2 = ConvBN(name_scope, - num_filters=num_filters * self.expansion, - filter_size=1, - stride=1, - act=None) - self.same = same - - if not same: - self._skip = ConvBN(name_scope, - num_filters=num_filters * self.expansion, - filter_size=1, - stride=stride, - act=None) - - def forward(self, inputs): - x = self._conv0(inputs) - x = self._conv1(x) - x = self._conv2(x) - if self.same: - skip = inputs - else: - skip = self._skip(inputs) - x = fluid.layers.elementwise_add(x, skip, act='relu') - return x - - -class ResNet(fluid.dygraph.Layer): - def __init__(self, - name_scope, - layer=152, - num_class=1000, - dilated=True, - multi_grid=True, - multi_dilation=[4, 8, 16], - need_fc=False): - super(ResNet, self).__init__(name_scope) - - support_layer = [18, 34, 50, 101, 152] - assert layer in support_layer, 'layer({}) not in {}'.format(layer, support_layer) - self.need_fc = need_fc - self.num_filters_list = [64, 128, 256, 512] - if layer == 18: - self.depth = [2, 2, 2, 2] - elif layer == 34: - self.depth = [3, 4, 6, 3] - elif layer == 50: - self.depth = [3, 4, 6, 3] - elif layer == 101: - self.depth = [3, 4, 23, 3] - elif layer == 152: - self.depth = [3, 8, 36, 3] - - if multi_grid: - assert multi_dilation is not None - self.multi_dilation = multi_dilation - - self._conv = ConvBN(name_scope, 64, 7, 2, act='relu') - self._pool = fluid.dygraph.Pool2D(name_scope, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - if layer >= 50: - self.layer1 = self._make_layer(block=BottleneckBlock, - depth=self.depth[0], - num_filters=self.num_filters_list[0], - stride=1, - same=False, - name='layer1') - self.layer2 = self._make_layer(block=BottleneckBlock, - depth=self.depth[1], - num_filters=self.num_filters_list[1], - stride=2, - same=False, - name='layer2') - if dilated: - self.layer3 = self._make_layer(block=BottleneckBlock, - depth=self.depth[2], - num_filters=self.num_filters_list[2], - stride=2, - dilation=2, - same=False, - name='layer3') - if multi_grid: # layer4 采用不同的采样率 - self.layer4 = self._make_layer(block=BottleneckBlock, - depth=self.depth[3], - num_filters=self.num_filters_list[3], - stride=2, - dilation=4, - multi_grid=multi_grid, - multi_dilation=self.multi_dilation, - same=False, - name='layer4') - else: - self.layer4 = self._make_layer(block=BottleneckBlock, - depth=self.depth[3], - num_filters=self.num_filters_list[3], - stride=2, - dilation=4, - same=False, - name='layer4') - else: - self.layer3 = self._make_layer(block=BottleneckBlock, - depth=self.depth[2], - num_filters=self.num_filters_list[2], - stride=2, - dilation=1, - same=False, - name='layer3') - self.layer4 = self._make_layer(block=BottleneckBlock, - depth=self.depth[3], - num_filters=self.num_filters_list[3], - stride=2, - dilation=1, - same=False, - name='layer4') - - else: # layer=18 or layer=34 - self.layer1 = self._make_layer(block=BasicBlock, - depth=self.depth[0], - num_filters=self.num_filters_list[0], - stride=1, - same=True, - name=name_scope) - self.layer2 = self._make_layer(block=BasicBlock, - depth=self.depth[1], - num_filters=self.num_filters_list[1], - stride=2, - same=False, - name=name_scope) - self.layer3 = self._make_layer(block=BasicBlock, - depth=self.depth[2], - num_filters=self.num_filters_list[2], - stride=2, - dilation=1, - same=False, - name=name_scope) - self.layer4 = self._make_layer(block=BasicBlock, - depth=self.depth[3], - num_filters=self.num_filters_list[3], - stride=2, - dilation=1, - same=False, - name=name_scope) - - self._avgpool = fluid.dygraph.Pool2D(name_scope, - global_pooling=True, - pool_type='avg') - self.fc = fluid.dygraph.FC(name_scope, - size=num_class, - act='softmax') - - def _make_layer(self, block, depth, num_filters, stride=1, dilation=1, same=False, multi_grid=False, - multi_dilation=None, name=None): - layers = [] - if dilation != 1: - # stride(2x2) with a dilated convolution instead - stride = 1 - - if multi_grid: - assert len(multi_dilation) == 3 - for depth in range(depth): - temp = block(name + '.{}'.format(depth), - num_filters=num_filters, - stride=stride, - dilation=multi_dilation[depth], - same=same) - stride = 1 - same = True - layers.append(self.add_sublayer('_{}_{}'.format(name, depth + 1), temp)) - else: - for depth in range(depth): - temp = block(name + '.{}'.format(depth), - num_filters=num_filters, - stride=stride, - dilation=dilation if depth > 0 else 1, - same=same) - stride = 1 - same = True - layers.append(self.add_sublayer('_{}_{}'.format(name, depth + 1), temp)) - return layers - - def forward(self, inputs): - x = self._conv(inputs) - - x = self._pool(x) - for layer in self.layer1: - x = layer(x) - c1 = x - - for layer in self.layer2: - x = layer(x) - c2 = x - - for layer in self.layer3: - x = layer(x) - c3 = x - - for layer in self.layer4: - x = layer(x) - c4 = x - - if self.need_fc: - x = self._avgpool(x) - x = self.fc(x) - return x - else: - return c1, c2, c3, c4 - - -class CAM(fluid.dygraph.Layer): - def __init__(self, - name_scope, - in_channels=512, - default_value=0): - """ - channel_attention_module - """ - super(CAM, self).__init__(name_scope) - self.in_channels = in_channels - self.gamma = fluid.layers.create_parameter(shape=[1], - dtype='float32', - is_bias=True, - attr=fluid.ParamAttr( - learning_rate=10.0, - name='cam_gamma'), - default_initializer=fluid.initializer.ConstantInitializer( - value=default_value) - ) - - def forward(self, inputs): - batch_size, c, h, w = inputs.shape - out_b = fluid.layers.reshape(inputs, shape=[batch_size, self.in_channels, h * w]) - out_c = fluid.layers.reshape(inputs, shape=[batch_size, self.in_channels, h * w]) - out_c_t = fluid.layers.transpose(out_c, perm=[0, 2, 1]) - mul_bc = fluid.layers.matmul(out_b, out_c_t) - - mul_bc_max = fluid.layers.reduce_max(mul_bc, dim=-1, keep_dim=True) - mul_bc_max = fluid.layers.expand(mul_bc_max, expand_times=[1, 1, c]) - x = fluid.layers.elementwise_sub(mul_bc_max, mul_bc) - - attention = fluid.layers.softmax(x, use_cudnn=True, axis=-1) - - out_d = fluid.layers.reshape(inputs, shape=[batch_size, self.in_channels, h * w]) - attention_mul = fluid.layers.matmul(attention, out_d) - - attention_reshape = fluid.layers.reshape(attention_mul, shape=[batch_size, self.in_channels, h, w]) - gamma_attention = fluid.layers.elementwise_mul(attention_reshape, self.gamma) - out = fluid.layers.elementwise_add(gamma_attention, inputs) - return out - - -class PAM(fluid.dygraph.Layer): - def __init__(self, - name_scope, - in_channels=512, - default_value=0): - """ - position_attention_module - """ - super(PAM, self).__init__(name_scope) - - assert in_channels // 8, 'in_channel // 8 > 0 ' - self.channel_in = in_channels // 8 - self._convB = fluid.dygraph.Conv2D(name_scope, - num_filters=in_channels // 8, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - self._convC = fluid.dygraph.Conv2D(name_scope, - num_filters=in_channels // 8, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - self._convD = fluid.dygraph.Conv2D(name_scope, - num_filters=in_channels, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - self.gamma = fluid.layers.create_parameter(shape=[1], - dtype='float32', - is_bias=True, - attr=fluid.ParamAttr( - learning_rate=10.0, - name='pam_gamma'), - default_initializer=fluid.initializer.ConstantInitializer( - value=default_value)) - - def forward(self, inputs): - batch_size, c, h, w = inputs.shape - out_b = self._convB(inputs) - out_b_reshape = fluid.layers.reshape(out_b, shape=[batch_size, self.channel_in, h * w]) - out_b_reshape_t = fluid.layers.transpose(out_b_reshape, perm=[0, 2, 1]) - out_c = self._convC(inputs) - out_c_reshape = fluid.layers.reshape(out_c, shape=[batch_size, self.channel_in, h * w]) - - mul_bc = fluid.layers.matmul(out_b_reshape_t, out_c_reshape) - soft_max_bc = fluid.layers.softmax(mul_bc, use_cudnn=True, axis=-1) - - out_d = self._convD(inputs) - out_d_reshape = fluid.layers.reshape(out_d, shape=[batch_size, self.channel_in * 8, h * w]) - attention = fluid.layers.matmul(out_d_reshape, fluid.layers.transpose(soft_max_bc, perm=[0, 2, 1])) - attention = fluid.layers.reshape(attention, shape=[batch_size, self.channel_in * 8, h, w]) - - gamma_attention = fluid.layers.elementwise_mul(attention, self.gamma) - out = fluid.layers.elementwise_add(gamma_attention, inputs) - return out - - -class DAHead(fluid.dygraph.Layer): - def __init__(self, - name_scope, - in_channels, - out_channels, - batch_size): - super(DAHead, self).__init__(name_scope) - self.in_channel = in_channels // 4 - self.batch_size = batch_size - self._conv_bn_relu0 = ConvBN(name_scope, - num_filters=self.in_channel, - filter_size=3, - stride=1, - act='relu', - learning_rate=10.0, - bias_attr=False) - - self._conv_bn_relu1 = ConvBN(name_scope, - num_filters=self.in_channel, - filter_size=3, - stride=1, - act='relu', - learning_rate=10.0, - bias_attr=False) - - self._pam = PAM('pam', in_channels=self.in_channel, default_value=0.0) - self._cam = CAM('cam', in_channels=self.in_channel, default_value=0.0) - - self._conv_bn_relu2 = ConvBN(name_scope, - num_filters=self.in_channel, - filter_size=3, - stride=1, - act='relu', - learning_rate=10.0, - bias_attr=False) - - self._conv_bn_relu3 = ConvBN(name_scope, - num_filters=self.in_channel, - filter_size=3, - stride=1, - act='relu', - learning_rate=10.0, - bias_attr=False) - self._pam_last_conv = fluid.dygraph.Conv2D(name_scope, - num_filters=out_channels, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - self._cam_last_conv = fluid.dygraph.Conv2D(name_scope, - num_filters=out_channels, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - self._last_conv = fluid.dygraph.Conv2D(name_scope, - num_filters=out_channels, - filter_size=1, - bias_attr=fluid.ParamAttr( - learning_rate=10.0, - name='bias'), - param_attr=fluid.ParamAttr( - learning_rate=10.0, - name='weight') - ) - - def forward(self, inputs): - out = [] - inputs_pam = self._conv_bn_relu0(inputs) - pam = self._pam(inputs_pam) - position = self._conv_bn_relu2(pam) - - batch_size, num_channels = position.shape[:2] - - # dropout2d - ones = fluid.layers.ones(shape=[self.batch_size, num_channels], dtype='float32') - dropout1d_P = fluid.layers.dropout(ones, 0.1, dropout_implementation='upscale_in_train') - out_position_drop2d = fluid.layers.elementwise_mul(position, dropout1d_P, axis=0) - dropout1d_P.stop_gradient = True - - inputs_cam = self._conv_bn_relu1(inputs) - cam = self._cam(inputs_cam) - channel = self._conv_bn_relu3(cam) - - # dropout2d - ones2 = fluid.layers.ones(shape=[self.batch_size, num_channels], dtype='float32') - dropout1d_C = fluid.layers.dropout(ones2, 0.1, dropout_implementation='upscale_in_train') - out_channel_drop2d = fluid.layers.elementwise_mul(channel, dropout1d_C, axis=0) - dropout1d_C.stop_gradient = True - position_out = self._pam_last_conv(out_position_drop2d) - channel_out = self._cam_last_conv(out_channel_drop2d) - - feat_sum = fluid.layers.elementwise_add(position, channel, axis=1) - feat_sum_batch_size, feat_sum_num_channels = feat_sum.shape[:2] - - # dropout2d - feat_sum_ones = fluid.layers.ones(shape=[self.batch_size, feat_sum_num_channels], dtype='float32') - dropout1d_sum = fluid.layers.dropout(feat_sum_ones, 0.1, dropout_implementation='upscale_in_train') - dropout2d_feat_sum = fluid.layers.elementwise_mul(feat_sum, dropout1d_sum, axis=0) - dropout1d_sum.stop_gradient = True - feat_sum_out = self._last_conv(dropout2d_feat_sum) - - out.append(feat_sum_out) - out.append(position_out) - out.append(channel_out) - return tuple(out) - - -class DANet(fluid.dygraph.Layer): - def __init__(self, - name_scope, - backbone='resnet50', - num_classes=19, - batch_size=1, - dilated=True, - multi_grid=True, - multi_dilation=[4, 8, 16]): - super(DANet, self).__init__(name_scope) - if backbone == 'resnet50': - print('backbone resnet50, dilated={}, multi_grid={}, ' - 'multi_dilation={}'.format(dilated, multi_grid, multi_dilation)) - self._backone = ResNet('resnet50', layer=50, dilated=dilated, - multi_grid=multi_grid, multi_dilation=multi_dilation) - elif backbone == 'resnet101': - print('backbone resnet101, dilated={}, multi_grid={}, ' - 'multi_dilation={}'.format(dilated, multi_grid, multi_dilation)) - self._backone = ResNet('resnet101', layer=101, dilated=dilated, - multi_grid=multi_grid, multi_dilation=multi_dilation) - elif backbone == 'resnet152': - print('backbone resnet152, dilated={}, multi_grid={}, ' - 'multi_dilation={}'.format(dilated, multi_grid, multi_dilation)) - self._backone = ResNet('resnet152', layer=152, dilated=dilated, - multi_grid=multi_grid, multi_dilation=multi_dilation) - else: - raise ValueError('unknown backbone: {}'.format(backbone)) - - self._head = DAHead('DA_head', in_channels=2048, out_channels=num_classes, batch_size=batch_size) - - def forward(self, inputs): - h, w = inputs.shape[2:] - _, _, c3, c4 = self._backone(inputs) - x1, x2, x3 = self._head(c4) - out = [] - out1 = fluid.layers.resize_bilinear(x1, out_shape=[h, w]) - out2 = fluid.layers.resize_bilinear(x2, out_shape=[h, w]) - out3 = fluid.layers.resize_bilinear(x3, out_shape=[h, w]) - out.append(out1) - out.append(out2) - out.append(out3) - return out - - -def copy_model(path, new_path): - shutil.rmtree(new_path, ignore_errors=True) - shutil.copytree(path, new_path) - model_path = os.path.join(new_path, '__model__') - if os.path.exists(model_path): - os.remove(model_path) - - -if __name__ == '__main__': - import numpy as np - - with fluid.dygraph.guard(fluid.CPUPlace()): - x = np.random.randn(2, 3, 224, 224).astype('float32') - x = fluid.dygraph.to_variable(x) - model = DANet('test', backbone='resnet101', num_classes=19, batch_size=2) - y = model(x) - print(y[0].shape) diff --git a/PaddleCV/Research/danet/dataset/.gitkeep b/PaddleCV/Research/danet/dataset/.gitkeep deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/dataset/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/PaddleCV/Research/danet/eval.py b/PaddleCV/Research/danet/eval.py deleted file mode 100644 index 46c825fabb71e8fee5834d2c09d5a2332833e007..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/eval.py +++ /dev/null @@ -1,410 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" -os.environ['FLAGS_fraction_of_gpu_memory_to_use'] = "0.99" - -import paddle.fluid as fluid -import paddle -import logging -import math -import numpy as np -import shutil -import os - -from PIL import ImageOps, Image, ImageEnhance, ImageFilter -from datetime import datetime - -from danet import DANet -from options import Options -from utils.cityscapes_data import cityscapes_train -from utils.cityscapes_data import cityscapes_val -from utils.cityscapes_data import cityscapes_test -from utils.lr_scheduler import Lr -from iou import IOUMetric - -# globals -data_mean = np.array([0.485, 0.456, 0.406]).reshape(3, 1, 1) -data_std = np.array([0.229, 0.224, 0.225]).reshape(3, 1, 1) - - -def pad_single_image(image, crop_size): - w, h = image.size - pad_h = crop_size - h if h < crop_size else 0 - pad_w = crop_size - w if w < crop_size else 0 - image = ImageOps.expand(image, border=(0, 0, pad_w, pad_h), fill=0) - assert (image.size[0] >= crop_size and image.size[1] >= crop_size) - return image - - -def crop_image(image, h0, w0, h1, w1): - return image.crop((w0, h0, w1, h1)) - - -def flip_left_right_image(image): - return image.transpose(Image.FLIP_LEFT_RIGHT) - - -def resize_image(image, out_h, out_w, mode=Image.BILINEAR): - return image.resize((out_w, out_h), mode) - - -def mapper_image(image): - image_array = np.array(image) - image_array = image_array.transpose((2, 0, 1)) - image_array = image_array / 255.0 - image_array = (image_array - data_mean) / data_std - image_array = image_array.astype('float32') - image_array = image_array[np.newaxis, :] - return image_array - - -def get_model(args): - model = DANet('DANet', - backbone=args.backbone, - num_classes=args.num_classes, - batch_size=1, - dilated=args.dilated, - multi_grid=args.multi_grid, - multi_dilation=args.multi_dilation) - return model - - -def copy_model(path, new_path): - shutil.rmtree(new_path, ignore_errors=True) - shutil.copytree(path, new_path) - model_path = os.path.join(new_path, '__model__') - if os.path.exists(model_path): - os.remove(model_path) - - -def mean_iou(pred, label, num_classes=19): - label = fluid.layers.elementwise_min(fluid.layers.cast(label, np.int32), - fluid.layers.assign(np.array([num_classes], dtype=np.int32))) - label_ig = (label == num_classes).astype('int32') - label_ng = (label != num_classes).astype('int32') - pred = fluid.layers.cast(fluid.layers.argmax(pred, axis=1), 'int32') - pred = pred * label_ng + label_ig * num_classes - miou, wrong, correct = fluid.layers.mean_iou(pred, label, num_classes + 1) - label.stop_gradient = True - return miou, wrong, correct - - -def change_model_executor_to_dygraph(args): - temp_image = fluid.layers.data(name='temp_image', shape=[3, 224, 224], dtype='float32') - model = get_model(args) - y = model(temp_image) - if args.cuda: - gpu_id = int(os.environ.get('FLAGS_selected_gpus', 0)) - place = fluid.CUDAPlace(gpu_id) if args.cuda else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - model_path = args.save_model - assert os.path.exists(model_path), "Please check whether the executor model file address {} exists. " \ - "Note: the executor model file is multiple files.".format(model_path) - fluid.io.load_persistables(exe, model_path, fluid.default_main_program()) - print('load executor train model successful, start change!') - param_list = fluid.default_main_program().block(0).all_parameters() - param_name_list = [p.name for p in param_list] - temp_dict = {} - for name in param_name_list: - tensor = fluid.global_scope().find_var(name).get_tensor() - npt = np.asarray(tensor) - temp_dict[name] = npt - del model - with fluid.dygraph.guard(): - x = np.random.randn(1, 3, 224, 224).astype('float32') - x = fluid.dygraph.to_variable(x) - model = get_model(args) - y = model(x) - new_param_dict = {} - for k, v in temp_dict.items(): - value = v - value_shape = value.shape - name = k - tensor = fluid.layers.create_parameter(shape=value_shape, - name=name, - dtype='float32', - default_initializer=fluid.initializer.NumpyArrayInitializer(value)) - new_param_dict[name] = tensor - assert len(new_param_dict) == len( - model.state_dict()), "The number of parameters is not equal. Loading parameters failed, " \ - "Please check whether the model is consistent!" - model.set_dict(new_param_dict) - fluid.save_dygraph(model.state_dict(), model_path) - del model - del temp_dict - print('change executor model to dygraph successful!') - - -def eval(args): - if args.change_executor_to_dygraph: - change_model_executor_to_dygraph(args) - with fluid.dygraph.guard(): - num_classes = args.num_classes - base_size = args.base_size - crop_size = args.crop_size - multi_scales = args.multi_scales - flip = args.flip - - if not multi_scales: - scales = [1.0] - else: - # scales = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.2] - scales = [0.5, 0.75, 1.0, 1.25, 1.35, 1.5, 1.75, 2.0, 2.2] # It might work better - - if len(scales) == 1: # single scale - # stride_rate = 2.0 / 3.0 - stride_rate = 1.0 / 2.0 # It might work better - else: - stride_rate = 1.0 / 2.0 - stride = int(crop_size * stride_rate) # slid stride - - model = get_model(args) - x = np.random.randn(1, 3, 224, 224).astype('float32') - x = fluid.dygraph.to_variable(x) - y = model(x) - iou = IOUMetric(num_classes) - model_path = args.save_model - # load_better_model - if paddle.__version__ == '1.5.2' and args.load_better_model: - assert os.path.exists(model_path), "your input save_model: {} ,but '{}' is not exists".format( - model_path, model_path) - print('better model exist!') - new_model_path = 'dygraph/' + model_path - copy_model(model_path, new_model_path) - model_param, _ = fluid.dygraph.load_persistables(new_model_path) - model.load_dict(model_param) - elif args.load_better_model: - assert os.path.exists(model_path + '.pdparams'), "your input save_model: {} ,but '{}' is not exists".format( - model_path, model_path + '.pdparams') - print('better model exist!') - model_param, _ = fluid.dygraph.load_dygraph(model_path) - model.load_dict(model_param) - else: - raise ValueError('Please set --load_better_model!') - - assert len(model_param) == len( - model.state_dict()), "The number of parameters is not equal. Loading parameters failed, " \ - "Please check whether the model is consistent!" - model.eval() - - prev_time = datetime.now() - # reader = cityscapes_test(split='test', base_size=2048, crop_size=1024, scale=True, xmap=True) - reader = cityscapes_test(split='val', base_size=2048, crop_size=1024, scale=True, xmap=True) - - print('MultiEvalModule: base_size {}, crop_size {}'. - format(base_size, crop_size)) - print('scales: {}'.format(scales)) - print('val ing...') - logging.basicConfig(level=logging.INFO, - filename='DANet_{}_eval_dygraph.log'.format(args.backbone), - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') - logging.info('DANet') - logging.info(args) - palette = pat() - for data in reader(): - image = data[0] - label_path = data[1] # val_label is a picture, test_label is a path - label = Image.open(label_path, mode='r') # val_label is a picture, test_label is a path - save_png_path = label_path.replace('val', '{}_val'.format(args.backbone)).replace('test', '{}_test'.format( - args.backbone)) - label_np = np.array(label) - w, h = image.size # h 1024, w 2048 - scores = np.zeros(shape=[num_classes, h, w], dtype='float32') - for scale in scales: - long_size = int(math.ceil(base_size * scale)) # long_size - if h > w: - height = long_size - width = int(1.0 * w * long_size / h + 0.5) - short_size = width - else: - width = long_size - height = int(1.0 * h * long_size / w + 0.5) - short_size = height - - cur_img = resize_image(image, height, width) - # pad - if long_size <= crop_size: - pad_img = pad_single_image(cur_img, crop_size) - pad_img = mapper_image(pad_img) - pad_img = fluid.dygraph.to_variable(pad_img) - pred1, pred2, pred3 = model(pad_img) - pred1 = pred1.numpy() - outputs = pred1[:, :, :height, :width] - if flip: - pad_img_filp = flip_left_right_image(cur_img) - pad_img_filp = pad_single_image(pad_img_filp, crop_size) # pad - pad_img_filp = mapper_image(pad_img_filp) - pad_img_filp = fluid.dygraph.to_variable(pad_img_filp) - pred1, pred2, pred3 = model(pad_img_filp) - pred1 = fluid.layers.reverse(pred1, axis=3) - pred1 = pred1.numpy() - outputs += pred1[:, :, :height, :width] - else: - if short_size < crop_size: - # pad if needed - pad_img = pad_single_image(cur_img, crop_size) - else: - pad_img = cur_img - pw, ph = pad_img.size - assert (ph >= height and pw >= width) - - # slid window - h_grids = int(math.ceil(1.0 * (ph - crop_size) / stride)) + 1 - w_grids = int(math.ceil(1.0 * (pw - crop_size) / stride)) + 1 - outputs = np.zeros(shape=[1, num_classes, ph, pw], dtype='float32') - count_norm = np.zeros(shape=[1, 1, ph, pw], dtype='int32') - for idh in range(h_grids): - for idw in range(w_grids): - h0 = idh * stride - w0 = idw * stride - h1 = min(h0 + crop_size, ph) - w1 = min(w0 + crop_size, pw) - crop_img = crop_image(pad_img, h0, w0, h1, w1) - pad_crop_img = pad_single_image(crop_img, crop_size) - pad_crop_img = mapper_image(pad_crop_img) - pad_crop_img = fluid.dygraph.to_variable(pad_crop_img) - pred1, pred2, pred3 = model(pad_crop_img) # shape [1, num_class, h, w] - pred = pred1.numpy() # channel, h, w - outputs[:, :, h0:h1, w0:w1] += pred[:, :, 0:h1 - h0, 0:w1 - w0] - count_norm[:, :, h0:h1, w0:w1] += 1 - if flip: - pad_img_filp = flip_left_right_image(crop_img) - pad_img_filp = pad_single_image(pad_img_filp, crop_size) # pad - pad_img_array = mapper_image(pad_img_filp) - pad_img_array = fluid.dygraph.to_variable(pad_img_array) - pred1, pred2, pred3 = model(pad_img_array) - pred1 = fluid.layers.reverse(pred1, axis=3) - pred = pred1.numpy() - outputs[:, :, h0:h1, w0:w1] += pred[:, :, 0:h1 - h0, 0:w1 - w0] - count_norm[:, :, h0:h1, w0:w1] += 1 - assert ((count_norm == 0).sum() == 0) - outputs = outputs / count_norm - outputs = outputs[:, :, :height, :width] - outputs = fluid.dygraph.to_variable(outputs) - outputs = fluid.layers.resize_bilinear(outputs, out_shape=[h, w]) - score = outputs.numpy()[0] - scores += score # the sum of all scales, shape: [channel, h, w] - pred = np.argmax(score, axis=0).astype('uint8') - picture_path = '{}'.format(save_png_path).replace('.png', '_scale_{}'.format(scale)) - save_png(pred, palette, picture_path) - pred = np.argmax(scores, axis=0).astype('uint8') - picture_path = '{}'.format(save_png_path).replace('.png', '_scores') - save_png(pred, palette, picture_path) - iou.add_batch(pred, label_np) # cal iou - print('eval done!') - logging.info('eval done!') - acc, acc_cls, iu, mean_iu, fwavacc, kappa = iou.evaluate() - print('acc = {}'.format(acc)) - logging.info('acc = {}'.format(acc)) - print('acc_cls = {}'.format(acc_cls)) - logging.info('acc_cls = {}'.format(acc_cls)) - print('iu = {}'.format(iu)) - logging.info('iu = {}'.format(iu)) - print('mean_iou -- 255 = {}'.format(mean_iu)) - logging.info('mean_iou --255 = {}'.format(mean_iu)) - print('mean_iou = {}'.format(np.nanmean(iu[:-1]))) # realy iou - logging.info('mean_iou = {}'.format(np.nanmean(iu[:-1]))) - print('fwavacc = {}'.format(fwavacc)) - logging.info('fwavacc = {}'.format(fwavacc)) - print('kappa = {}'.format(kappa)) - logging.info('kappa = {}'.format(kappa)) - cur_time = datetime.now() - h, remainder = divmod((cur_time - prev_time).seconds, 3600) - m, s = divmod(remainder, 60) - time_str = "Time %02d:%02d:%02d" % (h, m, s) - print('val ' + time_str) - logging.info('val ' + time_str) - - -def save_png(pred_value, palette, name): - if isinstance(pred_value, np.ndarray): - if pred_value.ndim == 3: - batch_size = pred_value.shape[0] - if batch_size == 1: - pred_value = pred_value.squeeze(axis=0) - image = Image.fromarray(pred_value).convert('P') - image.putpalette(palette) - save_path = '{}.png'.format(name) - save_dir = os.path.dirname(save_path) - if not os.path.exists(save_dir): - os.makedirs(save_dir) - image.save(save_path) - else: - for batch_id in range(batch_size): - value = pred_value[batch_id] - image = Image.fromarray(value).convert('P') - image.putpalette(palette) - save_path = '{}.png'.format(name[batch_id]) - save_dir = os.path.dirname(save_path) - if not os.path.exists(save_dir): - os.makedirs(save_dir) - image.save(save_path) - elif pred_value.ndim == 2: - image = Image.fromarray(pred_value).convert('P') - image.putpalette(palette) - save_path = '{}.png'.format(name) - save_dir = os.path.dirname(save_path) - if not os.path.exists(save_dir): - os.makedirs(save_dir) - image.save(save_path) - else: - raise ValueError('Only support nd-array') - - -def save_png_test(path): - im = Image.open(path) - im_array = np.array(im).astype('uint8') - save_png(im_array, pat(), 'save_png_test') - - -def pat(): - palette = [] - for i in range(256): - palette.extend((i, i, i)) - palette[:3 * 19] = np.array([[128, 64, 128], - [244, 35, 232], - [70, 70, 70], - [102, 102, 156], - [190, 153, 153], - [153, 153, 153], - [250, 170, 30], - [220, 220, 0], - [107, 142, 35], - [152, 251, 152], - [70, 130, 180], - [220, 20, 60], - [255, 0, 0], - [0, 0, 142], - [0, 0, 70], - [0, 60, 100], - [0, 80, 100], - [0, 0, 230], - [119, 11, 32]], dtype='uint8').flatten() - return palette - - -if __name__ == '__main__': - options = Options() - args = options.parse() - options.print_args() - eval(args) - diff --git a/PaddleCV/Research/danet/img/Network.png b/PaddleCV/Research/danet/img/Network.png deleted file mode 100644 index ac109b403a122a0241cb391c2d17b45ca43cb41b..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/Network.png and /dev/null differ diff --git a/PaddleCV/Research/danet/img/channel.png b/PaddleCV/Research/danet/img/channel.png deleted file mode 100644 index eae8854c4252dec561f0b71febf5ddf1372b428c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/channel.png and /dev/null differ diff --git a/PaddleCV/Research/danet/img/position.png b/PaddleCV/Research/danet/img/position.png deleted file mode 100644 index b46f9e1751783eb338b4554da70696df5e411457..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/position.png and /dev/null differ diff --git a/PaddleCV/Research/danet/img/val_1.png b/PaddleCV/Research/danet/img/val_1.png deleted file mode 100644 index 4f4610d36f3d16ec669a89aaaf6ee71b24982435..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/val_1.png and /dev/null differ diff --git a/PaddleCV/Research/danet/img/val_gt.png b/PaddleCV/Research/danet/img/val_gt.png deleted file mode 100644 index 5a0d27351a66a0cab3f885f86e42141a7f96b06d..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/val_gt.png and /dev/null differ diff --git a/PaddleCV/Research/danet/img/val_output.png b/PaddleCV/Research/danet/img/val_output.png deleted file mode 100644 index 3d9ee2191629b8dad656672e99716e1bcb6f720c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/danet/img/val_output.png and /dev/null differ diff --git a/PaddleCV/Research/danet/iou.py b/PaddleCV/Research/danet/iou.py deleted file mode 100644 index 1f560a3041c29f47deb70a7eecbe937d1d096317..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/iou.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import numpy as np - - -class IOUMetric(object): - - def __init__(self, num_classes): - self.num_classes = num_classes + 1 - self.hist = np.zeros((num_classes + 1, num_classes + 1)) - - def _fast_hist(self, label_pred, label_true): - mask = (label_true >= 0) & (label_true < self.num_classes) - hist = np.bincount( - self.num_classes * label_true[mask].astype(int) + - label_pred[mask], minlength=self.num_classes ** 2).reshape(self.num_classes, self.num_classes) - return hist - - def add_batch(self, predictions, gts): - # gts = BHW - # predictions = BHW - if isinstance(gts, np.ndarray): - gts_ig = (gts == 255).astype(np.int32) - gts_nig = (gts != 255).astype(np.int32) - # print(predictions) - gts[gts == 255] = self.num_classes - 1 # 19 - predictions = gts_nig * predictions + gts_ig * (self.num_classes - 1) - # print(predictions) - for lp, lt in zip(predictions, gts): - self.hist += self._fast_hist(lp.flatten(), lt.flatten()) - - def evaluate(self): - acc = np.diag(self.hist).sum() / self.hist.sum() - acc_cls = np.nanmean(np.diag(self.hist) / self.hist.sum(axis=1)) - iu = np.diag(self.hist) / (self.hist.sum(axis=1) + self.hist.sum(axis=0) - np.diag(self.hist)) - mean_iu = np.nanmean(iu) - freq = self.hist.sum(axis=1) / self.hist.sum() - fwavacc = (freq[freq > 0] * iu[freq > 0]).sum() - kappa = (self.hist.sum() * np.diag(self.hist).sum() - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) / ( - self.hist.sum() ** 2 - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) - return acc, acc_cls, iu, mean_iu, fwavacc, kappa - - def evaluate_kappa(self): - kappa = (self.hist.sum() * np.diag(self.hist).sum() - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) / ( - self.hist.sum() ** 2 - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) - return kappa - - def evaluate_iou_kappa(self): - iu = np.diag(self.hist) / (self.hist.sum(axis=1) + self.hist.sum(axis=0) - np.diag(self.hist)) - mean_iu = np.nanmean(iu) - kappa = (self.hist.sum() * np.diag(self.hist).sum() - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) / ( - self.hist.sum() ** 2 - (self.hist.sum(axis=0) * self.hist.sum(axis=1)).sum()) - return mean_iu, kappa - - def evaluate_iu(self): - iu = np.diag(self.hist) / (self.hist.sum(axis=1) + self.hist.sum(axis=0) - np.diag(self.hist)) - return iu - diff --git a/PaddleCV/Research/danet/options.py b/PaddleCV/Research/danet/options.py deleted file mode 100644 index 40f73feef8ae2ee53491c506cba8cb5232e0e4c8..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/options.py +++ /dev/null @@ -1,176 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import argparse - - -class Options(object): - def __init__(self): - parser = argparse.ArgumentParser(description='Paddle DANet Segmentation') - - # model and dataset - parser.add_argument('--model', type=str, default='danet', - help='model name (default: danet)') - parser.add_argument('--backbone', type=str, default='resnet101', - help='backbone name (default: resnet101)') - parser.add_argument('--dataset', type=str, default='cityscapes', - help='dataset name (default: cityscapes)') - parser.add_argument('--num_classes', type=int, default=19, - help='num_classes (default: cityscapes = 19)') - parser.add_argument('--data_folder', type=str, - default='./dataset', - help='training dataset folder (default: ./dataset') - parser.add_argument('--base_size', type=int, default=1024, - help='base image size') - parser.add_argument('--crop_size', type=int, default=768, - help='crop image size') - - # training hyper params - parser.add_argument('--epoch_num', type=int, default=None, metavar='N', - help='number of epochs to train (default: auto)') - parser.add_argument('--start_epoch', type=int, default=0, - metavar='N', help='start epochs (default:0)') - parser.add_argument('--batch_size', type=int, default=None, - metavar='N', help='input batch size for \ - training (default: auto)') - parser.add_argument('--test_batch_size', type=int, default=None, - metavar='N', help='input batch size for \ - testing (default: same as batch size)') - - # optimizer params - parser.add_argument('--lr', type=float, default=None, metavar='LR', - help='learning rate (default: auto)') - parser.add_argument('--lr_scheduler', type=str, default='poly', - help='learning rate scheduler (default: poly)') - parser.add_argument('--lr_pow', type=float, default=0.9, - help='learning rate scheduler (default: 0.9)') - parser.add_argument('--lr_step', type=int, default=None, - help='lr step to change lr') - parser.add_argument('--warm_up', action='store_true', default=False, - help='warm_up (default: False)') - parser.add_argument('--warmup_epoch', type=int, default=5, - help='warmup_epoch (default: 5)') - parser.add_argument('--total_step', type=int, default=None, - metavar='N', help='total_step (default: auto)') - parser.add_argument('--step_per_epoch', type=int, default=None, - metavar='N', help='step_per_epoch (default: auto)') - parser.add_argument('--momentum', type=float, default=0.9, - metavar='M', help='momentum (default: 0.9)') - parser.add_argument('--weight_decay', type=float, default=1e-4, - metavar='M', help='w-decay (default: 1e-4)') - - # cuda, seed and logging - parser.add_argument('--cuda', action='store_true', default=False, - help='use CUDA training, (default: False)') - parser.add_argument('--use_data_parallel', action='store_true', default=False, - help='use data_parallel training, (default: False)') - parser.add_argument('--seed', type=int, default=1, metavar='S', - help='random seed (default: 1)') - parser.add_argument('--log_root', type=str, - default='./', help='set a log path folder') - - # checkpoint - parser.add_argument("--save_model", default='checkpoint/DANet101_better_model_paddle1.6', type=str, - help="model path, (default: checkpoint/DANet101_better_model_paddle1.6)") - - # change executor model params to dygraph model params - parser.add_argument("--change_executor_to_dygraph", action='store_true', default=False, - help="change executor model params to dygraph model params (default:False)") - - # finetuning pre-trained models - parser.add_argument("--load_pretrained_model", action='store_true', default=False, - help="load pretrained model (default: False)") - # load better models - parser.add_argument("--load_better_model", action='store_true', default=False, - help="load better model (default: False)") - parser.add_argument('--multi_scales', action='store_true', default=False, - help="testing scale, (default: False)") - parser.add_argument('--flip', action='store_true', default=False, - help="testing flip image, (default: False)") - - # multi grid dilation option - parser.add_argument("--dilated", action='store_true', default=False, - help="use dilation policy, (default: False)") - parser.add_argument("--multi_grid", action='store_true', default=False, - help="use multi grid dilation policy, default: False") - parser.add_argument('--multi_dilation', nargs='+', type=int, default=None, - help="multi grid dilation list, (default: None), can use --mutil_dilation 4 8 16") - parser.add_argument('--scale', action='store_true', default=False, - help='choose to use random scale transform(0.75-2.0) for train, (default: False)') - - # the parser - self.parser = parser - - def parse(self): - args = self.parser.parse_args() - # default settings for epochs, batch_size and lr - if args.epoch_num is None: - epoches = { - 'pascal_voc': 180, - 'pascal_aug': 180, - 'pcontext': 180, - 'ade20k': 180, - 'cityscapes': 350, - } - num_class_dict = { - 'pascal_voc': 21, - 'pascal_aug': 21, - 'pcontext': 21, - 'ade20k': None, - 'cityscapes': 19, - } - total_steps = { - 'pascal_voc': 200000, - 'pascal_aug': 500000, - 'pcontext': 500000, - 'ade20k': 500000, - 'cityscapes': 150000, - } - args.epoch_num = epoches[args.dataset.lower()] - args.num_classes = num_class_dict[args.dataset.lower()] - args.total_step = total_steps[args.dataset.lower()] - if args.batch_size is None: - args.batch_size = 2 - if args.test_batch_size is None: - args.test_batch_size = args.batch_size - if args.step_per_epoch is None: - step_per_epoch = { - 'pascal_voc': 185, - 'pascal_aug': 185, - 'pcontext': 185, - 'ade20k': 185, - 'cityscapes': 371, # 2975 // batch_size // GPU_num - } - args.step_per_epoch = step_per_epoch[args.dataset.lower()] - if args.lr is None: - lrs = { - 'pascal_voc': 0.0001, - 'pascal_aug': 0.001, - 'pcontext': 0.001, - 'ade20k': 0.01, - 'cityscapes': 0.003, - } - args.lr = lrs[args.dataset.lower()] / 8 * args.batch_size - return args - - def print_args(self): - arg_dict = self.parse().__dict__ - for k, v in arg_dict.items(): - print('{:30s}: {}'.format(k, v)) - diff --git a/PaddleCV/Research/danet/train_dygraph.py b/PaddleCV/Research/danet/train_dygraph.py deleted file mode 100644 index df610999e5eaff47aafe3e53b18833b1eb73b576..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/train_dygraph.py +++ /dev/null @@ -1,353 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" -os.environ['FLAGS_fraction_of_gpu_memory_to_use'] = "0.99" - -import paddle.fluid as fluid -import numpy as np -import random -import paddle -import logging -import shutil -import multiprocessing -import sys -from datetime import datetime -from paddle.utils import Ploter - -from danet import DANet -from options import Options -from utils.cityscapes_data import cityscapes_train -from utils.cityscapes_data import cityscapes_val -from utils.lr_scheduler import Lr -import matplotlib - -matplotlib.use('Agg') - - -def get_model(args): - model = DANet('DANet', - backbone=args.backbone, - num_classes=args.num_classes, - batch_size=args.batch_size, - dilated=args.dilated, - multi_grid=args.multi_grid, - multi_dilation=args.multi_dilation) - return model - - -def _cpu_num(): - if "CPU_NUM" not in os.environ.keys(): - if multiprocessing.cpu_count() > 1: - sys.stderr.write( - '!!! The CPU_NUM is not specified, you should set CPU_NUM in the environment variable list.\n' - 'CPU_NUM indicates that how many CPUPlace are used in the current task.\n' - 'And if this parameter are set as N (equal to the number of physical CPU core) the program may be faster.\n\n' - 'export CPU_NUM={} # for example, set CPU_NUM as number of physical CPU core which is {}.\n\n' - '!!! The default number of CPU_NUM=1.\n'.format( - multiprocessing.cpu_count(), multiprocessing.cpu_count())) - os.environ['CPU_NUM'] = str(1) - cpu_num = os.environ.get('CPU_NUM') - return int(cpu_num) - - -def mean_iou(pred, label, num_classes=19): - label = fluid.layers.elementwise_min(fluid.layers.cast(label, np.int32), - fluid.layers.assign(np.array([num_classes], dtype=np.int32))) - label_ig = (label == num_classes).astype('int32') - label_ng = (label != num_classes).astype('int32') - pred = fluid.layers.cast(fluid.layers.argmax(pred, axis=1), 'int32') - pred = pred * label_ng + label_ig * num_classes - miou, wrong, correct = fluid.layers.mean_iou(pred, label, num_classes + 1) - label.stop_gradient = True - return miou, wrong, correct - - -def loss_fn(pred, pred2, pred3, label, num_classes=19): - pred = fluid.layers.transpose(pred, perm=[0, 2, 3, 1]) - pred = fluid.layers.reshape(pred, [-1, num_classes]) - - pred2 = fluid.layers.transpose(pred2, perm=[0, 2, 3, 1]) - pred2 = fluid.layers.reshape(pred2, [-1, num_classes]) - - pred3 = fluid.layers.transpose(pred3, perm=[0, 2, 3, 1]) - pred3 = fluid.layers.reshape(pred3, [-1, num_classes]) - - label = fluid.layers.reshape(label, [-1, 1]) - - pred = fluid.layers.softmax(pred, use_cudnn=False) - loss1 = fluid.layers.cross_entropy(pred, label, ignore_index=255) - - pred2 = fluid.layers.softmax(pred2, use_cudnn=False) - loss2 = fluid.layers.cross_entropy(pred2, label, ignore_index=255) - - pred3 = fluid.layers.softmax(pred3, use_cudnn=False) - loss3 = fluid.layers.cross_entropy(pred3, label, ignore_index=255) - - label.stop_gradient = True - return loss1 + loss2 + loss3 - - -def optimizer_setting(args): - if args.weight_decay is not None: - regular = fluid.regularizer.L2Decay(regularization_coeff=args.weight_decay) - else: - regular = None - if args.lr_scheduler == 'poly': - lr_scheduler = Lr(lr_policy='poly', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - power=args.lr_pow, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch) - decayed_lr = lr_scheduler.get_lr() - elif args.lr_scheduler == 'cosine': - lr_scheduler = Lr(lr_policy='cosine', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch) - decayed_lr = lr_scheduler.get_lr() - elif args.lr_scheduler == 'piecewise': - lr_scheduler = Lr(lr_policy='piecewise', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch, - decay_epoch=[50, 100, 150], - gamma=0.1) - decayed_lr = lr_scheduler.get_lr() - else: - decayed_lr = args.lr - return fluid.optimizer.MomentumOptimizer(learning_rate=decayed_lr, - momentum=args.momentum, - regularization=regular) - - -def main(args): - batch_size = args.batch_size - num_epochs = args.epoch_num - num_classes = args.num_classes - data_root = args.data_folder - if args.cuda: - num = fluid.core.get_cuda_device_count() - print('The number of GPU: {}'.format(num)) - else: - num = _cpu_num() - print('The number of CPU: {}'.format(num)) - - # program - start_prog = fluid.default_startup_program() - train_prog = fluid.default_main_program() - - start_prog.random_seed = args.seed - train_prog.random_seed = args.seed - np.random.seed(args.seed) - random.seed(args.seed) - - logging.basicConfig(level=logging.INFO, - filename='DANet_{}_train_dygraph.log'.format(args.backbone), - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') - logging.info('DANet') - logging.info(args) - - if args.cuda: - gpu_id = int(os.environ.get('FLAGS_selected_gpus', 0)) - - place = fluid.CUDAPlace(gpu_id) if args.cuda else fluid.CPUPlace() - train_loss_title = 'Train_loss' - test_loss_title = 'Test_loss' - - train_iou_title = 'Train_mIOU' - test_iou_title = 'Test_mIOU' - - plot_loss = Ploter(train_loss_title, test_loss_title) - plot_iou = Ploter(train_iou_title, test_iou_title) - - with fluid.dygraph.guard(place): - - model = get_model(args) - x = np.random.randn(batch_size, 3, 224, 224).astype('float32') - x = fluid.dygraph.to_variable(x) - model(x) - - # load_pretrained_model - if args.load_pretrained_model: - save_dir = args.save_model - assert os.path.exists(save_dir + '.pdparams'), "your input save_model: {} ,but '{}' is not exists".format( - save_dir, save_dir + '.pdparams') - param, _ = fluid.load_dygraph(save_dir) - model.set_dict(param) - assert len(param) == len( - model.state_dict()), "The number of parameters is not equal. Loading parameters failed, " \ - "Please check whether the model is consistent!" - print('load pretrained model!') - - # load_better_model - if args.load_better_model: - save_dir = args.save_model - assert os.path.exists(save_dir + '.pdparams'), "your input save_model: {} ,but '{}' is not exists".format( - save_dir, save_dir + '.pdparams') - param, _ = fluid.load_dygraph(save_dir) - model.set_dict(param) - assert len(param) == len( - model.state_dict()), "The number of parameters is not equal. Loading parameters failed, " \ - "Please check whether the model is consistent!" - print('load better model!') - - optimizer = optimizer_setting(args) - train_data = cityscapes_train(data_root=data_root, - base_size=args.base_size, - crop_size=args.crop_size, - scale=args.scale, - xmap=True, - batch_size=batch_size, - gpu_num=num) - batch_train_data = paddle.batch(paddle.reader.shuffle( - train_data, buf_size=batch_size * 64), - batch_size=batch_size, - drop_last=True) - - val_data = cityscapes_val(data_root=data_root, - base_size=args.base_size, - crop_size=args.crop_size, - scale=args.scale, - xmap=True) - batch_test_data = paddle.batch(val_data, - batch_size=batch_size, - drop_last=True) - - train_iou_manager = fluid.metrics.Accuracy() - train_avg_loss_manager = fluid.metrics.Accuracy() - test_iou_manager = fluid.metrics.Accuracy() - test_avg_loss_manager = fluid.metrics.Accuracy() - - better_miou_train = 0 - better_miou_test = 0 - - for epoch in range(num_epochs): - prev_time = datetime.now() - train_avg_loss_manager.reset() - train_iou_manager.reset() - for batch_id, data in enumerate(batch_train_data()): - image = np.array([x[0] for x in data]).astype('float32') - label = np.array([x[1] for x in data]).astype('int64') - - image = fluid.dygraph.to_variable(image) - label = fluid.dygraph.to_variable(label) - label.stop_gradient = True - pred, pred2, pred3 = model(image) - train_loss = loss_fn(pred, pred2, pred3, label, num_classes=num_classes) - train_avg_loss = fluid.layers.mean(train_loss) - miou, wrong, correct = mean_iou(pred, label, num_classes=num_classes) - train_avg_loss.backward() - optimizer.minimize(train_avg_loss) - model.clear_gradients() - train_iou_manager.update(miou.numpy(), weight=int(batch_size * num)) - train_avg_loss_manager.update(train_avg_loss.numpy(), weight=int(batch_size * num)) - batch_train_str = "epoch: {}, batch: {}, train_avg_loss: {:.6f}, " \ - "train_miou: {:.6f}.".format(epoch + 1, - batch_id + 1, - train_avg_loss.numpy()[0], - miou.numpy()[0]) - if batch_id % 100 == 0: - logging.info(batch_train_str) - print(batch_train_str) - cur_time = datetime.now() - h, remainder = divmod((cur_time - prev_time).seconds, 3600) - m, s = divmod(remainder, 60) - time_str = " Time %02d:%02d:%02d" % (h, m, s) - train_str = "\nepoch: {}, train_avg_loss: {:.6f}, " \ - "train_miou: {:.6f}.".format(epoch + 1, - train_avg_loss_manager.eval()[0], - train_iou_manager.eval()[0]) - print(train_str + time_str + '\n') - logging.info(train_str + time_str + '\n') - plot_loss.append(train_loss_title, epoch, train_avg_loss_manager.eval()[0]) - plot_loss.plot('./DANet_loss_dygraph.jpg') - plot_iou.append(train_iou_title, epoch, train_iou_manager.eval()[0]) - plot_iou.plot('./DANet_miou_dygraph.jpg') - fluid.dygraph.save_dygraph(model.state_dict(), 'checkpoint/DANet_epoch_new') - # save_model - if better_miou_train < train_iou_manager.eval()[0]: - shutil.rmtree('checkpoint/DANet_better_train_{:.4f}.pdparams'.format(better_miou_train), - ignore_errors=True) - better_miou_train = train_iou_manager.eval()[0] - fluid.dygraph.save_dygraph(model.state_dict(), - 'checkpoint/DANet_better_train_{:.4f}'.format(better_miou_train)) - - ########## test ############ - model.eval() - test_iou_manager.reset() - test_avg_loss_manager.reset() - prev_time = datetime.now() - for (batch_id, data) in enumerate(batch_test_data()): - image = np.array([x[0] for x in data]).astype('float32') - label = np.array([x[1] for x in data]).astype('int64') - - image = fluid.dygraph.to_variable(image) - label = fluid.dygraph.to_variable(label) - - label.stop_gradient = True - pred, pred2, pred3 = model(image) - test_loss = loss_fn(pred, pred2, pred3, label, num_classes=num_classes) - test_avg_loss = fluid.layers.mean(test_loss) - miou, wrong, correct = mean_iou(pred, label, num_classes=num_classes) - test_iou_manager.update(miou.numpy(), weight=int(batch_size * num)) - test_avg_loss_manager.update(test_avg_loss.numpy(), weight=int(batch_size * num)) - batch_test_str = "epoch: {}, batch: {}, test_avg_loss: {:.6f}, " \ - "test_miou: {:.6f}.".format(epoch + 1, batch_id + 1, - test_avg_loss.numpy()[0], - miou.numpy()[0]) - if batch_id % 20 == 0: - logging.info(batch_test_str) - print(batch_test_str) - cur_time = datetime.now() - h, remainder = divmod((cur_time - prev_time).seconds, 3600) - m, s = divmod(remainder, 60) - time_str = " Time %02d:%02d:%02d" % (h, m, s) - test_str = "\nepoch: {}, test_avg_loss: {:.6f}, " \ - "test_miou: {:.6f}.".format(epoch + 1, - test_avg_loss_manager.eval()[0], - test_iou_manager.eval()[0]) - print(test_str + time_str + '\n') - logging.info(test_str + time_str + '\n') - plot_loss.append(test_loss_title, epoch, test_avg_loss_manager.eval()[0]) - plot_loss.plot('./DANet_loss_dygraph.jpg') - plot_iou.append(test_iou_title, epoch, test_iou_manager.eval()[0]) - plot_iou.plot('./DANet_miou_dygraph.jpg') - model.train() - # save_model - if better_miou_test < test_iou_manager.eval()[0]: - shutil.rmtree('checkpoint/DANet_better_test_{:.4f}.pdparams'.format(better_miou_test), - ignore_errors=True) - better_miou_test = test_iou_manager.eval()[0] - fluid.dygraph.save_dygraph(model.state_dict(), - 'checkpoint/DANet_better_test_{:.4f}'.format(better_miou_test)) - - -if __name__ == '__main__': - options = Options() - args = options.parse() - options.print_args() - main(args) diff --git a/PaddleCV/Research/danet/train_executor.py b/PaddleCV/Research/danet/train_executor.py deleted file mode 100644 index 82f451dd168527886081c684686dd271a9e3c38c..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/train_executor.py +++ /dev/null @@ -1,423 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -os.environ['FLAGS_eager_delete_tensor_gb'] = "0.0" -os.environ['FLAGS_fraction_of_gpu_memory_to_use'] = "0.99" - -import paddle.fluid as fluid -import numpy as np -import random -import paddle -import logging -import shutil -import multiprocessing -import sys -from datetime import datetime -from paddle.utils import Ploter - -from danet import DANet -from options import Options -from utils.cityscapes_data import cityscapes_train -from utils.cityscapes_data import cityscapes_val -from utils.lr_scheduler import Lr -import matplotlib - -matplotlib.use('Agg') - - -def get_model(args): - model = DANet('DANet', - backbone=args.backbone, - num_classes=args.num_classes, - batch_size=args.batch_size, - dilated=args.dilated, - multi_grid=args.multi_grid, - multi_dilation=args.multi_dilation) - return model - - -def _cpu_num(): - if "CPU_NUM" not in os.environ.keys(): - if multiprocessing.cpu_count() > 1: - sys.stderr.write( - '!!! The CPU_NUM is not specified, you should set CPU_NUM in the environment variable list.\n' - 'CPU_NUM indicates that how many CPUPlace are used in the current task.\n' - 'And if this parameter are set as N (equal to the number of physical CPU core) the program may be faster.\n\n' - 'export CPU_NUM={} # for example, set CPU_NUM as number of physical CPU core which is {}.\n\n' - '!!! The default number of CPU_NUM=1.\n'.format( - multiprocessing.cpu_count(), multiprocessing.cpu_count())) - os.environ['CPU_NUM'] = str(1) - cpu_num = os.environ.get('CPU_NUM') - return int(cpu_num) - - -def mean_iou(pred, label, num_classes=19): - label = fluid.layers.elementwise_min(fluid.layers.cast(label, np.int32), - fluid.layers.assign(np.array([num_classes], dtype=np.int32))) - label_ig = (label == num_classes).astype('int32') - label_ng = (label != num_classes).astype('int32') - pred = fluid.layers.cast(fluid.layers.argmax(pred, axis=1), 'int32') - pred = pred * label_ng + label_ig * num_classes - miou, wrong, correct = fluid.layers.mean_iou(pred, label, num_classes + 1) - label.stop_gradient = True - return miou, wrong, correct - - -def loss_fn(pred, pred2, pred3, label, num_classes=19): - pred = fluid.layers.transpose(pred, perm=[0, 2, 3, 1]) - pred = fluid.layers.reshape(pred, [-1, num_classes]) - - pred2 = fluid.layers.transpose(pred2, perm=[0, 2, 3, 1]) - pred2 = fluid.layers.reshape(pred2, [-1, num_classes]) - - pred3 = fluid.layers.transpose(pred3, perm=[0, 2, 3, 1]) - pred3 = fluid.layers.reshape(pred3, [-1, num_classes]) - - label = fluid.layers.reshape(label, [-1, 1]) - - # loss1 = fluid.layers.softmax_with_cross_entropy(pred, label, ignore_index=255) - # 以上方式会出现loss为NaN的情况 - pred = fluid.layers.softmax(pred, use_cudnn=False) - loss1 = fluid.layers.cross_entropy(pred, label, ignore_index=255) - - pred2 = fluid.layers.softmax(pred2, use_cudnn=False) - loss2 = fluid.layers.cross_entropy(pred2, label, ignore_index=255) - - pred3 = fluid.layers.softmax(pred3, use_cudnn=False) - loss3 = fluid.layers.cross_entropy(pred3, label, ignore_index=255) - - label.stop_gradient = True - return loss1 + loss2 + loss3 - - -def save_model(save_dir, exe, program=None): - if os.path.exists(save_dir): - shutil.rmtree(save_dir, ignore_errors=True) - os.makedirs(save_dir) - # fluid.io.save_persistables(exe, save_dir, program) - fluid.io.save_params(exe, save_dir, program) - print('save: {}'.format(os.path.basename(save_dir))) - else: - os.makedirs(save_dir) - fluid.io.save_persistables(exe, save_dir, program) - print('create: {}'.format(os.path.basename(save_dir))) - - -def load_model(save_dir, exe, program=None): - if os.path.exists(save_dir): - # fluid.io.load_persistables(exe, save_dir, program) - fluid.io.load_params(exe, save_dir, program) - print('Load successful!') - else: - raise Exception('Please check the model path!') - - -def optimizer_setting(args): - if args.weight_decay is not None: - regular = fluid.regularizer.L2Decay(regularization_coeff=args.weight_decay) - else: - regular = None - if args.lr_scheduler == 'poly': - lr_scheduler = Lr(lr_policy='poly', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - power=args.lr_pow, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch) - decayed_lr = lr_scheduler.get_lr() - elif args.lr_scheduler == 'cosine': - lr_scheduler = Lr(lr_policy='cosine', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch) - decayed_lr = lr_scheduler.get_lr() - elif args.lr_scheduler == 'piecewise': - lr_scheduler = Lr(lr_policy='piecewise', - base_lr=args.lr, - epoch_nums=args.epoch_num, - step_per_epoch=args.step_per_epoch, - warm_up=args.warm_up, - warmup_epoch=args.warmup_epoch, - decay_epoch=[50, 100, 150], - gamma=0.1) - decayed_lr = lr_scheduler.get_lr() - else: - decayed_lr = args.lr - return fluid.optimizer.MomentumOptimizer(learning_rate=decayed_lr, - momentum=args.momentum, - regularization=regular) - - -def main(args): - image_shape = args.crop_size - image = fluid.layers.data(name='image', shape=[3, image_shape, image_shape], dtype='float32') - label = fluid.layers.data(name='label', shape=[image_shape, image_shape], dtype='int64') - - batch_size = args.batch_size - epoch_num = args.epoch_num - num_classes = args.num_classes - data_root = args.data_folder - if args.cuda: - num = fluid.core.get_cuda_device_count() - print('The number of GPU: {}'.format(num)) - else: - num = _cpu_num() - print('The number of CPU: {}'.format(num)) - - # program - start_prog = fluid.default_startup_program() - train_prog = fluid.default_main_program() - - start_prog.random_seed = args.seed - train_prog.random_seed = args.seed - np.random.seed(args.seed) - random.seed(args.seed) - - # clone - test_prog = train_prog.clone(for_test=True) - - logging.basicConfig(level=logging.INFO, - filename='DANet_{}_train_executor.log'.format(args.backbone), - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') - logging.info('DANet') - logging.info(args) - - with fluid.program_guard(train_prog, start_prog): - with fluid.unique_name.guard(): - train_py_reader = fluid.io.PyReader(feed_list=[image, label], - capacity=64, - use_double_buffer=True, - iterable=False) - train_data = cityscapes_train(data_root=data_root, - base_size=args.base_size, - crop_size=args.crop_size, - scale=args.scale, - xmap=True, - batch_size=batch_size, - gpu_num=num) - batch_train_data = paddle.batch(paddle.reader.shuffle( - train_data, buf_size=batch_size * 16), - batch_size=batch_size, - drop_last=True) - train_py_reader.decorate_sample_list_generator(batch_train_data) - - model = get_model(args) - pred, pred2, pred3 = model(image) - train_loss = loss_fn(pred, pred2, pred3, label, num_classes=num_classes) - train_avg_loss = fluid.layers.mean(train_loss) - optimizer = optimizer_setting(args) - optimizer.minimize(train_avg_loss) - # miou不是真实的 - miou, wrong, correct = mean_iou(pred, label, num_classes=num_classes) - - with fluid.program_guard(test_prog, start_prog): - with fluid.unique_name.guard(): - test_py_reader = fluid.io.PyReader(feed_list=[image, label], - capacity=64, - iterable=False, - use_double_buffer=True) - val_data = cityscapes_val(data_root=data_root, - base_size=args.base_size, - crop_size=args.crop_size, - scale=args.scale, - xmap=True) - batch_test_data = paddle.batch(val_data, - batch_size=batch_size, - drop_last=True) - test_py_reader.decorate_sample_list_generator(batch_test_data) - - model = get_model(args) - pred, pred2, pred3 = model(image) - test_loss = loss_fn(pred, pred2, pred3, label, num_classes=num_classes) - test_avg_loss = fluid.layers.mean(test_loss) - # miou不是真实的 - miou, wrong, correct = mean_iou(pred, label, num_classes=num_classes) - - place = fluid.CUDAPlace(0) if args.cuda else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(start_prog) - - if args.use_data_parallel and args.cuda: - exec_strategy = fluid.ExecutionStrategy() - exec_strategy.num_threads = fluid.core.get_cuda_device_count() - exec_strategy.num_iteration_per_drop_scope = 100 - build_strategy = fluid.BuildStrategy() - build_strategy.sync_batch_norm = True - print("sync_batch_norm = True!") - compiled_train_prog = fluid.compiler.CompiledProgram(train_prog).with_data_parallel( - loss_name=train_avg_loss.name, - build_strategy=build_strategy, - exec_strategy=exec_strategy) - else: - compiled_train_prog = fluid.compiler.CompiledProgram(train_prog) - - # 加载预训练模型 - if args.load_pretrained_model: - assert os.path.exists(args.save_model), "your input save_model: {} ,but '{}' is not exists".format( - args.save_model, args.save_model) - load_model(args.save_model, exe, program=train_prog) - print('load pretrained model!') - - # 加载最优模型 - if args.load_better_model: - assert os.path.exists(args.save_model), "your input save_model: {} ,but '{}' is not exists".format( - args.save_model, args.save_model) - load_model(args.save_model, exe, program=train_prog) - print('load better model!') - - train_iou_manager = fluid.metrics.Accuracy() - train_avg_loss_manager = fluid.metrics.Accuracy() - test_iou_manager = fluid.metrics.Accuracy() - test_avg_loss_manager = fluid.metrics.Accuracy() - better_miou_train = 0 - better_miou_test = 0 - - train_loss_title = 'Train_loss' - test_loss_title = 'Test_loss' - - train_iou_title = 'Train_mIOU' - test_iou_title = 'Test_mIOU' - - plot_loss = Ploter(train_loss_title, test_loss_title) - plot_iou = Ploter(train_iou_title, test_iou_title) - - for epoch in range(epoch_num): - prev_time = datetime.now() - train_avg_loss_manager.reset() - train_iou_manager.reset() - logging.info('training, epoch = {}'.format(epoch + 1)) - train_py_reader.start() - batch_id = 0 - while True: - try: - train_fetch_list = [train_avg_loss, miou, wrong, correct] - train_avg_loss_value, train_iou_value, w, c = exe.run( - program=compiled_train_prog, - fetch_list=train_fetch_list) - - train_iou_manager.update(train_iou_value, weight=int(batch_size * num)) - train_avg_loss_manager.update(train_avg_loss_value, weight=int(batch_size * num)) - batch_train_str = "epoch: {}, batch: {}, train_avg_loss: {:.6f}, " \ - "train_miou: {:.6f}.".format(epoch + 1, - batch_id + 1, - train_avg_loss_value[0], - train_iou_value[0]) - if batch_id % 40 == 0: - logging.info(batch_train_str) - print(batch_train_str) - batch_id += 1 - except fluid.core.EOFException: - train_py_reader.reset() - break - cur_time = datetime.now() - h, remainder = divmod((cur_time - prev_time).seconds, 3600) - m, s = divmod(remainder, 60) - time_str = " Time %02d:%02d:%02d" % (h, m, s) - train_str = "epoch: {}, train_avg_loss: {:.6f}, " \ - "train_miou: {:.6f}.".format(epoch + 1, - train_avg_loss_manager.eval()[0], - train_iou_manager.eval()[0]) - print(train_str + time_str + '\n') - logging.info(train_str + time_str) - plot_loss.append(train_loss_title, epoch, train_avg_loss_manager.eval()[0]) - plot_loss.plot('./DANet_loss_executor.jpg') - plot_iou.append(train_iou_title, epoch, train_iou_manager.eval()[0]) - plot_iou.plot('./DANet_miou_executor.jpg') - - # save_model - if better_miou_train < train_iou_manager.eval()[0]: - shutil.rmtree('./checkpoint/DANet_better_train_{:.4f}'.format(better_miou_train), - ignore_errors=True) - better_miou_train = train_iou_manager.eval()[0] - logging.warning( - '-----------train---------------better_train: {:.6f}, epoch: {}, -----------Train model saved successfully!\n'.format( - better_miou_train, epoch + 1)) - save_dir = './checkpoint/DANet_better_train_{:.4f}'.format(better_miou_train) - save_model(save_dir, exe, program=train_prog) - if (epoch + 1) % 5 == 0: - save_dir = './checkpoint/DANet_epoch_train' - save_model(save_dir, exe, program=train_prog) - - # test - test_py_reader.start() - test_iou_manager.reset() - test_avg_loss_manager.reset() - prev_time = datetime.now() - logging.info('testing, epoch = {}'.format(epoch + 1)) - batch_id = 0 - while True: - try: - test_fetch_list = [test_avg_loss, miou, wrong, correct] - test_avg_loss_value, test_iou_value, _, _ = exe.run(program=test_prog, - fetch_list=test_fetch_list) - test_iou_manager.update(test_iou_value, weight=int(batch_size * num)) - test_avg_loss_manager.update(test_avg_loss_value, weight=int(batch_size * num)) - batch_test_str = "epoch: {}, batch: {}, test_avg_loss: {:.6f}, " \ - "test_miou: {:.6f}. ".format(epoch + 1, - batch_id + 1, - test_avg_loss_value[0], - test_iou_value[0]) - if batch_id % 40 == 0: - logging.info(batch_test_str) - print(batch_test_str) - batch_id += 1 - except fluid.core.EOFException: - test_py_reader.reset() - break - cur_time = datetime.now() - h, remainder = divmod((cur_time - prev_time).seconds, 3600) - m, s = divmod(remainder, 60) - time_str = " Time %02d:%02d:%02d" % (h, m, s) - test_str = "epoch: {}, test_avg_loss: {:.6f}, " \ - "test_miou: {:.6f}.".format(epoch + 1, - test_avg_loss_manager.eval()[0], - test_iou_manager.eval()[0]) - print(test_str + time_str + '\n') - logging.info(test_str + time_str) - plot_loss.append(test_loss_title, epoch, test_avg_loss_manager.eval()[0]) - plot_loss.plot('./DANet_loss_executor.jpg') - plot_iou.append(test_iou_title, epoch, test_iou_manager.eval()[0]) - plot_iou.plot('./DANet_miou_executor.jpg') - - # save_model_infer - if better_miou_test < test_iou_manager.eval()[0]: - shutil.rmtree('./checkpoint/infer/DANet_better_test_{:.4f}'.format(better_miou_test), - ignore_errors=True) - better_miou_test = test_iou_manager.eval()[0] - logging.warning( - '------------test-------------infer better_test: {:.6f}, epoch: {}, ----------------Inference model saved successfully!\n'.format( - better_miou_test, epoch + 1)) - save_dir = './checkpoint/infer/DANet_better_test_{:.4f}'.format(better_miou_test) - # save_model(save_dir, exe, program=test_prog) - fluid.io.save_inference_model(save_dir, [image.name], [pred, pred2, pred3], exe) - print('Inference model saved successfully') - - -if __name__ == '__main__': - options = Options() - args = options.parse() - options.print_args() - main(args) - - - diff --git a/PaddleCV/Research/danet/utils/__init__.py b/PaddleCV/Research/danet/utils/__init__.py deleted file mode 100644 index 8469aa22358578b58a9161761d987815064060f2..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from .base import BaseDataSet -from .cityscapes import CityScapes -from .lr_scheduler import Lr -from .cityscapes_data import * -from .voc import VOC -from .voc_data import * diff --git a/PaddleCV/Research/danet/utils/base.py b/PaddleCV/Research/danet/utils/base.py deleted file mode 100644 index b1528917f870b5965634b3b31f803866036b539f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/base.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import random -import numpy as np -from PIL import Image, ImageOps, ImageFilter, ImageEnhance -import os -import sys - -curPath = os.path.abspath(os.path.dirname(__file__)) -parentPath = os.path.split(curPath)[0] -rootPath = os.path.split(parentPath)[0] -sys.path.append(rootPath) - - -class BaseDataSet(object): - - def __init__(self, root, split, base_size=1024, crop_size=768, scale=True): - self.root = root - support = ['train', 'train_val', 'val', 'test'] - assert split in support, "split= \'{}\' not in {}".format(split, support) - self.split = split - self.crop_size = crop_size # 裁剪大小 - self.base_size = base_size # 图片最短边 - self.scale = scale - self.image_path = None - self.label_path = None - - def sync_transform(self, image, label, aug=True): - crop_size = self.crop_size - if self.scale: - short_size = random.randint(int(self.base_size * 0.75), int(self.base_size * 2.0)) - else: - short_size = self.base_size - - # 随机左右翻转 - if random.random() > 0.5: - image = image.transpose(Image.FLIP_LEFT_RIGHT) - label = label.transpose(Image.FLIP_LEFT_RIGHT) - w, h = image.size - - # 同比例缩放 - if h > w: - out_w = short_size - out_h = int(1.0 * h / w * out_w) - else: - out_h = short_size - out_w = int(1.0 * w / h * out_h) - image = image.resize((out_w, out_h), Image.BILINEAR) - label = label.resize((out_w, out_h), Image.NEAREST) - - # 四周填充 - if short_size < crop_size: - pad_h = crop_size - out_h if out_h < crop_size else 0 - pad_w = crop_size - out_w if out_w < crop_size else 0 - image = ImageOps.expand(image, border=(pad_w // 2, pad_h // 2, pad_w - pad_w // 2, pad_h - pad_h // 2), - fill=0) - label = ImageOps.expand(label, border=(pad_w // 2, pad_h // 2, pad_w - pad_w // 2, pad_h - pad_h // 2), - fill=255) - - # 随机裁剪 - w, h = image.size - x = random.randint(0, w - crop_size) - y = random.randint(0, h - crop_size) - image = image.crop((x, y, x + crop_size, y + crop_size)) - label = label.crop((x, y, x + crop_size, y + crop_size)) - - if aug: - # 高斯模糊,可选 - if random.random() > 0.7: - image = image.filter(ImageFilter.GaussianBlur(radius=random.random())) - - # 可选 - if random.random() > 0.7: - # 随机亮度 - factor = np.random.uniform(0.75, 1.25) - image = ImageEnhance.Brightness(image).enhance(factor) - - # 颜色抖动 - factor = np.random.uniform(0.75, 1.25) - image = ImageEnhance.Color(image).enhance(factor) - - # 随机对比度 - factor = np.random.uniform(0.75, 1.25) - image = ImageEnhance.Contrast(image).enhance(factor) - - # 随机锐度 - factor = np.random.uniform(0.75, 1.25) - image = ImageEnhance.Sharpness(image).enhance(factor) - return image, label - - def sync_val_transform(self, image, label): - crop_size = self.crop_size - short_size = self.base_size - - w, h = image.size - - # 同比例缩放 - if h > w: - out_w = short_size - out_h = int(1.0 * h / w * out_w) - else: - out_h = short_size - out_w = int(1.0 * w / h * out_h) - image = image.resize((out_w, out_h), Image.BILINEAR) - label = label.resize((out_w, out_h), Image.NEAREST) - - # 中心裁剪 - w, h = image.size - x1 = int(round((w - crop_size) / 2.)) - y1 = int(round((h - crop_size) / 2.)) - image = image.crop((x1, y1, x1 + crop_size, y1 + crop_size)) - label = label.crop((x1, y1, x1 + crop_size, y1 + crop_size)) - return image, label - - def eval(self, image): - pass diff --git a/PaddleCV/Research/danet/utils/cityscapes.py b/PaddleCV/Research/danet/utils/cityscapes.py deleted file mode 100644 index 5c7ee431c11c8d9eb0cdd9d3bd976156d5883766..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/cityscapes.py +++ /dev/null @@ -1,79 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -from utils.base import BaseDataSet - - -class CityScapes(BaseDataSet): - """prepare cityscapes path_pairs""" - - BASE_DIR = 'cityscapes' - NUM_CLASS = 19 - - def __init__(self, root='./dataset', split='train', **kwargs): - super(CityScapes, self).__init__(root, split, **kwargs) - if os.sep == '\\': # windows - root = root.replace('/', '\\') - - root = os.path.join(root, self.BASE_DIR) - assert os.path.exists(root), "please download cityscapes data_set, put in dataset(dir),or check root" - self.image_path, self.label_path = self._get_cityscapes_pairs(root, split) - assert len(self.image_path) == len(self.label_path), "please check image_length = label_length" - self.print_param() - - def print_param(self): # 用于核对当前数据集的信息 - print('INFO: dataset_root: {}, split: {}, ' - 'base_size: {}, crop_size: {}, scale: {}, ' - 'image_length: {}, label_length: {}'.format(self.root, self.split, self.base_size, - self.crop_size, self.scale, len(self.image_path), - len(self.label_path))) - - @staticmethod - def _get_cityscapes_pairs(root, split): - - def get_pairs(root, file_image, file_label): - file_image = os.path.join(root, file_image) - file_label = os.path.join(root, file_label) - with open(file_image, 'r') as f: - file_list_image = f.read().split() - with open(file_label, 'r') as f: - file_list_label = f.read().split() - if os.sep == '\\': # for windows - image_path = [os.path.join(root, x.replace('/', '\\')) for x in file_list_image] - label_path = [os.path.join(root, x.replace('/', '\\')) for x in file_list_label] - else: - image_path = [os.path.join(root, x) for x in file_list_image] - label_path = [os.path.join(root, x) for x in file_list_label] - return image_path, label_path - - if split == 'train': - image_path, label_path = get_pairs(root, 'trainImages.txt', 'trainLabels.txt') - elif split == 'val': - image_path, label_path = get_pairs(root, 'valImages.txt', 'valLabels.txt') - elif split == 'test': - image_path, label_path = get_pairs(root, 'testImages.txt', 'testLabels.txt') # 返回文件路径,test_label并不存在 - else: # 'train_val' - image_path1, label_path1 = get_pairs(root, 'trainImages.txt', 'trainLabels.txt') - image_path2, label_path2 = get_pairs(root, 'valImages.txt', 'valLabels.txt') - image_path, label_path = image_path1+image_path2, label_path1+label_path2 - return image_path, label_path - - def get_path_pairs(self): - return self.image_path, self.label_path - diff --git a/PaddleCV/Research/danet/utils/cityscapes_data.py b/PaddleCV/Research/danet/utils/cityscapes_data.py deleted file mode 100644 index e96534cf31d5f5a2e226435d527515bef7bd8f03..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/cityscapes_data.py +++ /dev/null @@ -1,144 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import random -import paddle -import numpy as np - -from PIL import Image - -from utils.cityscapes import CityScapes - -__all__ = ['cityscapes_train', 'cityscapes_val', 'cityscapes_train_val', 'cityscapes_test'] - -# globals -data_mean = np.array([0.485, 0.456, 0.406]).reshape(3, 1, 1) -data_std = np.array([0.229, 0.224, 0.225]).reshape(3, 1, 1) - - -def mapper_train(sample): - image_path, label_path, city = sample - image = Image.open(image_path, mode='r').convert('RGB') - label = Image.open(label_path, mode='r') - - image, label = city.sync_transform(image, label) - image_array = np.array(image) # HWC - label_array = np.array(label) # HW - - image_array = image_array.transpose((2, 0, 1)) # CHW - image_array = image_array / 255.0 - image_array = (image_array - data_mean) / data_std - image_array = image_array.astype('float32') - label_array = label_array.astype('int64') - return image_array, label_array - - -def mapper_val(sample): - image_path, label_path, city = sample - image = Image.open(image_path, mode='r').convert('RGB') - label = Image.open(label_path, mode='r') - - image, label = city.sync_val_transform(image, label) - image_array = np.array(image) # HWC - label_array = np.array(label) # HW - - image_array = image_array.transpose((2, 0, 1)) # CHW - image_array = image_array / 255.0 - image_array = (image_array - data_mean) / data_std - image_array = image_array.astype('float32') - label_array = label_array.astype('int64') - return image_array, label_array - - -def mapper_test(sample): - image_path, label_path = sample # label is path - image = Image.open(image_path, mode='r').convert('RGB') - image_array = image - return image_array, label_path # image is a picture, label is path - - -# root, base_size, crop_size; gpu_num必须设置,否则syncBN会出现某些卡没有数据的情况 -def cityscapes_train(data_root='./dataset', base_size=1024, crop_size=768, scale=True, xmap=True, batch_size=1, gpu_num=1): - city = CityScapes(root=data_root, split='train', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = city.get_path_pairs() - - def reader(): - if len(image_path) % (batch_size * gpu_num) != 0: - length = (len(image_path) // (batch_size * gpu_num)) * (batch_size * gpu_num) - else: - length = len(image_path) - for i in range(length): - if i == 0: - cc = list(zip(image_path, label_path)) - random.shuffle(cc) - image_path[:], label_path[:] = zip(*cc) - yield image_path[i], label_path[i], city - if xmap: - return paddle.reader.xmap_readers(mapper_train, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_train, reader) - - -def cityscapes_val(data_root='./dataset', base_size=1024, crop_size=768, scale=True, xmap=True): - city = CityScapes(root=data_root, split='val', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = city.get_path_pairs() - - def reader(): - for i in range(len(image_path)): - yield image_path[i], label_path[i], city - - if xmap: - return paddle.reader.xmap_readers(mapper_val, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_val, reader) - - -def cityscapes_train_val(data_root='./dataset', base_size=1024, crop_size=768, scale=True, xmap=True, batch_size=1, gpu_num=1): - city = CityScapes(root=data_root, split='train_val', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = city.get_path_pairs() - - def reader(): - if len(image_path) % (batch_size * gpu_num) != 0: - length = (len(image_path) // (batch_size * gpu_num)) * (batch_size * gpu_num) - else: - length = len(image_path) - for i in range(length): - if i == 0: - cc = list(zip(image_path, label_path)) - random.shuffle(cc) - image_path[:], label_path[:] = zip(*cc) - yield image_path[i], label_path[i], city - - if xmap: - return paddle.reader.xmap_readers(mapper_train, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_train, reader) - - -def cityscapes_test(split='test', base_size=2048, crop_size=1024, scale=True, xmap=True): - # 实际未使用base_size, crop_size, scale - city = CityScapes(split=split, base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = city.get_path_pairs() - - def reader(): - for i in range(len(image_path)): - yield image_path[i], label_path[i] - if xmap: - return paddle.reader.xmap_readers(mapper_test, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_test, reader) diff --git a/PaddleCV/Research/danet/utils/lr_scheduler.py b/PaddleCV/Research/danet/utils/lr_scheduler.py deleted file mode 100644 index 4ce8316a43536aef9414ca5e40a4e8a5ccb63aba..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/lr_scheduler.py +++ /dev/null @@ -1,152 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle.fluid as fluid -import math - - -class Lr(object): - """ - 示例:使用poly策略, 有热身, - lr_scheduler = Lr(lr_policy='poly', base_lr=0.003, epoch_nums=200, step_per_epoch=20, - warm_up=True, warmup_epoch=11) - lr = lr_scheduler.get_lr() - - 示例:使用cosine策略, 有热身, - lr_scheduler = Lr(lr_policy='cosine', base_lr=0.003, epoch_nums=200, step_per_epoch=20, - warm_up=True, warmup_epoch=11) - lr = lr_scheduler.get_lr() - - 示例:使用piecewise策略, 有热身,必须设置边界(decay_epoch list), gamma系数默认0.1 - lr_scheduler = Lr(lr_policy='piecewise', base_lr=0.003, epoch_nums=200, step_per_epoch=20, - warm_up=True, warmup_epoch=11, decay_epoch=[50], gamma=0.1) - lr = lr_scheduler.get_lr() - """ - def __init__(self, lr_policy, base_lr, epoch_nums, step_per_epoch, - power=0.9, end_lr=0.0, gamma=0.1, decay_epoch=[], - warm_up=False, warmup_epoch=0): - support_lr_policy = ['poly', 'piecewise', 'cosine'] - assert lr_policy in support_lr_policy, "Only support poly, piecewise, cosine" - self.lr_policy = lr_policy # 学习率衰减策略 : str(`cosine`, `poly`, `piecewise`) - - assert base_lr >= 0, "Start learning rate should greater than 0" - self.base_lr = base_lr # 基础学习率: float - - assert end_lr >= 0, "End learning rate should greater than 0" - self.end_lr = end_lr # 学习率终点: float - - assert epoch_nums, "epoch_nums should greater than 0" - assert step_per_epoch, "step_per_epoch should greater than 0" - - self.epoch_nums = epoch_nums # epoch数: int - self.step_per_epoch = step_per_epoch # 每个epoch的迭代数: int - self.total_step = epoch_nums * step_per_epoch # 总的迭代数 :auto - self.power = power # 指数: float - self.gamma = gamma # 分段衰减的系数: float - self.decay_epoch = decay_epoch # 分段衰减的epoch: list - if self.lr_policy == 'piecewise': - assert len(decay_epoch) >= 1, "use piecewise policy, should set decay_epoch list" - self.warm_up = warm_up # 是否热身:bool - if self.warm_up: - assert warmup_epoch, "warmup_epoch should greater than 0" - assert warmup_epoch < epoch_nums, "warmup_epoch should less than epoch_nums" - self.warmup_epoch = warmup_epoch - self.warmup_steps = warmup_epoch * step_per_epoch # 热身steps:int(epoch*step_per_epoch) - - def _piecewise_decay(self): - gamma = self.gamma - bd = [self.step_per_epoch * e for e in self.decay_epoch] - lr = [self.base_lr * (gamma ** i) for i in range(len(bd) + 1)] - decayed_lr = fluid.layers.piecewise_decay(boundaries=bd, values=lr) - return decayed_lr - - def _poly_decay(self): - decayed_lr = fluid.layers.polynomial_decay( - self.base_lr, self.total_step, end_learning_rate=self.end_lr, power=self.power) - return decayed_lr - - def _cosine_decay(self): - decayed_lr = fluid.layers.cosine_decay( - self.base_lr, self.step_per_epoch, self.epoch_nums) - return decayed_lr - - def get_lr(self): - if self.lr_policy.lower() == 'poly': - if self.warm_up: - warm_up_end_lr = (self.base_lr - self.end_lr) * pow( - (1 - self.warmup_steps / self.total_step), self.power) + self.end_lr - print('poly warm_up_end_lr:', warm_up_end_lr) - decayed_lr = fluid.layers.linear_lr_warmup(self._poly_decay(), - warmup_steps=self.warmup_steps, - start_lr=0.0, - end_lr=warm_up_end_lr) - else: - decayed_lr = self._poly_decay() - elif self.lr_policy.lower() == 'piecewise': - if self.warm_up: - assert self.warmup_steps < self.decay_epoch[0] * self.step_per_epoch - warm_up_end_lr = self.base_lr - print('piecewise warm_up_end_lr:', warm_up_end_lr) - decayed_lr = fluid.layers.linear_lr_warmup(self._piecewise_decay(), - warmup_steps=self.warmup_steps, - start_lr=0.0, - end_lr=warm_up_end_lr) - else: - decayed_lr = self._piecewise_decay() - elif self.lr_policy.lower() == 'cosine': - if self.warm_up: - warm_up_end_lr = self.base_lr*0.5*(math.cos(self.warmup_epoch*math.pi/self.epoch_nums)+1) - print('cosine warm_up_end_lr:', warm_up_end_lr) - decayed_lr = fluid.layers.linear_lr_warmup(self._cosine_decay(), - warmup_steps=self.warmup_steps, - start_lr=0.0, - end_lr=warm_up_end_lr) - else: - decayed_lr = self._cosine_decay() - else: - raise Exception( - "unsupport learning decay policy! only support poly,piecewise,cosine" - ) - return decayed_lr - - -if __name__ == '__main__': - epoch_nums = 200 - step_per_epoch = 180 - base_lr = 0.003 - warmup_epoch = 5 # 热身数 - lr_scheduler = Lr(lr_policy='poly', base_lr=base_lr, epoch_nums=epoch_nums, step_per_epoch=step_per_epoch, - warm_up=True, warmup_epoch=warmup_epoch, decay_epoch=[50]) - lr = lr_scheduler.get_lr() - exe = fluid.Executor(fluid.CPUPlace()) - exe.run(fluid.default_startup_program()) - - lr_list = [] - for epoch in range(epoch_nums): - for i in range(step_per_epoch): - x = exe.run(fluid.default_main_program(), - fetch_list=[lr]) - lr_list.append(x[0]) - # print(x[0]) - # 绘图 - from matplotlib import pyplot as plt - plt.plot(range(epoch_nums*step_per_epoch), lr_list) - plt.xlabel('step') - plt.ylabel('lr') - plt.show() - diff --git a/PaddleCV/Research/danet/utils/voc.py b/PaddleCV/Research/danet/utils/voc.py deleted file mode 100644 index 01021ec01f6e0e96df65e6af50863db96e400eef..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/voc.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os - -from utils.base import BaseDataSet - - -class VOC(BaseDataSet): - """prepare pascalVOC path_pairs""" - BASE_DIR = 'VOC2012_SBD' - NUM_CLASS = 21 - - def __init__(self, root='../dataset', split='train', **kwargs): - super(VOC, self).__init__(root, split, **kwargs) - if os.sep == '\\': # windows - root = root.replace('/', '\\') - - root = os.path.join(root, self.BASE_DIR) - assert os.path.exists(root), "please download voc2012 data_set, put in dataset(dir)" - if split == 'test': - self.image_path = self._get_cityscapes_pairs(root, split) - else: - self.image_path, self.label_path = self._get_cityscapes_pairs(root, split) - if self.label_path is None: - pass - else: - assert len(self.image_path) == len(self.label_path), "please check image_length = label_length" - self.print_param() - - def print_param(self): # 用于核对当前数据集的信息 - if self.label_path is None: - print('INFO: dataset_root: {}, split: {}, ' - 'base_size: {}, crop_size: {}, scale: {}, ' - 'image_length: {}'.format(self.root, self.split, self.base_size, - self.crop_size, self.scale, len(self.image_path))) - else: - print('INFO: dataset_root: {}, split: {}, ' - 'base_size: {}, crop_size: {}, scale: {}, ' - 'image_length: {}, label_length: {}'.format(self.root, self.split, self.base_size, - self.crop_size, self.scale, len(self.image_path), - len(self.label_path))) - - @staticmethod - def _get_cityscapes_pairs(root, split): - - def get_pairs(root, file): - if file.find('test') == -1: - file = os.path.join(root, file) - with open(file, 'r') as f: - file_list = f.readlines() - if os.sep == '\\': # for windows - image_path = [ - os.path.join(root, 'pascal', 'VOC2012', x.split()[0][1:].replace('/', '\\').replace('\n', '')) - for x in file_list] - label_path = [os.path.join(root, 'pascal', 'VOC2012', x.split()[1][1:].replace('/', '\\')) for x in - file_list] - else: - image_path = [os.path.join(root, 'pascal', 'VOC2012', x.split()[0][1:]) for x in file_list] - label_path = [os.path.join(root, 'pascal', 'VOC2012', x.split()[1][1:]) for x in file_list] - return image_path, label_path - else: - file = os.path.join(root, file) - with open(file, 'r') as f: - file_list = f.readlines() - if os.sep == '\\': # for windows - image_path = [ - os.path.join(root, 'pascal', 'VOC2012', x.split()[0][1:].replace('/', '\\').replace('\n', '')) - for x in file_list] - else: - image_path = [os.path.join(root, 'pascal', 'VOC2012', x.split()[0][1:]) for x in file_list] - return image_path - - if split == 'train': - image_path, label_path = get_pairs(root, 'list/train_aug.txt') - elif split == 'val': - image_path, label_path = get_pairs(root, 'list/val.txt') - elif split == 'test': - image_path = get_pairs(root, 'list/test.txt') # 返回文件路径,test_label并不存在 - return image_path - else: # 'train_val' - image_path, label_path = get_pairs(root, 'list/trainval_aug.txt') - return image_path, label_path - - def get_path_pairs(self): - return self.image_path, self.label_path diff --git a/PaddleCV/Research/danet/utils/voc_data.py b/PaddleCV/Research/danet/utils/voc_data.py deleted file mode 100644 index d2dba4f9135dc80fd9c015ea7a7c3bde1af5b0e1..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/danet/utils/voc_data.py +++ /dev/null @@ -1,144 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import random -import paddle -import numpy as np - -from PIL import Image - -from utils.voc import VOC - -__all__ = ['voc_train', 'voc_val', 'voc_train_val', 'voc_test'] - -# globals -data_mean = np.array([0.485, 0.456, 0.406]).reshape(3, 1, 1) -data_std = np.array([0.229, 0.224, 0.225]).reshape(3, 1, 1) - - -def mapper_train(sample): - image_path, label_path, voc = sample - image = Image.open(image_path, mode='r').convert('RGB') - label = Image.open(label_path, mode='r') - - image, label = voc.sync_transform(image, label) - image_array = np.array(image) # HWC - label_array = np.array(label) # HW - - image_array = image_array.transpose((2, 0, 1)) # CHW - image_array = image_array / 255.0 - image_array = (image_array - data_mean) / data_std - image_array = image_array.astype('float32') - label_array = label_array.astype('int64') - return image_array, label_array - - -def mapper_val(sample): - image_path, label_path, city = sample - image = Image.open(image_path, mode='r').convert('RGB') - label = Image.open(label_path, mode='r') - - image, label = city.sync_val_transform(image, label) - image_array = np.array(image) - label_array = np.array(label) - - image_array = image_array.transpose((2, 0, 1)) - image_array = image_array / 255.0 - image_array = (image_array - data_mean) / data_std - image_array = image_array.astype('float32') - label_array = label_array.astype('int64') - return image_array, label_array - - -def mapper_test(sample): - image_path, label_path = sample # label is path - image = Image.open(image_path, mode='r').convert('RGB') - image_array = image - return image_array, label_path # label is path - - -# 已完成, 引用时记得传入参数,root, base_size, crop_size等, gpu_num必须设置,否则syncBN会出现某些卡没有数据的情况 -def voc_train(data_root='../dataset', base_size=768, crop_size=576, scale=True, xmap=True, batch_size=1, gpu_num=1): - voc = VOC(root=data_root, split='train', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = voc.get_path_pairs() - - def reader(): - if len(image_path) % (batch_size * gpu_num) != 0: - length = (len(image_path) // (batch_size * gpu_num)) * (batch_size * gpu_num) - else: - length = len(image_path) - for i in range(length): - if i == 0: - cc = list(zip(image_path, label_path)) - random.shuffle(cc) - image_path[:], label_path[:] = zip(*cc) - yield image_path[i], label_path[i], voc - if xmap: - return paddle.reader.xmap_readers(mapper_train, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_train, reader) - - -def voc_val(data_root='../dataset', base_size=768, crop_size=576, scale=True, xmap=True): - voc = VOC(root=data_root, split='val', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = voc.get_path_pairs() - - def reader(): - for i in range(len(image_path)): - yield image_path[i], label_path[i], voc - - if xmap: - return paddle.reader.xmap_readers(mapper_val, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_val, reader) - - -def voc_train_val(data_root='./dataset', base_size=768, crop_size=576, scale=True, xmap=True, batch_size=1, gpu_num=1): - voc = VOC(root=data_root, split='train_val', base_size=base_size, crop_size=crop_size, scale=scale) - image_path, label_path = voc.get_path_pairs() - - def reader(): - if len(image_path) % (batch_size * gpu_num) != 0: - length = (len(image_path) // (batch_size * gpu_num)) * (batch_size * gpu_num) - else: - length = len(image_path) - for i in range(length): - if i == 0: - cc = list(zip(image_path, label_path)) - random.shuffle(cc) - image_path[:], label_path[:] = zip(*cc) - yield image_path[i], label_path[i] - - if xmap: - return paddle.reader.xmap_readers(mapper_train, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_train, reader) - - -def voc_test(split='test', base_size=2048, crop_size=1024, scale=True, xmap=True): - # 实际未使用base_size, crop_size, scale - voc = VOC(split=split, base_size=base_size, crop_size=crop_size, scale=scale) - image_path = voc.get_path_pairs() - - def reader(): - for i in range(len(image_path[:1])): - yield image_path[i], image_path[i] - if xmap: - return paddle.reader.xmap_readers(mapper_test, reader, 4, 32) - else: - return paddle.reader.map_readers(mapper_test, reader) diff --git a/PaddleCV/Research/inpainting-lbam/ActivationFunction.py b/PaddleCV/Research/inpainting-lbam/ActivationFunction.py deleted file mode 100644 index b2db1bd9ebb7a5ef05d5a99ffc9195e481ee55e4..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/ActivationFunction.py +++ /dev/null @@ -1,53 +0,0 @@ -import numpy as np - -# asymmetric gaussian shaped activation function g_A -import paddle.fluid as fluid - - -def GaussActivation(input, a, mu, sigma1, sigma2): - initializer = fluid.initializer.ConstantInitializer(value=a) - a = fluid.layers.create_parameter( - shape=[1], dtype='float32', default_initializer=initializer) - a = fluid.layers.clip(a, min=1.01, max=6.0) - - initializer = fluid.initializer.ConstantInitializer(value=mu) - mu = fluid.layers.create_parameter( - shape=[1], dtype='float32', default_initializer=initializer) - mu = fluid.layers.clip(mu, min=0.1, max=3.0) - - initializer = fluid.initializer.ConstantInitializer(value=sigma1) - sigma1 = fluid.layers.create_parameter( - shape=[1], dtype='float32', default_initializer=initializer) - sigma1 = fluid.layers.clip(sigma1, min=1.0, max=2.0) - - initializer = fluid.initializer.ConstantInitializer(value=sigma2) - sigma2 = fluid.layers.create_parameter( - shape=[1], dtype='float32', default_initializer=initializer) - sigma2 = fluid.layers.clip(sigma2, min=1.0, max=2.0) - - lowerThanMu = fluid.layers.less_than(input, mu) - largerThanMu = fluid.layers.logical_not(lowerThanMu) - - diff_mu = (input - mu) - leftValuesActiv = fluid.layers.exp(-1 * fluid.layers.square(diff_mu) * - sigma1) * a - leftValuesActiv = leftValuesActiv * lowerThanMu - - rightValueActiv = 1 + fluid.layers.exp(-1 * fluid.layers.square(diff_mu) * - sigma2) * (a - 1) - rightValueActiv = rightValueActiv * largerThanMu - - output = leftValuesActiv + rightValueActiv - - return output - - -def MaskUpdate(input, alpha): - initializer = fluid.initializer.ConstantInitializer(value=alpha) - alpha_t = fluid.layers.create_parameter( - shape=[1], dtype='float32', default_initializer=initializer) - - alpha_t = fluid.layers.clip(alpha_t, min=0.6, max=0.8) - out = fluid.layers.relu(input) - out = fluid.layers.elementwise_pow(out, alpha_t) - return out diff --git a/PaddleCV/Research/inpainting-lbam/LBAMModel.py b/PaddleCV/Research/inpainting-lbam/LBAMModel.py deleted file mode 100644 index 101db2befaada46a8aa34277410391d9f3504813..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/LBAMModel.py +++ /dev/null @@ -1,62 +0,0 @@ -import paddle.fluid as fluid -from forwardAttentionLayer import ForwardAttention -from reverseAttentionLayer import ReverseAttention, ReverseMaskConv - - -class LBAMModel(): - def __init__(self, num_filters): - self.num_filters = num_filters - - def net(self, inputImgs, masks): - ef1, mu1, skipConnect1, forwardMap1 = ForwardAttention( - inputImgs, masks, 64, bn=False) - ef2, mu2, skipConnect2, forwardMap2 = ForwardAttention(ef1, mu1, 128) - ef3, mu3, skipConnect3, forwardMap3 = ForwardAttention(ef2, mu2, 256) - ef4, mu4, skipConnect4, forwardMap4 = ForwardAttention(ef3, mu3, 512) - - ef5, mu5, skipConnect5, forwardMap5 = ForwardAttention(ef4, mu4, 512) - ef6, mu6, skipConnect6, forwardMap6 = ForwardAttention(ef5, mu5, 512) - ef7, _, _, _ = ForwardAttention(ef6, mu6, 512) - - reverseMap1, revMu1 = ReverseMaskConv(1 - masks, 64) - reverseMap2, revMu2 = ReverseMaskConv(revMu1, 128) - reverseMap3, revMu3 = ReverseMaskConv(revMu2, 256) - reverseMap4, revMu4 = ReverseMaskConv(revMu3, 512) - reverseMap5, revMu5 = ReverseMaskConv(revMu4, 512) - reverseMap6, _ = ReverseMaskConv(revMu5, 512) - - concatMap6 = fluid.layers.concat([forwardMap6, reverseMap6], axis=1) - dcFeatures1 = ReverseAttention(skipConnect6, ef7, concatMap6, 512) - - concatMap5 = fluid.layers.concat([forwardMap5, reverseMap5], axis=1) - dcFeatures2 = ReverseAttention(skipConnect5, dcFeatures1, concatMap5, - 512) - - concatMap4 = fluid.layers.concat([forwardMap4, reverseMap4], axis=1) - dcFeatures3 = ReverseAttention(skipConnect4, dcFeatures2, concatMap4, - 512) - - concatMap3 = fluid.layers.concat([forwardMap3, reverseMap3], axis=1) - dcFeatures4 = ReverseAttention(skipConnect3, dcFeatures3, concatMap3, - 256) - - concatMap2 = fluid.layers.concat([forwardMap2, reverseMap2], axis=1) - dcFeatures5 = ReverseAttention(skipConnect2, dcFeatures4, concatMap2, - 128) - - concatMap1 = fluid.layers.concat([forwardMap1, reverseMap1], axis=1) - dcFeatures6 = ReverseAttention(skipConnect1, dcFeatures5, concatMap1, - 64) - - dcFeatures7 = fluid.layers.conv2d_transpose( - input=dcFeatures6, - num_filters=self.num_filters, - filter_size=4, - stride=2, - padding=1, - act=None, - bias_attr=False) - - output = fluid.layers.abs(fluid.layers.tanh(dcFeatures7)) - - return output diff --git a/PaddleCV/Research/inpainting-lbam/README.md b/PaddleCV/Research/inpainting-lbam/README.md deleted file mode 100644 index c9d4784c6335ef341c528e319e4d74a115c427fe..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Image Inpainting with Learnable Bidirectional Attention Maps. -The PaddlePaddle implementation of Image Inpainting with Learnable Bidirectional Attention Maps in ICCV 2019, by Chaohao Xie, Shaohui Liu, Chao Li, Ming-Ming Cheng, Wangmeng Zuo, Xiao Liu, Shilei Wen, Errui Ding.\ - - -## 1. Requirements. - -PaddlePaddle version == 1.6.\ -Python version == 3.6.\ -NCCL for multiple GPUs. - -## 2. Usage. - -Download the pretrained models by , password: apfo.\ -Run the test script. -``` -sh test.sh -``` - -``` -mkdir -p results/paris - -FLAGS_fraction_of_gpu_memory_to_use=0.1 \ -CUDA_VISIBLE_DEVICES=0 \ -FLAGS_eager_delete_tensor_gb=0.0 \ -FLAGS_fast_eager_deletion_mode=1 \ -python -u test.py \ ---pretrained_model 'pretrained_models/LBAM_ParisStreetView' \ # path to the pretrained model ---imgfn 'imgs/paris/pic.png' \ # input picture. ---maskfn 'imgs/paris/mask.png' \ # mask. ---resultfn 'results/paris' # folder for the result. -``` -Input picture:\ -![avatar](imgs/paris/pic.png) - -Input mask:\ -![avatar](imgs/paris/mask.png) - -Inpainting result:\ -![avatar](results/paris/pic.png) diff --git a/PaddleCV/Research/inpainting-lbam/forwardAttentionLayer.py b/PaddleCV/Research/inpainting-lbam/forwardAttentionLayer.py deleted file mode 100644 index 05ea3938e38e91208ed1bec783edd7b222517441..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/forwardAttentionLayer.py +++ /dev/null @@ -1,98 +0,0 @@ -import paddle.fluid as fluid -from ActivationFunction import GaussActivation -from ActivationFunction import MaskUpdate - -# learnable forward attention conv layer - - -def ForwardAttentionLayer(inputFeatures, - inputMasks, - num_filters, - kSize, - stride, - padding, - bias=False): - convFeatures = fluid.layers.conv2d( - input=inputFeatures, - num_filters=num_filters, - filter_size=kSize, - stride=stride, - padding=padding, - act=None, - bias_attr=bias) - maskFeatures = fluid.layers.conv2d( - input=inputMasks, - num_filters=num_filters, - filter_size=kSize, - stride=stride, - padding=padding, - act=None, - bias_attr=bias) - - maskActiv = GaussActivation(maskFeatures, 1.1, 2.0, 1.0, 1.0) - convOut = convFeatures * maskActiv - - maskUpdate = MaskUpdate(maskFeatures, 0.8) - - return convOut, maskUpdate, convFeatures, maskActiv - - -def ForwardAttention(inputFeatures, - inputMasks, - num_filters, - bn=True, - sample='down-4', - activ='leaky', - convBias=False): - if sample == 'down-4': - kSize = 4 - stride = 2 - padding = 1 - elif sample == 'down-5': - kSize = 5 - stride = 2 - padding = 2 - - elif sample == 'down-7': - kSize = 7 - stride = 2 - padding = 3 - elif sample == 'down-3': - kSize = 3 - stride = 2 - padding = 1 - else: - kSize = 3 - stride = 1 - padding = 1 - features, maskUpdated, convPreF, maskActiv = ForwardAttentionLayer( - inputFeatures, - inputMasks, - num_filters, - kSize, - stride, - padding, - bias=convBias) - - if bn: - features = fluid.layers.batch_norm(input=features) - - if activ == 'leaky': - features = fluid.layers.leaky_relu(features, alpha=0.2) - - elif activ == 'relu': - features = fluid.layers.relu(features) - - elif activ == 'sigmoid': - features = fluid.layers.sigmoid(features) - - elif activ == 'tanh': - features = fluid.layers.tanh(features) - - elif activ == 'prelu': - features = fluid.layers.prelu(features, 'all') - - else: - pass - - return features, maskUpdated, convPreF, maskActiv diff --git a/PaddleCV/Research/inpainting-lbam/imgs/paris/mask.png b/PaddleCV/Research/inpainting-lbam/imgs/paris/mask.png deleted file mode 100644 index a4e69590139b7743196bc07b89a1ef481a711178..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/inpainting-lbam/imgs/paris/mask.png and /dev/null differ diff --git a/PaddleCV/Research/inpainting-lbam/imgs/paris/pic.png b/PaddleCV/Research/inpainting-lbam/imgs/paris/pic.png deleted file mode 100644 index b949fb62a16164eec217148006bbb3a87aa0b48d..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/inpainting-lbam/imgs/paris/pic.png and /dev/null differ diff --git a/PaddleCV/Research/inpainting-lbam/results/paris/pic.png b/PaddleCV/Research/inpainting-lbam/results/paris/pic.png deleted file mode 100644 index 683a0cc4c5e2e9ca1f14a907dd585b4b2c82cc61..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/inpainting-lbam/results/paris/pic.png and /dev/null differ diff --git a/PaddleCV/Research/inpainting-lbam/reverseAttentionLayer.py b/PaddleCV/Research/inpainting-lbam/reverseAttentionLayer.py deleted file mode 100644 index 4397a2b3fa0a873cdf74ff87920685dd3098efe1..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/reverseAttentionLayer.py +++ /dev/null @@ -1,66 +0,0 @@ -import paddle.fluid as fluid -from ActivationFunction import GaussActivation -from ActivationFunction import MaskUpdate - - -def ReverseMaskConv(inputMasks, - num_filters, - kSize=4, - stride=2, - padding=1, - convBias=False): - maskFeatures = fluid.layers.conv2d( - input=inputMasks, - num_filters=num_filters, - filter_size=kSize, - stride=stride, - padding=padding, - act=None, - bias_attr=convBias) - - maskActiv = GaussActivation(maskFeatures, 1.1, 2.0, 1.0, 1.0) - - maskUpdate = MaskUpdate(maskFeatures, 0.8) - - return maskActiv, maskUpdate - - - - -def ReverseAttention(ecFeaturesSkip, dcFeatures, maskFeaturesForAttention, num_filters, bn=True, activ='leaky', \ - kSize=4, stride=2, padding=1, outPadding=0,convBias=False): - - nextDcFeatures = fluid.layers.conv2d_transpose( - input=dcFeatures, - num_filters=num_filters, - filter_size=kSize, - stride=stride, - padding=padding, - act=None, - bias_attr=convBias) - concatFeatures = fluid.layers.concat( - [ecFeaturesSkip, nextDcFeatures], axis=1) - outputFeatures = concatFeatures * maskFeaturesForAttention - - if bn: - outputFeatures = fluid.layers.batch_norm(input=outputFeatures) - - if activ == 'leaky': - outputFeatures = fluid.layers.leaky_relu(outputFeatures, alpha=0.2) - - elif activ == 'relu': - outputFeatures = fluid.layers.relu(outputFeatures) - - elif activ == 'sigmoid': - outputFeatures = fluid.layers.sigmoid(outputFeatures) - - elif activ == 'tanh': - outputFeatures = fluid.layers.tanh(outputFeatures) - - elif activ == 'prelu': - outputFeatures = fluid.layers.prelu(outputFeatures, 'all') - - else: - pass - - return outputFeatures diff --git a/PaddleCV/Research/inpainting-lbam/test.py b/PaddleCV/Research/inpainting-lbam/test.py deleted file mode 100644 index 9b13a43be541dbc621eb35955c73ae8bb64e71b1..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/test.py +++ /dev/null @@ -1,81 +0,0 @@ -import os -import sys -import paddle -import paddle.fluid as fluid -import cv2 -import numpy as np -import glob -from paddle.fluid.framework import Parameter - -from LBAMModel import LBAMModel - -import functools -import argparse -from utility import add_arguments, print_arguments -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('imgfn', str, None, "image file name.") -add_arg('maskfn', str, None, "mask file name.") -add_arg('resultfn', str, None, "result file name.") -add_arg('pretrained_model', str, None, "pretrained_model") - -def test(): - args = parser.parse_args() - print_arguments(args) - - pretrained_model = args.pretrained_model - - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - [inference_program, feed_target_names, fetch_targets] = fluid.io.load_inference_model(dirname=pretrained_model, executor=exe, model_filename='model', params_filename='params') - - imgfn = args.imgfn - maskfn = args.maskfn - resultfn = args.resultfn - if not os.path.exists(args.resultfn): - os.makedirs(args.resultfn) - - imglist = sorted(glob.glob(imgfn)) - masklist = sorted(glob.glob(maskfn)) - - for imgfn_,maskfn_ in (list(zip(imglist,masklist))): - print(imgfn_) - print(maskfn_) - print('') - - img = cv2.imread(imgfn_) - mask = cv2.imread(maskfn_) - - img = img.transpose(2, 0, 1)[::-1] - img = img.astype(np.float32)/255.0 - mask = mask.transpose(2, 0, 1) - mask = mask.astype(np.float32)/255.0 - - threshhold = 0.5 - mask = (mask >= threshhold).astype(np.float32) - - # CHW RGB - mask = 1 - mask - img = img * mask - - img0 = img - img = np.concatenate((img, mask[0:1]), axis=0) - - result = exe.run(inference_program,feed={feed_target_names[0]: img[np.newaxis,:], feed_target_names[1]: mask[np.newaxis,:]}, fetch_list=fetch_targets) - - outimg = result[0][0] - outimg = outimg * (1-mask) + img0 * mask - - # BGR HWC - outimg = outimg[::-1].transpose(1, 2, 0)*255.0 - - - outfn = os.path.join(args.resultfn, os.path.basename(imgfn_)) - cv2.imwrite(outfn,outimg) - - -if __name__ == '__main__': - test() diff --git a/PaddleCV/Research/inpainting-lbam/test.sh b/PaddleCV/Research/inpainting-lbam/test.sh deleted file mode 100644 index f7ba89378cb70ad7183683b1a78f75b85709cf5a..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -mkdir -p results/paris - -FLAGS_fraction_of_gpu_memory_to_use=0.1 \ -CUDA_VISIBLE_DEVICES=0 \ -FLAGS_eager_delete_tensor_gb=0.0 \ -FLAGS_fast_eager_deletion_mode=1 \ -python -u test.py \ ---pretrained_model 'pretrained_models/LBAM_ParisStreetView' \ # path to the pretrained model ---imgfn 'imgs/paris/pic.png' \ # input picture. ---maskfn 'imgs/paris/mask.png' \ # mask. ---resultfn 'results/paris' # folder for the result. \ No newline at end of file diff --git a/PaddleCV/Research/inpainting-lbam/utility.py b/PaddleCV/Research/inpainting-lbam/utility.py deleted file mode 100644 index 63dabd41da256bd6b3d3a9adda269217e780689e..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/inpainting-lbam/utility.py +++ /dev/null @@ -1,49 +0,0 @@ -"""Contains common utility functions.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import distutils.util -import numpy as np -import six -from paddle.fluid import core - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) diff --git a/PaddleCV/Research/landmark/README.md b/PaddleCV/Research/landmark/README.md deleted file mode 100644 index 460f5b4e2a8bd5b08fee6e2d6224cd0f9c1e0224..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Google Landmark Retrieval and Recognition 2019 -The Google Landmark Dataset V2 is currently the largest publicly image retrieval and recogntion dataset, including 4M training data, more than 100,000 query images and nearly 1M index data. The large amounts of images in training dataset is the driving force of the generalizability of machine learning models. Here, we release our trained models in Google Landmark 2019 Competition, the detail of our solution can refer to our paper [[link](https://arxiv.org/pdf/1906.03990.pdf)]. - -## Retrieval Models - -We fine-tune four convolutional neural networks to extract our global image descriptors. The four convolutional backbones include ResNet152, ResNet200, SE ResNeXt152 and InceptionV4. We choose arcmargin and npairs as our training loss, We train these models using Google Landmark V2 training set and index set. You can download trained models here. The training code can refer to metric learning [[link](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/metric_learning)]. - -|model | public | private -|- | - | -: -|[res152_arcmargin](https://landmark.gz.bcebos.com/res152_arcmargin.tar) | 0.2676 | 0.3020 -|[res152_arcmargin_index](https://landmark.gz.bcebos.com/res152_arcmargin_index.tar) | 0.2476 | 0.2707 -|[res152_npairs](https://landmark.gz.bcebos.com/res152_npairs.tar) | 0.2597 | 0.2870 -|[res200_arcmargin](https://landmark.gz.bcebos.com/res200_arcmargin.tar) | 0.2670 | 0.3042 -|[se_x152_arcmargin](https://landmark.gz.bcebos.com/se_x152_arcmargin.tar) | 0.2670 | 0.2914 -|[inceptionv4_arcmargin](https://landmark.gz.bcebos.com/inceptionv4_arcmargin.tar) | 0.2685 | 0.2933 - -In addition, we also train a classification model based on ResNet152 with ~4M Google Landmark V2 training set. ([res152_softmax_v1](https://landmark.gz.bcebos.com/res152_softmax_v1.tar)) -The taining code can refer to image classification [[link](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification)]. - -## Recognition Models - -There are three models in our recognition solution. - -1.[res152_arcmargin](https://landmark.gz.bcebos.com/res152_arcmargin.tar): Retrieval model based on Resnet152 and arcmargin which is the same as in the retrieval task. - -2.[res152_softmax_v2](https://landmark.gz.bcebos.com/res152_softmax_v2.tar): Classification model based on Resnet152 and softmax with ~3M Google Landmark V2 tidied training set. The training code can refer to image classification [[link](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification)]. - -3.[res50_oid_v4_detector](https://landmark.gz.bcebos.com/res50_oid_v4_detector.tar): Object detector model for the non-landmark images filtering. The mAP of this model is ~0.55 on the OID V4 track (public LB). The training code can refer to RCNN detector [[link](https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/rcnn)]. - -## Environment - -Cudnn >= 7, CUDA 9, PaddlePaddle version >= 1.3, python version 2.7 - -## Inference - -### 1.Compile paddle infer so and predict with binary model - -There are two different type of models in PaddlePaddle: train model and binary model. Predict with the binary model is more efficient. Thus, at first we compile paddle infer so and convert train model to binary model. - -(1) Compile paddle infer so - -Please refer the README.md in pypredict. - -(2) Convert train model to binary model - -``` - pushd inference - sh convert.sh -``` - -### 2.Extract retrieval feature and calculate cosine distance - -In the folder ./inference/test_data, there are four images, 0.jpg and 1.jpg are same landmark images, 2.jpg is another landmark image, 3.jpg is a non-lamdnark image. - -We will extract the features of these images, and calculate the cosine distances between 0.jpg and 1.jpg, 2.jpg, 3.jpg. - -``` -pushd inference -. set_env.sh -python infer_retrieval.py test_retrieval model_name [res152_arcmargin, res152_arcmargin_index, res152_npairs, res200_arcmargin, se_x152_arcmargin, inceptionv4_arcmargin] - -example: - python infer_retrieval.py test_retrieval res152_arcmargin -popd -``` - -### 3.Predict the classification label of images - -``` -pushd inference -. set_env.sh -python infer_recognition.py test_cls img_path model_name [res152_softmax_v1, res152_softmax_v2] - -example: - python infer_recognition.py test_cls test_data/0.jpg res152_softmax_v1 -popd -``` -You will get the inference label and score. - -### 4.Detect images - -``` - pushd inference - . set_env.sh - python infer_recognition.py test_det ./test_data/2e44b31818acc600.jpeg -``` - -You will get the inference detetor bounding box and classes. The class mapping file: pretrained_models/res50_oid_v4_detector/cls_name_idx_map_openimagev4_500.txt diff --git a/PaddleCV/Research/landmark/inference/conf/paddle-cls.conf b/PaddleCV/Research/landmark/inference/conf/paddle-cls.conf deleted file mode 100644 index 65c5508ec816d06e1f049bfb42cd6bea3c5dc716..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/conf/paddle-cls.conf +++ /dev/null @@ -1,19 +0,0 @@ -# for c++ predict -[res152_softmax_v1_predict] -# set the used of GPU card -res152_softmax_v1_device : 0 -# set whether print the debug infor -res152_softmax_v1_debug : 0 -# set the initial ratio of the GPU memory -res152_softmax_v1_fraction_of_gpu_memory: 0.1 -# binary model structure -res152_softmax_v1_prog_file: ./binary_models/res152_softmax_v1/model -# binary model params -res152_softmax_v1_param_file: ./binary_models/res152_softmax_v1/params - -[res152_softmax_v2_predict] -res152_softmax_v2_device : 0 -res152_softmax_v2_debug : 0 -res152_softmax_v2_fraction_of_gpu_memory: 0.1 -res152_softmax_v2_prog_file: ./binary_models/res152_softmax_v2/model -res152_softmax_v2_param_file: ./binary_models/res152_softmax_v2/params diff --git a/PaddleCV/Research/landmark/inference/conf/paddle-det.conf b/PaddleCV/Research/landmark/inference/conf/paddle-det.conf deleted file mode 100644 index b0310efbbcc48f4a0e49668c305af90ccb4d3fcb..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/conf/paddle-det.conf +++ /dev/null @@ -1,20 +0,0 @@ -# for c++ predict -[paddle-classify_predict] -# set the used of GPU card -paddle-classify_device : 0 -# set whether print the debug infor -paddle-classify_debug : 0 -# set the initial ratio of the GPU memory -paddle-classify_fraction_of_gpu_memory: 0.1 -# binary model structure -paddle-classify_prog_file: ./pretrained_models/res50_oid_v4_detector/infer_model/model -# binary model params -paddle-classify_param_file: ./pretrained_models/res50_oid_v4_detector/infer_model/params - -[paddle-det] -#total detector class number -class_nums:501 -#infer image size -new_size:800 -#max infer image size -max_size:1333 diff --git a/PaddleCV/Research/landmark/inference/conf/paddle-retrieval.conf b/PaddleCV/Research/landmark/inference/conf/paddle-retrieval.conf deleted file mode 100644 index fc4ce182210bb1f7d1173da3a64c003d75a8431f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/conf/paddle-retrieval.conf +++ /dev/null @@ -1,54 +0,0 @@ -# for c++ predict -[res152_arcmargin_predict] -# set the used of GPU card -res152_arcmargin_device : 0 -# set whether print the debug infor -res152_arcmargin_debug : 0 -# set the initial ratio of the GPU memory -res152_arcmargin_fraction_of_gpu_memory: 0.1 -# binary model structure -res152_arcmargin_prog_file: ./binary_models/res152_arcmargin/model -# binary model params -res152_arcmargin_param_file: ./binary_models/res152_arcmargin/params -# input shape -input_size: 448 - -[res152_arcmargin_index_predict] -res152_arcmargin_index_device : 0 -res152_arcmargin_index_debug : 0 -res152_arcmargin_index_fraction_of_gpu_memory: 0.1 -res152_arcmargin_index_prog_file: ./binary_models/res152_arcmargin_index/model -res152_arcmargin_index_param_file: ./binary_models/res152_arcmargin_index/params -input_size: 448 - -[res152_npairs_predict] -res152_npairs_device : 0 -res152_npairs_debug : 0 -res152_npairs_fraction_of_gpu_memory: 0.1 -res152_npairs_prog_file: ./binary_models/res152_npairs/model -res152_npairs_param_file: ./binary_models/res152_npairs/params -input_size: 448 - -[res200_arcmargin_predict] -res200_arcmargin_device : 0 -res200_arcmargin_debug : 0 -res200_arcmargin_fraction_of_gpu_memory: 0.1 -res200_arcmargin_prog_file: ./binary_models/res200_arcmargin/model -res200_arcmargin_param_file: ./binary_models/res200_arcmargin/params -input_size: 448 - -[se_x152_arcmargin_predict] -se_x152_arcmargin_device : 0 -se_x152_arcmargin_debug : 0 -se_x152_arcmargin_fraction_of_gpu_memory: 0.1 -se_x152_arcmargin_prog_file: ./binary_models/se_x152_arcmargin/model -se_x152_arcmargin_param_file: ./binary_models/se_x152_arcmargin/params -input_size: 448 - -[inceptionv4_arcmargin_predict] -inceptionv4_arcmargin_device : 0 -inceptionv4_arcmargin_debug : 0 -inceptionv4_arcmargin_fraction_of_gpu_memory: 0.1 -inceptionv4_arcmargin_prog_file: ./binary_models/inceptionv4_arcmargin/model -inceptionv4_arcmargin_param_file: ./binary_models/inceptionv4_arcmargin/params -input_size: 555 diff --git a/PaddleCV/Research/landmark/inference/convert.sh b/PaddleCV/Research/landmark/inference/convert.sh deleted file mode 100644 index b13256d776989c3092db593d20e7aa45efd84a13..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/convert.sh +++ /dev/null @@ -1,23 +0,0 @@ -#res152_softmax_v1 -python convert_binary_model.py --model='ResNet152_vd_fc' --pretrained_model=pretrained_models/res152_softmax_v1/ --binary_model=./binary_models/res152_softmax_v1 --image_shape=3,224,224 --task_mode='classification' - -#res152_softmax_v2 -python convert_binary_model.py --model='ResNet152_vd' --pretrained_model=pretrained_models/res152_softmax_v2/ --binary_model=./binary_models/res152_softmax_v2 --image_shape=3,224,224 --task_mode='classification' - -#res152_arcmargin -python convert_binary_model.py --model='ResNet152_vd_v0_embedding' --pretrained_model=pretrained_models/res152_arcmargin/ --binary_model=./binary_models/res152_arcmargin --image_shape=3,448,448 --task_mode='retrieval' - -#res152_arcmargin_index -python convert_binary_model.py --model='ResNet152_vd_v0_embedding' --pretrained_model=pretrained_models/res152_arcmargin_index/ --binary_model=./binary_models/res152_arcmargin_index --image_shape=3,448,448 --task_mode='retrieval' - -#res152_npairs -python convert_binary_model.py --model='ResNet152_vd_v0_embedding' --pretrained_model=pretrained_models/res152_npairs/ --binary_model=./binary_models/res152_npairs --image_shape=3,448,448 --task_mode='retrieval' - -#res200_arcmargin -python convert_binary_model.py --model='ResNet200_vd_embedding' --pretrained_model=pretrained_models/res200_arcmargin/ --binary_model=./binary_models/res200_arcmargin --image_shape=3,448,448 --task_mode='retrieval' - -#se_x152_arcmargin -python convert_binary_model.py --model='SE_ResNeXt152_64x4d_vd_embedding' --pretrained_model=pretrained_models/se_x152_arcmargin/ --binary_model=./binary_models/se_x152_arcmargin --image_shape=3,448,448 --task_mode='retrieval' - -#inceptionv4_arcmargin -python convert_binary_model.py --model='InceptionV4_embedding' --pretrained_model=pretrained_models/inceptionv4_arcmargin --binary_model=./binary_models/inceptionv4_arcmargin --image_shape=3,555,555 --task_mode='retrieval' diff --git a/PaddleCV/Research/landmark/inference/convert_binary_model.py b/PaddleCV/Research/landmark/inference/convert_binary_model.py deleted file mode 100644 index c655431495694069020449c3584838d82f4e52de..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/convert_binary_model.py +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys -import argparse -import functools -import paddle -import paddle.fluid as fluid -import models -from utility import add_arguments, print_arguments - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('model', str, "ResNet200_vd", "Set the network to use.") -add_arg('embedding_size', int, 512, "Embedding size.") -add_arg('image_shape', str, "3,448,448", "Input image size.") -add_arg('pretrained_model', str, None, "Whether to use pretrained model.") -add_arg('binary_model', str, None, "Set binary_model dir") -add_arg('task_mode', str, "retrieval", "Set task mode") -# yapf: enable - -model_list = [m for m in dir(models) if "__" not in m] - - -def convert(args): - # parameters from arguments - model_name = args.model - pretrained_model = args.pretrained_model - if not os.path.exists(pretrained_model): - print("pretrained_model doesn't exist!") - sys.exit(-1) - image_shape = [int(m) for m in args.image_shape.split(",")] - - assert model_name in model_list, "{} is not in lists: {}".format(args.model, - model_list) - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - - # model definition - model = models.__dict__[model_name]() - if args.task_mode == 'retrieval': - out = model.net(input=image, embedding_size=args.embedding_size) - else: - out = model.net(input=image) - place = fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - def if_exist(var): - return os.path.exists(os.path.join(pretrained_model, var.name)) - fluid.io.load_vars(exe, pretrained_model, predicate=if_exist) - - fluid.io.save_inference_model( - dirname = args.binary_model, - feeded_var_names = ['image'], - target_vars = [out['embedding']] if args.task_mode == 'retrieval' else [out], - executor = exe, - main_program = None, - model_filename = 'model', - params_filename = 'params') - - print('input_name: {}'.format('image')) - print('output_name: {}'.format(out['embedding'].name)) if args.task_mode == 'retrieval' else ('output_name: {}'.format(out.name)) - print("convert done.") - - -def main(): - args = parser.parse_args() - print_arguments(args) - convert(args) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/Research/landmark/inference/infer_recognition.py b/PaddleCV/Research/landmark/inference/infer_recognition.py deleted file mode 100644 index 4240a20576da59aa93655ff810d41f588f335735..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/infer_recognition.py +++ /dev/null @@ -1,285 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import sys -sys.path.append('./so') -import time - -import cv2 -import numpy as np - -from ConfigParser import ConfigParser -from PyCNNPredict import PyCNNPredict - -#infer detector -def det_preprocessor(im, new_size, max_size): - im = im.astype(np.float32, copy=False) - img_mean = [0.485, 0.456, 0.406] - img_std = [0.229, 0.224, 0.225] - im = im[:, :, ::-1] - im = im / 255 - im -= img_mean - im /= img_std - im_shape = im.shape - im_size_min = np.min(im_shape[0:2]) - im_size_max = np.max(im_shape[0:2]) - im_scale = float(new_size) / float(im_size_min) - # Prevent the biggest axis from being more than max_size - if np.round(im_scale * im_size_max) > max_size: - im_scale = float(max_size) / float(im_size_max) - im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale, interpolation=cv2.INTER_LINEAR) - channel_swap = (2, 0, 1) #(batch, channel, height, width) - im = im.transpose(channel_swap) - return im, im_scale - -def nms(dets, thresh): - """nms""" - x1 = dets[:, 0] - y1 = dets[:, 1] - x2 = dets[:, 2] - y2 = dets[:, 3] - scores = dets[:, 4] - - areas = (x2 - x1 + 1) * (y2 - y1 + 1) - dt_num = dets.shape[0] - order = np.array(range(dt_num)) - - keep = [] - while order.size > 0: - i = order[0] - keep.append(i) - xx1 = np.maximum(x1[i], x1[order[1:]]) - yy1 = np.maximum(y1[i], y1[order[1:]]) - xx2 = np.minimum(x2[i], x2[order[1:]]) - yy2 = np.minimum(y2[i], y2[order[1:]]) - - w = np.maximum(0.0, xx2 - xx1 + 1) - h = np.maximum(0.0, yy2 - yy1 + 1) - inter = w * h - ovr = inter / (areas[i] + areas[order[1:]] - inter) - inds = np.where(ovr <= thresh)[0] - order = order[inds + 1] - return keep - -def box_decoder(deltas, boxes, weights): - boxes = boxes.astype(deltas.dtype, copy=False) - widths = boxes[:, 2] - boxes[:, 0] + 1.0 - heights = boxes[:, 3] - boxes[:, 1] + 1.0 - ctr_x = boxes[:, 0] + 0.5 * widths - ctr_y = boxes[:, 1] + 0.5 * heights - wx, wy, ww, wh = weights - dx = deltas[:, 0::4] * wx - dy = deltas[:, 1::4] * wy - dw = deltas[:, 2::4] * ww - dh = deltas[:, 3::4] * wh - # Prevent sending too large values into np.exp() - clip_value = np.log(1000. / 16.) - dw = np.minimum(dw, clip_value) - dh = np.minimum(dh, clip_value) - pred_ctr_x = dx * widths[:, np.newaxis] + ctr_x[:, np.newaxis] - pred_ctr_y = dy * heights[:, np.newaxis] + ctr_y[:, np.newaxis] - pred_w = np.exp(dw) * widths[:, np.newaxis] - pred_h = np.exp(dh) * heights[:, np.newaxis] - pred_boxes = np.zeros(deltas.shape, dtype=deltas.dtype) - # x1 - pred_boxes[:, 0::4] = pred_ctr_x - 0.5 * pred_w - # y1 - pred_boxes[:, 1::4] = pred_ctr_y - 0.5 * pred_h - # x2 (note: "- 1" is correct; don't be fooled by the asymmetry) - pred_boxes[:, 2::4] = pred_ctr_x + 0.5 * pred_w - 1 - # y2 (note: "- 1" is correct; don't be fooled by the asymmetry) - pred_boxes[:, 3::4] = pred_ctr_y + 0.5 * pred_h - 1 - return pred_boxes - -def clip_tiled_boxes(boxes, im_shape): - """Clip boxes to image boundaries. im_shape is [height, width] and boxes - has shape (N, 4 * num_tiled_boxes).""" - # x1 >= 0 - boxes[:, 0::4] = np.maximum(np.minimum(boxes[:, 0::4], im_shape[1] - 1), 0) - # y1 >= 0 - boxes[:, 1::4] = np.maximum(np.minimum(boxes[:, 1::4], im_shape[0] - 1), 0) - # x2 < im_shape[1] - boxes[:, 2::4] = np.maximum(np.minimum(boxes[:, 2::4], im_shape[1] - 1), 0) - # y2 < im_shape[0] - boxes[:, 3::4] = np.maximum(np.minimum(boxes[:, 3::4], im_shape[0] - 1), 0) - return boxes - -def get_dt_res_common(rpn_rois_v, confs_v, locs_v, class_nums, im_info, im_id): - dts_res = [] - if len(rpn_rois_v) == 0: - return None - variance_v = np.array([0.1, 0.1, 0.2, 0.2]) - img_height, img_width, img_scale = im_info - tmp_v = box_decoder(locs_v, rpn_rois_v, variance_v) - tmp_v = clip_tiled_boxes(tmp_v, [img_height, img_width]) - decoded_box_v = tmp_v / img_scale - - cls_boxes = [[] for _ in range(class_nums)] - for j in range(1, class_nums): - inds = np.where(confs_v[:, j] >= 0.1)[0] - scores_j = confs_v[inds, j] - rois_j = decoded_box_v[inds, j * 4:(j + 1) * 4] - dets_j = np.hstack((rois_j, scores_j[:, np.newaxis])).astype(np.float32, copy=False) - cls_rank = np.argsort(-dets_j[:, -1]) - dets_j = dets_j[cls_rank] - keep = nms(dets_j, 0.5) - nms_dets = dets_j[keep, :] - cls_boxes[j] = nms_dets - - # Limit to max_per_image detections **over all classes** - image_scores = np.hstack([cls_boxes[j][:, -1] for j in range(1, class_nums)]) - if len(image_scores) > 100: - image_thresh = np.sort(image_scores)[-100] - for j in range(1, class_nums): - keep = np.where(cls_boxes[j][:, -1] >= image_thresh)[0] - cls_boxes[j] = cls_boxes[j][keep, :] - for j in range(1, class_nums): - for dt in cls_boxes[j]: - xmin, ymin, xmax, ymax, score = dt.tolist() - w = xmax - xmin + 1 - h = ymax - ymin + 1 - bbox = [xmin, ymin, w, h] - dt_res = { - 'image_id': im_id, - 'category_id': j, - 'bbox': bbox, - 'score': score - } - dts_res.append(dt_res) - return dts_res - -def test_det(img_path): - conf_file = './conf/paddle-det.conf' - prefix = 'paddle-classify_' - conf = loadconfig(conf_file) - det_prefix = 'paddle-det' - class_nums = conf.getint(det_prefix, 'class_nums') - new_size = conf.getfloat(det_prefix, 'new_size') - max_size = conf.getfloat(det_prefix, 'max_size') - predictor = PyCNNPredict() - predictor.init(conf_file, prefix) - im = cv2.imread(img_path) - if im is None: - print("image doesn't exist!") - sys.exit(-1) - img_height_ori = im.shape[0] - img_width_ori = im.shape[1] - im, im_scale = det_preprocessor(im, new_size, max_size) - im_height = np.round(img_height_ori * im_scale) - im_width = np.round(img_width_ori * im_scale) - im_info = np.array([im_height, im_width, im_scale], dtype=np.float32) - im_data_shape = np.array([1, im.shape[0], im.shape[1], im.shape[2]]) - im_info_shape = np.array([1, 3]) - im = im.flatten().astype(np.float32) - im_info = im_info.flatten().astype(np.float32) - inputdatas = [im, im_info] - inputshapes = [im_data_shape.astype(np.int32), im_info_shape.astype(np.int32)] - for ino in range(2): - starttime = time.time() - res = predictor.predict(inputdatas, inputshapes, []) - rpn_rois_v = res[0][0].reshape(-1, 4) - confs_v = res[0][1].reshape(-1, class_nums) - locs_v = res[0][2].reshape(-1, class_nums * 4) - dts_res = get_dt_res_common(rpn_rois_v, confs_v, locs_v, class_nums, im_info, 0) - print("Time:%.3f" % (time.time() - starttime)) - print(dts_res) - -##infer cls -def normwidth(size, margin=32): - outsize = size // margin * margin - return outsize - - -def loadconfig(configurefile): - "load config from file" - config = ConfigParser() - config.readfp(open(configurefile, 'r')) - return config - - -def resize_short(img, target_size): - """ resize_short """ - percent = float(target_size) / min(img.shape[0], img.shape[1]) - resized_width = int(round(img.shape[1] * percent)) - resized_height = int(round(img.shape[0] * percent)) - - resized_width = normwidth(resized_width) - resized_height = normwidth(resized_height) - resized = cv2.resize(img, (resized_width, resized_height)) - return resized - - -def crop_image(img, target_size, center): - """ crop_image """ - height, width = img.shape[:2] - size = target_size - if center == True: - w_start = (width - size) / 2 - h_start = (height - size) / 2 - else: - w_start = random.randint(0, width - size) - h_start = random.randint(0, height - size) - w_end = w_start + size - h_end = h_start + size - img = img[h_start:h_end, w_start:w_end, :] - return img - - -def cls_preprocessor(im, new_size): - img_mean = [0.485, 0.456, 0.406] - img_std = [0.229, 0.224, 0.225] - - img = resize_short(im, 224) - img = crop_image(img, target_size=224, center=True) - - img = img[:, :, ::-1].astype('float32').transpose((2, 0, 1)) / 255 - img_mean = np.array(img_mean).reshape((3, 1, 1)) - img_std = np.array(img_std).reshape((3, 1, 1)) - img -= img_mean - img /= img_std - return img - - -def test_cls(img_path, model_name): - conf_file = './conf/paddle-cls.conf' - prefix = model_name + "_" - conf = loadconfig(conf_file) - predictor = PyCNNPredict() - predictor.init(conf_file, prefix) - im = cv2.imread(img_path) - if im is None: - print("image doesn't exist!") - sys.exit(-1) - im = cls_preprocessor(im, 224) - im_data_shape = np.array([1, im.shape[0], im.shape[1], im.shape[2]]) - im = im.flatten().astype(np.float32) - inputdatas = [im] - inputshapes = [im_data_shape.astype(np.int32)] - for ino in range(5): - starttime = time.time() - res = predictor.predict(inputdatas, inputshapes, []) - print "Time:", time.time() - starttime - - result = res[0][0] - pred_label = np.argsort(result)[::-1][:1] - - print(pred_label) - print(result[pred_label]) - -if __name__ == "__main__": - if len(sys.argv)>1 : - func = getattr(sys.modules[__name__], sys.argv[1]) - func(*sys.argv[2:]) - else: - print >> sys.stderr,'tools.py command' diff --git a/PaddleCV/Research/landmark/inference/infer_retrieval.py b/PaddleCV/Research/landmark/inference/infer_retrieval.py deleted file mode 100644 index 97cb2515315df1266431bb6f2f3e78ae72da856e..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/infer_retrieval.py +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import sys -sys.path.append('./so') -import time - -import cv2 -import numpy as np - -from ConfigParser import ConfigParser -from PyCNNPredict import PyCNNPredict - -def normwidth(size, margin=32): - outsize = size // margin * margin - outsize = max(outsize, margin) - return outsize - -def loadconfig(configurefile): - "load config from file" - config = ConfigParser() - config.readfp(open(configurefile, 'r')) - return config - -def resize_short(img, target_size): - """ resize_short """ - percent = float(target_size) / min(img.shape[0], img.shape[1]) - resized_width = int(round(img.shape[1] * percent)) - resized_height = int(round(img.shape[0] * percent)) - - resized_width = normwidth(resized_width) - resized_height = normwidth(resized_height) - resized = cv2.resize(img, (resized_width, resized_height), interpolation=cv2.INTER_LANCZOS4) - return resized - -def crop_image(img, target_size, center): - """ crop_image """ - height, width = img.shape[:2] - size = target_size - if center == True: - w_start = (width - size) / 2 - h_start = (height - size) / 2 - else: - w_start = random.randint(0, width - size) - h_start = random.randint(0, height - size) - w_end = w_start + size - h_end = h_start + size - img = img[h_start:h_end, w_start:w_end, :] - return img - - -def preprocessor(img, crop_size): - img_mean = [0.485, 0.456, 0.406] - img_std = [0.229, 0.224, 0.225] - - h, w = img.shape[:2] - ratio = float(max(w, h)) / min(w, h) - if ratio > 3: - crop_size = int(crop_size * 3 / ratio) - img = resize_short(img, crop_size) - - img = img[:, :, ::-1].astype('float32').transpose((2, 0, 1)) / 255 - img_mean = np.array(img_mean).reshape((3, 1, 1)) - img_std = np.array(img_std).reshape((3, 1, 1)) - img -= img_mean - img /= img_std - - return img - -def cosinedist(a, b): - return np.dot(a, b) / (np.sum(a * a) * np.sum(b * b))**0.5 - -def test_retrieval(model_name): - conf_file = './conf/paddle-retrieval.conf' - prefix = model_name + "_" - config = loadconfig(conf_file) - predictor = PyCNNPredict() - predictor.init(conf_file, prefix) - input_size = config.getint(prefix + 'predict', 'input_size') - - img_names = [ - './test_data/0.jpg', - './test_data/1.jpg', - './test_data/2.jpg', - './test_data/3.jpg' - ] - img_feas = [] - for img_path in img_names: - im = cv2.imread(img_path) - if im is None: - return None - im = preprocessor(im, input_size) - im_data_shape = np.array([1, im.shape[0], im.shape[1], im.shape[2]]) - im = im.flatten().astype(np.float32) - inputdatas = [im] - inputshapes = [im_data_shape.astype(np.int32)] - run_time = 0 - starttime = time.time() - res = predictor.predict(inputdatas, inputshapes, []) - run_time += (time.time() - starttime) - fea = res[0][0] - img_feas.append(fea) - print("Time:", run_time) - - for i in xrange(len(img_names)-1): - cosdist = cosinedist(img_feas[0], img_feas[i+1]) - cosdist = max(min(cosdist, 1), 0) - print('cosine dist between {} and {}: {}'.format(0, i+1, cosdist)) - -if __name__ == "__main__": - if len(sys.argv)>1 : - func = getattr(sys.modules[__name__], sys.argv[1]) - func(*sys.argv[2:]) - else: - print >> sys.stderr,'tools.py command' diff --git a/PaddleCV/Research/landmark/inference/models/__init__.py b/PaddleCV/Research/landmark/inference/models/__init__.py deleted file mode 100644 index 4427196bc9df54f23cebfaddf5c2a920ee103b91..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from .inceptionv4_embedding import InceptionV4_embedding -from .resnet_vd import ResNet50_vd, ResNet101_vd, ResNet152_vd, ResNet200_vd -from .resnet_vd_embedding import ResNet50_vd_embedding, ResNet101_vd_embedding, ResNet152_vd_embedding, ResNet200_vd_embedding -from .resnet_vd_fc import ResNet50_vd_fc, ResNet101_vd_fc, ResNet152_vd_fc -from .resnet_vd_v0_embedding import ResNet50_vd_v0_embedding, ResNet101_vd_v0_embedding, ResNet152_vd_v0_embedding -from .se_resnext_vd_embedding import SE_ResNeXt50_32x4d_vd_embedding, SE_ResNeXt101_32x4d_vd_embedding, SE_ResNeXt152_64x4d_vd_embedding diff --git a/PaddleCV/Research/landmark/inference/models/inceptionv4_embedding.py b/PaddleCV/Research/landmark/inference/models/inceptionv4_embedding.py deleted file mode 100644 index 625780bd5fbdaaf826aa80f36c49711eae24eb31..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/inceptionv4_embedding.py +++ /dev/null @@ -1,175 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -import math -from paddle.fluid.param_attr import ParamAttr -__all__ = ['InceptionV4_embedding'] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [10, 16, 20], - "steps": [0.01, 0.001, 0.0001, 0.00001] - } -} -class InceptionV4_embedding(): - def __init__(self): - self.params = train_parameters - def net(self, input, embedding_size=256): - endpoints = {} - x = self.inception_stem(input) - for i in range(4): - x = self.inceptionA(x,name=str(i+1)) - x = self.reductionA(x) - for i in range(7): - x = self.inceptionB(x,name=str(i+1)) - x = self.reductionB(x) - for i in range(3): - x = self.inceptionC(x,name=str(i+1)) - pool = fluid.layers.pool2d( - input=x, pool_size=8, pool_type='avg', global_pooling=True) - if embedding_size > 0: - embedding = fluid.layers.fc(input=pool, size=embedding_size) - endpoints['embedding'] = embedding - else: - endpoints['embedding'] = pool - return endpoints - def conv_bn_layer(self, - data, - num_filters, - filter_size, - stride=1, - padding=0, - groups=1, - act='relu',name=None): - conv = fluid.layers.conv2d( - input=data, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name) - bn_name = name+"_bn" - return fluid.layers.batch_norm(input=conv, act=act,name=bn_name, - param_attr = ParamAttr(name=bn_name+"_scale"), - bias_attr=ParamAttr(name=bn_name+"_offset"), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - def inception_stem(self, data, name=None): - conv = self.conv_bn_layer(data, 32, 3, stride=2, act='relu', name="conv1_3x3_s2") - conv = self.conv_bn_layer(conv, 32, 3, act='relu', name="conv2_3x3_s1") - conv = self.conv_bn_layer(conv, 64, 3, padding=1, act='relu', name="conv3_3x3_s1") - pool1 = fluid.layers.pool2d( - input=conv, pool_size=3, pool_stride=2, pool_type='max') - conv2 = self.conv_bn_layer(conv, 96, 3, stride=2, act='relu',name="inception_stem1_3x3_s2") - concat = fluid.layers.concat([pool1, conv2], axis=1) - conv1 = self.conv_bn_layer(concat, 64, 1, act='relu',name="inception_stem2_3x3_reduce") - conv1 = self.conv_bn_layer(conv1, 96, 3, act='relu',name="inception_stem2_3x3") - conv2 = self.conv_bn_layer(concat, 64, 1, act='relu',name="inception_stem2_1x7_reduce") - conv2 = self.conv_bn_layer( - conv2, 64, (7, 1), padding=(3, 0), act='relu',name="inception_stem2_1x7") - conv2 = self.conv_bn_layer( - conv2, 64, (1, 7), padding=(0, 3), act='relu',name="inception_stem2_7x1") - conv2 = self.conv_bn_layer(conv2, 96, 3, act='relu',name="inception_stem2_3x3_2") - concat = fluid.layers.concat([conv1, conv2], axis=1) - conv1 = self.conv_bn_layer(concat, 192, 3, stride=2, act='relu',name="inception_stem3_3x3_s2") - pool1 = fluid.layers.pool2d( - input=concat, pool_size=3, pool_stride=2, pool_type='max') - concat = fluid.layers.concat([conv1, pool1], axis=1) - return concat - def inceptionA(self, data, name=None): - pool1 = fluid.layers.pool2d( - input=data, pool_size=3, pool_padding=1, pool_type='avg') - conv1 = self.conv_bn_layer(pool1, 96, 1, act='relu',name="inception_a"+name+"_1x1") - conv2 = self.conv_bn_layer(data, 96, 1, act='relu',name="inception_a"+name+"_1x1_2") - conv3 = self.conv_bn_layer(data, 64, 1, act='relu', name="inception_a"+name+"_3x3_reduce") - conv3 = self.conv_bn_layer(conv3, 96, 3, padding=1, act='relu', name="inception_a"+name+"_3x3") - conv4 = self.conv_bn_layer(data, 64, 1, act='relu', name="inception_a"+name+"_3x3_2_reduce") - conv4 = self.conv_bn_layer(conv4, 96, 3, padding=1, act='relu', name="inception_a"+name+"_3x3_2") - conv4 = self.conv_bn_layer(conv4, 96, 3, padding=1, act='relu',name="inception_a"+name+"_3x3_3") - concat = fluid.layers.concat([conv1, conv2, conv3, conv4], axis=1) - return concat - def reductionA(self, data, name=None): - pool1 = fluid.layers.pool2d( - input=data, pool_size=3, pool_stride=2, pool_type='max') - conv2 = self.conv_bn_layer(data, 384, 3, stride=2, act='relu',name="reduction_a_3x3") - conv3 = self.conv_bn_layer(data, 192, 1, act='relu',name="reduction_a_3x3_2_reduce") - conv3 = self.conv_bn_layer(conv3, 224, 3, padding=1, act='relu', name="reduction_a_3x3_2") - conv3 = self.conv_bn_layer(conv3, 256, 3, stride=2, act='relu',name="reduction_a_3x3_3") - concat = fluid.layers.concat([pool1, conv2, conv3], axis=1) - return concat - def inceptionB(self, data, name=None): - pool1 = fluid.layers.pool2d( - input=data, pool_size=3, pool_padding=1, pool_type='avg') - conv1 = self.conv_bn_layer(pool1, 128, 1, act='relu',name="inception_b"+name+"_1x1") - conv2 = self.conv_bn_layer(data, 384, 1, act='relu', name="inception_b"+name+"_1x1_2") - conv3 = self.conv_bn_layer(data, 192, 1, act='relu',name="inception_b"+name+"_1x7_reduce") - conv3 = self.conv_bn_layer( - conv3, 224, (1, 7), padding=(0, 3), act='relu',name="inception_b"+name+"_1x7") - conv3 = self.conv_bn_layer( - conv3, 256, (7, 1), padding=(3, 0), act='relu',name="inception_b"+name+"_7x1") - conv4 = self.conv_bn_layer(data, 192, 1, act='relu',name="inception_b"+name+"_7x1_2_reduce") - conv4 = self.conv_bn_layer( - conv4, 192, (1, 7), padding=(0, 3), act='relu',name="inception_b"+name+"_1x7_2") - conv4 = self.conv_bn_layer( - conv4, 224, (7, 1), padding=(3, 0), act='relu',name="inception_b"+name+"_7x1_2") - conv4 = self.conv_bn_layer( - conv4, 224, (1, 7), padding=(0, 3), act='relu',name="inception_b"+name+"_1x7_3") - conv4 = self.conv_bn_layer( - conv4, 256, (7, 1), padding=(3, 0), act='relu',name="inception_b"+name+"_7x1_3") - concat = fluid.layers.concat([conv1, conv2, conv3, conv4], axis=1) - return concat - def reductionB(self, data, name=None): - pool1 = fluid.layers.pool2d( - input=data, pool_size=3, pool_stride=2, pool_type='max') - conv2 = self.conv_bn_layer(data, 192, 1, act='relu',name="reduction_b_3x3_reduce") - conv2 = self.conv_bn_layer(conv2, 192, 3, stride=2, act='relu',name="reduction_b_3x3") - conv3 = self.conv_bn_layer(data, 256, 1, act='relu',name="reduction_b_1x7_reduce") - conv3 = self.conv_bn_layer( - conv3, 256, (1, 7), padding=(0, 3), act='relu',name="reduction_b_1x7") - conv3 = self.conv_bn_layer( - conv3, 320, (7, 1), padding=(3, 0), act='relu',name="reduction_b_7x1") - conv3 = self.conv_bn_layer(conv3, 320, 3, stride=2, act='relu',name="reduction_b_3x3_2") - concat = fluid.layers.concat([pool1, conv2, conv3], axis=1) - return concat - def inceptionC(self, data, name=None): - pool1 = fluid.layers.pool2d( - input=data, pool_size=3, pool_padding=1, pool_type='avg') - conv1 = self.conv_bn_layer(pool1, 256, 1, act='relu',name="inception_c"+name+"_1x1") - conv2 = self.conv_bn_layer(data, 256, 1, act='relu',name="inception_c"+name+"_1x1_2") - conv3 = self.conv_bn_layer(data, 384, 1, act='relu',name="inception_c"+name+"_1x1_3") - conv3_1 = self.conv_bn_layer( - conv3, 256, (1, 3), padding=(0, 1), act='relu',name="inception_c"+name+"_1x3") - conv3_2 = self.conv_bn_layer( - conv3, 256, (3, 1), padding=(1, 0), act='relu',name="inception_c"+name+"_3x1") - conv4 = self.conv_bn_layer(data, 384, 1, act='relu',name="inception_c"+name+"_1x1_4") - conv4 = self.conv_bn_layer( - conv4, 448, (1, 3), padding=(0, 1), act='relu',name="inception_c"+name+"_1x3_2") - conv4 = self.conv_bn_layer( - conv4, 512, (3, 1), padding=(1, 0), act='relu',name="inception_c"+name+"_3x1_2") - conv4_1 = self.conv_bn_layer( - conv4, 256, (1, 3), padding=(0, 1), act='relu',name="inception_c"+name+"_1x3_3") - conv4_2 = self.conv_bn_layer( - conv4, 256, (3, 1), padding=(1, 0), act='relu',name="inception_c"+name+"_3x1_3") - concat = fluid.layers.concat( - [conv1, conv2, conv3_1, conv3_2, conv4_1, conv4_2], axis=1) - return concat \ No newline at end of file diff --git a/PaddleCV/Research/landmark/inference/models/resnet_vd.py b/PaddleCV/Research/landmark/inference/models/resnet_vd.py deleted file mode 100644 index 44402a919343daeffb42f6b7d2959fa3dc237bf8..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/resnet_vd.py +++ /dev/null @@ -1,198 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -import math -__all__ = ["ResNet", "ResNet50_vd","ResNet101_vd", "ResNet152_vd", "ResNet200_vd"] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 45, 55], - "steps": [0.01, 0.001, 0.0001, 0.00001] - } -} -class ResNet(): - def __init__(self, layers=50, is_3x3 = False): - self.params = train_parameters - self.layers = layers - self.is_3x3 = is_3x3 - def net(self, input, class_dim=1000): - is_3x3 = self.is_3x3 - layers = self.layers - supported_layers = [50, 101, 152, 200] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - if layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - elif layers == 200: - depth = [3, 12, 48, 3] - num_filters = [64, 128, 256, 512] - if is_3x3 == False: - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu') - else: - conv = self.conv_bn_layer( - input=input, num_filters=32, filter_size=3, stride=2, act='relu', name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=32, filter_size=3, stride=1, act='relu', name='conv1_2') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu', name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152, 200] and block == 2: - if i == 0: - conv_name="res"+str(block+2)+"a" - else: - conv_name="res"+str(block+2)+"b"+str(i) - else: - conv_name="res"+str(block+2)+chr(97+i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - if_first=block==0, - name=conv_name) - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - - out = fluid.layers.fc(input=pool, - size=class_dim, - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, - stdv))) - - - softmaxout = fluid.layers.softmax(input=out) - return softmaxout - - - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - - def conv_bn_layer_new(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - pool = fluid.layers.pool2d(input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - pool_type='avg') - - conv = fluid.layers.conv2d( - input=pool, - num_filters=num_filters, - filter_size=filter_size, - stride=1, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - - def shortcut(self, input, ch_out, stride, name, if_first=False): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - if if_first: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return self.conv_bn_layer_new(input, ch_out, 1, stride, name=name) - else: - return input - def bottleneck_block(self, input, num_filters, stride, name, if_first): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu', name=name+"_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name+"_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None, name=name+"_branch2c") - short = self.shortcut(input, num_filters * 4, stride, if_first=if_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu') - -def ResNet50_vd(): - model = ResNet(layers=50, is_3x3 = True) - return model -def ResNet101_vd(): - model = ResNet(layers=101, is_3x3 = True) - return model -def ResNet152_vd(): - model = ResNet(layers=152, is_3x3 = True) - return model -def ResNet200_vd(): - model = ResNet(layers=200, is_3x3 = True) - return model diff --git a/PaddleCV/Research/landmark/inference/models/resnet_vd_embedding.py b/PaddleCV/Research/landmark/inference/models/resnet_vd_embedding.py deleted file mode 100644 index ab938426c6684ed9f49236d0ed6c4b7270af72bb..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/resnet_vd_embedding.py +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -import math -__all__ = ["ResNet", "ResNet50_vd_embedding","ResNet101_vd_embedding", "ResNet152_vd_embedding", "ResNet200_vd_embedding"] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} -class ResNet(): - def __init__(self, layers=50, is_3x3 = False): - self.params = train_parameters - self.layers = layers - self.is_3x3 = is_3x3 - def net(self, input, embedding_size=256): - is_3x3 = self.is_3x3 - layers = self.layers - supported_layers = [50, 101, 152, 200] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - if layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - elif layers == 200: - depth = [3, 12, 48, 3] - num_filters = [64, 128, 256, 512] - endpoints = {} - if is_3x3 == False: - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu') - else: - conv = self.conv_bn_layer( - input=input, num_filters=32, filter_size=3, stride=2, act='relu', name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=32, filter_size=3, stride=1, act='relu', name='conv1_2') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu', name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152, 200] and block == 2: - if i == 0: - conv_name="res"+str(block+2)+"a" - else: - conv_name="res"+str(block+2)+"b"+str(i) - else: - conv_name="res"+str(block+2)+chr(97+i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - if_first=block==0, - name=conv_name) - pool = fluid.layers.pool2d( - input=conv, pool_size=14, pool_type='avg', global_pooling=True) - if embedding_size > 0: - embedding = fluid.layers.fc(input=pool, size=embedding_size) - endpoints['embedding'] = embedding - else: - endpoints['embedding'] = pool - return endpoints - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def conv_bn_layer_new(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - pool = fluid.layers.pool2d(input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - pool_type='avg') - - conv = fluid.layers.conv2d( - input=pool, - num_filters=num_filters, - filter_size=filter_size, - stride=1, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def shortcut(self, input, ch_out, stride, name, if_first=False): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - if if_first: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return self.conv_bn_layer_new(input, ch_out, 1, stride, name=name) - else: - return input - def bottleneck_block(self, input, num_filters, stride, name, if_first): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu', name=name+"_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name+"_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None, name=name+"_branch2c") - short = self.shortcut(input, num_filters * 4, stride, if_first=if_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu') - -def ResNet50_vd_embedding(): - model = ResNet(layers=50, is_3x3 = True) - return model -def ResNet101_vd_embedding(): - model = ResNet(layers=101, is_3x3 = True) - return model -def ResNet152_vd_embedding(): - model = ResNet(layers=152, is_3x3 = True) - return model -def ResNet200_vd_embedding(): - model = ResNet(layers=200, is_3x3 = True) - return model \ No newline at end of file diff --git a/PaddleCV/Research/landmark/inference/models/resnet_vd_fc.py b/PaddleCV/Research/landmark/inference/models/resnet_vd_fc.py deleted file mode 100644 index 6ae38172e6b0b5caebc8a8a21e974de6dd47923a..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/resnet_vd_fc.py +++ /dev/null @@ -1,196 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -import math -__all__ = ["ResNet", "ResNet50_vd_fc", "ResNet101_vd_fc", "ResNet152_vd_fc"] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} -class ResNet(object): - """ResNet""" - def __init__(self, layers=50, is_3x3=False): - self.params = train_parameters - self.layers = layers - self.is_3x3 = is_3x3 - def net(self, input, class_dim=1000): - """net""" - is_3x3 = self.is_3x3 - layers = self.layers - supported_layers = [50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - if layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - if is_3x3 == False: - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu') - else: - conv = self.conv_bn_layer( - input=input, num_filters=32, filter_size=3, stride=2, act='relu', name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=32, filter_size=3, stride=1, act='relu', name='conv1_2') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu', name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152] and block == 2: - if i == 0: - conv_name="res" + str(block + 2) + "a" - else: - conv_name="res" + str(block + 2) + "b" + str(i) - else: - conv_name="res" + str(block + 2) + chr(97 + i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - if_first=block == 0, - name=conv_name) - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - fcresult = fluid.layers.fc(input=pool, size=256) - stdv = 1.0 / math.sqrt(fcresult.shape[1] * 1.0) - out = fluid.layers.fc(input=fcresult, size=class_dim, - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv))) - #return out - softmaxout = fluid.layers.softmax(input=out) - return softmaxout - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - """conv_bn_layer""" - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def conv_bn_layer_new(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - """conv_bn_layer_new""" - pool = fluid.layers.pool2d(input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - pool_type='avg') - - conv = fluid.layers.conv2d( - input=pool, - num_filters=num_filters, - filter_size=filter_size, - stride=1, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def shortcut(self, input, ch_out, stride, name, if_first=False): - """shortcut""" - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - if if_first: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return self.conv_bn_layer_new(input, ch_out, 1, stride, name=name) - else: - return input - def bottleneck_block(self, input, num_filters, stride, name, if_first): - """bottleneck_block""" - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, - filter_size=1, act='relu', name=name + "_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu', - name=name + "_branch2b") - conv2 = self.conv_bn_layer(input=conv1, num_filters=num_filters * 4, - filter_size=1, act=None, name=name + "_branch2c") - short = self.shortcut(input, num_filters * 4, stride, if_first=if_first, name=name + "_branch1") - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu') - -def ResNet50_vd_fc(): - """ResNet50_vd""" - model = ResNet(layers=50, is_3x3 = True) - return model -def ResNet101_vd_fc(): - """ResNet101_vd""" - model = ResNet(layers=101, is_3x3 = True) - return model -def ResNet152_vd_fc(): - """ResNet152_vd""" - model = ResNet(layers=152, is_3x3 = True) - return model diff --git a/PaddleCV/Research/landmark/inference/models/resnet_vd_v0_embedding.py b/PaddleCV/Research/landmark/inference/models/resnet_vd_v0_embedding.py deleted file mode 100644 index 6e5b42886443ba5df17eae0635f5a76e17f504d5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/resnet_vd_v0_embedding.py +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -import math -__all__ = ["ResNet_vd", "ResNet50_vd_v0_embedding","ResNet101_vd_v0_embedding", "ResNet152_vd_v0_embedding"] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} -class ResNet_vd(): - def __init__(self, layers=50, is_3x3 = False): - self.params = train_parameters - self.layers = layers - self.is_3x3 = is_3x3 - def net(self, input, embedding_size=256): - is_3x3 = self.is_3x3 - layers = self.layers - supported_layers = [50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - if layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [64, 128, 256, 512] - endpoints = {} - if is_3x3 == False: - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=7, stride=2, act='relu') - else: - conv = self.conv_bn_layer( - input=input, num_filters=32, filter_size=3, stride=2, act='relu') - conv = self.conv_bn_layer( - input=conv, num_filters=32, filter_size=3, stride=1, act='relu') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - for block in range(len(depth)): - for i in range(depth[block]): - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - if_first=block==0) - pool = fluid.layers.pool2d( - input=conv, pool_size=14, pool_type='avg', global_pooling=True) - if embedding_size > 0: - embedding = fluid.layers.fc(input=pool, size=embedding_size) - endpoints['embedding'] = embedding - else: - endpoints['embedding'] = pool - return endpoints - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act) - - def conv_bn_layer_new(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None): - pool = fluid.layers.pool2d(input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - pool_type='avg') - - conv = fluid.layers.conv2d( - input=pool, - num_filters=num_filters, - filter_size=filter_size, - stride=1, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act) - - def shortcut(self, input, ch_out, stride, if_first=False): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - if if_first: - return self.conv_bn_layer(input, ch_out, 1, stride) - else: - return self.conv_bn_layer_new(input, ch_out, 1, stride) - else: - return input - def bottleneck_block(self, input, num_filters, stride, if_first): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu') - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - act='relu') - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 4, filter_size=1, act=None) - short = self.shortcut(input, num_filters * 4, stride, if_first=if_first) - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu') - -def ResNet50_vd_v0_embedding(): - model = ResNet_vd(layers=50, is_3x3 = True) - return model -def ResNet101_vd_v0_embedding(): - model = ResNet_vd(layers=101, is_3x3 = True) - return model -def ResNet152_vd_v0_embedding(): - model = ResNet_vd(layers=152, is_3x3 = True) - return model \ No newline at end of file diff --git a/PaddleCV/Research/landmark/inference/models/se_resnext_vd_embedding.py b/PaddleCV/Research/landmark/inference/models/se_resnext_vd_embedding.py deleted file mode 100644 index 629dee0170e1e2160b360ea8db74bd7cca713bf8..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/models/se_resnext_vd_embedding.py +++ /dev/null @@ -1,241 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle -import paddle.fluid as fluid -import math -from paddle.fluid.param_attr import ParamAttr -__all__ = [ - "SE_ResNeXt", "SE_ResNeXt50_32x4d_vd_embedding", "SE_ResNeXt101_32x4d_vd_embedding", - "SE_ResNeXt152_64x4d_vd_embedding" -] -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [10, 16, 20], - "steps": [0.01, 0.001, 0.0001, 0.00001] - } -} -class SE_ResNeXt(): - def __init__(self, layers=50): - self.params = train_parameters - self.layers = layers - def net(self, input, embedding_size=256): - layers = self.layers - supported_layers = [50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - endpoints = {} - if layers == 50: - cardinality = 32 - reduction_ratio = 16 - depth = [3, 4, 6, 3] - num_filters = [128, 256, 512, 1024] - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=3, stride=2, act='relu', name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu', name='conv1_2') - conv = self.conv_bn_layer( - input=conv, num_filters=128, filter_size=3, stride=1, act='relu', name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - elif layers == 101: - cardinality = 32 - reduction_ratio = 16 - depth = [3, 4, 23, 3] - num_filters = [128, 256, 512, 1024] - conv = self.conv_bn_layer( - input=input, num_filters=64, filter_size=3, stride=2, act='relu', name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu', name='conv1_2') - conv = self.conv_bn_layer( - input=conv, num_filters=128, filter_size=3, stride=1, act='relu', name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - elif layers == 152: - cardinality = 64 - reduction_ratio = 16 - depth = [3, 8, 36, 3] - num_filters = [256, 512, 1024, 2048] - conv = self.conv_bn_layer( - input=input, - num_filters=64, - filter_size=3, - stride=2, - act='relu', - name='conv1_1') - conv = self.conv_bn_layer( - input=conv, num_filters=64, filter_size=3, stride=1, act='relu',name='conv1_2') - conv = self.conv_bn_layer( - input=conv, - num_filters=128, - filter_size=3, - stride=1, - act='relu', - name='conv1_3') - conv = fluid.layers.pool2d( - input=conv, pool_size=3, pool_stride=2, pool_padding=1, \ - pool_type='max') - n = 1 if layers == 50 or layers == 101 else 3 - for block in range(len(depth)): - n += 1 - for i in range(depth[block]): - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - cardinality=cardinality, - reduction_ratio=reduction_ratio, - if_first=block==0, - name=str(n)+'_'+str(i+1)) - pool = fluid.layers.pool2d( - input=conv, pool_size=14, pool_type='avg', global_pooling=True) - if embedding_size > 0: - embedding = fluid.layers.fc(input=pool, size=embedding_size) - endpoints['embedding'] = embedding - else: - endpoints['embedding'] = pool - return endpoints - def shortcut(self, input, ch_out, stride, name, if_first=False): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - filter_size = 1 - if if_first: - return self.conv_bn_layer(input, ch_out, filter_size, stride, name='conv'+name+'_prj') - else: - return self.conv_bn_layer_new(input, ch_out, filter_size, stride, name='conv'+name+'_prj') - else: - return input - def bottleneck_block(self, input, num_filters, stride, cardinality, - reduction_ratio,if_first, name=None): - conv0 = self.conv_bn_layer( - input=input, num_filters=num_filters, filter_size=1, act='relu',name='conv'+name+'_x1') - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - groups=cardinality, - act='relu', - name='conv'+name+'_x2') - if cardinality == 64: - num_filters = num_filters / 2 - conv2 = self.conv_bn_layer( - input=conv1, num_filters=num_filters * 2, filter_size=1, act=None, name='conv'+name+'_x3') - scale = self.squeeze_excitation( - input=conv2, - num_channels=num_filters * 2, - reduction_ratio=reduction_ratio, - name='fc'+name) - short = self.shortcut(input, num_filters * 2, stride, if_first=if_first, name=name) - return fluid.layers.elementwise_add(x=short, y=scale, act='relu') - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - bias_attr=False, - param_attr=ParamAttr(name=name + '_weights'), - ) - bn_name = name + "_bn" - return fluid.layers.batch_norm(input=conv, act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def conv_bn_layer_new(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - pool = fluid.layers.pool2d(input=input, - pool_size=2, - pool_stride=2, - pool_padding=0, - pool_type='avg') - - conv = fluid.layers.conv2d( - input=pool, - num_filters=num_filters, - filter_size=filter_size, - stride=1, - padding=(filter_size - 1) / 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False) - bn_name = name + "_bn" - return fluid.layers.batch_norm(input=conv, - act=act, - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance') - - def squeeze_excitation(self, input, num_channels, reduction_ratio, name=None): - pool = fluid.layers.pool2d( - input=input, pool_size=0, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - squeeze = fluid.layers.fc(input=pool, - size=num_channels / reduction_ratio, - act='relu', - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform( - -stdv, stdv),name=name+'_sqz_weights'), - bias_attr=ParamAttr(name=name+'_sqz_offset')) - stdv = 1.0 / math.sqrt(squeeze.shape[1] * 1.0) - excitation = fluid.layers.fc(input=squeeze, - size=num_channels, - act='sigmoid', - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform( - -stdv, stdv),name=name+'_exc_weights'), - bias_attr=ParamAttr(name=name+'_exc_offset')) - scale = fluid.layers.elementwise_mul(x=input, y=excitation, axis=0) - return scale -def SE_ResNeXt50_32x4d_vd_embedding(): - model = SE_ResNeXt(layers=50) - return model -def SE_ResNeXt101_32x4d_vd_embedding(): - model = SE_ResNeXt(layers=101) - return model -def SE_ResNeXt152_64x4d_vd_embedding(): - model = SE_ResNeXt(layers=152) - return model diff --git a/PaddleCV/Research/landmark/inference/set_env.sh b/PaddleCV/Research/landmark/inference/set_env.sh deleted file mode 100644 index 4e9fd43c03fdd55858d763773ba156ee2e33e249..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/set_env.sh +++ /dev/null @@ -1,3 +0,0 @@ -export CUDA_VISIBLE_DEVICES=0 -export FLAGS_fraction_of_gpu_memory_to_use=0.8 -export LD_LIBRARY_PATH=./so:$LD_LIBRARY_PATH diff --git a/PaddleCV/Research/landmark/inference/test_data/0.jpg b/PaddleCV/Research/landmark/inference/test_data/0.jpg deleted file mode 100644 index f72999456bd6f7cdda065b0e8ed03f83e2b2db74..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/landmark/inference/test_data/0.jpg and /dev/null differ diff --git a/PaddleCV/Research/landmark/inference/test_data/1.jpg b/PaddleCV/Research/landmark/inference/test_data/1.jpg deleted file mode 100644 index 227a9b210c7073d3470e0c4d591b69351625e51b..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/landmark/inference/test_data/1.jpg and /dev/null differ diff --git a/PaddleCV/Research/landmark/inference/test_data/2.jpg b/PaddleCV/Research/landmark/inference/test_data/2.jpg deleted file mode 100644 index ec85039d53cfb65e159231501e568eb6dbdf43c9..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/landmark/inference/test_data/2.jpg and /dev/null differ diff --git a/PaddleCV/Research/landmark/inference/test_data/2e44b31818acc600.jpeg b/PaddleCV/Research/landmark/inference/test_data/2e44b31818acc600.jpeg deleted file mode 100644 index a95cf23758c3fbb2de0ffd8309e4e1bf9fd53151..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/landmark/inference/test_data/2e44b31818acc600.jpeg and /dev/null differ diff --git a/PaddleCV/Research/landmark/inference/test_data/3.jpg b/PaddleCV/Research/landmark/inference/test_data/3.jpg deleted file mode 100644 index 5988cfa14a44810c16630c98910ca9a99dabb830..0000000000000000000000000000000000000000 Binary files a/PaddleCV/Research/landmark/inference/test_data/3.jpg and /dev/null differ diff --git a/PaddleCV/Research/landmark/inference/utility.py b/PaddleCV/Research/landmark/inference/utility.py deleted file mode 100644 index 9fb64161fbdd2198cc2f74ed9abf2dc82ce23728..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/inference/utility.py +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import time -import os -import subprocess -import distutils.util -import numpy as np -from paddle.fluid import core - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(vars(args).iteritems()): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -def fmt_time(): - """ get formatted time for now - """ - now_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) - return now_str - - -def get_gpunum(): - """ get number of gpu devices - """ - visibledevice = os.getenv('CUDA_VISIBLE_DEVICES') - if visibledevice: - devicenum = len(visibledevice.split(',')) - else: - devicenum = subprocess.check_output(['nvidia-smi', '-L']).count('\n') - return devicenum - - diff --git a/PaddleCV/Research/landmark/pypredict/Makefile b/PaddleCV/Research/landmark/pypredict/Makefile deleted file mode 100644 index e829e671a70628b75b76eacddd02615e753fc522..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -.PHONY:clean - -LDFLAGS = -fPIC -shared -Wl,--rpath=\$ORIGIN -Wl,--rpath=\$ORIGIN/../so -Wl,-z,origin - -LIBS = ./so/libpaddle_fluid.so ./so/libmkldnn.so.0 ./so/libmklml_intel.so ./so/libiomp5.so -L $(PYTHONHOME)/lib -lpython2.7 - -CFLAGS= -fPIC -I pybind11/include -I ./fluid_inference/third_party/install/glog/include -I./fluid_inference/third_party/install/gflags/include -I ./fluid_inference/paddle/include/ -I. -I./fluid_inference/third_party/boost/ -I$(PYTHONHOME)/include/python2.7 -std=c++11 -OBJS = predictor.o\ - py_cnnpredict.o\ - conf_parser.o - -PyCNNPredict.so: $(OBJS) - g++ $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) -%.o : %.cpp - g++ $(CFLAGS) -c $^ -o $@ - -clean: - rm -rf $(OBJS) PyCNNPredict.so - \ No newline at end of file diff --git a/PaddleCV/Research/landmark/pypredict/README.md b/PaddleCV/Research/landmark/pypredict/README.md deleted file mode 100644 index 50a2b44fbd320149d425be73f7ecef16e4f564d2..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Accelerated Infer Project - -This project is to accelerate the prediction of cnn.We need to compile theproject. - -## Environment - -Python2.7, Numpy - -## Compile The Entire C++ Project - -first open build.sh, and you need to set PYTHONHOME nev in build.sh -``` - export PYTHONHOME=/your/python/home - sh build.sh -``` - -so folder will appear, This is the c++ program used to speed up the prediction. -then you can copy the so file to ../inference to predict models -``` - mv so ../inference -``` diff --git a/PaddleCV/Research/landmark/pypredict/build.sh b/PaddleCV/Research/landmark/pypredict/build.sh deleted file mode 100644 index cd216440c3023bf8bed2df2c7bc2e4b5c334d556..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -set -x -#http://www.paddlepaddle.org/documentation/docs/en/1.4/advanced_usage/deploy/inference/build_and_install_lib_en.html -alias wget='wget --no-check-certificat ' -alias git="/usr/bin/git" - -#set python home -export PYTHONHOME=~/.jumbo - -wget https://paddle-inference-lib.bj.bcebos.com/1.4.1-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz -tar -xzf fluid_inference.tgz -mkdir so -cp `find fluid_inference -name '*.so*'` so/ - -git clone https://github.com/pybind/pybind11.git -cd pybind11 && git checkout v2.2.4 && cd - - -make - -mv PyCNNPredict.so so diff --git a/PaddleCV/Research/landmark/pypredict/cnnpredict_interface.h b/PaddleCV/Research/landmark/pypredict/cnnpredict_interface.h deleted file mode 100644 index c8cb4fd341f39c83c26ccb2e59ae7f5b0073d401..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/cnnpredict_interface.h +++ /dev/null @@ -1,119 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -enum class DataType : int { - INT8 = 0, - INT32 = 2, - INT64 = 3, - FLOAT32 = 4, -}; - -inline size_t get_type_size(DataType type) { - switch (type) { - case DataType::INT8: - return sizeof(int8_t); - case DataType::INT32: - return sizeof(int32_t); - case DataType::INT64: - return sizeof(int64_t); - case DataType::FLOAT32: - return sizeof(float); - default: - return 0; - } -} - -struct DataBuf { - std::size_t size; - DataType type; - std::shared_ptr data; - - DataBuf() = default; - - DataBuf(DataType dtype, size_t dsize) { alloc(dtype, dsize); } - - DataBuf(const void *ddata, DataType dtype, size_t dsize) { - alloc(dtype, dsize); - copy(ddata, dsize); - } - - DataBuf(const DataBuf &dbuf) - : size(dbuf.size), type(dbuf.type), data(dbuf.data) {} - - DataBuf &operator=(const DataBuf &dbuf) { - size = dbuf.size; - type = dbuf.type; - data = dbuf.data; - return *this; - } - - void reset(const void *ddata, size_t dsize) { - clear(); - alloc(type, dsize); - copy(ddata, dsize); - } - - void clear() { - size = 0; - data.reset(); - } - - ~DataBuf() { clear(); } - - private: - void alloc(DataType dtype, size_t dsize) { - type = dtype; - size = dsize; - data.reset(new char[dsize * get_type_size(dtype)], - std::default_delete()); - } - - void copy(const void *ddata, size_t dsize) { - const char *temp = reinterpret_cast(ddata); - std::copy(temp, temp + dsize * get_type_size(type), data.get()); - } -}; - -struct Tensor { - std::string name; - std::vector shape; - std::vector> lod; - DataBuf data; -}; - -class ICNNPredict { - public: - ICNNPredict() {} - virtual ~ICNNPredict() {} - - virtual ICNNPredict *clone() = 0; - - virtual bool predict(const std::vector &inputs, - const std::vector &layers, - std::vector &outputs) = 0; - - virtual bool predict(const std::vector> &input_datas, - const std::vector> &input_shapes, - const std::vector &layers, - std::vector> &output_datas, - std::vector> &output_shapes) = 0; - - virtual void destroy(std::vector &tensors) { - std::vector().swap(tensors); - } - - virtual void destroy(std::vector> &datas) { - std::vector>().swap(datas); - } - - virtual void destroy(std::vector> &shapes) { - std::vector>().swap(shapes); - } -}; - -ICNNPredict *create_cnnpredict(const std::string &conf_file, - const std::string &prefix); diff --git a/PaddleCV/Research/landmark/pypredict/common.h b/PaddleCV/Research/landmark/pypredict/common.h deleted file mode 100644 index accdc9cf97f491fce45ce12f9ab89c57015769ab..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/common.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -static inline bool file_exist(const std::string &file_name) { - return ((access(file_name.c_str(), 0)) != -1) ? true : false; -} - -template -static inline bool str2num(const std::string &str, T &num) { - std::istringstream istr(str); - istr >> num; - return !istr.fail(); -}; - -template -static bool strs2nums(const std::vector &strs, - std::vector &nums) { - nums.resize(strs.size()); - for (size_t i = 0; i < strs.size(); i++) { - if (!str2num(strs[i], nums[i])) { - nums.clear(); - return false; - } - } - - return true; -}; - -template -static inline std::string num2str(T a) { - std::stringstream istr; - istr << a; - return istr.str(); -} diff --git a/PaddleCV/Research/landmark/pypredict/conf_parser.cpp b/PaddleCV/Research/landmark/pypredict/conf_parser.cpp deleted file mode 100644 index 2debb3c87c6a4b53ebd346b1638f036e0acf3ac5..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/conf_parser.cpp +++ /dev/null @@ -1,331 +0,0 @@ -#include -#include -#include -#include -#include "logger.h" - -#include "common.h" -#include "conf_parser.h" - -std::string join_string(const std::string &prefix, const std::string &str) { - if (prefix.empty() && str.empty()) { - return ""; - } else if (prefix.empty()) { - return str; - } else if (str.empty()) { - return prefix; - } - - return prefix + str; -} - -bool read_text_file(const std::string &file_name, std::string &str) { - LOG(INFO) << "read_text_file!"; - - if (!file_exist(file_name)) { - LOG(FATAL) << "file: " << file_name << "is not exist!"; - return false; - } - - std::ifstream ifs(file_name.c_str(), std::ios::binary); - if (!ifs) { - LOG(FATAL) << "fail to open " << file_name; - return false; - } - - std::stringstream ss; - ss << ifs.rdbuf(); - str = ss.str(); - - return true; -} - -std::vector split_str(const std::string &str, - const std::string &sep, - bool suppress_blanks) { - std::vector array; - size_t position = 0; - size_t last_position = 0; - - last_position = position = 0; - while (position + sep.size() <= str.size()) { - if (str[position] == sep[0] && str.substr(position, sep.size()) == sep) { - if (!suppress_blanks || position - last_position > 0) { - array.push_back(str.substr(last_position, position - last_position)); - } - last_position = position = position + sep.size(); - } else { - position++; - } - } - - if (!suppress_blanks || last_position - str.size()) { - array.push_back(str.substr(last_position)); - } - - return array; -} - -void strip(std::string &s) { - if (s.empty()) { - return; - } - - s.erase(remove_if(s.begin(), s.end(), isspace), s.end()); - - if (s.size() == 1 && - (s[0] == ' ' || s[0] == '\t' || s[0] == '\n' || s[0] == '\r')) { - s = ""; - } - - int begin = -1; - int end = 0; - for (size_t i = 0; i < s.length(); i++) { - if (!(s[i] == ' ' || s[i] == '\t' || s[i] == '\n' || s[i] == '\r')) { - begin = i; - break; - } - } - - if (begin < 0) { - s = ""; - return; - } - - for (int i = s.length() - 1; i >= 0; i--) { - if (!(s[i] == ' ' || s[i] == '\t' || s[i] == '\n' || s[i] == '\r')) { - end = i; - break; - } - } - - if (((int)s.size()) != end - begin + 1) { - s = s.substr(begin, end - begin + 1); - } -} - -bool ConfParserBase::load(const std::string &file_name) { - std::string str; - if (!read_text_file(file_name, str)) { - LOG(FATAL) << "fail to read " << file_name; - return false; - } - - load_from_string(str); - - return true; -} - -bool ConfParserBase::load_from_string(const std::string &str) { - map_clear(); - std::vector lines = split_str(str, "\n", true); - - int count = 0; - for (size_t i = 0; i < lines.size(); i++) { - if (parse_line(lines[i])) { - count++; - } - } - - return (count > 0); -} - -bool ConfParserBase::get_conf_float(const std::string &key, - float &value) const { - MapIter it = _map.find(key); - if (it == _map.end()) { - return false; - } - - float temp = 0; - if (!str2num(it->second, temp)) { - LOG(WARNING) << "failure to convert " << it->second << " to float"; - return false; - } - - value = temp; - - return true; -} - -bool ConfParserBase::get_conf_uint(const std::string &key, - unsigned int &value) const { - MapIter it = _map.find(key); - if (it == _map.end()) { - LOG(WARNING) << "fail to get: " << key; - return false; - } - - unsigned int temp = 0; - if (!str2num(it->second, temp)) { - LOG(ERROR) << "fail to convert " << it->second << " to float"; - return false; - } - - value = temp; - - return true; -} - -bool ConfParserBase::get_conf_int(const std::string &key, int &value) const { - MapIter it = _map.find(key); - if (it == _map.end()) { - return false; - } - - int temp = 0; - if (!str2num(it->second, temp)) { - LOG(ERROR) << "fail to convert " << it->second << " to float"; - return false; - } - - value = temp; - - return true; -} - -bool ConfParserBase::get_conf_str(const std::string &key, - std::string &value) const { - MapIter it = _map.find(key); - if (it == _map.end()) { - LOG(WARNING) << "fail to get: " << key; - return false; - } else { - value = it->second; - } - - return true; -} - -bool ConfParserBase::exist(const char *name) const { - return _map.find(name) != _map.end(); -} - -void ConfParserBase::map_clear() { _map.clear(); } - -bool ConfParserBase::parse_line(const std::string &line) { - std::string strip_line = line; - strip(strip_line); - if (strip_line.empty() || strip_line[0] == '#' || strip_line[0] == ';') { - return false; - } - - std::basic_string::size_type index_pos = strip_line.find(':'); - if (index_pos == std::string::npos) { - LOG(ERROR) << "wrong setting format of line: " << line; - return false; - } - - std::string key = strip_line.substr(0, index_pos); - std::string value = - strip_line.substr(index_pos + 1, strip_line.size() - index_pos - 1); - if (!_map.insert(std::pair(key, value)).second) { - LOG(WARNING) << "value already exist for key: " << key; - return false; - } - - return true; -} - -ConfParser::~ConfParser() { - if (NULL != _conf) { - delete _conf; - _conf = NULL; - } -} - -bool ConfParser::init(const std::string &conf_file) { - _conf = new ConfParserBase(); - if (!_conf->load(conf_file)) { - LOG(FATAL) << "fail to laod conf file: " << conf_file; - return false; - } - - return true; -} - -bool ConfParser::get_uint(const std::string &prefix, - const std::string &key, - unsigned int &value) const { - std::string pre_key = join_string(prefix, key); - if (!_conf->get_conf_uint(pre_key, value)) { - return false; - } - - return true; -} - -bool ConfParser::get_uints(const std::string &prefix, - const std::string &key, - std::vector &values) const { - std::vector str_values; - get_strings(prefix, key, str_values); - - return strs2nums(str_values, values); -} - -bool ConfParser::get_int(const std::string &prefix, - const std::string &key, - int &value) const { - std::string pre_key = join_string(prefix, key); - if (!_conf->get_conf_int(pre_key, value)) { - return false; - } - - return true; -} - -bool ConfParser::get_ints(const std::string &prefix, - const std::string &key, - std::vector &values) const { - std::vector str_values; - get_strings(prefix, key, str_values); - - return strs2nums(str_values, values); -} - -bool ConfParser::get_float(const std::string &prefix, - const std::string &key, - float &value) const { - std::string pre_key = join_string(prefix, key); - if (!_conf->get_conf_float(pre_key, value)) { - return false; - } - - return true; -} - -bool ConfParser::get_floats(const std::string &prefix, - const std::string &key, - std::vector &values) const { - std::vector str_values; - get_strings(prefix, key, str_values); - - return strs2nums(str_values, values); -} - -bool ConfParser::get_string(const std::string &prefix, - const std::string &key, - std::string &value) const { - std::string pre_key = join_string(prefix, key); - if (!_conf->get_conf_str(pre_key, value)) { - return false; - } - - return true; -} - -bool ConfParser::get_strings(const std::string &prefix, - const std::string &key, - std::vector &values) const { - std::string pre_key = join_string(prefix, key); - std::string value; - if (!_conf->get_conf_str(pre_key, value)) { - return false; - } - - std::vector split_value = split_str(value, ",", true); - values.swap(split_value); - - return true; -} diff --git a/PaddleCV/Research/landmark/pypredict/conf_parser.h b/PaddleCV/Research/landmark/pypredict/conf_parser.h deleted file mode 100644 index db828c04da698bc6cc9de1be6f6d16d1dce1fb3b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/conf_parser.h +++ /dev/null @@ -1,76 +0,0 @@ -#pragma once - -#include -#include - -typedef std::map Map; -typedef Map::const_iterator MapIter; - -class ConfParserBase { - public: - ConfParserBase() {} - - bool load(const std::string &file_name); - - bool load_from_string(const std::string &str); - - bool get_conf_float(const std::string &key, float &value) const; - - bool get_conf_uint(const std::string &key, unsigned int &value) const; - - bool get_conf_int(const std::string &key, int &value) const; - - bool get_conf_str(const std::string &key, std::string &value) const; - - bool exist(const char *name) const; - - void map_clear(); - - private: - bool parse_line(const std::string &line); - - Map _map; -}; - -class ConfParser { - public: - ConfParser() : _conf(NULL){}; - ~ConfParser(); - - bool init(const std::string &conf_file); - - bool get_uint(const std::string &prefix, - const std::string &key, - unsigned int &value) const; - - bool get_uints(const std::string &prefix, - const std::string &key, - std::vector &values) const; - - bool get_int(const std::string &prefix, - const std::string &key, - int &value) const; - - bool get_ints(const std::string &prefix, - const std::string &key, - std::vector &values) const; - - bool get_float(const std::string &prefix, - const std::string &key, - float &value) const; - - bool get_floats(const std::string &prefix, - const std::string &key, - std::vector &values) const; - - bool get_string(const std::string &prefix, - const std::string &key, - std::string &value) const; - - bool get_strings(const std::string &prefix, - const std::string &key, - std::vector &values) const; - - public: - ConfParserBase *_conf; -}; diff --git a/PaddleCV/Research/landmark/pypredict/logger.h b/PaddleCV/Research/landmark/pypredict/logger.h deleted file mode 100644 index d0ba1c75deefc6f3c9732f9857145bcaf5e4bae7..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/logger.h +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once - -#include -#include - -// compatiable with glog -enum { - INFO = 0, - WARNING = 1, - ERROR = 2, - FATAL = 3, -}; - -struct NullStream : std::ostream { - NullStream() : std::ios(0), std::ostream(0) {} -}; - -class Logger { - public: - Logger(const char *filename, int lineno, int loglevel) { - static const char *log_levels[] = {"INFO ", "WARN ", "ERROR", "FATAL"}; - - static NullStream nullstream; - _loglevel = loglevel; - _logstream = (_loglevel >= getloglevel()) ? &std::cerr : &nullstream; - (*_logstream) << log_levels[_loglevel] << ":" << filename << "[" << lineno - << "]"; - } - static inline int &getloglevel() { - // default initialized with glog env - static int globallevel = getgloglevel(); - return globallevel; - } - static inline void setloglevel(int loglevel) { getloglevel() = loglevel; } - static int getgloglevel() { - char *env = getenv("GLOG_minloglevel"); - int level = WARNING; - if (env != NULL) { - int num = 0; - std::istringstream istr(env); - istr >> num; - if (!istr.fail()) { - level = num; - } - } - return level; - } - ~Logger() { *_logstream << std::endl; } - std::ostream &getstream() { return *_logstream; } - - protected: - int _loglevel; - std::ostream *_logstream; -}; - -#define LOG(loglevel) Logger(__FILE__, __LINE__, loglevel).getstream() diff --git a/PaddleCV/Research/landmark/pypredict/predictor.cpp b/PaddleCV/Research/landmark/pypredict/predictor.cpp deleted file mode 100644 index c27ca464213867f67e4f039672446d2367821b76..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/predictor.cpp +++ /dev/null @@ -1,478 +0,0 @@ -#include -#include -#include "logger.h" - -#include "conf_parser.h" -#include "predictor.h" - -Predictor::~Predictor() {} - -bool feed(paddle::PaddlePredictor *predictor, - const std::vector &tensors) { - LOG(INFO) << "Predictor::feed"; - - auto names = predictor->GetInputNames(); - if (names.size() != tensors.size()) { - LOG(WARNING) << "The given size " << tensors.size() - << " is not equal to the required size " << names.size(); - return false; - } - - for (size_t i = 0; i < names.size(); ++i) { - auto i_t = predictor->GetInputTensor(names[i]); - i_t->Reshape(tensors[i].shape); - i_t->SetLoD(tensors[i].lod); - - if (tensors[i].data.type == DataType::FLOAT32) { - const float *temp = - reinterpret_cast(tensors[i].data.data.get()); - i_t->copy_from_cpu(temp); - } else if (tensors[i].data.type == DataType::INT32) { - const int32_t *temp = - reinterpret_cast(tensors[i].data.data.get()); - i_t->copy_from_cpu(temp); - } else if (tensors[i].data.type == DataType::INT64) { - const int64_t *temp = - reinterpret_cast(tensors[i].data.data.get()); - i_t->copy_from_cpu(temp); - } else { - LOG(ERROR) << "do not support current datatype"; - return false; - } - } - - return true; -} - -bool fetch(paddle::PaddlePredictor *predictor, std::vector &tensors) { - LOG(INFO) << "Predictor::fetch"; - - auto names = predictor->GetOutputNames(); - for (auto &name : names) { - auto o_t = predictor->GetOutputTensor(name); - std::vector s = o_t->shape(); - - Tensor out; - out.shape = s; - out.lod = o_t->lod(); - - int num = std::accumulate(s.begin(), s.end(), 1, std::multiplies()); - - if (o_t->type() == paddle::PaddleDType::FLOAT32) { - out.data = DataBuf(DataType::FLOAT32, size_t(num)); - float *p_data = reinterpret_cast(out.data.data.get()); - o_t->copy_to_cpu(p_data); - } else if (o_t->type() == paddle::PaddleDType::INT32) { - out.data = DataBuf(DataType::INT32, size_t(num)); - int32_t *p_data = reinterpret_cast(out.data.data.get()); - o_t->copy_to_cpu(p_data); - } else if (o_t->type() == paddle::PaddleDType::INT64) { - out.data = DataBuf(DataType::INT64, size_t(num)); - int64_t *p_data = reinterpret_cast(out.data.data.get()); - o_t->copy_to_cpu(p_data); - } else { - LOG(ERROR) << "do no support current datatype"; - return false; - } - - tensors.push_back(out); - } - - return true; -} - -bool Predictor::predict(const std::vector &inputs, - const std::vector &layers, - std::vector &outputs) { - LOG(INFO) << "Predictor::predict"; - (void)layers; - // 1. feed input - if (!feed(_predictor.get(), inputs)) { - return false; - } - - // 2. execute inference - if (!_predictor->ZeroCopyRun()) { - LOG(WARNING) << "fail to execute predictor"; - return false; - } - - // 3. fetch output - if (!fetch(_predictor.get(), outputs)) { - return false; - } - return true; -} - -bool check_shape(const std::vector> &datas, - const std::vector> &shapes) { - LOG(INFO) << "check_shape"; - if (datas.size() != shapes.size()) { - LOG(ERROR) << "datas size: " << datas.size() << " != " - << "shapes size(): " << shapes.size(); - return false; - } - for (size_t i = 0; i < datas.size(); ++i) { - int count = 1; - for (auto num : shapes[i]) { - count *= num; - } - int data_size = static_cast(datas[i].size()); - if (count != data_size) { - LOG(ERROR) << "data[" << i << "] size " << data_size << " != " - << "shape [" << i << "] size " << count; - return false; - } - } - return true; -} - -bool feed(paddle::PaddlePredictor *predictor, - const std::vector> &datas, - const std::vector> &shapes) { - LOG(INFO) << "Predictor::feed"; - - // 1. check input shape - if (!check_shape(datas, shapes)) { - return false; - } - - // 2. check given input and required input - auto names = predictor->GetInputNames(); - if (names.size() != datas.size()) { - LOG(WARNING) << "The given size " << datas.size() - << " is not equal to the required size " << names.size(); - return false; - } - - // 3. feed - for (size_t i = 0; i < names.size(); ++i) { - auto i_t = predictor->GetInputTensor(names[i]); - i_t->Reshape(shapes[i]); - i_t->copy_from_cpu(datas[i].data()); - } - - return true; -} - -bool fetch(paddle::PaddlePredictor *predictor, - std::vector> &datas, - std::vector> &shapes) { - LOG(INFO) << "Predictor::fetch"; - - auto names = predictor->GetOutputNames(); - for (auto &name : names) { - auto o_t = predictor->GetOutputTensor(name); - std::vector s = o_t->shape(); - shapes.push_back(s); - - int num = std::accumulate(s.begin(), s.end(), 1, std::multiplies()); - - std::vector data(num); - o_t->copy_to_cpu(data.data()); - datas.push_back(data); - } - - return true; -} - -bool Predictor::predict(const std::vector> &input_datas, - const std::vector> &input_shapes, - const std::vector &layers, - std::vector> &output_datas, - std::vector> &output_shapes) { - LOG(INFO) << "Predictor::predict"; - (void)layers; - - // 1. feed input - if (!feed(_predictor.get(), input_datas, input_shapes)) { - return false; - } - - // 2. execute inference - if (!_predictor->ZeroCopyRun()) { - LOG(WARNING) << "fail to execute predictor"; - return false; - } - - // 3. fetch output - if (!fetch(_predictor.get(), output_datas, output_shapes)) { - return false; - } - - return true; -} - -void init_tensorrt(const ConfParser *conf, - const std::string &prefix, - AnalysisConfig &config) { - LOG(INFO) << "Predictor::init_tensorrt()"; - - // 1. max_batch_size for tensorrt - int max_batch_size = 1; - if (!conf->get_int(prefix, "max_batch_size", max_batch_size)) { - LOG(WARNING) << "fail to get max_batch_size from conf, set as 1"; - } - max_batch_size = std::max(1, max_batch_size); - - // 2. workspace_size for tensorrt - int workspace_size = 0; - if (!conf->get_int(prefix, "workspace_size", workspace_size)) { - LOG(WARNING) << "fail to get workspace_size from conf, set as 0"; - } - workspace_size = std::max(0, workspace_size); - - // 3. min_subgraph_size for tensorrt - int min_subgraph_size = 3; - if (!conf->get_int(prefix, "min_subgraph_size", min_subgraph_size)) { - LOG(WARNING) << "fail to get min_subgraph_size from conf, set as 3"; - } - min_subgraph_size = std::max(0, min_subgraph_size); - - config.EnableTensorRtEngine( - workspace_size, max_batch_size, min_subgraph_size); -} - -void init_anakin(const ConfParser *conf, - const std::string &prefix, - AnalysisConfig &config) { - LOG(INFO) << "Predictor::init_anakin()"; - - // 1. max_batch_size for tensorrt - int max_batch_size = 1; - if (!conf->get_int(prefix, "max_batch_size", max_batch_size)) { - LOG(WARNING) << "fail to get max_batch_size from conf, set as 1"; - } - max_batch_size = std::max(1, max_batch_size); - - std::map> anakin_max_input_dict; - std::vector input_names; - if (!conf->get_strings(prefix, "input_names", input_names)) { - LOG(WARNING) << "fail to get input_names from conf"; - } - for (auto &n : input_names) { - std::vector shape; - if (!conf->get_ints(prefix, n, shape)) { - LOG(WARNING) << "fail to get the shape of " + n; - } else { - anakin_max_input_dict[n] = shape; - } - } - - config.EnableAnakinEngine(max_batch_size, anakin_max_input_dict); - config.pass_builder()->TurnOnDebug(); -} - -void init_gpu(const ConfParser *conf, - const std::string &prefix, - int device, - AnalysisConfig &config) { - LOG(INFO) << "Predictor::init_gpu()"; - - // 1. GPU memeroy - uint32_t gpu_memory_mb = 1024; - if (!conf->get_uint(prefix, "gpu_memory_mb", gpu_memory_mb)) { - LOG(WARNING) << "fail to get gpu_memory_mb from conf, set as 1024"; - } - config.EnableUseGpu(gpu_memory_mb, device); - - // 2. use_tensorrt - std::string infer_engine; - if (!conf->get_string(prefix, "infer_engine", infer_engine)) { - LOG(WARNING) << "disable infer engine"; - return; - } else if (infer_engine == "tensorrt") { - init_tensorrt(conf, prefix + "tensorrt_", config); - } else if (infer_engine == "anakin") { - init_anakin(conf, prefix + "anakin_", config); - } else { - LOG(WARNING) << "unknwon infer engine"; - return; - } -} - -void init_cpu(const ConfParser *conf, - const std::string &prefix, - AnalysisConfig &config) { - LOG(INFO) << "Predictor::init_cpu()"; - - config.DisableGpu(); - - // 1. cpu_math_library (such as mkl/openblas) num_threads - int num_threads = 1; - if (!conf->get_int(prefix, "num_threads", num_threads)) { - LOG(WARNING) << "fail to get num_threads conf, set as 1"; - } - num_threads = std::max(1, num_threads); - config.SetCpuMathLibraryNumThreads(num_threads); - - // 2. use_mkldnn - int use_mkldnn = -1; - if (conf->get_int(prefix, "use_mkldnn", use_mkldnn) && use_mkldnn > 0) { - config.EnableMKLDNN(); - } -} - -bool init_model(const ConfParser *conf, - const std::string &prefix, - AnalysisConfig &config) { - LOG(INFO) << "Predictor::init_model()"; - - std::string prog_file; - if (!conf->get_string(prefix, "prog_file", prog_file)) { - LOG(WARNING) << "fail to get prog_file from conf"; - } - - std::string param_file; - if (!conf->get_string(prefix, "param_file", param_file)) { - LOG(WARNING) << "fail to get param_file from conf"; - } - - if (!prog_file.empty() && !param_file.empty()) { - if (!file_exist(prog_file)) { - LOG(FATAL) << "file: " << prog_file << " is not exist"; - return false; - } - if (!file_exist(param_file)) { - LOG(FATAL) << "file: " << param_file << " is not exist"; - return false; - } - config.SetModel(prog_file, param_file); - return true; - } - - std::string model_path; - if (!conf->get_string(prefix, "model_path", model_path)) { - LOG(FATAL) << "fail to get model_path from conf"; - return false; - } - config.SetModel(model_path); - - return true; -} - -void show_version_info() { - static bool initialized = false; - if (initialized) { - return; - } - - LOG(INFO) << "[date:" << __DATE__ << "]" - << "[time:" << __TIME__ << "]"; - LOG(INFO) << "paddle " << paddle::get_version(); - - initialized = true; -} - -bool Predictor::init(const std::string &conf_file, const std::string &prefix) { - LOG(INFO) << "Predictor::init()"; - - show_version_info(); - - std::unique_ptr config(new AnalysisConfig()); - - std::unique_ptr conf(new ConfParser()); - if (!conf->init(conf_file)) { - LOG(FATAL) << "fail to load conf file: " << conf_file; - return false; - } - - // 1. Debug - if (!conf->get_int(prefix, "debug", _debug)) { - _debug = -1; - LOG(WARNING) << "fail to get debug from conf, set as -1"; - } - - // 2. init model - if (!init_model(conf.get(), prefix, *config.get())) { - LOG(FATAL) << "fail to init model"; - return false; - } - - // 3. enable_ir_optim - int ir_optim = -1; - if (!conf->get_int(prefix, "enable_ir_optim", ir_optim)) { - LOG(WARNING) << "fail to get enable_ir_optim from conf, set as false"; - } - config->SwitchIrOptim(ir_optim > 0); - - // 4. specify_input_name - int sp_input = -1; - if (!conf->get_int(prefix, "specify_input_name", sp_input)) { - LOG(WARNING) << "fail to get specify_input_name from conf, set as false"; - } - config->SwitchSpecifyInputNames(sp_input > 0); - - // 5. use zerocopy - config->SwitchUseFeedFetchOps(false); - - // 6. Device - int device = -1; - if (!conf->get_int(prefix, "device", device)) { - LOG(WARNING) << "fail to get device from conf"; - return false; - } - if (device < 0) { - LOG(INFO) << "use cpu!"; - init_cpu(conf.get(), prefix, *config.get()); - } else { - LOG(INFO) << "use gpu!"; - init_gpu(conf.get(), prefix, device, *config.get()); - } - - // 7. delete unused pass - std::vector passes; - if (conf->get_strings(prefix, "delete_pass", passes)) { - for (auto &p : passes) { - LOG(INFO) << "delete pass: " << p; - config->pass_builder()->DeletePass(p); - } - } - - // 8. create predictor - auto predictor = CreatePaddlePredictor(*config.get()); - if (NULL == predictor) { - LOG(ERROR) << "fail to create paddle predictor"; - return false; - } - _predictor = std::move(predictor); - - return true; -} - -bool Predictor::init_shared(Predictor *cls) { - LOG(INFO) << "Predictor::init_shared"; - - this->_predictor = std::move(cls->_predictor->Clone()); - if (NULL == this->_predictor) { - LOG(ERROR) << "fail to clone paddle predictor"; - return false; - } - - return true; -} - -ICNNPredict *Predictor::clone() { - LOG(INFO) << "Predictor::clone"; - Predictor *cls = new Predictor(); - - if (!cls->init_shared(this)) { - LOG(FATAL) << "fail to call cls->init_shared"; - delete cls; - return NULL; - } - return cls; -} - -ICNNPredict *create_cnnpredict(const std::string &conf_file, - const std::string &prefix) { - LOG(INFO) << "create_cnnpredict"; - Predictor *predictor = new Predictor(); - - if (!predictor->init(conf_file, prefix)) { - delete predictor; - return NULL; - } - - return predictor; -} diff --git a/PaddleCV/Research/landmark/pypredict/predictor.h b/PaddleCV/Research/landmark/pypredict/predictor.h deleted file mode 100644 index 3628b5ac388199218ff9e2a876f8224dcb609c08..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/predictor.h +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -#include -#include -#include "cnnpredict_interface.h" -#include "common.h" -#include "paddle_inference_api.h" - -using paddle::CreatePaddlePredictor; -using paddle::AnalysisConfig; -using paddle::PaddleEngineKind; - -class Predictor : public ICNNPredict { - public: - Predictor() : _debug(0) {} - - virtual ~Predictor(); - - ICNNPredict *clone(); - - /** - * [init predict from conf] - * @param conf_file [conf file] - * @param prefix [prefix before every key] - * @return [true of fasle] - */ - bool init(const std::string &conf_file, const std::string &prefix); - - bool predict(const std::vector &inputs, - const std::vector &layers, - std::vector &outputs); - - bool predict(const std::vector> &input_datas, - const std::vector> &input_shapes, - const std::vector &layers, - std::vector> &output_datas, - std::vector> &output_shapes); - - private: - bool init_shared(Predictor *cls); - - int _debug; - std::unique_ptr _predictor; -}; diff --git a/PaddleCV/Research/landmark/pypredict/py_cnnpredict.cpp b/PaddleCV/Research/landmark/pypredict/py_cnnpredict.cpp deleted file mode 100644 index 6618ed8a6ffbde9372cb9e82abe3dd23e82d2c60..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/py_cnnpredict.cpp +++ /dev/null @@ -1,131 +0,0 @@ -#include "logger.h" - -#include "cnnpredict_interface.h" -#include "common.h" -#include "py_cnnpredict.h" - -template -vector ndarray_to_vector(const py::array &nd) { - py::dtype datatype = nd.dtype(); - size_t nd_dim = nd.ndim(); - const auto *shape = nd.shape(); - size_t data_num = nd.size(); - // py::buffer_info buf = nd.request(); - - const T *nd_data = reinterpret_cast(nd.data(0)); - vector vec(data_num, 0); - std::copy(nd_data, nd_data + data_num, vec.begin()); - return vec; -} - -template -vector list_to_vector(py::list &list) { - vector vec; - for (size_t i = 0; i < py::len(list); i++) { - T l = py::cast(list[i]); - vec.push_back(l); - } - - return vec; -} - -template -vector> ndlist_to_vectors(py::list &ndlist) { - vector> vecs; - for (unsigned int i = 0; i < py::len(ndlist); i++) { - py::array nd = py::array(ndlist[i]); - vector vec = ndarray_to_vector(nd); - vecs.push_back(vec); - } - return vecs; -} - -template -py::array vector_to_ndarray(const vector &vec) { - const std::vector shape = {vec.size()}; - auto format = py::format_descriptor::format(); - py::dtype dt(format); - py::array nd(dt, shape, (const char *)vec.data()); - return nd; -} - -template -py::list vectors_to_list(const vector> &vecs) { - py::list ndlist; - for (int i = 0; i < vecs.size(); i++) { - py::array nd = vector_to_ndarray(vecs[i]); - ndlist.append(nd); - } - return ndlist; -} - -PyCNNPredict::~PyCNNPredict() { - if (_predictor != NULL) { - delete _predictor; - _predictor = NULL; - } -} - -bool PyCNNPredict::init(string conf_file, string prefix) { - LOG(INFO) << "PyCNNPredict::init()"; - _predictor = create_cnnpredict(conf_file, prefix); - if (_predictor == NULL) { - LOG(FATAL) << "fail to call create_cnnpredict"; - return false; - } - return true; -} - -py::list PyCNNPredict::postprocess(const vector> &vdatas, - const vector> &vshapes) { - LOG(INFO) << "PyCNNPredict::postprocess()"; - - py::list result; - if (vdatas.size() != vshapes.size()) { - LOG(FATAL) << "datas and shapes size not equal"; - return result; - } - - result.append(vectors_to_list(vdatas)); - result.append(vectors_to_list(vshapes)); - - return result; -} - -py::list PyCNNPredict::predict(py::list input_datas, - py::list input_shapes, - py::list layer_names) { - LOG(INFO) << "PyCNNPredict::predict()"; - vector> inputdatas; - vector> inputshapes; - vector layernames; - vector> outputdatas; - vector> outputshapes; - - py::list result; - if (py::len(input_datas) != py::len(input_shapes)) { - LOG(FATAL) << "datas and shapes size not equal"; - return result; - } - - inputdatas = ndlist_to_vectors(input_datas); - inputshapes = ndlist_to_vectors(input_shapes); - layernames = list_to_vector(layer_names); - - bool ret = _predictor->predict( - inputdatas, inputshapes, layernames, outputdatas, outputshapes); - if (!ret) { - LOG(FATAL) << "fail to predict"; - return result; - } - - return postprocess(outputdatas, outputshapes); -} - -PYBIND11_MODULE(PyCNNPredict, m) { - m.doc() = "pycnnpredict"; - py::class_(m, "PyCNNPredict") - .def(py::init()) - .def("init", &PyCNNPredict::init) - .def("predict", &PyCNNPredict::predict); -} diff --git a/PaddleCV/Research/landmark/pypredict/py_cnnpredict.h b/PaddleCV/Research/landmark/pypredict/py_cnnpredict.h deleted file mode 100644 index 5070fe5d1043e45ff4defa694ae93d6746013060..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/landmark/pypredict/py_cnnpredict.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include - -namespace py = pybind11; -using std::string; -using std::vector; - -class PyCNNPredict { - public: - PyCNNPredict() : _predictor(NULL) {} - - ~PyCNNPredict(); - - bool init(string conf_file, string prefix); - - py::list predict(py::list input_datas, - py::list input_shapes, - py::list layer_names); - - private: - ICNNPredict *_predictor; - py::list postprocess(const vector> &vdatas, - const vector> &vshapes); -}; diff --git a/PaddleCV/Research/webvision2018/README.md b/PaddleCV/Research/webvision2018/README.md deleted file mode 100644 index 7c1818f4a1694ac4d2890a675f65f6fb5fc2c800..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# WebVision Image Classification 2018 Challenge -The goal of this challenge is to advance the area of learning knowledge and representation from web data. The web data not only contains huge numbers of visual images, but also rich meta information concerning these visual data, which could be exploited to learn good representations and models. -More detail [[WebVision2018](https://www.vision.ee.ethz.ch/webvision/challenge.html)]. - -By observing the web data, we find that there are five key challenges, i.e., imbalanced class sizes, high intra-classes diversity and inter-class similarity, imprecise instances, -insufficient representative instances, and ambiguous class labels. To alleviate these challenges, we assume that every training instance has -the potential to contribute positively by alleviating the data bias and noise via reweighting the influence of each instance according to different -class sizes, large instance clusters, its confidence, small instance bags and the labels. In this manner, the influence of bias and noise in the -web data can be gradually alleviated, leading to the steadily improving performance of URNet. Experimental results in the WebVision 2018 -challenge with 16 million noisy training images from 5000 classes show that our approach outperforms state-of-the-art models and ranks the first -place in the image classification task. The detail of our solution can refer to our paper[[URNet](https://arxiv.org/abs/1811.00700)]. - -## 1.Prepare data -We have provided a download + preprocess script of valset data. -``` -cd data -sh download_webvision2018.sh -``` -Note that the server hosting Webvision Data reboots every day at midnight (Zurich time). You might want to change wget to something else. - -## 2.Environment installation -Cudnn >= 7, CUDA 8/9, PaddlePaddle version >= 1.3, python version 2.7 (More detail [[PaddlePaddle](https://github.com/paddlepaddle/paddle)]) - -## 3.Download pretrained model -| Model | Acc@1 | Acc@5 -| - | - | - -| [ResNeXt101_32x4d](https://paddlemodels.bj.bcebos.com/webvision/ResNeXt101_32x4d_Released.tar.gz) | 53.4% | 77.1% - -## 4.Test image -``` -sh run.sh -``` -or -``` -export CUDA_VISIBLE_DEVICES=$GPU_ID -export FLAGS_fraction_of_gpu_memory_to_use=1.0 -python infer.py --model ResNeXt101_32x4d \ - --pretrained_model $PRETRAINEDMODELPATH \ - --class_dim 5000 \ - --img_path $IMGPATH \ - --img_list $IMGLIST \ - --use_gpu True -``` - -You will get the predictions of images. -## 5.Evaluation -``` -export CUDA_VISIBLE_DEVICES=$GPU_ID -export FLAGS_fraction_of_gpu_memory_to_use=1.0 -python eval.py --model ResNeXt101_32x4d \ - --pretrained_model $PRETRAINEDMODELPATH \ - --class_dim 5000 \ - --img_path $IMGPATH \ - --img_list $IMGLIST \ - --use_gpu True - -``` -You will get the Acc@1 and Acc@5. - diff --git a/PaddleCV/Research/webvision2018/data/download_webvision2018.sh b/PaddleCV/Research/webvision2018/data/download_webvision2018.sh deleted file mode 100644 index fa09f78c6790b255fd303962e2762cc03616fe23..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/data/download_webvision2018.sh +++ /dev/null @@ -1,6 +0,0 @@ -wget https://data.vision.ee.ethz.ch/cvl/webvision2018/val_images_resized.tar -tar -xvf val_images_resized.tar -rm val_images_resized.tar -wget https://data.vision.ee.ethz.ch/cvl/webvision2018/val_filelist.txt -mv val_images_resized val -mv val_filelist.txt val_list.txt diff --git a/PaddleCV/Research/webvision2018/eval.py b/PaddleCV/Research/webvision2018/eval.py deleted file mode 100644 index ff8b9a8a33a28ec9c9f7ffbe3884523700d3a52b..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/eval.py +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import numpy as np -import time -import sys -import paddle -import paddle.fluid as fluid -import models -import reader -import argparse -import functools -from utils import add_arguments, print_arguments, accuracy -import math -import sys -reload(sys) -sys.setdefaultencoding('utf-8') - -parser = argparse.ArgumentParser(description=__doc__) -# yapf: disable -add_arg = functools.partial(add_arguments, argparser=parser) -add_arg('batch_size', int, 32, "Minibatch size.") -add_arg('use_gpu', bool, True, "Whether to use GPU or not.") -add_arg('class_dim', int, 5000, "Class number.") -add_arg('image_shape', str, "3,224,224", "Input image size") -add_arg('pretrained_model', str, None, "Whether to use pretrained model.") -add_arg('model', str, "ResNeXt101_32x4d", "Set the network to use.") -add_arg('img_list', str, "None", "list of valset.") -add_arg('img_path', str, "NOne", "path of valset.") -# yapf: enable - -model_list = [m for m in dir(models) if "__" not in m] - - -def eval(args): - # parameters from arguments - class_dim = args.class_dim - model_name = args.model - pretrained_model = args.pretrained_model - image_shape = [int(m) for m in args.image_shape.split(",")] - - assert model_name in model_list, "{} is not in lists: {}".format(args.model, - model_list) - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - - # model definition - model = models.__dict__[model_name]() - - if model_name is "GoogleNet": - out, _, _ = model.net(input=image, class_dim=class_dim) - else: - out = model.net(input=image, class_dim=class_dim) - - test_program = fluid.default_main_program().clone(for_test=True) - - fetch_list = [out.name] - - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - if pretrained_model: - - def if_exist(var): - return os.path.exists(os.path.join(pretrained_model, var.name)) - - fluid.io.load_vars(exe, pretrained_model, predicate=if_exist) - - - test_batch_size = args.batch_size - - img_size = image_shape[1] - test_reader = paddle.batch(reader.test(args, img_size), batch_size=test_batch_size) - feeder = fluid.DataFeeder(place=place, feed_list=[image]) - - targets = [] - with open(args.img_list, 'r') as f: - for line in f.readlines(): - targets.append(line.strip().split()[-1]) - targets = np.array(targets, dtype=np.int) - - preds = [] - TOPK = 5 - - for batch_id, data in enumerate(test_reader()): - all_result = exe.run(test_program, - fetch_list=fetch_list, - feed=feeder.feed(data)) - pred_label = np.argsort(-all_result[0], 1)[:,:5] - print("Test-{0}".format(batch_id)) - preds.append(pred_label) - preds = np.vstack(preds) - top1, top5 = accuracy(targets, preds) - print("top1:{:.4f} top5:{:.4f}".format(top1,top5)) - -def main(): - args = parser.parse_args() - print_arguments(args) - eval(args) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/Research/webvision2018/infer.py b/PaddleCV/Research/webvision2018/infer.py deleted file mode 100755 index 7f5448314320c21c363dbd2fd10ca990a6a1dc0f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/infer.py +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import time -import sys -import math -import numpy as np -import argparse -import functools - -import paddle -import paddle.fluid as fluid -import reader -import models -import utils -from utils.utility import add_arguments,print_arguments - - -parser = argparse.ArgumentParser(description=__doc__) -# yapf: disable -add_arg = functools.partial(add_arguments, argparser=parser) -add_arg('use_gpu', bool, True, "Whether to use GPU or not.") -add_arg('class_dim', int, 5000, "Class number.") -add_arg('image_shape', str, "3,224,224", "Input image size") -add_arg('pretrained_model', str, None, "Whether to use pretrained model.") -add_arg('model', str, "ResNeXt101_32x4d", "Set the network to use.") -add_arg('save_inference', bool, False, "Whether to save inference model or not") -add_arg('resize_short_size', int, 256, "Set resize short size") -add_arg('img_list', str, None, "list of valset") -add_arg('img_path', str, None, "path of valset") -# yapf: enable - -def infer(args): - # parameters from arguments - class_dim = args.class_dim - model_name = args.model - save_inference = args.save_inference - pretrained_model = args.pretrained_model - image_shape = [int(m) for m in args.image_shape.split(",")] - model_list = [m for m in dir(models) if "__" not in m] - assert model_name in model_list, "{} is not in lists: {}".format(args.model, - model_list) - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - - # model definition - model = models.__dict__[model_name]() - if model_name == "GoogleNet": - out, _, _ = model.net(input=image, class_dim=class_dim) - else: - out = model.net(input=image, class_dim=class_dim) - - test_program = fluid.default_main_program().clone(for_test=True) - - fetch_list = [out.name] - - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - fluid.io.load_persistables(exe, pretrained_model) - if save_inference: - fluid.io.save_inference_model( - dirname=model_name, - feeded_var_names=['image'], - main_program=test_program, - target_vars=out, - executor=exe, - model_filename='model', - params_filename='params') - print("model: ",model_name," is already saved") - exit(0) - test_batch_size = 1 - img_size = image_shape[1] - test_reader = paddle.batch(reader.test(args, img_size), batch_size=test_batch_size) - feeder = fluid.DataFeeder(place=place, feed_list=[image]) - - TOPK = 1 - for batch_id, data in enumerate(test_reader()): - result = exe.run(test_program, - fetch_list=fetch_list, - feed=feeder.feed(data)) - - result = result[0][0] - pred_label = np.argsort(result)[::-1][:TOPK] - print("Test-{0}-score: {1}, class {2}" - .format(batch_id, result[pred_label], pred_label)) - sys.stdout.flush() - - -def main(): - args = parser.parse_args() - print_arguments(args) - infer(args) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/Research/webvision2018/models/__init__.py b/PaddleCV/Research/webvision2018/models/__init__.py deleted file mode 100644 index 56e5f333d0d218cfa8401331cce3d0be21701dff..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/models/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .resnext_32x4d import ResNeXt50_32x4d, ResNeXt101_32x4d, ResNeXt152_32x4d diff --git a/PaddleCV/Research/webvision2018/models/resnext_32x4d.py b/PaddleCV/Research/webvision2018/models/resnext_32x4d.py deleted file mode 100644 index 60d7b3cd0d674319ce908215ee73daaef19756aa..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/models/resnext_32x4d.py +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import paddle -import paddle.fluid as fluid -import math -from paddle.fluid.param_attr import ParamAttr - -__all__ = ["ResNeXt", "ResNeXt50_32x4d", "ResNeXt101_32x4d", "ResNeXt152_32x4d"] - -train_parameters = { - "input_size": [3, 224, 224], - "input_mean": [0.485, 0.456, 0.406], - "input_std": [0.229, 0.224, 0.225], - "learning_strategy": { - "name": "piecewise_decay", - "batch_size": 256, - "epochs": [30, 60, 90], - "steps": [0.1, 0.01, 0.001, 0.0001] - } -} - - -class ResNeXt(): - def __init__(self, layers=50): - self.params = train_parameters - self.layers = layers - - def net(self, input, class_dim=1000): - layers = self.layers - supported_layers = [50, 101, 152] - assert layers in supported_layers, \ - "supported layers are {} but input layer is {}".format(supported_layers, layers) - - if layers == 50: - depth = [3, 4, 6, 3] - elif layers == 101: - depth = [3, 4, 23, 3] - elif layers == 152: - depth = [3, 8, 36, 3] - num_filters = [256, 512, 1024, 2048] - cardinality = 32 - - conv = self.conv_bn_layer( - input=input, - num_filters=64, - filter_size=7, - stride=2, - act='relu', - name="res_conv1") - conv = fluid.layers.pool2d( - input=conv, - pool_size=3, - pool_stride=2, - pool_padding=1, - pool_type='max') - - for block in range(len(depth)): - for i in range(depth[block]): - if layers in [101, 152] and block == 2: - if i == 0: - conv_name = "res" + str(block + 2) + "a" - else: - conv_name = "res" + str(block + 2) + "b" + str(i) - else: - conv_name = "res" + str(block + 2) + chr(97 + i) - conv = self.bottleneck_block( - input=conv, - num_filters=num_filters[block], - stride=2 if i == 0 and block != 0 else 1, - cardinality=cardinality, - name=conv_name) - - pool = fluid.layers.pool2d( - input=conv, pool_size=7, pool_type='avg', global_pooling=True) - stdv = 1.0 / math.sqrt(pool.shape[1] * 1.0) - out = fluid.layers.fc(input=pool, - size=class_dim, - act='softmax', - param_attr=fluid.param_attr.ParamAttr( - initializer=fluid.initializer.Uniform(-stdv, stdv),name='fc_weights'), - bias_attr=fluid.param_attr.ParamAttr(name='fc_offset')) - return out - - def conv_bn_layer(self, - input, - num_filters, - filter_size, - stride=1, - groups=1, - act=None, - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=(filter_size - 1) // 2, - groups=groups, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - return fluid.layers.batch_norm( - input=conv, - act=act, - name=bn_name + '.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance', ) - - def shortcut(self, input, ch_out, stride, name): - ch_in = input.shape[1] - if ch_in != ch_out or stride != 1: - return self.conv_bn_layer(input, ch_out, 1, stride, name=name) - else: - return input - - def bottleneck_block(self, input, num_filters, stride, cardinality, name): - conv0 = self.conv_bn_layer( - input=input, - num_filters=num_filters, - filter_size=1, - act='relu', - name=name + "_branch2a") - conv1 = self.conv_bn_layer( - input=conv0, - num_filters=num_filters, - filter_size=3, - stride=stride, - groups=cardinality, - act='relu', - name=name + "_branch2b") - conv2 = self.conv_bn_layer( - input=conv1, - num_filters=num_filters, - filter_size=1, - act=None, - name=name + "_branch2c") - - short = self.shortcut( - input, num_filters, stride, name=name + "_branch1") - - return fluid.layers.elementwise_add( - x=short, y=conv2, act='relu', name=name + ".add.output.5") - - -def ResNeXt50_32x4d(): - model = ResNeXt(layers=50) - return model - - -def ResNeXt101_32x4d(): - model = ResNeXt(layers=101) - return model - - -def ResNeXt152_32x4d(): - model = ResNeXt(layers=152) - return model diff --git a/PaddleCV/Research/webvision2018/reader.py b/PaddleCV/Research/webvision2018/reader.py deleted file mode 100644 index 06a11399bc67ba3bd93da5fb6cffdb19f8505840..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/reader.py +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import math -import random -import functools -import numpy as np -import paddle -import cv2 -import io - -random.seed(0) -np.random.seed(0) - -THREAD = 8 -BUF_SIZE = 128 - -img_mean = np.array([0.485, 0.456, 0.406]).reshape((3, 1, 1)) -img_std = np.array([0.229, 0.224, 0.225]).reshape((3, 1, 1)) - -def rotate_image(img): - """ rotate_image """ - (h, w) = img.shape[:2] - center = (w / 2, h / 2) - angle = np.random.randint(-10, 11) - M = cv2.getRotationMatrix2D(center, angle, 1.0) - rotated = cv2.warpAffine(img, M, (w, h)) - return rotated - -def random_crop(img, size, scale=None, ratio=None): - """ random_crop """ - scale = [0.08, 1.0] if scale is None else scale - ratio = [3. / 4., 4. / 3.] if ratio is None else ratio - - aspect_ratio = math.sqrt(np.random.uniform(*ratio)) - w = 1. * aspect_ratio - h = 1. / aspect_ratio - - bound = min((float(img.shape[1]) / img.shape[0]) / (w ** 2), - (float(img.shape[0]) / img.shape[1]) / (h ** 2)) - scale_max = min(scale[1], bound) - scale_min = min(scale[0], bound) - - target_area = img.shape[0] * img.shape[1] * np.random.uniform(scale_min, - scale_max) - target_size = math.sqrt(target_area) - w = int(target_size * w) - h = int(target_size * h) - - i = np.random.randint(0, img.size[0] - w + 1) - j = np.random.randint(0, img.size[1] - h + 1) - - img = img[i:i+h, j:j+w, :] - resized = cv2.resize(img, (size, size), - interpolation=cv2.INTER_CUBIC - ) - return resized - -def distort_color(img): - return img - -def resize_short(img, target_size): - """ resize_short """ - percent = float(target_size) / min(img.shape[0], img.shape[1]) - resized_width = int(round(img.shape[1] * percent)) - resized_height = int(round(img.shape[0] * percent)) - resized = cv2.resize(img, (resized_width, resized_height), - interpolation=cv2.INTER_CUBIC - ) - return resized - -def crop_image(img, target_size, center): - """ crop_image """ - height, width = img.shape[:2] - size = target_size - if center == True: - w_start = (width - size) / 2 - h_start = (height - size) / 2 - else: - w_start = np.random.randint(0, width - size + 1) - h_start = np.random.randint(0, height - size + 1) - w_end = w_start + size - h_end = h_start + size - img = img[h_start:h_end, w_start:w_end, :] - return img - -def process_image(sample, mode, color_jitter, rotate, - crop_size=224, mean=None, std=None): - """ process_image """ - - mean = [0.485, 0.456, 0.406] if mean is None else mean - std = [0.229, 0.224, 0.225] if std is None else std - - - img_path = sample[0] - img = cv2.imread(img_path) - img = cv2.resize(img, (crop_size, crop_size)) - - img = img[:, :, ::-1].astype('float32').transpose((2, 0, 1)) / 255 - img_mean = np.array(mean).reshape((3, 1, 1)) - img_std = np.array(std).reshape((3, 1, 1)) - img -= img_mean - img /= img_std - - return (img, ) - -def image_mapper(**kwargs): - """ image_mapper """ - return functools.partial(process_image, **kwargs) - -def _reader_creator(file_list, - mode, - shuffle=False, - color_jitter=False, - rotate=False, - data_dir=None, - crop_size=224): - def reader(): - - with open(file_list) as flist: - full_lines = [line.strip() for line in flist] - if shuffle: - np.random.shuffle(lines) - lines = full_lines - for line in lines: - img_path, label = line.strip().split() - img_path = os.path.join(data_dir, img_path) - yield [img_path] - - - image_mapper = functools.partial(process_image, - mode=mode, color_jitter=color_jitter, rotate=rotate, crop_size=crop_size) - reader = paddle.reader.xmap_readers( - image_mapper, reader, THREAD, BUF_SIZE, order=True) - return reader - -def create_img_reader(args): - def reader(): - img_path = args.img_path - yield [img_path] - return reader - -def test(settings, crop_size): - file_list = settings.img_list - data_dir = settings.img_path - return _reader_creator(file_list, 'test', shuffle=False, data_dir=data_dir, crop_size=crop_size) diff --git a/PaddleCV/Research/webvision2018/run.sh b/PaddleCV/Research/webvision2018/run.sh deleted file mode 100644 index 06b1d77925c4d1118f30115aa1d3e4461a586825..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -export CUDA_VISIBLE_DEVICES=0 -export FLAGS_fraction_of_gpu_memory_to_use=1.0 -python infer.py \ - --model ResNeXt101_32x4d \ - --class_dim 5000 \ - --pretrained ./ckpt/ResNeXt101_32x4d_Release/ \ - --img_list ./data/val_list.txt \ - --img_path ./data/val/ \ - --use_gpu True - diff --git a/PaddleCV/Research/webvision2018/utils/__init__.py b/PaddleCV/Research/webvision2018/utils/__init__.py deleted file mode 100644 index 3900e439e072a35d3df7a6f6e486c0402c0f4e4f..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/utils/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .utility import add_arguments, print_arguments -from .class_accuracy import accuracy diff --git a/PaddleCV/Research/webvision2018/utils/class_accuracy.py b/PaddleCV/Research/webvision2018/utils/class_accuracy.py deleted file mode 100644 index 73ede801c00f0fa952ae017cb0be7f239f8828f6..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/utils/class_accuracy.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import os -import sys -import numpy as np - -def accuracy(targets, preds): - """Get the class-level top1 and top5 of model. - - Usage: - - .. code-blcok::python - - top1, top5 = accuracy(targets, preds) - - :params args: evaluate the prediction of model. - :type args: numpy.array - - """ - top1 = np.zeros((5000,), dtype=np.float32) - top5 = np.zeros((5000,), dtype=np.float32) - count = np.zeros((5000,), dtype=np.float32) - - for index in range(targets.shape[0]): - target = targets[index] - if target == preds[index,0]: - top1[target] += 1 - top5[target] += 1 - elif np.sum(target == preds[index,:5]): - top5[target] += 1 - - count[target] += 1 - return (top1/(count+1e-12)).mean(), (top5/(count+1e-12)).mean() diff --git a/PaddleCV/Research/webvision2018/utils/utility.py b/PaddleCV/Research/webvision2018/utils/utility.py deleted file mode 100644 index f622da74db6cceea87f69990d36497a8c17b5ade..0000000000000000000000000000000000000000 --- a/PaddleCV/Research/webvision2018/utils/utility.py +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import distutils.util -import numpy as np -import six - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("------------- Configuration Arguments -------------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%25s : %s" % (arg, value)) - print("----------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) diff --git a/PaddleCV/caffe2fluid/.gitignore b/PaddleCV/caffe2fluid/.gitignore deleted file mode 100644 index 0289f964a81f92cde27b2ef63198ae445cdcffad..0000000000000000000000000000000000000000 --- a/PaddleCV/caffe2fluid/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -proto/caffepb.py -proto/caffe_pb2.py diff --git a/PaddleCV/caffe2fluid/README.md b/PaddleCV/caffe2fluid/README.md deleted file mode 100644 index 78702204ba32ffa63bcab4aef999267a5d7c1078..0000000000000000000000000000000000000000 --- a/PaddleCV/caffe2fluid/README.md +++ /dev/null @@ -1,6 +0,0 @@ - -Hi! - -This directory has been deprecated. - -Please visit the project at [X2Paddle](https://github.com/PaddlePaddle/X2Paddle). diff --git a/PaddleCV/deeplabv3+/.gitignore b/PaddleCV/deeplabv3+/.gitignore deleted file mode 100644 index cfe470860395ca802c6d95dc829385cd0d112ad4..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.tgz -deeplabv3plus_gn_init* -deeplabv3plus_xception65_initialize* -*.log -*.sh -output* diff --git a/PaddleCV/deeplabv3+/.run_ce.sh b/PaddleCV/deeplabv3+/.run_ce.sh deleted file mode 100755 index c4e6055e1d9d3ad9a9b039d5973c100e76a8aadf..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/.run_ce.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -export MKL_NUM_THREADS=1 -export OMP_NUM_THREADS=1 - -DATASET_PATH=${HOME}/.cache/paddle/dataset/cityscape/ - -cudaid=${deeplabv3plus:=0} # use 0-th card as default -export CUDA_VISIBLE_DEVICES=$cudaid - -FLAGS_benchmark=true python train.py \ ---batch_size=2 \ ---train_crop_size=769 \ ---total_step=50 \ ---save_weights_path=output1 \ ---dataset_path=$DATASET_PATH \ ---enable_ce | python _ce.py - -cudaid=${deeplabv3plus_m:=0,1,2,3} # use 0,1,2,3 card as default -export CUDA_VISIBLE_DEVICES=$cudaid - -FLAGS_benchmark=true python train.py \ ---batch_size=8 \ ---train_crop_size=769 \ ---total_step=50 \ ---save_weights_path=output4 \ ---dataset_path=$DATASET_PATH \ ---enable_ce | python _ce.py diff --git a/PaddleCV/deeplabv3+/README.md b/PaddleCV/deeplabv3+/README.md deleted file mode 100644 index 33608c9561b246c90a24ba45a0c3f5d5ecae6ef8..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/README.md +++ /dev/null @@ -1,121 +0,0 @@ -**该项目已被迁移至[PaddleSeg](https://github.com/PaddlePaddle/PaddleSeg), 这个项目包含了更多的分割模型。** - -DeepLab运行本目录下的程序示例需要使用PaddlePaddle Fluid v1.3.0版本或以上。如果您的PaddlePaddle安装版本低于此要求,请按照安装文档中的说明更新PaddlePaddle安装版本,如果使用GPU,该程序需要使用cuDNN v7版本。 - - -## 代码结构 -``` -├── models.py # 网络结构定义脚本 -├── train.py # 训练任务脚本 -├── eval.py # 评估脚本 -└── reader.py # 定义通用的函数以及数据预处理脚本 -``` - -## 简介 - -DeepLabv3+ 是DeepLab语义分割系列网络的最新作,其前作有 DeepLabv1,DeepLabv2, DeepLabv3, -在最新作中,DeepLab的作者通过encoder-decoder进行多尺度信息的融合,同时保留了原来的空洞卷积和ASSP层, -其骨干网络使用了Xception模型,提高了语义分割的健壮性和运行速率,在 PASCAL VOC 2012 dataset取得新的state-of-art performance,89.0mIOU。 - -![](./imgs/model.png) - -Python Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/124366) - -## 数据准备 - - - -本文采用Cityscape数据集,请前往[Cityscape官网](https://www.cityscapes-dataset.com)注册下载。 -下载以后的数据目录结构如下 -``` -data/cityscape/ -|-- gtFine -| |-- test -| |-- train -| `-- val -|-- leftImg8bit - |-- test - |-- train - `-- val -``` - -# 预训练模型准备 - -我们为了节约更多的显存,在这里我们使用Group Norm作为我们的归一化手段。 -如果需要从头开始训练模型,用户需要下载我们的初始化模型 -``` -wget https://paddle-deeplab.bj.bcebos.com/deeplabv3plus_gn_init.tgz -tar -xf deeplabv3plus_gn_init.tgz && rm deeplabv3plus_gn_init.tgz -``` -如果需要最终训练模型进行fine tune或者直接用于预测,请下载我们的最终模型 -``` -wget https://paddle-deeplab.bj.bcebos.com/deeplabv3plus_gn.tgz -tar -xf deeplabv3plus_gn.tgz && rm deeplabv3plus_gn.tgz -``` - - -## 模型训练与预测 - -### 训练 -执行以下命令进行训练,同时指定weights的保存路径,初始化路径,以及数据存放位置: -``` -python ./train.py \ - --batch_size=1 \ - --train_crop_size=769 \ - --total_step=50 \ - --norm_type=gn \ - --init_weights_path=$INIT_WEIGHTS_PATH \ - --save_weights_path=$SAVE_WEIGHTS_PATH \ - --dataset_path=$DATASET_PATH -``` -注意:如果在windows系统上进行训练,预测请不要将use_multiprocessing设置为True - -使用以下命令获得更多使用说明: -``` -python train.py --help -``` -以上命令用于测试训练过程是否正常,仅仅迭代了50次并且使用了1的batch size,如果需要复现 -原论文的实验,请使用以下设置: -``` -CUDA_VISIBLE_DEVICES=0 \ -python ./train.py \ - --batch_size=4 \ - --parallel=True \ - --norm_type=gn \ - --train_crop_size=769 \ - --total_step=500000 \ - --base_lr=0.001 \ - --init_weights_path=deeplabv3plus_gn_init \ - --save_weights_path=output \ - --dataset_path=$DATASET_PATH -``` -如果您的显存不足,可以尝试减小`batch_size`,同时等比例放大`total_step`, 缩小`base_lr`, 保证相乘的值不变,这得益于Group Norm的特性,改变 `batch_size` 并不会显著影响结果,而且能够节约更多显存, 比如您可以设置`--batch_size=2 --total_step=1000000 --base_lr=0.0005`。 - -### 测试 -执行以下命令在`Cityscape`测试数据集上进行测试: -``` -python ./eval.py \ - --init_weights_path=deeplabv3plus_gn \ - --norm_type=gn \ - --dataset_path=$DATASET_PATH -``` -需要通过选项`--init_weights_path`指定模型文件。测试脚本的输出的评估指标为mean IoU。 - - -## 实验结果 -训练完成以后,使用`eval.py`在验证集上进行测试,得到以下结果: -``` -load from: ../models/deeplabv3plus_gn -total number 500 -step: 500, mIoU: 0.7881 -``` - -## 其他信息 - -|数据集 | norm type | pretrained model | trained model | mean IoU -|---|---|---|---|---| -|CityScape | group norm | [deeplabv3plus_gn_init.tgz](https://paddle-deeplab.bj.bcebos.com/deeplabv3plus_gn_init.tgz) | [deeplabv3plus_gn.tgz](https://paddle-deeplab.bj.bcebos.com/deeplabv3plus_gn.tgz) | 0.7881 | - -## 参考 - -- [Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation](https://arxiv.org/abs/1802.02611) diff --git a/PaddleCV/deeplabv3+/__init__.py b/PaddleCV/deeplabv3+/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/deeplabv3+/_ce.py b/PaddleCV/deeplabv3+/_ce.py deleted file mode 100644 index b0127d6445213b9d3934220fa36e9eb44d3e04b4..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/_ce.py +++ /dev/null @@ -1,60 +0,0 @@ -# this file is only used for continuous evaluation test! - -import os -import sys -sys.path.append(os.environ['ceroot']) -from kpi import CostKpi -from kpi import DurationKpi - -each_pass_duration_card1_kpi = DurationKpi('each_pass_duration_card1', 0.1, 0, actived=True) -train_loss_card1_kpi = CostKpi('train_loss_card1', 0.05, 0) -each_pass_duration_card4_kpi = DurationKpi('each_pass_duration_card4', 0.1, 0, actived=True) -train_loss_card4_kpi = CostKpi('train_loss_card4', 0.05, 0) - -tracking_kpis = [ - each_pass_duration_card1_kpi, - train_loss_card1_kpi, - each_pass_duration_card4_kpi, - train_loss_card4_kpi, - ] - - -def parse_log(log): - ''' - This method should be implemented by model developers. - - The suggestion: - - each line in the log should be key, value, for example: - - " - train_cost\t1.0 - test_cost\t1.0 - train_cost\t1.0 - train_cost\t1.0 - train_acc\t1.2 - " - ''' - for line in log.split('\n'): - fs = line.strip().split('\t') - print(fs) - if len(fs) == 3 and fs[0] == 'kpis': - kpi_name = fs[1] - kpi_value = float(fs[2]) - yield kpi_name, kpi_value - - -def log_to_ce(log): - kpi_tracker = {} - for kpi in tracking_kpis: - kpi_tracker[kpi.name] = kpi - - for (kpi_name, kpi_value) in parse_log(log): - print(kpi_name, kpi_value) - kpi_tracker[kpi_name].add_record(kpi_value) - kpi_tracker[kpi_name].persist() - - -if __name__ == '__main__': - log = sys.stdin.read() - log_to_ce(log) diff --git a/PaddleCV/deeplabv3+/data_utils.py b/PaddleCV/deeplabv3+/data_utils.py deleted file mode 100644 index c43e040af8d46f0fc57ee9862da4ee749768e7c6..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/data_utils.py +++ /dev/null @@ -1,151 +0,0 @@ -""" -This code is based on https://github.com/fchollet/keras/blob/master/keras/utils/data_utils.py -""" - -import time -import numpy as np -import threading -import multiprocessing -try: - import queue -except ImportError: - import Queue as queue - - -class GeneratorEnqueuer(object): - """ - Builds a queue out of a data generator. - - Args: - generator: a generator function which endlessly yields data - use_multiprocessing (bool): use multiprocessing if True, - otherwise use threading. - wait_time (float): time to sleep in-between calls to `put()`. - random_seed (int): Initial seed for workers, - will be incremented by one for each workers. - """ - - def __init__(self, - generator, - use_multiprocessing=False, - wait_time=0.05, - random_seed=None): - self.wait_time = wait_time - self._generator = generator - self._use_multiprocessing = use_multiprocessing - self._threads = [] - self._stop_event = None - self.queue = None - self._manager = None - self.seed = random_seed - - def start(self, workers=1, max_queue_size=10): - """ - Start worker threads which add data from the generator into the queue. - - Args: - workers (int): number of worker threads - max_queue_size (int): queue size - (when full, threads could block on `put()`) - """ - - def data_generator_task(): - """ - Data generator task. - """ - - def task(): - if (self.queue is not None and - self.queue.qsize() < max_queue_size): - generator_output = next(self._generator) - self.queue.put((generator_output)) - else: - time.sleep(self.wait_time) - - if not self._use_multiprocessing: - while not self._stop_event.is_set(): - with self.genlock: - try: - task() - except Exception: - self._stop_event.set() - break - else: - while not self._stop_event.is_set(): - try: - task() - except Exception: - self._stop_event.set() - break - - try: - if self._use_multiprocessing: - self._manager = multiprocessing.Manager() - self.queue = self._manager.Queue(maxsize=max_queue_size) - self._stop_event = multiprocessing.Event() - else: - self.genlock = threading.Lock() - self.queue = queue.Queue() - self._stop_event = threading.Event() - for _ in range(workers): - if self._use_multiprocessing: - # Reset random seed else all children processes - # share the same seed - np.random.seed(self.seed) - thread = multiprocessing.Process(target=data_generator_task) - thread.daemon = True - if self.seed is not None: - self.seed += 1 - else: - thread = threading.Thread(target=data_generator_task) - self._threads.append(thread) - thread.start() - except: - self.stop() - raise - - def is_running(self): - """ - Returns: - bool: Whether the worker theads are running. - """ - return self._stop_event is not None and not self._stop_event.is_set() - - def stop(self, timeout=None): - """ - Stops running threads and wait for them to exit, if necessary. - Should be called by the same thread which called `start()`. - - Args: - timeout(int|None): maximum time to wait on `thread.join()`. - """ - if self.is_running(): - self._stop_event.set() - for thread in self._threads: - if self._use_multiprocessing: - if thread.is_alive(): - thread.join(timeout) - else: - thread.join(timeout) - if self._manager: - self._manager.shutdown() - - self._threads = [] - self._stop_event = None - self.queue = None - - def get(self): - """ - Creates a generator to extract data from the queue. - Skip the data if it is `None`. - - # Yields - tuple of data in the queue. - """ - while self.is_running(): - if not self.queue.empty(): - inputs = self.queue.get() - if inputs is not None: - yield inputs - else: - time.sleep(self.wait_time) diff --git a/PaddleCV/deeplabv3+/eval.py b/PaddleCV/deeplabv3+/eval.py deleted file mode 100644 index 1ac34511c6d19ffafb07b2b78a43ddf3d39ab796..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/eval.py +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -if 'FLAGS_fraction_of_gpu_memory_to_use' not in os.environ: - os.environ['FLAGS_fraction_of_gpu_memory_to_use'] = '0.98' -os.environ['FLAGS_enable_parallel_graph'] = '1' - -import paddle -import paddle.fluid as fluid -import numpy as np -import argparse -from reader import CityscapeDataset -import reader -import models -import sys -import utility - -parser = argparse.ArgumentParser() -add_arg = lambda *args: utility.add_arguments(*args, argparser=parser) - -# yapf: disable -add_arg('total_step', int, -1, "Number of the step to be evaluated, -1 for full evaluation.") -add_arg('init_weights_path', str, None, "Path of the weights to evaluate.") -add_arg('dataset_path', str, None, "Cityscape dataset path.") -add_arg('use_gpu', bool, True, "Whether use GPU or CPU.") -add_arg('num_classes', int, 19, "Number of classes.") -add_arg('use_py_reader', bool, True, "Use py_reader.") -add_arg('use_multiprocessing', bool, False, "Use multiprocessing.") -add_arg('norm_type', str, 'bn', "Normalization type, should be 'bn' or 'gn'.") -#yapf: enable - - -def mean_iou(pred, label): - label = fluid.layers.elementwise_min( - label, fluid.layers.assign(np.array( - [num_classes], dtype=np.int32))) - label_ignore = (label == num_classes).astype('int32') - label_nignore = (label != num_classes).astype('int32') - - pred = pred * label_nignore + label_ignore * num_classes - - miou, wrong, correct = fluid.layers.mean_iou(pred, label, num_classes + 1) - return miou, wrong, correct - - -def load_model(): - if os.path.isdir(args.init_weights_path): - fluid.io.load_params( - exe, dirname=args.init_weights_path, main_program=tp) - else: - fluid.io.load_params( - exe, dirname="", filename=args.init_weights_path, main_program=tp) - - -CityscapeDataset = reader.CityscapeDataset - -args = parser.parse_args() -utility.check_gpu(args.use_gpu) - -models.clean() -models.is_train = False -models.default_norm_type = args.norm_type -deeplabv3p = models.deeplabv3p - -image_shape = [1025, 2049] -eval_shape = [1024, 2048] - -sp = fluid.Program() -tp = fluid.Program() -batch_size = 1 -reader.default_config['crop_size'] = -1 -reader.default_config['shuffle'] = False -num_classes = args.num_classes - -with fluid.program_guard(tp, sp): - if args.use_py_reader: - py_reader = fluid.layers.py_reader(capacity=64, - shapes=[[1, 3, 0, 0], [1] + eval_shape], - dtypes=['float32', 'int32']) - img, label = fluid.layers.read_file(py_reader) - else: - img = fluid.layers.data(name='img', shape=[3, 0, 0], dtype='float32') - label = fluid.layers.data(name='label', shape=eval_shape, dtype='int32') - - img = fluid.layers.resize_bilinear(img, image_shape) - logit = deeplabv3p(img) - logit = fluid.layers.resize_bilinear(logit, eval_shape) - pred = fluid.layers.argmax(logit, axis=1).astype('int32') - miou, out_wrong, out_correct = mean_iou(pred, label) - -tp = tp.clone(True) - -place = fluid.CPUPlace() -if args.use_gpu: - place = fluid.CUDAPlace(0) -exe = fluid.Executor(place) -exe.run(sp) - -if args.init_weights_path: - print("load from:", args.init_weights_path) - load_model() - -dataset = CityscapeDataset(args.dataset_path, 'val') -if args.total_step == -1: - total_step = len(dataset.label_files) -else: - total_step = args.total_step - -batches = dataset.get_batch_generator(batch_size, total_step, use_multiprocessing=args.use_multiprocessing) -if args.use_py_reader: - py_reader.decorate_tensor_provider(lambda :[ (yield b[0],b[1]) for b in batches]) - py_reader.start() - -sum_iou = 0 -all_correct = np.array([0], dtype=np.int64) -all_wrong = np.array([0], dtype=np.int64) - -for i in range(total_step): - if not args.use_py_reader: - _, imgs, labels, names = next(batches) - result = exe.run(tp, - feed={'img': imgs, - 'label': labels}, - fetch_list=[pred, miou, out_wrong, out_correct]) - else: - result = exe.run(tp, - fetch_list=[pred, miou, out_wrong, out_correct]) - - wrong = result[2][:-1] + all_wrong - right = result[3][:-1] + all_correct - all_wrong = wrong.copy() - all_correct = right.copy() - mp = (wrong + right) != 0 - miou2 = np.mean((right[mp] * 1.0 / (right[mp] + wrong[mp]))) - print('step: %s, mIoU: %s' % (i + 1, miou2)) - -print('eval done!') diff --git a/PaddleCV/deeplabv3+/imgs/model.png b/PaddleCV/deeplabv3+/imgs/model.png deleted file mode 100644 index c0f12db6474e28f68ea45aa498026ef5261bcbe9..0000000000000000000000000000000000000000 Binary files a/PaddleCV/deeplabv3+/imgs/model.png and /dev/null differ diff --git a/PaddleCV/deeplabv3+/models.py b/PaddleCV/deeplabv3+/models.py deleted file mode 100644 index 2be61e300c0da1dd1d855653297a02fb2f922c75..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/models.py +++ /dev/null @@ -1,345 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import paddle -import paddle.fluid as fluid - -import contextlib -import os -name_scope = "" - -decode_channel = 48 -encode_channel = 256 -label_number = 19 - -bn_momentum = 0.99 -dropout_keep_prop = 0.9 -is_train = True - -op_results = {} - -default_epsilon = 1e-3 -default_norm_type = 'bn' -default_group_number = 32 -depthwise_use_cudnn = False - -bn_regularizer = fluid.regularizer.L2DecayRegularizer(regularization_coeff=0.0) -depthwise_regularizer = fluid.regularizer.L2DecayRegularizer( - regularization_coeff=0.0) - - -@contextlib.contextmanager -def scope(name): - global name_scope - bk = name_scope - name_scope = name_scope + name + os.sep - yield - name_scope = bk - - -def check(data, number): - if type(data) == int: - return [data] * number - assert len(data) == number - return data - - -def clean(): - global op_results - op_results = {} - - -def append_op_result(result, name): - global op_results - op_index = len(op_results) - name = name_scope + name + str(op_index) - op_results[name] = result - return result - - -def conv(*args, **kargs): - if "xception" in name_scope: - init_std = 0.09 - elif "logit" in name_scope: - init_std = 0.01 - elif name_scope.endswith('depthwise' + os.sep): - init_std = 0.33 - else: - init_std = 0.06 - if name_scope.endswith('depthwise' + os.sep): - regularizer = depthwise_regularizer - else: - regularizer = None - - kargs['param_attr'] = fluid.ParamAttr( - name=name_scope + 'weights', - regularizer=regularizer, - initializer=fluid.initializer.TruncatedNormal( - loc=0.0, scale=init_std)) - if 'bias_attr' in kargs and kargs['bias_attr']: - kargs['bias_attr'] = fluid.ParamAttr( - name=name_scope + 'biases', - regularizer=regularizer, - initializer=fluid.initializer.ConstantInitializer(value=0.0)) - else: - kargs['bias_attr'] = False - kargs['name'] = name_scope + 'conv' - return append_op_result(fluid.layers.conv2d(*args, **kargs), 'conv') - - -def group_norm(input, G, eps=1e-5, param_attr=None, bias_attr=None): - N, C, H, W = input.shape - if C % G != 0: - # print "group can not divide channle:", C, G - for d in range(10): - for t in [d, -d]: - if G + t <= 0: continue - if C % (G + t) == 0: - G = G + t - break - if C % G == 0: - # print "use group size:", G - break - assert C % G == 0 - x = fluid.layers.group_norm( - input, - groups=G, - param_attr=param_attr, - bias_attr=bias_attr, - name=name_scope + 'group_norm') - return x - - -def bn(*args, **kargs): - if default_norm_type == 'bn': - with scope('BatchNorm'): - return append_op_result( - fluid.layers.batch_norm( - *args, - epsilon=default_epsilon, - momentum=bn_momentum, - param_attr=fluid.ParamAttr( - name=name_scope + 'gamma', regularizer=bn_regularizer), - bias_attr=fluid.ParamAttr( - name=name_scope + 'beta', regularizer=bn_regularizer), - moving_mean_name=name_scope + 'moving_mean', - moving_variance_name=name_scope + 'moving_variance', - **kargs), - 'bn') - elif default_norm_type == 'gn': - with scope('GroupNorm'): - return append_op_result( - group_norm( - args[0], - default_group_number, - eps=default_epsilon, - param_attr=fluid.ParamAttr( - name=name_scope + 'gamma', regularizer=bn_regularizer), - bias_attr=fluid.ParamAttr( - name=name_scope + 'beta', regularizer=bn_regularizer)), - 'gn') - else: - raise "Unsupport norm type:" + default_norm_type - - -def bn_relu(data): - return append_op_result(fluid.layers.relu(bn(data)), 'relu') - - -def relu(data): - return append_op_result( - fluid.layers.relu( - data, name=name_scope + 'relu'), 'relu') - - -def seperate_conv(input, channel, stride, filter, dilation=1, act=None): - with scope('depthwise'): - input = conv( - input, - input.shape[1], - filter, - stride, - groups=input.shape[1], - padding=(filter // 2) * dilation, - dilation=dilation, - use_cudnn=depthwise_use_cudnn) - input = bn(input) - if act: input = act(input) - with scope('pointwise'): - input = conv(input, channel, 1, 1, groups=1, padding=0) - input = bn(input) - if act: input = act(input) - return input - - -def xception_block(input, - channels, - strides=1, - filters=3, - dilation=1, - skip_conv=True, - has_skip=True, - activation_fn_in_separable_conv=False): - repeat_number = 3 - channels = check(channels, repeat_number) - filters = check(filters, repeat_number) - strides = check(strides, repeat_number) - data = input - results = [] - for i in range(repeat_number): - with scope('separable_conv' + str(i + 1)): - if not activation_fn_in_separable_conv: - data = relu(data) - data = seperate_conv( - data, - channels[i], - strides[i], - filters[i], - dilation=dilation) - else: - data = seperate_conv( - data, - channels[i], - strides[i], - filters[i], - dilation=dilation, - act=relu) - results.append(data) - if not has_skip: - return append_op_result(data, 'xception_block'), results - if skip_conv: - with scope('shortcut'): - skip = bn( - conv( - input, channels[-1], 1, strides[-1], groups=1, padding=0)) - else: - skip = input - return append_op_result(data + skip, 'xception_block'), results - - -def entry_flow(data): - with scope("entry_flow"): - with scope("conv1"): - data = conv(data, 32, 3, stride=2, padding=1) - data = bn_relu(data) - with scope("conv2"): - data = conv(data, 64, 3, stride=1, padding=1) - data = bn_relu(data) - with scope("block1"): - data, _ = xception_block(data, 128, [1, 1, 2]) - with scope("block2"): - data, results = xception_block(data, 256, [1, 1, 2]) - with scope("block3"): - data, _ = xception_block(data, 728, [1, 1, 2]) - return data, results[1] - - -def middle_flow(data): - with scope("middle_flow"): - for i in range(16): - with scope("block" + str(i + 1)): - data, _ = xception_block(data, 728, [1, 1, 1], skip_conv=False) - return data - - -def exit_flow(data): - with scope("exit_flow"): - with scope('block1'): - data, _ = xception_block(data, [728, 1024, 1024], [1, 1, 1]) - with scope('block2'): - data, _ = xception_block( - data, [1536, 1536, 2048], [1, 1, 1], - dilation=2, - has_skip=False, - activation_fn_in_separable_conv=True) - return data - - -def dropout(x, keep_rate): - if is_train: - return fluid.layers.dropout(x, 1 - keep_rate) / keep_rate - else: - return x - - -def encoder(input): - with scope('encoder'): - channel = 256 - with scope("image_pool"): - image_avg = fluid.layers.reduce_mean(input, [2, 3], keep_dim=True) - append_op_result(image_avg, 'reduce_mean') - image_avg = bn_relu( - conv( - image_avg, channel, 1, 1, groups=1, padding=0)) - image_avg = fluid.layers.resize_bilinear(image_avg, input.shape[2:]) - - with scope("aspp0"): - aspp0 = bn_relu(conv(input, channel, 1, 1, groups=1, padding=0)) - with scope("aspp1"): - aspp1 = seperate_conv(input, channel, 1, 3, dilation=6, act=relu) - with scope("aspp2"): - aspp2 = seperate_conv(input, channel, 1, 3, dilation=12, act=relu) - with scope("aspp3"): - aspp3 = seperate_conv(input, channel, 1, 3, dilation=18, act=relu) - with scope("concat"): - data = append_op_result( - fluid.layers.concat( - [image_avg, aspp0, aspp1, aspp2, aspp3], axis=1), - 'concat') - data = bn_relu(conv(data, channel, 1, 1, groups=1, padding=0)) - data = dropout(data, dropout_keep_prop) - return data - - -def decoder(encode_data, decode_shortcut): - with scope('decoder'): - with scope('concat'): - decode_shortcut = bn_relu( - conv( - decode_shortcut, decode_channel, 1, 1, groups=1, padding=0)) - encode_data = fluid.layers.resize_bilinear( - encode_data, decode_shortcut.shape[2:]) - encode_data = fluid.layers.concat( - [encode_data, decode_shortcut], axis=1) - append_op_result(encode_data, 'concat') - with scope("separable_conv1"): - encode_data = seperate_conv( - encode_data, encode_channel, 1, 3, dilation=1, act=relu) - with scope("separable_conv2"): - encode_data = seperate_conv( - encode_data, encode_channel, 1, 3, dilation=1, act=relu) - return encode_data - - -def deeplabv3p(img): - global default_epsilon - append_op_result(img, 'img') - with scope('xception_65'): - default_epsilon = 1e-3 - # Entry flow - data, decode_shortcut = entry_flow(img) - # Middle flow - data = middle_flow(data) - # Exit flow - data = exit_flow(data) - default_epsilon = 1e-5 - encode_data = encoder(data) - encode_data = decoder(encode_data, decode_shortcut) - with scope('logit'): - logit = conv( - encode_data, label_number, 1, stride=1, padding=0, bias_attr=True) - logit = fluid.layers.resize_bilinear(logit, img.shape[2:]) - return logit diff --git a/PaddleCV/deeplabv3+/reader.py b/PaddleCV/deeplabv3+/reader.py deleted file mode 100644 index 2ebc7e9084ad481de58bfdc790a56006b7e9c62e..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/reader.py +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import cv2 -import numpy as np -import os -import six -import time -from data_utils import GeneratorEnqueuer - -default_config = { - "shuffle": True, - "min_resize": 0.5, - "max_resize": 4, - "crop_size": 769, -} - -# used for ce -if 'ce_mode' in os.environ: - np.random.seed(0) - - -def slice_with_pad(a, s, value=0): - pads = [] - slices = [] - for i in range(len(a.shape)): - if i >= len(s): - pads.append([0, 0]) - slices.append([0, a.shape[i]]) - else: - l, r = s[i] - if l < 0: - pl = -l - l = 0 - else: - pl = 0 - if r > a.shape[i]: - pr = r - a.shape[i] - r = a.shape[i] - else: - pr = 0 - pads.append([pl, pr]) - slices.append([l, r]) - slices = list(map(lambda x: slice(x[0], x[1], 1), slices)) - a = a[tuple(slices)] - a = np.pad(a, pad_width=pads, mode='constant', constant_values=value) - return a - - -class CityscapeDataset: - def __init__(self, dataset_dir, subset='train', config=default_config): - with open(os.path.join(dataset_dir, subset + '.list'), 'r') as fr: - file_list = fr.readlines() - all_images = [] - all_labels = [] - for i in range(len(file_list)): - img_gt = file_list[i].strip().split(' ') - all_images.append(os.path.join(dataset_dir, img_gt[0])) - all_labels.append(os.path.join(dataset_dir, img_gt[1])) - - self.label_files = all_labels - self.img_files = all_images - self.index = 0 - self.subset = subset - self.dataset_dir = dataset_dir - self.config = config - self.reset() - - def reset(self, shuffle=False): - self.index = 0 - if self.config["shuffle"]: - np.random.shuffle(self.label_files) - - def next_img(self): - self.index += 1 - if self.index >= len(self.label_files): - self.reset() - - def get_img(self): - shape = self.config["crop_size"] - while True: - ln = self.label_files[self.index] - img_name = self.img_files[self.index] - label = cv2.imread(ln) - img = cv2.imread(img_name) - if img is None: - print("load img failed:", img_name) - self.next_img() - else: - break - if shape == -1: - return img, label, ln - - if np.random.rand() > 0.5: - range_l = 1 - range_r = self.config['max_resize'] - else: - range_l = self.config['min_resize'] - range_r = 1 - - if np.random.rand() > 0.5: - assert len(img.shape) == 3 and len( - label.shape) == 3, "{} {}".format(img.shape, label.shape) - img = img[:, :, ::-1] - label = label[:, :, ::-1] - - random_scale = np.random.rand(1) * (range_r - range_l) + range_l - crop_size = int(shape / random_scale) - bb = crop_size // 2 - - def _randint(low, high): - return int(np.random.rand(1) * (high - low) + low) - - offset_x = np.random.randint(bb, max(bb + 1, img.shape[0] - - bb)) - crop_size // 2 - offset_y = np.random.randint(bb, max(bb + 1, img.shape[1] - - bb)) - crop_size // 2 - img_crop = slice_with_pad(img, [[offset_x, offset_x + crop_size], - [offset_y, offset_y + crop_size]], 128) - img = cv2.resize(img_crop, (shape, shape)) - label_crop = slice_with_pad(label, [[offset_x, offset_x + crop_size], - [offset_y, offset_y + crop_size]], - 255) - label = cv2.resize( - label_crop, (shape, shape), interpolation=cv2.INTER_NEAREST) - return img, label, ln + str( - (offset_x, offset_y, crop_size, random_scale)) - - def get_batch(self, batch_size=1): - imgs = [] - labels = [] - names = [] - while len(imgs) < batch_size: - img, label, ln = self.get_img() - imgs.append(img) - labels.append(label) - names.append(ln) - self.next_img() - return np.array(imgs), np.array(labels), names - - def get_batch_generator(self, - batch_size, - total_step, - num_workers=8, - max_queue=32, - use_multiprocessing=True): - def do_get_batch(): - iter_id = 0 - while True: - imgs, labels, names = self.get_batch(batch_size) - labels = labels.astype(np.int32)[:, :, :, 0] - imgs = imgs[:, :, :, ::-1].transpose( - 0, 3, 1, 2).astype(np.float32) / (255.0 / 2) - 1 - yield imgs, labels, names - if not use_multiprocessing: - iter_id += 1 - if iter_id >= total_step: - break - - batches = do_get_batch() - if not use_multiprocessing: - try: - from prefetch_generator import BackgroundGenerator - batches = BackgroundGenerator(batches, 100) - except: - print( - "You can install 'prefetch_generator' for acceleration of data reading." - ) - return batches - - def reader(): - try: - enqueuer = GeneratorEnqueuer( - batches, use_multiprocessing=use_multiprocessing) - enqueuer.start(max_queue_size=max_queue, workers=num_workers) - generator_out = None - for i in range(total_step): - while enqueuer.is_running(): - if not enqueuer.queue.empty(): - generator_out = enqueuer.queue.get() - break - else: - time.sleep(0.02) - yield generator_out - generator_out = None - enqueuer.stop() - finally: - if enqueuer is not None: - enqueuer.stop() - - data_gen = reader() - return data_gen diff --git a/PaddleCV/deeplabv3+/train.py b/PaddleCV/deeplabv3+/train.py deleted file mode 100755 index 06860048d2d543836c1fd3d1941e4207eb4e4dde..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/train.py +++ /dev/null @@ -1,273 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os - - -def set_paddle_flags(flags): - for key, value in flags.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be -# set before `import paddle`. Otherwise, it would -# not take any effect. -set_paddle_flags({ - 'FLAGS_eager_delete_tensor_gb': 0, # enable GC - # You can omit the following settings, because the default - # value of FLAGS_memory_fraction_of_eager_deletion is 1, - # and default value of FLAGS_fast_eager_deletion_mode is 1 - 'FLAGS_memory_fraction_of_eager_deletion': 1, - 'FLAGS_fast_eager_deletion_mode': 1, - # Setting the default used gpu memory - 'FLAGS_fraction_of_gpu_memory_to_use': 0.98 -}) - -import paddle -import paddle.fluid as fluid -from paddle.fluid import profiler -import numpy as np -import argparse -from reader import CityscapeDataset -import reader -import models -import time -import contextlib -import paddle.fluid.profiler as profiler -import utility - -parser = argparse.ArgumentParser() -add_arg = lambda *args: utility.add_arguments(*args, argparser=parser) - -# yapf: disable -add_arg('batch_size', int, 4, "The number of images in each batch during training.") -add_arg('train_crop_size', int, 769, "Image crop size during training.") -add_arg('base_lr', float, 0.001, "The base learning rate for model training.") -add_arg('total_step', int, 500000, "Number of the training step.") -add_arg('init_weights_path', str, None, "Path of the initial weights in paddlepaddle format.") -add_arg('save_weights_path', str, None, "Path of the saved weights during training.") -add_arg('dataset_path', str, None, "Cityscape dataset path.") -add_arg('parallel', bool, True, "using ParallelExecutor.") -add_arg('use_gpu', bool, True, "Whether use GPU or CPU.") -add_arg('num_classes', int, 19, "Number of classes.") -add_arg('load_logit_layer', bool, True, "Load last logit fc layer or not. If you are training with different number of classes, you should set to False.") -add_arg('memory_optimize', bool, True, "Using memory optimizer.") -add_arg('norm_type', str, 'bn', "Normalization type, should be 'bn' or 'gn'.") -add_arg('profile', bool, False, "Enable profiler.") -add_arg('use_py_reader', bool, True, "Use py reader.") -add_arg('use_multiprocessing', bool, False, "Use multiprocessing.") -add_arg("num_workers", int, 8, "The number of python processes used to read and preprocess data.") -# NOTE: args for profiler, used for benchmark -add_arg("profiler_path", str, '/tmp/profile_file2', "the profiler output file path. (used for benchmark)") -parser.add_argument( - '--enable_ce', - action='store_true', - help='If set, run the task with continuous evaluation logs. Users can ignore this agument.') -#yapf: enable - -@contextlib.contextmanager -def profile_context(profile=True): - if profile: - with profiler.profiler('All', 'total', args.profiler_path): - yield - else: - yield - -def load_model(): - if os.path.isdir(args.init_weights_path): - load_vars = [ - x for x in tp.list_vars() - if isinstance(x, fluid.framework.Parameter) and x.name.find('logit') == - -1 - ] - if args.load_logit_layer: - fluid.io.load_params( - exe, dirname=args.init_weights_path, main_program=tp) - else: - fluid.io.load_vars(exe, dirname=args.init_weights_path, vars=load_vars) - else: - fluid.io.load_params( - exe, - dirname="", - filename=args.init_weights_path, - main_program=tp) - - - -def save_model(): - assert not os.path.isfile(args.save_weights_path) - fluid.io.save_params( - exe, dirname=args.save_weights_path, main_program=tp) - - -def loss(logit, label): - label_nignore = fluid.layers.less_than( - label.astype('float32'), - fluid.layers.assign(np.array([num_classes], 'float32')), - force_cpu=False).astype('float32') - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - logit = fluid.layers.reshape(logit, [-1, num_classes]) - label = fluid.layers.reshape(label, [-1, 1]) - label = fluid.layers.cast(label, 'int64') - label_nignore = fluid.layers.reshape(label_nignore, [-1, 1]) - logit = fluid.layers.softmax(logit, use_cudnn=False) - loss = fluid.layers.cross_entropy(logit, label, ignore_index=255) - label_nignore.stop_gradient = True - label.stop_gradient = True - return loss, label_nignore - - -args = parser.parse_args() -utility.print_arguments(args) -utility.check_gpu(args.use_gpu) - -models.clean() -models.bn_momentum = 0.9997 -models.dropout_keep_prop = 0.9 -models.label_number = args.num_classes -models.default_norm_type = args.norm_type -deeplabv3p = models.deeplabv3p - -sp = fluid.Program() -tp = fluid.Program() - -crop_size = args.train_crop_size -batch_size = args.batch_size -image_shape = [crop_size, crop_size] -reader.default_config['crop_size'] = crop_size -reader.default_config['shuffle'] = True -num_classes = args.num_classes -weight_decay = 0.00004 - -base_lr = args.base_lr -total_step = args.total_step - -# only for ce -if args.enable_ce: - SEED = 102 - sp.random_seed = SEED - tp.random_seed = SEED - reader.default_config['shuffle'] = False - -with fluid.program_guard(tp, sp): - if args.use_py_reader: - batch_size_each = batch_size // utility.get_device_count() - py_reader = fluid.layers.py_reader(capacity=64, - shapes=[[batch_size_each, 3] + image_shape, [batch_size_each] + image_shape], - dtypes=['float32', 'int32']) - img, label = fluid.layers.read_file(py_reader) - else: - img = fluid.layers.data( - name='img', shape=[3] + image_shape, dtype='float32') - label = fluid.layers.data(name='label', shape=image_shape, dtype='int32') - logit = deeplabv3p(img) - pred = fluid.layers.argmax(logit, axis=1).astype('int32') - loss, mask = loss(logit, label) - lr = fluid.layers.polynomial_decay( - base_lr, total_step, end_learning_rate=0, power=0.9) - area = fluid.layers.elementwise_max( - fluid.layers.reduce_mean(mask), - fluid.layers.assign(np.array( - [0.1], dtype=np.float32))) - loss_mean = fluid.layers.reduce_mean(loss) / area - loss_mean.persistable = True - - opt = fluid.optimizer.Momentum( - lr, - momentum=0.9, - regularization=fluid.regularizer.L2DecayRegularizer( - regularization_coeff=weight_decay)) - optimize_ops, params_grads = opt.minimize(loss_mean, startup_program=sp) - # ir memory optimizer has some issues, we need to seed grad persistable to - # avoid this issue - for p,g in params_grads: g.persistable = True - - -exec_strategy = fluid.ExecutionStrategy() -exec_strategy.num_threads = utility.get_device_count() -exec_strategy.num_iteration_per_drop_scope = 100 -build_strategy = fluid.BuildStrategy() -if args.memory_optimize: - build_strategy.fuse_relu_depthwise_conv = True - build_strategy.enable_inplace = True - -place = fluid.CPUPlace() -if args.use_gpu: - place = fluid.CUDAPlace(0) -exe = fluid.Executor(place) -exe.run(sp) - -if args.init_weights_path: - print("load from:", args.init_weights_path) - load_model() - -dataset = reader.CityscapeDataset(args.dataset_path, 'train') - -if args.parallel: - binary = fluid.compiler.CompiledProgram(tp).with_data_parallel( - loss_name=loss_mean.name, - build_strategy=build_strategy, - exec_strategy=exec_strategy) -else: - binary = fluid.compiler.CompiledProgram(tp) - -if args.use_py_reader: - assert(batch_size % utility.get_device_count() == 0) - def data_gen(): - batches = dataset.get_batch_generator( - batch_size // utility.get_device_count(), - total_step * utility.get_device_count(), - use_multiprocessing=args.use_multiprocessing, num_workers=args.num_workers) - for b in batches: - yield b[0], b[1] - py_reader.decorate_tensor_provider(data_gen) - py_reader.start() -else: - batches = dataset.get_batch_generator(batch_size, total_step, use_multiprocessing=True, num_workers=args.num_workers) -total_time = 0.0 -epoch_idx = 0 -train_loss = 0 - -with profile_context(args.profile): - for i in range(total_step): - epoch_idx += 1 - begin_time = time.time() - if not args.use_py_reader: - imgs, labels, names = next(batches) - train_loss, = exe.run(binary, - feed={'img': imgs, - 'label': labels}, fetch_list=[loss_mean]) - else: - train_loss, = exe.run(binary, fetch_list=[loss_mean]) - train_loss = np.mean(train_loss) - end_time = time.time() - total_time += end_time - begin_time - - if i % 100 == 0: - print("Model is saved to", args.save_weights_path) - save_model() - print("step {:d}, loss: {:.6f}, step_time_cost: {:.3f} s".format( - i, train_loss, end_time - begin_time)) - -print("Training done. Model is saved to", args.save_weights_path) -save_model() - -if args.enable_ce: - gpu_num = utility.get_device_count() - print("kpis\teach_pass_duration_card%s\t%s" % - (gpu_num, total_time / epoch_idx)) - print("kpis\ttrain_loss_card%s\t%s" % (gpu_num, train_loss)) diff --git a/PaddleCV/deeplabv3+/utility.py b/PaddleCV/deeplabv3+/utility.py deleted file mode 100644 index ce1bd1e683870560684212b89375b6f0f893c4b4..0000000000000000000000000000000000000000 --- a/PaddleCV/deeplabv3+/utility.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import distutils.util -import six -import paddle.fluid as fluid - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -def check_gpu(use_gpu): - """ - Log error and exit when set use_gpu=true in paddlepaddle - cpu version. - """ - err = "Config use_gpu cannot be set as true while you are " \ - "using paddlepaddle cpu version ! \nPlease try: \n" \ - "\t1. Install paddlepaddle-gpu to run model on GPU \n" \ - "\t2. Set use_gpu as false in config file to run " \ - "model on CPU" - - try: - if use_gpu and not fluid.is_compiled_with_cuda(): - logger.error(err) - sys.exit(1) - except Exception as e: - pass - - -def get_device_count(): - try: - device_num = max(fluid.core.get_cuda_device_count(), 1) - except: - device_num = 1 - - return device_num diff --git a/PaddleCV/icnet/.run_ce.sh b/PaddleCV/icnet/.run_ce.sh deleted file mode 100755 index 643c1ed4cd1bd1012935e063cd8b3e3bbfd4f6d0..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/.run_ce.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# This file is only used for continuous evaluation. - -export ce_mode=1 -rm -rf *_factor.txt -python train.py --use_gpu=True --random_mirror=False --random_scaling=False 1> log -cat log | python _ce.py diff --git a/PaddleCV/icnet/README.md b/PaddleCV/icnet/README.md deleted file mode 100644 index aa10c40f71e3adaa11859c424fc49acbec5b1b30..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/README.md +++ /dev/null @@ -1,110 +0,0 @@ -**该项目已被迁移至[PaddleSeg](https://github.com/PaddlePaddle/PaddleSeg), 这个项目包含了更多的分割模型。** - -## 代码结构 -``` -├── network.py # 网络结构定义脚本 -├── train.py # 训练任务脚本 -├── eval.py # 评估脚本 -├── infer.py # 预测脚本 -├── cityscape.py # 数据预处理脚本 -└── utils.py # 定义通用的函数 -``` - -## 简介 - -Image Cascade Network(ICNet)主要用于图像实时语义分割。相较于其它压缩计算的方法,ICNet即考虑了速度,也考虑了准确性。 -ICNet的主要思想是将输入图像变换为不同的分辨率,然后用不同计算复杂度的子网络计算不同分辨率的输入,然后将结果合并。ICNet由三个子网络组成,计算复杂度高的网络处理低分辨率输入,计算复杂度低的网络处理分辨率高的网络,通过这种方式在高分辨率图像的准确性和低复杂度网络的效率之间获得平衡。 - -整个网络结构如下: - -

-
-图 1 -

- -同时推荐用户参考[ IPython Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/124368) - -## 数据准备 - - - -本文采用Cityscape数据集,请前往[Cityscape官网](https://www.cityscapes-dataset.com)注册下载。下载数据之后,按照[这里](https://github.com/mcordts/cityscapesScripts/blob/master/cityscapesscripts/preparation/createTrainIdLabelImgs.py#L3)的说明和工具处理数据。 -处理之后的数据 -``` -data/cityscape/ -|-- gtFine -| |-- test -| |-- train -| `-- val -|-- leftImg8bit -| |-- test -| |-- train -| `-- val -|-- train.list -`-- val.list -``` -其中,train.list和val.list分别是用于训练和测试的列表文件,第一列为输入图像数据,第二列为标注数据,两列用空格分开。示例如下: -``` -leftImg8bit/train/stuttgart/stuttgart_000021_000019_leftImg8bit.png gtFine/train/stuttgart/stuttgart_000021_000019_gtFine_labelTrainIds.png -leftImg8bit/train/stuttgart/stuttgart_000072_000019_leftImg8bit.png gtFine/train/stuttgart/stuttgart_000072_000019_gtFine_labelTrainIds.png -``` -完成数据下载和准备后,需要修改`cityscape.py`脚本中对应的数据地址。 - -## 模型训练与预测 - -### 训练 -执行以下命令进行训练,同时指定checkpoint保存路径: -``` -python train.py --batch_size=16 --use_gpu=True --checkpoint_path="./chkpnt/" -``` -使用以下命令获得更多使用说明: -``` -python train.py --help -``` -训练过程中会根据用户的设置,输出训练集上每个网络分支的`loss`, 示例如下: -``` -Iter[0]; train loss: 2.338; sub4_loss: 3.367; sub24_loss: 4.120; sub124_loss: 0.151 -``` -### 测试 -执行以下命令在`Cityscape`测试数据集上进行测试: -``` -python eval.py --model_path="./chkpnt/100" --use_gpu=True -``` -需要通过选项`--model_path`指定模型文件。 -测试脚本的输出的评估指标为[mean IoU]()。 - -### 预测 -执行以下命令对指定的数据进行预测: -``` -python infer.py \ ---model_path="./chkpnt/100" \ ---images_path="./data/cityscape/" \ ---images_list="./data/cityscape/infer.list" -``` -通过选项`--images_list`指定列表文件,列表文件中每一行为一个要预测的图片的路径。 -预测结果默认保存到当前路径下的`output`文件夹下。 - -## 实验结果 -图2为在`CityScape`训练集上的训练的Loss曲线: - -

-
-图 2 -

- -在训练集上训练,在validation数据集上验证的结果为:mean_IoU=67.0%(论文67.7%) - -图3是使用`infer.py`脚本预测产生的结果示例,其中,第一行为输入的原始图片,第二行为人工的标注,第三行为我们模型计算的结果。 -

-
-图 3 -

- -## 其他信息 -|数据集 | pretrained model | -|---|---| -|CityScape | [pretrained_model](https://paddle-icnet-models.bj.bcebos.com/model_1000.tar.gz) | - -## 参考 - -- [ICNet for Real-Time Semantic Segmentation on High-Resolution Images](https://arxiv.org/abs/1704.08545) diff --git a/PaddleCV/icnet/_ce.py b/PaddleCV/icnet/_ce.py deleted file mode 100644 index 87c013b40e68107b8b75ec214d1191507b7847af..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/_ce.py +++ /dev/null @@ -1,57 +0,0 @@ -# this file is only used for continuous evaluation test! - -import os -import sys -sys.path.append(os.environ['ceroot']) -from kpi import CostKpi, DurationKpi, AccKpi - -# NOTE kpi.py should shared in models in some way!!!! - -train_cost_kpi = CostKpi('train_cost', 0.05, 0, actived=True) -train_duration_kpi = DurationKpi('train_duration', 0.02, 0, actived=True) - -tracking_kpis = [ - train_cost_kpi, - train_duration_kpi, -] - - -def parse_log(log): - ''' - This method should be implemented by model developers. - - The suggestion: - - each line in the log should be key, value, for example: - - " - train_cost\t1.0 - test_cost\t1.0 - train_cost\t1.0 - train_cost\t1.0 - train_acc\t1.2 - " - ''' - for line in log.split('\n'): - fs = line.strip().split('\t') - print(fs) - if len(fs) == 3 and fs[0] == 'kpis': - kpi_name = fs[1] - kpi_value = float(fs[2]) - yield kpi_name, kpi_value - - -def log_to_ce(log): - kpi_tracker = {} - for kpi in tracking_kpis: - kpi_tracker[kpi.name] = kpi - - for (kpi_name, kpi_value) in parse_log(log): - print(kpi_name, kpi_value) - kpi_tracker[kpi_name].add_record(kpi_value) - kpi_tracker[kpi_name].persist() - - -if __name__ == '__main__': - log = sys.stdin.read() - log_to_ce(log) diff --git a/PaddleCV/icnet/cityscape.py b/PaddleCV/icnet/cityscape.py deleted file mode 100644 index 37b9538d235c2e4e307cbf22e06b00a1ba02aeed..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/cityscape.py +++ /dev/null @@ -1,262 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Reader for Cityscape dataset. -""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import cv2 -import numpy as np -import paddle.dataset as dataset - -DATA_PATH = "./data/cityscape" -TRAIN_LIST = DATA_PATH + "/train.list" -TEST_LIST = DATA_PATH + "/val.list" -IGNORE_LABEL = 255 -NUM_CLASSES = 19 -TRAIN_DATA_SHAPE = (3, 720, 720) -TEST_DATA_SHAPE = (3, 1024, 2048) -IMG_MEAN = np.array((103.939, 116.779, 123.68), dtype=np.float32) - - -def train_data_shape(): - return TRAIN_DATA_SHAPE - - -def test_data_shape(): - return TEST_DATA_SHAPE - - -def num_classes(): - return NUM_CLASSES - - -class DataGenerater: - def __init__(self, data_list, mode="train", flip=True, scaling=True): - self.flip = flip - self.scaling = scaling - self.image_label = [] - with open(data_list, 'r') as f: - for line in f: - image_file, label_file = line.strip().split(' ') - self.image_label.append((image_file, label_file)) - - def create_train_reader(self, batch_size): - """ - Create a reader for train dataset. - """ - - def reader(): - np.random.shuffle(self.image_label) - images = [] - labels_sub1 = [] - labels_sub2 = [] - labels_sub4 = [] - count = 0 - for image, label in self.image_label: - image, label_sub1, label_sub2, label_sub4 = self.process_train_data( - image, label) - count += 1 - images.append(image) - labels_sub1.append(label_sub1) - labels_sub2.append(label_sub2) - labels_sub4.append(label_sub4) - if count == batch_size: - yield self.mask( - np.array(images), - np.array(labels_sub1), - np.array(labels_sub2), np.array(labels_sub4)) - images = [] - labels_sub1 = [] - labels_sub2 = [] - labels_sub4 = [] - count = 0 - if images: - yield self.mask( - np.array(images), - np.array(labels_sub1), - np.array(labels_sub2), np.array(labels_sub4)) - - return reader - - def create_test_reader(self): - """ - Create a reader for test dataset. - """ - - def reader(): - for image, label in self.image_label: - image, label = self.load(image, label) - image = dataset.image.to_chw(image)[np.newaxis, :] - label = label[np.newaxis, :, :, np.newaxis].astype("float32") - label_mask = np.where((label != IGNORE_LABEL).flatten())[ - 0].astype("int32") - yield image, label, label_mask - - return reader - - def process_train_data(self, image, label): - """ - Process training data. - """ - image, label = self.load(image, label) - if self.flip: - image, label = self.random_flip(image, label) - if self.scaling: - image, label = self.random_scaling(image, label) - image, label = self.resize(image, label, out_size=TRAIN_DATA_SHAPE[1:]) - label = label.astype("float32") - label_sub1 = dataset.image.to_chw(self.scale_label(label, factor=4)) - label_sub2 = dataset.image.to_chw(self.scale_label(label, factor=8)) - label_sub4 = dataset.image.to_chw(self.scale_label(label, factor=16)) - image = dataset.image.to_chw(image) - return image, label_sub1, label_sub2, label_sub4 - - def load(self, image, label): - """ - Load image from file. - """ - image = dataset.image.load_image( - DATA_PATH + "/" + image, is_color=True).astype("float32") - image -= IMG_MEAN - label = dataset.image.load_image( - DATA_PATH + "/" + label, is_color=False).astype("float32") - return image, label - - def random_flip(self, image, label): - """ - Flip image and label randomly. - """ - r = np.random.rand(1) - if r > 0.5: - image = dataset.image.left_right_flip(image, is_color=True) - label = dataset.image.left_right_flip(label, is_color=False) - return image, label - - def random_scaling(self, image, label): - """ - Scale image and label randomly. - """ - scale = np.random.uniform(0.5, 2.0, 1)[0] - h_new = int(image.shape[0] * scale) - w_new = int(image.shape[1] * scale) - image = cv2.resize(image, (w_new, h_new)) - label = cv2.resize( - label, (w_new, h_new), interpolation=cv2.INTER_NEAREST) - return image, label - - def padding_as(self, image, h, w, is_color): - """ - Padding image. - """ - pad_h = max(image.shape[0], h) - image.shape[0] - pad_w = max(image.shape[1], w) - image.shape[1] - if is_color: - return np.pad(image, ((0, pad_h), (0, pad_w), (0, 0)), 'constant') - else: - return np.pad(image, ((0, pad_h), (0, pad_w)), 'constant') - - def random_crop(self, im, out_shape, is_color=True): - h, w = im.shape[:2] - h_start = np.random.randint(0, h - out_shape[0] + 1) - w_start = np.random.randint(0, w - out_shape[1] + 1) - h_end, w_end = h_start + out_shape[0], w_start + out_shape[1] - if is_color: - im = im[h_start:h_end, w_start:w_end, :] - else: - im = im[h_start:h_end, w_start:w_end] - return im - - def resize(self, image, label, out_size): - """ - Resize image and label by padding or cropping. - """ - ignore_label = IGNORE_LABEL - label = label - ignore_label - if len(label.shape) == 2: - label = label[:, :, np.newaxis] - combined = np.concatenate((image, label), axis=2) - combined = self.padding_as( - combined, out_size[0], out_size[1], is_color=True) - combined = self.random_crop(combined, out_size, is_color=True) - image = combined[:, :, 0:3] - label = combined[:, :, 3:4] + ignore_label - return image, label - - def scale_label(self, label, factor): - """ - Scale label according to factor. - """ - h = label.shape[0] // factor - w = label.shape[1] // factor - return cv2.resize( - label, (h, w), interpolation=cv2.INTER_NEAREST)[:, :, np.newaxis] - - def mask(self, image, label0, label1, label2): - """ - Get mask for valid pixels. - """ - mask_sub1 = np.where(((label0 < (NUM_CLASSES + 1)) & ( - label0 != IGNORE_LABEL)).flatten())[0].astype("int32") - mask_sub2 = np.where(((label1 < (NUM_CLASSES + 1)) & ( - label1 != IGNORE_LABEL)).flatten())[0].astype("int32") - mask_sub4 = np.where(((label2 < (NUM_CLASSES + 1)) & ( - label2 != IGNORE_LABEL)).flatten())[0].astype("int32") - return image.astype( - "float32"), label0, mask_sub1, label1, mask_sub2, label2, mask_sub4 - - -def train(batch_size=32, flip=True, scaling=True): - """ - Cityscape training set reader. - It returns a reader, in which each result is a batch with batch_size samples. - - :param batch_size: The batch size of each result return by the reader. - :type batch_size: int - :param flip: Whether flip images randomly. - :type batch_size: bool - :param scaling: Whether scale images randomly. - :type batch_size: bool - :return: Training reader. - :rtype: callable - """ - reader = DataGenerater( - TRAIN_LIST, flip=flip, scaling=scaling).create_train_reader(batch_size) - return reader - - -def test(): - """ - Cityscape validation set reader. - It returns a reader, in which each result is a sample. - - :return: Training reader. - :rtype: callable - """ - reader = DataGenerater(TEST_LIST).create_test_reader() - return reader - - -def infer(image_list=TEST_LIST): - """ - Infer set reader. - It returns a reader, in which each result is a sample. - - :param image_list: The image list file in which each line is a path of image to be infered. - :type batch_size: str - :return: Infer reader. - :rtype: callable - """ - reader = DataGenerater(image_list).create_test_reader() diff --git a/PaddleCV/icnet/data/cityscape/gtFine/train/stuttgart/stuttgart_000021_000019_gtFine_labelTrainIds.png b/PaddleCV/icnet/data/cityscape/gtFine/train/stuttgart/stuttgart_000021_000019_gtFine_labelTrainIds.png deleted file mode 100644 index ea126e4fb7f8a7e4dbfc4aeb20e7fcdf934e249e..0000000000000000000000000000000000000000 Binary files a/PaddleCV/icnet/data/cityscape/gtFine/train/stuttgart/stuttgart_000021_000019_gtFine_labelTrainIds.png and /dev/null differ diff --git a/PaddleCV/icnet/data/cityscape/leftImg8bit/train/stuttgart/stuttgart_000021_000019_leftImg8bit.png b/PaddleCV/icnet/data/cityscape/leftImg8bit/train/stuttgart/stuttgart_000021_000019_leftImg8bit.png deleted file mode 100644 index 3994dd3da339c1fce21e48318e5866772dfb9451..0000000000000000000000000000000000000000 Binary files a/PaddleCV/icnet/data/cityscape/leftImg8bit/train/stuttgart/stuttgart_000021_000019_leftImg8bit.png and /dev/null differ diff --git a/PaddleCV/icnet/data/cityscape/train.list b/PaddleCV/icnet/data/cityscape/train.list deleted file mode 100644 index 71772de04014c2d1c9f735fa0238a53800af2673..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/data/cityscape/train.list +++ /dev/null @@ -1 +0,0 @@ -leftImg8bit/train/stuttgart/stuttgart_000021_000019_leftImg8bit.png gtFine/train/stuttgart/stuttgart_000021_000019_gtFine_labelTrainIds.png diff --git a/PaddleCV/icnet/eval.py b/PaddleCV/icnet/eval.py deleted file mode 100644 index a21ceb1bb6ce9eef1f1fd53a04d0077813f9686a..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/eval.py +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Evaluator for ICNet model.""" -import paddle.fluid as fluid -import numpy as np -from utils import add_arguments, print_arguments, get_feeder_data, check_gpu -from paddle.fluid.layers.learning_rate_scheduler import _decay_step_counter -from icnet import icnet -import cityscape -import argparse -import functools -import sys -import os - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('model_path', str, None, "Model path.") -add_arg('use_gpu', bool, True, "Whether use GPU to test.") -# yapf: enable - - -def cal_mean_iou(wrong, correct): - sum = wrong + correct - true_num = (sum != 0).sum() - for i in range(len(sum)): - if sum[i] == 0: - sum[i] = 1 - return (correct.astype("float64") / sum).sum() / true_num - - -def create_iou(predict, label, mask, num_classes, image_shape): - predict = fluid.layers.resize_bilinear(predict, out_shape=image_shape[1:3]) - predict = fluid.layers.transpose(predict, perm=[0, 2, 3, 1]) - predict = fluid.layers.reshape(predict, shape=[-1, num_classes]) - label = fluid.layers.reshape(label, shape=[-1, 1]) - _, predict = fluid.layers.topk(predict, k=1) - predict = fluid.layers.cast(predict, dtype="float32") - predict = fluid.layers.gather(predict, mask) - label = fluid.layers.gather(label, mask) - label = fluid.layers.cast(label, dtype="int32") - predict = fluid.layers.cast(predict, dtype="int32") - iou, out_w, out_r = fluid.layers.mean_iou(predict, label, num_classes) - return iou, out_w, out_r - - -def eval(args): - data_shape = cityscape.test_data_shape() - num_classes = cityscape.num_classes() - # define network - images = fluid.layers.data(name='image', shape=data_shape, dtype='float32') - label = fluid.layers.data(name='label', shape=[1], dtype='int32') - mask = fluid.layers.data(name='mask', shape=[-1], dtype='int32') - - _, _, sub124_out = icnet(images, num_classes, - np.array(data_shape[1:]).astype("float32")) - iou, out_w, out_r = create_iou(sub124_out, label, mask, num_classes, - data_shape) - inference_program = fluid.default_main_program().clone(for_test=True) - # prepare environment - place = fluid.CPUPlace() - if args.use_gpu: - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - assert os.path.exists(args.model_path) - fluid.io.load_params(exe, args.model_path) - print("loaded model from: %s" % args.model_path) - sys.stdout.flush() - - fetch_vars = [iou, out_w, out_r] - out_wrong = np.zeros([num_classes]).astype("int64") - out_right = np.zeros([num_classes]).astype("int64") - count = 0 - test_reader = cityscape.test() - for data in test_reader(): - count += 1 - result = exe.run(inference_program, - feed=get_feeder_data( - data, place, for_test=True), - fetch_list=fetch_vars) - out_wrong += result[1] - out_right += result[2] - sys.stdout.flush() - iou = cal_mean_iou(out_wrong, out_right) - print("\nmean iou: %.3f" % iou) - print("kpis test_acc %f" % iou) - - -def main(): - args = parser.parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - eval(args) - - -if __name__ == "__main__": - main() diff --git a/PaddleCV/icnet/icnet.py b/PaddleCV/icnet/icnet.py deleted file mode 100644 index c87a9785c027d4d5a298313bbbe7d7c4813a2a5e..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/icnet.py +++ /dev/null @@ -1,326 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. -################################################################# -# -# Based on -#--------------------------------------------------------------- -# https://github.com/hszhao/ICNet -# Written by hszhao@cse.cuhk.edu.hk -#--------------------------------------------------------------- - - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import paddle.fluid as fluid -import numpy as np -import sys - - -def conv(input, - k_h, - k_w, - c_o, - s_h, - s_w, - relu=False, - padding="VALID", - biased=False, - name=None): - act = None - tmp = input - if relu: - act = "relu" - if padding == "SAME": - padding_h = max(k_h - s_h, 0) - padding_w = max(k_w - s_w, 0) - padding_top = padding_h // 2 - padding_left = padding_w // 2 - padding_bottom = padding_h - padding_top - padding_right = padding_w - padding_left - padding = [ - 0, 0, 0, 0, padding_top, padding_bottom, padding_left, padding_right - ] - tmp = fluid.layers.pad(tmp, padding) - tmp = fluid.layers.conv2d( - tmp, - num_filters=c_o, - filter_size=[k_h, k_w], - stride=[s_h, s_w], - groups=1, - act=act, - bias_attr=biased, - use_cudnn=False, - name=name) - return tmp - - -def atrous_conv(input, - k_h, - k_w, - c_o, - dilation, - relu=False, - padding="VALID", - biased=False, - name=None): - act = None - if relu: - act = "relu" - tmp = input - if padding == "SAME": - padding_h = max(k_h - s_h, 0) - padding_w = max(k_w - s_w, 0) - padding_top = padding_h // 2 - padding_left = padding_w // 2 - padding_bottom = padding_h - padding_top - padding_right = padding_w - padding_left - padding = [ - 0, 0, 0, 0, padding_top, padding_bottom, padding_left, padding_right - ] - tmp = fluid.layers.pad(tmp, padding) - - tmp = fluid.layers.conv2d( - input, - num_filters=c_o, - filter_size=[k_h, k_w], - dilation=dilation, - groups=1, - act=act, - bias_attr=biased, - use_cudnn=False, - name=name) - return tmp - - -def zero_padding(input, padding): - return fluid.layers.pad(input, - [0, 0, 0, 0, padding, padding, padding, padding]) - - -def bn(input, relu=False, name=None, is_test=False): - act = None - if relu: - act = 'relu' - name = input.name.split(".")[0] + "_bn" - tmp = fluid.layers.batch_norm( - input, act=act, momentum=0.95, epsilon=1e-5, name=name) - return tmp - - -def avg_pool(input, k_h, k_w, s_h, s_w, name=None, padding=0): - temp = fluid.layers.pool2d( - input, - pool_size=[k_h, k_w], - pool_type="avg", - pool_stride=[s_h, s_w], - pool_padding=padding, - name=name) - return temp - - -def max_pool(input, k_h, k_w, s_h, s_w, name=None, padding=0): - temp = fluid.layers.pool2d( - input, - pool_size=[k_h, k_w], - pool_type="max", - pool_stride=[s_h, s_w], - pool_padding=padding, - name=name) - return temp - - -def interp(input, out_shape): - out_shape = list(out_shape.astype("int32")) - return fluid.layers.resize_bilinear(input, out_shape=out_shape) - - -def dilation_convs(input): - tmp = res_block(input, filter_num=256, padding=1, name="conv3_2") - tmp = res_block(tmp, filter_num=256, padding=1, name="conv3_3") - tmp = res_block(tmp, filter_num=256, padding=1, name="conv3_4") - - tmp = proj_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_1") - tmp = res_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_2") - tmp = res_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_3") - tmp = res_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_4") - tmp = res_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_5") - tmp = res_block(tmp, filter_num=512, padding=2, dilation=2, name="conv4_6") - - tmp = proj_block( - tmp, filter_num=1024, padding=4, dilation=4, name="conv5_1") - tmp = res_block(tmp, filter_num=1024, padding=4, dilation=4, name="conv5_2") - tmp = res_block(tmp, filter_num=1024, padding=4, dilation=4, name="conv5_3") - return tmp - - -def pyramis_pooling(input, input_shape): - shape = np.ceil(input_shape // 32).astype("int32") - h, w = shape - pool1 = avg_pool(input, h, w, h, w) - pool1_interp = interp(pool1, shape) - pool2 = avg_pool(input, h // 2, w // 2, h // 2, w // 2) - pool2_interp = interp(pool2, shape) - pool3 = avg_pool(input, h // 3, w // 3, h // 3, w // 3) - pool3_interp = interp(pool3, shape) - pool4 = avg_pool(input, h // 4, w // 4, h // 4, w // 4) - pool4_interp = interp(pool4, shape) - conv5_3_sum = input + pool4_interp + pool3_interp + pool2_interp + pool1_interp - return conv5_3_sum - - -def shared_convs(image): - tmp = conv(image, 3, 3, 32, 2, 2, padding='SAME', name="conv1_1_3_3_s2") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 3, 3, 32, 1, 1, padding='SAME', name="conv1_2_3_3") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 3, 3, 64, 1, 1, padding='SAME', name="conv1_3_3_3") - tmp = bn(tmp, relu=True) - tmp = max_pool(tmp, 3, 3, 2, 2, padding=[1, 1]) - - tmp = proj_block(tmp, filter_num=128, padding=0, name="conv2_1") - tmp = res_block(tmp, filter_num=128, padding=1, name="conv2_2") - tmp = res_block(tmp, filter_num=128, padding=1, name="conv2_3") - tmp = proj_block(tmp, filter_num=256, padding=1, stride=2, name="conv3_1") - return tmp - - -def res_block(input, filter_num, padding=0, dilation=None, name=None): - tmp = conv(input, 1, 1, filter_num // 4, 1, 1, name=name + "_1_1_reduce") - tmp = bn(tmp, relu=True) - tmp = zero_padding(tmp, padding=padding) - if dilation is None: - tmp = conv(tmp, 3, 3, filter_num // 4, 1, 1, name=name + "_3_3") - else: - tmp = atrous_conv( - tmp, 3, 3, filter_num // 4, dilation, name=name + "_3_3") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 1, 1, filter_num, 1, 1, name=name + "_1_1_increase") - tmp = bn(tmp, relu=False) - tmp = input + tmp - tmp = fluid.layers.relu(tmp) - return tmp - - -def proj_block(input, filter_num, padding=0, dilation=None, stride=1, - name=None): - proj = conv( - input, 1, 1, filter_num, stride, stride, name=name + "_1_1_proj") - proj_bn = bn(proj, relu=False) - - tmp = conv( - input, 1, 1, filter_num // 4, stride, stride, name=name + "_1_1_reduce") - tmp = bn(tmp, relu=True) - - tmp = zero_padding(tmp, padding=padding) - if padding == 0: - padding = 'SAME' - else: - padding = 'VALID' - if dilation is None: - tmp = conv( - tmp, - 3, - 3, - filter_num // 4, - 1, - 1, - padding=padding, - name=name + "_3_3") - else: - tmp = atrous_conv( - tmp, - 3, - 3, - filter_num // 4, - dilation, - padding=padding, - name=name + "_3_3") - - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 1, 1, filter_num, 1, 1, name=name + "_1_1_increase") - tmp = bn(tmp, relu=False) - tmp = proj_bn + tmp - tmp = fluid.layers.relu(tmp) - return tmp - - -def sub_net_4(input, input_shape): - tmp = interp(input, out_shape=(input_shape // 32)) - tmp = dilation_convs(tmp) - tmp = pyramis_pooling(tmp, input_shape) - tmp = conv(tmp, 1, 1, 256, 1, 1, name="conv5_4_k1") - tmp = bn(tmp, relu=True) - tmp = interp(tmp, out_shape=np.ceil(input_shape / 16)) - return tmp - - -def sub_net_2(input): - tmp = conv(input, 1, 1, 128, 1, 1, name="conv3_1_sub2_proj") - tmp = bn(tmp, relu=False) - return tmp - - -def sub_net_1(input): - tmp = conv(input, 3, 3, 32, 2, 2, padding='SAME', name="conv1_sub1") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 3, 3, 32, 2, 2, padding='SAME', name="conv2_sub1") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 3, 3, 64, 2, 2, padding='SAME', name="conv3_sub1") - tmp = bn(tmp, relu=True) - tmp = conv(tmp, 1, 1, 128, 1, 1, name="conv3_sub1_proj") - tmp = bn(tmp, relu=False) - return tmp - - -def CCF24(sub2_out, sub4_out, input_shape): - tmp = zero_padding(sub4_out, padding=2) - tmp = atrous_conv(tmp, 3, 3, 128, 2, name="conv_sub4") - tmp = bn(tmp, relu=False) - tmp = tmp + sub2_out - tmp = fluid.layers.relu(tmp) - tmp = interp(tmp, input_shape // 8) - return tmp - - -def CCF124(sub1_out, sub24_out, input_shape): - tmp = zero_padding(sub24_out, padding=2) - tmp = atrous_conv(tmp, 3, 3, 128, 2, name="conv_sub2") - tmp = bn(tmp, relu=False) - tmp = tmp + sub1_out - tmp = fluid.layers.relu(tmp) - tmp = interp(tmp, input_shape // 4) - return tmp - - -def icnet(data, num_classes, input_shape): - image_sub1 = data - image_sub2 = interp(data, out_shape=input_shape * 0.5) - - s_convs = shared_convs(image_sub2) - sub4_out = sub_net_4(s_convs, input_shape) - sub2_out = sub_net_2(s_convs) - sub1_out = sub_net_1(image_sub1) - - sub24_out = CCF24(sub2_out, sub4_out, input_shape) - sub124_out = CCF124(sub1_out, sub24_out, input_shape) - - conv6_cls = conv( - sub124_out, 1, 1, num_classes, 1, 1, biased=True, name="conv6_cls") - sub4_out = conv( - sub4_out, 1, 1, num_classes, 1, 1, biased=True, name="sub4_out") - sub24_out = conv( - sub24_out, 1, 1, num_classes, 1, 1, biased=True, name="sub24_out") - - return sub4_out, sub24_out, conv6_cls diff --git a/PaddleCV/icnet/images/icnet.png b/PaddleCV/icnet/images/icnet.png deleted file mode 100644 index f261bb14a85eceac7cd5df282ebc43021b7760d9..0000000000000000000000000000000000000000 Binary files a/PaddleCV/icnet/images/icnet.png and /dev/null differ diff --git a/PaddleCV/icnet/images/result.png b/PaddleCV/icnet/images/result.png deleted file mode 100644 index b3b0b52ade05943b4a1d741fa4f3a947e8ac28ae..0000000000000000000000000000000000000000 Binary files a/PaddleCV/icnet/images/result.png and /dev/null differ diff --git a/PaddleCV/icnet/images/train_loss.png b/PaddleCV/icnet/images/train_loss.png deleted file mode 100644 index 15011073ae0bd55a9df853934f3329747ee9a426..0000000000000000000000000000000000000000 Binary files a/PaddleCV/icnet/images/train_loss.png and /dev/null differ diff --git a/PaddleCV/icnet/infer.py b/PaddleCV/icnet/infer.py deleted file mode 100644 index f1d7db512b99975135cbfd28c97899a5f8db3745..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/infer.py +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Infer for ICNet model.""" -from __future__ import print_function -import cityscape -import argparse -import functools -import sys -import os -import cv2 - -import paddle.fluid as fluid -import paddle -from icnet import icnet -from utils import add_arguments, print_arguments, get_feeder_data, check_gpu -from paddle.fluid.layers.learning_rate_scheduler import _decay_step_counter -import numpy as np - -IMG_MEAN = np.array((103.939, 116.779, 123.68), dtype=np.float32) -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('model_path', str, None, "Model path.") -add_arg('images_list', str, None, "List file with images to be infered.") -add_arg('images_path', str, None, "The images path.") -add_arg('out_path', str, "./output", "Output path.") -add_arg('use_gpu', bool, True, "Whether use GPU to test.") -# yapf: enable - -data_shape = [3, 1024, 2048] -num_classes = 19 - -label_colours = [ - [128, 64, 128], - [244, 35, 231], - [69, 69, 69] - # 0 = road, 1 = sidewalk, 2 = building - , - [102, 102, 156], - [190, 153, 153], - [153, 153, 153] - # 3 = wall, 4 = fence, 5 = pole - , - [250, 170, 29], - [219, 219, 0], - [106, 142, 35] - # 6 = traffic light, 7 = traffic sign, 8 = vegetation - , - [152, 250, 152], - [69, 129, 180], - [219, 19, 60] - # 9 = terrain, 10 = sky, 11 = person - , - [255, 0, 0], - [0, 0, 142], - [0, 0, 69] - # 12 = rider, 13 = car, 14 = truck - , - [0, 60, 100], - [0, 79, 100], - [0, 0, 230] - # 15 = bus, 16 = train, 17 = motocycle - , - [119, 10, 32] -] - -# 18 = bicycle - - -def color(input): - """ - Convert infered result to color image. - """ - result = [] - for i in input.flatten(): - result.append( - [label_colours[i][2], label_colours[i][1], label_colours[i][0]]) - result = np.array(result).reshape([input.shape[0], input.shape[1], 3]) - return result - - -def infer(args): - data_shape = cityscape.test_data_shape() - num_classes = cityscape.num_classes() - # define network - images = fluid.layers.data(name='image', shape=data_shape, dtype='float32') - _, _, sub124_out = icnet(images, num_classes, - np.array(data_shape[1:]).astype("float32")) - predict = fluid.layers.resize_bilinear( - sub124_out, out_shape=data_shape[1:3]) - predict = fluid.layers.transpose(predict, perm=[0, 2, 3, 1]) - predict = fluid.layers.reshape(predict, shape=[-1, num_classes]) - _, predict = fluid.layers.topk(predict, k=1) - predict = fluid.layers.reshape( - predict, - shape=[data_shape[1], data_shape[2], -1]) # batch_size should be 1 - inference_program = fluid.default_main_program().clone(for_test=True) - # prepare environment - place = fluid.CPUPlace() - if args.use_gpu: - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - assert os.path.exists(args.model_path) - fluid.io.load_params(exe, args.model_path) - print("loaded model from: %s" % args.model_path) - sys.stdout.flush() - - if not os.path.isdir(args.out_path): - os.makedirs(args.out_path) - - for line in open(args.images_list): - image_file = args.images_path + "/" + line.strip() - filename = os.path.basename(image_file) - image = paddle.dataset.image.load_image( - image_file, is_color=True).astype("float32") - image -= IMG_MEAN - img = paddle.dataset.image.to_chw(image)[np.newaxis, :] - image_t = fluid.LoDTensor() - image_t.set(img, place) - result = exe.run(inference_program, - feed={"image": image_t}, - fetch_list=[predict]) - cv2.imwrite(args.out_path + "/" + filename + "_result.png", - color(result[0])) - print("Saved images into: %s" % args.out_path) - - -def main(): - args = parser.parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - infer(args) - - -if __name__ == "__main__": - main() diff --git a/PaddleCV/icnet/train.py b/PaddleCV/icnet/train.py deleted file mode 100644 index ae616eee603c221b8bea475467a02ecf3785464a..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/train.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Trainer for ICNet model.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from icnet import icnet -import cityscape -import argparse -import functools -import sys -import os -import time -import paddle.fluid as fluid -import numpy as np -from utils import add_arguments, print_arguments, get_feeder_data, check_gpu -from paddle.fluid.layers.learning_rate_scheduler import _decay_step_counter - -if 'ce_mode' in os.environ: - np.random.seed(10) - fluid.default_startup_program().random_seed = 90 - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('batch_size', int, 16, "Minibatch size.") -add_arg('checkpoint_path', str, None, "Checkpoint svae path.") -add_arg('init_model', str, None, "Pretrain model path.") -add_arg('use_gpu', bool, True, "Whether use GPU to train.") -add_arg('random_mirror', bool, True, "Whether prepare by random mirror.") -add_arg('random_scaling', bool, True, "Whether prepare by random scaling.") -# yapf: enable - -LAMBDA1 = 0.16 -LAMBDA2 = 0.4 -LAMBDA3 = 1.0 -LEARNING_RATE = 0.003 -POWER = 0.9 -LOG_PERIOD = 1 -CHECKPOINT_PERIOD = 1000 -TOTAL_STEP = 60000 -if 'ce_mode' in os.environ: - TOTAL_STEP = 100 - -no_grad_set = [] - - -def create_loss(predict, label, mask, num_classes): - predict = fluid.layers.transpose(predict, perm=[0, 2, 3, 1]) - predict = fluid.layers.reshape(predict, shape=[-1, num_classes]) - label = fluid.layers.reshape(label, shape=[-1, 1]) - predict = fluid.layers.gather(predict, mask) - label = fluid.layers.gather(label, mask) - label = fluid.layers.cast(label, dtype="int64") - loss = fluid.layers.softmax_with_cross_entropy(predict, label) - no_grad_set.append(label.name) - return fluid.layers.reduce_mean(loss) - - -def poly_decay(): - global_step = _decay_step_counter() - decayed_lr = LEARNING_RATE * (fluid.layers.pow( - (1 - global_step / TOTAL_STEP), POWER)) - return decayed_lr - - -def train(args): - data_shape = cityscape.train_data_shape() - num_classes = cityscape.num_classes() - # define network - images = fluid.layers.data(name='image', shape=data_shape, dtype='float32') - label_sub1 = fluid.layers.data(name='label_sub1', shape=[1], dtype='int32') - label_sub2 = fluid.layers.data(name='label_sub2', shape=[1], dtype='int32') - label_sub4 = fluid.layers.data(name='label_sub4', shape=[1], dtype='int32') - mask_sub1 = fluid.layers.data(name='mask_sub1', shape=[-1], dtype='int32') - mask_sub2 = fluid.layers.data(name='mask_sub2', shape=[-1], dtype='int32') - mask_sub4 = fluid.layers.data(name='mask_sub4', shape=[-1], dtype='int32') - - sub4_out, sub24_out, sub124_out = icnet( - images, num_classes, np.array(data_shape[1:]).astype("float32")) - loss_sub4 = create_loss(sub4_out, label_sub4, mask_sub4, num_classes) - loss_sub24 = create_loss(sub24_out, label_sub2, mask_sub2, num_classes) - loss_sub124 = create_loss(sub124_out, label_sub1, mask_sub1, num_classes) - reduced_loss = LAMBDA1 * loss_sub4 + LAMBDA2 * loss_sub24 + LAMBDA3 * loss_sub124 - - regularizer = fluid.regularizer.L2Decay(0.0001) - optimizer = fluid.optimizer.Momentum( - learning_rate=poly_decay(), momentum=0.9, regularization=regularizer) - _, params_grads = optimizer.minimize(reduced_loss, no_grad_set=no_grad_set) - - # prepare environment - place = fluid.CPUPlace() - if args.use_gpu: - place = fluid.CUDAPlace(0) - exe = fluid.Executor(place) - - exe.run(fluid.default_startup_program()) - - if args.init_model is not None: - print("load model from: %s" % args.init_model) - - def if_exist(var): - return os.path.exists(os.path.join(args.init_model, var.name)) - - fluid.io.load_vars(exe, args.init_model, predicate=if_exist) - - iter_id = 0 - t_loss = 0. - sub4_loss = 0. - sub24_loss = 0. - sub124_loss = 0. - train_reader = cityscape.train( - args.batch_size, flip=args.random_mirror, scaling=args.random_scaling) - start_time = time.time() - while True: - # train a pass - for data in train_reader(): - if iter_id > TOTAL_STEP: - end_time = time.time() - print("kpis train_duration %f" % (end_time - start_time)) - return - iter_id += 1 - results = exe.run( - feed=get_feeder_data(data, place), - fetch_list=[reduced_loss, loss_sub4, loss_sub24, loss_sub124]) - t_loss += results[0] - sub4_loss += results[1] - sub24_loss += results[2] - sub124_loss += results[3] - # training log - if iter_id % LOG_PERIOD == 0: - print( - "Iter[%d]; train loss: %.3f; sub4_loss: %.3f; sub24_loss: %.3f; sub124_loss: %.3f" - % (iter_id, t_loss / LOG_PERIOD, sub4_loss / LOG_PERIOD, - sub24_loss / LOG_PERIOD, sub124_loss / LOG_PERIOD)) - print("kpis train_cost %f" % (t_loss / LOG_PERIOD)) - - t_loss = 0. - sub4_loss = 0. - sub24_loss = 0. - sub124_loss = 0. - sys.stdout.flush() - - if iter_id % CHECKPOINT_PERIOD == 0 and args.checkpoint_path is not None: - dir_name = args.checkpoint_path + "/" + str(iter_id) - fluid.io.save_persistables(exe, dirname=dir_name) - print("Saved checkpoint: %s" % (dir_name)) - - -def main(): - args = parser.parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - train(args) - - -if __name__ == "__main__": - main() diff --git a/PaddleCV/icnet/utils.py b/PaddleCV/icnet/utils.py deleted file mode 100644 index 34e28602dbc1d8149f7ff70638b85f72cf4b8cbc..0000000000000000000000000000000000000000 --- a/PaddleCV/icnet/utils.py +++ /dev/null @@ -1,134 +0,0 @@ -"""Contains common utility functions.""" -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import distutils.util -import numpy as np -import six -import paddle.fluid as fluid - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -def to_lodtensor(data, place): - seq_lens = [len(seq) for seq in data] - cur_len = 0 - lod = [cur_len] - for l in seq_lens: - cur_len += l - lod.append(cur_len) - flattened_data = np.concatenate(data, axis=0).astype("int32") - flattened_data = flattened_data.reshape([len(flattened_data), 1]) - res = fluid.LoDTensor() - res.set(flattened_data, place) - res.set_lod([lod]) - return res - - -def get_feeder_data(data, place, for_test=False): - feed_dict = {} - image_t = fluid.LoDTensor() - image_t.set(data[0], place) - feed_dict["image"] = image_t - - if not for_test: - labels_sub1_t = fluid.LoDTensor() - labels_sub2_t = fluid.LoDTensor() - labels_sub4_t = fluid.LoDTensor() - mask_sub1_t = fluid.LoDTensor() - mask_sub2_t = fluid.LoDTensor() - mask_sub4_t = fluid.LoDTensor() - - labels_sub1_t.set(data[1], place) - labels_sub2_t.set(data[3], place) - mask_sub1_t.set(data[2], place) - mask_sub2_t.set(data[4], place) - labels_sub4_t.set(data[5], place) - mask_sub4_t.set(data[6], place) - feed_dict["label_sub1"] = labels_sub1_t - feed_dict["label_sub2"] = labels_sub2_t - feed_dict["mask_sub1"] = mask_sub1_t - feed_dict["mask_sub2"] = mask_sub2_t - feed_dict["label_sub4"] = labels_sub4_t - feed_dict["mask_sub4"] = mask_sub4_t - else: - label_t = fluid.LoDTensor() - mask_t = fluid.LoDTensor() - label_t.set(data[1], place) - mask_t.set(data[2], place) - feed_dict["label"] = label_t - feed_dict["mask"] = mask_t - - return feed_dict - - -def check_gpu(use_gpu): - """ - Log error and exit when set use_gpu=true in paddlepaddle - cpu version. - """ - err = "Config use_gpu cannot be set as true while you are " \ - "using paddlepaddle cpu version ! \nPlease try: \n" \ - "\t1. Install paddlepaddle-gpu to run model on GPU \n" \ - "\t2. Set use_gpu as false in config file to run " \ - "model on CPU" - - try: - if use_gpu and not fluid.is_compiled_with_cuda(): - logger.error(err) - sys.exit(1) - except Exception as e: - pass diff --git a/PaddleCV/rcnn/.gitignore b/PaddleCV/rcnn/.gitignore deleted file mode 100644 index 46bccb94f65af01009f2c65b4c1a495d6cc0eaf3..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -output/ -*.swp -*.log -log* -output* diff --git a/PaddleCV/rcnn/.run_ce.sh b/PaddleCV/rcnn/.run_ce.sh deleted file mode 100755 index 8062ee1cef875897fccb4220a6285a522acef961..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/.run_ce.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -export MKL_NUM_THREADS=1 -export OMP_NUM_THREADS=1 - - -cudaid=${face_detection:=0} # use 0-th card as default -export CUDA_VISIBLE_DEVICES=$cudaid - -FLAGS_benchmark=true python train.py --model_save_dir=output/ --data_dir=dataset/coco/ --max_iter=500 --enable_ce --pretrained_model=./imagenet_resnet50_fusebn --learning_rate=0.00125 | python _ce.py - - -cudaid=${face_detection_m:=0,1,2,3} # use 0,1,2,3 card as default -export CUDA_VISIBLE_DEVICES=$cudaid - -FLAGS_benchmark=true python train.py --model_save_dir=output/ --data_dir=dataset/coco/ --max_iter=500 --enable_ce --pretrained_model=./imagenet_resnet50_fusebn --learning_rate=0.005 | python _ce.py - diff --git a/PaddleCV/rcnn/README.md b/PaddleCV/rcnn/README.md deleted file mode 100644 index 803e10446c639d8987f3ef30b39e61db95038f0f..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/README.md +++ /dev/null @@ -1,219 +0,0 @@ -**This model has been moved to [PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), which includes more detection models.** - -# RCNN Objective Detection - ---- -## Table of Contents - -- [Installation](#installation) -- [Introduction](#introduction) -- [Data preparation](#data-preparation) -- [Training](#training) -- [Evaluation](#evaluation) -- [Inference and Visualization](#inference-and-visualization) - -## Installation - -Running sample code in this directory requires PaddelPaddle Fluid v.1.3.0 and later. If the PaddlePaddle on your device is lower than this version, please follow the instructions in [installation document](http://paddlepaddle.org/documentation/docs/en/1.3/beginners_guide/install/index_en.html) and make an update. - -We also recommend users to take a look at:  -[MaskRCNN](https://aistudio.baidu.com/aistudio/projectDetail/122273) -[Faster RCNN](https://aistudio.baidu.com/aistudio/projectDetail/122275) - -## Introduction - -Region Convolutional Neural Network (RCNN) models are two stages detector. According to proposals and feature extraction, obtain class and more precise proposals. -Now RCNN model contains two typical models: Faster RCNN and Mask RCNN. - -[Faster RCNN](https://arxiv.org/abs/1506.01497), The total framework of network can be divided into four parts: - -1. Base conv layer. As a CNN objective dection, Faster RCNN extract feature maps using a basic convolutional network. The feature maps then can be shared by RPN and fc layers. This sampel uses [ResNet-50](https://arxiv.org/abs/1512.03385) as base conv layer. -2. Region Proposal Network (RPN). RPN generates proposals for detection。This block generates anchors by a set of size and ratio and classifies anchors into fore-ground and back-ground by softmax. Then refine anchors to obtain more precise proposals using box regression. -3. RoI Align. This layer takes feature maps and proposals as input. The proposals are mapped to feature maps and pooled to the same size. The output are sent to fc layers for classification and regression. RoIPool and RoIAlign are used separately to this layer and it can be set in roi\_func in config.py. -4. Detection layer. Using the output of roi pooling to compute the class and locatoin of each proposal in two fc layers. - -[Mask RCNN](https://arxiv.org/abs/1703.06870) is a classical instance segmentation model and an extension of Faster RCNN - -Mask RCNN is a two stage model as well. At the first stage, it generates proposals from input images. At the second stage, it obtains class result, bbox and mask which is the result from segmentation branch on original Faster RCNN model. It decouples the relation between mask and classification. - -## Data preparation - -Train the model on [MS-COCO dataset](http://cocodataset.org/#download), download dataset as below: - -```bash -python dataset/coco/download.py -``` - -The data catalog structure is as follows: - - ``` - data/coco/ - ├── annotations - │   ├── instances_train2014.json - │   ├── instances_train2017.json - │   ├── instances_val2014.json - │   ├── instances_val2017.json - | ... - ├── train2017 - │   ├── 000000000009.jpg - │   ├── 000000580008.jpg - | ... - ├── val2017 - │   ├── 000000000139.jpg - │   ├── 000000000285.jpg - | ... - ``` - -## Training - -**download the pre-trained model:** This sample provides Resnet-50 pre-trained model which is converted from Caffe. The model fuses the parameters in batch normalization layer. One can download pre-trained model as: - - sh ./pretrained/download.sh - -**NOTE:** Windows users can download weights from links in `./pretrained/download.sh`. - -Set `pretrained_model` to load pre-trained model. In addition, this parameter is used to load trained model when finetuning as well. -Please make sure that pretrained_model is downloaded and loaded correctly, otherwise, the loss may be NAN during training. - -**Install the [cocoapi](https://github.com/cocodataset/cocoapi):** - -To train the model, [cocoapi](https://github.com/cocodataset/cocoapi) is needed. Install the cocoapi: - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # if cython is not installed - pip install Cython - # Install into global site-packages - make install - # Alternatively, if you do not have permissions or prefer - # not to install the COCO API into global site-packages - python2 setup.py install --user - -After data preparation, one can start the training step by: - -- Faster RCNN - - ``` - python train.py \ - --model_save_dir=output/ \ - --pretrained_model=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --MASK_ON=False - ``` - -- Mask RCNN - - ``` - python train.py \ - --model_save_dir=output/ \ - --pretrained_model=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --MASK_ON=True - ``` - - - Set ```export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7``` to specifiy 8 GPU to train. - - Set ```MASK_ON``` to choose Faster RCNN or Mask RCNN model. - - Set ```parallel``` to False to replace [fluid.ParallelExecutor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/fluid_cn.html#parallelexecutor) to [fluid.Executor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/fluid_cn.html#executor) when running the program in the Windows & GPU environment. - - For more help on arguments: - - python train.py --help - -**data reader introduction:** - -* Data reader is defined in `reader.py`. -* Scaling the short side of all images to `scales`. If the long side is larger than `max_size`, then scaling the long side to `max_size`. -* In training stage, images are horizontally flipped. -* Images in the same batch can be padding to the same size. - -**model configuration:** - -* Use RoIAlign and RoIPool separately. -* NMS threshold=0.7. During training, pre\_nms=12000, post\_nms=2000; during test, pre\_nms=6000, post\_nms=1000. -* In generating proposal lables, fg\_fraction=0.25, fg\_thresh=0.5, bg\_thresh_hi=0.5, bg\_thresh\_lo=0.0. -* In rpn target assignment, rpn\_fg\_fraction=0.5, rpn\_positive\_overlap=0.7, rpn\_negative\_overlap=0.3. - -**training strategy:** - -* Use momentum optimizer with momentum=0.9. -* Weight decay is 0.0001. -* In first 500 iteration, the learning rate increases linearly from 0.00333 to 0.01. Then lr is decayed at 120000, 160000 iteration with multiplier 0.1, 0.01. The maximum iteration is 180000. Also, we released a 2x model which has 360000 iterations and lr is decayed at 240000, 320000. These configuration can be set by max_iter and lr_steps in config.py. -* Set the learning rate of bias to two times as global lr in non basic convolutional layers. -* In basic convolutional layers, parameters of affine layers and res body do not update. - -## Evaluation - -Evaluation is to evaluate the performance of a trained model. This sample provides `eval_coco_map.py` which uses a COCO-specific mAP metric defined by [COCO committee](http://cocodataset.org/#detections-eval). - -`eval_coco_map.py` is the main executor for evalution, one can start evalution step by: - -- Faster RCNN - - ``` - python eval_coco_map.py \ - --dataset=coco2017 \ - --pretrained_model=${path_to_trained_model} \ - --MASK_ON=False - ``` - -- Mask RCNN - - ``` - python eval_coco_map.py \ - --dataset=coco2017 \ - --pretrained_model=${path_to_trainde_model} \ - --MASK_ON=True - ``` - - - Set ```--pretrained_model=${path_to_trained_model}``` to specifiy the trained model, not the initialized model. - - Set ```export CUDA_VISIBLE_DEVICES=0``` to specifiy one GPU to eval. - - Set ```MASK_ON``` to choose Faster RCNN or Mask RCNN model. - -Evalutaion result is shown as below: - -Faster RCNN: - -| Model | RoI function | Batch size | Max iteration | mAP | -| :--------------- | :--------: | :------------: | :------------------: |------: | -| [Fluid RoIPool minibatch padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_pool_minibatch_padding.tar.gz) | RoIPool | 8 | 180000 | 0.316 | -| [Fluid RoIPool no padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_pool_no_padding.tar.gz) | RoIPool | 8 | 180000 | 0.318 | -| [Fluid RoIAlign no padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_align_no_padding.tar.gz) | RoIAlign | 8 | 180000 | 0.348 | -| [Fluid RoIAlign no padding 2x](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_align_no_padding_2x.tar.gz) | RoIAlign | 8 | 360000 | 0.367 | - -* Fluid RoIPool minibatch padding: Use RoIPool. Images in one batch padding to the same size. This method is same as detectron. -* Fluid RoIPool no padding: Images without padding. -* Fluid RoIAlign no padding: Images without padding. -* Fluid RoIAlign no padding 2x: Images without padding, train for 360000 iterations, learning rate is decayed at 240000, 320000. - -Mask RCNN: - -| Model | Batch size | Max iteration | box mAP | mask mAP | -| :--------------- | :--------: | :------------: | :--------: |------: | -| [Fluid mask no padding](https://paddlemodels.bj.bcebos.com/faster_rcnn/Fluid_mask_no_padding.tar.gz) | 8 | 180000 | 0.359 | 0.314 | - -* Fluid mask no padding: Use RoIAlign. Images without padding. - -## Inference and Visualization - -Inference is used to get prediction score or image features based on trained models. `infer.py` is the main executor for inference, one can start infer step by: - -``` -python infer.py \ - --pretrained_model=${path_to_trained_model} \ - --image_path=dataset/coco/val2017/000000000139.jpg \ - --draw_threshold=0.6 -``` - -Please set the model path and image path correctly. GPU device is used by default, you can set `--use_gpu=False` to switch to CPU device. And you can set `draw_threshold` to tune score threshold to control the number of output detection boxes. - -Visualization of infer result is shown as below: -

- -
-Faster RCNN Visualization Examples -

- -

- -
-Mask RCNN Visualization Examples -

diff --git a/PaddleCV/rcnn/README_cn.md b/PaddleCV/rcnn/README_cn.md deleted file mode 100644 index bc232fe273b10b082a54d7c2c69b53726c24cb98..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/README_cn.md +++ /dev/null @@ -1,217 +0,0 @@ -**该项目已被迁移至[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), 这个项目包含了更多的检测模型。** - -# RCNN 系列目标检测 - ---- -## 内容 - -- [安装](#安装) -- [简介](#简介) -- [数据准备](#数据准备) -- [模型训练](#模型训练) -- [模型评估](#模型评估) -- [模型推断及可视化](#模型推断及可视化) - -## 安装 - -在当前目录下运行样例代码需要PadddlePaddle Fluid的v.1.3.0或以上的版本。如果你的运行环境中的PaddlePaddle低于此版本,请根据[安装文档](http://www.paddlepaddle.org/)中的说明来更新PaddlePaddle。 - -同时推荐用户参考: -[MaskRCNN](https://aistudio.baidu.com/aistudio/projectDetail/122273) -[Faster RCNN](https://aistudio.baidu.com/aistudio/projectDetail/122275) - -## 简介 -区域卷积神经网络(RCNN)系列模型为两阶段目标检测器。通过对图像生成候选区域,提取特征,判别特征类别并修正候选框位置。 -RCNN系列目前包含两个代表模型:Faster RCNN,Mask RCNN - -[Faster RCNN](https://arxiv.org/abs/1506.01497) 整体网络可以分为4个主要内容: - -1. 基础卷积层。作为一种卷积神经网络目标检测方法,Faster RCNN首先使用一组基础的卷积网络提取图像的特征图。特征图被后续RPN层和全连接层共享。本示例采用[ResNet-50](https://arxiv.org/abs/1512.03385)作为基础卷积层。 -2. 区域生成网络(RPN)。RPN网络用于生成候选区域(proposals)。该层通过一组固定的尺寸和比例得到一组锚点(anchors), 通过softmax判断锚点属于前景或者背景,再利用区域回归修正锚点从而获得精确的候选区域。 -3. RoI Align。该层收集输入的特征图和候选区域,将候选区域映射到特征图中并池化为统一大小的区域特征图,送入全连接层判定目标类别, 该层可选用RoIPool和RoIAlign两种方式,在config.py中设置roi\_func。 -4. 检测层。利用区域特征图计算候选区域的类别,同时再次通过区域回归获得检测框最终的精确位置。 - -[Mask RCNN](https://arxiv.org/abs/1703.06870) 扩展自Faster RCNN,是经典的实例分割模型。 - -Mask RCNN同样为两阶段框架,第一阶段扫描图像生成候选框;第二阶段根据候选框得到分类结果,边界框,同时在原有Faster RCNN模型基础上添加分割分支,得到掩码结果,实现了掩码和类别预测关系的解藕。 - - -## 数据准备 - -在[MS-COCO数据集](http://cocodataset.org/#download)上进行训练,通过如下方式下载数据集。 - -```bash -python dataset/coco/download.py -``` - -数据目录结构如下: - -``` -data/coco/ -├── annotations -│   ├── instances_train2014.json -│   ├── instances_train2017.json -│   ├── instances_val2014.json -│   ├── instances_val2017.json -| ... -├── train2017 -│   ├── 000000000009.jpg -│   ├── 000000580008.jpg -| ... -├── val2017 -│   ├── 000000000139.jpg -│   ├── 000000000285.jpg -| ... - -``` - -## 模型训练 - -**下载预训练模型:** 本示例提供Resnet-50预训练模型,该模性转换自Caffe,并对批标准化层(Batch Normalization Layer)进行参数融合。采用如下命令下载预训练模型: - - sh ./pretrained/download.sh - -**注意:** Windows用户可通过`./pretrained/download.sh`中的链接直接下载和解压。 - -通过初始化`pretrained_model` 加载预训练模型。同时在参数微调时也采用该设置加载已训练模型。 -请在训练前确认预训练模型下载与加载正确,否则训练过程中损失可能会出现NAN。 - -**安装[cocoapi](https://github.com/cocodataset/cocoapi):** - -训练前需要首先下载[cocoapi](https://github.com/cocodataset/cocoapi): - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # if cython is not installed - pip install Cython - # Install into global site-packages - make install - # Alternatively, if you do not have permissions or prefer - # not to install the COCO API into global site-packages - python2 setup.py install --user - -数据准备完毕后,可以通过如下的方式启动训练: - -- Faster RCNN - - ``` - python train.py \ - --model_save_dir=output/ \ - --pretrained_model=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --MASK_ON=False - ``` - -- Mask RCNN - - ``` - python train.py \ - --model_save_dir=output/ \ - --pretrained_model=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --MASK_ON=True - ``` - - - 通过设置export CUDA\_VISIBLE\_DEVICES=0,1,2,3,4,5,6,7指定8卡GPU训练。 - - 通过设置```MASK_ON```选择Faster RCNN和Mask RCNN模型。 - - 使用Windows GPU环境的用户,需要设置```parallel```为False,将[fluid.ParallelExecutor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/fluid_cn.html#parallelexecutor)替换为[fluid.Executor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/fluid_cn.html#executor)。 - - 可选参数见: - - python train.py --help - -**数据读取器说明:** 数据读取器定义在reader.py中。所有图像将短边等比例缩放至`scales`,若长边大于`max_size`, 则再次将长边等比例缩放至`max_size`。在训练阶段,对图像采用水平翻转。支持将同一个batch内的图像padding为相同尺寸。 - -**模型设置:** - -* 分别使用RoIAlign和RoIPool两种方法。 -* 训练过程pre\_nms=12000, post\_nms=2000,测试过程pre\_nms=6000, post\_nms=1000。nms阈值为0.7。 -* RPN网络得到labels的过程中,fg\_fraction=0.25,fg\_thresh=0.5,bg\_thresh_hi=0.5,bg\_thresh\_lo=0.0 -* RPN选择anchor时,rpn\_fg\_fraction=0.5,rpn\_positive\_overlap=0.7,rpn\_negative\_overlap=0.3 - - -**训练策略:** - -* 采用momentum优化算法训练,momentum=0.9。 -* 权重衰减系数为0.0001,前500轮学习率从0.00333线性增加至0.01。在120000,160000轮时使用0.1,0.01乘子进行学习率衰减,最大训练180000轮。同时我们也提供了2x模型,该模型采用更多的迭代轮数进行训练,训练360000轮,学习率在240000,320000轮衰减,其他参数不变,训练最大轮数和学习率策略可以在config.py中对max_iter和lr_steps进行设置。 -* 非基础卷积层卷积bias学习率为整体学习率2倍。 -* 基础卷积层中,affine_layers参数不更新,res2层参数不更新。 - -## 模型评估 - -模型评估是指对训练完毕的模型评估各类性能指标。本示例采用[COCO官方评估](http://cocodataset.org/#detections-eval) - -`eval_coco_map.py`是评估模块的主要执行程序,调用示例如下: - -- Faster RCNN - - ``` - python eval_coco_map.py \ - --dataset=coco2017 \ - --pretrained_model=${path_to_trained_model} \ - --MASK_ON=False - ``` - -- Mask RCNN - - ``` - python eval_coco_map.py \ - --dataset=coco2017 \ - --pretrained_model=${path_to_trained_model} \ - --MASK_ON=True - ``` - - - 通过设置`--pretrained_model=${path_to_trained_model}`指定训练好的模型,注意不是初始化的模型。 - - 通过设置`export CUDA\_VISIBLE\_DEVICES=0`指定单卡GPU评估。 - - 通过设置```MASK_ON```选择Faster RCNN和Mask RCNN模型。 - -下表为模型评估结果: - -Faster RCNN - -| 模型 | RoI处理方式 | 批量大小 | 迭代次数 | mAP | -| :--------------- | :--------: | :------------: | :------------------: |------: | -| [Fluid RoIPool minibatch padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_pool_minibatch_padding.tar.gz) | RoIPool | 8 | 180000 | 0.316 | -| [Fluid RoIPool no padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_pool_no_padding.tar.gz) | RoIPool | 8 | 180000 | 0.318 | -| [Fluid RoIAlign no padding](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_align_no_padding.tar.gz) | RoIAlign | 8 | 180000 | 0.348 | -| [Fluid RoIAlign no padding 2x](http://paddlemodels.bj.bcebos.com/faster_rcnn/model_align_no_padding_2x.tar.gz) | RoIAlign | 8 | 360000 | 0.367 | - - - -* Fluid RoIPool minibatch padding: 使用RoIPool,同一个batch内的图像填充为相同尺寸。该方法与detectron处理相同。 -* Fluid RoIPool no padding: 使用RoIPool,不对图像做填充处理。 -* Fluid RoIAlign no padding: 使用RoIAlign,不对图像做填充处理。 -* Fluid RoIAlign no padding 2x: 使用RoIAlign,不对图像做填充处理。训练360000轮,学习率在240000,320000轮衰减。 - -Mask RCNN: - -| 模型 | 批量大小 | 迭代次数 | box mAP | mask mAP | -| :--------------- | :--------: | :------------: | :--------: |------: | -| [Fluid mask no padding](https://paddlemodels.bj.bcebos.com/faster_rcnn/Fluid_mask_no_padding.tar.gz) | 8 | 180000 | 0.359 | 0.314 | - -* Fluid mask no padding: 使用RoIAlign,不对图像做填充处理 - -## 模型推断及可视化 - -模型推断可以获取图像中的物体及其对应的类别,`infer.py`是主要执行程序,调用示例如下: - -``` -python infer.py \ - --pretrained_model=${path_to_trained_model} \ - --image_path=dataset/coco/val2017/000000000139.jpg \ - --draw_threshold=0.6 -``` - -注意,请正确设置模型路径`${path_to_trained_model}`和预测图片路径。默认使用GPU设备,也可通过设置`--use_gpu=False`使用CPU设备。可通过设置`draw_threshold`调节得分阈值控制检测框的个数。 - -下图为模型可视化预测结果: -

- -
-Faster RCNN 预测可视化 -

- -

- -
-Mask RCNN 预测可视化 -

diff --git a/PaddleCV/rcnn/__init__.py b/PaddleCV/rcnn/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/rcnn/_ce.py b/PaddleCV/rcnn/_ce.py deleted file mode 100644 index e331d1bb7cccce5ac914dfa3417fe9090bd9cf99..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/_ce.py +++ /dev/null @@ -1,62 +0,0 @@ -# this file is only used for continuous evaluation test! - -import os -import sys -sys.path.append(os.environ['ceroot']) -from kpi import CostKpi -from kpi import DurationKpi - -each_pass_duration_card1_kpi = DurationKpi( - 'each_pass_duration_card1', 0.08, 0, actived=True) -train_loss_card1_kpi = CostKpi('train_loss_card1', 0.08, 0) -each_pass_duration_card4_kpi = DurationKpi( - 'each_pass_duration_card4', 0.08, 0, actived=True) -train_loss_card4_kpi = CostKpi('train_loss_card4', 0.08, 0) - -tracking_kpis = [ - each_pass_duration_card1_kpi, - train_loss_card1_kpi, - each_pass_duration_card4_kpi, - train_loss_card4_kpi, -] - - -def parse_log(log): - ''' - This method should be implemented by model developers. - - The suggestion: - - each line in the log should be key, value, for example: - - " - train_cost\t1.0 - test_cost\t1.0 - train_cost\t1.0 - train_cost\t1.0 - train_acc\t1.2 - " - ''' - for line in log.split('\n'): - fs = line.strip().split('\t') - print(fs) - if len(fs) == 3 and fs[0] == 'kpis': - kpi_name = fs[1] - kpi_value = float(fs[2]) - yield kpi_name, kpi_value - - -def log_to_ce(log): - kpi_tracker = {} - for kpi in tracking_kpis: - kpi_tracker[kpi.name] = kpi - - for (kpi_name, kpi_value) in parse_log(log): - print(kpi_name, kpi_value) - kpi_tracker[kpi_name].add_record(kpi_value) - kpi_tracker[kpi_name].persist() - - -if __name__ == '__main__': - log = sys.stdin.read() - log_to_ce(log) diff --git a/PaddleCV/rcnn/box_utils.py b/PaddleCV/rcnn/box_utils.py deleted file mode 100644 index bb3fe9c8f0cb261004578abba651ad7210518a22..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/box_utils.py +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Based on: -# -------------------------------------------------------- -# Detectron -# Copyright (c) 2017-present, Facebook, Inc. -# Licensed under the Apache License, Version 2.0; -# Written by Ross Girshick -# -------------------------------------------------------- - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np - - -def xywh_to_xyxy(xywh): - """Convert [x1 y1 w h] box format to [x1 y1 x2 y2] format.""" - if isinstance(xywh, (list, tuple)): - # Single box given as a list of coordinates - assert len(xywh) == 4 - x1, y1 = xywh[0], xywh[1] - x2 = x1 + np.maximum(0., xywh[2] - 1.) - y2 = y1 + np.maximum(0., xywh[3] - 1.) - return (x1, y1, x2, y2) - elif isinstance(xywh, np.ndarray): - # Multiple boxes given as a 2D ndarray - return np.hstack( - (xywh[:, 0:2], xywh[:, 0:2] + np.maximum(0, xywh[:, 2:4] - 1))) - else: - raise TypeError('Argument xywh must be a list, tuple, or numpy array.') - - -def xyxy_to_xywh(xyxy): - """Convert [x1 y1 x2 y2] box format to [x1 y1 w h] format.""" - if isinstance(xyxy, (list, tuple)): - # Single box given as a list of coordinates - assert len(xyxy) == 4 - x1, y1 = xyxy[0], xyxy[1] - w = xyxy[2] - x1 + 1 - h = xyxy[3] - y1 + 1 - return (x1, y1, w, h) - elif isinstance(xyxy, np.ndarray): - # Multiple boxes given as a 2D ndarray - return np.hstack((xyxy[:, 0:2], xyxy[:, 2:4] - xyxy[:, 0:2] + 1)) - else: - raise TypeError('Argument xyxy must be a list, tuple, or numpy array.') - - -def clip_xyxy_to_image(x1, y1, x2, y2, height, width): - """Clip coordinates to an image with the given height and width.""" - x1 = np.minimum(width - 1., np.maximum(0., x1)) - y1 = np.minimum(height - 1., np.maximum(0., y1)) - x2 = np.minimum(width - 1., np.maximum(0., x2)) - y2 = np.minimum(height - 1., np.maximum(0., y2)) - return x1, y1, x2, y2 - - -def nms(dets, thresh): - """Apply classic DPM-style greedy NMS.""" - if dets.shape[0] == 0: - return [] - x1 = dets[:, 0] - y1 = dets[:, 1] - x2 = dets[:, 2] - y2 = dets[:, 3] - scores = dets[:, 4] - - areas = (x2 - x1 + 1) * (y2 - y1 + 1) - order = scores.argsort()[::-1] - - ndets = dets.shape[0] - suppressed = np.zeros((ndets), dtype=np.int) - - # nominal indices - # _i, _j - # sorted indices - # i, j - # temp variables for box i's (the box currently under consideration) - # ix1, iy1, ix2, iy2, iarea - - # variables for computing overlap with box j (lower scoring box) - # xx1, yy1, xx2, yy2 - # w, h - # inter, ovr - - for _i in range(ndets): - i = order[_i] - if suppressed[i] == 1: - continue - ix1 = x1[i] - iy1 = y1[i] - ix2 = x2[i] - iy2 = y2[i] - iarea = areas[i] - for _j in range(_i + 1, ndets): - j = order[_j] - if suppressed[j] == 1: - continue - xx1 = max(ix1, x1[j]) - yy1 = max(iy1, y1[j]) - xx2 = min(ix2, x2[j]) - yy2 = min(iy2, y2[j]) - w = max(0.0, xx2 - xx1 + 1) - h = max(0.0, yy2 - yy1 + 1) - inter = w * h - ovr = inter / (iarea + areas[j] - inter) - if ovr >= thresh: - suppressed[j] = 1 - - return np.where(suppressed == 0)[0] - - -def expand_boxes(boxes, scale): - """Expand an array of boxes by a given scale.""" - w_half = (boxes[:, 2] - boxes[:, 0]) * .5 - h_half = (boxes[:, 3] - boxes[:, 1]) * .5 - x_c = (boxes[:, 2] + boxes[:, 0]) * .5 - y_c = (boxes[:, 3] + boxes[:, 1]) * .5 - - w_half *= scale - h_half *= scale - - boxes_exp = np.zeros(boxes.shape) - boxes_exp[:, 0] = x_c - w_half - boxes_exp[:, 2] = x_c + w_half - boxes_exp[:, 1] = y_c - h_half - boxes_exp[:, 3] = y_c + h_half - - return boxes_exp diff --git a/PaddleCV/rcnn/colormap.py b/PaddleCV/rcnn/colormap.py deleted file mode 100644 index 8c2447794fc2e9841b30c2cdf11e8fc70d20d764..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/colormap.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. -# -# Based on: -# -------------------------------------------------------- -# Detectron -# Copyright (c) 2017-present, Facebook, Inc. -# Licensed under the Apache License, Version 2.0; -# Written by Ross Girshick -# -------------------------------------------------------- - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np - - -def colormap(rgb=False): - color_list = np.array([ - 0.000, 0.447, 0.741, 0.850, 0.325, 0.098, 0.929, 0.694, 0.125, 0.494, - 0.184, 0.556, 0.466, 0.674, 0.188, 0.301, 0.745, 0.933, 0.635, 0.078, - 0.184, 0.300, 0.300, 0.300, 0.600, 0.600, 0.600, 1.000, 0.000, 0.000, - 1.000, 0.500, 0.000, 0.749, 0.749, 0.000, 0.000, 1.000, 0.000, 0.000, - 0.000, 1.000, 0.667, 0.000, 1.000, 0.333, 0.333, 0.000, 0.333, 0.667, - 0.000, 0.333, 1.000, 0.000, 0.667, 0.333, 0.000, 0.667, 0.667, 0.000, - 0.667, 1.000, 0.000, 1.000, 0.333, 0.000, 1.000, 0.667, 0.000, 1.000, - 1.000, 0.000, 0.000, 0.333, 0.500, 0.000, 0.667, 0.500, 0.000, 1.000, - 0.500, 0.333, 0.000, 0.500, 0.333, 0.333, 0.500, 0.333, 0.667, 0.500, - 0.333, 1.000, 0.500, 0.667, 0.000, 0.500, 0.667, 0.333, 0.500, 0.667, - 0.667, 0.500, 0.667, 1.000, 0.500, 1.000, 0.000, 0.500, 1.000, 0.333, - 0.500, 1.000, 0.667, 0.500, 1.000, 1.000, 0.500, 0.000, 0.333, 1.000, - 0.000, 0.667, 1.000, 0.000, 1.000, 1.000, 0.333, 0.000, 1.000, 0.333, - 0.333, 1.000, 0.333, 0.667, 1.000, 0.333, 1.000, 1.000, 0.667, 0.000, - 1.000, 0.667, 0.333, 1.000, 0.667, 0.667, 1.000, 0.667, 1.000, 1.000, - 1.000, 0.000, 1.000, 1.000, 0.333, 1.000, 1.000, 0.667, 1.000, 0.167, - 0.000, 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, - 0.000, 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, - 0.000, 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, - 0.833, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.167, 0.000, 0.000, - 0.333, 0.000, 0.000, 0.500, 0.000, 0.000, 0.667, 0.000, 0.000, 0.833, - 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 0.143, 0.143, 0.143, 0.286, - 0.286, 0.286, 0.429, 0.429, 0.429, 0.571, 0.571, 0.571, 0.714, 0.714, - 0.714, 0.857, 0.857, 0.857, 1.000, 1.000, 1.000 - ]).astype(np.float32) - color_list = color_list.reshape((-1, 3)) * 255 - if not rgb: - color_list = color_list[:, ::-1] - return color_list diff --git a/PaddleCV/rcnn/config.py b/PaddleCV/rcnn/config.py deleted file mode 100644 index 2a8ebdf7c1871f5863facd6e2138993ed4d7ffd1..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/config.py +++ /dev/null @@ -1,238 +0,0 @@ -# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals -from edict import AttrDict -import six -import numpy as np - -_C = AttrDict() -cfg = _C - -# -# Training options -# -_C.TRAIN = AttrDict() - -# scales an image's shortest side -_C.TRAIN.scales = [800] - -# max size of longest side -_C.TRAIN.max_size = 1333 - -# images per GPU in minibatch -_C.TRAIN.im_per_batch = 1 - -# roi minibatch size per image -_C.TRAIN.batch_size_per_im = 512 - -# target fraction of foreground roi minibatch -_C.TRAIN.fg_fractrion = 0.25 - -# overlap threshold for a foreground roi -_C.TRAIN.fg_thresh = 0.5 - -# overlap threshold for a background roi -_C.TRAIN.bg_thresh_hi = 0.5 -_C.TRAIN.bg_thresh_lo = 0.0 - -# If False, only resize image and not pad, image shape is different between -# GPUs in one mini-batch. If True, image shape is the same in one mini-batch. -_C.TRAIN.padding_minibatch = False - -# Snapshot period -_C.TRAIN.snapshot_iter = 10000 - -# number of RPN proposals to keep before NMS -_C.TRAIN.rpn_pre_nms_top_n = 12000 - -# number of RPN proposals to keep after NMS -_C.TRAIN.rpn_post_nms_top_n = 2000 - -# NMS threshold used on RPN proposals -_C.TRAIN.rpn_nms_thresh = 0.7 - -# min size in RPN proposals -_C.TRAIN.rpn_min_size = 0.0 - -# eta for adaptive NMS in RPN -_C.TRAIN.rpn_eta = 1.0 - -# number of RPN examples per image -_C.TRAIN.rpn_batch_size_per_im = 256 - -# remove anchors out of the image -_C.TRAIN.rpn_straddle_thresh = 0. - -# target fraction of foreground examples pre RPN minibatch -_C.TRAIN.rpn_fg_fraction = 0.5 - -# min overlap between anchor and gt box to be a positive examples -_C.TRAIN.rpn_positive_overlap = 0.7 - -# max overlap between anchor and gt box to be a negative examples -_C.TRAIN.rpn_negative_overlap = 0.3 - -# stopgrad at a specified stage -_C.TRAIN.freeze_at = 2 - -# min area of ground truth box -_C.TRAIN.gt_min_area = -1 - -# Use horizontally-flipped images during training? -_C.TRAIN.use_flipped = True - -# -# Inference options -# -_C.TEST = AttrDict() - -# scales an image's shortest side -_C.TEST.scales = [800] - -# max size of longest side -_C.TEST.max_size = 1333 - -# eta for adaptive NMS in RPN -_C.TEST.rpn_eta = 1.0 - -# min score threshold to infer -_C.TEST.score_thresh = 0.05 - -# overlap threshold used for NMS -_C.TEST.nms_thresh = 0.5 - -# number of RPN proposals to keep before NMS -_C.TEST.rpn_pre_nms_top_n = 6000 - -# number of RPN proposals to keep after NMS -_C.TEST.rpn_post_nms_top_n = 1000 - -# min size in RPN proposals -_C.TEST.rpn_min_size = 0.0 - -# max number of detections -_C.TEST.detections_per_im = 100 - -# NMS threshold used on RPN proposals -_C.TEST.rpn_nms_thresh = 0.7 - -# -# Model options -# - -# Whether use mask rcnn head -_C.MASK_ON = True - -# weight for bbox regression targets -_C.bbox_reg_weights = [0.1, 0.1, 0.2, 0.2] - -# RPN anchor sizes -_C.anchor_sizes = [32, 64, 128, 256, 512] - -# RPN anchor ratio -_C.aspect_ratio = [0.5, 1, 2] - -# variance of anchors -_C.variances = [1., 1., 1., 1.] - -# stride of feature map -_C.rpn_stride = [16.0, 16.0] - -# Use roi pool or roi align, 'RoIPool' or 'RoIAlign' -_C.roi_func = 'RoIAlign' - -# sampling ratio for roi align -_C.sampling_ratio = 0 - -# pooled width and pooled height -_C.roi_resolution = 14 - -# spatial scale -_C.spatial_scale = 1. / 16. - -# resolution to represent mask labels -_C.resolution = 14 - -# Number of channels in the mask head -_C.dim_reduced = 256 - -# Threshold for converting soft masks to hard masks -_C.mrcnn_thresh_binarize = 0.5 - -# -# SOLVER options -# - -# derived learning rate the to get the final learning rate. -_C.learning_rate = 0.01 - -# maximum number of iterations, 1x: 180000, 2x:360000 -_C.max_iter = 180000 -#_C.max_iter = 360000 - -# warm up to learning rate -_C.warm_up_iter = 500 -_C.warm_up_factor = 1. / 3. - -# lr steps_with_decay, 1x: [120000, 160000], 2x: [240000, 320000] -_C.lr_steps = [120000, 160000] -#_C.lr_steps = [240000, 320000] -_C.lr_gamma = 0.1 - -# L2 regularization hyperparameter -_C.weight_decay = 0.0001 - -# momentum with SGD -_C.momentum = 0.9 - -# -# ENV options -# - -# support both CPU and GPU -_C.use_gpu = True - -# Whether use parallel -_C.parallel = True - -# Class number -_C.class_num = 81 - -# support pyreader -_C.use_pyreader = True - -# pixel mean values -_C.pixel_means = [102.9801, 115.9465, 122.7717] - -# clip box to prevent overflowing -_C.bbox_clip = np.log(1000. / 16.) - - -def merge_cfg_from_args(args, mode): - """Merge config keys, values in args into the global config.""" - if mode == 'train': - sub_d = _C.TRAIN - else: - sub_d = _C.TEST - for k, v in sorted(six.iteritems(vars(args))): - d = _C - try: - value = eval(v) - except: - value = v - if k in sub_d: - sub_d[k] = value - else: - d[k] = value diff --git a/PaddleCV/rcnn/data_utils.py b/PaddleCV/rcnn/data_utils.py deleted file mode 100644 index 86be7f1d49762c7e57180304edfde0810374449d..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/data_utils.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Based on: -# -------------------------------------------------------- -# Detectron -# Copyright (c) 2017-present, Facebook, Inc. -# Licensed under the Apache License, Version 2.0; -# Written by Ross Girshick -# -------------------------------------------------------- - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import cv2 -import numpy as np -from config import cfg -import os - - -class DatasetPath(object): - def __init__(self, mode): - self.mode = mode - mode_name = 'train' if mode == 'train' else 'val' - if cfg.dataset != 'coco2014' and cfg.dataset != 'coco2017': - raise NotImplementedError('Dataset {} not supported'.format( - cfg.dataset)) - self.sub_name = mode_name + cfg.dataset[-4:] - - def get_data_dir(self): - return os.path.join(cfg.data_dir, self.sub_name) - - def get_file_list(self): - sfile_list = 'annotations/instances_' + self.sub_name + '.json' - return os.path.join(cfg.data_dir, sfile_list) - - -def get_image_blob(roidb, mode): - """Builds an input blob from the images in the roidb at the specified - scales. - """ - if mode == 'train': - scales = cfg.TRAIN.scales - scale_ind = np.random.randint(0, high=len(scales)) - target_size = scales[scale_ind] - max_size = cfg.TRAIN.max_size - else: - target_size = cfg.TEST.scales[0] - max_size = cfg.TEST.max_size - im = cv2.imread(roidb['image']) - try: - assert im is not None - except AssertionError as e: - print('Failed to read image \'{}\''.format(roidb['image'])) - os._exit(0) - if roidb['flipped']: - im = im[:, ::-1, :] - im, im_scale = prep_im_for_blob(im, cfg.pixel_means, target_size, max_size) - - return im, im_scale - - -def prep_im_for_blob(im, pixel_means, target_size, max_size): - """Prepare an image for use as a network input blob. Specially: - - Subtract per-channel pixel mean - - Convert to float32 - - Rescale to each of the specified target size (capped at max_size) - Returns a list of transformed images, one for each target size. Also returns - the scale factors that were used to compute each returned image. - """ - im = im.astype(np.float32, copy=False) - im -= pixel_means - - im_shape = im.shape - im_size_min = np.min(im_shape[0:2]) - im_size_max = np.max(im_shape[0:2]) - im_scale = float(target_size) / float(im_size_min) - # Prevent the biggest axis from being more than max_size - if np.round(im_scale * im_size_max) > max_size: - im_scale = float(max_size) / float(im_size_max) - im = cv2.resize( - im, - None, - None, - fx=im_scale, - fy=im_scale, - interpolation=cv2.INTER_LINEAR) - im_height, im_width, channel = im.shape - channel_swap = (2, 0, 1) #(batch, channel, height, width) - im = im.transpose(channel_swap) - return im, im_scale diff --git a/PaddleCV/rcnn/dataset/coco/download.py b/PaddleCV/rcnn/dataset/coco/download.py deleted file mode 100644 index 9df49bef6eab9d615e61e3cd429dcfdbeb5708ce..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/dataset/coco/download.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import os.path as osp -import sys -import zipfile -import logging - -from paddle.dataset.common import download - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -DATASETS = { - 'coco': [ - # coco2017 - ('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', ), - # coco2014 - ('http://images.cocodataset.org/zips/train2014.zip', - '0da8c0bd3d6becc4dcb32757491aca88', ), - ('http://images.cocodataset.org/zips/val2014.zip', - 'a3d79f5ed8d289b7a7554ce06a5782b3', ), - ('http://images.cocodataset.org/annotations/annotations_trainval2014.zip', - '0a379cfc70b0e71301e0f377548639bd', ), - ], -} - - -def download_decompress_file(data_dir, url, md5): - logger.info("Downloading from {}".format(url)) - zip_file = download(url, data_dir, md5) - logger.info("Decompressing {}".format(zip_file)) - with zipfile.ZipFile(zip_file) as zf: - zf.extractall(path=data_dir) - os.remove(zip_file) - - -if __name__ == "__main__": - data_dir = osp.split(osp.realpath(sys.argv[0]))[0] - for name, infos in DATASETS.items(): - for info in infos: - download_decompress_file(data_dir, info[0], info[1]) - logger.info("Download dataset {} finished.".format(name)) diff --git a/PaddleCV/rcnn/dist_utils.py b/PaddleCV/rcnn/dist_utils.py deleted file mode 100644 index 49df856d950a689951a6e070b1c1810be196f758..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/dist_utils.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import paddle.fluid as fluid - - -def nccl2_prepare(trainer_id, startup_prog, main_prog): - config = fluid.DistributeTranspilerConfig() - config.mode = "nccl2" - t = fluid.DistributeTranspiler(config=config) - t.transpile( - trainer_id, - trainers=os.environ.get('PADDLE_TRAINER_ENDPOINTS'), - current_endpoint=os.environ.get('PADDLE_CURRENT_ENDPOINT'), - startup_program=startup_prog, - program=main_prog) - - -def prepare_for_multi_process(exe, build_strategy, train_prog): - # prepare for multi-process - trainer_id = int(os.environ.get('PADDLE_TRAINER_ID', 0)) - num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - if num_trainers < 2: return - print("PADDLE_TRAINERS_NUM", num_trainers) - print("PADDLE_TRAINER_ID", trainer_id) - build_strategy.num_trainers = num_trainers - build_strategy.trainer_id = trainer_id - # NOTE(zcd): use multi processes to train the model, - # and each process use one GPU card. - startup_prog = fluid.Program() - nccl2_prepare(trainer_id, startup_prog, train_prog) - # the startup_prog are run two times, but it doesn't matter. - exe.run(startup_prog) diff --git a/PaddleCV/rcnn/edict.py b/PaddleCV/rcnn/edict.py deleted file mode 100644 index 415cc6f7d6514a2fa79fb2a75bb23d8b8fd2fe72..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/edict.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - - -class AttrDict(dict): - def __init__(self, *args, **kwargs): - super(AttrDict, self).__init__(*args, **kwargs) - - def __getattr__(self, name): - if name in self.__dict__: - return self.__dict__[name] - elif name in self: - return self[name] - else: - raise AttributeError(name) - - def __setattr__(self, name, value): - if name in self.__dict__: - self.__dict__[name] = value - else: - self[name] = value diff --git a/PaddleCV/rcnn/eval_coco_map.py b/PaddleCV/rcnn/eval_coco_map.py deleted file mode 100644 index b0439fa053d869abc3d4da9d3622013308a522a5..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/eval_coco_map.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import io -import six -import time -import numpy as np -from eval_helper import * -import paddle -import paddle.fluid as fluid -import reader -from utility import print_arguments, parse_args, check_gpu -import models.model_builder as model_builder -import models.resnet as resnet -import json -from pycocotools.coco import COCO -from pycocotools.cocoeval import COCOeval, Params -from config import cfg -from data_utils import DatasetPath - - -def eval(): - - data_path = DatasetPath('val') - test_list = data_path.get_file_list() - - image_shape = [3, cfg.TEST.max_size, cfg.TEST.max_size] - class_nums = cfg.class_num - devices = os.getenv("CUDA_VISIBLE_DEVICES") or "" - devices_num = len(devices.split(",")) - total_batch_size = devices_num * cfg.TRAIN.im_per_batch - cocoGt = COCO(test_list) - num_id_to_cat_id_map = {i + 1: v for i, v in enumerate(cocoGt.getCatIds())} - category_ids = cocoGt.getCatIds() - label_list = { - item['id']: item['name'] - for item in cocoGt.loadCats(category_ids) - } - label_list[0] = ['background'] - - model = model_builder.RCNN( - add_conv_body_func=resnet.add_ResNet50_conv4_body, - add_roi_box_head_func=resnet.add_ResNet_roi_conv5_head, - use_pyreader=False, - mode='val') - model.build_model(image_shape) - pred_boxes = model.eval_bbox_out() - if cfg.MASK_ON: - masks = model.eval_mask_out() - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - # yapf: disable - if cfg.pretrained_model: - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrained_model, var.name)) - fluid.io.load_vars(exe, cfg.pretrained_model, predicate=if_exist) - - # yapf: enable - test_reader = reader.test(total_batch_size) - feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) - - dts_res = [] - segms_res = [] - if cfg.MASK_ON: - fetch_list = [pred_boxes, masks] - else: - fetch_list = [pred_boxes] - eval_start = time.time() - for batch_id, batch_data in enumerate(test_reader()): - start = time.time() - im_info = [] - for data in batch_data: - im_info.append(data[1]) - results = exe.run(fetch_list=[v.name for v in fetch_list], - feed=feeder.feed(batch_data), - return_numpy=False) - - pred_boxes_v = results[0] - if cfg.MASK_ON: - masks_v = results[1] - - new_lod = pred_boxes_v.lod() - nmsed_out = pred_boxes_v - - dts_res += get_dt_res(total_batch_size, new_lod[0], nmsed_out, - batch_data, num_id_to_cat_id_map) - - if cfg.MASK_ON and np.array(masks_v).shape != (1, 1): - segms_out = segm_results(nmsed_out, masks_v, im_info) - segms_res += get_segms_res(total_batch_size, new_lod[0], segms_out, - batch_data, num_id_to_cat_id_map) - end = time.time() - print('batch id: {}, time: {}'.format(batch_id, end - start)) - eval_end = time.time() - total_time = eval_end - eval_start - print('average time of eval is: {}'.format(total_time / (batch_id + 1))) - assert len(dts_res) > 0, "The number of valid bbox detected is zero.\n \ - Please use reasonable model and check input data." - - if cfg.MASK_ON: - assert len( - segms_res) > 0, "The number of valid mask detected is zero.\n \ - Please use reasonable model and check input data." - - with io.open("detection_bbox_result.json", 'w') as outfile: - encode_func = unicode if six.PY2 else str - outfile.write(encode_func(json.dumps(dts_res))) - print("start evaluate bbox using coco api") - cocoDt = cocoGt.loadRes("detection_bbox_result.json") - cocoEval = COCOeval(cocoGt, cocoDt, 'bbox') - cocoEval.evaluate() - cocoEval.accumulate() - cocoEval.summarize() - - if cfg.MASK_ON: - with io.open("detection_segms_result.json", 'w') as outfile: - encode_func = unicode if six.PY2 else str - outfile.write(encode_func(json.dumps(segms_res))) - print("start evaluate mask using coco api") - cocoDt = cocoGt.loadRes("detection_segms_result.json") - cocoEval = COCOeval(cocoGt, cocoDt, 'segm') - cocoEval.evaluate() - cocoEval.accumulate() - cocoEval.summarize() - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - eval() diff --git a/PaddleCV/rcnn/eval_helper.py b/PaddleCV/rcnn/eval_helper.py deleted file mode 100644 index dba67f6bbed2c87b5794dcc9c01a36205381e0d1..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/eval_helper.py +++ /dev/null @@ -1,386 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -import os -import numpy as np -import paddle.fluid as fluid -import math -import box_utils -from PIL import Image -from PIL import ImageDraw -from PIL import ImageFont -from config import cfg -import pycocotools.mask as mask_util -import six -from colormap import colormap -import cv2 - - -def box_decoder(deltas, boxes, weights): - if boxes.shape[0] == 0: - return np.zeros((0, deltas.shape[1]), dtype=deltas.dtype) - - boxes = boxes.astype(deltas.dtype, copy=False) - - widths = boxes[:, 2] - boxes[:, 0] + 1.0 - heights = boxes[:, 3] - boxes[:, 1] + 1.0 - ctr_x = boxes[:, 0] + 0.5 * widths - ctr_y = boxes[:, 1] + 0.5 * heights - - wx, wy, ww, wh = weights - dx = deltas[:, 0::4] * wx - dy = deltas[:, 1::4] * wy - dw = deltas[:, 2::4] * ww - dh = deltas[:, 3::4] * wh - - # Prevent sending too large values into np.exp() - dw = np.minimum(dw, cfg.bbox_clip) - dh = np.minimum(dh, cfg.bbox_clip) - - pred_ctr_x = dx * widths[:, np.newaxis] + ctr_x[:, np.newaxis] - pred_ctr_y = dy * heights[:, np.newaxis] + ctr_y[:, np.newaxis] - pred_w = np.exp(dw) * widths[:, np.newaxis] - pred_h = np.exp(dh) * heights[:, np.newaxis] - - pred_boxes = np.zeros(deltas.shape, dtype=deltas.dtype) - # x1 - pred_boxes[:, 0::4] = pred_ctr_x - 0.5 * pred_w - # y1 - pred_boxes[:, 1::4] = pred_ctr_y - 0.5 * pred_h - # x2 (note: "- 1" is correct; don't be fooled by the asymmetry) - pred_boxes[:, 2::4] = pred_ctr_x + 0.5 * pred_w - 1 - # y2 (note: "- 1" is correct; don't be fooled by the asymmetry) - pred_boxes[:, 3::4] = pred_ctr_y + 0.5 * pred_h - 1 - - return pred_boxes - - -def clip_tiled_boxes(boxes, im_shape): - """Clip boxes to image boundaries. im_shape is [height, width] and boxes - has shape (N, 4 * num_tiled_boxes).""" - assert boxes.shape[1] % 4 == 0, \ - 'boxes.shape[1] is {:d}, but must be divisible by 4.'.format( - boxes.shape[1] - ) - # x1 >= 0 - boxes[:, 0::4] = np.maximum(np.minimum(boxes[:, 0::4], im_shape[1] - 1), 0) - # y1 >= 0 - boxes[:, 1::4] = np.maximum(np.minimum(boxes[:, 1::4], im_shape[0] - 1), 0) - # x2 < im_shape[1] - boxes[:, 2::4] = np.maximum(np.minimum(boxes[:, 2::4], im_shape[1] - 1), 0) - # y2 < im_shape[0] - boxes[:, 3::4] = np.maximum(np.minimum(boxes[:, 3::4], im_shape[0] - 1), 0) - return boxes - - -def get_nmsed_box(rpn_rois, confs, locs, class_nums, im_info): - lod = rpn_rois.lod()[0] - rpn_rois_v = np.array(rpn_rois) - variance_v = np.array(cfg.bbox_reg_weights) - confs_v = np.array(confs) - locs_v = np.array(locs) - im_results = [[] for _ in range(len(lod) - 1)] - new_lod = [0] - for i in range(len(lod) - 1): - start = lod[i] - end = lod[i + 1] - if start == end: - continue - locs_n = locs_v[start:end, :] - rois_n = rpn_rois_v[start:end, :] - rois_n = rois_n / im_info[i][2] - rois_n = box_decoder(locs_n, rois_n, variance_v) - rois_n = clip_tiled_boxes(rois_n, im_info[i][:2] / im_info[i][2]) - - cls_boxes = [[] for _ in range(class_nums)] - scores_n = confs_v[start:end, :] - for j in range(1, class_nums): - inds = np.where(scores_n[:, j] > cfg.TEST.score_thresh)[0] - scores_j = scores_n[inds, j] - rois_j = rois_n[inds, j * 4:(j + 1) * 4] - dets_j = np.hstack((scores_j[:, np.newaxis], rois_j)).astype( - np.float32, copy=False) - keep = box_utils.nms(dets_j, cfg.TEST.nms_thresh) - nms_dets = dets_j[keep, :] - #add labels - label = np.array([j for _ in range(len(keep))]) - nms_dets = np.hstack((nms_dets, label[:, np.newaxis])).astype( - np.float32, copy=False) - cls_boxes[j] = nms_dets - # Limit to max_per_image detections **over all classes** - image_scores = np.hstack( - [cls_boxes[j][:, 1] for j in range(1, class_nums)]) - if len(image_scores) > cfg.TEST.detections_per_im: - image_thresh = np.sort(image_scores)[-cfg.TEST.detections_per_im] - for j in range(1, class_nums): - keep = np.where(cls_boxes[j][:, 1] >= image_thresh)[0] - cls_boxes[j] = cls_boxes[j][keep, :] - - im_results_n = np.vstack([cls_boxes[j] for j in range(1, class_nums)]) - im_results[i] = im_results_n - new_lod.append(len(im_results_n) + new_lod[-1]) - boxes = im_results_n[:, 2:] - scores = im_results_n[:, 1] - labels = im_results_n[:, 0] - im_results = np.vstack([im_results[k] for k in range(len(lod) - 1)]) - return new_lod, im_results - - -def get_dt_res(batch_size, lod, nmsed_out, data, num_id_to_cat_id_map): - dts_res = [] - nmsed_out_v = np.array(nmsed_out) - if nmsed_out_v.shape == ( - 1, - 1, ): - return dts_res - assert (len(lod) == batch_size + 1), \ - "Error Lod Tensor offset dimension. Lod({}) vs. batch_size({})"\ - .format(len(lod), batch_size) - k = 0 - for i in range(batch_size): - dt_num_this_img = lod[i + 1] - lod[i] - image_id = int(data[i][-1]) - image_width = int(data[i][1][1]) - image_height = int(data[i][1][2]) - for j in range(dt_num_this_img): - dt = nmsed_out_v[k] - k = k + 1 - num_id, score, xmin, ymin, xmax, ymax = dt.tolist() - category_id = num_id_to_cat_id_map[num_id] - w = xmax - xmin + 1 - h = ymax - ymin + 1 - bbox = [xmin, ymin, w, h] - dt_res = { - 'image_id': image_id, - 'category_id': category_id, - 'bbox': bbox, - 'score': score - } - dts_res.append(dt_res) - return dts_res - - -def get_segms_res(batch_size, lod, segms_out, data, num_id_to_cat_id_map): - segms_res = [] - segms_out_v = np.array(segms_out) - k = 0 - for i in range(batch_size): - dt_num_this_img = lod[i + 1] - lod[i] - image_id = int(data[i][-1]) - for j in range(dt_num_this_img): - dt = segms_out_v[k] - k = k + 1 - segm, num_id, score = dt.tolist() - cat_id = num_id_to_cat_id_map[num_id] - if six.PY3: - if 'counts' in segm: - segm['counts'] = segm['counts'].decode("utf8") - segm_res = { - 'image_id': image_id, - 'category_id': cat_id, - 'segmentation': segm, - 'score': score - } - segms_res.append(segm_res) - return segms_res - - -def draw_bounding_box_on_image(image_path, - nms_out, - draw_threshold, - labels_map, - image=None): - if image is None: - image = Image.open(image_path) - draw = ImageDraw.Draw(image) - im_width, im_height = image.size - - for dt in np.array(nms_out): - num_id, score, xmin, ymin, xmax, ymax = dt.tolist() - if score < draw_threshold: - continue - draw.line( - [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin), - (xmin, ymin)], - width=2, - fill='red') - if image.mode == 'RGB': - draw.text((xmin, ymin), labels_map[num_id], (255, 255, 0)) - image_name = image_path.split('/')[-1] - print("image with bbox drawed saved as {}".format(image_name)) - image.save(image_name) - - -def draw_mask_on_image(image_path, segms_out, draw_threshold, alpha=0.7): - image = Image.open(image_path) - draw = ImageDraw.Draw(image) - im_width, im_height = image.size - mask_color_id = 0 - w_ratio = .4 - image = np.array(image).astype('float32') - for dt in np.array(segms_out): - segm, num_id, score = dt.tolist() - if score < draw_threshold: - continue - mask = mask_util.decode(segm) * 255 - color_list = colormap(rgb=True) - color_mask = color_list[mask_color_id % len(color_list), 0:3] - mask_color_id += 1 - for c in range(3): - color_mask[c] = color_mask[c] * (1 - w_ratio) + w_ratio * 255 - idx = np.nonzero(mask) - image[idx[0], idx[1], :] *= 1.0 - alpha - image[idx[0], idx[1], :] += alpha * color_mask - image = Image.fromarray(image.astype('uint8')) - return image - - -def segm_results(im_results, masks, im_info): - im_results = np.array(im_results) - class_num = cfg.class_num - M = cfg.resolution - scale = (M + 2.0) / M - lod = masks.lod()[0] - masks_v = np.array(masks) - boxes = im_results[:, 2:] - labels = im_results[:, 0] - segms_results = [[] for _ in range(len(lod) - 1)] - sum = 0 - for i in range(len(lod) - 1): - im_results_n = im_results[lod[i]:lod[i + 1]] - cls_segms = [] - masks_n = masks_v[lod[i]:lod[i + 1]] - boxes_n = boxes[lod[i]:lod[i + 1]] - labels_n = labels[lod[i]:lod[i + 1]] - im_h = int(round(im_info[i][0] / im_info[i][2])) - im_w = int(round(im_info[i][1] / im_info[i][2])) - boxes_n = box_utils.expand_boxes(boxes_n, scale) - boxes_n = boxes_n.astype(np.int32) - padded_mask = np.zeros((M + 2, M + 2), dtype=np.float32) - for j in range(len(im_results_n)): - class_id = int(labels_n[j]) - padded_mask[1:-1, 1:-1] = masks_n[j, class_id, :, :] - - ref_box = boxes_n[j, :] - w = ref_box[2] - ref_box[0] + 1 - h = ref_box[3] - ref_box[1] + 1 - w = np.maximum(w, 1) - h = np.maximum(h, 1) - - mask = cv2.resize(padded_mask, (w, h)) - mask = np.array(mask > cfg.mrcnn_thresh_binarize, dtype=np.uint8) - im_mask = np.zeros((im_h, im_w), dtype=np.uint8) - - x_0 = max(ref_box[0], 0) - x_1 = min(ref_box[2] + 1, im_w) - y_0 = max(ref_box[1], 0) - y_1 = min(ref_box[3] + 1, im_h) - im_mask[y_0:y_1, x_0:x_1] = mask[(y_0 - ref_box[1]):(y_1 - ref_box[ - 1]), (x_0 - ref_box[0]):(x_1 - ref_box[0])] - sum += im_mask.sum() - rle = mask_util.encode( - np.array( - im_mask[:, :, np.newaxis], order='F'))[0] - cls_segms.append(rle) - segms_results[i] = np.array(cls_segms)[:, np.newaxis] - segms_results = np.vstack([segms_results[k] for k in range(len(lod) - 1)]) - im_results = np.hstack([segms_results, im_results]) - return im_results[:, :3] - - -def coco17_labels(): - labels_map = { - 0: 'background', - 1: 'person', - 2: 'bicycle', - 3: 'car', - 4: 'motorcycle', - 5: 'airplane', - 6: 'bus', - 7: 'train', - 8: 'truck', - 9: 'boat', - 10: 'traffic light', - 11: 'fire hydrant', - 12: 'stop sign', - 13: 'parking meter', - 14: 'bench', - 15: 'bird', - 16: 'cat', - 17: 'dog', - 18: 'horse', - 19: 'sheep', - 20: 'cow', - 21: 'elephant', - 22: 'bear', - 23: 'zebra', - 24: 'giraffe', - 25: 'backpack', - 26: 'umbrella', - 27: 'handbag', - 28: 'tie', - 29: 'suitcase', - 30: 'frisbee', - 31: 'skis', - 32: 'snowboard', - 33: 'sports ball', - 34: 'kite', - 35: 'baseball bat', - 36: 'baseball glove', - 37: 'skateboard', - 38: 'surfboard', - 39: 'tennis racket', - 40: 'bottle', - 41: 'wine glass', - 42: 'cup', - 43: 'fork', - 44: 'knife', - 45: 'spoon', - 46: 'bowl', - 47: 'banana', - 48: 'apple', - 49: 'sandwich', - 50: 'orange', - 51: 'broccoli', - 52: 'carrot', - 53: 'hot dog', - 54: 'pizza', - 55: 'donut', - 56: 'cake', - 57: 'chair', - 58: 'couch', - 59: 'potted plant', - 60: 'bed', - 61: 'dining table', - 62: 'toilet', - 63: 'tv', - 64: 'laptop', - 65: 'mouse', - 66: 'remote', - 67: 'keyboard', - 68: 'cell phone', - 69: 'microwave', - 70: 'oven', - 71: 'toaster', - 72: 'sink', - 73: 'refrigerator', - 74: 'book', - 75: 'clock', - 76: 'vase', - 77: 'scissors', - 78: 'teddy bear', - 79: 'hair drier', - 80: 'toothbrush' - } - return labels_map diff --git a/PaddleCV/rcnn/image/000000000139.jpg b/PaddleCV/rcnn/image/000000000139.jpg deleted file mode 100644 index 3c83a2cc4a9a2f13534d81f0c4ede78ae32c58cb..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000000139.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/image/000000000139_mask.jpg b/PaddleCV/rcnn/image/000000000139_mask.jpg deleted file mode 100644 index 47dfa9a435bf81c8585e8100413cfc0d6719754c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000000139_mask.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/image/000000127517.jpg b/PaddleCV/rcnn/image/000000127517.jpg deleted file mode 100644 index 23d30251a5e386137b5881f4af48072abffad8dd..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000127517.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/image/000000127517_mask.jpg b/PaddleCV/rcnn/image/000000127517_mask.jpg deleted file mode 100644 index c0284591deadf6010bf780acf16124231c42d677..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000127517_mask.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/image/000000203864.jpg b/PaddleCV/rcnn/image/000000203864.jpg deleted file mode 100644 index f16ce4e05004404ff7353a8096318fd121e835a1..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000203864.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/image/000000515077.jpg b/PaddleCV/rcnn/image/000000515077.jpg deleted file mode 100644 index 61df889539b72f9b0a0b36c5731ff660a0955c46..0000000000000000000000000000000000000000 Binary files a/PaddleCV/rcnn/image/000000515077.jpg and /dev/null differ diff --git a/PaddleCV/rcnn/infer.py b/PaddleCV/rcnn/infer.py deleted file mode 100644 index d9d7ec6a05213a141057e33e1df02baa42b70d98..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/infer.py +++ /dev/null @@ -1,109 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import numpy as np -from eval_helper import * -import paddle -import paddle.fluid as fluid -import reader -from utility import print_arguments, parse_args, check_gpu -import models.model_builder as model_builder -import models.resnet as resnet -from config import cfg -from data_utils import DatasetPath - - -def infer(): - - try: - from pycocotools.coco import COCO - from pycocotools.cocoeval import COCOeval, Params - - data_path = DatasetPath('val') - test_list = data_path.get_file_list() - coco_api = COCO(test_list) - cid = coco_api.getCatIds() - cat_id_to_num_id_map = { - v: i + 1 - for i, v in enumerate(coco_api.getCatIds()) - } - category_ids = coco_api.getCatIds() - labels_map = { - cat_id_to_num_id_map[item['id']]: item['name'] - for item in coco_api.loadCats(category_ids) - } - labels_map[0] = 'background' - except: - print("The COCO dataset or COCO API is not exist, use the default " - "mapping of class index and real category name on COCO17.") - assert cfg.dataset == 'coco2017' - labels_map = coco17_labels() - - image_shape = [3, cfg.TEST.max_size, cfg.TEST.max_size] - class_nums = cfg.class_num - - model = model_builder.RCNN( - add_conv_body_func=resnet.add_ResNet50_conv4_body, - add_roi_box_head_func=resnet.add_ResNet_roi_conv5_head, - use_pyreader=False, - mode='infer') - model.build_model(image_shape) - pred_boxes = model.eval_bbox_out() - if cfg.MASK_ON: - masks = model.eval_mask_out() - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - # yapf: disable - if not os.path.exists(cfg.pretrained_model): - raise ValueError("Model path [%s] does not exist." % (cfg.pretrained_model)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrained_model, var.name)) - fluid.io.load_vars(exe, cfg.pretrained_model, predicate=if_exist) - # yapf: enable - infer_reader = reader.infer(cfg.image_path) - feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) - - dts_res = [] - segms_res = [] - if cfg.MASK_ON: - fetch_list = [pred_boxes, masks] - else: - fetch_list = [pred_boxes] - data = next(infer_reader()) - im_info = [data[0][1]] - result = exe.run(fetch_list=[v.name for v in fetch_list], - feed=feeder.feed(data), - return_numpy=False) - pred_boxes_v = result[0] - if cfg.MASK_ON: - masks_v = result[1] - new_lod = pred_boxes_v.lod() - nmsed_out = pred_boxes_v - image = None - if cfg.MASK_ON: - segms_out = segm_results(nmsed_out, masks_v, im_info) - image = draw_mask_on_image(cfg.image_path, segms_out, - cfg.draw_threshold) - - draw_bounding_box_on_image(cfg.image_path, nmsed_out, cfg.draw_threshold, - labels_map, image) - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - infer() diff --git a/PaddleCV/rcnn/learning_rate.py b/PaddleCV/rcnn/learning_rate.py deleted file mode 100644 index a4c9dfb6949054c86c8f307b0bfaa3eea61ee51c..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/learning_rate.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle.fluid as fluid -import paddle.fluid.layers.learning_rate_scheduler as lr_scheduler -from paddle.fluid.layers import control_flow - - -def exponential_with_warmup_decay(learning_rate, boundaries, values, - warmup_iter, warmup_factor): - global_step = lr_scheduler._decay_step_counter() - - lr = fluid.layers.create_global_var( - shape=[1], - value=0.0, - dtype='float32', - persistable=True, - name="learning_rate") - - warmup_iter_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(warmup_iter), force_cpu=True) - - with control_flow.Switch() as switch: - with switch.case(global_step < warmup_iter_var): - alpha = global_step / warmup_iter_var - factor = warmup_factor * (1 - alpha) + alpha - decayed_lr = learning_rate * factor - fluid.layers.assign(decayed_lr, lr) - - for i in range(len(boundaries)): - boundary_val = fluid.layers.fill_constant( - shape=[1], - dtype='float32', - value=float(boundaries[i]), - force_cpu=True) - value_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(values[i])) - with switch.case(global_step < boundary_val): - fluid.layers.assign(value_var, lr) - - last_value_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(values[len(values) - 1])) - with switch.default(): - fluid.layers.assign(last_value_var, lr) - - return lr diff --git a/PaddleCV/rcnn/models/__init__.py b/PaddleCV/rcnn/models/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/rcnn/models/model_builder.py b/PaddleCV/rcnn/models/model_builder.py deleted file mode 100644 index d46ae80d484703ee106f2f52a861718a83df1b7b..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/models/model_builder.py +++ /dev/null @@ -1,441 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Constant -from paddle.fluid.initializer import Normal -from paddle.fluid.initializer import MSRA -from paddle.fluid.regularizer import L2Decay -from config import cfg - - -class RCNN(object): - def __init__(self, - add_conv_body_func=None, - add_roi_box_head_func=None, - mode='train', - use_pyreader=True, - use_random=True): - self.add_conv_body_func = add_conv_body_func - self.add_roi_box_head_func = add_roi_box_head_func - self.mode = mode - self.use_pyreader = use_pyreader - self.use_random = use_random - - def build_model(self, image_shape): - self.build_input(image_shape) - body_conv = self.add_conv_body_func(self.image) - # RPN - self.rpn_heads(body_conv) - # Fast RCNN - self.fast_rcnn_heads(body_conv) - if self.mode != 'train': - self.eval_bbox() - # Mask RCNN - if cfg.MASK_ON: - self.mask_rcnn_heads(body_conv) - - def loss(self): - losses = [] - # Fast RCNN loss - loss_cls, loss_bbox = self.fast_rcnn_loss() - # RPN loss - rpn_cls_loss, rpn_reg_loss = self.rpn_loss() - losses = [loss_cls, loss_bbox, rpn_cls_loss, rpn_reg_loss] - rkeys = ['loss', 'loss_cls', 'loss_bbox', \ - 'loss_rpn_cls', 'loss_rpn_bbox',] - if cfg.MASK_ON: - loss_mask = self.mask_rcnn_loss() - losses = losses + [loss_mask] - rkeys = rkeys + ["loss_mask"] - loss = fluid.layers.sum(losses) - rloss = [loss] + losses - return rloss, rkeys - - def eval_mask_out(self): - return self.mask_fcn_logits - - def eval_bbox_out(self): - return self.pred_result - - def build_input(self, image_shape): - if self.use_pyreader: - in_shapes = [[-1] + image_shape, [-1, 4], [-1, 1], [-1, 1], - [-1, 3], [-1, 1]] - lod_levels = [0, 1, 1, 1, 0, 0] - dtypes = [ - 'float32', 'float32', 'int32', 'int32', 'float32', 'int64' - ] - if cfg.MASK_ON: - in_shapes.append([-1, 2]) - lod_levels.append(3) - dtypes.append('float32') - self.py_reader = fluid.layers.py_reader( - capacity=64, - shapes=in_shapes, - lod_levels=lod_levels, - dtypes=dtypes, - use_double_buffer=True) - ins = fluid.layers.read_file(self.py_reader) - self.image = ins[0] - self.gt_box = ins[1] - self.gt_label = ins[2] - self.is_crowd = ins[3] - self.im_info = ins[4] - self.im_id = ins[5] - if cfg.MASK_ON: - self.gt_masks = ins[6] - else: - self.image = fluid.layers.data( - name='image', shape=image_shape, dtype='float32') - self.gt_box = fluid.layers.data( - name='gt_box', shape=[4], dtype='float32', lod_level=1) - self.gt_label = fluid.layers.data( - name='gt_label', shape=[1], dtype='int32', lod_level=1) - self.is_crowd = fluid.layers.data( - name='is_crowd', shape=[1], dtype='int32', lod_level=1) - self.im_info = fluid.layers.data( - name='im_info', shape=[3], dtype='float32') - self.im_id = fluid.layers.data( - name='im_id', shape=[1], dtype='int64') - if cfg.MASK_ON: - self.gt_masks = fluid.layers.data( - name='gt_masks', shape=[2], dtype='float32', lod_level=3) - - def feeds(self): - if self.mode == 'infer': - return [self.image, self.im_info] - if self.mode == 'val': - return [self.image, self.im_info, self.im_id] - if not cfg.MASK_ON: - return [ - self.image, self.gt_box, self.gt_label, self.is_crowd, - self.im_info, self.im_id - ] - return [ - self.image, self.gt_box, self.gt_label, self.is_crowd, self.im_info, - self.im_id, self.gt_masks - ] - - def eval_bbox(self): - self.im_scale = fluid.layers.slice( - self.im_info, [1], starts=[2], ends=[3]) - im_scale_lod = fluid.layers.sequence_expand(self.im_scale, - self.rpn_rois) - boxes = self.rpn_rois / im_scale_lod - cls_prob = fluid.layers.softmax(self.cls_score, use_cudnn=False) - bbox_pred_reshape = fluid.layers.reshape(self.bbox_pred, - (-1, cfg.class_num, 4)) - decoded_box = fluid.layers.box_coder( - prior_box=boxes, - prior_box_var=cfg.bbox_reg_weights, - target_box=bbox_pred_reshape, - code_type='decode_center_size', - box_normalized=False, - axis=1) - cliped_box = fluid.layers.box_clip( - input=decoded_box, im_info=self.im_info) - self.pred_result = fluid.layers.multiclass_nms( - bboxes=cliped_box, - scores=cls_prob, - score_threshold=cfg.TEST.score_thresh, - nms_top_k=-1, - nms_threshold=cfg.TEST.nms_thresh, - keep_top_k=cfg.TEST.detections_per_im, - normalized=False) - - def rpn_heads(self, rpn_input): - # RPN hidden representation - dim_out = rpn_input.shape[1] - rpn_conv = fluid.layers.conv2d( - input=rpn_input, - num_filters=dim_out, - filter_size=3, - stride=1, - padding=1, - act='relu', - name='conv_rpn', - param_attr=ParamAttr( - name="conv_rpn_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="conv_rpn_b", learning_rate=2., regularizer=L2Decay(0.))) - self.anchor, self.var = fluid.layers.anchor_generator( - input=rpn_conv, - anchor_sizes=cfg.anchor_sizes, - aspect_ratios=cfg.aspect_ratio, - variance=cfg.variances, - stride=cfg.rpn_stride) - num_anchor = self.anchor.shape[2] - # Proposal classification scores - self.rpn_cls_score = fluid.layers.conv2d( - rpn_conv, - num_filters=num_anchor, - filter_size=1, - stride=1, - padding=0, - act=None, - name='rpn_cls_score', - param_attr=ParamAttr( - name="rpn_cls_logits_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="rpn_cls_logits_b", - learning_rate=2., - regularizer=L2Decay(0.))) - # Proposal bbox regression deltas - self.rpn_bbox_pred = fluid.layers.conv2d( - rpn_conv, - num_filters=4 * num_anchor, - filter_size=1, - stride=1, - padding=0, - act=None, - name='rpn_bbox_pred', - param_attr=ParamAttr( - name="rpn_bbox_pred_w", initializer=Normal( - loc=0., scale=0.01)), - bias_attr=ParamAttr( - name="rpn_bbox_pred_b", - learning_rate=2., - regularizer=L2Decay(0.))) - - rpn_cls_score_prob = fluid.layers.sigmoid( - self.rpn_cls_score, name='rpn_cls_score_prob') - - param_obj = cfg.TRAIN if self.mode == 'train' else cfg.TEST - pre_nms_top_n = param_obj.rpn_pre_nms_top_n - post_nms_top_n = param_obj.rpn_post_nms_top_n - nms_thresh = param_obj.rpn_nms_thresh - min_size = param_obj.rpn_min_size - eta = param_obj.rpn_eta - self.rpn_rois, self.rpn_roi_probs = fluid.layers.generate_proposals( - scores=rpn_cls_score_prob, - bbox_deltas=self.rpn_bbox_pred, - im_info=self.im_info, - anchors=self.anchor, - variances=self.var, - pre_nms_top_n=pre_nms_top_n, - post_nms_top_n=post_nms_top_n, - nms_thresh=nms_thresh, - min_size=min_size, - eta=eta) - if self.mode == 'train': - outs = fluid.layers.generate_proposal_labels( - rpn_rois=self.rpn_rois, - gt_classes=self.gt_label, - is_crowd=self.is_crowd, - gt_boxes=self.gt_box, - im_info=self.im_info, - batch_size_per_im=cfg.TRAIN.batch_size_per_im, - fg_fraction=cfg.TRAIN.fg_fractrion, - fg_thresh=cfg.TRAIN.fg_thresh, - bg_thresh_hi=cfg.TRAIN.bg_thresh_hi, - bg_thresh_lo=cfg.TRAIN.bg_thresh_lo, - bbox_reg_weights=cfg.bbox_reg_weights, - class_nums=cfg.class_num, - use_random=self.use_random) - - self.rois = outs[0] - self.labels_int32 = outs[1] - self.bbox_targets = outs[2] - self.bbox_inside_weights = outs[3] - self.bbox_outside_weights = outs[4] - - if cfg.MASK_ON: - mask_out = fluid.layers.generate_mask_labels( - im_info=self.im_info, - gt_classes=self.gt_label, - is_crowd=self.is_crowd, - gt_segms=self.gt_masks, - rois=self.rois, - labels_int32=self.labels_int32, - num_classes=cfg.class_num, - resolution=cfg.resolution) - self.mask_rois = mask_out[0] - self.roi_has_mask_int32 = mask_out[1] - self.mask_int32 = mask_out[2] - - def fast_rcnn_heads(self, roi_input): - if self.mode == 'train': - pool_rois = self.rois - else: - pool_rois = self.rpn_rois - self.res5_2_sum = self.add_roi_box_head_func(roi_input, pool_rois) - rcnn_out = fluid.layers.pool2d( - self.res5_2_sum, pool_type='avg', pool_size=7, name='res5_pool') - self.cls_score = fluid.layers.fc(input=rcnn_out, - size=cfg.class_num, - act=None, - name='cls_score', - param_attr=ParamAttr( - name='cls_score_w', - initializer=Normal( - loc=0.0, scale=0.001)), - bias_attr=ParamAttr( - name='cls_score_b', - learning_rate=2., - regularizer=L2Decay(0.))) - self.bbox_pred = fluid.layers.fc(input=rcnn_out, - size=4 * cfg.class_num, - act=None, - name='bbox_pred', - param_attr=ParamAttr( - name='bbox_pred_w', - initializer=Normal( - loc=0.0, scale=0.01)), - bias_attr=ParamAttr( - name='bbox_pred_b', - learning_rate=2., - regularizer=L2Decay(0.))) - - def SuffixNet(self, conv5): - mask_out = fluid.layers.conv2d_transpose( - input=conv5, - num_filters=cfg.dim_reduced, - filter_size=2, - stride=2, - act='relu', - param_attr=ParamAttr( - name='conv5_mask_w', initializer=MSRA(uniform=False)), - bias_attr=ParamAttr( - name='conv5_mask_b', learning_rate=2., regularizer=L2Decay(0.))) - act_func = None - if self.mode != 'train': - act_func = 'sigmoid' - mask_fcn_logits = fluid.layers.conv2d( - input=mask_out, - num_filters=cfg.class_num, - filter_size=1, - act=act_func, - param_attr=ParamAttr( - name='mask_fcn_logits_w', initializer=MSRA(uniform=False)), - bias_attr=ParamAttr( - name="mask_fcn_logits_b", - learning_rate=2., - regularizer=L2Decay(0.))) - - if self.mode != 'train': - mask_fcn_logits = fluid.layers.lod_reset(mask_fcn_logits, - self.pred_result) - return mask_fcn_logits - - def mask_rcnn_heads(self, mask_input): - if self.mode == 'train': - conv5 = fluid.layers.gather(self.res5_2_sum, - self.roi_has_mask_int32) - self.mask_fcn_logits = self.SuffixNet(conv5) - else: - pred_res_shape = fluid.layers.shape(self.pred_result) - shape = fluid.layers.reduce_prod(pred_res_shape) - shape = fluid.layers.reshape(shape, [1, 1]) - ones = fluid.layers.fill_constant([1, 1], value=1, dtype='int32') - cond = fluid.layers.equal(x=shape, y=ones) - ie = fluid.layers.IfElse(cond) - - with ie.true_block(): - pred_res_null = ie.input(self.pred_result) - ie.output(pred_res_null) - with ie.false_block(): - pred_res = ie.input(self.pred_result) - pred_boxes = fluid.layers.slice( - pred_res, [1], starts=[2], ends=[6]) - im_scale_lod = fluid.layers.sequence_expand(self.im_scale, - pred_boxes) - mask_rois = pred_boxes * im_scale_lod - conv5 = self.add_roi_box_head_func(mask_input, mask_rois) - mask_fcn = self.SuffixNet(conv5) - ie.output(mask_fcn) - self.mask_fcn_logits = ie()[0] - - def mask_rcnn_loss(self): - mask_label = fluid.layers.cast(x=self.mask_int32, dtype='float32') - reshape_dim = cfg.class_num * cfg.resolution * cfg.resolution - mask_fcn_logits_reshape = fluid.layers.reshape(self.mask_fcn_logits, - (-1, reshape_dim)) - - loss_mask = fluid.layers.sigmoid_cross_entropy_with_logits( - x=mask_fcn_logits_reshape, - label=mask_label, - ignore_index=-1, - normalize=True) - loss_mask = fluid.layers.reduce_sum(loss_mask, name='loss_mask') - return loss_mask - - def fast_rcnn_loss(self): - labels_int64 = fluid.layers.cast(x=self.labels_int32, dtype='int64') - labels_int64.stop_gradient = True - loss_cls = fluid.layers.softmax_with_cross_entropy( - logits=self.cls_score, - label=labels_int64, - numeric_stable_mode=True, ) - loss_cls = fluid.layers.reduce_mean(loss_cls) - loss_bbox = fluid.layers.smooth_l1( - x=self.bbox_pred, - y=self.bbox_targets, - inside_weight=self.bbox_inside_weights, - outside_weight=self.bbox_outside_weights, - sigma=1.0) - loss_bbox = fluid.layers.reduce_mean(loss_bbox) - return loss_cls, loss_bbox - - def rpn_loss(self): - rpn_cls_score_reshape = fluid.layers.transpose( - self.rpn_cls_score, perm=[0, 2, 3, 1]) - rpn_bbox_pred_reshape = fluid.layers.transpose( - self.rpn_bbox_pred, perm=[0, 2, 3, 1]) - - anchor_reshape = fluid.layers.reshape(self.anchor, shape=(-1, 4)) - var_reshape = fluid.layers.reshape(self.var, shape=(-1, 4)) - - rpn_cls_score_reshape = fluid.layers.reshape( - x=rpn_cls_score_reshape, shape=(0, -1, 1)) - rpn_bbox_pred_reshape = fluid.layers.reshape( - x=rpn_bbox_pred_reshape, shape=(0, -1, 4)) - score_pred, loc_pred, score_tgt, loc_tgt, bbox_weight = \ - fluid.layers.rpn_target_assign( - bbox_pred=rpn_bbox_pred_reshape, - cls_logits=rpn_cls_score_reshape, - anchor_box=anchor_reshape, - anchor_var=var_reshape, - gt_boxes=self.gt_box, - is_crowd=self.is_crowd, - im_info=self.im_info, - rpn_batch_size_per_im=cfg.TRAIN.rpn_batch_size_per_im, - rpn_straddle_thresh=cfg.TRAIN.rpn_straddle_thresh, - rpn_fg_fraction=cfg.TRAIN.rpn_fg_fraction, - rpn_positive_overlap=cfg.TRAIN.rpn_positive_overlap, - rpn_negative_overlap=cfg.TRAIN.rpn_negative_overlap, - use_random=self.use_random) - score_tgt = fluid.layers.cast(x=score_tgt, dtype='float32') - rpn_cls_loss = fluid.layers.sigmoid_cross_entropy_with_logits( - x=score_pred, label=score_tgt) - rpn_cls_loss = fluid.layers.reduce_mean( - rpn_cls_loss, name='loss_rpn_cls') - - rpn_reg_loss = fluid.layers.smooth_l1( - x=loc_pred, - y=loc_tgt, - sigma=3.0, - inside_weight=bbox_weight, - outside_weight=bbox_weight) - rpn_reg_loss = fluid.layers.reduce_sum( - rpn_reg_loss, name='loss_rpn_bbox') - score_shape = fluid.layers.shape(score_tgt) - score_shape = fluid.layers.cast(x=score_shape, dtype='float32') - norm = fluid.layers.reduce_prod(score_shape) - norm.stop_gradient = True - rpn_reg_loss = rpn_reg_loss / norm - return rpn_cls_loss, rpn_reg_loss diff --git a/PaddleCV/rcnn/models/resnet.py b/PaddleCV/rcnn/models/resnet.py deleted file mode 100644 index 8093470241b3297c44a2e42b5162e25cac1514be..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/models/resnet.py +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Constant -from paddle.fluid.regularizer import L2Decay -from config import cfg - - -def conv_bn_layer(input, - ch_out, - filter_size, - stride, - padding, - act='relu', - name=None): - conv1 = fluid.layers.conv2d( - input=input, - num_filters=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=ParamAttr(name=name + "_biases"), - name=name + '.conv2d.output.1') - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - - return fluid.layers.batch_norm( - input=conv1, - act=act, - name=bn_name + '.output.1', - param_attr=ParamAttr(name=bn_name + '_scale'), - bias_attr=ParamAttr(bn_name + '_offset'), - moving_mean_name=bn_name + '_mean', - moving_variance_name=bn_name + '_variance', - is_test=True) - - -def conv_affine_layer(input, - ch_out, - filter_size, - stride, - padding, - act='relu', - name=None): - conv = fluid.layers.conv2d( - input=input, - num_filters=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - act=None, - param_attr=ParamAttr(name=name + "_weights"), - bias_attr=False, - name=name + '.conv2d.output.1') - if name == "conv1": - bn_name = "bn_" + name - else: - bn_name = "bn" + name[3:] - - scale = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=ParamAttr( - name=bn_name + '_scale', learning_rate=0.), - default_initializer=Constant(1.)) - scale.stop_gradient = True - bias = fluid.layers.create_parameter( - shape=[conv.shape[1]], - dtype=conv.dtype, - attr=ParamAttr( - bn_name + '_offset', learning_rate=0.), - default_initializer=Constant(0.)) - bias.stop_gradient = True - - out = fluid.layers.affine_channel(x=conv, scale=scale, bias=bias) - if act == 'relu': - out = fluid.layers.relu(x=out) - return out - - -def shortcut(input, ch_out, stride, name): - ch_in = input.shape[1] # if args.data_format == 'NCHW' else input.shape[-1] - if ch_in != ch_out: - return conv_affine_layer(input, ch_out, 1, stride, 0, None, name=name) - else: - return input - - -def basicblock(input, ch_out, stride, name): - short = shortcut(input, ch_out, stride, name=name) - conv1 = conv_affine_layer(input, ch_out, 3, stride, 1, name=name) - conv2 = conv_affine_layer(conv1, ch_out, 3, 1, 1, act=None, name=name) - return fluid.layers.elementwise_add(x=short, y=conv2, act='relu', name=name) - - -def bottleneck(input, ch_out, stride, name): - short = shortcut(input, ch_out * 4, stride, name=name + "_branch1") - conv1 = conv_affine_layer( - input, ch_out, 1, stride, 0, name=name + "_branch2a") - conv2 = conv_affine_layer(conv1, ch_out, 3, 1, 1, name=name + "_branch2b") - conv3 = conv_affine_layer( - conv2, ch_out * 4, 1, 1, 0, act=None, name=name + "_branch2c") - return fluid.layers.elementwise_add( - x=short, y=conv3, act='relu', name=name + ".add.output.5") - - -def layer_warp(block_func, input, ch_out, count, stride, name): - res_out = block_func(input, ch_out, stride, name=name + "a") - for i in range(1, count): - res_out = block_func(res_out, ch_out, 1, name=name + chr(ord("a") + i)) - return res_out - - -ResNet_cfg = { - 18: ([2, 2, 2, 1], basicblock), - 34: ([3, 4, 6, 3], basicblock), - 50: ([3, 4, 6, 3], bottleneck), - 101: ([3, 4, 23, 3], bottleneck), - 152: ([3, 8, 36, 3], bottleneck) -} - - -def add_ResNet50_conv4_body(body_input): - stages, block_func = ResNet_cfg[50] - stages = stages[0:3] - conv1 = conv_affine_layer( - body_input, ch_out=64, filter_size=7, stride=2, padding=3, name="conv1") - pool1 = fluid.layers.pool2d( - input=conv1, - pool_type='max', - pool_size=3, - pool_stride=2, - pool_padding=1) - res2 = layer_warp(block_func, pool1, 64, stages[0], 1, name="res2") - if cfg.TRAIN.freeze_at == 2: - res2.stop_gradient = True - res3 = layer_warp(block_func, res2, 128, stages[1], 2, name="res3") - if cfg.TRAIN.freeze_at == 3: - res3.stop_gradient = True - res4 = layer_warp(block_func, res3, 256, stages[2], 2, name="res4") - if cfg.TRAIN.freeze_at == 4: - res4.stop_gradient = True - return res4 - - -def add_ResNet_roi_conv5_head(head_input, rois): - if cfg.roi_func == 'RoIPool': - pool = fluid.layers.roi_pool( - input=head_input, - rois=rois, - pooled_height=cfg.roi_resolution, - pooled_width=cfg.roi_resolution, - spatial_scale=cfg.spatial_scale) - elif cfg.roi_func == 'RoIAlign': - pool = fluid.layers.roi_align( - input=head_input, - rois=rois, - pooled_height=cfg.roi_resolution, - pooled_width=cfg.roi_resolution, - spatial_scale=cfg.spatial_scale, - sampling_ratio=cfg.sampling_ratio) - - res5 = layer_warp(bottleneck, pool, 512, 3, 2, name="res5") - return res5 diff --git a/PaddleCV/rcnn/pretrained/download.sh b/PaddleCV/rcnn/pretrained/download.sh deleted file mode 100644 index d6a28f28551e37e2110f78669fd812d73a52778b..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/pretrained/download.sh +++ /dev/null @@ -1,8 +0,0 @@ -DIR="$( cd "$(dirname "$0")" )" -cd "$DIR" - -# Download the data. -echo "Downloading..." -wget http://paddlemodels.bj.bcebos.com/faster_rcnn/imagenet_resnet50_fusebn.tar.gz -echo "Extracting..." -tar -xf imagenet_resnet50_fusebn.tar.gz diff --git a/PaddleCV/rcnn/reader.py b/PaddleCV/rcnn/reader.py deleted file mode 100644 index 7dded0ab4444e67d6251d4eb99622af85a325e8f..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/reader.py +++ /dev/null @@ -1,194 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import random -import numpy as np -import xml.etree.ElementTree -import os -import time -import copy -import six -import cv2 -from collections import deque - -from roidbs import JsonDataset -import data_utils -from config import cfg -import segm_utils -num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - - -def roidb_reader(roidb, mode): - im, im_scales = data_utils.get_image_blob(roidb, mode) - im_id = roidb['id'] - im_height = np.round(roidb['height'] * im_scales) - im_width = np.round(roidb['width'] * im_scales) - im_info = np.array([im_height, im_width, im_scales], dtype=np.float32) - if mode == 'val': - return im, im_info, im_id - - gt_boxes = roidb['gt_boxes'].astype('float32') - gt_classes = roidb['gt_classes'].astype('int32') - is_crowd = roidb['is_crowd'].astype('int32') - segms = roidb['segms'] - - outs = (im, gt_boxes, gt_classes, is_crowd, im_info, im_id) - - if cfg.MASK_ON: - gt_masks = [] - valid = True - segms = roidb['segms'] - assert len(segms) == is_crowd.shape[0] - for i in range(len(roidb['segms'])): - segm, iscrowd = segms[i], is_crowd[i] - gt_segm = [] - if iscrowd: - gt_segm.append([[0, 0]]) - else: - for poly in segm: - if len(poly) == 0: - valid = False - break - gt_segm.append(np.array(poly).reshape(-1, 2)) - if (not valid) or len(gt_segm) == 0: - break - gt_masks.append(gt_segm) - outs = outs + (gt_masks, ) - return outs - - -def coco(mode, - batch_size=None, - total_batch_size=None, - padding_total=False, - shuffle=False, - shuffle_seed=None): - total_batch_size = total_batch_size if total_batch_size else batch_size - assert total_batch_size % batch_size == 0 - json_dataset = JsonDataset(mode) - roidbs = json_dataset.get_roidb() - - print("{} on {} with {} roidbs".format(mode, cfg.dataset, len(roidbs))) - - def padding_minibatch(batch_data): - if len(batch_data) == 1: - return batch_data - - max_shape = np.array([data[0].shape for data in batch_data]).max(axis=0) - - padding_batch = [] - for data in batch_data: - im_c, im_h, im_w = data[0].shape[:] - padding_im = np.zeros( - (im_c, max_shape[1], max_shape[2]), dtype=np.float32) - padding_im[:, :im_h, :im_w] = data[0] - padding_batch.append((padding_im, ) + data[1:]) - return padding_batch - - def reader(): - if mode == "train": - if shuffle: - if shuffle_seed is not None: - np.random.seed(shuffle_seed) - roidb_perm = deque(np.random.permutation(roidbs)) - else: - roidb_perm = deque(roidbs) - roidb_cur = 0 - count = 0 - batch_out = [] - device_num = total_batch_size / batch_size - while True: - roidb = roidb_perm[0] - roidb_cur += 1 - roidb_perm.rotate(-1) - if roidb_cur >= len(roidbs): - if shuffle: - roidb_perm = deque(np.random.permutation(roidbs)) - else: - roidb_perm = deque(roidbs) - roidb_cur = 0 - # im, gt_boxes, gt_classes, is_crowd, im_info, im_id, gt_masks - datas = roidb_reader(roidb, mode) - if datas[1].shape[0] == 0: - continue - if cfg.MASK_ON: - if len(datas[-1]) != datas[1].shape[0]: - continue - batch_out.append(datas) - if not padding_total: - if len(batch_out) == batch_size: - yield padding_minibatch(batch_out) - count += 1 - batch_out = [] - else: - if len(batch_out) == total_batch_size: - batch_out = padding_minibatch(batch_out) - for i in range(device_num): - sub_batch_out = [] - for j in range(batch_size): - sub_batch_out.append(batch_out[i * batch_size + - j]) - yield sub_batch_out - count += 1 - sub_batch_out = [] - batch_out = [] - iter_id = count // device_num - if iter_id >= cfg.max_iter * num_trainers: - return - elif mode == "val": - batch_out = [] - for roidb in roidbs: - im, im_info, im_id = roidb_reader(roidb, mode) - batch_out.append((im, im_info, im_id)) - if len(batch_out) == batch_size: - yield batch_out - batch_out = [] - if len(batch_out) != 0: - yield batch_out - - return reader - - -def train(batch_size, - total_batch_size=None, - padding_total=False, - shuffle=True, - shuffle_seed=None): - return coco( - 'train', - batch_size, - total_batch_size, - padding_total, - shuffle=shuffle, - shuffle_seed=shuffle_seed) - - -def test(batch_size, total_batch_size=None, padding_total=False): - return coco('val', batch_size, total_batch_size, shuffle=False) - - -def infer(file_path): - def reader(): - if not os.path.exists(file_path): - raise ValueError("Image path [%s] does not exist." % (file_path)) - im = cv2.imread(file_path) - im = im.astype(np.float32, copy=False) - im -= cfg.pixel_means - im_height, im_width, channel = im.shape - channel_swap = (2, 0, 1) #(channel, height, width) - im = im.transpose(channel_swap) - im_info = np.array([im_height, im_width, 1.0], dtype=np.float32) - yield [(im, im_info)] - - return reader diff --git a/PaddleCV/rcnn/roidbs.py b/PaddleCV/rcnn/roidbs.py deleted file mode 100644 index 581a2907c25e72af85f90317ef290c10057bc44d..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/roidbs.py +++ /dev/null @@ -1,216 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Based on: -# -------------------------------------------------------- -# Detectron -# Copyright (c) 2017-present, Facebook, Inc. -# Licensed under the Apache License, Version 2.0; -# Written by Ross Girshick -# -------------------------------------------------------- - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import copy -import logging -import numpy as np -import os -import scipy.sparse -import random -import time -import matplotlib -matplotlib.use('Agg') -from pycocotools.coco import COCO -import box_utils -import segm_utils -from config import cfg -from data_utils import DatasetPath - -logger = logging.getLogger(__name__) - - -class JsonDataset(object): - """A class representing a COCO json dataset.""" - - def __init__(self, mode): - print('Creating: {}'.format(cfg.dataset)) - self.name = cfg.dataset - self.is_train = mode == 'train' - data_path = DatasetPath(mode) - data_dir = data_path.get_data_dir() - file_list = data_path.get_file_list() - self.image_directory = data_dir - self.COCO = COCO(file_list) - # Set up dataset classes - category_ids = self.COCO.getCatIds() - categories = [c['name'] for c in self.COCO.loadCats(category_ids)] - self.category_to_id_map = dict(zip(categories, category_ids)) - self.classes = ['__background__'] + categories - self.num_classes = len(self.classes) - self.json_category_id_to_contiguous_id = { - v: i + 1 - for i, v in enumerate(self.COCO.getCatIds()) - } - self.contiguous_category_id_to_json_id = { - v: k - for k, v in self.json_category_id_to_contiguous_id.items() - } - - def get_roidb(self): - """Return an roidb corresponding to the json dataset. Optionally: - - include ground truth boxes in the roidb - - add proposals specified in a proposals file - - filter proposals based on a minimum side length - - filter proposals that intersect with crowd regions - """ - image_ids = self.COCO.getImgIds() - image_ids.sort() - roidb = copy.deepcopy(self.COCO.loadImgs(image_ids)) - for entry in roidb: - self._prep_roidb_entry(entry) - if self.is_train: - # Include ground-truth object annotations - start_time = time.time() - for entry in roidb: - self._add_gt_annotations(entry) - end_time = time.time() - print('_add_gt_annotations took {:.3f}s'.format(end_time - - start_time)) - if cfg.TRAIN.use_flipped: - print('Appending horizontally-flipped training examples...') - self._extend_with_flipped_entries(roidb) - print('Loaded dataset: {:s}'.format(self.name)) - print('{:d} roidb entries'.format(len(roidb))) - if self.is_train: - self._filter_for_training(roidb) - return roidb - - def _prep_roidb_entry(self, entry): - """Adds empty metadata fields to an roidb entry.""" - # Make file_name an abs path - im_path = os.path.join(self.image_directory, entry['file_name']) - #assert os.path.exists(im_path), 'Image \'{}\' not found'.format(im_path) - entry['image'] = im_path - entry['flipped'] = False - # Empty placeholders - entry['gt_boxes'] = np.empty((0, 4), dtype=np.float32) - entry['gt_classes'] = np.empty((0), dtype=np.int32) - entry['gt_id'] = np.empty((0), dtype=np.int32) - entry['is_crowd'] = np.empty((0), dtype=np.bool) - entry['segms'] = [] - # Remove unwanted fields that come from the json file (if they exist) - for k in ['date_captured', 'url', 'license', 'file_name']: - if k in entry: - del entry[k] - - def _add_gt_annotations(self, entry): - """Add ground truth annotation metadata to an roidb entry.""" - count = 0 - #for k in self.category_to_id_map: - # imgs = self.COCO.getImgIds(catIds=(self.category_to_id_map[k])) - # count += len(imgs) - ann_ids = self.COCO.getAnnIds(imgIds=entry['id'], iscrowd=None) - objs = self.COCO.loadAnns(ann_ids) - # Sanitize bboxes -- some are invalid - valid_objs = [] - valid_segms = [] - width = entry['width'] - height = entry['height'] - for obj in objs: - if isinstance(obj['segmentation'], list): - # Valid polygons have >= 3 points, so require >= 6 coordinates - obj['segmentation'] = [ - p for p in obj['segmentation'] if len(p) >= 6 - ] - if obj['area'] < cfg.TRAIN.gt_min_area: - continue - if 'ignore' in obj and obj['ignore'] == 1: - continue - # Convert form (x1, y1, w, h) to (x1, y1, x2, y2) - x1, y1, x2, y2 = box_utils.xywh_to_xyxy(obj['bbox']) - x1, y1, x2, y2 = box_utils.clip_xyxy_to_image(x1, y1, x2, y2, - height, width) - # Require non-zero seg area and more than 1x1 box size - if obj['area'] > 0 and x2 > x1 and y2 > y1: - obj['clean_bbox'] = [x1, y1, x2, y2] - valid_objs.append(obj) - valid_segms.append(obj['segmentation']) - - num_valid_objs = len(valid_objs) - - gt_boxes = np.zeros((num_valid_objs, 4), dtype=entry['gt_boxes'].dtype) - gt_id = np.zeros((num_valid_objs), dtype=np.int64) - gt_classes = np.zeros((num_valid_objs), dtype=entry['gt_classes'].dtype) - is_crowd = np.zeros((num_valid_objs), dtype=entry['is_crowd'].dtype) - for ix, obj in enumerate(valid_objs): - cls = self.json_category_id_to_contiguous_id[obj['category_id']] - gt_boxes[ix, :] = obj['clean_bbox'] - gt_classes[ix] = cls - gt_id[ix] = np.int64(obj['id']) - is_crowd[ix] = obj['iscrowd'] - - entry['gt_boxes'] = np.append(entry['gt_boxes'], gt_boxes, axis=0) - entry['gt_classes'] = np.append(entry['gt_classes'], gt_classes) - entry['gt_id'] = np.append(entry['gt_id'], gt_id) - entry['is_crowd'] = np.append(entry['is_crowd'], is_crowd) - entry['segms'].extend(valid_segms) - - def _extend_with_flipped_entries(self, roidb): - """Flip each entry in the given roidb and return a new roidb that is the - concatenation of the original roidb and the flipped entries. - "Flipping" an entry means that that image and associated metadata (e.g., - ground truth boxes and object proposals) are horizontally flipped. - """ - flipped_roidb = [] - for entry in roidb: - width = entry['width'] - gt_boxes = entry['gt_boxes'].copy() - oldx1 = gt_boxes[:, 0].copy() - oldx2 = gt_boxes[:, 2].copy() - gt_boxes[:, 0] = width - oldx2 - 1 - gt_boxes[:, 2] = width - oldx1 - 1 - assert (gt_boxes[:, 2] >= gt_boxes[:, 0]).all() - flipped_entry = {} - dont_copy = ('gt_boxes', 'flipped', 'segms') - for k, v in entry.items(): - if k not in dont_copy: - flipped_entry[k] = v - flipped_entry['gt_boxes'] = gt_boxes - flipped_entry['segms'] = segm_utils.flip_segms( - entry['segms'], entry['height'], entry['width']) - flipped_entry['flipped'] = True - flipped_roidb.append(flipped_entry) - roidb.extend(flipped_roidb) - - def _filter_for_training(self, roidb): - """Remove roidb entries that have no usable RoIs based on config settings. - """ - - def is_valid(entry): - # Valid images have: - # (1) At least one groundtruth RoI OR - # (2) At least one background RoI - gt_boxes = entry['gt_boxes'] - # image is only valid if such boxes exist - valid = len(gt_boxes) > 0 - return valid - - num = len(roidb) - filtered_roidb = [entry for entry in roidb if is_valid(entry)] - num_after = len(filtered_roidb) - print('Filtered {} roidb entries: {} -> {}'.format(num - num_after, num, - num_after)) diff --git a/PaddleCV/rcnn/scripts/eval.sh b/PaddleCV/rcnn/scripts/eval.sh deleted file mode 100644 index 922380acf52e594931506e791990319d152d9260..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/scripts/eval.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -export CUDA_VISIBLE_DEVICES=0 - -model=$1 # faster_rcnn, mask_rcnn -if [ "$model" = "faster_rcnn" ]; then - mask_on="--MASK_ON False" -elif [ "$model" = "mask_rcnn" ]; then - mask_on="--MASK_ON True" -else - echo "Invalid model provided. Please use one of {faster_rcnn, mask_rcnn}" - exit 1 -fi - -python -u ../eval_coco_map.py \ - $mask_on \ - --pretrained_model=../output/model_iter179999 \ - --data_dir=../dataset/coco/ \ diff --git a/PaddleCV/rcnn/scripts/infer.sh b/PaddleCV/rcnn/scripts/infer.sh deleted file mode 100644 index 6f0e02730b9db07568c31a280825f75e321eab64..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/scripts/infer.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -export CUDA_VISIBLE_DEVICES=0 - -model=$1 # faster_rcnn, mask_rcnn -if [ "$model" = "faster_rcnn" ]; then - mask_on="--MASK_ON False" -elif [ "$model" = "mask_rcnn" ]; then - mask_on="--MASK_ON True" -else - echo "Invalid model provided. Please use one of {faster_rcnn, mask_rcnn}" - exit 1 -fi - -python -u ../infer.py \ - $mask_on \ - --pretrained_model=../output/model_iter179999 \ - --image_path=../dataset/coco/val2017/ \ - --image_name=000000000139.jpg \ - --draw_threshold=0.6 diff --git a/PaddleCV/rcnn/scripts/train.sh b/PaddleCV/rcnn/scripts/train.sh deleted file mode 100755 index 83c67e6c39121c0fecec5cd7c037d14ab53c619d..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/scripts/train.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 - -model=$1 # faster_rcnn, mask_rcnn -if [ "$model" = "faster_rcnn" ]; then - mask_on="--MASK_ON False" -elif [ "$model" = "mask_rcnn" ]; then - mask_on="--MASK_ON True" -else - echo "Invalid model provided. Please use one of {faster_rcnn, mask_rcnn}" - exit 1 -fi - -python -u ../train.py \ - $mask_on \ - --model_save_dir=../output/ \ - --pretrained_model=../imagenet_resnet50_fusebn/ \ - --data_dir=../dataset/coco/ \ - diff --git a/PaddleCV/rcnn/segm_utils.py b/PaddleCV/rcnn/segm_utils.py deleted file mode 100644 index 17b72228bc4284dc5936d4a3fda5c2422c4aa958..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/segm_utils.py +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://w_idxw.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Based on: -# -------------------------------------------------------- -# Detectron -# Copyright (c) 2017-present, Facebook, Inc. -# Licensed under the Apache License, Version 2.0; -# Written by Ross Girshick -# -------------------------------------------------------- - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np -import pycocotools.mask as mask_util -import cv2 - - -def is_poly(segm): - """Determine if segm is a polygon. Valid segm expected (polygon or RLE).""" - assert isinstance(segm, (list, dict)), \ - 'Invalid segm type: {}'.format(type(segm)) - return isinstance(segm, list) - - -def segms_to_rle(segms, height, width): - rle = segms - if isinstance(segms, list): - # polygon -- a single object might consist of multiple parts - # we merge all parts into one mask rle code - rles = mask_util.frPyObjects(segms, height, width) - rle = mask_util.merge(rles) - elif isinstance(segms['counts'], list): - # uncompressed RLE - rle = mask_util.frPyObjects(segms, height, width) - return rle - - -def segms_to_mask(segms, iscrowd, height, width): - print('segms: ', segms) - if iscrowd: - return [[0 for i in range(width)] for j in range(height)] - rle = segms_to_rle(segms, height, width) - mask = mask_util.decode(rle) - return mask - - -def flip_segms(segms, height, width): - """Left/right flip each mask in a list of masks.""" - - def _flip_poly(poly, width): - flipped_poly = np.array(poly) - flipped_poly[0::2] = width - np.array(poly[0::2]) - 1 - return flipped_poly.tolist() - - def _flip_rle(rle, height, width): - if 'counts' in rle and type(rle['counts']) == list: - # Magic RLE format handling painfully discovered by looking at the - # COCO API showAnns function. - rle = mask_util.frPyObjects([rle], height, width) - mask = mask_util.decode(rle) - mask = mask[:, ::-1, :] - rle = mask_util.encode(np.array(mask, order='F', dtype=np.uint8)) - return rle - - flipped_segms = [] - for segm in segms: - if is_poly(segm): - # Polygon format - flipped_segms.append([_flip_poly(poly, width) for poly in segm]) - else: - # RLE format - flipped_segms.append(_flip_rle(segm, height, width)) - return flipped_segms diff --git a/PaddleCV/rcnn/train.py b/PaddleCV/rcnn/train.py deleted file mode 100644 index e858bd95eb1a572df2af1560bbc6f378fbf4e7f7..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/train.py +++ /dev/null @@ -1,273 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os - - -def set_paddle_flags(flags): - for key, value in flags.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -set_paddle_flags({ - 'FLAGS_conv_workspace_size_limit': 500, - 'FLAGS_eager_delete_tensor_gb': 0, # enable gc - 'FLAGS_memory_fraction_of_eager_deletion': 1, - 'FLAGS_fraction_of_gpu_memory_to_use': 0.98 -}) - -import sys -import numpy as np -import time -import shutil -from utility import parse_args, print_arguments, SmoothedValue, TrainingStats, now_time, check_gpu -import collections - -import paddle -import paddle.fluid as fluid -from paddle.fluid import profiler -import reader -import models.model_builder as model_builder -import models.resnet as resnet -from learning_rate import exponential_with_warmup_decay -from config import cfg -import dist_utils - -num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - - -def get_device_num(): - # NOTE(zcd): for multi-processe training, each process use one GPU card. - if num_trainers > 1: - return 1 - return fluid.core.get_cuda_device_count() - - -def train(): - learning_rate = cfg.learning_rate - image_shape = [3, cfg.TRAIN.max_size, cfg.TRAIN.max_size] - - if cfg.enable_ce: - fluid.default_startup_program().random_seed = 1000 - fluid.default_main_program().random_seed = 1000 - import random - random.seed(0) - np.random.seed(0) - - devices_num = get_device_num() - total_batch_size = devices_num * cfg.TRAIN.im_per_batch - - use_random = True - if cfg.enable_ce: - use_random = False - model = model_builder.RCNN( - add_conv_body_func=resnet.add_ResNet50_conv4_body, - add_roi_box_head_func=resnet.add_ResNet_roi_conv5_head, - use_pyreader=cfg.use_pyreader, - use_random=use_random) - model.build_model(image_shape) - losses, keys = model.loss() - loss = losses[0] - fetch_list = losses - - boundaries = cfg.lr_steps - gamma = cfg.lr_gamma - step_num = len(cfg.lr_steps) - values = [learning_rate * (gamma**i) for i in range(step_num + 1)] - - lr = exponential_with_warmup_decay( - learning_rate=learning_rate, - boundaries=boundaries, - values=values, - warmup_iter=cfg.warm_up_iter, - warmup_factor=cfg.warm_up_factor) - optimizer = fluid.optimizer.Momentum( - learning_rate=lr, - regularization=fluid.regularizer.L2Decay(cfg.weight_decay), - momentum=cfg.momentum) - optimizer.minimize(loss) - fetch_list = fetch_list + [lr] - - for var in fetch_list: - var.persistable = True - - gpu_id = int(os.environ.get('FLAGS_selected_gpus', 0)) - place = fluid.CUDAPlace(gpu_id) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - if cfg.pretrained_model: - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrained_model, var.name)) - - fluid.io.load_vars(exe, cfg.pretrained_model, predicate=if_exist) - - if cfg.parallel: - build_strategy = fluid.BuildStrategy() - build_strategy.memory_optimize = False - build_strategy.enable_inplace = True - exec_strategy = fluid.ExecutionStrategy() - exec_strategy.num_iteration_per_drop_scope = 10 - - if num_trainers > 1 and cfg.use_gpu: - dist_utils.prepare_for_multi_process(exe, build_strategy, - fluid.default_main_program()) - # NOTE: the process is fast when num_threads is 1 - # for multi-process training. - exec_strategy.num_threads = 1 - - train_exe = fluid.ParallelExecutor( - use_cuda=bool(cfg.use_gpu), - loss_name=loss.name, - build_strategy=build_strategy, - exec_strategy=exec_strategy) - else: - train_exe = exe - - shuffle = True - if cfg.enable_ce: - shuffle = False - # NOTE: do not shuffle dataset when using multi-process training - shuffle_seed = None - if num_trainers > 1: - shuffle_seed = 1 - if cfg.use_pyreader: - train_reader = reader.train( - batch_size=cfg.TRAIN.im_per_batch, - total_batch_size=total_batch_size, - padding_total=cfg.TRAIN.padding_minibatch, - shuffle=shuffle, - shuffle_seed=shuffle_seed) - if num_trainers > 1: - assert shuffle_seed is not None, \ - "If num_trainers > 1, the shuffle_seed must be set, because " \ - "the order of batch data generated by reader " \ - "must be the same in the respective processes." - # NOTE: the order of batch data generated by batch_reader - # must be the same in the respective processes. - if num_trainers > 1: - train_reader = fluid.contrib.reader.distributed_batch_reader( - train_reader) - py_reader = model.py_reader - py_reader.decorate_paddle_reader(train_reader) - else: - if num_trainers > 1: shuffle = False - train_reader = reader.train( - batch_size=total_batch_size, shuffle=shuffle) - feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) - - def save_model(postfix): - model_path = os.path.join(cfg.model_save_dir, postfix) - if os.path.isdir(model_path): - shutil.rmtree(model_path) - fluid.io.save_persistables(exe, model_path) - - def train_loop_pyreader(): - py_reader.start() - train_stats = TrainingStats(cfg.log_window, keys) - try: - start_time = time.time() - prev_start_time = start_time - for iter_id in range(cfg.max_iter): - prev_start_time = start_time - start_time = time.time() - outs = train_exe.run(fetch_list=[v.name for v in fetch_list]) - stats = {k: np.array(v).mean() for k, v in zip(keys, outs[:-1])} - train_stats.update(stats) - logs = train_stats.log() - strs = '{}, iter: {}, lr: {:.5f}, {}, time: {:.3f}'.format( - now_time(), iter_id, - np.mean(outs[-1]), logs, start_time - prev_start_time) - print(strs) - sys.stdout.flush() - if (iter_id + 1) % cfg.TRAIN.snapshot_iter == 0: - save_model("model_iter{}".format(iter_id)) - - #profiler tools, used for benchmark - if args.is_profiler and iter_id == 10: - profiler.start_profiler("All") - elif args.is_profiler and iter_id == 15: - profiler.stop_profiler("total", args.profiler_path) - return - - end_time = time.time() - total_time = end_time - start_time - last_loss = np.array(outs[0]).mean() - if cfg.enable_ce: - gpu_num = devices_num - epoch_idx = iter_id + 1 - loss = last_loss - print("kpis\teach_pass_duration_card%s\t%s" % - (gpu_num, total_time / epoch_idx)) - print("kpis\ttrain_loss_card%s\t%s" % (gpu_num, loss)) - except (StopIteration, fluid.core.EOFException): - py_reader.reset() - - def train_loop(): - start_time = time.time() - prev_start_time = start_time - start = start_time - train_stats = TrainingStats(cfg.log_window, keys) - for iter_id, data in enumerate(train_reader()): - prev_start_time = start_time - start_time = time.time() - outs = train_exe.run(fetch_list=[v.name for v in fetch_list], - feed=feeder.feed(data)) - stats = {k: np.array(v).mean() for k, v in zip(keys, outs[:-1])} - train_stats.update(stats) - logs = train_stats.log() - strs = '{}, iter: {}, lr: {:.5f}, {}, time: {:.3f}'.format( - now_time(), iter_id, - np.mean(outs[-1]), logs, start_time - prev_start_time) - print(strs) - sys.stdout.flush() - if (iter_id + 1) % cfg.TRAIN.snapshot_iter == 0: - save_model("model_iter{}".format(iter_id)) - if (iter_id + 1) == cfg.max_iter: - break - #profiler tools, used for benchmark - if args.is_profiler and iter_id == 10: - profiler.start_profiler("All") - elif args.is_profiler and iter_id == 15: - profiler.stop_profiler("total", args.profiler_path) - return - end_time = time.time() - total_time = end_time - start_time - last_loss = np.array(outs[0]).mean() - # only for ce - if cfg.enable_ce: - gpu_num = devices_num - epoch_idx = iter_id + 1 - loss = last_loss - print("kpis\teach_pass_duration_card%s\t%s" % - (gpu_num, total_time / epoch_idx)) - print("kpis\ttrain_loss_card%s\t%s" % (gpu_num, loss)) - - if cfg.use_pyreader: - train_loop_pyreader() - else: - train_loop() - save_model('model_final') - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - check_gpu(args.use_gpu) - train() diff --git a/PaddleCV/rcnn/utility.py b/PaddleCV/rcnn/utility.py deleted file mode 100644 index c464d4efcc5fd5162269506a2863c873d7e71dbe..0000000000000000000000000000000000000000 --- a/PaddleCV/rcnn/utility.py +++ /dev/null @@ -1,199 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. -""" -Contains common utility functions. -""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import sys -import distutils.util -import numpy as np -import six -import collections -from collections import deque -import datetime -from paddle.fluid import core -import argparse -import functools -from config import * -import paddle.fluid as fluid - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -class SmoothedValue(object): - """Track a series of values and provide access to smoothed values over a - window or the global series average. - """ - - def __init__(self, window_size): - self.deque = deque(maxlen=window_size) - - def add_value(self, value): - self.deque.append(value) - - def get_median_value(self): - return np.median(self.deque) - - -def now_time(): - return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') - - -class TrainingStats(object): - def __init__(self, window_size, stats_keys): - self.smoothed_losses_and_metrics = { - key: SmoothedValue(window_size) - for key in stats_keys - } - - def update(self, stats): - for k, v in self.smoothed_losses_and_metrics.items(): - v.add_value(stats[k]) - - def get(self, extras=None): - stats = collections.OrderedDict() - if extras: - for k, v in extras.items(): - stats[k] = v - for k, v in self.smoothed_losses_and_metrics.items(): - stats[k] = round(v.get_median_value(), 3) - - return stats - - def log(self, extras=None): - d = self.get(extras) - strs = ', '.join(str(dict({x: y})).strip('{}') for x, y in d.items()) - return strs - - -def parse_args(): - """return all args - """ - parser = argparse.ArgumentParser(description=__doc__) - add_arg = functools.partial(add_arguments, argparser=parser) - # yapf: disable - # ENV - add_arg('parallel', bool, True, "Whether use parallel.") - add_arg('use_gpu', bool, True, "Whether use GPU.") - add_arg('model_save_dir', str, 'output', "The path to save model.") - add_arg('pretrained_model', str, 'imagenet_resnet50_fusebn', "The init model path.") - add_arg('dataset', str, 'coco2017', "coco2014, coco2017.") - add_arg('class_num', int, 81, "Class number.") - add_arg('data_dir', str, 'dataset/coco', "The data root path.") - add_arg('use_pyreader', bool, True, "Use pyreader.") - add_arg('use_profile', bool, False, "Whether use profiler.") - add_arg('padding_minibatch',bool, False, - "If False, only resize image and not pad, image shape is different between" - " GPUs in one mini-batch. If True, image shape is the same in one mini-batch.") - #SOLVER - add_arg('learning_rate', float, 0.01, "Learning rate.") - add_arg('max_iter', int, 180000, "Iter number.") - add_arg('log_window', int, 20, "Log smooth window, set 1 for debug, set 20 for train.") - # RCNN - # RPN - add_arg('anchor_sizes', int, [32,64,128,256,512], "The size of anchors.") - add_arg('aspect_ratios', float, [0.5,1.0,2.0], "The ratio of anchors.") - add_arg('variance', float, [1.,1.,1.,1.], "The variance of anchors.") - add_arg('rpn_stride', float, [16.,16.], "Stride of the feature map that RPN is attached.") - add_arg('rpn_nms_thresh', float, 0.7, "NMS threshold used on RPN proposals") - - #NOTE: args for profiler, used for benchmark - add_arg('is_profiler', int, 0, "the profiler switch.(used for benchmark)") - add_arg('profiler_path', str, './', "the profiler output file path.(used for benchmark)") - - # TRAIN VAL INFER - add_arg('MASK_ON', bool, False, "Option for different models. If False, choose faster_rcnn. If True, choose mask_rcnn") - add_arg('im_per_batch', int, 1, "Minibatch size.") - add_arg('max_size', int, 1333, "The resized image height.") - add_arg('scales', int, [800], "The resized image height.") - add_arg('batch_size_per_im',int, 512, "fast rcnn head batch size") - add_arg('pixel_means', float, [102.9801, 115.9465, 122.7717], "pixel mean") - add_arg('nms_thresh', float, 0.5, "NMS threshold.") - add_arg('score_thresh', float, 0.05, "score threshold for NMS.") - add_arg('snapshot_stride', int, 10000, "save model every snapshot stride.") - # SINGLE EVAL AND DRAW - add_arg('draw_threshold', float, 0.8, "Confidence threshold to draw bbox.") - add_arg('image_path', str, 'dataset/coco/val2017', "The image path used to inference and visualize.") - # ce - parser.add_argument( - '--enable_ce', action='store_true', help='If set, run the task with continuous evaluation logs.') - # yapf: enable - args = parser.parse_args() - file_name = sys.argv[0] - if 'train' in file_name or 'profile' in file_name: - merge_cfg_from_args(args, 'train') - else: - merge_cfg_from_args(args, 'val') - return args - - -def check_gpu(use_gpu): - """ - Log error and exit when set use_gpu=true in paddlepaddle - cpu version. - """ - err = "Config use_gpu cannot be set as true while you are " \ - "using paddlepaddle cpu version ! \nPlease try: \n" \ - "\t1. Install paddlepaddle-gpu to run model on GPU \n" \ - "\t2. Set use_gpu as false in config file to run " \ - "model on CPU" - - try: - if use_gpu and not fluid.is_compiled_with_cuda(): - logger.error(err) - sys.exit(1) - except Exception as e: - pass diff --git a/PaddleCV/ssd/.gitignore b/PaddleCV/ssd/.gitignore deleted file mode 100644 index 404af33d9659de6c2c34a755475be5d0ad5948af..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# saved model -model/ - -pretrained/ssd_mobilenet_v1_coco.tar.gz -pretrained/ssd_mobilenet_v1_coco -pretrained/mobilenet_v1_imagenet.tar.gz -pretrained/mobilenet_v1_imagenet - -# coco and pascalvoc data -data/coco/train2017/ -data/coco/train2014/ -data/coco/val2017/ -data/coco/val2014/ -data/coco/*.zip -data/coco/annotations/ -data/pascalvoc/VOCdevkit/ -data/pascalvoc/*.tar -data/pascalvoc/test.txt -data/pascalvoc/trainval.txt - -log* -*.log -ssd_mobilenet_v1_pascalvoc* -quant_model diff --git a/PaddleCV/ssd/.run_ce.sh b/PaddleCV/ssd/.run_ce.sh deleted file mode 100755 index 05ae3b5708963645e53c548e72755c489749c594..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/.run_ce.sh +++ /dev/null @@ -1,19 +0,0 @@ -###!/bin/bash -####This file is only used for continuous evaluation. - -export MKL_NUM_THREADS=1 -export OMP_NUM_THREADS=1 - -if [ ! -d "/root/.cache/paddle/dataset/pascalvoc" ];then - mkdir -p /root/.cache/paddle/dataset/pascalvoc - ./data/pascalvoc/download.sh - cp -r ./data/pascalvoc/. /home/.cache/paddle/dataset/pascalvoc -fi - -cudaid=${object_detection_cudaid:=0} -export CUDA_VISIBLE_DEVICES=$cudaid -FLAGS_benchmark=true python train.py --enable_ce=True --batch_size=64 --epoc_num=2 --data_dir=/root/.cache/paddle/dataset/pascalvoc/ | python _ce.py - -cudaid=${object_detection_cudaid_m:=0,1,2,3} -export CUDA_VISIBLE_DEVICES=$cudaid -FLAGS_benchmark=true python train.py --enable_ce=True --batch_size=64 --epoc_num=2 --data_dir=/root/.cache/paddle/dataset/pascalvoc/ | python _ce.py diff --git a/PaddleCV/ssd/README.md b/PaddleCV/ssd/README.md deleted file mode 100644 index f64a135ae9d27f08e1c9ebd7337d2ebc656e049b..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/README.md +++ /dev/null @@ -1,102 +0,0 @@ -**This model has been moved to [PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), which includes more detection models.** - -## SSD Object Detection - -## Table of Contents -- [Introduction](#introduction) -- [Data Preparation](#data-preparation) -- [Train](#train) -- [Evaluate](#evaluate) -- [Infer and Visualize](#infer-and-visualize) -- [Released Model](#released-model) - -### Introduction - -[Single Shot MultiBox Detector (SSD)](https://arxiv.org/abs/1512.02325) framework for object detection can be categorized as a single stage detector. A single stage detector simplifies object detection as a regression problem, which directly predicts the bounding boxes and class probabilities without region proposal. SSD further makes improves by producing these predictions of different scales from different layers, as shown below. Six levels predictions are made in six different scale feature maps. And there are two 3x3 convolutional layers in each feature map, which predict category or a shape offset relative to the prior box(also called anchor), respectively. Thus, we get 38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 detections per class. -

-
-The Single Shot MultiBox Detector (SSD) -

- -SSD is readily pluggable into a wide variant standard convolutional network, such as VGG, ResNet, or MobileNet, which is also called base network or backbone. In this tutorial we used [MobileNet](https://arxiv.org/abs/1704.04861). - -We also recommend users to take a look at the  [IPython Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/122276) - -### Data Preparation - -Please download [PASCAL VOC dataset](http://host.robots.ox.ac.uk/pascal/VOC/) at first, skip this step if you already have one. - -``` -cd data/pascalvoc -python download.py -``` - -The script `download.py` will also create training and testing file lists. - -### Train - -#### Download the Pre-trained Model. - -We provide two pre-trained models. The one is MobileNet-v1 SSD trained on COCO dataset, but removed the convolutional predictors for COCO dataset. This model can be used to initialize the models when training other datasets, like PASCAL VOC. The other pre-trained model is MobileNet-v1 trained on ImageNet 2012 dataset but removed the last weights and bias in the Fully-Connected layer. Download MobileNet-v1 SSD: - -```bash -sh ./pretrained/download_coco.sh -``` - -**NOTE:** Windows users can download weights from link in `./pretrained/download_coco.sh`. - -Declaration: the MobileNet-v1 SSD model is converted by [TensorFlow model](https://github.com/tensorflow/models/blob/f87a58cd96d45de73c9a8330a06b2ab56749a7fa/research/object_detection/g3doc/detection_model_zoo.md). - - -#### Train on PASCAL VOC - -`train.py` is the main caller of the training module. Examples of usage are shown below. - ``` - python -u train.py --batch_size=64 --dataset=pascalvoc --pretrained_model=pretrained/ssd_mobilenet_v1_coco/ - ``` - - Set ```export CUDA_VISIBLE_DEVICES=0,1``` to specifiy the number of GPU you want to use. - - **Note**: set `--use_multiprocess=False` when training on **Windows**, since some problems need to be solved when using Python multiprocess to accelerate data processing. - - For more help on arguments: - - ``` - python train.py --help - ``` - -Data reader is defined in `reader.py`. All images will be resized to 300x300. In training stage, images are randomly distorted, expanded, cropped and flipped: - - distort: distort brightness, contrast, saturation, and hue. - - expand: put the original image into a larger expanded image which is initialized using image mean. - - crop: crop image with respect to different scale, aspect ratio, and overlap. - - flip: flip horizontally. - -We used RMSProp optimizer with mini-batch size 64 to train the MobileNet-SSD. The initial learning rate is 0.001, and was decayed at 40, 60, 80, 100 epochs with multiplier 0.5, 0.25, 0.1, 0.01, respectively. Weight decay is 0.00005. After 120 epochs we achieve 73.32% mAP under 11point metric. - -### Evaluate - -You can evaluate your trained model in different metrics like 11point, integral on both PASCAL VOC and COCO dataset. Note we set the default test list to the dataset's test/val list, you can use your own test list by setting ```--test_list``` args. - -`eval.py` is the main caller of the evaluating module. Examples of usage are shown below. -``` -python eval.py --dataset=pascalvoc --model_dir=model/best_model --data_dir=data/pascalvoc --test_list=test.txt -``` - -### Infer and Visualize -`infer.py` is the main caller of the inferring module. Examples of usage are shown below. -``` -python infer.py --dataset=pascalvoc --nms_threshold=0.45 --model_dir=model/best_model --image_path=./data/pascalvoc/VOCdevkit/VOC2007/JPEGImages/009963.jpg -``` -Below are the examples of running the inference and visualizing the model result. -

- - - -
-MobileNet-v1-SSD 300x300 Visualization Examples -

- - -### Released Model - - -| Model | Pre-trained Model | Training data | Test data | mAP | -|:------------------------:|:------------------:|:----------------:|:------------:|:----:| -|[MobileNet-v1-SSD 300x300](http://paddlemodels.bj.bcebos.com/ssd_mobilenet_v1_pascalvoc.tar.gz) | COCO MobileNet SSD | VOC07+12 trainval| VOC07 test | 73.32% | diff --git a/PaddleCV/ssd/README_cn.md b/PaddleCV/ssd/README_cn.md deleted file mode 100644 index 982b567634907e5af09fd0403daf601ee10abf65..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/README_cn.md +++ /dev/null @@ -1,106 +0,0 @@ -**该项目已被迁移至[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), 这个项目包含了更多的检测模型。** - -## SSD 目标检测 - -## Table of Contents -- [简介](#简介) -- [数据准备](#数据准备) -- [模型训练](#模型训练) -- [模型评估](#模型评估) -- [模型预测以及可视化](#模型预测以及可视化) -- [模型发布](#模型发布) - -### 简介 - -[Single Shot MultiBox Detector (SSD)](https://arxiv.org/abs/1512.02325) 是一种单阶段的目标检测器。与两阶段的检测方法不同,单阶段目标检测并不进行区域推荐,而是直接从特征图回归出目标的边界框和分类概率。SSD 运用了这种单阶段检测的思想,并且对其进行改进:在不同尺度的特征图上检测对应尺度的目标。如下图所示,SSD 在六个尺度的特征图上进行了不同层级的预测。每个层级由两个3x3卷积分别对目标类别和边界框偏移进行回归。因此对于每个类别,SSD 的六个层级一共会产生 38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 个检测结果。 -

-
-SSD 目标检测模型 -

- -SSD 可以方便地插入到任何一种标准卷积网络中,比如 VGG、ResNet 或者 MobileNet,这些网络被称作检测器的基网络。在这个示例中我们使用 [MobileNet](https://arxiv.org/abs/1704.04861)。 - -同时推荐用户参考[ IPython Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/122276) - -### 数据准备 - - -请先使用下面的命令下载 [PASCAL VOC 数据集](http://host.robots.ox.ac.uk/pascal/VOC/): - -``` -cd data/pascalvoc -python download.py -``` - -`download.py` 脚本会自动创建训练和测试用的列表文件。 - - -### 模型训练 - -#### 下载预训练模型 - -我们提供了两个预训练模型。第一个模型是在 COCO 数据集上预训练的 MobileNet-v1 SSD,我们将它的预测头移除了以便在 COCO 以外的数据集上进行训练。第二个模型是在 ImageNet 2012 数据集上预训练的 MobileNet-v1,我们也将最后的全连接层移除以便进行目标检测训练。下载 MobileNet-v1 SSD: - -```bash -sh ./pretrained/download_coco.sh -``` - -**注意:** Windows用户可通过`./pretrained/download_coco.sh`中的链接直接下载和解压。 - -声明:MobileNet-v1 SSD 模型转换自[TensorFlow model](https://github.com/tensorflow/models/blob/f87a58cd96d45de73c9a8330a06b2ab56749a7fa/research/object_detection/g3doc/detection_model_zoo.md)。MobileNet-v1 模型转换自[Caffe](https://github.com/shicai/MobileNet-Caffe)。 - - -#### 训练 - -`train.py` 是训练模块的主要执行程序,调用示例如下: - ``` - python -u train.py --batch_size=64 --dataset=pascalvoc --pretrained_model=pretrained/ssd_mobilenet_v1_coco/ - ``` - - 可以通过设置 ```export CUDA_VISIBLE_DEVICES=0,1``` 指定想要使用的GPU数量。 - - **注意**: 在**Windows**机器上训练,需要设置 `--use_multiprocess=False`,因为在Windows上使用Python多进程加速训练时有错误。 - - 更多的可选参数见: - - ``` - python train.py --help - ``` - -数据的读取行为定义在 `reader.py` 中,所有的图片都会被缩放到300x300。在训练时还会对图片进行数据增强,包括随机扰动、扩张、翻转和裁剪: - - 扰动: 扰动图片亮度、对比度、饱和度和色相。 - - 扩张: 将原始图片放进一张使用像素均值填充(随后会在减均值操作中减掉)的扩张图中,再对此图进行裁剪、缩放和翻转。 - - 翻转: 水平翻转。 - - 裁剪: 根据缩放比例、长宽比例两个参数生成若干候选框,再依据这些候选框和标注框的面积交并比(IoU)挑选出符合要求的裁剪结果。 - -我们使用了 RMSProp 优化算法来训练 MobileNet-SSD,batch大小为64,权重衰减系数为0.00005,初始学习率为 0.001,并且在第40、60、80、100 轮时使用 0.5, 0.25, 0.1, 0.01乘子进行学习率衰减。在120轮训练后,11point评价标准下的mAP为73.32%。 - -### 模型评估 - -你可以使用11point、integral等指标在PASCAL VOC 数据集上评估训练好的模型。不失一般性,我们采用相应数据集的测试列表作为样例代码的默认列表,你也可以通过设置```--test_list```来指定自己的测试样本列表。 - -`eval.py`是评估模块的主要执行程序,调用示例如下: - -``` -python eval.py --dataset=pascalvoc --model_dir=model/best_model --data_dir=data/pascalvoc --test_list=test.txt -``` - -### 模型预测以及可视化 - -`infer.py`是预测及可视化模块的主要执行程序,调用示例如下: -``` -python infer.py --dataset=pascalvoc --nms_threshold=0.45 --model_dir=model/best_model --image_path=./data/pascalvoc/VOCdevkit/VOC2007/JPEGImages/009963.jpg -``` -下图可视化了模型的预测结果: -

- - - -
-MobileNet-v1-SSD 300x300 预测可视化 -

- - -### 模型发布 - - -| 模型 | 预训练模型 | 训练数据 | 测试数据 | mAP | -|:------------------------:|:------------------:|:----------------:|:------------:|:----:| -|[MobileNet-v1-SSD 300x300](http://paddlemodels.bj.bcebos.com/ssd_mobilenet_v1_pascalvoc.tar.gz) | COCO MobileNet SSD | VOC07+12 trainval| VOC07 test | 73.32% | diff --git a/PaddleCV/ssd/README_quant.md b/PaddleCV/ssd/README_quant.md deleted file mode 100644 index 7ea7f7bd79d21ba34c84d1a1b48a5298837939ac..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/README_quant.md +++ /dev/null @@ -1,146 +0,0 @@ -## Quantization-aware training for SSD - -### Introduction - -The quantization-aware training used in this experiments is introduced in [fixed-point quantization desigin](https://github.com/PaddlePaddle/FluidDoc/blob/develop/doc/fluid/design/quantization/fixed_point_quantization.md). Since quantization-aware training is still an active area of research and experimentation, -here, we just give an simple quantization training usage in Fluid based on MobileNet-SSD model, and more other exeperiments are still needed, like how to quantization traning by considering fusing batch normalization and convolution/fully-connected layers, channel-wise quantization of weights and so on. - - -A Python transpiler is used to rewrite Fluid training program or evaluation program for quantization-aware training: - -```python - - #startup_prog = fluid.Program() - #train_prog = fluid.Program() - #loss = build_program( - # main_prog=train_prog, - # startup_prog=startup_prog, - # is_train=True) - #build_program( - # main_prog=test_prog, - # startup_prog=startup_prog, - # is_train=False) - #test_prog = test_prog.clone(for_test=True) - # above is an pseudo code - - transpiler = fluid.contrib.QuantizeTranspiler( - weight_bits=8, - activation_bits=8, - activation_quantize_type='abs_max', # or 'range_abs_max' - weight_quantize_type='abs_max') - # note, transpiler.training_transpile will rewrite train_prog - # startup_prog is needed since it needs to insert and initialize - # some state variable - transpiler.training_transpile(train_prog, startup_prog) - transpiler.training_transpile(test_prog, startup_prog) -``` - - According to above design, this transpiler inserts fake quantization and de-quantization operation for each convolution operation (including depthwise convolution operation) and fully-connected operation. These quantizations take affect on weights and activations. - - In the design, we introduce dynamic quantization and static quantization strategies for different activation quantization methods. In the expriments, when set `activation_quantize_type` to `abs_max`, it is dynamic quantization. That is to say, the quantization scale (maximum of absolute value) of activation will be calculated each mini-batch during inference. When set `activation_quantize_type` to `range_abs_max`, a quantization scale for inference period will be calculated during training. Following part will introduce how to train. - -### Quantization-aware training - - The training is fine-tuned on the well-trained MobileNet-SSD model. So download model at first: - - ``` - wget http://paddlemodels.bj.bcebos.com/ssd_mobilenet_v1_pascalvoc.tar.gz - ``` - -- dynamic quantization: - - ```python - python main_quant.py \ - --data_dir=$PascalVOC_DIR$ \ - --mode='train' \ - --init_model=ssd_mobilenet_v1_pascalvoc \ - --act_quant_type='abs_max' \ - --epoc_num=20 \ - --learning_rate=0.0001 \ - --batch_size=64 \ - --model_save_dir=$OUTPUT_DIR$ - ``` - Since fine-tuned on a well-trained model, we use a small start learnng rate 0.0001, and train 20 epocs. - -- static quantization: - ```python - python main_quant.py \ - --data_dir=$PascalVOC_DIR$ \ - --mode='train' \ - --init_model=ssd_mobilenet_v1_pascalvoc \ - --act_quant_type='range_abs_max' \ - --epoc_num=80 \ - --learning_rate=0.001 \ - --lr_epochs=30,60 \ - --lr_decay_rates=1,0.1,0.01 \ - --batch_size=64 \ - --model_save_dir=$OUTPUT_DIR$ - ``` - Here, train 80 epocs, learning rate decays at 30 and 60 epocs by 0.1 every time. Users can adjust these hype-parameters. - -### Convert to inference model - - As described in the design documentation, the inference graph is a little different from training, the difference is the de-quantization operation is before or after conv/fc. This is equivalent in training due to linear operation of conv/fc and de-quantization and functions' commutative law. But for inference, it needs to convert the graph, `fluid.contrib.QuantizeTranspiler.freeze_program` is used to do this: - - ```python - #startup_prog = fluid.Program() - #test_prog = fluid.Program() - #test_py_reader, map_eval, nmsed_out, image = build_program( - # main_prog=test_prog, - # startup_prog=startup_prog, - # train_params=configs, - # is_train=False) - #test_prog = test_prog.clone(for_test=True) - #transpiler = fluid.contrib.QuantizeTranspiler(weight_bits=8, - # activation_bits=8, - # activation_quantize_type=act_quant_type, - # weight_quantize_type='abs_max') - #transpiler.training_transpile(test_prog, startup_prog) - #place = fluid.CUDAPlace(0) if use_gpu else fluid.CPUPlace() - #exe = fluid.Executor(place) - #exe.run(startup_prog) - - def if_exist(var): - return os.path.exists(os.path.join(init_model, var.name)) - fluid.io.load_vars(exe, init_model, main_program=test_prog, - predicate=if_exist) - # freeze the rewrited training program - # freeze after load parameters, it will quantized weights - transpiler.freeze_program(test_prog, place) - ``` - - Users can evaluate the converted model by: - - ``` - python main_quant.py \ - --data_dir=$PascalVOC_DIR$ \ - --mode='test' \ - --init_model=$MODLE_DIR$ \ - --model_save_dir=$MobileNet_SSD_8BIT_MODEL$ - ``` - - You also can check the 8-bit model by the inference scripts - - ``` - python main_quant.py \ - --mode='infer' \ - --init_model=$MobileNet_SSD_8BIT_MODEL$ \ - --confs_threshold=0.5 \ - --image_path='/data/PascalVOC/VOCdevkit/VOC2007/JPEGImages/002271.jpg' - ``` - See 002271.jpg for the visualized image with bbouding boxes. - - - **Note**, if you want to convert model to 8-bit, you should call `fluid.contrib.QuantizeTranspiler.convert_to_int8` to do this. But, now Paddle can't load 8-bit model to do inference. - -### Results - -Results of MobileNet-v1-SSD 300x300 model on PascalVOC dataset. - -| Model | mAP | -|:---------------------------------------:|:------------------:| -|Floating point: 32bit | 73.32% | -|Fixed point: 8bit, dynamic quantization | 72.77% | -|Fixed point: 8bit, static quantization | 72.45% | - - As mentioned above, other experiments, like how to quantization traning by considering fusing batch normalization and convolution/fully-connected layers, channel-wise quantization of weights, quantizated weights type with uint8 instead of int8 and so on. diff --git a/PaddleCV/ssd/_ce.py b/PaddleCV/ssd/_ce.py deleted file mode 100644 index 6f300e162b1c1940a2c8f1463953f0bcbeaa0a78..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/_ce.py +++ /dev/null @@ -1,72 +0,0 @@ -####this file is only used for continuous evaluation test! - -import os -import sys -sys.path.append(os.environ['ceroot']) -from kpi import CostKpi, DurationKpi, AccKpi - -#### NOTE kpi.py should shared in models in some way!!!! - -train_cost_kpi = CostKpi('train_cost', 0.02, 0, actived=True) -test_acc_kpi = AccKpi('test_acc', 0.01, 0, actived=False) -train_speed_kpi = DurationKpi('train_speed', 0.1, 0, actived=True, unit_repr="s/epoch") -train_cost_card4_kpi = CostKpi('train_cost_card4', 0.02, 0, actived=True) -test_acc_card4_kpi = AccKpi('test_acc_card4', 0.01, 0, actived=False) -train_speed_card4_kpi = DurationKpi('train_speed_card4', 0.1, 0, actived=True, unit_repr="s/epoch") - -tracking_kpis = [ - train_cost_kpi, - test_acc_kpi, - train_speed_kpi, - train_cost_card4_kpi, - test_acc_card4_kpi, - train_speed_card4_kpi, -] - - -def parse_log(log): - ''' - This method should be implemented by model developers. - - The suggestion: - - each line in the log should be key, value, for example: - - " - train_cost\t1.0 - test_cost\t1.0 - train_cost\t1.0 - train_cost\t1.0 - train_acc\t1.2 - " - ''' - #kpi_map = {} - for line in log.split('\n'): - fs = line.strip().split('\t') - print(fs) - if len(fs) == 3 and fs[0] == 'kpis': - print("-----%s" % fs) - kpi_name = fs[1] - kpi_value = float(fs[2]) - #kpi_map[kpi_name] = kpi_value - yield kpi_name, kpi_value - #return kpi_map - - -def log_to_ce(log): - kpi_tracker = {} - for kpi in tracking_kpis: - kpi_tracker[kpi.name] = kpi - - for (kpi_name, kpi_value) in parse_log(log): - print(kpi_name, kpi_value) - kpi_tracker[kpi_name].add_record(kpi_value) - kpi_tracker[kpi_name].persist() - - -if __name__ == '__main__': - log = sys.stdin.read() - print("*****") - print(log) - print("****") - log_to_ce(log) diff --git a/PaddleCV/ssd/data/coco/download.py b/PaddleCV/ssd/data/coco/download.py deleted file mode 100644 index 9df49bef6eab9d615e61e3cd429dcfdbeb5708ce..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/data/coco/download.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import os.path as osp -import sys -import zipfile -import logging - -from paddle.dataset.common import download - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -DATASETS = { - 'coco': [ - # coco2017 - ('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', ), - # coco2014 - ('http://images.cocodataset.org/zips/train2014.zip', - '0da8c0bd3d6becc4dcb32757491aca88', ), - ('http://images.cocodataset.org/zips/val2014.zip', - 'a3d79f5ed8d289b7a7554ce06a5782b3', ), - ('http://images.cocodataset.org/annotations/annotations_trainval2014.zip', - '0a379cfc70b0e71301e0f377548639bd', ), - ], -} - - -def download_decompress_file(data_dir, url, md5): - logger.info("Downloading from {}".format(url)) - zip_file = download(url, data_dir, md5) - logger.info("Decompressing {}".format(zip_file)) - with zipfile.ZipFile(zip_file) as zf: - zf.extractall(path=data_dir) - os.remove(zip_file) - - -if __name__ == "__main__": - data_dir = osp.split(osp.realpath(sys.argv[0]))[0] - for name, infos in DATASETS.items(): - for info in infos: - download_decompress_file(data_dir, info[0], info[1]) - logger.info("Download dataset {} finished.".format(name)) diff --git a/PaddleCV/ssd/data/pascalvoc/download.py b/PaddleCV/ssd/data/pascalvoc/download.py deleted file mode 100644 index 7e652c2936eb8705eb2ebba57bddddfa6ae53c58..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/data/pascalvoc/download.py +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import os.path as osp -import sys -import io -import re -import random -import tarfile -import logging - -from paddle.dataset.common import download - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -DATASETS = { - 'pascalvoc': [ - ('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', ), - ], -} - -devkit_dir = './VOCdevkit' -years = ['2007', '2012'] - - -def get_dir(devkit_dir, year, type): - return osp.join(devkit_dir, 'VOC' + year, type) - - -def walk_dir(devkit_dir, year): - filelist_dir = get_dir(devkit_dir, year, 'ImageSets/Main') - annotation_dir = get_dir(devkit_dir, year, 'Annotations') - img_dir = get_dir(devkit_dir, year, 'JPEGImages') - trainval_list = [] - test_list = [] - added = set() - - for _, _, files in os.walk(filelist_dir): - for fname in files: - img_ann_list = [] - if re.match('[a-z]+_trainval\.txt', fname): - img_ann_list = trainval_list - elif re.match('[a-z]+_test\.txt', fname): - img_ann_list = test_list - else: - continue - fpath = osp.join(filelist_dir, fname) - for line in io.open(fpath): - name_prefix = line.strip().split()[0] - if name_prefix in added: - continue - added.add(name_prefix) - ann_path = osp.join(annotation_dir, name_prefix + '.xml') - img_path = osp.join(img_dir, name_prefix + '.jpg') - assert os.path.isfile(ann_path), 'file %s not found.' % ann_path - assert os.path.isfile(img_path), 'file %s not found.' % img_path - img_ann_list.append((img_path, ann_path)) - - return trainval_list, test_list - - -def prepare_filelist(devkit_dir, years, output_dir): - trainval_list = [] - test_list = [] - for year in years: - trainval, test = walk_dir(devkit_dir, year) - trainval_list.extend(trainval) - test_list.extend(test) - random.shuffle(trainval_list) - with io.open(osp.join(output_dir, 'trainval.txt'), 'w') as ftrainval: - for item in trainval_list: - ftrainval.write(item[0] + ' ' + item[1] + '\n') - - with io.open(osp.join(output_dir, 'test.txt'), 'w') as ftest: - for item in test_list: - ftest.write(item[0] + ' ' + item[1] + '\n') - - - -def download_decompress_file(data_dir, url, md5): - logger.info("Downloading from {}".format(url)) - tar_file = download(url, data_dir, md5) - logger.info("Decompressing {}".format(tar_file)) - with tarfile.open(tar_file) as tf: - tf.extractall(path=data_dir) - os.remove(tar_file) - - -if __name__ == "__main__": - data_dir = osp.split(osp.realpath(sys.argv[0]))[0] - for name, infos in DATASETS.items(): - for info in infos: - download_decompress_file(data_dir, info[0], info[1]) - if name == 'pascalvoc': - logger.info("create list for pascalvoc dataset.") - prepare_filelist(devkit_dir, years, data_dir) - logger.info("Download dataset {} finished.".format(name)) diff --git a/PaddleCV/ssd/data/pascalvoc/label_list b/PaddleCV/ssd/data/pascalvoc/label_list deleted file mode 100644 index 87df23ce0aebcd5ab96fc91c868598c3333da59c..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/data/pascalvoc/label_list +++ /dev/null @@ -1,21 +0,0 @@ -background -aeroplane -bicycle -bird -boat -bottle -bus -car -cat -chair -cow -diningtable -dog -horse -motorbike -person -pottedplant -sheep -sofa -train -tvmonitor diff --git a/PaddleCV/ssd/eval.py b/PaddleCV/ssd/eval.py deleted file mode 100644 index cdcf04519919f9e6ea46a9604dc4093ac512c28a..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/eval.py +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import numpy as np -import argparse -import functools -import math - -import paddle -import paddle.fluid as fluid -import reader -from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments, check_cuda - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('dataset', str, 'pascalvoc', "coco2014, coco2017, and pascalvoc.") -add_arg('batch_size', int, 32, "Minibatch size.") -add_arg('use_gpu', bool, True, "Whether use GPU.") -add_arg('data_dir', str, '', "The data root path.") -add_arg('test_list', str, '', "The testing data lists.") -add_arg('model_dir', str, '', "The model path.") -add_arg('nms_threshold', float, 0.45, "NMS threshold.") -add_arg('ap_version', str, '11point', "integral, 11point.") -add_arg('resize_h', int, 300, "The resized image height.") -add_arg('resize_w', int, 300, "The resized image height.") -add_arg('mean_value_B', float, 127.5, "Mean value for B channel which will be subtracted.") #123.68 -add_arg('mean_value_G', float, 127.5, "Mean value for G channel which will be subtracted.") #116.78 -add_arg('mean_value_R', float, 127.5, "Mean value for R channel which will be subtracted.") #103.94 -# yapf: enable - - -def build_program(main_prog, startup_prog, args, data_args): - image_shape = [3, data_args.resize_h, data_args.resize_w] - if 'coco' in data_args.dataset: - num_classes = 91 - elif 'pascalvoc' in data_args.dataset: - num_classes = 21 - - with fluid.program_guard(main_prog, startup_prog): - py_reader = fluid.layers.py_reader( - capacity=64, - shapes=[[-1] + image_shape, [-1, 4], [-1, 1], [-1, 1]], - lod_levels=[0, 1, 1, 1], - dtypes=["float32", "float32", "int32", "int32"], - use_double_buffer=True) - with fluid.unique_name.guard(): - image, gt_box, gt_label, difficult = fluid.layers.read_file( - py_reader) - locs, confs, box, box_var = build_mobilenet_ssd(image, num_classes, - image_shape) - nmsed_out = fluid.layers.detection_output( - locs, confs, box, box_var, nms_threshold=args.nms_threshold) - with fluid.program_guard(main_prog): - map = fluid.metrics.DetectionMAP( - nmsed_out, - gt_label, - gt_box, - difficult, - num_classes, - overlap_threshold=0.5, - evaluate_difficult=False, - ap_version=args.ap_version) - return py_reader, map - - -def eval(args, data_args, test_list, batch_size, model_dir=None): - startup_prog = fluid.Program() - test_prog = fluid.Program() - test_py_reader, map_eval = build_program( - main_prog=test_prog, - startup_prog=startup_prog, - args=args, - data_args=data_args) - test_prog = test_prog.clone(for_test=True) - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(startup_prog) - - def if_exist(var): - return os.path.exists(os.path.join(model_dir, var.name)) - - fluid.io.load_vars( - exe, model_dir, main_program=test_prog, predicate=if_exist) - - test_reader = reader.test(data_args, test_list, batch_size=batch_size) - test_py_reader.decorate_paddle_reader(test_reader) - - _, accum_map = map_eval.get_map_var() - map_eval.reset(exe) - test_py_reader.start() - try: - batch_id = 0 - while True: - test_map, = exe.run(test_prog, fetch_list=[accum_map]) - if batch_id % 10 == 0: - print("Batch {0}, map {1}".format(batch_id, test_map)) - batch_id += 1 - except (fluid.core.EOFException, StopIteration): - test_py_reader.reset() - print("Test model {0}, map {1}".format(model_dir, test_map)) - - -if __name__ == '__main__': - args = parser.parse_args() - print_arguments(args) - - check_cuda(args.use_gpu) - - data_dir = 'data/pascalvoc' - test_list = 'test.txt' - label_file = 'label_list' - - if not os.path.exists(args.model_dir): - raise ValueError("The model path [%s] does not exist." % - (args.model_dir)) - if 'coco' in args.dataset: - data_dir = 'data/coco' - if '2014' in args.dataset: - test_list = 'annotations/instances_val2014.json' - elif '2017' in args.dataset: - test_list = 'annotations/instances_val2017.json' - - data_args = reader.Settings( - dataset=args.dataset, - data_dir=args.data_dir if len(args.data_dir) > 0 else data_dir, - label_file=label_file, - resize_h=args.resize_h, - resize_w=args.resize_w, - mean_value=[args.mean_value_B, args.mean_value_G, args.mean_value_R], - apply_distort=False, - apply_expand=False, - ap_version=args.ap_version) - eval( - args, - data_args=data_args, - test_list=args.test_list if len(args.test_list) > 0 else test_list, - batch_size=args.batch_size, - model_dir=args.model_dir) diff --git a/PaddleCV/ssd/eval_coco_map.py b/PaddleCV/ssd/eval_coco_map.py deleted file mode 100644 index c008430776e33ccfaea910b39776292783630eb2..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/eval_coco_map.py +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import io -import six -import time -import numpy as np -import argparse -import functools - -import paddle -import paddle.fluid as fluid -import reader -from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments - -# A special mAP metric for COCO dataset, which averages AP in different IoUs. -# To use this eval_cocoMAP.py, [cocoapi](https://github.com/cocodataset/cocoapi) is needed. -import json -from pycocotools.coco import COCO -from pycocotools.cocoeval import COCOeval - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('dataset', str, 'coco2014', "coco2014, coco2017.") -add_arg('batch_size', int, 32, "Minibatch size.") -add_arg('use_gpu', bool, True, "Whether use GPU.") -add_arg('data_dir', str, '', "The data root path.") -add_arg('test_list', str, '', "The testing data lists.") -add_arg('model_dir', str, '', "The model path.") -add_arg('nms_threshold', float, 0.5, "NMS threshold.") -add_arg('ap_version', str, 'cocoMAP', "cocoMAP.") -add_arg('resize_h', int, 300, "The resized image height.") -add_arg('resize_w', int, 300, "The resized image height.") -add_arg('mean_value_B', float, 127.5, "Mean value for B channel which will be subtracted.") #123.68 -add_arg('mean_value_G', float, 127.5, "Mean value for G channel which will be subtracted.") #116.78 -add_arg('mean_value_R', float, 127.5, "Mean value for R channel which will be subtracted.") #103.94 -# yapf: enable - - -def eval(args, data_args, test_list, batch_size, model_dir=None): - image_shape = [3, data_args.resize_h, data_args.resize_w] - num_classes = 91 - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - gt_box = fluid.layers.data( - name='gt_box', shape=[4], dtype='float32', lod_level=1) - gt_label = fluid.layers.data( - name='gt_label', shape=[1], dtype='int32', lod_level=1) - gt_iscrowd = fluid.layers.data( - name='gt_iscrowd', shape=[1], dtype='int32', lod_level=1) - gt_image_info = fluid.layers.data( - name='gt_image_id', shape=[3], dtype='int32') - - locs, confs, box, box_var = build_mobilenet_ssd(image, - num_classes, image_shape) - nmsed_out = fluid.layers.detection_output( - locs, confs, box, box_var, nms_threshold=args.nms_threshold) - loss = fluid.layers.ssd_loss(locs, confs, gt_box, gt_label, box, box_var) - loss = fluid.layers.reduce_sum(loss) - - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - # yapf: disable - if model_dir: - def if_exist(var): - return os.path.exists(os.path.join(model_dir, var.name)) - fluid.io.load_vars(exe, model_dir, predicate=if_exist) - # yapf: enable - test_reader = reader.test(data_args, test_list, batch_size) - feeder = fluid.DataFeeder( - place=place, - feed_list=[image, gt_box, gt_label, gt_iscrowd, gt_image_info]) - - def get_dt_res(nmsed_out_v, data): - dts_res = [] - lod = nmsed_out_v[0].lod()[0] - nmsed_out_v = np.array(nmsed_out_v[0]) - real_batch_size = min(batch_size, len(data)) - assert (len(lod) == real_batch_size + 1), \ - "Error Lod Tensor offset dimension. Lod({}) vs. batch_size({})".format(len(lod), batch_size) - k = 0 - for i in range(real_batch_size): - dt_num_this_img = lod[i + 1] - lod[i] - image_id = int(data[i][4][0]) - image_width = int(data[i][4][1]) - image_height = int(data[i][4][2]) - for j in range(dt_num_this_img): - dt = nmsed_out_v[k] - k = k + 1 - category_id, score, xmin, ymin, xmax, ymax = dt.tolist() - xmin = max(min(xmin, 1.0), 0.0) * image_width - ymin = max(min(ymin, 1.0), 0.0) * image_height - xmax = max(min(xmax, 1.0), 0.0) * image_width - ymax = max(min(ymax, 1.0), 0.0) * image_height - w = xmax - xmin - h = ymax - ymin - bbox = [xmin, ymin, w, h] - dt_res = { - 'image_id': image_id, - 'category_id': category_id, - 'bbox': bbox, - 'score': score - } - dts_res.append(dt_res) - return dts_res - - def test(): - dts_res = [] - - for batch_id, data in enumerate(test_reader()): - nmsed_out_v = exe.run(fluid.default_main_program(), - feed=feeder.feed(data), - fetch_list=[nmsed_out], - return_numpy=False) - if batch_id % 20 == 0: - print("Batch {0}".format(batch_id)) - dts_res += get_dt_res(nmsed_out_v, data) - - with io.open("detection_result.json", 'w') as outfile: - encode_func = unicode if six.PY2 else str - outfile.write(encode_func(json.dumps(dts_res))) - print("start evaluate using coco api") - cocoGt = COCO(os.path.join(data_args.data_dir, test_list)) - cocoDt = cocoGt.loadRes("detection_result.json") - cocoEval = COCOeval(cocoGt, cocoDt, "bbox") - cocoEval.evaluate() - cocoEval.accumulate() - cocoEval.summarize() - - test() - - -if __name__ == '__main__': - args = parser.parse_args() - print_arguments(args) - assert args.dataset in ['coco2014', 'coco2017'] - data_dir = './data/coco' - if '2014' in args.dataset: - test_list = 'annotations/instances_val2014.json' - elif '2017' in args.dataset: - test_list = 'annotations/instances_val2017.json' - - data_args = reader.Settings( - dataset=args.dataset, - data_dir=args.data_dir if len(args.data_dir) > 0 else data_dir, - label_file='', - resize_h=args.resize_h, - resize_w=args.resize_w, - mean_value=[args.mean_value_B, args.mean_value_G, args.mean_value_R], - apply_distort=False, - apply_expand=False, - ap_version=args.ap_version) - eval( - args, - data_args=data_args, - test_list=args.test_list if len(args.test_list) > 0 else test_list, - batch_size=args.batch_size, - model_dir=args.model_dir) diff --git a/PaddleCV/ssd/image_util.py b/PaddleCV/ssd/image_util.py deleted file mode 100644 index ed4bf6f682d358f6afe082300aaae2737456798b..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/image_util.py +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from PIL import Image, ImageEnhance, ImageDraw -from PIL import ImageFile -import numpy as np -import random -import math - -ImageFile.LOAD_TRUNCATED_IMAGES = True #otherwise IOError raised image file is truncated - - -class sampler(): - def __init__(self, max_sample, max_trial, min_scale, max_scale, - min_aspect_ratio, max_aspect_ratio, min_jaccard_overlap, - max_jaccard_overlap): - self.max_sample = max_sample - self.max_trial = max_trial - self.min_scale = min_scale - self.max_scale = max_scale - self.min_aspect_ratio = min_aspect_ratio - self.max_aspect_ratio = max_aspect_ratio - self.min_jaccard_overlap = min_jaccard_overlap - self.max_jaccard_overlap = max_jaccard_overlap - - -class bbox(): - def __init__(self, xmin, ymin, xmax, ymax): - self.xmin = xmin - self.ymin = ymin - self.xmax = xmax - self.ymax = ymax - - -def bbox_area(src_bbox): - width = src_bbox.xmax - src_bbox.xmin - height = src_bbox.ymax - src_bbox.ymin - return width * height - - -def generate_sample(sampler): - scale = np.random.uniform(sampler.min_scale, sampler.max_scale) - aspect_ratio = np.random.uniform(sampler.min_aspect_ratio, - sampler.max_aspect_ratio) - aspect_ratio = max(aspect_ratio, (scale**2.0)) - aspect_ratio = min(aspect_ratio, 1 / (scale**2.0)) - - bbox_width = scale * (aspect_ratio**0.5) - bbox_height = scale / (aspect_ratio**0.5) - xmin_bound = 1 - bbox_width - ymin_bound = 1 - bbox_height - xmin = np.random.uniform(0, xmin_bound) - ymin = np.random.uniform(0, ymin_bound) - xmax = xmin + bbox_width - ymax = ymin + bbox_height - sampled_bbox = bbox(xmin, ymin, xmax, ymax) - return sampled_bbox - - -def jaccard_overlap(sample_bbox, object_bbox): - if sample_bbox.xmin >= object_bbox.xmax or \ - sample_bbox.xmax <= object_bbox.xmin or \ - sample_bbox.ymin >= object_bbox.ymax or \ - sample_bbox.ymax <= object_bbox.ymin: - return 0 - intersect_xmin = max(sample_bbox.xmin, object_bbox.xmin) - intersect_ymin = max(sample_bbox.ymin, object_bbox.ymin) - intersect_xmax = min(sample_bbox.xmax, object_bbox.xmax) - intersect_ymax = min(sample_bbox.ymax, object_bbox.ymax) - intersect_size = (intersect_xmax - intersect_xmin) * ( - intersect_ymax - intersect_ymin) - sample_bbox_size = bbox_area(sample_bbox) - object_bbox_size = bbox_area(object_bbox) - overlap = intersect_size / ( - sample_bbox_size + object_bbox_size - intersect_size) - return overlap - - -def satisfy_sample_constraint(sampler, sample_bbox, bbox_labels): - if sampler.min_jaccard_overlap == 0 and sampler.max_jaccard_overlap == 0: - return True - for i in range(len(bbox_labels)): - object_bbox = bbox(bbox_labels[i][1], bbox_labels[i][2], - bbox_labels[i][3], bbox_labels[i][4]) - overlap = jaccard_overlap(sample_bbox, object_bbox) - if sampler.min_jaccard_overlap != 0 and \ - overlap < sampler.min_jaccard_overlap: - continue - if sampler.max_jaccard_overlap != 0 and \ - overlap > sampler.max_jaccard_overlap: - continue - return True - return False - - -def generate_batch_samples(batch_sampler, bbox_labels): - sampled_bbox = [] - index = [] - c = 0 - for sampler in batch_sampler: - found = 0 - for i in range(sampler.max_trial): - if found >= sampler.max_sample: - break - sample_bbox = generate_sample(sampler) - if satisfy_sample_constraint(sampler, sample_bbox, bbox_labels): - sampled_bbox.append(sample_bbox) - found = found + 1 - index.append(c) - c = c + 1 - return sampled_bbox - - -def clip_bbox(src_bbox): - src_bbox.xmin = max(min(src_bbox.xmin, 1.0), 0.0) - src_bbox.ymin = max(min(src_bbox.ymin, 1.0), 0.0) - src_bbox.xmax = max(min(src_bbox.xmax, 1.0), 0.0) - src_bbox.ymax = max(min(src_bbox.ymax, 1.0), 0.0) - return src_bbox - - -def meet_emit_constraint(src_bbox, sample_bbox): - center_x = (src_bbox.xmax + src_bbox.xmin) / 2 - center_y = (src_bbox.ymax + src_bbox.ymin) / 2 - if center_x >= sample_bbox.xmin and \ - center_x <= sample_bbox.xmax and \ - center_y >= sample_bbox.ymin and \ - center_y <= sample_bbox.ymax: - return True - return False - - -def transform_labels(bbox_labels, sample_bbox): - proj_bbox = bbox(0, 0, 0, 0) - sample_labels = [] - for i in range(len(bbox_labels)): - sample_label = [] - object_bbox = bbox(bbox_labels[i][1], bbox_labels[i][2], - bbox_labels[i][3], bbox_labels[i][4]) - if not meet_emit_constraint(object_bbox, sample_bbox): - continue - sample_width = sample_bbox.xmax - sample_bbox.xmin - sample_height = sample_bbox.ymax - sample_bbox.ymin - proj_bbox.xmin = (object_bbox.xmin - sample_bbox.xmin) / sample_width - proj_bbox.ymin = (object_bbox.ymin - sample_bbox.ymin) / sample_height - proj_bbox.xmax = (object_bbox.xmax - sample_bbox.xmin) / sample_width - proj_bbox.ymax = (object_bbox.ymax - sample_bbox.ymin) / sample_height - proj_bbox = clip_bbox(proj_bbox) - if bbox_area(proj_bbox) > 0: - sample_label.append(bbox_labels[i][0]) - sample_label.append(float(proj_bbox.xmin)) - sample_label.append(float(proj_bbox.ymin)) - sample_label.append(float(proj_bbox.xmax)) - sample_label.append(float(proj_bbox.ymax)) - #sample_label.append(bbox_labels[i][5]) - sample_label = sample_label + bbox_labels[i][5:] - sample_labels.append(sample_label) - return sample_labels - - -def crop_image(img, bbox_labels, sample_bbox, image_width, image_height): - sample_bbox = clip_bbox(sample_bbox) - xmin = int(sample_bbox.xmin * image_width) - xmax = int(sample_bbox.xmax * image_width) - ymin = int(sample_bbox.ymin * image_height) - ymax = int(sample_bbox.ymax * image_height) - sample_img = img[ymin:ymax, xmin:xmax] - sample_labels = transform_labels(bbox_labels, sample_bbox) - return sample_img, sample_labels - - -def random_brightness(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._brightness_prob: - delta = np.random.uniform(-settings._brightness_delta, - settings._brightness_delta) + 1 - img = ImageEnhance.Brightness(img).enhance(delta) - return img - - -def random_contrast(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._contrast_prob: - delta = np.random.uniform(-settings._contrast_delta, - settings._contrast_delta) + 1 - img = ImageEnhance.Contrast(img).enhance(delta) - return img - - -def random_saturation(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._saturation_prob: - delta = np.random.uniform(-settings._saturation_delta, - settings._saturation_delta) + 1 - img = ImageEnhance.Color(img).enhance(delta) - return img - - -def random_hue(img, settings): - prob = np.random.uniform(0, 1) - if prob < settings._hue_prob: - delta = np.random.uniform(-settings._hue_delta, settings._hue_delta) - img_hsv = np.array(img.convert('HSV')) - img_hsv[:, :, 0] = img_hsv[:, :, 0] + delta - img = Image.fromarray(img_hsv, mode='HSV').convert('RGB') - return img - - -def distort_image(img, settings): - prob = np.random.uniform(0, 1) - # Apply different distort order - if prob > 0.5: - img = random_brightness(img, settings) - img = random_contrast(img, settings) - img = random_saturation(img, settings) - img = random_hue(img, settings) - else: - img = random_brightness(img, settings) - img = random_saturation(img, settings) - img = random_hue(img, settings) - img = random_contrast(img, settings) - return img - - -def expand_image(img, bbox_labels, img_width, img_height, settings): - prob = np.random.uniform(0, 1) - if prob < settings._expand_prob: - if settings._expand_max_ratio - 1 >= 0.01: - expand_ratio = np.random.uniform(1, settings._expand_max_ratio) - height = int(img_height * expand_ratio) - width = int(img_width * expand_ratio) - h_off = math.floor(np.random.uniform(0, height - img_height)) - w_off = math.floor(np.random.uniform(0, width - img_width)) - expand_bbox = bbox(-w_off / img_width, -h_off / img_height, - (width - w_off) / img_width, - (height - h_off) / img_height) - expand_img = np.ones((height, width, 3)) - expand_img = np.uint8(expand_img * np.squeeze(settings._img_mean)) - expand_img = Image.fromarray(expand_img) - expand_img.paste(img, (int(w_off), int(h_off))) - bbox_labels = transform_labels(bbox_labels, expand_bbox) - return expand_img, bbox_labels, width, height - return img, bbox_labels, img_width, img_height diff --git a/PaddleCV/ssd/images/009943.jpg b/PaddleCV/ssd/images/009943.jpg deleted file mode 100644 index d6262f97052aa7d82068e7d01f4d9982fcf0d3a9..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/009943.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/009956.jpg b/PaddleCV/ssd/images/009956.jpg deleted file mode 100644 index 320d3e251782e946395e7fcadbef051bc2e94bee..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/009956.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/009960.jpg b/PaddleCV/ssd/images/009960.jpg deleted file mode 100644 index 2f73d3d6f1956b1fa9ae1aba3b5d516a53f26b8f..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/009960.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/009962.jpg b/PaddleCV/ssd/images/009962.jpg deleted file mode 100644 index 182d6677bb80d94c5e7e4db3bf6654d3c064566c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/009962.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/COCO_val2014_000000000139.jpg b/PaddleCV/ssd/images/COCO_val2014_000000000139.jpg deleted file mode 100644 index 203a5273c134bb78bcb860c832bde2e2f49a42f2..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/COCO_val2014_000000000139.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/COCO_val2014_000000000785.jpg b/PaddleCV/ssd/images/COCO_val2014_000000000785.jpg deleted file mode 100644 index 5107ace65f5aedd67ee81317f24c9186441bfdb5..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/COCO_val2014_000000000785.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/COCO_val2014_000000000885.jpg b/PaddleCV/ssd/images/COCO_val2014_000000000885.jpg deleted file mode 100644 index 3aa5a741a31445454dfb3c3a8d2fa24948aca2c4..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/COCO_val2014_000000000885.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/COCO_val2014_000000142324.jpg b/PaddleCV/ssd/images/COCO_val2014_000000142324.jpg deleted file mode 100644 index 9f9e5b6246eaace56b13012b96f42ec0e06c0882..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/COCO_val2014_000000142324.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/COCO_val2014_000000144003.jpg b/PaddleCV/ssd/images/COCO_val2014_000000144003.jpg deleted file mode 100644 index 1f17bbc667d92dfbc4c3b4f17fc7b3715e7ffc1b..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/COCO_val2014_000000144003.jpg and /dev/null differ diff --git a/PaddleCV/ssd/images/SSD_paper_figure.jpg b/PaddleCV/ssd/images/SSD_paper_figure.jpg deleted file mode 100644 index 4a180341ceffd6a4c3446994203f1a3adc4c6796..0000000000000000000000000000000000000000 Binary files a/PaddleCV/ssd/images/SSD_paper_figure.jpg and /dev/null differ diff --git a/PaddleCV/ssd/infer.py b/PaddleCV/ssd/infer.py deleted file mode 100644 index e5fc2a2fa16770aa03e0257a11c92b84b6f5dd72..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/infer.py +++ /dev/null @@ -1,159 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import numpy as np -import argparse -import functools -from PIL import Image -from PIL import ImageDraw -from PIL import ImageFont - -import paddle -import paddle.fluid as fluid -import reader -from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments, check_cuda - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('dataset', str, 'pascalvoc', "coco and pascalvoc.") -add_arg('use_gpu', bool, True, "Whether use GPU.") -add_arg('image_path', str, '', "The image used to inference and visualize.") -add_arg('model_dir', str, '', "The model path.") -add_arg('nms_threshold', float, 0.45, "NMS threshold.") -add_arg('confs_threshold', float, 0.5, "Confidence threshold to draw bbox.") -add_arg('resize_h', int, 300, "The resized image height.") -add_arg('resize_w', int, 300, "The resized image height.") -add_arg('mean_value_B', float, 127.5, "Mean value for B channel which will be subtracted.") #123.68 -add_arg('mean_value_G', float, 127.5, "Mean value for G channel which will be subtracted.") #116.78 -add_arg('mean_value_R', float, 127.5, "Mean value for R channel which will be subtracted.") #103.94 -# yapf: enable - - -def infer(args, data_args, image_path, model_dir): - image_shape = [3, data_args.resize_h, data_args.resize_w] - if 'coco' in data_args.dataset: - num_classes = 91 - # cocoapi - from pycocotools.coco import COCO - from pycocotools.cocoeval import COCOeval - label_fpath = os.path.join(data_dir, label_file) - coco = COCO(label_fpath) - category_ids = coco.getCatIds() - label_list = { - item['id']: item['name'] - for item in coco.loadCats(category_ids) - } - label_list[0] = ['background'] - elif 'pascalvoc' in data_args.dataset: - num_classes = 21 - label_list = data_args.label_list - - image = fluid.layers.data(name='image', shape=image_shape, dtype='float32') - locs, confs, box, box_var = build_mobilenet_ssd(image, num_classes, - image_shape) - nmsed_out = fluid.layers.detection_output( - locs, confs, box, box_var, nms_threshold=args.nms_threshold) - - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - # yapf: disable - if model_dir: - def if_exist(var): - return os.path.exists(os.path.join(model_dir, var.name)) - fluid.io.load_vars(exe, model_dir, predicate=if_exist) - # yapf: enable - infer_reader = reader.infer(data_args, image_path) - feeder = fluid.DataFeeder(place=place, feed_list=[image]) - - data = infer_reader() - - # switch network to test mode (i.e. batch norm test mode) - test_program = fluid.default_main_program().clone(for_test=True) - nmsed_out_v, = exe.run(test_program, - feed=feeder.feed([[data]]), - fetch_list=[nmsed_out], - return_numpy=False) - nmsed_out_v = np.array(nmsed_out_v) - draw_bounding_box_on_image(image_path, nmsed_out_v, args.confs_threshold, - label_list) - - -def draw_bounding_box_on_image(image_path, nms_out, confs_threshold, - label_list): - image = Image.open(image_path) - draw = ImageDraw.Draw(image) - im_width, im_height = image.size - - for dt in nms_out: - if dt[1] < confs_threshold: - continue - category_id = dt[0] - bbox = dt[2:] - xmin, ymin, xmax, ymax = clip_bbox(dt[2:]) - (left, right, top, bottom) = (xmin * im_width, xmax * im_width, - ymin * im_height, ymax * im_height) - draw.line( - [(left, top), (left, bottom), (right, bottom), (right, top), - (left, top)], - width=4, - fill='red') - if image.mode == 'RGB': - draw.text((left, top), label_list[int(category_id)], (255, 255, 0)) - image_name = image_path.split('/')[-1] - print("image with bbox drawed saved as {}".format(image_name)) - image.save(image_name) - - -def clip_bbox(bbox): - xmin = max(min(bbox[0], 1.), 0.) - ymin = max(min(bbox[1], 1.), 0.) - xmax = max(min(bbox[2], 1.), 0.) - ymax = max(min(bbox[3], 1.), 0.) - return xmin, ymin, xmax, ymax - - -if __name__ == '__main__': - args = parser.parse_args() - print_arguments(args) - - check_cuda(args.use_gpu) - - data_dir = 'data/pascalvoc' - label_file = 'label_list' - - if not os.path.exists(args.model_dir): - raise ValueError("The model path [%s] does not exist." % - (args.model_dir)) - if 'coco' in args.dataset: - data_dir = 'data/coco' - label_file = 'annotations/instances_val2014.json' - - data_args = reader.Settings( - dataset=args.dataset, - data_dir=data_dir, - label_file=label_file, - resize_h=args.resize_h, - resize_w=args.resize_w, - mean_value=[args.mean_value_B, args.mean_value_G, args.mean_value_R], - apply_distort=False, - apply_expand=False, - ap_version='') - infer( - args, - data_args=data_args, - image_path=args.image_path, - model_dir=args.model_dir) diff --git a/PaddleCV/ssd/main_quant.py b/PaddleCV/ssd/main_quant.py deleted file mode 100644 index 59d43ba98080e5479bac51a2e91bad8d2283c053..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/main_quant.py +++ /dev/null @@ -1,298 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import numpy as np -import argparse -import functools -import shutil -import math -import multiprocessing - -import paddle -import paddle.fluid as fluid -import reader -from mobilenet_ssd import mobile_net -from utility import add_arguments, print_arguments -from train import build_program -from train import train_parameters -from infer import draw_bounding_box_on_image - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('learning_rate', float, 0.0001, "Learning rate.") -add_arg('batch_size', int, 64, "Minibatch size.") -add_arg('epoc_num', int, 20, "Epoch number.") -add_arg('use_gpu', bool, True, "Whether use GPU.") -add_arg('parallel', bool, True, "Whether train in parallel on multi-devices.") -add_arg('model_save_dir', str, 'quant_model', "The path to save model.") -add_arg('init_model', str, 'ssd_mobilenet_v1_pascalvoc', "The init model path.") -add_arg('ap_version', str, '11point', "mAP version can be integral or 11point.") -add_arg('image_shape', str, '3,300,300', "Input image shape.") -add_arg('mean_BGR', str, '127.5,127.5,127.5', "Mean value for B,G,R channel which will be subtracted.") -add_arg('lr_epochs', str, '30,60', "The learning decay steps.") -add_arg('lr_decay_rates', str, '1,0.1,0.01', "The learning decay rates for each step.") -add_arg('data_dir', str, 'data/pascalvoc', "Data directory") -add_arg('act_quant_type', str, 'abs_max', "Quantize type of activation, whicn can be abs_max or range_abs_max") -add_arg('image_path', str, '', "The image used to inference and visualize.") -add_arg('confs_threshold', float, 0.5, "Confidence threshold to draw bbox.") -add_arg('mode', str, 'train', "Job mode can be one of ['train', 'test', 'infer'].") -#yapf: enable - -def test(exe, test_prog, map_eval, test_py_reader): - _, accum_map = map_eval.get_map_var() - map_eval.reset(exe) - test_py_reader.start() - try: - batch = 0 - while True: - test_map, = exe.run(test_prog, fetch_list=[accum_map]) - if batch % 10 == 0: - print("Batch {0}, map {1}".format(batch, test_map)) - batch += 1 - except fluid.core.EOFException: - test_py_reader.reset() - finally: - test_py_reader.reset() - print("Test map {0}".format(test_map)) - return test_map - - -def save_model(exe, main_prog, model_save_dir, postfix): - model_path = os.path.join(model_save_dir, postfix) - if os.path.isdir(model_path): - shutil.rmtree(model_path) - fluid.io.save_persistables(exe, model_path, main_program=main_prog) - - -def train(args, - data_args, - train_params, - train_file_list, - val_file_list): - - model_save_dir = args.model_save_dir - init_model = args.init_model - epoc_num = args.epoc_num - use_gpu = args.use_gpu - parallel = args.parallel - is_shuffle = True - act_quant_type = args.act_quant_type - - if use_gpu: - devices_num = fluid.core.get_cuda_device_count() - else: - devices_num = int(os.environ.get('CPU_NUM', multiprocessing.cpu_count())) - - batch_size = train_params['batch_size'] - batch_size_per_device = batch_size // devices_num - num_workers = 4 - - startup_prog = fluid.Program() - train_prog = fluid.Program() - test_prog = fluid.Program() - - train_py_reader, loss = build_program( - main_prog=train_prog, - startup_prog=startup_prog, - train_params=train_params, - is_train=True) - test_py_reader, map_eval, _, _ = build_program( - main_prog=test_prog, - startup_prog=startup_prog, - train_params=train_params, - is_train=False) - - test_prog = test_prog.clone(for_test=True) - - transpiler = fluid.contrib.QuantizeTranspiler(weight_bits=8, - activation_bits=8, - activation_quantize_type=act_quant_type, - weight_quantize_type='abs_max') - - transpiler.training_transpile(train_prog, startup_prog) - transpiler.training_transpile(test_prog, startup_prog) - - place = fluid.CUDAPlace(0) if use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(startup_prog) - - if init_model: - print('Load init model %s.' % init_model) - def if_exist(var): - return os.path.exists(os.path.join(init_model, var.name)) - fluid.io.load_vars(exe, init_model, main_program=train_prog, - predicate=if_exist) - else: - print('There is no init model.') - - if parallel: - train_exe = fluid.ParallelExecutor(main_program=train_prog, - use_cuda=True if use_gpu else False, loss_name=loss.name) - - train_reader = reader.train(data_args, - train_file_list, - batch_size_per_device, - shuffle=is_shuffle, - num_workers=num_workers) - test_reader = reader.test(data_args, val_file_list, batch_size) - train_py_reader.decorate_paddle_reader(train_reader) - test_py_reader.decorate_paddle_reader(test_reader) - - train_py_reader.start() - best_map = 0. - for epoc in range(epoc_num): - if epoc == 0: - # test quantized model without quantization-aware training. - test_map = test(exe, test_prog, map_eval, test_py_reader) - batch = 0 - train_py_reader.start() - while True: - try: - # train - start_time = time.time() - if parallel: - outs = train_exe.run(fetch_list=[loss.name]) - else: - outs = exe.run(train_prog, fetch_list=[loss]) - end_time = time.time() - avg_loss = np.mean(np.array(outs[0])) - if batch % 10 == 0: - print("Epoc {:d}, batch {:d}, loss {:.6f}, time {:.5f}".format( - epoc , batch, avg_loss, end_time - start_time)) - except (fluid.core.EOFException, StopIteration): - train_reader().close() - train_py_reader.reset() - break - test_map = test(exe, test_prog, map_eval, test_py_reader) - save_model(exe, train_prog, model_save_dir, str(epoc)) - if test_map > best_map: - best_map = test_map - save_model(exe, train_prog, model_save_dir, 'best_map') - print("Best test map {0}".format(best_map)) - - -def eval(args, data_args, configs, val_file_list): - init_model = args.init_model - use_gpu = args.use_gpu - act_quant_type = args.act_quant_type - model_save_dir = args.model_save_dir - - batch_size = configs['batch_size'] - batch_size_per_device = batch_size - - startup_prog = fluid.Program() - test_prog = fluid.Program() - test_py_reader, map_eval, nmsed_out, image = build_program( - main_prog=test_prog, - startup_prog=startup_prog, - train_params=configs, - is_train=False) - test_prog = test_prog.clone(for_test=True) - - transpiler = fluid.contrib.QuantizeTranspiler(weight_bits=8, - activation_bits=8, - activation_quantize_type=act_quant_type, - weight_quantize_type='abs_max') - transpiler.training_transpile(test_prog, startup_prog) - - place = fluid.CUDAPlace(0) if use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(startup_prog) - - def if_exist(var): - return os.path.exists(os.path.join(init_model, var.name)) - fluid.io.load_vars(exe, init_model, main_program=test_prog, - predicate=if_exist) - - # freeze after load parameters - transpiler.freeze_program(test_prog, place) - - test_reader = reader.test(data_args, val_file_list, batch_size) - test_py_reader.decorate_paddle_reader(test_reader) - - test_map = test(exe, test_prog, map_eval, test_py_reader) - print("Test model {0}, map {1}".format(init_model, test_map)) - # convert model to 8-bit before saving, but now Paddle can't load - # the 8-bit model to do inference. - # transpiler.convert_to_int8(test_prog, place) - fluid.io.save_inference_model(model_save_dir, [image.name], - [nmsed_out], exe, test_prog) - - -def infer(args, data_args): - model_dir = args.init_model - image_path = args.image_path - confs_threshold = args.confs_threshold - - place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - [inference_program, feed , fetch] = fluid.io.load_inference_model( - dirname=model_dir, - executor=exe, - model_filename='__model__') - - #print(np.array(fluid.global_scope().find_var('conv2d_20.w_0').get_tensor())) - #print(np.max(np.array(fluid.global_scope().find_var('conv2d_20.w_0').get_tensor()))) - infer_reader = reader.infer(data_args, image_path) - data = infer_reader() - data = data.reshape((1,) + data.shape) - outs = exe.run(inference_program, - feed={feed[0]: data}, - fetch_list=fetch, - return_numpy=False) - out = np.array(outs[0]) - draw_bounding_box_on_image(image_path, out, confs_threshold, - data_args.label_list) - - -if __name__ == '__main__': - args = parser.parse_args() - print_arguments(args) - - # for pascalvoc - label_file = 'label_list' - train_list = 'trainval.txt' - val_list = 'test.txt' - dataset = 'pascalvoc' - - mean_BGR = [float(m) for m in args.mean_BGR.split(",")] - image_shape = [int(m) for m in args.image_shape.split(",")] - lr_epochs = [int(m) for m in args.lr_epochs.split(",")] - lr_rates = [float(m) for m in args.lr_decay_rates.split(",")] - train_parameters[dataset]['image_shape'] = image_shape - train_parameters[dataset]['batch_size'] = args.batch_size - train_parameters[dataset]['lr'] = args.learning_rate - train_parameters[dataset]['epoc_num'] = args.epoc_num - train_parameters[dataset]['ap_version'] = args.ap_version - train_parameters[dataset]['lr_epochs'] = lr_epochs - train_parameters[dataset]['lr_decay'] = lr_rates - - data_args = reader.Settings( - dataset=dataset, - data_dir=args.data_dir, - label_file=label_file, - resize_h=image_shape[1], - resize_w=image_shape[2], - mean_value=mean_BGR, - apply_distort=True, - apply_expand=True, - ap_version = args.ap_version) - if args.mode == 'train': - train(args, data_args, train_parameters[dataset], train_list, val_list) - elif args.mode == 'test': - eval(args, data_args, train_parameters[dataset], val_list) - else: - infer(args, data_args) diff --git a/PaddleCV/ssd/mobilenet_ssd.py b/PaddleCV/ssd/mobilenet_ssd.py deleted file mode 100644 index b8d11f544d35094d2db2aa73702044c9bf91ea54..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/mobilenet_ssd.py +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import paddle.fluid as fluid -from paddle.fluid.initializer import MSRA -from paddle.fluid.param_attr import ParamAttr - - -class MobileNetSSD: - def __init__(self, img, num_classes, img_shape): - self.img = img - self.num_classes = num_classes - self.img_shape = img_shape - - def ssd_net(self, scale=1.0): - # 300x300 - tmp = self.conv_bn(self.img, 3, int(32 * scale), 2, 1) - # 150x150 - tmp = self.depthwise_separable(tmp, 32, 64, 32, 1, scale) - tmp = self.depthwise_separable(tmp, 64, 128, 64, 2, scale) - # 75x75 - tmp = self.depthwise_separable(tmp, 128, 128, 128, 1, scale) - tmp = self.depthwise_separable(tmp, 128, 256, 128, 2, scale) - # 38x38 - tmp = self.depthwise_separable(tmp, 256, 256, 256, 1, scale) - tmp = self.depthwise_separable(tmp, 256, 512, 256, 2, scale) - - # 19x19 - for i in range(5): - tmp = self.depthwise_separable(tmp, 512, 512, 512, 1, scale) - module11 = tmp - tmp = self.depthwise_separable(tmp, 512, 1024, 512, 2, scale) - - # 10x10 - module13 = self.depthwise_separable(tmp, 1024, 1024, 1024, 1, scale) - module14 = self.extra_block(module13, 256, 512, 1, 2) - # 5x5 - module15 = self.extra_block(module14, 128, 256, 1, 2) - # 3x3 - module16 = self.extra_block(module15, 128, 256, 1, 2) - # 2x2 - module17 = self.extra_block(module16, 64, 128, 1, 2) - - mbox_locs, mbox_confs, box, box_var = fluid.layers.multi_box_head( - inputs=[ - module11, module13, module14, module15, module16, module17 - ], - image=self.img, - num_classes=self.num_classes, - min_ratio=20, - max_ratio=90, - min_sizes=[60.0, 105.0, 150.0, 195.0, 240.0, 285.0], - max_sizes=[[], 150.0, 195.0, 240.0, 285.0, 300.0], - aspect_ratios=[[2.], [2., 3.], [2., 3.], [2., 3.], [2., 3.], - [2., 3.]], - base_size=self.img_shape[2], - offset=0.5, - flip=True) - - return mbox_locs, mbox_confs, box, box_var - - def conv_bn(self, - input, - filter_size, - num_filters, - stride, - padding, - num_groups=1, - act='relu', - use_cudnn=True): - parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA()) - conv = fluid.layers.conv2d( - input=input, - num_filters=num_filters, - filter_size=filter_size, - stride=stride, - padding=padding, - groups=num_groups, - act=None, - use_cudnn=use_cudnn, - param_attr=parameter_attr, - bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act) - - def depthwise_separable(self, input, num_filters1, num_filters2, num_groups, - stride, scale): - depthwise_conv = self.conv_bn( - input=input, - filter_size=3, - num_filters=int(num_filters1 * scale), - stride=stride, - padding=1, - num_groups=int(num_groups * scale), - use_cudnn=False) - - pointwise_conv = self.conv_bn( - input=depthwise_conv, - filter_size=1, - num_filters=int(num_filters2 * scale), - stride=1, - padding=0) - return pointwise_conv - - def extra_block(self, input, num_filters1, num_filters2, num_groups, stride): - # 1x1 conv - pointwise_conv = self.conv_bn( - input=input, - filter_size=1, - num_filters=int(num_filters1), - stride=1, - num_groups=int(num_groups), - padding=0) - - # 3x3 conv - normal_conv = self.conv_bn( - input=pointwise_conv, - filter_size=3, - num_filters=int(num_filters2), - stride=2, - num_groups=int(num_groups), - padding=1) - return normal_conv - - -def build_mobilenet_ssd(img, num_classes, img_shape): - ssd_model = MobileNetSSD(img, num_classes, img_shape) - return ssd_model.ssd_net() diff --git a/PaddleCV/ssd/pretrained/download_coco.sh b/PaddleCV/ssd/pretrained/download_coco.sh deleted file mode 100755 index 1cd1836f7c6e32f9f308a0c9a29d10efbc6f183f..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/pretrained/download_coco.sh +++ /dev/null @@ -1,8 +0,0 @@ -DIR="$( cd "$(dirname "$0")" ; pwd -P )" -cd "$DIR" - -# Download the data. -echo "Downloading..." -wget http://paddlemodels.bj.bcebos.com/ssd_mobilenet_v1_coco.tar.gz -echo "Extractint..." -tar -xf ssd_mobilenet_v1_coco.tar.gz diff --git a/PaddleCV/ssd/pretrained/download_imagenet.sh b/PaddleCV/ssd/pretrained/download_imagenet.sh deleted file mode 100755 index eb7c6767d9f9585342c2ba89a2f28f070d1351c2..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/pretrained/download_imagenet.sh +++ /dev/null @@ -1,8 +0,0 @@ -DIR="$( cd "$(dirname "$0")" ; pwd -P )" -cd "$DIR" - -# Download the data. -echo "Downloading..." -wget http://paddlemodels.bj.bcebos.com/mobilenet_v1_imagenet.tar.gz -echo "Extractint..." -tar -xf mobilenet_v1_imagenet.tar.gz diff --git a/PaddleCV/ssd/reader.py b/PaddleCV/ssd/reader.py deleted file mode 100644 index 02c7187c12c2e1ab338e977dd9d4984b023c3770..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/reader.py +++ /dev/null @@ -1,368 +0,0 @@ -# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import xml.etree.ElementTree -import os -import time -import copy -import six -import math -import numpy as np -from PIL import Image -from PIL import ImageDraw -import image_util -import paddle - - -class Settings(object): - def __init__(self, - dataset=None, - data_dir=None, - label_file=None, - resize_h=300, - resize_w=300, - mean_value=[127.5, 127.5, 127.5], - apply_distort=True, - apply_expand=True, - ap_version='11point'): - self._dataset = dataset - self._ap_version = ap_version - self._data_dir = data_dir - if 'pascalvoc' in dataset: - self._label_list = [] - label_fpath = os.path.join(data_dir, label_file) - for line in open(label_fpath): - self._label_list.append(line.strip()) - - self._apply_distort = apply_distort - self._apply_expand = apply_expand - self._resize_height = resize_h - self._resize_width = resize_w - self._img_mean = np.array(mean_value)[:, np.newaxis, np.newaxis].astype( - 'float32') - self._expand_prob = 0.5 - self._expand_max_ratio = 4 - self._hue_prob = 0.5 - self._hue_delta = 18 - self._contrast_prob = 0.5 - self._contrast_delta = 0.5 - self._saturation_prob = 0.5 - self._saturation_delta = 0.5 - self._brightness_prob = 0.5 - self._brightness_delta = 0.125 - - @property - def dataset(self): - return self._dataset - - @property - def ap_version(self): - return self._ap_version - - @property - def apply_expand(self): - return self._apply_expand - - @property - def apply_distort(self): - return self._apply_distort - - @property - def data_dir(self): - return self._data_dir - - @data_dir.setter - def data_dir(self, data_dir): - self._data_dir = data_dir - - @property - def label_list(self): - return self._label_list - - @property - def resize_h(self): - return self._resize_height - - @property - def resize_w(self): - return self._resize_width - - @property - def img_mean(self): - return self._img_mean - - -def preprocess(img, bbox_labels, mode, settings): - img_width, img_height = img.size - sampled_labels = bbox_labels - if mode == 'train': - if settings._apply_distort: - img = image_util.distort_image(img, settings) - if settings._apply_expand: - img, bbox_labels, img_width, img_height = image_util.expand_image( - img, bbox_labels, img_width, img_height, settings) - # sampling - batch_sampler = [] - # hard-code here - batch_sampler.append( - image_util.sampler(1, 1, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.1, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.3, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.5, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.7, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.9, 0.0)) - batch_sampler.append( - image_util.sampler(1, 50, 0.3, 1.0, 0.5, 2.0, 0.0, 1.0)) - sampled_bbox = image_util.generate_batch_samples(batch_sampler, - bbox_labels) - - img = np.array(img) - if len(sampled_bbox) > 0: - idx = int(np.random.uniform(0, len(sampled_bbox))) - img, sampled_labels = image_util.crop_image( - img, bbox_labels, sampled_bbox[idx], img_width, img_height) - - img = Image.fromarray(img) - img = img.resize((settings.resize_w, settings.resize_h), Image.ANTIALIAS) - img = np.array(img) - - if mode == 'train': - mirror = int(np.random.uniform(0, 2)) - if mirror == 1: - img = img[:, ::-1, :] - for i in six.moves.xrange(len(sampled_labels)): - tmp = sampled_labels[i][1] - sampled_labels[i][1] = 1 - sampled_labels[i][3] - sampled_labels[i][3] = 1 - tmp - # HWC to CHW - if len(img.shape) == 3: - img = np.swapaxes(img, 1, 2) - img = np.swapaxes(img, 1, 0) - # RBG to BGR - img = img[[2, 1, 0], :, :] - img = img.astype('float32') - img -= settings.img_mean - img = img * 0.007843 - return img, sampled_labels - - -def coco(settings, coco_api, file_list, mode, batch_size, shuffle, data_dir): - from pycocotools.coco import COCO - - def reader(): - if mode == 'train' and shuffle: - np.random.shuffle(file_list) - batch_out = [] - for image in file_list: - image_name = image['file_name'] - image_path = os.path.join(data_dir, image_name) - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - im = Image.open(image_path) - if im.mode == 'L': - im = im.convert('RGB') - im_width, im_height = im.size - im_id = image['id'] - - # layout: category_id | xmin | ymin | xmax | ymax | iscrowd - bbox_labels = [] - annIds = coco_api.getAnnIds(imgIds=image['id']) - anns = coco_api.loadAnns(annIds) - for ann in anns: - bbox_sample = [] - # start from 1, leave 0 to background - bbox_sample.append(float(ann['category_id'])) - bbox = ann['bbox'] - xmin, ymin, w, h = bbox - xmax = xmin + w - ymax = ymin + h - bbox_sample.append(float(xmin) / im_width) - bbox_sample.append(float(ymin) / im_height) - bbox_sample.append(float(xmax) / im_width) - bbox_sample.append(float(ymax) / im_height) - bbox_sample.append(float(ann['iscrowd'])) - bbox_labels.append(bbox_sample) - im, sample_labels = preprocess(im, bbox_labels, mode, settings) - sample_labels = np.array(sample_labels) - if len(sample_labels) == 0: continue - im = im.astype('float32') - boxes = sample_labels[:, 1:5] - lbls = sample_labels[:, 0].astype('int32') - iscrowd = sample_labels[:, -1].astype('int32') - if 'cocoMAP' in settings.ap_version: - batch_out.append((im, boxes, lbls, iscrowd, - [im_id, im_width, im_height])) - else: - batch_out.append((im, boxes, lbls, iscrowd)) - - if len(batch_out) == batch_size: - yield batch_out - batch_out = [] - - if mode == 'test' and len(batch_out) > 1: - yield batch_out - batch_out = [] - - return reader - - -def pascalvoc(settings, file_list, mode, batch_size, shuffle): - def reader(): - if mode == 'train' and shuffle: - np.random.shuffle(file_list) - batch_out = [] - cnt = 0 - for image in file_list: - image_path, label_path = image.split() - image_path = os.path.join(settings.data_dir, image_path) - label_path = os.path.join(settings.data_dir, label_path) - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - im = Image.open(image_path) - if im.mode == 'L': - im = im.convert('RGB') - im_width, im_height = im.size - - # layout: label | xmin | ymin | xmax | ymax | difficult - bbox_labels = [] - root = xml.etree.ElementTree.parse(label_path).getroot() - for object in root.findall('object'): - bbox_sample = [] - # start from 1 - bbox_sample.append( - float(settings.label_list.index(object.find('name').text))) - bbox = object.find('bndbox') - difficult = float(object.find('difficult').text) - bbox_sample.append(float(bbox.find('xmin').text) / im_width) - bbox_sample.append(float(bbox.find('ymin').text) / im_height) - bbox_sample.append(float(bbox.find('xmax').text) / im_width) - bbox_sample.append(float(bbox.find('ymax').text) / im_height) - bbox_sample.append(difficult) - bbox_labels.append(bbox_sample) - im, sample_labels = preprocess(im, bbox_labels, mode, settings) - sample_labels = np.array(sample_labels) - if len(sample_labels) == 0: continue - im = im.astype('float32') - boxes = sample_labels[:, 1:5] - lbls = sample_labels[:, 0].astype('int32') - difficults = sample_labels[:, -1].astype('int32') - - batch_out.append((im, boxes, lbls, difficults)) - if len(batch_out) == batch_size: - yield batch_out - cnt += len(batch_out) - batch_out = [] - - if mode == 'test' and len(batch_out) > 1: - yield batch_out - cnt += len(batch_out) - batch_out = [] - - return reader - - -def train(settings, - file_list, - batch_size, - shuffle=True, - use_multiprocess=True, - num_workers=8, - enable_ce=False): - file_path = os.path.join(settings.data_dir, file_list) - readers = [] - if 'coco' in settings.dataset: - # cocoapi - from pycocotools.coco import COCO - coco_api = COCO(file_path) - image_ids = coco_api.getImgIds() - images = coco_api.loadImgs(image_ids) - np.random.shuffle(images) - if '2014' in file_list: - sub_dir = "train2014" - elif '2017' in file_list: - sub_dir = "train2017" - data_dir = os.path.join(settings.data_dir, sub_dir) - - n = int(math.ceil(len(images) // num_workers)) if use_multiprocess \ - else len(images) - image_lists = [images[i:i + n] for i in range(0, len(images), n)] - for l in image_lists: - readers.append( - coco(settings, coco_api, l, 'train', batch_size, shuffle, - data_dir)) - else: - images = [line.strip() for line in open(file_path)] - np.random.shuffle(images) - n = int(math.ceil(len(images) // num_workers)) if use_multiprocess \ - else len(images) - image_lists = [images[i:i + n] for i in range(0, len(images), n)] - for l in image_lists: - readers.append(pascalvoc(settings, l, 'train', batch_size, shuffle)) - print("use_multiprocess ", use_multiprocess) - if use_multiprocess: - return paddle.reader.multiprocess_reader(readers, False) - else: - return readers[0] - - -def test(settings, file_list, batch_size): - file_list = os.path.join(settings.data_dir, file_list) - if 'coco' in settings.dataset: - from pycocotools.coco import COCO - coco_api = COCO(file_list) - image_ids = coco_api.getImgIds() - images = coco_api.loadImgs(image_ids) - if '2014' in file_list: - sub_dir = "val2014" - elif '2017' in file_list: - sub_dir = "val2017" - data_dir = os.path.join(settings.data_dir, sub_dir) - return coco(settings, coco_api, images, 'test', batch_size, False, - data_dir) - else: - image_list = [line.strip() for line in open(file_list)] - return pascalvoc(settings, image_list, 'test', batch_size, False) - - -def infer(settings, image_path): - def reader(): - if not os.path.exists(image_path): - raise ValueError("%s is not exist, you should specify " - "data path correctly." % image_path) - img = Image.open(image_path) - if img.mode == 'L': - img = img.convert('RGB') - im_width, im_height = img.size - img = img.resize((settings.resize_w, settings.resize_h), - Image.ANTIALIAS) - img = np.array(img) - # HWC to CHW - if len(img.shape) == 3: - img = np.swapaxes(img, 1, 2) - img = np.swapaxes(img, 1, 0) - # RBG to BGR - img = img[[2, 1, 0], :, :] - img = img.astype('float32') - img -= settings.img_mean - img = img * 0.007843 - return img - - return reader diff --git a/PaddleCV/ssd/train.py b/PaddleCV/ssd/train.py deleted file mode 100644 index 7bbb0fdaf6c80dbc5902690fdac916c622903c0e..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/train.py +++ /dev/null @@ -1,357 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os -import time -import numpy as np -import argparse -import functools -import shutil -import math -import multiprocessing - - -def set_paddle_flags(**kwargs): - for key, value in kwargs.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -# NOTE(paddle-dev): All of these flags should be -# set before `import paddle`. Otherwise, it would -# not take any effect. -set_paddle_flags( - FLAGS_eager_delete_tensor_gb=0, # enable GC to save memory -) - -import paddle -import paddle.fluid as fluid -import reader -from mobilenet_ssd import build_mobilenet_ssd -from utility import add_arguments, print_arguments, check_cuda - -parser = argparse.ArgumentParser(description=__doc__) -add_arg = functools.partial(add_arguments, argparser=parser) -# yapf: disable -add_arg('learning_rate', float, 0.001, "Learning rate.") -add_arg('batch_size', int, 64, "Minibatch size of all devices.") -add_arg('epoc_num', int, 120, "Epoch number.") -add_arg('use_gpu', bool, True, "Whether use GPU.") -add_arg('parallel', bool, True, "Whether train in parallel on multi-devices.") -add_arg('dataset', str, 'pascalvoc', "dataset can be coco2014, coco2017, and pascalvoc.") -add_arg('model_save_dir', str, 'model', "The path to save model.") -add_arg('pretrained_model', str, 'pretrained/ssd_mobilenet_v1_coco/', "The init model path.") -add_arg('ap_version', str, '11point', "mAP version can be integral or 11point.") -add_arg('image_shape', str, '3,300,300', "Input image shape.") -add_arg('mean_BGR', str, '127.5,127.5,127.5', "Mean value for B,G,R channel which will be subtracted.") -add_arg('data_dir', str, 'data/pascalvoc', "Data directory.") -add_arg('use_multiprocess', bool, True, "Whether use multi-process for data preprocessing.") -add_arg('enable_ce', bool, False, "Whether use CE to evaluate the model.") -#yapf: enable - -train_parameters = { - "pascalvoc": { - "train_images": 16551, - "image_shape": [3, 300, 300], - "class_num": 21, - "batch_size": 64, - "lr": 0.001, - "lr_epochs": [40, 60, 80, 100], - "lr_decay": [1, 0.5, 0.25, 0.1, 0.01], - "ap_version": '11point', - }, - "coco2014": { - "train_images": 82783, - "image_shape": [3, 300, 300], - "class_num": 91, - "batch_size": 64, - "lr": 0.001, - "lr_epochs": [12, 19], - "lr_decay": [1, 0.5, 0.25], - "ap_version": 'integral', # should use eval_coco_map.py to test model - }, - "coco2017": { - "train_images": 118287, - "image_shape": [3, 300, 300], - "class_num": 91, - "batch_size": 64, - "lr": 0.001, - "lr_epochs": [12, 19], - "lr_decay": [1, 0.5, 0.25], - "ap_version": 'integral', # should use eval_coco_map.py to test model - } -} - -def optimizer_setting(train_params): - batch_size = train_params["batch_size"] - iters = train_params["train_images"] // batch_size - lr = train_params["lr"] - boundaries = [i * iters for i in train_params["lr_epochs"]] - values = [ i * lr for i in train_params["lr_decay"]] - - optimizer = fluid.optimizer.RMSProp( - learning_rate=fluid.layers.piecewise_decay(boundaries, values), - regularization=fluid.regularizer.L2Decay(0.00005), ) - - return optimizer - - -def build_program(main_prog, startup_prog, train_params, is_train): - image_shape = train_params['image_shape'] - class_num = train_params['class_num'] - ap_version = train_params['ap_version'] - outs = [] - with fluid.program_guard(main_prog, startup_prog): - py_reader = fluid.layers.py_reader( - capacity=64, - shapes=[[-1] + image_shape, [-1, 4], [-1, 1], [-1, 1]], - lod_levels=[0, 1, 1, 1], - dtypes=["float32", "float32", "int32", "int32"], - use_double_buffer=True) - with fluid.unique_name.guard(): - image, gt_box, gt_label, difficult = fluid.layers.read_file(py_reader) - locs, confs, box, box_var = build_mobilenet_ssd(image, class_num, image_shape) - if is_train: - with fluid.unique_name.guard("train"): - loss = fluid.layers.ssd_loss(locs, confs, gt_box, gt_label, box, - box_var) - loss = fluid.layers.reduce_sum(loss) - optimizer = optimizer_setting(train_params) - optimizer.minimize(loss) - outs = [py_reader, loss] - else: - with fluid.unique_name.guard("inference"): - nmsed_out = fluid.layers.detection_output( - locs, confs, box, box_var, nms_threshold=0.45) - map_eval = fluid.metrics.DetectionMAP( - nmsed_out, - gt_label, - gt_box, - difficult, - class_num, - overlap_threshold=0.5, - evaluate_difficult=False, - ap_version=ap_version) - # nmsed_out and image is used to save mode for inference - outs = [py_reader, map_eval, nmsed_out, image] - return outs - - -def train(args, - data_args, - train_params, - train_file_list, - val_file_list): - - model_save_dir = args.model_save_dir - pretrained_model = args.pretrained_model - use_gpu = args.use_gpu - parallel = args.parallel - enable_ce = args.enable_ce - is_shuffle = True - - if not use_gpu: - devices_num = int(os.environ.get('CPU_NUM', - multiprocessing.cpu_count())) - else: - devices_num = fluid.core.get_cuda_device_count() - - batch_size = train_params['batch_size'] - epoc_num = train_params['epoc_num'] - batch_size_per_device = batch_size // devices_num - num_workers = 8 - - startup_prog = fluid.Program() - train_prog = fluid.Program() - test_prog = fluid.Program() - - if enable_ce: - import random - random.seed(0) - np.random.seed(0) - is_shuffle = False - startup_prog.random_seed = 111 - train_prog.random_seed = 111 - test_prog.random_seed = 111 - - train_py_reader, loss = build_program( - main_prog=train_prog, - startup_prog=startup_prog, - train_params=train_params, - is_train=True) - test_py_reader, map_eval, _, _ = build_program( - main_prog=test_prog, - startup_prog=startup_prog, - train_params=train_params, - is_train=False) - - test_prog = test_prog.clone(for_test=True) - place = fluid.CUDAPlace(0) if use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(startup_prog) - - if pretrained_model: - def if_exist(var): - return os.path.exists(os.path.join(pretrained_model, var.name)) - fluid.io.load_vars(exe, pretrained_model, main_program=train_prog, - predicate=if_exist) - - if parallel: - loss.persistable = True - build_strategy = fluid.BuildStrategy() - build_strategy.enable_inplace = True - train_exe = fluid.ParallelExecutor(main_program=train_prog, - use_cuda=use_gpu, loss_name=loss.name, build_strategy=build_strategy) - - test_reader = reader.test(data_args, val_file_list, batch_size) - test_py_reader.decorate_paddle_reader(test_reader) - - def save_model(postfix, main_prog): - model_path = os.path.join(model_save_dir, postfix) - if os.path.isdir(model_path): - shutil.rmtree(model_path) - print('save models to %s' % (model_path)) - fluid.io.save_persistables(exe, model_path, main_program=main_prog) - - best_map = 0. - test_map = None - def test(epoc_id, best_map): - _, accum_map = map_eval.get_map_var() - map_eval.reset(exe) - every_epoc_map=[] # for CE - test_py_reader.start() - try: - batch_id = 0 - while True: - test_map, = exe.run(test_prog, fetch_list=[accum_map]) - if batch_id % 10 == 0: - every_epoc_map.append(test_map) - print("Batch {0}, map {1}".format(batch_id, test_map)) - batch_id += 1 - except fluid.core.EOFException: - test_py_reader.reset() - mean_map = np.mean(every_epoc_map) - print("Epoc {0}, test map {1}".format(epoc_id, test_map[0])) - if test_map[0] > best_map: - best_map = test_map[0] - save_model('best_model', test_prog) - return best_map, mean_map - - - total_time = 0.0 - for epoc_id in range(epoc_num): - train_reader = reader.train(data_args, - train_file_list, - batch_size_per_device, - shuffle=is_shuffle, - use_multiprocess=args.use_multiprocess, - num_workers=num_workers, - enable_ce=enable_ce) - train_py_reader.decorate_paddle_reader(train_reader) - epoch_idx = epoc_id + 1 - start_time = time.time() - prev_start_time = start_time - every_epoc_loss = [] - batch_id = 0 - train_py_reader.start() - while True: - try: - prev_start_time = start_time - start_time = time.time() - if parallel: - loss_v, = train_exe.run(fetch_list=[loss.name]) - else: - loss_v, = exe.run(train_prog, fetch_list=[loss]) - loss_v = np.mean(np.array(loss_v)) - every_epoc_loss.append(loss_v) - if batch_id % 10 == 0: - print("Epoc {:d}, batch {:d}, loss {:.6f}, time {:.5f}".format( - epoc_id, batch_id, loss_v, start_time - prev_start_time)) - batch_id += 1 - except (fluid.core.EOFException, StopIteration): - train_reader().close() - train_py_reader.reset() - break - - end_time = time.time() - total_time += end_time - start_time - if epoc_id % 10 == 0 or epoc_id == epoc_num - 1: - best_map, mean_map = test(epoc_id, best_map) - print("Best test map {0}".format(best_map)) - # save model - save_model(str(epoc_id), train_prog) - - if enable_ce: - train_avg_loss = np.mean(every_epoc_loss) - if devices_num == 1: - print("kpis train_cost %s" % train_avg_loss) - print("kpis test_acc %s" % mean_map) - print("kpis train_speed %s" % (total_time / epoch_idx)) - else: - print("kpis train_cost_card%s %s" % - (devices_num, train_avg_loss)) - print("kpis test_acc_card%s %s" % - (devices_num, mean_map)) - print("kpis train_speed_card%s %f" % - (devices_num, total_time / epoch_idx)) - - -def main(): - args = parser.parse_args() - print_arguments(args) - - check_cuda(args.use_gpu) - - data_dir = args.data_dir - dataset = args.dataset - assert dataset in ['pascalvoc', 'coco2014', 'coco2017'] - - # for pascalvoc - label_file = 'label_list' - train_file_list = 'trainval.txt' - val_file_list = 'test.txt' - - if dataset == 'coco2014': - train_file_list = 'annotations/instances_train2014.json' - val_file_list = 'annotations/instances_val2014.json' - elif dataset == 'coco2017': - train_file_list = 'annotations/instances_train2017.json' - val_file_list = 'annotations/instances_val2017.json' - - mean_BGR = [float(m) for m in args.mean_BGR.split(",")] - image_shape = [int(m) for m in args.image_shape.split(",")] - train_parameters[dataset]['image_shape'] = image_shape - train_parameters[dataset]['batch_size'] = args.batch_size - train_parameters[dataset]['lr'] = args.learning_rate - train_parameters[dataset]['epoc_num'] = args.epoc_num - train_parameters[dataset]['ap_version'] = args.ap_version - - data_args = reader.Settings( - dataset=args.dataset, - data_dir=data_dir, - label_file=label_file, - resize_h=image_shape[1], - resize_w=image_shape[2], - mean_value=mean_BGR, - apply_distort=True, - apply_expand=True, - ap_version = args.ap_version) - train(args, - data_args, - train_parameters[dataset], - train_file_list=train_file_list, - val_file_list=val_file_list) - - -if __name__ == '__main__': - main() diff --git a/PaddleCV/ssd/utility.py b/PaddleCV/ssd/utility.py deleted file mode 100644 index 5fca8b592f54ff147305783b7d3bf0f29cc1fe41..0000000000000000000000000000000000000000 --- a/PaddleCV/ssd/utility.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Contains common utility functions.""" -# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import distutils.util -import sys -import six -import paddle.fluid as fluid - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - -def check_cuda(use_cuda, err = \ - "\nYou can not set use_cuda = True in the model because you are using paddlepaddle-cpu.\n \ - Please: 1. Install paddlepaddle-gpu to run your models on GPU or 2. Set use_cuda = False to run models on CPU.\n" - ): - try: - if use_cuda == True and fluid.is_compiled_with_cuda() == False: - print(err) - sys.exit(1) - except Exception as e: - pass \ No newline at end of file diff --git a/PaddleCV/video/README.md b/PaddleCV/video/README.md deleted file mode 100644 index cfca0180a659a45d8604d5bd96ea252094ce6d1b..0000000000000000000000000000000000000000 --- a/PaddleCV/video/README.md +++ /dev/null @@ -1,2 +0,0 @@ - - 您好,该项目已被迁移,请移步到 [PaddleCV/PaddleVideo](../PaddleVideo) 目录下浏览本项目。 diff --git a/PaddleCV/video_classification/README.md b/PaddleCV/video_classification/README.md deleted file mode 100644 index cfca0180a659a45d8604d5bd96ea252094ce6d1b..0000000000000000000000000000000000000000 --- a/PaddleCV/video_classification/README.md +++ /dev/null @@ -1,2 +0,0 @@ - - 您好,该项目已被迁移,请移步到 [PaddleCV/PaddleVideo](../PaddleVideo) 目录下浏览本项目。 diff --git a/PaddleCV/yolov3/.gitignore b/PaddleCV/yolov3/.gitignore deleted file mode 100644 index 011d9771cdb71009709e4adedff2472e31f4a1b7..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.log -*.json -*.jpg -*.png -output/ -checkpoints/ -weights/ -!weights/*.sh -dataset/coco/ -!dataset/coco/*.py -log* -output* diff --git a/PaddleCV/yolov3/.run_ce.sh b/PaddleCV/yolov3/.run_ce.sh deleted file mode 100755 index 4ad4bd78d4cbf11adf58fa38c711798cbb49af46..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/.run_ce.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -#This file is only used for continuous evaluation. -export CUDA_VISIBLE_DEVICES=0 -python train.py --enable_ce True --use_multiprocess False --snapshot_iter 100 --max_iter 200 | python _ce.py -export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 -python train.py --enable_ce True --use_multiprocess False --snapshot_iter 100 --max_iter 200 | python _ce.py diff --git a/PaddleCV/yolov3/README.md b/PaddleCV/yolov3/README.md deleted file mode 100644 index abef7afd5fcb1c294cd0ad0f26c53cad518ff98d..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/README.md +++ /dev/null @@ -1,332 +0,0 @@ -**该项目已被迁移至[PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), 这个项目包含了更多的检测模型。** - -# YOLOv3 目标检测 - ---- -## 内容 - -- [简介](#简介) -- [快速开始](#快速开始) -- [进阶使用](#进阶使用) -- [FAQ](#faq) -- [参考文献](#参考文献) -- [版本更新](#版本更新) -- [如何贡献代码](#如何贡献代码) -- [作者](#作者) - -## 简介 - -[YOLOv3](https://arxiv.org/abs/1804.02767) 是由 [Joseph Redmon](https://arxiv.org/search/cs?searchtype=author&query=Redmon%2C+J) 和 [Ali Farhadi](https://arxiv.org/search/cs?searchtype=author&query=Farhadi%2C+A) 提出的单阶段检测器, 该检测器与达到同样精度的传统目标检测方法相比,推断速度能达到接近两倍. - -在我们的实现版本中使用了 [Bag of Freebies for Training Object Detection Neural Networks](https://arxiv.org/abs/1902.04103v3) 中提出的图像增强和label smooth等优化方法,精度优于darknet框架的实现版本,在COCO-2017数据集上,我们达到`mAP(0.50:0.95)= 38.9`的精度,比darknet实现版本的精度(33.0)要高5.9. - -同时,在推断速度方面,基于Paddle预测库的加速方法,推断速度比darknet高30%. - -同时推荐用户参考[ IPython Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/122277) - -## 快速开始 - -### 安装 - -**安装[COCO-API](https://github.com/cocodataset/cocoapi):** - -训练前需要首先下载[COCO-API](https://github.com/cocodataset/cocoapi): - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # if cython is not installed - pip install Cython - # Install into global site-packages - make install - # Alternatively, if you do not have permissions or prefer - # not to install the COCO API into global site-packages - python2 setup.py install --user - -**安装[PaddlePaddle](https://github.com/PaddlePaddle/Paddle):** - -在当前目录下运行样例代码需要PadddlePaddle Fluid的v.1.5或以上的版本。如果你的运行环境中的PaddlePaddle低于此版本,请根据[安装文档](http://paddlepaddle.org/documentation/docs/zh/1.5/beginners_guide/install/index_cn.html)中的说明来更新PaddlePaddle。 - -### 数据准备 - -**COCO数据集:** - -在[MS-COCO数据集](http://cocodataset.org/#download)上进行训练,通过如下方式下载数据集。 - -```bash -python dataset/coco/download.py -``` - -数据目录结构如下: - -``` -dataset/coco/ -├── annotations -│   ├── instances_train2014.json -│   ├── instances_train2017.json -│   ├── instances_val2014.json -│   ├── instances_val2017.json -| ... -├── train2017 -│   ├── 000000000009.jpg -│   ├── 000000580008.jpg -| ... -├── val2017 -│   ├── 000000000139.jpg -│   ├── 000000000285.jpg -| ... - -``` - -**自定义数据集:** - -用户可使用自定义的数据集,我们推荐自定义数据集使用COCO数据集格式的标注,并可通过设置`--data_dir`或修改[reader.py](./reader.py#L39)指定数据集路径。使用COCO数据集格式标注时,目录结构可参考上述COCO数据集目录结构。 - -### 模型训练 - -**下载预训练模型:** 本示例提供DarkNet-53预训练[模型](https://paddlemodels.bj.bcebos.com/yolo/darknet53.tar.gz),该模型转换自作者提供的预训练权重[pjreddie/darknet](https://pjreddie.com/media/files/darknet53.conv.74),采用如下命令下载预训练模型: - - sh ./weights/download.sh - -**注意:** Windows用户可通过`./weights/download.sh`中的链接直接下载和解压。 - -通过设置`--pretrain` 加载预训练模型。同时在fine-tune时也采用该设置加载已训练模型。 -请在训练前确认预训练模型下载与加载正确,否则训练过程中损失可能会出现NAN。 - -**开始训练:** 数据准备完毕后,可以通过如下的方式启动训练: - - python train.py \ - --model_save_dir=output/ \ - --pretrain=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --class_num=${category_num} - -- 通过设置`export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7`指定8卡GPU训练。 -- 若在Windows环境下训练模型,建议设置`--use_multiprocess_reader=False`。 -- 通过`--worker_num=`设置多进程数据读取器进程数,默认进程数为8,若训练机器CPU核数较少,建议设小该值。 -- 可选参数见: - - python train.py --help - -**注意:** YOLOv3模型总batch size为64,这里使用8 GPUs每GPU上batch size为8来训练 - -**模型设置:** - -* 模型使用了基于COCO数据集生成的9个先验框:10x13,16x30,33x23,30x61,62x45,59x119,116x90,156x198,373x326 -* YOLOv3模型中,若预测框不是该点最佳匹配框但是和任一ground truth框的重叠大于`ignore_thresh=0.7`,则忽略该预测框的目标性损失 - -**训练策略:** - -* 采用momentum优化算法训练YOLOv3,momentum=0.9。 -* 学习率采用warmup算法,前4000轮学习率从0.0线性增加至0.001。在400000,450000轮时使用0.1,0.01乘子进行学习率衰减,最大训练500000轮。 -* 通过设置`--syncbn=True`可以开启Synchronized batch normalization,该模式下精度会提高 - -**注意:** Synchronized batch normalization只能用于多GPU训练,不能用于CPU训练和单GPU训练。 - -下图为模型训练结果: -

-
-Train Loss -

- -### 模型评估 - -模型评估是指对训练完毕的模型评估各类性能指标。本示例采用[COCO官方评估](http://cocodataset.org/#detections-eval), 用户可通过如下方式下载Paddle发布的YOLOv3[模型](https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz) - - sh ./weights/download.sh - -`eval.py`是评估模块的主要执行程序,调用示例如下: - - python eval.py \ - --dataset=coco2017 \ - --weights=${path_to_weights} \ - --class_num=${category_num} - -- 通过设置`export CUDA_VISIBLE_DEVICES=0`指定单卡GPU评估。 - -若训练时指定`--syncbn=False`, 模型评估精度如下: - -| input size | mAP(IoU=0.50:0.95) | mAP(IoU=0.50) | mAP(IoU=0.75) | -| :------: | :------: | :------: | :------: | -| 608x608 | 37.7 | 59.8 | 40.8 | -| 416x416 | 36.5 | 58.2 | 39.1 | -| 320x320 | 34.1 | 55.4 | 36.3 | - -若训练时指定`--syncbn=True`, 模型评估精度如下: - -| input size | mAP(IoU=0.50:0.95) | mAP(IoU=0.50) | mAP(IoU=0.75) | -| :------: | :------: | :------: | :------: | -| 608x608 | 38.9 | 61.1 | 42.0 | -| 416x416 | 37.5 | 59.6 | 40.2 | -| 320x320 | 34.8 | 56.4 | 36.9 | - -- **注意:** 评估结果基于`pycocotools`评估器,没有滤除`score < 0.05`的预测框,其他框架有此滤除操作会导致精度下降。 - -### 模型推断及可视化 - -模型推断可以获取图像中的物体及其对应的类别,`infer.py`是主要执行程序,调用示例如下: - - python infer.py \ - --dataset=coco2017 \ - --weights=${path_to_weights} \ - --class_num=${category_num} \ - --image_path=data/COCO17/val2017/ \ - --image_name=000000000139.jpg \ - --draw_thresh=0.5 - -- 通过设置`export CUDA_VISIBLE_DEVICES=0`指定单卡GPU预测。 -- 推断结果显示如下,并会在`./output`目录下保存带预测框的图像 - -``` -Image person.jpg detect: - person at [190, 101, 273, 372] score: 0.98832 - dog at [63, 263, 200, 346] score: 0.97049 - horse at [404, 137, 598, 366] score: 0.97305 -Detect result save at ./output/person.png -``` - -下图为模型可视化预测结果: -

- - - -
-YOLOv3 预测可视化 -

- -### Benchmark - -模型训练benchmark: - -| 数据集 | GPU | CUDA | cuDNN | batch size | 训练速度(1 GPU) | 训练速度(8 GPU) | 显存占用(1 GPU) | 显存占用(8 GPU) | -| :-----: | :-: | :--: | :---: | :--------: | :-----------------: | :-----------------: | :------------: | :------------: | -| COCO | Tesla P40 | 8.0 | 7.1 | 8 (per GPU) | 30.2 images/s | 59.3 images/s | 10642 MB/GPU | 10782 MB/GPU | - -模型单卡推断速度: - -| GPU | CUDA | cuDNN | batch size | infer speed(608x608) | infer speed(416x416) | infer speed(320x320) | -| :-: | :--: | :---: | :--------: | :-----: | :-----: | :-----: | -| Tesla P40 | 8.0 | 7.1 | 1 | 48 ms/frame | 29 ms/frame |24 ms/frame | - -### 服务部署 - -进行YOLOv3的服务部署,用户可以在[eval.py](./eval.py#L54)或[infer.py](./infer.py#L47)中保存可部署的推断模型,该模型可以用Paddle预测库加载和部署,参考[Paddle预测库](http://paddlepaddle.org/documentation/docs/zh/1.4/advanced_usage/deploy/index_cn.html) - -## 进阶使用 - -### 背景介绍 - -传统目标检测方法通过两阶段检测,第一阶段生成预选框,第二阶段对预选框进行分类得到类别,而YOLO将目标检测看做是对框位置和类别概率的一个单阶段回归问题,使得YOLO能达到近两倍的检测速度。而YOLOv3在YOLO的基础上引入的多尺度预测,使得YOLOv3网络对于小物体的检测精度大幅提高。 - -### 模型概览 - -[YOLOv3](https://arxiv.org/abs/1804.02767) 是一阶段End2End的目标检测器。其目标检测原理如下图所示: -

-
-YOLOv3检测原理 -

- -### 模型结构 - -YOLOv3将输入图像分成S\*S个格子,每个格子预测B个bounding box,每个bounding box预测内容包括: Location(x, y, w, h)、Confidence Score和C个类别的概率,因此YOLOv3输出层的channel数为B\*(5 + C)。YOLOv3的loss函数也有三部分组成:Location误差,Confidence误差和分类误差。 - -YOLOv3的网络结构如下图所示: -

-
-YOLOv3网络结构 -

- -YOLOv3 的网络结构由基础特征提取网络、multi-scale特征融合层和输出层组成。 - -1. 特征提取网络。YOLOv3使用 [DarkNet53](https://arxiv.org/abs/1612.08242)作为特征提取网络:DarkNet53 基本采用了全卷积网络,用步长为2的卷积操作替代了池化层,同时添加了 Residual 单元,避免在网络层数过深时发生梯度弥散。 - -2. 特征融合层。为了解决之前YOLO版本对小目标不敏感的问题,YOLOv3采用了3个不同尺度的特征图来进行目标检测,分别为13\*13,26\*26,52\*52,用来检测大、中、小三种目标。特征融合层选取 DarkNet 产出的三种尺度特征图作为输入,借鉴了FPN(feature pyramid networks)的思想,通过一系列的卷积层和上采样对各尺度的特征图进行融合。 - -3. 输出层。同样使用了全卷积结构,其中最后一个卷积层的卷积核个数是255:3\*(80+4+1)=255,3表示一个grid cell包含3个bounding box,4表示框的4个坐标信息,1表示Confidence Score,80表示COCO数据集中80个类别的概率。 - -### 模型fine-tune - -对YOLOv3进行fine-tune,用户可用`--pretrain`指定下载好的Paddle发布的YOLOv3[模型](https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz),并把`--class_num`设置为用户数据集的类别数。 - -在fine-tune时,若用户自定义数据集的类别数不等于COCO数据集的80类,则加载权重时不应加载`yolo_output`层的权重,可通过在[train.py](./train.py#L76)使用如下方式加载非`yolo_output`层的权重: - -```python -if cfg.pretrain: - if not os.path.exists(cfg.pretrain): - print("Pretrain weights not found: {}".format(cfg.pretrain)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrain, var.name)) \ - and var.name.find('yolo_output') < 0 - - fluid.io.load_vars(exe, cfg.pretrain, predicate=if_exist) - -``` - -若用户自定义数据集的类别是COCO数据集类别的子集,`yolo_output`层的权重可以进行裁剪后导入。例如用户数据集有6类分别对应COCO数据集80类中的第`[3, 19, 25, 41, 58, 73]`类,可通过如下方式裁剪`yolo_output`层权重: - -```python -if cfg.pretrain: - if not os.path.exists(cfg.pretrain): - print("Pretrain weights not found: {}".format(cfg.pretrain)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrain, var.name)) - - fluid.io.load_vars(exe, cfg.pretrain, predicate=if_exist) - - cat_idxs = [3, 19, 25, 41, 58, 73] - # the first 5 channels is x, y, w, h, objectness, - # the following 80 channel is for 80 categories - channel_idxs = np.array(range(5) + [idx + 5 for idx in cat_idxs]) - # we have 3 yolo_output layers - for i in range(3): - # crop conv weights - weights_tensor = fluid.global_scope().find_var( - "yolo_output.{}.conv.weights".format(i)).get_tensor() - weights = np.array(weights_tensor) - # each yolo_output layer has 3 anchors, 85 channels of each anchor - weights = np.concatenate(weights[channel_idxs], - weights[85 + channel_idxs], - weights[170 + channel_idxs]) - weights_tensor.set(weights.astype('float32'), place) - # crop conv bias - bias_tensor = fluid.global_scope().find_var( - "yolo_output.{}.conv.bias".format(i)).get_tensor() - bias = np.array(bias_tensor) - bias = np.concatenate(bias[channel_idxs], - bias[85 + channel_idxs], - bias[150 + channel_idxs]) - bias_tensor.set(bias.astype('float32'), place) - -``` - -## FAQ - -**Q:** 我使用单GPU训练,训练过程中`loss=nan`,这是为什么? -**A:** YOLOv3中`learning_rate=0.001`的设置是针对总batch size为64的情况,若用户的batch size小于该值,建议调小学习率。 - -**Q:** 我训练YOLOv3速度比较慢,要怎么提速? -**A:** YOLOv3的数据增强比较复杂,速度比较慢,可通过在[reader.py](./reader.py#L284)中增加数据读取的进程数来提速。若用户是进行fine-tune,也可将`--no_mixup_iter`设置大于`--max_iter`的值来禁用mixup提升速度。 - -**Q:** 我使用YOLOv3训练两个类别的数据集,训练`loss=nan`或推断结果不符合预期,这是为什么? -**A:** `--label_smooth`参数会把所有正例的目标值设置为`1-1/class_num`,负例的目标值设为`1/class_num`,当`class_num`较小时,这个操作影响过大,可能会出现`loss=nan`或者训练结果错误,类别数较小时建议设置`--label_smooth=False`。若使用Paddle Fluid v1.5及以上版本,我们在C++代码中对这种情况作了保护,设置`--label_smooth=True`也不会出现这些问题。 - -## 参考文献 - -- [You Only Look Once: Unified, Real-Time Object Detection](https://arxiv.org/abs/1506.02640v5), Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. -- [YOLOv3: An Incremental Improvement](https://arxiv.org/abs/1804.02767v1), Joseph Redmon, Ali Farhadi. -- [Bag of Freebies for Training Object Detection Neural Networks](https://arxiv.org/abs/1902.04103v3), Zhi Zhang, Tong He, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li. - -## 版本更新 - -- 1/2019, 新增YOLOv3模型。 -- 4/2019, 新增YOLOv3模型Synchronized batch normalization模式。 - -## 如何贡献代码 - -如果你可以修复某个issue或者增加一个新功能,欢迎给我们提交PR。如果对应的PR被接受了,我们将根据贡献的质量和难度进行打分(0-5分,越高越好)。如果你累计获得了10分,可以联系我们获得面试机会或者为你写推荐信。 - -## 作者 - -- [heavengate](https://github.com/heavengate) -- [tink2123](https://github.com/tink2123) diff --git a/PaddleCV/yolov3/README_en.md b/PaddleCV/yolov3/README_en.md deleted file mode 100644 index 0181250fcdf1836c45365afd2e5a97d3e086c484..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/README_en.md +++ /dev/null @@ -1,332 +0,0 @@ -**This model has been move to [PaddleDetection](https://github.com/PaddlePaddle/PaddleDetection), which includes more detection models.** - -# YOLOv3 Objective Detection - ---- -## Table of Contents - -- [Introduction](#introduction) -- [Quick Start](#quick-start) -- [Advanced Usage](#advanced-usage) -- [FAQ](#faq) -- [Reference](#reference) -- [Update](#update) -- [Contribute](#contribute) -- [Author](#author) - -## Introduction - -[YOLOv3](https://arxiv.org/abs/1804.02767) is an one-stage object detector proposed by [Joseph Redmon](https://arxiv.org/search/cs?searchtype=author&query=Redmon%2C+J) and [Ali Farhadi](https://arxiv.org/search/cs?searchtype=author&query=Farhadi%2C+A), which can be nearly twice faster in inference than the SOTA detector with same performance. - -We use many image augment and label smooth tricks from [Bag of Freebies for Training Object Detection Neural Networks](https://arxiv.org/abs/1902.04103v3) in our implement and produce a higher performance than darknet framework. We got `mAP(0.50:0.95)= 38.9` in COCO-2017 dataset, which is 5.9 higher than darknet(33.0) implement. - -With execution acceleration method in Paddle framework prediction library, inference speed of YOLOv3 in our impliment can be 30% faster than darknet framework. - -We also recommend users to take a look at the  [IPython Notebook demo](https://aistudio.baidu.com/aistudio/projectDetail/122277) - -## Quick Start - -### Installation - -**Install [PaddlePaddle](https://github.com/PaddlePaddle/Paddle):** - -Running sample code in this directory requires PaddelPaddle Fluid v.1.5 and later. If the PaddlePaddle on your device is lower than this version, please follow the instructions in [installation document](http://www.paddlepaddle.org/documentation/docs/en/1.5/beginners_guide/install/index_en.html) and make an update. - -**Install the [COCO-API](https://github.com/cocodataset/cocoapi):** - -To train the model, COCO-API is needed. Installation is as follows: - - git clone https://github.com/cocodataset/cocoapi.git - cd cocoapi/PythonAPI - # if cython is not installed - pip install Cython - # Install into global site-packages - make install - # Alternatively, if you do not have permissions or prefer - # not to install the COCO API into global site-packages - python2 setup.py install --user - -### Data preparation - -**COCO dataset:** - -Train the model on [MS-COCO dataset](http://cocodataset.org/#download), we also provide download script as follows: - -```bash -python dataset/coco/download.py -``` - -The data catalog structure is as follows: - -``` - dataset/coco/ - ├── annotations - │   ├── instances_train2014.json - │   ├── instances_train2017.json - │   ├── instances_val2014.json - │   ├── instances_val2017.json - | ... - ├── train2017 - │   ├── 000000000009.jpg - │   ├── 000000580008.jpg - | ... - ├── val2017 - │   ├── 000000000139.jpg - │   ├── 000000000285.jpg - | ... - -``` - -**User defined dataset:** - -You can defined datasets by yourself, we recommend using annotations in COCO format, and you can set dataset directory by `--data_dir` or in [reader.py](./reader.py#L39). When using annotations in COCO format, you can reference the directory structure in COCO dataset above. - -### Training - -**download the pre-trained model:** This sample provides DarkNet-53 pre-trained [model](https://paddlemodels.bj.bcebos.com/yolo/darknet53.tar.gz), which is converted from [pjreddie/darknet](https://pjreddie.com/media/files/darknet53.conv.74). You can download pre-trained model as: - - sh ./weights/download.sh - -**NOTE:** Windows users can download weights from links in `./weights/download.sh`. - -Set `--pretrain` to load pre-trained model. In addition, this parameter is used to load trained model when finetuning as well. -Please make sure that pre-trained model is downloaded and loaded correctly, otherwise, the loss may be NAN during training. - - -**training:** After data preparation, one can start the training step by: - - python train.py \ - --model_save_dir=output/ \ - --pretrain=${path_to_pretrain_model} \ - --data_dir=${path_to_data} \ - --class_num=${category_num} - -- Set `export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7` to specifiy 8 GPUs to train. -- It is recommended to set `--use_multiprocess_reader=False` when training on Windows. -- Set `--worker_num=` to specifiy multiprocess reader worker number, which is default 8, if the number of CPU cores in the training environment is small, it is recommended to set worker number to a small value. -- For more help on arguments: - - python train.py --help - -**NOTE:** The total batch size for YOLOv3 is 64, we use 8 GPUs with batch size as 8 in each GPU for training. - -**model configuration:** - -* The model uses 9 anchors generated based on the COCO dataset, which are `10x13`, `16x30`, `33x23`, `30x61`, `62x45`, `59x119`, `116x90`, `156x198`, `373x326`. -* In YOLOv3, prediction anchor boxes which is not the best but overlap a ground truth boxes over `ignore_thresh=0.7`, objectness loss will be ignored. - -**training strategy:** - -* Use momentum optimizer with momentum=0.9. -* In first 4000 iteration, the learning rate increases linearly from 0.0 to 0.001. Then lr is decayed at 400000, 450000 iteration with multiplier 0.1, 0.01. The maximum iteration is 500200. -* Synchronized batch normalization can be set by `--syncbn=True`, which can produce a higher performance. - -**NOTE:** Synchronized batch normalization can only be used on multiple GPU devices, can not be used on CPU devices or single GPU device. - -Training losses is shown as below: -

-
-Train Loss -

- -### Evaluation - -Evaluation is to evaluate the performance of a trained model. This sample provides `eval.py` which uses a COCO-specific mAP metric defined by [COCO committee](http://cocodataset.org/#detections-eval). You can also download Paddle released YOLOv3 [model](https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz) as: - - sh ./weights/download.sh - -`eval.py` is the main executor for evalution, you can start evalution step by: - - python eval.py \ - --dataset=coco2017 \ - --weights=${path_to_weights} \ - --class_num=${category_num} - -- Set `export CUDA_VISIBLE_DEVICES=0` to specifiy one GPU to eval. - -If train with `--syncbn=False`, Evalutaion result is shown as below: - -| input size | mAP(IoU=0.50:0.95) | mAP(IoU=0.50) | mAP(IoU=0.75) | -| :------: | :------: | :------: | :------: | -| 608x608 | 37.7 | 59.8 | 40.8 | -| 416x416 | 36.5 | 58.2 | 39.1 | -| 320x320 | 34.1 | 55.4 | 36.3 | - -If train with `--syncbn=True`, Evalutaion result is shown as below: - -| input size | mAP(IoU=0.50:0.95) | mAP(IoU=0.50) | mAP(IoU=0.75) | -| :------: | :------: | :------: | :------: | -| 608x608 | 38.9 | 61.1 | 42.0 | -| 416x416 | 37.5 | 59.6 | 40.2 | -| 320x320 | 34.8 | 56.4 | 36.9 | - -- **NOTE:** Evaluations based on `pycocotools` evaluator with score threshold as 0.01, which is same as darknet. Some frameworks evaluates with score threshold as 0.05 will cause a decrease in performance. - -### Inference and Visualization - -Inference is used to get prediction score or image features based on trained models. `infer.py` is the main executor for inference, you can start inference step by: - - python infer.py \ - --dataset=coco2017 \ - --weights=${path_to_weights} \ - --class_num=${category_num} \ - --image_path=data/COCO17/val2017/ \ - --image_name=000000000139.jpg \ - --draw_thresh=0.5 - -- Set `export CUDA_VISIBLE_DEVICES=0` to specifiy one GPU to infer. -- Inference results will be shown as follows, and images with detection boxes will be saved under `./output`. - -``` -Image person.jpg detect: - person at [190, 101, 273, 372] score: 0.98832 - dog at [63, 263, 200, 346] score: 0.97049 - horse at [404, 137, 598, 366] score: 0.97305 -Detect result save at ./output/person.png -``` - -Visualization of inference result examples are shown as below: -

- - - -
-YOLOv3 Visualization Examples -

- -### Benchmark - -Training benchmark: - -| dataset | GPU | CUDA | cuDNN | batch size | train speed (1 GPU) | train speed (8 GPU) | memory (1 GPU) | memory (8 GPU) | -| :-----: | :-: | :--: | :---: | :--------: | :-----------------: | :-----------------: | :------------: | :------------: | -| COCO | Tesla P40 | 8.0 | 7.1 | 8 (per GPU) | 30.2 images/s | 59.3 images/s | 10642 MB/GPU | 10782 MB/GPU | - -Inference speed on single GPU: - -| GPU | CUDA | cuDNN | batch size | infer speed(608x608) | infer speed(416x416) | infer speed(320x320) | -| :-: | :--: | :---: | :--------: | :-----: | :-----: | :-----: | -| Tesla P40 | 8.0 | 7.1 | 1 | 48 ms/frame | 29 ms/frame |24 ms/frame | - -### Inference deployment - -For YOLOv3 inference deployment, you can save YOLOv3 inference model in [eval.py](./eval.py#L54) or [infer.py](./infer.py#L47), inference model can be loaded and deployed by Paddle prediction library, see [Paddle Inference Lib](http://www.paddlepaddle.org/documentation/docs/en/1.4/advanced_usage/deploy/index_en.html). - -## Advanced Usage - -### Background introduction - -Traditional object detection method works with two stages, it generates potential bounding boxes in the first stage and then run classifier on these proposed boxes in the second stage. YOLO reframes object detection as a single regression problem, detect bounding box coordinates and class probabilities in one stage, which can make YOLO networks inference faster than two-stage networks. YOLOv3 uses multi-scale prediction layers, which improves small target detection performance. - -### Model overview - -[YOLOv3](https://arxiv.org/abs/1804.02767) is a one stage end to end detector。The detection principle of YOLOv3 is as follow: -

-
-YOLOv3 detection principle -

- -### Model structure - -YOLOv3 divides the input image in to S\*S grids and predict B bounding boxes in each grid, predictions of boxes include Location(x, y, w, h), Confidence Score and probabilities of C classes, therefore YOLOv3 output layer has B\*(5 + C) channels. YOLOv3 loss consists of three parts: location loss, confidence loss and classification loss. -The bone network of YOLOv3 is darknet53, the structure of YOLOv3 is as follow: -

-
-YOLOv3 structure -

- -YOLOv3 networks are composed of base feature extraction network, multi-scale feature fusion layers, and output layers. - -1. Feature extraction network: YOLOv3 uses [DarkNet53](https://arxiv.org/abs/1612.08242) for feature extracion. Darknet53 uses a full convolution structure, replacing the pooling layer with a convolution operation with step size as 2, and adding residual block to avoid gradient dispersion when the number of network layers is too deep. - -2. Feature fusion layer. In order to solve the problem that the previous YOLO version is not sensitive to small objects, YOLOv3 uses three different scale feature maps for target detection, which are 13\*13, 26\*26, 52\*52, respectively, for detecting large, medium and small objects. The feature fusion layer selects the three scale feature maps produced by DarkNet as input, and draws on the idea of FPN (feature pyramid networks) to fuse the feature maps of each scale through a series of convolutional layers and upsampling. - -3. Output layer: The output layer also uses a full convolution structure. The number of convolution kernels in the last convolutional layer is 255:3\*(80+4+1)=255, and 3 indicates that a grid cell contains 3 bounding boxes. 4 represents the four coordinate information of the box, 1 represents the Confidence Score, and 80 represents the probability of 80 categories in the COCO dataset. - -### Model fine-tune - -For YOLOv3 fine-tuning, you should set `--pretrain` as YOLOv3 [model](https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz) you download, set `--class_num` as category number in your dataset. - -In fine-tuning, weights of `yolo_output` layers should not be loaded when your `--class_num` is not equal to 80 as in COCO dataset, you can load pre-trained weights in [train.py](./train.py#L76) without `yolo_output` layers as: - -```python -if cfg.pretrain: - if not os.path.exists(cfg.pretrain): - print("Pretrain weights not found: {}".format(cfg.pretrain)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrain, var.name)) \ - and var.name.find('yolo_output') < 0 - - fluid.io.load_vars(exe, cfg.pretrain, predicate=if_exist) - -``` - -If categories in your dataset is a subset of COCO categories, weights of `yolo_output` layers can be cropped for fine-tuning. Suppose you has 6 categories which is `[3, 19, 25, 41, 58, 73]`th in COCO 80 categories, weights can be cropped as: - -```python -if cfg.pretrain: - if not os.path.exists(cfg.pretrain): - print("Pretrain weights not found: {}".format(cfg.pretrain)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrain, var.name)) - - fluid.io.load_vars(exe, cfg.pretrain, predicate=if_exist) - - cat_idxs = [3, 19, 25, 41, 58, 73] - # the first 5 channels is x, y, w, h, objectness, - # the following 80 channel is for 80 categories - channel_idxs = np.array(range(5) + [idx + 5 for idx in cat_idxs]) - # we have 3 yolo_output layers - for i in range(3): - # crop conv weights - weights_tensor = fluid.global_scope().find_var( - "yolo_output.{}.conv.weights".format(i)).get_tensor() - weights = np.array(weights_tensor) - # each yolo_output layer has 3 anchors, 85 channels of each anchor - weights = np.concatenate(weights[channel_idxs], - weights[85 + channel_idxs], - weights[170 + channel_idxs]) - weights_tensor.set(weights.astype('float32'), place) - # crop conv bias - bias_tensor = fluid.global_scope().find_var( - "yolo_output.{}.conv.bias".format(i)).get_tensor() - bias = np.array(bias_tensor) - bias = np.concatenate(bias[channel_idxs], - bias[85 + channel_idxs], - bias[150 + channel_idxs]) - bias_tensor.set(bias.astype('float32'), place) - -``` - -## FAQ - -**Q:** I train YOLOv3 in single GPU and got `loss=nan`, why? -**A:** `learning_rate=0.001` configuration is for training in 8 GPUs while total batch size is 64, if you train with smaller batch size, please decrease the learning rate. - -**Q:** YOLOv3 training in my machine is very slow, how can I speed it up? -**A:** Image augmentation is very complicated and time consuming in YOLOv3, you can set more workers for reader in [reader.py](./reader.py#L284) for speeding up. If you are fine-tuning, you can also set `--no_mixup_iter` greater than `--max_iter` to disable image mixup. - -**Q:** YOLOv3 training with 2 categories dataset got `loss=nan` or wrong prediction, why? -**A:** Settting `--label_smooth` will smooth target value of positive sample to `1-1/class_num` and target of negative sample to `1/class_num`, if `class_num` is very small, label smooth will incur excessive influence and may cause `loss=nan` or wrong prediction, it is recommend to set `--label_smooth=False` while category number is small. If you are using Paddle Fluid v1.5 and above, this situation is protected in C++ code, setting `--label_smooth=True` will no longer incur such error. - -## Reference - -- [You Only Look Once: Unified, Real-Time Object Detection](https://arxiv.org/abs/1506.02640v5), Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi. -- [YOLOv3: An Incremental Improvement](https://arxiv.org/abs/1804.02767v1), Joseph Redmon, Ali Farhadi. -- [Bag of Freebies for Training Object Detection Neural Networks](https://arxiv.org/abs/1902.04103v3), Zhi Zhang, Tong He, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li. - -## Update - -- 1/2019, Add YOLOv3 model. -- 4/2019, Add synchronized batch normalization for YOLOv3. - -## Contribute - -If you can fix a issue or add a new feature, please open a PR to us. If your PR is accepted, you can get scores according to the quality and difficulty of your PR(0~5), while you got 10 scores, you can contact us for interview or recommendation letter. - -## Author - -- [heavengate](https://github.com/heavengate) -- [tink2123](https://github.com/tink2123) diff --git a/PaddleCV/yolov3/_ce.py b/PaddleCV/yolov3/_ce.py deleted file mode 100644 index c0ce52dfd811753bf025babca764eaf232ab246b..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/_ce.py +++ /dev/null @@ -1,48 +0,0 @@ -### This file is only used for continuous evaluation test! -from __future__ import print_function -from __future__ import division -from __future__ import absolute_import -import os -import sys -sys.path.append(os.environ['ceroot']) -from kpi import CostKpi -from kpi import DurationKpi - -train_cost_1card_kpi = CostKpi( - 'train_cost_1card', 0.02, 0, actived=True, desc='train cost') -train_duration_1card_kpi = DurationKpi( - 'train_duration_1card', 0.1, 0, actived=True, desc='train duration') -train_cost_8card_kpi = CostKpi( - 'train_cost_8card', 0.02, 0, actived=True, desc='train cost') -train_duration_8card_kpi = DurationKpi( - 'train_duration_8card', 0.1, 0, actived=True, desc='train duration') -tracking_kpis = [ - train_cost_1card_kpi, train_duration_1card_kpi, train_cost_8card_kpi, - train_duration_8card_kpi -] - - -def parse_log(log): - for line in log.split('\n'): - fs = line.strip().split('\t') - print(fs) - if len(fs) == 3 and fs[0] == 'kpis': - print("-----%s" % fs) - kpi_name = fs[1] - kpi_value = float(fs[2]) - yield kpi_name, kpi_value - - -def log_to_ce(log): - kpi_tracker = {} - for kpi in tracking_kpis: - kpi_tracker[kpi.name] = kpi - for (kpi_name, kpi_value) in parse_log(log): - print(kpi_name, kpi_value) - kpi_tracker[kpi_name].add_record(kpi_value) - kpi_tracker[kpi_name].persist() - - -if __name__ == '__main__': - log = sys.stdin.read() - log_to_ce(log) diff --git a/PaddleCV/yolov3/box_utils.py b/PaddleCV/yolov3/box_utils.py deleted file mode 100644 index b5bc42502eb2c79f36be624751170d71575a7820..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/box_utils.py +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np - -import matplotlib -matplotlib.use('Agg') -from matplotlib import pyplot as plt -from PIL import Image - - -def coco_anno_box_to_center_relative(box, img_height, img_width): - """ - Convert COCO annotations box with format [x1, y1, w, h] to - center mode [center_x, center_y, w, h] and divide image width - and height to get relative value in range[0, 1] - """ - assert len(box) == 4, "box should be a len(4) list or tuple" - x, y, w, h = box - - x1 = max(x, 0) - x2 = min(x + w - 1, img_width - 1) - y1 = max(y, 0) - y2 = min(y + h - 1, img_height - 1) - - x = (x1 + x2) / 2 / img_width - y = (y1 + y2) / 2 / img_height - w = (x2 - x1) / img_width - h = (y2 - y1) / img_height - - return np.array([x, y, w, h]) - - -def clip_relative_box_in_image(x, y, w, h): - """Clip relative box coordinates x, y, w, h to [0, 1]""" - x1 = max(x - w / 2, 0.) - x2 = min(x + w / 2, 1.) - y1 = min(y - h / 2, 0.) - y2 = max(y + h / 2, 1.) - x = (x1 + x2) / 2 - y = (y1 + y2) / 2 - w = x2 - x1 - h = y2 - y1 - - -def box_xywh_to_xyxy(box): - shape = box.shape - assert shape[-1] == 4, "Box shape[-1] should be 4." - - box = box.reshape((-1, 4)) - box[:, 0], box[:, 2] = box[:, 0] - box[:, 2] / 2, box[:, 0] + box[:, 2] / 2 - box[:, 1], box[:, 3] = box[:, 1] - box[:, 3] / 2, box[:, 1] + box[:, 3] / 2 - box = box.reshape(shape) - return box - - -def box_iou_xywh(box1, box2): - assert box1.shape[-1] == 4, "Box1 shape[-1] should be 4." - assert box2.shape[-1] == 4, "Box2 shape[-1] should be 4." - - b1_x1, b1_x2 = box1[:, 0] - box1[:, 2] / 2, box1[:, 0] + box1[:, 2] / 2 - b1_y1, b1_y2 = box1[:, 1] - box1[:, 3] / 2, box1[:, 1] + box1[:, 3] / 2 - b2_x1, b2_x2 = box2[:, 0] - box2[:, 2] / 2, box2[:, 0] + box2[:, 2] / 2 - b2_y1, b2_y2 = box2[:, 1] - box2[:, 3] / 2, box2[:, 1] + box2[:, 3] / 2 - - inter_x1 = np.maximum(b1_x1, b2_x1) - inter_x2 = np.minimum(b1_x2, b2_x2) - inter_y1 = np.maximum(b1_y1, b2_y1) - inter_y2 = np.minimum(b1_y2, b2_y2) - inter_w = inter_x2 - inter_x1 + 1 - inter_h = inter_y2 - inter_y1 + 1 - inter_w[inter_w < 0] = 0 - inter_h[inter_h < 0] = 0 - - inter_area = inter_w * inter_h - b1_area = (b1_x2 - b1_x1 + 1) * (b1_y2 - b1_y1 + 1) - b2_area = (b2_x2 - b2_x1 + 1) * (b2_y2 - b2_y1 + 1) - - return inter_area / (b1_area + b2_area - inter_area) - - -def box_iou_xyxy(box1, box2): - assert box1.shape[-1] == 4, "Box1 shape[-1] should be 4." - assert box2.shape[-1] == 4, "Box2 shape[-1] should be 4." - - b1_x1, b1_y1, b1_x2, b1_y2 = box1[:, 0], box1[:, 1], box1[:, 2], box1[:, 3] - b2_x1, b2_y1, b2_x2, b2_y2 = box2[:, 0], box2[:, 1], box2[:, 2], box2[:, 3] - - inter_x1 = np.maximum(b1_x1, b2_x1) - inter_x2 = np.minimum(b1_x2, b2_x2) - inter_y1 = np.maximum(b1_y1, b2_y1) - inter_y2 = np.minimum(b1_y2, b2_y2) - inter_w = inter_x2 - inter_x1 - inter_h = inter_y2 - inter_y1 - inter_w[inter_w < 0] = 0 - inter_h[inter_h < 0] = 0 - - inter_area = inter_w * inter_h - b1_area = (b1_x2 - b1_x1) * (b1_y2 - b1_y1) - b2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1) - - return inter_area / (b1_area + b2_area - inter_area) - - -def box_crop(boxes, labels, scores, crop, img_shape): - x, y, w, h = map(float, crop) - im_w, im_h = map(float, img_shape) - - boxes = boxes.copy() - boxes[:, 0], boxes[:, 2] = (boxes[:, 0] - boxes[:, 2] / 2) * im_w, ( - boxes[:, 0] + boxes[:, 2] / 2) * im_w - boxes[:, 1], boxes[:, 3] = (boxes[:, 1] - boxes[:, 3] / 2) * im_h, ( - boxes[:, 1] + boxes[:, 3] / 2) * im_h - - crop_box = np.array([x, y, x + w, y + h]) - centers = (boxes[:, :2] + boxes[:, 2:]) / 2.0 - mask = np.logical_and(crop_box[:2] <= centers, centers <= crop_box[2:]).all( - axis=1) - - boxes[:, :2] = np.maximum(boxes[:, :2], crop_box[:2]) - boxes[:, 2:] = np.minimum(boxes[:, 2:], crop_box[2:]) - boxes[:, :2] -= crop_box[:2] - boxes[:, 2:] -= crop_box[:2] - - mask = np.logical_and(mask, (boxes[:, :2] < boxes[:, 2:]).all(axis=1)) - boxes = boxes * np.expand_dims(mask.astype('float32'), axis=1) - labels = labels * mask.astype('float32') - scores = scores * mask.astype('float32') - boxes[:, 0], boxes[:, 2] = (boxes[:, 0] + boxes[:, 2]) / 2 / w, ( - boxes[:, 2] - boxes[:, 0]) / w - boxes[:, 1], boxes[:, 3] = (boxes[:, 1] + boxes[:, 3]) / 2 / h, ( - boxes[:, 3] - boxes[:, 1]) / h - - return boxes, labels, scores, mask.sum() - - -def draw_boxes_on_image(image_path, - boxes, - scores, - labels, - label_names, - score_thresh=0.5): - image = np.array(Image.open(image_path)) - plt.figure() - _, ax = plt.subplots(1) - ax.imshow(image) - - image_name = image_path.split('/')[-1] - print("Image {} detect: ".format(image_name)) - colors = {} - for box, score, label in zip(boxes, scores, labels): - if score < score_thresh: - continue - if box[2] <= box[0] or box[3] <= box[1]: - continue - label = int(label) - if label not in colors: - colors[label] = plt.get_cmap('hsv')(label / len(label_names)) - x1, y1, x2, y2 = box[0], box[1], box[2], box[3] - rect = plt.Rectangle( - (x1, y1), - x2 - x1, - y2 - y1, - fill=False, - linewidth=2.0, - edgecolor=colors[label]) - ax.add_patch(rect) - ax.text( - x1, - y1, - '{} {:.4f}'.format(label_names[label], score), - verticalalignment='bottom', - horizontalalignment='left', - bbox={'facecolor': colors[label], - 'alpha': 0.5, - 'pad': 0}, - fontsize=8, - color='white') - print("\t {:15s} at {:25} score: {:.5f}".format(label_names[int( - label)], str(list(map(int, list(box)))), score)) - image_name = image_name.replace('jpg', 'png') - plt.axis('off') - plt.gca().xaxis.set_major_locator(plt.NullLocator()) - plt.gca().yaxis.set_major_locator(plt.NullLocator()) - plt.savefig( - "./output/{}".format(image_name), bbox_inches='tight', pad_inches=0.0) - print("Detect result save at ./output/{}\n".format(image_name)) - plt.cla() - plt.close('all') diff --git a/PaddleCV/yolov3/config.py b/PaddleCV/yolov3/config.py deleted file mode 100644 index 784cffed0f50a978881ede200cd11edc51689cce..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/config.py +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals -from edict import AttrDict -import six -import numpy as np - -_C = AttrDict() -cfg = _C - -# -# Training options -# - -# Snapshot period -_C.snapshot_iter = 2000 - -# min valid area for gt boxes -_C.gt_min_area = -1 - -# max target box number in an image -_C.max_box_num = 50 - -# -# Training options -# - -# valid score threshold to include boxes -_C.valid_thresh = 0.005 - -# threshold vale for box non-max suppression -_C.nms_thresh = 0.45 - -# the number of top k boxes to perform nms -_C.nms_topk = 400 - -# the number of output boxes after nms -_C.nms_posk = 100 - -# score threshold for draw box in debug mode -_C.draw_thresh = 0.5 - -# -# Model options -# - -# pixel mean values -_C.pixel_means = [0.485, 0.456, 0.406] - -# pixel std values -_C.pixel_stds = [0.229, 0.224, 0.225] - -# anchors box weight and height -_C.anchors = [ - 10, 13, 16, 30, 33, 23, 30, 61, 62, 45, 59, 119, 116, 90, 156, 198, 373, 326 -] - -# anchor mask of each yolo layer -_C.anchor_masks = [[6, 7, 8], [3, 4, 5], [0, 1, 2]] - -# IoU threshold to ignore objectness loss of pred box -_C.ignore_thresh = .7 - -# -# SOLVER options -# - -# batch size -_C.batch_size = 8 - -# derived learning rate the to get the final learning rate. -_C.learning_rate = 0.001 - -# maximum number of iterations -_C.max_iter = 500200 - -# warm up to learning rate -_C.warm_up_iter = 4000 -_C.warm_up_factor = 0. - -# lr steps_with_decay -_C.lr_steps = [400000, 450000] -_C.lr_gamma = 0.1 - -# L2 regularization hyperparameter -_C.weight_decay = 0.0005 - -# momentum with SGD -_C.momentum = 0.9 - -# -# ENV options -# - -# support both CPU and GPU -_C.use_gpu = True - -# Class number -_C.class_num = 80 - -# dataset path -_C.train_file_list = 'annotations/instances_train2017.json' -_C.train_data_dir = 'train2017' -_C.val_file_list = 'annotations/instances_val2017.json' -_C.val_data_dir = 'val2017' - - -def merge_cfg_from_args(args): - """Merge config keys, values in args into the global config.""" - for k, v in sorted(six.iteritems(vars(args))): - try: - value = eval(v) - except: - value = v - _C[k] = value diff --git a/PaddleCV/yolov3/data_utils.py b/PaddleCV/yolov3/data_utils.py deleted file mode 100644 index f5c5246346a7ef4b568bbb3f3681793d36c22749..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/data_utils.py +++ /dev/null @@ -1,168 +0,0 @@ -""" -This code is based on https://github.com/fchollet/keras/blob/master/keras/utils/data_utils.py -""" - -import os -import sys -import signal -import time -import numpy as np -import threading -import multiprocessing -try: - import queue -except ImportError: - import Queue as queue - - -# handle terminate reader process, do not print stack frame -def _reader_quit(signum, frame): - print("Reader process exit.") - sys.exit() - -def _term_group(sig_num, frame): - print('pid {} terminated, terminate group ' - '{}...'.format(os.getpid(), os.getpgrp())) - os.killpg(os.getpgid(os.getpid()), signal.SIGKILL) - -signal.signal(signal.SIGTERM, _reader_quit) -signal.signal(signal.SIGINT, _term_group) - - -class GeneratorEnqueuer(object): - """ - Builds a queue out of a data generator. - - Args: - generator: a generator function which endlessly yields data - use_multiprocessing (bool): use multiprocessing if True, - otherwise use threading. - wait_time (float): time to sleep in-between calls to `put()`. - random_seed (int): Initial seed for workers, - will be incremented by one for each workers. - """ - - def __init__(self, - generator, - use_multiprocessing=False, - wait_time=0.05, - random_seed=None): - self.wait_time = wait_time - self._generator = generator - self._use_multiprocessing = use_multiprocessing - self._threads = [] - self._stop_event = None - self.queue = None - self._manager = None - self.seed = random_seed - - def start(self, workers=1, max_queue_size=10): - """ - Start worker threads which add data from the generator into the queue. - - Args: - workers (int): number of worker threads - max_queue_size (int): queue size - (when full, threads could block on `put()`) - """ - - def data_generator_task(): - """ - Data generator task. - """ - - def task(): - if (self.queue is not None and - self.queue.qsize() < max_queue_size): - generator_output = next(self._generator) - self.queue.put((generator_output)) - else: - time.sleep(self.wait_time) - - if not self._use_multiprocessing: - while not self._stop_event.is_set(): - with self.genlock: - try: - task() - except Exception: - self._stop_event.set() - break - else: - while not self._stop_event.is_set(): - try: - task() - except Exception: - self._stop_event.set() - break - - try: - if self._use_multiprocessing: - self._manager = multiprocessing.Manager() - self.queue = self._manager.Queue(maxsize=max_queue_size) - self._stop_event = multiprocessing.Event() - else: - self.genlock = threading.Lock() - self.queue = queue.Queue() - self._stop_event = threading.Event() - for _ in range(workers): - if self._use_multiprocessing: - # Reset random seed else all children processes - # share the same seed - np.random.seed(self.seed) - thread = multiprocessing.Process(target=data_generator_task) - thread.daemon = True - if self.seed is not None: - self.seed += 1 - else: - thread = threading.Thread(target=data_generator_task) - self._threads.append(thread) - thread.start() - except: - self.stop() - raise - - def is_running(self): - """ - Returns: - bool: Whether the worker theads are running. - """ - return self._stop_event is not None and not self._stop_event.is_set() - - def stop(self, timeout=None): - """ - Stops running threads and wait for them to exit, if necessary. - Should be called by the same thread which called `start()`. - - Args: - timeout(int|None): maximum time to wait on `thread.join()`. - """ - if self.is_running(): - self._stop_event.set() - for thread in self._threads: - if self._use_multiprocessing: - if thread.is_alive(): - thread.join(timeout) - else: - thread.join(timeout) - if self._manager: - self._manager.shutdown() - - self._threads = [] - self._stop_event = None - self.queue = None - - def get(self): - """ - Creates a generator to extract data from the queue. - Skip the data if it is `None`. - - # Yields - tuple of data in the queue. - """ - while self.is_running(): - if not self.queue.empty(): - inputs = self.queue.get() - if inputs is not None: - yield inputs - else: - time.sleep(self.wait_time) diff --git a/PaddleCV/yolov3/dataset/coco/download.py b/PaddleCV/yolov3/dataset/coco/download.py deleted file mode 100644 index 9df49bef6eab9d615e61e3cd429dcfdbeb5708ce..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/dataset/coco/download.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import os.path as osp -import sys -import zipfile -import logging - -from paddle.dataset.common import download - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -DATASETS = { - 'coco': [ - # coco2017 - ('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', ), - # coco2014 - ('http://images.cocodataset.org/zips/train2014.zip', - '0da8c0bd3d6becc4dcb32757491aca88', ), - ('http://images.cocodataset.org/zips/val2014.zip', - 'a3d79f5ed8d289b7a7554ce06a5782b3', ), - ('http://images.cocodataset.org/annotations/annotations_trainval2014.zip', - '0a379cfc70b0e71301e0f377548639bd', ), - ], -} - - -def download_decompress_file(data_dir, url, md5): - logger.info("Downloading from {}".format(url)) - zip_file = download(url, data_dir, md5) - logger.info("Decompressing {}".format(zip_file)) - with zipfile.ZipFile(zip_file) as zf: - zf.extractall(path=data_dir) - os.remove(zip_file) - - -if __name__ == "__main__": - data_dir = osp.split(osp.realpath(sys.argv[0]))[0] - for name, infos in DATASETS.items(): - for info in infos: - download_decompress_file(data_dir, info[0], info[1]) - logger.info("Download dataset {} finished.".format(name)) diff --git a/PaddleCV/yolov3/dist_utils.py b/PaddleCV/yolov3/dist_utils.py deleted file mode 100644 index 9fb03f1bd351a87d758eb84133ab25b25530e864..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/dist_utils.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import paddle.fluid as fluid - -def nccl2_prepare(trainer_id, startup_prog, main_prog): - config = fluid.DistributeTranspilerConfig() - config.mode = "nccl2" - t = fluid.DistributeTranspiler(config=config) - t.transpile(trainer_id, - trainers=os.environ.get('PADDLE_TRAINER_ENDPOINTS'), - current_endpoint=os.environ.get('PADDLE_CURRENT_ENDPOINT'), - startup_program=startup_prog, - program=main_prog) - -def prepare_for_multi_process(exe, build_strategy, train_prog): - # prepare for multi-process - trainer_id = int(os.environ.get('PADDLE_TRAINER_ID', 0)) - num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - if num_trainers < 2: return - print("PADDLE_TRAINERS_NUM", num_trainers) - print("PADDLE_TRAINER_ID", trainer_id) - build_strategy.num_trainers = num_trainers - build_strategy.trainer_id = trainer_id - # NOTE(zcd): use multi processes to train the model, - # and each process use one GPU card. - startup_prog = fluid.Program() - nccl2_prepare(trainer_id, startup_prog, train_prog) - # the startup_prog are run two times, but it doesn't matter. - exe.run(startup_prog) diff --git a/PaddleCV/yolov3/edict.py b/PaddleCV/yolov3/edict.py deleted file mode 100644 index 552ede8e4006b5d4e90dd85d566749fd624c26d1..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/edict.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - - -class AttrDict(dict): - def __init__(self, *args, **kwargs): - super(AttrDict, self).__init__(*args, **kwargs) - - def __getattr__(self, name): - if name in self.__dict__: - return self.__dict__[name] - elif name in self: - return self[name] - else: - raise AttributeError(name) - - def __setattr__(self, name, value): - if name in self.__dict__: - self.__dict__[name] = value - else: - self[name] = value diff --git a/PaddleCV/yolov3/eval.py b/PaddleCV/yolov3/eval.py deleted file mode 100644 index 3443ccfcbff186e2db51ce795bb1569160c81ddb..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/eval.py +++ /dev/null @@ -1,136 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os -import io -import six -import time -import json -import numpy as np -import paddle -import paddle.fluid as fluid -import reader -from models.yolov3 import YOLOv3 -from utility import print_arguments, parse_args, check_gpu -from pycocotools.coco import COCO -from pycocotools.cocoeval import COCOeval, Params -from config import cfg - - -def eval(): - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if '2014' in cfg.dataset: - test_list = 'annotations/instances_val2014.json' - elif '2017' in cfg.dataset: - test_list = 'annotations/instances_val2017.json' - - if cfg.debug: - if not os.path.exists('output'): - os.mkdir('output') - - model = YOLOv3(is_train=False) - model.build_model() - outputs = model.get_pred() - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - # yapf: disable - if cfg.weights: - def if_exist(var): - return os.path.exists(os.path.join(cfg.weights, var.name)) - fluid.io.load_vars(exe, cfg.weights, predicate=if_exist) - # yapf: enable - - # you can save inference model by following code - # fluid.io.save_inference_model("./output/yolov3", - # feeded_var_names=['image', 'im_shape'], - # target_vars=outputs, - # executor=exe) - - input_size = cfg.input_size - test_reader = reader.test(input_size, 1) - label_names, label_ids = reader.get_label_infos() - if cfg.debug: - print("Load in labels {} with ids {}".format(label_names, label_ids)) - feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) - - def get_pred_result(boxes, scores, labels, im_id): - result = [] - for box, score, label in zip(boxes, scores, labels): - x1, y1, x2, y2 = box - w = x2 - x1 + 1 - h = y2 - y1 + 1 - bbox = [x1, y1, w, h] - - res = { - 'image_id': im_id, - 'category_id': label_ids[int(label)], - 'bbox': list(map(float, bbox)), - 'score': float(score) - } - result.append(res) - return result - - dts_res = [] - fetch_list = [outputs] - total_time = 0 - for batch_id, batch_data in enumerate(test_reader()): - start_time = time.time() - batch_outputs = exe.run(fetch_list=[v.name for v in fetch_list], - feed=feeder.feed(batch_data), - return_numpy=False, - use_program_cache=True) - lod = batch_outputs[0].lod()[0] - nmsed_boxes = np.array(batch_outputs[0]) - if nmsed_boxes.shape[1] != 6: - continue - for i in range(len(lod) - 1): - im_id = batch_data[i][1] - start = lod[i] - end = lod[i + 1] - if start == end: - continue - nmsed_box = nmsed_boxes[start:end, :] - labels = nmsed_box[:, 0] - scores = nmsed_box[:, 1] - boxes = nmsed_box[:, 2:6] - dts_res += get_pred_result(boxes, scores, labels, im_id) - - end_time = time.time() - print("batch id: {}, time: {}".format(batch_id, end_time - start_time)) - total_time += end_time - start_time - - with io.open("yolov3_result.json", 'w') as outfile: - encode_func = unicode if six.PY2 else str - outfile.write(encode_func(json.dumps(dts_res))) - print("start evaluate detection result with coco api") - coco = COCO(os.path.join(cfg.data_dir, test_list)) - cocoDt = coco.loadRes("yolov3_result.json") - cocoEval = COCOeval(coco, cocoDt, 'bbox') - cocoEval.evaluate() - cocoEval.accumulate() - cocoEval.summarize() - print("evaluate done.") - - print("Time per batch: {}".format(total_time / batch_id)) - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - eval() diff --git a/PaddleCV/yolov3/image/000000000139.png b/PaddleCV/yolov3/image/000000000139.png deleted file mode 100644 index a2e3d5d0cd9f6c05ecef83794486410949b53762..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/000000000139.png and /dev/null differ diff --git a/PaddleCV/yolov3/image/000000127517.png b/PaddleCV/yolov3/image/000000127517.png deleted file mode 100644 index ef04630142bccf1fe8be78f73c4000c02209f3e4..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/000000127517.png and /dev/null differ diff --git a/PaddleCV/yolov3/image/000000203864.png b/PaddleCV/yolov3/image/000000203864.png deleted file mode 100644 index 8067fd8065c272f86952cd289418b4d3d1d44643..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/000000203864.png and /dev/null differ diff --git a/PaddleCV/yolov3/image/000000515077.png b/PaddleCV/yolov3/image/000000515077.png deleted file mode 100644 index 70bbbe6f640fad5394da02e217f52f6912ee3dd3..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/000000515077.png and /dev/null differ diff --git a/PaddleCV/yolov3/image/YOLOv3.jpg b/PaddleCV/yolov3/image/YOLOv3.jpg deleted file mode 100644 index 06b81f545247c1d542fd661f947eb0cf3edc480e..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/YOLOv3.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/YOLOv3_structure.jpg b/PaddleCV/yolov3/image/YOLOv3_structure.jpg deleted file mode 100644 index 51bd2d1733e2f78945d3e871cb5b649aad95d633..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/YOLOv3_structure.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/dog.jpg b/PaddleCV/yolov3/image/dog.jpg deleted file mode 100644 index 77b0381222eaed50867643f4166092c781e56d5b..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/dog.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/eagle.jpg b/PaddleCV/yolov3/image/eagle.jpg deleted file mode 100644 index 8b7509505b01a766bbf637dcbb1e2c5f24903ac5..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/eagle.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/giraffe.jpg b/PaddleCV/yolov3/image/giraffe.jpg deleted file mode 100644 index a93e8b88398d94a7454f201372317a9414344c7c..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/giraffe.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/horses.jpg b/PaddleCV/yolov3/image/horses.jpg deleted file mode 100644 index 3a761f46ba08ed459af026b59f6b91b6fa597dd1..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/horses.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/kite.jpg b/PaddleCV/yolov3/image/kite.jpg deleted file mode 100644 index 9eb325ac5fc375cb2513380087dd713be9be19d8..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/kite.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/person.jpg b/PaddleCV/yolov3/image/person.jpg deleted file mode 100644 index 61d377fff94d48c365b0cf18edcd4de38b229465..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/person.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/scream.jpg b/PaddleCV/yolov3/image/scream.jpg deleted file mode 100644 index 43f2c36a8d4df72c4f8621b377944e05f6c1fa08..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/scream.jpg and /dev/null differ diff --git a/PaddleCV/yolov3/image/train_loss.png b/PaddleCV/yolov3/image/train_loss.png deleted file mode 100644 index f16728e95d781d996639a35b54a944e91af6b640..0000000000000000000000000000000000000000 Binary files a/PaddleCV/yolov3/image/train_loss.png and /dev/null differ diff --git a/PaddleCV/yolov3/image_utils.py b/PaddleCV/yolov3/image_utils.py deleted file mode 100644 index 16edd255c395fa814a7cf7041be0175d1bee8bb2..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/image_utils.py +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np -import cv2 -from PIL import Image, ImageEnhance -import random - -import box_utils - - -def random_distort(img): - def random_brightness(img, lower=0.5, upper=1.5): - e = np.random.uniform(lower, upper) - return ImageEnhance.Brightness(img).enhance(e) - - def random_contrast(img, lower=0.5, upper=1.5): - e = np.random.uniform(lower, upper) - return ImageEnhance.Contrast(img).enhance(e) - - def random_color(img, lower=0.5, upper=1.5): - e = np.random.uniform(lower, upper) - return ImageEnhance.Color(img).enhance(e) - - ops = [random_brightness, random_contrast, random_color] - np.random.shuffle(ops) - - img = Image.fromarray(img) - img = ops[0](img) - img = ops[1](img) - img = ops[2](img) - img = np.asarray(img) - - return img - - -def random_crop(img, - boxes, - labels, - scores, - scales=[0.3, 1.0], - max_ratio=2.0, - constraints=None, - max_trial=50): - if len(boxes) == 0: - return img, boxes - - if not constraints: - constraints = [(0.1, 1.0), (0.3, 1.0), (0.5, 1.0), (0.7, 1.0), - (0.9, 1.0), (0.0, 1.0)] - - img = Image.fromarray(img) - w, h = img.size - crops = [(0, 0, w, h)] - for min_iou, max_iou in constraints: - for _ in range(max_trial): - scale = random.uniform(scales[0], scales[1]) - aspect_ratio = random.uniform(max(1 / max_ratio, scale * scale), \ - min(max_ratio, 1 / scale / scale)) - crop_h = int(h * scale / np.sqrt(aspect_ratio)) - crop_w = int(w * scale * np.sqrt(aspect_ratio)) - crop_x = random.randrange(w - crop_w) - crop_y = random.randrange(h - crop_h) - crop_box = np.array([[(crop_x + crop_w / 2.0) / w, - (crop_y + crop_h / 2.0) / h, - crop_w / float(w), crop_h / float(h)]]) - - iou = box_utils.box_iou_xywh(crop_box, boxes) - if min_iou <= iou.min() and max_iou >= iou.max(): - crops.append((crop_x, crop_y, crop_w, crop_h)) - break - - while crops: - crop = crops.pop(np.random.randint(0, len(crops))) - crop_boxes, crop_labels, crop_scores, box_num = \ - box_utils.box_crop(boxes, labels, scores, crop, (w, h)) - if box_num < 1: - continue - img = img.crop((crop[0], crop[1], crop[0] + crop[2], - crop[1] + crop[3])).resize(img.size, Image.LANCZOS) - img = np.asarray(img) - return img, crop_boxes, crop_labels, crop_scores - img = np.asarray(img) - return img, boxes, labels, scores - - -def random_flip(img, gtboxes, thresh=0.5): - if random.random() > thresh: - img = img[:, ::-1, :] - gtboxes[:, 0] = 1.0 - gtboxes[:, 0] - return img, gtboxes - - -def random_interp(img, size, interp=None): - interp_method = [ - cv2.INTER_NEAREST, - cv2.INTER_LINEAR, - cv2.INTER_AREA, - cv2.INTER_CUBIC, - cv2.INTER_LANCZOS4, - ] - if not interp or interp not in interp_method: - interp = interp_method[random.randint(0, len(interp_method) - 1)] - h, w, _ = img.shape - im_scale_x = size / float(w) - im_scale_y = size / float(h) - img = cv2.resize( - img, None, None, fx=im_scale_x, fy=im_scale_y, interpolation=interp) - return img - - -def random_expand(img, - gtboxes, - max_ratio=4., - fill=None, - keep_ratio=True, - thresh=0.5): - if random.random() > thresh: - return img, gtboxes - - if max_ratio < 1.0: - return img, gtboxes - - h, w, c = img.shape - ratio_x = random.uniform(1, max_ratio) - if keep_ratio: - ratio_y = ratio_x - else: - ratio_y = random.uniform(1, max_ratio) - oh = int(h * ratio_y) - ow = int(w * ratio_x) - off_x = random.randint(0, ow - w) - off_y = random.randint(0, oh - h) - - out_img = np.zeros((oh, ow, c)) - if fill and len(fill) == c: - for i in range(c): - out_img[:, :, i] = fill[i] * 255.0 - - out_img[off_y:off_y + h, off_x:off_x + w, :] = img - gtboxes[:, 0] = ((gtboxes[:, 0] * w) + off_x) / float(ow) - gtboxes[:, 1] = ((gtboxes[:, 1] * h) + off_y) / float(oh) - gtboxes[:, 2] = gtboxes[:, 2] / ratio_x - gtboxes[:, 3] = gtboxes[:, 3] / ratio_y - - return out_img.astype('uint8'), gtboxes - - -def shuffle_gtbox(gtbox, gtlabel, gtscore): - gt = np.concatenate( - [gtbox, gtlabel[:, np.newaxis], gtscore[:, np.newaxis]], axis=1) - idx = np.arange(gt.shape[0]) - np.random.shuffle(idx) - gt = gt[idx, :] - return gt[:, :4], gt[:, 4], gt[:, 5] - - -def image_mixup(img1, gtboxes1, gtlabels1, gtscores1, img2, gtboxes2, gtlabels2, - gtscores2): - factor = np.random.beta(1.5, 1.5) - factor = max(0.0, min(1.0, factor)) - if factor >= 1.0: - return img1, gtboxes1, gtlabels1 - if factor <= 0.0: - return img2, gtboxes2, gtlabels2 - gtscores1 = gtscores1 * factor - gtscores2 = gtscores2 * (1.0 - factor) - - h = max(img1.shape[0], img2.shape[0]) - w = max(img1.shape[1], img2.shape[1]) - img = np.zeros((h, w, img1.shape[2]), 'float32') - img[:img1.shape[0], :img1.shape[1], :] = img1.astype('float32') * factor - img[:img2.shape[0], :img2.shape[1], :] += \ - img2.astype('float32') * (1.0 - factor) - gtboxes = np.zeros_like(gtboxes1) - gtlabels = np.zeros_like(gtlabels1) - gtscores = np.zeros_like(gtscores1) - - gt_valid_mask1 = np.logical_and(gtboxes1[:, 2] > 0, gtboxes1[:, 3] > 0) - gtboxes1 = gtboxes1[gt_valid_mask1] - gtlabels1 = gtlabels1[gt_valid_mask1] - gtscores1 = gtscores1[gt_valid_mask1] - gtboxes1[:, 0] = gtboxes1[:, 0] * img1.shape[1] / w - gtboxes1[:, 1] = gtboxes1[:, 1] * img1.shape[0] / h - gtboxes1[:, 2] = gtboxes1[:, 2] * img1.shape[1] / w - gtboxes1[:, 3] = gtboxes1[:, 3] * img1.shape[0] / h - - gt_valid_mask2 = np.logical_and(gtboxes2[:, 2] > 0, gtboxes2[:, 3] > 0) - gtboxes2 = gtboxes2[gt_valid_mask2] - gtlabels2 = gtlabels2[gt_valid_mask2] - gtscores2 = gtscores2[gt_valid_mask2] - gtboxes2[:, 0] = gtboxes2[:, 0] * img2.shape[1] / w - gtboxes2[:, 1] = gtboxes2[:, 1] * img2.shape[0] / h - gtboxes2[:, 2] = gtboxes2[:, 2] * img2.shape[1] / w - gtboxes2[:, 3] = gtboxes2[:, 3] * img2.shape[0] / h - - gtboxes_all = np.concatenate((gtboxes1, gtboxes2), axis=0) - gtlabels_all = np.concatenate((gtlabels1, gtlabels2), axis=0) - gtscores_all = np.concatenate((gtscores1, gtscores2), axis=0) - gt_num = min(len(gtboxes), len(gtboxes_all)) - gtboxes[:gt_num] = gtboxes_all[:gt_num] - gtlabels[:gt_num] = gtlabels_all[:gt_num] - gtscores[:gt_num] = gtscores_all[:gt_num] - return img.astype('uint8'), gtboxes, gtlabels, gtscores - - -def image_augment(img, gtboxes, gtlabels, gtscores, size, means=None): - img = random_distort(img) - img, gtboxes = random_expand(img, gtboxes, fill=means) - img, gtboxes, gtlabels, gtscores = \ - random_crop(img, gtboxes, gtlabels, gtscores) - img = random_interp(img, size) - img, gtboxes = random_flip(img, gtboxes) - gtboxes, gtlabels, gtscores = shuffle_gtbox(gtboxes, gtlabels, gtscores) - - return img.astype('float32'), gtboxes.astype('float32'), \ - gtlabels.astype('int32'), gtscores.astype('float32') diff --git a/PaddleCV/yolov3/infer.py b/PaddleCV/yolov3/infer.py deleted file mode 100644 index e98e75020a931aa10e309dd306fe0558492d3f57..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/infer.py +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import time -import numpy as np -import paddle -import paddle.fluid as fluid -import box_utils -import reader -from utility import print_arguments, parse_args, check_gpu -from models.yolov3 import YOLOv3 -from pycocotools.coco import COCO -from pycocotools.cocoeval import COCOeval, Params -from config import cfg - - -def infer(): - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if not os.path.exists('output'): - os.mkdir('output') - - model = YOLOv3(is_train=False) - model.build_model() - outputs = model.get_pred() - input_size = cfg.input_size - place = fluid.CUDAPlace(0) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - # yapf: disable - if cfg.weights: - def if_exist(var): - return os.path.exists(os.path.join(cfg.weights, var.name)) - fluid.io.load_vars(exe, cfg.weights, predicate=if_exist) - # yapf: enable - - # you can save inference model by following code - # fluid.io.save_inference_model("./output/yolov3", - # feeded_var_names=['image', 'im_shape'], - # target_vars=outputs, - # executor=exe) - - feeder = fluid.DataFeeder(place=place, feed_list=model.feeds()) - fetch_list = [outputs] - image_names = [] - if cfg.image_name is not None: - image_names.append(cfg.image_name) - else: - for image_name in os.listdir(cfg.image_path): - if image_name.split('.')[-1] in ['jpg', 'png']: - image_names.append(image_name) - for image_name in image_names: - infer_reader = reader.infer(input_size, - os.path.join(cfg.image_path, image_name)) - label_names, _ = reader.get_label_infos() - data = next(infer_reader()) - im_shape = data[0][2] - outputs = exe.run(fetch_list=[v.name for v in fetch_list], - feed=feeder.feed(data), - return_numpy=False, - use_program_cache=True) - bboxes = np.array(outputs[0]) - if bboxes.shape[1] != 6: - print("No object found in {}".format(image_name)) - continue - labels = bboxes[:, 0].astype('int32') - scores = bboxes[:, 1].astype('float32') - boxes = bboxes[:, 2:].astype('float32') - - path = os.path.join(cfg.image_path, image_name) - box_utils.draw_boxes_on_image(path, boxes, scores, labels, label_names, - cfg.draw_thresh) - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - infer() diff --git a/PaddleCV/yolov3/learning_rate.py b/PaddleCV/yolov3/learning_rate.py deleted file mode 100644 index d712832d31463cc054b99aa924bf9ca84f976634..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/learning_rate.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import paddle.fluid as fluid -import paddle.fluid.layers.learning_rate_scheduler as lr_scheduler -from paddle.fluid.layers import control_flow - - -def exponential_with_warmup_decay(learning_rate, boundaries, values, - warmup_iter, warmup_factor): - global_step = lr_scheduler._decay_step_counter() - - lr = fluid.layers.create_global_var( - shape=[1], - value=0.0, - dtype='float32', - persistable=True, - name="learning_rate") - - warmup_iter_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(warmup_iter), force_cpu=True) - - with control_flow.Switch() as switch: - with switch.case(global_step < warmup_iter_var): - alpha = global_step / warmup_iter_var - factor = warmup_factor * (1 - alpha) + alpha - decayed_lr = learning_rate * factor - fluid.layers.assign(decayed_lr, lr) - - for i in range(len(boundaries)): - boundary_val = fluid.layers.fill_constant( - shape=[1], - dtype='float32', - value=float(boundaries[i]), - force_cpu=True) - value_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(values[i])) - with switch.case(global_step < boundary_val): - fluid.layers.assign(value_var, lr) - - last_value_var = fluid.layers.fill_constant( - shape=[1], dtype='float32', value=float(values[len(values) - 1])) - with switch.default(): - fluid.layers.assign(last_value_var, lr) - - return lr diff --git a/PaddleCV/yolov3/models/__init__.py b/PaddleCV/yolov3/models/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/PaddleCV/yolov3/models/darknet.py b/PaddleCV/yolov3/models/darknet.py deleted file mode 100644 index 9b9b7dd6c47da0506bf4dcc1ad60a3b563ab9125..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/models/darknet.py +++ /dev/null @@ -1,131 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Constant -from paddle.fluid.regularizer import L2Decay - - -def conv_bn_layer(input, - ch_out, - filter_size, - stride, - padding, - act='leaky', - is_test=True, - name=None): - conv1 = fluid.layers.conv2d( - input=input, - num_filters=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - act=None, - param_attr=ParamAttr( - initializer=fluid.initializer.Normal(0., 0.02), - name=name + ".conv.weights"), - bias_attr=False) - - bn_name = name + ".bn" - out = fluid.layers.batch_norm( - input=conv1, - act=None, - is_test=is_test, - param_attr=ParamAttr( - initializer=fluid.initializer.Normal(0., 0.02), - regularizer=L2Decay(0.), - name=bn_name + '.scale'), - bias_attr=ParamAttr( - initializer=fluid.initializer.Constant(0.0), - regularizer=L2Decay(0.), - name=bn_name + '.offset'), - moving_mean_name=bn_name + '.mean', - moving_variance_name=bn_name + '.var') - if act == 'leaky': - out = fluid.layers.leaky_relu(x=out, alpha=0.1) - return out - - -def downsample(input, - ch_out, - filter_size=3, - stride=2, - padding=1, - is_test=True, - name=None): - return conv_bn_layer( - input, - ch_out=ch_out, - filter_size=filter_size, - stride=stride, - padding=padding, - is_test=is_test, - name=name) - - -def basicblock(input, ch_out, is_test=True, name=None): - conv1 = conv_bn_layer( - input, ch_out, 1, 1, 0, is_test=is_test, name=name + ".0") - conv2 = conv_bn_layer( - conv1, ch_out * 2, 3, 1, 1, is_test=is_test, name=name + ".1") - out = fluid.layers.elementwise_add(x=input, y=conv2, act=None) - return out - - -def layer_warp(block_func, input, ch_out, count, is_test=True, name=None): - res_out = block_func( - input, ch_out, is_test=is_test, name='{}.0'.format(name)) - for j in range(1, count): - res_out = block_func( - res_out, ch_out, is_test=is_test, name='{}.{}'.format(name, j)) - return res_out - - -DarkNet_cfg = {53: ([1, 2, 8, 8, 4], basicblock)} - - -def add_DarkNet53_conv_body(body_input, is_test=True): - stages, block_func = DarkNet_cfg[53] - stages = stages[0:5] - conv1 = conv_bn_layer( - body_input, - ch_out=32, - filter_size=3, - stride=1, - padding=1, - is_test=is_test, - name="yolo_input") - downsample_ = downsample( - conv1, - ch_out=conv1.shape[1] * 2, - is_test=is_test, - name="yolo_input.downsample") - blocks = [] - for i, stage in enumerate(stages): - block = layer_warp( - block_func, - downsample_, - 32 * (2**i), - stage, - is_test=is_test, - name="stage.{}".format(i)) - blocks.append(block) - if i < len(stages) - 1: # do not downsaple in the last stage - downsample_ = downsample( - block, - ch_out=block.shape[1] * 2, - is_test=is_test, - name="stage.{}.downsample".format(i)) - return blocks[-1:-4:-1] diff --git a/PaddleCV/yolov3/models/yolov3.py b/PaddleCV/yolov3/models/yolov3.py deleted file mode 100644 index 0feb2b0e2dfa21b56838cc9f1300a63402054bd0..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/models/yolov3.py +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import division -from __future__ import print_function - -import paddle.fluid as fluid -from paddle.fluid.param_attr import ParamAttr -from paddle.fluid.initializer import Constant -from paddle.fluid.initializer import Normal -from paddle.fluid.regularizer import L2Decay - -from config import cfg - -from .darknet import add_DarkNet53_conv_body -from .darknet import conv_bn_layer - - -def yolo_detection_block(input, channel, is_test=True, name=None): - assert channel % 2 == 0, \ - "channel {} cannot be divided by 2".format(channel) - conv = input - for j in range(2): - conv = conv_bn_layer( - conv, - channel, - filter_size=1, - stride=1, - padding=0, - is_test=is_test, - name='{}.{}.0'.format(name, j)) - conv = conv_bn_layer( - conv, - channel * 2, - filter_size=3, - stride=1, - padding=1, - is_test=is_test, - name='{}.{}.1'.format(name, j)) - route = conv_bn_layer( - conv, - channel, - filter_size=1, - stride=1, - padding=0, - is_test=is_test, - name='{}.2'.format(name)) - tip = conv_bn_layer( - route, - channel * 2, - filter_size=3, - stride=1, - padding=1, - is_test=is_test, - name='{}.tip'.format(name)) - return route, tip - - -def upsample(input, scale=2, name=None): - out = fluid.layers.resize_nearest( - input=input, scale=float(scale), name=name) - return out - - -class YOLOv3(object): - def __init__(self, is_train=True, use_random=True): - self.is_train = is_train - self.use_random = use_random - self.outputs = [] - self.losses = [] - self.downsample = 32 - - def build_input(self): - self.image_shape = [3, cfg.input_size, cfg.input_size] - if self.is_train: - self.py_reader = fluid.layers.py_reader( - capacity=64, - shapes=[[-1] + self.image_shape, [-1, cfg.max_box_num, 4], - [-1, cfg.max_box_num], [-1, cfg.max_box_num]], - lod_levels=[0, 0, 0, 0], - dtypes=['float32'] * 2 + ['int32'] + ['float32'], - use_double_buffer=True) - self.image, self.gtbox, self.gtlabel, self.gtscore = \ - fluid.layers.read_file(self.py_reader) - else: - self.image = fluid.layers.data( - name='image', shape=self.image_shape, dtype='float32') - self.im_shape = fluid.layers.data( - name="im_shape", shape=[2], dtype='int32') - self.im_id = fluid.layers.data( - name="im_id", shape=[1], dtype='int32') - - def feeds(self): - if not self.is_train: - return [self.image, self.im_id, self.im_shape] - return [self.image, self.gtbox, self.gtlabel, self.gtscore] - - def build_model(self): - self.build_input() - - self.outputs = [] - self.boxes = [] - self.scores = [] - - blocks = add_DarkNet53_conv_body(self.image, not self.is_train) - for i, block in enumerate(blocks): - if i > 0: - block = fluid.layers.concat(input=[route, block], axis=1) - route, tip = yolo_detection_block( - block, - channel=512 // (2**i), - is_test=(not self.is_train), - name="yolo_block.{}".format(i)) - - # out channel number = mask_num * (5 + class_num) - num_filters = len(cfg.anchor_masks[i]) * (cfg.class_num + 5) - block_out = fluid.layers.conv2d( - input=tip, - num_filters=num_filters, - filter_size=1, - stride=1, - padding=0, - act=None, - param_attr=ParamAttr( - initializer=fluid.initializer.Normal(0., 0.02), - name="yolo_output.{}.conv.weights".format(i)), - bias_attr=ParamAttr( - initializer=fluid.initializer.Constant(0.0), - regularizer=L2Decay(0.), - name="yolo_output.{}.conv.bias".format(i))) - self.outputs.append(block_out) - - if i < len(blocks) - 1: - route = conv_bn_layer( - input=route, - ch_out=256 // (2**i), - filter_size=1, - stride=1, - padding=0, - is_test=(not self.is_train), - name="yolo_transition.{}".format(i)) - # upsample - route = upsample(route) - - for i, out in enumerate(self.outputs): - anchor_mask = cfg.anchor_masks[i] - - if self.is_train: - loss = fluid.layers.yolov3_loss( - x=out, - gt_box=self.gtbox, - gt_label=self.gtlabel, - gt_score=self.gtscore, - anchors=cfg.anchors, - anchor_mask=anchor_mask, - class_num=cfg.class_num, - ignore_thresh=cfg.ignore_thresh, - downsample_ratio=self.downsample, - use_label_smooth=bool(cfg.label_smooth), - name="yolo_loss" + str(i)) - self.losses.append(fluid.layers.reduce_mean(loss)) - else: - mask_anchors = [] - for m in anchor_mask: - mask_anchors.append(cfg.anchors[2 * m]) - mask_anchors.append(cfg.anchors[2 * m + 1]) - boxes, scores = fluid.layers.yolo_box( - x=out, - img_size=self.im_shape, - anchors=mask_anchors, - class_num=cfg.class_num, - conf_thresh=cfg.valid_thresh, - downsample_ratio=self.downsample, - name="yolo_box" + str(i)) - self.boxes.append(boxes) - self.scores.append( - fluid.layers.transpose( - scores, perm=[0, 2, 1])) - - self.downsample //= 2 - - def loss(self): - return sum(self.losses) - - def get_pred(self): - yolo_boxes = fluid.layers.concat(self.boxes, axis=1) - yolo_scores = fluid.layers.concat(self.scores, axis=2) - return fluid.layers.multiclass_nms( - bboxes=yolo_boxes, - scores=yolo_scores, - score_threshold=cfg.valid_thresh, - nms_top_k=cfg.nms_topk, - keep_top_k=cfg.nms_posk, - nms_threshold=cfg.nms_thresh, - background_label=-1, - name="multiclass_nms") diff --git a/PaddleCV/yolov3/reader.py b/PaddleCV/yolov3/reader.py deleted file mode 100644 index 92a7ac1a59b457076e0c165fb25ca2f30195e092..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/reader.py +++ /dev/null @@ -1,356 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import numpy as np -import os -import sys -import random -import time -import copy -import cv2 -import box_utils -import image_utils -from pycocotools.coco import COCO -from data_utils import GeneratorEnqueuer -from config import cfg -import paddle.fluid as fluid - -class DataSetReader(object): - """A class for parsing and read COCO dataset""" - - def __init__(self): - self.has_parsed_categpry = False - - def _parse_dataset_dir(self, mode): - if 'coco2014' in cfg.dataset: - cfg.train_file_list = 'annotations/instances_train2014.json' - cfg.train_data_dir = 'train2014' - cfg.val_file_list = 'annotations/instances_val2014.json' - cfg.val_data_dir = 'val2014' - elif 'coco2017' in cfg.dataset: - cfg.train_file_list = 'annotations/instances_train2017.json' - cfg.train_data_dir = 'train2017' - cfg.val_file_list = 'annotations/instances_val2017.json' - cfg.val_data_dir = 'val2017' - else: - raise NotImplementedError('Dataset {} not supported'.format( - cfg.dataset)) - - if mode == 'train': - cfg.train_file_list = os.path.join(cfg.data_dir, - cfg.train_file_list) - cfg.train_data_dir = os.path.join(cfg.data_dir, cfg.train_data_dir) - self.COCO = COCO(cfg.train_file_list) - self.img_dir = cfg.train_data_dir - elif mode == 'test' or mode == 'infer': - cfg.val_file_list = os.path.join(cfg.data_dir, cfg.val_file_list) - cfg.val_data_dir = os.path.join(cfg.data_dir, cfg.val_data_dir) - self.COCO = COCO(cfg.val_file_list) - self.img_dir = cfg.val_data_dir - - def _parse_dataset_catagory(self): - self.categories = self.COCO.loadCats(self.COCO.getCatIds()) - self.num_category = len(self.categories) - self.label_names = [] - self.label_ids = [] - for category in self.categories: - self.label_names.append(category['name']) - self.label_ids.append(int(category['id'])) - self.category_to_id_map = {v: i for i, v in enumerate(self.label_ids)} - print("Load in {} categories.".format(self.num_category)) - if self.num_category != cfg.class_num: - raise ValueError("category number({}) in your dataset is not equal " - "to --class_num={} settting, which may incur errors in " - "eval/infer or cause precision loss.".format( - self.num_category, cfg.class_num)) - self.has_parsed_categpry = True - - def get_label_infos(self): - if not self.has_parsed_categpry: - self._parse_dataset_dir("test") - self._parse_dataset_catagory() - return (self.label_names, self.label_ids) - - def _parse_gt_annotations(self, img): - img_height = img['height'] - img_width = img['width'] - anno = self.COCO.loadAnns( - self.COCO.getAnnIds( - imgIds=img['id'], iscrowd=None)) - gt_index = 0 - for target in anno: - if target['area'] < cfg.gt_min_area: - continue - if 'ignore' in target and target['ignore']: - continue - - box = box_utils.coco_anno_box_to_center_relative( - target['bbox'], img_height, img_width) - if box[2] <= 0 and box[3] <= 0: - continue - - img['gt_boxes'][gt_index] = box - img['gt_labels'][gt_index] = \ - self.category_to_id_map[target['category_id']] - gt_index += 1 - if gt_index >= cfg.max_box_num: - break - - def _parse_images(self, is_train): - image_ids = self.COCO.getImgIds() - image_ids.sort() - imgs = copy.deepcopy(self.COCO.loadImgs(image_ids)) - for img in imgs: - img['image'] = os.path.join(self.img_dir, img['file_name']) - assert os.path.exists(img['image']), \ - "image {} not found.".format(img['image']) - box_num = cfg.max_box_num - img['gt_boxes'] = np.zeros((cfg.max_box_num, 4), dtype=np.float32) - img['gt_labels'] = np.zeros((cfg.max_box_num), dtype=np.int32) - for k in ['date_captured', 'url', 'license', 'file_name']: - if k in img: - del img[k] - - if is_train: - self._parse_gt_annotations(img) - - print("Loaded {0} images from {1}.".format(len(imgs), cfg.dataset)) - - return imgs - - def _parse_images_by_mode(self, mode): - if mode == 'infer': - return [] - else: - return self._parse_images(is_train=(mode == 'train')) - - def get_reader(self, - mode, - size=416, - batch_size=None, - shuffle=False, - shuffle_seed=None, - mixup_iter=0, - random_sizes=[], - image=None): - assert mode in ['train', 'test', 'infer'], "Unknow mode type!" - if mode != 'infer': - assert batch_size is not None, \ - "batch size connot be None in mode {}".format(mode) - self._parse_dataset_dir(mode) - self._parse_dataset_catagory() - - def img_reader(img, size, mean, std): - im_path = img['image'] - im = cv2.imread(im_path).astype('float32') - im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) - - h, w, _ = im.shape - im_scale_x = size / float(w) - im_scale_y = size / float(h) - out_img = cv2.resize( - im, - None, - None, - fx=im_scale_x, - fy=im_scale_y, - interpolation=cv2.INTER_CUBIC) - mean = np.array(mean).reshape((1, 1, -1)) - std = np.array(std).reshape((1, 1, -1)) - out_img = (out_img / 255.0 - mean) / std - out_img = out_img.transpose((2, 0, 1)) - - return (out_img, int(img['id']), (h, w)) - - def img_reader_with_augment(img, size, mean, std, mixup_img): - im_path = img['image'] - im = cv2.imread(im_path) - im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) - gt_boxes = img['gt_boxes'].copy() - gt_labels = img['gt_labels'].copy() - gt_scores = np.ones_like(gt_labels) - - if mixup_img: - mixup_im = cv2.imread(mixup_img['image']) - mixup_im = cv2.cvtColor(mixup_im, cv2.COLOR_BGR2RGB) - mixup_gt_boxes = np.array(mixup_img['gt_boxes']).copy() - mixup_gt_labels = np.array(mixup_img['gt_labels']).copy() - mixup_gt_scores = np.ones_like(mixup_gt_labels) - im, gt_boxes, gt_labels, gt_scores = \ - image_utils.image_mixup(im, gt_boxes, gt_labels, - gt_scores, mixup_im, mixup_gt_boxes, - mixup_gt_labels, mixup_gt_scores) - - im, gt_boxes, gt_labels, gt_scores = \ - image_utils.image_augment(im, gt_boxes, gt_labels, - gt_scores, size, mean) - - mean = np.array(mean).reshape((1, 1, -1)) - std = np.array(std).reshape((1, 1, -1)) - out_img = (im / 255.0 - mean) / std - out_img = out_img.astype('float32').transpose((2, 0, 1)) - - return (out_img, gt_boxes, gt_labels, gt_scores) - - def get_img_size(size, random_sizes=[]): - if len(random_sizes): - return np.random.choice(random_sizes) - return size - - def get_mixup_img(imgs, mixup_iter, total_iter, read_cnt): - if total_iter >= mixup_iter: - return None - - mixup_idx = np.random.randint(1, len(imgs)) - mixup_img = imgs[(read_cnt + mixup_idx) % len(imgs)] - return mixup_img - - def reader(): - if mode == 'train': - imgs = self._parse_images_by_mode(mode) - if shuffle: - if shuffle_seed is not None: - np.random.seed(shuffle_seed) - np.random.shuffle(imgs) - read_cnt = 0 - total_iter = 0 - batch_out = [] - img_size = get_img_size(size, random_sizes) - while True: - img = imgs[read_cnt % len(imgs)] - mixup_img = get_mixup_img(imgs, mixup_iter, total_iter, - read_cnt) - read_cnt += 1 - if read_cnt % len(imgs) == 0 and shuffle: - np.random.shuffle(imgs) - im, gt_boxes, gt_labels, gt_scores = \ - img_reader_with_augment(img, img_size, cfg.pixel_means, - cfg.pixel_stds, mixup_img) - batch_out.append([im, gt_boxes, gt_labels, gt_scores]) - - if len(batch_out) == batch_size: - yield batch_out - batch_out = [] - total_iter += 1 - img_size = get_img_size(size, random_sizes) - - elif mode == 'test': - imgs = self._parse_images_by_mode(mode) - batch_out = [] - for img in imgs: - im, im_id, im_shape = img_reader(img, size, cfg.pixel_means, - cfg.pixel_stds) - batch_out.append((im, im_id, im_shape)) - if len(batch_out) == batch_size: - yield batch_out - batch_out = [] - if len(batch_out) != 0: - yield batch_out - else: - img = {} - img['image'] = image - img['id'] = 0 - im, im_id, im_shape = img_reader(img, size, cfg.pixel_means, - cfg.pixel_stds) - batch_out = [(im, im_id, im_shape)] - yield batch_out - - # NOTE: yolov3 is a special model, if num_trainers > 1, each process - # trian the completed dataset. - # num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - # if mode == 'train' and num_trainers > 1: - # assert shuffle_seed is not None, \ - # "If num_trainers > 1, the shuffle_seed must be set, because " \ - # "the order of batch data generated by reader " \ - # "must be the same in the respective processes." - # reader = fluid.contrib.reader.distributed_batch_reader(reader) - - return reader - - -dsr = DataSetReader() - - -def train(size=416, - batch_size=64, - shuffle=True, - shuffle_seed=None, - total_iter=0, - mixup_iter=0, - random_sizes=[], - num_workers=8, - max_queue=32, - use_multiprocess_reader=True): - generator = dsr.get_reader('train', size, batch_size, shuffle, shuffle_seed, - int(mixup_iter / num_workers), random_sizes) - - if not use_multiprocess_reader: - return generator - else: - if sys.platform == "win32": - print("multiprocess is not fully compatible with Windows, " - "you can set --use_multiprocess_reader=False if you " - "are training on Windows and there are errors incured " - "by multiprocess.") - print("multiprocess reader starting up, it takes a while...") - - def infinite_reader(): - while True: - for data in generator(): - yield data - - def reader(): - cnt = 0 - try: - enqueuer = GeneratorEnqueuer( - infinite_reader(), use_multiprocessing=use_multiprocess_reader) - enqueuer.start(max_queue_size=max_queue, workers=num_workers) - generator_out = None - while True: - while enqueuer.is_running(): - if not enqueuer.queue.empty(): - generator_out = enqueuer.queue.get() - break - else: - time.sleep(0.02) - yield generator_out - cnt += 1 - if cnt >= total_iter: - enqueuer.stop() - return - generator_out = None - except Exception as e: - print("Exception occured in reader: {}".format(str(e))) - finally: - if enqueuer: - enqueuer.stop() - - return reader - - -def test(size=416, batch_size=1): - return dsr.get_reader('test', size, batch_size) - - -def infer(size=416, image=None): - return dsr.get_reader('infer', size, image=image) - - -def get_label_infos(): - return dsr.get_label_infos() diff --git a/PaddleCV/yolov3/train.py b/PaddleCV/yolov3/train.py deleted file mode 100644 index 6dab2c80f5021f646b63ec55b242ab255670608e..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/train.py +++ /dev/null @@ -1,226 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import os - - -def set_paddle_flags(flags): - for key, value in flags.items(): - if os.environ.get(key, None) is None: - os.environ[key] = str(value) - - -set_paddle_flags({ - 'FLAGS_eager_delete_tensor_gb': 0, # enable gc - 'FLAGS_memory_fraction_of_eager_deletion': 1, - 'FLAGS_fraction_of_gpu_memory_to_use': 0.98 -}) - -import sys -import numpy as np -import random -import time -import shutil -import subprocess -from utility import (parse_args, print_arguments, - SmoothedValue, check_gpu) - -import paddle -import paddle.fluid as fluid -from paddle.fluid import profiler -import reader -from models.yolov3 import YOLOv3 -from learning_rate import exponential_with_warmup_decay -from config import cfg -import dist_utils - -num_trainers = int(os.environ.get('PADDLE_TRAINERS_NUM', 1)) - -def get_device_num(): - # NOTE(zcd): for multi-processe training, each process use one GPU card. - if num_trainers > 1: - return 1 - return fluid.core.get_cuda_device_count() - - -def train(): - - # check if set use_gpu=True in paddlepaddle cpu version - check_gpu(cfg.use_gpu) - - if cfg.debug or args.enable_ce: - fluid.default_startup_program().random_seed = 1000 - fluid.default_main_program().random_seed = 1000 - random.seed(0) - np.random.seed(0) - - if not os.path.exists(cfg.model_save_dir): - os.makedirs(cfg.model_save_dir) - - model = YOLOv3() - model.build_model() - input_size = cfg.input_size - loss = model.loss() - loss.persistable = True - - devices_num = get_device_num() if cfg.use_gpu else 1 - print("Found {} CUDA/CPU devices.".format(devices_num)) - - learning_rate = cfg.learning_rate - boundaries = cfg.lr_steps - gamma = cfg.lr_gamma - step_num = len(cfg.lr_steps) - values = [learning_rate * (gamma**i) for i in range(step_num + 1)] - - optimizer = fluid.optimizer.Momentum( - learning_rate=exponential_with_warmup_decay( - learning_rate=learning_rate, - boundaries=boundaries, - values=values, - warmup_iter=cfg.warm_up_iter, - warmup_factor=cfg.warm_up_factor), - regularization=fluid.regularizer.L2Decay(cfg.weight_decay), - momentum=cfg.momentum) - optimizer.minimize(loss) - - gpu_id = int(os.environ.get('FLAGS_selected_gpus', 0)) - place = fluid.CUDAPlace(gpu_id) if cfg.use_gpu else fluid.CPUPlace() - exe = fluid.Executor(place) - exe.run(fluid.default_startup_program()) - - if cfg.pretrain: - if not os.path.exists(cfg.pretrain): - print("Pretrain weights not found: {}".format(cfg.pretrain)) - - def if_exist(var): - return os.path.exists(os.path.join(cfg.pretrain, var.name)) - - fluid.io.load_vars(exe, cfg.pretrain, predicate=if_exist) - - build_strategy = fluid.BuildStrategy() - build_strategy.memory_optimize = False #gc and memory optimize may conflict - syncbn = cfg.syncbn - if (syncbn and devices_num <= 1) or num_trainers > 1: - print("Disable syncbn in single device") - syncbn = False - build_strategy.sync_batch_norm = syncbn - - exec_strategy = fluid.ExecutionStrategy() - if cfg.use_gpu and num_trainers > 1: - dist_utils.prepare_for_multi_process(exe, build_strategy, - fluid.default_main_program()) - exec_strategy.num_threads = 1 - - compile_program = fluid.compiler.CompiledProgram(fluid.default_main_program( - )).with_data_parallel( - loss_name=loss.name, - build_strategy=build_strategy, - exec_strategy=exec_strategy) - - random_sizes = [cfg.input_size] - if cfg.random_shape: - random_sizes = [32 * i for i in range(10, 20)] - - total_iter = cfg.max_iter - cfg.start_iter - mixup_iter = total_iter - cfg.no_mixup_iter - - shuffle = True - if args.enable_ce: - shuffle = False - shuffle_seed = None - # NOTE: yolov3 is a special model, if num_trainers > 1, each process - # trian the completed dataset. - # if num_trainers > 1: shuffle_seed = 1 - train_reader = reader.train( - input_size, - batch_size=cfg.batch_size, - shuffle=shuffle, - shuffle_seed=shuffle_seed, - total_iter=total_iter * devices_num, - mixup_iter=mixup_iter * devices_num, - random_sizes=random_sizes, - use_multiprocess_reader=cfg.use_multiprocess_reader, - num_workers=cfg.worker_num) - py_reader = model.py_reader - py_reader.decorate_paddle_reader(train_reader) - - def save_model(postfix): - model_path = os.path.join(cfg.model_save_dir, postfix) - if os.path.isdir(model_path): - shutil.rmtree(model_path) - fluid.io.save_persistables(exe, model_path) - - fetch_list = [loss] - - py_reader.start() - smoothed_loss = SmoothedValue() - try: - start_time = time.time() - prev_start_time = start_time - snapshot_loss = 0 - snapshot_time = 0 - for iter_id in range(cfg.start_iter, cfg.max_iter): - prev_start_time = start_time - start_time = time.time() - losses = exe.run(compile_program, - fetch_list=[v.name for v in fetch_list]) - smoothed_loss.add_value(np.mean(np.array(losses[0]))) - snapshot_loss += np.mean(np.array(losses[0])) - snapshot_time += start_time - prev_start_time - lr = np.array(fluid.global_scope().find_var('learning_rate') - .get_tensor()) - print("Iter {:d}, lr {:.6f}, loss {:.6f}, time {:.5f}".format( - iter_id, lr[0], - smoothed_loss.get_mean_value(), start_time - prev_start_time)) - sys.stdout.flush() - #add profiler tools - if args.is_profiler and iter_id == 5: - profiler.start_profiler("All") - elif args.is_profiler and iter_id == 10: - profiler.stop_profiler("total", args.profiler_path) - return - - if (iter_id + 1) % cfg.snapshot_iter == 0: - save_model("model_iter{}".format(iter_id)) - print("Snapshot {} saved, average loss: {}, \ - average time: {}".format( - iter_id + 1, snapshot_loss / float(cfg.snapshot_iter), - snapshot_time / float(cfg.snapshot_iter))) - if args.enable_ce and iter_id == cfg.max_iter - 1: - if devices_num == 1: - print("kpis\ttrain_cost_1card\t%f" % - (snapshot_loss / float(cfg.snapshot_iter))) - print("kpis\ttrain_duration_1card\t%f" % - (snapshot_time / float(cfg.snapshot_iter))) - else: - print("kpis\ttrain_cost_8card\t%f" % - (snapshot_loss / float(cfg.snapshot_iter))) - print("kpis\ttrain_duration_8card\t%f" % - (snapshot_time / float(cfg.snapshot_iter))) - - snapshot_loss = 0 - snapshot_time = 0 - except fluid.core.EOFException: - py_reader.reset() - - save_model('model_final') - - -if __name__ == '__main__': - args = parse_args() - print_arguments(args) - train() diff --git a/PaddleCV/yolov3/utility.py b/PaddleCV/yolov3/utility.py deleted file mode 100644 index 9d442f4ee79b29691b84ec95b78ccfe76c4c55a0..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/utility.py +++ /dev/null @@ -1,156 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserve. -# -#Licensed under the Apache License, Version 2.0 (the "License"); -#you may not use this file except in compliance with the License. -#You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -#Unless required by applicable law or agreed to in writing, software -#distributed under the License is distributed on an "AS IS" BASIS, -#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -#See the License for the specific language governing permissions and -#limitations under the License. -""" -Contains common utility functions. -""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function -import sys -import distutils.util -import numpy as np -import six -from collections import deque -import paddle.fluid as fluid -import argparse -import functools -from config import * - - -def print_arguments(args): - """Print argparse's arguments. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - parser.add_argument("name", default="Jonh", type=str, help="User name.") - args = parser.parse_args() - print_arguments(args) - - :param args: Input argparse.Namespace for printing. - :type args: argparse.Namespace - """ - print("----------- Configuration Arguments -----------") - for arg, value in sorted(six.iteritems(vars(args))): - print("%s: %s" % (arg, value)) - print("------------------------------------------------") - - -def add_arguments(argname, type, default, help, argparser, **kwargs): - """Add argparse's argument. - - Usage: - - .. code-block:: python - - parser = argparse.ArgumentParser() - add_argument("name", str, "Jonh", "User name.", parser) - args = parser.parse_args() - """ - type = distutils.util.strtobool if type == bool else type - argparser.add_argument( - "--" + argname, - default=default, - type=type, - help=help + ' Default: %(default)s.', - **kwargs) - - -class SmoothedValue(object): - """Track a series of values and provide access to smoothed values over a - window or the global series average. - """ - - def __init__(self): - self.loss_sum = 0.0 - self.iter_cnt = 0 - - def add_value(self, value): - self.loss_sum += np.mean(value) - self.iter_cnt += 1 - - def get_mean_value(self): - return self.loss_sum / self.iter_cnt - - -def check_gpu(use_gpu): - """ - Log error and exit when set use_gpu=True in paddlepaddle - cpu version. - """ - err = "Config use_gpu cannot be set as True while you are " \ - "using paddlepaddle cpu version ! \nPlease try: \n" \ - "\t1. Install paddlepaddle-gpu to run model on GPU \n" \ - "\t2. Set --use_gpu=False to run model on CPU" - - try: - if use_gpu and not fluid.is_compiled_with_cuda(): - print(err) - sys.exit(1) - except Exception as e: - pass - - -def parse_args(): - """return all args - """ - parser = argparse.ArgumentParser(description=__doc__) - add_arg = functools.partial(add_arguments, argparser=parser) - # yapf: disable - # ENV - add_arg('use_gpu', bool, True, "Whether use GPU.") - add_arg('model_save_dir', str, 'checkpoints', "The path to save model.") - add_arg('pretrain', str, 'weights/darknet53', "The pretrain model path.") - add_arg('weights', str, 'weights/yolov3', "The weights path.") - add_arg('dataset', str, 'coco2017', "Dataset: coco2014, coco2017.") - add_arg('class_num', int, 80, "Class number.") - add_arg('data_dir', str, 'dataset/coco', "The data root path.") - add_arg('start_iter', int, 0, "Start iteration.") - add_arg('use_multiprocess_reader', bool, True, "whether use multiprocess reader.") - add_arg('worker_num', int, 8, "worker number for multiprocess reader.") - #SOLVER - add_arg('batch_size', int, 8, "Mini-batch size per device.") - add_arg('learning_rate', float, 0.001, "Learning rate.") - add_arg('max_iter', int, 500200, "Iter number.") - add_arg('snapshot_iter', int, 2000, "Save model every snapshot stride.") - add_arg('label_smooth', bool, True, "Use label smooth in class label.") - add_arg('no_mixup_iter', int, 40000, "Disable mixup in last N iter.") - # TRAIN TEST INFER - add_arg('input_size', int, 608, "Image input size of YOLOv3.") - add_arg('syncbn', bool, True, "Whether to use synchronized batch normalization.") - add_arg('random_shape', bool, True, "Resize to random shape for train reader.") - add_arg('valid_thresh', float, 0.005, "Valid confidence score for NMS.") - add_arg('nms_thresh', float, 0.45, "NMS threshold.") - add_arg('nms_topk', int, 400, "The number of boxes to perform NMS.") - add_arg('nms_posk', int, 100, "The number of boxes of NMS output.") - add_arg('debug', bool, False, "Debug mode") - # SINGLE EVAL AND DRAW - add_arg('image_path', str, 'image', - "The image path used to inference and visualize.") - add_arg('image_name', str, None, - "The single image used to inference and visualize. None to inference all images in image_path") - add_arg('draw_thresh', float, 0.5, - "Confidence score threshold to draw prediction box in image in debug mode") - add_arg('enable_ce', bool, False, "If set True, enable continuous evaluation job.") - # args for profiler tools - add_arg('is_profiler', int, 0, "the switch of profiler") - add_arg('profiler_path', str, './', "the path to save profiler output files") - # yapf: enable - args = parser.parse_args() - file_name = sys.argv[0] - merge_cfg_from_args(args) - return args diff --git a/PaddleCV/yolov3/weights/download.sh b/PaddleCV/yolov3/weights/download.sh deleted file mode 100644 index 44295ab53ef428ba664bf0b73a61e469c643690a..0000000000000000000000000000000000000000 --- a/PaddleCV/yolov3/weights/download.sh +++ /dev/null @@ -1,10 +0,0 @@ -DIR="$( cd "$(dirname "$0")" ; pwd -P )" -cd "$DIR" - -# Download the pretrain weights. -echo "Downloading..." -wget https://paddlemodels.bj.bcebos.com/yolo/darknet53.tar.gz -wget https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz -echo "Extracting..." -tar -xf darknet53.tar.gz -tar -xf yolov3.tar.gz