一种基于多编码的Census自适应变换算法的制作方法

文档序号:11145100阅读:630来源:国知局
一种基于多编码的Census自适应变换算法的制造方法与工艺

本发明属于双目立体视觉技术领域,涉及一种基于多编码的Census自适应变换算法。



背景技术:

立体匹配一直是双目立体视觉中的重要技术环节,立体匹配是寻找两幅图像中的共轭点,也就是空间同一点投影在左右两幅图像中的不同像素点的位置,最终产生视差图。但是立体匹配一直存在着精度与效率的问题。由于近些年计算机的并行能力越来越高,因此科研人员一直致力于寻找一种可并行高精度的立体匹配方法。

通常立体匹配过程可分为四个部分:匹配代价计算、匹配代价聚合、初始视差计算、视差优化。现在对于立体匹配的研究也一直围绕着这四个步骤进行,Census变换是立体匹配过程中匹配代价计算步骤常用的一种操作。

Census变换充分考虑了中心像素在支持窗口内的局部信息并且减弱图像亮度信息。具有算法简单、可并行、鲁棒性高与效果好等特点。Census变换的具体操作如下所述:

对于一个大小为wp(m×n)的窗口,中心像素为p,Census变换可以将窗口内图像的亮度值相关性映射到一个长度为m×n-1长度的二进制串中。假设q为窗口内的非中心点的像素。那么对于q点位置的变换为:

其中i(x)为像素点x的灰度。对于p点最终的特征二进制串:

表示按位连接。使用这种计算方式的窗口遍历图像中的每一个像素点。这样一来就减弱了图像亮度信息,单保留了窗口内的局部信息。最后对于原始图像中的p点视差为d,对应参考图像中的像素点p′计算所得的成本为:

表示Hamming距离计算。

传统的Census变换虽然减弱了亮度信息,但是其对亮度信息的减弱处理过为粗糙,并没有充分的利用图像中的亮度信息。参照附图1可以看出由于亮度信息丢失过多导致它对相似区域区别不明显,并且还将导致它对噪声敏感。



技术实现要素:

本发明是在传统的Census变换的基础上使用新的编码策略。在考虑到窗内局部信息的同时更充分的利用亮度信息,并对噪声进行减弱处理,使本发明更具鲁棒性。

一种基于多编码的Census自适应变换算法,包括如下内容:

1)编码

传统的Census变换将亮度信息按照中心像素亮度值分为大、小两个组。本发明在传统Census变换大、小两个组的基础上,对大组与小组分别进行更进一步的划分,大组与小组分别划分出k个子组,k为正整数,则一共划分出2k个组。

本发明使用一种多编码策略,每个组使用多位二进制位进行编码表示。共划分出2k个组,则每个组对应的编码长度为2k-1个位。对于一个大小为wp(m×n)的窗口;窗口的中心像素为p,窗口内非中心点像素为q;窗口内亮度值的映射到一个(2×k-1)×(m×n-1)位长度的二进制串上。

q点位置的变换为:

其中,bin(x)是x的二进制表示形式;前k个分组中的非中心点像素灰度i(q)全部比中心灰度i(p)大,属于大组,后k个分组中的非中心点像素灰度i(q)全部比中心灰度i(p)小,属于小组;εi是用于分档的阈值,其中i∈[1,2…2k-2];阈值存在大小关系为ε1>ε2>ε3…>εk-1,ε2k-2>ε2k-3….>εk

利用以上策略将图像亮度映射到2k个组,并且相邻档位之间进行异或操作后相差为1,相隔为1的档位异或操作之后相差为2,最远的两个档位异或操作后相差为2k-1;通过这种方式本发明将图像亮度的相关性更加有效的运用。

上述阈值选择采用一种自适应阈值选择方式;即对大组与小组分别做如下操作:

a)将窗体内像素按照亮度大于i(p)与小于等于i(p)分为两组queue1和queue2

b)对queue1与queue2进行升序排序产生序列queue_asc1与queue_asc2并计算queue1长度l1,queue2长度l1

c)计算第阈值εi其中i∈[1,2…k-1]的公式如下:

d)计算第阈值εj其中j∈[k,k+1,…2k-2]的公式如下:

本发明采用这种阈值策略来实现自适应的阈值选择,采用该策略能更好的选择阈值,将像亮度信息尽可能的均匀的分到每个档位,并且该自适应策略能使得编码鲁棒性更高,并消除一些噪声的干扰。

优选方案为将窗口内亮度信息分为k=2组,共划分出4个组。使用三位的编码来表示这四组。对于一个大小为wp(m×n)的窗口,中心像素为p,本发明将窗口内亮度值的相关性映射到一个3×(m×n-1)长度的二进制串上,q为窗口内非中心点的像素。q点位置的变换为:

在分四个组的情况下存在ε1与ε2两个阈值,取值过程如下:

1)将窗体内像素按照亮度值大于i(p)与小于等于i(p)分为两组queue1与queue2

2)对queue1与queue2进行升序排列产生升序序列queue_asc1与queue_asc2,计算queue1长度为l1、queue2长度为l2

3)计算

4)计算

将窗体内非中心点像素映射到自己所在的组,将非中心点像素编码按位相连产生中心点p编码。

2)处理噪声

本发明采用一种冗余编码方式来减弱噪声的影响,在每个像素编码的最后加上n位冗余编码。原图像的冗余码全部都置为0,参考图像的冗余码全部都置为1,当窗体中存在某点亮度|i(p)-i(q)|>σ我们认为存在一处噪声。σ为人工输入用于判断噪声的阈值。每当发现一处噪声时,将噪声所在图像的冗余码其中一位取反。n位冗余码最多可检测n个噪声点。

原始图像像素p与参考图像像素p′编码相同且不存在噪声的情况下其Hamming距离为n,当某一像素受到噪声影响,其冗余编码发生变化,使得原图像与参考图像的冗余码Hamming距缩小,本发明就是通过减少冗余码的Hamming距离来减弱噪声对其产生的影响。

优选采用一位冗余编码,在原始图像像素特征编码后加入0,在参考图像特征编码后面加入1。当检测到噪声时将噪声所在图像后的冗余编码取反,使用一位冗余编码只能检测到噪声是否存在不能检测存在的噪声数量。

3)计算距离

本发明继续采用传统的Census的距离计算方式,如公式(3)所示,使用Hamming距离来衡量相似度。

本发明是在传统的Census变换的基础上使用新的编码策略,在考虑到窗内局部信息的同时更充分的利用亮度信息,并对噪声进行减弱处理,使本发明更具鲁棒性。

附图说明

附图1对于相似性区域本发明与Census变换对比图。

附图2编码方式具体流程图。

附图3本发明与传统Census变换最终效果对比图。

具体实施方式

实施例1

参考发明内容与附图2。本发明在选择分四组,添加一位冗余编码的情况下具体操作过程如下:

1)人工输入窗口大小5×5,输入σ=100用于噪声判断。

2)按照本发明的变换策略对每个像素进行编码。

参照附图2.对于图像某点的编码方式:

3)对原始图像p点与参考图像p′点分别读取大小为5×5的亮度数据。设读取出的矩阵为wp与wp

4)对读取出的数据按照与p点亮度值i(p)与p′点亮度值i(p′)进行分组,设每个窗体都有两个分组:分组1与分组2。

5)对分组后的数据求出阈值ε1与ε2。参考本发明的阈值计算小节可求得对于wp窗体第一组8个数据,我们选择第4到6个数据进行阈值计算。

(112-103+115-103+123-103)÷3=13.7。如操作wp窗体的第二组数据阈值为17.3。wp′的第一组数据的阈值为9.5,wp′的第二组数据的阈值为19。

6)参照本发明的编码方式章节,分别对两个窗体内像素进行分档操作。分档后的窗体为wcp和wcp′。然后对wcp和wcp′进行按位连接产出cen(p)和cen(p′)。

7)参照本发明的噪声处理章节在比特串cen(p)和cen(p′)后面加入冗余校验位,由于没有噪声我们在cen(p)添加0,在cen(p′)后添加1。形成最后编码。

cen(p)=0011110000011110000000010110110110110011110110010111111111111110111111110

cen(p′)=0001110000011110000000111111110110110010110110110010111111111110111111111

在编码操作后使用Hamming距离来求出原图点p与参考图像点p′的Hamming距离。如图的Hamming为9。

参照附图3,本发明在不使用成本聚合与视差提纯的情况下明显优于传统方式,在使用垂直正交聚合法的情况下,产生的视差图也要明显优于传统的Census变换。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1