0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用立体视觉实现距离估计?

新机器视觉 来源:智车科技 作者:智车科技 2021-07-01 09:15 次阅读

/ 导读 /

双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。

1伪激光雷达-双目立体相机

深度学习计算机视觉自动驾驶系统中已经非常流行且被广泛应用。计算机视觉领域在过去的十年里得到了迅猛的发展,特别是在障碍物检测方面。障碍物检测算法,如YOLO或RetinaNet提供了二维边界框,用边界框给出了障碍物在图像中的位置。

目前,大多数的目标检测算法都是基于单目RGB摄像机的,不能返回每个障碍物的距离。为了能够返回每个障碍物的距离,工程师们将相机与激光雷达(LiDAR,光探测和测距)传感器进行融合,后者使用激光来返回深度信息。将计算机视觉信息和激光雷达输出进行传感器的融合。这种方法的问题是使用激光雷达,就会导致价格昂贵。所以经常有人使用的一个双目摄像头进行替代,并使用几何信息来定义每个障碍物的距离,故可以将双目相机获取的数据称之为伪激光雷达

双目视觉利用几何学来构建深度图,并将其与目标检测相结合以获得三维距离。那么如何利用立体视觉实现距离估计?以下是双目障碍物检测的5步伪代码:

标定 2 个摄像头(内外参的标定)

创建极线约束

先构建视差图,然后构建深度图

然后将深度图与障碍物检测算法相结合

估计边界框内像素的深度。

2相机内外参标定

每个摄像机都需要标定。相机的标定是指将三维世界中的[X,Y,Z]坐标的三维点转换为具有[X,Y]坐标的二维像素。这里简单的介绍一下针孔相机模型。顾名思义就是用一个针孔让少量光线穿过相机,从而得到清晰的图像。

针孔相机模型可以设置焦距,使得图像更加的清晰。为了相机标定,我们需要通过摄像机坐标系计算世界坐标点到像素坐标的变换关系。

从世界坐标系到相机坐标的转换称为外参标定,外部参数称为R(旋转矩阵)和T(平移矩阵)。

从摄像机坐标到像素坐标的转换称为内参标定,它获取的是相机的内部参数,如焦距、光心等…

内参我们常称之为K的矩阵。

内参标定,通常使用棋盘和自动算法获得,如下图我们在采集标定板时,将告诉算法棋盘上的一个点(例如世界坐标系点 0, 0 , 0)对应于图像中的一个像素为(545,343)。

为此,相机标定必须用摄像机拍摄棋盘格的图像,在得到一些图像和对应的点之后,标定算法将通过最小化平方误差来确定摄像机的标定矩阵。得到标定参数后为了得到校正后的图像,需要进行畸变校正。畸变可以是径向的,也可以是切向的。畸变校正有助于消除图像失真。

以下是摄像机标定返回的矩阵形式

f是焦距-(u₀,v₀) 是光学中心:这些是固有参数。

我认为每一个计算机视觉工程师都应该必须知道并掌握相机的标定,这是最基本且重要的要求。

在相机标定的过程中涉及到一些齐次坐标转换的问题,这里简单的介绍一下有两个公式可以得到从世界坐标系到像素坐标系的关系:

(1)世界坐标系到相机坐标系的转换(外参标定公式)

e627d60e-d9d2-11eb-9e57-12bb97331649.png

(2)相机坐标系到图像坐标系的转换(内参标定公式)

e633d9b8-d9d2-11eb-9e57-12bb97331649.png

所以从三维空间坐标系到图像坐标系下的关系可以总结为

e63f9c94-d9d2-11eb-9e57-12bb97331649.png

但是我们知道这个公式是齐次坐标才可以这么写,也就是需要将O_world从[X Y Z]修改为[X Y Z 1],加这个“1”后称为齐次坐标。

e67fd156-d9d2-11eb-9e57-12bb97331649.png

3双目视觉的对极几何

我们知道双目立体视觉是基于两幅图像来寻找深度的,人类的眼睛就像两个相机,因为两只眼睛从不同的角度观察图像,所以他们可以计算两个视角之间的差异,并建立距离估计。下图是一个双目立体相机的例子

那么我们如何根据双目立体相机如何估计深度?想象一下你有两个摄像头,一个左摄像头和一个右摄像头。这两个摄像头在同一Y轴和Z轴上对齐。那么唯一的区别是它们的X值。

根据上图我们的目标是估计O点(代表图像中的任何像素)的Z值,即距离。X是对齐轴,Y是高度值,Z是深度值,两个蓝色的平面图对应于每个摄像头的图像。假设我们从从俯视的角度来考虑这个问题。

已知:

(1)xL对应于左侧相机图像中的点。xR是与左侧图像中该点的对应位置。(2)b是基线,是两个摄像头之间的距离。

针对左相机,如下图,我们可以得到一个公式:Z = X*f / xL.

针对右相机,如下图,我们可以得到另一个公式:Z = (X — b)*f/xR.

此时根据两个公式我们可以计算出正确的视差d=xL-xR和一个物体的正确XYZ位置。

4视差和深度图

什么是视差?视差是指同一个三维点在两个不同的摄像机角度获得的图像中位置的差异。视差图是指一对立体图像之间明显的像素差异或运动。要体验这一点,试着闭上你的一只眼睛,然后快速地闭上它,同时打开另一只眼睛。离你很近的物体看起来会跳一段很长的距离,而离你较远的物体移动很少,这种运动就是视差。

e7742be8-d9d2-11eb-9e57-12bb97331649.png

由于立体视觉,我们可以估计任何物体的深度,假设我们得到了正确的矩阵参数,则可以计算深度图或视差图:

为了计算视差,我们必须从左边的图像中找到每个像素,并将其与右边图像中的每个像素进行匹配。这就是所谓的双目相机的立体匹配的问题。为了解决像素匹配的问题,引入对极几何约束,只需在对极线上搜索它,就不需要二维搜索,对应点一定是位于这条线上,搜索范围缩小到一维。

之所以能够引入对极约束,这是因为两个相机是沿同一轴对齐的。以下是极线搜索的工作原理

取左图中这一行上的每个像素

在同一极线上比较左图像像素和右图像中的每个像素

选择 cost 最低的像素

计算视差 d

5构建伪激光雷达效果

现在,是时候把这些应用到一个真实的场景中,看看我们如何使用双目立体视觉来估计物体的深度。假设我们有以下两张实际场景下的图片,并且我们我们已经获取了双目相机的外参矩阵。

此时我们计算视差图的步骤。将投影矩阵分解为摄像机内参矩阵

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    763

    浏览量

    57412
  • 计算机视觉
    +关注

    关注

    8

    文章

    1600

    浏览量

    45619
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119920
  • 自动驾驶系统

    关注

    0

    文章

    63

    浏览量

    6655

原文标题:自动驾驶汽车的伪激光雷达-双目立体视觉

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    三维视觉测量技术:被动视觉测量和主动视觉测量

    与人眼的立体感知类似,双目立体视觉用两个相机从不同的角度对被测物体成像。依据两幅图像中对应点的立体视差( stereo disparity) ,根据三角测量原理实现三维信息测量。
    的头像 发表于 01-03 11:30 311次阅读
    三维<b class='flag-5'>视觉</b>测量技术:被动<b class='flag-5'>视觉</b>测量和主动<b class='flag-5'>视觉</b>测量

    双目立体视觉是什么样的技术?

    双眼视物时,主观上可产生被视物体的厚度以及空间的深度或距离等感觉,称为立体视觉(stereopsis)。其主要原因是同一被视物体在两眼视网膜上的像并不完全相同,左眼从左方看到物体的左侧面较多,而右眼则从右方看到物体的右侧面较多。
    的头像 发表于 12-28 17:08 425次阅读
    双目<b class='flag-5'>立体视觉</b>是什么样的技术?

    计算机视觉中的立体视觉和深度感知Python示例实现

    在人工智能和图像处理的迷人世界中,这些概念在使机器能够像我们的眼睛一样感知我们周围的三维世界中起着关键作用。和我们一起探索立体视觉和深度感知背后的技术,揭示计算机如何从二维图像中获得深度、距离和空间理解的秘密。
    的头像 发表于 11-21 10:50 285次阅读

    LiDAR和立体视觉摄像头如何处理弱光、黑暗环境?

    立体视觉传感器使用远光灯从 130 米外检测到一块躺在道路上的木材,使用近光灯从 100 米外检测到一块木材。 LiDAR 从最大 50 米外检测到木材。
    发表于 11-08 14:53 184次阅读

    LiDAR立体视觉摄像头如何处理弱光及恶劣的天气条件

    两种高效的距离传感解决方案,尽管性能存在显着差异,尤其是在恶劣天气和道路条件下。 Nodar是一家为自动驾驶汽车提供先进立体视觉技术的供应商,最近进行了一系列头对头的性能测试,以比较LiDAR和立体视觉摄像头如何处理弱光、黑暗和
    的头像 发表于 11-07 17:01 724次阅读

    立体视觉系统的设计方案

    电子发烧友网站提供《立体视觉系统的设计方案.pdf》资料免费下载
    发表于 11-06 10:17 0次下载
    <b class='flag-5'>立体视觉</b>系统的设计方案

    三维立体视觉之三维恢复方法

    电子发烧友网站提供《三维立体视觉之三维恢复方法.doc》资料免费下载
    发表于 11-03 09:31 0次下载
    三维<b class='flag-5'>立体视觉</b>之三维恢复方法

    LiDAR和立体视觉摄像头如何处理低光

    距离传感解决方案,尽管性能存在显着差异,特别是在恶劣的天气和道路条件下。 Nodar是AV先进立体视觉技术的提供商,最近进行了一系列面对面的性能测试,以比较 LiDAR 和立体视觉摄像头如何处理低光,黑暗和恶劣天气条件,以及检
    的头像 发表于 10-13 15:33 262次阅读

    关于双目立体视觉的三大基本算法及发展现状

    双目立体视觉一直是机器视觉研究领域的发展热点和难点,“热”是因为双目立体视觉有着及其广阔的应用前景,且随着光学、计算机科学等学科的不断发展
    的头像 发表于 08-25 17:28 1425次阅读
    关于双目<b class='flag-5'>立体视觉</b>的三大基本算法及发展现状

    双目立体视觉是什么?单目视觉与双目立体视觉的区别?

    双目更多的是基于物理测量,而单目视觉则是基于逻辑推理,通过大量的数据训练,先识别出目标,再根据目标的大小和高度估算距离。因此,单目视觉的漏检率高于双目立体视觉,因为客观上存在corne
    发表于 08-17 09:40 2532次阅读
    双目<b class='flag-5'>立体视觉</b>是什么?单目<b class='flag-5'>视觉</b>与双目<b class='flag-5'>立体视觉</b>的区别?

    双目立体视觉原理 HALCON的双目视觉系统研究

      立体视觉技术是机器人技术研究中最为活跃的一个分支,是智能机器人的重要标志。双目立体视觉是通过对同一目标的两幅图像提取、识别、匹配和解释,进行三维环境信息的重建。其过程主要包括视频捕获、摄像机定标
    发表于 07-19 14:18 0次下载

    双目立体视觉理论及应用

    采用立体视觉,不需要红外传感器、声波定位仪、激光雷达等测距传感器,可大大降低了技术解决方案的成本。
    发表于 07-19 12:41 476次阅读
    双目<b class='flag-5'>立体视觉</b>理论及应用

    如何通过立体视觉构建小巧轻便的深度感知系统

    在本文中,我们首先介绍了立体视觉系统的主要部分,并提供了有关使用硬件组成和开源软件制作定制立体相机的说明。由于此设置专注于嵌入式系统,因此它将实时计算任何场景的深度图,而无需电脑主机。
    的头像 发表于 07-13 16:49 441次阅读
    如何通过<b class='flag-5'>立体视觉</b>构建小巧轻便的深度感知系统

    双目立体视觉三大算法原理及其代码实现

    双目立体视觉中常用的基于区域的局部匹配准则主要有图像序列中对应像素差的绝对值之和SAD(sum of absolute differences)、对应像素差的平方之和SSD(sum of squared differences)及半全局匹配算法SGM(semi—global matching)。
    发表于 07-01 09:34 1247次阅读
    双目<b class='flag-5'>立体视觉</b>三大算法原理及其代码<b class='flag-5'>实现</b>

    边缘AI套件上的立体视觉深度感知

    电子发烧友网站提供《边缘AI套件上的立体视觉深度感知.zip》资料免费下载
    发表于 06-12 14:36 0次下载
    边缘AI套件上的<b class='flag-5'>立体视觉</b>深度感知