视差计算方法、装置与终端与流程

文档序号:13763823阅读:397来源:国知局
视差计算方法、装置与终端与流程

本发明涉及图像处理技术领域,尤其设计一种视差计算方法、装置与终端。



背景技术:

当前,立体直播技术是一种新兴的网络直播技术,该技术利用立体相机对主播进行拍摄,并将主播的当前视音频信息实时传输至移动终端,用户通过移动终端(该移动终端可显示立体信息)播放主播的视音频信息,进而使得用户可实时欣赏立体内容,提高用户的视觉体验。

在立体显示技术中,左右视图的水平视差是指在实际场景中同一个点在左右视图投影后在水平方向上产生的坐标差异。水平视差是一个非常重要的参数,水平视差的大小直接影响着立体显示效果。例如,水平视差过大会造成立体显示重影,此时,技术人员需自行计算出当前左右视图的视差并对之进行调整。因此,应用在立体直播技术时,技术人员需要实时的对主播的水平视差进行调整,使其永远处于合理的视差范围内,以实现最优的立体显示效果。

现有技术中的视差计算方法是,从左右视图中分别提取一定数量的特征点并对多个特征点进行匹配,之后再根据匹配的特征点确定视差。但是,在对特征点进行匹配时,需计算整幅图像中的每一个像素点邻域的灰度值,将灰度值的变化情况作为特征分数,并通过特征分数实现特征点的匹配。由此,现有视差计算方法的计算复杂度高,且计算准确率低。



技术实现要素:

本发明提供了一种视差计算方法、装置与终端,用于解决现有技术中视差计算方法的计算复杂度高,且计算准确率低的问题。

为实现上述目的,在第一方面,本发明提供了一种视差计算方法,所述方法包括:

获取当前场景图像中人物的第一掩码图和第二掩码图;

对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵;

在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点;

利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围。

结合第一方面,在第一种可能的实现方式中,对所述掩码图进行降维处 理,得到与所述掩码图对应的行矩阵,具体包括:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

利用所述每个像素点的掩码值,计算所述掩码图中每列像素点的掩码总值、或掩码均值、或掩码中位数值;

将所述掩码总值、或所述掩码均值或所述掩码中位数值作为所述行矩阵的对应列。

结合第一方面,在第二种可能的实现方式中,对所述掩码图进行降维处理,得到与所述掩码图对应的行矩阵,具体包括:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

判断所述掩码图中属于同一列像素点的掩码值是否大于掩码阈值;

如果所述掩码值大于所述掩码阈值,则计算大于所述掩码阈值的属于同一列像素点的纵坐标总值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标均值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标中位数值;

将所述纵坐标总值、或所述纵坐标均值、或所述纵坐标中位数值作为所述行矩阵的对应列。

结合第一方面,在第三种可能的实现方式中,所述在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点,具体包括:

根据预设的抽样间隔模式或者随机模式,在所述第一行矩阵中,确定第 一抽样点;

在所述第二行矩阵中,确定与所述第一抽样点的横坐标值相同的第一位置点;

计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值;

利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值,具体包括:

获取所述第一抽样点邻域范围内的全部像素点的第一横坐标值;

获取所述第一位置点邻域范围内的全部像素点的第二横坐标值;

根据所述第一横坐标值以及所述第二横坐标值,调用相似分数计算函数,计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点,具体为:

所述第一相似点的横坐标满足 <mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>&rsqb;</mo> </mrow> </munder> <mrow> <mo>(</mo> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>(</mo> <mrow> <msub> <mi>N</mi> <mi>l</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>N</mi> <mi>r</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

其中,所述x为所述第一抽样点的横坐标值;所述similarity(P,Q)为所述相似分数计算函数;所述N1(x)为所述第一抽样点邻域范围内的全部像素点的第一横坐标值;所述Nr(x+i)为所述第一位置点邻域范围内的全部像素点的第二横坐标值;所述p1,p2为所述邻域范围的上下限;所述i为常数。

结合第一方面,在第六种可能的实现方式中,所述利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围,具体包括:

判断所述视差是否大于预设的第一视差阈值;

将所述视差中大于所述第一视差阈值的视差作为第一子视差,并判断所述第一子视差是否大于预设的第二视差阈值;

将所述第一子视差中大于所述第二视差阈值的所述第一子视差作为第二子视差,并将第二子视差的最大视差作为所述视差范围的上限,将第二子视差的最小视差作为所述视差范围的下限。

结合第一方面,在第七种可能的实现方式中,若所述当前场景图像中人物唯一时,所述在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点,具体包括:

分别在所述第一行矩阵中和所述第二行矩阵中,确定所述第一行矩阵的第一重心点和所述第二行矩阵的第二重心点;

所述利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围,具体包括:

将所述第一重心点与所述第二重心点的差值作为所述当前场景图像中人物的视差。

在第二方面,本发明提供了一种视差计算装置,所述装置包括:

获取单元,用于获取当前场景图像中人物的第一掩码图和第二掩码图;

降维单元,用于对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵;

第一确定单元,用于在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点;

第二确定单元,用于利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围。

结合第二方面,在第一种可能实现的方式中,所述降维单元具体用于:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

利用所述每个像素点的掩码值,计算所述掩码图中每列像素点的掩码总值、或掩码均值、或掩码中位数值;

将所述掩码总值、或所述掩码均值或所述掩码中位数值作为所述行矩阵的对应列。

结合第二方面,在第二种可能实现的方式中,所述降维单元具体用于:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

判断所述掩码图中属于同一列像素点的掩码值是否大于掩码阈值;

如果所述掩码值大于所述掩码阈值,则计算大于所述掩码阈值的属于同一列像素点的纵坐标总值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标均值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标中位数值;

将所述纵坐标总值、或所述纵坐标均值、或所述纵坐标中位数值作为所述行矩阵的对应列。

结合第二方面,在第三种可能实现的方式中,所述第一确定单元,具体用于:

根据预设的抽样间隔模式或者随机模式,在所述第一行矩阵中,确定第一抽样点;

在所述第二行矩阵中,确定与所述第一抽样点的横坐标值相同的第一位置点;

计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值;

利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点。

结合第二方面的第三种可能实现的方式,在第四种可能实现的方式中,所述第一确定单元用于计算所述第一抽样点邻域范围内的全部像素点的相似 分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值,具体包括:

获取所述第一抽样点邻域范围内的全部像素点的第一横坐标值;

获取所述第一位置点邻域范围内的全部像素点的第二横坐标值;

根据所述第一横坐标值以及所述第二横坐标值,调用相似分数计算函数,计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值。

结合第二方面的第四种可能实现的方式,在第五种可能实现的方式中,所述第一确定单元用于利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点,具体为:

所述第一相似点的横坐标满足 <mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>&rsqb;</mo> </mrow> </munder> <mrow> <mo>(</mo> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>(</mo> <mrow> <msub> <mi>N</mi> <mi>l</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>N</mi> <mi>r</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

其中,所述x为所述第一抽样点的横坐标值;所述similarity(P,Q)为所述相似分数计算函数;所述N1(x)为所述第一抽样点邻域范围内的全部像素点的第一横坐标值;所述Nr(x+i)为所述第一位置点邻域范围内的全部像素点的第二横坐标值;所述p1,p2为所述邻域范围的上下限;所述i为常数。

结合第二方面,在第六种可能实现的方式中,所述第二确定单元,具体用于:

判断所述视差是否大于预设的第一视差阈值;

将所述视差中大于所述第一视差阈值的视差作为第一子视差,并判断所 述第一子视差是否大于预设的第二视差阈值;

将所述第一子视差中大于所述第二视差阈值的所述第一子视差作为第二子视差,并将第二子视差的最大视差作为所述视差范围的上限,将第二子视差的最小视差作为所述视差范围的下限。

结合第二方面,在第七种可能实现的方式中,若所述当前场景图像中人物唯一时,所述第一确定单元,具体用于:

分别在所述第一行矩阵中和所述第二行矩阵中,确定所述第一行矩阵的第一重心点和所述第二行矩阵的第二重心点;

所述第二确定单元,具体用于:

将所述第一重心点与所述第二重心点的差值作为所述当前场景图像中人物的视差。

在第三方面,本发明实施例提供了一种终端,所述终端包括:处理器和存储器;

所述存储器,用于存储程序代码;

所述处理器,用于读取所述存储器存数的程序代码,进而根据所述程序代码执行获取当前场景图像中人物的第一掩码图和第二掩码图;对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵;在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点;利用所述抽样点与所述 相似点的视差,确定所述当前场景图像中人物的视差范围。

因此,通过应用本发明实施例提供的一种视差计算方法、装置与终端,终端获取当前场景图像中人物的第一掩码图和第二掩码图,对第一掩码图和第二掩码图分别进行降维处理,得到第一行矩阵和第二行矩阵;终端在行矩阵中分别确定抽样点和相似点;利用抽样点与相似点的视差,确定当前场景图像中人物的视差范围。相比较现有的视差计算方法,本发明在根据抽样点确定相似点时,仅计算了行矩阵中抽样点和相似点邻域范围内像素点的相似分数值,进而确定相似点,而不再对整个图像的像素点进行计算后再匹配,解决了现有技术中视差计算方法的计算复杂度高,且计算准确率低的问题;大大降低了视差计算复杂度,并提高了计算准确率。

附图说明

图1为本发明实施例提供的一种视差计算方法流程图;

图2-A为本发明实施例提供的一种左视图;

图2-B为本发明实施例提供的一种右视图;

图3-A为本发明实施例提供的第一掩码图;

图3-B为本发明实施例提供的第二掩码图;

图4为本发明实施例提供的第一行矩阵和第二行矩阵示意图;

图5为本发明实施例提供的视差计算装置结构图;

图6为本发明实施例提供的终端硬件结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。

下面以图1为例详细说明本发明实施例一提供的视差计算方法,图1为本发明实施例提供的视差计算方法流程图,在本发明实施例中实施主体可以是PC机、或台式机等终端设备。如图1所示,该实施例具体包括以下步骤:

步骤110、获取当前场景图像中人物的第一掩码图和第二掩码图。

具体地,在演播室内(当前场景),摄像头(可为双目摄像头,或者两个普通摄像头)采集主播的视音频信息。摄像头将采集的视音频信息传输至终端(例如,PC机)。

可以理解的是,主播在录制视音频信息时,主播背后的背景布置为单一色彩幕布,其中作为示例而非限定,幕布颜色为绿幕或者蓝幕,在本发明实 施例中,背景布置为绿幕,为了后续的计算准确性,主播穿着非绿色服装。

终端对摄像头采集的视图(左视图、右视图)进行处理,该左右视图如图2-A以及图2-B所示,利用现有绿幕抠图技术,将主播图像从左右视图中抠出,得到当前场景图像中人物的第一掩码图和第二掩码图,如图3。

在本发明实施例中,左视图进行抠图处理后得到第一掩码图,右视图进行抠图处理后得到第二掩码图,在实际应用中也可是右视图进行抠图处理后得到第一掩码图,左视图进行抠图处理后得到第二掩码图,在此不做限定。

所述绿幕抠图技术具体为,对于某一视图中的每一像素点,根据该像素点的颜色值,判断该像素点是否为前景,并计算出该像素点的颜色值占前景颜色值的百分比,计算得到的百分比也即是该像素点的alpha值,通过对每一像素点计算alpha值,获取某一视图对应的alpha掩码图。

步骤120、对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵。

具体地,终端分别对第一掩码图和第二掩码图进行降维处理,得到与第一掩码图对应的第一行矩阵以及与第二掩码图对应的第二行矩阵。如图4所示,蓝色线为第一行矩阵(左行矩阵),绿色线为第二行矩阵(右行矩阵)。

进一步地,在一种实现方式中,终端对掩码图进行降维处理,得到与掩码图对应的行矩阵,具体包括:根据掩码图,终端获取掩码图中每个像素点 的掩码值(即alpha值);利用每个像素点的掩码值,终端计算掩码图中每列像素点的掩码总值(即累计像素点掩码值)、或掩码均值(即累计像素点掩码值后取平均值)、或掩码中位数值(即累计像素点掩码值后,对掩码值进行排序,取掩码中间值);终端将掩码总值、或掩码均值或掩码中位数值作为行矩阵的对应列。

在本发明实施例中,终端可针对每列选取计算不同的值,例如,终端计算第一列像素点的掩码总值;第二列计算像素点的掩码均值;第三列计算像素点的掩码中位数值,或者,每列计算相同的值,在此不做限定。

在另一种实现方式中,终端对掩码图进行降维处理,得到与掩码图对应的行矩阵,具体包括:根据掩码图,终端获取掩码图中每个像素点的掩码值(即alpha值);终端判断掩码图中属于同一列像素点的掩码值是否大于掩码阈值;如果掩码值大于掩码阈值,则终端计算大于掩码阈值的属于同一列像素点的纵坐标总值(即累计像素点的纵坐标值),或计算大于所述掩码阈值的属于同一列像素点的纵坐标均值(即累计像素点的纵坐标值后取平均值),或计算大于所述掩码阈值的属于同一列像素点的纵坐标中位数值(即累计像素点的纵坐标值后,对纵坐标值进行排序,取纵坐标中间值);终端将纵坐标总值、或纵坐标均值、或纵坐标中位数值作为行矩阵的对应列。

在本发明实施例中,终端可针对每列选取计算不同的值,例如,终端计算第一列像素点的纵坐标总值;第二列计算像素点的纵坐标均值;第三列计 算像素点的纵坐标中位数值,或者,每列计算相同的值,在此不做限定。

需要说明的是,终端对第一掩码图进行降维处理,得到第一掩码图对应的第一行矩阵,或者终端对第二掩码图进行降维处理,得到第二掩码图对应的第二行矩阵,均可选择上述两种方式中的任意一种,在此不做限定。

在本发明实施例中,所述行矩阵具体为1行n列的矩阵,所谓第一行矩阵和第二行矩阵是用于与第一掩码图和第二掩码图相对应的。

步骤130、在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点。

具体地,终端在第一行矩阵中确定抽样点,同时,根据确定的抽样点,终端在第二行矩阵中确定于抽样点对应的相似点。

进一步地,在第二行矩阵中,确定与第一行矩阵中每个抽样点对应的相似点,具体包括:

根据预设的抽样间隔模式或者随机模式,在第一行矩阵中,确定第一抽样点;在本发明实施例中,抽样间隔具体为大于等于0的正整数(n≥0),也即是每隔n个点抽取1个抽样点,抽样间隔可以为等间隔或不等间隔。终端确定第一抽样点后,获取第一抽样点的横坐标值。同时,在第二行矩阵中,终端确定与第一抽样点的横坐标值相同的第一位置点;终端计算第一抽样点邻域范围内的全部像素点的相似分数值以及第一位置点邻域范围内的全部像素点的相似分数值;利用第一抽样点的横坐标值以及相似分数值中的最大值, 确定与第一抽样点对应的第一相似点。

在本发明实施例中,可在先预设领域范围,所述邻域范围具体是指以第一抽样点的横坐标为中心,上下浮动的范围内全部像素点。例如,第一抽样点的横坐标为x,预设的邻域范围为上下20。也即是选择在x-20至x+20内全部像素点。

更进一步地,终端计算第一抽样点邻域范围内的全部像素点的相似分数值以及第一位置点邻域范围内的全部像素点的相似分数值,具体包括:终端分别获取第一抽样点邻域范围内的全部像素点的第一横坐标值;以及获取第一位置点邻域范围内的全部像素点的第二横坐标值;根据第一横坐标值以及第二横坐标值,终端调用相似分数计算函数,计算第一抽样点邻域范围内的全部像素点的相似分数值以及第一位置点邻域范围内的全部像素点的相似分数值。

更进一步地,终端利用第一抽样点的横坐标值以及相似分数值中的最大值,确定与第一抽样点对应的第一相似点,具体为:

第一相似点的横坐标需满足下述公式一:

<mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>&rsqb;</mo> </mrow> </munder> <mrow> <mo>(</mo> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>(</mo> <mrow> <msub> <mi>N</mi> <mi>l</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>N</mi> <mi>r</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow> 公式一

其中,所述x为所述第一抽样点的横坐标值;所述similarity(P,Q)为所述相似分数计算函数;所述N1(x)为所述第一抽样点邻域范围内的全部像素点的第一横坐标值;所述Nr(x+i)为所述第一位置点邻域范围内的全部像素点的第二 横坐标值;所述p1,p2为所述邻域范围的上下限;所述i为常数。

前文所述的similarity(P,Q)为相似分数计算函数,其作用于集合P以及集合Q。在本发明实施例中,集合P可由N1(x)替换,集合Q可由Nr(x+i)替换。一般性的,该函数可以是零均值归一化交叉相似度(Zero-mean Normalized Cross-Correlation),具体计算公式如下述公式二:

<mrow> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mrow> <mo>(</mo> <mi>P</mi> <mo>,</mo> <mi>Q</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>&Sigma;</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>P</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>Q</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> </mrow> <mroot> <mrow> <msub> <mi>&Sigma;</mi> <mi>i</mi> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>P</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>P</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> <msup> <mrow> <mo>(</mo> <msub> <mi>Q</mi> <mi>i</mi> </msub> <mo>-</mo> <mover> <mi>Q</mi> <mo>&OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mn>2</mn> </mroot> </mfrac> </mrow> 公式二

可以理解的是,在本发明实施例中并不限于采用相似分数计算函数计算相似分数,也可采用绝对差异之和(Sum of Absolute Differences),或差异平方之和(Sum of Squared Differences),或归一化交叉相似度(Normalized Cross-Correlation)等函数计算相似分数。上述计算公式均为公知公式,本发明实施例中,仅是采用该公式计算相似分数值。

步骤140、利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围。

具体地,根据步骤130确定的抽样点与对应的相似点,获取抽样点与相似点的横坐标值,将相似点的横坐标值与抽样点的横坐标值的差值作为两点之间的视差,通过该视差确定当前场景图像中人物的视差范围。例如,抽样点的横坐标值为x,相似点的横坐标值为x',则视差l'=x'-x。

可以理解的是,抽取的抽样点均为多个,因此,确定的相似点也均为多个。本步骤中的每一个视差,均为每个抽样点与其对应的相似点的差值,通 过多个视差确定确定当前场景图像中人物的视差范围。

进一步地,利用抽样点与相似点的视差,终端确定当前场景图像中人物的视差范围,具体包括:终端首先判断视差是否大于预设的第一视差阈值;终端将视差中大于第一视差阈值的视差作为第一子视差,并判断第一子视差是否大于预设的第二视差阈值;终端将第一子视差中大于第二视差阈值的第一子视差作为第二子视差,并将第二子视差的最大视差作为视差范围的上限,将第二子视差的最小视差作为视差范围的下限。

在本发明实施例中,第二视差阈值大于第一视差阈值;所述第一视差阈值用于对多个视差的相似度进行选择;所述第二视差阈值用于筛除出多个第一子视差中的个别误差。

其中,在确定视差范围时,还可仅判断一次,也即是终端判断视差是否大于预设的第二视差阈值,如果视差大于预设的第二视差阈值,则将大于第二视差阈值的,且视差最大值最为上限;将大于第二视差阈值的,且视差最小值最为下限。

因此,通过应用本发明实施例提供的视差计算方法,终端获取当前场景图像中人物的第一掩码图和第二掩码图,对第一掩码图和第二掩码图分别进行降维处理,得到第一行矩阵和第二行矩阵;终端在行矩阵中分别确定抽样点和相似点;利用抽样点与相似点的视差,确定当前场景图像中人物的视差范围。相比较现有的视差计算方法,本发明在根据抽样点确定相似点时,仅 计算了行矩阵中抽样点和相似点邻域范围内像素点的相似分数值,进而确定相似点,而不再对整个图像的像素点进行计算后再匹配,解决了现有技术中视差计算方法的计算复杂度高,且计算准确率低的问题;大大降低了视差计算复杂度,并提高了计算准确率。

需要说明的是,前文所描述的视差计算方法中,当前场景图像中可为1个或者多个。

优选地,在本发明实施例中,若当前场景图像中人物唯一时,在第二行矩阵中,确定与第一行矩阵中每个抽样点对应的相似点,具体包括:

终端分别在第一行矩阵中和第二行矩阵中,确定第一行矩阵的第一重心点和第二行矩阵的第二重心点。

利用抽样点与相似点的视差,确定当前场景图像中人物的视差范围,具体包括:

终端将第一重心点与第二重心点的差值作为当前场景图像中人物的视差。

需要说明的是,确定第一重心点和第二重心点的方法为本领域共知常识,在此不再复述。前述利用重心点的视差作为人物视差时,也可应用在当前场景图像中人物为多个的情况,但此时需保证每个人物保持在同一深度范围内。

上述实施例描述的方法均可实现视差计算方法,相应地,本发明实施例还提供了一种视差计算装置,用以实现前述实施例中提供的视差计算方法, 如图5所示,所述装置包括:获取单元510、降维单元520、第一确定单元530以及第二确定单元540。

所述装置包括的获取单元510,用于获取当前场景图像中人物的第一掩码图和第二掩码图;

降维单元520,用于对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵;

第一确定单元530,用于在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点;

第二确定单元540,用于利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围。

进一步地,所述降维单元520具体用于:根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

利用所述每个像素点的掩码值,计算所述掩码图中每列像素点的掩码总值、或掩码均值、或掩码中位数值;

将所述掩码总值、或所述掩码均值或所述掩码中位数值作为所述行矩阵的对应列。

进一步地,所述降维单元520具体用于:根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

判断所述掩码图中属于同一列像素点的掩码值是否大于掩码阈值;

如果所述掩码值大于所述掩码阈值,则计算大于所述掩码阈值的属于同一列像素点的纵坐标总值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标均值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标中位数值;

将所述纵坐标总值、或所述纵坐标均值、或所述纵坐标中位数值作为所述行矩阵的对应列。

进一步地,所述第一确定单元530,具体用于:根据预设的抽样间隔模式或者随机模式,在所述第一行矩阵中,确定第一抽样点;

在所述第二行矩阵中,确定与所述第一抽样点的横坐标值相同的第一位置点;

计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值;

利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点。

进一步地,所述第一确定单元530用于计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值,具体包括:

获取所述第一抽样点邻域范围内的全部像素点的第一横坐标值;

获取所述第一位置点邻域范围内的全部像素点的第二横坐标值;

根据所述第一横坐标值以及所述第二横坐标值,调用相似分数计算函数,计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值。

进一步地,所述第一确定单元530用于利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点,具体为:

所述第一相似点的横坐标满足 <mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>&rsqb;</mo> </mrow> </munder> <mrow> <mo>(</mo> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>(</mo> <mrow> <msub> <mi>N</mi> <mi>l</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>N</mi> <mi>r</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

其中,所述x为所述第一抽样点的横坐标值;所述similarity(P,Q)为所述相似分数计算函数;所述N1(x)为所述第一抽样点邻域范围内的全部像素点的第一横坐标值;所述Nr(x+i)为所述第一位置点邻域范围内的全部像素点的第二横坐标值;所述p1,p2为所述邻域范围的上下限;所述i为常数。

进一步地,所述第二确定单元540,具体用于:判断所述视差是否大于预设的第一视差阈值;

将所述视差中大于所述第一视差阈值的视差作为第一子视差,并判断所述第一子视差是否大于预设的第二视差阈值;

将所述第一子视差中大于所述第二视差阈值的所述第一子视差作为第二子视差,并将第二子视差的最大视差作为所述视差范围的上限,将第二子视差的最小视差作为所述视差范围的下限。

进一步地,若所述当前场景图像中人物唯一时,所述第一确定单元530,具体用于:

分别在所述第一行矩阵中和所述第二行矩阵中,确定所述第一行矩阵的第一重心点和所述第二行矩阵的第二重心点;

所述第二确定单元,具体用于:

将所述第一重心点与所述第二重心点的差值作为所述当前场景图像中人物的视差。

因此,通过应用本发明实施例提供的视差计算装置,该装置获取当前场景图像中人物的第一掩码图和第二掩码图,对第一掩码图和第二掩码图分别进行降维处理,得到第一行矩阵和第二行矩阵;该装置在行矩阵中分别确定抽样点和相似点;利用抽样点与相似点的视差,确定当前场景图像中人物的视差范围。相比较现有的视差计算方法,本发明在根据抽样点确定相似点时,仅计算了行矩阵中抽样点和相似点邻域范围内像素点的相似分数值,进而确定相似点,而不再对整个图像的像素点进行计算后再匹配,解决了现有技术中视差计算方法的计算复杂度高,且计算准确率低的问题;大大降低了视差计算复杂度,并提高了计算准确率。

另外,本发明实施例提供的终端可通过以下形式实现,用以实现本发明前述实施例中的视差计算方法,如图6所示,所述终端包括:处理器610、和存储器620。

可以理解的是,在终端中还包括一些必要的器件,例如:电源、音频电路、射频电路、WI-FI通信模块、USB接口等等,可以根据实际需要在终端中增加相应的器件。其中,上述器件在图6中未明确画出。

存储器620可以是永久存储器,例如硬盘驱动器和闪存,存储器620中具有程序代码和设备驱动程序。软件模块能够执行本发明上述方法的各种功能模块;设备驱动程序可以是网络和接口驱动程序。

在启动时,这些程序代码被加载到存储器620中,然后被处理器610访问并执行如下指令:

获取当前场景图像中人物的第一掩码图和第二掩码图;

对所述第一掩码图和所述第二掩码图分别进行降维处理,得到与所述第一掩码图对应的第一行矩阵以及与所述第二掩码图对应的第二行矩阵;

在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点;

利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围。

进一步地,所述处理器610访问存储器620的程序代码后,执行对所述掩码图进行降维处理,得到与所述掩码图对应的行矩阵过程的具体指令为:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

利用所述每个像素点的掩码值,计算所述掩码图中每列像素点的掩码总 值、或掩码均值、或掩码中位数值;

将所述掩码总值、或所述掩码均值或所述掩码中位数值作为所述行矩阵的对应列。

进一步地,所述处理器610访问存储器620的程序代码后,执行对所述掩码图进行降维处理,得到与所述掩码图对应的行矩阵过程的具体指令为:

根据所述掩码图,获取所述掩码图中每个像素点的掩码值;

判断所述掩码图中属于同一列像素点的掩码值是否大于掩码阈值;

如果所述掩码值大于所述掩码阈值,则计算大于所述掩码阈值的属于同一列像素点的纵坐标总值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标均值,或计算大于所述掩码阈值的属于同一列像素点的纵坐标中位数值;

将所述纵坐标总值、或所述纵坐标均值、或所述纵坐标中位数值作为所述行矩阵的对应列。

进一步地,所述处理器610访问存储器620的程序代码后,执行在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点过程的具体指令为:

根据预设的抽样间隔模式或者随机模式,在所述第一行矩阵中,确定第一抽样点;

在所述第二行矩阵中,确定与所述第一抽样点的横坐标值相同的第一位 置点;

计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值;

利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点。

进一步地,所述处理器610访问存储器620的程序代码后,执行计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值过程的具体指令为:

获取所述第一抽样点邻域范围内的全部像素点的第一横坐标值;

获取所述第一位置点邻域范围内的全部像素点的第二横坐标值;

根据所述第一横坐标值以及所述第二横坐标值,调用相似分数计算函数,计算所述第一抽样点邻域范围内的全部像素点的相似分数值以及所述第一位置点邻域范围内的全部像素点的相似分数值。

进一步地,所述处理器610访问存储器620的程序代码后,执行利用所述第一抽样点的横坐标值以及所述相似分数值中的最大值,确定与所述第一抽样点对应的第一相似点过程的具体指令为:

所述第一相似点的横坐标满足 <mrow> <msup> <mi>x</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mi>x</mi> <mo>+</mo> <mi>arg</mi> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>&rsqb;</mo> </mrow> </munder> <mrow> <mo>(</mo> <mi>s</mi> <mi>i</mi> <mi>m</mi> <mi>i</mi> <mi>l</mi> <mi>a</mi> <mi>r</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> <mo>(</mo> <mrow> <msub> <mi>N</mi> <mi>l</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>N</mi> <mi>r</mi> </msub> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>i</mi> </mrow> <mo>)</mo> </mrow> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

其中,所述x为所述第一抽样点的横坐标值;所述similarity(P,Q)为所述相似分数计算函数;所述N1(x)为所述第一抽样点邻域范围内的全部像素点的第 一横坐标值;所述Nr(x+i)为所述第一位置点邻域范围内的全部像素点的第二横坐标值;所述p1,p2为所述邻域范围的上下限;所述i为常数。

进一步地,所述处理器610访问存储器620的程序代码后,执行利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围过程的具体指令为:

判断所述视差是否大于预设的第一视差阈值;

将所述视差中大于所述第一视差阈值的视差作为第一子视差,并判断所述第一子视差是否大于预设的第二视差阈值;

将所述第一子视差中大于所述第二视差阈值的所述第一子视差作为第二子视差,并将第二子视差的最大视差作为所述视差范围的上限,将第二子视差的最小视差作为所述视差范围的下限。

进一步地,所述处理器610访问存储器620的程序代码后,执行若所述当前场景图像中人物唯一时,所述在所述第二行矩阵中,确定与所述第一行矩阵中每个抽样点对应的相似点过程的具体指令为:

分别在所述第一行矩阵中和所述第二行矩阵中,确定所述第一行矩阵的第一重心点和所述第二行矩阵的第二重心点;

所述利用所述抽样点与所述相似点的视差,确定所述当前场景图像中人物的视差范围,具体包括:

将所述第一重心点与所述第二重心点的差值作为所述当前场景图像中人 物的视差。

因此,通过应用本发明实施例提供的视差计算装置,该装置获取当前场景图像中人物的第一掩码图和第二掩码图,对第一掩码图和第二掩码图分别进行降维处理,得到第一行矩阵和第二行矩阵;该装置在行矩阵中分别确定抽样点和相似点;利用抽样点与相似点的视差,确定当前场景图像中人物的视差范围。相比较现有的视差计算方法,本发明在根据抽样点确定相似点时,仅计算了行矩阵中抽样点和相似点邻域范围内像素点的相似分数值,进而确定相似点,而不再对整个图像的像素点进行计算后再匹配,解决了现有技术中视差计算方法的计算复杂度高,且计算准确率低的问题;大大降低了视差计算复杂度,并提高了计算准确率。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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