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

    文章

    7488

    浏览量

    87854
  • 摄像头
    +关注

    关注

    59

    文章

    4836

    浏览量

    95599
  • 机器视觉
    +关注

    关注

    161

    文章

    4369

    浏览量

    120282

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

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

收藏 人收藏

    评论

    相关推荐

    网线一般是什么线

    网线一般指的是用于计算机网络通信的传输介质,它有多种类型,每种类型都有其特定的应用场景和性能特点。以下是些常见的网线类型: 、以太网网线(Ethernet Cable) 以太网网线是最常用的网线
    的头像 发表于 12-03 09:46 206次阅读

    如何制定套优质的工业视觉检测算法方案?

    很难与当下主流的AI平台工具配型,或者是通过单一算法模型进行训练,通常情况下,工业视觉检测项目面临着系列独特的难点与挑战。比如:算法实现难。工业环境中的背景往往非
    的头像 发表于 11-14 01:05 415次阅读
    如何制定<b class='flag-5'>一</b>套优质的工业<b class='flag-5'>视觉</b>检测<b class='flag-5'>算法</b>方案?

    退耦电容一般用多大

    退耦电容的容量选择并不是成不变的,而是需要根据具体的电路设计需求和工作条件来确定。以下是对退耦电容容量选择的一般原则和考虑因素: 一般
    的头像 发表于 09-26 11:28 436次阅读

    一般继电器需要多少电流才能驱动

    一般继电器所需的驱动电流会根据其型号、规格和额定工作电压等因素有所不同。通常,继电器需要定的电流来驱动其线圈产生磁场,从而使触点闭合或断开。以下是对继电器驱动电流的一般性说明:
    的头像 发表于 09-05 15:18 2809次阅读

    Arinc 429 发送数据一般是什么

    Arinc 429 发送数据一般是什么
    发表于 07-23 09:46

    卷积神经网络的一般步骤是什么

    卷积神经网络(Convolutional Neural Network,简称CNN)是种深度学习算法,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积神经网络的一般步骤,包括
    的头像 发表于 07-03 09:11 1075次阅读

    工控机寿命一般几年

    工控机,作为工业控制的核心设备,其使用寿命受到多种因素的影响。一般来说,工控机的正常使用寿命通常在 5 年到 10 年之间 12。但这范围并非绝对,具体的使用寿命还会受到以下几个关键因素的影响:
    的头像 发表于 06-25 10:00 868次阅读

    PLC的工作电源一般是多少

    在工业自动化领域中,PLC(Programmable Logic Controller,可编程逻辑控制器)扮演着至关重要的角色。PLC作为工业自动化系统的核心控制设备,其工作电源的稳定性和适应性直接关系到整个系统的正常运行。本文将深入探讨PLC的工作电源一般是多少,并从多个角度进行详细的阐述和解释。
    的头像 发表于 05-28 16:41 3882次阅读

    fpga开发一般用什么软件

    FPGA(现场可编程门阵列)开发通常使用系列专门的软件工具,这些工具涵盖了从设计、仿真到编译和调试的整个流程
    的头像 发表于 03-15 14:43 3427次阅读

    表面安装设计和地面图案标准的一般要求

    电子发烧友网站提供《表面安装设计和地面图案标准的一般要求.pdf》资料免费下载
    发表于 02-21 09:24 2次下载

    计算机视觉的十大算法

    视觉技术的发展起到了重要的推动作用。、图像分割算法图像分割算法是计算机视觉领域的基础算法
    的头像 发表于 02-19 13:26 1236次阅读
    计算机<b class='flag-5'>视觉</b>的十大<b class='flag-5'>算法</b>

    车载UPS与一般UPS区别在哪里?车载有哪些优势特点?

    车载UPS与一般UPS区别在哪里?车载有哪些优势特点? 车载UPS是种特殊的不间断电源系统,专门设计用于车辆上使用的电子设备。与一般的UPS相比,车载UPS有些独特的特点和优势。下
    的头像 发表于 01-11 14:43 1313次阅读

    定位系统为步进电机+光栅尺的全闭环系统,位置补偿算法一般都采用哪些呢?

    如题,定位系统为步进电机+光栅尺的全闭环系统,麻烦问下各位大佬位置补偿算法一般都采用哪些呢?PID吗?重复精度需要提高到10几微米左右,求助求助
    发表于 01-09 08:01

    labview编写程序的一般步骤

    LabVIEW是种非常强大的图形化编程工具,它可用于控制、测量、测试和监控应用。编写LabVIEW程序的一般步骤包括以下几个方面: 程序需求分析:在开始编写程序之前,首先需要明确程序的需求和目标
    的头像 发表于 12-29 10:06 2121次阅读

    伺服电机效率一般是多少?

    伺服电机效率一般是多少?选型时也得考虑到这个问题吧? 变频电机一般都标功率因素,指的就是电机实际的输出功率吧? 异步伺服效率 88%; 同步伺服效率 100%,采用绝对值编码器时效率下降10%-20%.
    发表于 12-28 06:46