订阅业界RSS CSDN首页> 业界

机器人应用部署——利用图像分割驱动 Turtlebot3 Burger

发表于2020-09-16 17:30| 来源Quancomm| 作者Qualcomm

摘要:图像分割是将图像细分成各个部分或对象,供进一步详细分析的过程。分析产生的高级信息可用于计算机视觉应用,比如 QDN 学习资源Qualcomm 机器人 RB3 驱动 Turtlebot 3 Burger中讲到的自动驾驶机器人。

图像分割是将图像细分成各个部分或对象,供进一步详细分析的过程。分析产生的高级信息可用于计算机视觉应用,比如 QDN 学习资源Qualcomm 机器人 RB3 驱动 Turtlebot 3 Burger中讲到的自动驾驶机器人。

图像分割类型

语义分割的目的是确定图像中各像素是否属于给定的对象,通常用于自动驾驶车辆,用于获取道路、汽车和其他障碍物的位置。此外,还可用于摄像头应用,区分图像前景像素与背景像素,然后,对背景像素应用模糊或单色效果,如下图所示。

而另一方面,实例分割识别对象在像素层面下的各个实例。实例分析不指示各像素是否属于特定的对象,而是识别该像素是否属于同一对象的不同实例。比如下图中的多个立方体实例。

 

本文专门探讨语义分割,此类计算机视觉问题可以通过图像阈值、k 均值聚类和深度学习架构等算法加以解决。下采样和上采样的深度学习技术在此方面尤其有用。

下采样

下采样路径包含多个卷积块和最大池化运算 (max pooling operations),提取特征映射图。

下取样块包含使用滤波器的卷积运算,和使用2×2内核函数的最大池化运算。每次下采样之后,卷积运算过滤器的数量翻一番(有关文中使用到的术语解释,可以参阅QDN学习资源《计算机视觉深度学习和卷积神经网络》)。

图:使用具有相同填充的3x3内核的卷积运算

卷积

在下采样路径的第一个块中,输入图像被馈送到卷积层,然后整体图像运行各个过滤器,获取相应的特征映射图。对于3×3的内核,卷积运算在滤波器权重和输入图像对应像素值之间,查找点乘积。卷积运算之后,如果填充有效且深度增加到应用的过滤器数量,则宽度和高度将随之减少。

以下公式用于计算卷积运算后的高度或宽度:

 

其中:

· Nout = 卷积后的尺寸,

· Nin = 输入矩阵的高度或宽度,

· p = 填充

· k = 内核大小

· s = 步幅。

我们计算第一块卷积运算后生成的特征图的高度和宽度。输入图像的分辨率为320×240×3p = 0(有效填充), k = 2 s = 1,因此,如果过滤器的数量等于32,则卷积运算的输出尺寸为316×236×32。如果填充相同,则尺寸为320×240×32

最大池化

下面,我们使用最大池化运算,从卷积运算输出中提取最重要的特征。

为了对特征映射图进行下采样,将运行 2×2 滤波器,步幅 = 2,以获得最大值并形成池化特征映射图。对于输入形状320×240×322×2最大池化将产生160×120×32的输出形状,步幅为2。下采样块可以使用任意数量的卷积运算过滤器来确定。在每一个块中,将卷积运算输出作为变量保存,用于在后期下采样时的拼接 (concatenation)

下采样完成后,特征映射图被馈送到上采样层,将特征映射图升级到输入分辨率。

下采样过程中使用的 Tensorflow API (v1.x) 如下:

· 卷积:tf.nn.conv2d

· 最大池化:tf.nn.max_pool2d

上采样

下采样结果是关于图像中是否存在对象的信息;但是,关于对象的位置信息在此过程中丢失了。上采样获取下采样输出,并将其升级到与输入图像相同的分辨率。

上取样块包含卷积运算,然后使用转置卷积 (transposed convolution) 进行升级运算,以及拼接运算。

卷积运算类似于上文下采样过程中执行的运算。

转置卷积与普通卷积相反,我们这里涉及到一个转置卷积运算,滤波器数量与最后一个下采样块的卷积运算相同,滤波器形状为2×2。之后,根据过滤器的形状更改高度和宽度。上采样的大小需要与对应的下采样块相同;因此,转置卷积的输出应是输入大小的两倍。

将各下采样块的卷积运算输出与转置卷积的输出进行拼接,实现跳跃拼接,可以获得更佳的预测结果。即在第一个上采样块结束处,重复相同的运算,直到输出形状与输入形状相同。

接下来是使用形状 3×3 N_CLASS(类的数量)滤波器的卷积运算。之后,softmax激活函数获得特定像素各个类的概率。这就是对输入图像进行分割的结果。

上采样过程使用的 Tensorflow API (v1.x) 如下:

· 卷积:tf.nn.conv2d

· 转置卷积:tf.nn.conv2d_transpose

· 拼接:tf.concat

 

图:转置卷积

接下来

不妨看一看 Qualcomm 机器人 RB3 如何驱动 Turtlebot 3 Burger

Qualcomm机器人RB3Qualcomm Technologies, Inc./或其子公司的产品。