littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于PaddlePaddle框架的DCL细粒度图像分类模型

项目简介

本项目基于PaddlePaddle框架实现了DCL(Destruction and Construction Learning)模型,用于细粒度图像分类。DCL模型通过“破坏”和“重建”图像的方式,学习区分区域和特征,从而提高细粒度图像分类的准确性。该模型在CVPR 2019上提出,并在多个数据集上取得了优异的表现。

项目的主要特性和功能

  • 破坏重建学习:通过区域混淆机制(RCM)和区域对齐网络,学习图像的局部细节和语义相关性。
  • 多数据集支持:支持CUB - 200 - 2011、Stanford - Cars和FGVC - Aircraft等多个细粒度图像分类数据集。
  • 高精度复现:在CUB - 200 - 2011、Stanford - Cars和FGVC - Aircraft数据集上,复现精度接近或达到论文中的精度。
  • 完整功能:包括模型训练、验证、测试、单张图片预测、模型导出和推理等功能。

安装使用步骤

1. 环境准备

  • 安装Python 3.7
  • 安装PaddlePaddle 2.2.2
  • 安装必要的Python库:numpy、pandas、Pillow、tqdm

2. 数据准备

  • 下载所需的数据集(CUB - 200 - 2011、Stanford - Cars、FGVC - Aircraft)并解压。
  • 修改main.py中的数据集路径。

3. 下载项目及训练权重

下载PaddlePaddle的ResNet50预训练权重,并修改main.py中的预训练权重路径。

4. 训练模型

运行以下命令开始训练: sh python -m paddle.distribututed.launch --gpus 0,1 main.py \ --data=CUB \ --backbone=resnet50 \ --epoch=360 \ --lr_step=60 \ --tb=8 \ --vb=8 \ --tnw=16 \ --vnw=16 \ --lr=0.0008 \ --start_epoch=0 \ --detail=dcl_cub \ --size=512 \ --crop=448 \ --swap_num=7

5. 验证模型

运行以下命令验证模型: sh python test.py --gpus=0 --data=CUB --pdparams=./outputs/CUB/checkpoints/dcl_cub-20220422-143357.pdparams --vb=16 --vnw=16 --size=512

6. 单张图片预测

运行以下命令进行单张图片预测: sh python predict.py --data CUB_TINY --img resources/Black_Footed_Albatross_0001_796111.jpg --pdparams outputs/CUB_TINY/checkpoints/dcl_cub_tiny-cub_tiny.pdparams

7. 模型导出

运行以下命令导出模型: sh python export_model.py --data CUB_TINY --save_dir outputs/STATIC --model_path outputs/CUB_TINY/checkpoints/dcl_cub_tiny-cub_tiny.pdparams

8. 模型推理

运行以下命令进行模型推理: sh python infer.py --model_file outputs/STATIC/model.pdmodel --params_file outputs/STATIC/model.pdiparams --img resources/Black_Footed_Albatross_0001_796111.jpg

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】