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

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

3天内不再提示

双目视觉简介及算法一般流程

新机器视觉 来源:新机器视觉 作者:新机器视觉 2020-10-23 09:51 次阅读

1.1. 双目视觉简介

双目视觉广泛应用在机器人导航,精密工业测量、物体识别、虚拟现实、场景重建,勘测领域。

什么是双目视觉?

双目视觉是模拟人类视觉原理,使用计算机被动感知距离的方法。从两个或者多个点观察一个物体,获取在不同视角下的图像,根据图像之间像素的匹配关系,通过三角测量原理计算出像素之间的偏移来获取物体的三维信息。

得到了物体的景深信息,就可以计算出物体与相机之间的实际距离,物体3维大小,两点之间实际距离。目前也有很多研究机构进行3维物体识别,来解决2D算法无法处理遮挡,姿态变化的问题,提高物体的识别率。

1.2. 算法一般流程

图1 双目视觉算法流程

1.2.1. 离线标定

标定的目的是获取相机的内参(焦距,图像中心,畸变系数等)和外参(R(旋转)矩阵T(平移)矩阵,用于对其两个相机)。目前比较常用的方法为张正友的棋盘格标定方法,Opencv和Matlab上均有实现。但是一般为了获取更高的标定精度,采用工业级的(60*60格子)玻璃面板效果会更好。并且有人也建议使用Matlab,因为精度包括可视化效果会更好一些,并且Matlab的结果保存为xml,Opencv也可以直接读入,但是步骤相对于Opencv的麻烦了一些。这是Matlab标定工具箱的连接:http://www.vision.caltech.edu/bouguetj/calib_doc/

步骤为:

(1)左摄像头标定,获取内外参数

(2)右参数摄像头标定获取外参。

(3)双目标定,获取相机之间的平移旋转关系。


图2 Matlab双目视觉标定

1.2.2. 双目矫正

矫正的目的是得到的参考图与目标图之间,只存在X方向上的差异。提高视差计算的准确性。

矫正分为两个步骤

l畸变矫正


图3 畸变矫正

l将相机转化为标准形式


图4 转换为标准形式

因为矫正部分,会对图像所有点的位置进行重新计算,因而算法处理的分辨率越大耗时越大,而且一般需要实时处理两张图像。而且这种算法并行化强标准化程度较高,建议使用IVE进行硬化,类似Opencv中的加速模式,先得到映射Map,再并行化使用映射Map重新得到像素位置。Opencv中的矫正函数为cvStereoRectify。

1.2.3. 双目匹配

双目匹配是双目深度估计的核心部分,发展了很多年,也有非常多的算法,主要目的是计算参考图与目标图之间像素的相对匹配关系,主要分为局部和非局部的算法。一般有下面几个步骤。

l匹配误差计算

l误差集成

l视差图计算/优化

l视差图矫正

一般局部算法,使用固定大小或者非固定大小窗口,计算与之所在一行的最优匹配位置。如下图为最简单的局部方式,求一行最佳对应点位置,左右视图X坐标位置差异为视差图。为了增加噪声,光照的鲁棒性可以使用固定窗口进行匹配,也可以对图像使用LBP变换之后再进行匹配。一般的匹配损失计算函数有:SAD,SSD,NCC等。一般采用最大视差也可以限制最大搜索范围,也可以使用积分图和Box Filter进行加速计算。目前效果较好的局部匹配算法为基于Guided Filter的使用Box Filter和积分图的双目匹配算法,局部算法易于并行化,计算速度快,但是对于纹理较少的区域效果不佳,一般对图像分割,将图像分为纹理丰富和纹理稀疏的区域,调整匹配窗大小,纹理稀疏使用小窗口,来提高匹配效果。


图5 基于线性搜索的视差计算

非局部的匹配算法,将搜索视差的任务看做最小化一个确定的基于全部双目匹配对的损失函数,求该损失函数的最小值即可得到最佳的视差关系,着重解决图像中不确定区域的匹配问题,主要有动态规划(Dynamic Programming),信任传播(Blief Propagation),图割算法(Graph Cut)。目前效果最好的也是图割算法,Opencv中提供的图割算法匹配耗时很大。

图割算法主要是为了解决动态规划算法不能融合水平和竖直方向连续性约束的问题,将匹配问题看成是利用这些约束在图像中寻求最小割问题。


图6 基于图割(左),动态规划(中),相关性计算(右)的效果。

因为考虑到全局能量最小化,非局部算法一般耗时较大,不太好使用硬件加速。但是对于遮挡,纹理稀疏的情况解决的较好。

得到了匹配点之后,一般通过左右视线一致性的方式,检测和确定具有高置信度的匹配点。很类似前后向光流匹配的思想,只有通过左右视线一致性检验的点才认为是稳定匹配点。这样也可以找出因为遮挡,噪声,误匹配得到的点。

那么我们如何得到视差和深度信息呢?


图7 视差深度获取示意

关于视差图的后处理,一般采用中值滤波的方法,对当前点的灰度值使用邻域像素的中值来代替,这种方法可以很好去除椒盐噪声。可以去除因为噪声或者弱纹理匹配失败的孤立点。

原文标题:双目视觉及算法流程

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

责任编辑:haq

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

    关注

    19

    文章

    6644

    浏览量

    84479
  • 摄像头
    +关注

    关注

    59

    文章

    4607

    浏览量

    92881
  • 机器视觉
    +关注

    关注

    161

    文章

    4042

    浏览量

    118339

原文标题:双目视觉及算法流程

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

收藏 人收藏

    评论

    相关推荐

    LabVIEW开发自动驾驶的双目测距系统

    挑战,包括激光雷达、单目测距和双目视觉技术等。在当前的高级辅助驾驶技术(ADAS)中,双目视觉技术在距离检测方面表现出色,它可以精确地测量物体的距离,提供更客观的数据。 为了应对这需求,设计了
    发表于 12-19 18:02

    机器视觉双目测宽仪具体有什么优势?

    双目测宽仪是机器视觉原来制造而成的智能宽度检测设备,广泛应用于板材类产品的宽度检测。通过测宽仪的使用,实时了解产品宽度品质,进行超差提示,减少废品的生产。 双目测宽仪优势 测量软件界面显示:产品规格
    发表于 11-28 17:13

    请问一般用硬件怎么实现rsa加密算法?

    一般用硬件怎么实现rsa加密算法?
    发表于 10-17 07:02

    单片机采样ADC数值一般都是用的什么滤波算法

    单片机采样ADC数值一般都是用的什么滤波算法
    发表于 10-16 06:26

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

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

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

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

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

    、图像预处理和特征提取、立体匹配以及三维重建。为解决智能移动机器人、工业装配机器人、家用机器人、公共服务机器人的视觉问题,双目立体视觉技术的进一步研究可对多目视觉具有重要的启发。  本
    发表于 07-19 14:18 0次下载

    一文带你了解这三种3D视觉技术

    本文对ToF、双目视觉、结构光这三种技术展开分析,帮助你了解其各自的特点及应用
    的头像 发表于 07-10 16:04 970次阅读
    一文带你了解这三种3D<b class='flag-5'>视觉</b>技术

    几种经典的双目匹配的算法

    matching)复杂,对计算资源消耗很大。那我们介绍下几种经典的双目匹配的算法。 【双目匹配】 双目立体视觉理论建立在对人类
    的头像 发表于 07-04 11:33 1722次阅读
    几种经典的<b class='flag-5'>双目</b>匹配的<b class='flag-5'>算法</b>

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

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

    探讨智能驾驶提当下双目视觉传感器技术

    双目视觉传感器有效弥补了数据驱动的 AI 算法在泛化性能上的短板,深度学习模型与视差点云技术的结合,极大扩张了视觉传感器的工作边界。
    发表于 06-07 14:16 244次阅读
    探讨智能驾驶提当下<b class='flag-5'>双目视觉</b>传感器技术

    从零开始:入门双目视觉你需要了解的知识

    双目标定的方法有很多,常用的是基于棋盘格图案的张氏标定法,它利用多幅不同角度拍摄的棋盘格图像,通过提取角点坐标和求解最小二乘问题,得到两个相机的内参矩阵和外参矩阵,进而计算出基础矩阵。
    的头像 发表于 06-06 14:35 712次阅读
    从零开始:入门<b class='flag-5'>双目视觉</b>你需要了解的知识

    自动驾驶感知之视觉感知经典算法

    输入数据来源可以是单目视觉相机、双目视觉相机,数据可以是灰度图或者彩色图。 基于单目图片的称为单目车道线检测技术,基于双目图片的称为双目车道线检测技术。
    发表于 06-01 14:18 0次下载
    自动驾驶感知之<b class='flag-5'>视觉</b>感知经典<b class='flag-5'>算法</b>

    请问开关电源的稳压和稳流一般用什么算法,PI控制吗?

    请问开关电源的稳压和稳流一般用什么算法,PI控制吗?
    发表于 04-28 13:59

    双目视觉深度检测的测距原理

    双目测距的原理就说到这里,为了避免大家看到大段纯叙述性的文字头晕,下面的行文将会以FAQ的形式围绕着实现双摄像头测距过程中碰到的几点疑惑展开。
    发表于 04-26 16:47 4041次阅读
    <b class='flag-5'>双目视觉</b>深度检测的测距原理