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