9 基于几何光学的单幅二维图像三维重建.docx
《9 基于几何光学的单幅二维图像三维重建.docx》由会员分享,可在线阅读,更多相关《9 基于几何光学的单幅二维图像三维重建.docx(28页珍藏版)》请在冰点文库上搜索。
![9 基于几何光学的单幅二维图像三维重建.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/456d6088-f68c-4a5c-8fbf-0e3bbf891cba/456d6088-f68c-4a5c-8fbf-0e3bbf891cba1.gif)
9基于几何光学的单幅二维图像三维重建
第六章基于几何光学的单幅二维图像三维重建
单幅二维图像进行三维重建一直是计算机视觉领域的难题,因为每一图像点都有无限多个场景点与之对应。
故从光学成像的角度分析,单幅二维图像三维重建问题好像不存在较为通用的解决方案。
然而反思人类自身视觉经验,仅用一只眼睛观察单幅二维图像,同样能感觉到栩栩如生的三维世界。
而且完成这一过程是不需要任何意识努力,好像是全部自动进行的。
这些表明人类视觉系统能轻松解决这个问题。
人眼与照相机的光学成像机制几乎完全相同,故模拟人类视觉系统,计算机对单幅二维图像进行三维重建又是完全有可能的,这正是本章研究工作的基本思路与逻辑起点。
单幅二维图像三维重建问题的难点在于对单幅二维图像深度估计,本文第五章提出解决解决这一问题的有效方法。
本章将在第五章提出的深度模型(图5-1)的基础上,研究基于几何光学的二维图像三维重建算法。
本质上讲,大小恒常性变换就是一种单幅二维图像三维重建过程。
故本章也对基于心理学的重建方法与基于几何光学的重建方法进行比较,继续探讨在计算机视觉中应用视觉心理学结论的适应性问题。
6.1引言
计算机视觉的研究目标是使计算机具有通过二维图像认知三维环境信息的能力,然后达到认识世界的目的,故二维图像三维重建一直是计算机视觉的主要内容。
计算机视觉奠基人Marr名著《Vision》的中心内容就是力图阐述如何从二维图像出发,重建客观世界物体的三维模型。
从上世纪60年代以来,许多学者从不同的角度,提出了不同的三维重建方法,主要分为以下五类:
多相机立体视觉、光度学立体视觉、用阴影求形状、基于模型重建及三灭点重建等,下面分别叙述。
(1)多相机立体视觉[Stewenius2005][Rajagopalan2004][Cheng2005][Williams2005][马颂德1998,pp72-93]。
这是指用两架或多架照相机对同一空间场景进行拍照,得到同一场景不同视角的两幅或多幅图像,并用这些图像恢复三维空间几何形状的方法。
如图6-1所示,用两架照相机C1与C2同时观察三维空间中P’。
如果我们能确定照相机C1得到图像上的像点P1与照相机C2得到图像上的像点P2都是空间中点P’所成的像,则称P1与P2为两幅图像间的对应点。
因此空间点P’既位于直线O1P1,又位于直线O2P2上,故P’是直线O1P1与直线O2P2的交点,所以它的三维位置是唯一决定的。
这就是多相机立体视觉的原理。
这种方法的优点是,只要找到两幅图像间的对应点,可以精确地计算出空间点的三维坐标,同时可以避免边缘检测、图像分割等难题。
这种方法缺点是,在两幅图像间,寻找对应点也是计算机视觉中难题之一。
虽然人们已经提出了各种有效约束,如极线约束、相容性约束、唯一性约束、相似性约束、连续性约束等[Marr1982,pp114-121],并提出了多种不同方法,如相关法、特征点匹配法、极线整体匹配法,但是对应点匹配问题并没有得到完美解决,有时
不得不使用第三个照相机。
(2)光度学(Photometricstereo)立体视觉[Nayar1990][马颂德1998,pp203-205]。
与多相机立体视觉方法不同,该方法使用同一相机在不同的光源照射下对同一物体拍摄多幅图像。
因为光源不同,多幅图像的强度值也就不同。
图像强度值是物体表面法向量(朝向)、表面照明方式、表面反射率三者的函数。
如果已知光源方向,仅考虑表面散射反射率kd(可看作常数),则计算物体表面某点P的单位法向量只有三个独立参数(单位法向量中有两个,另一个是kd),故至少需要三个不同光源(即三幅图像)。
图6-2显示了这种方法的原理。
具体计算过程分两步进行:
先计算物体表面单位法向量n;再由n通过求解偏微分方程计算物体的相对几何形状。
与一般的立体视觉相比,光度学立体视觉的一个重要优点是不需要进行图像间的对应点匹配,这是因为物体与照相机的相对位置没有变化。
但这种方法也有不少缺点。
首先,这种方法需要至少三个已知方向的相同光源,分别照射物体以得到不同的图像,这在现实中很难做到。
其次,要假设场景中的照明性质与表面性质处处相同。
(3)用阴影求形状[Horn1989][Forsyth2003,pp80-85][Castelan2004][严涛2000]。
这种方法的原理与光度学立体视觉方法的原理基本相同,不同的是该方法只需一个已知光源及在该光源照射下得到的一张图像。
如果假定已知表面散射反射率kd,则计算表面单位法向量(朝向)n还有两个独立参数,但只有一张图像,故需要其它的约束条件。
通常假定表面是光滑的,表面法向量(朝向)的变化也是光滑的(即可微的)。
对这个假定的通俗理解是:
假如我们在一个阳光照射的山坡上行走,通过观察,知道了所站位置的表面朝向及朝向的局部变化情况,那么当沿某一方向在山坡上走动时,就能根据阴影来推断出新的位置的局部朝向。
所以这种方法的求解过程要解非常复杂的非线性方程,需要沿图像中的路径进行逐次积分,而这些积分路径也只有在积分的过程中确定[Marr1982,pp260]。
这种方法在继承光度学立体视觉方法优缺点的同时,只需要一个已知光源,代价是引入更严格的约束与更复杂的计算。
它也是从单幅二维图像进行三维重建的最早、最有影响的尝试。
(4)基于模型重建[Ryoo2004][Wilczkowiak2001][Jelinek2001][Forsyth2003,PP401-426][马颂德1998,pp229-234]。
这种方法先要根据形状、几何特征的差异建立物体模型库。
因为物体的几何特征不是分散在整个图像中,所以在图像与模型之间,只要对应了图像物体一小部分特征,就可以在模型中发现图像物体的大部分特征。
这种方法又被称作假设—验证方法,它的主要重建过程示意图见图6-3,由三部分组成。
首先,假设输入图像的一部分特性与模型库中某物体的部分特性对应,并由这些对应关系计算出相机的投影矩阵(图6-3中的第2、5、6步)。
然后,用此投影矩阵对整个选定的模型物体进行投影(实质上是一次模拟照相机成像过程),生成模型物体的投影图像(图6-3中的第7步)。
最后,将物体的投影图像与输入图像比较,如果满足规定的相似性要求,则选定的模型物体的坐标即是对应的输入图像重建的三维坐标,否则重新选择模型物体或物体的特性,进行新一轮的计算过程(图6-3中的第8、9步)。
这种重建方法的主要优点是只需要单幅图像,计算过程清晰,模型库可预先设计,可对整个过程进行有效的自上而下的控制。
主要缺点是物体模型的表示比较困难;当模型库很大时,计算量很大。
所以,这种方法主要适于工业应用场合。
(5)三灭点重建[Criminisi2001,pp94-95]。
这种方法先求出图像中的三个灭点,设为VX,VY,VZ,对应空间中的三个方向。
设原点为O=(VX+VY+VZ)/3,以保证原点O不在这三个灭点构成的灭线上,如图6-4所示。
这样VX,VY,VZ与原点O可形成三个参考面,不要求它们相互垂直。
设场景点Q’的像点是Q。
沿着OX方向,场景Q’与参考面YOZ的交点为QYZ’(我们称点QYZ’为点Q’在面YOZ上的脚点),则QYZ’在图像中对应的像点为QYZ。
QXY、QXZ与QYZ的物理含义相同,而且只要知道了这三个点的一个,其余两个点的位置就能通过三个给定的灭点的位置计算出来。
三个灭点VX,VY,VZ可用图像中的三组会聚线求出,Criminisi提出,只要标定了QXY、QXz与QYZ三者之一,像点Q对应的场景点Q’的坐标就能在仿射意义下进行三维重建。
此方法的主要优点是只需要一幅图像,对光源也没有要求,计算复杂度也不高。
它的缺点是图像中很少同时存在三组会聚线,故得到三个灭点的可能性不大。
另一个不足是脚点有时很难从图
像中得到。
总之,学者们已从不同的角度对三维重建问题进行了卓有成效的研究,但用单幅二维图像进行三维重建仍然是一个有挑战性的问题。
6.2单幅二维图像三维重建模型
从欧氏几何学的观点,客观世界能被抽象成无限扩展的三维空间。
这种三维空间可分解成无限多个相互平行互相紧挨的平面。
而平面又可分解为无限多个相互平行的直线,直线可进一步分解成一个个的点。
故对三维空间的重建可以归结为构成三维空间所有点的重建。
但如果纯粹地从欧氏几何学出发,用单幅二维图像无法完成三维空间的重建任务。
这不仅因为一幅二维图像仅仅是欧氏三维空间的一个平面而已,还因为每个图像点是空间中无限多个点中的任意一个形成的(如图6-1中,空间直线O2P2任何一点P’或P’’都可投影产生像点P2)。
然而人类视觉系统却能够轻松地完成这种任务,故我们先分析人的视觉空间与视觉环境(Environment)。
6.2.1人类视觉空间的特点
人的视觉空间本质上不同理想的欧氏三维流形。
人类视觉空间是各向异性(如上、下、左、右是不同的),有限有界的;而后者是各向同性、无限无界的。
人类视觉空间更类似于超几何空间而非欧几里得空间[Mach1999]。
人类视觉感知是非常实在的。
理想的几何空间仅存在于人们的想象中,是无法看见的。
人的视觉环境与物理世界也很不相同。
从微小的原子到巨大的星体,物理世界无所不包;而视觉环境只是其中的一小部分,是由可用生态尺寸(从毫米到米)测量的陆地物体构成的。
人类居住的地球主要由陆地,水与空气组成。
大地与空气间的表面即地面(Ground)垂直于重力方向,地面倾向于被感知为平坦的表面。
构成地面的单元(沙粒、草地、人工地板等)也倾向于被感知为均匀分布的。
水与空气间的表面在视觉环境中可以看作另一种地面。
地面上有各种各样的物体。
地面为这些物体提供稳定支撑。
位于地面与物体之上(或之间)的开放空间构成了天空。
地面的特殊情况是室内的地板,天空的特殊情况是室内的天花板。
在天地之间,有三种状态的物体:
固体、液体与气体。
液态的形状是由包围它的固态容器物体的形状决定的。
气态物质基本上没有形状,对它们的识别是很难的。
故在视觉环境中,最重要的是固体物体。
计算机视觉领域中的物体一般也是指固体。
固体物体是可以存在时间较长的物质,一般由闭合或几乎闭合的、不透明的表面构成;固体物体的一个重要特性是刚性(Rigidity),即它表面的形状是不容易改变的。
常见的气体是空气,它充满在地面与物体之上(或之间)空间之中,一般为透明的,能迅速以直线方式传播光线。
地面与天空是视觉环境中最重要的、最基本的表面,它们是其它表面的参考面。
如果看不见脚底的大地,如果看不见头顶的天空,我们根本无法感知天地之间纯粹的空间(Emptyspace)[Gibson1979]。
所以人类视觉空间可以抽象如下模型:
以天空云彩为顶,以地面为底,物体附着在地面之上,在它们之间是纯粹的空洞(充满着空气)。
为了从二维图像感知到三维物体,首先必须从图像中把对应天空与地面的图像区域检测出来。
其次,从其余的图像中分离出不同的图像物体区域。
通过上述说明,现在可以得出人类视觉系统完成单幅二维图像三维重建的两个关键之处,这对本章的重建模型具有最重要、最本质的意义。
(1)因为空气一般是透明的,且能传播光,故三维空间中的不同物体,同一物体的不同表面能同时被投影到同一二维图像平面中,从而使得单幅二维图像平面有可能对应空间中的不同平面。
这产生了正反两方面的作用:
一方面使图像点所对应的场景点的位置难以确定,这是单幅二维图像三维重建之所以困难的本质原因;另一方面也为从单幅图像三维重建提供了可能,因为该幅图像中已经包含空间三维信息,只是恢复这种信息比较困难。
(2)刚性物体的表面是闭合或几乎闭合的,构成它的空间点是相互连通的,故对物体上任何一点M,沿着物体上的某条路径,总可以找到它在地面上的垂直投影点,称它为点M的脚点M脚。
例如,在图6-5中,场景点P’是场景点Q’的脚点;相应的,P’的像点P是Q’的像点Q在图像中的脚点。
地面是人类图像感知的最重要的参考面。
由脚点M脚在地面的位置,运用式(5-4),可以决定像点M的相对深度(z方向坐标)。
由像点M与它脚点M脚的图像距离可以决定像点M对应场景点的离地面的高度(y方向坐标)。
同理,可以决定像点M对应场景点的离相机光轴的水平距离(x方向坐标)。
这样,任一像点M的空间三维坐标就可由它在图像中的位置与它的脚点M脚在图像中的位置共同决定。
如果脚点M脚无法确定,对像点M的重建是很难的。
人类视觉系统也有这个缺陷,如在黑夜中,我们无法决定空中某亮光点的具体位置。
6.2.2基于几何光学的三维重建模型
模拟人类视觉,现在给出本章使用的单幅二维图像三维重建模型,见图6-5,它是图5-1的扩充。
先进行符号约定:
(1)图像点用大写字母表示,如像点P、Q,M,N,它们对应的第一个场景点用相应字母加一个单引号标记,如P’,Q’,M’,N’;对应的第二个场景点用相应字母加两个单引号标记,如Q’’。
(2)图像点的坐标、坐标轴用小写字母表示,如点像点M(x,y)、x轴等,而三维空间点的的坐标、坐标轴用大写字母表示,如场景点M’(X,Y,Z)、X轴等等。
(3)任意两点P,Q的距离用d(P,Q)表示。
这个模型的输入是由被动视觉方法得到的单幅二维图像,每个图像点的坐标位置以像素为单位,如像点M(x,y);它的输出是各图像点对应的场景点的三维坐标,如像点M的对应场景点M’(X,Y,Z)。
相机模型是考虑实际地面的针孔成像模型,在此模型中,相机离地面的高度是针孔模型中重要的因素;相机像平面被假定是与实际地面垂直的。
假定图像点的脚点存在(否则,用本章的方法无法进行三维重建)。
图6-5中的像平面是倒立的,原点B设在图像的右下角;图像坐标的x轴设为像平面底端边界,方向如图向里;y轴为右边边界,方向如图向上(在后面实验中,图像是正立的,原点位置、坐标位置与方向要进行相应的调整)。
三维空间的原点设为针孔O在地面的垂直投影点E;三维空间的X坐标轴为过原点E与图像平面Ⅱ平行的、位于实际地平面Ⅰ上的直线,方向如图所示向外;Y坐标轴为直线OE,方向如图所示向上;Z坐标轴为实际地面Ⅰ的中轴线EU’P’(相机光轴在地平面Ⅰ的垂直投影线),方向如图所示。
因为我们的目的仅是验证三维重建模型的有效性,所以对图像地面、天空与物体等图像区域的分割、对脚点位置的标定等工作都是手工进行的。
这个三维重建模型有很多实际应用,如移动机器人对空间物体的体积估计、基于计算机视觉的车辆自动导航系统对前面车辆或其它物体准确定位与测量等等。
在这些应用中,地面几乎是理想平坦的。
地面被假定是平的,这合乎人的感知经验[Gibson1979,pp10,33,131]。
在日常生活中,平坦的视觉局部参考地面是很容易找到的。
人工的地面几乎都是平坦的。
当我们欣赏湖光水色时,水面是平坦的。
当我们散步时,局部路面看上去一般也是平坦的。
6.3像点三维坐标计算
如上章所述,根据几何光学知识与图6-5中的成像模型,客观世界中于实际天空与实际地面之间的地平线(灭线),一定会沿着光轴投影到像平面Ⅱ上,形成一条直线,记作L3,该线也一定会与地面平行(见图6-5)。
我们称L3为像平面的中间线(Middleline),并称L3中点为像平面的灭点(Vanishingpoint)。
L3也必然将像平面分成两部分:
图像地面(Imageplane)与图像天空(Imagesky),它们分别是由实际地面与实际天空投影形成的。
当像平面与实际地平面垂直时,L3与像平面的水平中轴线重合。
如图6-5所示,图像点M的对应场景点为M’。
M’在实际地平面Ⅰ上的垂直投影点为场景点N’,它即点M’的脚点。
场景点N’在图像平面Ⅱ投影形成的像点为N,故像点N是像点M在图像平面Ⅱ上的脚点。
图像点M对应的场景点M’的三维坐标[Xm,Ym,Zm]如图6-5所示。
Zm就是上一章所定义像点M的感知深度,用式(5-4)很容易求出。
因为空间四边形Q’M’P’N’是矩形,Xm就是场景点P’与场景点N’间的距离d(P’,N’);Ym就是场景点P’与场景点Q’间距离d(P’,Q’),也即场景点Q’离实际地面Ⅰ的高度。
因为三维空间的对称性,并根据相机成像的高斯放大率公式[刘涤民1990,pp36-37],只要求出了Ym,Xm也可同理求出。
下面详细介绍Ym的计算原理。
图6-5表明,点P,P’,U,U’,Q,Q’,E,A,V与针孔O共面的,这个平面记作Ⅲ,它既垂直于平面Ⅰ又垂直于平面Ⅱ。
为了更容易看清各点之间的关系,平面Ⅲ被单独显示在图6-6中。
从图6-6可以看出,线段P’E的长度,即Zm,是像点P的感知深度(PD),故根据式(5-4),有
Zm=d(P’,E)=hc×f/d(P,V)(6-1)
这里,f是针孔到像平面的垂直距离,一般为成像时的焦距。
线段Q’’E的长度就是像点Q的感知深度(PD),故根据式(5-4),有
d(Q’’,E)=hc×f/d(Q,V)(6-2)
也容易看出,三角形Q’Q’’P’与三角形QQ’’A是相似的,即
△Q’Q’’P’∽△QQ’’A(6-3)
Ym就是场景点P’与场景点Q’间距离d(P’,Q’),故有
Ym=d(P’,Q’)=d(A,Q)×d(P’,Q’’)/d(A,Q’’)
=[hc+d(Q,V)]×[d(Q’’,E)-d(P’,E)]/[d(Q’’,E)+f]
(6-4)
先分析等式右边第一项。
在实际的成像过程中,相机的CCD感光器(或胶卷)的对角线尺寸一般20毫米,d(Q,V)最大不到它的一半(10毫米);而相机成像时的高度hc一般在1米(1000毫米)以上,即hc远远大于d(Q,V),有
(6-5)
再分析等式右边第三项,针孔到像平面的垂直距离f一般为成像时相机的焦距,通常小于100毫米,而物距d(Q’’,E)通常在1.5米以上(近距离翻拍除外),即d(Q’’,E)远远大于f,故有
(6-6)
将式(6-5)、式(6-6)代入式(6-4),可得
Ym=d(P’,Q’)=hc×[d(Q’’,E)-d(P’,E)]/d(Q’’,E)
=hc×[1-d(P’,E)/d(Q’’,E)](6-7)
再将式(6-1)、式(6-2)代入式(6-7),可得
Ym=d(P’,Q’)=hc×[1-d(Q,V)/d(P,V)]
=hc×d(P,Q)/d(P,V)(6-8)
Ym的计算公式(6-8)比较简单,等式右边由三项构成。
第一项是成像时的相机高度hc,这对同一图像中所有的像点都是相同的;第二项是场景点P’、Q’对应的图像点P、Q间的图像距离d(P,Q);第三项是像点P的图像高度(图像高度的概念见本文5.3节),即像点P在图像平面上到中间线L3的距离。
摄影时,如果使用三角架,hc是非常容易测量的,较好的三角架能直接读出相机的高度。
后两项能直接从图像中得到。
同时,可以看出,在成像过程中,Ym被放大的倍数为hc/d(P,V)。
高斯放大率公式告诉我们,在同一共轭面内,理想透镜成像的放大率是个常数,这也是垂直于光轴的平面物体所成的像与物相似的原因[刘涤民1990,pp36-37]。
所以,Xm与Ym的放大倍数相同。
而且,根据三维物理空间的对称性,Xm应与Ym有相同的形式,即
Xm=d(P’,N’)=hc×d(P,N)/d(P,V)(6-9)
结合式(6-1)、式(6-8)、式(6-9),我们能得到图像点M的对应的场景点M’在物理空间的三维坐标如下,
[Xm,Ym,Zm]=[hc×d(P,N)/d(P,V),hc×d(P,Q)/d(P,V),hc×f/d(P,V)]
(6-10)
在式(6-10)中,各种距离是用米制单位表示的。
然而,用图像数据中,d(P,N)、d(P,Q)、d(P,V)通常使用像素单位(Pixelunit)表示,而hc、f依然是用米制单位表示。
现把d(P,N)、d(P,Q)、d(P,V)以像素为单位的距离分别记为d(P,N)pixel、d(P,Q)pixel、d(P,V)pixel。
不失一般性,设CCD传感器上每像素的高度是s毫米,即s的单位是毫米/像素,类似于式(5-3)有
d(P,N)=s×d(P,N)pixel
d(P,Q)=s×d(P,Q)pixel
d(P,V)=s×d(P,V)pixel(6-11)
将式(6-11)代入式(6-10),则式(6-10)改写为,
[Xm,Ym,Zm]=[hc×d(P,N)pixel/d(P,V)pixel,hc×d(P,Q)pixel/d(P,V)pixel,
hc×f/(s×d(P,V)pixel)](6-12)
从式(6-12)可以看出,Xm,Ym,Zm都有相机高度hc这个因子项,而对同一图像中的所有点hc是相同的。
如果仅想进行相对三维重建,则可以将hc这个共同因子项约掉,故各图像点对应点的相对三维坐标为:
[Xm,Ym,Zm]相对=
[d(P,N)pixel/d(P,V)pixel,d(P,Q)pixel/d(P,V)pixel,f/(s×d(P,V)pixel)]
(6-13)
如果用数码相机摄影,从图像文件的元数据(Metadata)中,可直接得到f(Focallength,一般以毫米表示)。
这样,式(6-13)中只剩下因子s无法从图像数据中得到。
下面介绍一种简单的标定s的方法。
设输入图像是直立,图像矩阵维数为m×n(宽×高),单位为像素,坐标原点在图像矩阵的左上角,成像时保证像平面与实际地面垂直。
同时设图像地面中任意一像点P在图像矩阵中的坐标为(px,py),则对上一章中式(5-6)进行整理可得,
s=hc×f/(zp×|py–n/2|)(6-14)
这里,zp是像点P的感知深度。
在摄影时,对实际地面上的某显著点测量可准确得到zp的值。
其它数据也是非常容易得到的。
只需要一个点深度值就可以对s进行标定。
在实验或实际工作时,往往测量多个显著点的深度值,统计平均,以减少测量误差。
一部相机,只要一次标定。
这样,对标定好的相机,仅使用图像数据信息,运用式(6-13),就可直接从单幅二维图像进行相对三维重建。
6.4实验结果与分析
实验主要包括两部分。
第一部分用式(6-14)对参数s进行标定实验。
标定时,用同一相机以不同的相机高度拍摄两幅(或多幅)。
先用一幅图像对参数s标定,再用另一幅进行验证。
参数s验证的过程实质上是运用式(5-5)或式(5-6)求图像各标定点的绝对深度。
第二部分用标定的相机参数s进行三维重建实验。
为了便于与测量值比较,实验时测量了相机高度,运用式(6-12)进行绝对三维重建。
使用不同的型号的数码相机拍了一些图像,并对每张图像中显著点(加了标签的点)的三维坐标进行了测量。
空间坐标轴的选择见图6-5。
6.4.1Nikon-E3700相机参数s标定
图6-7(与图5-5是同一张图)是Nikon-E3700CCD相机拍摄的。
各深度测量点如图标示,各点对应的深度值见表6-1。
在拍摄时,保证像平面Ⅱ与实际地面Ⅰ是垂直的。
图像的大小为2048×1536像素(宽×高),原点在图像矩阵的左上角,相机高度0.75米。
尽管只用一个深度点就可对参数s标定,但为了降低随机误差,提高精度与可靠性,本章用式(6-14)对多点分别标定,并取各点平均值作为最终的标定结果。
实验结果见表6-1,从中可以看出各点的计算结果可以被认为是相同的,因为Re