当前位置:文档之家› 双目立体视觉

双目立体视觉

计算机双目立体视觉双目立体视觉技术是仿照人类利用双目线索感知深度信息的方法,实现对三维信息的感知。

为解决智能机器人抓取物体、视觉导航、目标跟踪等奠定基础。

双目立体视觉(Binocular Stereo Vision )是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点之间的位置偏差,来获取物体三维几何信息的方法。

融合两只眼睛获取的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作为视差(Disparity )图像。

双目立体视觉系统立体视觉系统由左右两部摄像机组成,如图,世界空间中的一点A(X,Y ,Z)在左右摄像机的成像面1C 和r C 上的像点分别为)(111,v u a 和)(r r r v u a ,。

这两个像点是世界空间中同一个对象点A 的像,称为“共轭点”。

知道了这两个共轭像点,分别作它们与各自相机的光心1O 和r O 的连线,即投影线11O a 和r r O a ,它们的交点即为世界空间中的对象点A 。

这就是立体视觉的基本原理。

双目立体视觉智能视频分析技术恢复场景的3D 信息是立体视觉研究中最基本的目标,为实现这一目标,一个完整的立体视觉系统通常包含六个模块:图像获取、摄像机标定、特征提取、立体匹配、三维恢复和视频分析(运动检测、运动跟踪、规则判断、报警处理)。

图像获取(Image Acquisition )数字图像的获取是立体视觉的信息来源。

常用的立体视觉图像一般为双目图像,有的采用夺目图像。

图像的获取方式有很多种,主要有具体运用的场合和目的决定。

立体图像的获取不仅要满足应用要求,而且考虑视点差异、光照条件、摄像机的性能和场景特点等方面的影像。

摄像机标定(Camera Calibration )图像上每一点的亮度反映了空间物体表面某点反射光的强度,而该点在图像上的位置则与空 间物体表面相应点的几何位置有关。

这些位置的相互关系由摄像机成像几何模型来决定。

该几何模型的参数称为摄像机参数,这些参数必须由实验与计算来确定,实验与计算的过程称为摄像机定标。

立体视觉系统摄像机标定是指对三维场景中对象点在左右摄像机图像平面上的坐标位置)(111,v u a 和)(r r r v u a ,与其世界空间坐标A (X, Y , Z )之间的映射关系的确立,是实现立体视觉三维模型重构中基本且关键的一步。

特征提取(Feature Acquisition )特征提取的目的是获取匹配得以进行的图像特征,图像特征的性质与图像匹配的方法选择有着密切的联系。

目前,还没有建立起一种普遍适用的获取图像特征的理论,因此导致了立体视觉研究领域中匹配特征的多样化。

像素相位匹配是近二十年才发展起来的一类匹配算法。

相位作为匹配基元,本身反映着信号的结构信息,对图像的高频噪声有很好的一直作用,适于并行处理,能获得亚像素级精度的致密视差。

但存在相位奇点和相位卷绕的问题,需加入自适应滤波器解决。

或者是像素的集合,也可以是它们的抽象表达,如图像的结构、图像的目标和关系结构等。

常用的匹配特征主要有点状特征、线装特征和区特征等几种情形。

一般而言,尺度较大的图像特征蕴含较多的图片信息,且特征本身的数目较少,匹配效率高;但特征提取和描述过程存在较大的困难,定位精度也较差。

而对于尺度较小的图像特征来说,对其进行表达和描述相对简单,定位的精度高;但由于特征本身数码较多,所包含的图像信息少,在匹配时需要采用较为严格的约束条件和匹配策略,一尽可能的减少匹配歧义和提高匹配效率。

总的来说,好的匹配特征应该具有要可区分性、不变性、唯一性以及有效解决匹配歧义的能力。

图像匹配(Image Matching )在立体视觉中,图像匹配是指将三维空间中一点A (X, Y , Z )在左右摄像机的成像面1C 和rC 上的像点)(111,v u a 和)(r r r v u a ,对应起来。

图像匹配是立体视觉中最重要也是最困难的问题,一直是立体视觉研究的焦点。

当空间三维场景经过透视投影(Perspective Projection )变换为二维图像时,同一场景在不同视点的摄像机图像平面上成像会发生不同程度的扭曲和变形,而且场景中的光照条件、被测对象的几何形状和表面特性、噪声干扰和畸变、摄像机特性等诸多因素的影响都被集中体现在单一的图像灰度值中。

显然,要包含了如此之多不利因素的图像进行精准的匹配是很不容易的。

根据匹配基元的不同,立体视觉匹配算法分为三大类:区域匹配、特征匹配和相位匹配。

这三类算法因匹配基元的不同,它们判断对应点匹配的理论依据也有所不同,同时匹配基元的稳定性、致密性和歧义性程度直接决定了各类算法的基本特性。

另一方面,对于不同的匹配基元,相似性测度的算法模型可以是通用的,比如都可以用距离测度来进行匹配度量。

而且,各类匹配算法中不乏一些共有的约束条件。

特征点的定位 视差测距原理b al l fb d -= b a l -l Disparity =当摄像机的几何位置固定时,视差就只与d 有关三维恢复(3D Reconstruction )在完成立体视觉系统的摄像机标定和图像匹配工作以后就可以进行被测对象表面点的三维信息恢复。

影响三维测量精度的因素主要有摄像机标定误差、CCD 成像设备的数字量化效应、特征提取和匹配定位精度等。

视频分析(运动检测、运动跟踪、规则判断、报警处理)通过视差计算,得到全屏幕的视差图像后,采用背景建模的方式,得到运动前景物的视差图像,再进行膨胀和腐蚀算法进行图像的预处理,得到完整的可供分析的前景运动物体视差图。

采用运动跟踪算法,全屏实时检测物体的大小、运动轨迹,并与事先设置的规则进行对比,如果有人进入或者离开设置的报警区域,系统则实时报警。

视差:right left X X Disparity -=I1=rgb2gray(imread('scene_left.jpg'));I2=rgb2gray(imread('scene_right.jpg'));subplot(131);imshow(I1);subplot(132);imshow(I2);d=disparity(I1,I2);subplot(133);imshow(d);I1=rgb2gray(imread('scene_left.jpg')); I2=rgb2gray(imread('scene_left.jpg')); subplot(131);imshow(I1);subplot(132);imshow(I2);d=disparity(I1,I2);subplot(133);imshow(d);极线:极平面与图像平面的交线;极平面:空间点、两像机光心决定的平面;epipolarLine计算两幅图像的极线load stereoPointPairs[fLMedS,inliers]=estimateFundamentalMatrix( matchedPoints1, matchedPoints2, 'NumTrials', 4000);I1=imread('scene_left.jpg');figure;subplot(121);imshow(I1);title('Inliers and Epipolar Lines in First Image');hold on;plot(matchedPoints1(inliers,1),matchedPoints1(inliers,2),'go');epiLines = epipolarLine(fLMedS',matchedPoints2(inliers,:));pts = lineToBorderPoints(epiLines,size(I1));line(pts(:,[1,3])',pts(:,[2,4])');% show the inliers in the second image.I2=imread('scene_right.jpg');subplot(122);imshow(I2);title('Inliers and Epipolar Lines in second Image');hold on;plot(matchedPoints2(inliers,1),matchedPoints2(inliers,2),'go');epiLines = epipolarLine(fLMedS',matchedPoints1(inliers,:));pts = lineToBorderPoints(epiLines,size(I2));line(pts(:,[1,3])',pts(:,[2,4])'); truesize;对应点的估计基础矩阵estimateFundamentalMatrix左右两幅图像相对应的点之间的关系可以通过本质矩阵或是基础矩阵来表明。

本质矩阵是摄像机标定的情况下用的,公式:0)(='l r Ep p其中r p 和l p 分别是两个齐次摄像机的坐标向量。

本质矩阵是奇异矩阵,并有两个相等的非零奇异值,秩为2.本质矩阵是摄像机非标定的情况下用的,公式:0)(='l r Fq q基础矩阵的秩为2.load stereoPointpairsF = estimateFundamentalMatrix( matchedPoints1, matchedPoints2)I1=imread('scene_left.jpg');I2=imread('scene_right.jpg');cvexShowImagePair(I1,I2,'matchedPoints in Left Image','matchedPoints in Right Image', 'MultipleColors',matchedPoints1,matchedPoints2);问题: cvexShowImagePair 在matlab 中找不到源程序...所以无法显示匹配的点>> fourF =0.0000 0.0000 -0.0209-0.0000 0.0000 -0.02140.0202 0.0190 0.9992极点:基线与两摄像机图像平面的交点;基线:左右两相机光心的连线;判断图像是否包含极点 isEpipoleInImageload stereoPointPairsF = estimateFundamentalMatrix( matchedPoints1, matchedPoints2);imageSize = [200 300];[isIn,epipole]=isEpipoleInImage(F,imageSize)isIn =epipole =114.8720 222.6113isIn 说明的是图像是否包含极点,epipole 标准极点的位置。

相关主题