# 通用图像分类 ## 1. 任务简介 图像分类是计算机视觉领域的基础任务,实现对未知类别的图像进行分类。PaddleX 通用图像分类方案,提供了不同量级的多个图像分类算法模型,能够满足用户不同任务、场景的需求。点击右上角 `创建模型产线` 选择配置好的 GPU、CPU 环境,可以快速体验效果 <img src="https://paddleclas.bj.bcebos.com/data/cls_demo.JPEG" style="height: 400px"> 上图分类结果为“Shetland sheepdog”。 ## 2. 模型选择和训练 首先根据任务的需要选择算法模型,然后输入预测图片,模型对输入图像进行处理分析,得到图像所属类别。 通用图像分类提供了 6 个算法模型,满足对性能和效率的不同需求,关于算法细节可以参考阅读:[SwinTransformer](https://arxiv.org/abs/2103.14030)、[CLIP](https://arxiv.org/abs/2103.00020)、[PP-HGNet](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.5/docs/zh_CN/models/ImageNet1k/PP-HGNet.md)、[PP-LCNet](https://arxiv.org/abs/2109.15099)、[ResNet](https://arxiv.org/abs/1512.03385)、[MobileNetV3](https://arxiv.org/abs/1905.02244)。 当通用任务无法满足特定场景时,推荐基于自有数据进行模型训练: | 场景方案 | Top1 Acc(%) | GPU 推理耗时(ms) | CPU 推理耗时(ms) | 模型存储大小(M) | 启动训练 | | -------- | -------- | -------- | ---- | --- | -- | | CLIP_vit_base_patch16_224 | 85.39 | 4.68 | 67.35 |331 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=279)| | SwinTransformer_base_patch4_window7_224 | 83.37 | 6.55 | 838.15 | 342 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=275)| | PP-HGNet_small | 81.51 | 2.43 | 24.01 |94 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=3)| | ResNet50 | 76.50 | 2.15 | 10.83 | 98 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=269)| | PP-LCNet_x1_0 | 71.32 | 0.47 | 1.63 |12 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=1)| | MobileNetV3_small_x1_0 | 68.24 | 0.83 | 1.79 |12 |[训练](https://aistudio.baidu.com/aistudio/modelsdetail?modelId=284)| **注:以上精度指标为 ImageNet1k 验证集 Top1 Acc,GPU 推理耗时基于 NVIDIA Tesla V100 机器,精度类型为 FP32, CPU 推理速度基于 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz,线程数为10,精度类型为 FP32。** ## 3. 模型部署 本模型目前的部署支持情况如下: | 操作系统 | Windows | Windows | Windows | Windows | Linux | Linux | Linux | Linux | | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | | 部署硬件 | NV GPU | NV GPU | X86 CPU | X86 CPU | NV GPU | NV GPU | X86 CPU | X86 CPU | | 接口语言 | C++ | Python | C++ | Python | C++ | Python | C++ | Python | | 支持情况 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 根据实际业务需求选择所需要的操作系统、部署硬件、接口语言等条件后,获取 FastDeploy 部署包,**完成之后到开发者模式下进行下载(文件右击选择下载即可)**,其中包括部署代码和预测模型。 最后就可以参考部署包里面的 README 使用说明,在目标硬件上进行部署啦。 **注意:如果需要手动更新预测模型,可以直接修改部署包中的预测模型。**