发明名称 一种基于卷积神经网络的双目立体匹配方法
摘要 本发明公开了一种基于卷积神经网络的双目立体匹配方法。本发明首先采用了两个卷积神经子网络对待匹配图像小块进行特征提取,通过卷积神经网络的自动学能力,能够自动提取出健壮、多样的特征,避免了传统立体匹配方法的复杂的特征选择和人工抽取特征的过程。然后将它们的输出特征进行级联送入到全连接层进行匹配代价计算,获得了比传统立体匹配方法更好的匹配代价,结合视差的后处理方法,可有效获得高精度的视差图,并具有较好的实时性。
申请公布号 CN105956597A 申请公布日期 2016.09.21
申请号 CN201610296770.4 申请日期 2016.05.04
申请人 浙江大学 发明人 刘云海;白鹏
分类号 G06K9/46(2006.01)I;G06K9/62(2006.01)I;G06N3/08(2006.01)I 主分类号 G06K9/46(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 邱启旺
主权项 一种基于卷积神经网络的双目立体匹配方法,其特征在于,包括以下步骤:(1)图像预处理。对带有参考视差图的立体图像对的左图和右图分别做Z‑score标准化处理。(2)构造训练实例。从预处理后的左图选取中心在p=(x,y)、大小为n×n的一小块图像<img file="FDA0000981387670000011.GIF" wi="206" he="62" />从预处理后的右图选取中心在q=(x‑d,y)、大小为n×n的一小块图像<img file="FDA0000981387670000012.GIF" wi="398" he="63" />和<img file="FDA0000981387670000013.GIF" wi="174" he="64" />构成一个训练实例:<img file="FDA0000981387670000014.GIF" wi="399" he="63" />对于左图每个知道参考视差值d的位置,抽取一个正确的训练实例和一个错误的训练实例。为了获得一个正确的训练实例,将右小块图像<img file="FDA0000981387670000015.GIF" wi="177" he="63" />的中心设置在:q=(x‑d+o<sub>pos</sub>,y)其中o<sub>pos</sub>在[‑dataset_pos,dataset_pos]中随机取值,dataset_pos为正整数。为了获得一个错误的训练实例,将右小块图像<img file="FDA0000981387670000016.GIF" wi="171" he="62" />的中心设置在:q=(x‑d+o<sub>neg</sub>,y)其中o<sub>neg</sub>在[‑dataset_neg_low,‑dataset_neg_high]或[dataset_neg_low,dataset_neg_high]中随机取值。dataset_neg_low和dataset_neg_high均为正整数。(3)构造用于计算匹配代价的卷积神经网络结构。首先构造两个完全一样的子网络,每个子网络由两个卷积层和一个全连接层,每层后面跟随一个ReLU层。然后将两个子网络的输出级联起来,接两个全连接层,每层后面接一个ReLU层,最后一个全连接层跟随一个sigmoid转移函数。对于每一个输入<img file="FDA0000981387670000017.GIF" wi="419" he="63" />网络的输出表示为<img file="FDA0000981387670000018.GIF" wi="491" he="63" />(4)训练网络。根据步骤(2),每次构造N/2个正确的训练实例和N/2个错误的训练实例,将其用于步骤(3)构造的网络进行有监督的反向传播算法训练,得到训练网络,N为训练集个数。(5)求视差图。从测试集中取一组立体图像对,进行步骤(1)的预处理。运用步骤(4)训练出来的网络,对于左图中每一个位置p=(x,y),计算其与右图在位置q=(x‑d,y)的匹配代价C<sub>CNN</sub>(p,d),其中d∈(0,DISP_MAX)(DISP_MAX表示可能的最大视差值),得到:<img file="FDA0000981387670000019.GIF" wi="790" he="63" />对于左图中的每一个位置p=(x,y),上式中的匹配代价取最小时的位置d即为所求视差D(p):<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>D</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><munder><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow><mi>d</mi></munder><msub><mi>C</mi><mrow><mi>C</mi><mi>N</mi><mi>N</mi></mrow></msub><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>d</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA00009813876700000110.GIF" wi="574" he="80" /></maths>(6)对视差图进行后处理。具体包括以下子步骤:(6.1)亚像素视差。根据步骤(5)求出的匹配代价构造一条二次曲线,取极值点得到亚像素视差图D<sub>SE</sub>(p):<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>D</mi><mrow><mi>S</mi><mi>E</mi></mrow></msub><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mi>d</mi><mo>-</mo><mfrac><mrow><msub><mi>C</mi><mo>+</mo></msub><mo>-</mo><msub><mi>C</mi><mo>-</mo></msub></mrow><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>C</mi><mo>+</mo></msub><mo>-</mo><mn>2</mn><mi>C</mi><mo>+</mo><msub><mi>C</mi><mo>-</mo></msub><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow>]]></math><img file="FDA0000981387670000021.GIF" wi="549" he="95" /></maths>其中d=D(p),C_=C<sub>CNN</sub>(p,d‑1),C=C<sub>CNN</sub>(p,d),C<sub>+</sub>=C<sub>CNN</sub>(p,d+1);(6.2)对亚像素视差图D<sub>SE</sub>(p)进行中值滤波和双线性滤波,得到最终的视差图D<sub>final</sub>(p)。
地址 310027 浙江省杭州市西湖区浙大路38号