发明名称 一种基于块匹配视差估计的中间视图合成方法
摘要 一种基于块匹配视差估计的中间视图合成方法,为对取自同一场景同一时刻不同角度的两幅左右图像进行视差估计,根据求出的视差图通过图像插值得到原始视图间直线(基线)上任意位置虚拟视图,首先分别以左右视图为目标图像进行视差估计,采用基于块匹配的视差估计算法,求出左视到右视以及右视到左视的两幅视差图;然后依据这两幅视差图分别合成初步的中间视图;最后对合成的视图进行空洞填充,得到最终结果。本发明针对左右视图由水平线上摄像机组拍摄,只具有水平方向视差的特点,只在水平方向进行搜索,减少了计算量,降低了算法运行时间;实验结果表明,采用本发明在视图前景距离摄像机较远或图像灰度变化平缓的情况下能得到良好的合成结果。
申请公布号 CN102075779B 申请公布日期 2013.05.08
申请号 CN201110041538.3 申请日期 2011.02.21
申请人 北京航空航天大学 发明人 祝世平;于洋
分类号 H04N13/00(2006.01)I;H04N15/00(2006.01)I 主分类号 H04N13/00(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 成金玉
主权项 一种基于块匹配视差估计的中间视图合成方法,其特征在于实现步骤如下:(1)输入拍摄自同一场景,同一时刻,摄像机位于同一水平高度的左右两幅图像,要求这两幅图像仅在拍摄视角上存在差异;(2)若两幅输入图像为彩色图像,则分别将其转化为灰度图像;若两幅输入图像为灰度图像,则执行步骤(3);(3)判断两幅输入图像尺寸是否相同,若不同,提示错误并跳出;若相同,执行步骤(4);(4)以右视图为目标图像,左视图为参考图像,将目标图像分为固定大小的块,在参考图像中逐个分别搜索与目标图像中每个块最相近的块,计算出每个目标图像块与参考图像中匹配块之间的位移矢量dLR,即为左视图到右视图中的块视差;再以左视图为目标图像,右视图为参考图像,重复步骤(4)求出右视图到左视图中的块视差dRL;(5)根据步骤(4)中求出的左视图到右视图的块视差dLR,利用双目视觉视差原理,求出经过初步视点合成后基于左视图到右视图块视差的中间视图IML,其中上标M代表中间视图,下标L代表左视图到右视图,根据步骤(4)中求出的右视图到左视图的块视差dRL,同理求出经过初步视点合成后基于右视图到左视图块视差的中间视图IMR,其中下标R代表右视图到左视图;(6)对于步骤(5)中求出的IML与IMR这两个初步合成的中间视图,针对其中每一个像素,在左视图和右视图中逐个寻找IML与IMR中每个像素的最佳匹配点IL(xL,y)和IR(xR,y),其中IL和IR代表左视图和右视图中的像素点灰度值,(x,y)代表像素点的坐标,xL和xR分别代表在左视图和右视图中找到的最佳匹配点的横坐标值,由于双目摄像机处于同一水平高度,所以在左视图和右视图中找到的最佳匹配点的纵坐标值相等,用y表示,并依据最佳匹配点的加权对IML与IMR进行空洞填充,即使用灰度值填补IML与IMR中没有映射到的空白区域,最终得到中间视图合成的结果IM;所述步骤(4)中的具体实现如下:(ⅰ)对参考图像进行扩边处理,在参考图像的左侧和右侧分别增加k个像素单位,k须满足包含所有双目视图中只存在于一幅视图的场景内容,并令这些像素的灰度值为0,将增补的边缘置为黑色;(ⅱ)将目标图像分为M×N的块,其中M为每块宽度,N为长度;(ⅲ)求出目标图像与参考图像对应位置块的SAD,作为搜索时用于比较的初始值,其中块的大小为M×N,左上角坐标为(m,n)的目标图像中的块与左上角坐标为(p,q)的参考图像块之间的绝对值误差和SAD为: <mrow> <mi>SAD</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>,</mo> <mi>p</mi> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <mo>|</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>n</mi> <mo>+</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>p</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>q</mi> <mo>+</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow>其中,(m,n)为目标图像中块左上角的像素点坐标,(p,q)为参考图像中左上角的像素点坐标,I1、I2分别为目标图像和参考图像在某一坐标点的灰度值;i分别取从0到M‑1之间的整数;j分别取从0到N‑1之间的整数;(ⅳ)在参考图像中,将搜索起点设置为目标图像块的左上角坐标(m,n),在横坐标区间为(m‑60,m+60)范围内进行匹配,求出每个匹配位置与待匹配目标图像块间的SAD,使SAD值取得最小的参考图像对应位置即为最佳匹配块,并保留这个SAD最小值;(ⅴ)将搜索到的最佳匹配块位置记录下来,并求出目标块与最佳匹配块之间的位移矢量d,其中d(i,j)=(m‑p,n‑q),即视差;(ⅵ)如果接受匹配的是目标图像中位于右下角的块,不包括增补的边缘,即左上角坐标为(X+60‑M,Y+60‑N),则结束匹配;否则,找到下一个待匹配的目标图像块,返回步骤(ⅲ);(ⅴ)将以块为单位的视差扩展至以像素为单位,即d(i×M+m,j×N+n)=d(i,j),其中m∈[0,M‑1],n∈[0,N‑1],以左视图为参考图像,右视图为目标图像,计算出左视图到右视图的块视差dLR;再以右视图为参考图像,左视图为目标图像,计算出右视图到左视图的块视差dRL;所述步骤(5)中利用双目视觉视差原理求出初步视点合成得到的中间视图的方法如下:位于同一水平高度的两个摄像机,同时对场景进行拍摄,根据双目视差原理,有:xR=xL+dLR(x,y)IR(x,y)=IL(x+dLR(x,y),y)其中,xL为左视图一点在摄像机坐标系中的横坐标,以像素为单位;xR为该点在右视图中对应点的横坐标;dLR为以左视图为参考图像,右视图为目标图像求出的视差值,虚拟视角的合成用如下亮度加权获得:IM(xL,y)=(1‑α)IL(xL,y)+αIR(xR,y)设α为位置参数,令α=0为左视图所在位置,α=1为右视图所在位置,则α在(0,1)区间内可以代表原始视图间直线,即基线上任意位置,而待合成的中间视图与左右原始视图之 间关系表示为:xM=xL+αdLR(x,y)=xR+(1‑α)dRL(x,y)将以上关系代入加权公式可以分别得到用dLR和dRL求出的IML与IMR如下:IML(xL+αdLR,y)=(1‑α)IL(xL,y)+αIR(xL+dLR,y)IMR(xR+(1‑α)dRL,y)=(1‑α)IL(xR+dRL,y)+αIR(xR,y)其中,IML和IMR为初步视点合成得到的中间视图;IL和IR分别为左右原始视图;xL和xR均可遍历整幅图像;所述步骤(6)具体实现如下:(ⅰ)求出左视图到右视图的视差图dLR中的最大值dLRmax;(ⅱ)求出函数gL(x)=|xI‑(x+αdRL(x,y))|在x∈[xI‑αdRLmax,xI+αdRLmax]区间内的最小值min(gL(x))=gL(xL),并保存使gL(x)取得最小的x值,记为xL,其中,xI为中间视图中点的横坐标,取值为xI∈[0,图像宽度‑1];(ⅲ)求出右视图到左视图的视差图dRL中的最大值dRLmax;(ⅳ)求出判定函数gR(x)=|xI‑(x+αdRL(x,y))|在x∈[xI‑αdRL,xI+αdRL]区间内的最小值min(gR(x))=gR(xR),并保存xR;(ⅴ)按照亮度加权公式IM(x,y)=(1‑α)IL(xL,y)+αIR(xR,y),最终得到中间视图合成的结果IM。
地址 100190 北京市海淀区学院路37号