基于事件的计算机视觉计算的制作方法

文档序号:12071279阅读:294来源:国知局
基于事件的计算机视觉计算的制作方法与工艺

本发明大体上涉及启用计算机视觉,且更确切地说,涉及使用计算机视觉改善检测特征的效率。



背景技术:

计算机视觉是包含获取、处理、分析和理解图像以用于各应用中的方法的领域。传统地,耦合到传感器的处理器从传感器获取图像数据,并对从传感器接收的信息执行某些计算机视觉(CV)运算以用于检测CV特征且因此检测与那些特征相关联的对象。特征可以包括边缘、拐角等。这些CV特征可用于确定宏观特征,例如人脸、笑容及手势。执行于处理器上的程序可在例如平面检测、人脸检测、笑容检测、手势检测等多种应用中使用所检测的特征。

近年来已付出许多努力以使得计算装置能够检测在计算装置的视野中的特征和对象。计算装置(例如移动装置)经设计对由移动装置使用的处理资源量和功率量以及热消散具有灵敏性。然而,传统地,在计算装置的视野中使用相机检测特征及对象要求大量处理资源,从而在例如移动装置的计算装置中带来较高功率消耗及较低电池寿命。

附图说明

通过实例来说明本发明的方面。参考图式提供以下描述,其中相同参考标号始终用于指代相同元件。尽管本文中描述一或多种技术的各种细节,但其它技术也是可能的。在一些情况下,以方块图形式示出的众所周知的结构和装置以便有助于描述各种技术。

可参考说明书和图式的其余部分来实现对由本发明提供的实例的本质和优点的进一步理解,其中贯穿若干图式使用相同参考标号来指代类似组件。在一些情况下,子标记与参考标号相关联以表示多个类似组件中的一者。当在没有说明存在的子标记的情况下对参考标号进行参考时,参考标号是指全部此类类似组件。

图1说明包括布置成2维阵列的多个传感器元件的实例传感器。

图2说明包括传感器元件及像素内电路的实例像素。

图3说明耦合到外围电路的实例传感器元件阵列。

图4说明耦合到专用计算机视觉(CV)处理模块的实例传感器元件阵列。

图5说明使用基于事件的相机的视觉传感器的实例实施方案。

图6说明视觉传感器的实例像素。

图7说明用于计算CV特征的感测设备的实例方块图。

图8是根据本发明的某些方面的实例流程图。

图9说明在事件检测模块与图7中的CV模块之间传输的实例信息。

图10说明用于执行本发明的方面的实例像素。

图11说明用于执行本发明的方面的实例传感器设备。

图12说明用于执行本发明的方面的另一实例传感器设备。

图13说明用于执行CV运算的感测设备的另一实例方块图。

图14是根据本发明的某些方面的实例流程图。

图15说明根据本发明的某些方面的用于传感器的电路和模块的实例实施方案。

图16A提供可用于本发明的方面中的SRAM单元的实例实施方案。

图16B提供可用于本发明的方面中的比较器的实例实施方案。

图17说明用于执行本发明的某些方面的传感器设备的另一实例实施方案。

图18说明用于执行本发明的某些方面的传感器设备的另一实例实施方案。

图19说明其中可实施一或多个实施例的计算系统的实例。



技术实现要素:

本发明大体上涉及启用计算机视觉,且更确切地说,涉及使用计算机视觉改善检测特征的效率。

在一方面中,提供技术以用于基于检测例如边缘、拐角等的计算机视觉(CV)特征的变化来触发事件,方法是基于传感器读数产生计算出的结果。在另一方面中,还提供技术以用于当基于传感器元件的传感器读数中的变化检测到事件时检测CV特征。在某些方面中,事件检测逻辑和特征计算CV运算可以在传感器上的电路中或在计算装置上的软件/固件中单独地或组合地执行。

实例视觉传感器可以包含传感器元件阵列,所述传感器元件阵列包括多个传感器元件,所述多个传感器元件至少沿着传感器元件阵列的第一维度和第二维度布置,所述多个传感器元件中的每一个能够基于入射到传感器元件上的光产生传感器读数。此外,视觉传感器可以包含专用计算机视觉(CV)计算硬件,所述计算硬件经配置以至少基于主体传感器元件和主体传感器元件的相邻传感器元件的传感器读数计算主体传感器元件的局部CV特征,并且基于主体传感器元件的计算出的CV特征与先前计算出的CV特征的变化产生事件,所述事件包括涉及与计算出的CV特征的变化相关联的主体传感器元件的位置的信息。

在本发明某些方面中,专用CV计算硬件可实施为专用CV处理模块、像素内电路或外围电路。像素可以包含传感器元件和像素内电路。在一些情况下,在专用CV计算硬件处所产生的事件可以被发送到应用程序处理器。计算局部CV特征可以包含产生局部二值模式(LBP)标记、LBP标记的变体,或带正负号梯度直方图(HSG)标记。在一些情况下,传感器元件阵列的传感器元件可以包含至少一个光电二极管。在本发明的一些方面中,可以使用动态视觉传感器(DVS)电路产生事件。

本发明的方面进一步公开方法和设备,所述设备包括用于执行上文所公开的且本发明通篇所公开的方面的装置。本发明的方面进一步公开非暂时性计算机可读储存媒体,其中所述非暂时性计算机可读储存媒体可以包含通过专用计算机视觉微处理器可执行的指令以用于执行本发明上文所论述且在本说明书通篇中的方面。

前文已经相当广泛地概述了实例的特征和技术优点,以便使以下的具体实施方式可以得到更好理解。将在下文中描述另外的特征及优点。所公开的概念和具体实例可以容易地用作修改或设计用于实施本发明的相同目的的其它结构的基础。此类等效构造并不脱离所附权利要求书的精神和范围。当结合附图考虑时,关于本发明的组织和操作方法的被认为是本文中所公开的概念的特性的特征与相关联的优点一起将从以下描述得到更好理解。图式中的每一者都仅出于说明和描述的目的提供且并不提供为对权利要求书的限制的界定。

具体实施方式

现将关于形成说明性实施例的一部分的附图来描述若干说明性实施例。虽然下文描述其中可实施本发明的一或多个方面的特定实施例,但可使用其它实施例,且可在不脱离本发明的范围或所附权利要求书的精神的情况下进行各种修改。

传感器可包含多个传感器元件的传感器元件阵列。传感器元件阵列可为包含以传感器元件阵列的两个维度(例如列和行)布置的传感器元件的2维阵列。传感器元件中的每一个可能能够基于环境条件产生传感器读数。在某些实施方案中,传感器可为视觉传感器且可基于入射到传感器元件上的光产生传感器读数。图1说明包括布置成2维阵列的多个传感器元件的实例传感器100。图1中,传感器100的说明表示传感器元件阵列中的64(8×8)个传感器元件。在各种实施方案中,在不脱离本发明的范围的情况下,传感器元件的形状、传感器元件的数目及传感器元件之间的间隔可极大地变化。传感器元件102表示来自64个传感器元件的网格的实例传感器元件。

在某些实施方案中,传感器元件可具有实施为耦合到传感器元件的像素内电路(计算结构)的专用计算机视觉(CV)计算硬件。在一些实施方案中,传感器元件及像素内电路一起可被称为像素。由耦合到传感器元件的像素内电路执行的处理可被称为像素内处理。在一些情况下,传感器元件阵列可被称为像素阵列,差异在于像素阵列包含传感器元件及与每一传感器元件相关联的像素内电路两者。图2说明具有传感器元件202和像素内电路204的实例像素200。在某些实施方案中,像素内电路204可以为模拟电路、数字电路或其任何组合。

在某些实施方案中,传感器元件阵列可具有实施为耦合到一组传感器元件的外围电路(计算结构)的专用CV计算硬件。此外围电路可被称为芯片上传感器电路。图3说明耦合到传感器元件阵列302的实例外围电路(304及306)。

此外,如图4中所示,在某些实施方案中,传感器元件阵列可具有专用CV计算硬件,所述专用CV计算硬件实施为耦合到传感器元件阵列402的专用CV处理模块404并且使用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、嵌入型微处理器或任何类似模拟或数字计算逻辑来实施以用于执行本发明的方面。在某些实施方案中,实施为专用CV处理模块404的专用CV计算硬件可经配置以执行存储在非暂时性计算机媒体装置上的指令以用于计算CV特征。

应注意,至少在某些实施方案中,专用CV处理模块404是除了应用程序处理器406之外的,而不是替代应用程序处理器406。举例来说,专用CV处理模块404可以处理和/或检测CV特征。然而应用程序处理器406可以针对先前所存储的图像或参考指示接收这些所检测到的CV特征和图案匹配的指示以确定宏观特征,例如微笑、面部、对象等。此外,应用程序处理器406可以为相对地很大程度上更加复杂的、计算密集型的、功率密集型的、以及负责执行系统层级运算(例如操作系统)、实施用户接口以用于与用户交互、执行装置的功率管理、管理存储器和其它资源等。应用程序处理器406可以类似于图19的处理器1910。

图5说明用于包括视觉传感器的感测设备的实例实施方案。可以采用若干技术以用于使用耦合到计算装置的一或多个相机来获取图像或一系列图像,例如视频。

图5说明使用基于事件的相机的视觉传感器的实例实施方案。视觉传感器可用于照相机或摄像机中以用于获取图像数据。基于事件的相机传感器可经配置以基于事件获取图像信息。在一个实施方案中,如图1中所示,基于事件的相机可以包括多个像素。每个像素可以包括传感器元件和像素内电路。每个像素可经配置以基于在所述像素处所检测到的事件来获取图像数据。举例来说,在一个实施方案中,在任何给定像素处所感知的环境条件的变化(例如,反射离开对象的光的变化)可以引起超出阈值的电压变化,并且可以引起在像素处的事件。响应于所述事件,与所述像素相关联的逻辑可以发送传感器读数到处理器以用于进一步处理。

参考图6,每个像素可以包含光电二极管602和动态视觉传感器(DVS)604电路。DVS模块也可被称作事件检测模块。事件检测模块检测在像素处值的变化并且产生事件指示符。当像素的强度变化超出阈值时,发出传感器读数到处理器,这指示事件。在一些情况下,检测到事件的传感器元件的位置连同有效负载一起被发送到计算机系统以用于进一步处理。在一个实施方案中,有效负载可以为电压强度、电压强度的变化,或电压强度的变化的极性(正负号)。在一些情况下,与传统的基于帧的相机相比,基于事件的相机可以引起被传递到处理器以用于进一步处理的很大程度上降低数量的数据,这引起了功率节省。

返回参考图5,块502总体上表示传感器和事件检测电路。块502表示具有多个像素的传感器,所述每个像素包括用于检测事件的传感器元件和电路。每个像素使用传感器元件产生传感器读数。稍后数字化传感器读数,即,使用ADC转换器508从模拟数据转换到数字数据。在一个实施例中,对于每个像素,先前传感器读数的结果可以存储在列并行SRAM 506中。在一些情况下,存储在列并行SRAM 506中的结果可以由比较器使用以基于当前传感器读数与先前传感器读数之间的比较来比较和触发事件。使用模/数(ADC)转换器508将在像素处获取的模拟信息转换到数字域。数字化传感器读数可以被发送到处理器512以用于计算CV特征的进一步图像处理。

图像处理器512可以计算关于从个体像素接收的信息的某些CV特征以用于检测特征并且因此而检测与那些特征相关联的对象。特征可以包含不太复杂的特征,例如边缘、拐角等。CV特征的演算可以使用来自传感器元件阵列的多个像素的信息以用于通过执行多像素计算来检测特征。举例来说,为了计算主体传感器元件或像素的CV特征,CV运算可以使用传感器读数,所述传感器读数是由接近主体传感器元件或像素的相邻传感器元件或像素产生的。

在某些实施例中,在例如图像处理器512的应用程序处理器406上,计算较低层级的CV特征可以为功率密集型和处理密集型的,所述CV特征例如线性二进制图案(LBP)、LBP的变体以及带正负号梯度的直方图(HSG)标记。在许多情况下,在像素层级处所检测到的事件可以假性地引起一连串的事件,直至所述改变通过在应用程序处理器406处的像素值上执行CV运算而被舍弃。此外,将模拟像素值转换成数字像素值可以消耗功率。此外,在应用程序处理器406上检测CV特征可以为功率和处理密集型的,这是因为在许多情况下在应用程序处理器406上执行CV运算要求在系统存储器中存储来自传感器的信息、触发传感器信息的处理、提取来自存储器的指令以用于CV计算并且存储结果。此外,当执行指令时应用程序处理器406通常渴求功率。来自传感器的假性的或未引起关注的事件唤醒由于不活跃而可能在低功率模式中运行的应用程序处理器406并且大幅增加了系统的功率消耗。

本发明的某些实施例描述了某些技术,所述技术用于基于CV运算(例如LBP、LBP的变体以及使用专用CV计算硬件的HSG标记计算)执行事件,而不是唤醒应用程序处理器406和计算在应用程序处理器406处的这些低层级CV特征。

在一些情况下,通过在像素内部或非常接近于像素由专用CV计算硬件执行用于检测CV特征的CV运算,事件可以在特征层级粒度而不是像素层级粒度处被检测到。在特征层级粒度处检测事件可以减少所产生的假阳性事件的数目,并且将其发送到应用程序处理器406以用于进一步处理。

如本文所述,专用CV计算硬件至少部分基于与接近主体传感器元件的多个相邻传感器元件相关联的信号来计算主体传感器元件中的每一个的CV特征或局部化CV特征。

如本文所述,相对地接近主体传感器元件的传感器元件可被称为相邻传感器元件。在本发明的某些方面中,相邻传感器元件可包含紧邻主体传感器元件的传感器元件。在本发明的某些其它方面中,相邻传感器元件还可包含相对接近于主体传感器元件但不紧邻的传感器元件。举例来说,在某些情况下,当数个传感器的宽度或高度为六十四个传感器元件时,来自主体传感器元件的三个传感器元件内的传感器元件可仍被视为相邻传感器元件。

如本文所述,CV特征或局部化CV特征可指代检测低层级CV标志或指示符,例如与传感器的每个传感器元件或像素相关联的标记。举例来说,标记可以包含传感器元件的LBP标记。传感器元件的LBP标记可以通过比较传感器元件和传感器元件的一些相邻传感器元件的传感器读数来产生。LBP标记可指示来自传感器元件的参考的CV特征是否表示边缘、拐角、曲线、斑点等。例如HSG或LBP的其它适当的变体的其它技术可以用于在不偏离本发明的范围的情况下检测CV特征。

如本文所述,基于CV特征中的变化检测和/或产生事件可指代从传感器元件或传感器元件的小群组的角度检测特征的改变。举例来说,如果在传感器元件处的LBP标记发生变化,那么可以检测到和/或产生事件。换句话说,如果在传感器元件处所检测到的CV特征由斑点变化为边缘,那么这可以触发事件的产生。

除了本文中所讨论的LBP标记,不同类型的CV特征还可包含计算LBP标记的变体。此类变体可以包含(CS)-LBP,其中没有考虑中心像素/块,并且比较围绕中心块的全部相反转角/边缘,并且因此产生4个比较标记,所述比较标记随后表示LBP标记并且以与先前描述的LBP相同的方式使用。其它变体包括但不限于“贴片对称”LBP(其中在比较中没有考虑中心像素/块,而是计算出整个3x3贴片的平均值,且随后比较每个边缘/拐角与平均值)和“局部三元图案(LTP)”(不只是包含1或0而是可以包含+1、0和-1的结果的LBP的变体;零意味着差异低于阈值,且+1和-1意味着差异大于阈值并且还考虑是否为正负号的差异)。

如下文更详细地描述,可以将具有额外的信息(例如位置和CV特征信息)的事件的产生提供到应用程序处理器以用于进一步处理。在本发明的一个方面中,应用程序处理器可以使用这些事件和关联信息以用于检测宏观特征,例如微笑、面部或任何其它用于该事项的对象。

图7说明用于基于所检测到的事件计算和检测CV特征的感测设备的实例方块图。图7说明传感器702、事件检测模块704和CV模块706。如图7中所示,在产生来自传感器702的传感器读数之后,事件检测模块704可以基于在传感器读数中的变化检测事件。一旦表示像素值中的变化的事件被检测到,则CV模块可以计算CV特征并且在特征层级粒度上检测事件。在一些情况下,在检测了特征之后,在所述处理器上执行的应用程序可以使用所检测到的特征。

传感器702、事件检测模块704和CV模块706可以在各种不同粒度处实施于各种不同配置中。举例来说,图7中的传感器可以表示单个传感器元件(例如图1中的传感器元件102)或整个传感器元件阵列(例如图1中的传感器100)。在某些实施例中,事件检测模块704或/和CV模块706可以在像素内电路204、外围电路304/306或专用CV处理模块404中以模拟或数字形式实施。

事件检测模块704可以被实施为像素内电路或外围电路或其任何组合。在事件检测模块704处理多个像素的传感器读数的配置中,事件检测模块704可以处理来自与传感器元件阵列的一个维度(例如列(也被称作列并行DVS))或整个传感器元件阵列相关联的传感器元件的传感器读数。

CV模块706可实施为在传感器像素204中的每一个的内部的像素内电路、实施为用于处理多个像素的传感器读数的外围电路304或实施为专用CV处理模块404、实施为芯片上或芯片外传感器电路或其任何组合。在CV模块706处理多个像素的传感器读数的配置中,CV模块706可以处理来自与传感器元件阵列的一个维度(例如列(也被称作列并行CV))或整个传感器元件阵列相关联的传感器元件的传感器读数。在一些实施方案中,CV模块706可以固件/软件指令实施,以用于在数字域中的专用CV处理模块404上执行。

虽然未示出,但是CV模块706可经配置以基于由接近参考传感器元件的相邻传感器元件所产生的传感器读数,执行表示传感器元件的多像素计算的模拟或数字运算。

图8是根据本发明的某些方面的实例流程图。可由电路或逻辑执行过程800(或本文中所描述的任何其它过程或其变体和/或组合)中的一些或全部。电路或逻辑可实施于像素内电路、外围电路或专用CV处理模块或其任何组合中。在一些情况下,可使用执行于数字电路上且存储在非暂时性计算机可读存储媒体上的指令实施逻辑的全部或部分。

在块802处,传感器阵列元件的组件,例如主体传感器元件,基于入射到主体传感器元件上的光接收至少一个传感器读数。传感器元件阵列包括多个传感器元件。传感器元件可以至少沿着传感器元件阵列的第一维度和第二维度布置。在本发明的某些方面中,传感器元件阵列为视觉传感器,且传感器元件中的每一个包含光电二极管。

在块804处,本文中所公开的组件,例如专用CV计算硬件,检测主体传感器元件的传感器读数的变化并且产生事件。在某些实施方案中,事件检测电路或DVS模块用于检测和产生事件。

在块806处,本文中所公开的组件,例如专用CV计算硬件,基于主体传感器元件和主体传感器元件的相邻传感器元件的传感器读数计算局部化CV特征。

如本文所述,CV特征或局部化CV特征可指代低层级CV标志或指示符,例如与传感器的每个传感器元件或像素相关联的标记。举例来说,标记可以包含传感器元件的LBP标记。传感器元件的LBP标记可以通过比较传感器元件和传感器元件的一些相邻传感器元件的传感器读数来产生。LBP标记可指示来自传感器元件的参考的CV特征是否表示边缘、拐角、曲线、斑点等。例如HSG或LBP的其它适当的变体的其它技术可以用于在不偏离本发明的范围的情况下检测CV特征。局部化CV特征可以从LBP标记或HSG标记中推断。

在本发明的某些方面中,专用CV计算硬件被实施为例如图4中的专用CV处理模块404的专用CV微处理器的一部分。在本发明的某些其它方面中,专用CV计算硬件可实施为像素内电路204或外围电路304。在本发明的某些方面中,计算出的CV特征从专用CV计算硬件被发送到应用程序处理器406以用于进一步处理。

应了解根据一个实施例,图8中说明的特定的步骤提供了一种在运算模式之间切换的特定的方法。在替代实施例中也可执行步骤的其它序列。举例来说,替代实施例可以不同次序执行上文所概述的步骤/块。举例来说,用户可选择从第三操作模式变为第一操作模式,从第四模式变为第二模式,或其间的任何组合。此外,图8中说明的个体步骤/块可包含适用于个体步骤的以各种顺序执行的多个子步骤。此外,可根据特定应用而添加或移除额外的步骤/块。所属领域的一般技术人员将认识并了解所述过程的许多变体、修改及替代方案。

图9、图10、图11和图12是用于在执行如相对于图7和图8所描述的CV运算之前执行DVS运算的实例配置。

图9说明在图7中的事件检测模块704与CV模块706之间传输的实例信息。在一个实施方案中,DVS模块901检测与在传感器元件阵列900处的传感器元件的位置相关联的事件。DVS模块901可以将事件以及信息906提升到CV模块903,所述信息包括在传感器元件阵列处的传感器元件的位置和任选的有效负载。有效负载可以包含电压强度、电压强度的变化或变化的极性。

事件或与事件相关联的传感器元件的位置可对应于图像904的图像像素。CV模块903可以存取包含在其中事件被检测到的图像像素的相邻值的一组图像像素值902,使得对于该组像素CV特征可以被检测到,而不是重新演算整个图像904的CV特征集合。在CV特征在电路中被检测到的一个实施方案中,从保持在相邻像素的电容器中的先前值中可以存取相邻像素的值。在另一实施方案中,其中CV模块903在计算系统中运算,相邻值可以从所存储的图像中从存储器中检索到。

CV模块903处理事件位置以及任选的像素有效负载,并且产生任选的特征有效负载908。位置和任选的特征有效负载908可以被传送到应用程序处理器406以供在应用程序中进一步使用。

图10说明用于执行本发明的方面的实例像素。图10中的像素包括感测电路1002(即,光电二极管)以及DVS和/或CV电路1004以用于像素中模拟或数字处理。如图10中所示,在某些实施方案中,多个电容器可用于存储先前电压(V_PRE)和当前(V_CUR)电压。CV块1004可以演算LBP标记、LBP标记的变体或HSG标记以用于CV特征检测。输出可以包含指示CV特征检测的方面的信息以及来自事件检测模块的指示事件的信息。举例来说,在本发明的一个方面中,输出可以包含关于CV(即,LBP或HSG)特征检测的3到4位的信息以及用于事件本身的发生的另一个位的信息。

图11说明实施事件检测模块702的用于执行本发明的方面的实例传感器设备。在图11中,类似于图6中所讨论的像素的每个像素包括传感器元件602和事件检测模块604,它们一起示为块1104。块1106表示用于驱动传感器的数据输出的行驱动器(ROW DRV)并且块1108表示定时控制器(TCON)。在一个实施例中,对于每个像素,先前传感器读取的结果可以存储在列并行SRAM 1112中。存储在列并行SRAM 1112中的结果可以由比较器使用以基于当前传感器读数与先前传感器读数之间的比较来比较和触发事件。

图11中,每个像素可以输出来自事件检测模块的数字输出,所述数字输出指示来自传感器元件的像素层级变化和电压读数。如图11中所示,在一些情况下,CV模块1110可以实施用于一组像素或整个传感器元件阵列。CV模块1110可以实施为外围电路304/306或专用CV处理模块404。针对一组像素或整个传感器元件阵列实施CV模块1110可以允许处理数据中的高效率。举例来说,相同CV模块可以能够依序服务像素的不同群组。在一个实施方案中,由位于像素1102上的事件检测模块(DVS的Dout)产生的数字输出可以向CV电路指示变化,并且可以选择/触发处理逻辑以处理来自像素的电压输出(Vpix)。

图12说明用于执行本发明的方面的另一实例传感器设备,且为图11中所讨论的实例配置的变体。举例来说,类似于图11,图12具有例如行驱动器1206、定时控制器1208和CV模块1210的组件。图12中,每个像素包括传感器元件。例如像素1202的每个像素输出当前电压(当前Vpix)和先前电压(先前Vpix)。先前电压可以使用电容器电路通过像素维持。事件检测模块可实施为外围电路304或专用CV处理模块404,而不是针对每个个体像素(即,像素内电路204)。如图12中所示,事件检测模块可以实施为用于每个像素列的列并行事件检测模块1212。事件检测模块1212通过像素比较当前电压和先前电压输出,并且基于当前电压输出与先前电压之间的差异产生事件。图12中所示的判优电路1214可以提供多路复用逻辑以用于选择适当列并且在列并行事件检测模块与CV模块1210之间驱动适当数据。

图13说明用于计算CV特征的感测设备的另一实例方块图。图13说明传感器1302、CV模块1304和DVS模块1306。与参考图7(和图8到12)所描述的设备相反,图13中的CV特征是在DVS运算之前演算的。如图13中所示,在从传感器1302中产生传感器读数之后,CV模块1304可以处理传感器信息并且检测CV特征以及将信息传送到DVS模块1306。DVS模块1306可因此检测在CV特征粒度处的事件(与在像素粒度处的事件相反)。在一些情况下,在检测了CV特征之后,CV模块1304可以将信息发送到例如应用程序处理器406的处理器以用于进一步处理。

传感器1302、CV模块1304和DVS模块1306可以在各种不同粒度处实施于各种不同配置中。举例来说,图13中的传感器1302可以表示单个传感器元件(例如图1中的传感器元件102)或整个传感器元件阵列(例如图1中的传感器100)。

CV模块1304可实施为在传感器像素中的每一个的内部的像素内电路、用于处理多个像素的传感器读数的外围电路或专用CV处理模块、芯片上传感器电路。在CV模块1304处理多个传感器元件的传感器读数的配置中,CV模块1304可以处理来自与传感器元件阵列的一个维度(例如列(也被称作列并行CV))或整个传感器元件阵列相关联的传感器元件的传感器读数。

虽然未示出,但是CV模块1304可经配置以基于由接近参考像素的相邻传感器元件所产生的传感器读数,执行表示像素的多像素计算的模拟或数字运算。

在一些实施方案中,CV模块1304可以实施于固件/软件指令中以用于在数字域中的处理器上执行。

类似地,DVS模块1306可实施为在传感器像素中的每一个的内部的像素内电路、用于处理多个像素的传感器读数的外围电路、芯片上传感器电路或使用专用CV处理模块。在DVS模块1306处理多个像素的传感器读数的配置中,DVS模块1306可以处理来自与传感器元件阵列的一个维度(例如列(也被称作列并行DVS))或整个传感器元件阵列相关联的传感器元件的传感器读数。

图14是根据本发明的某些方面的实例流程图。可以通过电路或逻辑执行过程1400(或本文中所描述的任何其它过程或其变体和/或其组合)中的一些或全部。电路或逻辑可实施于像素内电路、外围电路或专用CV处理逻辑或其任何组合中。在一些情况下,可使用执行于数字电路上且存储在非暂时性计算机可读存储媒体上的指令实施逻辑的全部或部分。

在块1402处,例如主体传感器元件的传感器阵列元件的组件基于入射到主体传感器元件上的光接收至少一个传感器读数。传感器元件阵列包括多个传感器元件,且传感器元件至少沿着传感器元件阵列的第一维度和第二维度布置。在本发明的某些方面中,传感器元件阵列为视觉传感器,且传感器元件中的每一个包含至少一个光电二极管。

在块1404处,例如专用CV计算硬件的本文中所公开的组件计算局部化CV特征,其中所述局部化CV特征是基于主体传感器元件的至少相邻传感器元件的传感器读数的。

如本文所述,CV特征或局部化CV特征可指代低层级CV标志或指示符,例如与传感器的每个传感器元件或像素相关联的标记。举例来说,标记可以包含传感器元件的LBP标记。传感器元件的LBP标记可以通过比较传感器元件和传感器元件的一些相邻传感器元件的传感器读数来产生。LBP标记可指示来自传感器元件的参考的CV特征是否表示边缘、拐角、曲线、斑点等。例如HSG或LBP的其它适当的变体的其它技术可以用于在不偏离本发明的范围的情况下检测CV特征。局部化CV特征可以基于LBP标记或HSG标记。

如本文所述,相对地接近主体传感器元件的传感器元件可被称为相邻传感器元件。在本发明的某些方面中,相邻传感器元件可包含紧邻主体传感器元件的传感器元件。在本发明的某些其它方面中,相邻传感器元件还可包含相对接近于主体传感器元件但不紧邻的传感器元件。举例来说,在某些情况下,当数个传感器的宽度或高度为六十四个传感器元件时,来自主体传感器元件的三个传感器元件内的传感器元件可仍被视为相邻传感器元件。

在本发明的某些方面中,专用CV计算硬件被实施为例如图4中的专用CV处理模块404的专用CV微处理器的一部分。在本发明的某些其它方面中,专用CV计算硬件可实施为像素内电路204或外围电路304。

在块1406处,例如专用CV计算硬件的本文中所公开的组件基于计算出的CV特征的变化而产生事件,所述事件包括涉及与计算出的CV特征的变化相关联的主体传感器元件的位置的信息。在本发明的某些方面中,计算出的CV特征从专用CV计算硬件被发送到应用程序微处理器。

本文所述,基于CV特征的变化产生事件可指代从传感器元件或小群组的传感器元件的角度来检测特征的变化。举例来说,如果在传感器元件处的LBP标记发生变化,那么可以检测到和/或产生事件。换句话说,如果在传感器元件处所检测到的CV特征由斑点变化为边缘,那么这可以触发事件的产生。

所产生的具有额外的信息的事件可以被提供到应用程序处理器以用于进一步处理,所述额外的信息例如位置和CV特征信息。在本发明的一个方面中,应用程序处理器可以使用这些事件和关联信息以用于检测宏观特征,例如微笑、面部或任何其它用于该事项的对象。

应了解,根据一个实施例,图14中说明的特定步骤提供了一种在运算模式之间切换的特定方法。在替代实施例中也可执行步骤的其它序列。举例来说,替代实施例可以不同次序执行上文所概述的步骤/块。举例来说,用户可选择从第三操作模式变为第一操作模式,从第四模式变为第二模式,或其间的任何组合。此外,图14中说明的单个步骤/块可包含适用于个体步骤的以各种次序执行的多个子步骤。此外,可根据特定应用而添加或移除额外的步骤/块。所属领域的一般技术人员将认识并了解所述过程的许多变体、修改及替代方案。

图15、图17和图18是在执行如相对于图13所描述的DVS运算之前计算CV特征的实例配置。

图15说明根据本发明的某些方面的用于传感器的电路和模块的实例实施方案。如图15中所示,像素1502可以包含感测电路1504(例如,光电二极管)和CV电路1506。事件检测模块可以实施为芯片上传感器电路,并且包括用于检查任何两个帧之间的时间差异的列并行电路(SRAM 1508和比较器1510)。尽管在图15中示出了SRAM单元1508,但是可以使用任何其它类型的易失性或非易失性存储器。在事件检测模块的数字实施方案中,模拟电容器可由数字缓冲器替换,并且模拟比较器可由数字比较器替换。

图16A提供了静态随机存取存储器(SRAM)单元的实例实施方案,所述静态随机存取存储器(SRAM)单元可在本发明的图15和其它图中所描述的事件检测模块中使用。如图16A中所示的双稳态自锁电路,M1、M2和M5形成双稳态自锁电路的一对,且M3、M4、M6形成双稳态自锁电路的第二对。图16B提供用于比较在本发明的图15和其它图中的事件检测模块中的先前值和当前值的比较器的实例实施方案。比较器可以比较两个电压或电流并且输出指示两个值哪个较大(或较小)的数字信号。图16B中所示的比较器是电压比较器。

图17说明用于执行本发明的某些方面的传感器设备1702的另一实例实施方案。如图17中所示,CV模块1706和事件检测电路都实施于像素内部,且经配置以执行像素内CV和DVS处理。CV模块可以产生LBP标记或HSG标记。在图17中,首先执行CV运算,随后执行DVS运算。可以在数字域中执行DVS运算并且可基于特征检测而产生事件。事件检测电路可以实施SRAM 1708或类似地适当的存储器以用于存储先前CV输出。先前和当前CV输出可以通过比较器1710进行比较以用于产生DVS事件。可以将DVS特征事件以及CV信息提供到应用程序处理器406以用于进一步处理。

图18说明用于执行本发明的某些方面的传感器设备1802的另一实例实施方案。如图18中所示,感测电路1804(例如,光电二极管)和CV模块1806实施于传感器设备1802(即,像素)的内部,并且在像素内检测CV特征。事件检测模块被实施为芯片上传感器电路,且实施于列并行电路中。在图18中,首先执行CV运算,随后执行DVS运算。可以在数字域中执行DVS运算并且可基于特征检测而产生事件。事件检测模块可以实施SRAM 1808或类似地适当的存储器以用于存储先前CV输出。先前和当前CV输出可以通过比较器1810比较以用于产生DVS事件。可将DVS特征事件以及CV信息提供到处理器以用于进一步处理。

尽管上文所述的许多实例公开了在电路中执行DVS(即,事件检测)和CV运算,但是在一些实施方案中,在不偏离本发明的范围的情况下,那些运算中的一个或两个可以在数字域中的处理器上的软件或固件中执行。举例来说,在某些实施方案中,这些运算可以在专用CV处理模块404中的数字域中执行。

根据一或多个方面,本文中图1到18中所描述的设备模块、电路、方法和/或方法步骤的任一者和/或全部可通过传感器设备实施和/或在传感器设备中实施,所述传感器设备例如视觉传感器设备。在一个实施例中,所讨论的方法步骤中的一或多个可以通过传感器设备的感测元件和处理逻辑实施,所述传感器设备例如CV电路、事件检测模块或任何其它电路。另外或替代地,本文中所描述的方法和/或方法步骤的任一者和/或全部可实施于计算机可读指令中,例如存储在计算机可读媒体(例如存储器、存储装置或另一计算机可读媒体)上的计算机可读指令。

图19说明并入在实践本发明的实施例时采用的装置及传感器100的部分的实例计算装置。举例来说,计算装置1900可表示移动装置或任何其它计算装置的组件中的一些。计算装置1900的实例包括但不限于台式计算机、工作站、个人计算机、超级计算机、视频游戏控制台、平板计算机、智能电话、膝上型计算机、上网本或其它便携式装置。图19提供计算装置1900的一个实施例的示意性说明,所述计算装置可执行如本文所述的各种其它实施例提供的方法和/或可充当主机计算装置、远程查询一体机/终端、销售点装置、移动多功能装置、机顶盒和/或计算装置。图19只意图提供对各种组件的一般化说明,可按需要利用所述组件中的任一者或全部。因此,图19广泛地说明如何可以相对分开或相对较集成方式实施个体系统元件。

计算装置1900示出为包括硬件元件,所述硬件元件可经由总线1905电耦合(或可以按需要以其它方式通信)。所述硬件元件可包含:一或多个处理器1910,包含但不限于一或多个通用处理器和/或一或多个专用处理器(例如数字信号处理芯片、图形加速处理器和/或类似者);一或多个输入装置1915,其可包含但不限于一或多个相机传感器1950、鼠标、键盘和/或类似者;以及一或多个输出装置1920,其可包含但不限于显示单元、打印机和/或类似者。传感器1950模块可以包含视觉传感器、嗅觉传感器和/或化学传感器。在图1中描述实例传感器100。

计算装置1900可进一步包括以下各项(和/或与以下各项通信):一或多个非暂时性存储装置1925,所述非暂时性存储装置可包括但不限于本地和/或网络可存取的存储装置,和/或可包括但不限于磁盘驱动器、驱动阵列、光学存储装置、例如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)的固态存储装置,其可为可编程的、可快闪更新的和/或类似者。此类存储装置可经配置以实施任何适当数据存储,包括但不限于各种文件系统、数据库结构和/或类似者。

计算装置1900还可包括通信子系统1930。通信子系统1930可以包括用于接收及发射数据的收发器1950或有线和/或无线媒体。通信子系统1930还可包括但不限于调制解调器、网卡(无线或有线)、红外线通信装置、无线通信装置和/或芯片组(例如,BluetoothTM装置、802.11装置、WiFi装置、WiMax装置、蜂窝式通信设施等)和/或类似者。通信子系统1930可允许与网络(例如,作为一个实例,下文所描述的网络)、其它计算装置和/或本文中所描述的任何其它装置交换数据。在许多实施例中,计算装置1900将进一步包括非暂时性工作存储器1935,其可以包括RAM或ROM装置,如上文所述。

计算装置1900可包括示出为当前位于工作存储器1935内的软件元件,包括操作系统1940、装置驱动器、可执行库和/或例如一或多个应用程序1945的其它代码,其可包括由各种实施例所提供和/或可经设计以实施方法和/或配置系统、由其它实施例所提供的计算机程序,如本文所述。仅举例来说,相对于上文所论述的方法所描述的一或多个程序可实施为可由计算机(和/或计算机内的处理器)执行的代码和/或指令;在一方面中,此类代码和/或指令随后可用于配置和/或调适通用计算机(或其它装置)以根据所描述方法执行一或多个操作。

这些指令和/或代码的集合可存储在计算机可读存储媒体(例如上文所描述的存储装置1925)上。在一些情况下,存储媒体可并入例如计算装置1900的计算装置内。在其它实施例中,存储媒体可与计算装置分离(例如,可装卸式媒体,例如压缩光盘),和/或提供于安装包中,使得存储媒体可用于编程、配置和/或调适其上存储有指令/代码的通用计算机。这些指令可呈可由计算装置1900执行的可执行码的形式,且/或可呈源和/或可安装代码的形式,所述源和/或可安装代码在计算装置1900上编译和/或安装于计算装置1900上(例如,使用多种通常可供使用的编译程序、安装程序、压缩/解压缩公用程序等中的任一者)之后,随后呈可执行码的形式。

可根据具体要求作出实质性变化。举例来说,还可以使用定制硬件,和/或可将特定元件实施于硬件、软件(包括便携式软件,例如,小程序等)或这两者中。另外,可采用到例如网络输入/输出装置的其它计算装置1900的连接。

一些实施例可采用计算装置(例如,计算装置1900)以执行根据本发明的方法。举例来说,可由计算装置1900响应于处理器1910执行工作存储器1935中所含有的一或多个指令(其可并入到操作系统1940和/或其它代码中,例如应用程序1945)的一或多个序列而执行所描述的方法的程序中的一些或全部。可将此类指令从另一计算机可读媒体(例如,存储装置1925中的一或多个)读取到工作存储器1935中。仅举例来说,包含于工作存储器1935中的指令的序列的执行可以使得处理器1910执行本文所描述的方法的一或多个程序。

如本文中所使用,术语“机器可读媒体”和“计算机可读媒体”指代参与提供使得机器以特定方式操作的数据的任何媒体。在使用计算装置1900实施的实施例中,各种计算机可读媒体可能涉及将指令/代码提供到处理器1910以用于执行和/或可能用于存储和/或运载此类指令/代码(例如作为信号)。在许多实施方案中,计算机可读媒体为物理和/或有形存储媒体。此类媒体可呈许多形式,包括但不限于非易失性媒体、易失性媒体以及传输媒体。非易失性媒体包括例如光盘和/或磁盘,例如存储装置1925。易失性媒体包括但不限于动态存储器,例如工作存储器1935。传输媒体包括但不限于同轴电缆、铜线和光纤,包含包括总线1905的导线以及通信子系统1930的各种组件(和/或通信子系统1930提供与其它装置的通信所使用的媒体)。因此,传输媒体还可呈波的形式(包括但不限于无线电、声波和/或光波,例如在无线电波和红外线数据通信期间产生的那些波)。在替代实施例中,可使用事件驱动组件和装置(例如相机),其中可在模拟域中执行处理中的一些。

常见形式的物理和/或有形计算机可读媒体包括例如软盘、软磁盘、硬盘、磁带或任何其它磁性媒体、CD-ROM、任何其它光学媒体、打孔卡、纸带、具有孔图案的任何其它物理媒体、RAM、PROM、EPROM、快闪EPROM、任何其它存储器芯片或盒带、如下文所描述的载波,或计算机可从其中读取指令和/或代码的任何其它媒体。

各种形式的计算机可读媒体可以涉及将一或多个指令的一或多个序列运载到处理器1910以用于执行。仅举例来说,最初可以将指令携带在远程计算机的磁盘和/或光盘上。远程计算机可将所述指令加载到其动态存储器中,并经由传输媒体将所述指令作为信号发送以由计算装置1900接收和/或执行。根据本发明的各种实施例,可呈电磁信号、声学信号、光学信号和/或类似者的形式的这些信号都是可在上面编码指令的载波的实例。

通信子系统1930(和/或其组件)通常会接收所述信号,且总线1905随后可能将所述信号(和/或由所述信号携带的数据、指令等)携带到工作存储器1935,处理器1910从所述工作存储器中检索及执行所述指令。由工作存储器1935接收的指令可任选地在由处理器1910执行之前或之后存储在非暂时性存储装置1925上。

上文所论述的方法、系统及装置为实例。各种实施例可按需要省略、替换或添加各种程序或组件。举例来说,在替代配置中,所描述的方法可以以不同于所描述的次序来执行,且/或可添加、省略和/或组合各个阶段。并且,可在各种其它实施例中组合关于某些实施例描述的特征。可以以类似方式组合实施例的不同方面及元件。并且,技术演进,且因此,许多元件为实例,其并不将本发明的范围限于那些特定实例。

在描述中给出特定细节以提供对实施例的透彻理解。然而,可以在没有这些特定细节的情况下实践实施例。举例来说,在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术以便避免混淆所述实施例。此描述仅提供实例实施例,且并不意图限制本发明的范围、适用性或配置。实际上,所述实施例的先前描述将向所属领域的技术人员提供用于实施本发明的实施例的启迪性描述。可在不脱离本发明的精神和范围的情况下对元件的功能和布置做出各种改变。

并且,将一些实施例描述为以流程图或方块图形式描绘的过程。虽然每个流程图或方块图可能将操作描述为依序过程,但许多操作可并行地或同时执行。此外,可以重新布置操作的次序。过程可以具有未包含在图中的额外步骤。此外,可通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实施方法的实施例。当以软件、固件、中间件或微码实施时,执行相关联任务的程序代码或代码段可存储在例如存储媒体的计算机可读媒体中。处理器可以执行相关联的任务。

已描述若干实施例,可在不脱离本发明的精神的情况下使用各种修改、替代构造和等效物。举例来说,以上元件可仅为较大系统的组件,其中其它规则可优先于本发明的应用或以其它方式修改本发明的应用。而且,可在考虑以上元件之前、期间或之后进行若干步骤。因此,以上描述并不限制本发明的范围。

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