0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用计算机视觉、深度强化学习和Unity 3D游戏引擎开发一款自主收集垃圾的机器人

电子工程师 来源:lp 2019-03-21 16:24 次阅读

喜欢科幻的小伙伴肯定看过《机器人总动员》,男主角“瓦力”是一名地球废品分装员,每天在已经成为了“垃圾场”的地球兢兢业业的收拾人类留下的“烂摊子”。

瓦力是名副其实的智能机器人,除了动作灵活之外,还拥有意识和情感。要不然也不会泡上了有着鸡蛋外形的Eva。

但是,毕竟那是发生在2805年的事情。那时候人类都已经可以开启宇宙之旅了,设计个智能机器人还不是分分钟的事情。

在2019年,造不出拥有情感的机器人,但是用AI模型训练出收拾垃圾的机器人,还是可以的。

一位名叫Damian Bogunowicz的慕尼黑工业大学硕士生,和他的小伙伴一起利用计算机视觉、深度强化学习和Unity 3D游戏引擎开发了一款自主收集垃圾的机器人。

据Damian的博客介绍,他的这个想法最初来自慕尼黑工业大学博士研究会。这群参会的“高端玩家”都很爱喝啤酒,也是慕尼黑啤酒节的常客。但是,看到每年慕尼黑啤酒节狂欢过后一片狼藉,他们陷入了深思........

通常,这些垃圾都是清洁工人收拾,会耗费大量的人力、物力。

Damian由此想到,是否能开发出一款智能机器人,全天候、高效率的帮助这些清洁工人,那么他们的工作效率就会成几何倍数增长。

环境和目标设置

说干就干!

他们的第一步是使用Unity 3D游戏引擎模拟机器人,此外,还使用Unity Machine Learning Agents Toolkit(ML-Agents)插件,使游戏场景成为训练智能体的环境。

在这个实验中,他们将机器人的目标设置为探索环境并学习正确的策略。然后设定一系列的奖励和惩罚。

主要来说,机器人有两个目标:

接近并收集垃圾,例如面包渣、塑料袋以及香肠等食物残渣。

不要与桌子和椅子发生碰撞,不要回收木托盘等物品因为这不属于房间内的垃圾。

在模拟环境中,机器人的形状是正方体,主要有三个动作:

平移运动(向前、向后以及保持静止)

转向运动(左转、右转)

抓取状态。

前两个动作非常简单,抓取状态需要设计。总的来说,每次机器人决定收集一个物体时候需要满足下面两个条件:

1.物体必须靠近机器人的前部(限制在具有绿色边缘的体积内)

2.机器人必须决定激活“抓取器”。当抓取状态被激活时,机器人的颜色从白色变为红色。

惩罚和奖励

机器人可以通过与环境的交互和反馈的信号来学习正确的策略。对此系统来说,惩罚值在-1~0之间浮动,奖励值在0~1之间浮动。与其他强化学习不同的是,要在训练数据的时候迅速获得最好的策略,次要目标给予较小的奖励值。当学习复杂任务时,从简单任务入手,逐渐增加任务难度。

这些都可以在Unity ML-Agents中轻松能够实现,具体来说将任务分为两个子目标,在环境中搜索垃圾、判断何时激活抓取状态。

算法训练与模拟

机器人最初不太能分清楚要将哪种物品归为垃圾,后来,通过网络将RBG图像映射到语义分割图,能够有效获得此信息。用数据通过Semantic Segmentation Suite训练SegNet,易于调试和修改,从而节省算力。

另外,语义分割信息不是来自外部神经网络。它是使用Unity中的着色器生成的,使用标签对对象进行分段。这意味着智能体在训练期间可以快速接收有关对象类的可靠,无噪声的信息。

机器人认知的核心是“大脑”,这是决定智能体如何行动的部分。鉴于当前的环境状况和要实现的目标,采用以下两种方法:

1.近端策略优化,它通过与环境的交互作用在采样数据之间进行交互,并利用随机梯度上升优化目标函数。

2.让系统观察正确的行为并进行模仿。这可以视为监督学习,研究人员先“玩游戏”一段时间,以便智能体能够学习正确的策略。

另外,利用Unity ML-Agents提供的另外两个解决方案:

1.使用循环神经网络的内存增强代理,这可以允许智能体不仅可以对当前的输入进行操作,还可以“记住”最后的输入并在做出决策时将此附加信息包含在其推理决策中。

2.利用好奇心,赋予智能体一种好奇心,每当它发现与其当前知识不同的东西时,它会给予机器人内部奖励。这鼓励智能体探索世界时,更加“冒险”。

到目前为止,智能体已经设法自己弄清楚了这两项任务。但只是为了好玩(或者为了加快训练过程),可以“硬编码”第二个目标 。关于是否激活抓取机制设定一个简单的函数,它考虑了两个因素:我们面前的对象类(由语义分割图定义);物体与机器人的距离(由深度图提供)。

此功能可以通过以下方式进行硬编码:从当前深度图中,仅滤除属于“可收集”类的那些。另外检查像素最大值是否大于某个设定阈值。如果是,可收集物体足够接近智能体,完成收集。

启发式背后的决策

未来的大规模应用

以上模拟在虚拟环境中有较好的效果,但是如果想要大规模的应用到商业,还需一系列的改进。

Damian也给出了一些自己的想法:

1.安装一系列用于垃圾回收的硬件,在机械设计上应该考虑到足够的细节,例如安装一个“铲子”,可以无缝地将垃圾推入机器人的“腹部”,又或者在容器满了之后,如何处理垃圾。

2.将该算法部署在一台能够处理实时语义分割的机器上,语义分割模型的推理时间太慢,一般的笔记本电脑无法进行实时仿真

3.用RealSense摄像机将信息从仿真平台传递给真实的机器人,这一部分工作是将在物理环境中部署机器人,这意味着通过在现实世界中运行机器人来微调算法,目前,强化学习在机器人技术中的应用还处于实验阶段。

“捡垃圾”机器人的其他妙用

收拾东西这件事情,可不仅仅是“慕尼黑啤酒节“才需要,应用场景还相当多,比如,周末大爬梯后的家。

其实,在帮你叠衣服,帮你把散落在地上的物品规整起来方面,智能机器人也已经可以做的很成熟。

在CEATEC JAPAN 2018会展上,由丰田汽车有限公司开发的“生活支援机器人HSR(Human Support Robot)”,展示了“全自动整理机器人系统”。

其利用深度学习技术开发的画面识别引擎,哪怕数百种物品散乱在房间各处,引擎也能够识别出物品的位置和种类。基于该识别引擎,人们可以规划什么物体应该怎么去抓取以及如何整理等等。

该图像识别引擎是通过采用了深度学习框架Chainer,ChainerMN以及ChainerCV的CNN(卷积神经网络)来实现的。

这是安装在机器人上的摄像头的视点图像以及识别结果的可视化动画。通过显示机器人所识别的房间地图和当前位置,我们可以看到机器人是如何识别房间的。

系统能够稳定地抓取各种形状和材质的物体并且放置到规定的地方。

比如在整理圆珠笔时,摄像头寻找笔筒位置,识别圆珠笔的朝向,调整朝向,放入笔筒。

系统通过不断地重复人类在无意识中做出的一系列的判断最终使之成为可能。

通过增强现实(AR),我们可以看到机器人是如何思考的,比如显示机器人是如何识别房间里的状况,接着会如何行动等信息。通过AR画面,我们能够更加直观地把握机器人的状态,从而发出更确切的指令。

在大会上,这款机器人获得了“CEATEC AWARD 2018”的奖项里的行业/市场部门的二等奖。

可能以后不仅清洁工,连收拾房子的保洁阿姨都不需要了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27021

    浏览量

    201365
  • 计算机视觉
    +关注

    关注

    8

    文章

    1598

    浏览量

    45603
  • 强化学习
    +关注

    关注

    4

    文章

    259

    浏览量

    11113
  • Unity
    +关注

    关注

    0

    文章

    126

    浏览量

    21525

原文标题:被啤酒节遗留垃圾吓到,德国小哥发明现实版“瓦力”清洁机器人

文章出处:【微信号:BigDataDigest,微信公众号:大数据文摘】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开放原子开源大赛—基于OpenHarmony的团结引擎应用开发赛正式启动!

    创造出精彩的游戏3D应用。 大赛分为“创新游戏”与“创新3D 化应用”两大赛道,每个赛道又分“大众组”与“高校组”,无论你是游戏
    发表于 03-13 10:45

    机器视觉、工业视觉计算机视觉这三者的关系

    机器视觉、工业视觉计算机视觉这三者的关系
    的头像 发表于 01-24 10:51 565次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>视觉</b>、工业<b class='flag-5'>视觉</b>和<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>这三者的关系

    什么是计算机视觉计算机视觉的三种方法

    计算机视觉是指通过为计算机赋予人类视觉这一技术目标,从而赋能装配线检查到驾驶辅助和机器人等应用。计算机
    的头像 发表于 11-16 16:38 3114次阅读
    什么是<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>?<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的三种方法

    【风火轮YY3568开发板免费体验】+ YY3568安装运行Unity的自制游戏教程范例

    本人前段时间学习过三维游戏引擎Unity的两个教程,即 Ruby’s Adventure: 2D Beginner 和 John Lemon
    发表于 11-14 11:44

    Unity中国、Cocos为OpenHarmony游戏生态插上腾飞的翅膀

    Creator等游戏引擎产品,Cocos游戏引擎既是一款高效、轻量、免费开源的跨平台 2D&a
    发表于 10-23 16:15

    计算机视觉中的九种深度学习技术

    计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在针对某些特定问题取得最新成果。 在最基本的问题上,最有趣的不仅仅是深度
    发表于 08-21 09:56 357次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>中的九种<b class='flag-5'>深度</b><b class='flag-5'>学习</b>技术

    机器视觉计算机视觉的区别

    机器视觉计算机视觉的区别 机器视觉计算机
    的头像 发表于 08-09 16:51 1120次阅读

    实时3D艺术最佳实践-灯光指南

    的照明技术下看起来更糟。 Unity游戏引擎使灯光工作简单易懂。的手机游戏的表现受到你的照明决定的影响,所以需要使用照明高效。 本指南也可在统
    发表于 08-02 08:34

    什么是深度强化学习?深度强化学习算法应用分析

    什么是深度强化学习? 众所周知,人类擅长解决各种挑战性的问题,从低级的运动控制(如:步行、跑步、打网球)到高级的认知任务。
    发表于 07-01 10:29 1184次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>强化学习</b>?<b class='flag-5'>深度</b><b class='flag-5'>强化学习</b>算法应用分析

    使用计算机视觉为工业工人进行跌倒检测

    电子发烧友网站提供《使用计算机视觉为工业工人进行跌倒检测.zip》资料免费下载
    发表于 06-12 16:00 0次下载
    使<b class='flag-5'>用计算机</b><b class='flag-5'>视觉</b>为工业工人进行跌倒检测

    使用计算机视觉进行电梯乘客计数

    电子发烧友网站提供《使用计算机视觉进行电梯乘客计数.zip》资料免费下载
    发表于 06-12 15:35 0次下载
    使<b class='flag-5'>用计算机</b><b class='flag-5'>视觉</b>进行电梯乘客计数

    浅谈深度学习计算机视觉领域的三大瓶颈

    深度学习能够实现的前提是大量经过标注的数据,这使得计算机视觉领域的研究人员倾向于在数据资源丰富的领域搞研究,而不是去重要的领域搞研究。
    发表于 06-11 10:22 266次阅读
    浅谈<b class='flag-5'>深度</b><b class='flag-5'>学习</b>在<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>领域的三大瓶颈

    什么是机器视觉机器视觉计算机有什么关系?

    机器视觉计算机视觉有什么区别
    的头像 发表于 06-05 09:28 859次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>视觉</b>?<b class='flag-5'>机器</b><b class='flag-5'>视觉</b>与<b class='flag-5'>计算机</b>有什么关系?