基于光流对齐的双目手机预览实时计算视差图方法转让专利

申请号 : CN202110978324.2

文献号 : CN113436119B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 鲍翠平谭孝江徐小泉王冠

申请人 : 上海海栎创科技股份有限公司

摘要 :

本发明揭示了一种基于光流对齐的双目手机预览实时计算视差图方法,S100、输入基准帧图像及对应的视差图和当前帧图像,将基准帧图像和当前帧图像均转为灰度图像;S200、对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码;S300、对基准帧图像的灰度图像和当前帧图像的灰度图像均进行变换,并进行光流点的提取;S400、对当前帧图像的特征图像进行光流点跟踪及反跟踪;S500、根据可靠光流点的直方图对视差进行分层,并计算各层视差对应的单应变换矩阵;S600、将视差图中的点按照所在层的映射矩阵进行映射得到当前帧图像的视差图。本发明减少了运算时间达到实时计算视差的目的,实现了对手机视频图像进行高效的实时计算视差图。

权利要求 :

1.一种基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,包括如下步骤:

S100、输入基准帧图像及对应的视差图和当前帧图像,并将基准帧图像和当前帧图像均转为灰度图像;

S200、通过改进的感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码,比较两帧图像的相似程度,若相似进入S300,否则根据计算视差流程计算当前帧图像的视差图;

S300、对基准帧图像的灰度图像和当前帧图像的灰度图像均进行拉普拉斯变换,得到各自的特征图像,并对基准帧图像的特征图像进行光流点的提取,将提取的光流点个数值与预设阈值对比,若小于预设阈值,则根据计算视差流程计算当前帧图像的视差图;

S400、对当前帧图像的特征图像进行光流点跟踪及反跟踪,并去掉不可靠的光流点,同时统计可靠光流点的百分比,将其与预设比值对比,若大于等于预设比值,进入S500,否则根据计算视差流程计算当前帧图像的视差图;

S500、根据可靠光流点的直方图对视差进行分层,并计算各层视差对应的单应变换矩阵;

S600、将视差图中的点按照所在层的单应变换矩阵进行映射得到当前帧图像的视差图。

2.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S100中,所述灰度图像的转换公式为:Gray=0.3*R+0.59*G+0.11*B;

其中,RGB表示图像的三通道。

3.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S200中,所述感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码的具体操作步骤为:

S201、分别将基准帧图像的灰度图像和当前帧图像的灰度图像平分成8x8个图像块;

S202、分别计算基准帧图像的灰度图像和当前帧图像的灰度图像的平均以及其所有图像块的平均强度,计算公式为:

N为图像中所有像素,Gj为图像中第j个像素的灰度值;

S203、对基准帧图像的灰度图像平分的所有图像块的平均强度分别与基准帧图像的灰度图像的平均强度进行对比,若基准帧图像的灰度图像内的图像块的平均强度大于基准帧图像的灰度图像的平均强度,记编码序列值为1,反之记为0,同理得出当前帧图像的灰度图像的编码数列值。

4.如权利要求3所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S200中,所述比较两帧图像的相似程度的具体操作为:对比基准帧图像的灰度图像的编码序列值与当前帧图像的灰度图像对应位置的编码数列值,并统计值不相等的个数值,若该值大于设定阈值,则判定两帧图像不相似,反之则相似,所述设定阈值为15。

5.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S300中,所述基准帧图像的特征图像提取的光流点为Shi Tomasi角点,所述基准帧图像的特征图像光流点采用opencv的库函数 goodFeaturesToTrack进行提取,所述预设阈值为50。

6.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S400中,所述当前帧图像的特征图像光流点的跟踪及反跟踪具体步骤如下:S401、采用金字塔LK光流跟踪算法依次找出基准帧图像的特征图像的光流点在当前帧图像的特征图像中对应的所有光流点;

S402、利用光流点反跟踪法分别找到当前帧图像的特征图像内每个光流点在基准帧图像的特征图像中对应的光流点及状态标志。

7.如权利要求6所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S400中,所述可靠光流点的判定步骤为:S411、计算每个光流点的状态标志数值;

其中,si为第i个光流点的状态标志,ai.x 和ai.y分别表示基准帧图像的特征图像内第’ ’

i个光流点的横坐标和纵坐标,ai . x,ai . y分别表示当前帧特征图像通过反跟踪找到的在基准帧特征图像中对应的光流点的横坐标和纵坐标;

S421、根据上述计算的数值进行判断,若光流点的状态标志值为1,则判断该光流点为可靠光流点。

8.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S400中,所述预设比值的数值为0.5。

9.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S500中,根据可靠光流点的直方图对视差进行分层,并计算各层视差对应的单应变换矩阵的具体实施步骤如下:

S501、计算光流点的直方图,直方图的横坐标为光流点的视差,纵坐标为此视差的光流点的个数;

S502、遍历直方图找到极小值点,作为分层点,将光流点分为多层;

S503、根据 RANSAC算法计算每层光流点的单应矩阵。

10.如权利要求1所述的基于光流对齐的双目手机预览实时计算视差图方法,其特征在于,在步骤S600中,所述得到当前帧的视差图的具体操作步骤为:S601、根据视差图中的点的视差找到此点所在的视差层;

S602、将视差图中的点按照所在层的单应变换矩阵通过opencv 的 findHomography 函数进行映射计算,得到新的视差图,所述计算公式为:_x=x*H(0,0)+y*H(0,1)+H(0,2)_y=x*H(1,0)+y*H(1,1)+H(1,2)_w=x*H(2,0)+y*H(2,1)+H(2,2)’

x=round(_x/(_w+t))’

y=round(_y/(_w+t));

其中,t是为了避免分母为零而加的一个小的非零常数,x和y分别为视差图中的点的横坐标和纵坐标,H为点所在层的单应变换矩阵。

说明书 :

基于光流对齐的双目手机预览实时计算视差图方法

技术领域

[0001] 本发明涉及视频图像处理技术领域,特别是涉及一种基于光流对齐的双目手机预览实时计算视差图方法。

背景技术

[0002] 在立体视觉中最需要解决的问题之一是准确实时提取出场景的深度信息,而深度信息的实时准确计算一直是立体视觉领域中的难点和核心技术,所以研究深度信息的实时
准确计算具有十分重要的价值。深度信息计算可以转换为视差计算,改进视差计算的方法
受到大家广泛的关注。本文研究的是在双摄手机上根据左右视频帧计算视差,从而完成景
深计算,因为手机预览每秒是30帧图,在低端平台如果每帧都计算视差或者手机稍微一动
就重新计算视差,会造成手机cpu很大负载,进而会导致手机预览卡顿,影响客户使用感,在
预览的时候手机基本不动或者有轻微抖动,这使得前后两帧之间信息的有很大的冗余性。

发明内容

[0003] 本发明的目的在于,提供一种基于光流对齐的双目手机预览实时计算视差图方法,解决在低端手机平台预览不能实时计算视差图的问题。
[0004] 为解决上述技术问题,本发明提供一种基于光流对齐的双目手机预览实时计算视差图方法,包括如下步骤:
[0005] S100、输入基准帧图像及对应的视差图和当前帧图像,并将基准帧图像和当前帧图像均转为灰度图像;
[0006] S200、通过改进的感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码,比较两帧图像的相似程度,若相似进入S300,否则根据计算视差流程计算当前
帧图像的视差图;
[0007] S300、对基准帧图像的灰度图像和当前帧图像的灰度图像均进行拉普拉斯变换,得到各自的特征图像,并对基准帧图像的特征图像进行光流点的提取,将提取的光流点个
数值与预设阈值对比,若小于预设阈值,则根据计算视差流程计算当前帧图像的视差图;
[0008] S400、对当前帧图像的特征图像进行光流点跟踪及反跟踪,并去掉不可靠的光流点,同时统计可靠光流点的百分比,将其与预设比值对比,若大于等于预设比值,进入S500,
否则根据计算视差流程计算当前帧图像的视差图;
[0009] S500、根据可靠光流点的直方图对视差进行分层,并计算各层视差对应的单应变换矩阵;
[0010] S600、将视差图中的点按照所在层的单应变换矩阵进行映射得到当前帧图像的视差图。
[0011] 进一步的,在步骤S100中,所述灰度图像的转换公式为:
[0012]
[0013] 其中,RGB表示图像的三通道。
[0014] 进一步的,在步骤S200中,所述感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码的具体操作步骤为:
[0015] S201、分别将基准帧图像的灰度图像和当前帧图像的灰度图像平分成8x8个图像块;
[0016] S202、分别计算基准帧图像的灰度图像和当前帧图像的灰度图像的平均以及其所有图像块的平均强度,计算公式为:
[0017] ;
[0018] N为图像中所有像素,Gj为图像中第j个像素的灰度值;
[0019] S203、对基准帧图像的灰度图像平分的所有图像块的平均强度分别与基准帧图像的灰度图像的平均强度进行对比,若基准帧图像的灰度图像内的图像块的平均强度大于基
准帧图像的灰度图像的平均强度,记编码序列值为1,反之记为0,同理得出当前帧图像的灰
度图像的编码数列值。
[0020] 进一步的,在步骤S200中,所述判断两帧图像的相似程度的具体操作为:对比基准帧图像的灰度图像的编码序列值与当前帧图像的灰度图像对应位置的编码数列值,并统计
值不相等的个数值,若该值大于设定阈值,则判定两帧图像不相似,反之则相似,所述设定
阈值为15。
[0021] 进一步的,在步骤S300中,所述基准帧图像的特征图像提取的光流点为Shi Tomasi  角点,所述基准帧图像的特征图像光流点采用opencv的库函数 
goodFeaturesToTrack进行提取,所述预设阈值为50。
[0022] 进一步的,在步骤S400中,所述当前帧图像的特征图像光流点的跟踪及反跟踪具体步骤如下:
[0023] S401、采用金字塔LK光流跟踪算法依次找出基准帧图像的特征图像的光流点在当前帧图像的特征图像中对应的所有光流点;
[0024] S402、利用光流点反跟踪法分别找到当前帧图像的特征图像内每个光流点在基准帧图像的特征图像中对应的光流点及状态标志。
[0025] 进一步的,在步骤S400中,所述可靠光流点的判定步骤为:
[0026] S411、计算每个光流点的状态标志数值;
[0027] ;
[0028] 其中,si为第i个光流点的状态标志,ai.x 和ai.y分别表示基准帧图像的特征图像’ ’
内第i个光流点的横坐标和纵坐标,ai . x,ai . y分别表示当前帧特征图像通过反跟踪找
到的在基准帧特征图像中对应的光流点的横坐标和纵坐标;
[0029] S421、根据上述计算的数值进行判断,若光流点的状态标志值为1,则判断该光流点为可靠光流点。
[0030] 进一步的,在步骤S400中,所述预设比值的数值为0.5。
[0031] 进一步的,在步骤S500中,所述获取映射矩阵的具体实施步骤如下:
[0032] S501、计算光流点的直方图,直方图的横坐标为光流点的视差,纵坐标为此视差的光流点的个数;
[0033] S502、遍历直方图找到极小值点,作为分层点,将光流点分为多层;
[0034] S503、根据 RANSAC算法计算每层光流点的单应矩阵。
[0035] 进一步的,在步骤S600中,所述得到当前帧的视差图的具体操作步骤为:
[0036] S601、根据视差图中的点的视差找到此点所在的视差层;
[0037] S602、将视差图中的点按照所在层的单应变换矩阵通过opencv  的 findHomography 函数进行映射计算,得到新的视差图,所述计算公式为:
[0038]
[0039]
[0040]
[0041] x’=round(_x/(_w+t))
[0042] y’=round(_y/(_w+t));
[0043] 其中,t是为了避免分母为零而加的一个小的非零常数,x和y分别为视差图中的点的横坐标和纵坐标,H为点所在层的单应变换矩阵。

附图说明

[0044] 图1为本发明基于光流对齐的双目手机预览实时计算视差图方法流程图;
[0045] 图2为本发明基于光流对齐的双目手机预览实时计算视差图实施例流程图。

具体实施方式

[0046] 下面将结合示意图对本发明的基于光流对齐的双目手机预览实时计算视差图方法进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修
改在此描述的本发明,而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本
领域技术人员的广泛知道,而并不作为对本发明的限制。
[0047] 在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非
精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0048] 如图1所示,本发明实施例提出了一种基于光流对齐的双目手机预览实时计算视差图方法,包括如下步骤:
[0049] S100、输入基准帧图像及对应的视差图和当前帧图像,并将基准帧图像和当前帧图像均转为灰度图像;
[0050] 具体的,灰度图像的转换公式为:
[0051]
[0052] 其中,RGB表示图像的三通道。
[0053] S200、通过改进的感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码,比较两帧图像的相似程度,若相似进入S300,否则根据计算视差流程计算当前
帧图像的视差图;
[0054] 具体的,感知哈希编码对基准帧图像的灰度图像和当前帧图像的灰度图像进行编码的具体操作步骤为:
[0055] S201、分别将基准帧图像的灰度图像和当前帧图像的灰度图像平分成8x8个图像块;
[0056] S202、分别计算基准帧图像的灰度图像和当前帧图像的灰度图像的平均以及其所有图像块的平均强度,计算公式为:
[0057]
[0058] N为图像中所有像素,Gj为图像中第j个像素的灰度值;
[0059] S203、对基准帧图像的灰度图像平分的所有图像块的平均强度分别与基准帧图像的灰度图像的平均强度进行对比,若基准帧图像的灰度图像内的图像块的平均强度大于基
准帧图像的灰度图像的平均强度,记编码序列值为1,反之记为0,同理得出当前帧图像的灰
度图像的编码数列值;
[0060] 具体的,判断两帧图像的相似程度的具体操作为:对比基准帧图像的灰度图像的编码序列值与当前帧图像的灰度图像对应位置的编码数列值,并统计值不相等的个数值,
若该值大于设定阈值,设定阈值为15,则判定两帧图像不相似,反之则相似。
[0061] S300、对基准帧图像的灰度图像和当前帧图像的灰度图像均进行拉普拉斯变换,得到各自的特征图像,并对基准帧图像的特征图像进行光流点的提取,将提取的光流点个
数值与预设阈值对比,预设阈值为50,若小于预设阈值,则根据计算视差流程计算当前帧图
像的视差图;
[0062] 具体的,基准帧图像的特征图像提取的光流点为Shi Tomasi 角点,所述基准帧图像的特征图像光流点采用opencv的库函数 goodFeaturesToTrack进行提取。
[0063] S400、对当前帧图像的特征图像进行光流点跟踪及反跟踪,并去掉不可靠的光流点,同时统计可靠光流点的百分比,将其与预设比值对比,预设比值设置为0.5,若大于等于
预设比值,进入S500,否则根据计算视差流程计算当前帧图像的视差图;
[0064] 具体的,当前帧图像的特征图像光流点的跟踪及反跟踪具体步骤如下:
[0065] S401、采用金字塔LK光流跟踪算法依次找出基准帧图像的特征图像的光流点在当前帧图像的特征图像中对应的所有光流点;
[0066] S402、利用光流点反跟踪法分别找到当前帧图像的特征图像内每个光流点在基准帧图像的特征图像中对应的光流点及状态标志;
[0067] 具体的,可靠光流点的判定步骤为:
[0068] S411、计算每个光流点的状态标志数值;
[0069] ;
[0070] 其中,si为第i个光流点的状态标志,ai.x 和ai.y分别表示基准帧图像的特征图像’ ’
内第i个光流点的横坐标和纵坐标,ai . x,ai . y分别表示当前帧特征图像通过反跟踪找
到的在基准帧特征图像中对应的光流点的横坐标和纵坐标;
[0071] S421、根据上述计算的数值进行判断,若光流点的状态标志值为1,则判断该光流点为可靠光流点。
[0072] S500、根据可靠光流点的直方图对视差进行分层,并计算各层视差对应的单应变换矩阵;
[0073] 具体的,获取映射矩阵的具体实施步骤如下:
[0074] S501、计算光流点的直方图,直方图的横坐标为光流点的视差,纵坐标为此视差的光流点的个数;
[0075] S502、遍历直方图找到极小值点,作为分层点,将光流点分为多层;
[0076] S503、根据 RANSAC算法计算每层光流点的单应矩阵。
[0077] S600、将视差图中的点按照所在层的单应变换矩阵进行映射得到当前帧图像的视差图;
[0078] 具体的,得到当前帧的视差图的具体操作步骤为:
[0079] S601、根据视差图中的点的视差找到此点所在的视差层;
[0080] S602、将视差图中的点按照所在层的映射矩阵进行映射计算,得到新的视差图,所述计算公式为:
[0081]
[0082]
[0083]
[0084] x’=round(_x/(_w+t))
[0085] y’=round(_y/(_w+t));
[0086] 其中,t是为了避免分母为零而加的一个小的非零常数,x和y分别为视差图中的点的横坐标和纵坐标,H为点所在层的映射矩阵。
[0087] 以下列举所述基于光流对齐的双目手机预览实时计算视差图方法的较优实施例,以清楚的说明本发明的内容,应当明确的是,本发明的内容并不限制于以下实施例,其他通
过本领域普通技术人员的常规技术手段的改进亦在本发明的思想范围之内。
[0088] 如图2所示,提供所述基于光流对齐的双目手机预览实时计算视差图的一个实施例的具体操作流程,具体实施如下:
[0089] 第一步:输入基准帧图像A及其对应的视差图B和当前帧图像C,利用灰度图像的转’ ’
换公式计算得到灰度图像A和C:
[0090] A’=0.3*RA+0.59*GA+0.11*BA
[0091] C’=0.3*RC+0.59*GC+0.11*BC;
[0092] 第二步:首先将图像A’平均分为8*8个图像块,记为Ai’,i=1,2......64,同时将图’ ’ ’ ’ ’ ’
像C平均分为8*8个图像块,记为Ci,i=1,2......64;接着计算A、Ai 、C和Ci 的平均强度,
’ ’ ’ ’
Ai、A、Ci和C的平均强度计算公式分别如下:
[0093]
[0094]
[0095]
[0096] ;
[0097] Ai’、A’、Ci’和C’的平均强度计算完成后,进行A’和C’编码序列的计算,记A’和C’编码序列分别为ha 和hc,通过下列公式计算:
[0098]
[0099] ;
[0100] 表示ha 的第i 元素的值, 表示hc的第i 元素的值,i=1,2...64,最后对比编码序列ha和 hc 对应位置的值,并统计值不相等的个数记为d ,如果d大于15,根据计算视差
’ ’
流程计算当前帧图像C的视差图B,使得基准帧图像A=C,B=B,反之进入下一步;
[0101] 第三步:首先对A’和C’进行进行拉普拉斯变换,得到特征图像DA和DC,接着调用opencv 的库函数 goodFeaturesToTrack提取特征图像DA的光流点a,如果光流点a的个数

小于50,则根据计算视差流程计算当前帧图像C的视差图,使得基准帧图像A=C,B=B;
[0102] 第四步:在特征图像DA的特征点提取后,接着利用光流跟踪法找到图像DC对应的光流点b,并利用光流点反跟踪法找到光流点b在图像DA中的光流点a’及状态标志s,将光流点
a中的每个光流点记为ai,其中ai表示第i个光流点,i=1,2...N,aix和aiy分别表示光流点ai
的横坐标和纵坐标,同理标记光流点a’,s标记每个光流点是否跟上,ai对应每个si,si为0时
表示光流点反跟踪失败,为1时表示反跟踪有效,按照以下公式对标记s进行修正:
[0103] ;
[0104] 依次计算每个s值后,统计状态标记s中为1的个数占总共个数的百分比,记为d1,’
如果小于0.5,则根据计算视差流程计算当前帧图像C的视差图,使得基准帧图像A=C,B=B ,
反之进入下一步;
[0105] 第五步:计算光流点的直方图,直方图的横坐标为光流点的视差,纵坐标为此视差的光流点的个数,接着遍历直方图找到极小值点,作为分层点,将光流点分为M层,第m个分
层点的视差记为im ,m同时表示层数,m=1,2...M,接着根据RANSAC算法求m层光流点的单应
矩阵 Hm;
[0106] 第六步:根据视差图B中的点的视差找到此点所在的视差层,接着将视差图B中的’
点按照所在层的单应变矩阵通过如下公式进行映射得到新的视差图B:
[0107] _x=x*H(0,0)+y*H(0,1)+H(0,2)
[0108] _y=x*H(1,0)+y*H(1,1)+H(1,2)
[0109] _w=x*H(2,0)+y*H(2,1)+H(2,2)
[0110] x’=round(_x/(_w+t))
[0111] y’=round(_y/(_w+t));
[0112] 得到新的视差图B’后,将下一帧图像赋给C ,跳转至第一步重新开始。
[0113] 综上所述,本发明相对于现有技术,具有如下优势:
[0114] 本发明利用帧之间的冗余性,通过改进的感知哈希编码方式,并引入光流跟踪及视差图分层来对视差图进行单应变换而不是每帧图像都重新计算视差,减少了运算时间达
到实时计算视差的目的,实现了对手机视频图像进行高效的实时计算视差图。
[0115] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围
之内,则本发明也意图包含这些改动和变型在内。