首页 > 编程知识 正文

双目立体视觉原理(全景镜头分析)

时间:2023-05-06 15:51:11 阅读:82490 作者:3494

首先,根据双目立体视觉深度估计的一般过程,获得左右两个图像中的对应特征点的水平视差。 然后根据三角测量原理推算空间物体和相机光心深度信息。 选择冷静凉面摄像机标定法、Harris和FAST角点检测、SIFT/SURF特征描述等嵌入式系统的设计与实现。

视觉模型照相机的基本图像模型一般称为基本针孔模型,也称为线性模型,由三维空间到平面的中心投影变换描述。 如图1(a )所示,以Oc为投影中心,与平面的间隔为f。 平面叫做摄像机的像平面,Oc点叫做摄像机的光心,f叫做摄像机的焦距。 空间中任意点Xc在平面上形成的像(投影) m是连接投影中心Oc和其空间点Xc的线与平面的交点. 或光轴是以Oc为端点与像平面正交的光线,照相机的主点是主轴与像平面的交点p。

图1表示图像的物理坐标系和图像的像素坐标系的关系。 在不考虑镜头失真的情况下,如果将光的中心的像素坐标设为[u0,v0],将各像素的u轴方向和v轴方向的实际物理长度分别设为dx和dy,则图像上任意1个像素的像素坐标及其图像物理坐标系中的坐标变换关系为

如果用矩阵表示

图1还表示了世界坐标系和照相机坐标系的变换关系,即可以用旋转矩阵r和平移矢量t来表现。 因此,如果知道某空间点在世界坐标系中的坐标表现和在照相机坐标系中的同次坐标表现分别是[xw,Yw,Zw,1]t和[xc,Yc,Zc,1]t的话

对于任意空间点p,都可以写入像平面上的物理坐标

由式(2) ~式4 )得到

其中,p被称为投影矩阵,是34矩阵; s被称为轴间扭曲因子,一般可以忽略; ku=f/dx; 千瓦/日。 显然,k完全由ku、kv、s、u0、v0决定,只与摄像机自身的物理性能有关,它是内在的和“主观的”,因此被称为摄像机的内部参数矩阵; 被称为[R T]摄像机的外部参数矩阵,表示摄像机相对于世界坐标系的配置姿势。

摄像机标定与补偿

采用线性标定的方法,在不同视角得到多组平面标定板的图像,再建立多个方程,通过最小二乘估计,实现摄像机参数的标定。 如果将某三维空间点在世界坐标系中的坐标M=[X Y Z]所对应的齐次坐标表示为M=[X Y Z 1]T,将该像素坐标系中的坐标m=[u v]、对应的齐次表示为=[u v 1]T,则由式(5)得到

其中,ri表示旋转矩阵r第I列; a是照相机的内部参数矩阵,可以写如下

e/1540986273585b2b5d5a455?from=pc">

其中,(u0,v0) 是主点的像素坐标值;α 和 β 分别表示相机在u轴、 v轴方向上的焦距(单 位为像素);γ 表示u 轴和v 轴的倾斜程度。

单目相机标定的主要目的是估计内参 数矩阵 A 和外参数矩阵 [r1 r2 r3 t]。

特征检测与描述

角点常作为图像中的点特征,一般是 图像中区分度明显且具有代表性的位置。 它可以是两条边的交叉点,或是其邻域内 的灰度变化较为强烈的点等。角点的定义 在不同应用场合可能会不一致。本设计中 主要利用了 SIFT 特征提取的算法。

方向分配

为了使描述子具有旋转不变性,需要 首先给每一个兴趣点分配基本的参考方向。

Lowe 的做法是首先计算关键点邻域内各像素点的梯度信息,计算公式为

然后使用直方图统计邻域内各像素梯度的模值和方向信息,直方图将 0°~360°的方向范围分成36 个柱,每柱跨度是10°,柱的高度由梯度的模决定,最后直方图峰值所对应的角度即为该关键点的主方向;还可以将直方图中高度为主峰高度80% 以上的次最大峰所对应的方向作为辅助方向, 以增强算法的稳健性。

关键点的特征描述

首先根据关键点的尺度值计算描述子 所需的区域大小,然后将以该关键点为原 点的区域坐标系旋转至主方向,如图2所示。

Lowe 建议将关键点附近的区域再细分成 4×4 个子区域,然后再分别统计每一子区域在8 个方向的梯度信息,如图 3 所示。 由于进行了旋转,所以子区域(wndxc)的中心坐标将由整型变成非整型,可以通过线性插值,由每一像素和与之邻近的周围 4个种子点(旋转后的区域wndxc的中心点)的距离确定各像素对这 4个种子点的贡献因子。 在统计方向时,因为只有8个离散的方向,为了平滑,把计算得到的梯度方向作用到邻近的两个方向上。最终还要结合高斯滤波器在对应位置的滤波系数,确定各像素对附近的 4 个种子点和 2 个方向上的作用权重。这样在遍历累加完整个大区域中的所有像素作用权重之后,最终就可以统计出各子区域在 8 个方向上的梯度分布。

立体匹配与深度信息的估计

如下采用基于特征点的匹配,属于稀疏型匹配。其中的相似性度量选择的是匹配间距的度量,即最邻近的两个特征向量将被视为是匹配的。设计中,直接使用了OpenCV 中的FLANN 库,该库实现了机器学习中可用于寻找xlmdjz数据特征最近邻的一些算法。在找到特征点的稀疏匹配之后,就可以对特征点的深度信息进行估计。

一个无畸变、对准、已标定的理想标准双目立体成像系统如图4 所示。其中, Ol、Or 分别是左右相机的光心;b 为基线长度;f 为摄像机焦距;世界坐标系为O-XYZ, Y轴方向为垂直纸面向内,坐标原点到两光心的距离相等。

假设空间中的某点 P(X,Y,Z),在左右两 成像平面上的坐标(各自的相机坐标系下) 分别是pl=(xl, yl) 和 pr=(xr, yr),根据相似三角形的关系可得

将式 (8) 中的前两个等式相减消去可以得到

定义 d=xl-xr 为水平视差,则有

以此得到空间点距离相机的深度估计。

NanoPi 双目视觉系统及验证结果 系统设计

系统的硬件连接如图5 (a) 所示,其中 双目摄像机与NanoPi 直接通过有线连接,以完成双目视觉任务中的第一步,即数字图像的采集。对视觉图像的运算处理是在远端的 NanoPi 上进行的,它具4 核1.2 GHz 的 CPU、512 MB 的 DDR3 RAM 且内置了UbuntuCore 系统。考虑到 NanoPi 没有桌面系统,所以首先选择通过SSH 协议让本地PC与NanoPi建立远程连接。建立连接之后,再利用 X Windows 协议使NanoPi 产生的图形结果显示在本地主机上。图5 (b) 是系统的简化流程框图。

验证结果与分析

实验中所用的相机是分辨率为640×480 的视频聊天摄像头,两个单独的相机直接 经胶带固定后用作双目摄像机。在计算出匹配点对应的视差后,通过三角测量原理, 即可估计得到匹配点处距摄像机的大致深 度值。图 6 所示即是估得的结果。

表 1 所示为分别在两种不同光照条件 下各进行了四组重复性的实验结果。

因为摄像头本身的厚度未知,所以这 里通过只比较平面间的间距,而不去直接 比较各平面到相机光心的深度距离,来尽可能地消除该影响。由表1 中统计的实验 数据,经简单计算可得平面间的深度,如 表 2、表 3 和图 7、图 8 所示。

可见,在不同的光照环境下所估计得到 的各平面平均间距与实际的测量值之间的误差均在以10 mm内,且结果的方差(标准差) 也较小,这表明本设计的估计精度是可以满足一定要求的。此外,可以看到在自然光照 环境下测量结果的标准差更小,说明在自然光照的环境下所产生的噪声更加稳定。

实现的程序中涉及了三个可调阈值参 数,分别作用于去除匹配点匹配距离过大 的点对、三个平面与相机成像平面不共面 的容忍度,以及属于不同平面的视差最小 间隔。其中,前两个阈值主要是为了在三 个平面中(看成是共面的)筛选出好的匹 配点对,它依据的是所有匹配点对间的匹 配距离和重投影误差;第三个阈值参数是 为了辨别出三个不同的平面。由于每次实 验都很难确保每本书与相机间的相对位置 始终不变,所以可能需要不断地调节上述 三个阈值参数,以找到满意的估计结果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。