相机抖动检测方法、装置、设备、存储介质和程序产品与流程

文档序号:31765141发布日期:2022-10-12 04:08阅读:46来源:国知局
1.本技术涉及电子设备
技术领域
:,特别是涉及一种相机抖动检测方法、装置、设备、存储介质和程序产品。
背景技术
::2.当前,通过设置在诸如手机等电子设备中的相机进行拍摄在人们的日常生活中已经越来越常见了,其中,相机的拍摄质量是目前各方都关注的热点问题。实际应用中,影响相机拍摄质量的一大问题就是手持不稳,导致相机抖动,例如边走边拍、还未稳定好相机就按下快门等情况都会极大地影响相机的拍摄质量。3.在拍摄过程中,检测相机是否抖动是改善相机拍摄质量的前提,因此,目前,亟需一种检测相机是否抖动的方法。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够检测相机是否抖动的相机抖动检测方法、装置、设备、存储介质和程序产品。5.第一方面,提供了一种相机抖动检测方法,所述方法包括:6.获取相机拍摄到的视频流,并从所述视频流中每间隔n帧提取候选帧,得到帧序列,并从所述帧序列中获取各所述候选帧的目标参考帧,所述帧序列包括多个所述候选帧,n为正整数;对于各所述候选帧,对所述候选帧和所述候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个所述特征点对将所述候选帧上的像素映射至所述候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,所述运动量参数用于表征所述候选帧中的对象相较于所述候选帧的目标参考帧中的对象的运动变化;根据各所述候选帧的运动量参数,确定所述相机的抖动状态。7.第二方面,提供了一种相机抖动检测装置,所述装置包括:8.获取模块,用于获取相机拍摄到的视频流;9.提取模块,用于从所述视频流中每间隔n帧提取候选帧,得到帧序列,并从所述帧序列中获取各所述候选帧的目标参考帧,所述帧序列包括多个所述候选帧,n为正整数;10.第一确定模块,用于对于各所述候选帧,对所述候选帧和所述候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个所述特征点对将所述候选帧上的像素映射至所述候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,所述运动量参数用于表征所述候选帧中的对象相较于所述候选帧的目标参考帧中的对象的运动变化;11.第二确定模块,用于根据各所述候选帧的运动量参数,确定所述相机的抖动状态。12.第三方面,本技术还提供了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的步骤。13.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的步骤。14.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的步骤。15.上述相机抖动检测方法、装置、设备、存储介质和程序产品,通过获取相机拍摄到的视频流,并从该视频流中每间隔n帧提取候选帧,得到帧序列,并从帧序列中获取各个候选帧的目标参考帧,而后,对于各个候选帧,对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,接着,根据多个特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,最后,根据各个候选帧的运动量参数,确定相机的抖动状态,通过这样的方式最终确定了相机抖动状态,以此为基础,即可实现对相机拍摄质量的改善。附图说明16.图1为一个实施例中相机抖动检测方法的流程示意图;17.图2为一个实施例中从视频流中提取候选帧的示意图;18.图3为一个实施例中电子设备在确定相机抖动状态的计算逻辑中,输入数据和输出数据的示意图;19.图4为一个实施例中确定候选帧的目标参考帧的流程示意图;20.图5为一个实施例中电子设备对候选采样帧和参考采样帧进行特征点匹配处理的流程示意图;21.图6为一个实施例中参考采样帧中检测到的第一特征点的示例性的示意图;22.图7为一个实施例中在候选采样帧中进行搜索的流程示意图;23.图8为一个实施例中参考采样帧和候选采样帧中特征点的匹配示意图;24.图9为一个实施例中确定透视变换参数的流程示意图;25.图10为一个实施例中确定运动量参数的流程示意图;26.图11为一个实施例中另一相机抖动检测方法的流程示意图;27.图12为一个实施例中相机抖动检测装置的结构框图;28.图13为一个实施例中电子设备的内部结构图。具体实施方式29.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。30.当前,通过设置在诸如手机等电子设备中的相机进行拍摄在人们的日常生活中已经越来越常见了。其中,在用户反馈的拍摄差评中,像素低,拍照不清晰等占了很大的比例。一般来说,如果拍摄场景的亮度正常、拍摄画面中没有运动物体、手持拍照稳定,那么相机拍摄到质量较好的图像并不困难,然而在弱光、暗光的拍摄场景下,或者手持不稳拍照(如边走边拍、还未稳定好相机就按下快门)的情况下,很容易拍摄到模糊不清的图像。31.在当前的一种技术中,可以通过减小曝光时间并结合特定图像算法处理的方式来提高相机拍摄图像的清晰度,降低拍糊的概率,这种方式在手持不稳拍照(也即是相机抖动)的情况下,可以显著地提升相机的图像拍摄质量,然而,在手持拍照稳定(也即是相机没有抖动)的情况下,减小曝光时间,反而会使噪声增大,从而降低图像拍摄质量,而如果后续通过图像降噪算法来恢复图像中的细节,又会额外增加计算成本和时间。32.基于以上的说明可知,实时、准确地判断出拍照时相机的抖动情况对改善图像拍摄质量有重要的实际意义,因此,目前,亟需一种检测相机是否抖动的方法。33.基于此,本技术实施例提供了一种能够检测相机是否抖动的相机抖动检测方法、装置、设备、存储介质和程序产品,需要说明的是,本技术实施例提供的相机抖动检测方法,其执行主体可以是相机抖动检测装置。该相机抖动检测装置可以通过软件、硬件或者软硬件结合的方式实现成为电子设备的部分或者全部。其中,电子设备中设置有相机,电子设备可以但不限于是各种笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。34.在一个实施例中,如图1所示,提供了一种相机抖动检测方法,下面,以该方法的执行主体为电子设备为例进行说明,读者应该理解,在一些情况下,该执行主体还可以是服务器,并通过与电子设备的交互来实现本技术实施例提供的相机抖动检测方法,如图1所示,该相机抖动检测方法包括以下步骤:35.步骤101、电子设备获取相机拍摄到的视频流,并从视频流中每间隔n帧提取候选帧,得到帧序列,并从帧序列中获取各候选帧的目标参考帧。36.其中,该帧序列包括多个候选帧,n为正整数。37.在实际应用中,相机拍摄图像之前往往会先进入预览状态,在预览状态下,相机会持续拍摄。步骤101中,电子设备正是可以获取相机在预览状态下持续拍摄得到的视频流。38.实际应用中,相机的预览帧率通常为30fps,即打开相机1秒可获得30帧yuv格式或rgb格式的图像,因此,视频流的数据量较大(每秒有30帧图像,打开相机预览1分钟则有1800帧图像),如果每帧图像都做计算,会导致电子设备的计算量、计算耗时以及功耗等增加,因此,在步骤101中设计了跳帧的方法,也即是,从视频流中每间隔n帧提取候选帧,在后续步骤中,仅对提取的候选帧进行计算,这可以理解为对视频流进行采样,以提升计算实时性,降低功耗。39.请参考图2,其示出了在n=2的情况下,从视频流中提取候选帧的示意图。实际应用中,可以将n设置为小于6的正整数,当然,这也是示例性的说明,并不用于限定本技术实施例提供的技术方案的范围。40.在得到帧序列之后,电子设备可以从帧序列中获取各候选帧的目标参考帧,换言之,帧序列中每一候选帧都有对应的目标参考帧,实际应用中,候选帧对应的目标参考帧也位于帧序列中,可选的,候选帧对应的目标参考帧在时序上位于候选帧之前。41.步骤102、对于各候选帧,电子设备对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,电子设备根据多个特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,电子设备根据像素在映射前后的位置变化确定运动量参数。42.其中,该运动量参数用于表征该候选帧中的对象相较于该候选帧的目标参考帧中的对象的运动变化,在实际应用中,该运动量参数可以为位移向量。43.步骤103、电子设备根据各候选帧的运动量参数,确定相机的抖动状态。44.由于候选帧与其目标参考帧的拍摄间隔通常较短,因此,在手持稳定拍照的情况下,候选帧中的对象相较于目标参考帧中的对象的运动变化较小,而在手持不稳拍照的情况下,由于相机抖动,使得候选帧中的对象相较于目标参考帧中的对象的运动变化较大,正是考虑到上述因素,在步骤103中,电子设备可以根据各候选帧的运动量参数,确定相机的抖动状态。45.在本技术的可选实施例中,电子设备可以获取运动量参数阈值,电子设备可以根据各候选帧的运动量参数与该运动量参数阈值的大小关系,来确定相机的抖动状态,其中,该运动量参数阈值可以由技术人员进行设定,本技术实施例对其不做具体限定。46.请参考图3,其为电子设备在确定相机抖动状态的计算逻辑中,输入数据和输出数据的示意图。47.在本技术的可选实施例中,在执行步骤102时,电子设备可以根据多个特征点对确定候选帧和其目标参考帧之间的透视变换参数,并基于该透视变换参数将候选帧上的像素映射至其目标参考帧上。48.其中,透视变换是将二维平面中的点映射到三维空间,再从三维空间映射到另一个二维平面的映射方式,在本技术实施例中,透视变换参数具体可以为透视变换矩阵,电子设备可以基于该透视变化矩阵实现透视变换。49.例如,像素(x1,y1)为候选帧上的一个像素,h是已经求得的透视变换矩阵,像素(x1,y1)映射至目标参考帧上后其位置坐标为(x2,y2),则有以下数学关系式:[0050][0051]x=m11*x1+m12*y1+m13[0052]y=m21*x1+m22*y1+m23[0053]z=m31*x1+m32*y1+m33[0054][0055][0056]根据以上数学关系式可知,在计算得到透视变换矩阵h的基础上,对于候选帧上的任一像素,都可以计算得到该像素映射至目标参考帧上的位置坐标。[0057]一般来说,利用4个特征点对即可计算透视变换矩阵,因此,在步骤102中,电子设备可以从该多个特征点对中选择4个特征点对(例如,随机选择),而后,利用选中的4个特征点对计算透视变换矩阵,在实际应用中,可以使用优化算法ransac(英文:randomsampleconsensus;中文:随机抽样一致)迭代计算得到透视变换矩阵。[0058]在本技术的可选实施例中,电子设备可以不将候选帧中的每一像素都映射至其目标参考帧上,而是将感兴趣区域内的像素映射至其目标参考帧上。[0059]其中,感兴趣区域可以为候选帧的中心区域,其中,该中心区域的大小可以根据经验任意指定,例如,该感兴趣区域可以为1/2候选帧区域、3/4候选帧区域等,这样做一方面可以降低计算量、功耗等,另一方面可以避免候选帧四周像素对运动量参数的运算结果的影响。[0060]请参考图4,在图1所示实施例的基础上,其示出了在步骤101中确定各候选帧的目标参考帧的流程图,如图4所示,确定各候选帧的目标参考帧包括以下步骤:[0061]步骤401、对于各候选帧,若该候选帧不符合第一预设条件,则将帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧。[0062]步骤402、若该候选帧符合第一预设条件,则将帧序列中的前一候选帧作为该候选帧的目标参考帧。[0063]如上文所述,对于帧序列中的每一候选帧,电子设备都需要对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,在特征点匹配的过程中,涉及到对目标参考帧进行特征点识别的技术过程。[0064]那么,如果每一候选帧的目标参考帧都互不相同,势必就需要电子设备对数量较多的目标参考帧都进行特征点识别,这无疑会增加电子设备的计算量、计算时延和功耗等,考虑到这一点,在本技术的可选实施例中,可以令多个候选帧共用一个目标参考帧,从而降低电子设备的计算量、计算时延和功耗等。[0065]可选的,对于每一候选帧,电子设备都需要判断该候选帧是否满足第一预设条件,该第一预设条件可以为更改参考帧的条件,例如,在一种可能的实现方式中,电子设备可以检测该候选帧的计算时刻距上一次对目标参考帧进行特征点识别的时刻之间的时长是否小于预设时长阈值,若小于,则说明该候选帧不满足第一预设条件,若不小于,则说明该候选帧满足第一预设条件,在另一种可能的实现方式中,电子设备可以该候选帧与帧序列中前一候选帧的目标参考帧之间间隔的帧数,若该帧数小于预设帧数阈值,则说明该候选帧不满足第一预设条件,若该帧数不小于预设帧数阈值,则说明该候选帧满足第一预设条件。[0066]在不满足第一预设条件的情况下,该候选帧需要和帧序列中前一候选帧共用同一目标参考帧,在这种情况下,电子设备可以将帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧。[0067]在满足第一预设条件的情况下,说明帧序列中前一候选帧的目标参考帧与该候选帧差别较大,利用其进行计算会出现偏差乃至错误,因此,在这种情况下,需要为该候选帧分配新的目标参考帧,具体来说,在满足第一预设条件的情况下,电子设备可以将帧序列中的前一候选帧作为该候选帧的目标参考帧。[0068]举例来说,假设待分配目标参考帧的候选帧为帧序列中的第k个候选帧,则电子设备可以检测该第k个候选帧是否满足第一预设条件,若不满足,则电子设备可以将第k-1个候选帧的目标参考帧作为第k个候选帧的目标参考帧,这样,就使得第k-1个候选帧和第k个候选帧共用同一目标参考帧,反之,若满足,则电子设备可以将第k-1个候选帧作为第k个候选帧的目标参考帧,换言之,电子设备可以为第k个候选帧重新分配新的目标参考帧,且,该重新分配的目标参考帧为帧序列中第k个候选帧的前一候选帧。[0069]在本技术的可选实施例中,步骤102中,在进行特征点匹配处理之前,电子设备可以对候选帧和其目标参考帧进行下采样处理,其中,该下采样处理可以为抗锯齿下采样处理,(英文:anti-aliasfiltering),得到候选采样帧和参考采样帧,而后,电子设备可以对该候选采样帧和该参考采样帧进行特征点匹配处理。[0070]抗锯齿下采样处理可以在下采样的同时,减小下采样后图像上的锯齿效应。可选的,抗锯齿下采样的技术过程可以包括:1、采用方框滤波(英文:boxfilter)对图像进行滤波处理,得到较为平滑的滤波图像,2、采用最近邻插值法(英文:nearest)对滤波图像进行下采样。在本技术的可选实施例中,经过抗锯齿下采样之后,图像的长宽尺寸缩放为原来的1/2,换言之,参考采样帧的长为目标参考帧的长的一半,宽为目标参考帧的宽的一半,候选采样帧的长为候选帧的长的一半,宽为候选帧的宽的一半。[0071]请参考图5,其示出了电子设备对候选采样帧和参考采样帧进行特征点匹配处理的流程图,如图5所示,该特征点匹配处理过程包括以下步骤:[0072]步骤501、电子设备获取对参考采样帧进行角点检测得到的多个第一特征点。[0073]角点通常被定义为两条边的交点,更严格地说法是,角点的局部邻域应该具有两个不同区域的不同方向的边界。而在图像处理领域,大多数的角点检测检测的是拥有特定特征的图像点(也即是特征点),而不仅仅是“角点”。这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。[0074]实际应用中,比较常见的角点检测方法包括harris角点检测和shi-tomasi角点检测,以shi-tomas角点检测为例:步骤501中,电子设备可以先利用sobel算子计算出参考采样帧在x、y方向上的梯度值ix、iy,然后计算两个方向梯度的乘积ix*iy,接着,对,接着,对ix*iy进行均值滤波,最后计算局部特征结果矩阵m的特征值,若两个特征值中较小的一个大于最小阈值,则得到第一特征点。图6为参考采样帧中检测到的第一特征点的示例性的示意图。[0075]步骤502、电子设备根据各第一特征点在候选采样帧中进行搜索,得到与各第一特征点匹配的第二特征点。[0076]通常来讲,角点检测所需的计算量较大,考虑到这一点,在本技术实施例中,进行特征点匹配时,电子设备仅对参考采样帧进行角点检测以识别参考采样帧中的第一特征点,而电子设备并不对候选采样帧进行角点检测,反之,电子设备可以结合稀疏光流法以及图像金字塔,基于在参考采样帧中识别到的各第一特征点,在候选采样帧中进行搜索,以搜索得到与各第一特征点匹配的第二特征点,从而得到步骤102中所述的特征点对(一个特征点对包含一个第一特征点和一个第二特征点)。[0077]其中,稀疏光流法是一种不需要对图像的每个像素进行逐点计算,而是对指定的一组点(针对本技术实施例,该指定的一组点即为多个第一特征点)进行跟踪的算法,其计算便捷。此外,考虑到当相机抖动较快时,稀疏光流法计算容易达到局部极小值,所以,在本技术实施例中,结合图像金字塔算法来进行多尺度的稀疏光流法计算。[0078]请参考图7,其示出了电子设备结合稀疏光流法以及图像金字塔,基于在参考采样帧中识别到的各第一特征点,在候选采样帧中进行搜索的流程图,如图7所示,该搜索过程包括以下步骤:[0079]步骤5021、电子设备对候选采样帧进行缩小处理,得到帧金字塔。[0080]其中,帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及候选采样帧,且,帧金字塔中的各帧按照分辨率由小至大的顺序排列。[0081]举例来说,假设对候选采样帧进行缩小处理后得到3个缩小帧,其中,缩小帧a的分辨率最小,缩小帧b的分辨率次之,而缩小帧c的分辨率最大,则在得到的帧金字塔中,最上层的帧为缩小帧a,下一层为缩小帧b,再下一层为缩小帧c,最底层为该候选采样帧。[0082]步骤5022、电子设备采用稀疏光流法根据各第一特征点,依次在帧金字塔中的各帧中进行搜索,并根据在帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的第二特征点。[0083]具体地,电子设备可以将各第一特征点作为帧金字塔的最顶层的帧(图像细节最少)的搜索初始值对该最顶层的帧进行搜索,而后,电子设备可以将上一层的搜索结果作为下一层的搜索初始值,沿着帧金字塔向下搜索,直到达到帧金字塔的最底层(图像细节最丰富),电子设备可以根据帧金字塔的最底层帧的搜索结果得到与各第一特征点匹配的第二特征点。[0084]由于采用了由粗到精的稀疏光流搜索方式,因此,当相机抖动较为严重时,在帧金字塔的上几层帧中像素运动会比较小,这样就可以避免陷入局部极小值。[0085]请参考图8,其为参考采样帧和候选采样帧中特征点的匹配示意图。[0086]如上文所述,步骤102中,在得到多个特征点对之后,电子设备可以根据该多个特征点对确定候选帧和目标参考帧之间的透视变换参数,请参考图9,其示出了确定透视变换参数的流程图,如图9所示,确定透视变换参数可以包括以下步骤:[0087]步骤901、对于多个特征点对中的各第一特征点,电子设备从与第一特征点匹配的多个第二特征点中确定与第一特征点匹配度最高的第二特征点。[0088]步骤902、对于多个特征点对中的各第二特征点,电子设备从与第二特征点匹配的多个第一特征点中确定与第二特征点匹配度最高的第一特征点。[0089]步骤903、电子设备从多个特征点对中确定目标特征点对。[0090]其中,目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点。[0091]步骤904、电子设备根据目标特征点对确定透视变换参数。[0092]一般来讲,第一特征点和第二特征点并不是一一对应的关系,而是多对多对应的关系,换言之,一个第一特征点可以与多个第二特征点对应,反过来,一个第二特征点可以与多个第一特征点对应。基于这一情况,电子设备在得到多个特征点对之后,可以采用交叉验证的方式对该多个特征点对进行进一步地筛选,以保留强匹配的特征点对(也即是上文中的目标特征点对),这样,就可以保证后续计算得到的透视变换参数的准确性。[0093]具体来说,电子设备可以从各第一特征点对应的多个第二特征点中,确定与各第一特征点匹配度最高的第二特征点,反过来,电子设备还可以从各第二特征点对应的多个第一特征点中,确定与各第二特征点匹配度最高的第一特征点,而后,电子设备可以将互为彼此匹配度最高的特征点的特征点对确定为目标特征点对。[0094]举例来说,假设第一特征点a1与第二特征点a2、b2以及c2对应,第二特征点b2与第一特征点a1、d1以及e1相对应,且,与第一特征点a1匹配度最高的第二特征点为第二特征点b2,与第二特征点b2匹配度最高的第一特征点为第二特征点a1,则包含第一特征点a1和第二特征点b2的特征点对为目标特征点对。[0095]在本技术实施例中,若目标特征点对的数量小于预设值(例如,10),则电子设备可以认为特征点匹配失败,在这种情况下,可以结束流程,而若目标特征点对的数量不小于预设值,则电子设备可以根据目标特征点对确定透视变换参数,例如,如上文所述,电子设备可以随机选择4个目标特征点对计算透视变换矩阵。[0096]如上文所述,在步骤102中,获取透视变换参数之后,电子设备可以根据透视变换参数将候选帧上的像素映射至其目标参考帧上,在映射之后,步骤102中,电子设备可以根据像素在映射前后的位置变化确定运动量参数,请参考图10,其示出了电子设备根据像素在映射前后的位置变化确定运动量参数的流程图,如图10所示,确定运动量参数的过程包括以下步骤:[0097]步骤1001、对于各像素,电子设备根据像素在映射前后的位置变化确定像素对应的位移向量。[0098]步骤1002、电子设备将各像素对应的位移向量的均值作为运动量参数。[0099]在本技术的可选实施例中,得到各候选帧的运动量参数后,电子设备可以对各候选帧的运动量参数进行滤波平滑处理(如kernel_size=3的均值滤波等),得到各候选帧的平滑运动量参数,以改善输出结果的跳变情况,而后,电子设备可以根据各候选帧的平滑运动量参数,确定相机的抖动状态。[0100]进一步地,电子设备可以根据各候选帧的平滑运动量参数确定视频流中未被提取的非候选帧的运动量参数,例如,电子设备可以将与非候选帧时序最接近的候选帧的平滑运动量参数作为非候选帧的运动量参数,而后,电子设备可以根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定相机的抖动状态。[0101]举例来说,假设视频流中帧索引idx=1的帧被作为候选帧提取,而帧索引idx=2和帧索引idx=3的帧则是未被提取的非候选帧,则电子设备可以将idx=1的帧的平滑运动量参数作为idx=2的帧的运动量参数,同时,电子设备可以将idx=1的帧的平滑运动量参数作为idx=3的帧的运动量参数。[0102]根据前面的计算,视频流中的每一帧i都能输出一个对应的运动量参数shake_i,将每一帧i的shake_i和预设阈值(包括threshold_stable和threshold_moderate)比较,即可以得到实时的相机抖动情况判断,其中:[0103]若shake_i《threshold_stable,则表明相机此刻状态稳定;[0104]若threshold_stable《=shake_i《threshold_moderate,表明相机此刻抖动;[0105]若shake_i》=threshold_moderate,表明相机此刻剧烈抖动。[0106]后续步骤中,电子设备可以将判断出的相机抖动情况实时传递给相机应用,相机应用可以基于实时相机抖动情况确定最佳的性能和效果的算法(如:剧烈抖动时,触发缩短曝光时间、ai后处理增强的算法;相机稳定,触发正常曝光、普通流程算法等)。[0107]为了使读者易于理解本技术实施例提供的技术方案,下面,本技术将结合图11所示的流程图对本技术实施例提供的相机抖动检测方法进行示例性的完整说明,需要说明的是,这里的完整仅仅是相对的,实际应用中,可以包括比图11所示更多或者更少的步骤,如图11所示,该相机抖动检测方法包括以下步骤:[0108]步骤1101、电子设备获取相机拍摄到的视频流,并从视频流中每间隔n帧提取候选帧,得到帧序列。[0109]其中,帧序列包括多个候选帧,n为正整数。[0110]步骤1102,对于各候选帧,电子设备确定该候选帧的目标参考帧。[0111]其中,对于各候选帧,若该候选帧不符合第一预设条件,则将帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧,若该候选帧符合第一预设条件,则将帧序列中的前一候选帧作为该候选帧的目标参考帧。[0112]步骤1103、对于各候选帧,电子设备对候选帧和其目标参考帧进行抗锯齿下采样处理,得到候选采样帧和参考采样帧。[0113]步骤1104、电子设备获取对参考采样帧进行角点检测得到的多个第一特征点。[0114]步骤1105、电子设备对候选采样帧进行缩小处理,得到帧金字塔。[0115]其中,帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及候选采样帧,且,帧金字塔中的各帧按照分辨率由小至大的顺序排列。[0116]步骤1106、电子设备采用稀疏光流法根据各第一特征点,依次在帧金字塔中的各帧中进行搜索,并根据在帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的第二特征点,从而得到多个特征点对。[0117]步骤1107、对于多个特征点对中的各第一特征点,电子设备从与第一特征点匹配的多个第二特征点中确定与第一特征点匹配度最高的第二特征点。[0118]步骤1108、对于多个特征点对中的各第二特征点,电子设备从与第二特征点匹配的多个第一特征点中确定与第二特征点匹配度最高的第一特征点。[0119]步骤1109、电子设备从多个特征点对中确定目标特征点对。[0120]其中,目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点。[0121]步骤1110、电子设备根据目标特征点对确定候选帧和目标参考帧之间的透视变换参数。[0122]步骤1111、电子设备基于透视变换参数将候选帧上的感兴趣区域内的像素映射至目标参考帧上。[0123]步骤1112、对于感兴趣区域中的各像素,电子设备根据像素在映射前后的位置变化确定像素对应的位移向量,并将各像素对应的位移向量的均值作为候选帧的运动量参数。[0124]步骤1113、电子设备对各候选帧的运动量参数进行滤波平滑处理,得到各候选帧的平滑运动量参数。[0125]步骤1114、电子设备根据各候选帧的平滑运动量参数确定视频流中未被提取的非候选帧的运动量参数。[0126]步骤1115、电子设备根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定相机的抖动状态。[0127]应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。[0128]基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的相机抖动检测方法的相机抖动检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个相机抖动检测装置实施例中的具体限定可以参见上文中对于相机抖动检测方法的限定,在此不再赘述。[0129]在一个实施例中,如图12所示,提供了一种相机抖动检测装置1200,包括:获取模块1201、提取模块1202、第一确定模块1203以及第二确定模块1204。[0130]其中,该获取模块1201,用于获取相机拍摄到的视频流。[0131]该提取模块1202,用于从该视频流中每间隔n帧提取候选帧,得到帧序列,并从该帧序列中获取各候选帧的目标参考帧,该帧序列包括多个该候选帧,n为正整数。[0132]该第一确定模块1203,用于对于各候选帧,对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个该特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,该运动量参数用于表征该候选帧中的对象相较于该候选帧的目标参考帧中的对象的运动变化。[0133]该第二确定模块1204,用于根据各候选帧的运动量参数,确定该相机的抖动状态。[0134]在本技术的可选实施例中,该第一确定模块1203,具体用于:根据多个该特征点对确定该候选帧和该候选帧的目标参考帧之间的透视变换参数,基于该透视变换参数将该候选帧上的像素映射至该候选帧的目标参考帧上。[0135]在本技术的可选实施例中,该第一确定模块1203,具体用于:基于该透视变换参数将该候选帧中感兴趣区域上的像素映射至该候选帧的目标参考帧上。[0136]在本技术的可选实施例中,该提取模块1202,具体用于:对于各候选帧,若该候选帧不符合第一预设条件,则将该帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧,若该候选帧符合该第一预设条件,则将该帧序列中的前一候选帧作为该候选帧的目标参考帧。[0137]在本技术的可选实施例中,该第一确定模块1203,具体用于:分别对该候选帧和该候选帧的目标参考帧进行下采样处理,得到候选采样帧和参考采样帧;对该候选采样帧和该参考采样帧进行特征点匹配处理。[0138]在本技术的可选实施例中,该第一确定模块1203,具体用于:获取对该参考采样帧进行角点检测得到的多个第一特征点;根据各第一特征点在该候选采样帧中进行搜索,得到与各第一特征点匹配的第二特征点。[0139]在本技术的可选实施例中,该第一确定模块1203,具体用于:对该候选采样帧进行缩小处理,得到帧金字塔,该帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及该候选采样帧,且,该帧金字塔中的各帧按照分辨率由小至大的顺序排列;采用稀疏光流法根据各第一特征点,依次在该帧金字塔中的各帧中进行搜索,并根据在该帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的该第二特征点。[0140]在本技术的可选实施例中,该第一确定模块1203,具体用于:对于多个该特征点对中的各第一特征点,从与该第一特征点匹配的多个该第二特征点中确定与该第一特征点匹配度最高的第二特征点;对于多个该特征点对中的各第二特征点,从与该第二特征点匹配的多个该第一特征点中确定与该第二特征点匹配度最高的第一特征点;从多个该特征点对中确定目标特征点对,该目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点;根据该目标特征点对确定该透视变换参数。[0141]在本技术的可选实施例中,该第一确定模块1203,具体用于:对于各像素,根据该像素在映射前后的位置变化确定该像素对应的位移向量;将各像素对应的位移向量的均值作为该运动量参数。[0142]在本技术的可选实施例中,该第二确定模块1204,具体用于:对各候选帧的运动量参数进行滤波平滑处理,得到各候选帧的平滑运动量参数;根据各候选帧的平滑运动量参数,确定该相机的抖动状态。[0143]在本技术的可选实施例中,该第二确定模块1204,具体用于:根据各候选帧的平滑运动量参数确定该视频流中未被提取的非候选帧的运动量参数;根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定该相机的抖动状态。[0144]上述相机抖动检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。[0145]在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图13所示。该电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏、输入装置和相机。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的电子设备进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种相机抖动检测方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。[0146]本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0147]在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:[0148]获取相机拍摄到的视频流,并从该视频流中每间隔n帧提取候选帧,得到帧序列,并从该帧序列中获取各候选帧的目标参考帧,该帧序列包括多个该候选帧,n为正整数;对于各候选帧,对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个该特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,该运动量参数用于表征该候选帧中的对象相较于该候选帧的目标参考帧中的对象的运动变化;根据各候选帧的运动量参数,确定该相机的抖动状态。[0149]在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据多个该特征点对确定该候选帧和该候选帧的目标参考帧之间的透视变换参数,基于该透视变换参数将该候选帧上的像素映射至该候选帧的目标参考帧上。[0150]在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于该透视变换参数将该候选帧中感兴趣区域上的像素映射至该候选帧的目标参考帧上。[0151]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于各候选帧,若该候选帧不符合第一预设条件,则将该帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧,若该候选帧符合该第一预设条件,则将该帧序列中的前一候选帧作为该候选帧的目标参考帧。[0152]在一个实施例中,处理器执行计算机程序时还实现以下步骤:分别对该候选帧和该候选帧的目标参考帧进行下采样处理,得到候选采样帧和参考采样帧;对该候选采样帧和该参考采样帧进行特征点匹配处理。[0153]在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取对该参考采样帧进行角点检测得到的多个第一特征点;根据各第一特征点在该候选采样帧中进行搜索,得到与各第一特征点匹配的第二特征点。[0154]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对该候选采样帧进行缩小处理,得到帧金字塔,该帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及该候选采样帧,且,该帧金字塔中的各帧按照分辨率由小至大的顺序排列;采用稀疏光流法根据各第一特征点,依次在该帧金字塔中的各帧中进行搜索,并根据在该帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的该第二特征点。[0155]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于多个该特征点对中的各第一特征点,从与该第一特征点匹配的多个该第二特征点中确定与该第一特征点匹配度最高的第二特征点;对于多个该特征点对中的各第二特征点,从与该第二特征点匹配的多个该第一特征点中确定与该第二特征点匹配度最高的第一特征点;从多个该特征点对中确定目标特征点对,该目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点;根据该目标特征点对确定该透视变换参数。[0156]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对于各像素,根据该像素在映射前后的位置变化确定该像素对应的位移向量;将各像素对应的位移向量的均值作为该运动量参数。[0157]在一个实施例中,处理器执行计算机程序时还实现以下步骤:对各候选帧的运动量参数进行滤波平滑处理,得到各候选帧的平滑运动量参数;根据各候选帧的平滑运动量参数,确定该相机的抖动状态。[0158]在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据各候选帧的平滑运动量参数确定该视频流中未被提取的非候选帧的运动量参数;根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定该相机的抖动状态。[0159]在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:[0160]获取相机拍摄到的视频流,并从该视频流中每间隔n帧提取候选帧,得到帧序列,并从该帧序列中获取各候选帧的目标参考帧,该帧序列包括多个该候选帧,n为正整数;对于各候选帧,对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个该特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,该运动量参数用于表征该候选帧中的对象相较于该候选帧的目标参考帧中的对象的运动变化;根据各候选帧的运动量参数,确定该相机的抖动状态。[0161]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据多个该特征点对确定该候选帧和该候选帧的目标参考帧之间的透视变换参数,基于该透视变换参数将该候选帧上的像素映射至该候选帧的目标参考帧上。[0162]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于该透视变换参数将该候选帧中感兴趣区域上的像素映射至该候选帧的目标参考帧上。[0163]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各候选帧,若该候选帧不符合第一预设条件,则将该帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧,若该候选帧符合该第一预设条件,则将该帧序列中的前一候选帧作为该候选帧的目标参考帧。[0164]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:分别对该候选帧和该候选帧的目标参考帧进行下采样处理,得到候选采样帧和参考采样帧;对该候选采样帧和该参考采样帧进行特征点匹配处理。[0165]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取对该参考采样帧进行角点检测得到的多个第一特征点;根据各第一特征点在该候选采样帧中进行搜索,得到与各第一特征点匹配的第二特征点。[0166]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对该候选采样帧进行缩小处理,得到帧金字塔,该帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及该候选采样帧,且,该帧金字塔中的各帧按照分辨率由小至大的顺序排列;采用稀疏光流法根据各第一特征点,依次在该帧金字塔中的各帧中进行搜索,并根据在该帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的该第二特征点。[0167]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于多个该特征点对中的各第一特征点,从与该第一特征点匹配的多个该第二特征点中确定与该第一特征点匹配度最高的第二特征点;对于多个该特征点对中的各第二特征点,从与该第二特征点匹配的多个该第一特征点中确定与该第二特征点匹配度最高的第一特征点;从多个该特征点对中确定目标特征点对,该目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点;根据该目标特征点对确定该透视变换参数。[0168]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各像素,根据该像素在映射前后的位置变化确定该像素对应的位移向量;将各像素对应的位移向量的均值作为该运动量参数。[0169]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各候选帧的运动量参数进行滤波平滑处理,得到各候选帧的平滑运动量参数;根据各候选帧的平滑运动量参数,确定该相机的抖动状态。[0170]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各候选帧的平滑运动量参数确定该视频流中未被提取的非候选帧的运动量参数;根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定该相机的抖动状态。[0171]在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:[0172]获取相机拍摄到的视频流,并从该视频流中每间隔n帧提取候选帧,得到帧序列,并从该帧序列中获取各候选帧的目标参考帧,该帧序列包括多个该候选帧,n为正整数;对于各候选帧,对该候选帧和该候选帧的目标参考帧进行特征点匹配处理,得到多个相互匹配的特征点对,根据多个该特征点对将该候选帧上的像素映射至该候选帧的目标参考帧上,并根据像素在映射前后的位置变化确定运动量参数,该运动量参数用于表征该候选帧中的对象相较于该候选帧的目标参考帧中的对象的运动变化;根据各候选帧的运动量参数,确定该相机的抖动状态。[0173]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据多个该特征点对确定该候选帧和该候选帧的目标参考帧之间的透视变换参数,基于该透视变换参数将该候选帧上的像素映射至该候选帧的目标参考帧上。[0174]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于该透视变换参数将该候选帧中感兴趣区域上的像素映射至该候选帧的目标参考帧上。[0175]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各候选帧,若该候选帧不符合第一预设条件,则将该帧序列中前一候选帧的目标参考帧作为该候选帧的目标参考帧,若该候选帧符合该第一预设条件,则将该帧序列中的前一候选帧作为该候选帧的目标参考帧。[0176]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:分别对该候选帧和该候选帧的目标参考帧进行下采样处理,得到候选采样帧和参考采样帧;对该候选采样帧和该参考采样帧进行特征点匹配处理。[0177]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取对该参考采样帧进行角点检测得到的多个第一特征点;根据各第一特征点在该候选采样帧中进行搜索,得到与各第一特征点匹配的第二特征点。[0178]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对该候选采样帧进行缩小处理,得到帧金字塔,该帧金字塔包括缩小处理得到的多个分辨率不同的缩小帧以及该候选采样帧,且,该帧金字塔中的各帧按照分辨率由小至大的顺序排列;采用稀疏光流法根据各第一特征点,依次在该帧金字塔中的各帧中进行搜索,并根据在该帧金字塔中的最后一帧中的搜索结果,确定与各第一特征点匹配的该第二特征点。[0179]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于多个该特征点对中的各第一特征点,从与该第一特征点匹配的多个该第二特征点中确定与该第一特征点匹配度最高的第二特征点;对于多个该特征点对中的各第二特征点,从与该第二特征点匹配的多个该第一特征点中确定与该第二特征点匹配度最高的第一特征点;从多个该特征点对中确定目标特征点对,该目标特征点对中的第一特征点和第二特征点互为各自匹配度最高的特征点;根据该目标特征点对确定该透视变换参数。[0180]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对于各像素,根据该像素在映射前后的位置变化确定该像素对应的位移向量;将各像素对应的位移向量的均值作为该运动量参数。[0181]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各候选帧的运动量参数进行滤波平滑处理,得到各候选帧的平滑运动量参数;根据各候选帧的平滑运动量参数,确定该相机的抖动状态。[0182]在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各候选帧的平滑运动量参数确定该视频流中未被提取的非候选帧的运动量参数;根据各候选帧的平滑运动量参数以及各非候选帧的运动量参数,确定该相机的抖动状态。[0183]需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。[0184]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistiverandomaccessmemory,mram)、铁电存储器(ferroelectricrandomaccessmemory,fram)、相变存储器(phasechangememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。[0185]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0186]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1