CVPR 2019 40美元带你玩转机械臂:基于视觉的低成本机械臂控制系统_资料 AI 科技评论按:本文是计算机视觉领域会议CVPR 2019入选论文 《CRAVES: Controlling Robotic Arm with a Vision-based, Economic System》的解读。本文由约翰霍普金斯大学、清华大学和北京大学王亦洲课题组共同合作完成。 本文提出了一种基于视觉的机械臂控制系统,可以应用在价值40美元、完全没有感测器的廉价机械臂上。仅借助一个额外的摄像头,系统使用深度卷积神经网络,实时估计机械臂的三维姿态,并通过强化学习训练的智慧体输出控制讯号。进而,系统可以实现控制机械臂到达空间中任意给定三维座标。基于此,我们还实现了自动抓取骰子的任务。此外,姿态估计和强化学习的训练完全依赖在虚拟环境中生成的资料,不需要人为进行标注与监督。 专案网站:https://craves.ai(含程式码和资料) 论文地址:https://arxiv.org/abs/1812.00725 简介 如何赋予机器人视觉,让其在多变的环境中完成复杂的任务,近年来吸引了越来越多研究者的关注。然而,以往的研究大多使用昂贵的工业级机器人(价值一万美元以上),这无疑限制了一般的研究者进入这个领域。因此,本文希望通过低成本的硬件来搭建一个机器人研究和教育的平台,以降低相关领域研究的硬件门槛。 我们选用了OWI-535机械臂,因为其: 与此同时,其缺点也非常明显:没有任何感测器,因此无法获得反馈讯号并对其进行精确控制。但人可以通过观察机械臂,通过遥控器完成一些高阶机械臂才能完成的任务, 例如叠筛子。如何用视觉演算法像人一样对没有感测器的机械臂进行控制是本文关注的焦点。 我们选择使用一个外部的RGB摄像头作为视觉感测器,实时估计机械臂的三维姿态,并生成反馈控制讯号。系统框图如下图所示: 系统首先读入输入RGB视讯流中的一帧(图中绿色部分),将其输入到姿态估计网络当中(图中蓝色部分),还原机械臂的三维姿态资讯。最后,由强化学习智慧体构成的(图中橙色部分)接收三维姿态资讯,生成控制讯号,控制机械臂的电机运动。 本文的主要贡献包括: 相关程式码和资料均已开源,可从专案主页(https://craves.ai)获取。 下面将分别介绍资料集收集、姿态估计模组和实验结果。 资料集收集 因为获取带有精确标注的真实资料代价十分高昂,因此我们构建了一个虚拟环境来自动生成标注资料,用于训练。为了验证模型在真实场景的效能,我们额外收集了两个真实资料集,并进行了人工标注。三个资料集及虚拟环境均开放下载。 第一个资料集是虚拟资料集(Virtual Dataset)。我们使用了虚幻4引擎及其外挂Unrealcv[2]来进行场景的渲染和资料采集。在生成训练资料时,我们对摄像机的位置、场景光照和背景进行随机化,以增强网络在真实场景中的泛化能力。我们共采集了5000张图片作为训练资料。虚拟资料集的标注自动生成,包括三维姿态资讯。 第二个资料集是实验室资料集(Lab Dataset)。我们在实验室环境拍摄了机械臂的图片,标定了相机的内外引数和机械臂的三维姿态。实验室资料集由500张左右图片构成,只用于测试。 第三个资料集是YouTube资料集。我们爬取了YouTube中OWI-535机械臂的相关视讯,并进行了手工标注,由于相机内外引数未知,因此我们只标注了二维关键点的位置。YouTube资料集由500张左右图片构成,只用于测试。 资料集样例图片见下图: 上两行:虚拟资料;第三行:实验室资料;最后一行:YouTube资料 可迁移的三维姿态估计 机械臂三维姿态估计模组是系统的核心组成部分。其输入是RGB影象,输出是机械臂的三维姿态,也即各个转轴的角度。具体而言,其由两个子模组构成:第一个子模组是二维关键点估计神经网络,由输入影象还原出二维关键点座标;第二个子模组依据二维关键点还原出三维姿态。 二维关键点估计神经网络使用的是Stacked Hourglass Network[1],网络采用全卷积结构。我们预先定义好机械臂上的17个关键点,网络的输出是与其对应的17个通道的热点图。在预测时,我们取热点图上响应最明显的位置作为预测结果。 获取了二维姿态后,第二个子模组进行三维还原。我们将机械臂建模为一个4个自由度的多刚体模型,因此17个关键点的位置满足一定的约束关系。我们通过线上的解一个优化方程,即最小化二维关键点的预测位置和三维模型重投影位置之间的误差,来获得机械臂各转轴角度的最优解。 此外,我们提出了新的半监督域迁移演算法。只使用虚拟资料进行训练的网络,在真实图片上的表现不够好,而采用了我们的演算法之后,泛化效能有大幅度提升。下图展示了我们的域迁移演算法框图。我们首先使用虚拟图片对神经网络进行预训练。之后,我们将没有标注过的真实图片送入网络,生成初始预测结果。由于域间的差异,初始预测结果可能会产生错误。我们基于初始预测结果进行三维重建,并将此结果投影回二维,就获得了优化后的关键点预测结果。由于在此过程中引入了机械臂刚性结构的强先验资讯,所以优化后的预测结果会好于初始预测结果。最后,我们用真实图片及用这种方法生成的虚假标签来对神经网络进行微调。 我们首先使用虚拟图片对神经网络进行预训练(图中绿色虚线)。然后,我们将没有标注过的真实图片送入网络,生成初始预测结果。接下来,基于初始预测结果进行三维重建,并将此结果投影回二维,获得优化后的关键点预测结果。最后对网络进行微调(图中蓝色部分)。 实验结果 二维关键点预测结果: 如下表所示,我们证明了在实验室环境下,我们提出的半监督域迁移演算法(最后一行)相比于只使用虚拟资料训练的网络(第一行)效能有很大提升。且此方法优于其他的无监督域迁移演算法,包括CycleGAN[3]等。参与对比的几种域迁移方法都以Lab资料集作为目标域。其在从未见过的YouTube资料上的准确率相对其他方法有更大提高,说明网络整体泛化能力获得提升。 上表为不同迁移方法下得到的模型的二维关键点检测准确率。测试资料分别在虚拟资料集、实验室资料集、YouTube资料集,其实YouTube-vis为只计算可见的关键点的结果。 下图展示了三维重建的定性结果。上图是原始图片,下图是经过三维重建并渲染视觉化的图片。可见,系统可以在复杂背景下对机械臂进行三维重建。实验室资料集上的定量结果表明,机械臂转角的重建误差约为4.8度。 我们使用DDPG演算法训练强化学习智慧体,在虚拟环境中进行互动。智慧体的输入是当前状态、目标状态和上一时刻的决策。输出是对4个电机马达的控制讯号。我们在两个任务上进行了测试。 第一个任务是Reach,即让机械臂的前端达到特定目标点的正上方。这是机械臂的“基本功”。通过测量终止位置和目标位置之间的水平距离来评价结果的好坏。上图是我们的实验装置示意图,下方参考板上的9个黑色圆点即为目标位置。在这个任务上,我们达到了与人类控制相近的精度。 在不同的视角、背景下也能很好地工作。 第二个任务是夹取骰子,现阶段骰子的三维空间位置由人工测量给定。 更多结果请浏览专案主页及论文。 专案主页:https://craves.ai(含程式码和资料) 演示视讯:https://www.bilibili.com/video/av47292064/ 论文地址:https://arxiv.org/abs/1812.00725 [1] Alejandro Newell, Kaiyu Yang, and Jia Deng. Stacked hourglass networks for human pose estimation. In European Conference on Computer Vision, 2016. [2] Weichao Qiu, Fangwei Zhong, Yi Zhang, Siyuan Qiao, Zihao Xiao, Tae Soo Kim, Yizhou Wang, and Alan Yuille. Unrealcv: Virtual worlds for computer vision. In Proceedings of the 25th ACM International Conference on Multimedia, 2017. [3] Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A.Efros. Unpaired image-to-image translation using cycleconsistent adversarial networks. In International Conference on Computer Vision, 2017. https://gair.leiphone.com/gair/coupon/s/5cff23c18a14c https://gair.leiphone.com/gair/coupon/s/5cff23c189e2c https://gair.leiphone.com/gair/coupon/s/5cff23c189b2d 点选,进入CVPR顶会交流小组,检视更多CVPR 2019动态