喜欢科幻的小伙伴肯定看过《机器人总动员》,男主角“瓦力”是一名地球废品分装员,每天在已经成为了“垃圾场”的地球兢兢业业的收拾人类留下的“烂摊子”。
瓦力是名副其实的智能机器人,除了动作灵活之外,还拥有意识和情感。要不然也不会泡上了有着鸡蛋外形的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”的奖项里的行业/市场部门的二等奖。
可能以后不仅清洁工,连收拾房子的保洁阿姨都不需要了。
暂无评论哦,快来评论一下吧!