update lite_shitu doc
parent
2f52adf957
commit
e34e1dc432
|
@ -124,11 +124,13 @@ PaddleClas 提供了转换并优化后的推理模型,可以直接参考下方
|
||||||
```shell
|
```shell
|
||||||
# 进入lite_ppshitu目录
|
# 进入lite_ppshitu目录
|
||||||
cd $PaddleClas/deploy/lite_shitu
|
cd $PaddleClas/deploy/lite_shitu
|
||||||
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/lite/ppshitu_lite_models_v1.2.tar
|
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/lite/ppshituv2_lite_models_v1.0.tar
|
||||||
tar -xf ppshitu_lite_models_v1.2.tar
|
tar -xf ppshituv2_lite_models_v1.0.tar
|
||||||
rm -f ppshitu_lite_models_v1.2.tar
|
rm -f ppshituv2_lite_models_v1.0.tar
|
||||||
```
|
```
|
||||||
|
|
||||||
|
此模型是PP-ShiTu V2的检测和特征模型的量化模型,存储大小约为14M,相对于非量化模型,模型加速一倍左右,精度降低不到一个点。如果想用非量化模型,可以参考[使用其他模型](#2.1.2)
|
||||||
|
|
||||||
<a name="2.1.2"></a>
|
<a name="2.1.2"></a>
|
||||||
|
|
||||||
#### 2.1.2 使用其他模型
|
#### 2.1.2 使用其他模型
|
||||||
|
@ -214,13 +216,13 @@ cp $code_path/PaddleDetection/inference/picodet_lcnet_x2_5_640_mainbody/mainbody
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 识别模型下载
|
# 识别模型下载
|
||||||
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/general_PPLCNet_x2_5_lite_v1.0_infer.tar
|
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_PPLCNet_x2_5_lite_v1.0_infer.tar
|
tar -xf general_PPLCNetV2_base_pretrained_v1.0_infer.tar
|
||||||
# 转换为Paddle-Lite模型
|
# 转换为Paddle-Lite模型
|
||||||
paddle_lite_opt --model_file=general_PPLCNet_x2_5_lite_v1.0_infer/inference.pdmodel --param_file=general_PPLCNet_x2_5_lite_v1.0_infer/inference.pdiparams --optimize_out=general_PPLCNet_x2_5_lite_v1.0_infer/rec
|
paddle_lite_opt --model_file=general_PPLCNetV2_base_pretrained_v1.0_infer/inference.pdmodel --param_file=general_PPLCNetV2_base_pretrained_v1.0_infer/inference.pdiparams --optimize_out=general_PPLCNetV2_base_pretrained_v1.0_infer/rec
|
||||||
# 将模型文件拷贝到lite_shitu下
|
# 将模型文件拷贝到lite_shitu下
|
||||||
cp general_PPLCNet_x2_5_lite_v1.0_infer/rec.nb deploy/lite_shitu/models/
|
cp general_PPLCNetV2_base_pretrained_v1.0_infer/rec.nb deploy/lite_shitu/models/
|
||||||
```
|
```
|
||||||
|
|
||||||
**注意**:`--optimize_out` 参数为优化后模型的保存路径,无需加后缀`.nb`;`--model_file` 参数为模型结构信息文件的路径,`--param_file` 参数为模型权重信息文件的路径,请注意文件名。
|
**注意**:`--optimize_out` 参数为优化后模型的保存路径,无需加后缀`.nb`;`--model_file` 参数为模型结构信息文件的路径,`--param_file` 参数为模型权重信息文件的路径,请注意文件名。
|
||||||
|
@ -242,17 +244,17 @@ cd $PaddleClas
|
||||||
python setup.py install
|
python setup.py install
|
||||||
cd deploy
|
cd deploy
|
||||||
# 下载瓶装饮料数据集
|
# 下载瓶装饮料数据集
|
||||||
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/drink_dataset_v1.0.tar && tar -xf drink_dataset_v1.0.tar
|
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/drink_dataset_v2.0.tar && tar -xf drink_dataset_v2.0.tar
|
||||||
rm -rf drink_dataset_v1.0.tar
|
rm -rf drink_dataset_v2.0.tar
|
||||||
rm -rf drink_dataset_v1.0/index
|
rm -rf drink_dataset_v2.0/index
|
||||||
|
|
||||||
# 安装1.5.3版本的faiss
|
# 安装1.5.3版本的faiss
|
||||||
pip install faiss-cpu==1.5.3
|
pip install faiss-cpu==1.5.3
|
||||||
|
|
||||||
# 下载通用识别模型,可替换成自己的inference model
|
# 下载通用识别模型,可替换成自己的inference model
|
||||||
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/general_PPLCNet_x2_5_lite_v1.0_infer.tar
|
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_PPLCNet_x2_5_lite_v1.0_infer.tar
|
tar -xf general_PPLCNetV2_base_pretrained_v1.0_infer.tar
|
||||||
rm -rf general_PPLCNet_x2_5_lite_v1.0_infer.tar
|
rm -rf general_PPLCNetV2_base_pretrained_v1.0_infer.tar
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="2.2.2"></a>
|
<a name="2.2.2"></a>
|
||||||
|
@ -262,11 +264,11 @@ rm -rf general_PPLCNet_x2_5_lite_v1.0_infer.tar
|
||||||
```shell
|
```shell
|
||||||
# 生成新的index库,注意指定好识别模型的路径,同时将index_mothod修改成Flat,HNSW32和IVF在此版本中可能存在bug,请慎重使用。
|
# 生成新的index库,注意指定好识别模型的路径,同时将index_mothod修改成Flat,HNSW32和IVF在此版本中可能存在bug,请慎重使用。
|
||||||
# 如果使用自己的识别模型,对应的修改inference model的目录
|
# 如果使用自己的识别模型,对应的修改inference model的目录
|
||||||
python python/build_gallery.py -c configs/inference_drink.yaml -o Global.rec_inference_model_dir=general_PPLCNet_x2_5_lite_v1.0_infer -o IndexProcess.index_method=Flat
|
python python/build_gallery.py -c configs/inference_drink.yaml -o Global.rec_inference_model_dir=general_PPLCNetV2_base_pretrained_v1.0_infer -o IndexProcess.index_method=Flat
|
||||||
|
|
||||||
# 进入到lite_shitu目录
|
# 进入到lite_shitu目录
|
||||||
cd lite_shitu
|
cd lite_shitu
|
||||||
mv ../drink_dataset_v1.0 .
|
mv ../drink_dataset_v2.0 .
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="2.3"></a>
|
<a name="2.3"></a>
|
||||||
|
@ -275,13 +277,15 @@ mv ../drink_dataset_v1.0 .
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 如果测试单张图像,路径使用相对路径
|
# 如果测试单张图像,路径使用相对路径
|
||||||
python generate_json_config.py --det_model_path ppshitu_lite_models_v1.2/mainbody_PPLCNet_x2_5_640_v1.2_lite.nb --rec_model_path ppshitu_lite_models_v1.2/general_PPLCNet_x2_5_lite_v1.2_infer.nb --img_path images/demo.jpeg
|
python generate_json_config.py --det_model_path ppshituv2_lite_models_v1.0/mainbody_PPLCNet_x2_5_640_quant_v1.0_lite.nb --rec_model_path ppshituv2_lite_models_v1.0/general_PPLCNetV2_base_quant_v1.0_lite.nb --img_path images/demo.jpeg
|
||||||
# or
|
# or
|
||||||
# 如果测试多张图像
|
# 如果测试多张图像
|
||||||
python generate_json_config.py --det_model_path ppshitu_lite_models_v1.2/mainbody_PPLCNet_x2_5_640_v1.2_lite.nb --rec_model_path ppshitu_lite_models_v1.2/general_PPLCNet_x2_5_lite_v1.2_infer.nb --img_dir images
|
python generate_json_config.py --det_model_path ppshituv2_lite_models_v1.0/mainbody_PPLCNet_x2_5_640_quant_v1.0_lite.nb --rec_model_path ppshituv2_lite_models_v1.0/general_PPLCNetV2_base_quant_v1.0_lite.nb --img_dir images
|
||||||
# 执行完成后,会在lit_shitu下生成shitu_config.json配置文件
|
# 执行完成后,会在lit_shitu下生成shitu_config.json配置文件
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**注意**:生成json文件的时候,请注意修改好模型路径,特别是使用自己生成的`.nb`模型时
|
||||||
|
|
||||||
<a name="2.4"></a>
|
<a name="2.4"></a>
|
||||||
|
|
||||||
### 2.4 index字典转换
|
### 2.4 index字典转换
|
||||||
|
@ -289,7 +293,6 @@ python generate_json_config.py --det_model_path ppshitu_lite_models_v1.2/mainbod
|
||||||
由于python的检索库字典,使用`pickle`进行的序列化存储,导致C++不方便读取,因此需要进行转换
|
由于python的检索库字典,使用`pickle`进行的序列化存储,导致C++不方便读取,因此需要进行转换
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
|
||||||
# 转化id_map.pkl为id_map.txt
|
# 转化id_map.pkl为id_map.txt
|
||||||
python transform_id_map.py -c ../configs/inference_drink.yaml
|
python transform_id_map.py -c ../configs/inference_drink.yaml
|
||||||
```
|
```
|
||||||
|
@ -349,8 +352,8 @@ make ARM_ABI=arm8
|
||||||
```shell
|
```shell
|
||||||
mkdir deploy
|
mkdir deploy
|
||||||
# 移动的模型路径要和之前生成的json文件中模型路径一致
|
# 移动的模型路径要和之前生成的json文件中模型路径一致
|
||||||
mv ppshitu_lite_models_v1.2 deploy/
|
mv ppshituv2_lite_models_v1.0 deploy/
|
||||||
mv drink_dataset_v1.0 deploy/
|
mv drink_dataset_v2.0 deploy/
|
||||||
mv images deploy/
|
mv images deploy/
|
||||||
mv shitu_config.json deploy/
|
mv shitu_config.json deploy/
|
||||||
cp pp_shitu deploy/
|
cp pp_shitu deploy/
|
||||||
|
@ -363,12 +366,12 @@ cp ../../../cxx/lib/libpaddle_light_api_shared.so deploy/
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
deploy/
|
deploy/
|
||||||
|-- ppshitu_lite_models_v1.1/
|
|-- ppshituv2_lite_models_v1.0/
|
||||||
| |--mainbody_PPLCNet_x2_5_640_quant_v1.1_lite.nb 优化后的主体检测模型文件
|
| |--mainbody_PPLCNet_x2_5_640_quant_v1.0_lite.nb 优化后的主体检测模型文件
|
||||||
| |--general_PPLCNet_x2_5_lite_v1.1_infer.nb 优化后的识别模型文件
|
| |--general_PPLCNetV2_base_quant_v1.0_lite.nb 优化后的识别模型文件
|
||||||
|-- images/
|
|-- images/
|
||||||
| |--demo.jpg 图片文件
|
| |--demo.jpg 图片文件
|
||||||
|-- drink_dataset_v1.0/ 瓶装饮料demo数据
|
|-- drink_dataset_v2.0/ 瓶装饮料demo数据
|
||||||
| |--index 检索index目录
|
| |--index 检索index目录
|
||||||
|-- pp_shitu 生成的移动端执行文件
|
|-- pp_shitu 生成的移动端执行文件
|
||||||
|-- shitu_config.json 执行时参数配置文件
|
|-- shitu_config.json 执行时参数配置文件
|
||||||
|
@ -399,8 +402,7 @@ chmod 777 pp_shitu
|
||||||
运行效果如下:
|
运行效果如下:
|
||||||
```
|
```
|
||||||
images/demo.jpeg:
|
images/demo.jpeg:
|
||||||
result0: bbox[344, 98, 527, 593], score: 0.811656, label: 红牛-强化型
|
result1: bbox[0, 0, 600, 600], score: 0.696782, label: 红牛-强化型
|
||||||
result1: bbox[0, 0, 600, 600], score: 0.729664, label: 红牛-强化型
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="FAQ"></a>
|
<a name="FAQ"></a>
|
||||||
|
|
Loading…
Reference in New Issue