发明名称 一种超像素级别的图像全局匹配方法
摘要 一种超像素级别的图像全局匹配方法,由双目立体摄像机获取经过极线矫正的输入图像对,通过为图像对的每个像素计算自适应架来得到当前像素的自适应窗,并为其计算匹配代价,结合一种替换策略处理遮掩区域和一种次优策略处理图像边界;为图像创建超像素,对每块超像素区域的视差值进行平面拟合,确定可靠像素,并删除明显的错误平面以确定初始视差平面集;根据已经得到像素匹配代价来计算超像素的匹配代价,构建数据项与平滑项,利用Graph‑Cut最优化算法对能量方程进行不断迭代,获取最终视差平面。本发明能有效避免在弱纹理区域、视差不连续区域以及遮挡区域容易产生的图像噪声、失真或像素值异常等情况,且鲁棒性良好,能获取更加接近真实场景的深度信息。
申请公布号 CN104318576B 申请公布日期 2017.04.12
申请号 CN201410618019.2 申请日期 2014.11.05
申请人 浙江工业大学 发明人 刘盛;张少波;金海强;郑焕彰;汪晓妍;陈胜勇
分类号 G06T7/38(2017.01)I 主分类号 G06T7/38(2017.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种超像素级别的图像全局匹配方法,其特征在于:所述匹配方法包括如下步骤:1)、利用标定板对双目摄像机进行标定并获取立体图像对;2)、过分割处理,将输入图像对分别分解成颜色或灰度均匀区域,并假定在这些区域中视差值平滑过渡,且视差不连续现象只出现在区域边界上;3)、为立体图像对中每个像素计算它的自适应十字架,四元组<img file="FDA0001159457320000011.GIF" wi="302" he="71" />表示像素的左臂长、右臂长、上臂长和下臂长;以计算<img file="FDA0001159457320000012.GIF" wi="51" he="63" />为例,对位于像素p左侧水平线上的一组连续的像素进行颜色相似度计算,p<sub>i</sub>=(x<sub>p</sub>‑i,y<sub>p</sub>),表示像素p左侧水平线上第i个元素,i从1递增到L,L是预先设定的最大臂长,它负责控制像素p的最大匹配窗大小;当<img file="FDA0001159457320000013.GIF" wi="534" he="82" />时,i停止递增,令<img file="FDA0001159457320000014.GIF" wi="203" he="61" />否则,令<img file="FDA0001159457320000015.GIF" wi="211" he="63" />同理,可得到<img file="FDA0001159457320000016.GIF" wi="267" he="70" />I<sub>c</sub>表示对应颜色分量的强度值,τ为控制颜色相似性的置信度;根据已有的四元组<img file="FDA0001159457320000017.GIF" wi="326" he="71" />为像素p计算得到它的H(p)和V(p),H(p)表示像素p在它的水平线上的积分,V(p)表示像素p在它的垂直线上的积分;<maths num="0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>H</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>&Element;</mo><mo>&lsqb;</mo><msub><mi>x</mi><mi>p</mi></msub><mo>-</mo><msubsup><mi>h</mi><mi>p</mi><mo>-</mo></msubsup><mo>,</mo><msub><mi>x</mi><mi>p</mi></msub><mo>+</mo><msubsup><mi>h</mi><mi>p</mi><mo>+</mo></msubsup><mo>&rsqb;</mo><mo>,</mo><mi>y</mi><mo>=</mo><msub><mi>y</mi><mi>p</mi></msub><mo>}</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi>V</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mi>x</mi><mo>=</mo><msub><mi>x</mi><mi>p</mi></msub><mo>,</mo><mi>y</mi><mo>&Element;</mo><mo>&lsqb;</mo><msub><mi>y</mi><mi>p</mi></msub><mo>-</mo><msubsup><mi>v</mi><mi>p</mi><mo>-</mo></msubsup><mo>,</mo><msub><mi>y</mi><mi>p</mi></msub><mo>+</mo><msubsup><mi>v</mi><mi>p</mi><mo>+</mo></msubsup><mo>&rsqb;</mo><mo>}</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3.1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000018.GIF" wi="1430" he="195" /></maths>H(p)和V(p)共同决定了像素p的自适应十字架;4)、根据自适应十字架为每个像素评估它的自适应匹配窗,根据已经计算得到的自适应十字架,为每个像素p构造一个自适应匹配窗口U(p),构建匹配窗U(p)的关键步骤是沿着像素p的垂直分割块V(p)滑动,对多个水平分割块H(q)做一个区域积分操作:<maths num="0002"><math><![CDATA[<mrow><mi>U</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi></mi><mo>&cup;</mo></mrow><mrow><mi>q</mi><mo>&Element;</mo><mi>V</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></munder><mi>H</mi><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000019.GIF" wi="1014" he="103" /></maths>其中,q是一个位于像素p在它的垂直线上的积分V(p)上的像素;5)、利用自适应匹配窗获取匹配代价分别计算左图像素p的自适应匹配窗U(p)以及右图像素p'的自适应匹配窗U'(p'),其中,左图中拥有视差d的像素p=(x<sub>p</sub>,y<sub>p</sub>)在右图中找到对应像素p'=(x<sub>p</sub>‑d,y<sub>p</sub>),像素p和像素p'之间的匹配代价计算公式如下,<maths num="0003"><math><![CDATA[<mrow><msub><mi>C</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><mo>|</mo><msub><mi>U</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow></mfrac><mo>*</mo><munder><mo>&Sigma;</mo><mrow><mi>t</mi><mo>&Element;</mo><msub><mi>U</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow></munder><msub><mi>e</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>*</mo><mrow><mo>(</mo><mi>l</mi><mi>o</mi><mi>g</mi><mi>&theta;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00011594573200000110.GIF" wi="1230" he="135" /></maths>式中,U<sub>d</sub>(p)={(x,y)|(x,y)∈U(p),(x‑d,y)∈U'(p')},<img file="FDA00011594573200000111.GIF" wi="278" he="155" />e<sub>d</sub>(t)表示拥有视差d的像素t的未加工匹配代价,U<sub>d</sub>(p)是仅包含有效像素的联合匹配窗;||U<sub>d</sub>(p)||表示U<sub>d</sub>(p)中像素的数量,它被用于规格化已聚类完成的匹配代价<img file="FDA0001159457320000021.GIF" wi="254" he="119" />利用对应像素对,计算未加工匹配代价,当视差为d时,左图中t与右图中t′之间的匹配代价计算公式如下:<maths num="0004"><math><![CDATA[<mrow><msub><mi>e</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>m</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><munder><mo>&Sigma;</mo><mrow><mi>c</mi><mo>&Element;</mo><mo>{</mo><mi>R</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>B</mi><mo>}</mo></mrow></munder><mo>|</mo><msub><mi>I</mi><mi>c</mi></msub><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msubsup><mi>I</mi><mi>c</mi><mo>&prime;</mo></msubsup><mrow><mo>(</mo><msup><mi>t</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>|</mo><mo>,</mo><mi>T</mi><mo>)</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5.2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000022.GIF" wi="1275" he="150" /></maths>其中,T控制了匹配代价的截断上限,I<sub>c</sub>(t)表示t像素对应颜色分量c的颜色值,I<sub>c</sub>'(t')表示像素t′对应颜色分量c的颜色值;6)、通过处理遮挡区域和图像边界来优化匹配代价d(p)表示左图中像素p=(x<sub>p</sub>,y<sub>p</sub>)的视差,同时d′(p′)表示右图中像素p'=(x<sub>p</sub>‑d(p),y<sub>p</sub>)的视差,假如d(p)、d′(p′)和d(p″)同时满足条件d(p)>d'(p')和d'(p')≤d(p”),其中p”=(x<sub>p</sub>‑d(p)+d'(p'),y<sub>p</sub>),运用这样一个替换策略:用右图中像素p′的匹配代价替换原来左图中像素p的匹配代价;当(x<sub>p</sub>‑d(p))<1时,对应像素p′将位于右图的外侧,这就意味着我们不能利用对应像素来获取匹配代价C<sub>d</sub>(p),转而寻找一种次优的匹配代价C<sub>d^</sub>(p),<maths num="0005"><math><![CDATA[<mrow><msup><mi>d</mi><mo>^</mo></msup><mo>=</mo><munder><mrow><mi>arg</mi><mi> </mi><mi>min</mi></mrow><mrow><mi>d</mi><mo>&Element;</mo><mo>&lsqb;</mo><msub><mi>d</mi><mi>min</mi></msub><mo>,</mo><msub><mi>d</mi><mi>max</mi></msub><mo>&rsqb;</mo><mo>,</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>d</mi></msub><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>&gt;</mo><mn>0</mn><mo>,</mo><mi>d</mi><mo>&NotEqual;</mo><msup><mi>d</mi><mo>*</mo></msup></mrow></munder><msub><mi>C</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6.1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000023.GIF" wi="1206" he="103" /></maths>其中,d<sup>^</sup>表示次优标记,d<sup>*</sup>表示最优标记,它们的计算公式如下:<maths num="0006"><math><![CDATA[<mrow><msup><mi>d</mi><mo>*</mo></msup><mo>=</mo><munder><mrow><mi>arg</mi><mi> </mi><mi>min</mi></mrow><mrow><mi>d</mi><mo>&Element;</mo><mo>&lsqb;</mo><msub><mi>d</mi><mi>min</mi></msub><mo>,</mo><msub><mi>d</mi><mi>max</mi></msub><mo>&rsqb;</mo><mo>,</mo><mrow><mo>(</mo><msub><mi>x</mi><mi>d</mi></msub><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>&gt;</mo><mn>0</mn></mrow></munder><msub><mi>C</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6.2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000024.GIF" wi="1196" he="102" /></maths>最后,当(x<sub>p</sub>‑d(p))<1时,用C<sub>d^</sub>(p)表示像素p的匹配代价;7)、确定初始平面集,视差平面可以用三个参数a,b,c来表征,共同决定图中某个像素p(x,y)的视差d=ax+by+c,采用三元组P{a,b,c}来表示视差平面;8)、计算超像素的匹配代价根据得到的像素级别的匹配代价来计算超像素级别的匹配代价,像素级别匹配代价指的是像素p(x,y)当它取视差d时对应的匹配代价C<sub>d</sub>(p),而超像素级别匹配代价指的是超像素S取视差平面P{a,b,c}时所得到的匹配代价C<sub>s</sub>(P);先对每块超像素做一个可靠性判断,如果通过它拟合出来的视差平面是错误的,那么就认定这块超像素是不可靠的;反之,则认为它是可靠的,当超像素是可靠时,它的匹配代价计算公式如下:<maths num="0007"><math><![CDATA[<mrow><msub><mi>C</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>p</mi><mo>&Element;</mo><mi>S</mi><mo>-</mo><mi>O</mi></mrow></munder><msub><mi>C</mi><mrow><mi>ax</mi><mo>+</mo><mi>by</mi><mo>+</mo><mi>c</mi></mrow></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8.1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000025.GIF" wi="1158" he="109" /></maths>其中O表示超像素S中被遮挡像素的集合,当超像素是不可靠时,它的匹配代价计算公式如下:<maths num="0008"><math><![CDATA[<mrow><msub><mi>C</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>p</mi><mo>&Element;</mo><mi>S</mi><mo>-</mo><mi>O</mi><mo>+</mo><mi>U</mi></mrow></munder><msub><mi>C</mi><mrow><mi>ax</mi><mo>+</mo><mi>by</mi><mo>+</mo><mi>c</mi></mrow></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8.2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000026.GIF" wi="1205" he="110" /></maths>其中U表示经过修复的像素集合;9)、构造数据项有了超像素的匹配代价后,就能找到一个唯一标签f,给每块超像素S∈R一个对应的视差平面f(S)∈D,R是指输入图像的超像素集合,D表示视差平面集合,数据项E<sub>data</sub>(f)是一个可靠像素匹配代价的集合,它的构造公式如下:<maths num="0009"><math><![CDATA[<mrow><msub><mi>E</mi><mrow><mi>d</mi><mi>a</mi><mi>t</mi><mi>a</mi></mrow></msub><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow><mo>=</mo><munder><mo>&Sigma;</mo><mrow><mi>S</mi><mo>&Element;</mo><mi>R</mi></mrow></munder><msub><mi>C</mi><mi>S</mi></msub><mrow><mo>(</mo><mi>f</mi><mo>(</mo><mi>S</mi><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000031.GIF" wi="1068" he="103" /></maths>10)、构造平滑项用超像素内的所有像素颜色信息的平均值来表征这块超像素的颜色信息,平滑项E<sub>smooth</sub>(f)的构造公式如下:<maths num="0010"><math><![CDATA[<mrow><msub><mi>E</mi><mrow><mi>s</mi><mi>m</mi><mi>o</mi><mi>o</mi><mi>t</mi><mi>h</mi></mrow></msub><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow><mo>=</mo><munder><mo>&Sigma;</mo><mrow><mo>&ForAll;</mo><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>&Element;</mo><msub><mi>S</mi><mi>N</mi></msub><mo>|</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&NotEqual;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></munder><mi>C</mi><mi>o</mi><mi>l</mi><mi>o</mi><mi>r</mi><mi>D</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>P</mi><mi>l</mi><mi>a</mi><mi>n</mi><mi>e</mi><mi>D</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>*</mo><mi>C</mi><mi>o</mi><mi>m</mi><mi>m</mi><mi>o</mi><mi>n</mi><mi>B</mi><mrow><mo>(</mo><msub><mi>S</mi><mi>i</mi></msub><mo>,</mo><msub><mi>S</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001159457320000032.GIF" wi="1677" he="127" /></maths>其中,S<sub>N</sub>表示输入图内所有相邻超像素的集合,ColorD(S<sub>i</sub>,S<sub>j</sub>)表示相邻超像素间的颜色差异,即求相邻超像素在RGB颜色空间上的欧式距离;PlaneD(S<sub>i</sub>,S<sub>j</sub>)表示相邻超像素间的视差平面差异,即求{a,b,c}平面空间上的欧式距离;CommonD(S<sub>i</sub>,S<sub>j</sub>)表示相邻超像素间共同边界的长度;11)、利用Graph‑Cut最优化算法对能量方程进行能量最小化,能量方程包含数据项和平滑项,获得最终视差信息。
地址 310014 浙江省杭州市下城区朝晖六区潮王路18号