餐盘自动计费系统

招银兵器谱

餐盘自动计费系统

研究背景

随着我司员工人数的增多,科达食堂小小的两个打饭窗口已无法承载庞大的服务请求量,如何均衡窗口压力,提高打饭并发量,缩短排队时间至关重要。一个自动的餐盘计费系统的出现,将在很大程度上缓解食堂窗口压力,同时降低人工成本。卷积神经网络的飞速发展,带动了图像识别技术的跨越式进步,这也为上述问题提供了解决方案,而图像识别技术和IOT技术的结合使得餐盘自动计费系统成为可能。

1

兵器档案

器名:神经网络·图像识别(Image Identification)

锻造者:杭州中心Best Brain餐盘自动计费系统小组

特点:对餐盘自动拍照,识别图片中菜品,实现计价。

使用场景:我司食堂打菜窗口,支持对现有大餐盘形式进行识别,代替人工计费,提高结算并发量。

补充:餐盘自动计费系统在一期的基础上进行升级改造,实现对大餐盘多菜品的识别,增加自动拍照功能、后端管理系统和用餐统计分析。

2

兵器构造

这一部分将从系统的物理架构和软件架构对整个系统进行深入的剖析。

首先介绍物理架构,如图1所示。

(图1)

本系统由运行在服务上的后端程序向PC端和Mobile端提供服务,传感套件和摄像头对餐盘进行自动拍照,并通过PC端将图像上传到服务器进行处理。PC端web向用户实时展示识别的菜品信息和价格,Mobile端web对用户的用餐数据统计分析后进行展示。

(图2)

本系统的软件架构如图2所示。算法由Faster RCNN、MXNet和vgg16组成;使用MySQL对数据进行持久化;Nginx作为web服务器,并对静态文件进行代理。Service和web在此不做赘述。系统的自动拍照功能由开源单片机Arduino实现。

(图3)

为了确定餐盘位置,制作一个同餐盘大小相近的泡沫垫板,并在垫板对角各装一个光敏传感器,如图3所示。因此当餐盘与垫板重合时,此时餐盘的位置正确,两个传感器恰好被遮住,arduino捕获到信号后就可以通知web程序控制摄像头进行拍照。

菜品识别模型训练使用Faster RCNN网络实现,基本流程在图4中进行展示。

(图4)

3

使用场景

放置餐盘时,要求从垫板的一端平稳的推到垫板顶部。

(图5)

推入时,要求餐盘从垫板一端平稳推到垫板底部,保证餐盘与垫板重合。

(图6)

系统自动拍照后,将图片上传服务器进行分析,服务器将分析得到的结果返回web页面展示。

具体应用可以作为现有人工计价的补充,也可以作为员工确认价格的参考,就像超市的自助结账机。

4

锻造者说

关于场景

本项目于2018年5月进入开发,并在7月完成一期需求,对“一菜一盘”识别效果较好,但对“多菜同盘”的情况几乎无法识别。由于我司食堂餐盘全部变更,导致一期成果无法使用。

“一菜一盘”与“多菜同盘”存在巨大差异,并且“多菜同盘”从图像采集、模型训练到图像识别的难度都大大增加。

(图7)

关于样本

为了获得尽可能多的样本,小组成员采用随机菜品拍照和将餐盘中菜品拨乱拍照两种形式。试验结果表明,使用随机拍照样本训练模型的识别效果远远好于第二种方法。并且使用随机样本对菜品的识别率进行检测,各菜品识别率如图8所示。

(图8)

试验结果表明,对于性状简单的菜品,随机拍摄样本量达到200张,就可以得到75%以上的识别率,但是对于性状复杂的菜品,则需要尽可能拍摄菜品的各种状态和各种场景下的样本。

虽然可以通过tensorflow等其他一些手段对样本进行泛化,但试验结果表明,泛化图片效果远低于随机拍摄效果,但这种情况会随着覆盖场景的增多有所改善。

关于展望

1、实现样本线上标注和后续流程自动化处理。

2、对接刷卡机,获取用户信息进行扣费。

3、针对食堂菜品频换更换的问题展开优化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181122G19NJZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券