专栏首页AI算法修炼营一种用于移动机器人自动识别电梯按钮的去除透视畸变方法

一种用于移动机器人自动识别电梯按钮的去除透视畸变方法

今天来看一下使用的文章,主要的内容是移动机器人用于电梯场景中下,对电梯按钮进行角点检测,并对透视畸变自动去除。整体思路将深度学习方法和传统方法相结合,实现了较好的性能。

论文地址:https://arxiv.org/pdf/2007.11806.pdf

电梯按钮的识别是实现移动机器人在电梯内自主运行的重要部分和基础,然而,由于电梯场景的复杂性和各种图像失真使得难以准确识别按钮。在本文的工作中,提出了一种新颖的算法,该算法可以基于按钮角点检测结果自动校正电梯面板图像的透视畸变。该算法首先利用DeepLabv3 +模型和Hough变换方法获得按钮分割结果和按钮角点检测结果,然后利用标准按钮角点的像素坐标作为参考特征来估计摄像机运动以校正透视畸变,因此该算法对于去除图像上的异常值和噪点更加鲁棒。与传统的几何方法相比,本文的方法能够校正的透视畸变率更高,因为它仅对单个图像自动执行。实验结果表明,该方法在准确性和鲁棒性方面明显优于传统的几何技术,平均比传统几何算法的校正结果高77.4%。

简介

移动机器人在电梯场景中自动运行是一种具有广泛前景的方案,通常包括三个部分:按钮识别,运动规划和机器人控制。其中,按钮识别是最基本但最具挑战性的步骤。它的性能直接决定整个电梯中移动机器人操作系统的成功率和鲁棒性。但是,当前的按钮识别系统大多不能实现自主操作,它需要人工协助或电梯面板改造,这违背了将机器人设计为自主的想法。

电梯按钮识别算法通常包含两个子任务:按钮检测和字符识别。然而,由于图像扭曲,识别精度并不令人满意。同时,按钮形状、按钮尺寸、电梯面板设计、光线条件等种类繁多,各种透视畸变和模糊使得按钮的识别更加困难。本文工作的关键思想是提出一种新颖的算法,可以根据检测结果自动去除此类透视畸变,帮助提高按钮识别精度。

角点检测方法包括两个部分。第一部分是按钮分割算法,该算法利用DeepLabv3 +模型进行特征提取并获得按钮分割结果。第二部分是角点坐标检测算法。在获得按钮分割结果之后,利用膨胀和腐蚀操作来减少噪声。然后采用霍夫变换方法检测每个按钮的四行。最后,因为它们是检测到的线的交点,所以可以获得像素坐标和所有按钮角点的顺序。

透视畸变失真消除方法由三大步骤组成,第一步是建立一个标准的透视空白坐标系,并在空白坐标系上绘制预设的按钮角点的标准像素坐标。第二步是back projection。在得到角点像素坐标的检测结果后,利用摄像机固有参数的反矩阵,将按钮角点的像素坐标在当时的归一化图像平面上转化为空间坐标。第三步是从失真的图像到标准透视空白坐标系估计相机运动。在获得空间坐标后,利用Rodrigues公式,以每轴0.5的间隔对旋转度进行采样,对畸变角的空间坐标进行旋转,得到新的空间坐标,形成新的空间四边形。 当新的空间四边形的线与标准透视角点得到的标准空间四边形平行时,我们就可以得到相机运动的最佳位姿。第四步是形成无畸变的新图像。得到最佳位姿后,利用对角点像素点进行同样操作,将有畸变的图像中的每个像素转化为新的像素坐标。然后通过应用逆向变换,最终可以消除透视失真。

本文方法:角点检测BUTTON CORNER DETECTION

1、Button Segmentation

在这项工作中,利用DeepLabv3 +模型获得属于按钮的像素的分割结果。它是一种典型的网络体系结构,使用改进的神经体网络结构搜索技术来自动搜索图像的语义分割。DeepLabv3 +模型将两种类型的神经网络结合在一起:编码器-解码器结构和空间金字塔池模块。通过利用编码器-解码器结构,可以获得清晰的对象边界,并且利用空间金字塔池化模块可以通过池化特征来捕获丰富的上下文信息。DeepLabv3 + 模型如图2所示。

本文中采用的DeepLabv3 +模型的输入是带有畸变的电梯按钮平面图像。首先利用Mobilenet提取特征,这是一个深度可分离的卷积神经网络。Mobilenet作为主干网络主要输出两种类型的按钮分割特征:低级特征和高级特征。然后应用几种具有不同空洞率的空洞卷积来捕获高级特征的丰富语义信息并在输出中进行编码。此外,解码器模块主要用于对象边界的恢复。当DeepLabv3 +模型执行反卷积操作时,低级特征与编码器的输出相融合。

本文中采用的DeepLabv3 +模型的输出是具有与输入图像相同分辨率的灰度图像。每个像素的值代表其所属的类别。

2 Corner coordinates detection

获得失真图像的按钮分割结果后,首先提取其中一个按钮特征,然后可以得到具有两类像素值的二值图像,其中一类代表我们要提取的按钮特征,另一类代表另外两个按钮的特征。之后,采用膨胀和腐蚀的方法来减少二值图像的噪声并平滑按钮的边缘,以提高行检测的性能。腐蚀然后膨胀的过程称为闭运算操作。它用于连接相邻对象并同时平滑其边界,而不会显着改变其面积。

然后将Hough变换法应用于处理后的图像,检测按钮的四条线。Hough变换法是计算机视觉、图像分析和数字图像处理领域中检测图像几何形状的基本方法之一。它是将具有相同形状的曲线或直线从一个空间映射到另一个坐标空间的点上,并求出峰值。最后,在得到四条线的检测结果后,我们可以得出按钮角点的像素坐标,因为它们是检测线的交点。而每个按钮角点的顺序是事先定义好的,以方便透视失真去除算法。其顺序如下图所示。

本文方法:透视失真去除PERSPECTIVE DISTORTION REMOVAL

1、符号定义

  • 第一步是建立标准透视白画布(标准坐标系),并在其上绘制按钮角点的预设标准像素坐标。图4中显示了标准透视白色画布的一个演示:
  • 第二步是反投影。在获得角点像素坐标的检测结果后,利用相机固有参数实现像素坐标在归一化图像平面上向空间坐标的反投影。

假设对于不变形的标准透视图按钮角点,水平线的斜率等于零,垂直线的斜率等于无穷大,水平线和垂直线之间的夹角的余弦值等于零。因此,对于矩阵E有:

  • 第三步是计算旋转和平移矩阵,以形成检测到的按钮角点的新空间坐标点。在获得空间坐标点D之后,利用Rodriguez公式旋转具有畸变角的空间坐标,以获得它们的新空间坐标点并形成新的空间四边形。

然后可以获得空间坐标点的旋转矩阵:

最终,可以获得检测到的深度等于1的按钮角点的新的空间坐标点,公式如下:

其中P [3]代表第三行新的空间坐标点,转换矩阵T定义为标准透视图图像和需要校正的图像中第一个角的空间坐标点值之间的差值。

  • 第四步是通过将扭曲的图像与标准的透视坐标系对齐来从这些图像估计摄像机运动。也就是说,希望获得最佳的旋转和平移矩阵,以获得新的空间坐标点,这些空间坐标点构成新的四边形,其中两条线都平行于由标准坐标系的空间坐标点组成的四边形中的线。

在这项工作中,相对于每个轴每0.5度采样一次,以获得从-40度到40度的旋转矩阵R(θ),共有512,000种组合。然后设置三个标准来决定哪种组合可以获得最佳旋转矩阵。

第一个标准是每个按钮的水平线在空间坐标中的斜率。

第二个准则是每个按钮的垂直线在空间坐标中的斜率。

第三个条件是空间坐标中每个按钮的水平和垂直线的余弦值。

为了组合这三个标准,针对所有旋转矩阵组合条件对它们进行了归一化。

那么最终的准则如下所示:

当“最终标准”最小时,我们可以获得最优旋转和平移矩阵,该矩阵可以将检测到的按钮角点的空间坐标点转换为标准透视图按钮角的理想空间坐标点,而不会发生变形。

  • 第五步是形成没有畸变的新图像。获得最佳位姿估计后,通过对角像素进行相同的操作,将畸变图像的每个像素转换为新的像素坐标。在获得所有像素的新空间坐标点后,我们可以利用相机固有参数进行投影,并在归一化平面中获得新像素点。
  • 最后,通过在相同类型的空白图像和变形图像之间应用逆变换,就可以获得去除了透视变形的新图像。

实验与结果

在本节中,DeepLabv3+模型在一个大规模的测试数据集上进行了实验,该数据集包含了2000张电梯按钮图像的高质量像素级annotations。实验结果表明,DeepLabv3+模型具有了良好的表现。然后收集了来自3个不同电梯场景的15张图像的数据集来验证所提出的算法,并且所有的样本都是从不同的视角包含严重的透视失真来采集的。图5中展示了一些原始图像和修正后的图像。根据图5可以看到,即使图像样本的透视畸变也很严重,所提算法也具有良好的校正性能。

实验结果

为了测量所提出的失真消除算法的准确性和有效性,我们将提出的算法和传统的几何算法应用于数据集,并比较它们的失真消除结果。

将上式的值用于评估,它表示空间坐标中所有按钮的水平线和垂直线之间的余弦值的两个范数。当Cos值越小,校正效果越好。在实验中使用的传统几何算法是Krishnendu Chaudhury提出的(《Auto-rectification of user photos》)。这种传统几何算法的关键思想是通过在图像上执行仿射校正来使图像更接近于正面平行视图,从而恢复平行于正面平行图像视图的线的平行度,并利用基于消失点的RANSAC方法。

失真消除算法的结果比较

从表中可以看到。所提出的算法在所有三组图像上均实现了更高的精度。该算法的校正结果平均比传统几何算法的校正结果高77.4%,大大改变了算法的有效性。

更多细节可参考论文原文。

本文分享自微信公众号 - AI算法修炼营(AI_SuanFa),作者:SFXiang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ECCV2020 | 300+FPS!浙大提出一种超快速车道线检测方法

    论文地址:https://arxiv.org/pdf/2004.11757.pdf

    AI算法修炼营
  • CVPR2020 | CentripetalNet:48.0% AP,通过获取高质量的关键点对来提升目标检测性能

    论文地址:https://arxiv.org/pdf/2003.09119.pdf

    AI算法修炼营
  • 语义分割 | 轻量级实时分割经典BiSeNet及其进化

    基于轻量化网络模型的设计作为一个热门的研究方法,许多研究者都在运算量、参数量和精度之间寻找平衡,希望使用尽量少的运算量和参数量的同时获得较高的模型精度。目前,轻...

    AI算法修炼营
  • 如何将操作按钮悬浮固定在微信小程序底部?

    本章节主要介绍了如何将操作按钮悬浮固定在微信小程序底部?操作起来也比较简单,还不会的朋友一起跟着小编学习一下吧,希望对你们有所帮助。

    林老师带你学编程
  • Material Design — 按钮( Buttons)

    霖酱
  • [译文]一篇文章读懂UI按钮设计细节与规范

    按钮也可以触发诸如购买,下载,发送或者其它很多重要的操作。数字按钮是现实世界中按钮的下一代表现形式,比如电视遥控器,音乐播放机或者游戏控制器中的按钮。

    用户5009027
  • 交互设计控件之按钮设计

    一.主按钮和次按钮 ? 很多按钮是成对出现的,比如“确定”和“取消”。一般情况下,按钮会有主次之分,一个按钮是我们期望用户去做的,另一个按钮是在特殊情况下才去...

    前朝楚水
  • 你的按钮到底在帮助用户还是在误导用户?

    按钮是UI/UX最关键的组件之一,在不同设备及平台上得到了广泛的应用。它们具有影响用户行为和体验的能力。假如按钮设计不合理,会令用户产生误解及障碍。按钮设计的目...

    葡萄城控件
  • 人性化的UI按钮设计技巧,来了解一下?

    不知道大家有没有发现,按钮越多,我们点击得越慢。这是因为只要有按钮,我们的下意识就会“检查”它们,直到确认无误后才会”决定”点击。让用户在繁多的按钮当中找到需要...

    用户5009027
  • Material风格的Qt控件

    https://github.com/laserpants/qt-material-widgets

    Qt君

扫码关注云+社区

领取腾讯云代金券