Giter VIP home page Giter VIP logo

thomas-yanxin / smart_container Goto Github PK

View Code? Open in Web Editor NEW
260.0 8.0 79.0 842.81 MB

🍰🍎ColugoMum: Intelligent Retail Settlement Platform can accurately locate and identify each commodity, and can return a complete shopping list and the actual total price of commodities that customers should pay.

Home Page: https://github.com/ColugoMum

License: GNU Lesser General Public License v2.1

JavaScript 0.40% Python 87.62% CSS 0.25% HTML 0.72% CMake 0.09% C++ 1.37% Shell 0.34% Makefile 0.21% C 1.62% Batchfile 0.03% VBScript 0.01% XSLT 0.01% Classic ASP 0.01% PowerShell 0.01% Tcl 6.88% F# 0.01% C# 0.03% GSC 0.41% GLSL 0.01%
paddlepaddle paddleclas django nano deep-learning pp-shitu wxapp image-recognition product-recognition image-retrieval-system

smart_container's Introduction

GitHub Repo stars GitHub forks GitHub python os contributors
简体中文 | English | 启智OpenI | github

:项目会第一时间在OpenI启智社区首发,其余平台保持同步。

求求了,点个StarT_ZKW6KJ_X{% %P_AY$`( X

Star History Chart

😉近期更新😉

  1. 因项目不断扩大,将本Smart_container项目架构拆分为组织架构,并计划拓展边界,您可以移步至ColugoMum进行查看;
  2. 提供基于PPLCNET骨干网络的端侧级RP2K预训练模型,精度达96.91%;
  3. 提供图像识别教程,并提供在线实训环境方便开发者进行训练调优。此教程也已收录于飞桨产业实践范例库
  4. 已经提供基于PPLCNETV2的端侧级模型,即将提供基于PPHGNET的服务端模型,以及相关推理模型。敬请期待;
  5. 欢迎感兴趣的开发者加入RP2K的打榜活动!
  • 项目部署文档:发布项目部署文档Demo版,便于开发者能更快部署本项目进行体验;
  • 发布训练代码:发布模型训练代码及实验结果,以便开发者进行适应性调参工作;
  • 代码bug修复: Pipeline部署方式下检索库更新后需重启服务;
  • 精度大幅提升:自采集数据集测试精度高达99.10%
  • 文档全面升级:Logo全面更新,提供PP-ShiTu模型训练及部署详细文档
  • 部署方式优化:预测速度提升65%,基于CPU整体流程控制在0.9s左右.

🧁项目背景🧁

目前在零售行业的实际运营过程中,会产生巨大的人力成本,例如导购、保洁、结算等,而其中,尤其需要花费大量的人力成本和时间成本在识别商品并对其进行价格结算的过程中,并且在此过程中,顾客也因此而需要排队等待。这样一来零售行业人力成本较大、工作效率极低,二来也使得顾客的购物体验下降。

随着计算机视觉技术的发展,以及无人化、自动化超市运营理念的提出,利用图像识别技术及目标检测技术实现产品的自动识别及自动化结算的需求呼之欲出,即自动结账系统(Automatic checkout, ACO)。基于计算机视觉的自动结账系统能有效降低零售行业的运营成本,提高顾客结账效率,从而进一步提升用户在购物过程中的体验感与幸福感。

适用场景

袋鼯麻麻——智能零售结算平台致力于为大型线下零售体验店提供基于视觉的零售结算方案。

痛点问题

  1. 结算效率要求极高:在大型线下零售体验店购物场景中,若顾客购买的商品较多,采用传统的条形码结算,效率较低,顾客购物体验较差;
  2. 品类更新极快:像新零售这种行业,新品几乎都是按小时级别在更新,每增加新的产品都要辛辛苦苦重新训练模型,仅靠单一模型想要跟上步伐,着实望尘莫及;
  3. 不同商品相似度极高:比如同一种饮料的不同口味,就很可能拥有非常类似的包装。而且即便对于同一件商品,在不同情况下所获得的商品图像都往往存在相当大的差异
  4. 商品类别数以万计:根本没法事先把所有类别都放入训练集。

🍑实现功能🍑

袋鼯麻麻——智能零售结算平台”具体实现在零售过程中对用户购买商品的自动结算。即:利用PaddleClas团队开源的图像识别PP-ShiTu技术,精准地定位顾客购买的商品,并进行智能化、自动化的价格结算。当顾客将自己选购的商品放置在制定区域内时,“袋鼯麻麻——智能零售结算平台”能够精准地定位识别每一个商品,并且能够返回完整的购物清单及顾客应付的实际商品总价格。而当系统有新商品增加时,本系统只需更新检索库即可,无需重新训练模型。

本项目为轻量级通用图像识别系统PP-ShiTu提供了扎实的落地应用案例,对新零售行业中无人零售视觉化智能解决方案提供了非常好的基础和思路,尤其针对解决多类别、小样本、高相似和更新频繁的特殊图像识别场景痛难点提供了可参考的示范,极大地降低零售行业实际运营过程中巨大的人力成本,提升零售行业无人化、自动化、智能化水平。

🍎整体架构🍎

🐻技术路线🐻

袋鼯麻麻——智能零售结算平台 基于PaddleClas作为主要的功能开发套件,利用其开源的PP-ShiTu进行核心功能的开发,并通过PaddleInference将其部署于Jetson Nano,并基于QPT打包.exe打通Windows系统,开发一套符合实际应用需求的工业级智能零售结算平台。

PP-ShiTu是一个实用的轻量级通用图像识别系统,主要由主体检测、特征学习和向量检索三个模块组成。该系统从骨干网络选择和调整、损失函数的选择、数据增强、学习率变换策略、正则化参数选择、预训练模型使用以及模型裁剪量化8个方面,采用多种策略,对各个模块的模型进行优化,最终得到在CPU上仅0.2s即可完成10w+库的图像识别的系统。

整个图像识别系统分为三步(详情见PP-ShiTu训练模块):
(1)通过一个目标检测模型,检测图像物体候选区域;
(2)对每个候选区域进行特征提取;
(3)与检索库中图像进行特征匹配,提取识别结果。

对于新的未知类别,无需重新训练模型,只需要在检索库补入该类别图像,重新建立检索库,就可以识别该类别。

数据集介绍

【The first one】:Products-10K Large Scale Product Recognition Dataset

【The second one】:RP2K: A Large-Scale Retail Product Dataset for Fine-Grained Image Classification

袋鼯麻麻——智能购物平台基于上述两个数据集,结合爬虫,对此两种数据集进行适应性处理。

商品部分list

东古酱油一品鲜
东古黄豆酱750G
东鹏特饮罐装
中华(硬)
中华(软)
乳酸菌600亿_2
乳酸菌600亿_3
乳酸菌600亿原味
乳酸菌600亿芒果
乳酸菌600亿芦荟
...

目前处理后的数据集已在AIStudio开源。

消融实验

model num epoch batch size/gpu cards learning rate use cutout use ssld top1 recall 配置文件
PP_LCNet_x2_5 400 256/4 0.01 N N 98.189% 配置文件
PP_LCNet_x2_5 400 256/4 0.01 Y N 98.21% 配置文件
PP_LCNet_x2_5 400 256/4 0.005 N N 98.201% 配置文件
PP_LCNet_x2_5 400 256/4 0.005 Y N 98.29% 配置文件
PP_LCNet_x2_5 400 256/4 0.001 Y N 98.26% 配置文件
PP_LCNet_x2_5 400 64/4 0.005 Y Y 98.30% 配置文件
PP_LCNet_x2_5 400 64/4 0.0025 Y Y 98.37% 配置文件
PP_LCNet_x2_5 400 64/4 0.002 N Y 98.38% 配置文件
PP_LCNet_x2_5 400 64/4 0.002 Y Y 98.39% 配置文件

:

  1. 本实验均基于 GPU:Tesla V100* 4; CPU:Inter Xeon* 32; RAM:DDR4 128GB 进行训练并测试;
  2. 本实验均基于上述零售商品特征学习数据集进行训练和测试;
  3. 即将对RP2K等大型零售商品开源数据集进行评测。

🌍部署方式🌍

本项目已打通Jetson Nano、Windows、linux系统

  • Windows 端
    [本项目提供了较为简单的demo演示版本]

    使用QPT打包
    链接:https://pan.baidu.com/s/194ApbJuDJWyV7tv5sCaGsg 提取码:wy7i

    解压后运行启动程序.exe即可

  • Linux 端
    Download本项目代码后,进入client文件夹内,执行以下代码即可运行:

      python client.py
    
  • 图像识别部分部署详情请见PP-ShiTu部署

  • 微信小程序端 打开微信开发者工具,导入系统文件夹下AIContainer文件夹并运行,即可运行小程序端;

💃bilibili效果演示💃

  • 主界面

  • 端侧界面

  • 小程序界面

  • 大数据可视化分析界面

⛽️待完成⛽️

序号 完成度 优先级 分属类别 功能描述
1 已完成 ★★★★★ 小程序 添加库存信息显示,增添数据分析模块
2 在做了 ★★★★★ 小程序 初始功能上线
3 已完成 ★★★★★ 端侧 Jetson Nano的深度适配
4 规划中 ★★★★ 小程序 面向管理者及顾客的功能分离
5 已完成 ★★★★ web 基于 Tyadmin or 其他工具 关于web端信息管理系统的建立
6 规划中 ★★★ 小程序 接入PaddleOCR实现商品名称的自动录入
7 规划中 ★★ APP Android and IOS 客户端的打通部署

🚀开发团队🚀

职责 名单
PM 颜鑫
算法 颜鑫
端侧前端 颜鑫
小程序前端 沈晨
后端 杜旭东

☕来一杯咖啡☕

一杯咖啡提神醒脑,产品更新会更快更好!

图片

🌟特别鸣谢🌟

❤️欢迎共建❤️

我们非常欢迎您为"袋鼯麻麻——智能零售结算平台"贡献代码或者提供使用建议。无论您是提出存在bug、修复某个bug或者增加一个新功能,欢迎给我们提交Issue or Pull Requests。

欢迎引用

@INPROCEEDINGS{9851085,
  author={Yan, Xin and Hu, QingChun and Huang, XiaoYue and Shen, Chen},
  booktitle={2022 4th International Conference on Communications, Information System and Computer Engineering (CISCE)}, 
  title={Intelligent Retail Settlement Platform based on Image Retrieval}, 
  year={2022},
  pages={609-616},
  doi={10.1109/CISCE55963.2022.9851085}}
@software{Xin_Yan_ColugoMum,
author = {Xin Yan, Xin Yan and Chen Shen, Chen Shen and XuDong Du, XuDong Du},
title = {{ColugoMum}}
}

smart_container's People

Contributors

jkfx avatar scxw010516 avatar smile9260 avatar thomas-yanxin avatar trellixvulnteam avatar zhao-yian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smart_container's Issues

听一句劝放弃吧

我看近期还有更新

如果是学习还好

别想着用这个来收银,落不了地

SKU更新快是一方面,遮挡、相似、尺度等一堆问题

还有你这是跟人来对抗,超市上这个还不被撸秃了,人有一万种方法让它识别不出来

还不如做无人超市监控防盗(虽然这个也够呛)

哈哈哈抱歉哈抬个杠

新加入物品时,主体检测模块的模型是否需要更新

对于新的未知类别,无需重新训练模型,只需要在检索库补入该类别图像,重新建立检索库,就可以识别该类别。

请问这里的模型包括目标检测模型吗?

也就是说新加入物品时目标检测模型是否需要重新训练?

关于检测的可视化结果

您好,我是跟着ai studio 上您的项目过来的 想问问您的第八部分图像识别系统中有关于花生酱的测试,其中您的文档下有一句话:检测的可视化结果也保存在 output 文件夹下,对于本张图像,识别结果可视化如下所示: 我想自己可视化出测试图应该怎么做(因为您说保存在output下 可我没找到也不知道应该怎样可视化) 期待您的回复!

搞不懂怎么运行

程序里的yaml找不到,predict_client.py 也无处可寻。没办法,初学小白搞不懂,数据集什么的也找不到

不知道怎么运行(纯小白)

我把我的问题说的详细点哈,之前是在ai studio上跟着您的步骤一步步运行,但是每次训练量太大了就导致我的算力值不够,然后我把代码搬运到自己装的paddle里运行总会报错AssertionError: config file(configs/config.yaml) is not exist。不知道该怎么改,想问问如果要在pycharm里运行的话我要怎么做呢 万分感谢您的帮助!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.