Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
97d98276
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看板
未验证
提交
97d98276
编写于
11月 10, 2021
作者:
B
Bin Lu
提交者:
GitHub
11月 10, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update feature_extraction.md
上级
04caee47
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
14 deletion
+31
-14
docs/zh_CN/image_recognition_pipeline/feature_extraction.md
docs/zh_CN/image_recognition_pipeline/feature_extraction.md
+31
-14
未找到文件。
docs/zh_CN/image_recognition_pipeline/feature_extraction.md
浏览文件 @
97d98276
...
...
@@ -17,7 +17,7 @@
| :------------: | :-------------: | :-------: | :-------: | :--------: |
| Aliproduct | 2498771 | 50030 | 商品 |
[
地址
](
https://retailvisionworkshop.github.io/recognition_challenge_2020/
)
|
| GLDv2 | 1580470 | 81313 | 地标 |
[
地址
](
https://github.com/cvdfoundation/google-landmark
)
|
| VeRI-Wild | 277797 | 30671 | 车辆 |
[
地址
](
https://github.com/
guishijin/veri-wild
)
|
| VeRI-Wild | 277797 | 30671 | 车辆 |
[
地址
](
https://github.com/
PKU-IMRE/VERI-Wild
)
|
| LogoDet-3K | 155427 | 3000 | Logo |
[
地址
](
https://github.com/Wangjing1551/LogoDet-3K-Dataset
)
|
| iCartoonFace | 389678 | 5013 | 动漫人物 |
[
地址
](
http://challenge.ai.iqiyi.com/detail?raceId=5def69ace9fcf68aef76a75d
)
|
| SOP | 59551 | 11318 | 商品 |
[
地址
](
https://cvgl.stanford.edu/projects/lifted_struct/
)
|
...
...
@@ -28,8 +28,10 @@
| 模型 | Aliproduct | VeRI-Wild | LogoDet-3K | iCartoonFace | SOP | Inshop | Latency(ms) |
| :----------: | :---------: | :-------: | :-------: | :--------: | :--------: | :--------: | :--------: |
PP-LCNet-2.5x | 0.839 | 0.888 | 0.861 | 0.841 | 0.793 | 0.892 | 5.0
*
采用的评测指标为
`Recall@1`
*
速度评测机器的CPU具体信息为:
`Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz`
,速度指标为开启 mkldnn ,线程数设置为 10 测试得到。
*
采用的评测指标为:
`Recall@1`
;
*
速度评测机器的CPU具体信息为:
`Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz`
;
*
速度指标的评测条件为: 开启MKLDNN, 线程数设置为10;
*
预训练模型地址:
[
通用识别预训练模型
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/pretrain/general_PPLCNet_x2_5_pretrained_v1.0.pdparams
)
# 4. 自定义特征提取
自定义特征提取,是指依据自己的任务,重新训练特征提取模型。主要包含如下四个步骤:1)数据准备;2)模型训练;3)模型评估;4)模型推理。
...
...
@@ -37,6 +39,7 @@ PP-LCNet-2.5x | 0.839 | 0.888 | 0.861 | 0.841 | 0.793 | 0.892 | 5.0
首先,需要基于任务定制自己的数据集。数据集格式参见
[
格式说明
](
https://github.com/PaddlePaddle/PaddleClas/blob/develop/docs/zh_CN/data_preparation/recognition_dataset.md#%E6%95%B0%E6%8D%AE%E9%9B%86%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E
)
## 4.2 模型训练
在启动模型训练之前,需要在配置文件中修改数据配置相关的内容, 主要包括数据集的地址以及类别数量。
-
单机单卡训练
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
...
...
@@ -45,27 +48,35 @@ python tools/train.py -c ppcls/configs/GeneralRecognition/GeneralRecognition_PPL
-
单机多卡训练
```
shell
export
CUDA_VISIBLE_DEVICES
=
0,1,2,3
python
-m
paddle.distributed.launch
--gpus
=
"0,1,2,3"
tools/train.py
python
-m
paddle.distributed.launch
\
--gpus
=
"0,1,2,3"
tools/train.py
\
-c
ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml
```
**注意:**
配置文件中默认采用
`在线评估`
的方式,如果你想加快训练速度,去除
`在线评估`
,只需要在上述命令后面,增加
`-o eval_during_train=False`
。
训练完毕后,在output目录下会生成最终模型文件
`latest.pd*`
,
`best_model.pd*`
和训练日志文件
`train.log`
。
训练完毕后,在output目录下会生成最终模型文件
`latest.pd*`
,
`best_model.pd*`
和训练日志文件
`train.log`
。
`best_model`
用来存储当前评测指标下
的最佳模型。
`latest`
用来存储最新的模型, 方便在任务中断的情况下从断点位置启动训练,断点重训命令如下所示:
```
shell
export
CUDA_VISIBLE_DEVICES
=
0,1,2,3
python
-m
paddle.distributed.launch
\
--gpus
=
"0,1,2,3"
tools/train.py
\
-c
ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml
\
-o
Global.checkpoint
=
"output/RecModel/latest"
```
## 4.3 模型评估
-
单卡评估
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
python tools/eval.py
-c
ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml
\
\
-o
Global.pretrained_model
=
"output/RecModel/best_model"
-o
Global.pretrained_model
=
"output/RecModel/best_model"
```
-
多卡评估
```
shell
export
CUDA_VISIBLE_DEVICES
=
0,1,2,3
python
-m
paddle.distributed.launch
--gpus
=
"0,1,2,3"
tools/eval.py
-c
ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml
python
-m
paddle.distributed.launch
\
--gpus
=
"0,1,2,3"
tools/eval.py
\
-c
ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml
\
-o
Global.pretrained_model
=
"output/RecModel/best_model"
```
**推荐:**
建议使用多卡评估。多卡评估方式可以利用多卡并行计算快速得到整体数据集的特征集合,能够加速评估的过程。
...
...
@@ -74,14 +85,20 @@ python -m paddle.distributed.launch
推理过程包括两个步骤: 1)导出推理模型; 2)获取特征向量
### 4.4.1 导出推理模型
```
python tools/export_model -c ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml -o Global.pretrained_model="output/RecModel/best_model"
python tools/export_model \
-c ppcls/configs/GeneralRecognition/GeneralRecognition_PPLCNet_x2_5.yaml \
-o Global.pretrained_model="output/RecModel/best_model"
```
生成的推理模型位于
`inference`
目录,
名字为
`inference.pd*`
生成的推理模型位于
`inference`
目录,
里面包含三个文件,分别为
`inference.pdmodel`
、
`inference.pdiparams`
、
`inference.pdiparams.info`
。
其中:
`inference.pdmodel`
用来存储推理模型的结构,
`inference.pdiparams`
和
`inference.pdiparams.info`
用来存储推理模型相关的参数信息。
### 4.4.2 获取特征向量
```
cd deploy
python python/predict_rec.py -c configs/inference_rec.yaml -o Global.rec_inference_model_dir="../inference"
python python/predict_rec.py \
-c configs/inference_rec.yaml \
-o Global.rec_inference_model_dir="../inference"
```
得到的特征输出格式如下图所示:
![](
../../images/feature_extraction_output.png
)
在实际使用过程中,单纯得到特征往往并不能够满足业务的需求。如果想进一步通过特征来进行图像识别,可以参照文档
[
图像识别流程
](
)和[向量检索]()。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录