智能冰箱食材识别

简介: 本案例设计了一个囤菜系统原型,主要方法是利用冰箱内安装的摄像头,通过目标检测算法识别食材类别,判断存取动作,增加或者减少相应的食材的数量,并记录存取时间等相关数据,设计出了具备提示清理和补货等功能的智能化囤菜系统原型。

智能冰箱食材识别

【导读】本案例设计了一个囤菜系统原型,主要方法是利用冰箱内安装的摄像头,通过目标检测算法识别食材类别,判断存取动作,增加或者减少相应的食材的数量,并记录存取时间等相关数据,设计出了具备提示清理和补货等功能的智能化囤菜系统原型,对于智能冰箱的发展提出了一个新的解决方法。首先,由于在冰箱上进行边缘计算的实时性要求比较高,选用了参数量比较少,计算速度比较快的YOLOX-Nano算法作为食材识别的算法;为了提升识别时候的推理速度,使用了OpenVINO工具库,对模型进行优化和加速。本案例可以实现对冰箱里食材种类和数量的增减,并在食材数量少于设定值的情况下,提示补充。

1问题分析
随着时代的进步,人工智能已渗透到各个行业,其中家电的智能化已成为该产业发展的重要趋势。冰箱,作为家庭日常生活中不可或缺的一部分,其智能化应用却尚未得到广泛推广。尽管市面上智能家电层出不穷,但冰箱在日常生活中的智能化应用场景仍显不足。每年因冰箱内食物管理不当而造成的浪费数额惊人,传统的手动记录食物放入日期和保质期的方式既繁琐又耗费人力,且不同家庭成员对冰箱内存货的需求各异。
在智能冰箱领域,食材的精准管理成为其发展的核心议题,而准确识别食材种类则是实现这一目标的首要前提和技术挑战。当前,目标检测分类算法的快速发展为基于图像的食材识别提供了坚实的技术支持。同时,这种基于图像的识别方式无需改变用户的存取习惯,实现了近乎无感的操作体验,相较于条码、RFID等方式具有明显优势。因此,它已成为智能冰箱研究的热点,对智能冰箱的发展具有重大意义。
针对上述需求和挑战,本案例旨在设计一款智能冰箱原型,它不仅能自动记录食材信息,还不改变用户的使用习惯。这款智能冰箱可以作为软硬件一体化产品进行销售,同时也可与电商、广告、数据等厂商展开合作,既解决了用户的实际问题,又展现了广泛的商业应用前景。
为实现这一目标,本案例提供了一套软硬件一体化解决方案:智能冰箱内置摄像头进行视频采集,通过目标检测系统对食材进行分析和统计,并通过微信小程序将库存信息实时推送给用户。对于新增的蔬菜或水果类别,采用了“迁移学习”的方法。考虑到这些食材的训练数据相对较少,利用预训练模型,并结合少量样本进行迁移学习,从而得到针对新类别的识别模型。
此外,通过使用OpenVINO优化目标检测模型,成功提升了约50%的推理速度,实现了实时检测效果,为用户带来了更加流畅的使用体验。

2数据预处理
2.1数据探索
原始数据为冰箱上方摄像头拍摄的20种食材图像,图像共计11,983张,按类别存放在不同的文件夹中。将下载后的数据存储在文件夹fridge,并放在yolox\data文件夹下:
data_dir=os.path.join(get_yolox_datadir(), "fridge")
抽取少量原始图像,所有图像均为测试人员手持不同食材在存取食材时的图像。

2、标注信息
标注信息为图像中的食材类别和位置框,标注信息格式为json文件,每段标注信息由name、image_height、image_width、category和bbox组成,如下图所示:

2.2 数据集转换
将原始数据按照VOC格式进行转换,首先将包含原始文件标注信息的json文件转换为XML文件,每张图片对应一个XML文件,并将所有XML存放于Annotations文件夹中。选取20类食材,根据其类别代码,从60类的标注文件(train_annos_1-60.json)中筛选20类的标注,记录到anno_20.json中:python gen_anno_json.py;将20类食材图像合并到JPEGImages文件夹中,由于这一步可能会遇到图片文件名重复,注意在更改重复文件名的同时更改json标注文件;将20类的json文件转换为XML文件:python gen_XML.py;将所有图像名称记录在all.txt中,并分割为训练集和测试集。

然后将所有图像合并到JPEGImages文件夹中。最后将所有图像名称记录在all.txt中,存放在ImageSets/Main中,用于后续数据集分割。

2.3数据集分割
将原数据集11,983张图片按8:2的比例随机进行分割,分为训练集和测试集:python gen_dataset_txt.py。分割后的训练集共计9586张图片,测试集共计2397张图片。训练集的图片名称存放于trainval.txt文件中,测试集的图片名称存放于test.txt文件中。

完整案例可以参考新书:
赵卫东编著.深度学习实战案例.北京:人民邮电出版社,2024

目录
相关文章
|
5月前
|
监控 安全 数据安全/隐私保护
55_大模型部署:从云端到边缘的全场景实践
随着大型语言模型(LLM)技术的飞速发展,从实验室走向产业化应用已成为必然趋势。2025年,大模型部署不再局限于传统的云端集中式架构,而是向云端-边缘协同的分布式部署模式演进。这种转变不仅解决了纯云端部署在延迟、隐私和成本方面的痛点,还为大模型在各行业的广泛应用开辟了新的可能性。本文将深入剖析大模型部署的核心技术、架构设计、工程实践及最新进展,为企业和开发者提供从云端到边缘的全场景部署指南。
|
运维 Kubernetes 网络协议
基于虚拟服务配置的渐进式迁移实践:Istio集群至ASM集群的平滑切换
本文介绍了从Istio+k8s环境迁移到阿里云ASM+ACK环境的渐进式方法,通过配置虚拟服务和入口服务实现新老集群间的服务调用与流量转发,确保业务连续性与平滑迁移
958 132
|
10月前
|
存储 域名解析 缓存
DNS解析过程
DNS(域名系统)解析是将域名转换为IP地址的过程,对互联网运行至关重要。解析方式主要包括递归查询和迭代查询。递归查询由本地DNS服务器代为完成,简化客户端操作;迭代查询则需客户端逐级向根DNS服务器、TLD服务器和权威DNS服务器请求。过程中涉及缓存机制以提高效率,如客户端与本地DNS服务器缓存及TTL值管理。示例中,解析www.example.com需依次通过本地、根、TLD和权威DNS服务器获取IP地址。
1078 18
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的发展现状如何?
【10月更文挑战第16天】人工智能的发展现状如何?
|
安全 Unix 虚拟化
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
561 11
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
|
人工智能 资源调度 自然语言处理
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
钉钉项目Teambition AI迎来重磅升级,通义千问与DeepSeek两大模型助力AI项目管理。从项目规划、任务创建到执行建议、字段管理,再到周报总结和数据分析,Teambition AI贯穿项目全流程,重塑项目管理100种可能。AI技术赋能项目管理智能化,提升团队协作效率,确保项目进度精准把控,让任务分配、资源调度和风险管理更加轻松高效。
钉钉项目 Teambition AI 能力重塑项目管理100种可能!
|
虚拟化 Windows
Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 2 月更新)
Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 2 月更新)
494 4
Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 2 月更新)
|
物联网 虚拟化 Windows
Windows 10 version 22H2 中文版、英文版下载 (2025 年 2 月更新)
Windows 10 version 22H2 中文版、英文版下载 (2025 年 2 月更新)
443 4
Windows 10 version 22H2 中文版、英文版下载 (2025 年 2 月更新)
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
24902 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)