生鲜零售作为民生消费的重要一环,在促进行业新消费升级的进程中有着至关重要的作用。在超市等无人零售场景中,目前结算方式主要有以下几种:
但是以上几种方法存在如下缺点:
- 条形码方式:对于成品包装的商品较为成熟,但生鲜产品本身“无码可扫”;
- RFID方式:所需的额外费用难以长期承担;
- 生鲜称重方式:对于相同品种不同单价的商品无法很好区分,需要人工辨别商品品种,效率较低。
因此,选择一种既能大规模支持各种商品识别,又能方便管理,同时维护成本不高的识别系统,显得尤为重要。
针对以上的行业需求,飞桨联合Intel提供了一套基于飞桨图像分类开发套件PaddleClas和OpenVINO™工具套件的生鲜与零售商品识别系统,满足商品识别场景需要兼顾扩展性的要求。在此方案中,只需训练一套模型,在后续使用过程中,无需频繁重新训练模型, 仅需要在检索库中,配置少量有代表性的新增产品图像,就能够很好地解决新增商品问题,同时也无需添加辅助设备,极大降低了维护及使用成本。
项目链接
https://aistudio.baidu.com/projectdetail/6649316
本项目中,飞桨联合Intel建设了生鲜与零售商品识别系统产业实践范例,基于PP-ShiTuV2 Pipeline详解模型训练,新品种入库,以及如何基于Intel OpenVINO™快速部署,优化CPU推理任务性能,极致利用Intel x86硬件资源。
场景难度
- 物体形状千差万别,如何找到待检测的商品?
- 商品及生鲜品种繁多,如何准确识别对应种类?
- 使用过程中,商品及生鲜品类迭代速度快,如何减少模型更新成本?
方案设计
如图所示,针对以上问题,我们使用图中的Pipeline以解决上述问题。整个Pipeline中,主要分为三部分:
主体检测
检测出待识别的商品,去掉冗余的背景信息,提高生鲜品识别的精度;
特征提取
将待识别的生鲜品图像进行提取特征;
检索模块
将待检索的特征与库中的生鲜品特征比对,得到待检索生鲜品的标签。
模型优化策略和效果
主体检测
主题检测是目前应用非常广泛的一种检测技术,它指的是检测出图片中一个或者多个主体的坐标位置,然后将图像中的对应区域裁剪下来进行识别。主体检测是识别任务的前序步骤,输入图像经过主体检测后再进行识别,可以过滤复杂背景,有效提升识别精度。考虑到检测速度、模型大小、检测精度等因素,最终选择 PaddleDetection 自研的轻量级模型 PicoDet-LCNet_x2_5 作为PP-ShiTuV2 的主体检测模型,PicoDet系列模型融合了ATSS、Generalized Focal Loss、余弦学习率策略、Cycle-EMA、轻量级检测 head等优化算法,此外为了更好地兼顾检测速度与效果,PicoDet-LCNet_x2_5将neck 中的 CSP module 换成了LCNet module。
特征提取
特征提取是图像识别中的关键一环,它的作用是将输入的图片转化为固定维度的特征向量,用于后续的向量检索。考虑到特征提取模型的速度、模型大小、特征提取性能等因素,最终选择 PaddleClas 自研的PPLCNetV2_base作为特征提取网络。PP-LCNetV2 模型是在 PP-LCNetV1 的基础上优化而来,主要使用重参数化策略组合了不同大小卷积核的深度卷积,并优化了点卷积、Shortcut等。相比 PP-ShiTuV1 所使用的 PPLCNet_x2_5, PPLCNetV2_base 基本保持了较高的分类精度,并节省了40%的推理时间。
模型部署
使用OpenVINO ™作为推理后端, 倍数级提升任务在CPU侧的处理速度。
采用通用性极高的x86的平台作为模型部署设备, 可充分利用并实现多任务负载,无需购置额外的加速卡设备,大大节省项目成本。
本项目的最终部署环境为:Intel x86平台设备。 考虑开发便捷性,本次示例使用python部署开发环境,该系统是商品检测、商品特征提取以及商品检索三大任务所构建的Pipeline,可以实现基于本地数据仓库的轻量化零售商品识别系统。在星河社区也提供了完整的使用示例与开发说明,可参考该教程快速学习,并针对实际项目进行开发和集成。
精彩课程预告
为了让小伙伴们更便捷地应用范例教程,OpenVINO™软件开发工程师Ethan将于8月31日(周四)19:00为大家深度解析从数据准备、方案设计到模型优化部署的开发全流程,手把手教大家进行代码实践。