
双目立体视觉模板.docx
11页计算机双目立体视觉双目立体视觉技术是仿照人类利用双目线索感知深度信息的方法,实现对三维信息的感 知为解决智能机器人抓取物体、视觉导航、目标跟踪等奠定基础双目立体视觉(Binocular Stereo Vision )是机器视觉的一种重要形式,它是基于视差原 理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点之间的位置 偏差,来获取物体三维几何信息的方法融合两只眼睛获取的图像并观察它们之间的差别 使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的 映像点对应起来,这个差别,我们称作为视差(Disparity)图像双目立体视觉系统立体视觉系统由左右两部摄像机组成,如图,世界空间中的一点A(X,YZ)在左右摄像机的成 像面C和C上的像点分别为a(u, v)和a (u , v )这两个像点是世界空间中同一个对象1 r 1 1 1 r r r点A的像,称为“共轭点”知道了这两个共轭像点,分别作它们与各自相机的光心O和O1r的连线,即投影线aiOi和^0,它们的交点即为世界空间中的对象点A这就是立体视觉的基本原理OJUi叫qcrOi為仇"丹)G仙・双目立体视觉智能视频分析技术恢复场景的3D信息是立体视觉研究中最基本的目标,为实现这一目标,一个完整的立体视觉系统通常包含六个模块:图像获取、摄像机标定、特征提取、立体匹配、三维恢复和视频 分析(运动检测、运动跟踪、规则判断、报警处理)。
图像获取(Image Acquisition)数字图像的获取是立体视觉的信息来源常用的立体视觉图像一般为双目图像,有的采用夺 目图像图像的获取方式有很多种,主要有具体运用的场合和目的决定立体图像的获取不 仅要满足应用要求,而且考虑视点差异、光照条件、摄像机的性能和场景特点等方面的影像摄像机标定(Camera Calibration)图像上每一点的亮度反映了空间物体表面某点反射光的强度,而该点在图像上的位置则与空 间物体表面相应点的几何位置有关这些位置的相互关系由摄像机成像几何模型来决定该 几何模型的参数称为摄像机参数,这些参数必须由实验与计算来确定,实验与计算的过程称 为摄像机定标立体视觉系统摄像机标定是指对三维场景中对象点在左右摄像机图像平面上的坐标位置a(u, v )和a(u , v)与其世界空间坐标A(X,Y, Z)之间的映射关系的确立,是实现立体视1 1 1 r r r觉三维模型重构中基本且关键的一步特征提取(Feature Acquisition)特征提取的目的是获取匹配得以进行的图像特征,图像特征的性质与图像匹配的方法选择有 着密切的联系目前,还没有建立起一种普遍适用的获取图像特征的理论,因此导致了立体 视觉研究领域中匹配特征的多样化。
像素相位匹配是近二十年才发展起来的一类匹配算法 相位作为匹配基元,本身反映着信号的结构信息,对图像的高频噪声有很好的一直作用,适 于并行处理,能获得亚像素级精度的致密视差但存在相位奇点和相位卷绕的问题,需加入 自适应滤波器解决或者是像素的集合,也可以是它们的抽象表达,如图像的结构、图像的 目标和关系结构等常用的匹配特征主要有点状特征、线装特征和区特征等几种情形 一般而言,尺度较大的图像特征蕴含较多的图片信息,且特征本身的数目较少,匹配效率高; 但特征提取和描述过程存在较大的困难,定位精度也较差而对于尺度较小的图像特征来说, 对其进行表达和描述相对简单,定位的精度高;但由于特征本身数码较多,所包含的图像信 息少,在匹配时需要采用较为严格的约束条件和匹配策略,一尽可能的减少匹配歧义和提高 匹配效率总的来说,好的匹配特征应该具有要可区分性、不变性、唯一性以及有效解决匹 配歧义的能力图像匹配(Image Matching)在立体视觉中,图像匹配是指将三维空间中一点A(X, Y, Z)在左右摄像机的成像面C和C 1r上的像点a(u, v )和a(u , v )对应起来图像匹配是立体视觉中最重要也是最困难的问1 1 1 r r r题,一直是立体视觉研究的焦点。
当空间三维场景经过透视投影(Perspective Projection)变 换为二维图像时,同一场景在不同视点的摄像机图像平面上成像会发生不同程度的扭曲和变 形,而且场景中的光照条件、被测对象的几何形状和表面特性、噪声干扰和畸变、摄像机特 性等诸多因素的影响都被集中体现在单一的图像灰度值中显然,要包含了如此之多不利因 素的图像进行精准的匹配是很不容易的根据匹配基元的不同,立体视觉匹配算法分为三大类:区域匹配、特征匹配和相位匹配这 三类算法因匹配基元的不同,它们判断对应点匹配的理论依据也有所不同,同时匹配基元的 稳定性、致密性和歧义性程度直接决定了各类算法的基本特性另一方面,对于不同的匹配 基元,相似性测度的算法模型可以是通用的,比如都可以用距离测度来进行匹配度量而且, 各类匹配算法中不乏一些共有的约束条件d 二 fl — l Disparity 二 l -1a b a b当摄像机的几何位置固定时,视差就只与d有关极线像平面1,$Mh05CA三维恢复(3D Reconstruction) 在完成立体视觉系统的摄像机标定和图像匹配工作以后就可以进行被测对象表面点的三维 信息恢复影响三维测量精度的因素主要有摄像机标定误差、CD成像设备的数字量化效应、 特征提取和匹配定位精度等。
视频分析(运动检测、运动跟踪、规则判断、报警处理) 通过视差计算,得到全屏幕的视差图像后,采用背景建模的方式,得到运动前景物的视差图 像,再进行膨胀和腐蚀算法进行图像的预处理,得到完整的可供分析的前景运动物体视差图 采用运动跟踪算法,全屏实时检测物体的大小、运动轨迹,并与事先设置的规则进行对比 如果有人进入或者离开设置的报警区域,系统则实时报警视差:Disparity 二 X 一 Xleft rightI1=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 左右两幅图像相对应的点之间的关系可以通过本质矩阵或是基础矩阵来表明。
本质矩阵是摄像机标定的情况下用的,公式:(P )'Ep = 0rl其中 P 和 P 分别是两个齐次摄像机的坐标向量本质矩阵是奇异矩阵,并有两个相等的非 rl零奇异值,秩为 2.本质矩阵是摄像机非标定的情况下用的,公式:(q )'Fq二0rl 基础矩阵的秩为 2.load stereoPointpairsF = estimateFundamentalMatrix( matchedPoints1, matchedPoints2) I1=imread('scene_left.jpg');Image',I2=imread('scene_right.jpg');cvexShowImagePair(I1,I2,'matchedPoints in Left Image','matchedPoints in Right 'MultipleColors',matchedPoints1,matchedPoints2);问题:cvexShowImagePair在matlab中找不到源程序…所以无法显示匹配的点>> fourF =0.00000.0000-0.0209-0.00000.0000-0.02140.02020.01900.9992极点:基线与两摄像机图像平面的交点; 基线:左右两相机光心的连线; 判断图像是否包含极点 isEpipoleInImage load stereoPointPairsF = estimateFundamentalMatrix( matchedPoints1, matchedPoints2); imageSize = [200 300];[isIn,epipole]=isEpipoleInImage(F,imageSize)isIn =0epipole =114.8720 222.6113isIn说明的是图像是否包含极点,epipole标准极点的位置。
基于双目立体视觉的物体深度信息提取系统研究摄像机标定,图像预处理,立体匹配以及深度信息提取 摄像机标定图像上每一个像素的灰度反映了空间物体表面某点的反射光的强度,而该点在图像上的位置 则与空间物体表面对应点的几何位置有关这些位置的相互关系,由摄像机成像系统的几何 投影模型所决定Il=rgb2gray(imread('cup_left.jpg')); subplot(321);imshow(Il);I2=rgb2gray(imread('c。
