【飞桨开发者说】:贝史涛,浙江理工大学本科生,2019中国高校计算机大赛-人工智能创意赛二等奖获得者

随着信息技术的发展,我国餐饮建设也发生了很大变化。目前食堂大多以人工为主,推行一卡通消费,即自助选菜然后人工结算,这与以往使用饭票或现金结算相比,省去了找零的麻烦,在效率上有一定的提升。人工结算之所以效率低下,是因为食堂工作人员需要首先识别菜品种类,然后对应每种菜品价格,最后口头累计消费数额并打卡,同时在计算金额的过程中也可能会出错。这整一过程不仅需要较长时间,而且准确率也难以保证

近年来,在快餐式食堂领域也出现了通过RFID芯片、碗盘颜色识别等技术实现的机器结算。但是,随着顾客数量的日益增长,这已不能满足他们在就餐高峰期对结算速度的需求。通过调研分析,我们发现尽管目前市场上已出现RFID芯片、碗盘颜色的智能识别方式,但仍存在成本高、灵活度低等问题,菜品图像识别相较于它们有着巨大优势。

与此同时,以深度学习为代表的人工智能技术飞速发展。与以往不同的是,这次人工智能不仅在学术界备受关注,在工业界也备受推崇。以“深度学习”为关键词搜索国家自然科学金委近年资助项目,发现基金委资助和立项的“深度学习”相关的课题数量呈逐年快速上升趋势,如下图所示。由于本轮人工智能可落地性非常强,可快速为行业应用赋能,所以在工业、商业、金融等各领域亦备受追捧,目前正快速应被推广应用到各个领域。

在此背景下,世界知名公司纷纷推出深度学习框架,在美国,Google推出TensorFlow,Facebook推出Pytorch,在国内,百度推出了飞桨。作为集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体的开源深度学习平台。在深度学习框架上,我们选择了飞桨。基于飞桨模型,并借助百度AI Studio开发平台以及平台提供的Tesla V100 GPU算力,我们开发了基于深度学习的菜品识别模型,开发了移动端、后端应用系统,并通过软硬件结合的形式进行部署。在下文中,我们将为大家解析此过程。

01

实现过程

我们首先对托盘中的图像进行分割检测,将分离出来的图像再进行菜品图像识别。

霍夫变换

盛载菜品食物的碗盘器具基本是圆形的,因此对餐盘图像去噪后用霍夫圆变换实现对菜品碗盘位置的检测,实现碗盘分离。

霍夫变换是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。通过OpenCV中的霍夫圆变换,先识别出在菜品托盘识别台上俯视拍摄的照片,经过OpenCV的处理和霍夫圆变换,根据摄像头像素对霍夫圆参数进行调整,根据菜盘(这里统一为类圆形厨具)形状,最终取得效果如图。

数据集准备及处理

菜品数据集

菜品识别通过飞桨实现,起初对每样菜品拍摄一张俯视图。菜品识别的实质就是图像分类。因此,每个分类只有一个训练图片是肯定不够的。而多张重复的拍摄则会导致效率低下,延长处理时间。基于上述情况,团队通过图像增广处理来扩大每一分类的菜品的数据集,也减少了在实际环境下光线等环境因素对识别效果的影响。菜品图像来源自就近校园餐厅食堂。(该模型是针对某个食堂中的所有菜品而训练的模型,并非在所有食堂中通用

经过旋转处理、亮度处理、色度处理、对比度处理、锐度处理以及图像弹性扭曲处理后,使每个分类标签的数据集扩大至54张增广图像和1张原始图像共55张图片,并将这55张图片按1:10的比例划分测试集和训练集。本次菜品共35道,共计测试集图像175张,训练集图像1750张。

(1) 旋转处理 (23张) :旋转角度α=15β(0<β<24),在旋转后通过比例计算得到边长缩放比为:

1:(|sin(α)|+|cos(α)|)

旋转处理示例图

(2)亮度处理(6张):亮度系数0.6, 0.75, 0.9, 1.1, 1.25, 1.4。

图亮度处理示例图

(3)色度处理(6张),色度系数为0.7, 0.8, 0.9, 1.1, 1.2, 1.3。

色度处理示例图

(4)对比度处理(6张),对比度系数为0.7, 0.8, 0.9, 1.1, 1.2, 1.3。

对比度处理示例图

(5)锐度处理(6张),锐度系数为0.7, 0.8, 0.9, 1.1, 1.2, 1.3。

锐度处理示例图

(6)图像弹性扭曲(7张),通过Augmentor库对图像进行弹性扭曲处理。

弹性扭曲示例图

评论数据集

数据集来源于通过Python爬虫得到的60000多条某区域餐厅评论,经过整理筛选过滤无效、灌水等评论最终划分好评和差评各12000条。通过预训练词向量模型和分词工具对原始数据进行分词和词向量匹配,根据常见词的使用量,在250000多个词中取出了最常用的70000个词,如果遇到在词向量中但非常用的词向量,则也置为0。输入数据最终转化为list类型,如下例。

原句:“食堂异味很重,饭也不好吃!”

分词:['食堂', '异味', '很', '重', '饭', '也', '不', '好吃']

匹配:[2882, 23056, 34, 1218, 1421, 18, 10, 1452]

配置网络

菜品识别网络模型

配置网络包括三个部分:网络模型、损失函数及优化函数。由于数据集较小,网络模型采用了resnet18:

https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/image_classification/models/resnet_vd.py

Resnet网络结构

读取图片过程中对图片进行均值处理并归一化,在basic_block中将激活函数由relu改为了leaky_relu解决Relu函数进入负区间后,导致神经元不学习的问题,训练集和测试集的准确率达99%。

情感倾向分析网络模型

栈式双向LSTM架构,详见百度飞桨官方指导:

https://www.paddlepaddle.org.cn/documentation/docs/zh/beginners_guide/basics/understand_sentiment/index.html

训练网络

针对个人和机构AI研究者普遍缺乏算力的现状,AI Studio平台免费提供基础版(CPU:2 Cores RAM:8GB,Disk:100GB)和高级版(GPU:Tesla V100,Video Mem:16GB;CPU:8Cores,RAM:32GB, Disk:100GB)两种运行环境。本项目模型训练过程选用GPU高级版运行环境。

训练分为三步:第一步配置好GPU训练环境;第二步用训练集进行训练;第三步保存好训练的模型。

02

项目效果

VisualDL数据可视化

模型准确率达99%以上。

03

模型预测

菜品识别网络模型

预测程序为独立代码模块,可独立运行。预测主要分为四步:

第一步:配置预测环境;

第二步:预处理预测图片。将非RGB图片进行模式转换,转为RGB模式;对预测图片进行裁剪和缩放,调整大小为[3, 224, 224];

第三步:加载预测模型并将预测图像放入模型进行预测;

第四步:输出预测结果,确定结果所属类别。

在上图中的左侧图片框中显示的是菜品摄像头实时拍摄的某帧画面,托盘中有芹菜炒肉、番茄炒蛋和米饭三样菜。在后端通过霍夫圆处理后并调用模型进行预测,最终将数据返回并在移动端显示,可以从上图中的右侧移动端截图中看到结果预测正确,该预测模型在35种菜品类别的数据集中能达到99%以上的准确度。

情感倾向分析网络模型

预测程序为独立代码模块,可独立运行。预测主要分为四步:

第一步:配置预测环境;

第二步:预处理预测文本,通过预训练词向量模型对文本进行转换,处理为索引集结果;

第三步:加载预测模型并将预测文本放入模型进行预测;

第四步:输出预测结果,确定结果所属类别。

这里以前端页面来模拟结果回显。

软硬件结合

系统通过软硬件结合形式完成整一流程。硬件主体由一个放置台和两个摄像头组成,通过无线路由器将设备连接在同一测试网络下。本设备中使用的是海康威视网络摄像头。

在实物图中,位于上方的摄像头用于人脸识别,下方的摄像头用于识别托盘中的菜品并计价。在实际情况中,对菜品识别成功并计价后,下方摄像头停止识别,人脸识别摄像头开始检测人脸,识别并支付成功后,菜品摄像头继续识别,等待下一位用户的到来。

04

应用前景

市场分析

在社会节奏加快,高校或企业食堂用餐高峰更加集中以及外卖行业盛行的三重压力下,食堂对效率更高的结算系统的需求愈加突出。在此环境下,智能识别,智能结算一体化系统应运而生。

针对用户属于社会高水平教育接受者的现实,该项目适当拓展产业链,开发与消费者距离更短的终端APP以提高利润空间。

由于市场上同质产品较少,市场空白较多,因此该项目隐藏着巨大的发展空间。并且作为行业的先驱者,基于项目客户粘性大的优势,迅速占领市场后,可以较好地维持活跃用户数量。

客户分析

高校食堂

高校食堂下课时间集中,该系统不仅可以增加结账速度,还可以在识别菜品的情况下,分析师生口味,推出套餐活动。另外,在高校,利用学生老师对高科技敏感度,可以加强营销优势。

大企业食堂

与高校食堂相似,员工午休时间集中,企业食堂需要更加注重工作效率,且企业食堂人员较为固定,在支付系统中使用的人脸识别可以较好地被使用。

自助式餐厅

市场竞争,餐厅菜色的频繁性改变和各种减价优惠的不定期更新,导致识别菜盘颜色不再适用于餐厅加快结账速度。不仅是个体经营,该项目还能将数据加以整合,形成较为完整的前端数据,因此适用于快餐类连锁式餐厅。

想与更多的深度学习开发者交流,请加入飞桨官方 QQ 群:703252161。

如果您想详细了解更多飞桨的相关内容,请参阅以下网站:

官网地址:

https://www.paddlepaddle.org.cn/

GitHub地址:

https://github.com/PaddlePaddle

我用飞桨做了一个菜品图像识别系统相关推荐

  1. java无人售货_Hi,我们用飞桨做了一个“AI无人售货柜”

    [飞桨开发者说]白浩杰,鸥若教育CEO,北航软件工程硕士,美国佛罗里达国际大学高性能数据库研究中心助理研究员,百度深度学习布道师,主要研究方向深度学习.数据可视化等. 下载安装命令 ## CPU版本安 ...

  2. 我用飞桨做了一个可回收垃圾材料分类机

      随着社会生产力的发展,工业化.城镇化的兴起和人口增加,人类社会产生的垃圾与日俱增,加剧了全球范围内的资源短缺和环境污染,对自然环境和人体健康带来了巨大的挑战. 从中国新能源网和中国再生资源回收利用 ...

  3. 我用飞桨做了一个AI智能小车

    [飞桨开发者说]吴东昱,北京钢铁侠科技深度学习算法工程师,主要研究深度学习.无人驾驶等. 我在观察历届智能车竞赛以及教学实验中发现,采用传统视觉算法的视觉智能车只能在特定赛道中行驶,一旦赛道环境改变, ...

  4. 智能车的转弯部分_我用飞桨做了一个AI智能小车

    [飞桨开发者说]吴东昱,北京钢铁侠科技深度学习算法工程师,主要研究深度学习.无人驾驶等. 我在观察历届智能车竞赛以及教学实验中发现,采用传统视觉算法的视觉智能车只能在特定赛道中行驶,一旦赛道环境改变, ...

  5. 基于飞桨的稻米加工品质监测系统

    基于飞桨的稻米加工品质监测系统 本项目拟解决目前农业中普遍存在的稻米过度加工问题,通过开发基于PaddlePaddle的密集粘连小目标的图像分割与目标检测算法,量化各环节稻米的加工指标,进而实现产线工 ...

  6. 用飞桨做自然语言处理:神经网络语言模型应用实例

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 编者按: 语言模型的身影遍布在NLP研究中的各个角落,想要了解NLP领域,就不能不知道语言模型. 想要让模型能落地奔跑,就需借助深度学习框 ...

  7. 飞桨模型保存_手把手教你用飞桨做词向量模型 SkipGram

    飞桨开发者说成员:肥猫.忆臻 在做 NLP 的任务时,一个非常 basic 的操作就是如何编码自然语言中的符号,例如词.短语,甚至词缀.目前流行的方法有大约三种: •  特征工程:这类方法依赖于手工特 ...

  8. Android 使用百度飞桨做OCR的本地识别

    在项目过程中,由于调用接口识别比较费时间,后来采用了飞桨开源模型来做本地的OCR识别,它的SDK使用完全免费,无有效期限制. 我们这里使用的是OCRV3的包,只是在扫描过程中使用了下OCR的识别 按d ...

  9. 第十一届 “中国软件杯”大学生软件设计大赛——基于百度飞桨EasyDL平台的芯片质检系统分区赛

    本赛题由百度飞桨和广州万维视景科技有限公司联合设置,要求选手基于"芯片质量检测"的场景任务,使用 百度飞桨EasyDL平台 完 成数据标注.模型训练.模型部署等工作,并将模型部署到 ...

  10. 花了两天做了一个随机点菜系统

    缘起 中午一起去吃饭,都是十人左右,附近只有一家炒饭饭店,总是去这家店吃,每天中午吃什么是一个国际问题 某天吃饭的时候,讨论点什么菜,我提议可以做个系统.于是就在三月五号开始简单搭建一个系统. 我个人 ...

最新文章

  1. 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建
  2. 老婆,我会好好爱你的
  3. 云南计算机应用技术专科学校排名,2021年云南十大专科学校排名 云南最好的高职院校...
  4. nyoj-括号匹配(二)---动态规划
  5. 微服务介绍及Asp.net Core实战项目系列之微服务介绍
  6. 【渝粤教育】国家开放大学2018年春季 3896T人文英语1 参考试题
  7. c++二维数组指针详解
  8. 拼图游戏的设计与实现
  9. 基于matlab的prony方法实现,基于MATLAB的Prony方法实现
  10. PCI-E 5.0标准公布:速度再次翻番达32GT/s
  11. Excel使用VBA小程序的方法
  12. 来 看 T r i e 吧
  13. js(JavaScript):面向对象,Document对象:查找元素对象,修改元素,事件
  14. 小学计算机网络信息安全教案,黑教版信息技术五年级上册第十五课《网络信息安全》教案.doc...
  15. SVG 图标格式文件去除文件默认颜色
  16. 深入理解ES8的新特性SharedArrayBuffer
  17. uniapp中输入框禁用表情与特殊符号
  18. java操作svn工具类
  19. P1345 [USACO5.4]奶牛的电信Telecowmunication
  20. 用计算机打山有木兮,山有木兮 - 在线打字测试(dazi.kukuw.com)

热门文章

  1. 工程制图与AUTOCAD【1】
  2. office文件 vue 预览_OFFICE 文档转换为html在线预览
  3. 压力传感器的制作材料
  4. VI设计手册制作全流程
  5. 计算机网络英文题库(含答案) Chapter 1 Computer Networks and the Internet
  6. 科技美学引领行业发展:欧瑞博发布全新HomeAI操作系统
  7. 自组织特征图(SOFM)详解
  8. MySQL数据分析实战-朱元禄-专题视频课程
  9. 如何在同一台电脑上打开多个iPhone模拟器
  10. web开发之cdn回源各项目都可以处理