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

    文章

    798

    浏览量

    58468
  • 计算机视觉
    +关注

    关注

    8

    文章

    1698

    浏览量

    45984
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121118
  • 自动驾驶系统

    关注

    0

    文章

    65

    浏览量

    6762

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

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

收藏 人收藏

    评论

    相关推荐

    产品快讯 | Teledyne FLIR IIS发布最新产品信息

    (IP67)立体视觉解决方案,具有板载处理功能,可为仓库自动化、机器人导引和物流构建成功的系统。BumblebeeX立体相机设计用于在不同距离内准确操作。客户可以
    的头像 发表于 12-20 17:05 111次阅读
    产品快讯 | Teledyne FLIR IIS发布最新产品信息

    实现利用ads1292短距离测量心电信号的吗?这种想法可行吗?

    大侠们,有实现利用ads1292短距离(例如,两个电极都在左手或右手)测量心电信号的吗?这种想法可行吗?
    发表于 12-16 08:25

    建筑物边缘感知和边缘融合的多视图立体三维重建方法

    航空建筑深度估计是三维数字城市重建中的一项重要任务,基于深度学习的多视图立体(MVS)方法在该领域取得了较好的成果。目前的主要方法通过修改MVS 框架实现建筑物的深度估计,缺乏对建筑物
    的头像 发表于 11-07 10:16 197次阅读
    建筑物边缘感知和边缘融合的多视图<b class='flag-5'>立体</b>三维重建方法

    TLV320ADC3101如何实现立体声-双声道

    TLV320ADC3101: 如何实现立体声-双声道 1、项目中,我们只接一个模拟MIC(IN2RP),IN2LP不接MIC-悬空。 2、ADC3101做slave 问:我们录音后,播放录音发现只有右边喇叭有声音,我们想实现
    发表于 10-09 06:48

    立体视觉新手必看:英特尔® 实感™ D421深度相机模组

    入门级立体深度模组,旨在以高性价比将先进的深度感应技术带给更广泛的用户群体,为寻求深度成像技术及消费产品潜力的开发者、研究人员和计算机视觉专家提供卓越的价值,将先进的3D视觉技术拓展至更广泛的应用领域。 英特尔® 实感™ 深度相
    的头像 发表于 09-26 13:33 251次阅读
    <b class='flag-5'>立体视觉</b>新手必看:英特尔® 实感™ D421深度相机模组

    居然还有这样的10.1寸光场裸眼3D视觉训练平板电脑?

    在这个科技飞速发展的时代,我们为您带来了一款革命性的产品——10.1寸光场裸眼3D视觉训练平板电脑。这款平板电脑不仅让您无需佩戴3D眼镜就能享受逼真的立体视觉效果,还通过先进的技术帮助您缓解眼疲劳,提升视觉健康。
    的头像 发表于 07-25 14:09 272次阅读
    居然还有这样的10.1寸光场裸眼3D<b class='flag-5'>视觉</b>训练平板电脑?

    机器视觉的应用流程是如何实现

    机器视觉是一种利用计算机和图像处理技术,模拟人类视觉系统对图像进行处理、分析和理解的技术。它在工业自动化、智能交通、医疗诊断、安防监控等领域有着广泛的应用。 在机器视觉应用的初期,需要
    的头像 发表于 07-04 10:47 414次阅读

    新品 | Bumblebee X系列用于高精度机器人应用的新型立体视觉产品

    TeledyneFLIRIIS推出一款用于高精度机器人应用的新型立体视觉产品BumblebeeX系列。BumblebeeX产品图BumblebeeX系列,一个基于一流立体视觉产品组合的
    的头像 发表于 05-07 08:34 451次阅读
    新品 | Bumblebee X系列用于高精度机器人应用的新型<b class='flag-5'>立体视觉</b>产品

    Teledyne FLIR IIS推出一款用于高精度机器人的新型立体视觉产品

    Bumblebee X是最新的GigE驱动立体成像解决方案,为机器人引导和拾取应用带来高精度和低延迟
    的头像 发表于 05-06 09:23 560次阅读

    一文读懂双眼立体显示技术 四种主流立体显示技术介绍

    实现基于双眼视觉立体显示需要经过两大步骤,首先,要准备好两套分别供左眼和右眼观看的画面。
    发表于 04-24 11:48 1492次阅读
    一文读懂双眼<b class='flag-5'>立体</b>显示技术 四种主流<b class='flag-5'>立体</b>显示技术介绍

    银牛微电子3D视觉感知方案赋能小米CyberDog系列仿生四足机器人

    2024年3月21日,合肥银牛微电子宣布小米CyberDog系列仿生四足机器人的AI多模态融合感知决策系统正式采用银牛的双目立体视觉产品解决方案。
    的头像 发表于 03-21 13:55 825次阅读

    通过视觉助手检测PCB板金手指插入到位距离和判断插针歪斜

    清除,减少误判的几率。 ②检测卡扣插入距离的方法:依旧通过粒子化,将不需要的测量部分清除,减少误判的几率。 3.1检测插针歪斜-测量插针角度:通过粒子化和找点来实现。(也可以使用寻找直线的方法,但是寻找
    发表于 02-28 10:15

    总投资1.5亿!苏州清研微视立体视觉传感器项目落户安徽芜湖

    2月1日,清研年产3万台立体视觉传感器项目签约落户安徽芜湖三山经济开发区。项目计划总投资15000万元,建设年产3万台立体视觉传感器(产业创新融合产品)。该项目的落地加强了三山经开区与清华大学未来在
    的头像 发表于 02-20 08:36 335次阅读
    总投资1.5亿!苏州清研微视<b class='flag-5'>立体视觉</b>传感器项目落户安徽芜湖

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

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

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

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