FB Pixel

当应用于机器人技术时,深度学习是一个强大的工具。 本文讨论OhmniLabs如何在其智真机器人中使用深度学习进行自动充电对接校准。

Ohmni机器人可以自动找到它的充电对接站并移动到该站进行充电。相机图像与现实世界中机器人坐标的标定是自动对接的重要步骤。为了更好的工作,我们首先要从相机图像中找到机器人底座的关键点。根据这些点,我们得到了从摄像机图像到机器人坐标的变换。对于Ohmni机器人,我们使用如下图所示的4个关键点。

Figure 1: The 4 keypoints used to calibrate between the camera image and robot coordinates.

图1:在摄像机图像和机器人坐标之间校准的4个关键点。

以前,关键点是手动选择的。 这不仅耗费时间,而且如果机器人颈部倾斜或更换镜头,可能会导致校准不准确。 为了解决此问题,我们没有使用预先存储所有关键点的坐标的方法,而是使用基于图像的算法,该算法可以帮助机器人从摄像机图像中检测出确切的关键点,然后进行相应的停靠对接。

基于深度学习的关键点检测模型

大多数基于图像的方法常常从关键点或区域提取低级别的视觉特征。这种低级别的特征表示通常缺乏语义解释,这意味着它们不能捕获高级类别的详细外观。为了提高稳定性,我们可以集成外部约束,如CAD模型或机器人运动学,但图像驱动方法仍然是提供稳定和可扩展的系统的核心。

深度学习已经成为人工智能任务中如计算机视觉、语音和自然语言处理等的选择方法。深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。通过使用深度学习模型,我们可以避免使用由人类工程师设计的特性;相反,模型自动地从原始数据中学习。

为了利用这一方法,我们扩展了OpenPose模型,它原本是一种利用部分关联域进行多人姿态估计的有效方法。该模型由一组深度神经网络组成,负责联合学习图像特征和定位图像中的关键点。模型的架构如图2所示。为了利用GPU/TPU的并行计算和训练模型的服务,我们在TensorFlow中实现了该模型。

该模型首先利用预先训练好的卷积神经网络从输入图像中提取特征。然后将图像特征输入到其他卷积层的两个并行分支中。第一个分支预测一组置信度图,该置信度图是一个矩阵,它存储网络中某个像素包含某个关键点的置信度。图3显示了一个关键点置信度图的例子。

Applying Deep Learning for Autodocking Calibration on the Ohmni Robot

图2:关键点置信度图的一个例子

Applying Deep Learning for Autodocking Calibration on the Ohmni Robot

图3:水平方向(左侧)和垂直方向的PAF示例

第二个分支预测代表零件关键点之间关联程度的部分零件相似性字段(PAF)。 PAF是提供有关线对位置和方向信息的矩阵。 它们成对出现:对于每个关键点,我们在水平方向上有一个PAF,在垂直方向上有一个PAF,如图4所示。连续的阶段用于完善每个分支所做的预测。

利用零件置信度图,在零件对之间形成二部图。利用PAF值,对二部图中较弱的链接进行修剪。通过以上步骤,可以正确估计出机器人基座的关键点和骨架。图5举例说明了估计的关键点和关键点之间的连接。

Applying Deep Learning for Autodocking Calibration on the Ohmni Robot

图4:一个估计关键点和关键点之间连接的例子

通常,训练一个深度学习模型需要大量的数据。 我们在不同的条件下收集了成千上万的图像,这样训练出来的模型就会非常强大。 具体来说,我们使用多种类型的机器人来捕获不同环境下的图像,例如地板,整体照明度,摄像机类型和摄像机倾斜角度。

此外,我们使用数据扩充技术来增加数据集的大小,并帮助模型更好地泛化。经过一系列的实验,我们最终的模型得到了令人印象深刻的结果,在测试数据上得到的mAP评分的准确率大约是98%。注意,我们可以随着时间的推移不断地改进模型;训练的数据量越大,模型的性能就越好。

建模培训和服务体系结构

创建深度学习模型只是整个挑战的一部分。下一个挑战是找到一种服务于生产中的模型的方法。模型服务系统需要承受较大的流量。对于我们来说确保提供这些模型的软件和硬件基础设施是可伸缩的、可靠的和容错的是至关重要的。

我们决定使用TensorFlow服务作为模型服务。Tensorflow服务是用c++编写的,它支持机器学习模型的服务。TensorFlow服务将每个模型视为一个可服务的对象。它定期扫描本地文件系统,根据文件系统的状态和模型版本控制策略加载和卸载模型。这使得在Tensorflow服务继续运行时,可以通过将导出的模型复制到指定的文件路径来轻松热部署经过训练的模型。TensorFlow服务提供了一个基于gRPC的参考前端实现,gRPC是来自谷歌的高性能开源RPC框架。

Architecture of TensorFlow Serving

图5:TensorFlow服务架构的概述

首先,我们使用云GPU实例来训练TensorFlow模型。一旦经过培训和验证,它们就会被导出并发布到我们的模型存储库中。接下来,我们开发了一个实现TensorFlow服务的模型服务网络(MSN)。MSN管理作业队列、图像预处理和TensorFlow服务预测的后处理。它还可以加载来自Ohmni robot的请求,并管理来自存储库的模型更新。作为OhmniLabs深度学习AI框架的一部分,我们将该模型训练和服务架构推广到其他模型和数据。

关于自动充电对接校准的深度学习的结论

我们的训练结果证明了深度学习在自动对接校准中起到作用。结果表明该模型能有效地解决相机标定问题。此外,我们还建立了一个模型培训和服务的基础设施,允许持续改进深度学习模型。该架构是OhmniLabs深度学习AI框架的一部分。

要了解更多关于Ohmni开发者版本,请访问: https://store.ohmnilabs.com/products/ohmni-developers-kit.

感谢本文原创者:Ba-Hien Tran

Author

Kambria是第一个采用开放式创新协议的区块链项目,旨在利用真实世界的应用程序构建开放式机器人和人工智能平台,提供开放式协作生态系统。 Kambria是由OhmniLabs的创业团队共同建立的。OhmniLabs已经是一家成熟的机器人公司。通过使用精益的制造技术和成熟的开发流程生产出功能性全面并且具备高性价比的个人消费型机器人(涵盖由软件到硬件全自主开发生产)。