数字图像稳定设备和方法

文档序号:7793621阅读:255来源:国知局
专利名称:数字图像稳定设备和方法
技术领域
本发明构思这里涉及数字图像稳定(DIS),而且更具体地,涉及检测、选择、和分组用于数字图像稳定的特征点的方法。
背景技术
数字照相机、数字摄像机和包括这样的摄像头的手持设备常常用来在摄像头在人类操作员的手中操作时捕获图像或视频。因此,在捕获图像或视频时摄像头可能在操作员手中摇晃或抖动。该抖动可以包括水平分量、垂直分量、和旋转分量。旋转可以沿与图像捕获电路的聚焦平面垂直的轴,或者沿与图像捕获电路的聚焦平面平行的轴,或者沿在垂直轴与平行轴之间歪斜的轴。抖动可以使得手捕获视频让观看者分心或迷惑,因此期望使用数字电路来数字估计摄像头轨迹(即,在每对连续帧之间检测的抖动)并且从相同场景的视频帧的序列中过滤该抖动。用于估计连续视频帧之间的摄像头轨迹并且用于从视频帧的序列中过滤由摄像头轨迹造成的抖动的电路可以包含在摄像机本身中,并且在存储捕获的视频帧之前(例如,如果摄像机包括实时MPEG编码器则在MPEG编码之前或在其期间)被激活以实时取消抖动。替换地,用于估计连续视频帧之间的摄像头轨迹并且用于从视频帧的存储序列中过滤抖动的电路可以是由实现数字图像稳定(DIQ方法的软件控制的通用微型计算机,或者可以是专用硬件,诸如嵌入在优化用于执行数字图像稳定(DIQ方法的 ASIC(专用集成电路)中的MPEG视频编码器。通过稳定的、固定或移动摄像机产生的视频在捕获的视频中主要包含平滑的运动 (平移、旋转)。另一方面,不稳定的摄像机产生贯穿视频图像中具有高频抖动(平移的和 /或旋转的)的视频。从物理成像设备捕获的数字图像序列常常显示不希望的高频抖动运动。图像序列中呈现的抖动运动的量取决于图像捕获设备相对于捕获序列中的对象的物理性质。景深和成像器的底座的不稳定性(取决于底座的重量、惯量、平衡)组合以产生不希望的抖动全局运动。数字图像稳定(DIQ系统首先估计不希望的(无意的)运动,然后对图像序列施加校正。稳定视频的视觉效果高度依赖于摄像头轨迹估计的质量。数字图像稳定(DIS)算法使用有效跟踪的特征点来估计两个连续帧之间的抖动运动。数字视频稳定采用硬件和/ 或软件方法,用于从包含由不稳定摄像机造成的不期望抖动运动的不稳定的视频中产生空间稳定的视频。在传统DIS技术中,通过分析场景中不同的点的运动矢量来检测摄像头运动。但是运动矢量可以由对象运动以及摄像头运动引起。存在这样的函数,其提供帧的每个像素的数字得分,指示该点作为在时间相邻的帧中能够检测的特征点有多合适。这样的函数的一个示例是哈里斯角点检测器(Harris Corner Detector)。然而,特征点的幅度对于图像的不同部分通常很不同。DIS方法可以采用全局阈值与每个像素的数字得分进行比较,这并不必然导致特征点的最优分布。因此,在低对比度的区域(例如,无云的蓝天导致稀散的或没有特征点)中可能特征点太少,而在具有许多结构的区域中,特征点可能彼此过于接近。特征点的分布不当可能增加计算过于接近的特征点的冗余运动矢量的计算负担,并且可能无法提供准确的运动矢量。在数字图像稳定(DIS)方法的实施方式中,期望最小化计算开销以便减少电路的功耗和减少执行DIS方法所需的时间。还期望检测和测量摄像头的轨迹并准确地刻画抖动以使得可以从存储/显示的视频中正确地补偿和正确地取消抖动。在数学中,仿射几何是通过仿射变换(即,非单线性变换和转换)依然不改变的几何性质的研究。已经发展了被称为仿射矩阵的由数字系数定义的数学方程组来刻画在每对连续帧之间或在其各部分(例如,帧中的运动对象)之间检测的运动的横向(上/下)、旋转、和标量(例如,放大或缩小)。因此,抖动可以通过被称为主变换或全局变换的相对于场景中的任何实际固定对象(例如,岩石、桌子、停驻的汽车、高山、太阳)的第一仿射变换矩阵来刻画,同时帧中的任何运动对象(例如,鸟、人、球、移动的车)可以通过另外的仿射矩阵来刻画。主变换(主帧间变换)指示可能由用户的手抖动造成的摄像头运动,其可以通过检测与在时间t捕获的每个帧的实际固定对象关联的一个或多个兴趣点(称为“特征点”)、 然后在时间相邻帧(t+ι)中搜索相同的特征点、并且计算每个特征点的运动矢量来计算。 与特定对象关联(一起分组)的多个运动矢量然后被用于计算该对象的仿射变换,其根据仿射公式定义其检测的运动χ, = SX 氺 x+ry 氺 y+txy' = rx 氺 x+sy 氺 y+ty可以使用在视频压缩领域中采用的各种搜索方法来计算连续帧之间特征点的运动矢量。这样的搜索方法可以在两个时间相邻帧中采用诸如绝对差值和(SAD)、平均绝对差值(MAD)、或平均平方差(MSE)的宏块的数学比较(例如,通过将当前帧中包含特征点的 8X8像素宏块与以特征点的位置为中心的参考帧(t+Ι)中的搜索区域中的多个8X8像素宏块进行比较来搜索参考帧(t+Ι)中特征点的位置)。在时间相邻帧(t和t+Ι)之间以特征点为中心的宏块的位移的测量的量和方向被称为特征点的“运动矢量”。

发明内容
本发明的一方面提供识别特征点、并导出由于全局移动或摄像头移动而以一致方式移动的特征点的运动矢量、同时准确用于DIS目的的高效率过程。用于DIS算法的良好特征点是当应用合适的运动估计算法时给出单值的运动矢量的点。为了识别图像中的特征点,应用于视频帧的像素的哈里斯角点检测器估计该像素有多适合作为特征点。图像的不同区域具有识别的特征点候选者的不同密度。公开的光栅扫描顺序选择和拣选的方法基于视频帧的小区域(称为瓦片(tile))提供最终的特征点分布,其中特征点的最大数量随瓦片的亮度图像数据的方差σ 2线性增长。每个视频帧被划分为较小数量j Xk个瓦片。数量j Xk个瓦片可以从用于SD视频的4X4到用于HD视频的6X6或更大;在(4. . 8) X (4. . 8)的范围内的其他数量也是可能的并且可以是有益的。选择瓦片尺寸以使得独立移动的足够大的对象覆盖至少一个瓦片的大部分,从而可以捕获它们的运动用于DIS目的,同时忽略小对象的运动。具有更多感兴趣图像数据并且因而需要更多特征点的瓦片预期具有较高的方差σ 2。特征点拣选算法找到特征点之间的可编程的最小距离但是需要最少的硬件存储器。分级运动估计算法可以用来估计从帧到帧的特征点移动,其中关于后一搜索级别的可编程运动范围是有意的小,从而优选大对象或全局移动而非局部移动。因此,最小化所需的操作数量,同时结果足够准确用于数字图像稳定应用。对于例如通过拣选算法选择的每个特征点,在使用的开始矢量的小范围中通过块匹配确定其运动矢量。开始矢量是包含当前特征点的瓦片和周围瓦片(例如,上、下、左、 右)的瓦片运动矢量。瓦片运动估计是导出特征点的运动矢量的过程的第一步。基于覆盖输入图像的中心部分的非重叠瓦片(例如,在特征点拣选算法中使用的相同瓦片)完成瓦片运动估计。对于每个瓦片,在下采样图像上执行全块匹配搜索。当前帧通过用于标清(SD)视频的四到八或用于高清(HD)视频的八到十六的第二下采样系数fs2进行下采样。在该下采样域中,对每个瓦片完成全搜索块匹配并且存储瓦片矢量以备后用(例如,作为用于导出特征点的运动矢量的开始矢量)。将为每个瓦片估计一个运动矢量,以最低分辨率进行全搜索,通过下采样亮度数据的第二下采样系数fs2进行下采样,并且将产生最低SAD的运动矢量候选者分配到每个瓦片。根据实施例,对于边界瓦片,可以将搜索限制在可用的搜索区域,因此不会产生导致参考块(部分地)在搜索区域外部的运动矢量。相对于使用的分辨率,瓦片运动搜索将产生半像素精度矢量搜索区域将通过简单双线性插值进行上采样。这仅使用非常少的本地存储器,因此节约VLSI实施方式中的存储器和逻辑区域。一旦已经确定了特征点的运动矢量,就将全部特征点相关数据传递到下一 DIS 块,具体地为运动矢量分组块。下面将参考附图来更详细地描述本发明构思的示范性实施例。然而,本发明可以以不同的形式实现,而不应被解读为限于这里描述的实施例。相反,提供这些例子使得本公开更为全面和完整,并向本领域技术人员完整地传达本发明的范围。相同的数字通篇指代相同的元件。


包括附图以提供本发明构思的进一步的理解,并且合并和构成本说明书的一部分。

本发明构思的示范性实施例,并且与说明书一起用来解释本发明的原理。附图中图IA到IF是用于说明根据本发明构思的示范性实施例的数字图像稳定方法中的步骤的当前帧和参考帧、以及其选择的特征点和运动矢量的视图;图2A是依据图IA到IF中说明的DIS方法中的步骤的包含图IA的当前帧Ft、并且划分为边界区域和核心区域中的jXk多个瓦片的图IE的捕获帧的图;图2B是依据图IA到IF中说明的DIS方法中的步骤的说明选择的、拒绝的、和取消的特征点的图2A的图像帧的核心区域中的一个瓦片的图;图3是根据本发明构思的实施例的配置为执行DIS过程的电路块的图;图4A和4B是用于执行图IA到IF中说明的DIS方法中的步骤的识别和选择图IA 和2A的图像帧的每个瓦片中的多个特征点的方法的流程图;图5是用于说明图IA到IF中说明的DIS方法中的运动矢量计算步骤的利用其上
7添加的瓦片运动矢量下采样的图IA的当前帧Ft的视图;图6是图5的下采样帧中的瓦片的一部分的视图,其说明使用图5的瓦片运动矢量作为用于块匹配搜索的开始矢量以计算图IA到IF中说明的DIS方法中使用的选择的特征点的运动矢量;图7是用于执行图IA到IF中说明的DIS方法中的步骤的计算图IA和2A的图像帧中选择的特征点的运动矢量的方法的流程图;图8A是当摄像头仅具有平移运动而没有旋转分量时在距摄像头相同距离的视频场景中相同的实际固定对象的两个特征点的运动矢量的图;图8B是当摄像头具有旋转分量时距摄像头相同距离的实际固定对象的两个特征点的运动矢量的图;图8C是当摄像头仅具有平移运动而没有旋转分量时距摄像头不同距离的相同的实际固定对象的两个特征点的运动矢量的图;图9A和9B是视频场景中实际固定对象的特征点的两对运动矢量的图,用于说明即使四个运动矢量的方向和幅度全部不同时每个对也可以具有相同的矢量幅度差;图10示出说明用于图IA到IF中说明的DIS方法中的特征点分组的角度差的间接测量的归一化矢量差的计算的三个矢量图;图11是用于执行图IA到IF中说明的DIS方法中图ID的矢量分组步骤的使用图 10AU0BU0C的归一化矢量差来间接测量图IA和2A的图像帧中选择的特征点的运动矢量之间的角度差的分组算法的流程图;图12是归一化矢量差(a-b)的幅度| (a_b) |与归一化矢量差(a-b)的幅度比|b 作为角度差θ的函数的曲线图,其说明用于在图11的分组算法的步骤中使用近似的可用性;以及图13是包括配置为执行图11的特征点分组算法的分组算法电路1310的特征点分组电路的框图。
具体实施例方式图IA到IF是用于说明根据本发明构思的示范性实施例的数字图像稳定方法中的步骤的当前帧和参考帧、以及其选择的特征点和运动矢量的视图。图IA示出场景的两个连续视频帧,当前帧Ft和参考帧Ft+1。场景包括例如山坡 (在前景中)、电线杆、高山、和太阳的固定对象、以及例如左上的鸟的运动对象。当前帧Ft 和参考帧Fw是具有较大面积的各个连续捕获帧的部分(如图IE所示)。较大的捕获帧是在数字图像稳定(DIQ之前通过图像传感器捕获的原始图像。由于由抖动运动造成的摄像头轨迹引起参考帧Fw相对于当前帧Ft旋转和平移。捕获帧(见图1E)的尺寸一般通过摄像机的物理图像传感器(未示出)的硬件尺寸预定。当前帧Ft和参考帧Fw的尺寸可以动态地选择以避免或最小化由于摄像头的抖动运动引起在捕获帧的边界外发生当前帧Ft的 “过度偏离”。图IB示出与场景中的实际固定对象和运动对象关联的当前帧Ft中的多个选择的特征点(圆形)。将当前帧Ft划分为多个矩形瓦片,每个瓦片可以包括至少一个选择的特征点。可以通过执行图2A、2B和4A和4B中说明的方法的步骤、和/或通过图3的电路来识别和选择图IB所示的选择的特征点。应当理解,本发明构思的方法考虑到,在有些情况下,取决于图像样式,一个或多个瓦片可以不具有任何选择的特征点,但是为了描述本发明构思的实施例的目的,图IB中在每个瓦片中显示至少一个选择的特征点。当前帧和参考帧被存储在图3的电路的存储器350中,同时通过执行图2A、2B和4A和4B说明的方法的步骤来识别和选择图IB所示的选择的特征点。图IC示出具有运动矢量(箭头)的当前帧Ft的每个选择的特征点。可以通过执行图6和7所示的方法的步骤来计算图IC所示的选择的特征点的运动矢量。图ID示出场景中的运动矢量已经被分组(例如,组A、组B、组C)。场景中的实际固定对象的运动矢量(组B和组C)是由摄像头移动(例如抖动)造成的。可以通过图 10AU0B和IOC以及图11所示的方法的步骤来执行图ID所示的选择的特征点的运动矢量的分组,其中基于使用幅度比和归一化矢量差的配对算法将运动矢量配对/分组(包括或排除)。图IE示出在由图像传感器(未示出)输出的较大的捕获帧的大背景中的参考帧 Ft+1。通过使用图ID所示的实际固定对象的组B和组C的运动矢量定义参考帧Fw的仿射系数来确定参考帧Fw的位置。可以使得在参考帧的边界外的捕获帧的图像数据对执行用于计算组B和组C的运动矢量的图6和7所示的方法的步骤的电路可用。图IF示出如果没有由图ID所示的实际固定对象的运动矢量指示的抖动摄像头运动则参考帧Fw在它本该由图像传感器(未示出)接收的位置。已经通过补偿电路(未示出)应用参考帧Fw的仿射系数以旋转和平移参考帧Fw来校正摄像头的抖动运动。特征点识别、拣选和分布图2A是依据图IA到IF中说明的DIS方法中的步骤的划分为边界区域和核心区域中的jXk多个瓦片的当前帧Ft (见图1E)以便于特征点的识别和拣选的捕获帧的图。边界区域与核心区域之间的边界线可以独立于接收的图像数据的内容由硬件或通过软件预先确定,同时当前帧Ft的边界可以基于由例如接收的图像数据内容指示的抖动摄像头运动的程度而动态地选择,以便防止或减少当前帧的过度偏离。因此,核心区域可以或可以不对应于图IA所示的当前图像帧Ft的尺寸和位置。每个捕获的视频帧被划分为小数目的非重叠瓦片(例如,用于标清的4X4瓦片和用于高清的6X6或更多瓦片),目的是算法上选择提供适合于数字图像稳定的良好特征点分布的特征点。图像的不同区域可以具有不同密度的合适的特征点。在极端情况下,帧的区域可能不具有任何合适的特征点,例如在无云的蓝天的情况下。在其他区域中,潜在的特征点也许非常稠密。当使用基于全局的阈值来识别和选择全部特征点时,特征点倾向于集中在图像的小区域中,导致差的DIS结果。依然期望在其中有更多结构的图像的区域中具有更多特征点,因为存在潜在上更感兴趣的运动。在这些密集的区域中,另一问题是如何保证并非所有特征点堆积在一起。因此本发明的一方面提供用于确保将用于DIS的特征点之间的最小距离(MIN_DIST)的高效率方法。为了 DIS算法的稳定性,尽可能广泛地分布特征点,同时限制特征点的总数量。特征点的“良好分布”可以表示如下其具有大的凸包;特征点彼此不太接近(MIN_DIST);在具有较少的合适特征点的瓦片中,如果可能,则选择至少最小数量(mirufeatures)的特征点;以及,在具有更多的合适特征点的瓦片中,选择更多的特征点(max_num_features =min_features+max_plus_features*(tile_variance σ 2/total_variance))。基于瓦片的亮度方差o2确定每个瓦片中特征点的最大数量(maX_nUm_ features)。在一个实施例中,每个瓦片中特征点的最大数量(maX_num_featureS)是每个瓦片的特征点的可编程的最小数量(mirufeatures)加上另外的特征点的可编程的最大数量 (max_plus_features)乘以特定瓦片的方差σ 2与瓦片方差的总和的比率的和。如果瓦片具有不同的尺寸则可以应用校正因子。因此,每个瓦片的最终选择的特征点的最大数量可以替换地为mirufeatures加上与瓦片的方差σ 2成比例、通过对应的瓦片权重归一化的var_ features的部分。可以给予边界瓦片较高权重,因为它们包括边界区域因此较大。在该替
换的情况下,给定瓦片的特征点的最大数量计算如下因此,选择的特征点的最大数量(maX_num_featureS)并不在全部瓦片中保持恒定,也不在帧Ft与帧Fw之间保持恒定。在一个实施例中,每个瓦片中特征点的最大数量(max_num_features)是每个瓦片中亮度数据的方差ο2除以总亮度方差的函数,需要预先计算每个瓦片的亮度方差ο2和帧的总方差。本领域普通技术人员不难理解其他函数也是可以的,例如涉及平均亮度值和瓦片方差O2的函数。为了识别特征点,可以使用诸如哈里斯角点检测器之类的角点检测器。哈里斯角点检测器评估图像的每个像素作为可能的特征点候选者。优选的特征点候选者是其中特征质量估计函数具有局部最大值的点。公开的特征点选择的方法通过将每个识别的特征点的结果值(估计该像素多么适合作为特征点)与LOCAL (局部)而非GLOBAL (全局)(全帧) 阈值进行比较来优化由哈里斯角点检测器识别的特征点的选择。因此,公开的方法考虑每个局部区域处的特征点密度乃至帧的不同部分中的对比度的差别。获得的特征点分布是基于视频帧的小区域,(例如,非重叠瓦片),其中每个瓦片中的特征点的数量随瓦片的亮度图像数据的方差ο2线性增加。具有更多感兴趣图像数据且因而需要更多特征点的瓦片预期具有较高的方差σ2。图4Α和4Β是说明维持每个瓦片中特征点之间的最小距离(MIN_DIST)同时仅需要少量局部状态信息从而减少硬件实施成本的方法的流程图,。图2B是图2A的图像帧的核心区域中的一个瓦片的图,其说明选择的(灰色)、拒绝的(白色)、以及先前选择但是取消的(灰色但是打叉)特征点。图2B中示出为小方块的特征点已经使用哈里斯角点检测器算法识别为特征点候选者,然后依据图4A和4B说明的方法的步骤按光栅扫描顺序被依次选择、拒绝或取消。对于每个瓦片选择识别的特征点候选者的最大数量(maX_num_featureS)。根据本发明的实施例,每个识别的特征点候选者可以通过如下例如以光栅扫描顺序选择i.识别的特征点候选者是其中哈里斯角点估计函数超过可编程阈值且其中该估计具有局部最大值的像素。为了满足局部最大值,探讨的位置处的值必须大于按扫描顺序在该像素之前的全部直接和对角邻居的值,但是仅大于或等于按扫描顺序在该位置之后的直接和对角邻居的值。这被实现以容纳相同值是相当类似的事实。ii. 一旦特征点候选者已经被识别,其将进入数据存储结构(例如,拣选列表, 但是其他实施方式也是可能的),其可以为每个瓦片保留预定最大数量的特征点候选者, 例如,最大32、48、64、或更多的最终选择的特征点,前提是没有在可编程封锁范围(MIN_ DIST)内的具有更大的估计函数值的特征点候选者。为了说明的目的,选择最大值32来描述本实施例。iii.如果后来识别的特征点候选者已经存储在数据结构中,则将离该点比封锁范围(MIN_DIST)更近的具有更小估计函数值的全部其他特征点从数据存储结构中删除。为了说明的目的,假定瓦片(5,4)的特征点候选者的预定最大数量是四(S卩,max_ num_features = 4)。如图2A所示,瓦片(5,4)包含按光栅扫描顺序的四个最终选择的特征点(灰色)SFP3、SFP4、SFP5和SFP7、以及三个先前选择但是取消的(灰色但是打叉)特征点SFP1、SFP2、和SFP6、加上两个拒绝的(从未选择的)特征点(白色)。取消的先前选择的(灰色但是打叉)的特征点SFP1、SFP2、和SFP6是这样的特征点候选者,它们在图 4A和4B说明的方法的过程期间按光栅扫描顺序选择为特征点,但是随后取消作为特征点候选者,原因是它们处于稍后识别和选择为特征点候选者的较大的特征点候选者的排斥区域0ON_DIST)内,或因为选择的特征点的列表已经满了(即,选择的特征点候选者的数量 SFP_count = max_num_features)并且较早选择的特征点在选择的特征点候的列表中是最小的并且小于稍后识别和选择的特征点候选者。取消的先前选择的特征点SFPl是依据图4A和4B说明的方法的步骤按光栅扫描顺序识别和选择的第一特征点。稍后,取消的先前选择的特征点SFP2被识别和选择,但是在选择SFP2之后,选择的特征点SFP3被识别并且大于SFP2。由于SFP2处于较大的、选择的特征点SFP3的排斥区(MIN_DIST)内,当选择SFP3时立即取消SFP2。在选择SFP3之后,在SFP3的排斥区(MIN_DIST)的右下角识别特征点候选者,并且因为该特征点候选者小于SFP3且处于它的排斥区内,其被立即拒绝(即,不选择)。然后,在刚好超出SFP3的排斥区(MIN_DIST)的下方识别特征点候选者,并且它被选择为SFP4(且后来没有被取消)。 然后,在SFP3的排斥区(MIN_DIST)的更下方的右边识别特征点候选者,并且它被选择为 SFP5(且后来没有被取消,因为它虽接近但是没有处在SFP7的排斥区内)。然后,在SFP5 的排斥区(MIN_DIST)的下方的右边识别特征点候选者,并且它被选择为SFP6(且后来被取消,因为它处在较大的稍后选择的特征点SFP7的排斥区内)。当SFP6被选择时,选择的特征点的列表已经“满了(full)”(例如,该瓦片的特征点的最大数量是4),因为在选择的特征点SFPU SFP3、SFP4和SFP5的列表中SFPl是最小的,且因为SFP6大于SFP1,故取消 SFPl0然后,在SFP6的排斥区(MIN_DIST)的下方的内部识别特征点候选者,并且它被选择为SFP7(因为SFP6由于选择的特征点SFP7大于SFP6和/或因为列表已满等而被立即取消)。然后,在SFP7的排斥区(MIN_DIST)的下方的内部识别特征点候选者,并且它被拒绝 (未选择),因为最后的特征点小于SFP7。有可能SFP7实际小于取消的SFP2 (如果SFP3比 SFP7大得多),但是已经获得特征点的良好分布。可编程封锁范围(MIN_DIST)确保最终选择的特征点不过于紧密地簇拥在一起。可以在每个瓦片被下采样的下缩放(downscaling)过程期间确定每个瓦片的像素亮度方差ο2。每个瓦片中特征点的最大数量被确定为每个瓦片的特征点的可编程的恒定最小数量加上总可变特征点的数量乘以特定瓦片的方差ο 2与瓦片方差的总和的比率的和。可以添加校正因子用于边缘和角落瓦片区的区域,因为特征点也可以处于边界区域。对于每个瓦片,对于按光栅扫描顺序识别的每个特征点候选者,使用上述的拣选过程(即,选择、拒绝、取消)收集和存储多至最大数量的特征点候选者。最后,最终选择的每个瓦片的特征点候选者正是具有最高估计函数响应的特征点候选者,其最大数量被预定。可能有这样的实例,其中在给定瓦片中没有可用的足够的特征点候选者,诸如低对比度图像数据的瓦片,该情况下,产生的最终使用的特征点的数量将小于编程的最小数量(例如,小于min_ features 的数量)。因此,提供一种以光栅扫描顺序处理特征点候选者的方法,其中即使会在稍后识别和选择更多新特征点候选者也维持包括不过于紧密地簇拥在一起的至多计算的最大数量的选择的特征点的列表。该拣选特征点的光栅扫描顺序方法与从识别的特征点候选者当中区分优先次序并选择的各种其他方法相比具有减少存储器和计算的量的优点。例如,在替换实施例中,可以将瓦片的全部特征点候选者识别和存储在存储器中存储的大列表中, 然后仅在瓦片的全部特征点候选者已经被识别之后,可以应用数学拣选算法以找到不在集合的任何其他成员的排斥区(MIN_DIST)内的最大特征点候选者的最优集合(具有预定最大尺寸)。然而,这样的拣选算法比图4A和4B的光栅顺序拣选(选择、拒绝、取消)方法 (其示范性结果在图2B中示出)需要更多物理存储器(用于存储瓦片的识别的特征点候选者的整个列表)且潜在地需要更多的总的计算。图4A和4B的光栅扫描顺序拣选算法没有必要提供作为全局最优的选择的特征点的集合,因为特征点候选者可以由稍后被选择但是稍后将其取消的特征点候选者从列表中取消,相反它提供可以在具有有限本地存储的硬件中实现的算法。虽然图4A和4B的方法被描述为按照“光栅扫描顺序”(即,从左到右且从上到下)处理识别的特征点候选者,其为哈里斯角点检测器通常进行的像素顺序,该方法可以采用选择特征点候选者的任何序列,诸如非相邻特征点候选者的不连续序列,只要全部特征点被依次识别并最终拣选。图3是根据本发明构思的实施例的特征点电路的框图。特征点电路3000包括特征点选择器300和已选择特征点(SFP)运动矢量计算器700以及共享的RAM存储器350。特征点选择器300包括下采样器310、特征点候选者识别器330、和特征点候选者拣选器340。特征点候选者识别器330使用哈里斯角点检测器算法识别特征点候选者并且向特征点候选者拣选器340 —次一个瓦片地按光栅扫描顺序输出识别的特征点,例如,以像素位置和哈里斯角点响应(Harris Corner response)。特征点候选者拣选器340配置为执行如图IB和2B中进一步说明的图4A和4B的逐一拣选每个瓦片的识别的特征点的方法。 下采样器310包括瓦片-方差ο 2计算器320功能块,其根据以下公式计算图像帧的每个瓦片的瓦片-方差ο2:
、\ . ^ootoJ ^ ..........;...........— ...........;其中y值是瓦片内的亮度值而N是瓦片中像素的数量。图3所示的电路可以在半导体芯片中实现,其具有被配置为从具有捕获图像的传感器和用于将捕获的图像转换为图像数据的电路的摄像头接收图像数据的输入/输出管脚。图3的电路处理的数据经由输入/输出管脚输出到摄像头的其他组件。如下面将进一小化芯片的尺寸,存储器需要在物理尺寸上很小因此存储容量受限。根据本发明的另一实施例,为了节约计算功率并减少所需操作的数量,特征点选择器300可以仅对亮度数据操作,其将由下采样器310按照为2、4、或8 的可选择的因子fsl来水平和垂直地下采样。本实施例中选择为4的因子fsl。经fsl下采样的亮度数据由特征点候选者识别器330用于特征点识别,而且在替换实施例中可以稍后由 SFP运动矢量计算器700的分级块匹配搜索单元730用于特征点运动矢量估计。根据更适合于其中硬件不动产、处理带宽、或功率容量更可用的应用的本发明构思的另一个实施例, 可以提供诸如外部SDRAM的芯片外存储器以补充芯片上存储器的存储容量。在通过下采样器310计算较小的下采样图像的同时,计算每个瓦片的亮度方差 (瓦片-方差)o2,并且识别3X3哈里斯角点矩阵的较小本征值的全局最大值。作为左上瓦片的左上像素的坐标的瓦片偏移量和瓦片像素尺寸两者优选地是使用的最大下采样因子(fs2)的倍数。而且优选地,图像核心区域在整个图像中居中。因此,左边界区域的宽度与右边界区域的宽度相同且上边界区域的高度与下边界区域的高度相同(见图2A)。一旦输入帧亮度数据已经被下采样和存储在RAM存储器350中,特征点候选者识别器330将其按瓦片顺序读取,并将识别的特征点候选者依次馈送到特征点候选者拣选器 340。对于块330的特征点识别过程,与边界区域相邻的瓦片中的潜在特征点的统计区域扩展到边界区域,因此每个边界区域的像素与相邻瓦片的像素一起处理。像素数据在每个瓦片内按光栅扫描顺序读取从上到下逐行,在每行内从左到右逐像素。为了处理每个瓦片,特征点候选者识别器330需要每个内部瓦片边界上的三个另外的像素用于使用哈里斯角点检测器的特征点识别。因此,这些像素将被读取不止一次。识别的特征点候选者是每个瓦片中哈里斯矩阵的较低本征值λ 1具有局部最大值处的像素。 为了满足局部最大值,探讨的像素的角点响应必须大于左上、上、右上、和左邻居的角点响应并且大于或等于右、左下、下、和右下邻居的角点响应。通过该定义,具有相同的恒定角点响应的较大区域的至少一个点将被识别为潜在的特征点候选者。局部最大值的检测逻辑将需要角点响应的两个行缓冲器。首先将具有局部角点响应最大值的点与可编程角点响应阈值进行比较。如果探讨的点的角点响应小于该阈值,则忽略它。否则,将该特征点的坐标及其角点响应提供给特征点候选者拣选器340。特征点候选者拣选器340在每个瓦片中掌控最多max_num_features(例如,32) 个具有最高角点响应的特征点候选者,同时确保全部特征点彼此间具有最小可编程距离 (MIN_DIST)。以上算法中使用的两个点之间的距离如下定义dist f f ‘1 ), ( X'2 ‘) 1 = ii'jrt>:·; Γι - r !. Itfi — 1, !)
\ '■、!l J \ Vi / J‘通过仅考虑拣选器的选择的特征点的列表和进来的特征点候选者的当前内容并且立刻做出决定的操作来实现图4A和4B的方法的拣选。因此,适配为执行图4A和4B的方法的特征点候选者拣选器340将不会固有地计算全局最优,并且结果将取决于其中进来的特征点候选者被提供的顺序。特征点候选者拣选器340逐一输出选择的特征点,并且它们被存储在图3的电路的存储器350的部分中的SFP列表中。图4A和4B是用于执行图IA到IF中说明的DIS方法中的步骤的识别和选择图IA
13和2A的图像帧的每个瓦片中的多个特征点的方法的流程图。该方法开始于数据输入步骤 S400,其中当前帧Ft的亮度数据被接收,随后是下采样步骤S402。初始化步骤S404重置瓦片计数器值current_tile和像素计数器值current_pixel。接下来,随着current_piXel的增加(步骤S428),按光栅扫描顺序对current_ tile的下采样亮度数据的每个像素执行哈里斯角点检测器(步骤S406、SD408和S410)。 每当当前像素的角点响应超过局部最大值或阈值时,(即,判决步骤SD408的“是”分支), 当前像素被识别为当前FP(特征点)候选者(步骤S410)然后立即经历特征点拣选算法 (SD412、SD414、SD416、S417、SD430、S418、S420)。如果列表没有满,则当当前FP候选者大于已存储在选择的特征点的列表中的最小的先前选择的FP候选者时(步骤SD412的是分支),特征点拣选算法选择(S420)当前 FP候选者,否则当前FP候选者被拒绝(拒绝步骤S417)而不被选择(判决步骤SD412的否分支)。如果当选择当前FP候选者时选择的特征点的列表已满,例如由选择的特征点计数 SFP_count 指 Tj^白勺(艮口,SFP_count = max_num_features = min_features+max_plus_ features*(tile_variance/total_variance)),则从列表中取消最小的先前选择的FP候选者(SD430),否则增加 SFP_count 值(SD430)。仅当当前FP候选者不在列表中已有的任何较大的(SD416)先前选择的特征点的排斥区域(MIN_DIST)内(SD414)时,特征点拣选算法选择(S420)当前FP候选者。因此, 如果当前FP候选者在列表中已有的任何较大的(SD416)先前选择的特征点的MIN_DIST内 (SD414),则它被拒绝(判决步骤SD416的否分支,以及拒绝步骤S417)而不被选择。另一方面,如果当前FP候选者在列表中已有的任何较小的(SD416)先前选择的特征点的MIN_DIST 内(SD414),则全部较小的(SD416)先前选择的特征点被取消(判决步骤SD416的是分支, 以及取消步骤S418),而且当前FP候选者被选择(S420),并且相应地更新SFP_Coimt (例如,减少或不变)(S418)。一旦已经选择(S420)或拒绝(S417)当前FP候选者,哈里斯角点检测器就输出当前瓦片的下一(S428)当前像素(S410)的值(SD422),并且下一识别的FP候选者马上经历特征点拣选算法(SD412、SD414、SD416、S417、SD430、S418、S420)等。如果已经处理当前瓦片的最后像素(SD422),则处理下一瓦片(SD似4、S426)。如果已经处理最后瓦片,则完成该过程直到下一图像帧将被处理。特征点运动矢量计算在当前帧Ft中的每个瓦片的特征点已经被识别和拣选之后,图IA到IF的DIS方法中的下一步骤是获得每个选择的特征点的运动矢量。用于计算特征点的运动矢量的块匹配算法(BMA)是众所周知的。在块匹配中,对参考帧的目标区域中的块的全部可能位置计算误差函数(例如,SAD、MAD、MSE)。具有该函数的最低结果的位置被用于计算估计运动矢量。块匹配是计算复杂的。存在几个已知方法来减少计算成本。分级或多分辨率块匹配是这些方法中的一种,其中首先以低分辨率计算全局运动。产生的矢量将用于以较高分辨率搜索较小范围,从而减少需要的算术运算的总数。对于多数应用,特别对于视频编码,对于帧的全部块需要准确的运动矢量。因此, 在后面阶段中的搜索范围常常相对较大。图IA到IF中说明的数字图像稳定(DIS)方法中,仅需要估计特征点(例如,实际固定对象)从一帧到下一帧的相对运动。为了图像稳定的目的,需要代表背景和大对象的运动的准确运动矢量,而较小对象无需具有与其关联的准确运动矢量。在DIS算法的后期阶段中可以过滤任何关于较小对象的不准确矢量。预期在DIS方法中显著的大的固定对象的特征点将因为全局移动或摄像头移动而按一致方式移动。我们认识到独立移动的充分大的对象覆盖至少一个瓦片的主要部分, 使得它们的运动可以被估计为瓦片自身的主导运动,同时小对象的运动对瓦片自身的运动矢量具有很少的影响。因此,可以修改计算运动矢量的过程以减少计算,例如通过使用分级运动估计算法以及通过使用瓦片的运动矢量来优选瓦片运动而非局部运动。因此,第一步骤在于,将当前图像帧划分为jXk多个瓦片(该第一步骤已经执行用于特征点选择的目的,如上参考图IB和2A所述的)。计算足够准确用于DIS的特征点的运动矢量的第二步骤在于,使用最低分辨率上的块匹配为每个瓦片导出一个运动矢量。该步骤中,计算给定瓦片的SAD(绝对差值的和)。 关于给定瓦片的运动矢量是最小化SAD的运动矢量。关于给定运动矢量候选者ν = (vx, vy)的SAD (绝对差值的和)被定义为通过使用低分辨率下采样的图像,减少了计算并且进一步减少场景中小对象的影响。在第三步骤中,瓦片的运动矢量将在块匹配算法中被用作每个瓦片中的特征点的运动矢量的局部搜索的开始矢量。因为覆盖至少一个瓦片的主要部分的充分大的对象可以扩展到相邻瓦片,很可能在每个瓦片中有些特征点会更强烈地与相邻瓦片的运动矢量关联而非与它们被发现所处的瓦片的运动矢量关联。因此,有效的将是使用全部相邻瓦片的运动矢量作为任何给定瓦片的特征点的运动矢量的块匹配搜索的多个开始矢量。这里使用的瓦片在具有至少最大支持的运动矢量的尺寸的边界区域的帧中居中,使得可以完成全部瓦片中全部特征点的运动搜索而不用参考帧外的像素。图5是用于说明图IA到IF中说明的DIS方法中的运动矢量计算步骤的利用其上添加的计算的瓦片运动矢量的下采样的图IA的当前帧Ft的视图。图5中的较小(更少像素,更少数据)图像通过水平和垂直地下采样从原始的当前捕获帧或从先前下采样的图像 (图4A和4B的步骤S402)导出。通过下采样因子fs2(例如4)的下采样被用于全局(瓦片)运动估计。4X4下采样刚好平均化16个像素(通过取整),没有在输入侧的任何重叠。 然后,执行使用每个完整下采样瓦片的块匹配搜索以确定每个瓦片的运动矢量。关于给定瓦片的运动矢量是最小化SAD的运动矢量。在瓦片的情况下,采用找到的第一个运动矢量。该运动矢量将用作附近特征点的运动矢量的局部搜索的开始矢量。关于每个开始矢量的运动范围是可编程的。由于用于瓦片运动估计所需的操作的数量仅是用于局部运动估计所需操作的 12%,每个循环计算大约8个绝对差的和就够了。因此,可以不需要诸如脉动阵列的复杂或额外的处理组件。图6是图5的下采样帧中的瓦片的一部分的视图,其说明使用图5的瓦片运动矢量作为用于块匹配搜索的开始矢量以计算图IA到IF中说明的DIS方法中使用的选择的特征点的运动矢量。在瓦片中每个特征点的一组开始矢量中的每一个周围的高分辨率域中执行小局部块匹配搜索。该步骤可以以原始的视频分辨率、或以2或4的因子fs3的下采样执行。使用的开始矢量是已经如上确定的瓦片运动矢量。使用的开始矢量是特征点所属瓦片的矢量以及属于四个直接邻居(上瓦片、左瓦片、右瓦片、下瓦片)(假定存在)的矢量。因此,图6 中,对应于块匹配搜索区域1的开始矢量是特征点(FP)自己的瓦片的运动矢量;对应于块匹配搜索区域2的开始矢量是在FP的瓦片的下方的块的运动矢量;对应于块匹配搜索区域 3的开始矢量是在FP的瓦片的右方的块的运动矢量;对应于块匹配搜索区域4的开始矢量是在FP的瓦片的左方的块的运动矢量;对应于块匹配搜索区域5的开始矢量是在FP的瓦片的上方的块的运动矢量。根据另一实施例,使用四个对角邻居的开始矢量。可以执行用于选择开始矢量的其他步骤(例如,用于减少块匹配计算的数量),尤其是如果第一组瓦片矢量具有暗示一个大对象的彼此类似的幅度和方向(参见关于图8A、8B、9、10A、10B、IOC的运动矢量分组的讨论)。替换地,块匹配可以以给定优先级、或仅当两个或多个块匹配搜索区域重叠时、或在彼此接近的块匹配搜索区域之间等执行。通常,向特征点分配运动矢量将逐个瓦片进行,并且给定瓦片的每个特征点将使用相同的开始矢量(例如,瓦片运动矢量的相同选择)。然而,在各种其他实施例中,在给定瓦片的不同部分中的特征点可以使用开始矢量的不同选择,前提是检测的瓦片运动矢量的分组中与各瓦片相邻的特征点更可能是在该组的每个成员中共同找到的相同对象的可见点。因此,可以首先对靠近每个瓦片的周长的那些特征点执行块匹配搜索,以检测是否它们全部或几乎全部类似于它们自己的瓦片的运动矢量和/或类似于瓦片运动矢量的相邻分组的瓦片运动矢量。例如,如果全部初始选择的特征点(例如,靠近给定瓦片的周长的全部特征点、或离其中点最远的特征点)的运动矢量相同或类似于它们自己的瓦片的运动矢量,则可以减少剩余的特征点的选择的开始矢量的集合。对使用的每个开始矢量,我们使用非常小的范围用于局部搜索。这里的目的不在于确定用于每个特征点的准确矢量。相反,感兴趣的特征点是属于背景或大对象的那些。对于那些特征点,瓦片运动矢量的一个应该是良好的,或接近于感兴趣的特征点的运动矢量, 因此,关于每个选择的瓦片运动矢量的小的局部搜索是足够的。再参考图3,特征点电路3000的SFP(选择的特征点)运动矢量计算器700包括 第二下采样器710,用于输出比第一下采样器310更进一步下采样的亮度数据用于瓦片矢量计算;瓦片矢量计算器720,用于计算每个瓦片的运动矢量;以及分级块匹配搜索单元 730,用于确定和输出从特征点选择器300的特征点候选者拣选器340接收的每个选择的特征点(SFP)的运动矢量。第二下采样器710输出图5所示的深度下采样的当前帧Ft。瓦片矢量计算器720使用由第二下采样器710输出的当前帧Ft的深度下采样的亮度数据来计算每个瓦片的运动矢量。分级块匹配搜索单元730使用两个连续帧的全分辨率亮度数据(或第一下采样器310的输出)、并如上所述使用瓦片矢量作为开始矢量来确定由特征点选择器300的特征点候选者拣选器340输出的每个选择的特征点的运动矢量。图7是示出用于执行图IA到IF中说明的DIS方法中的步骤的计算图IA和2A的当前帧Ft中选择的特征点(SFP)的运动矢量的方法的流程图。在初始步骤中,图3所示的分级块匹配搜索单元730接收视频的两个连续帧(当CN 102547119 A
前帧和参考帧)的亮度数据(步骤S700i)以及选择的特征点的像素位置(S700ii)。当前帧Ft被划分为多个下采样瓦片(S710),其可以优选地与图4A和4B的特征点拣选方法中先前使用的瓦片相同。在子步骤S710-A,将当前帧Ft划分为jXk多个瓦片加上边界区域,如图2A所示。在子步骤S710-B,与每个瓦片关联的亮度数据通过因子fs2 (例如,fs2 = 4、8用于SD ;fs2 = 8、16用于HD)被下采样,如图5所示。接下来,在步骤S720,使用全搜索块匹配利用深度下采样的亮度数据计算每个瓦片的运动矢量,如图5所示,实现相对于下采样分辨率的半像素精度。可以保存与计算的运动矢量对应的计算的最小SAD值以用于DIS的其他特征(例如,用于过滤小对象的特征点)。在步骤S730,基于步骤S720的计算的瓦片运动矢量为当前选择的特征点(SFP)选择开始矢量,如上描述的。在步骤S740,利用全分辨率亮度数据执行分级块匹配算法并且使用基于瓦片矢量的选择的开始矢量确定当前SFP的运动矢量。重复步骤S730和步骤S740直到每个瓦片的每个SFP的运动矢量已经被计算(通过循环SD750和S752)。利用运动矢量幅度和方向的特征点分组通过计算相邻帧中可识别的“特征点”的运动矢量来检测视频帧之间的运动。然后可以将特征点的运动矢量“分组”以便识别场景内的运动对象,因为区别于摄像头/场景的全局运动。分析摄像头/场景的全局运动以在有意的(例如,摇摄)和无意的(抖动) 全局运动之间进行区分。如果没有抖动(无摄像头轨迹)则实际固定对象(例如,岩石的角,高山的峰)的每个检测的特征点将预期在两个或多个连续帧的每个中的相同位置中找到,并且全部那些检测的特征点的运动矢量将被测量为空。然而,如果有摄像头抖动,则任何给定的实际固定对象的许多特征点的矢量会具有不同的幅度和方向。数字图像稳定电路可以用来将(特征点的)多个运动矢量正确地“分组”以使得它们归结为相同的实际固定对象。通常的抖动摄像头运动是平移和旋转运动的混合,并且从摄像头到对象的距离改变。这贡献了背景固定对象的特征点的运动矢量差。但是当照相机运动具有旋转分量时, 距照相机相同距离的相同对象的运动矢量的方向无法相同。相同固定对象的特征点的矢量的幅度和方向二者可以不同。图8A和8B说明与纯粹的平移矢量运动比较从旋转的摄像头运动产生的不同的矢量。图中,假定相同固定的物理对象的两个选择的特征点SFP4和SFP5物理上处于距摄像头相同距离,并且在纯粹平移的摄像头运动的情况下矢量A是SFP4的运动矢量而B是SFP5的运动矢量,而在包括旋转的摄像头运动的情况下矢量A'是SFP4的运动矢量而B'是SFP5 的运动矢量。对于纯粹平移的摄像头运动,矢量A和B将具有完全相同的运动矢量,但是矢量 A'和B'由于旋转的摄像头运动而具有不同的幅度和不同的方向,即使它们处于距摄像头相同距离。图8A和8C说明在其中相同固定对象的两个特征点距离摄像头不同距离的情况下从纯粹的平移矢量运动产生的不同的矢量。假定相同固定的物理对象的两个选择的特征点 SFP4和SFP7物理上处于距摄像头不同距离,并且在纯粹平移的摄像头运动的情况下矢量A 仍是SFP4的运动矢量而C"是SFP7的运动矢量。因为SFP7比SFP4更接近于摄像头,同时它们是相同固定对象上的点,所以它们的运动矢量的幅度是不同的(矢量C"小于矢量A)。
因此,在将运动矢量分组时,需要考虑矢量差的余量用于由这些因素引起的矢量幅度和矢量方向(角度)差以使得可以将相同固定对象的全部特征点的运动矢量分组在一起。利用误差余量和使用简单的运动矢量差的检测运动矢量组的通常方法是定义误差阈值。运动矢量差的幅度ΔΜ是可以作为分组判决的基础的测量,并且误差余量作^可以定义为Δ M = SQRT ((xa-xb) "2+ (ya-yb) "2) <Ι1ιΔΜ,其中A = (xa, ya);B=(xb,yb);且作^是矢量差的幅度ΔM的误差阈值(正数)。当摄像头运动是纯粹平移(上下、和/或侧向)时运动矢量差方法的幅度是足够的,因为固定对象的全部特征点的运动矢量将具有相同的方向,因为它们全由相同的平移摄像头运动定义。如比较图8Α和8Β所示,即使在纯粹的平移的摄像头运动的情况下,不同的固定特征点的运动矢量也可以因为对象距摄像头不同距离而不同。在通常视频场景中相同的固定对象的特征点的运动矢量的幅度差一般相对较小,而且还可以通过允许矢量幅度差(IA卜|Β |)的一些余量来容忍该幅度差,并且在该情况下运动矢量差幅度ΔM的方法是合适的。图9Α说明其中运动矢量差的幅度ΔΜ是用于将两个特征点分组在一起的良好基础的两个运动矢量A和B的情况。在某些情况下矢量差的幅度ΔΜ单独可能不是将矢量分组的良好基础。图9Β说明其中矢量差的幅度ΔΜ'不是用于将两个特征点分组在一起的良好基础的两个运动矢量A'和B'的情况。图9Α和9Β中,如所示,矢量对(Α,B)和(A',B')具有完全相同的矢量差的幅度(ΔΜ=ΔΜ')。每个对(Α,Β)和(A',B')也可以具有在误差余量 ιΔΜ内的其各自的矢量差的幅度ΔΜ、ΔΜ'。可以基于它们的矢量差的幅度ΔΜ将矢量对A和B适当地分组在一起。但是矢量对A'和B'具有太多的角度(方向)差(例如,与对A和B比较)以致于将矢量A'和矢量B' —起分组在相同组中不适当。矢量差的幅度ΔΜ方法本身可能在其中两个特征点具有在余量Th,M内的它们的矢量差的幅度同时它们具有太大的角度(方向)差的实例中不适合用于运动矢量分组。摄像头轨迹的旋转分量可以造成固定对象的一个或多个特征点具有相同或相似的幅度,但是具有不同的方向,这并未被矢量差的幅度方法检测。因此,矢量差的幅度方法会造成不正确的抖动补偿和/或少于最优的视频压缩、和/或过度的计算功率或时间消耗、和/或由于固定或运动对象的不正确视频压缩带来的视频干扰。由特征点电路3000的分级块匹配搜索单元730输出的选择的特征点(SFP)的运动矢量接下来根据它们的幅度和方向进行分组,以基于连续视频帧之间对象的感知的相对运动将选择的特征点(SFP)的运动矢量与场景中的对象关联。当摄像头运动具有旋转分量时,诸如围绕与图像传感器/光电二极管阵列的平面正交的轴,一个对象(例如背景)的运动矢量的方向无法相同。背景的不同特征点矢量的幅度和方向均不同,即使它们实际上固定且距摄像头相同距离。
代替仅使用运动矢量差的幅度ΔΜ和误差余量作^用于分组判决,我们使用运动矢量的幅度比和归一化的矢量差来检测和容忍由旋转摄像头运动造成的运动矢量差的一些量。其中矢量A= (xa,ya),而矢量 B = (xb, yb),第一分组判决准则是基于幅度比(Mr) = |b|,其中b|"2 = (|B|"2)/(|A|"2) = (xb"2+yb"2) / (xa"2+ya"2)。第二分组判决准则是基于归一化矢量差(用于角度差的评估)=|a_b|,其中a-bl'2 = [{(xa-xb)"2+(ya_yb)1}/(xa"2+ya"2)]。对于矢量A与矢量B之间的角度差不超过θ th度,第二分组判决准则是a_b|~2 < Ma~2,其中Ma"2 = SQRT(l+|b| "2_2*|b|*cos θ J ;以及|b| = SQRT{(xb"2+yb"2)/(xa"2+ya"2)}即使在存在旋转摄像头运动时,使用基于这两个分组判决准则的判决的分组方法也可以执行最优的运动矢量分组。图10示出说明用于图IA到IF中说明的DIS方法中的特征点分组的角度差的间接测量的归一化矢量差的计算的三个矢量图。参考图10中的图(a),将矢量A与矢量B之间的差矢量(A-B)绘制为标记为(A-B)的水平矢量。为了容易阅读,将图(c)绘制为比图 (a)和图(b)大的比例。差矢量(A-B)的绝对幅度ΔM(A-B)将计算如下Δ M (A-B) = SQRT ((xa_xb) “ 2+ (ya-yb) ~ 2),其中A= (xa, ya)B= (xb, yb)参考图10的图(b),将归一化矢量a定义为矢量A除以矢量的绝对值|A|,因此归一化矢量a具有幅度1(见图10的图(c))。将归一化矢量b定义为矢量B除以矢量的绝对值|a|。通过以下公式定义幅度|A|和|B| A|"2 = (xa"2+ya"2)B|"2 = (xb"2+yb"2)注意b = B/|A|,因此幅度比(Mr)是绝对值|b = |B|/|A| = (B/|A|)|。因此, Ib是归一化矢量b的幅度,它通过将矢量B除以矢量A的幅度|A|而归一化(S卩,b = B/I A|)。因此,幅度比(Mr) = |b I = SQRT{(xb"2+yb"2)/(xa"2+ya"2)} 因为归一化矢量a的幅度是1,幅度|b|也等于归一化矢量a的幅度与归一化矢量 b的幅度Ibl之间的幅度比。因此,幅度Ibl称为幅度比|b| (Mr)。幅度比|b|不是矢量A 和B之间的角度差θ的函数。作为我们的第一分组判决准则,我们将|Α|/|Β|与运动向量A和向量B的幅度比 Mr进行比较。如果(|A|/|B|)~2>Mr~2,则我们判定矢量A和矢量B无法在相同组中。因此,如果(IAI / IB I Γ2 > Mr"2,则合适的最终组合判决是矢量A和矢量B无法在相同组中。 但是,如果(|A|/|B|)~2<Mr~2则我们基于使用归一化矢量差a-b作为准则做出第二比较。归一化矢量差(a-b)的绝对幅度I a-b I根据如下公式计算a-bl'2 = [{(xa-xb)"2+(ya-yb)"2}/(xa"2+ya"2)]
归一化矢量差(a-b)具有如图10的图(c)所示的绝对幅度|a_b|,其中,长度|a|、 Ib和I (a-b) I形成具有与边ι (a-b) I相对的矢量差角度θ的三角形,这意味着也可以使用作为θ函数的余弦规则计算ι (a-b) I。余弦规则定义三角形的未知边的长度与其他边的长度以及与未知边相对的角度之间的数学关系。归一化矢量差(a-b)的幅度I a-b I可以使用余弦规则通过以下公式获得(a-b) = SQRT(l+|b|"2_2*|b|*cosθ)。因此,表示为归一化矢量差(a-b)(图10的图(c)中与角度差θ相对的三角形的边)的幅度|a_b|的阈值的角度阈值可以被计算为|b|和角度差θ的函数,如余弦规则指示的那样。因此,我们可以定义幅度I (a-b) I的阈值幅度Ma作为角度差阈值,其中Ma是选择的阈值角度9th的函数。因此,我们可以将计算的归一化矢量差(a-b)的幅度|a_b|的平方与Ma的平方进行比较。因此,将I a-b I ~2与Ma~2进行比较来决定矢量A与矢量B之间的角度差是否足够小以使得应当将它们分组在一起。我们定义Ma~2= (1+1 b |~2_2* | b | *cos θ th),其中θ th是用于分组判决目的的预定角度阈值(例如30度),并且|b I = I (B/I A|) I = SQRT{(xb"2+yb"2)/(xa"2+ya"2)}如果I a-b |~2小于Ma~2,则我们判定矢量A和矢量B可以在相同组中。因此,如果 a-b I "2小于Ma~2,则合适的最终分组决定是矢量A和矢量B在相同的组中。因此,如果|a-b|~2小于Ma~2而且仅当(|A|/|B|)不大于幅度比(Mr)的平方 Ibl ~2,则矢量A和矢量B在相同的组中。因此,Ma~2的确切计算需要一次平方根运算(即, 用于计算I b I),而平方根运算可以是计算复杂的,或者需要相当的硬件实现,平方根运算的消除意义重大。我们已经设想用于Ma的近似(S卩,Ma = 0.5),其对于|b|等于1加或减 30% (S卩,对于0.7彡|b|彡1.3)和处于矢量误差(矢量差)角度的30度内(即,-30度
+30度)提供良好的分组结果。因此,第二分组准则变为|a-br2<0.5~2。如果我们绘制角度差θ、幅度比|b|以及归一化差I a-b I之间的关系,我们可以获得图12的曲线图。图12是作为角度差θ的各种值(在0度和90度之间)的函数的归一化矢量差 (a-b)的幅度I (a-b) I与归一化矢量差(a-b)的幅度比|b的曲线图,其说明在图11的分组算法的判决步骤dS1140中可使用的近似的可用性。通过实验,典型视频给出关于幅度比大于1加或减30%和关于角度差θ最大达 30度的良好的分组结果,如图12的方形区域的边界所示。如图12的曲线图所示,该经验范围对于0与0. 5之间的归一化矢量差的近似有效。使用近似,可以将SQRT(i+|br2-2*|b|*cose)近似为0.5而不管Ibl,以减少计算的负担。因此,使用该近似,第二分组准则变为|a-br2<0.5~2。图11是说明根据本发明构思的实施例的分组过程的流程图。分组过程1100使用包括关于选择的特征点(见图IA和2A的图像帧)的运动矢量之间的角度差的间接测量的归一化矢量差的两个准则,以执行图IA到IF中说明的DIS方法中图ID的矢量分组步骤。 分组算法1100包括幅度比分组判决准则(在判决步骤DS1120)和归一化矢量差分组判决准则(在判决步骤SD1140)。在分组算法1100外部操作的配对算法(步骤S1104、S1106、 S1152、dS1150、和S1154)掌控哪些特征点(运动矢量)已经与其他特征点配对,哪些仍未配对,以及哪些将整个从分组算法1100中排除。配对算法提供一对SFP运动矢量A和B作为对分组算法1100的输入(S1104、S1106)。在初始步骤iS1102,从外部电路接收幅度比余量、以及角度余量并提供给分组算法1100。分组算法1100基于接收的矢量A计算|A|~2并基于接收的矢量B计算|B|~2(步骤S1112和S1114),以在至少随后的步骤S1116、dS1120、和dSl 140中使用这些计算值进行随后的计算。因此,当将接收的矢量B从与接收的矢量A的分组排除时(判决步骤dS1120 的是分支或判决步骤dS1140的否分支),配对算法分配新的矢量B (步骤S115》且分组算法1100基于新矢量B计算IB Γ2的新值(步骤Sl 114),但是不需要同时更新当前矢量A的计算值|Α|~2(步骤S1112),因为将继续比较相同的矢量Α,不过是利用新矢量B。因此,适配为执行分组算法1100的硬件或软件可以被配置为分开存储值|Β|~2和|Α|~2的一个或多个实例,以使得计算高效地使用这些值中的一个进行多次比较,只要在矢量A和B中一次仅一个改变。分组算法1100接下来使用|Α|~2和B I ~2(来自步骤Sl 112和Sl 114)计算幅度比 Mr(|b|"2)和a-b|"2 (Sllie)0在判决步骤dS1120应用第一(幅度比)分组判决准则。在判决步骤dS1120中将幅度比的平方Mr~2与(| A | / | B | )~2和/或与幅度比余量(来自步骤 iS1102)进行比较。如果(IAI / IB I Γ2 > Mr"2 (判决步骤dS1120的是分支),则不将当前矢量A与当前矢量B分组,并且结束与当前矢量B的比较并选择新的矢量B (步骤S1152)。 如果(IAI / IB I Γ2不大于Mr~2 (判决步骤dS1120的否分支),则当前矢量A可以变为与当前矢量B分组,并且应用第二分组判决准则(在判决步骤dS1140)。如果|b|处于预定范围中(例如,基于|b|~2的值)并且如果角度差θ处于预定范围中(判决步骤dS1130的是分支),则归一化差矢量(a-b)的幅度Ma被近似(例如,Ma~2 = 0. 5"2)。否则,(判决步骤 dS1130的否分支),计算归一化差矢量(a-b)的幅度Ma(S1132)。接下来,在判决步骤dS1140中在第二(归一化矢量差)分组判决准则中使用归一化差矢量(a-b)的近似的或计算的幅度Ma。在判决步骤dS1140中将Ma的平方(Ma~2)与 (|『13|)~2和/或与角度余量(来自步骤丨31102)进行比较。如果(卜_13|)~2小于胞~2, (判决步骤dS1140的是分支),则可以将当前矢量A与当前矢量B分组(步骤S1142)。如果(I a-b I) "2不小于Ma~2,(判决步骤dS1140的否分支),则不将当前矢量A与当前矢量B 分组,并且结束与当前矢量B的比较并选择新的矢量B (步骤S1152)。一旦当前矢量A已经与全部可用的分组候选者矢量B比较(判决步骤dS1150的是分支),则选择新矢量A并且继续与剩余的(未分组的)分组候选者矢量B比较(S1154、 S1112等),或如果已经分组全部矢量,则分组算法1100等待直到新的帧需要处理。图13是包括配置为执行图11的特征点分组算法的分组算法电路1310的特征点分组电路1300的框图。特征点分组电路1300包括幅度比(Mr)比较器1320,配置为基于幅度比Mr (|b I)的准则执行第一分组判决(图11的判决步骤dS1120);以及矢量角度比较器1330,配置为基于归一化矢量差的准则(用于角度差的评估)执行第二分组判决(图11 的判决步骤dS1140)。本发明构思的该示范性实施例中的矢量角度比较器1330包括归一化差的幅度(Ma)计算器/估计器1332和归一化差的幅度(Ma)比较器1334。归一化差的幅度(Ma)计算器/估计器1332如上关于图11的步骤dS1130、S1132、和S1134描述的进行产生或计算。
特征点分组电路1300与图3的特征点电路3000共享RAM存储器350。存储器350 的SFP列表352部分包含由特征点候选者拣选器340输出的选择的特征点的列表。特征点分组电路1300中的配对算法控制器1302通过DMA存取SFP列表352并且选择矢量A和矢量B用于分组算法电路1310中的比较,如上参考图11的步骤S1152、S1154、dS1156、和 dS1150所述。当比较产生一组或多组矢量(选择的特征点的组)时,配对算法控制器1302 将分组的矢量或其描述列表写入存储器350的FP分组清单3M部分。特征点分组电路1300还包括I A|~2计算器1312、|B | "2计算器1314、以及Mr~2 = b|~2和a-b|~2计算器1316,配置为分别执行图11的步骤S1112、S1114、和S1116。上面公开的主题考虑为说明性的,而非限制性的,并且所附权利要求书意图涵盖落入本发明构思的真实精神和范围的全部这样的修改、增强、和其他实施例。因此,在法律允许的最大范围内,本发明的范围将由所附权利要求书及其等价物的最宽泛允许的解释来确定,而不应限制或约束于前述的详细说明。相关申请的交叉引用本发明要求2010年12月23日向美国专利商标局提交的两件美国临时申请编号 61/426, 970和编号61/426,975的优先权。两件临时申请的公开内容通过引用合并于此。
权利要求
1.一种处理视频数据的方法,包括 接收代表第一图像帧的第一图像数据; 将第一图像帧的部分划分为多个瓦片; 选择每个瓦片中的特征点;导出与每个瓦片对应的一个瓦片运动矢量; 基于瓦片运动矢量为每个选择的特征点选择开始向量; 接收代表第二帧的第二图像数据;以及使用选择的开始向量导出与每个选择的特征点对应的特征点运动矢量。
2.如权利要求1所述的方法,其中选择每个瓦片中的特征点包括识别瓦片内的特征点,其包括执行第一图像数据的第一下采样。
3.如权利要求1所述的方法,其中导出瓦片运动矢量包括执行第一图像数据的第二下采样。
4.如权利要求3所述的方法,其中导出瓦片运动矢量进一步包括为每个瓦片执行完全搜索块匹配。
5.如权利要求1所述的方法,其中选择每个瓦片中的特征点包括使用角点检测器识别第一图像帧中每个瓦片中的特征点。
6.如权利要求1所述的方法,其中选择特征点进一步包括计算第一图像帧中每个瓦片的亮度方差。
7.如权利要求1所述的方法,其中选择特征点进一步包括计算第一图像帧的总方差, 并计算每个瓦片的亮度方差与总方差的比率。
8.如权利要求1所述的方法,其中选择每个瓦片中的特征点包括将第一图像帧中每个瓦片中的每个特征点识别为当前识别的特征点候选者;以及基于当前识别的特征点候选者的角点响应与当前瓦片中先前识别的特征点候选者的角点响应的比较、以及当前识别的特征点候选者与其他先前识别的特征点候选者的邻近来拣选瓦片的识别的特征点。
9.如权利要求8所述的方法,其中所述拣选包括如果当前识别的特征点候选者在先前识别的特征点候选者的预定最小距离内,则拒绝当前识别的特征点候选者。
10.如权利要求9所述的方法,进一步包括如果当前识别的特征点候选者小于先前识别的特征点候选者,则拒绝当前识别的特征点候选者。
11.如权利要求8所述的方法,进一步包括在存储器中存储最多预定数量个识别的特征点候选者。
12.如权利要求11所述的方法,进一步包括如果当前识别的特征点候选者大于当前存储的识别的特征点候选者当中的最小者,则在存储器中存储当前瓦片的当前识别的特征点候选者;以及如果当前识别的特征点候选者更大,则取消当前存储的识别的特征点候选者当中的最小者的存储。
13.如权利要求11所述的方法,其中所述拣选进一步包括 如果满足以下条件则取消当前存储的特征点候选者的存储一个或多个当前存储的特征点候选者在当前识别的特征点候选者的预定最小距离内;而且当前识别的特征点候选者大于该一个或多个当前存储的特征点候选者。
14.如权利要求11所述的方法,其中与每个瓦片对应的识别的特征点候选者的预定数量是64或更少。
15.如权利要求1所述的方法,其中邻近第一帧的周长的边界边缘中的像素不被包括在所述多个瓦片中。
16.一种图像处理电路,包括接收器,配置为接收图像数据的第一帧和第二帧;划分器,配置为将第一帧的部分划分为多个瓦片;特征点电路,配置为识别每个瓦片中的特征点;以及运动矢量电路,配置为为每个瓦片导出关于识别的特征点的运动矢量。
17.如权利要求16所述的电路,其中运动矢量电路进一步包括瓦片矢量计算器,配置为导出每个瓦片的第一帧和第二帧之间的运动矢量;以及搜索单元,配置为使用选择的开始矢量导出每个瓦片中的选择的特征点的运动矢量;以及存储器,配置为为每个瓦片存储最多预定数量个特征点。
18.如权利要求16所述的电路,进一步包括下采样器,配置为下采样第一帧和第二帧的图像数据以导出每个瓦片中的特征点的第一帧和第二帧之间的运动矢量。
19.如权利要求16所述的电路,其中特征点电路包括角点检测器,配置为识别瓦片的特征点。
20.如权利要求16所述的电路,其中运动矢量电路进一步配置为从瓦片矢量的一个中选择用于选择的点的开始矢量。
21.如权利要求20所述的电路,其中第一帧的第一瓦片中的选择的点的选择的开始矢量包括第一瓦片的瓦片矢量、以及相对于第一瓦片右边相邻、左边相邻、上边相邻和下边相邻的任何瓦片的瓦片矢量。
22.如权利要求16所述的电路,其中特征点电路配置为从每个瓦片中的识别的特征点当中选择多个选择的特征点。
23.如权利要求16所述的电路,其中存储器为每个瓦片存储最多64个选择的特征点。
24.如权利要求16所述的电路,其中经由图像处理电路的I/O管脚接收图像数据的第一帧和第二帧。
25.—种处理视频数据的方法,包括 将帧的部分划分为多个瓦片;估计每个瓦片的运动矢量; 基于运动特性将运动矢量拣选到组中;以及选择代表帧的场景内的固定对象的运动矢量组。
26.如权利要求25所述的方法,其中估计瓦片的运动矢量包括使用下采样亮度数据执行特征点的搜索。
27.如权利要求沈所述的方法,其中估计瓦片的运动矢量包括选择具有最小绝对差值和(SAD)的瓦片运动矢量候选者。
28.如权利要求25所述的方法,其中选择代表帧的场景内的固定对象的运动矢量组包括拒绝代表帧的场景内的移动对象的移动的至少一个运动矢量组。
29.一种摄像头,包括图像捕获电路,配置为捕获图像并输出图像数据的第一帧和第二帧;以及图像处理电路,包括瓦片电路,配置为将第一帧的部分划分为多个瓦片; 特征点电路,配置为识别第一帧内的每个瓦片中的特征点;以及运动矢量电路,配置为导出关于每个瓦片的运动矢量并导出每个瓦片中的识别的特征点的运动矢量。
30.如权利要求四所述的摄像头,其中运动矢量电路进一步配置为基于至少一个瓦片的运动矢量导出识别的特征点的运动矢量。
31.如权利要求四所述的摄像头,进一步包括分组电路,配置为基于运动特性将运动矢量拣选到组中,并选择代表帧的场景内的固定对象的运动矢量组。
全文摘要
一种数字图像稳定(DIS)方法,包括特征点拣选算法,用于选择最优特征点;计算高效的基于瓦片矢量的分级块匹配搜索算法,用于导出选择的特征点的运动矢量;以及特征点运动矢量分组/比较算法,用于基于矢量幅度比准则和角度差准则来将选择的特征点分组。
文档编号H04N5/14GK102547119SQ201110436850
公开日2012年7月4日 申请日期2011年12月23日 优先权日2010年12月23日
发明者M.布朗, 朴圣秀 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1