检测图像数据中的关键点的制作方法

文档序号:14254453阅读:433来源:国知局
检测图像数据中的关键点的制作方法



背景技术:

由图像传感器捕获的图像数据通常最初作为图像处理流水线的一部分进行处理,以准备捕获的图像数据以供另外的处理或消耗。通过这种方式,可以在不消耗其他系统资源的情况下进行实时校正或增强。例如,可以对原始图像数据进行校正、过滤或以其他方式修改,以向后续部件诸如视频编码器提供用于编码和随后显示的适当缩放的图像数据,从而减少在视频编码器处将对图像数据执行的后续操作的数量。

为了实现对捕获的图像数据的这些校正或增强,可以使用各种不同的设备、部件、单元或其他模块来实现作为图像处理流水线的一部分执行的变化操作。例如,图像信号处理器可以包括多个不同的单元或级,其中可以对从图像传感器获得的图像数据进行不同的图像修改或增强。图像处理系统可以包括用于机器视觉的系统,其为图像传感器模块检测的图像提供自动分析和检查功能。机器视觉算法可以识别图像中的兴趣点(有时被称为关键点),这有利于识别和/或跟踪一个或多个图像中的对象。已知机器视觉算法的计算密集性质,期望更有效地实现这些系统。



技术实现要素:

公开了用于检测图像数据中的关键点的方法和系统。在实施方案中,图像信号处理器系统可以包括图像传感器接口,其被配置为从图像传感器接收像素数据。系统可以包括前端像素数据处理电路,其被配置为接收图像传感器像素数据格式的图像帧的像素数据,并且将图像传感器像素数据格式的像素数据转换成不同颜色空间格式。此外,系统可包括后端像素数据处理电路,其被配置为对来自前端像素数据处理电路的像素数据执行一个或多个噪声滤波或颜色处理操作。此外,系统可包括输出电路,其被配置为从后端像素数据处理电路接收像素数据,并将图像帧的像素数据输出到系统存储器。在实施方案中,系统可包括关键点检测电路,其被配置为从图像传感器接口接收图像传感器像素数据格式的像素数据,或者在由前端像素数据处理电路或后端像素数据处理电路处理之后接收像素数据。关键点检测电路可以对接收到的像素数据执行关键点检测操作以检测图像帧中的一个或多个关键点,并将一个或多个关键点的描述输出到系统存储器。

在一个实施方案中,系统可以包括连接到关键点检测电路的多路复用器电路,其中多路复用器可以被配置为从图像传感器接口、系统存储器或后端像素数据处理电路选择像素数据,并且多路复用器可以被配置为将像素数据提供到关键点检测电路。在实施方案中,系统可包括连接在多路复用器和关键点检测电路之间的预处理模块,所述预处理模块被配置为将像素数据转换为亮度通道数据。在一个实施方案中,系统可包括连接到关键点检测电路的关键点控制参数存储结构。关键点控制参数存储结构可以被配置为存储对应于图像帧的第一组相应区域的多个关键点灵敏度阈值,并且响应于一个或多个关键点的相应量度值超过多个关键点灵敏度阈值中的一个关键点灵敏度阈值,输出在图像帧的第一组相应区域中检测到的一个或多个关键点的描述,所述多个关键点灵敏度阈值对应于图像帧的第一组相应区域。此外,关键点检测电路可以输出在图像帧的第一组相应区域中检测到的关键点的计数,所述计数可由程序指令使用,以动态调整多个关键点灵敏度阈值中的一个关键点灵敏度阈值。在实施方案中,关键点控制参数存储结构可被配置为存储可由关键点检测电路使用的图像帧的第二组相应区域中的每个的可允许关键点的可编程最大极限,以输出图像帧的第二组相应区域中的每个的关键点的总数的描述,其中第二组相应区域中的每个的关键点的总数不超过可允许关键点的可编程最大极限。关键点控制参数存储结构还可存储图像帧的第二组相应区域的可编程大小,其中对应于可允许关键点的可编程最大极限的第二组相应区域是比对应于多个可调整的关键点灵敏度阈值的第一组相应区域小的图像帧的区域。在一个实施方案中,图像信号处理器可以被配置为在低功率模式下操作,由此使得前端像素数据处理电路和后端像素数据处理电路的一个或多个级响应于以下状况进入非活动状态:关键点检测电路在预定义时间段内检测相同数量的关键点,在预定义时间段内没有检测到一个或多个关键点,以及/或者响应于基于检测到的关键点的处理来确定处理的关键点对应于其中其他前端电路和后端电路应该保持在低功率模式的情况。图像传感器接口和关键点检测电路可保持处于活动状态,所述活动状态被配置为继续将一个或多个关键点的描述输出到系统存储器,同时前端像素数据处理电路和后端像素数据处理电路的一个或多个级进入非活动状态。响应于关键点检测电路检测一个或多个关键点或者基于检测到的关键点的处理确定处理的关键点对应于前端电路和后端电路应该进入活动状态的指示(例如,如果在设备的视场上或视场内发生有趣的一些事),前端像素数据处理电路和后端像素数据处理电路的一个或多个级可以进入活动状态。

在一个实施方案中,用于图像信号处理器检测图像数据中的关键点的方法可以包括通过图像传感器接口从图像传感器接收像素数据。方法可包括通过前端像素数据处理电路接收图像传感器像素数据格式的图像帧的像素数据。另外,方法可包括通过前端像素数据处理电路将图像传感器像素数据格式的像素数据转换为不同颜色空间格式。方法可包括通过后端像素数据处理电路对来自前端像素数据处理电路的像素数据执行一个或多个噪声滤波或颜色处理操作。此外,方法可包括通过输出电路从后端像素数据处理电路接收像素数据,并将图像帧的像素数据输出到系统存储器。方法可包括通过关键点检测电路从图像传感器接口接收图像传感器像素数据格式的像素数据,或者在前端像素数据处理电路处理后通过关键点检测电路接收像素数据,或者在后端像素数据处理电路处理后通过关键点检测电路接收像素数据。方法可包括通过关键点检测电路对接收的像素数据执行关键点检测操作以检测图像帧中的一个或多个关键点。方法还可包括关键点检测电路向系统存储器输出一个或多个关键点的描述。

在一个实施方案中,设备可以包括中央处理单元(cpu)、连接到cpu的显示器、连接到cpu的系统存储器以及连接到cpu的图像信号处理器。图像信号处理器可以包括图像传感器接口,其被配置为从图像传感器接收像素数据。设备可以包括前端像素数据处理电路,其被配置为接收图像传感器像素数据格式的图像帧的像素数据,并且将图像传感器像素数据格式的像素数据转换成不同颜色空间格式。此外,设备可包括后端像素数据处理电路,其被配置为对来自前端像素数据处理电路的像素数据执行一个或多个噪声滤波或颜色处理操作。此外,设备可包括输出电路,其被配置为从后端像素数据处理电路接收像素数据,并将图像帧的像素数据输出到系统存储器。在实施方案中,设备可包括关键点检测电路,其被配置为从图像传感器接口接收图像传感器像素数据格式的像素数据,或者在由前端像素数据处理电路或后端像素数据处理电路处理之后接收像素数据。关键点检测电路可以对接收到的像素数据执行关键点检测操作以检测图像帧中的一个或多个关键点,并将一个或多个关键点的描述输出到系统存储器。

附图说明

图1是示出根据一些实施方案的用于检测图像数据中的关键点的示例系统的逻辑框图。

图2是示出根据一些实施方案的用于检测图像数据中的关键点的系统中的示例数据路径的逻辑框图。

图3是示出根据一些实施方案的示例图像信号处理器的逻辑框图。

图4是示出根据一些实施方案的图像信号处理器中的机器视觉级的逻辑框图。

图5是示出根据一些实施方案的图像信号处理器中的预处理模块的逻辑框图。

图6是示出根据一些实施方案的用于检测图像数据中的关键点的各种方法和技术的高级流程图。

图7是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧的逻辑框图。

图8是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧的逻辑框图。

图9a是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧的逻辑框图。

图9b是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧的逻辑框图。

本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何适当的方式被组合。

“包括”。该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑引用“一种包括一个或多个处理器单元的设备...”的权利要求。此类权利要求不排除该设备包括附加部件(例如,网络接口单元、图形电路等)。

“被配置为”。各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35u.s.c.§112的第六段。此外,“被配置为”可包括由软件或固件(例如,fpga或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。

“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。

“基于”或“取决于”。如本文所用,这些术语用于描述影响确定的一个或多个因素。这些术语不排除可影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于b确定a”。在这种情况下,b为影响a的确定的因素,此类短语不排除a的确定也基于c。在其他实例中,可仅基于b确定a。

具体实施方式

图像信号处理器或其他图像处理流水线可实现许多不同的技术或部件,以校正或增强由图像传感器捕获的图像数据。然而,图像传感器捕获的图像数据并不总是用于相同目的。例如,图像传感器可以提供图像数据流,以便在较高分辨率静止图像中显示可由图像传感器捕获的内容或在视频中记录的内容的预览图像。在一个实施方案中,一个或多个硬件模块(诸如图像信号处理器)可以执行检测图像中的兴趣点(有时被称为关键点)的计算密集步骤。在实施方案中,一个或多个硬件模块可以与提供关键点数据的另外处理的软件应用程序接合。基于硬件的关键点检测非常适用于对象识别、对象跟踪、图像稳定、全景拼接、来自多个图像捕获的高动态范围(hdr)以及其他应用。

在各种实施方案中,图像信号处理器可以以多速率处理图像处理流水线中的图像数据,以便节省系统带宽并且更有效地利用图像处理流水线的处理能力。例如,在至少一些实施方案中,一个或多个前端流水线级可以以诸如每时钟周期2个像素(ppc)的初始速率处理图像数据。以这种方式,大量的图像数据(例如,作为大的单独图像帧或高速率图像帧,诸如可在记录慢动作视频时捕获的)可以接收初始处理,以减小或校正图像信号噪声、伪像以及可由于收集和处理图像数据而引入的其他图像缺陷。然后可以将图像数据缩减到期望的大小并且在一个或多个后端流水线级以不同的速率(诸如1ppc)处理,以对图像帧执行其他操作,以便减小图像信号噪声、校正颜色和图像缺陷,以及施加各种特殊效果,使得不会对可被丢弃的图像数据执行处理。

在至少一些实施方案中,可以以原始(例如,图像传感器像素数据格式)或全色格式将通过前端流水线级捕获和处理的图像数据存储到存储器,同时可以通过图像处理流水线的后端流水线级继续处理图像数据的缩放版本。以这种方式,可以捕获具有一些图像处理的图像帧的高分辨率版本,同时继续处理图像帧的较低分辨率版本(例如,捕获也被记录在较低分辨率视频中的图像帧的高分辨率静止图像)。

在至少一些实施方案中,可以实现后端接口以允许通过图像处理流水线的一个或多个后端流水线级来处理从不同于图像传感器的源收集的图像数据。例如,可以经由后端接口接收并通过一个或多个后端流水线级处理在设备处接收的图像数据,所述设备从远程设备(例如,内容提供商的内容服务器,诸如基于网络的视频服务)实现图像处理流水线(例如,移动计算设备),以便执行减小图像信号噪声、校正颜色和图像缺陷或施加各种特殊效果的操作。以这种方式,可以利用图像处理流水线的专用图像处理部件来有效地对从许多其他源接收的图像数据执行图像处理。

本文描述的用于检测图像数据中的关键点的技术可以根据采用它们的示例系统被另外示出。如上所述,这些技术可以在包括捕获和处理图像数据(包括视频剪辑)的能力的任何类型的相机、设备或计算系统中实现。

图1中示出了被配置为实现本文描述的技术中的任一个或全部的系统的一个示例。例如,图1中示出的系统100可被配置为使用图像信号处理器执行图像处理,而无需现有gpu和cpu方法所需的附加系统存储器操作。在所示实施方案中,系统100包括一个或多个图像传感器102、系统单芯片(soc)部件104、系统存储器(例如,动态随机存取存储器(dram))130、永久性存储设备(例如,闪存存储器)128和显示器116(例如,液晶显示器(lcd))。在该示例中,一个或多个图像传感器102可以是适合于捕获图像数据的任何类型的图像传感器(例如,响应于捕获的光的图像传感器),诸如相机、摄像机或包括相机或摄像机的其他设备上的有源像素传感器(例如互补金属氧化物半导体(cmos)有源像素传感器)。一个或多个图像传感器102可以包括相应的一个或多个图像传感器接口,其被配置为将一个或多个图像传感器102捕获的图像数据提供到图像信号处理器106的一个或多个部件。在该示例中,显示器116可以被配置为显示所捕获的静止图像或视频剪辑(其可以被提供为来自图像信号处理器106的输出)的预览。显示器116还可以被配置为显示菜单、所选择的操作参数或从系统的用户接口(未示出)接收的其他信息。在其他实施方案中,其他类型的显示设备可被包括在系统中,以用于这些目的。在不同的实施方案中,系统100可以是各种类型的设备中的任一种,包括但不限于个人计算机系统;台式计算机;膝上型计算机;笔记本计算机、平板计算机、板式计算机或上网本计算机;大型计算机系统;手持式计算机;工作站;网络计算机;相机;机顶盒;移动设备,诸如移动电话、寻呼机、个人数据助理(pda)、平板设备或音乐播放器;以及i/o设备,诸如数字相机、扫描仪、视频记录器;消费者设备;视频游戏控制台;手持式视频游戏设备;或者一般而言包括相机或摄像机的功能的任何类型的计算或电子设备。

在该示例中,soc部件104包括图像信号处理器(isp)106、中央处理器单元(cpu)108、网络接口110、取向接口112(其可以耦合到一个或多个取向传感器134,系统100可以从所述取向传感器收集取向数据诸如运动数据)、显示控制器114(其可以被耦合到并且控制显示器116的操作)、图形处理器单元(gpu)120、存储器控制器122(其耦合到系统存储器130)、视频编码器124、存储控制器126(其耦合到永久性存储设备128并且控制对永久性存储设备128的存取,诸如闪存存储器或其他非易失性随机存取存储器),以及各种其他i/o设备(被示出为118),它们中的任一个或全部可以经由互连132彼此通信。在一些实施方案中,系统100或soc部件104可以包括比图1所示的那些更多或更少的元件。

在各种实施方案中,soc部件104可为包括一个处理器的单处理器系统、或者包括若干个处理器(例如,两个、四个、八个或另一个适当数量)的多处理器系统。一个或多个cpu108可实现任何合适的指令集架构,并且可以被配置为执行该指令集架构中定义的指令。例如,在各种实施方案中,一个或多个cpu108可以是实现多种指令集架构(isa)(诸如x86、powerpc、sparc、risc或mipsisa或任何其他合适的isa)中任何指令集架构的通用或嵌入式处理器。在多处理器系统中,一个或多个cpu108中的每个通常可以但并非必须实现相同的isa。cpu108可采用任何微架构,包括标量、超标量、流水线、超流水线、乱序、有序、推测性、非推测性等,或它们的组合。cpu108可以包括实现微码技术的电路。cpu108可以包括各自被配置为执行指令的一个或多个处理核心。cpu108可以包括一个或多个级别的高速缓存,其可以采用任何大小和任何配置(集合关联、直接映射等)。

在图1所示的示例中,系统存储器130可以是任何类型的存储器,诸如动态随机存取存储器(dram)、同步dram(sdram)、双数据速率(ddr、ddr2、ddr3等)sdram(包括sdram的移动版本,诸如mddr3等,或sdram的低功率版本,诸如lpddr2等)、rambusdram(rdram)、静态ram(sram)等。一个或多个存储器设备可以耦合到电路板上以形成存储器模块,诸如单列直插存储器模块(simm)、双列直插存储器模块(dimm)等。另选地,设备可以与实现系统100的集成电路在芯片堆叠构造、封装堆叠构造或者多芯片模块构造中安装。在一些实施方案中,系统存储器130可以以各种格式存储像素数据或其他图像数据或统计。类似地,虽然图1中示出的示例系统100包括用于系统中使用的图像数据或其他数据的非易失性存储的永久性存储设备128,但是在其他实施方案中,系统可以包括用于那些目的的其他类型的非易失性存储器(例如,只读存储器(rom))。

图形处理单元(gpu)120可以包括任何合适的图形处理电路。通常,gpu120可以被配置为将待显示对象渲染到帧缓冲器中(例如,包括整个帧的像素数据的帧缓冲器)。gpu120可包括一个或多个图形处理器,该图形处理器可执行图形软件以进行部分或全部的图形操作或某些图形操作的硬件加速。硬件加速和软件实现的量可在各个实施方案间变化。

根据系统100的类型,i/o设备118可包括任何期望的电路。例如,在一个实施方案中,系统100可以是移动计算设备(例如,个人数字助理(pda)、平板设备、智能电话等),并且i/o设备118可包括用于各种类型的无线通信的设备,诸如wifi、蓝牙、蜂窝、全球定位系统等。在一些实施方案中,i/o设备118还可包括附加存储设备,包括ram存储设备、固态存储设备或磁盘存储设备。在一些实施方案中,i/o设备118可以包括用户接口设备,诸如附加显示设备,包括触摸显示屏或多点触摸显示屏、键盘、小键盘、触摸板、扫描设备、语音或光学识别设备、麦克风、扬声器、扫描仪、打印设备或适合于通过系统100或在系统100内输入或存取数据的任何其他设备。

在该示例中,如本文详细描述的,图像信号处理器(isp)106可以包括专用硬件,其可以促进图像处理流水线的各个级的执行。在一些实施方案中,isp106可以被配置为从图像传感器102接收图像数据,并且将数据处理成可由系统100的其他部件(包括显示器116或视频编码器124)使用的形式。在一些实施方案中,isp106可以被配置为执行各种图像操纵操作,诸如图像平移操作、水平和垂直缩放、关键点识别、对象映射、对象跟踪、颜色空间转换或其他非扭曲图像编辑操作,或者图像稳定变换,如本文所述。图3中更详细地示出并在下面描述了图像信号处理器的一个实施方案。

在图1中示出的示例中,互连132可以被配置为便于包括在soc104中的各个功能单元之间的通信。在各种实施方案中,互连132可以包括任何合适的互连电路,诸如网格、芯片构造上的网络、共享总线、点对点互连等。在一些实施方案中,互连132可以执行任何必要的协议、定时或其他数据变换,以将来自一个部件(例如,系统存储器130)的数据信号转换为适合于由另一个部件(例如,一个或多个cpu108或gpu120)使用的格式。在一些实施方案中,互连132可包括对例如通过各种类型的外围设备总线(诸如外围部件互连(pci)总线标准或通用串行总线(usb)标准的变型)所附接的设备的支持。在一些实施方案中,互连132的功能例如可被划分到两个或更多个单独部件中,诸如北桥和南桥。在一些实施方案中,互连132可以便于以适当的格式将像素数据或其他图像数据或统计传送到各种功能单元。

在该示例中,网络接口110可被配置为允许在系统100和附接到一个或多个网络的其他设备(例如,承载器或代理设备)之间,或者在系统100的节点或部件之间交换数据。例如,可以经由网络接口110从其他设备(例如,内容提供商网络或另一个移动计算设备)接收视频或其他图像数据,并将其存储在系统存储器130中以用于后续处理(例如,经由到图像信号处理器106的后端接口,诸如下面在图3中论述的)和显示。在各种实施方案中,一个或多个网络可包括但不限于:局域网(lan)(例如以太网或企业网)、广域网(wan)(例如互联网)、无线数据网、某种其他电子数据网络、或它们的某种组合。在各种实施方案中,网络接口110可以支持经由有线或无线的一般数据网络(例如诸如任何合适类型的以太网网络);经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络);经由存储区域网络(诸如光纤通道存储区域网络(san)),或经由任何其他合适类型的网络或协议的通信。

本领域的技术人员应当理解,系统100仅为例示性的,而并非旨在限制实施方案的范围。例如,系统100还可以连接到未示出的其他设备,或者可以作为独立系统操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,或者可还有其他附加功能可供使用。在一些实施方案中,存储在系统存储器130中的程序指令可由cpu108或gpu120执行以提供系统100的各种功能。

在其他实施方案中,各种功能可以由在另一个设备上的存储器中执行的软件部件执行,并且经由计算机间通信与所示系统通信。本文描述的这些软件部件中的一些或全部或者任何数据结构可以被存储(例如,作为指令或结构化数据)在系统存储器130中、永久性存储设备128中,或者可以被存储在非暂时性计算机可读介质或者将由适当驱动器读取的便携式物品上。在一些实施方案中,被存储在与系统100分开的计算机可存取介质上的指令可经由传输介质或信号(诸如电信号、电磁信号或数字信号)而被传输到系统100,该传输介质或信号经由通信介质(诸如网络或无线链路)而被传送。各种实施方案可还包括接收、发送或存储根据本文描述实现的指令或数据。一般而言,计算机可存取介质可以包括非暂时性计算机可读存储介质或存储器介质,诸如磁或光介质,例如磁盘或dvd/cd-rom,易失性或非易失性介质,诸如ram(例如sdram、ddr、rdram、sram等)、rom等。

图2是示出根据一些实施方案的实现图像信号处理器(具体地,在图1中所示的系统100中)的系统中的数据路径的框图。如虚线200所示,在一个示例中,图像数据可以从图像传感器(102),通过图像信号处理器(106)传递到系统存储器130(通过互连132和存储器控制器122的方式)。一旦图像数据已被存储在系统存储器130中,其可以由视频编码器124、显示器116(例如,通过互连132的方式以及在显示器116、显示控制器114的情况下)存取。例如,在各种实施方案中,其可由显示控制器114存取以便在显示器116上显示预览,或者可由视频编码器124存取,所述视频编码器124可以以适于视频记录到永久性存储设备128(例如,用于存储),或者将数据传递到网络接口110以在网络或别处进行传输(例如,用于视频会议)的格式对数据编码。

通过虚线210示出另一个示例数据路径。可以通过系统100从除一个或多个图像传感器102以外的源接收图像数据,诸如视频图像或数据或图像静止或帧。在一个实施方案中,可以通过图像信号处理器106从系统存储器130接收图像数据。在另一个实施方案中,视频数据可以经由来自远离系统100的其他源(例如,内容提供商网络或其他移动计算设备)的有线或无线网络连接被串流、下载或以其他方式传送到系统100。可以经由网络接口110接收图像数据并且经由存储器控制器122将图像数据写入存储器130。在一些实施方案中,可然后通过图像信号处理器106从存储器130获得图像数据并且通过一个或多个图像处理流水线级来处理所述图像数据,以执行各种图像校正、平移、转换或其他图像处理技术。图像数据可然后被返回到存储器130、视频编码器124或其他部件诸如显示控制器113以在显示器116处进行显示,或者被返回到存储控制器126以在持久性存储设备128(未示出)处进行存储。

在一些实施方案中,图形处理器120可以存取、操纵、变换或以其他方式处理图像数据,并且因此可以在系统存储器130上执行除了图2示出的那些以外的附加读取和写入操作。存储在系统存储器130中的图像数据可以由gpu120(通过互连132和存储器控制器122的方式)存取,并且在gpu120已经对图像数据执行一个或多个图像变换之后,图像数据可以被写入回到系统存储器130(再次通过互连132和存储器控制器122的方式)。如果图像处理由cpu108(例如,由在cpu108上执行的软件)执行,则在系统存储器130和cpu108之间的系统100中可采用类似的数据路径。在一些实施方案中(虽然未示出),从图像信号处理器106输出的图像数据可被直接(经由互连132)发送到另一个功能部件(例如,cpu120、图形处理器120、其他i/o设备118、网络接口110、视频编码器124、存储控制器126或显示控制器114),而不将图像数据存储到系统存储器130。

图像信号处理单元(isp)(诸如图像信号处理器106)的一个实施方案由图3中的框图示出。如该示例中所示,在各种实施方案中,isp106可以耦合到一个或多个图像传感器102(从所述图像传感器接收图像数据)。在该示例中,isp106实现图像处理流水线,其可以包括从创建、捕获或接收到输出的处理图像信息的一组级。例如,被示为isp106的部件的各种元件经由输出接口316或后端接口342通过包括isp106的系统的其他部件(包括在经由存储器控制器接口122被写入到系统存储器之后从系统存储器存取变换的数据或者经由互连132被直接提供图像数据的那些),或者通过耦合到包括isp106的系统的其他设备将通过一个或多个传感器接口302从图像传感器102接收的源数据处理成在流水线中可由其他级(例如,图像统计304、原始图像处理306、重采样处理级308、噪声处理级310、颜色处理级312、输出重缩放314或机器视觉级318)处理的图像数据。在至少一些实施方案中,一个或多个传感器接口302可以执行各种预处理操作,诸如像素缺陷校正以检测和校正图案化的缺陷和缺陷线对(例如,由特定像素如焦点像素创建)以及图像裁剪或合并,以减小图像数据大小。注意,在一些实施方案中,图像信号处理器106是串流设备。换句话说,可以通过图像信号处理器106经由一个或多个传感器接口302从图像传感器102以光栅顺序(即,水平地、逐行地)接收像素,并且通常可以以光栅顺序通过其各种流水线级处理所述像素,直到最后以光栅顺序输出。

图像信号处理器106可以以不同的速率处理在图像信号处理器(有时被称为isp)接收的图像数据。例如,在图3所示的实施方案中,图像信号处理器可以实现一个或多个前端流水线级330,诸如以初始速率处理图像数据的原始处理级306和重采样处理级308。因此,可以实现在这些前端流水线级(诸如下面关于原始处理级306和重采样处理级308所描述的那些)处执行的各种不同的技术、调整、修改或其他处理操作,使得可以通过这些级以初始速率连续处理图像数据。例如,如果前端流水线级330每时钟周期处理2个像素,则如黑电平补偿、高光恢复、缺陷像素校正等的原始处理级306操作可以每次处理2个像素的图像数据。在实施方案中,机器视觉级318内的不同模块可以以不同的速率处理图像数据。例如,机器视觉级318的前端中的模块可以以初始速率处理数据,而朝向机器视觉级318的后端的模块可以以降低的速率处理图像数据。

除了以初始速率在前端流水线级处理图像数据之外,图像信号处理器106可以实现以不同的速率处理图像数据的一个或多个后端流水线级。在各种实施方案中,后端流水线级340可以以小于初始数据速率的降低的速率处理图像数据。例如,如图3所示,可以实现后端流水线级340(诸如噪声处理级310、颜色处理级312和输出重缩放314),使得根据降低的速率处理图像数据。给定以2ppc处理图像数据的前端级330的上述示例,则噪声处理级310可以实现操作诸如时间滤波和亮度锐化,以便以小于2ppc的速率(诸如1ppc)处理图像数据。

在至少一些实施方案中,图像信号处理器106可以实现后端接口342。后端接口342可以从系统存储器和/或除了一个或多个图像传感器102之外的其他图像源接收图像数据。例如,如图2所示,经由无线连接接收的图像数据可以被接收并存储在存储器130中。可以通过后端接口342接收图像数据,以在图像信号处理器106的后端级340进行处理。原始处理级306可以在一些实施方案中被配置为从系统存储器130接收图像数据。以这种方式,图像信号处理器106可以被配置为向从其他一个或多个图像数据源接收的数据提供资源有效的图像处理能力,而不是(或除了)对图像数据执行的cpu或gpu处理。在各种实施方案中,后端接口342可将图像数据转换成后端处理级所利用的格式。

在各种实施方案中,图像信号处理器106可以实现中央控制模块320。在一些实施方案中,中央控制模块320可以配置和开始图像数据的处理。例如,中央控制模块320可以实现用于记录时钟周期、存储器延迟、服务质量和状态信息的性能监视器。中央控制模块320可更新或管理用于isp106的单元、模块、级或其他部件的控制参数,并且可与传感器接口302接合以控制单元、模块、级或其他部件的启动和停止。例如,在一些实施方案中,单元、模块、级或其他部件可以进入空闲状态,在所述空闲状态期间可编程参数可以由中央控制模块320更新。然后可以将单元、模块、级或其他部件置于运行状态,以执行一个或多个操作或任务。在其他示例中,中央控制模块320可以配置图像信号处理器106以在重采样处理级308之前、期间或之后存储图像数据(例如,将被写入到存储器,诸如图2中的存储器130)。以这种方式,不论是以原始(例如,图像传感器像素数据格式)还是全色域格式,除了通过后端流水线级处理图像数据之外或代替通过后端流水线级处理图像数据,可以存储全分辨率图像数据。在一个实施方案中,图像信号处理器106可以包括前端像素数据处理电路,诸如原始处理级306或机器视觉级318,其被配置为直接从一个或多个传感器接口302接收原始输入数据,从系统存储器130接收存储的图像数据,以及/或者从后端输出电路(诸如输出重缩放级314、输出接口316或后端340的其他级)接收处理的图像数据。在实施方案中,中央控制模块320可以存取存储在系统存储器130中的数据,诸如程序指令136。在一个实施方案中,中央控制模块320可以将控制信号发送到机器视觉级318,由此调整机器视觉级318的一个或多个性能参数。

在各种实施方案中,图像信号处理器106可以实现一个或多个图像统计模块304。一个或多个图像统计模块304可以执行各种功能并且收集将被存储在存储器(诸如系统存储器130)中的信息。在一些实施方案中,图像统计模块可以执行传感器线性化、缺陷像素替换、黑电平补偿、透镜阴影校正和逆黑电平补偿,以便收集作为各种操作的结果的图像信息。可以收集或跟踪统计,诸如3a统计(自动白平衡(awb)、自动曝光(ae)、自动聚焦(af))、直方图(例如,2d颜色或分量)或任何其他图像数据信息。因此,先前示例并非意图进行限制。在一些实施方案中,当统计操作如传感器线性化、缺陷像素替换、黑电平补偿、透镜阴影校正和逆黑电平补偿识别剪辑的像素时,可从统计收集(诸如从af统计)排除某些像素值或像素值的区域。在实现多个图像统计模块304的情况下,每个统计模块可以由中央控制模块320编程,以收集相同图像数据或针对不同图像收集的(例如,从不同的一个或多个图像传感器102收集的)不同图像数据的不同信息。

如上所述,图像信号处理器106可以实现一个或多个前端流水线级,诸如原始处理级306、重采样处理级308和机器视觉级318,其可以处理原始或全色域中的图像数据。在各种实施方案中,原始处理级306可以实现各种模块、单元或部件以对原始图像数据执行各种操作、功能或任务。例如,拜耳原始格式可以是从实现拜尔模式的像素传感器的一个或多个图像传感器102收集的图像数据。例如,一些传感器像素仅捕获绿光,而其他像素捕获拜耳模式像素中的红光或蓝光。以这种方式,拜耳原始图像格式的图像数据(或由图像传感器中的滤色器阵列捕获的其他原始图像格式)为像素数据提供特定于具体颜色(而不是所有颜色)的值。

前端像素数据处理电路(诸如原始处理级306)因此可以通过应用各种操作处理原始格式(例如,图像传感器像素数据格式,诸如拜耳原始格式)的图像数据,所述操作包括但不限于传感器线性化、黑电平补偿、固定模式噪声降低、缺陷像素校正、原始噪声滤波、透镜阴影校正、白平衡增益和高光恢复。在一些实施方案中,传感器线性化单元可以将非线性图像数据映射到用于其他处理的线性空间(例如,转换来自从高动态范围(hdr)图像传感器(其可以是一个或多个图像传感器102中的一个)收集的压扩格式的图像数据)。在一些实施方案中,可以执行黑电平补偿以针对像素图像数据(其可在传感器线性化之后发生)上的每个颜色分量(例如,gr、r、b、gb)独立地提供数字增益、偏移和剪辑。在一些实施方案中,可执行固定模式噪声降低以在一些实施方案中通过从输入图像中减去暗帧并将不同增益乘以像素来去除偏移固定模式噪声并获得固定模式噪声。在各种实施方案中,有缺陷的像素校正可以确定或识别有缺陷的像素,并且可以替换有缺陷的像素值。在各种实施方案中,通过对亮度相似的相邻像素求平均,原始噪声滤波可以降低图像数据的噪声。在各种实施方案中,高光恢复可以估计从其他通道剪辑(或接近地剪辑)的那些像素的像素值。透镜阴影校正可以应用每像素的增益来补偿强度的降低,所述强度的降低与距透镜光学中心的距离大致成比例。白平衡增益可以为所有颜色分量(例如,拜耳格式的gr、r、b、gb)独立地提供用于白平衡、偏移和剪辑的数字增益。请注意,对于前端像素数据处理电路(诸如原始处理级306)的各种技术、部件或格式,上文提供的各种示例和描述并非旨在为限制性的,而是仅作为示例提供。各种部件、单元或模块可以被分解成多个不同的流水线处理级。还要注意的是,在一些实施方案中,部件、单元或模块中的各个可以将原始图像数据(例如,图像传感器像素数据格式的像素数据)转换成全色域,并且因此原始处理级306可以除原始图像数据之外或者替代原始图像数据,在各个部分处理全色域的图像数据。例如,简单的去马赛克单元可以从原始噪声滤波接收数据并为原始图像数据内插全色域,以在将图像数据转换回原始图像格式之前执行透镜阴影校正、白平衡增益或高光恢复。

在各种实施方案中,图像信号处理器106可以实现重采样处理级308。重采样处理级308可以执行各种操作以对从前端像素数据处理电路(诸如原始处理级306)接收的图像数据进行转换、重采样和/或缩放,并且可以根据降低的速率提供为输出图像数据,诸如可在一个或多个后端像素数据处理电路中实现,诸如后端流水线级340。请注意,在一些实施方案中,重采样处理级的部分中的一些或全部可以被实现为原始处理级的一部分,并且因此先前的描述被提供为图像处理流水线中的示例流水线级,所述图像处理流水线可以实现图像数据中的关键点的检测。

在各种实施方案中,图像信号处理器106可以实现前端像素数据处理电路,诸如机器视觉级318。机器视觉级318可执行各种操作以检测从多个源接收的图像数据中的关键点,所述多个源包括一个或多个传感器接口302(例如,图像传感器像素数据格式的原始像素数据)、存储器(例如,系统存储器130)和/或后端输出电路(例如,输出重缩放314),如下面关于图4另外详细论述的。在各种实施方案中,机器视觉级318还可以被配置为检测从isp106的其他前端流水线级或isp106的各种后端流水线级接收的图像数据中的关键点。在一个实施方案中,机器视觉级318可以根据降低的速率提供输出图像数据,诸如可以实现为后端流水线级340。

在各种实施方案中,图像信号处理器106可以实现一个或多个后端像素数据处理电路(诸如后端流水线级340),以便以低于在前端级330中处理图像数据的初始速率的速率来处理图像数据(例如,4ppc初始速率>3ppc、2ppc或1ppc的降低速率)。在至少一些实施方案中,后端流水线级340可根据特定全色格式(例如,ycbcr4:4:4或rgb)来处理图像数据,其中重采样处理级308或后端接口342可提供到后端级340。请注意,在一些实施方案中,后端级340中的各个可被配置为将图像数据转换成特定的全色格式(或者可使用不同的全色格式以进行处理),并且因此先前示例不意图为限制性的。

在一些实施方案中,图像信号处理器106可以实现噪声处理级310。在各种实施方案中,噪声处理级310可以实现多种模块、单元或部件,以便以不同的顺序执行各种操作、功能或任务,诸如伽马/去伽马映射、颜色空间转换、时间滤波、噪声滤波、亮度锐化和色度降噪。颜色空间转换可以将图像数据转换为另一种颜色格式或空间(例如,rgb到ycbcr)。伽马映射可以为像素数据的特定颜色通道(例如,y、cb和cr通道)提供非线性映射函数,以便应用不同的图像效果,包括但不限于黑白转换、棕褐色调转换、负转换或者曝光转换。在各种实施方案中,可以执行时间滤波以基于来自先前滤波的图像帧的像素值对图像信号噪声进行滤波。来自先前滤波的图像帧(其可以在本文中被称为参考图像帧)的像素值可以与当前图像帧的像素值组合以获得像素值的最佳估计。例如,在当前图像帧和参考图像帧相似时,时间滤波器可以将当前图像帧中的像素值和参考图像帧中的对应像素求平均。在至少一些实施方案中,可以对各个颜色通道值执行时间滤波。例如,时间滤波器可以用参考帧中的y颜色通道值对y颜色通道值(来自ycbcr格式的图像数据)进行滤波(而不对其他通道如cb或cr进行滤波)。

可以执行其他噪声滤波,诸如空间噪声滤波。在至少一些实施方案中,可以以同时或接近同时的方式作为空间噪声滤波的一部分执行亮度锐化和色度抑制。在一些实施方案中,亮度锐化可以锐化像素数据的亮度值。在一些实施方案中,色度抑制可以将色度衰减为灰度(即无颜色)。在一些实施方案中,对于图像的不同区域,可以不同地确定噪声滤波的侵犯性。如上所述,空间噪声滤波可以被包括作为实现时间滤波的时间循环的一部分。例如,先前的图像帧可以在被存储为用于待处理的下一个图像帧的参考帧之前由时间滤波器和空间噪声滤波器处理。在其他实施方案中,空间噪声滤波可不被包括作为用于时间滤波的时间循环的一部分(例如,空间噪声滤波器可以在图像帧被存储为参考图像帧(并且因此不是空间上过滤的参考帧)之后应用于图像帧)。请注意,对于作为噪声处理级310的一部分实现的各种技术或部件,上文提供的各种示例和描述并非旨在为限制性的,而是仅作为示例提供。

在一些实施方案中,图像信号处理器106可以实现颜色处理级312。在各种实施方案中,颜色处理级312可以实现多种模块、单元或部件,以便以不同的顺序执行各种操作、功能或任务,诸如局部色调映射、增益/偏移/剪辑、颜色校正、三维颜色查找、伽马转换和颜色空间转换。在一些实施方案中,局部色调映射可以应用空间变化的局部色调曲线,以便在渲染图像时提供更多的控制。例如,色调曲线的二维网格(其可以由中央控制模块320编程)可以是双线性内插的,由此使得在图像上产生平滑变化的色调曲线。在一些实施方案中,局部色调映射可以应用空间变化和强度变化的颜色校正矩阵,其可以例如用于使图像中的高光变暗和使阴影变亮。在一些实施方案中,可以为图像数据的每个颜色通道或分量提供数字增益、偏移和剪辑。在一些实施方案中,可以实现颜色校正,从而将颜色校正变换矩阵应用于图像数据。在一些实施方案中,3d颜色查找可利用颜色分量输出值(例如,r、g、b)的三维阵列来执行高级色调映射、颜色空间转换和其他颜色变换。可以执行伽马转换,从而将输入图像帧数据值映射到输出数据值以便执行伽马校正、色调映射或直方图匹配。可以实现颜色空间转换以将图像数据从一个颜色空间转换为另一个颜色空间(例如,rgb到ycbcr)。其他处理技术也可以作为颜色处理级312的一部分来执行,以执行其他特殊图像效果,包括黑白转换、棕褐色调转换、负转换或曝光转换。

在各种实施方案中,图像信号处理器106可以实现后端输出电路,诸如输出重缩放模块314。当isp160处理图像数据时,输出重缩放模块314可以即时重采样、变换和校正失真。在一些实施方案中,输出重缩放模块314可以计算每个像素的分数输入坐标,并且使用该分数坐标来经由多相重采样滤波器内插输出像素。可以从输出坐标的多种可能的变换产生分数输入坐标,诸如对图像调整大小或裁剪(例如,经由简单的水平和垂直缩放变换)、旋转和剪切图像(例如,经由不可分离的矩阵变换)、透视翘曲(例如,经由附加的深度变换)以及以条带状分段施加的每像素透视分割以说明图像数据捕获期间(例如,由于卷帘式快门所引起的)的图像传感器中的变化的原因,以及几何失真校正(例如,经由计算距光学中心的径向距离以便索引内插的径向增益表,并且将径向扰动应用于坐标以说明径向透镜失真的原因)。输出重缩放314可以经由输出接口316将图像数据提供到系统100的各种其他部件,如上面关于图1和图2所论述的。

在一个实施方案中,图像信号处理器106可被配置为包括“省电”或“低功率”模式,其中isp流水线的多个级可临时掉电(即,进入不活动状态或被关闭),而包括至少一个图像传感器102和前端像素数据处理电路(例如,机器视觉级318)的其他级可保持通电并且处于活动状态。机器视觉级318,并且有时还有系统存储器130的程序指令136可以监视经由图像传感器接口模块从一个或多个图像传感器102接收的实时图像数据,并且响应于被检测的一个或多个关键点,检测到的关键点的数量的变化、其中检测关键点的视场的位置或区域的变化、其中检测关键点的区域附近的图像数据的变化和/或检测关键点的速率的变化来确定是否“唤醒”图像信号处理器106的其他级(即,触发其他级以通电、接通或进入活动状态)。类似地,关键点检测模块可基于检测到的关键点的处理(即,基于后处理)确定处理后的关键点对应于其中其他前端电路和后端电路应保持在低功率模式的情况。例如,如果装配有相机和isp的移动电话放在桌子上,一个或多个图像传感器可能没有记录数据(如果相机面朝下)或稳定的图像(如果相机面朝上),而电话的其他模块(诸如显示器和各种前端isp模块和后端isp模块)可暂时掉电至不活动状态。响应于在预定义时间段内缺少实时关键点检测和/或在预定义时间段内的恒定关键点数据可以检测到的该稳定状态可以被解释为“睡眠”状态。如果用户然后拿起移动电话,则一个或多个图像传感器可以突然朝向不同的场景取向,并且从而检测新的关键点数据。类似地,关键点检测模块可以基于检测到的关键点的处理来确定处理后的关键点对应于前端电路和后端电路应该进入活动状态的指示(例如,如果设备的视场之上或之内发生了有趣的一些事)。可以通过机器视觉级318检测的关键点的数量、位置和/或量度的实时变化来检测的这种突然的用户交互可以被解释为唤醒信号。因此,省电模式(即,低功率模式)使得图像信号处理器106能够通过在用户不主动处理移动设备时暂时关闭一个或多个isp流水线级,以及/或者当用户主动处理移动设备时打开非活动的isp模块和/或电话显示器来节省功率。

还要注意,在各种实施方案中,单元302至单元342的功能可以以与图3所示的图像处理流水线中的这些功能单元的顺序所暗示的顺序不同的顺序来执行,或者可以由不同于图3所示的那些的功能单元执行。此外,可以在硬件或软件的各种组合中实现图3(或随后的图4至图9)中描述的各种部件、单元、过程或其他功能。

如上所述,在各种实施方案中,不同的级可以被配置为以不同的速率处理图像数据,诸如以初始速率处理图像数据的前端流水线级330以及以降低的速率处理图像数据的后端流水线级340。在各种实施方案中,机器视觉级318可以被配置为以初始数据速率从原始处理级接收图像数据,处理图像数据并且以降低的图像速率提供输出图像数据。图4是示出根据一些实施方案的图像信号处理器400中的机器视觉级318的逻辑框图。

在各种实施方案中,前端像素数据处理电路(诸如机器视觉级318)可接收来自多个源的输入数据,包括来自一个或多个传感器接口302的原始图像数据402、经处理的图像数据(例如,红绿蓝(rgb),或来自系统存储器130的亮度蓝色色差红色色差色度(ycbcr)),或者来自后端模块340的经处理的输出数据(例如,来自流水线后端处的输出电路的y数据,或全色输出数据)。在实施方案中,多路复用器410可以被配置为接受来自多个输入源的数据,并且将数据动态地选择至耦合到预处理模块420的单个线路中,所述预处理模块420可以被配置为将来自各种像素格式的数据(例如,原始像素数据、rgb格式、ycc格式和单通道y输入数据)转换成亮度通道。在一个实施方案中,预处理模块420可执行子采样或其他功能以减小输入图像数据的大小(例如,通过合并数据)。在一个实施方案中,预处理模块420还可以包括用于亮度计算的一个或多个子模块。在一些实施方案中,预处理模块420可以对输入数据进行子采样和/或合并,并且然后经由输入通道的加权平均来计算亮度值。在实施方案中,预处理模块420可以使用查找表(lut)促进亮度图像数据的全局色调映射和/或伽马校正。预处理模块420和多路复用器410因此可以使机器视觉级318能够从多个源接收图像数据,并将图像数据下转换为一个或多个颜色通道,其中可以将特定颜色通道动态地选择或编程。预处理模块420的子模块(用于执行亮度计算和其他功能)的实施方案在图5中示出,这在下面被详细地论述。

在一个实施方案中,预处理模块(例如,预处理模块420)将输入图像数据转换为亮度图像或亮度通道。在实施方案中,计算亮度图像可以包括多个亮度通道的加权平均。在一个实施方案中,如果输入数据是ycbcr数据或y输入图像,则可以跳过通道的加权平均。在另一个实施方案中,可执行子采样以另外减小关键点检测电路的输入图像的大小。例如,如果将2048个像素宽的数据输入到预处理模块中,则预处理模块和/或子采样模块可以将数据减小到512个像素的宽度,以用于由关键点检测电路进行有效处理。

在各种实施方案中,后端缩放器模块(诸如输出重缩放314)可以以相同或不同的速率提供图像数据的一个或多个输出。例如,在一些实施方案中,后端340可以提供图像数据,所述图像数据在全色域中并且以降低的速率缩放到其他图像信号处理器流水线级以用于另外的处理。在一些实施方案中,全色缩放图像单通道输出数据434可以另外地(或另选地)被写入到系统存储器130以被存储用于未来的处理或显示。在实施方案中,由机器视觉级318接受的单通道颜色数据的类型可以是动态可调整的(即可编程的)。在一个实施方案中,机器视觉级318的前端中的模块(诸如多路复用器410和预处理模块420)可以以初始速率处理数据,而朝向机器视觉级318的后端的模块(诸如关键点检测电路430)可以以降低的速率处理图像数据,从而节省图像信号处理器系统中的带宽。多路复用器410和预处理模块420因此可以提供预先数据窜改,所述预先数据窜改使机器视觉级318能够接受来自多个输入源(例如,一个或多个图像传感器、存储器、一个或多个后端流水线级或者一个或多个前端流水线级)的输入数据,以供关键点检测电路430处理。在实施方案中,关键点检测电路430因此可以是机器视觉级318的子模块,其能够对来自一个或多个图像传感器接口302的原始数据(例如,尚未处理或以其他方式写入到存储器的像素数据)进行操作,同时还被配置为选择性地对来自isp106中的存储器和/或其他源的经处理的数据进行操作。

在一个实施方案中,机器视觉级318和/或关键点检测电路430可以包括一个或多个空间滤波器模块(有时被称为“盒式滤波器”),其被配置为针对图像的有效区域中的相应像素计算海森矩阵值的高斯导数的近似值(为了效率)。在实施方案中,关键点检测电路430可以使用多个空间滤波器(例如,三个9×9空间滤波器)来获得对海森矩阵的元素的近似,其中滤波器输出值可以是dxx、dyy和dxy。在各种实施方案中,盒式滤波器输出数据可被存储在关键点检测电路430的本地存储器中(或被存储在系统存储器130中),以及/或者被包括在由关键点检测电路430使用以处理输入图像帧数据的可调整的响应映射中。关键点检测电路430然后可确定响应是否是局部最大值以及相应的局部最大值是否高于可控制的关键点灵敏度阈值。

在实施方案中,关键点检测电路430可以实现关键点检测操作以识别图像数据中的一个或多个兴趣点(有时被称为关键点)。在一个实施方案中,关键点检测电路430可以是基于硬件的并且可以被配置为输出输入图像的每区域的多个关键点(例如,通过输出与图像的区域对应的网格的相应区域中的多个关键点)。在实施方案中,关键点检测电路430可以可选择地在用于亮度计算的图像数据的一个通道(例如,动态编程的单个通道)上进行操作。例如,关键点检测电路430可以针对rgb数据的输入信号在r通道/g通道或b通道上进行操作。类似地,关键点检测电路430可以针对ycbcr数据的输入信号在y通道上进行操作。

在一个实施方案中,关键点检测电路可以从关键点控制参数存储结构440接收一个或多个可编程控制值。在实施方案中,关键点控制参数存储结构440可以包括固件和/或一个或多个寄存器,其被配置用于存储关键点检测控制值,诸如多个关键点灵敏度阈值、对应于网格的可编程块大小的值等等,所述网格对应于输入图像。在一些实施方案中,cpu108可以被配置为响应于来自关键点检测电路430的输出和/或程序指令136来调整控制参数存储结构440的一个或多个设置。类似地,cpu108可以被配置为基于来自isp级中的一个或多个的输出在图像处理流水线的各个级(包括但不限于机器视觉级318)控制或以其他方式调整isp106的不同模块的设置。在一个实施方案中,关键点检测电路430可以被配置为从程序指令136和/或控制参数存储结构440接收一个或多个命令。例如,关键点检测电路430可以输出/报告图像的每个网格区域检测到的关键点的数量,并且程序指令136可以基于来自硬件模块的报告的关键点的数量来设置和/或调整图像的一个或多个区域的动态可调整的关键点检测阈值。在实施方案中,程序指令136和/或控制参数存储结构440可以基于被划分成网格的图像的一个或多个区域的一个或多个响应映射值(诸如关键点和/或关键点量度分数的描述)提供关键点灵敏度阈值的可编程偏移。机器视觉级318的关键点灵敏度阈值因此可以基于一个或多个因素(诸如图像的相应区域的相对亮度、暗度或一个或多个特征形状类型)而在图像的每个区域可调整。在各种实施方案中,来自关键点检测电路430的输出数据可以存储在系统存储器130中,存储在系统存储器130内的不同位置中,以及/或者被直接报告给图像信号处理器106的流水线的其他级。

在另一个实施方案中,机器视觉级318可以被配置(例如,基于控制参数存储结构440的设置)为包括具有图像的每区域的可允许关键点(例如,每块一个关键点)的可编程最大极限(即,数量)的输出模式,由此通过防止针对图像的区域输出过多数量的关键点来改进关键点输出数据的空间一致性。图8、图9a和图9b中示出了这种实施方案,这将在下面被另外详细地论述。例如,在图像网格的每区域的单个最大关键点的实施方案中,机器视觉级318、关键点检测电路430和/或程序指令136可以被配置为仅输出具有高于可调整的关键点灵敏度阈值的最高强度分数的单个关键点(例如,超过可调整的关键点灵敏度阈值的当前设置的最高响应量度值)。如果关键点检测电路430没有在图像的区域中检测到任何关键点,以及/或者如果图像的区域不包括具有超过可调整的关键点灵敏度阈值的当前设置的强度分数的任何关键点,则关键点检测电路430可以输出对应于图像的该特定区域的零关键点。

在一个实施方案中,后端模块340可以对全色域中的转换的图像数据执行各种缩放、重采样或其他图像数据操作。在至少一些实施方案中,后端模块340可以以提供不同类型的缩放、重采样或以其他方式修改的图像数据输出的多种模式操作。例如,后端模块340可以提供校正或抑制图像数据中的伪影的模式(例如,诸如抑制色度混叠伪像以去除可由去马赛克单元引入的亮度边缘附近的混叠伪像,或者去除由去马赛克单元引入的点伪影),而不缩放图像数据。在一些实施方案中,用于后端模块340的另一种模式可以执行图像缩小和重采样(除了校正或抑制图像数据中的伪影之外或代替校正或抑制图像数据中的伪影)。

请注意,图4仅作为机器视觉级318的示例提供。所示部件(以及未示出的部件)的不同组合可以用于执行从原始图像数据到全色域或缩放图像数据的转换。因此,图4的部件以及它们各自的布局或排序不意图限制于可由机器视觉级318使用的各种其他组合。

图5是示出根据一些实施方案的图像信号处理器中的预处理模块420的逻辑框图。在一个实施方案中,预处理模块420可以包括被配置为接收多种类型的数据诸如原始/rgb/ycc/y数据505的子样本/合并模块510。针对原始/rgb/ycc/y数据505所示的单个箭头因此可以部分地基于由包括复用器410的其他模块提供的输入在不同时间对应于不同类型的数据。在各种实施方案中,原始数据可以包括直接来自一个或多个图像传感器接口(例如,一个或多个图像传感器102的接口)的拜耳原始图像数据、来自系统存储器130的拜耳原始图像数据、数字负(dng)原始格式的图像数据,或者对应于其他颜色滤波器类型的原始图像数据。在一个实施方案中,由子样本/合并模块510执行的处理可以取决于在原始/rgb/ycc/y数据505中接收的像素数据的格式。例如,如果原始/rgb/ycc/y数据505对应于拜耳原始图像数据,则子样本/合并模块510可以用2倍因子水平地以及用2倍因子垂直地对输入像素数据进行子采样。拜耳原始处理步骤因此可以被配置为针对从图像传感器接口接收的输入像素数据每时钟周期处理2个像素。在实施方案中,如果原始/rgb/ycc/y数据505对应于单个亮度通道或ycc图像,则可以绕过(即,跳过)或任选地执行子采样或合并的步骤。

在一个实施方案中,子样本/合并模块510可以生成输出数据诸如rgb/ycc/y数据515,并且将输出数据提供到亮度计算模块520。在实施方案中,亮度计算模块520可以被配置为执行基于颜色滤波的图像数据的多个通道的加权平均。例如,亮度计算模块520可以计算拜耳图像数据的三个通道(即,r、g和b通道数据)的加权平均,以便计算亮度图像。在一个实施方案中,如果rgb/ycc/y数据515对应于ycc或y输入图像帧数据,则可以绕过(即,跳过)亮度图像计算步骤。换句话说,亮度图像计算步骤可以是可编程的并且可以为对应于亮度通道格式的输入数据被绕过。因此,图5中所示的实施方案仅是预处理模块420的一个可能的示例。

在实施方案中,亮度计算模块520可以将输出数据(诸如16位格式的y数据525)提供到第二子采样模块530,所述第二子采样模块530可以被配置为任选地另外减小输入图像帧数据的大小。在各种实施方案中,基于从可编程控制寄存器、系统存储器130或中央控制器320接收的控制值,子采样模块530可以对y数据525的每1、2、4或8个像素水平地或垂直地进行采样。子采样模块530然后可以将16位格式的y数据535提供到查找表540,以进行另外的处理以及到8位数据的转换。

在一个实施方案中,预处理模块420可以包括查找表540,所述查找表540可以被配置为对亮度图像数据(诸如y数据535)执行全局色调映射和/或伽马校正的功能。在各种实施方案中,可以在硬件、固件或软件中实现查找表540,以及/或者可以在系统存储器130中存储查找表540的元素。在实施方案中,查找表540可以包括具有65个8位值条目的一维(1d)查找表,所述8位值条目表示相应输入级别的输出级别,从而使得查找表540能够在伽马校正期间线性内插输出值。查找表540可因此生成输出数据,诸如ygam数据545。在各种实施方案中,可以绕过伽马校正步骤,在这种情况下,输入数据(例如,y数据535)的8个最高有效位(msb)可以作为8位输出数据被复制到ygam数据545,以供关键点检测电路430另外处理。在一些实施方案中,查找表540可因此被配置为接收16位输入数据并提供8位输出数据以供关键点检测电路430另外处理。

在一个实施方案中,关键点可以包括超过可调整的关键点灵敏度阈值的局部最大量度(即,强度)值。在实施方案中,关键点检测电路可以识别有助于将第一图像中的对象识别和/或匹配到包括相同对象的后续图像的图像内的感兴趣的一个或多个位置(例如,角落或交叉点)。在一个实施方案中,关键点检测操作可以包括计算对空间滤波器的响应以获得海森矩阵的元素的近似(例如,dxx、dyy、dxy值),作为响应度量计算对海森矩阵在一个或多个像素处的行列式的近似,确定每个相应的局部最大量度是否高于可调整的关键点灵敏度阈值,确定响应是否确实是局部最大值,并与存储器模块(例如,经由直接存储器存取(dma)模块)通信以便将关键点输出数据存储在存储器中。在各种实施方案中,关键点输出数据可以包括关键点的描述、关键点的笛卡尔坐标(x,y)、超出可调整的关键点灵敏度阈值的每个相应的局部最大量度(即,强度)值的响应量度(即,强度)、关键点的符号位值(即,极性)和/或一个或多个图像边缘分数(例如,水平/垂直边缘数据)的描述。在实施方案中,符号位(极性)值可以包括被配置为使得关键点检测电路430能够检测输入图像帧的像素数据中的光到暗和/或暗到光的转变的数据。在一个实施方案中,机器视觉级318和/或关键点检测电路430可以是可编程的,以被选择性地配置为检测关键点像素位置、水平边缘数据和/或垂直边缘数据。

图1至图5提供可以在图像处理流水线中实现图像数据中的关键点的检测的图像处理流水线、图像信号处理器和系统的示例。然而,实现图像处理流水线和图像信号处理器的许多其他类型或配置的系统或设备可以对图像数据执行多速率处理。图6是示出根据一些实施方案的用于检测图像数据中的关键点的各种方法和技术的高级流程图。上面描述的各种部件可以实现这些技术(除了下面关于图7、图8和图9a至图9b所描述的那些技术之外)以及各种其他图像处理流水线和图像信号处理器。

如610所指示,图像传感器接口(例如,一个或多个传感器接口302)可以从图像传感器(例如一个或多个图像传感器102)接收原始像素数据。如框620所示,前端像素数据处理电路(诸如原始处理级306)可以接收图像传感器像素数据格式的图像帧的像素数据。如框630所示,前端像素数据处理电路可将图像传感器像素数据格式的像素数据转换为不同颜色空间格式。

如框640所指示,后端像素数据处理电路(诸如噪声处理级310或颜色处理级312)可对来自前端像素数据处理电路的像素数据执行一个或多个噪声滤波或颜色处理操作。如框650所示,输出电路(诸如输出重缩放314)可从后端像素数据处理电路接收像素数据,并将图像帧的像素数据输出到系统存储器,诸如系统存储器130。

如框660所指示,关键点检测电路(诸如关键点检测电路430或机器视觉级318)可以从一个或多个传感器接口302接收图像传感器像素数据格式的像素数据,或者在由前端像素数据处理电路或后端像素数据处理电路处理之后接收像素数据。在实施方案中,多路复用器模块(例如,多路复用器410)可以从多个输入中的一个接收输入图像数据。多个输入可以包括来自图像传感器模块(例如,一个或多个传感器接口302)的原始像素数据、来自存储器模块(例如,系统存储器130)的图像数据、来自后端输出电路(例如,输出重缩放314或后端模块340)的单通道和/或全色输出数据,或者来自isp106的一个或多个前端流水线级和/或后端流水线级的颜色空间格式数据。在实施方案中,可以在图像信号处理器(isp)处接收从图像传感器收集的原始像素数据流。原始像素数据可以在图像传感器处被收集时以流方式捕获和处理。在一个实施方案中,如以上所论述,原始图像像素数据可以被格式化,由此使得多个颜色分量或通道不被包括用于单个像素。原始图像数据的示例是拜耳图像格式(其可以有许多变型),其包括用于收集取决于图像传感器的配置的不同颜色、绿色、红色和蓝色的光的不同行的像素值。在一些实施方案中,可以收集这些像素值(例如,绿色值、红色值或蓝色值)并以光栅顺序将其提供到图像信号处理器。

如框670所指示,关键点检测电路可对接收的像素数据执行关键点检测操作以检测图像帧中的一个或多个关键点。如框680所示,关键点检测电路可向系统存储器输出一个或多个关键点的描述。

在一个实施方案中,图像可以被划分成具有多个区域的网格(例如,在下面论述的图7的图像帧700),由此使得网格的每个相应块可以具有基于可调整的关键点灵敏度阈值的一个或多个关键点。硬件模块(诸如关键点检测电路430或机器视觉级318)可以被配置为检测关键点并与存储在存储器模块中的软件(例如,程序指令136)接合,以便调整关键点灵敏度阈值。例如,可以通过提高关键点灵敏度阈值来降低噪声灵敏度,从而防止仅由于图像噪声被无意识地识别为关键点而引起的响应值的局部最大值。在一个实施方案中,图像的相应区域可以具有由软件应用程序设置的不同关键点灵敏度阈值。因此,软件应用程序可以响应于由硬件模块(例如,机器视觉级318)在图像的不同区域中检测的关键点的数量和/或强度来动态地调整图像的各个区域的一个或多个关键点灵敏度阈值。

在一些实施方案中,处理的图像数据(诸如来自关键点检测电路430的关键点输出数据)以及来自图像信号处理器的一个或多个流水线级中的一些或全部的图像数据可以被保存到存储器模块(例如,系统存储器130)。例如,如果控制单元或其他可编程部件指引isp将处理的图像数据和关键点存储到存储器,则可将关键点输出数据保存到存储器。以这种方式,其他部件(诸如cpu或gpu)可以通过存取存储器对原始图像和关键点数据执行图像处理。另选地,可以从存储器取回图像数据,并通过各种isp元件继续处理。

如640所指示,关键点检测电路将关键点输出数据写入存储器模块(例如,系统存储器130)。在一个实施方案中,各种类型的关键点输出数据可以包括关键点的描述、关键点的坐标(例如,图像内的关键点的x、y坐标)、关键点的响应量度(例如,超过可调整的关键点灵敏度阈值的强度评分值)以及关键点的符号位值(例如,识别中心是明亮还是黑暗的极性值)。

图7是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧700的逻辑框图。在实施方案中,图像帧700可以对应于被划分成多个区域、块或网格的图像。在一个实施方案中,图像帧700可以被配置为包括多个块702a至702n,其中每个块对应于输入图像帧的区域。在一个实施方案中,图像帧700可以对应于具有总共25个块的5×5表,然而在各种实施方案中可以使用任何数量的块。块702a至702n中的每个可以与存储在存储器模块中的一个或多个数据值相关联。对应于相应块(以及因此对应于输入图像帧的相应区域)的数据值可以包括可调整的关键点灵敏度阈值和在图像的相应区域内检测到的一个或多个关键点输出值的数据。在一些实施方案中,如果机器视觉级318和/或关键点检测电路430没有检测到图像的对应区域中的任何关键点,以及/或者如果该区域中的一个或多个关键点没有超过可调整的关键点灵敏度阈值,则一个或多个块可不包括关键点数据(即,用于该特定块的零关键点)。相反,在一些实施方案中,如果机器视觉级318和/或关键点检测电路430检测到高于图像的对应区域内的可调整的关键点灵敏度阈值的多个关键点,则块可以包括多个关键点值。在一个实施方案中,块702a至702n中的每个可以基于图像的对应区域的属性与不同且独立可调整的关键点灵敏度阈值相关联。在另一个实施方案中,存储在关键点检测电路430中或存储在存储器(例如,系统存储器130)中的寄存器值可以使中央控制320、机器视觉级318、关键点检测电路430和/或程序指令136能够动态地调整每块允许的关键点的最大极限、每网格线允许的关键点的最大数量,以及/或者被允许由机器视觉级318和/或关键点检测电路430基于每图像写出的关键点的最大数量。例如,被配置为对应于每块或每网格线的关键点的最大数量的寄存器值可以确保安全的存储器操作,并从而当系统(或存储器存取)带宽达到高水平时防止isp106停滞。类似地,控制每图像的关键点的最大可允许数量可以使得isp106能够节省处理时间,并从而节省功率。

图8是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧800的逻辑框图。在实施方案中,图像帧800可以被配置为包括多个块802a至802z的网格,其中每个块对应于输入图像帧的区域。在一个实施方案中,图8可以对应于削减的网格系统,其中图像帧800可以被配置为由此使得块802a至802z中的每个可以包括关键点值的可编程最大极限(例如,相对于在对应于相应块的区域中其他检测到的关键点具有最大强度值的单个关键点)。例如,如果10是每块的最大数量,并且在所述块中找到10个或更多个关键点,则将输出具有最高响应值的10。在实施方案中,图像帧800还可以被配置为由此使得一个或多个阈值区域804a至804n可以以使得阈值区域804a至804n中的每个能够包括块804a至804z中的多个的布置与块802a至802z重叠。在此实施方案中,阈值区域804a至804n可以比块802a至802z更大(就图像像素而言),并且每个阈值区域因此可以包括块的子集或者组,其中每个块可以包括对应于至多一个(最大)关键点的数据,并且其中基于该相应阈值区域的特定动态可调整的关键点灵敏度阈值通过关键点检测电路430各自计算阈值区域中的块的相应子集的关键点。因此,图8中所示的实施方案使得机器视觉级318和/或关键点检测电路430能够相对于输入图像帧的像素利用关键点的更细粒度布置,同时保持用于可调整的关键点灵敏度阈值的基于区域的模型(即,具有可在精细级别编程的密度(其与可在更宽级别编程的关键点灵敏度阈值组合)的关键点检测方案)。

在一个实施方案中,图像帧800可以被配置为相对于图7中描绘的示例图像帧具有更多的块(并且因此具有提高的关键点的均匀性和/或更高的分辨率)。然而,如以上指出,在各种实施方案中可使用任何数量的块。块802a至802z中的每个可以与一个或多个数据值相关联,诸如局部关键点灵敏度阈值以及对应于块的一个或多个描述性关键点值。在实施方案中,块802a至802z可以与独立可调整的关键点灵敏度阈值804a至804n相关联。关键点检测模块430和/或程序指令136可基于在对应于关键点灵敏度阈值804a至804n中的每个的图像帧的相应区域中的块802a至802z中的一个或多个中检测到的关键点的计数来设置关键点灵敏度阈值804a至804n的级别。在实施方案中,对应于关键点灵敏度阈值804a至804n的图像帧的区域可以相对大于块802a至802z的大小,由此使得块802a至802z可以对应于更精细的网格,以实现检测到的关键点值的提高的均匀性。

在图8的实施方案中,图像帧800可以被配置为每块至多存储一个关键点。在各种实施方案中,图像帧可以被配置为包括每块允许的可编程的最大数量的关键点。在一些实施方案中,关键点的可编程最大数量可以被设置为对于网格中的所有块相同(即,整个网格的统一最大极限),而在其他实施方案中,网格的每块可以包括不同可编程最大数量的关键点(即,网格中各个块的独立可编程极限)。在所有情况下,该块中最高得分的关键点是保存的关键点。在实施方案中,削减每块找到的关键点的数量(例如,削减到每块最多1个关键点)可以帮助强化图像的关键点数据的提高的空间均匀性。

在此实施方案中,有时被称为“削减的网格”,对应于相应块(即,输入图像帧的相应区域)的数据值因此可以包括可调整的关键点灵敏度阈值,以及对应于在图像的每个相应区域内检测到一个关键点输出值的最大值的数据。在一些实施方案中,尽管可通过机器视觉级318和/或关键点检测电路430实施每块最多一个关键点,但是如果关键点检测电路430未检测到图像的对应区域中的任何关键点,以及/或者如果该区域中的一个或多个关键点没有超过可调整的关键点灵敏度阈值,则一个或多个块可仍然不包括任何关键点数据(即,可以针对特定块报告零关键点)。对于其中实施每块一个关键点值的最大极限的实施方案,机器视觉级318和/或关键点检测电路430可以检测在对应于单个块的图像的区域内高于可调整的关键点灵敏度阈值的多个关键点,并且通过将相对于在该块中检测到的其他关键点具有最高量度值的关键点值选择为针对该块报告的单个关键点来解决冲突。在一个实施方案中,如果在对应于块的区域中检测到多个关键点,并且多个关键点中的两个或更多个共享该特定块的相同的最高响应量度值(即,如果块中的两个或更多个关键点具有同样高的量度值),则机器视觉级318和/或关键点检测电路430可以基于光栅顺序将针对该特定块首先找到的关键点选择为针对该块报告的单个关键点。换句话说,如果块中的两个或更多个关键点具有超过关键点灵敏度阈值的匹配的高量度值,则连结中断器可以是其中检测关键点的光栅顺序。

在一个实施方案中,削减的网格系统可以包括对应于输入图像帧的区域的各个块的一个关键点的最大极限,并且块的网格可以由存储在控制参数存储结构440中、存储在关键点检测电路430的固件中或存储在存储器(例如,系统存储器130)中的寄存器值指定。例如,控制参数存储结构440的削减网格使能寄存器可以包括布尔值,所述布尔值启用或禁用被配置为从通用光栅顺序(例如,网格宽的光栅输出,如果削减网格使能寄存器包括“假”值)将关键点输出顺序改变为关键点输出模式,其中在相应块内以光栅方式输出关键点(例如,块聚焦的光栅输出,如果削减网格使能寄存器包括“真”值)。一个或多个寄存器值可以指定块的大小,如以像素进行测量。类似地,一个或多个寄存器值可以指定可对应于输入图像帧的区域的水平和/或垂直维度中的块的数量。

图9a是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧900a的逻辑框图。在一个实施方案中,图像帧900a可以被配置为对应于削减的网格系统(例如,以类似于图8的实施方案的方式)。在实施方案中,图像帧900a可以包括一个或多个阈值区域902a至902n,所述阈值区域902a至902n中的每个可以包括对应于输入图像帧的像素组的多个块的子集。在各种实施方案中,阈值区域902a至902n可每个对应于独立动态可调整的关键点灵敏度阈值,从而使得机器视觉级318和/或关键点检测电路430能够响应于实时因素通过图像的区域选择性地调整关键点灵敏度阈值,所述实时因素诸如在阈值区域的一个或多个块中检测到的关键点的数量、在阈值区域的一个或多个块中检测到的关键点的量度(或强度)、在阈值区域中检测到的关键点的符号位(即极性)值,或者对应于在阈值区域中检测到的关键点的其他描述性数据。注意,图9a和图9b中描绘的各种示例关键点的大小和配置旨在作为用于说明目的的关键点强度的指示,并且不表示实际的目的。

在实施方案中,机器视觉级318和/或关键点检测电路430可以检测对应于输入图像帧的区域的一个或多个块中的关键点。类似地,可以在对应于其他块的像素数据中检测到零关键点。对应于检测到的关键点的一个或多个属性(例如,关键点的描述性信息、位置/坐标信息、量度/强度信息和/或符号/极性信息)的数据可以被存储在控制参数存储结构440中以供机器视觉级318和/或关键点检测电路430另外处理。例如,图像帧900a的各种块可以包括高于阈值的关键点值904a至904n,所述关键点值904a至904n对应于具有超过阈值区域902a至902n中的相应一个的动态可调整的关键点灵敏度阈值的当前值的量度值的检测到的关键点。相反,图像帧的各个块可以包括低于阈值的关键点值906a至906n,所述低于阈值的关键点值906a至906n对应于具有低于阈值区域902a至902n中的相应一个的动态可调整的关键点灵敏度阈值的当前值的量度值的检测到的关键点。

对于在图像帧900a的相同块中检测到多个关键点的情况,块可以包括量度(或强度)超过在图像帧900a的相应块中的其他检测到的关键点的量度的最大量度关键点值,诸如最大量度关键点值908a至908n中的一个。在实施方案中,关键点检测电路430可以选择性地报告块的仅最大量度关键点值,如图9b所描绘的,这将在下面另外详细地论述。返回到图9a,在一个实施方案中,图像帧900a可以包括一个或多个块,所述一个或多个块具有带类似量度值的多个检测到的关键点,诸如类似量度关键点910a和910b。在此实施方案中,关键点检测电路430可以基于该块的像素的光栅顺序,选择性地报告仅在该块中首先检测到的同值关键点。例如,关键点检测电路430可以报告类似量度关键点910a,并选择不报告类似量度关键点910b,如图9b所描绘的,这在下面论述。

注意,在各种实施方案中,图像帧900a的一个或多个块可以包括不同类型的检测到的关键点、单个类型的检测到的关键点或零个检测到的关键点的组合。因此,图9a的示例不意图为限制性的。

图9b是示出根据一些实施方案的用于检测图像数据中的关键点的示例图像帧900b的逻辑框图。在一个实施方案中,图9b可对应于图9a的图像帧900a的输出(即经处理)版本。例如,高于阈值的关键点值904a至904n保持在其中检测到高于阈值的关键点值904a至904n的相应块中,所述高于阈值的关键点值904a至904n对应于具有超过阈值区域902a至902n中的相应一个的动态可调整的关键点灵敏度阈值的当前值的量度值的检测到的关键点。

关键点检测电路430因此可以已经被选择为响应于确定高于阈值的关键点值904a至904n是在超过关键点灵敏度阈值的其相应块中的检测到的关键点并且也比在相应块中可能已经检测到的其他关键点更强,将高于阈值的关键点值904a至904n报告为输出数据。相反,图9a的低于阈值的关键点值906a至906n在关键点检测电路430的处理期间已经被去除(即,未被选择和/或以其他方式被滤除)。低于阈值的关键点值906a至906n因此在图9b所描绘的输出数据中未被报告。

在实施方案中,关键点检测电路430可以针对它们相应的块选择性地报告输出数据中的最大量度关键点值908a至908n,同时去除(即,不选择或以其他方式滤除)一个或多个相应块中的一个或多个其他关键点,其量度值小于最大量度关键点值908a至908n的那些量度值。因此,最大量度关键点值908a至908n保持(即,被报告)在图9b所描绘的输出数据中。在一个实施方案中,关键点检测电路430可以选择性地报告类似量度关键点910a,而不是在相应块中具有类似量度/强度值的一个或多个其他关键点。类似量度关键点910a因此保持(即,被报告)在图9b所描绘的输出数据中,同时在处理期间已经去除(即,未报告或以其他方式滤除)类似量度关键点910b。图9b所示的视图可以表示基于削减的网格模型具有提高的均匀性的关键点输出数据的版本,这是因为在处理期间已经去除低量度关键点(例如,图像噪声数据或其他杂波)。

在一些实施方案中,软件(诸如存储在系统存储器130中的程序指令136)可以执行上面关于图4至图9描述的各种功能。例如,在一个实施方案中,程序指令136可动态地促进对输入图像帧的一个或多个区域的控制参数存储结构440的值和/或关键点灵敏度阈值的调整。在一个实施方案中,程序指令136和/或关键点检测电路430可以监视输入图像的每网格、每块或每区域的多个检测到的关键点,并且利用每网格、每块或每区域的关键点的计数作为当确定是否调整(和调整多少)对应网格、块或区域的动态可调整的关键点灵敏度阈值时的因素。

具有动态可调整的关键点灵敏度阈值并被配置为从多个源和/或图像信号处理流水线的不同级接收输入数据的关键点检测系统因此可以有效地实现计算密集的关键点计算。此系统可用于多个应用,包括对象识别、对象跟踪、图像稳定、全景拼接、来自多个图像捕获的高动态范围(hdr)以及其他应用。例如,具有动态可调整的关键点灵敏度阈值的关键点检测电路可以使机器视觉级能够检测和识别一系列图像中的对象,而与图像属性,诸如噪声、缩放或亮度的变化无关。

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