一种用于多视点图像编码的快速视差估计方法与流程

文档序号:12498204阅读:143来源:国知局
一种用于多视点图像编码的快速视差估计方法与流程

本发明属于数字图像处理和计算机视觉技术领域,特指一种用于多视点图像编码的快速视差估计方法。



背景技术:

多视点视频是一种新型的具有立体感和交互操作功能的视频,通过多台摄像机从不同角度对同一场景进行同步拍摄以获取不同视点的视频信号,是一种有效的3D视频表示方法,能够更加生动地再现场景,提供立体感和交互功能。多视点视频可广泛应用于任意视点视频、三维立体电视、沉浸式电视会议以及视频监视系统等多种正在兴起的多媒体业务。

与单视点视频相比,多视点视频的数据量随着摄像机数目的增加而线性增加。巨大的数据量已成为制约其广泛应用的瓶颈。目前多视点视频系统中数据压缩、数据传输以及任意视点的绘制都是亟待解决的问题。其中视点间的视差估计是解决这些问题的一项关键技术。所谓视差是指不同视点的图像对之间的几何差异,沿着视差矢量,图像对之间具有高度的相似性,从而可用参考图像对目标图像进行视差补偿预测,目标图像只需用视差矢量及视差补偿差表征即可。

传统的用于编码的视差矢量估计方法是基于块匹配的估计方法,其优点是简单实用、易于硬件实现,但从实际效果看,这种方法的视差估计准确性不高,会产生很多误匹配。



技术实现要素:

针对现有方法存在的缺陷,本发明的目的在于提出一种用于多视点图像编码的快速视差估计方法。

本发明的技术方案是:

一种用于多视点图像编码的快速视差估计方法,包括以下步骤:

S1.记同一时刻、同一场景来自两个不同视点拍摄的图像为F1(x,y)和F2(x,y),对两幅多视点图像进行分块块匹配,每个图像块会得到一个运动矢量,最终得到一个的运动矢量集合。

S2.对S1中得到的运动矢量集合进行判断,排除其中的畸变点,也即剔除块匹配结果中的误匹配就得到视差估计结果。

本发明中,步骤S1的实现过程如下:

S1.1记同一时刻、同一场景来自两个不同视点拍摄的图像为F1(x,y)和F2(x,y),两图像大小均为Wd×Hd,首先以固定尺寸15×15对图像F1(x,y)进行分块,得到总数为的图像块,记为{kn(x,y)|n=1,…,Num}。

S1.2对图像F1(x,y)上的每个图像块,在另一视点图像F2(x,y)上,进行块匹配,找到最相似的块图像。

S1.2.1对于图像F1(x,y)上的任一图像块kn(x,y),图像块kn(x,y)在图像F1(x,y)的中心坐标记为dot(x0,y0)。根据先验知识设定搜索范围cth=10,于是在图像F2(x,y)上、大小为15×15、中心坐标(x,y)满足(|x-x0|<10,|y-y0|<10)的图像块均属于搜索范围即属于候选图像块。

S1.2.2计算图像块kn(x,y)中所有像素点的灰度值的均值μ0

S1.2.3在图像F2(x,y)进行搜索时,对于每个候选图像块fm(x,y)计算其中所有像素点的灰度值的均值μm,如果|μm0|>20,说明此候选图像块和图像块kn(x,y)不匹配,不需要再进行下一步操作;如果|μm0|≤20,则进行下一步操作,即通过公式1计算此候选图像块和图像块kn(x,y)的平均绝对值误差值:

S1.2.4按照S1.2.2至S1.2.3的匹配方法对所有候选图像块都处理完毕后,选择其中最小的MAD(m)值对应的候选图像块fm(x,y)作为图像块kn(x,y)的匹配结果;图像块fm(x,y)的中心坐标记为dot′(x1,y1),那么从kn(x,y)到fm(x,y)的运动矢量(Vn_x,Vn_y)为(x1-x0,y1-y0)。

S1.2.5对图像F1(x,y)的所有图像块按照上述方法进行块匹配,每个图像块都会得到一个运动矢量,最终得到总数为Num的运动矢量集合{(Vn_x,Vn_y)|n=1,…,Num}。

本发明中,步骤S2的实现过程如下:

S2.1将S1中得到运动矢量集合{(Vn_x,Vn_y)|n=1,…,Num},分成两部分:{Vn_x|n=1,…,Num}和{Vn_y|n=1,…,Num};每一部分都看作是一幅行为列为的运动矢量图形,对{Vn_x|n=1,…,Num}和{Vn_y|n=1,…,Num}分别进行SUSAN算子特征点检测,将检测得到的两个特征点集合进行融合,得到所有的畸变点集合{(i,j)|Rx(i,j)>0||Ry(i,j)>0}。

S2.2图像块和运动矢量是一一对应的,经SUSAN算子特征点检测出的畸变点集合对应着匹配结果不一定准确的图像块{kn(x,y)|Rx(i,j)>0||Ry(i,j)>0,n=i×Hd/15+j};删除这些图像块的匹配结果,就可得到一个准确高效的视差估计结果。

本发明中,在步骤S2.1中对{Vn_x|n=1,…,Num}和{Vn_y|n=1,…,Num}进行SUSAN算子特征点检测,方法如下:

S2.1.1将{Vn_x|n=1,…,Num}写成图像形式{Vx(i,j)|i=1,…,Wd/15;j=1,…,Hd/15},其中

S2.1.2对运动矢量图形Vx(i,j)进行SUSAN算子特征点检测,步骤如下:

(1)利用圆形模板遍历图像Vx(i,j),计算每点处的吸收核同值区的取值。

定义圆形模板:令中心像素记为(x1,y1),所有满足条件(x-x1)2+(y-y1)2≤10的像素(x,y)组成的区域即为圆形模板的范围。圆形模板大小为7×7,一共37个像素;对于运动矢量图形Vx(i,j)的任一像素(i0,j0),将圆形模板的中心像素放在(i0,j0),然后计算运动矢量图形Vx(i,j)中处于圆形模板位置里面的各像素的像素灰度值和中心像素(i0,j0)的灰度值的差异,如果一像素点的像素灰度值和中心像素(i0,j0)的灰度值间的差值小于或等于设定的相似程度的阈值th1,则该像素点属于USAN区域;否则该像素点不属于USAN区域;通过上述方法从而判断像素点是否属于USAN区域,具体公式如下:

其中th1表示相似程度的阈值,取值20;c(i,j)表示该像素点是否属于USAN区域。

然后对运动矢量图形Vx(i,j)中处于圆形模板位置内的所有像素点进行统计:

其中Ω表示运动矢量图形Vx(i,j)中处于圆形模板位置内的像素点集合,u(i0,j0)即为像素(i0,j0)的USAN值。

利用圆形模板遍历图像Vx(i,j)的所有像素,可以得到所有像素的USAN值u(i,j)。

(2)计算所有像素的USAN值后,通过阈值化得到一个初步的特征点响应Rx(i,j)。

Rx(i,j)=max(0,th2-u(i,j)) 公式4

其中th2表示阈值,取值28,只有当u(i,j)<th2时,Rx(i,j)才可能大于0,也即表明该点是一个初步判定的特征点。所有Rx(i,j)大于0的像素集合为初步的特征点集合。

(3)采用非极大值抑制对初步的特征点集合进行处理,得到最终的特征点集合。

对于初步的特征点集合中的每个初步判定的特征点如(i1,j1),观察在以它为中心,大小5×5的领域内,是否还有其他像素点的Rx(i,j)值比Rx(i1,j1)大,如果没有,也即Rx(i1,j1)是最大的,那么保留此特征点(i1,j1)。否则删除此特征点(i1,j1),也即将Rx(i,j)重置为0;对初步的特征点集合中的所有初步判定的特征点进行处理,得到运动矢量图形Vx(i,j)的最终特征点集合{(i,j)|Rx(i,j)>0}。

(4)用同样的方法即步骤(1)至(3)对运动矢量图形Vy(i,j)进行SUSAN算子特征点检测,可以得到Vy(i,j)的最终特征点集合{(i,j)|Ry(i,j)>0}。

本发明首先通过一个二步式的块匹配方法快速的计算出所有图像块的匹配结果得到运动矢量集合,然后综合考虑每个图像块本身及其周围图像块的信息,通过一种基于特征点检测的方法对运动矢量集合进行判断,排除其中的畸变点。本发明提出的方法能够在快速进行块匹配的同时,有效的排除误匹配,大大提高了视差估计的准确度。本发明提出的方法简单实用,算法复杂度小,可以实时处理各类多视点图像,拥有很好的实用价值。

附图说明

图1为本发明的流程图;

图2是SUSAN算子的圆形模板。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

参照图1,本发明一种用于多视点图像编码的快速视差估计方法,包括以下步骤:

S1.记同一时刻、同一场景来自两个不同视点拍摄的图像为F1(x,y)和F2(x,y),对两幅多视点图像进行分块块匹配,每个图像块会得到一个运动矢量,最终得到一个的运动矢量集合。

S1.1记同一时刻、同一场景来自两个不同视点拍摄的图像为F1(x,y)和F2(x,y),两图像大小均为Wd×Hd,首先以固定尺寸15×15对图像F1(x,y)进行分块,得到总数为的图像块,记为{kn(x,y)|n=1,…,Num}。

S1.2对图像F1(x,y)上的每个图像块,在另一视点图像F2(x,y)上,进行块匹配,找到最相似的块图像。

S1.2.1对于图像F1(x,y)上的任一图像块kn(x,y),图像块kn(x,y)在图像F1(x,y)的中心坐标记为dot(x0,y0);根据先验知识设定搜索范围cth=10,于是在图像F2(x,y)上、大小为15×15、中心坐标(x,y)满足(|x-x0|<10,|y-y0|<10)的图像块均属于搜索范围即属于候选图像块。

S1.2.2计算图像块kn(x,y)中所有像素点的灰度值的均值μ0

S1.2.3在图像F2(x,y)进行搜索时,对于每个候选图像块fm(x,y)计算其中所有像素点的灰度值的均值μm。如果|μm0|>20,说明此候选图像块和图像块kn(x,y)不匹配,不需要再进行下一步操作。如果|μm0|≤20,则进行下一步操作,即通过公式1计算此候选图像块和图像块kn(x,y)的平均绝对值误差值:

S1.2.4按照S1.2.2至S1.2.3的匹配方法对所有候选图像块都处理完毕后,选择其中最小的MAD(m)值对应的候选图像块fm(x,y)作为图像块kn(x,y)的匹配结果。图像块fm(x,y)的中心坐标记为dot′(x1,y1),那么从kn(x,y)到fm(x,y)的运动矢量(Vn_x,Vn_y)为(x1-x0,y1-y0)。

S1.2.5对图像F1(x,y)的所有图像块按照上述方法进行块匹配,每个图像块都会得到一个运动矢量,最终得到总数为Num的运动矢量集合{(Vn_x,Vn_y)|n=1,…,Num}。

以上匹配方法只考虑了每个图像块本身的信息,没有考虑周围图像块的信息,因此匹配的结果还不够精确。图像块的运动变化应该是连续的,因此运动矢量也应该是逐渐变化的,如果中间某一运动矢量出现畸变是不合理的。基于这些分析,为了进一步提高匹配精度,综合考虑每个图像块本身及其周围图像块的信息,本发明提出了一种基于特征点检测的方法对运动矢量集合进行判断,排除其中的畸变点。

角点检测是计算机视觉系统中用来获得图像特征点的一种方法,能够将图像中灰度变化剧烈的点或图像边缘上曲率较大的点检测出来。下面即S2中,本发明选择角点检测中算法简单、定位准确、抗噪能力强等特点的最小吸收核同值区(SUSAN)算子进行特征点检测,具体如下:

S2.对S1中得到的运动矢量集合进行判断,排除其中的畸变点,也即剔除块匹配结果中的误匹配就得到视差估计结果。

S2.1将S1中得到运动矢量集合{(Vn_x,Vn_y)|n=1,…,Num},分成两部分:{Vn_x|n=1,…,Num}和{Vn_y|n=1,…,Num}。每一部分都可以看出一幅行为列为的运动矢量图形。

对{Vn_x|n=1,…,Num}和{Vn_y|n=1,…,Num}分别进行SUSAN算子特征点检测,将检测得到的两个特征点集合进行融合,得到所有的畸变点集合{(i,j)|Rx(i,j)>0||Ry(i,j)>0}。

以{Vn_x|n=1,…,Num}为例,对{Vn_x|n=1,…,Num}进行SUSAN算子特征点检测,方法如下:

S2.1.1将{Vn_x|n=1,…,Num}写成图像形式{Vx(i,j)|i=1,…,Wd/15;j=1,…,Hd/15},其中

S2.1.2对运动矢量图形Vx(i,j)进行SUSAN算子特征点检测,步骤如下:

(1)利用圆形模板遍历图像Vx(i,j),计算每点处的吸收核同值区(USAN)的取值;

圆形模板定义如下:中心像素记为(x1,y1),所有满足条件(x-x1)2+(y-y1)2≤10的像素(x,y)组成的区域即为圆形模板的范围。圆形模板如图2所示,圆形模板大小为7×7,一共37个像素,其中标号19的像素是中心像素。对于运动矢量图形Vx(i,j)的任一像素(i0,j0),将圆形模板的中心像素放在(i0,j0),然后计算运动矢量图形Vx(i,j)中处于圆形模板位置里面的各像素的像素灰度值和中心像素(i0,j0)的灰度值的差异,如果一像素点的像素灰度值和中心像素(i0,j0)的灰度值间的差值小于或等于设定的相似程度的阈值th1,则该像素点属于USAN区域;否则该像素点不属于USAN区域。通过上述方法从而判断像素点是否属于USAN区域,具体公式如下:

其中th1表示相似程度的阈值,这里取值20。c(i,j)表示该像素点是否属于USAN区域。

然后对运动矢量图形Vx(i,j)中处于圆形模板位置内的所有像素点进行统计:

这里Ω表示运动矢量图形Vx(i,j)中处于圆形模板位置内的像素点集合,u(i0,j0)即为像素(i0,j0)的USAN值。

利用圆形模板遍历图像Vx(i,j)的所有像素,可以得到所有像素的USAN值u(i,j)。

(2)计算所有像素的USAN值后,通过阈值化得到一个初步的特征点响应Rx(i,j);

Rx(i,j)=max(0,th2-u(i,j)) 公式4

其中th2表示阈值,这里取值28,只有当u(i,j)<th2时,Rx(i,j)才可能大于0,也即表明该点是一个初步判定的特征点。所有Rx(i,j)大于0的像素集合为初步的特征点集合。

(3)采用非极大值抑制对初步的特征点集合进行处理,得到最终的特征点集合。

对于初步的特征点集合中的每个初步判定的特征点如(i1,j1),观察在以它为中心,大小5×5的领域内,是否还有其他像素点的Rx(i,j)值比Rx(i1,j1)大,如果没有,也即Rx(i1,j1)是最大的,那么保留此特征点(i1,j1);否则删除此特征点(i1,j1),也即将Rx(i,j)重置为0。对初步的特征点集合中的所有初步判定的特征点进行处理,得到运动矢量图形Vx(i,j)的最终特征点集合{(i,j)|Rx(i,j)>0}。

(4)用同样的方法即步骤(1)至(3)对运动矢量图形Vy(i,j)进行SUSAN算子特征点检测,可以得到Vy(i,j)的最终特征点集合{(i,j)|Ry(i,j)>0}。两者进行融合,得到所有的特征点也即畸变点集合{(i,j)|Rx(i,j)>0||Ry(i,j)>0}。

S2.2图像块和运动矢量是一一对应的,所以检测出的特征点也即畸变点集合对应着匹配结果不一定准确的图像块{kn(x,y)|Rx(i,j)>0||Ry(i,j)>0,n=i×Hd/15+j}。删除这些图像块的匹配结果,就可以得到一个准确高效的视差估计结果。

以上包含了本发明优选实施例的说明,这是为了详细说明本发明的技术特征,并不是想要将发明内容限制在实施例所描述的具体形式中,依据本发明内容主旨进行的其他修改和变型也受本专利保护。本发明内容的主旨是由权利要求书所界定,而非由实施例的具体描述所界定。

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