双目立体视觉空间坐标精度分析

这篇具有很好参考价值的文章主要介绍了双目立体视觉空间坐标精度分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考链接:https://zhuanlan.zhihu.com/p/362718946

本文主要参考链接博主的理论推导,并按照自己的理解作分析和修正

一、考虑问题:

  1. 双目立体视觉系统的精度由那些因素决定?

  2. X/Y/Z三个方向的精度都是一样的吗?如果不是一样,哪个方向精度更好呢?

最常见的情况下,双目立体视觉的最终输出是左相机坐标系下的XYZ坐标,本篇便以这三个分量为精度分析对象。

首先,做一些变量的定义:

b :基线长度,单位mm

f :焦距

x, y :像点坐标(以像主点为原点)

X, Y, Z :相机坐标系下的坐标,单位mm

d :视差

我们先看这三个分量的求解公式:

Z = b f d ,    X = Z f x ,    Y = Z f y Z = \frac{bf}{d},\ \ X = \frac{Z}{f}x,\ \ Y = \frac{Z}{f}y Z=dbf,  X=fZx,  Y=fZy

从公式可知,在硬件参数 b, f 固定的情况下, XYZ 的值和像点坐标值直接相关,XYZ 的精度实际上是像点精度下的空间偏差值,因此我们以像点精度为基本(最小)精度单位。

二、对博主的推导作修正:

当变量定义如下

像素x代表的是尺寸大小,单位mm

焦距f代表物理尺寸,单位mm

视差d代表物理尺寸,单位mm

才能使用博主的推导公式,下面对Z方向的精度推导作解释。

假设像点 x,y 的精度(像素尺寸)为 s x ,   s y s_{x},\ s_{y} sx, sy ,视差 d 的精度为 s d s_{d} sd 。通常认为 x,y 的精度是相同的,即 s x = s y = s s_{x} = s_{y} = s sx=sy=s ,而视差的精度一般来说可以用公式

s d = s x 2 s_{d} = \frac{s_{x}}{\sqrt{2}} sd=2 sx

Z方向精度

首先对于 Z ,自变量是 d ,我们对 d 求偏导,可得

∂ Z ∂ d = − b f d 2 = − Z 2 b f \frac{\partial Z}{\partial d} = - \frac{bf}{d^{2}} = - \frac{Z^{2}}{bf} dZ=d2bf=bfZ2

∂ Z / ∂ d \partial Z/\partial d Z/d
的单位是mm/mm,物理意义为每毫米视差值代表的空间距离大小,需要再乘以视差精度 s d s_{d} sd,才能得出单个视差精度代表的空间距离大小,单位mm/pix

可得:

s Z = Z b Z f s d =   Z b   Z f   s x 2 s_{Z} = \frac{Z}{b}\frac{Z}{f}s_{d} = \ \frac{Z}{b}\ \frac{Z}{f}\ \frac{s_{x}}{\sqrt{2}} sZ=bZfZsd= bZ fZ 2 sx

可知 Z 方向精度和 Z 的平方正相关,即和物体离相机的距离的平方正相关(严格来说是 Z
方向距离)。

假设 q = Z b , m = Z f q = \frac{Z}{b},m = \frac{Z}{f} q=bZ,m=fZ ,则 q
是我们所熟知的基高比的倒数, m 是影像的尺度(即GSD,一个像素代表的空间尺寸),这个公式显示,基高比和GSD对 Z 方向精度起着关键作用,更大的基高(1/q)和更小的GSD (m)有助于提高 Z 方向精度。这可以用于指导双目立体视觉系统的设计。

同理参考博主的推导过程,可得出XY方向精度。

三、推导简化

上述的推导需要知道相机的像素和焦距的实际尺寸,比较麻烦。

通常情况下,标定文件中的内参数据都是以pix为单位,下面以像素pix为单位作推导

当变量定义如下

像素x代表的是像素坐标,单位pix

焦距f代表像素比值,单位pix

视差d代表像素比值,单位pix

Z方向精度

首先对于 Z ,自变量是 d ,我们对 d 求偏导,可得

∂ Z ∂ d = − b f d 2 = − Z 2 b f \frac{\partial Z}{\partial d} = - \frac{bf}{d^{2}} = - \frac{Z^{2}}{bf} dZ=d2bf=bfZ2

此时 ∂ Z / ∂ d \partial Z/\partial d Z/d
的单位是mm/pix,物理意义为单个像素pix代表的空间距离大小,需要再除以 2 \sqrt{2} 2 ,才能得出单个视差精度代表的空间距离大小

可得:

s Z = 1 2 Z b Z f   s_{Z} = \frac{1}{\sqrt{2}}\frac{Z}{b}\frac{Z}{f}\ sZ=2 1bZfZ 

可知 Z 方向精度和 Z
的平方正相关,即和物体离相机的距离的平方正相关(严格来说是 Z
方向距离)。

XY方向精度

同理,对于 X ,自变量是 Z 和 x ,我们对 Z 和 x 求偏导,可得

∂ X ∂ Z = x f ,    ∂ X ∂ x = Z f \frac{\partial X}{\partial Z} = \frac{x}{f},\ \ \frac{\partial X}{\partial x} = \frac{Z}{f} ZX=fx,  xX=fZ

X 方向精度可表示为

s X = ( x f s Z ) 2 + ( Z f ) 2 s_{X} = \sqrt{{(\frac{x}{f}s_{Z})}^{2} + {(\frac{Z}{f})}^{2}} sX=(fxsZ)2+(fZ)2

同理, Y 方向精度可表示为

s Y = ( y f s Z ) 2 + ( Z f ) 2 s_{Y} = \sqrt{{(\frac{y}{f}s_{Z})}^{2} + {(\frac{Z}{f})}^{2}} sY=(fysZ)2+(fZ)2

s Z = Z 2 2 b f ,    X = Z f x ,    Y = Z f y s_{Z} = \frac{Z^{2}}{\sqrt{2}bf},\ \ X = \frac{Z}{f}x,\ \ Y = \frac{Z}{f}y sZ=2 bfZ2,  X=fZx,  Y=fZy代入公式,可得

s X = Z f 1 + ( x Z 2 f b ) 2   = Z f 1 + ( X 2 b ) 2   s_{X} = \frac{Z}{f}\sqrt{1 + {(\frac{xZ}{\sqrt{2}fb})}^{2}}\ = \frac{Z}{f}\sqrt{1 + {(\frac{X}{\sqrt{2}b})}^{2}}\ sX=fZ1+(2 fbxZ)2  =fZ1+(2 bX)2  

s Y = Z f 1 + ( y Z 2 f b ) 2   = Z f 1 + ( Y 2 b ) 2   s_{Y} = \frac{Z}{f}\sqrt{1 + {(\frac{yZ}{\sqrt{2}fb})}^{2}}\ = \frac{Z}{f}\sqrt{1 + {(\frac{Y}{\sqrt{2}b})}^{2}}\ sY=fZ1+(2 fbyZ)2  =fZ1+(2 bY)2  

可以看出,X,Y方向的精度不仅跟Z的距离正相关,还跟各自的X,Y方向距离正相关。

Y/Z精度曲线

为了更清晰的观察Y/Z方向精度随着 Z 值变化的趋势,我们来做一个仿真,计算并绘制 Z 和 Y 方向(Y 方向和X方向等尺度,趋势一致)的精度曲线。

根据实际案例参数数据分析

案例一:

Y = 58 mm, Y方向58毫米处的精度

f = 275 pix

b = 32 mm

绘制的精度曲线如下:
双目相机定位精度,双目相机,立体视觉,计算机视觉,人工智能,目标检测
案例二:

Y = 580 mm,Y方向580毫米处的精度

f = 275 pix

b = 32 mm
双目相机定位精度,双目相机,立体视觉,计算机视觉,人工智能,目标检测

从精度计算的结果和趋势图可以看出,精度数值随着 Z 的增加而变大(意味着精度越来越差),且当 Z 值较大时,
Z方向精度比Y方向精度要差,随着 Z 的增加,差距更加明显。

从仿真数据看,Z方向距离1000mm时,精度值高达80mm,即8%的精度误差。实际上并没有这么大,这与双目立体视觉算法有关。算法的后处理做了子像素拟合,精度为subpix代表的空间大小,因此,实际精度可能只有仿真数据的几分之一。

Y方向的精度不仅跟Z值相关,还跟本身的Y值正相关,Y越大,Y方向的精度越差。文章来源地址https://www.toymoban.com/news/detail-691914.html

到了这里,关于双目立体视觉空间坐标精度分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 双目立体视觉之立体匹配算法

    双目立体视觉是指使用两个摄像机从不同的角度获取同一个场景的左右视图,然后使用双目立体匹配算法来寻找左右视图中的匹配像素点对,最后利用三角测量原理来还原三维空间物理点过程。其中双目立体匹配算法是最为核心的。 立体匹配是一种根据平面图像来恢复真实场

    2024年02月04日
    浏览(41)
  • 双目立体视觉:SAD算法

    SAD(Sum of absolute differences)是一种图像匹配算法。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的初步筛选。 常见的立体匹配算法主要包括以下四步

    2024年02月06日
    浏览(51)
  • 计算机视觉之三维重建(5)---双目立体视觉

     如下图即是一个平行视图。特点:(1) 两个平面平行。 (2) 基线平行于图像平面,极点 e e e 和 e ′ e\\\' e ′ 位于无穷远处。  1. 对于基础矩阵我们有另一个表达式: F = e ′ × K ′ R K − 1 F=e\\\'×K\\\'RK^{−1} F = e ′ × K ′ R K − 1 ,推导过程如下所示。  2. 在平行视图情况下,极点

    2024年04月12日
    浏览(46)
  • 双目立体视觉(一) 基本原理和步骤

    目录 一、双目立体视觉系统的四个基本步骤 二、各步骤原理 1、相机标定 2、立体校正 3、立体匹配 相机标定 主要包含两部分内容: 单相机的内参标定和双目相机的外参标定,前者可以获得每个相机的焦距、光心、畸变系数等参数,后者可以获得双目相机之间的相机坐标系的

    2024年02月14日
    浏览(40)
  • 使用opencv做双目测距(相机标定+立体匹配+测距)

    最近在做双目测距,觉得有必要记录点东西,所以我的第一篇博客就这么诞生啦~ 双目测距属于立体视觉这一块,我觉得应该有很多人踩过这个坑了,但网上的资料依旧是云里雾里的,要么是理论讲一大堆,最后发现还不知道怎么做,要么就是直接代码一贴,让你懵逼。 所以

    2024年01月20日
    浏览(34)
  • ZYNQ ARM+FPGA双目立体视觉控制器设计与实现(一)

    通过 ZYNQ 板卡实现 FPGA+ARM 架构的双目立体视觉系统 本设计采用实验室自主开发的 Zynq-7020 板卡,提出了基于 FPGA+ARM 架构的双 目立体视觉的软硬件系统设计方案。根据对系统软硬件功能划分, PL(FPGA) 端主要实现 了双目摄像头图像的采集存储和 HDMI 显示, PS(ARM) 端主要实现了

    2024年02月10日
    浏览(49)
  • 双目相机下目标三维坐标计算(四)

    本文来自公众号:机器人视觉 完成双目相机标定以后,获得双目相机的参数矩阵 包括左右相机的内参数矩阵、左右相机的畸变系数矩阵、右相机相对于左相机的旋转矩阵与平移矩阵 已知左右相机图像中的对应点坐标,获取目标在双目视觉传感器下三维坐标的流程如下: 1、

    2023年04月09日
    浏览(37)
  • 双目视觉标定与 3D 坐标测量

    目录 一、研究背景与意义 二、课题内容 (一)双目视觉标定 1.原理 2. 流程 (二)双目视觉测量 1. 对第“4”对图分析 2. 对第“5”对图分析 3. 对第“6”对图分析 4. 将数据综合列表画图 (三)位移测量(0-20mm 11 对图) 1.确定拟合平面 参考文献 人类对其周边环境信息的判断主要

    2024年02月04日
    浏览(46)
  • 使用python-opencv对双目摄像头进行立体视觉图像矫正,去畸变

            1、一张棋盘图         可以直接从opencv官方github下载,这是一个拥有10*7个格子的棋盘,共有 9*6个角点,每个格子24mm ,本文所使用的就是这一个棋盘。你需要将它打印在A4纸上用于后续使用。(也可以根据官方教程自行设置棋盘大小OpenCV: Create calibration pattern)

    2024年02月10日
    浏览(46)
  • 双目视觉(双目相机)

    1.时间同步 需要一个单独的硬件(单片机)单独给每一个相机发送触发信息,然后再接收返回。 2.相机选型:  (1)相机的分辨率 根据对图像精度的要求来选择相机的分辨率。 (2)颜色 通常视觉中我们选择黑白相机,只有需要彩色图像时才会考虑彩色相机,因为机器视觉

    2024年04月27日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包