具有模型验证和管理的视觉对象跟踪系统的制作方法

文档序号:12515638阅读:190来源:国知局
具有模型验证和管理的视觉对象跟踪系统的制作方法与工艺

本申请要求2014年11月14日提交的名称为"VISUAL OBJECT TRACKING SYSTEM WITH MODEL VALIDATION & MANAGEMENT"的美国专利申请序列号14/541,981的优先权,并且该美国专利申请通过引用为了所有目的全部并入。



背景技术:

数码相机是经常包含在商用电子媒体装置平台中的组件。数字相机现在可用在可穿戴形状因子(例如视频捕获听筒、视频捕获耳机、视频捕获眼镜等)中,以及嵌入在智能电话、平板计算机和笔记本计算机等中。从移动数码相机流播视频的引进已经进入了具有空前视频数据量的时代。

由任何相机生成的视频流都将包含移进和移出相机的视野的各种对象。视觉对象跟踪是定位从相机捕获的图像序列中随时间感兴趣的任意对象的过程。自适应的通过检测进行跟踪的方法被广泛用在跟踪任意对象的计算机视觉中。“对象”的定义可从单个实例变化到对象的整个类。跟踪的一个目标是,基于先前图像帧的检测或跟踪来关联连续图像中的对象。实时视觉对象跟踪需要以相机帧速率处理视频数据流,以自动确定每帧中的给定对象的边界框,或者确定对象是不可见的。

对象跟踪的挑战包含背景杂斑,以及处置可使初始帧中的对象外表不相干的对象外表的改变。缩放的改变、部分遮蔽、形状的改变以及照明全都是事件,它们可改变若干连续帧上的对象的外表。

对用于对象跟踪的快速且自动的方法已经存在相当大量的研究。一个跟踪框架(称为跟踪学习检测(TLD))将跟踪任务分解成三个子任务:跟踪、学习和检测,它们可同时操作。在线学习的子任务已经证明是特别具有挑战性。在线学习需要在运行时间期间更新目标模型,努力使对象跟踪器对于对象形状、视图和照明的改变鲁棒。实时更新和管理模型是困难的,其中可能发生频繁的跟踪丢失,特别是对于低功率移动装置硬件资源(例如处理器和存储器)。例如,采用支持向量机(SVM)的学习任务经常需要复杂的数据结构,并且依赖于具有高计算成本/复杂性、需要强大的硬件实时(例如以每秒30+帧)处理高分辨率图像(例如全HD)的回归方法。由于由移动装置进行视频捕获是如此普遍,因此强大的CPU和/或GPU不总是可用的。因此,负责生成绝大部分用户档案图像数据的许多平台迄今为止已经能力不足以执行精密的对象跟踪。

可由超轻且低功率移动平台用以潜在的高帧速率(例如30帧/秒或者更大速率)捕获的视频流实时实现的自动视觉对象跟踪因此是非常有利的。

附图说明

本文描述的资料作为示例而非限制在附图中图示。为了图示的简洁和清晰起见,在附图中图示的元件不一定按比例绘制。例如,为了清晰起见,一些元件的尺寸相对于其它元件可能放大。另外,在视为合适的情况下,附图标记在各图之间已经被重复以指示对应或类似元件。附图中:

图1是图示按照一个或多个实施例具有模型验证的对象跟踪方法的流程图;

图2图示了按照一个或多个对象跟踪实施例具有包围初始化目标对象的边界框的先前视频帧;

图3A和4A图示了按照实施例的当前视频帧中的目标对象的位置估计和检测;

图3B和4B图示了按照实施例的取决于目标对象检测的当前视频帧的对象检测流;

图5是按照实施例包含验证模型对象跟踪(VMOT)装置的视频流播系统的功能框图;

图6图示了按照一个或多个实施例包含VMOT装置的视频捕获装置;

图7是按照一个或多个实施例具有VMOT装置架构的示范超低功率系统的图;以及

图8是按照一个或多个实施例布置的示范移动手机平台的图。

具体实施方式

参考所附的附图描述一个或多个实施例。虽然详细论述和描绘了特定配置和布置,但应该理解,这只是出于说明性目的进行的。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,其它配置和布置是可能的。相关领域的技术人员将明白,本文描述的技术和/或布置可用在除本文详细描述的之外的各种其它系统和应用中。

在如下具体实施方式中参考附图,附图形成具体实施方式的一部分并且图示示范实施例。另外,要理解到,可以利用其它实施例,并且可在不脱离要求权利的主题的范围的情况下,进行结构和/或逻辑改变。因此,如下具体实施方式并不被视为限制意义,并且要求权利的主题的范围仅由所附权利要求以及它们的等同物定义。

在如下描述中,阐述了众多细节,然而,本领域技术人员将明白,没有这些特定细节也可实践实施例。众所周知的方法和装置以框图形式显示,而不是详细显示,以避免使更重要方面模糊不清。此说明书通篇提到“实施例”或“一个实施例”是指结合实施例描述的具体特征、结构、功能或特性可包含在至少一个实施例中。从而,在此说明书通篇各处出现的短语“在实施例中”或“在一个实施例中”不一定都指的是同一实施例。而且,在一个或多个实施例中,可以任何适合的方式组合在实施例的上下文中描述的具体特征、结构、功能或特性。例如,第一实施例可与第二实施例组合,其中与两个实施例关联的具体特征、结构、功能或特性不相互排斥。

如在示范实施例的描述中和所附权利要求中使用的,单数形式“一个”和“该”打算也包含复数形式,除非上下文以别的方式明确指示。还将理解,本文所使用的术语“和/或”是指并且涵盖一个或多个关联的所列出项目的任一个以及所有可能的组合。

如在此说明书通篇以及权利要求书中所使用的,通过术语“中的至少一个”或“一个或多个”连接的项目列表可意味着所列项目的任何组合。例如,短语“A、B或C中的至少一个”意味着A;B;C;A和B;A 和C;B和C;或者A、B和C。

术语“耦合”和“连接”连同它们的派生词在本文中可用于描述组件之间的功能或结构关系。应该理解,这些术语不打算作为彼此的同义词。而是,在具体实施例中,“连接”可用于指示两个或更多元件彼此直接物理、光或电接触。“耦合”可用于指示两个或更多单元彼此直接或者间接(与它们之间的其它中间元件)物理、光或电接触,和/或两个或更多元件彼此协同操作或交互(例如,在因果关系中)。

本文提供的具体实施方式的一些部分在对计算机存储器内的数据位的运算的算法和符号表示方面给出。除非特别声明,否则根据如下论述显然的是,要认识到,在说明书通篇利用诸如“推算”、“计算”、“确定”、“估计”、“存储”、“收集”、“显示”、“接收”、“合并”、“生成”、“更新”等术语的论述是指计算机系统或类似电子计算装置的动作和过程,其操控表示为计算机系统电路(包含寄存器和存储器)内的物理(电子)量的数据,并将其变换成类似表示为计算机系统存储器或寄存器或其它此类信息存储装置、传送或显示装置内物理量的其它数据。

虽然如下描述阐述了可在例如此类片上系统(SoC)架构的架构中表明的实施例,但本文描述的技术和/或布置的实现不限于具体架构和/或计算系统,并且可为了类似目的由任何架构和/或计算系统实现。例如采用多个集成电路(IC)芯片和/或封装和/或各种计算装置和/或消费电子(CE)装置(诸如机顶盒、智能电话等)的各种架构可实现本文描述的技术和/或布置。进一步说,虽然以下描述可阐述众多特定细节,诸如系统组件的逻辑实现、类型和相互关系、逻辑分割/集成选择等,但是可在没有此类特定细节的情况下实行所要求权利的主题。另外,一些资料(诸如例如控制结构和全软件指令序列)可能未详细示出,以免使本文公开的资料模糊不清。

本文公开的资料的某些部分可用硬件实现,例如作为图像处理器中的逻辑电路。某些其它部分可用硬件、固件、软件或它们的任何组合来实现。本文公开的至少一些资料还可实现为存储在机器可读介质上的指令,所述指令可由一个或多个处理器(图形处理器和/或中央处理器)读取和执行。机器可读介质可包含用于存储和传送由机器(例如计算装置)可读形式的信息的任何介质和/或机构。例如,机器可读介质可包含只读存储器(ROM);随机存取存储器(RAM);磁盘储存介质;光存储介质;闪存装置;电、光、声或其它类似非暂时性有形介质。

下面对于实时基于图像的(视觉)对象跟踪来描述一个或多个系统、设备、方法和计算机可读介质。本文所使用的对象跟踪需要在时间序列上的对象检测,通过其生成与对象跨图像数据连续帧的运动关联的位置坐标的时间序列。除了位置之外,还可更新其它对象特征,作为跟踪对象大小、颜色纹理、形状等的一个或多个的状态向量的一部分。在“实时”视觉对象跟踪中,一帧一帧地分析图像数据(视频)流,与一帧一帧地生成或接收该流同时进行。一帧一帧对象检测可基于有关先前帧内的对象的位置的信息来执行,或者它可对于每帧独立确定。在示范实施例中采用的对象跟踪算法可操作在帧级,并且可对每个连续图像帧或者对帧子集诸如关键帧执行。实时对象跟踪的速率要求是帧速率的函数,例如与相机模块(CM)关联。如下面所描述的,包含CM并且适合示范架构的装置平台可给视频相机功能性提供在以当前移动手机为特征的功率和处理带宽约束内的实时对象跟踪。在另外实施例中,至少与跟踪对象关联的位置信息被传递到管理图像帧的进一步处理的3A(自动聚焦、自动曝光、自动白平衡)引擎。

图1是图示按照一个或多个实施例采用模型验证和管理的视觉对象跟踪方法100的流程图。方法100由至少包含进一步具有逻辑电路的处理器的对象跟踪装置自动实现。方法100因此是视觉对象跟踪的“计算机实现的”方法的一个实施例。

对于自适应对象跟踪装置,其尝试不断更新目标对象模型,在线模型学习的一个困难是,经常没有限制所利用的学习数据覆盖的机制。然而,方法100有利地包含学习数据候选的验证。本文描述的验证操作的实施例有利地限制输入到对象模型学习算法中的学习数据的覆盖,以便避免提供另外可能导致随后跟踪失败的不适合的学习数据。当增加新的、更新的模型时,方法100还通过剔除最冗余的对象模型有利地维持对象模型的多样性。实际上,发明人已经发现,当在各种具有挑战性的使用情况中测试时,实现方法100实施例的验证模型对象跟踪(VMOT)装置已经相对于某些已知技术改进了跟踪性能。

参考图1,方法100开始于操作101,其中接收输入图像数据/视频帧数据。在操作101接收的输入图像数据是以任何适合的颜色空间或图像文件格式提供的图像帧的表示。例如,输入图像数据可以是存储在存储器中的图像的解码表示。在另一示例中,当从CM中的图像传感器读出数据时,CM将输入图像数据写到缓冲器。输入图像数据包含在图像帧内在空间上相关的多个像素值。图像数据的一帧内的像素值的数量取决于输入图像分辨率,其在另外实施例中是本地CM的函数。尽管本文的实施例可应用于任何输入图像分辨率,但在示范实施例中,输入图像数据至少是图像帧的1920x1080像素(2.1兆像素)表示(即全HD)。在示范实施例中,在操作101接收的输入图像数据在YUV颜色空间中,但也可采用RGB、HSL和HSV颜色空间。输入图像数据可能已经在方法100的上游被预先处理,以从另一颜色空间(诸如RGB颜色空间、YPBPR(亮度、蓝色度差YB和红色度差PR)颜色空间、YCBCR(亮度Y、蓝色度差CB和红色度差CR)颜色空间等)转换到YUV/HSL/HSV空间。在另外实施例中,在操作101接收的图像数据是通过视频管线处理的视频帧,视频管线包含操作以按照任何已知流播协议(诸如MIPI或其它协议)输出与多个连续曝光的帧关联的原始视频数据的传感器。在一个示范实施例中,由视频管线输出的XVYCC像素数据由任何已知解码电路转换成YUV(Cb,Cr)格式,并且在操作101作为输入接收。

方法100在操作110继续,其中如果不存在有效的基于描述符的模型(例如因为在操作101接收的图像/帧数据是第一帧,或者因为在先前帧中的对象跟踪失败),则生成目标对象的一个或多个视觉描述符。在操作110,接收图像数据内的对象的标记以引导(bootstrap)对象跟踪方法100。在一个实施例中,与在操作101接收的视频帧/输入图像数据关联的元数据规定与目标对象关联的帧内的边界框。装置用户例如可人工定位在取景器中的目标对象周围的边界框的指示,并且在初始化操作110确定与边界框内的图像数据关联的一个或多个目标对象描述符。图2图示了按照一个或多个对象跟踪实施例具有包围初始化目标对象205的边界框210的(先前)视频帧201。

初始化的每个视觉描述符可基于目标对象的某个特征或基本特性(例如形状等高线、颜色、纹理等)来确定。实现方法100的跟踪装置采用和/或维持的一个或多个对象模型可基于视觉描述符。在一个示范实施例中,至少一个目标对象描述符是颜色直方图,表示在预定范围的某个颜色内的边界框内的像素的频率。颜色直方图的颜色空间和量化可以改变,因为实施例不限于这方面。对于一些实施例,颜色直方图被计算并存储到电子存储器,以便边界框内的一个或多个补丁在初始化操作标识目标对象。

返回到图1,在已经存在有效的目标对象模型存储在存储器中的备选中,方法100前往操作115,其中基于先前图像数据/视频帧内的目标对象的先前位置来估计目标对象的位置。换言之,在操作115,用方法100的每个迭代,生成跟踪对象的下一位置。可对于采用来自先前帧(例如一个或多个先前连续帧)的位置信息的数据当前帧生成此类估计,和/或可采用当前帧的位置信息生成随后帧(例如下一连续帧)的估计。作为一个示例,基于运动的预测模型可假定均匀加速的运动。在几个帧(例如3个帧)之后,可使用与先前几个帧关联的历史对象位置数据和基于运动的预测模型,对于随后帧(例如下一连续帧)估计目标对象的位置。图3A和4A图示了按照实施例的当前视频帧202中的目标对象的位置估计和检测。在所图示的示例中,用运动模型确定的估计预测目标对象具有运动向量312,并将从与帧201内的边界框关联的位置移动到与帧202内的边界框315关联的估计位置。

方法100在操作120继续,其中在当前帧中检测(跟踪)目标对象。在操作120采用的检测算法的输出是在当前帧中的目标对象检测的位置。在有利的实施例中,在操作115生成的位置估计被输入到对象检测操作120,例如作为检测算法开始的起始位置。在检测操作120可利用与选择的对象描述符兼容的任何检测技术。示范检测技术包含块匹配、光流(Lucas-Kanade)、相位校正和像素递归算法。在至少一个目标对象描述符是颜色直方图的一个示范实施例中,可迭代地执行直方图匹配以确定当前帧内的目标对象位置。例如,可对于当前帧内的预定像素位置,定义预定大小(例如与当前目标对象描述符关联的边界框相同大小)的候选补丁。每个候选补丁的颜色直方图被计算、存储并且迭代地和与目标对象关联的(例如与根据初始化操作110和/或方法100的先前迭代预定的对象模型关联的)颜色直方图相比较。然后作为当前帧的目标对象的检测位置,输出与具有最佳直方图匹配的候选补丁关联的位置。将图像帧分段成候选补丁并选择接连候选补丁可遵循任何已知算法,因为实施例不限于这方面。例如,可利用均值移位或自适应均值移位算法,迭代地生成候选补丁,直到收敛于当前对象模型的预定阈值内。

再次参考图3A,在与边界框315关联的位置开始的对象检测算法迭代,直到收敛于与边界框320关联的检测对象位置521。在图4A,在与边界框315关联的位置开始的对象检测算法迭代,直到收敛于检测对象位置522。检测位置521更靠近目标对象205的地真实位置,而检测位置522更远离目标对象205的地真实位置(即,图4A图示了比图3A中更多的跟踪偏移)。不同的检测位置521、522表示用任何给定检测算法可能发生的不同结果,例如作为检测器配置参数的函数。

返回到图1,如果在操作120对象检测失败,则方法100前往操作110,在此例如基于目标对象的用户(重新)标记或者通过另一引导技术执行初始化。响应于检测到目标对象(即,收敛于检测位置),输出与当前帧关联的跟踪对象数据,例如包含跟踪位置。方法100在操作125继续,在此确定一个或多个附加对象检测流。在操作125确定的对象检测流提供了用于验证在操作120生成的检测位置的基础。在有利的实施例中,如下面所进一步描述的,仅被验证有效的检测位置将随后充当用于更新对象模型的学习数据。

在操作125,可采用任何已知检测算法来生成验证对象检测流。在实施例中,检测操作125需要上面在操作120的上下文中标识的任何对象检测/跟踪技术。检测算法例如可以是与操作120中相同的检测算法。在操作120采用颜色直方图匹配来确定目标对象位置的一个实施例中,在操作125再次应用直方图匹配,使用相同对象模型来验证检测位置。直方图匹配过程(或其它技术)开始于与在操作120确定的检测位置偏移的当前帧内的初始位置,而不是在预测位置初始化。与检测位置的这个位置偏移例如是预定向量,其在某些实施例中被规定为验证配置设置。从偏移位置开始,利用均值移位、自适应均值移位或其它适合的算法迭代地生成候选补丁,直到收敛于当前对象模型的预定阈值内。验证对象检测流然后与在操作120生成的检测对象位置相比较。如果验证检测算法到达检测位置的阈值接近内,则检测对象明显与周围有差别,并且检测位置(或者其某个函数)被视为目标对象的“验证位置”。

在操作125确定多个验证检测流的另外实施例中,验证以在检测位置收敛的多个检测流为条件。对于此类实施例,验证检测流的数量(例如2、3、4等)以及初始位置(即,验证检测流开始的地方)可以是可配置验证参数。用户配置设置例如可直接或者间接规定验证检测流的数量、每个初始位置的向量偏移和收敛阈值。

图3B、4B图示了对于当前帧202确定四个单独验证检测流321的示范实施例。每个检测流321在边界框322内开始,其可具有预定大小。四个边界框322的每个都与距检测位置的位置偏移关联,例如覆盖以检测位置521为中心的网格上的相等大小的四个象限。虽然形成在检测位置交叉的象限的四个对象检测流有利地实现了在操作120检测的对象周围的背景分析,但是可以基本上相同的方式采用更多或更少的验证检测流。图3B进一步图示了在偏移位置开始的四个对象检测算法的每个迭代直到朝检测位置521收敛的一个示例。检测位置521因此被验证。图4B进一步图示了检测流325无法收敛于检测位置522的另一示例。检测位置522因此不被验证。

在实施例中,使用仅来自验证检测结果的学习数据来确定新对象模型。学习数据的收敛因此可仅限于具有稳定性阈值级别的那些检测结果。参考图1,例如,方法100响应于验证检测的位置而前往学习操作130。在操作130,使用与验证位置关联的学习数据确定新对象模型。通过将学习操作130局限于与验证位置关联的结果,改进检测对象作为对象模型学习数据的稳定性。在操作130可利用任何学习技术/算法,因为实施例不限于这方面。在对象模型包含一个或多个颜色直方图作为描述符的一个示范实施例中,在操作130用根据与验证位置关联的补丁生成的颜色直方图更新对象模型。

方法100在操作135继续,在此通过从存储在存储器中的模型集中剔除最冗余的模型来最大化为给定目标对象存储的对象模型的多样性。在一个示范实施例中,采用模型替换策略向存储在存储器中的预定数量的对象模型添加在操作130确定的新模型。在用要添加的每个新对象模型替换最冗余对象模型时,此类替换被有利地断定。在一个示范实施例中,基于所有成对的存储对象模型的比较评估模型冗余。例如,在一组对象模型中,为每对存储的对象模型,确定距离向量。然后对与每个存储的对象模型关联的所有距离向量求和。与最小和距离关联的对象模型然后被作为最小多样性模型移除。在操作130确定的模型然后可被存储到存储器中,作为该组中固定数量的对象模型之一。

方法100的单个迭代在操作140完成,在此例如选择预定对象模型以分析下一连续帧。在一个有利的实施例中,随后帧的对象模型选择基于存储的模型集与在先前帧中采用的对象模型的比较。例如,存储的模型可与在当前帧中采用的对象模型相比较,并选择具有在检测位置的对象的当前描述符最佳匹配的模型以供方法100的下一迭代之用。响应于无法验证检测的位置,当前对象模型可以不再提供与在最后检测的位置生成的描述符的最佳匹配,并且在操作140可选择具有更佳匹配的存储模型。为了维持模型一致性,在当前帧中采用的模型可依赖于作为下一帧的默认对象模型。例如,在所有存储的模型都无法将描述符匹配到预定阈值内的一个实施例中,为下一(当前)帧保留在当前(先前)帧中采用的对象模型。在另外的实施例中,响应于存储的模型无法按大于在当前(先前)帧中采用的对象模型的阈值量匹配描述符,而为下一(当前)帧保留在当前(先前)帧中采用的对象模型。

方法100然后被迭代,处理图像数据的每个随后接收的帧。跟踪对象数据(例如包含跟踪位置)在每次迭代都被存储到电子存储器。跟踪对象数据然后例如作为元数据与图像数据的给定帧关联,其中它可在图像处理管线内的下游利用。

图5是按照实施例的验证模型对象跟踪(VMOT)装置500的功能框图。在示范实施例中,VMOT装置500被计算机化,以自动方式执行对象跟踪方法100。VMOT装置500从502从存储输入图像帧的解码表示或者由相机硬件模块(CM)501以输入图像分辨率曝光的捕获图像中的至少一个的缓冲器,接收或检索与当前图像关联的输入图像数据。在一个实施例中,当前输入图像帧500是由CM 501以给定视频帧速率写到缓冲器的连续曝光的图像数据帧的流中的一帧。VMOT装置500包含执行如上所述的位置估计、对象检测、验证、模型管理和模型选择中每个的逻辑。

如在图5中所进一步图示的,VMOT装置500进一步包含耦合的对象检测模块520以接收当前输入帧502。对象检测模块520进一步耦合到模型选择模块540的输出端,从中对象检测模块520接收预定对象模型516。对象检测模块520进一步耦合到位置预测模块515的输出端。对象检测模块520接收当前输入对象帧的估计目标对象位置516。对象检测模块520包含用在估计的位置516初始化的检测算法检测当前输入图像/视频帧中目标对象的位置的逻辑。来自对象检测模块520的输出端耦合到验证模块525的输入端。对象检测模块520将检测的对象位置521传递到验证模块525。在图5中图示的示范实施例中,检测模块520还将检测的位置521与当前输入图像502一起输出到3A管线503。检测的位置521可被进一步存储到电子存储器550。

验证模块525进一步耦合到模型选择模块540的输出端,并且接收当前对象模型516。验证模块525包含基于对象模型516确定当前输入图像/视频帧502的一个或多个对象检测流的逻辑。验证模块525例如可包含同时执行多个验证过程的并行逻辑。例如,验证模块525可以例示在与检测位置521具有唯一偏移的不同位置处在当前帧内初始化的多个对象检测流的每个的处理线程。作为另一示例,验证模块525可包含并行逻辑电路以通过并行管线处理多个对象检测流的每个。在上面描述的示范实施例中,使用至少一个检测算法验证当前视频帧中目标对象的位置,在覆盖当前视频帧内相邻象限的相等大小的四个窗口的每个窗口内开始。验证模块525进一步包含评估具有检测位置521的一个或多个对象检测流的收敛的逻辑。

验证模块525的输出进一步耦合到对象学习模块530的输入端。对象学习模块530接收诸如与参考验证位置526的边界框关联的颜色直方图和/或其它对象描述符的学习数据。对象学习模块包含响应于对象检测流朝检测位置521收敛而基于学习数据确定新对象模型的逻辑。根据当前帧确定的新对象模型被输出到存储器550,其将多个对象模型作为对象模型集551存储。

在另一实施例中,并且如在图5中所进一步图示的,VMOT装置500包含进一步耦合到存储器550的模型管理模块535。模型管理模块535包含通过从对象模型集551中移除由对象学习模块530输出的每个新对象模型的对象模型来维持预定数量的存储的对象模型的逻辑。在示范实施例中,模块管理模块535包含执行如下操作的逻辑:确定模型集551中对象模块的所有对之间的距离;对与每个对象模型关联的确定距离求和;以及从存储器550中移除具有最小和距离的对象模型。

模型选择模块540耦合到存储器550,并且包含访问对象模型集551并从对象模型集551中选择对象模型516的逻辑。在一个示范实施例中,对象选择模块540为下一帧选择最佳匹配在检测位置521的目标对象的描述符(例如颜色直方图)的对象模型。在另外实施例中,模型选择模块540进一步包含响应于存储的对象模型无法将目标对象描述符匹配到预定阈值内或者无法按大于在先前(当前)帧中采用的对象模型的阈值量匹配描述符而选择在先前帧中采用的对象模型(或者为下一帧选择在当前帧中使用的对象模型)的逻辑。

在示范实施例中,VMOT装置500进一步包含位置预测模块515,其输入端耦合到检测模块520,通过检测模块,来自先前帧的检测位置521被作为先前目标对象位置接收。位置预测模块515进一步包含耦合到跟踪初始化模块510的输入端,通过跟踪初始化模块510先前目标位置被引导,如果当前帧502是第一帧的话。位置预测模块515包含基于输入先前位置和运动预测模型估计当前帧内目标对象的位置的逻辑。

图6进一步图示实时验证模型对象跟踪装置可如何与视频捕获装置603的各种其它组件集成以提供适合于高帧曝光速率和低图像处理开销的增强摄像机输出。视频捕获装置603例如可以是移动计算装置平台的一部分。移动计算装置例如可指的是具有处理系统和移动电源或电力供应(诸如一个或多个电池)的任何装置。移动计算装置的示例可包含膝上型计算机、平板、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能装置(例如智能电话、平板或智能电视)、移动因特网装置(MID)、消息传递装置、数据通信装置等等。移动计算装置的示例还包含配置成由人佩戴的计算机和/或媒体捕获/传送装置,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂带计算机、鞋计算机、衣服计算机以及其它可穿戴计算机。在各种实施例中,例如,移动计算装置可实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管一些实施例可作为示例用实现为智能电话的移动计算装置进行描述,但可认识到,其它实施例也可使用其它无线移动计算装置实现。实施例不限于此上下文。

平台603包含CM 501。在示范实施例中,CM 501进一步包含相机传感器659。例如,传感器659可以是HD、FHD、QXGA、WQXGA或QSXGA格式数字图像装置。相机传感器659可提供每像素10位或更多位的颜色分辨率可操作以逐渐捕获连续视频帧。传感器659可具有170MHz或更大的像素频率。相机传感器659可包含RGB拜耳颜色滤波器、模拟放大器、A/D转换器、将入射光转换成对应于原始图像数据的数字信号的其它组件。传感器659可被控制成操作卷帘快门或电子焦平面快门过程,其中像素以行顺序方式对于一帧逐渐读出。在示范视频实施例中,传感器659输出多个连续曝光帧。CM 501按照任何已知流播协议(诸如MIPI)输出与连续曝光帧关联的原始数据。流播的原始视频数据被输出到ISP 675。ISP 675在与CM 501关联的水平和/或垂直消隐周期期间接收和分析原始视频数据帧。在原始图像数据处理期间,ISP 675例如可执行颜色空间转换、噪声降低、像素线性化和遮蔽补偿中的一项或多项。

由ISP 675输出的预先处理的视频数据可以FIFO方式缓冲,作为准备好对象跟踪的输入图像数据排队。在示范实施例中,DSP 685和/或应用处理器(APU) 650实现在图5中描绘的一个或多个验证模型对象跟踪装置模块。DSP 685例如可包含一个或多个固定功能或者半可编程逻辑电路,以执行上面描述的对象检测方法100的一个或多个阶段。例如,可利用固定功能模块实现位置估计、对象检测、验证、模型学习、模型管理和模型选择中的一项或多项。由APU 650例示的操作系统(OS)的内核空间内的子系统驱动615可控制各种对象跟踪和验证参数,诸如验证检测流定位。可通过在OS的用户空间中执行的应用层提供对对象跟踪和验证控制参数的访问。

验证模型对象跟踪装置500的软件和硬件实现都很适合于以最小功率以具有高曝光帧速率的步调实现跟踪方法100。对于硬件实现,对象跟踪装置500可由例如在DSP 685中的VMOT 500A所提供的固定功能逻辑实现。对于软件实现,任何已知可编程处理器,包含APU 650的核、图形处理器的执行单元或其它类似向量处理器,都可用于实现VMOT装置500B的逻辑。对于此类软件实现的实施例,DSP 685不需要实现固定功能电路相关VMOT装置500A(如图6中的虚线所标示的)。APU 650可独自负责根据从ISP 675接收的输入图像数据生成目标对象数据。此类基于软件的实现有利地比固定功能逻辑电路更灵活。在一个示范实施例中,VMOT装置500B通过APU 650的用户空间例示。APU 650以足以与CM 501的帧生成实时执行对象跟踪方法100的速率,执行这些算法。APU 650可以用存储在计算机可读介质上的指令编程,以使处理器执行对象跟踪方法100的任何操作。

如在图6中所进一步图示的,目标对象数据可被输出到存储/显示/传送管线695。在一个示范存储管线实施例中,目标对象数据被写到电子存储器620(例如DDR等)以补充存储的输入图像数据。存储器620可以是APU 650可存取的主存储器610的一部分或与之分开。备选地,或此外,存储装置/显示器/传送管线695向视频捕获装置503传送目标对象数据和/或输入图像数据。

在图6图示的一个示范实施例中,APU 650进一步包含实现一个或多个相机控制算法(CCA)的3A模块503。包含自动白平衡(AWB)、自动聚焦(AF)和自动曝光控制(AEC)的示范CCA算法经常称为“3A”控制。AEC和AF涉及CM 501的控制,而AWB涉及ISP 675的控制。示范CM控制参数包含光圈大小、快门速度、自然密度(ND)滤波器控制、闪光灯功率、模拟增益(AG)和数字增益(DG)。示范ISP控制参数包含白平衡增益、镜头阴影校正(LSC)增益和噪声抑制。在实施例中,3A模块503基于从验证模型跟踪装置(例如500B)输出的跟踪对象数据生成相机控制参数。例如,3A模块503基于从验证模型对象跟踪装置500B输出的检测位置执行自动聚焦(AF)算法、自动曝光(AE)算法或自动白平衡(AWB)算法中的至少一个。

图7是按照一个或多个实施例采用实时验证对象跟踪装置的示范超低功率系统700的图。系统700可以是移动装置,尽管系统600不限于此上下文。系统700可被合并到可穿戴计算装置、膝上型计算机、平板、触摸板、手持计算机、掌上计算机、蜂窝电话、智能装置(例如智能电话、智能平板或移动电视)、移动因特网装置(MID)、消息传递装置、数据通信装置等等中。系统700还可以是基础设施装置。例如,系统700可被合并到大格式电视、机顶盒、台式计算机或其它家用或商用网络装置中。

系统700包含可实现上面在图1至图6的上下文中描述的任何验证模型对象跟踪装置模块以及各种对象跟踪方法的所有或子集的装置平台702。在各种示范实施例中,视频处理器715执行对象跟踪和验证。视频处理器715包含实现验证模型对象跟踪装置500以与从CM 501流播的视频帧数据同步跟踪图像中的对象(例如在本文中别处所描述的)的逻辑电路。在一些实施例中,一个或多个计算机可读介质可存储指令,所述指令当由CPU 710和/或视频处理器715执行时,使处理器执行一个或多个对象跟踪和验证算法,诸如上面详细描述的那些中的任一个。由CM 501曝光的一个或多个图像数据帧然后可存储在存储器712中作为增强和/或补充图像数据。

在实施例中,装置平台702耦合到人工接口装置(HID)720。平台702可用CM 501收集原始图像数据,其被处理并输出到HID 720。包含一个或多个导航特征的导航控制器750可用于例如与装置平台702和/或HID 720交互。在实施例中,HID 720可包含经由无线电718和/或网络760耦合到平台702的任何电视型监视器或显示器。HID 720例如可包含计算机显示屏、触摸屏、视频监视器、电视类装置和/或电视。

在实施例中,装置平台702可包含CM 501、芯片集705、处理器710、715、存储器/存储装置712、应用716和/或无线电718的任何组合。芯片集705可提供处理器710、715、存储器712、视频处理器715、应用716和无线电718之间的互通信。

处理器710、715中的一个或多个可实现为一个或多个复指令集计算机(CISC)或精减指令集计算机(RISC)处理器、x86指令集可兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。

存储器712可实现为易失性存储器装置,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。存储器712还可实现为非易失性存储装置,诸如但不限于闪存、电池备份的SDRAM(同步DRAM)、磁存储器、相变存储器等等。

无线电718可包含能够使用各种适合的无线通信技术传送和接收信号的一个或多个无线电。此类技术可涉及在一个或多个无线网络上的通信。示例无线网络包含(但不限于)无线局域网(WLAN)、无线个人区域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在此类网络上的通信中,无线电618可按照任何版本的一个或多个可应用标准进行操作。

在实施例中,系统700可被实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统700可包含适合于通过无线共享介质(诸如一个或多个天线、传送器、接收器、收发器、放大器、滤波器、控制逻辑等)通信的组件和接口。无线共享介质的示例可包含无线频谱部分,诸如RF频谱等。当实现为有线系统时,系统700可包含适合于通过有线通信介质(诸如输入/输出(I/O)适配器、连接I/O适配器与对应有线通信介质的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等)通信的组件和接口。有线通信介质的示例可包含有线、电缆、金属引线、印刷电路板(PCB)、背板、开关构造、半导体材料、双绞线、同轴电缆、光纤等等。

适合本文描述的示范实施例的验证的对象跟踪和关联的对象跟踪和验证过程可在各种硬件架构、单元设计或“IP核”中实现。

如上所述,系统700可按变化的物理样式或形状因子实施。图8图示了可实施系统700的移动手机装置800的实施例。在实施例中,例如,装置800可实现为具有无线能力的移动计算装置。如图8中所示,移动手机装置800可包含具有前面801和后面802的外壳。装置800包含显示器804、输入/输出(I/O)装置806和集成天线808。装置800还可包含导航特征812。显示器804可包含用于显示对于移动计算装置适当的信息的任何适合显示单元。I/O装置806可包含用于将信息录入到移动计算装置中的任何适合的I/O装置。I/O装置806的示例可包含字母数字键盘、数字键区、触摸盘、输入键、按钮、开关、麦克风、扬声器、语音识别装置和软件等等。信息也可借助麦克风(未示出)录入到装置800中,或者可通过语音识别装置数字化。实施例不限于此上下文。至少集成到后面802的是相机805(例如包含镜头、光圈和成像传感器)和闪光灯810,其二者都可以是CM的组件,通过其流播视频被曝光并输出到对象跟踪系统,如本文别处所描述的。

如上面所例示的,本文描述的实施例可使用硬件元件、软件元件或二者的组合来实现。硬件元件或模块的示例包含处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体装置、芯片、微芯片、芯片集等等。软件元件或模块的示例包含:应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、例程、子例程、功能、方法、过程、软件接口、应用编程接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、数据字、值、符号或它们的任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可按照为设计选择考虑的许多因素改变,诸如但不限于:期望的计算速率、功率级、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。

至少一个实施例的一个或多个方面可由存储在机器可读存储介质上的相应指令实现。此类指令在由机器、主存储器和处理器部分(存储指令然后还构成机器可读存储介质)执行其时,可完全或至少部分驻留在主存储器和/或处理器内。可编程逻辑电路可具有实现计算机可读介质的处理器配置的寄存器、状态机等。所编程的此类逻辑电路然后可被理解成物理变换成落入本文描述的实施例范围内的系统。表示处理器内各种逻辑的指令当由机器读取时还可使机器制作遵守本文描述的架构的逻辑和/或执行本文描述的技术。称为“单元设计”或IP核的此类表示可存储在有形机器可读介质上,并提供给各种顾客或生产设备,以加载到实际上制造逻辑或处理器的制作机器中。

虽然已经参考实施例描述了本文阐述的某些特征,但此描述不打算视为限制意义。因此,对本公开涉及的领域的技术人员真正显然的本文描述的实现的各种修改以及未公开的实现被认为在本公开的精神和范围内。

如下段落简要描述一些示范实施例:

在一个或多个第一实施例中,跟踪目标对象的计算机实现的方法包括:用预定对象模型检测当前视频帧中目标对象的位置,在帧内的预定位置开始。该方法进一步包括:确定所述当前视频帧的至少一个对象检测流,每个对象检测流开始于所述帧内的不同位置,每个不同位置具有与检测位置的唯一偏移。该方法进一步包括:响应于对象检测流朝检测位置收敛而验证目标对象的检测位置。该方法进一步包括:响应于验证所述检测位置而使用验证的位置作为学习数据确定新对象模型。

在第一实施例的推进中,该方法进一步包含确定至少一个对象检测流,进一步包括确定多个对象检测流。所述方法进一步包含:确定所述多个对象检测流进一步包括:用预定对象模型使用在覆盖所述当前视频帧内相邻象限的相等大小的四个边界框中的每个内开始的至少一个检测算法检测所述当前视频帧中的所述目标对象的位置,所述象限以估计位置为中心。

在紧接上面的实施例的推进中,所述至少一个检测算法包括从由块匹配、光流和直方图匹配组成的群组中选择的一个检测算法,并且对于检测所述位置和验证所述检测位置采用相同检测算法。

在第一实施例的推进中,从存储在存储器中的多个预定对象模型中选择所述预定对象模型,所述选择基于所述多个与在先前帧中采用的对象模型的比较,所述多个包含固定数量的对象模型。该方法进一步包括:基于所述目标对象的验证位置估计在下一视频帧内所述对象的位置。

在紧接上面的实施例的推进中,选择预定对象模型进一步包括如下至少一项:从所述多个中选择在所述检测位置具有与所述目标对象的描述符的最佳匹配的对象模型;以及响应于所述多个对象模型无法将所述描述符匹配到预定阈值内或者无法按大于在先前帧中采用的对象模型的阈值量匹配所述描述符,而选择在先前帧中采用的对象模型。

在第一实施例的推进中,该方法进一步包含:通过从所述多个中移除添加到所述多个的每个新对象模型的冗余模型来维持所述目标对象的预定数量的对象模型。

在紧接上面的实施例的推进中,移除冗余模型进一步包括执行所述多个中所述对象模型的所有对之间的比较。所述比较进一步包括:确定模型的所有对之间的距离,对所述距离求和,并移除具有最小和距离的对象模型。

在第一实施例的推进中,该方法进一步包括:通过基于先前视频帧内所述目标对象的先前位置来估计所述当前视频帧内所述目标对象的位置来确定所述预定位置。

在紧接上面的实施例的推进中,估计的位置基于运动预测模型。

在紧接上面的实施例的推进中,所述方法进一步包括:通过基于与包含所述预定位置的边界框关联的像素数据计算所述目标对象的一个或多个描述符来初始化对象跟踪。响应于无法检测所述当前视频帧中所述目标对象的位置而执行所述初始化。

在紧接上面的实施例的推进中,一个或多个描述符包括与所述边界框内包含的像素关联的颜色直方图。

在一个或多个第二实施例中,计算机化对象跟踪装置包括执行任一第一实施例的部件。

在第二实施例的推进中,所述部件进一步包括:包括用户空间和内核空间的应用处理器或图像信号处理器中的至少一个,所述处理器包含执行至少一个第一实施例的电路。

在一个或多个第三实施例中,计算机化对象跟踪装置包括对象检测模块以用检测算法和预定对象模型检测当前视频帧中目标对象的位置,所述检测算法在所述帧内的预定位置开始。装置进一步包括耦合到对象检测模块的位置验证模块。验证模块确定所述当前视频帧的一个或多个对象检测流,每个对象检测流开始于所述当前帧内的不同位置,每个不同位置具有与所述检测位置的唯一偏移。验证模块评估对象检测流的收敛。装置进一步包括:对象模型学习模块,耦合到所述位置验证模块,并响应于所述对象检测流朝所述检测位置的收敛而使用验证位置作为学习数据来确定新对象模型。

在第三实施例的推进中,位置验证模块用所述预定对象模型使用在覆盖所述当前视频帧内相邻象限的相等大小的四个窗口中的每个内开始的至少一个检测算法检测所述当前视频帧中的所述目标对象的位置,所述象限以估计位置为中心。

在第三实施例的推进中,装置进一步包括存储多个对象模型的存储器。装置进一步包括:模型管理模块,耦合到所述存储器,并且通过从所述多个中移除添加到所述多个的每个新对象模型的冗余模型来维持预定数量的对象模型。模型管理模块确定对象模型的所有对之间的距离,对距离求和,并移除具有最小和距离的对象模型。

在第三实施例的推进中,装置进一步包括:位置预测模块,用于基于运动预测模型和先前视频帧内的所述目标对象的先前位置按所述当前视频帧内的所述目标对象的位置的估计来确定所述预定位置。

在第三实施例的推进中,装置进一步包括:对象模型选择模块,用于从多个对象模型中选择在检测位置具有与目标对象的描述符的最佳匹配的对象模型;以及响应于所述多个对象模型无法将所述描述符匹配到预定阈值内或者无法按大于在先前帧中采用的对象模型的阈值量匹配所述描述符,而选择在先前帧中采用的对象模型。

在第三实施例的推进中,装置进一步包括:3A模块,用于基于所述检测位置执行自动聚焦(AF)算法、自动曝光(AE)算法或自动白平衡(AWB)算法中的至少一个。

在一个或多个第四实施例中,一个或多个计算机可读存储介质其上存储有指令,所述指令当由处理器执行时使处理器执行任一第一实施例。

在一个或多个第五实施例中,一个或多个计算机可读存储介质其上存储有指令,所述指令当由处理器执行时使处理器执行包括如下步骤的方法:用预定对象模型检测开始于所述帧内预定位置的当前视频帧中的所述目标对象的位置,确定当前视频帧的多个对象检测流,每个对象检测流开始于所述帧内的不同位置,每个不同位置具有与检测位置的唯一偏移;响应于所述对象检测流朝所述检测位置收敛而验证所述目标对象的所述检测位置;以及响应于验证所述检测位置而使用验证的位置作为学习数据确定新对象模型。

在第五实施例的推进中,存储介质其上进一步存储有指令,所述指令当由处理器执行时使处理器进一步执行包括如下步骤的方法:用预定对象模型使用在覆盖所述当前视频帧内相邻象限的相等大小的四个边界框中的每个内开始的至少一个检测算法检测所述当前视频帧中的所述目标对象的位置,所述象限以估计位置为中心。

在第五实施例的推进中,至少一个检测算法包括从由块匹配、光流和直方图匹配构成的群组中选择的一个检测算法。对于检测目标对象和验证检测位置都采用选择的检测算法。

在第五实施例的推进中,介质其上进一步存储有指令,所述指令当由处理器执行时使处理器进一步执行包括如下步骤的方法:通过从所述多个中移除添加到所述多个的每个新对象模型的冗余模型来维持所述目标对象的预定数量的对象模型。

在紧接上面的实施例的推进中,移除冗余模型进一步包括执行所述多个中预定对象模型的所有对之间的比较。所述比较进一步包括:确定模型的所有对之间的距离,对所述距离求和,并移除具有最小和距离的对象模型。

在第五实施例的推进中,介质其上进一步存储有指令,所述指令当由处理器执行时使处理器进一步执行包括如下步骤的方法:从存储在存储器中的多个预定对象模型中选择预定对象模型,所述多个包含固定数量的对象模型;以及基于所述目标对象的验证位置估计在下一视频帧内所述对象的位置。

在紧急上面的实施例的推进中,其中选择预定对象模型进一步包括:从多个中选择在检测位置具有与目标对象最佳匹配的一个或多个对象模型,和/或响应于多个对象模型无法在预定阈值内匹配,或者响应于两个或更多对象模型具有相同匹配,而选择在先前帧中采用的对象模型。

将认识到,实施例不限于如此描述的示范实施例,但在不脱离所附权利要求的范围下可用修改和更改实践。例如,以上实施例可包含特征的特定组合。然而,以上实施例不限于这方面,并且在实施例中,以上实施例可包含仅采取此类特征的子集、采取此类特征的不同次序、采取此类特征的不同组合和/或采取不同于明确列出的那些特征的附加特征。因此,范围应该参照所附权利要求连同赋予此类权利要求的等同物的完整范围来确定。

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