opencv0:双目立体视觉(python 代码全)

opencv0:双目立体视觉(python 代码全),第1张

3.分别颂简陪得到野蠢两个相机的初始CameraMatrix

4.双目视觉进行标定

整个结果看着还行哈。

根据标定结果,放置新的相机

方法有很多

只需要一步 *** 作就完成咐卖了,很简单

略,这些个在opencv/example/python中,应该都可以查看到。

双目立体视觉的简单介绍

1. 什么是视觉

视觉是一个古老的研究课题,同时又是人类观察世界、认知世界的重要功能和手段。人类从外界获得的信息约有75%来自视觉系统,用机器模拟人类的视觉功能是人们多年的梦想。视觉神经生理学,视觉心里学,特别是计算机技术、数字图像处理、计算机图形学、人工智能等学科的发展,为利用计算机实现模拟人类的视觉成为可能。在现代工业自动化生产过程中,计算机视觉正成为一种提高生产效率和检验产品质量的关键技术之一,如机器零件的自动检测、智能机器人控制、生产线的自动监控等在国防和航天等领域,计算机视觉也具有较重要的意义,如运动目标的自动跟踪与识别、自主车导航及空间机器人的视觉控制等。

人类视觉过程可以看作是一个从感觉到知觉的复杂过程,从狭义上来说视觉的最终目的是要对场景作出对观察者有意义的解释和描述;从广义上说,是根据周围的环境和观察者的意愿,在解释和描述的基础上做出行为规划或行为决策。计算机视觉研究的目的使计算机具有通过二维图像信息来认知三维环境信息的能力,这种能力不仅使机器能感知三维环境中物体的几何信息(如形状、位置、姿态运动等),而且能进一步对它们进行描述、存储、识别与理解,计算机视觉己经发展起一套独立的计算理论与算法。

2. 什么是计算机双目立体视觉

双目立体视觉 (Binocular StereoVision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间猜携物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图像,如图一。

双目立体视觉 测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。对运动物体(包括动物和人体形体)测量中,由于图像获取是在瞬间完成的,因此立体视觉方法是一种更有效的测量方法。

双目立体视觉 系统是计算机视觉的关键技术之一,获取空间三维场景的距离信息也是计算机视觉研究中最基础的内容。

双目立体视觉 的开创性工作始于上世纪的60年代中期。美国MIT的Roberts通过从数字图像中提取立方体、楔形体和棱柱体等简单规则多面体的三维结构,并对物体的形状和空间关系进行描述,把过去的简单二维图像分析推广到了复杂的三维场景,标志着立体视觉技术的诞生。随着研究的深入,研究的范围从边缘、角点等特征的提取,线条、平面、曲面等几何要素的分析,直到对图像明暗、纹理、运动和成像几何等进行分析,并建立起各种数据结构和推理规则。特别是上世纪80年代初,Marr首次将图像处理、心理物理学、神经生理学和临床精神病学的研究成果从信息处理的角度进行概括,创立了视觉计算理论框架。这一基本理论对立体视觉技术的发展产生了极大的推动作用,在这一领域已形成了从图像的获取到最终的三维场景可视表面重构的完整体系,使得立体视觉已成为计算机视觉中一个非常重要的分支。

经过几十年来的发展,立体视觉在机器人视觉、航空测绘、反求工程、军事运用、医学成像和工业检测等领域中的运用越来越广。

3. 双目立体视觉系统

立体视觉系统由左右两部摄像机组成。如图二所示,图中分别以下标l和r标注左、右摄像机的相应参数。世界空间中一点A(X,Y,Z)在左右摄像机的成像面Cl和Cr上的像点分别为al(ul,vl)和ar(ur,vr)。这两个像点是世界空间中同一个对象点A的像清兆灶,称为“共轭点”。知道了这两个共轭像点,分别作它们与各自相机的光心Ol和Or的连线,即投影线alOl和arOr,它们的交点即为世界空间中的对答扮象点A(X,Y,Z)。这就是立体视觉的基本原理。

4. 博安盈双目立体视觉系统:平行光轴的系统结构

在平行光轴的立体视觉系统中(图三),左右两台摄像机的焦距及其它内部参数均相等,光轴与摄像机的成像平面垂直,两台摄像机的x轴重合,y轴相互平行,因此将左摄像机沿着其x轴方向平移一段距离b(称为基线baseline)后与右摄像机重合。

由空间点A及左右两摄像机的光心Ol、Or确定的极平面(Epipolar plane)分别与左右成像平面Cl、Cr的交线pl、pr为共轭极线对,它们分别与各自成像平面的坐标轴ul、ur平行且共线。在这种理想的结构形式中,左右摄像机配置的几何关系最为简单,极线已具有很好的性质,为寻找对象点A在左右成像平面上的投影点al和ar之间的匹配关系提供了非常便利的条件。

5. 双目立体视觉智能视频分析技术

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

5.1. 图像获取(ImageAcquisition)

数字图像的获取是立体视觉的信息来源。常用的立体视觉图像一般为双目图像,有的采用多目图像。图像获取的方式有多种,主要由具体运用的场合和目的决定。立体图像的获取不仅要满足应用要求,而且要考虑视点差异、光照条件、摄像机性能和场景特点等方面的影响。

5.2. 摄像机标定(CameraCalibration)

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

5.3. 特征提取(FeatureAcquisition)

特征提取的目的是要获取匹配赖以进行的图像特征,图像特征的性质与图像匹配的方法选择有着密切的联系。目前,还没有建立起一种普遍适用的获取图像特征的理论,因此导致了立体视觉研究领域中匹配特征的多样化。特征可以是像素相位匹配是近二十年才发展起来的一类匹配算法。相位作为匹配基元,本身反映信号的结构信息,对图像的高频噪声有很好的抑制作用,适于并行处理,能获得亚像素级精度的致密视差。但存在相位奇点和相位卷绕的问题,需加入自适应滤波器解决。或者是像素的集合,也可以是它们的抽象表达,如图像结构、图像目标和关系结构等。常用的匹配特征主要有点状特征、线状特征和区域特征等几种情形。

一般而言,尺度较大的图像特征蕴含较多的图像信息,且特征本身的数目较少,匹配效率高;但特征的提取和描述过程存在较大的困难,定位精度也较差。而对于尺度较小的图像特征来说,对其进行表达和描述相对简单,定位精度较高;但由于其本身数目较多,所包含的图像信息少,在匹配时需要采用较严格的约束条件和匹配策略,以尽可能地减少匹配歧义和提高匹配效率。总的来说,好的匹配特征应该具有要可区分性、不变性、唯一性以及有效解决匹配歧义的能力。

5.4. 图像匹配(ImageMatching)

在立体视觉中(图二、图三),图像匹配是指将三维空间中一点A(X,Y,Z)在左右摄像机的成像面Cl和Cr上的像点al(ul,vl)和ar(ur,vr)对应起来。图像匹配是立体视觉中最重要也是最困难的问题,一直是立体视觉研究的焦点。当空间三维场景经过透视投影(PerspectiveProjection)变换为二维图像时,同一景物在不同视点的摄像机图像平面上的成像会发生不同程度的扭曲和变形,而且场景中的光照条件、被测对象的几何形状和表面特性、噪声干扰和畸变、摄像机特性等诸多因素的影响都被集中体现在单一的图像灰度值中。显然,要对包含了如此之多不利因素的图像进行准确匹配是很不容易的。

5.5. 三维恢复(3DReconstruction)

在完成立体视觉系统的摄像机标定和图像匹配工作以后,就可以进行被测对象表面点的三维信息恢复。影响三维测量精度的因素主要有摄像机标定误差、CCD成像设备的数字量化效应、特征提取和匹配定位精度等。

5.6. 视频分析(运动检测、运动跟踪、规则判断、报警处理)

通过视差计算,得到全屏幕的视差图像后,采用背景建模的方式,得到运动前景物体的视差图像,再进行膨胀和腐蚀算法进行图像预处理,得到完整的可供分析的前景运动物体视差图。采用运动跟踪算法,全屏实时检测物体的大小、运动轨迹,并与事先设置的规则进行对比,如果有人进入或离开设置报警区域,系统则实时报警。

5.7. 视差效果图:

注:过滤掉距离地面60cm以内,200cm以上的视差值,即检测范围为60-200cm之间。故左边蹲下的人没有视差值。

1、单目视觉是无法准确获得深度信息的,即只能得到平面信息。不能得到立体信息。深度信息,不一定指目标到相机之间的距离,也可以反应其它的信息,如某个物体的信息、相对位置之类的。不过一定都是跟光轴方向的深度有关。单目视觉可以测量距离,是指测量水平宽或水平高上的距离,与相机、镜头的光轴是垂直的平面上的距离测量。其实可以不用超声波测距,现在双目视觉也在应用于实践,可以考虑使用双目视觉测量立体信息。

2、得到信息,如果是避障的话,主要就是指轮廓、宽、高,宽可能更重要些,悄前因为只要前面有东西,需要绕开,要绕多远,只需要有轮廓就可以了,其它的信息是不需要的。当然也可以获得其它信息,如颜色、类别等。

3、看需要,像图像增强、灰度化、滤波、二值化等,都是属于预处理,如果图像效果好,可以不需要。而边缘查找、模式匹配、几何匹配、圆、直线、粒子分析、字符识别、颜色识别等,是特征提取类的,不一定所有的都会用,选择自己需要的用即可。

4、标定,如果仅仅只是为了处理数据,不标定也可以,这样出来的数据只是以像素为单位的;一般人们可能不太好理解像素,因此需要转换成世界坐标,这样是为了便于人们贺哪理解距离到底有多少。如一个物体宽1000像素,高750像素。这样人们可能比较难理解,而其世界坐标可能是长100mm、宽75mm,这启拍清样像素坐标系与世界坐标第的转换当量就为100mm/1000pixel=0.1mm/pixel,其它再测量得到某个像素值时,只需要乘以这个当量,就可以得到世界坐标了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12411190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存