图1 商品识别应用展示
然而,相较更加普遍的人脸识别技术来说,商品识别在实际的产业应用中也面临着其独有的巨大挑战:
- 商品包装相似:同类别商品口味不同且价格也不同,不同类别商品外包装相似,都对图像识别精度具有较高的要求;
- 干扰因素众多:同类别商品在识别时容易因角度问题发生变形、折叠、遮挡等干扰,对识别结果造成影响;
- 品类更新极快:零售商品通常以小时级别速度更新迭代,每增加新产品时若仅靠单一模型均需重新训练模型,模型训练成本及时间成本极大;
针对上述难点,飞桨产业实践范例库基于真实零售场景中的数据,推出了智慧商超商品识别范例,可用于商品智能结算等多种场景,提供从数据准备、技术方案、模型训练优化,到模型部署的全流程可复用方案,有效解决了识别速度和精度要求极高、不同商品相似度极高、模型重训成本高的问题,大大提高了人工智能在商超零售行业的应用落地可能性。
⭐项目链接⭐
https://github.com/PaddlePaddle/PaddleClas/tree/develop/docs/zh_CN/samples
所有源码及教程均已开源,欢迎大家star鼓励~
智慧零售商品识别方案
基于PP-ShiTu实现的商品识别方案为零售场景中商品多类别、小样本、高相似和更新频繁问题提供了新的思路,不仅能对多类别商品进行精准识别,也可以满足对预测效率的极致追求。
图2 商品识别目标说明
场景难点
- 数据相似度高:同一件商品,在不同情况下所获得的商品图像往往存在相当大的差异;不同商品很可能拥有非常类似的包装,比如口味不同。
- 系统性能要求高:需要同时解决检测和识别两个任务,选模型和优化时要权衡精度与速度两方面。
- 模型泛化性要求高:需要支持对未知类别的商品进行识别,有效支持训练数据少、新增类别的情况。
方案设计
针对上述难点,经过对模型性能精度和速度的考虑,最终选用了飞桨图像分类套件PaddleClas开源的图像识别PP-ShiTu技术方案,并且使用飞桨服务化部署框架Paddle Serving 进行服务化部署。
PP-ShiTu是一个实用的轻量级通用图像识别系统,主要由主体检测、特征学习和向量检索三个模块组成。该系统从骨干网络选择和调整、损失函数的选择、数据增强、学习率变换策略、正则化参数选择、预训练模型使用以及模型裁剪量化8个方面,采用多种策略,对各个模块的模型进行优化,并经过10w 类别数据进行训练,最终得到在CPU上预测时间仅需0.2s的多场景通用图像识别系统。
图3 项目方案说明
模型优化策略和效果
尝试数据增强、换不同的backbone、选择不同的Metric Learning方法、采用蒸馏方法进行模型调优,针对不同方案给出实验效果,模型最终可以达到98.39%以上的Top1 Recall。
同时,为满足商品识别场景需要兼具扩展性的要求,本范例还提供了低成本更新检索库的识别方案,无需重新训练模型即可实现对新增类别的精准识别,具体解决方案欢迎大家关注直播课。
图4 效果展示说明
部署方案
部署方面使用飞桨服务化部署框架Paddle Serving进行部署,满足用户批量预测、数据安全性高、延迟低的需求,快速在本地完成部署方案,本次范例包含模型转换配置到部署请求的全流程讲解,欢迎小伙伴们关注直播。
如下图展示本次商品识别范例在智能结算场景的应用
范例使用工具介绍
PaddleClas是一个提供了从数据处理、模型准备、模型优化、到预测部署全流程工具的图像分类开发套件。其中的轻量级图像识别系统PP-ShiTu更是综合了目标检测、图像分类、度量学习、图像检索等多重技术,能够完美解决小样本、高相似、多类别等产业落地难点,CPU上仅需0.2s轻松识别十万类,而且十分简单易用,极大地降低开发门槛。
产业实践范例教程
助力企业跨越AI落地鸿沟
飞桨产业实践范例,致力于加速AI在产业落地的前进路径,减少理论技术与产业应用的差距。范例来源于产业真实业务场景,通过完整的代码实现,提供从数据准备到模型部署的方案过程解析,堪称产业落地的“自动导航”。
- 真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
- 完整代码实现:提供可一键运行的代码,在“AI Studio一站式开发平台”上使用免费算力一键Notebook运行;
- 详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
- 直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。