发明名称 一种基于稀疏表示的立体测距方法
摘要 本发明公开了一种基于稀疏表示的立体测距方法,采用双目摄像机系统获取远距离同一场景下的目标物体图像,其中目标物体自身的深度变化相对于拍摄距离可以忽略不计:进行双目摄像机远距离标定,采集图像并作极限校正;分别检测左右图像目标进行特征增强,投影得两个一维信号,求出整像素视差;利用数字分数延时器,将一个信号在频域扩展成一个过完备原子库,再对另一个信号的相频信号实现稀疏分解并由分解系数求取亚像素视差;结合整像素视差和亚像素视差,由立体视觉原理,求得目标物体的深度信息。本发明通过求取亚像素级精度的视差实现远距离目标测距,精度高;扩展得到的过完备原子库,针对性较高,简化运算,执行速度快。
申请公布号 CN102607510B 申请公布日期 2014.01.29
申请号 CN201210009372.1 申请日期 2012.01.12
申请人 浙江大学 发明人 于慧敏;王一叶
分类号 G01C3/00(2006.01)I 主分类号 G01C3/00(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 张法高
主权项 一种基于稀疏表示的立体测距方法,其特征在于它的步骤如下1)图像预处理对两摄像机的光轴进行平行和等高标定,采用张正友标定法,得到基线、焦距、径向畸变参数、切向畸变参数、光心成像坐标、旋转变换矩阵、平移变换矩阵这些摄像机内外参数,并对图像进行极限校正,对校正后的图像进行目标检测,提取图像中感兴趣的目标;2)增强目标特征根据目标检测结果对目标区域进行直方图均衡化,对直方图均衡化后的区域进行边缘检测,提取目标区域部分图像的高频特征,将目标检测结果和边缘检测结果进行加权融合,保留目标的高、低频信息,滤除光照和摄像机特性引起的图像噪声影响;3)整像素视差的求取针对上述融合图,将左右视图在垂直方向上对像素灰度值进行累加,得到两个空间域上的一维信号sig1和sig2;针对这两个信号,做类似于互相关算法的运算,经全局匹配,得到最佳Δn,满足最大化E[Δn]=∑sig2[n+Δn]×sig1[n],Δn即为整像素视差Dis;4)建立过完备原子库根据整像素视差Dis,将一维信号sig1进行平移得sig1'[n]=sig1[n‑Δn];此时的sig1'和一维信号sig2在理想情况下只相差亚像素级的视差,即sig1'[n]=sig1'(nT)=sig2(nT‑Δt),|Δt|<T,其中T是信号采样间隔;分别对sig1'和一维信号sig2进行FFT变换把空间域一维信号变换成频域的幅频信号和相频信号,令SIG1=FFT(sig1'),SIG2=FFT(sig2),则有SIG1(ejω)=e‑jωΔt/T×SIG2(ejω),|ω|<π,|Δt|<T由上式可得:|SIG1(ejω)|=|SIG2(ejω)|,|Δt|<T,令左右一维信号的相频特性分别为φsig1和φsig2;让空间域一维信号sig2通过一组数字分数延时器,延时器的频率响应如下:Hd(jω)=e‑jωiΔt/T,|ω|<π,Nt×Δt=T,‑Nt/2≤i<Nt/2得到一系列响应,取FFT变换后的相频信号为过完备原子库的原子:LibSigi=φ(SIG2(ejω))‑ω(i‑Nt/2)/Nt,|ω|<π,Nt×Δt=T,0≤i<Nt=φ(SIG2(ejω))‑π×n×(i‑Nt/2)/(N×Nt)其中0≤n<N,Nt×Δt=T,0≤i<Nt,Nt为原子个数,N为信号长度,且满足Nt>>N,将LibSigi的值限定在0~2π以内;5)信号的稀疏分解采用匹配跟踪算法实现信号的稀疏分解:将步骤4)中的原子组合成集合D={LibSigi,0≤i<Nt},即为φsig2扩展生成的过完备原子库,且满足Nt>>N;对于信号φsig1,匹配跟踪首先从过完备原子库中选择最为匹配的一个,即满足 <mrow> <mo>|</mo> <mo>&lt;</mo> <mi>&phi;sig</mi> <mn>1</mn> <mo>,</mo> <msub> <mi>LibSig</mi> <mrow> <mi>i</mi> <mn>0</mn> </mrow> </msub> <mo>></mo> <mo>|</mo> <mo>=</mo> <munder> <mi>max</mi> <mrow> <mn>0</mn> <mo>&le;</mo> <mi>i</mi> <mo>&lt;</mo> <msub> <mi>N</mi> <mi>t</mi> </msub> </mrow> </munder> <mo>|</mo> <mo>&lt;</mo> <mi>&phi;sig</mi> <mn>1</mn> <mo>,</mo> <mi>Lib</mi> <msub> <mi>Sig</mi> <mi>i</mi> </msub> <mo>></mo> <mo>|</mo> </mrow>这样信号φsig1就可以分解为如下形式:φsig1=<φsig1,LibSigi0>LibSigi0+R1φsig1继续上述分解过程进行迭代运算直至n阶,得到: <mrow> <mi>&phi;sig</mi> <mn>1</mn> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mo>&lt;</mo> <msup> <mi>R</mi> <mi>k</mi> </msup> <mi>&phi;sig</mi> <mn>1</mn> <mo>,</mo> <msub> <mi>LibSig</mi> <mi>ik</mi> </msub> <mo>></mo> <msub> <mi>LibSig</mi> <mi>ik</mi> </msub> <mo>+</mo> <msup> <mi>R</mi> <mi>n</mi> </msup> <mi>&phi;sig</mi> <mn>1</mn> </mrow>其中ik表示第k次迭代选取的原子号;当逼近误差Rnφsig1的能量小于一定值,即||Rnφsig1||2<ε时,停止迭代,分解完成;6)、亚像素级整体视差的求取和深度计算根据信号φsig1在D={LibSigi,0≤i<Nt}上的稀疏表达式,进一步求得φsig1和φsig2之间的亚像素视差,表达式如下: <mrow> <mi>subDis</mi> <mo>=</mo> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mo>&lt;</mo> <msup> <mi>R</mi> <mi>k</mi> </msup> <mi>&phi;sig</mi> <mn>1</mn> <mo>,</mo> <msub> <mi>LibSig</mi> <mi>ik</mi> </msub> <mo>></mo> <mrow> <mo>(</mo> <mi>ik</mi> <mo>-</mo> <msub> <mi>N</mi> <mi>t</mi> </msub> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>N</mi> <mi>t</mi> </msub> </mrow>得到整体视差totalDis=Dis‑subDis最后结合双目立体视觉原理,由公式z=f×(1+B/D),其中B为基线距离,D为视差,f为焦距,求得目标物体的深度位置。
地址 310027 浙江省杭州市西湖区浙大路38号