快速半全局密集匹配方法和装置的制造方法_3

文档序号:9706227阅读:来源:国知局
程度。越相似的点对应的匹配代价越小,越应该被匹配在一起。从 数据结构来说,匹配代价C(p,d)是一个二维数组,其中p代表基准影像上的任意像素,d代表 与P像素相关的任意视差值。目的在于对于P选出一个d,使对应的C最小化。
[0096] 下列步骤为了描述方便,基准影像也被称作左图,匹配影像被称作右图。在实际 中,左右互换角色进行匹配也是可以的。
[0097]具体的,匹配代价种类繁多,本算法(即密集匹配算法)目前使用的互信息MI是基 于统计学的一种匹配代价。MI的本质是用概率分布来描述匹配代价,左图每一灰度值与右 图每一灰度值相匹配的概率需要被计算出来。其中,本发明实施例中基于MI的进行匹配代 价计算,MI计算步骤如下:
[0098]第一步:假设一个先验视差图:计算MI必须从已有的视差图出发,而初始化的过程 必须用到先验视差图,可以选择任意视差值作为像素的先验视差。优选的,经过多轮的匹配 迭代得到先验视差,用以避免初始化的先验视差值错误。
[0099]第二步:计算左右影像灰度值匹配的概率黑白影像的灰度值取值范围 为0~255总共256个值。因为图像明暗光照的变化,相匹配的两个点很可能灰度值并不相 等。从统计学的角度来说,左图上的每一种灰度值都有一定概率和右图上的每一种灰度值 相匹配。左右灰度值i与k取值范围都可以从0到255,总共有(256X256)种匹配的可能性。 是一个256X256大小的矩阵,所有元素初始为0。根据上一步的先验视差图,如果每一 种灰度匹配出现一次^^^的相应元素便加1(次)。
[0100]第三步:基于概率计算联合熵妗:最初的概率巧_还是一个整 数矩阵,每个值都表示某一事件出现的次数。整数型的概率需要被转换为浮点型的联合熵 ,即
[0101] ...... it- " "
(V
[0102]上述公式中發#〇,金》表示高斯平滑函数,η表示所有匹配点的个数,即影像像素 总数。
[0103]第四步:计算左图灰度值概率和熵&:在上述步骤中计算了联合概率与 联合熵以后,还需要分别考虑单张影像灰度值出现的概率和熵。〗是一个包含256个元 素的向量,每种灰度值出现一次,对应元素的概率便加1(次)。熵的计算使用如下公式:
[0104] 第五步:与第四步类似,计算右图灰度值概率4 (?和熵\ 00。
[0105] 第六步:计算最终互信息>va lc>:
[0106]
[0107]
其中,(Κ)是一个256 X 256大 小的矩阵,包含浮点类型的数值。为了计算速度,可对其进行缩放、平移和数据类型转换,使 最终结果为short整数类型。
[0108] 第七步:填充匹配代价C(p,d):匹配代价C是一个二维数组,其中p代表左图任意像 素,d代表与p像素相关的任意视差值。通过(p,d)与核线关系可以在右图上找到对应的像素 q。基于q和q的灰度值,能在?(4&)中获取对应的互信息,并把该互信息填充到数组C (P,d)中的相应位置。
[0109] 第三、对上述匹配代价的半全局最优解:
[0110] 如果只考虑单个像素匹配代价C(p,d),选出每个像素最小的匹配代价以及对应的 视差值,很容易出现错误匹配。为了避免错误,必须考虑单个像素与其相邻像素的关系。总 体思路是假设相邻像素视差值类似(除了物体边界区域,该假设基本成立),如果相邻视差 变化1,则加上一个较小的惩罚值;如果相邻视差变化大于1,则加上一个较大的惩罚值。该 惩罚值需要根据经验选择。在本算法中,惩罚值与基准影像的梯度值相关。梯度值越大,说 明是物体边界的可能性越大,即视差跳跃的可能性越大,随之惩罚值越小。这样的惩罚值, 一方面可以保证在物体表面视差的连续性,另一方面还可以保证在物体边界处视差能够正 确的跳跃。
[0111] 把上述思路表述为一个需要被最小化的能量函数E(D):
[0112]
[0113]需要求得一张最优的视差图D,使能量函数E最小化。E是所有像素 p的匹配代价C (P,DP)之和,加上惩罚值。当p的相邻的像素 qeNP与p的视差值变化为1时(|DP_Dq| =1条件 为真,T等于1,为假时则等于0),需要加上一个较小的惩罚值Pi。当相邻的像素视差值变化 大于1时,需要加上较大的惩罚值P2。
[0114] 以上能量函数最小化问题的变量D是一个二维矩阵,将该二维矩阵简化为多个方 向的一维问题可进行求解。沿单个方向来看,二维的影像矩阵中可以提取出一条一维的数 据,该一维问题可用动态规划(Dynamic Programming)递归解决,最后综合考虑多个方向一 维问题的解,可得到二维问题的近似解(即半全局优化)。
[0115] 从公式的角度来说,基于MI之前已经计算出单个像素匹配代价C(p,d)。接着,沿某 一方向r将要计算出累积代价Lr(p,d)。
[0116]
[0117]其中p-r表示沿着r方向的p的前一像素。上述公式的含义是:聚合代价Lr(p,d)等 于单个像素匹配代价C(p,d)加上前一像素的含惩罚值的最小聚合代价减去前一像素不含 惩罚值的最小聚合代价。上述公式从影像边缘开始进行递归计算,为了防止数据不断变大 超过计算机的处理范围,才减去前一像素不含惩罚值的最小聚合代价。
[0118] 通过以上公式计算单个通道(即单个方向)的聚合代价,而总体上需要考虑多个通 道r。最终聚合代价S(p,d)等于多个通道之和:
[0119]
[0120] 在实际计算中,通道数选择8个,即从左到右,从右到左,从上到下,从下到上,从左 上到右下,从右下到左上,从右上到左下和从左下到右上。聚合的(平滑的)匹配代价S(p,d) 与单个像素的匹配代价C(p,d)的数据结构完全一样,都是一个二维数组。对于任意像素 p, 基于S(p,d)选出的视差值d,使S最小化,再把所有的d组合成一个二维矩阵,就能得到最终 结果:视差图D。
[0121] 另外,现有技术中匹配计算过程均是通过固定的视差搜索范围搜素匹配计算过程 中的视差,但是,固定的视差搜索范围增加了很多无意义的计算。其中,固定的视差搜索范 围指的是,在整幅影像(包括基准影像和匹配影像,对应为左影像和右影像)中设置固定的 最大视差值和最小视差值,得到对应的固定视差搜索范围,对于整幅影像中的每个要匹配 的像素都要在这个较大的固定视差搜索范围内寻找匹配点,使得绝大部分的搜索计算是在 远离正确视差值的区域进行的,为了解决该问题,参见图2,本发明实施例中使用动态视差 搜索范围,具体方法包括:
[0122] S201、构建待匹配影像对应的影像金字塔;其中,所述待匹配影像包括:所述基准 影像和/或所述匹配影像;所述影像金字塔包括多个不同的分辨率且多个分辨率之间具有 预设关联关系;
[0123] 本发明实施例中,上述待匹配影像包括:基准影像和/或匹配影像,且基准影像和 匹配影像中均包括多个像素;将上述待匹配影像按一定规则生成的由细到粗不同分辨率的 影像集,得到该待匹配影像对应的影像金字塔;其中,得到的上述影像金字塔包括多个不同 的分辨率且多个分辨率之间具有预设关联关系,其中,每一个分辨率占据影像金字塔的一 层,该影像金字塔从下到上分辨率越来越大,本发明实施例中以金字塔的最底层为第一层, 从最底层往上依次为第二层、第三层等。
[0124] 上述预设关联关系可以理解为影像金字塔中的分辨率从上到下的逐层缩小关系, 如1/2,1/4,1/8和1/16,或者为影像金字塔中的分辨率从下到上的放大关系,如2倍,4倍,8 倍和16倍等。
[0125] 以上述第一层、第二层和第三层为例,其包括分辨率的大小可以分别为:320 X 240、640X480、1280X960等,且上述相邻两两分辨率之间均为放大2倍的关系。
[0126] 需要说明的是,上述分辨率的大小和分辨率之间的预设关联关系可以根据需要任 意设置,本发明实施例对此不作具体限制。
[0127] S202、根据构建的所述影像金字塔,确定所述待匹配影像的原始分辨率。
[0128] 本发明实施例中针对待匹配影像中的每一个像素均设置一个视差搜索范围,以待 匹配影像中的任意一个像素来说,首先确定该像素所在的待匹配影像在影像金字塔中的原 始分辨率。
[0129] S203、根据构建的所述影像金字塔,确定所述待匹配影像用于搜索像素视差的当 前分辨率。
[0130] 由于在待匹配影像中较大的原始分辨率对应的视差搜索范围(即固定的视差搜索 范围)下搜索像素视差,增加了很多无意义的计算,并且还可能使得绝大部分的搜索计算是 在远离正确视差值的区域进行的。针对该问题,本发明实施例使用动态视差搜索范围,首先 在影像金字塔中确定待匹配影像的一个较小的当前分辨率,然后在该当前分辨率对应的整 个视差搜索范围中搜索像素视差,因为是当前分辨率的待匹配影像是低分辨影像,所以并 不会消耗太多时间。
[0131] 本发明实施例中以当前分辨率为影像金字塔的最底层分辨率(即第一层分辨率) 为例进行说明;实际中,当前分辨率是根据实际待匹配影像进行确定的。
[0132] S204、在所述当前分辨率的待匹配影像对应的最大视差范围中搜索所述像素视 差,得到所述像素的当前视差。
[0133] 具体的,在影像金字塔的最底层分辨率(即第一层分辨率)的待匹配影像对应的整 个视差搜索范围中搜索像素视差,得到当前视差do,该do是一个点值。
[0134] S205、根据所述影像金字塔中的所述当前分辨率与所述原始分辨率的预设关联关 系以及所述当前视差,计算所述像素在原始分辨率的待匹配影像中的原始视差搜索范围。
[0135] 具体的,上述当前分辨率与原始分辨率具有预设关联关系(如相邻的两两分辨率 之间为放大2倍关系),根据上述预设关联关系以及计算得到的当前视差,即可计算得到像 素在原始分辨率的待匹配影像中的原始视差搜索范围;
[0136] 其中,在上述金字塔影像的最底层(即第一层)的当前分辨率的待匹配影像对应的 整个视差搜索范围内搜索像素视差,得到该像素的当前视差;然后根据该最底层与上一层 的预设关联关系,可以计算得到第二层分辨率影像中的视差所在点值,而为了保证该视差 搜索更准确,需要将该第二层得到的点值加减一个预设阈值(此处称为第一预设阈值),即 可得到该像素在第二层中的视差搜索范围;然后根据第二层与上一层(即第三层)的预设关 联关系,可以计算得到该像素在第三层分辨率影像中的视差所在点值,而为了保证该视差 搜索更准确,需要将该第三层得到的点值加减一个预设阈值(此处称为第二预设阈值),即 可得到该像素在第三层对应的视差搜索范围;以此类推,根据原始分辨率的上一层与原始 分辨率所在层数的预设关联关系以及上一层计算得到的视差所在点值,同样可以计算得到 该像素在原始分辨率的待匹配影像中的原始视差搜索范围。
[0137] 上述动态视差搜索范围技术需要确定待匹配影像中每一个像素的视差搜索范围, 具体方法为:首先在低分辨率影
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1