PaddleClas/docs/zh_CN/application/product_recognition.md

3.0 KiB
Raw Blame History

商品识别

商品识别技术,是现如今应用非常广的一个领域。拍照购物的方式已经被很多人所采纳,无人结算台已经走入各大超市,无人超市更是如火如荼,这背后都是以商品识别技术作为支撑。商品识别技术大概是"商品检测+商品识别"这样的流程,商品检测模块负责检测出潜在的商品区域,商品识别模型负责将商品检测模块检测出的主体进行识别。识别模块多采用检索的方式,根据查询图片和底库图片进行相似度排序获得预测类别。此文档主要对商品图片的特征提取部分进行相关介绍,内容包括:

  • 数据集及预处理方式
  • Backbone的具体设置
  • Loss函数的相关设置

1 Aliproduct

1 数据集

Aliproduct数据是天池竞赛开源的一个数据集也是目前开源的最大的商品数据集其有5万多个标识类别约250万训练图片。相关数据介绍参考原论文

2 图像预处理

  • 图像Resize到224x224
  • 图像RandomFlip
  • Normlize图像归一化

3 Backbone的具体设置

具体是用ResNet50_vd作为backbone主要做了如下修改

  • 使用ImageNet预训练模型

  • 在GAP后、分类层前加入一个512维的embedding FC层没有做BatchNorm和激活。

4 Loss的设置

在Aliproduct商品识别中使用了CELoss训练, 为了获得更加鲁棒的特征后续会使用其他Loss参与训练敬请期待。

全部的超参数及具体配置:ResNet50_vd_Aliproduct.yaml

2 Inshop

1 数据集

Inshop数据集是DeepFashion的子集其是香港中文大学开放的一个large-scale服装数据集Inshop数据集是其中服装检索数据集涵盖了大量买家秀的服装。相关数据介绍参考原论文

2 图像预处理

数据增强是训练大规模

  • 图像Resize到224x224
  • 图像RandomFlip
  • Normlize图像归一化
  • RandomErasing

3 Backbone的具体设置

具体是用ResNet50_vd作为backbone主要做了如下修改

  • 使用ImageNet预训练模型

  • 在GAP后、分类层前加入一个512维的embedding FC层没有做BatchNorm和激活。

  • 分类层采用Arcmargin Head,具体原理可参考原论文

4 Loss的设置

在Inshop商品识别中使用了CELossTripletLossV2联合训练。

全部的超参数及具体配置:ResNet50_vd_Inshop.yaml