一种表面凹凸物体照片的高精度拼接方法转让专利

申请号 : CN201010202344.2

文献号 : CN101882306B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 石洗凡刁常宇鲁东明

申请人 : 浙江大学

摘要 :

本发明公开了一种表面凹凸物体照片的高精度拼接方法,根据需要拼接的第一图像和第二图像的重叠区域,利用三维扫描得到表面凹凸物体上若干采样点在世界坐标系中的坐标,用最小二乘法拟合得到最佳重投影平面,建立最佳重投影坐标系;把世界坐标系中的每个采样点的坐标转化为在最佳重投影坐标系中的坐标,结合相机内外参数计算出采样点的理想图像坐标和实际图像坐标之间的误差;通过插值得出重叠区域中所有像素的理想图像坐标和实际图像坐标间的误差;对第一图像和第二图像进行修正,得到消除误差的第一图像和第二图像并进行拼接。本发明通过相机成像所遵守的针孔模型模拟无穷大焦距镜头的成像,生成的照片就消除了表面凹凸透视投影带来的拼接误差。

权利要求 :

1.一种表面凹凸物体照片的高精度拼接方法,其特征在于,包括如下步骤:

(1)根据需要拼接的第一图像和第二图像中的重叠区域,利用结构光扫描仪进行三维扫描得到所述表面凹凸物体上若干采样点上的五元组(xw,yw,zw,ur,vr);所述的五元组中,(xw,yw,zw)为采样点在世界坐标系中的坐标,(ur,vr)为采样点在第一图像中的坐标;

所述的第一图像和第二图像通过拍摄所述表面凹凸物体得到,所述的三维扫描至少覆盖所述表面凹凸物体上与所述的重叠区域相对应的部分;

(2)根据所有采样点在世界坐标系中的坐标,用最小二乘法拟合得到最佳重投影平面,以最佳重投影平面作为一个新的坐标系的xoy平面,建立最佳重投影坐标系;

(3)计算世界坐标系和最佳重投影坐标系之间的旋转矩阵R′;

(4)把世界坐标系中的每个采样点的坐标左乘旋转矩阵R′,得到每个采样点在最佳重投影坐标系中的坐标(xw’,yw’,zw’),将步骤(1)中的五元组(xw,yw,zw,ur,vr)更新,得到与第一图像对应的新五元组(xw’,yw’,zw’,ur,vr);

(5)根据与第一图像对应的新五元组(xw’,yw’,zw’,ur,vr),利用相机标定完成最佳重投影坐标系和图像坐标系之间所有参数的标定,得到拍摄第一图像时相机的内外参数;

(6)根据步骤(5)的结果,针对第一图像,计算采样点的理想图像坐标和实际图像坐标之间的误差;

(7)针对第一图像,对步骤(6)的结果进行插值,得出所述的重叠区域中所有像素的理想图像坐标和实际图像坐标之间的误差;

(8)利用重叠区域中所有像素的理想图像坐标和实际图像坐标之间的误差,针对第一图像进行修正,得到消除表面凹凸透视投影误差的第一图像;

(9)对第二图像执行步骤(1)~(8),得到消除表面凹凸透视投影误差的第二图像;将消除表面凹凸透视投影误差的第一图像和第二图像进行拼接。

2.如权利要求1所述的表面凹凸物体照片的高精度拼接方法,其特征在于,所述的步骤(2)中,最小二乘法拟合得到最佳重投影平面的过程如下:假设最佳重投影平面已经存在,计算任意一点到所述最佳重投影平面的距离后利用最小二乘法,得到所有点到所述最佳重投影平面的距离的平方和;对所述的所有点到所述最佳重投影平面的距离的平方和取最小值,得到最佳重投影平面。

说明书 :

一种表面凹凸物体照片的高精度拼接方法

技术领域

[0001] 本发明涉及计算机数字图像处理领域,尤其涉及一种表面凹凸物体照片的高精度拼接方法,通过三维扫描所获取的深度信息来消除这种普通相机照片由于透视投影所带来的凹凸表面的仿射对应误差。

背景技术

[0002] 目前的图像配准算法都是基于这样的假设,即设(u,v)和(U,V)分别为同一物点在不同图像中的像点(对应点),则一般认为满足如下隐函数关系
[0003] F(u,v,U,V)=0 (1)
[0004] 注意:上式中函数F是一个向量函数,即可以写成如下的分量形式:
[0005]
[0006] 如果能从隐函数解出显函数,那么就可以得到如下形式:
[0007]
[0008] 或者
[0009]
[0010] 至于h和i或者j和k具体是什么,不同的论文有不同的提法,但都逃不出仿射变换(包括平移变换、旋转变换、相似(比例)(缩放)变换等和透视(投影)变换的组合)。于是求解泛函h和i或者j和k就简化为了求解已知函数形式的系数问题。
[0011] 从图1可以看到,由于相机成像遵守的是透视投影(因为不存在焦距无限大的镜头),物体表面凹凸程度Δh会带来拼接误差。
[0012] 首先计算相机光心到物体间的距离H。设期望的获取分辨率为R(PPI,Pixel Per Inch),则折算成每毫米像素数为:
[0013]
[0014] 另一方面,设f35mm为等效的全画幅135相机(感光元件大小为36毫米×24毫米)的焦距,若感光元件大小小于全画幅135相机的感光元件大小,设小的倍数为n(对角线距离的比值),则相机的实际焦距f和等效135焦距存在如下关系,
[0015] f35mm=nf (6)
[0016] 设水平方向的感光元件的分辨率为Rx,则感光元件每毫米像素数为:
[0017]
[0018] 根据透镜的物象放大比例关系,可得:
[0019]
[0020] 由于相机光心到物体间的距离远大于像距v,因此像距约等于焦距f,所以:
[0021]
[0022] 整理并将公式(6)代入得:
[0023]
[0024] 以水平方向的拼接为例,设p为相邻图像的重叠率(如完全重叠则p=1)。
[0025] 对于左图像,偏差为:
[0026]
[0027] 类似的,对于右图像,偏差为:
[0028]
[0029] 因此,总偏差为:
[0030]
[0031] 考虑到表面凹凸程度Δh远小于拍摄时光心和物体间的距离H,则:
[0032]
[0033] 对于300PPI(即R=300)的获取精度,设凹凸的最大值Δh为1毫米,135相机的等效焦距f35mm为100毫米,图像的重叠率p为0.2,则误差为:
[0034]
[0035] 即表面每凹凸1毫米,误差就为3.4个像素,而实际凹凸远不止1毫米,如果按照5毫米计算,就是17个像素,完全不可接受!因此,必须有一种方法能够有效消除这种误差。
[0036] 从公式(14)可以看出,误差和焦距成反比,和分辨率及表面凹凸程度成正比。因此,据此至少可以得到如下两个推论:
[0037] 在高精度获取书画等表面起伏文物时此问题会突显。一般对于书画的获取要求至少为300PPI,而书画表面凹凸一般有数毫米,假设获取时的常用135相机的等效焦距f35mm为100毫米,此时误差为17个像素,必须首先消除再拼接。
[0038] 由于误差和焦距成反比,因此在拍摄中应该尽量采用长焦镜头。如果镜头焦距达到无穷大(此时实际上已经是平行投影了,这是由于实际拍摄时分辨率R是一定的,根据公式(10),焦距f35mm越大,要保持分辨率R不变,拍摄时的距离H就得越远,焦距无穷大时距离H也是无穷大,透视投影即成为平行投影。同时由于拍摄距离H是无穷大,此时有限大的表面凹凸程度Δh可以忽略不计,当作0,即表面没有凹凸的物体),就不存在这种误差,但实际上此类镜头是不存在的。

发明内容

[0039] 本发明提供了一种表面凹凸物体照片的高精度拼接技术,根据凹凸程度计算误差,然后在相邻图像的拼接前首先纠正这种误差然后再拼接,从而有效提高拼接精度。可以应用于表面凹凸物体的高精度获取,如书画等文物的高精度数字化等。
[0040] 本发明所述的表面凹凸物体一般指书画、照片(印出来的非电子版的)等需要数字化存档的,大体上为平面结构,但表面略带凹凸(凹凸起伏的高度一般不超过1厘米)。
[0041] 一种表面凹凸物体照片的高精度拼接方法,包括如下步骤:
[0042] (1)根据需要拼接的两幅图像(这两幅图像分别为第一图像和第二图像)中的重叠区域,利用三维扫描(例如采用结构光三维扫描仪)得到表面凹凸物体上若干采样点上的五元组(xw,yw,zw,ur,vr);
[0043] 三维扫描时至少要求覆盖表面凹凸物体上与重叠区域相对应的部分,以便于误差的校正。
[0044] 五元组中,(xw,yw,zw)为采样点在三维空间(世界坐标系)中的坐标,(ur,vr)为采样点在第一图像中的坐标;
[0045] 所述的采样点一般均匀分布在扫描区域中。
[0046] (2)根据所有采样点在三维空间中的坐标,用最小二乘法拟合得到最佳重投影平面;
[0047] 以最佳重投影平面作为一个新的坐标系的xoy平面,建立坐标系,得到最佳重投影坐标系;
[0048] (3)计算世界坐标系和最佳重投影坐标系之间的旋转矩阵R′;
[0049] (4)把世界坐标系中的每个采样点的坐标左乘旋转矩阵R′,得到每个采样点在最佳重投影坐标系中的坐标(xw’,yw’,zw’),将步骤(1)中的五元组(xw,yw,zw,ur,vr)更新,得到新五元组(xw’,yw’,zw’,ur,vr);
[0050] (5)根据新五元组(xw’,yw’,zw’,ur,vr),利用相机标定完成最佳重投影坐标系和图像坐标系之间所有参数的标定,得到拍摄第一图像时相机的内外参数;
[0051] (6)根据新五元组(xw’,yw’,zw’,ur,vr)和拍摄第一图像时相机的内外参数,计算采样点的理想图像坐标(即假设需要拼接的两幅图像中的物体不存在凹凸部分)和实际图像坐标之间的误差;
[0052] (7)对步骤(6)的结果进行插值,得出所述的重叠区域中所有像素的理想图像坐标和实际图像坐标之间的误差,进行插值时可以采用现有技术中的算法。
[0053] 由于采样点对应的图像坐标点(ur,vr)个数低于重叠区域的图像像素数,如果待纠正的图像点(u,v)没有对应的三维扫描数据点从而无法计算误差可用周围一些有三维数据点并且可以计算误差的点所计算出来的误差通过插值算法估算得出。
[0054] (8)利用重叠区域中所有像素的理想图像坐标和实际图像坐标之间的误差对第一图像进行修正,得到消除表面凹凸透视投影误差的第一图像,该图像是保证相邻图像间满足仿射变换的,参与后续拼接相对误差更小;
[0055] 同理,根据步骤(1)~(8),也可以得到消除表面凹凸透视投影误差的第二图像,区别仅在于(ur,vr)为采样点在第二图像中的坐标;而计算采样点的理想图像坐标和实际图像坐标之间的误差时,利用的是拍摄第二图像时相机的内外参数(根据步骤(5)标定)。
[0056] 实际上,步骤(7)和步骤(8)可以通过纹理映射完成,即根据(xw’,yw’,zw’,ur,vr)可以算出误差,进而得到消除误差后的(ui,vi),将(ur,vr)和(ui,vi)分别作为输入图像和输出图像中的关键点坐标进行纹理映射完成误差纠正。
[0057] (9)将消除表面凹凸透视投影误差的第一图像和第二图像进行拼接。
[0058] 步骤(2)中,基于最小二乘法的最佳重投影平面的拟合。该步骤的目的是在满足纠正表面凹凸透视投影误差的前提下尽可能接近原始图像(纠正量尽可能小,在不同的投影平面上误差大小是不同的),因为图像的拉伸程度越大,对于细节的损失也就越大。因此需要在达到目的的前提下尽可能减少副作用。而根据公式(14)可以看到,误差(即纠正量)与凹凸程度成正比,因此选择恰当的坐标系,使得凹凸尽量小就可以保证误差所带来的纠正量尽可能小,而所谓凹凸就是点到某个平面的距离,凹凸尽量小可以通过最小二乘法实现,即最小化点到某个平面的距离的平方和。
[0059] 步骤(3)中,最佳重投影平面与世界坐标系的对应关系的计算。在最小化凹凸时,对应着至少一个最佳重投影平面,即以这个平面衡量的凹凸是最小的,这一步主要是确定这个最佳重投影平面与世界坐标系的对应关系,因为后面计算误差纠正量时需要两者的关系。
[0060] 本发明进行不平整表面的仿射变换误差的纠正,主要是根据相机成像所遵守的针孔模型,根据表面的凹凸信息,分别计算图像上每个像素按照实际镜头焦距拍摄所在的坐标和按照无穷大焦距拍摄(平行投影)所在的坐标,这两个坐标的差值就是误差,通过减掉误差就可以达到消除由于表面凹凸透视投影所带来的拼接误差问题。当然,实际上每个像素所对应物点的准确凹凸程度的获取很困难同时也没必要。通过获取一些特征点像素或者采样点像素上的准确凹凸程度,可以获得这些点上的拼接误差,而其余点的拼接误差可以通过插值方法得到,而通过纹理映射,就可以达到插值的目的。
[0061] 上述方法可以推广到需要更多图像拼接的场合,既可以两张两张先校正后拼接,也可以统一先校正成平行投影成像的图像然后一起拼接。
[0062] 本发明通过相机成像所遵守的针孔模型,模拟无穷大焦距镜头的成像,生成的照片就消除了表面凹凸带来的拼接误差。

附图说明

[0063] 图1表面凹凸物体透视投影所带来的相邻图像的拼接误差原理图。

具体实施方式

[0064] 下面结合实例详细描述本发明的一种具体实施方式。
[0065] (1)根据需要拼接的第一图像和第二图像中的重叠区域,利用结构光三维扫描仪得到表面凹凸物体上若干采样点上的五元组(xw,yw,zw,ur,vr);
[0066] 这里的第一图像和第二图像通过拍摄表面凹凸物体得到,且有部分重叠区域,三维扫描时至少要求覆盖表面凹凸物体上与重叠区域相对应的部分,以便于误差的校正。
[0067] 五元组中,(xw,yw,zw)为采样点在三维空间(世界坐标系)中的坐标,(ur,vr)为采样点在第一图像中的坐标;。
[0068] (2)基于最小二乘法的最佳重投影平面的拟合
[0069] 假设最佳重投影平面已经存在,则可用
[0070] AX+BY+CZ+D=0 (16)
[0071] 表示。此时,任意一点(xi,yi,zi)到该平面的距离为:
[0072]
[0073] 利用最小二乘法,可得所有点距离的平方和为:
[0074]
[0075] 上式中如果A、B、C和D都同时乘以一个非零的数并不会改变结果,因此,可以并且必须保证:
[0076] A2+B2+C2=1 (19)
[0077] 且:
[0078] C≥0
[0079] (20)
[0080] 此时,目标函数F可以简化为:
[0081]
[0082] 如果令F取最小值,就可以得到最佳重投影平面,可用数学语言形式化地表示如下:
[0083]
[0084]
[0085] 令
[0086]
[0087] 则限制条件公式(19)和公式(20)等价为公式(23),代入公式(21)可得:
[0088]
[0089] 将F对α、β和D分别求偏导数得:
[0090]
[0091]
[0092]
[0093]
[0094] 其中n表示待拟合的点的个数。取最值时,上述三个偏微分应该全部为零,即:
[0095]
[0096] 其中由公式(28)中第三式可得:
[0097]
[0098] 因此,方程组(28)变为:
[0099]
[0100] 上述方程组的解析解很难求得,不过幸运的是,由于是在计算机上求解,因此可以用数值解代替。由方程组(30)中第二式可得:
[0101]
[0102]
[0103] 将方程组(30)中第三式代入得:
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118] 其中:
[0119]
[0120]
[0121]
[0122]
[0123]
[0124] 而公式(32)所组成的方程可简化为:
[0125] Pcos2β+Qsinβcosβ+Rsin2β+Scosβ+Tsinβ=0 (38)
[0126] 可以按照如下方法求解,由方程(38)可得:
[0127] Pcos2β+R(1-cos2β)+Scosβ+(Qcosβ+T)sinβ=0 (39)
[0128] 由此可解得:
[0129]
[0130] 所以:
[0131]
[0132] 即:
[0133] [Pcos2β+R(1-cos2β)+Scosβ]2=(1-cos2β)(Qcosβ+T)2 (42)
[0134] 这是一个关于cosβ的四次方程(如果四次方系数正好为0,那么也可能不到四次),而四次及以下方程具有求根公式,利用它可以求解得出cosβ进而进一步求解出sinβ。当然,由于进行过两边平方,有可能产生增根,因此需要把β代入原来的二次三角方程检验,以去除可能的增根。
[0135] 总之,方程组(30)可以按照如下方法求解:
[0136] 首先写一个单独的函数,根据α,利用方程组(30)后面两式求解β和D。该函数又可以具体分为如下几步:
[0137] 1.根据α,利用公式(33)~公式(37)求得常数P、Q、R、S和T;
[0138] 2.将P、Q、R、S和T代入公式(42),求解关于cosβ的四次方程;
[0139] 3.将cosβ和不确定符号的sinβ代入二次三角方程(38)检验,得到β;
[0140] 4.将α和β代入方程组(30)的第三式得到D。
[0141] 其次,由于 可以把这个区间分成若干个(比如等分成1000个)不相交的子区间,根据第一步的函数求出每个子区间分界点上的α、β和D,然后代入方程组(30)第一式左边,得到一个值g。如果子区间两端点的g值相反,则利用二分法可得这个子区间上唯一的一组解α、β和D。通过计算所有的可能子区间,最终可以找到所有的解α、β和D。
[0142] 最后,对于所有的解α、β和D,根据A=cosβsinα、B=sinβsinα和C=cosα分别求得A、B和C,并代入公式(24)可以计算出距离的平方和F。选取使得F最小
的那组A、B、C和D就是期望的解,或者说这组解唯一地确定了一个最佳的重投影平面。
[0143] (3)最佳重投影坐标系与世界坐标系的对应关系的计算
[0144] 在上一步中,已经利用世界坐标系中的点坐标数据(xw,yw,zw)拟合出一个最佳重投影平面
[0145] AX+BY+CZ+D=0, (16)
[0146] 这些点到这个平面的距离的平方和最小,但是这时,点到平面的距离并不是以zw的形式直接的表示出来,本步骤的目的,就是通过旋转变换,使得点到平面的距离为在新世界坐标系下的z的绝对值。为此,实际上只要通过旋转变换把平面方程(16)中的系数A和B消去即可,即通过如下的旋转变换,最终使得平面方程变成
[0147] C′Z+D′=0, (43)
[0148] 的形式,进而得到如下形式:
[0149]
[0150] 也就是建立一个新的坐标系,使得重投影平面成为这个新坐标系的xoy平面。令[0151]
[0152] 其中,[X Y Z]T和[X’Y’Z’]T分别为世界坐标系中和最佳重投影坐标系中的坐标,而
[0153]
[0154]
[0155]
[0156] 将公式(46)代入公式(45)可得:
[0157]
[0158]
[0159]
[0160] 代入公式(16)得:
[0161]
[0162]
[0163]
[0164] 上式化简可得:
[0165]
[0166] 满足公式(43)的形式,进一步化简可得:
[0167]
[0168] 由于公式(45)和(46)中的矩阵R是两个正交矩阵的乘积,因此R为正交矩阵,所以,-1 T
[0169] R =R。 (51)
[0170] 由公式(47)可得:
[0171]
[0172]
[0173]
[0174]
[0175] (4)综上,从世界坐标系到新坐标系的坐标变换方法为:通过把每个点的世界坐标系坐标左乘公式(52)中的旋转矩阵R′,得到每个采样点在最佳重投影坐标系中的坐标(xw’,yw’,zw’),将步骤(1)中的五元组(xw,yw,zw,ur,vr)更新,得到新五元组(xw’,yw’,zw’,ur,vr);并在最佳重投影坐标系下得到简化后的可由公式(50)表示的平面方程以及点到重投影平面的距离;
[0176] (5)根据新五元组(xw’,yw’,zw’,ur,vr),利用相机标定完成最佳重投影坐标系和图像坐标系之间所有参数的标定,得到拍摄第一图像时相机的内外参数;
[0177] (6)假设照相机遵守针孔模型,那么图像坐标和世界坐标存在如下对应关系:
[0178]
[0179]
[0180] 这儿(xw,yw,zw)是一个物点的世界坐标,(u,v)是该点投影在图像平面的以像素为单位的坐标。ax、ay、u0和v0所在的矩阵为内参矩阵。(u0,v0)是基准点(通常在图像的中心,即图像宽度和高度的一半),ax和ay是以像素为单位的焦距。R和T分别为旋转和平移矩阵也称作外参矩阵,将旋转矩阵R和平移向量T写成分量形式即得:
[0181]
[0182]
[0183]
[0184]
[0185] 即:
[0186]
[0187] 如果被摄物体是几何上的平面物体,则zw为0,那么理想的图像坐标(ui,vi)可以写成如下的形式:
[0188]
[0189] 此时相邻图像间满足仿射变换关系。但是,实际上,由于表面凹凸zw的存在,图像上像素点的实际图像坐标(ur,vr)为:
[0190]
[0191] 两者之间的差别就会导致拼接误差,该误差为:
[0192]
[0193] 理论上,只要修正公式(58)中的误差就可以消除由于表面凹凸zw所导致的拼接误差。
[0194] 根据公式(58),利用新五元组(xw’,yw’,zw’,ur,vr)和拍摄第一图像时相机的内外参数,得到采样点的理想图像坐标和实际图像坐标之间的误差Δu和Δv。
[0195] 由于需要在满足仿射变换的前提下误差校正量尽量小,所以不是在原来的世界坐标系而是在最佳重投影平面为xoy平面的新的世界坐标系下完成校正工作。
[0196] (7)对步骤(6)的结果进行插值,得出所述的重叠区域中所有像素的理想图像坐标和实际图像坐标之间的误差,进行插值时可以采用现有技术中的算法;
[0197] (8)利用每个像素理想图像坐标和实际图像坐标之间的误差对重叠区域中第一图像所有像素进行误差修正,得到消除表面凹凸透视投影误差的第一图像;
[0198] 同理,也可以得到消除表面凹凸透视投影误差的第二图像,区别仅在于(ur,vr)为采样点在第二图像中的坐标;而计算采样点的理想图像坐标和实际图像坐标之间的误差时,利用的是拍摄第二图像时相机的内外参数(根据步骤(5)标定);
[0199] 实际上,步骤(7)和步骤(8)可以通过纹理映射完成,即根据(xw’,yw’,zw’,ur,vr)可以算出误差,进而得到消除误差后的(ui,vi),将(ur,vr)和(ui,vi)分别作为输入图像和输出图像中的关键点坐标进行纹理映射完成误差纠正。
[0200] (9)将消除表面凹凸透视投影误差的第一图像和第二图像进行拼接。