51 Star 366 Fork 119

PaddlePaddle / PaddleClas

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
application_scenarios.md 15.01 KB
一键复制 编辑 原始数据 按行查看 历史
Leif 提交于 2022-12-01 11:49 . Update README

PP-ShiTu应用场景介绍

该文档介绍了PP-ShiTu提供的各种应用场景库简介、下载链接以及使用简介。

目录

1. 应用场景介绍

1.1 场景库介绍

PP-ShiTu对原数据集进行了Gallery库和Query库划分,并生成了对应的Index索引库,具体应用场景介绍和下载地址如下表所示。

类别 场景 示例图 场景简介 Recall@1 场景库下载地址 原数据集下载地址
动植物 104种花细分类识别 0.9788 104flowers 原数据下载地址
动植物 蝴蝶 75种蝴蝶细分类识别 0.9360 下载地址 原数据下载地址
动植物 野外植物 32种野外植物识别,包括雏菊、蒲公英等 0.9758 下载地址 原数据下载地址
动植物 动物 90种动物识别,包括斑马、羚羊等 0.9078 AnimalImageDataset 原数据下载地址
动植物 狗识别 69种狗细分类识别,包括柴犬等 0.9606 下载地址 原数据下载地址
动植物 鸟类 400种各种姿态的鸟细分类识别 0.9673 下载地址 原数据下载地址
商品 坚果 10种坚果种类识别,包括开心果、核桃、腰果等 0.9412 下载地址 原数据下载地址
商品 蔬菜 116种蔬菜识别,包括菠菜、胡萝卜、玉米等 0.8929 下载地址 原数据下载地址
商品 时装 23种时尚商品识别,包括首饰、挎包、化妆品等 0.9555 FashionProductImageSmall 原数据下载地址
商品 鞋子 6种鞋子识别,包括靴子、足球鞋等 0.9000 下载地址 原数据下载地址
商品 乐器 30种不同乐器种类识别 0.9467 下载地址 原数据下载地址
商品 宝石 27种宝石识别,包括萤石、翡翠等 0.9653 下载地址 原数据下载地址
商品 球类 26种球型物体识别,包括弹珠、足球等 0.9769 Balls 原数据下载地址
交通 交通工具 9种交通工具粗分类识别,包括车、船等 0.9307 Vechicles 原数据下载地址
交通 6种船种类识别,包括游轮、帆船等 0.9242 下载地址 原数据下载地址
交通 航拍场景 30种航拍场景识别,如机场、火车站等 0.9797 下载地址 原数据下载地址
其他 巴黎建筑 11个巴黎建筑识别,如:巴黎铁塔、圣母院等 1.000 下载地址 原数据下载地址
其他 天气 10种天气场景识别,如:雨天、打雷、下雪等 0.9924 下载地址 原数据下载地址
其他 垃圾 12种垃圾分类识别 0.9845 下载地址 原数据下载地址
其他 运动种类 100种运动图像识别 0.9413 下载地址 原数据下载地址
其他 宝可梦 150种宝可梦神奇宝贝识别,包括皮卡丘、喷火龙等 0.9236 下载地址 原数据下载地址

1.2 场景库下载

如需下载已经整理后的场景库数据集,可以扫描下方二维码,关注公众号填写问卷后,加入PaddleClas官方交流群获取20G重磅图像分类学习大礼包内含上述所有场景库数据集垂类模型集合(包括人员出入管理、生鲜品识别、商品识别等)、70+前沿图像分类与识别论文、历次发版课程视频与优质社区项目等

2. 使用说明

2.1 环境配置

  • 安装:请先参考文档环境准备配置PaddleClas运行环境
  • 进入deploy运行目录,本部分所有内容与命令均需要在deploy目录下运行,可以通过下面命令进入deploy目录。
cd deploy

2.2 下载、解压场景库数据

首先创建存放场景库的地址deploy/datasets:

mkdir datasets

下载并解压对应场景库到deploy/datasets中。

cd datasets

# 下载并解压场景库数据
wget {场景库下载链接} && tar -xf {压缩包的名称}

dataset_name为例,解压完毕后,datasets/dataset_name文件夹下应有如下文件结构:

├── dataset_name/
│   ├── Gallery/
│   ├── Index/
│   ├── Query/
│   ├── gallery_list.txt/
│   ├── query_list.txt/
│   ├── label_list.txt/
├── ...

其中,Gallery文件夹中存放的是用于构建索引库的原始图像,Index表示基于原始图像构建得到的索引库信息,Query文件夹存放的是用于检索的图像列表,gallery_list.txtquery_list.txt分别为索引库和检索图像的标签文件,label_list.txt是标签的中英文对照文件(注意:商标场景库文件不包含中英文对照文件)。

2.3 准备模型

创建存放模型的文件夹deploy/models,并下载轻量级主体检测、识别模型,命令如下:

cd ..
mkdir models
cd models

# 下载检测模型并解压
# wget {检测模型下载链接} && tar -xf {检测模型压缩包名称}
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/PP-ShiTuV2/general_PPLCNetV2_base_pretrained_v1.0_infer.tar && tar -xf general_PPLCNetV2_base_pretrained_v1.0_infer.tar

# 下载识别 inference 模型并解压
#wget {识别模型下载链接} && tar -xf {识别模型压缩包名称}
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer.tar && tar -xf picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer.tar

解压完成后,models文件夹下有如下文件结构:

├── inference_model_name
│   ├── inference.pdiparams
│   ├── inference.pdiparams.info
│   └── inference.pdmodel
└── det_model_name
    ├── inference.pdiparams
    ├── inference.pdiparams.info
    └── inference.pdmodel

2.4 场景库识别与检索

动物识别场景为例,展示识别和检索过程(如果希望尝试其他场景库的识别与检索效果,在下载解压好对应的场景库数据和模型后,替换对应的配置文件即可完成预测)。

注意,此部分使用了faiss作为检索库,安装方法如下:

pip install faiss-cpu==1.7.1post2

若使用时,不能正常引用,则uninstall之后,重新install,尤其是在windows下。

2.4.1 识别单张图像

假设需要测试./datasets/AnimalImageDataset/Query/羚羊/0a37838e99.jpg这张图像识别和检索效果。

首先分别修改配置文件./configs/inference_general.yaml中的Global.det_inference_model_dirGlobal.rec_inference_model_dir字段为对应的检测和识别模型文件夹,以及修改测试图像地址字段Global.infer_imgs示例如下:

Global:
  infer_imgs: './datasets/AnimalImageDataset/Query/羚羊/0a37838e99.jpg'
  det_inference_model_dir: './models/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_infer.tar'
  rec_inference_model_dir: './models/general_PPLCNetV2_base_pretrained_v1.0_infer.tar'

并修改配置文件./configs/inference_general.yaml中的IndexProcess.index_dir字段为对应场景index库地址:

IndexProcess:
  index_dir:'./datasets/AnimalImageDataset/Index/'

运行下面的命令,对图像./datasets/AnimalImageDataset/Query/羚羊/0a37838e99.jpg进行识别与检索

# 使用下面的命令使用 GPU 进行预测
python3.7 python/predict_system.py -c configs/inference_general.yaml

# 使用下面的命令使用 CPU 进行预测
python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.use_gpu=False

最终输出结果如下:

[{'bbox': [609, 70, 1079, 629], 'rec_docs': '羚羊', 'rec_scores': 0.6571544}]

其中bbox表示检测出的主体所在位置,rec_docs表示索引库中与检测框最为相似的类别,rec_scores表示对应的置信度。 检测的可视化结果也保存在output文件夹下,对于本张图像,识别结果可视化如下所示。

2.4.2 基于文件夹的批量识别

如果希望预测文件夹内的图像,可以直接修改配置文件中Global.infer_imgs字段,也可以通过下面的-o参数修改对应的配置。

# 使用下面的命令使用 GPU 进行预测,如果希望使用 CPU 预测,可以在命令后面添加 -o Global.use_gpu=False
python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.infer_imgs="./datasets/AnimalImageDataset/Query/羚羊"

终端中会输出该文件夹内所有图像的识别结果,如下所示。

...
[{'bbox': [0, 0, 1200, 675], 'rec_docs': '羚羊', 'rec_scores': 0.6153812}]
[{'bbox': [0, 0, 275, 183], 'rec_docs': '羚羊', 'rec_scores': 0.77218026}]
[{'bbox': [264, 79, 1088, 850], 'rec_docs': '羚羊', 'rec_scores': 0.81452656}]
[{'bbox': [0, 0, 188, 268], 'rec_docs': '羚羊', 'rec_scores': 0.637074}]
[{'bbox': [118, 41, 235, 161], 'rec_docs': '羚羊', 'rec_scores': 0.67315465}]
[{'bbox': [0, 0, 175, 287], 'rec_docs': '羚羊', 'rec_scores': 0.68271667}]
[{'bbox': [0, 0, 310, 163], 'rec_docs': '羚羊', 'rec_scores': 0.6706451}]
...

所有图像的识别结果可视化图像也保存在output文件夹内。

Python
1
https://gitee.com/paddlepaddle/PaddleClas.git
git@gitee.com:paddlepaddle/PaddleClas.git
paddlepaddle
PaddleClas
PaddleClas
release/2.5

搜索帮助