该文档介绍了PP-ShiTu提供的各种应用场景库简介、下载链接以及使用简介。
PP-ShiTu对原数据集进行了Gallery库和Query库划分,并生成了对应的Index索引库,具体应用场景介绍和下载地址如下表所示。
| 场景 | 示例图 | 场景简介 | Recall@1 | 场景库下载地址 | 原数据集下载地址 |
|---|---|---|---|---|---|
| 花 | ![]() |
104种花细分类识别 | 0.9788 | 104flowers | 原数据下载地址 |
| 交通工具 | ![]() |
车、船等交通工具粗分类识别 | 0.9307 | Vechicles | 原数据下载地址 |
| 动物 | ![]() |
各种动物识别 | 0.9078 | AnimalImageDataset | 原数据下载地址 |
| 时装 | ![]() |
首饰、挎包、化妆品等时尚商品识别 | 0.9555 | FashionProductImageSmall | 原数据下载地址 |
| 球类 | ![]() |
各种球类识别 | 0.9769 | Balls | 原数据下载地址 |
| 狗识别 | ![]() |
狗细分类识别,包括69种狗的图像 | 0.9606 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 宝石 | ![]() |
宝石种类识别 | 0.9653 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 鸟类 | ![]() |
鸟细分类识别,包括400种各种姿态的鸟类图像 | 0.9673 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 运动种类 | ![]() |
100种运动图像识别 | 0.9413 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 乐器 | ![]() |
30种不同乐器种类识别 | 0.9467 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 宝可梦 | ![]() |
宝可梦神奇宝贝识别 | 0.9236 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 船 | ![]() |
船种类识别 | 0.9242 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 鞋子 | ![]() |
鞋子种类识别,包括靴子、拖鞋等 | 0.9000 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 巴黎建筑 | ![]() |
巴黎著名建筑景点识别,如:巴黎铁塔、圣母院等 | 1.000 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 蝴蝶 | ![]() |
75种蝴蝶细分类识别 | 0.9360 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 野外植物 | ![]() |
野外植物识别 | 0.9758 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 天气 | ![]() |
各种天气场景识别,如:雨天、打雷、下雪等 | 0.9924 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 坚果 | ![]() |
各种坚果种类识别 | 0.9412 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 垃圾 | ![]() |
12种垃圾分类识别 | 0.9845 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 航拍场景 | ![]() |
各种航拍场景识别,如机场、火车站等 | 0.9797 | 添加技术交流群后即可获得 | 原数据下载地址 |
| 蔬菜 | ![]() |
各种蔬菜识别 | 0.8929 | 添加技术交流群后即可获得 | 原数据下载地址 |
- 安装:请先参考文档环境准备配置PaddleClas运行环境
- 进入
deploy运行目录,本部分所有内容与命令均需要在deploy目录下运行,可以通过下面命令进入deploy目录。
cd deploy首先创建存放场景库的地址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.txt和query_list.txt分别为索引库和检索图像的标签文件,label_list.txt是标签的中英文对照文件(注意:商标场景库文件不包含中英文对照文件)。
创建存放模型的文件夹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
以动物识别场景为例,展示识别和检索过程(如果希望尝试其他场景库的识别与检索效果,在下载解压好对应的场景库数据和模型后,替换对应的配置文件即可完成预测)。
注意,此部分使用了faiss作为检索库,安装方法如下:
pip install faiss-cpu==1.7.1post2若使用时,不能正常引用,则uninstall之后,重新install,尤其是在windows下。
假设需要测试./datasets/AnimalImageDataset/Query/羚羊/0a37838e99.jpg这张图像识别和检索效果。
首先分别修改配置文件./configs/inference_general.yaml中的Global.det_inference_model_dir和Global.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文件夹下,对于本张图像,识别结果可视化如下所示。
如果希望预测文件夹内的图像,可以直接修改配置文件中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文件夹内。






















