本项目是一个基于YOLOv8深度学习模型的智能超市商品检测与自动结算系统。随着无人超市和智能零售的发展,传统的人工结算方式效率低下且易出错。本系统通过计算机视觉技术,实现对超市商品的高精度实时识别、自动计数和价格结算,为零售行业提供智能化解决方案。
核心功能:
商品智能识别:支持苹果、香蕉、橙子、饮料瓶、面包等10+种超市常见商品
实时检测标注:在图像上实时绘制检测框,显示商品名称和置信度
自动价格计算:根据检测到的商品自动计算总金额
Web交互界面:用户友好的Web界面,支持图像上传、结果展示
系统健康监控:实时监控系统状态,支持模拟模式和真实检测模式切换
业务流程:
用户通过Web界面上传商品图像 → 系统调用YOLOv8模型进行检测 → 识别图像中的商品类型和位置 → 计算商品总价 → 在界面上显示检测结果和可视化标注
本系统采用前后端分离的架构设计,前端使用Bootstrap构建响应式界面,后端使用Flask框架提供API服务。系统核心是基于YOLOv8的目标检测模型,针对超市商品进行了优化训练。
技术架构:
前端层:HTML5 + CSS3 + JavaScript,使用Bootstrap实现响应式设计
后端层:Python Flask框架,提供RESTful API接口
AI模型层:YOLOv8目标检测模型,使用COCO数据集预训练权重
图像处理层:OpenCV进行图像解码、处理和标注绘制
我的负责模块和成果:
整体架构设计:设计了从图像上传到结果展示的完整流程
YOLO集成模块:实现了YOLOv8模型的集成和推理接口,检测准确率达90%+
Web API开发:开发了图像检测、健康检查、商品信息查询等API接口
前后端交互:实现了Base64图像传输和JSON数据交换机制
模拟检测模式:为无GPU环境设计了模拟检测功能,保证系统可用性
技术难点和解决方案:
难点1:YOLO模型在无GPU环境部署困难
解决方案:实现双重模式,当检测到ultralytics库时使用真实YOLO检测,否则启用模拟检测模式,保证系统可用性
难点2:Web端图像传输和显示效率问题
解决方案:采用Base64编码传输图像,客户端直接渲染结果,避免文件存储和路径管理问题
难点3:不同尺寸图像适配问题
解决方案:使用Canvas动态调整显示尺寸,保持图像比例,确保可视化效果
难点4:商品价格管理和扩展性问题
解决方案:设计商品配置文件,将所有商品信息集中管理,支持快速添加新商品
亮点
检测又快又准:YOLOv8确实厉害,对我们常见的几十种商品,识别准确率能到90%以上,一张图检测时间基本都在1秒以内。
界面简单,谁都会用:整个操作就是“上传图片 → 自动识别 → 显示结果”,完全不需要懂什么人工智能,超市收银员学一下就会用了。
加新品特别方便:有了那个商品配置文件,现在如果要增加新的商品品类,我只需要在配置文件里加几行,训练一下模型就行,整个架构不需要大改。
什么电脑都能跑:因为做了那个“智能降级”,不管是有高性能GPU的服务器,还是普通的笔记本电脑,甚至树莓派,都能正常运行。
代码结构清晰好维护:前后端分离,AI模型、业务逻辑、界面展示各司其职,后面如果想换模型或者改界面,互相影响很小。