diff --git a/ppsmrt/DataAnalysis.md b/ppsmrt/DataAnalysis.md new file mode 100644 index 0000000000000000000000000000000000000000..66da22f43d9ba9494c35ee0fa0285aa45099399f --- /dev/null +++ b/ppsmrt/DataAnalysis.md @@ -0,0 +1,68 @@ +# 数据分析功能说明 + +为了更好的帮助用户进行数据分析,从推荐更合适的模型,我们推出了**数据分析**功能,用户不需要上传原图,只需要上传标注好的文件格式即可进一步分析数据特点。 + +当前支持格式有: +* LabelMe标注数据格式 +* 精灵标注数据格式 +* LabelImg标注数据格式 +* VOC数据格式 +* COCO数据格式 +* Seg数据格式 + +## LabelMe标注数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中的内容为与标注图像相同数量的json文件,每一个json文件除后缀外与对应的图像同名。 +2. 支持检测与分割任务。若提供的标注信息与所选择的任务类型不匹配,则将提示错误。 +3. 对于检测任务,需提供rectangle类型标注信息;对于分割任务,需提供polygon类型标注信息。 +
+ +
+ +## 精灵标注数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中的内容为与标注图像相同数量的json文件,每一个json文件除后缀外与对应的图像同名。 +2. 支持检测与分割任务。若提供的标注信息与所选择的任务类型不匹配,则将提示错误。 +3. 对于检测任务,需提供bndbox或polygon类型标注信息;对于分割任务,需提供polygon类型标注信息。 +
+ +
+ +## LabelImg标注数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中的内容为与标注图像相同数量的xml文件,每一个xml文件除后缀外与对应的图像同名。 +2. 仅支持检测任务。 +3. 标注文件中必须提供bndbox字段信息;segmentation字段是可选的。 + +
+ +
+ +## VOC数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中的内容为与标注图像相同数量的xml文件,每一个xml文件除后缀外与对应的图像同名。 +2. 仅支持检测任务。 +3. 标注文件中必须提供bndbox字段信息;segmentation字段是可选的。 +
+ +
+ +## COCO数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中仅存在一个名为annotation.json的文件。 +2. 支持检测与分割任务。若提供的标注信息与所选择的任务类型不匹配,则将提示错误。 +3. 对于检测任务,标注文件中必须包含bbox字段,segmentation字段是可选的;对于分割任务,标注文件中必须包含segmentation字段。 +
+ +
+ + +## Seg数据格式 + +1. 需要选定包含标注文件的zip格式压缩包。zip格式压缩包中包含一个annotations文件夹,文件夹中的内容为与标注图像相同数量的png文件,每一个png文件除后缀外与对应的图像同名。 +2. 仅支持分割任务。 +3. 标注文件需要与原始图像在像素上严格保持一一对应,格式只可为png(后缀为.png或.PNG)。标注文件中的每个像素值为[0,255]区间内从0开始依序递增的整数ID,除255外,标注ID值的增加不能跳跃。在标注文件中,使用255表示需要忽略的像素,使用0表示背景类标注。 + +
+ +
diff --git a/ppsmrt/README.md b/ppsmrt/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1fd41c5374f30a3a09894a56209a6c8bf39c2325 --- /dev/null +++ b/ppsmrt/README.md @@ -0,0 +1,212 @@ +# 飞桨产业模型选型工具PP-SMRT + +## 一、项目介绍 + +PP-SMRT (PaddlePaddle Sense Model Recommend Tool) 是飞桨结合产业落地经验推出的产业模型选型工具,在项目落地过程中,用户根据自身的实际情况,输入自己的需求,即可以得到对应在算法模型、部署硬件以及教程文档的信息。同时为了更加精准的推荐,增加了数据分析功能,用户上传自己的标注文件,系统可以自动分析数据特点,例如数据分布不均衡、小目标、密集型等,从而提供更加精准的模型以及优化策略,更好的符合场景的需求。 + +PP-SMRT用户图 + +本文档主要介绍PP-SMRT在检测方向上是如何进行模型选型推荐,以及推荐模型的使用方法。分割方向模型介绍请参考[文档](https://github.com/PaddlePaddle/PaddleSeg) + +## 二、数据介绍 + +PP-SMRT结合产业真实场景,通过比较检测算法效果,向用户推荐最适合的模型。目前PP-SMRT覆盖工业质检、城市安防两大场景,下面介绍PP-SMRT进行算法对比所使用的数据集 + +### 1. 新能源电池质检数据集 + +数据集为新能源电池电池组件质检数据集,包含15021张图片,包含22045个标注框,覆盖45种缺陷类型,例如掉胶,裂纹,划痕等。 + +新能源电池数据展示图: + +
+ + +
+ +数据集特点为: + +1. 类别分布均衡 +2. 属于小目标数据 +3. 非密集型数据 + +### 2. 铝件质检数据集 + +数据集为铝件生产过程中的质检数据集,包含11293张图片,包含43157个标注框,覆盖5种缺陷类型,例如划伤,压伤,起皮等。 + +铝件质检数据展示图: + +
+ + +
+ + +数据集特点为: + +1. 类别分布不均衡 +2. 属于小目标数据 +3. 非密集型数据 + + +### 3. 人车数据集 + +数据集包含2600张人工标注的两点anchor box标签。标签包括以下人和车的类别共22种: +其中行人包括普通行人、3D 假人、坐着的人、骑车的人;车辆包括两厢车、三厢车、小型客车、小货车、皮卡车、轻卡、厢式货车、牵引车、水泥车、工程车辆、校车、中小型客车、大型单层客车、小型电动车、摩托车、自行车、三轮车以及其它特殊车辆。 + +人车数据展示图: + +
+ + +
+ + +数据集特点为: + +1. 类别分布不均衡 +2. 属于小目标数据 +3. 非密集型数据 + +**说明:** + +数据集特点判断依据如下: + +- 数据分布不均衡:采样1000张图片,不同类别样本个数标准差大于400 +- 小目标数据集:相对大小小于0.1或绝对大小小于32像素的样本个数比例大于30% +- 密集型数据集: + +``` + 密集目标定义:周围目标距离小于自身大小两倍的个数大于2; + + 密集图片定义:密集目标个数占图片目标总数50%以上; + + 密集数据集定义:密集图片个数占总个数30%以上 + +``` + +以上数据集特点通过数据分析工具实现,当前支持多种检测、分割数据标注格式,详细文档说明请参考[链接](DataAnalysis.md) + +## 三、推荐模型使用全流程 + +通过模型选型工具会得到对应场景和数据特点的检测模型配置,例如[PP-YOLOE](./configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml) + +该配置文件的使用方法如下 + +### 1. 环境配置 + +首先需要安装PaddlePaddle + +```bash +# CUDA10.2 +pip install paddlepaddle-gpu==2.2.2 -i https://mirror.baidu.com/pypi/simple + +# CPU +pip install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple +``` + +然后安装PaddleDetection和相关依赖 + +```bash +# 克隆PaddleDetection仓库 +cd +git clone https://github.com/PaddlePaddle/PaddleDetection.git + +# 安装其他依赖 +cd PaddleDetection +pip install -r requirements.txt +``` + +详细安装文档请参考[文档](../docs/tutorials/INSTALL_cn.md) + +### 2. 数据准备 + +用户需要准备训练数据集,建议标注文件使用COCO数据格式。如果使用lableme或者VOC数据格式,先使用[格式转换脚本](../tools/x2coco.py)将标注格式转化为COCO,详细数据准备文档请参考[文档](../docs/tutorials/PrepareDataSet.md) + +本文档以新能源电池工业质检子数据集为例展开,数据下载[链接](https://bj.bcebos.com/v1/paddle-smrt/data/battery_mini.zip) + +数据储存格式如下: + +``` +battery_mini +├── annotations +│   ├── test.json +│   └── train.json +└── images + ├── Board_daowen_101.png + ├── Board_daowen_109.png + ├── Board_daowen_117.png + ... +``` + + + +### 3. 模型训练/评估/预测 + +使用经过模型选型工具推荐的模型进行训练,目前所推荐的模型均使用**单卡训练**,可以在训练的过程中进行评估,模型默认保存在`./output`下 + +```bash +python tools/train.py -c configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml --eval +``` + +如果训练过程出现中断,可以使用-r命令恢复训练 + +```bash +python tools/train.py -c configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml --eval -r output/ppyoloe_crn_m_300e_battery_1024/9.pdparams +``` + +如果期望单独评估模型训练精度,可以使用`tools/eval.py` + +```bash +python tools/eval.py -c configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml -o weights=output/ppyoloe_crn_m_300e_battery_1024/model_final.pdparams +``` + +完成训练后,可以使用`tools/infer.py`可视化训练效果 + +```bash +python tools/infer.py -c configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml -o weights=output/ppyoloe_crn_m_300e_battery_1024/model_final.pdparams --infer_img=images/Board_diaojiao_1591.png +``` + +更多模型训练参数请参考[文档](../docs/tutorials/GETTING_STARTED_cn.md) + +### 4. 模型导出部署 + +完成模型训练后,需要将模型部署到1080Ti,2080Ti或其他服务器设备上,使用Paddle Inference完成C++部署 + +首先需要将模型导出为部署时使用的模型和配置文件 + +```bash +python tools/export_model.py -c configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml -o weights=output/ppyoloe_crn_m_300e_battery_1024/model_final.pdparams +``` + +接下来可以使用PaddleDetection中的部署代码实现C++部署,详细步骤请参考[文档](../deploy/cpp/README.md) + +如果期望使用可视化界面的方式进行部署,可以参考下面部分的内容。 + +## 四、部署demo + +为了更方便大家部署,我们也提供了完备的可视化部署Demo,欢迎尝试使用 + +* [Windows Demo下载地址](https://github.com/PaddlePaddle/PaddleX/tree/develop/deploy/cpp/docs/csharp_deploy) + +
+ +
+ +* [Linux Demo下载地址](https://github.com/cjh3020889729/The-PaddleX-QT-Visualize-GUI) + +
+ +
+ +## 五、场景范例 + +为了更方便大家更好的进行产业落地,PP-SMRT也提供了详细的应用范例,欢迎大家使用。 + +* 工业视觉 + * [工业缺陷检测](https://aistudio.baidu.com/aistudio/projectdetail/2598319) + * [表计读数](https://aistudio.baidu.com/aistudio/projectdetail/2598327) + * [钢筋计数](https://aistudio.baidu.com/aistudio/projectdetail/2404188) +* 城市 + * [行人计数](https://aistudio.baidu.com/aistudio/projectdetail/2421822) + * [车辆计数](https://aistudio.baidu.com/aistudio/projectdetail/3391734?contributionType=1) + * [安全帽检测](https://aistudio.baidu.com/aistudio/projectdetail/3944737?contributionType=1) diff --git a/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_battery.yml b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..601dd1915ee65fb452340c783be8ca1cab905ce1 --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_battery.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_1024_coco_lcnet_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_lvjian1.yml b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..734f1bee70ce4c2708f846af4d10e350fa6a329f --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_lvjian1.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_1024_coco_lcnet_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_renche.yml b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..cdebd4ba4ae55e40c940b230bd61528a39fe0fcf --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_1024_coco_lcnet_renche.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_1024_coco_lcnet_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_battery.yml b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..8200439dc928fea3d0c091d98acee30117a33be1 --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_battery.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_640_coco_lcnet_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_lvjian1.yml b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..6000902f03363a5763e7c26fd38565f85dcb2388 --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_lvjian1.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_640_coco_lcnet_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: /paddle/dataset/model-select/gongye/lvjian1/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: /paddle/dataset/model-select/gongye/lvjian1/slice_lvjian1_data/eval/ + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_renche.yml b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..fc1ce195ea4c5dce2bb60358f0509eb5e01a50c4 --- /dev/null +++ b/ppsmrt/configs/picodet/picodet_l_640_coco_lcnet_renche.yml @@ -0,0 +1,162 @@ +weights: output/picodet_l_640_coco_lcnet_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/picodet_l_640_coco_lcnet.pdparams + +worker_num: 2 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 50 +LearningRate: + base_lr: 0.006 + schedulers: + - !CosineDecay + max_epochs: 50 + - !LinearWarmup + start_factor: 0.001 + steps: 300 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomCrop: {} + - RandomFlip: {prob: 0.5} + - RandomDistort: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 8 + shuffle: false + + +TestReader: + inputs_def: + image_shape: [1, 3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: *eval_size, keep_ratio: False} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_size: 1 + + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 10 +print_flops: false +find_unused_parameters: True +use_ema: true + + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.00004 + type: L2 + +architecture: PicoDet + +PicoDet: + backbone: LCNet + neck: LCPAN + head: PicoHeadV2 + +LCNet: + scale: 2.0 + feature_maps: [3, 4, 5] + +LCPAN: + out_channels: 160 + use_depthwise: True + num_features: 4 + +PicoHeadV2: + conv_feat: + name: PicoFeat + feat_in: 160 + feat_out: 160 + num_convs: 4 + num_fpn_stride: 4 + norm_type: bn + share_cls_reg: True + use_se: True + fpn_stride: [8, 16, 32, 64] + feat_in_chan: 160 + prior_prob: 0.01 + reg_max: 7 + cell_offset: 0.5 + grid_cell_scale: 5.0 + static_assigner_epoch: 100 + use_align_head: True + static_assigner: + name: ATSSAssigner + topk: 9 + force_gt_matching: False + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + loss_class: + name: VarifocalLoss + use_sigmoid: False + iou_weighted: True + loss_weight: 1.0 + loss_dfl: + name: DistributionFocalLoss + loss_weight: 0.5 + loss_bbox: + name: GIoULoss + loss_weight: 2.5 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.025 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..507d0088cbc343e7ca281f8c8f54aa169e135a43 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery.yml @@ -0,0 +1,154 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json # also support txt (like VOC's label_list.txt) + dataset_dir: dataset/battery_mini # if set, anno_path will be 'dataset_dir/anno_path' + + +epoch: 40 +LearningRate: + base_lr: 0.0001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + +snapshot_epoch: 5 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.4 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..cd8b6d49f2d5b3a2de4a72e8bfe2064bcfcfc4a7 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_battery_1024.yml @@ -0,0 +1,154 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json # also support txt (like VOC's label_list.txt) + dataset_dir: dataset/battery_mini # if set, anno_path will be 'dataset_dir/anno_path' + + +epoch: 40 +LearningRate: + base_lr: 0.0001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + +snapshot_epoch: 5 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.4 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..0c09049a60423464a8c14666f7c86098564482d8 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_1024.yml @@ -0,0 +1,155 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + + +epoch: 20 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]], anchors: [[8, 7], [24, 12], [14, 25], [37, 35], [30, 140], [89, 52], [93, 189], [226, 99], [264, 352]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + anchors: [[8, 7], [24, 12], [14, 25], + [37, 35], [30, 140], [89, 52], + [93, 189], [226, 99], [264, 352]] + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_640.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_640.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7dc75f975efdbd08ae4f96ce2f54cc55a4569f4 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_lvjian1_640.yml @@ -0,0 +1,155 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + + +epoch: 20 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]], anchors: [[8, 7], [24, 12], [14, 25], [37, 35], [30, 140], [89, 52], [93, 189], [226, 99], [264, 352]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + anchors: [[8, 7], [24, 12], [14, 25], + [37, 35], [30, 140], [89, 52], + [93, 189], [226, 99], [264, 352]] + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..96ab192171798f7947ee857b8291152e5933c57a --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_1024.yml @@ -0,0 +1,156 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: dataset/renche/test.json + + +epoch: 100 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 8 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_640.yml b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_640.yml new file mode 100644 index 0000000000000000000000000000000000000000..ccc2162de1c995fdede25ccfa337d6136d14b3df --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r101vd_dcn_365e_renche_640.yml @@ -0,0 +1,156 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r101vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: dataset/renche/test.json + + +epoch: 100 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 8 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 101 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..e886dd6c10bd03bcb2ef64f1a5f54ba0e923efcc --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery.yml @@ -0,0 +1,154 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json # also support txt (like VOC's label_list.txt) + dataset_dir: dataset/battery_mini # if set, anno_path will be 'dataset_dir/anno_path' + + +epoch: 40 +LearningRate: + base_lr: 0.0001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + +snapshot_epoch: 5 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.4 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..d3b7ac28fc68dfb85c0bd0d67f61b77b844bd034 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_battery_1024.yml @@ -0,0 +1,154 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json # also support txt (like VOC's label_list.txt) + dataset_dir: dataset/battery_mini # if set, anno_path will be 'dataset_dir/anno_path' + + +epoch: 40 +LearningRate: + base_lr: 0.0001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + +snapshot_epoch: 5 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.4 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..6138e875e83a9a91708159b7f99e692c901f4f1b --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_1024.yml @@ -0,0 +1,155 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + + +epoch: 20 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]], anchors: [[8, 7], [24, 12], [14, 25], [37, 35], [30, 140], [89, 52], [93, 189], [226, 99], [264, 352]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + anchors: [[8, 7], [24, 12], [14, 25], + [37, 35], [30, 140], [89, 52], + [93, 189], [226, 99], [264, 352]] + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_640.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_640.yml new file mode 100644 index 0000000000000000000000000000000000000000..5da1090006a2e1ba967c0870ba7311306ec1a164 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_lvjian1_640.yml @@ -0,0 +1,155 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + + +epoch: 20 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 2 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]], anchors: [[8, 7], [24, 12], [14, 25], [37, 35], [30, 140], [89, 52], [93, 189], [226, 99], [264, 352]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + anchors: [[8, 7], [24, 12], [14, 25], + [37, 35], [30, 140], [89, 52], + [93, 189], [226, 99], [264, 352]] + anchor_masks: [[6, 7, 8], [3, 4, 5], [0, 1, 2]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_1024.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..611ea34a6b6bed018698f7c2fc7f1e6cf6528988 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_1024.yml @@ -0,0 +1,156 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: dataset/renche/test.json + + +epoch: 100 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 8 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 1024, 1024] + sample_transforms: + - Decode: {} + - Resize: {target_size: [1024, 1024], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_640.yml b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_640.yml new file mode 100644 index 0000000000000000000000000000000000000000..37fb675f0acc4585f5ded137db46473b57c517c0 --- /dev/null +++ b/ppsmrt/configs/ppyolo/ppyolov2_r50vd_dcn_365e_renche_640.yml @@ -0,0 +1,156 @@ +architecture: YOLOv3 +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyolov2_r50vd_dcn_365e_coco.pdparams +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/coco/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/coco/renche + +TestDataset: + !ImageFolder + anno_path: dataset/coco/renche/test.json + + +epoch: 100 +LearningRate: + base_lr: 0.0002 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: + - 80 + - !LinearWarmup + start_factor: 0. + steps: 1000 + + +snapshot_epoch: 3 +worker_num: 8 +TrainReader: + inputs_def: + num_max_boxes: 100 + sample_transforms: + - Decode: {} + - RandomDistort: {} + - RandomExpand: {fill_value: [123.675, 116.28, 103.53]} + - RandomCrop: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [576, 608, 640, 672, 704], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeBox: {} + - PadBox: {num_max_boxes: 100} + - BboxXYXY2XYWH: {} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - Gt2YoloTarget: {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]], downsample_ratios: [32, 16, 8]} + batch_size: 2 + shuffle: true + drop_last: true + use_shared_memory: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 8 + +TestReader: + inputs_def: + image_shape: [3, 640, 640] + sample_transforms: + - Decode: {} + - Resize: {target_size: [640, 640], keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + + +OptimizerBuilder: + clip_grad_by_norm: 35. + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + + +YOLOv3: + backbone: ResNet + neck: PPYOLOPAN + yolo_head: YOLOv3Head + post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + return_idx: [1, 2, 3] + dcn_v2_stages: [3] + freeze_at: -1 + freeze_norm: false + norm_decay: 0. + +PPYOLOPAN: + drop_block: true + block_size: 3 + keep_prob: 0.9 + spp: true + +YOLOv3Head: + 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]] + loss: YOLOv3Loss + iou_aware: true + iou_aware_factor: 0.5 + +YOLOv3Loss: + ignore_thresh: 0.7 + downsample: [32, 16, 8] + label_smooth: false + scale_x_y: 1.05 + iou_loss: IouLoss + iou_aware_loss: IouAwareLoss + +IouLoss: + loss_weight: 2.5 + loss_square: true + +IouAwareLoss: + loss_weight: 1.0 + +BBoxPostProcess: + decode: + name: YOLOBox + conf_thresh: 0.01 + downsample_ratio: 32 + clip_bbox: true + scale_x_y: 1.05 + nms: + name: MatrixNMS + keep_top_k: 100 + score_threshold: 0.01 + post_threshold: 0.01 + nms_top_k: -1 + background_label: -1 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..bc58d999cabfdfb8f2252ca0e34c73e118ba70e9 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [512, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..027e38e202eaff50e69ac0d3204541d5ae7a08a6 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_battery_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_battery_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..272caf679a296cb4375e3628aa070fd71cec9931 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.001 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 1 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..38a14259f54dd7a515aa68e5a5f7a79909f5a40b --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_lvjian1_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_lvjian1_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.001 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 1 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..80c7bac76453e407d743a4e677257ebd4e2505b3 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [512, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..2151ecf711c0f52560f9318085f0fee2de7b8a85 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_l_300e_renche_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_l_300e_renche_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams +depth_mult: 1.0 +width_mult: 1.0 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..8902f32ec42da89643b85f0743799555c3abc8ec --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..f244c1dd13381d360440a1c7705c8f5f81abf576 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_battery_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_battery_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..7563756955b97f722a9c099dfb8ce57a90b6c6f7 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.002 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 16 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 1 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..d15e07f8e88cd1f9d592296e71cc587a6e6892ef --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_lvjian1_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_lvjian1_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.0015 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..a65cbdf540bd9e48800610516e0978d9f51b2c41 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..0427b81d4f8eeca71f6245a583f0f0a2d99f3569 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_m_300e_renche_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_m_300e_renche_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_m_300e_coco.pdparams +depth_mult: 0.67 +width_mult: 0.75 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: /paddle/dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: /paddle/dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: /paddle/dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ef01cfc633414a9e4f71bbfc656a116c76fc7bf --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [512, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..42d30e00ff940b49b778306fa45562cf87f36396 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_battery_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_battery_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian1.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..b6155305fc4233b1c754dae4f2bb6cc368aa55f8 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian1.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.002 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 16 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 1 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..72a184127f10d32176a90bd0045d20a6d88457fa --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_lvjian_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_lvjian1_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.003 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 16 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..df1939153b2672222fd9f3589da89ac3aa1a5a93 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [12, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..07310a067794e789bd58172381cfecf37a1b3f03 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_s_300e_renche_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_s_300e_renche_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_300e_coco.pdparams +depth_mult: 0.33 +width_mult: 0.50 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..ba94ad254319fa8fa2ca1cb3b982c7f4b5508c5f --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [512, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..961d7823a32e8ee377274f1bf65399ab21b5a321 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_battery_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_battery_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..7a47aded5e8cea1ded2d916509f54d53157dd7be --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.001 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 8 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 1 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..c1e70d2198f2af380c5cc9ab80704a9861f11c00 --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_lvjian1_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 2 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..be3f79044af32b12bba0e5aa13059585fd65d9ab --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 4 +eval_height: &eval_height 640 +eval_width: &eval_width 640 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [512, 544, 576, 608, 640, 672, 704, 736, 768], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche_1024.yml b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche_1024.yml new file mode 100644 index 0000000000000000000000000000000000000000..250251c32504ced54291d2b5449e1ffdafb8b3ea --- /dev/null +++ b/ppsmrt/configs/ppyoloe/ppyoloe_crn_x_300e_renche_1024.yml @@ -0,0 +1,140 @@ +weights: output/ppyoloe_crn_x_300e_renche_1024/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_x_300e_coco.pdparams +depth_mult: 1.33 +width_mult: 1.25 + +worker_num: 4 +eval_height: &eval_height 1024 +eval_width: &eval_width 1024 +eval_size: &eval_size [*eval_height, *eval_width] + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 30 +LearningRate: + base_lr: 0.0005 + schedulers: + - !CosineDecay + max_epochs: 36 + - !LinearWarmup + start_factor: 0. + epochs: 3 + +TrainReader: + sample_transforms: + - Decode: {} + - RandomFlip: {} + batch_transforms: + - BatchRandomResize: {target_size: [960, 992, 1024, 1056, 1088], random_size: True, random_interp: True, keep_ratio: False} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + - PadGT: {} + batch_size: 4 + shuffle: true + drop_last: true + use_shared_memory: true + collate_batch: true + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 2 + +TestReader: + inputs_def: + image_shape: [3, *eval_height, *eval_width] + sample_transforms: + - Decode: {} + - Resize: {target_size: *eval_size, keep_ratio: False, interp: 2} + - NormalizeImage: {mean: [0.485, 0.456, 0.406], std: [0.229, 0.224, 0.225], is_scale: True} + - Permute: {} + batch_size: 1 + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false + +# Exporting the model +export: + post_process: True # Whether post-processing is included in the network when export model. + nms: True # Whether NMS is included in the network when export model. + benchmark: False # It is used to testing model performance, if set `True`, post-process and NMS will not be exported. + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0005 + type: L2 + +architecture: YOLOv3 +norm_type: sync_bn +use_ema: true +ema_decay: 0.9998 + +YOLOv3: + backbone: CSPResNet + neck: CustomCSPPAN + yolo_head: PPYOLOEHead + post_process: ~ + +CSPResNet: + layers: [3, 6, 6, 3] + channels: [64, 128, 256, 512, 1024] + return_idx: [1, 2, 3] + use_large_stem: True + +CustomCSPPAN: + out_channels: [768, 384, 192] + stage_num: 1 + block_num: 3 + act: 'swish' + spp: true + +PPYOLOEHead: + fpn_strides: [32, 16, 8] + grid_cell_scale: 5.0 + grid_cell_offset: 0.5 + static_assigner_epoch: 100 + use_varifocal_loss: True + loss_weight: {class: 1.0, iou: 2.5, dfl: 0.5} + static_assigner: + name: ATSSAssigner + topk: 9 + assigner: + name: TaskAlignedAssigner + topk: 13 + alpha: 1.0 + beta: 6.0 + nms: + name: MultiClassNMS + nms_top_k: 1000 + keep_top_k: 100 + score_threshold: 0.01 + nms_threshold: 0.6 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..128328bf3853bff327b47bb1945908c338b3dcb8 --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [1350,1425,1500,1575,1650], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..c6b4b8ce5c6ef099f9ba3ef9e603ddc4e273e413 --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [1350,1425,1500,1575,1650], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..ef11461339080740eb3ac2414eda709f10b00ddb --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_1500_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [1350,1425,1500,1575,1650], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..20025b07da573fbb7cff5936c50509358b85aa99 --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_800_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..6e0352a1952c58a3d168787364f0b2b77fede322 --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..448b65db663322476f7f0db79fcd5e6a52982720 --- /dev/null +++ b/ppsmrt/configs/rcnn/cascade_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml @@ -0,0 +1,168 @@ +weights: output/cascade_rcnn_r50_vd_fpn_ssld_2x_800_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/cascade_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.00025 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [12, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: 32} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 5 +print_flops: false +find_unused_parameters: True + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + +architecture: CascadeRCNN + +CascadeRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: CascadeHead + # post process + bbox_post_process: BBoxPostProcess + +ResNet: + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 2000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +CascadeHead: + head: CascadeTwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + cascade_iou: [0.5, 0.6, 0.7] + use_random: True + +CascadeTwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: + name: RCNNBox + prior_box_var: [30.0, 30.0, 15.0, 15.0] + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_battery.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..7e6b8871b9525a0f6775266298872178cf5b49aa --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_battery.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_1500_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_lvjian1.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..190ed8fa183656127445602792df861b8018e938 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_lvjian1.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_1500_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_renche.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..947c6e43bc6ff42f150566b7ef1e9713cd749926 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_1500_renche.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_1500_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_battery.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..148a0459e8e8f5aea9b74d1e943852c82f524127 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_battery.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_800_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_lvjian1.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..9362638d3f05b30c2274e199410e7fa509e0eb10 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_lvjian1.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_800_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_renche.yml b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..bf881d55a0808df85739784270373e1ada4d9f3a --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r101_vd_fpn_ssld_2x_800_renche.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r101_vd_fpn_ssld_2x_800_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r101_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 101 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..688ea9bfdf6160715343d18c5b9ea83a27b6bc8e --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_battery.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_1500_battery/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..4b7d8e7d85a3cf61aadf2bfb276f1d325a712808 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_1500_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..39eca1f8ee87f21026ee483dc6c69e6f30ac9bf7 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_1500_renche.yml @@ -0,0 +1,166 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_1500_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[800, 800], [900, 900], [1000, 1000], [1200, 1200], [1400, 1400], [1500, 1500]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [1500, 1500], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml new file mode 100644 index 0000000000000000000000000000000000000000..7a982c06df9f32675c3de251f96e0b6477ea0943 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_battery.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 45 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: annotations/train.json + dataset_dir: dataset/battery_mini + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +TestDataset: + !ImageFolder + anno_path: annotations/test.json + dataset_dir: dataset/battery_mini + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml new file mode 100644 index 0000000000000000000000000000000000000000..39020c77e8ef1d47e9b3df08417f7f4c6a765249 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_800_lvjian1/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 5 + +TrainDataset: + !COCODataSet + image_dir: images + anno_path: train.json + dataset_dir: dataset/slice_lvjian1_data/train/ + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: images + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +TestDataset: + !ImageFolder + anno_path: val.json + dataset_dir: dataset/slice_lvjian1_data/eval + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml new file mode 100644 index 0000000000000000000000000000000000000000..e27315c3572f3c89f1f98fc250e50a3d23661250 --- /dev/null +++ b/ppsmrt/configs/rcnn/faster_rcnn_r50_vd_fpn_ssld_2x_800_renche.yml @@ -0,0 +1,167 @@ +weights: output/faster_rcnn_r50_vd_fpn_ssld_2x_800_renche/model_final +pretrain_weights: https://paddledet.bj.bcebos.com/models/faster_rcnn_r50_vd_fpn_ssld_2x_coco.pdparams + +metric: COCO +num_classes: 22 + +TrainDataset: + !COCODataSet + image_dir: train_images + anno_path: train.json + dataset_dir: dataset/renche + data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd'] + +EvalDataset: + !COCODataSet + image_dir: train_images + anno_path: test.json + dataset_dir: dataset/renche + +TestDataset: + !ImageFolder + anno_path: test.json + dataset_dir: dataset/renche + +epoch: 24 +LearningRate: + base_lr: 0.001 + schedulers: + - !PiecewiseDecay + gamma: 0.1 + milestones: [16, 22] + - !LinearWarmup + start_factor: 0.1 + steps: 1000 + + +worker_num: 2 +TrainReader: + sample_transforms: + - Decode: {} + - RandomResize: {target_size: [[640, 1333], [672, 1333], [704, 1333], [736, 1333], [768, 1333], [800, 1333]], interp: 2, keep_ratio: True} + - RandomFlip: {prob: 0.5} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 4 + shuffle: true + drop_last: true + collate_batch: false + + +EvalReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + + +TestReader: + sample_transforms: + - Decode: {} + - Resize: {interp: 2, target_size: [800, 1333], keep_ratio: True} + - NormalizeImage: {is_scale: true, mean: [0.485,0.456,0.406], std: [0.229, 0.224,0.225]} + - Permute: {} + batch_transforms: + - PadBatch: {pad_to_stride: -1} + batch_size: 1 + shuffle: false + drop_last: false + +use_gpu: true +use_xpu: false +log_iter: 100 +save_dir: output +snapshot_epoch: 2 +print_flops: false + + +OptimizerBuilder: + optimizer: + momentum: 0.9 + type: Momentum + regularizer: + factor: 0.0001 + type: L2 + + +architecture: FasterRCNN + +FasterRCNN: + backbone: ResNet + neck: FPN + rpn_head: RPNHead + bbox_head: BBoxHead + # post process + bbox_post_process: BBoxPostProcess + + +ResNet: + # index 0 stands for res2 + depth: 50 + variant: d + norm_type: bn + freeze_at: 0 + return_idx: [0,1,2,3] + num_stages: 4 + lr_mult_list: [0.05, 0.05, 0.1, 0.15] + +FPN: + out_channel: 256 + +RPNHead: + anchor_generator: + aspect_ratios: [0.5, 1.0, 2.0] + anchor_sizes: [[32], [64], [128], [256], [512]] + strides: [4, 8, 16, 32, 64] + rpn_target_assign: + batch_size_per_im: 256 + fg_fraction: 0.5 + negative_overlap: 0.3 + positive_overlap: 0.7 + use_random: True + train_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 2000 + post_nms_top_n: 1000 + topk_after_collect: True + test_proposal: + min_size: 0.0 + nms_thresh: 0.7 + pre_nms_top_n: 1000 + post_nms_top_n: 1000 + + +BBoxHead: + head: TwoFCHead + roi_extractor: + resolution: 7 + sampling_ratio: 0 + aligned: True + bbox_assigner: BBoxAssigner + +BBoxAssigner: + batch_size_per_im: 512 + bg_thresh: 0.5 + fg_thresh: 0.5 + fg_fraction: 0.25 + use_random: True + +TwoFCHead: + out_channel: 1024 + +BBoxPostProcess: + decode: RCNNBox + nms: + name: MultiClassNMS + keep_top_k: 100 + score_threshold: 0.05 + nms_threshold: 0.5 diff --git a/ppsmrt/images/Board_diaojiao_1591.png b/ppsmrt/images/Board_diaojiao_1591.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec35b9450209fba4b9579fcc325e70fc5f63ddd Binary files /dev/null and b/ppsmrt/images/Board_diaojiao_1591.png differ diff --git a/ppsmrt/images/UpCoa_liewen_163.png b/ppsmrt/images/UpCoa_liewen_163.png new file mode 100644 index 0000000000000000000000000000000000000000..294c29b4ed04c81d672cbe72ddaa4ccb3e301f67 Binary files /dev/null and b/ppsmrt/images/UpCoa_liewen_163.png differ diff --git a/ppsmrt/images/lvjian1_0.jpg b/ppsmrt/images/lvjian1_0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dbf0dfaa769f9a72bd7825f8589fffa5aca3ac6e Binary files /dev/null and b/ppsmrt/images/lvjian1_0.jpg differ diff --git a/ppsmrt/images/lvjian1_10.jpg b/ppsmrt/images/lvjian1_10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25467e8174b27df7bf43b33795eb7ea1af605813 Binary files /dev/null and b/ppsmrt/images/lvjian1_10.jpg differ diff --git a/ppsmrt/images/renche_00002.jpg b/ppsmrt/images/renche_00002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9446db44df96cf18ef7871c345a8010cdfec49df Binary files /dev/null and b/ppsmrt/images/renche_00002.jpg differ diff --git a/ppsmrt/images/renche_00204.jpg b/ppsmrt/images/renche_00204.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c46e933b970411eca850195b59f1c477d5d2a5e Binary files /dev/null and b/ppsmrt/images/renche_00204.jpg differ