现在深度学习这么火,大家都会想着看看能不能用到自己的研究领域里。所以,将深度学习融入到机器人领域的尝试也是有的。我就自己了解的两个方面(视觉与规划)来简单介绍一下吧。

物体识别

这个其实是最容易想到的方向了,比较DL就是因为图像识别上的成果而开始火起来的。

这里可以直接把原来 CNN 的那几套网络搬过来用,具体工作就不说了,我之前在另一个回答amazon picking challenge(APC)2016中识别和运动规划的主流算法是什么?下有提到,2016年的『亚马逊抓取大赛』中,很多队伍都采用了DL作为物体识别算法。

物体定位

当然,机器视觉跟计算机视觉有点区别。机器人领域的视觉除了物体识别还包括物体定位(为了要操作物体,需要知道物体的位姿)。

2016年APC中,虽然很多人采用DL进行物体识别,但在物体定位方面都还是使用比较简单、或者传统的算法。似乎并未广泛采用DL。

当然,这一块也不是没人在做。我们实验室的张博士也是在做这方面尝试。我这里简单介绍一下张博士之前调研的一偏论文的工作。

Doumanoglou, Andreas, et al. "Recovering 6d object pose and predicting next-best-view in the crowd."Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.

20170405_05_robot01

20170405_05_robot02

这个工作大概是这样的:对于一个物体,取很多小块RGB-D数据;每小块有一个坐标(相对于物体坐标系);然后,首先用一个自编码器对数据进行降维;之后,用将降维后的特征用于训练Hough Forest。

这样,在实际物体检测的时候,我就可以通过在物体表面采样RGB-D数据,之后,估计出一个位姿。

抓取姿态生成

这个之前在另一个问题(传统的RCNN可以大致框出定位物体在图片中的位置,但是如何将这个图片中的位置转化为物理世界的位置?)下有介绍过,放两个图

20170405_05_robot03

↑ Using Geometry to Detect Grasp Poses in 3DPoint Clouds

20170405_05_robot04

↑ High precision grasp pose detection in dense clutter

控制/规划

这一块是我现在感兴趣的地方。

简单地说,我们知道强化学习可以用来做移动机器人的路径规划。所以,理论上将,结合DL的Function Approximation 与 Policy Gradient,是有可能用来做控制或规划的。当然,现在的几个工作离取代原来的传统方法还有很长的距离要走,但是也是很有趣的尝试。

放几个工作,具体可以看他们的paper。

1.Learning monocular reactive uav control in cluttered natural environments

20170405_05_robot05

↑ CMU 无人机穿越森林

  1. From Perception to Decision: A Data-driven Approach to End-to-end Motion Planning for Autonomous Ground Robots

20170405_05_robot06

↑ ETH 室内导航

3.Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection

20170405_05_robot07

↑ DeepMind 物体抓取

  1. End-to-end training of deep visuomotor policies

20170405_05_robot08

↑ Berkeley 拧瓶盖等任务

有哪些难点

1、在视觉领域,除了物体识别、还需要进行物体定位。这是一个 regression 问题,但是目前来看, regression 的精度还没办法直接用于物体操作,(可能是数据量还不够,或者说现在还没找到合适的网络结构),所以一般还需要采用ICP等算法进行最后一步匹配迭代。

2、机器人规划/控制等方面,可能存在的问题就比较多了。我之前在雷锋网『硬创公开课』直播(运动规划 | 视频篇)的时候有提到我碰到的一些问题,这里简单列在下面:

可观性问题

简单地说,我们这些不做DL理论的人,都是先默认DL的收敛、泛化能力是足够的。我们应该关心的是,要给DL喂什么数据。也就是说,在DL能力足够强的前提下,哪些数据才能让我需要解决的问题变得可观。

当然,目前的几个工作都没有提到这点,Berkeley的那个论文里是直接做了一个强假设:在给定数据(当前图像、机器人关节状态)下,状态是可观的。

实际机器人操作中,系统状态可能跟环境有关(例如物体性质),所以这一个问题应该是未来DL用在机器人上所不能绕过的一个问题。

数据量

20170405_05_robot09

一方面,我们不了解需要多少数据才能让问题收敛。另一方面,实际机器人进行一次操作需要耗费时间、可能会造成损害、会破坏实验条件(需要人工恢复)等,采集数据会比图像识别、语音识别难度大很多。

是否可解决

20170405_05_robot10

直播的时候我举了个例子,黑色障碍物位置从左到右连续变化的时候,规划算法输出的最短路径会发生突变。(具体看视频可能会比较清楚)

这对应于DL中,就是网络输入连续变化、但输出则会在某一瞬间突变。而且,最短路径可能存在多解等问题。

DL的 Function Approximattion 是否能很好地处理这一状况?

是吧,这几件事想想都很有趣,大家跟我一起入坑吧~