Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
c24dc93c
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看板
未验证
提交
c24dc93c
编写于
6月 10, 2021
作者:
L
littletomatodonkey
提交者:
GitHub
6月 10, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add quick start recognition (#816)
* add quick start recognition * fix build gallery and pred sys yaml
上级
91665f56
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
218 addition
and
38 deletion
+218
-38
deploy/configs/build_cartoon.yaml
deploy/configs/build_cartoon.yaml
+6
-5
deploy/configs/build_inshop.yaml
deploy/configs/build_inshop.yaml
+4
-4
deploy/configs/build_logo.yaml
deploy/configs/build_logo.yaml
+4
-4
deploy/configs/build_vehicle.yaml
deploy/configs/build_vehicle.yaml
+4
-4
deploy/configs/inference_cartoon.yaml
deploy/configs/inference_cartoon.yaml
+7
-6
deploy/configs/inference_inshop.yaml
deploy/configs/inference_inshop.yaml
+5
-5
deploy/configs/inference_logo.yaml
deploy/configs/inference_logo.yaml
+5
-5
deploy/configs/inference_vehicle.yaml
deploy/configs/inference_vehicle.yaml
+5
-5
docs/zh_CN/tutorials/quick_start_recognition.md
docs/zh_CN/tutorials/quick_start_recognition.md
+178
-0
未找到文件。
deploy/configs/build_cartoon.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
rec_inference_model_dir
:
"
./
cartoon/model
"
rec_inference_model_dir
:
"
./
models/cartoon_rec_ResNet50_iCartoon_v1.0_infer/
"
batch_size
:
1
batch_size
:
1
use_gpu
:
True
use_gpu
:
True
enable_mkldnn
:
True
enable_mkldnn
:
True
...
@@ -26,10 +26,11 @@ RecPreProcess:
...
@@ -26,10 +26,11 @@ RecPreProcess:
RecPostProcess
:
null
RecPostProcess
:
null
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
cartoon
/index/"
index_path
:
"
./
dataset/cartoon_demo_data_v1.0
/index/"
image_root
:
"
./
cartoon/dataset
/"
image_root
:
"
./
dataset/cartoon_demo_data_v1.0
/"
data_file
:
"
./
cartoon
/data_file.txt"
data_file
:
"
./
dataset/cartoon_demo_data_v1.0
/data_file.txt"
delimiter
:
"
\t
"
delimiter
:
"
\t
"
dist_type
:
"
IP"
dist_type
:
"
IP"
pq_size
:
100
pq_size
:
100
...
...
deploy/configs/build_inshop.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
rec_inference_model_dir
:
"
./
inshop/rec
/"
rec_inference_model_dir
:
"
./
models/product_ResNet50_vd_Inshop_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
use_gpu
:
True
use_gpu
:
True
enable_mkldnn
:
True
enable_mkldnn
:
True
...
@@ -26,9 +26,9 @@ RecPostProcess: null
...
@@ -26,9 +26,9 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
inshop/inshop_index
/"
index_path
:
"
./
dataset/product_demo_data_v1.0/query
/"
image_root
:
"
./
inshop/dataset/
"
image_root
:
"
./
dataset/product_demo_data_v1.0
"
data_file
:
"
./
inshop/inshop_gallery_demo
.txt"
data_file
:
"
./
dataset/product_demo_data_v1.0/data_file
.txt"
delimiter
:
"
"
delimiter
:
"
"
dist_type
:
"
IP"
dist_type
:
"
IP"
pq_size
:
100
pq_size
:
100
...
...
deploy/configs/build_logo.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
rec_inference_model_dir
:
"
./
logo/model
/"
rec_inference_model_dir
:
"
./
models/logo_rec_ResNet50_Logo3K_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
use_gpu
:
True
use_gpu
:
True
enable_mkldnn
:
True
enable_mkldnn
:
True
...
@@ -26,9 +26,9 @@ RecPostProcess: null
...
@@ -26,9 +26,9 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
logo/logo_
index/"
index_path
:
"
./
dataset/logo_demo_data_v1.0/
index/"
image_root
:
"
./
logo/dataset
/"
image_root
:
"
./
dataset/logo_demo_data_v1.0
/"
data_file
:
"
./
logo/logo_gallery_demo
.txt"
data_file
:
"
./
dataset/logo_demo_data_v1.0/data_file
.txt"
delimiter
:
"
\t
"
delimiter
:
"
\t
"
dist_type
:
"
IP"
dist_type
:
"
IP"
pq_size
:
100
pq_size
:
100
...
...
deploy/configs/build_vehicle.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
rec_inference_model_dir
:
"
./
vehicle/model
/"
rec_inference_model_dir
:
"
./
models/vehicle_cls_ResNet50_CompCars_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
use_gpu
:
True
use_gpu
:
True
enable_mkldnn
:
True
enable_mkldnn
:
True
...
@@ -26,9 +26,9 @@ RecPostProcess: null
...
@@ -26,9 +26,9 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
vehilce/vehicle_
index/"
index_path
:
"
./
dataset/vehicle_demo_data_v1.0/
index/"
image_root
:
"
./
vehicle/dataset
/"
image_root
:
"
./
dataset/vehicle_demo_data_v1.0
/"
data_file
:
"
./
vehilce/demo_gallery
.txt"
data_file
:
"
./
dataset/vehicle_demo_data_v1.0/data_file
.txt"
delimiter
:
"
"
delimiter
:
"
"
dist_type
:
"
IP"
dist_type
:
"
IP"
pq_size
:
100
pq_size
:
100
...
...
deploy/configs/inference_cartoon.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
infer_imgs
:
"
./dataset/
iCartoonFace/val2/0000000.jpg
"
infer_imgs
:
"
./dataset/
cartoon_demo_data_v1.0/query/
"
det_inference_model_dir
:
"
./
cartoon/det
"
det_inference_model_dir
:
"
./
models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer/
"
rec_inference_model_dir
:
"
./
cartoon/rec
"
rec_inference_model_dir
:
"
./
models/cartoon_rec_ResNet50_iCartoon_v1.0_infer/
"
batch_size
:
1
batch_size
:
1
image_shape
:
[
3
,
640
,
640
]
image_shape
:
[
3
,
640
,
640
]
threshold
:
0.5
threshold
:
0.5
...
@@ -49,6 +49,7 @@ RecPreProcess:
...
@@ -49,6 +49,7 @@ RecPreProcess:
RecPostProcess
:
null
RecPostProcess
:
null
IndexProcess
:
IndexProcess
:
index_path
:
"
./cartoon
/index/"
index_path
:
"
./dataset/cartoon_demo_data_v1.0
/index/"
search_budget
:
100
search_budget
:
100
return_k
:
10
return_k
:
5
dist_type
:
"
IP"
deploy/configs/inference_inshop.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
infer_imgs
:
"
./
inshop/demo/01_3_back.jpg
"
infer_imgs
:
"
./
dataset/product_demo_data_v1.0/query/
"
det_inference_model_dir
:
"
./
inshop/det
/"
det_inference_model_dir
:
"
./
models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer
/"
rec_inference_model_dir
:
"
./
inshop/rec
/"
rec_inference_model_dir
:
"
./
models/product_ResNet50_vd_Inshop_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
image_shape
:
[
3
,
640
,
640
]
image_shape
:
[
3
,
640
,
640
]
threshold
:
0.0
threshold
:
0.0
...
@@ -48,7 +48,7 @@ RecPostProcess: null
...
@@ -48,7 +48,7 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
inshop/inshop_index
"
index_path
:
"
./
dataset/product_demo_data_v1.0/index/
"
search_budget
:
100
search_budget
:
100
return_k
:
10
return_k
:
5
dist_type
:
"
IP"
dist_type
:
"
IP"
deploy/configs/inference_logo.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
infer_imgs
:
"
./
logo/demo/logo_APK
.jpg"
infer_imgs
:
"
./
dataset/logo_demo_data_v1.0/query/logo_AKG
.jpg"
det_inference_model_dir
:
"
./
logo/det
/"
det_inference_model_dir
:
"
./
models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer
/"
rec_inference_model_dir
:
"
./
logo/rec
/"
rec_inference_model_dir
:
"
./
models/logo_rec_ResNet50_Logo3K_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
image_shape
:
[
3
,
640
,
640
]
image_shape
:
[
3
,
640
,
640
]
threshold
:
0.5
threshold
:
0.5
...
@@ -48,7 +48,7 @@ RecPostProcess: null
...
@@ -48,7 +48,7 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
logo_
index/"
index_path
:
"
./
dataset/logo_demo_data_v1.0/
index/"
search_budget
:
100
search_budget
:
100
return_k
:
10
return_k
:
5
dist_type
:
"
IP"
dist_type
:
"
IP"
deploy/configs/inference_vehicle.yaml
浏览文件 @
c24dc93c
Global
:
Global
:
infer_imgs
:
"
./
vehicle/demo/2e3521935c280c.jpg
"
infer_imgs
:
"
./
dataset/vehicle_demo_data_v1.0/query/
"
det_inference_model_dir
:
"
./
det
/"
det_inference_model_dir
:
"
./
models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer
/"
rec_inference_model_dir
:
"
./
vehicle/rec
/"
rec_inference_model_dir
:
"
./
models/vehicle_cls_ResNet50_CompCars_v1.0_infer
/"
batch_size
:
1
batch_size
:
1
image_shape
:
[
3
,
640
,
640
]
image_shape
:
[
3
,
640
,
640
]
threshold
:
0.5
threshold
:
0.5
...
@@ -50,7 +50,7 @@ RecPostProcess: null
...
@@ -50,7 +50,7 @@ RecPostProcess: null
# indexing engine config
# indexing engine config
IndexProcess
:
IndexProcess
:
index_path
:
"
./
vehicle_
index/"
index_path
:
"
./
dataset/vehicle_demo_data_v1.0/
index/"
search_budget
:
100
search_budget
:
100
return_k
:
10
return_k
:
5
dist_type
:
"
IP"
dist_type
:
"
IP"
docs/zh_CN/tutorials/quick_start_recognition.md
0 → 100644
浏览文件 @
c24dc93c
# 图像识别快速开始
图像识别主要包含3个部分:主体检测得到检测框、识别提取特征、根据特征进行检索。
## 1. 环境配置
请先参考
[
快速安装
](
./installation.md
)
配置PaddleClas运行环境。
本部分内容需要在
`deploy`
文件夹下运行,在PaddleClas代码的根目录下,可以通过以下方法进入该文件夹
```
shell
cd
deploy
```
## 2. inference 模型和数据下载
检测模型与4个方向(Logo、动漫人物、车辆、商品)的识别inference模型以及测试数据下载方法如下。。
| 模型简介 | 推荐场景 | 测试数据地址 | inference模型 |
| ------------ | ------------- | ------- | -------- |
| 通用主体检测模型 | 通用场景 | - |
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar
)
|
| Logo识别模型 | Logo场景 |
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/logo_demo_data_v1.0.tar
)
|
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/logo_rec_ResNet50_Logo3K_v1.0_infer.tar
)
|
| 动漫人物识别模型 | 动漫人物场景 |
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/cartoon_demo_data_v1.0.tar
)
|
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/cartoon_rec_ResNet50_iCartoon_v1.0_infer.tar
)
|
| 车辆细分类模型 | 车辆场景 |
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/vehicle_demo_data_v1.0.tar
)
|
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/vehicle_cls_ResNet50_CompCars_v1.0_infer.tar
)
|
| 商品识别模型 | 商品场景 |
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/product_demo_data_v1.0.tar
)
|
[
下载链接
](
https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/product_ResNet50_vd_Inshop_v1.0_infer.tar
)
|
**注意**
:windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下
*
下载并解压数据与模型
```
shell
mkdir
dataset
cd
dataset
# 下载demo数据并解压
wget
{
url/of/data
}
&&
tar
-xf
{
name/of/data/package
}
cd
..
mkdir
models
cd
models
# 下载识别inference模型并解压
wget
{
url/of/inference model
}
&&
tar
-xf
{
name/of/inference model/package
}
cd
..
```
### 2.1 下载通用检测模型
```
shell
mkdir
models
cd
models
# 下载通用检测inference模型并解压
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar
&&
tar
-xf
ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar
cd
..
```
### 2.1 Logo识别
以Logo识别demo为例,按照下面的命令下载demo数据与模型。
```
shell
mkdir
dataset
cd
dataset
# 下载demo数据并解压
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/logo_demo_data_v1.0.tar
&&
tar
-xf
logo_demo_data_v1.0.tar
cd
..
mkdir
models
cd
models
# 下载识别inference模型并解压
wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/logo_rec_ResNet50_Logo3K_v1.0_infer.tar
&&
tar
-xf
logo_rec_ResNet50_Logo3K_v1.0_infer.tar
cd
..
```
解压完毕后,
`dataset`
文件夹下应有如下文件结构:
```
├── logo_demo_data_v1.0
│ ├── data_file.txt
│ ├── gallery
│ ├── index
│ └── query
├── ...
```
`models`
文件夹下应有如下文件结构:
```
├── logo_rec_ResNet50_Logo3K_v1.0_infer
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
│ └── inference.pdmodel
├── ppyolov2_r50vd_dcn_mainbody_v1.0_infer
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
│ └── inference.pdmodel
```
按照下面的方式可以完成对于图片的检索
```
shell
python3.7 python/predict_system.py
-c
configs/inference_logo.yaml
```
配置文件中,部分关键字段解释如下
```
yaml
Global
:
infer_imgs
:
"
./dataset/logo_demo_data_v1.0/query/"
# 预测图像
det_inference_model_dir
:
"
./models/logo_rec_ResNet50_Logo3K_v1.0_infer/"
# 检测inference模型文件夹
rec_inference_model_dir
:
"
./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer/"
# 识别inference模型文件夹
batch_size
:
1
# 预测的批大小
image_shape
:
[
3
,
640
,
640
]
# 检测的图像尺寸
threshold
:
0.5
# 检测的阈值,得分超过该阈值的检测框才会被检出
max_det_results
:
1
# 用于图像识别的检测框数量,符合阈值条件的检测框中,根据得分,最多对其中的max_det_results个检测框做后续的识别
# indexing engine config
IndexProcess
:
index_path
:
"
./dataset/logo_demo_data_v1.0/index/"
# 索引文件夹,用于识别特征提取之后的索引
search_budget
:
100
return_k
:
5
# 从底库中反馈return_k个数量的最相似内容
dist_type
:
"
IP"
```
最终输出结果如下
```
[{'bbox': [25, 21, 483, 382], 'rec_docs': ['AKG', 'AKG', 'AKG', 'AKG', 'AKG'], 'rec_scores': array([2.32288337, 2.31903863, 2.28398442, 2.16804123, 2.10190272])}]
```
其中bbox表示检测出的主体所在位置,rec_docs表示底库中与检出主体最相近的若干张图像对应的标签,rec_scores表示对应的相似度。
如果希望预测文件夹内的图像,可以直接修改配置文件,也可以通过下面的
`-o`
参数修改对应的配置。
```
shell
python3.7 python/predict_system.py
-c
configs/inference_logo.yaml
-o
Global.infer_imgs
=
"./dataset/logo_demo_data_v1.0/query"
```
如果希望在底库中新增图像,重新构建idnex,可以使用下面的命令重新构建index。
```
shell
python3.7 python/build_gallery.py
-c
configs/build_logo.yaml
```
其中index相关配置如下。
```
yaml
# indexing engine config
IndexProcess
:
index_path
:
"
./dataset/logo_demo_data_v1.0/index/"
# 保存的索引地址
image_root
:
"
./dataset/logo_demo_data_v1.0/"
# 图像的根目录
data_file
:
"
./dataset/logo_demo_data_v1.0/data_file.txt"
# 图像的数据list文本,每一行包含图像的文件名与标签信息
delimiter
:
"
\t
"
dist_type
:
"
IP"
pq_size
:
100
embedding_size
:
512
# 特征维度
```
需要改动的内容为:
1.
在图像根目录下面添加对应的图像内容(也可以在其子文件夹下面,保证最终根目录与数据list文本中添加的文件名合并之后,图像存在即可)
2.
图像的数据list文本中添加图像新的内容,每行包含图像文件名以及对应的标签信息。
### 2.2 其他任务的识别
如果希望尝试其他方向的识别与检索效果,在下载解压好对应的demo数据与模型之后,替换对应的配置文件即可完成预测。
| 场景 | 预测配置文件 | 构建底库的配置文件 |
| ---- | ----- | ----- |
| 动漫人物 |
[
inference_cartoon.yaml
](
../../../deploy/configs/inference_cartoon.yaml
)
|
[
build_cartoon.yaml
](
../../../deploy/configs/build_cartoon.yaml
)
|
| 车辆 |
[
inference_vehicle.yaml
](
../../../deploy/configs/inference_vehicle.yaml
)
|
[
build_vehicle.yaml
](
../../../deploy/configs/build_vehicle.yaml
)
|
| 商品 |
[
inference_inshop.yaml
](
../../../deploy/configs/
)
|
[
build_inshop.yaml
](
../../../deploy/configs/build_inshop.yaml
)
|
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录