发明名称 一种基于分块投影的DIBR方法
摘要 本发明公开了一种基于分块投影的DIBR方法,首先,获取参考视点的彩色图像、深度图和两个视点的摄像机几何参数;其次,将参考图像分成若干的分块区域,并对每个分块区域进行投影变换;最后,将目标视点图像中各分块区域整合,并修复空洞,以得到最终的目标视点图像。不难发现,该方法并没有直接利用逐点进行视点变换来生成新视点,因而有效避免了目标视点图像受深度图连续性的影响。利用仿真实验和实际数据比较了传统方法和基于分块投影的DIBR方法之间的性能,验证了该方法的有效性,提高了目标视点绘制的质量,并降低了传输带宽。
申请公布号 CN103945209B 申请公布日期 2016.01.06
申请号 CN201410175458.0 申请日期 2014.04.28
申请人 华南理工大学 发明人 吴军政;孙季丰;李万益
分类号 H04N13/00(2006.01)I 主分类号 H04N13/00(2006.01)I
代理机构 广州市华学知识产权代理有限公司 44245 代理人 蔡茂略
主权项 一种基于分块投影的DIBR方法,其特征在于:首先,获取参考视点的彩色图像、深度图和两个视点的摄像机几何参数;其次,将参考图像分成若干的分块区域,并对每个分块区域进行投影变换;最后,将目标视点图像中各分块区域整合,并修复空洞,以得到最终的目标视点图像;其包括以下步骤:1)获取参考视点图像及对应的深度图,以及目标视点的深度图;2)将参考图像分成若干分块区域,并近似作平面处理,以用于单应变换模型;3)针对各分块区域,利用视点变换方程求取对应点对;4)计算出各分块区域的单应矩阵,然后作单应变换,最后将各分块投影区域进行整合,并进行空洞修补得到最终的目标视点图像;其中,所述单应变换的原理为:空间平面在两个摄像机下的图像点具有一一对应的关系,且这种对应关系是齐次线性的,可由一个三阶矩阵即单应矩阵来描述:m′=H<sub>ij</sub>m;矩阵H<sub>ij</sub>称为单应矩阵,它是齐次的,有8个自由度,如下所示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>H</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = '[' close = ']'><mtable><mtr><mtd><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><msub><mi>b</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><msub><mi>c</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>d</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><msub><mi>e</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><msub><mi>f</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>g</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><msub><mi>h</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000803028380000011.GIF" wi="472" he="300" /></maths>记参考视点图像中的一个像素点的齐次坐标为m=[u,v,1]<sup>T</sup>,虚拟视点图像中的一个像素点的齐次坐标为m′=[u′,v′,1]<sup>T</sup>,则可推导出:<maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>ua</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>vb</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>c</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>-</mo><msup><mi>u</mi><mo>&prime;</mo></msup><msub><mi>ug</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>-</mo><msup><mi>u</mi><mo>&prime;</mo></msup><msub><mi>vh</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><msup><mi>u</mi><mo>&prime;</mo></msup></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>ud</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>ve</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>+</mo><msub><mi>f</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>-</mo><msup><mi>u</mi><mo>&prime;</mo></msup><msub><mi>vg</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>-</mo><msup><mi>v</mi><mo>&prime;</mo></msup><msub><mi>vh</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><msup><mi>v</mi><mo>&prime;</mo></msup></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000803028380000012.GIF" wi="658" he="172" /></maths>由于矩阵H<sub>ij</sub>有8个自由度,而一个对应点对只能建立如上两个方程,因此要求解含8个未知数的方程组至少需要8个方程,也就是至少要有4个对应点对,而这些对应点对可以利用相应的深度信息进行视点变换来获得;在某分块区域内不妨取4个对应点对m<sub>k</sub>、m′<sub>k</sub>(k=1,2,3,4),则由上式可以推导出一个非齐次线性方程组:A<sub>ij</sub>X<sub>ij</sub>=Y<sub>ij</sub>其中,i、j分别表示分块区域所在的行、列下标,常数项向量Y<sub>ij</sub>=[u′<sub>1</sub>,v′<sub>1</sub>,...,u′<sub>4</sub>,v′<sub>4</sub>]<sup>T</sup>,未知数向量X<sub>ij</sub>=[a<sub>ij</sub>,b<sub>ij</sub>,...,g<sub>ij</sub>,h<sub>ij</sub>]<sup>T</sup>,系数矩阵A<sub>(8×8)</sub>如下所示:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>A</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>u</mi><mn>1</mn></msub></mtd><mtd><msub><mi>v</mi><mn>1</mn></msub></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>u</mi><mn>1</mn></msub><msubsup><mi>u</mi><mn>1</mn><mo>&prime;</mo></msubsup></mrow></mtd><mtd><mrow><mo>-</mo><msubsup><mi>u</mi><mn>1</mn><mo>&prime;</mo></msubsup><msub><mi>v</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mn>1</mn></msub></mtd><mtd><msub><mi>v</mi><mn>1</mn></msub></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>u</mi><mn>1</mn></msub><msubsup><mi>v</mi><mn>1</mn><mo>&prime;</mo></msubsup></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>v</mi><mn>1</mn></msub><msubsup><mi>v</mi><mn>1</mn><mo>&prime;</mo></msubsup></mrow></mtd></mtr><mtr><mtd><mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow></mrow></mtd><mtd><mo>...</mo></mtd></mtr><mtr><mtd><msub><mi>u</mi><mn>4</mn></msub></mtd><mtd><msub><mi>v</mi><mn>4</mn></msub></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>u</mi><mn>4</mn></msub><msubsup><mi>u</mi><mn>4</mn><mo>&prime;</mo></msubsup></mrow></mtd><mtd><mrow><mo>-</mo><msubsup><mi>u</mi><mn>4</mn><mo>&prime;</mo></msubsup><msub><mi>v</mi><mn>4</mn></msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mn>4</mn></msub></mtd><mtd><msub><mi>v</mi><mn>4</mn></msub></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>u</mi><mn>4</mn></msub><msubsup><mi>v</mi><mn>4</mn><mo>&prime;</mo></msubsup></mrow></mtd><mtd><mrow><mo>-</mo><msub><mi>v</mi><mn>4</mn></msub><msubsup><mi>v</mi><mn>4</mn><mo>&prime;</mo></msubsup></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000803028380000021.GIF" wi="967" he="385" /></maths>由非齐次线性方程组的解理论可知,上式具有唯一解,当且仅当系数矩阵的秩满足<img file="FDA0000803028380000023.GIF" wi="463" he="97" />具体操作时,可分别在各分块区域取顶点位置附近的像素点,另外,也可通过多取几个对应点对来减小计算误差;若成功求得单应矩阵H<sub>ij</sub>,则直接对分块区域中的每个像素点做单应变换,即可一一映射到目标视点的图像平面坐标系中,初步绘制出目标视点图像的对应区域;若无法计算单应矩阵,则取与之相邻的分块区域的单应矩阵H<sub>ij</sub>,然后对分块区域进行单应变换,其依据是:目标视点的空洞区域往往出现在从背景对象到前景对象深度剧烈变化的过度区域,而实际上过度区域同属于平坦的背景区域,因此可视为具有相近深度的同一平面,其效果就是将参考视点中的背景像素点填充到了目标视点中的空洞区域,平滑的具体原则:考虑用一个右眼视点及其深度图来绘制一个左眼视点图像,显然,空洞会出现在前景对象的左侧区域,即在水平方向上深度值由低到高剧变的区域:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>L</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mn>1</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>d</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>-</mo><mi>d</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>&theta;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><mi>e</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000803028380000022.GIF" wi="956" he="162" /></maths>因此,在这种情况下应选择与之左邻的分块区域来平滑;同理,当以左眼视点来绘制右眼视点时,应选择与之右邻的分块区域来平滑;将上述步骤绘制出的各目标视点图像区域进行简单的融合,并采用邻域插值法修复残留的空洞区域,获得最终的目标视点图像。
地址 510640 广东省广州市天河区五山路381号