Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
3a040587
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
大约 1 年 前同步成功
通知
115
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
3a040587
编写于
9月 14, 2022
作者:
H
HydrogenSulfate
提交者:
GitHub
9月 14, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2297 from RainFrost1/release/2.5
update lite_shitu doc
上级
26abd6a1
e34e1dc4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
26 deletion
+28
-26
docs/zh_CN/inference_deployment/lite_shitu.md
docs/zh_CN/inference_deployment/lite_shitu.md
+28
-26
未找到文件。
docs/zh_CN/inference_deployment/lite_shitu.md
浏览文件 @
3a040587
...
@@ -124,11 +124,13 @@ PaddleClas 提供了转换并优化后的推理模型,可以直接参考下方
...
@@ -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/ppshitu
v2_lite_models_v1.0
.tar
tar
-xf
ppshitu
_lite_models_v1.2
.tar
tar
-xf
ppshitu
v2_lite_models_v1.0
.tar
rm
-f
ppshitu
_lite_models_v1.2
.tar
rm
-f
ppshitu
v2_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
...
@@ -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_PPLCNet
V2_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_PPLCNet
V2_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_PPLCNet
V2_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
...
@@ -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_v
1.0.tar
&&
tar
-xf
drink_dataset_v1
.0.tar
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/drink_dataset_v
2.0.tar
&&
tar
-xf
drink_dataset_v2
.0.tar
rm
-rf
drink_dataset_v
1
.0.tar
rm
-rf
drink_dataset_v
2
.0.tar
rm
-rf
drink_dataset_v
1
.0/index
rm
-rf
drink_dataset_v
2
.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_PPLCNet
V2_base_pretrained
_v1.0_infer.tar
rm
-rf
general_PPLCNet
_x2_5_lite
_v1.0_infer.tar
rm
-rf
general_PPLCNet
V2_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
...
@@ -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_PPLCNet
V2_base_pretrained
_v1.0_infer
-o
IndexProcess.index_method
=
Flat
# 进入到lite_shitu目录
# 进入到lite_shitu目录
cd
lite_shitu
cd
lite_shitu
mv
../drink_dataset_v
1
.0 .
mv
../drink_dataset_v
2
.0 .
```
```
<a
name=
"2.3"
></a>
<a
name=
"2.3"
></a>
...
@@ -275,13 +277,15 @@ mv ../drink_dataset_v1.0 .
...
@@ -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
ppshitu
v2_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
ppshitu
v2_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
...
@@ -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
...
@@ -349,8 +352,8 @@ make ARM_ABI=arm8
```
shell
```
shell
mkdir
deploy
mkdir
deploy
# 移动的模型路径要和之前生成的json文件中模型路径一致
# 移动的模型路径要和之前生成的json文件中模型路径一致
mv
ppshitu
_lite_models_v1.2
deploy/
mv
ppshitu
v2_lite_models_v1.0
deploy/
mv
drink_dataset_v
1
.0 deploy/
mv
drink_dataset_v
2
.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/
...
@@ -363,12 +366,12 @@ cp ../../../cxx/lib/libpaddle_light_api_shared.so deploy/
```
shell
```
shell
deploy/
deploy/
|-- ppshitu
_lite_models_v1.1
/
|-- ppshitu
v2_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_PPLCNet
V2_base_quant_v1.0_lite.nb
优化后的识别模型文件
|-- images/
|-- images/
| |--demo.jpg 图片文件
| |--demo.jpg 图片文件
|-- drink_dataset_v
1
.0/ 瓶装饮料demo数据
|-- drink_dataset_v
2
.0/ 瓶装饮料demo数据
| |--index 检索index目录
| |--index 检索index目录
|-- pp_shitu 生成的移动端执行文件
|-- pp_shitu 生成的移动端执行文件
|-- shitu_config.json 执行时参数配置文件
|-- shitu_config.json 执行时参数配置文件
...
@@ -399,8 +402,7 @@ chmod 777 pp_shitu
...
@@ -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>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录