CN102547118A - 数字图像稳定设备 - Google Patents
数字图像稳定设备 Download PDFInfo
- Publication number
- CN102547118A CN102547118A CN2011104368466A CN201110436846A CN102547118A CN 102547118 A CN102547118 A CN 102547118A CN 2011104368466 A CN2011104368466 A CN 2011104368466A CN 201110436846 A CN201110436846 A CN 201110436846A CN 102547118 A CN102547118 A CN 102547118A
- Authority
- CN
- China
- Prior art keywords
- vector
- amplitude
- motion vector
- characteristic point
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/207—Analysis of motion for motion estimation over a hierarchy of resolutions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Adjustment Of Camera Lenses (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一种数字图像稳定(DIS)方法,包括:特征点拣选算法,用于选择最优特征点;计算高效的基于瓦片矢量的分级块匹配搜索算法,用于导出选择的特征点的运动矢量;以及特征点运动矢量分组/比较过程,用于基于它们的矢量幅度比和它们的角度差来将选择的特征点对分组。
Description
技术领域
本发明构思这里涉及数字图像稳定(DIS),而且更具体地,涉及检测、选择、和分组用于数字图像稳定的特征点的方法。
背景技术
数字照相机、数字摄像机和包括这样的摄像头的手持设备常常用来在摄像头在人类操作员的手中操作时捕获图像或视频。因此,在捕获图像或视频时摄像头可能在操作员手中摇晃或抖动。该抖动可以包括水平分量、垂直分量、和旋转分量。旋转可以沿与图像捕获电路的聚焦平面垂直的轴,或者沿与图像捕获电路的聚焦平面平行的轴,或者沿在垂直轴与平行轴之间歪斜的轴。抖动可以使得手捕获的视频让观看者分心或迷惑,因此期望使用数字电路来数字估计摄像头轨迹(即,在每对连续帧之间检测的抖动)并且从相同场景的视频帧的序列中过滤该抖动。用于估计连续视频帧之间的摄像头轨迹并且用于从视频帧的序列中过滤由摄像头轨迹造成的抖动的电路可以包含在摄像机本身中,并且在存储捕获的视频帧之前(例如,如果摄像机包括实时MPEG编码器则在MPEG编码之前或在其期间)被激活以实时取消抖动。替换地,用于估计连续视频帧之间的摄像头轨迹并且用于从视频帧的存储序列中过滤抖动的电路可以是由实现数字图像稳定(DIS)方法的软件控制的通用微型计算机,或者可以是专用硬件,诸如嵌入在优化用于执行数字图像稳定(DIS)方法的ASIC(专用集成电路)中的MPEG视频编码器。
通过稳定的、固定或移动摄像机产生的视频在捕获的视频中主要包含平滑的运动(平移、旋转)。另一方面,不稳定的摄像机产生贯穿视频图像中具有高频抖动(平移和/或旋转)的视频。
从物理成像设备捕获的数字图像序列常常显示不希望的高频抖动运动。图像序列中呈现的抖动运动的量取决于图像捕获设备相对于捕获序列中的对象的物理性质。景深和成像器的底座的不稳定性(取决于底座的重量、惯量、平衡)组合以产生不希望的抖动全局运动。
数字图像稳定(DIS)系统首先估计不希望的(无意的)运动,然后对图像序列施加校正。稳定视频的视觉效果高度依赖于摄像头轨迹估计的质量。数字图像稳定(DIS)算法使用有效跟踪的特征点来估计两个连续帧之间的抖动运动。数字视频稳定采用硬件和/或软件方法,用于从包含由不稳定摄像机造成的不期望抖动运动的不稳定的视频中产生空间稳定的视频。在传统DIS技术中,通过分析场景中不同的点的运动矢量来检测摄像头运动。但是运动矢量可以由对象运动以及摄像头运动引起。
存在这样的函数,其提供帧的每个像素的数字得分,指示该点作为在时间相邻的帧中能够检测的特征点有多合适。这样的函数的一个示例是哈里斯角点检测器(Harris Corner Detector)。然而,特征点的幅度对于图像的不同部分通常很不同。DIS方法可以采用全局阈值与每个像素的数字得分进行比较,这并不必然导致特征点的最优分布。因此,在低对比度的区域(例如,无云的蓝天导致稀散的或没有特征点)中可能特征点太少,而在具有许多结构的区域中,特征点可能彼此过于接近。特征点的分布不当可能增加计算过于接近的特征点的冗余运动矢量的计算负担,并且可能无法提供准确的运动矢量。
在数字图像稳定(DIS)方法的实施方式中,期望最小化计算开销以便减少电路的功耗和减少执行DIS方法所需的时间。还期望检测和测量摄像头的轨迹并准确地刻画抖动以使得可以从存储/显示的视频中正确地补偿和正确地取消抖动。
在数学中,仿射几何是通过仿射变换(即,非单线性变换和转换)依然不改变的几何性质的研究。已经发展了被称为仿射矩阵的由数字系数定义的数学方程组来刻画在每对连续帧之间或在其各部分(例如,帧中的运动对象)之间检测的运动的横向(上/下)、旋转、和标量(例如,放大或缩小)。
因此,抖动可以通过被称为主变换或全局变换的相对于场景中的任何实际固定对象(例如,岩石、桌子、停驻的汽车、高山、太阳)的第一仿射变换矩阵来刻画,同时帧中的任何运动对象(例如,鸟、人、球、移动的车)可以通过另外的仿射矩阵来刻画。
主变换(主帧间变换)指示可能由用户的手抖动造成的摄像头运动,其可以通过检测与在时间t捕获的每个帧的实际固定对象关联的一个或多个兴趣点(称为“特征点”)、然后在时间相邻帧(t+1)中搜索相同的特征点、并且计算每个特征点的运动矢量来计算。与特定对象关联(一起分组)的多个运动矢量然后被用于计算该对象的仿射变换,其根据仿射公式定义其检测的运动:
x′=sx*x+ry*y+tx
y′=rx*x+sy*y+ty
可以使用在视频压缩领域中采用的各种搜索方法来计算连续帧之间特征点的运动矢量。这样的搜索方法可以在两个时间相邻帧中采用诸如绝对差值和(SAD)、平均绝对差值(MAD)、或平均平方差(MSE)的宏块的数学比较(例如,通过将当前帧中包含特征点的8×8像素宏块与以特征点的位置为中心的参考帧(t+1)中的搜索区域中的多个8×8像素宏块进行比较来搜索参考帧(t+1)中特征点的位置)。在时间相邻帧(t和t+1)之间以特征点为中心的宏块的位移的测量的量和方向被称为特征点的“运动矢量”。在各种选择范围内使用块匹配算法(BMA)的现有技术的运动矢量估计方法在美国专利6,895,361(发明人Yang)和7,680,186(发明人Lee)中描述,其通过引用合并于此。
发明内容
本发明构思的一方面提供识别特征点、并导出由于全局移动或摄像头移动而以一致方式移动的特征点的运动矢量、同时准确用于DIS目的的高效率过程。
用于DIS算法的良好特征点是当应用合适的运动估计算法时给出单值的运动矢量的点。为了识别图像中的特征点,应用于视频帧的像素的哈里斯角点检测器估计每个像素有多适合作为特征点。图像的不同区域具有识别的特征点候选者的不同密度。公开的光栅扫描顺序选择和拣选的方法基于视频帧的小区域(称为瓦片(tile))提供最终的特征点分布,其中特征点的最大数量随瓦片的亮度图像数据的方差σ2线性增长。
每个视频帧被划分为较小数量j×k个瓦片。数量j×k个瓦片可以从用于SD视频的4×4到用于HD视频的6×6或更大;在(4..8)×(4..8)的范围内的其他数量也是可能的并且可以是有益的。选择瓦片尺寸以使得独立移动的足够大的对象覆盖至少一个瓦片的大部分,从而可以捕获它们的运动用于DIS目的,同时忽略小对象的运动。
具有更多感兴趣图像数据并且因而需要更多特征点的瓦片预期具有较高的方差σ2。特征点拣选算法找到特征点之间的可编程的最小距离但是需要最少的硬件存储器。
分级运动估计算法可以用来估计从帧到帧的特征点移动,其中关于后一搜索级别的可编程运动范围是有意的小,从而优选大对象或全局移动而非局部移动。因此,最小化所需的操作数量,同时结果足够准确用于数字图像稳定应用。
对于例如通过拣选算法选择的每个特征点,在使用的开始矢量的小范围中通过块匹配确定其运动矢量。开始矢量是包含当前特征点的瓦片和周围瓦片(例如,上、下、左、右)的瓦片运动矢量。瓦片运动估计是导出特征点的运动矢量的过程的第一步。基于覆盖输入图像的中心部分的非重叠瓦片(例如,在特征点拣选算法中使用的相同瓦片)完成瓦片运动估计。对于每个瓦片的瓦片运动估计,在下采样图像上执行全块匹配搜索。
当前帧通过用于标清(SD)视频的四到八或用于高清(HD)视频的八到十六的第二下采样系数fs2进行下采样。在该下采样域中,对每个瓦片完成全搜索块匹配并且存储瓦片矢量以备后用(例如,作为用于导出特征点的运动矢量的开始矢量)。将为每个瓦片估计一个运动矢量,以最低分辨率进行全搜索,通过下采样亮度数据的第二下采样系数fs2进行下采样,并且将产生最低SAD的运动矢量候选者分配到每个瓦片。根据实施例,对于边界瓦片,可以将搜索限制在可用的搜索区域,因此不会产生导致参考块(部分地)在搜索区域外部的运动矢量。相对于使用的分辨率,瓦片运动搜索将产生半像素精度矢量:搜索区域将通过简单双线性插值进行上采样。这仅使用非常少的本地存储器,因此节约VLSI实施方式中的存储器和逻辑区域。
本发明构思的一个方面提供数字图像稳定(DIS)方法,包括特征点运动矢量分组过程,用于基于特征点的运动矢量幅度比和它们的运动矢量之间的角度差来将特征点对分组。提供一种处理视频数据的方法,包括:接收代表第一帧的第一图像数据;识别第一帧中的多个特征点;接收代表第二帧的第二图像数据;导出与每个特征点对应的运动矢量;选择运动矢量中的第一运动矢量作为当前矢量A,并且选择运动矢量中的第二运动矢量作为当前矢量B;以及基于矢量A和矢量B的矢量幅度比和它们的角度差来比较矢量A和矢量B。
该方法还可以包括:设置幅度比阈值和角度差阈值;以及如果矢量A和矢量B的矢量幅度比落入幅度比阈值内且它们的角度差落入角度差阈值内则将矢量A和矢量B分组在一起。根据另一个方面,包括:如果它们的矢量幅度比落入幅度比阈值之外或如果它们的角度差落入角度差阈值之外则不将矢量A和矢量B分组在一起。
根据本发明构思的实施例,提供一种视频处理电路,包括:特征点电路,配置为识别第一帧中的多个特征点并为每个特征点导出第一帧与第二帧之间的运动矢量;配对控制器,配置为选择运动矢量中的一个作为当前矢量A(xa,ya),并且选择运动矢量中的不同的一个作为当前矢量B(xb,yb);幅度比比较器,配置为基于矢量A和矢量B的幅度比来比较矢量A和矢量B;以及矢量角度比较器,配置为基于矢量A和矢量B的角度差来比较矢量A和矢量B。
根据示范性实施例,提供一种处理视频数据的方法,包括:估计视频数据的第一帧中每个特征点的运动矢量;基于矢量幅度比和角度差将运动矢量分组为运动矢量组;以及选择包含代表第一帧的场景内固定对象的移动的运动矢量的组。该方法还可以包括:使用下采样亮度数据估计从第一帧的一部分划分的多个瓦片的每个的运动矢量,并且选择具有最低绝对差值和(SAD)的瓦片运动矢量候选者;以及基于矢量幅度比和角度差将瓦片运动矢量分组为瓦片运动矢量组。
根据本发明构思的实施例,提供一种摄像头,包括:图像捕获电路,配置为捕获图像并且将多个图像转换为图像数据的第一帧和第二帧;以及视频处理电路芯片,包括:特征点电路,配置为识别第一帧中的多个特征点并为每个特征点导出第一帧与第二帧之间的运动矢量;配对控制器,配置为选择特征点的运动矢量当中的每对运动矢量;幅度比比较器,配置为基于它们的矢量幅度比来比较每对运动矢量;以及矢量角度比较器,配置为基于它们的矢量角度差来比较每对运动矢量。
下面将参考附图来更详细地描述本发明构思的示范性实施例。然而,本发明可以以不同的形式实现,而不应被解读为限于这里描述的实施例。相反,提供这些例子使得本公开更为全面和完整,并向本领域技术人员完整地传达本发明的范围。相同的数字通篇指代相同的元件。
附图说明
包括附图以提供本发明构思的进一步的理解,并且合并和构成本说明书的一部分。附图说明本发明构思的示范性实施例,并且与说明书一起用来解释本发明的原理。附图中:
图1A到1F是用于说明根据本发明构思的示范性实施例的数字图像稳定方法中的步骤的当前帧和参考帧、以及其选择的特征点和运动矢量的视图;
图2A是依据图1A到1F中说明的DIS方法中的步骤的包含图1A的当前帧Ft、并且划分为边界区域和核心区域中的j×k多个瓦片的图1E的捕获帧的图;
图2B是依据图1A到1F中说明的DIS方法中的步骤的说明选择的、拒绝的、和取消的特征点的图2A的图像帧的核心区域中的一个瓦片的图;
图3是根据本发明构思的实施例的配置为执行DIS过程的电路块的图;
图4A和4B是用于执行图1A到1F中说明的DIS方法中的步骤的识别和选择图1A和2A的图像帧的每个瓦片中的多个特征点的方法的流程图;
图5是用于说明图1A到1F中说明的DIS方法中的运动矢量计算步骤的利用其上添加的瓦片运动矢量下采样的图1A的当前帧Ft的视图;
图6是图5的下采样帧中的瓦片的一部分的视图,其说明使用图5的瓦片运动矢量作为用于块匹配搜索的开始矢量以计算图1A到1F中说明的DIS方法中使用的选择的特征点的运动矢量;
图7是用于执行图1A到1F中说明的DIS方法中的步骤的计算图1A和2A的图像帧中选择的特征点的运动矢量的方法的流程图;
图8A是当摄像头仅具有平移运动而没有旋转分量时在距摄像头相同距离的视频场景中相同的实际固定对象的两个特征点的运动矢量的图;
图8B是当摄像头具有旋转分量时距摄像头相同距离的实际固定对象的两个特征点的运动矢量的图;
图8C是当摄像头仅具有平移运动而没有旋转分量时距摄像头不同距离的相同的实际固定对象的两个特征点的运动矢量的图;
图9A和9B是视频场景中实际固定对象的特征点的两对运动矢量的图,用于说明即使四个运动矢量的方向和幅度全部不同时每个对也可以具有相同的矢量幅度差;
图10示出说明用于图1A到1F中说明的DIS方法中的特征点分组的角度差的间接测量的归一化矢量差的计算的三个矢量图;
图11是用于执行图1A到1F中说明的DIS方法中图1D的矢量分组步骤的使用图10A、10B、10C的归一化矢量差来间接测量图1A和2A的图像帧中选择的特征点的运动矢量之间的角度差的分组算法的流程图;
图12是归一化矢量差(a-b)的幅度|(a-b)|与归一化矢量差(a-b)的幅度比|b|作为角度差θ的函数的曲线图,其说明用于在图11的分组算法的步骤中使用近似的可用性;以及
图13是包括配置为执行图11的特征点分组算法的分组算法电路1310的特征点分组电路的框图。
具体实施方式
图1A到1F是用于说明根据本发明构思的示范性实施例的数字图像稳定方法中的步骤的当前帧和参考帧、以及其选择的特征点和运动矢量的视图。
图1A示出场景的两个连续视频帧,当前帧Ft和参考帧Ft+1。场景包括例如山坡(在前景中)、电线杆、高山、和太阳的固定对象、以及例如左上的鸟的运动对象。当前帧Ft和参考帧Ft+1是具有较大面积的各个连续捕获帧的部分(如图1E所示)。较大的捕获帧是在数字图像稳定(DIS)之前通过图像传感器捕获的原始图像。由于由抖动运动造成的摄像头轨迹引起参考帧Ft+1相对于当前帧Ft旋转和平移。捕获帧(见图1E)的尺寸一般通过摄像机的物理图像传感器(未示出)的硬件尺寸预定。当前帧Ft和参考帧Ft+1的尺寸可以动态地选择以避免或最小化由于摄像头的抖动运动引起在捕获帧的边界外发生当前帧Ft的“过度偏离”。
图1B示出与场景中的实际固定对象和运动对象关联的当前帧Ft中的多个选择的特征点(圆形)。将当前帧Ft划分为多个矩形瓦片,每个瓦片包括至少一个选择的特征点。可以通过执行图2A、2B和4A和4B中说明的方法的步骤、和/或通过图3的电路来识别和选择图1B所示的选择的特征点。当前帧和参考帧被存储在图3的电路的存储器350中,同时通过执行图2A、2B和4A和4B说明的方法的步骤来识别和选择图1B所示的选择的特征点。
图1C示出具有运动矢量(箭头)的当前帧Ft的每个选择的特征点。可以通过执行图6和7所示的方法的步骤来计算图1C所示的选择的特征点的运动矢量。
图1D示出场景中的运动矢量已经被分组(例如,组A、组B、组C)。场景中的实际固定对象的运动矢量(组B和组C)是由摄像头移动(例如抖动)造成的。可以通过图10A、10B和10C以及图11所示的方法的步骤来执行图1D所示的选择的特征点的运动矢量的分组,其中基于使用幅度比和归一化矢量差的配对算法将运动矢量配对/分组(包括或排除)。
图1E示出在由图像传感器(未示出)输出的较大的捕获帧的大背景中的参考帧Ft+1。通过使用图1D所示的实际固定对象的组B和组C的运动矢量定义参考帧Ft+1的仿射系数来确定参考帧Ft+1的位置。可以使得在参考帧的边界外的捕获帧的图像数据对执行用于计算组B和组C的运动矢量的图6和7所示的方法的步骤的电路可用。
图1F示出如果没有由图1D所示的实际固定对象的运动矢量指示的抖动摄像头运动则参考帧Ft+1在它本该由图像传感器(未示出)接收的位置。已经通过补偿电路(未示出)应用参考帧Ft+1的仿射系数以旋转和平移参考帧Ft+1来校正摄像头的抖动运动。
特征点识别、拣选和分布
图2A是依据图1A到1F中说明的DIS方法中的步骤的划分为边界区域和核心区域中的j×k多个瓦片的当前帧Ft(见图1E)以便于特征点的识别和拣选的捕获帧的图。边界区域与核心区域之间的边界线可以独立于接收的图像数据的内容由硬件或通过软件预先确定,同时当前帧Ft的边界可以基于由例如接收的图像数据内容指示的抖动摄像头运动的程度而动态地选择,以便防止或减少当前帧的过度偏离。因此,核心区域可以或可以不对应于图1A所示的当前图像帧Ft的尺寸和位置。
每个捕获的视频帧被划分为小数目的非重叠瓦片(例如,用于标清的4×4瓦片和用于高清的6×6或更多瓦片),目的是算法上选择提供适合于数字图像稳定的良好特征点分布的特征点。图像的不同区域可以具有不同密度的合适的特征点。在极端情况下,帧的区域可能不具有任何合适的特征点,例如在无云的蓝天的情况下。在其他区域中,潜在的特征点也许非常稠密。当使用基于全局的阈值来识别和选择全部特征点时,特征点倾向于集中在图像的小区域中,导致差的DIS结果。依然期望在其中有更多结构的图像的区域中具有更多特征点,因为存在潜在上更感兴趣的运动。在这些密集的区域中,另一问题是如何保证并非所有特征点堆积在一起。因此本发明的一方面提供用于确保将用于DIS的特征点之间的最小距离(MIN_DIST)的高效率方法。
为了DIS算法的稳定性,尽可能广泛地分布特征点,同时限制特征点的总数量。特征点的“良好分布”可以表示如下:其具有大的凸包;特征点彼此不太接近(MIN_DIST);在具有较少的合适特征点的瓦片中,如果可能,则选择至少最小数量(min_features)的特征点;以及,在具有更多的合适特征点的瓦片中,选择更多的特征点(max_num_features=min_features+max_plus_features*(tile_varianceσ2/total_variance))。
基于瓦片的亮度方差σ2确定每个瓦片中特征点的最大数量(max_num_features)。
在一个实施例中,每个瓦片中特征点的最大数量(max_num_features)是每个瓦片的特征点的可编程的最小数量(min_features)加上另外的特征点的可编程的最大数量(max_plus_features)乘以特定瓦片的方差σ2与瓦片方差的总和的比率的和。如果瓦片具有不同的尺寸则可以应用校正因子。因此,每个瓦片的最终选择的特征点的最大数量可以替换地为min_features加上与瓦片的方差σ2成比例、通过对应的瓦片权重归一化的var_features的部分。可以给予边界瓦片较高权重,因为它们包括边界区域因此较大。在该替换的情况下,给定瓦片的特征点的最大数量计算如下:
因此,选择的特征点的最大数量(max_num_features)并不在全部瓦片中保持恒定,也不在帧Ft与帧Ft+1之间保持恒定。
在一个实施例中,每个瓦片中特征点的最大数量(max_num_features)是每个瓦片中亮度数据的方差σ2除以总亮度方差的函数,需要预先计算每个瓦片的亮度方差σ2和帧的总方差。本领域普通技术人员不难理解其他函数也是可以的,例如涉及平均亮度值和瓦片方差σ2的函数。
为了识别特征点,可以使用诸如哈里斯角点检测器之类的角点检测器。哈里斯角点检测器评估图像的每个像素作为可能的特征点候选者。优选的特征点候选者是其中特征质量估计函数具有局部最大值的点。公开的特征点选择的方法通过将每个识别的特征点的结果值(估计该像素多么适合作为特征点)与LOCAL(局部)而非GLOBAL(全局)(全帧)阈值进行比较来优化由哈里斯角点检测器识别的特征点的选择。因此,公开的方法考虑每个局部区域处的特征点密度乃至帧的不同部分中的对比度的差别。
获得的特征点分布是基于视频帧的小区域,(例如,非重叠瓦片),其中每个瓦片中的特征点的数量随瓦片的亮度图像数据的方差σ2线性增加。具有更多感兴趣图像数据且因而需要更多特征点的瓦片预期具有较高的方差σ2。
图4A和4B是说明确定每个瓦片中特征点之间的最小距离(MIN_DIST)同时仅需要少量局部状态信息从而减少硬件实施成本的方法的流程图。
图2B是图2A的图像帧的核心区域中的一个瓦片的图,其说明选择的(灰色)、拒绝的(白色)、以及先前选择但是取消的(灰色但是打叉)特征点。图2B中示出为小方块的特征点已经使用哈里斯角点检测器算法识别为特征点候选者,然后依据图4A和4B说明的方法的步骤按光栅扫描顺序被依次选择、拒绝或取消。
对于每个瓦片选择识别的特征点候选者的最大数量(max_num_features)。根据本发明的实施例,每个识别的特征点候选者可以通过如下例如以光栅扫描顺序选择:
i.识别的特征点候选者是其中哈里斯角点估计函数超过可编程阈值且其中该估计具有局部最大值的像素。为了满足局部最大值,探讨的位置处的值必须大于按扫描顺序在该像素之前的全部直接和对角邻居的值,但是仅大于或等于按扫描顺序在该位置之后的直接和对角邻居的值。这被实现以容纳相同值是相当类似的事实。
ii.一旦特征点候选者已经被识别,其将进入数据存储结构(例如,拣选列表,但是其他实施方式也是可能的),其可以为每个瓦片保留预定最大数量的特征点候选者,例如,最大32、48、64、或更多的最终选择的特征点,前提是没有在可编程封锁范围(MIN_DIST)内的具有更大的估计函数值的特征点候选者。为了说明的目的,选择最大值32来描述本实施例。
iii.如果后来识别的特征点候选者已经存储在数据结构中,则将离该点比封锁范围(MIN_DIST)更近的具有更小估计函数值的全部其他特征点从数据存储结构中删除。
为了说明的目的,假定瓦片(5,4)的特征点候选者的预定最大数量是四(即,max_num_features=4)。如图2A所示,瓦片(5,4)包含按光栅扫描顺序的四个最终选择的特征点(灰色)SFP3、SFP4、SFP5和SFP7、以及三个先前选择但是取消的(灰色但是打叉)特征点SFP1、SFP2、和SFP6、加上两个拒绝的(从未选择的)特征点(白色)。取消的先前选择的(灰色但是打叉)的特征点SFP1、SFP2、和SFP6是这样的特征点候选者,它们在图4A和4B说明的方法的过程期间按光栅扫描顺序选择为特征点,但是随后取消作为特征点候选者,原因是它们处于稍后识别和选择为特征点候选者的较大的特征点候选者的排斥区域(MIN_DIST)内,或因为选择的特征点的列表已经满了(即,选择的特征点候选者的数量SFP_count=max_num_features)并且较早选择的特征点在选择的特征点候的列表中是最小的并且小于稍后识别和选择的特征点候选者。
取消的先前选择的特征点SFP1是依据图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),因为在选择的特征点SFP1、SFP3、SFP4和SFP5的列表中SFP1是最小的,且因为SFP6大于SFP1,故取消SFP1。然后,在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配置为执行如图1B和2B中进一步说明的图4A和4B的逐一拣选每个瓦片的识别的特征点的方法。下采样器310包括瓦片-方差σ2计算器320功能块,其根据以下公式计算图像帧的每个瓦片的瓦片-方差σ2:
其中y值是瓦片内的亮度值而N是瓦片中像素的数量。
图3所示的电路可以在半导体芯片中实现,其具有被配置为从具有捕获图像的传感器和用于将捕获的图像转换为图像数据的电路的摄像头接收图像数据的输入/输出管脚。图3的电路处理的数据经由输入/输出管脚输出到摄像头的其他组件。如下面将进一步描述的,存储器350驻留在半导体芯片内并且最小化芯片的尺寸,存储器需要在物理尺寸上很小因此存储容量受限。为了节约计算功率并减少所需操作的数量,特征点选择器300可以仅对亮度数据操作,其将由下采样器310按照为2、4、或8的因子fs1(本实施例中选择为4的因子fs1)来水平和垂直地下采样。经fs1下采样的亮度数据由特征点候选者识别器330用于特征点识别,而且在替换实施例中可以稍后由SFP运动矢量计算器700的分级块匹配搜索单元730用于特征点运动矢量估计。在通过下采样器310计算较小的下采样图像的同时,计算每个瓦片的亮度方差(瓦片-方差)σ2,并且识别3×3哈里斯角点矩阵的较小本征值的全局最大值。作为左上瓦片的左上像素的坐标的瓦片偏移量和瓦片像素尺寸两者优选地是使用的最大下采样因子(fs2)的倍数。而且优选地,图像核心区域在整个图像中居中。因此,左边界区域的宽度与右边界区域的宽度相同且上边界区域的高度与下边界区域的高度相同(见图2A)。
一旦输入帧亮度数据已经被下采样和存储在RAM存储器350中,特征点候选者识别器330将其按瓦片顺序读取,并将识别的特征点候选者依次馈送到特征点候选者拣选器340。对于块330的特征点识别过程,与边界区域相邻的瓦片中的潜在特征点的统计区域扩展到边界区域,因此每个边界区域的像素与相邻瓦片的像素一起处理。像素数据在每个瓦片内按光栅扫描顺序读取:从上到下逐行,在每行内从左到右逐像素。
为了处理每个瓦片,特征点候选者识别器330需要每个内部瓦片边界上的三个另外的像素用于使用哈里斯角点检测器的特征点识别。因此,这些像素将被读取不止一次。识别的特征点候选者是每个瓦片中哈里斯矩阵的较低本征值λ1具有局部最大值处的像素。为了满足局部最大值,探讨的像素的角点响应必须大于左上、上、右上、和左邻居的角点响应并且大于或等于右、左下、下、和右下邻居的角点响应。通过该定义,具有相同的恒定角点响应的较大区域的至少一个点将被识别为潜在的特征点候选者。局部最大值的检测逻辑将需要角点响应的两个行缓冲器。首先将具有局部角点响应最大值的点与可编程角点响应阈值进行比较。如果探讨的点的角点响应小于该阈值,则忽略它。否则,将该特征点的坐标及其角点响应提供给特征点候选者拣选器340。
特征点候选者拣选器340在每个瓦片中掌控最多max_num_features(例如,32)个具有最高角点响应的特征点候选者,同时确保全部特征点彼此间具有最小可编程距离(MIN_DIST)。以上算法中使用的两个点之间的距离如下定义:
通过仅考虑拣选器的选择的特征点的列表和进来的特征点候选者的当前内容并且立刻做出决定的操作来实现图4A和4B的方法的拣选。因此,适配为执行图4A和4B的方法的特征点候选者拣选器340将不会固有地计算全局最优,并且结果将取决于其中进来的特征点候选者被提供的顺序。
特征点候选者拣选器340逐一输出选择的特征点,并且它们被存储在图3的电路的存储器350的部分中的SFP列表中。
图4A和4B是用于执行图1A到1F中说明的DIS方法中的步骤的识别和选择图1A和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指示的(即,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_count(例如,减少或不变)(S418)。
一旦已经选择(S420)或拒绝(S417)当前FP候选者,哈里斯角点检测器就输出当前瓦片的下一(S428)当前像素(S410)的值(SD422),并且下一识别的FP候选者马上经历特征点拣选算法(SD412、SD414、SD416、S417、SD430、S418、S420)等。如果已经处理当前瓦片的最后像素(SD422),则处理下一瓦片(SD424、S426)。如果已经处理最后瓦片,则完成该过程直到下一图像帧将被处理。
特征点运动矢量计算
在当前帧Ft中的每个瓦片的特征点已经被识别和拣选之后,图1A到1F的DIS方法中的下一步骤是获得每个选择的特征点的运动矢量。
用于计算特征点的运动矢量的块匹配算法(BMA)是众所周知的。在块匹配中,对参考帧的目标区域中的块的全部可能位置计算误差函数(例如,SAD、MAD、MSE)。具有该函数的最低结果的位置被用于计算估计运动矢量。块匹配是计算复杂的。存在几个已知方法来减少计算成本。分级或多分辨率块匹配是这些方法中的一种,其中首先以低分辨率计算全局运动。产生的矢量将用于以较高分辨率搜索较小范围,从而减少需要的算术运算的总数。
对于多数应用,特别对于视频编码,对于帧的全部块需要准确的运动矢量。因此,在后面阶段中的搜索范围常常相对较大。图1A到1F中说明的数字图像稳定(DIS)方法中,仅需要估计特征点(例如,实际固定对象)从一帧到下一帧的相对运动。为了图像稳定的目的,需要代表背景和大对象的运动的准确运动矢量,而较小对象无需具有与其关联的准确运动矢量。在DIS算法的后期阶段中可以过滤任何关于较小对象的不准确矢量。
预期在DIS方法中显著的大的固定对象的特征点将因为全局移动或摄像头移动而按一致方式移动。我们认识到独立移动的充分大的对象覆盖至少一个瓦片的主要部分,使得它们的运动可以被估计为瓦片自身的主导运动,同时小对象的运动对瓦片自身的运动矢量具有很少的影响。因此,可以修改计算运动矢量的过程以减少计算,例如通过使用分级运动估计算法以及通过使用瓦片的运动矢量来优选瓦片运动而非局部运动。因此,第一步骤在于,将当前图像帧划分为j×k多个瓦片(该第一步骤已经执行用于特征点选择的目的,如上参考图1B和2A所述的)。
计算足够准确用于DIS的特征点的运动矢量的第二步骤在于,使用最低分辨率上的块匹配为每个瓦片导出一个运动矢量。该步骤中,计算给定瓦片的SAD(绝对差值的和)。关于给定瓦片的运动矢量是最小化SAD的运动矢量。关于给定运动矢量候选者v=(vx,vy)的SAD(绝对差值的和)被定义为:
通过使用低分辨率下采样的图像,减少了计算并且进一步减少场景中小对象的影响。
在第三步骤中,瓦片的运动矢量将在块匹配算法中被用作每个瓦片中的特征点的运动矢量的局部搜索的开始矢量。因为覆盖至少一个瓦片的主要部分的充分大的对象可以扩展到相邻瓦片,很可能在每个瓦片中有些特征点会更强烈地与相邻瓦片的运动矢量关联而非与它们被发现所处的瓦片的运动矢量关联。因此,有效的将是使用全部相邻瓦片的运动矢量作为任何给定瓦片的特征点的运动矢量的块匹配搜索的多个开始矢量。这里使用的瓦片在具有至少最大支持的运动矢量的尺寸的边界区域的帧中居中,使得可以完成全部瓦片中全部特征点的运动搜索而不用参考帧外的像素。
图5是用于说明图1A到1F中说明的DIS方法中的运动矢量计算步骤的利用其上添加的计算的瓦片运动矢量的下采样的图1A的当前帧Ft的视图。图5中的较小(更少像素,更少数据)图像通过水平和垂直地下采样从原始的当前捕获帧或从先前下采样的图像(图4A和4B的步骤S402)导出。通过下采样因子fs2(例如4)的下采样被用于全局(瓦片)运动估计。4×4下采样刚好平均化16个像素(通过取整),没有在输入侧的任何重叠。然后,执行使用每个完整下采样瓦片的块匹配搜索以确定每个瓦片的运动矢量。
关于给定瓦片的运动矢量是最小化SAD的运动矢量。在瓦片的情况下,采用找到的第一个运动矢量。该运动矢量将用作附近特征点的运动矢量的局部搜索的开始矢量。关于每个开始矢量的运动范围是可编程的。
由于用于瓦片运动估计所需的操作的数量仅是用于局部运动估计所需操作的12%,每个循环计算大约8个绝对差的和就够了。因此,无需脉动阵列。
图6是图5的下采样帧中的瓦片的一部分的视图,其说明使用图5的瓦片运动矢量作为用于块匹配搜索的开始矢量以计算图1A到1F中说明的DIS方法中使用的选择的特征点的运动矢量。
在瓦片中每个特征点的一组开始矢量中的每一个周围的高分辨率域中执行小局部块匹配搜索。该步骤可以以原始的视频分辨率、或以2或4的因子fs3的下采样执行。使用的开始矢量是已经如上确定的瓦片运动矢量。使用的开始矢量是特征点所属瓦片的矢量以及属于四个直接邻居(上瓦片、左瓦片、右瓦片、下瓦片)(假定存在)的矢量。因此,图6中,对应于块匹配搜索区域1的开始矢量是特征点(FP)自己的瓦片的运动矢量;对应于块匹配搜索区域2的开始矢量是在FP的瓦片的下方的块的运动矢量;对应于块匹配搜索区域3的开始矢量是在FP的瓦片的右方的块的运动矢量;对应于块匹配搜索区域4的开始矢量是在FP的瓦片的左方的块的运动矢量;对应于块匹配搜索区域5的开始矢量是在FP的瓦片的上方的块的运动矢量。根据另一实施例,使用四个对角邻居的开始矢量。可以执行用于选择开始矢量的其他步骤(例如,用于减少块匹配计算的数量),尤其是如果第一组瓦片矢量具有暗示一个大对象的彼此类似的幅度和方向(参见关于图8A、8B、9、10A、10B、10C的运动矢量分组的讨论)。替换地,块匹配可以以给定优先级、或仅当两个或多个块匹配搜索区域重叠时、或在彼此接近的块匹配搜索区域之间等执行。
通常,向特征点分配运动矢量将逐个瓦片进行,并且给定瓦片的每个特征点将使用相同的开始矢量(例如,瓦片运动矢量的相同选择)。然而,在各种其他实施例中,在给定瓦片的不同部分中的特征点可以使用开始矢量的不同选择,前提是检测的瓦片运动矢量的分组中与各瓦片相邻的特征点更可能是在该组的每个成员中共同找到的相同对象的可见点。因此,可以首先对靠近每个瓦片的周长的那些特征点执行块匹配搜索,以检测是否它们全部或几乎全部类似于它们自己的瓦片的运动矢量和/或类似于瓦片运动矢量的相邻分组的瓦片运动矢量。例如,如果全部初始选择的特征点(例如,靠近给定瓦片的周长的全部特征点、或离其中点最远的特征点)的运动矢量相同或类似于它们自己的瓦片的运动矢量,则可以减少剩余的特征点的选择的开始矢量的集合。
对使用的每个开始矢量,我们使用非常小的范围用于局部搜索。这里的目的不在于确定用于每个特征点的准确矢量。相反,感兴趣的特征点是属于背景或大对象的那些。对于那些特征点,瓦片运动矢量的一个应该是良好的,或接近于感兴趣的特征点的运动矢量,因此,关于每个选择的瓦片运动矢量的小的局部搜索是足够的。
再参考图3,特征点电路3000的SFP(选择的特征点)运动矢量计算器700包括:第二下采样器710,用于输出比第一下采样器310更进一步下采样的亮度数据用于瓦片矢量计算;瓦片矢量计算器720,用于计算每个瓦片的运动矢量;以及分级块匹配搜索单元730,用于确定和输出从特征点选择器300的特征点候选者拣选器340接收的每个选择的特征点(SFP)的运动矢量。第二下采样器710输出图5所示的深度下采样的当前帧Ft。瓦片矢量计算器720使用由第二下采样器710输出的当前帧Ft的深度下采样的亮度数据来计算每个瓦片的运动矢量。分级块匹配搜索单元730使用两个连续帧的全分辨率亮度数据(或第一下采样器310的输出)、并如上所述使用瓦片矢量作为开始矢量来确定由特征点选择器300的特征点候选者拣选器340输出的每个选择的特征点的运动矢量。
图7是示出用于执行图1A到1F中说明的DIS方法中的步骤的计算图1A和2A的当前帧Ft中选择的特征点(SFP)的运动矢量的方法的流程图。
在初始步骤中,图3所示的分级块匹配搜索单元730接收视频的两个连续帧(当前帧和参考帧)的亮度数据(步骤S700i)以及选择的特征点的像素位置(S700ii)。当前帧Ft被划分为多个下采样瓦片(S710),其可以优选地与图4A和4B的特征点拣选方法中先前使用的瓦片相同。在子步骤S710-A,将当前帧Ft划分为j×k多个瓦片加上边界区域,如图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′由于旋转的摄像头运动而具有不同的幅度和不同的方向,即使它们处于距摄像头相同距离。
图8C说明在其中相同固定对象的两个特征点距离摄像头不同距离的情况下从纯粹的平移矢量运动产生的不同的矢量。假定相同固定的物理对象的两个选择的特征点SFP4和SFP7物理上处于距摄像头不同距离,并且在纯粹平移的摄像头运动的情况下矢量A仍是SFP4的运动矢量而矢量C″是SFP7的运动矢量。因为SFP7比SFP4更接近于摄像头,同时它们是相同固定对象上的点,所以它们的运动矢量的幅度是不同的(矢量C″小于矢量A)。
因此,在将运动矢量分组时,需要考虑矢量差的余量用于由这些因素引起的矢量幅度和矢量方向(角度)差以使得可以将相同固定对象的全部特征点的运动矢量分组在一起。利用误差余量和使用简单的运动矢量差的检测运动矢量组的通常方法是定义误差阈值。
运动矢量差的幅度ΔM是可以作为分组判决的基础的测量,并且误差余量ThΔM可以定义为:
ΔM=SQRT((xa-xb)^2+(ya-yb)^2)<ThΔM,其中
A=(xa,ya);
B=(xb,yb);且
ThΔM是矢量差的幅度ΔM的误差阈值(正数)。
当摄像头运动是纯粹平移(上下、和/或侧向)时运动矢量差方法的幅度是足够的,因为固定对象的全部特征点的运动矢量将具有相同的方向,因为它们全由相同的平移摄像头运动定义。如比较图8A和8B所示,即使在纯粹的平移的摄像头运动的情况下,不同的固定特征点的运动矢量也可以因为对象距摄像头不同距离而不同。在通常视频场景中相同的固定对象的特征点的运动矢量的幅度差一般相对较小,而且还可以通过允许矢量幅度差(|A|-|B|)的一些余量来容忍该幅度差,并且在该情况下运动矢量差幅度ΔM的方法是合适的。
图9A说明其中运动矢量差的幅度ΔM是用于将两个特征点分组在一起的良好基础的两个运动矢量A和B的情况。
在某些情况下矢量差的幅度ΔM单独可能不是将矢量分组的良好基础。
图9B说明其中矢量差的幅度ΔM′不是用于将两个特征点分组在一起的良好基础的两个运动矢量A′和B′的情况。
图9A和9B中,如所示,矢量对(A,B)和(A′,B′)具有完全相同的矢量差的幅度(ΔM=ΔM′)。每个对(A,B)和(A′,B′)也可以具有在误差余量ThΔM内的其各自的矢量差的幅度ΔM、ΔM′。可以基于它们的矢量差的幅度ΔM将矢量对A和B适当地分组在一起。但是矢量对A′和B′具有太多的角度(方向)差(例如,与对A和B比较)以致于将矢量A′和矢量B′一起分组在相同组中不适当。
矢量差的幅度ΔM方法本身可能在其中两个特征点具有在余量ThΔM内的它们的矢量差的幅度同时它们具有太大的角度(方向)差的实例中不适合用于运动矢量分组。摄像头轨迹的旋转分量可以造成固定对象的一个或多个特征点具有相同或相似的幅度,但是具有不同的方向,这并未被矢量差的幅度方法检测。因此,矢量差的幅度方法会造成不正确的抖动补偿和/或少于最优的视频压缩、和/或过度的计算功率或时间消耗、和/或由于固定或运动对象的不正确视频压缩带来的视频干扰。
由特征点电路3000的分级块匹配搜索单元730输出的选择的特征点(SFP)的运动矢量接下来根据它们的幅度和方向进行分组,以基于连续视频帧之间对象的感知的相对运动将选择的特征点(SFP)的运动矢量与场景中的对象关联。
当摄像头运动具有旋转分量时,诸如围绕与图像传感器/光电二极管阵列的平面正交的轴,一个对象(例如背景)的运动矢量的方向无法相同。背景的不同特征点矢量的幅度和方向均不同,即使它们实际上固定且距摄像头相同距离。
代替仅使用运动矢量差的幅度ΔM和误差余量ThΔM用于分组判决,我们使用运动矢量的幅度比和归一化的矢量差来检测和容忍由旋转摄像头运动造成的运动矢量差的一些量。
其中矢量A=(xa,ya),而矢量B=(xb,yb),
第一分组判决准则是基于幅度比|b|,其中
|b|^2=(|B|/|A|)^2=(|B|^2)/(|A|^2)=(xb^2+yb^2)/(xa^2+ya^2)。
第二分组判决准则是基于归一化矢量差(用于角度差的评估)=|a-b|,其中
|a-b|^2=[{(xa-xb)^2+(ya-yb)^2}/(xa^2+ya^2)]。
因为第一分组判决是基于幅度比(|B|/|A|)而非绝对差(A-B),我们使用幅度比阈值rth代替绝对误差余量ThΔM。对于分组判决,我们分别定义幅度比阈值的下边界和幅度比阈值的上边界为MrLth和MrUth。
MrLth^2<|b|^2<MrUth^2,其中
MrLth≡(1-rth);以及
MrUth≡(1+rth);以及
0<rth<1
例如,如果允许幅度比阈值的30%,则rth将是0.3;MrLth将是0.7;而MrUth将是1.3,产生如下范围:
0.7^2<|b|^2<1.3^2
对于矢量A与矢量B之间的角度差不超过θth度的阈值,第二分组判决准则是
|a-b|^2<Math^2,其中
Math^2=SQRT(1+|b|^2-2*|b|*cosθth);以及
|b|=SQRT{(xb^2+yb^2)/(xa^2+ya^2)}
即使在存在旋转摄像头运动时,使用基于这两个分组判决准则的判决的分组方法也可以执行最优的运动矢量分组。
图10示出说明用于图1A到1F中说明的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|,因此幅度比是绝对值|b|=|B|/|A|=|(B/|A|)|。因此,|b|是归一化矢量b的幅度,它通过将矢量B除以矢量A的幅度|A|而归一化(即,b=B/|A|)。因此,幅度比|b|=SQRT{(xb^2+yb^2)/(xa^2+ya^2)}。
因为归一化矢量a的幅度是1,幅度|b|也等于归一化矢量a的幅度与归一化矢量b的幅度|b|之间的幅度比。因此,幅度|b|称为幅度比|b|。幅度比|b|不是矢量A和B之间的角度差θ的函数。
作为我们的第一分组判决准则,我们检查|b|(|b|=|A|/|B|)是否在上下幅度比阈值MrLth和MrUth之内。如果|b|^2<MrLth^2或|b|^2>MrUth^2,则我们判定矢量A和矢量B无法在相同组中。但是,如果MrLth^2<|b|^2<MrUth^2则我们基于使用归一化矢量差|a-b|作为准则做出第二比较。
归一化矢量差(a-b)的绝对幅度|a-b|根据如下公式计算:
|a-b|^2=[{(xa-xb)^2+(ya-yb)^2}/(xa^2+ya^2)]
归一化矢量差(a-b)具有如图10的图(c)所示的绝对幅度|a-b|,其中,长度|a|、|b|和|(a-b)|形成具有与边|(a-b)|相对的矢量差角度θ的三角形,这意味着也可以使用作为θ函数的余弦规则计算|(a-b)|。余弦规则定义三角形的未知边的长度与其他边的长度以及与未知边相对的角度之间的数学关系。如果两个矢量之间的角度给定,则归一化矢量差(a-b)的幅度|a-b|可以使用余弦规则公式获得:
|(a-b)|=SQRT(1+|b|^2-2*|b|*cosθ)。
因此,表示为归一化矢量差(a-b)(图10的图(c)中与角度差θ相对的三角形的边)的幅度|a-b|的阈值的角度阈值可以被计算为|b|和角度差θ的函数,如余弦规则指示的那样。因此,我们可以定义幅度|(a-b)|的阈值幅度Math作为角度差阈值θth,其中Math是选择的阈值角度θth的函数。因此,我们可以将计算的归一化矢量差(a-b)的幅度|a-b|的平方与Math的平方进行比较。因此,将|a-b|^2与Math^2进行比较来决定矢量A与矢量B之间的角度差是否足够小以使得应当将它们分组在一起。
我们定义Math^2=(1+|b|^2-2*|b|*cosθth),其中
θth是用于分组判决目的的预定角度阈值(例如30度),并且
|b|=|(B/|A|)|=SQRT{(xb^2+yb^2)/(xa^2+ya^2)}
如果|a-b|^2小于Math^2,则我们判定矢量A和矢量B可以在相同组中。因此,如果|a-b|^2小于Math^2,则合适的最终分组决定是矢量A和矢量B在相同的组中。
因此,如果|a-b|^2小于Math^2而且仅当|b|^2(≡(|B|/|A|)^2)大于MrLth^2且小于MrUth^2,则矢量A和矢量B在相同的组中。Math^2的确切计算需要一次平方根运算(即,用于计算|b|),而平方根运算可以是计算复杂的,或者需要相当的硬件实现。因此,平方根运算的消除可以显著减少计算代价、或硬件。我们已经设想用于Math的近似(即,Math=0.5),其对于|b|等于1加或减30%(即,对于0.7≤|b|≤1.3)和处于矢量误差(矢量差)角度的30度内(即,-30度≤≤+30度)提供良好的分组结果。因此,第二分组准则变为|a-b|^2<0.5^2。
如果我们绘制角度差θ、幅度比|b|以及归一化差|a-b|之间的关系,我们可以获得图12的曲线图。
图12是作为角度差θ的各种值(在0度和90度之间)的函数的归一化矢量差(a-b)的幅度|(a-b)|与归一化矢量差(a-b)的幅度比|b|的曲线图,其说明在图11的分组算法的判决步骤dS1140中可使用的近似的可用性。
通过实验,典型视频给出关于幅度比大于1加或减30%和关于角度差θ最大达30度的良好的分组结果,如图12的方形区域的边界所示。如图12的曲线图所示,该经验范围对于0与0.5之间的归一化矢量差的近似有效。
使用近似,可以将SQRT(1+|b|^2-2*|b|*cosθ)近似为0.5而不管|b|,以减少计算的负担。因此,使用该近似,第二分组准则变为|a-b|^2<0.5^2。
图11是说明根据本发明构思的实施例的分组过程的流程图。分组过程1100使用包括关于选择的特征点(见图1A和2A的图像帧)的运动矢量之间的角度差的间接测量的归一化矢量差的两个准则,以执行图1A到1F中说明的DIS方法中图1D的矢量分组步骤。分组算法1100包括幅度比分组判决准则(在判决步骤DS1120)和归一化矢量差分组判决准则(在判决步骤SD1140)。在分组算法1100外部操作的配对算法(步骤S1104、S1106、S1152、dS1150、和S1154)掌控哪些特征点(运动矢量)已经与其他特征点配对,哪些仍未配对,以及哪些将整个从分组算法1100中排除。配对算法提供一对SFP运动矢量A和B作为对分组算法1100的输入(S1104、S1106)。在初始步骤iS1102,从外部电路接收幅度比余量(例如MrLth^2和MrUth^2)、以及角度余量并提供给分组算法1100。
分组算法1100基于接收的矢量A计算|A|^2并基于接收的矢量B计算|B|^2(步骤S1112和S1114),以在至少随后的步骤S1116、dS1120、和dS1140中使用这些计算值进行随后的计算。因此,当将接收的矢量B从与接收的矢量A的分组排除时(判决步骤dS1120的是分支或判决步骤dS1140的否分支),配对算法分配新的矢量B(步骤S1152)且分组算法1100基于新矢量B计算|B|^2的新值(步骤S1114),但是不需要同时更新当前矢量A的计算值|A|^2(步骤S1112),因为将继续比较相同的矢量A,不过是利用新矢量B。因此,适配为执行分组算法1100的硬件或软件可以被配置为分开存储值|B|^2和|A|^2的一个或多个实例,以使得计算高效地使用这些值中的一个进行多次比较,只要在矢量A和B中一次仅一个改变。
分组算法1100接下来使用|A|^2和|B|^2(来自步骤S1112和S1114)计算幅度比(|b|^2)和|a-b|^2(S1116)。在判决步骤dS1120应用第一(幅度比)分组判决准则。在判决步骤dS1120中将幅度比的平方|b|^2与幅度比余量(来自步骤iS1102)进行比较。如果(|A|/|B|)^2<MrUth^2或(|A|/|B|)^2>MrUth^2(判决步骤dS1120的是分支),则不将当前矢量A与当前矢量B分组,并且结束与当前矢量B的比较并选择新的矢量B(步骤S1152)。如果(|A|/|B|)^2在MrLth^2和MrUth^2之间(判决步骤dS1120的否分支),则当前矢量A可以变为与当前矢量B分组,并且应用第二分组判决准则(在判决步骤dS1140)。如果|b|处于预定范围中(例如,基于|b|^2的值)并且如果角度差θ处于预定范围中(判决步骤dS1130的是分支),则归一化差矢量(a-b)的幅度Math被近似(例如,Math^2=0.5^2)。否则,(判决步骤dS1130的否分支),计算归一化差矢量(a-b)的幅度Math(S1132)。
接下来,在判决步骤dS1140中在第二(归一化矢量差)分组判决准则中使用归一化差矢量(a-b)的近似的或计算的幅度Math。在判决步骤dS1140中将Math的平方(Math^2)与(|a-b|)^2和/或与角度余量(来自步骤iS1102)进行比较。如果(|a-b|)^2小于Math^2,(判决步骤dS1140的是分支),则可以将当前矢量A与当前矢量B分组(步骤S1142)。如果(|a-b|)^2不小于Math^2,(判决步骤dS1140的否分支),则不将当前矢量A与当前矢量B分组,并且结束与当前矢量B的比较并选择新的矢量B(步骤S1152)。
一旦当前矢量A已经与全部可用的分组候选者矢量B比较(判决步骤dS1150的是分支),则选择新矢量A并且继续与剩余的(未分组的)分组候选者矢量B比较(S1154、S1112等),或如果已经分组全部矢量,则分组算法1100等待直到新的帧需要处理。
图13是包括配置为执行图11的特征点分组算法的分组算法电路1310的特征点分组电路1300的框图。特征点分组电路1300包括:幅度比(|b|)比较器1320,配置为基于幅度比阈值(MrLth和MrUth)的准则执行第一分组判决(图11的判决步骤dS1120);以及矢量角度比较器1330,配置为基于归一化矢量差的准则(用于角度差的评估)执行第二分组判决(图11的判决步骤dS1140)。本发明构思的该示范性实施例中的矢量角度比较器1330包括归一化差的幅度(Math)计算器/估计器1332和归一化差的幅度(Math)比较器1334。归一化差的幅度(Math)计算器/估计器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分组清单354部分。根据一个实施例,特征点分组电路1300和存储器350在单个集成电路芯片中实现,而且从存储器350检索的数据经由I/O管脚输出到芯片外部的电路。根据另一实施例,特征点分组电路1300、RAM存储器350、和特征点电路3000在单个集成电路芯片中实现。根据这样的实施例,本领域的通技术人员不难理解,如果需要额外的存储容量,则可以在集成电路芯片外部添加其他RAM存储器。
特征点分组电路1300还包括|A|^2计算器1312、|B|^2计算器1314、以及|b|^2和|a-b|^2计算器1316,配置为分别执行图11的步骤S1112、S1114、和S1116。
上面公开的主题考虑为说明性的,而非限制性的,并且所附权利要求书意图涵盖落入本发明构思的真实精神和范围的全部这样的修改、增强、和其他实施例。因此,在法律允许的最大范围内,本发明的范围将由所附权利要求书及其等价物的最宽泛允许的解释来确定,而不应限制或约束于前述的详细说明。
相关申请的交叉引用
本发明要求2010年12月23日向美国专利商标局提交的两件美国临时申请:编号61/426,970和编号61/426,975的优先权。两件临时申请的公开内容通过引用合并于此。
Claims (26)
1.一种处理视频数据的方法,包括:
接收代表第一帧的第一图像数据;
识别第一帧中的多个特征点;
接收代表第二帧的第二图像数据;
导出与每个特征点对应的运动矢量;
选择运动矢量中的第一运动矢量作为当前矢量A,并且选择运动矢量中的第二运动矢量作为当前矢量B;以及
基于矢量A和矢量B的矢量幅度比和它们的角度差来比较矢量A和矢量B。
2.如权利要求1所述的方法,进一步包括:
设置幅度比阈值和角度差阈值;以及
如果它们的矢量幅度比落入幅度比阈值内且它们的角度差落入角度差阈值内,则将矢量A和矢量B分组在一起。
3.如权利要求2所述的方法,进一步包括:
如果它们的矢量幅度比落入幅度比阈值之外或如果它们的角度差落入角度差阈值之外,则不将矢量A和矢量B分组在一起。
4.如权利要求1所述的方法,进一步包括通过如下识别第一特征点组:
如果当前矢量A和当前矢量B的矢量幅度比落入幅度比阈值之外或如果它们的角度差落入角度差阈值之外,则决定不将当前矢量A和当前矢量B分组在一起,并且选择运动矢量中的第三运动矢量作为新的矢量B,然后基于当前矢量A和新矢量B的矢量幅度比和它们的角度差来比较当前矢量A和新矢量B以决定是否将当前矢量A和新矢量B分组在一起。
5.如权利要求3所述的方法,进一步包括通过如下识别第二特征点组:
如果因为当前矢量A和当前矢量B的矢量幅度比落入幅度比阈值之外或因为它们的角度差落入角度差阈值之外而不将当前矢量A和当前矢量B分组在一起,则选择运动矢量中的第二运动矢量作为新的矢量A并且选择运动矢量中的第四运动矢量作为新的矢量B,然后基于新矢量A和新矢量B的矢量幅度比和它们的角度差来比较新矢量A和新矢量B以决定是否将新矢量A和新矢量B分组在一起。
6.如权利要求5所述的方法,其中比较矢量幅度比包括计算(|B|/|A|)^2=((xb^2+yb^2)/(xa^2+ya^2)),其中A=(xa,ya),B=(xb,yb)。
7.如权利要求1所述的方法,其中幅度比阈值是r以使得(1-r)^2<(|B|/|A|)^2<(1+r)^2,其中r是小于1且大于0的预定实数。
8.如权利要求1所述的方法,其中比较矢量A与矢量B之间的角度差包括将归一化矢量差的幅度的平方|a-b|^2与角度差阈值Math^2进行比较,其中|a-b|^2={(xa-xb)^2+(ya-yb)^2}/(xa^2+ya^2),其中A=(xa,ya),B=(xb,yb)。
9.如权利要求8所述的方法,其中基于预定角度阈值θth来计算角度差阈值Math^2,其中Math^2=(1+|b|^2-2*|b|*cosθth),其中|b|=SQRT{(|B|/|A|)^2},而且其中仅使用一个平方根运算执行矢量A与矢量B的比较。
10.如权利要求8所述的方法,其中角度差阈值Math^2=0.5^2。
11.如权利要求1所述的方法,其中执行矢量A与矢量B的比较而不使用平方根运算。
12.一种视频处理电路,包括:
特征点电路,配置为识别第一帧中的多个特征点并为每个特征点导出第一帧与第二帧之间的运动矢量;
配对控制器,配置为选择运动矢量中的一个作为当前矢量A(xa,ya)并选择运动矢量中的不同的一个作为当前矢量B(xb,yb);
幅度比比较器,配置为基于矢量A和矢量B的幅度比来比较矢量A和矢量B;以及
矢量角度比较器,配置为基于矢量A和矢量B的角度差来比较矢量A和矢量B。
13.如权利要求12所述的电路,其中幅度比比较器将幅度比的平方(|B|/|A|)^2与幅度比阈值进行比较,其中(|B|/|A|)^2=((xb^2+yb^2)/(xa^2+ya^2))。
14.如权利要求12所述的电路,其中矢量幅度比阈值等于(|A|/|B|)^2。
15.如权利要求12所述的电路,其中幅度比阈值是r以使得(1-r)^2<(|B|/|A|)^2<(1+r)^2,其中r是小于1且大于0的预定实数。
16.如权利要求12所述的电路,其中,矢量角度比较器将归一化矢量差的幅度的平方|a-b|^2与角度差阈值Math^2进行比较,其中|a-b|^2={(xa-xb)^2+(ya-yb)^2}/(xa^2+ya^2)。
17.如权利要求16所述的电路,其中,基于预定角度阈值θth来计算角度差阈值Math^2,其中Math^2=(1+|b|^2-2*|b|*cosθth),而且其中|b|=SQRT{(|B|/|A|)^2}。
18.如权利要求16所述的电路,其中角度差阈值Math^2=0.5^2。
19.如权利要求12所述的电路,进一步包括特征点组存储器,配置为存储具有第一运动特性的第一组特征点和具有第二运动特性的第二组特征点。
20.如权利要求12所述的电路,进一步包括连接到特征点组存储器的I/O管脚,其用于将从存储器接收的数据传送到芯片外面的电路。
21.一种处理视频数据的方法,包括:
为视频数据的第一帧中的每个特征点估计运动矢量;
基于矢量幅度比和角度差将运动矢量分组为运动矢量组;以及
选择包含代表第一帧的场景内固定对象的运动的运动矢量的组。
22.如权利要求21所述的方法,其中分组步骤包括基于矢量A和矢量B的矢量幅度比和它们的角度差来比较矢量A和矢量B。
23.如权利要求21所述的方法,进一步包括:使用下采样亮度数据估计从第一帧的一部分划分的多个瓦片的每个的运动矢量,并且选择具有最低绝对差值和(SAD)的瓦片运动矢量候选者;以及
基于矢量幅度比和角度差将瓦片运动矢量分组为瓦片运动矢量组。
24.如权利要求21所述的方法,其中选择代表第一帧内的固定对象的运动矢量组包括拒绝代表第一帧中的运动对象的局部运动的至少一个运动矢量组。
25.一种摄像头,包括:
图像捕获电路,配置为捕获图像并且将多个图像转换为图像数据的第一帧和第二帧;以及
视频处理电路芯片,包括:
特征点电路,配置为识别第一帧中的多个特征点并为每个特征点导出第一帧与第二帧之间的运动矢量;
配对控制器,配置为选择特征点的运动矢量当中的每对运动矢量;
幅度比比较器,配置为基于它们的矢量幅度比来比较每对运动矢量;以及
矢量角度比较器,配置为基于它们的矢量角度差来比较每对运动矢量。
26.如权利要求25所述的摄像头,进一步包括分组电路,配置为基于运动特性将运动矢量拣选到组中,并且选择运动矢量组以代表帧的场景内的固定对象。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201061426970P | 2010-12-23 | 2010-12-23 | |
US201061426975P | 2010-12-23 | 2010-12-23 | |
US61/426,975 | 2010-12-23 | ||
US61/426,970 | 2010-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102547118A true CN102547118A (zh) | 2012-07-04 |
CN102547118B CN102547118B (zh) | 2016-11-30 |
Family
ID=
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104053001A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 对视频进行稳定化的方法和包括后处理电路的视频解码器 |
CN104718560A (zh) * | 2012-10-09 | 2015-06-17 | Sk电信有限公司 | 用于估计单体的大小的图像监测装置及其方法 |
CN104937940A (zh) * | 2012-11-01 | 2015-09-23 | 微软技术许可有限责任公司 | 保留视频编码中的舍入误差 |
CN105519092A (zh) * | 2013-09-16 | 2016-04-20 | Sk电信有限公司 | 利用图像模糊校正进行图像稳定的设备和方法 |
CN105872370A (zh) * | 2016-03-31 | 2016-08-17 | 深圳中兴力维技术有限公司 | 视频去抖动方法和装置 |
CN110300239A (zh) * | 2018-03-22 | 2019-10-01 | 精工爱普生株式会社 | 图像处理装置、图像处理方法以及显示装置 |
CN113271415A (zh) * | 2020-02-14 | 2021-08-17 | 逐点有限公司 | 具有多个图像源的图像处理的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237581A (zh) * | 2008-02-29 | 2008-08-06 | 上海大学 | 基于运动特征的h.264压缩域实时视频对象分割方法 |
US20100118156A1 (en) * | 2008-11-12 | 2010-05-13 | Canon Kabushiki Kaisha | Image processing apparatus, image pickup apparatus and image processing method |
US20100271494A1 (en) * | 2009-04-23 | 2010-10-28 | Canon Kabushiki Kaisha | Motion vector detection apparatus, motion vector detection method, and image capturing apparatus |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237581A (zh) * | 2008-02-29 | 2008-08-06 | 上海大学 | 基于运动特征的h.264压缩域实时视频对象分割方法 |
US20100118156A1 (en) * | 2008-11-12 | 2010-05-13 | Canon Kabushiki Kaisha | Image processing apparatus, image pickup apparatus and image processing method |
US20100271494A1 (en) * | 2009-04-23 | 2010-10-28 | Canon Kabushiki Kaisha | Motion vector detection apparatus, motion vector detection method, and image capturing apparatus |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104718560A (zh) * | 2012-10-09 | 2015-06-17 | Sk电信有限公司 | 用于估计单体的大小的图像监测装置及其方法 |
CN104718560B (zh) * | 2012-10-09 | 2017-05-17 | Sk电信有限公司 | 用于估计单体的大小的图像监测装置及其方法 |
CN104937940A (zh) * | 2012-11-01 | 2015-09-23 | 微软技术许可有限责任公司 | 保留视频编码中的舍入误差 |
CN104053001A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 对视频进行稳定化的方法和包括后处理电路的视频解码器 |
CN104053001B (zh) * | 2013-03-15 | 2019-06-11 | 三星电子株式会社 | 对视频进行稳定化的方法和包括后处理电路的视频解码器 |
CN105519092A (zh) * | 2013-09-16 | 2016-04-20 | Sk电信有限公司 | 利用图像模糊校正进行图像稳定的设备和方法 |
CN105519092B (zh) * | 2013-09-16 | 2019-06-04 | Sk电信有限公司 | 利用图像模糊校正进行图像稳定的设备和方法 |
CN105872370A (zh) * | 2016-03-31 | 2016-08-17 | 深圳中兴力维技术有限公司 | 视频去抖动方法和装置 |
CN105872370B (zh) * | 2016-03-31 | 2019-01-15 | 深圳力维智联技术有限公司 | 视频去抖动方法和装置 |
CN110300239A (zh) * | 2018-03-22 | 2019-10-01 | 精工爱普生株式会社 | 图像处理装置、图像处理方法以及显示装置 |
CN113271415A (zh) * | 2020-02-14 | 2021-08-17 | 逐点有限公司 | 具有多个图像源的图像处理的方法和系统 |
CN113271415B (zh) * | 2020-02-14 | 2023-12-08 | 逐点有限公司 | 具有多个图像源的图像处理的方法和系统 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102547119A (zh) | 数字图像稳定设备和方法 | |
CN1838737B (zh) | 帧速率变换装置、摇摄/倾斜判断装置及视频装置 | |
US9781398B2 (en) | Method and system of lens shading color correction using block matching | |
CN101246541B (zh) | 图像处理设备和方法、图像拾取设备 | |
JP4525519B2 (ja) | 四辺形評価方法及び装置及びプログラム | |
JP5483961B2 (ja) | 画像処理装置、被写体判別方法、プログラム及び記憶媒体 | |
CN102405638A (zh) | 图像处理装置、图像处理方法以及计算机可读介质 | |
US8331690B2 (en) | Method for creating panorama | |
CN108921823A (zh) | 图像处理方法、装置、计算机可读存储介质和电子设备 | |
CA2922081A1 (en) | Image processing apparatus, image processing method, and imaging system | |
US20090028462A1 (en) | Apparatus and program for producing a panoramic image | |
CN102656876A (zh) | 用于图像稳定的方法和装置 | |
CN101790031A (zh) | 图像处理装置、图像处理方法和成像装置 | |
CN106101522A (zh) | 使用非光场成像设备获得光场数据的方法和设备 | |
CN102439966A (zh) | 图像处理设备、方法和程序 | |
CN102521814A (zh) | 基于多聚焦融合和图像拼接的无线传感网络图像融合方法 | |
KR101548183B1 (ko) | 화상처리장치 및 그 제어 방법 | |
CN102542568A (zh) | 图像处理装置及图像处理方法 | |
CN110263699A (zh) | 视频图像处理方法、装置、设备及存储介质 | |
US9031355B2 (en) | Method of system for image stabilization through image processing, and zoom camera including image stabilization function | |
JP5429564B2 (ja) | 画像処理装置および方法、並びにプログラム | |
CN100492088C (zh) | 一种自动对焦方法 | |
US8681238B2 (en) | Image processing device, method and program | |
CN102572277B (zh) | 图像处理方法和电路及摄像头 | |
CN102547118B (zh) | 数字图像稳定设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |