大数据文摘出品

作者:李欣月、刘俊寰

在韩国最受欢迎的外卖食品是什么?

答案毋庸置疑,一定是炸鸡

根据韩国外卖订购软件公布的的统计数据显示,炸鸡今年再次当选韩国“最受欢迎的外卖食品”从2014年起就一直霸占着冠军宝座,简直是小食界难以逾越的高峰。

无独有偶,在美国,炸鸡文化也长盛不衰,肯德基双层炸鸡堡唯一不限供应的地区就是美国。根据前德州监狱后厨Brian D.Price回忆,“70%的囚犯最后一餐都会要求吃油炸食品”。

那么,炸鸡和TensorFlow两者结合,你又能想到什么?

最近,日本一个机器人公司RT CORPORATION开发了一个叫Foodly的机器人,机器人上配置的图像识别系统就是用的TensorFlow,Foodly不仅能准确识别单块和多块炸鸡,还能将刚出锅随意摆放的炸鸡块规整地放在便当盒内

为了完成这个识别功能,研究团队也很拼,每天在实验室现炸鸡块,炸累了点炸鸡外卖,简直就是变成了炸鸡加盟店

Foodly的开发也很好地贴合了疫情当下便当工厂不能大范围复工的现状,从下图中可以看到,Foodly的大小和与成人类似,能在便当工厂的生产线上与人并排工作

能看不能吃,TensorFlow都要馋哭了

说到这,掐指算算,已经有多久没吃过炸鸡了?不妨咽下口水,先和文摘菌一起就着这篇文章“画饼充饥”一下,中午就去激情下单炸鸡外卖吧!

为了研发Foodly,他们活生生把公司搞成了炸鸡加盟店

虽然好吃又馋人,但是炸鸡块在图像识别界可没那么招人待见

炸鸡爱好者们都知道,你徒手拿起的每块炸鸡形状是何其相似,更别说要在炸鸡堆中准确区分每块炸鸡的边界,这些都是图像识别研究者们内心拒绝炸鸡的原因。

据闻,坊间流传着这么一个说法:炸鸡块是图像识别最难逾越的高峰

但是现在有了Foodly,再难的炸鸡识别都是小菜一碟!识别效果如下图所示:

整堆炸鸡块被识别成一个整体

每一块炸鸡块被单独识别

据研究者透露,之前尝试过其他的机器学习框架,但看到有人利用TensorFlow成功对猫的照片进行分类后,就按捺不住内心的躁动了。

光想不做可不行,紧接着,研究团队对CNN的相关论文进行了阅读和学习,并进行了进一步的物体检测。

那时正好是初代Foodly发布初期,在对系统前期表现相当满意的情况下,研究者们拿出究极武器——炸鸡,可以看到,初代系统能够将图像的一部分切成矩形,然后以矩形为单位对炸鸡块进行识别

虽然初代系统的表现就已经很不错了,但是研究团队表示还存在很多不足,比如识别时间太慢,识别一块炸鸡要一分钟左右,一分钟炸鸡骨头都被吸干了还识别个啥!再比如,初代系统还只能识别单块炸鸡,成堆的炸鸡识别还有待进一步地改进。

同时,为了养活这么一个系统,可真是“难哭”了研究团队,那个时期他们在公司现炸鸡块,炸累了点炸鸡外卖,简直就是把公司当成了炸鸡加盟店

当然这都不是最难的,最难的是要在下嘴之前先把图像数据存储下来。这么下来,他们最终收集到了大概400~500张规范的炸鸡照片,700多张不那么规范的照片

在那些不规范的照片中,有一些还故意拍到了人手,这也是有研究考量的。因为人手和炸鸡成色很像,形状也像,如果系统错误地对人手进行识别的话那可就大事不妙了。

Foodly进化史:从R-CNN起家,炸鸡块表面的凹凸纹路也不能放过

可以想见,开发Foodly可不是这么简单的事。

其实Foodly的前身还不叫Foodly,而是NEKONOTE,由一个扶手和安装在顶部的照相机组成,虽然看上去像是工业用机器人的形状,但是即使加上照相机用的框架,大小也能控制在一个人的样子。

2016年6月,NEKONOTE在“TensorFlow学习会”上发表,在德国CEBIT 2017上公开亮相。出道舞台虽然足够有分量,但还是出师不利,当场就有不少人对NEKONOTE提出质疑,有人认为NEKONOTE只使用一只手,太可怕了,有人认为在食材正上方放置摄像头,可能会污染食物,还有人针对NEKONOTE的照相机和手臂的位置关系,指出手臂的摆动可能会影响到视线和识别效果

CEBIT 2017上展出的NEKONOTE

综合了这些提议之后,研究者认为,或许应该把它设计成人型,于是NEKONOTE就摇身一变,变成了现在的Foodly。

当然这个过程可不只是外观的变化,升级归来的Foodly不仅能识别单块炸鸡,还能从堆积的炸鸡中检测出每一块炸鸡。

识别效果的提高也是多方面促成的,首先识别标准从矩形识别变成了轮廓识别,这其中主要用到的就是从R-CNN发展而来的Mask R-CNN技术,其次,Foodly使用了可以识别炸鸡纹路的深度摄像机炸鸡块表面的凹凸纹路也作为特征被引入了深度学习,提高了识别精度。

根据深度摄像机提供的影像学习凹凸特征

几代系统迭代发展下来,研究者总结了用TensorFlow进行炸鸡识别的心得,汇总成了下面这张从理论学习到推论的流程图:

首先是制作监督数据集的阶段。用位于Foodly头部的深浅相机拍摄颜色和深浅的图像(RGB-D图像),然后将其放入个人电脑进行标注,指定炸鸡块的位置。在标注上,团队也制作了专门的工具使其尽可能的自动化。

在接下来的学习阶段,以既有的公开训练成果模型为基础,通过TensorFlow进行转移学习,制作食材检测用的模型。转移学习的引入也让几百张的图像工作量锐减到了几十张。

但是,既有的训练成果的模型只能输入RGB的3个通道,为了能够对应RGB-D图像,需要将输入层变更为4个通道才能进行再学习。

最后,把做好的模型转移到机器人上,就可以检测出炸鸡块。在搭载压缩GPU的边缘的AI板Jetson TX2上执行推理过程。

顺便一提,Foodly的目标是可以直接拿到便当工厂的生产线上使用。因此,根据工厂的不同,照明的程度也不同,增加了识别的难度。常见的对策通常是准备专用的光源,不过,Foodly在训练阶段就适用了多样的光度,因此即使没有专用的光源也能能稳定的进行识别。

以上就是关于识别炸鸡块的整个流程,以实用的速度检测炸鸡块,然后将其放入便当盒的操作现在已经很稳定了。公司现在也把目光对准了其他的食物,比如番茄,相比于炸鸡,要让机器人把番茄放入便当盒而不让其碎掉,还必须调整机器人的力度,这就是另一个需要解决的问题了。

RT公司:机器人是未来社会的引路者

可别再说Foodly是日本人民的脑洞发明了。

Foodly可是瞄准了当下便当工厂人手不足的现状,尤其是疫情之下,为了降低感染风险,Foodly可以代替人加入生产线,而且,表现不比人差。

考虑到大多数便当工厂的工作场所都是在60~90cm的空间内,目前工业机器人还有几方面问题需要重点考虑:硬件上希望即使有人不可避免地碰撞到Foodly也不造成擦伤,软件上,即使在没有预设的情况下,也能正常识别,除此之外,便当工厂流水线的菜单每小时会改变2~3次便当盒尺寸存在差异,流动速度也有不同等等。

这些不确定因素在Foodly面前全都迎刃而解,而且,Foodly操作也十分简单,不需要专家进行任何复杂的安装和调整,马上就能上工,可以说是工厂福音了。

好奇之下,文摘菌还去查了查开发Foodly的公司到底是什么来头,结果发现,这家叫做RT CORPORATION的公司完全就是一个机器人迷公司嘛!

先不说公司的理念是“life with robot”,公司名字RT是Robot Technology的缩写,公司的兔子logo来源参考了《爱丽丝梦游仙境》,官网介绍道,在小说中,兔子是爱丽丝抵达仙境的引路人,与此相对应的,在现实中,机器人就是未来生活的引导者

官网链接:

https://www.rt-net.jp/

除了实用机器人如Foodly的开发,RT公司也对机器人工程的教育事业十分关注。

公司认为,在现在和未来,培养优秀的机器人工程师都将是重要的社会使命。RT公司从硬件和软件等多个角度提供产品和服务,为培养实用型机器人工程师做足了功课。

作为教育工作的一部分,公司将提供自主研发装配的机器人用于学习和参考,同时,在这些机器人的帮助下,公司有能力举办研讨会等学习活动,为更多的人提供学习机会。

如今,机器人在社会生活中扮演着越来越重要的角色,工厂流水线上运行的大型工业机器人不断发展,家用小型机器人同样不断演变着,机器人已经到了能够与人合作、并肩作战的阶段

相信机器人引领我们前往的未来不会太遥远。

相关报道:

https://developers-jp.googleblog.com/2020/04/tensorflow-foodly.html

tensorflow环境下的识别食物_研究室秒变后厨,TensorFlow被馋哭!日本团队用深度学习识别炸鸡,救急便当工厂...相关推荐

  1. 研究室秒变后厨,TensorFlow被馋哭!日本团队用深度学习识别炸鸡,救急便当工厂...

    ▼ 更多精彩推荐,请关注我们 ▼ 大数据文摘出品 作者:李欣月.刘俊寰 在韩国最受欢迎的外卖食品是什么? 答案毋庸置疑,一定是炸鸡! 根据韩国外卖订购软件公布的的统计数据显示,炸鸡今年再次当选韩国&q ...

  2. tensorflow环境下的识别食物_在TensorFlow+Keras环境下使用RoI池化一步步实现注意力机制...

    在本文中,作者解释了感兴趣区域池化(RoI 池化)的基本概念和一般用法,以及如何使用它来实现注意力机制.他一步步给出了在 Keras 和 TensorFlow 环境下使用 RoI 池化的实现. 选自 ...

  3. 解决pip安装pygal在TensorFlow环境下调用失败问题

    欢迎关注微信公众号[计算机视觉联盟] 获取更多前沿AI.CV资讯 使用pip安装pygal在Linux和OS X系统中,执行的命令如下: pip install --user pygal==1.7 在 ...

  4. python 训练识别验证码_python使用tensorflow深度学习识别验证码

    本文介绍了python使用tensorflow深度学习识别验证码 ,分享给大家,具体如下: 除了传统的PIL包处理图片,然后用pytessert+OCR识别意外,还可以使用tessorflow训练来识 ...

  5. 验证码识别 java 深度学习_使用深度学习识别验证码注解

    前言 在抓取一些网站的时候难免会遇到一些验证码.想起去年接触过一段时间的验证码识别技术,所以把之前使用的开源的cnn识别再拿出来做个注解.加深理解,也方便以后的使用.希望能对大家有所帮助! 正文 网上 ...

  6. 利用深度学习进行交通灯识别_通过深度学习识别交通信号灯

    利用深度学习进行交通灯识别 by David Brailovsky 戴维·布雷洛夫斯基(David Brailovsky) 通过深度学习识别交通信号灯 (Recognizing Traffic Lig ...

  7. 机器学习原来这么有趣!第四章:用深度学习识别人脸

    第一章:全世界最简单的机器学习入门指南 https://blog.csdn.net/wskzgz/article/details/89917343 第二章:用机器学习制作超级马里奥的关卡 https: ...

  8. 基于图像的小麦真菌病害深度学习识别(数据+平台)

    摘要 由病原真菌引起的谷物病害会显著降低作物产量.许多文化都与他们接触.这种疾病很难大规模控制;因此,相关的方法之一是农田监测,这有助于在早期发现病害,并采取措施防止其传播.基于数字图像分析的疾病识别 ...

  9. 增强版!如何深度学习识别滑动验证码缺口

    这是「进击的Coder」的第 394 篇技术分享 作者:崔庆才 来源:崔庆才丨静觅 之前的文章中其实已经提到过如何使用深度学习来识别滑动验证码缺口,文章见利用 Python 深度学习识别滑动验证码缺口 ...

最新文章

  1. 大TTT需要复习的课件PPT以及大作业完成链接
  2. 9.JAVA-抽象类定义
  3. linux如何关闭 lvm管理,Linux之LVM管理
  4. Python中的包以及跨目录访问变量和函数(同级目录)
  5. 移动语义(move semantic)和完美转发(perfect forward)
  6. WCF使用Json传输的一个BUG
  7. Verilog 语法点使用————(持续更新)
  8. formidable模块的使用
  9. RestFul 风格规范
  10. 【原创】ourphp一处SQL注射
  11. Jquery截取中文字符串
  12. Unity3D Asset文件导出3DMax 可编辑格式
  13. 自动伽马校正(Auto Gamma Correction)算法
  14. Liang-Barsky直线段裁剪
  15. 如何生成SSH key?
  16. Ubuntu 18.04 LTS (Bionic Beaver) 已经发布附官网下载链接
  17. 想要分离歌曲内的伴奏?轻松搞定
  18. 51单片机密码锁(含确认键、清零键、删除键)
  19. 微信小程序瀑布流实现
  20. PPP中的pap和chap认证

热门文章

  1. 在Python中的无参装饰器和有参装饰器
  2. python 机器学习中,clf变量代表的是什么意思?(clf = classifier的缩写 分类器)
  3. Python第五、六种数据类型——Set(集合) and Dictionary(字典)
  4. Journey to Un‘Goro 贪心,找规律,搜索(沈阳)
  5. Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能
  6. mysql 1270_MySQL_详细基本操作命令
  7. python爬虫获取方法_小白学python爬虫:2.获得数据
  8. svpwm矢量控制电机相电压波形_如何深入理解SVPWM?
  9. QT判断操作系统版本
  10. 关于vs编码格式UTF8中文处理方式