Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
5e064643
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看板
提交
5e064643
编写于
6月 16, 2021
作者:
C
cuicheng01
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update product docs and configs
上级
7b77835c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
137 addition
and
5 deletion
+137
-5
deploy/configs/build_product.yaml
deploy/configs/build_product.yaml
+1
-1
deploy/configs/inference_product.yaml
deploy/configs/inference_product.yaml
+3
-3
docs/images/product/aliproduct.png
docs/images/product/aliproduct.png
+0
-0
docs/images/product/inshop.png
docs/images/product/inshop.png
+0
-0
docs/zh_CN/application/product_recognition.md
docs/zh_CN/application/product_recognition.md
+132
-0
docs/zh_CN/tutorials/quick_start_recognition.md
docs/zh_CN/tutorials/quick_start_recognition.md
+1
-1
未找到文件。
deploy/configs/build_
inshop
.yaml
→
deploy/configs/build_
product
.yaml
浏览文件 @
5e064643
Global
:
rec_inference_model_dir
:
"
./models/product_ResNet50_vd_
Inshop
_v1.0_infer"
rec_inference_model_dir
:
"
./models/product_ResNet50_vd_
aliproduct
_v1.0_infer"
batch_size
:
1
use_gpu
:
True
enable_mkldnn
:
True
...
...
deploy/configs/inference_
inshop
.yaml
→
deploy/configs/inference_
product
.yaml
浏览文件 @
5e064643
Global
:
infer_imgs
:
"
./dataset/product_demo_data_v1.0/query"
det_inference_model_dir
:
"
./models/ppyolov2_r50vd_dcn_mainbody_v1.0_infer"
rec_inference_model_dir
:
"
./models/product_ResNet50_vd_
Inshop
_v1.0_infer"
rec_inference_model_dir
:
"
./models/product_ResNet50_vd_
aliproduct
_v1.0_infer"
batch_size
:
1
image_shape
:
[
3
,
640
,
640
]
threshold
:
0.
0
max_det_results
:
1
threshold
:
0.
2
max_det_results
:
2
labe_list
:
-
foreground
...
...
docs/images/product/aliproduct.png
0 → 100644
浏览文件 @
5e064643
3.7 MB
docs/images/product/inshop.png
0 → 100644
浏览文件 @
5e064643
3.0 MB
docs/zh_CN/application/product_recognition.md
0 → 100644
浏览文件 @
5e064643
# 商品识别
商品识别技术,是现如今应用非常广的一个领域。拍照购物的方式已经被很多人所采纳,无人结算台已经走入各大超市,无人超市更是如火如荼,这背后都是以商品识别技术作为支撑。商品识别技术大概是"商品检测+商品识别"这样的流程,商品检测模块负责检测出潜在的商品区域,商品识别模型负责将商品检测模块检测出的主体进行识别。识别模块多采用检索的方式,根据查询图片和底库图片进行相似度排序获得预测类别。此文档主要对商品图片的特征提取部分进行相关介绍,内容包括:
-
数据集及预处理方式
-
Backbone的具体设置
-
Loss函数的相关设置
## 1 Aliproduct
### 1 数据集
<img
src=
"../../images/product/aliproduct.png"
style=
"zoom:50%;"
/>
Aliproduct数据是天池竞赛开源的一个数据集,也是目前开源的最大的商品数据集,其有5万多个标识类别,约250万训练图片。相关数据介绍参考
[
原论文
](
https://arxiv.org/abs/2008.05359
)
。
### 2 图像预处理
-
图像
`Resize`
到224x224
-
图像
`RandomFlip`
-
Normlize:图像归一化
### 3 Backbone的具体设置
具体是用
`ResNet50_vd`
作为backbone,主要做了如下修改:
-
使用ImageNet预训练模型
-
在GAP后、分类层前加入一个512维的embedding FC层,没有做BatchNorm和激活。
配置文件如下,其中BackboneStopLayer定义了backbone的输出层,在此处为GAP经过flatten后的层,Neck部分为embedding层,也是最后表示特征的层,Head部分为分类层,其输出维度等于训练数据集的类别数。
```
yaml
Arch
:
name
:
RecModel
Backbone
:
name
:
ResNet50_vd
pretrained
:
True
BackboneStopLayer
:
name
:
flatten_0
Neck
:
name
:
FC
embedding_size
:
2048
class_num
:
512
Head
:
name
:
FC
embedding_size
:
512
class_num
:
50030
```
### 4 Loss的设置
在Aliproduct商品识别中,使用了
[
CELoss
](
../../../ppcls/loss/celoss.py
)
训练, 为了获得更加鲁棒的特征,后续会使用其他Loss参与训练,敬请期待。配置文件如下:
```
yaml
Loss
:
Train
:
-
CELoss
:
weight
:
1.0
Eval
:
-
CELoss
:
weight
:
1.0
```
## 2 Inshop
### 1 数据集
<img
src=
"../../images/product/inshop.png"
style=
"zoom:50%;"
/>
Inshop数据集是DeepFashion的子集,其是香港中文大学开放的一个large-scale服装数据集,Inshop数据集是其中服装检索数据集,涵盖了大量买家秀的服装。相关数据介绍参考
[
原论文
](
https://openaccess.thecvf.com/content_cvpr_2016/papers/Liu_DeepFashion_Powering_Robust_CVPR_2016_paper.pdf
)
。
### 2 图像预处理
数据增强是训练大规模
-
图像
`Resize`
到224x224
-
图像
`RandomFlip`
-
Normlize:图像归一化
-
[
RandomErasing
](
https://arxiv.org/pdf/1708.04896v2.pdf
)
### 3 Backbone的具体设置
具体是用
`ResNet50_vd`
作为backbone,主要做了如下修改:
-
使用ImageNet预训练模型
-
在GAP后、分类层前加入一个512维的embedding FC层,没有做BatchNorm和激活。
-
分类层采用Arcmargin Head,具体原理可参考
[
原论文
](
https://arxiv.org/pdf/1801.07698.pdf
)
。
配置文件如下,其中BackboneStopLayer定义了backbone的输出层,在此处为GAP经过flatten后的层,Neck部分为embedding层,也是最后表示特征的层,Head部分为arcmargin head, 代码实现为
[
arcmargin.py
](
../../../ppcls/arch/gears/arcmargin.py
)
,其输出维度等于训练数据集的类别数。
```
yaml
Arch
:
name
:
RecModel
infer_output_key
:
features
infer_add_softmax
:
False
Backbone
:
name
:
ResNet50_vd
pretrained
:
False
BackboneStopLayer
:
name
:
flatten_0
Neck
:
name
:
FC
embedding_size
:
2048
class_num
:
512
Head
:
name
:
ArcMargin
embedding_size
:
512
class_num
:
3997
margin
:
0.15
scale
:
30
```
### 4 Loss的设置
在Inshop商品识别中,使用了
[
CELoss
](
../../../ppcls/loss/celoss.py
)
和
[
TripletLossV2
](
../../../ppcls/loss/triplet.py
)
联合训练。配置文件如下:
```
yaml
Loss
:
Train
:
-
CELoss
:
weight
:
1.0
-
TripletLossV2
:
weight
:
1.0
margin
:
0.5
Eval
:
-
CELoss
:
weight
:
1.0
```
docs/zh_CN/tutorials/quick_start_recognition.md
浏览文件 @
5e064643
...
...
@@ -39,7 +39,7 @@
| 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
)
|
[
inference_logo.yaml
](
../../../deploy/configs/inference_logo.yaml
)
|
[
build_logo.yaml
](
../../../deploy/configs/build_logo.yaml
)
|
| 动漫人物识别模型 | 动漫人物场景 |
[
数据下载链接
](
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
)
|
[
inference_cartoon.yaml
](
../../../deploy/configs/inference_cartoon.yaml
)
|
[
build_cartoon.yaml
](
../../../deploy/configs/build_cartoon.yaml
)
|
| 车辆细分类模型 | 车辆场景 |
[
数据下载链接
](
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
)
|
[
inference_vehicle.yaml
](
../../../deploy/configs/inference_vehicle.yaml
)
|
[
build_vehicle.yaml
](
../../../deploy/configs/build_vehicle.yaml
)
|
| 商品识别模型 | 商品场景 |
[
数据下载链接
](
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
)
|
[
inference_inshop.yaml
](
../../../deploy/configs/
)
|
[
build_inshop.yaml
](
../../../deploy/configs/build_inshop
.yaml
)
|
| 商品识别模型 | 商品场景 |
[
数据下载链接
](
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_
aliproduct_v1.0_infer.tar
)
|
[
inference_product.yaml
](
../../../deploy/configs/inference_product.yaml
)
|
[
build_product.yaml
](
../../../deploy/configs/build_product
.yaml
)
|
**注意**
:windows 环境下如果没有安装wget,下载模型时可将链接复制到浏览器中下载,并解压放置在相应目录下;linux或者macOS用户可以右键点击,然后复制下载链接,即可通过
`wget`
命令下载。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录