单一处理器计算机视觉硬件控制和应用执行的制作方法

文档序号:18547666发布日期:2019-08-27 21:50阅读:262来源:国知局
单一处理器计算机视觉硬件控制和应用执行的制作方法

许多装置提供不充分的功能性,这是归因于以下事实:其必须在有限功率环境中操作,例如,依赖于电池电力的环境。这些装置的实例大量存在,且其包含例如玩具、物联网(iot)装置等的种类。举例来说,玩具可为电池操作式,且可不易于定期地再充电,且可具有有限的或不具有经再充电的能力。虽然将这些装置的功能性限制于完全最小确实延长电池寿命,但此粗鲁的方法常常导致低劣的性能和令人乏味的用户体验。



技术实现要素:

本发明提出用于对基于场景的发生反应的设备、方法和系统。此设备可包括专用计算机视觉(cv)计算硬件,其经配置以从传感器阵列接收传感器数据,所述传感器阵列包括多个传感器像素且能够使用来自所述传感器阵列的相邻传感器像素的读数计算一或多个cv特征。所述设备可进一步包括第一处理单元,其经配置以控制所述专用cv计算硬件的操作。所述第一处理单元可经进一步配置以执行一或多个应用程序,且与所述一或多个应用程序的执行一起,与至少一个输入/输出(i/o)装置控制器通信,以实现i/o操作以反应于基于对所述一或多个经计算的cv特征而执行的操作所产生的事件。

所述设备可进一步包括分类器,其经配置以接收所述专用cv计算硬件的输出,和基于所述一或多个计算的cv特征执行所述操作。所述事件可响应于所述分类器的输出而产生。在一些实施例中,所述事件为面部检测事件。

任选地,所述专用cv计算硬件可经配置以响应于由所述第一处理单元进行的轮询,将所述事件的指示提供到所述第一处理单元。在某些实施例中,所述事件由所述第一处理单元产生。此外,所述第一处理单元可经配置以通过指定与所述一或多个cv特征相关联的参数和影响所述一或多个cv特征的所述计算来控制所述专用cv计算硬件的操作。

在一个实施例中,所述第一处理单元包括核心和第二核心。所述第一核心可经配置以控制所述专用cv计算硬件的所述操作。所述第二核心可经配置以执行所述一或多个应用程序。在一个实施例中,所述第一处理单元包括软件环境。所述软件环境可支持所述一或多个应用程序。

在一些实施例中,所述i/o装置控制器包括媒体装置控制器。所述媒体装置控制器可经配置以产生音频输出、视觉输出等。在一些实施例中,所述i/o装置控制器包括比例-积分-导数(pid)控制器。所述pid控制器可经配置以产生控制信号以将可移动部件调整到所要的位置。

附图说明

可参照以下图来实现对各种实施例的本质和优点的理解。

图1说明用户可与并有本文中描述的特征和技术的移动装置交互的实例设置。

图2a为根据一个实施例的包括传感器系统和主处理器的配置的框图。

图2b为根据一个实施例的具有传感器阵列单元、微处理器和实例外围电路214的传感器系统的框图。

图3a到3c为根据一些实施例的说明可利用传感器系统的组件提供低功率传感器处理的方式的框图。

图4为根据实施例的感测基于动态场景的发生的方法的流程图。

图5为实例传感器阵列的简化说明。

图6为图5的传感器阵列的实例布置的简化说明。

图7到9为说明用于使用传感器系统用于计算机视觉计算和较低功率光学传感器读数的实例方法的流程图。

图10a到10b为说明用于计算机视觉计算和较低功率光学传感器读数的传感器系统的实例状态的状态图。

图11a到11c说明根据一些实施例的将来自多个传感器元件的传感器读数转换到cv特征的过程。

图12描绘根据本发明的实施例的用于部署用于处置计算机视觉硬件控制和应用程序执行的低功率、单处理器系统的应用环境。

图13a为根据本发明的实施例的在利用多个软件组件用于处置计算机视觉硬件控制和应用程序执行的低功率、单处理器系统中的组件的框图。

图13b为根据本发明的实施例的在利用多个硬件核心用于处置计算机视觉硬件控制和应用程序执行的单处理器系统中的组件的框图。

图14展示根据某些实施例的经指定以流线化特征检测的有限搜索区的实例。

图15展示可响应于基于cv操作检测到的事件而操作的i/o装置(即,致动器)的一个实例。

图16a展示可安装有一对基于面部检测操作的可机械调整的眼睛的玩具玩偶的实例。

图16b展示基于面部检测自动打开的门的实例。

图16c展示又一实例——能够基于面部检测与用户交互的玩具机器人的实例。

图17为说明用于对基于场景的发生反应的过程的流程图。

图18为根据实施例的可利用本文中描述的技术和特征的移动装置的内部组件的框图。

具体实施方式

随后描述仅提供实施例,且并不希望限制本发明的范围、可适用性或配置。相反,实施例的随后描述将为所属领域的技术人员提供用于实施实施例的启发性描述。应理解,在不脱离本发明的范围的情况下可进行元件的功能和布置的各种改变。

图1说明用户130可与并有本文中描述的特征和技术的移动装置105交互的实例设置100。此处,用户130可至少部分经由具有如本文中以下所描述的专用相机、专用计算机视觉(cv)计算硬件和专用低功率微处理器的传感器系统与移动装置105交互。这些特征使移动装置105能够检测、追踪、辨识和/或分析对象(例如,用户130)和在相机的视野105内的其它对象和场景。传感器系统使用包含的嵌入式处理器处理从相机检索的信息,且仅当需要时或如由应用程序定义和配置,发送用于主处理器的“事件”(或一或多个参考发生已发生的指示)。在一些实施例中,传感器系统可通过在检测到特征时产生表示“事件”的信号且将其发送到主处理器来起始动作。所述传感器系统可在无主处理器的任何提示的情况下如此进行。在其它实施例中,主处理器可轮询传感器系统(例如,周期性地、基于按需要等),且传感器系统可用是否已检测到特征的指示来响应轮询。在此类实施例中,对轮询的响应可构成“事件”。

如本文中所描述的“事件”的使用允许通用微处理器(其通常相对高速且高功率以支持多种应用程序)在常规的多数时间停留在低功率(例如,睡眠模式)中,而仅当从传感器系统接收到事件时变得在作用中。虽然参照移动装置105说明和描述,但应理解,能够执行对象检测、辨识等的智能传感器可用于包含物联网(iot)应用的多种应用中。

如本文中所描述,专用cv计算硬件至少部分基于与相邻传感器元件相关联的信号计算或能够计算传感器阵列单元中的每一传感器元件或像素的cv特征,或局部化cv特征。(本文中,术语“局部”或“局部化”指基于一或多个相邻传感器元件而非全部图像的统计或其它数学评估来计算的特征)。如本文中所描述,包含主体传感器元件和相对靠近主体传感器元件的其它传感器元件的传感器元件可被称作相邻传感器元件。在本发明的某些方面中,相邻传感器元件可包含主体传感器元件和紧邻主体传感器元件的传感器元件。在本发明的某些其它方面中,相邻传感器元件也可包含相对靠近主体传感器元件且不紧邻的传感器元件。举例来说,在某些情况下,当传感器的数目的宽度或高度为六十四个传感器元件时,在距主体传感器元件三个传感器元件内的传感器元件可仍然被考虑为相邻传感器元件。

如本文中所描述,cv特征或局部化的cv特征可指检测低等级计算机视觉标记或指示符,例如,与传感器的每一传感器元件或像素相关联的标签。如下进一步详细地指示,这些cv特征可包含例如带正负号的梯度的直方图(hsg)和/或局部二进制图案(lbp)的输出。lbp计算可基于相邻传感器元件,例如,参考或主体传感器像素和其八个紧邻的相邻传感器像素。lbp计算可对参考像素的紧邻的相邻像素中的每一个基于其相应强度差来评分。(将使用用于不同色彩信道(例如,红、蓝和绿)的不同lbp来处理色彩)。hsg计算也使用相邻传感器元件(例如,参考像素和一或多个紧邻的相邻像素)检测场景内的各种特征。

举例来说,在图1的设置100中,用户130可已拾取移动装置105,同时所述移动装置的通用微处理器处于睡眠模式中。然而,移动装置105的传感器系统可保持在作用中,且可能能够(例如)辨识用户130的面部、手示意动作、场景中的其它对象等。在辨识到某一参考发生已发生后——在此情况下,用户130的特定面部特征在传感器系统的视野110内,传感器系统可将指示用户130的面部特征已经辨识和/或使移动装置的通用微处理器退出低功率模式且变得完全在作用中的事件发送到移动装置的通用微处理器。

取决于所要的功能性,使传感器系统将事件发送到移动装置的通用微处理器的参考发生可包含多种可cv检测的发生中的任一个。这些发生可包含(例如)面部和/或对象检测、面部和/或对象辨识、示意动作辨识等。在一些实施例中,一或多个参考发生可为可由用户130配置。本文中以下提供参考发生的额外实例。

因为专用相机专用于传感器系统,所以其可不主要希望用于拍相片或拍视频。因此,所述专用相机可不产出基于强度的图像。取而代之,所述专用相机可包含像素级计算机视觉特征计算,如用于所述特征的基于低功率硬件的计算的lbp、梯度、边缘、hsg和/或使用来自专用相机的相邻传感器像素的读数计算cv特征的其它操作。

即,虽然可使用包括专用相机的传感器系统人,但实施例不受如此限制。更广泛地说,传感器系统可包含传感器阵列单元,其包含用于感测化学、视觉、听觉、生物、机械和/或其它类型的输入的传感器单元。

另外,虽然图1和其它实施例描述传感器系统经并入到移动装置内,但实施例不受如此限制。由本文中描述的技术和特征带来的省电可对移动装置(例如,移动电话、平板计算机、膝上型计算机、便携式媒体播放器等)具有特定益处,但其它装置(例如,电视、台式计算机和/或通常可能不被考虑为移动的其它装置)可利用本文所描述的特征和技术。

图2a为说明根据一个实施例的传感器系统210(在本文中也被称作“智能传感器”)可经配置以在主处理器220可在低功率(例如,“睡眠”或“待用”)模式中操作时实现高阶感测操作的方式的框图。图2a的组件可并入到较大电子装置内。以下关于图5描述可并有传感器系统210的移动装置的实例。

并且,应理解,替代性实施例可与图2a中展示的组件有变化。举例来说,如下所述,传感器系统210的实施例可或可不包含外围电路214、微处理器216和/或存储器218。另外或替代地,取决于所要的功能性,实施例可组合、分开、添加、省略和/或重排图2a的组件。举例来说,在传感器系统210包括传感器阵列(例如,像素阵列或相机)的情况下,可利用一些光学装置对输入(例如,光)在其到达传感器阵列前操纵。应注意,虽然本文中的实施例描述“图像阵列”的使用,但实施例不受如此限制,且可更广泛地利用未必产生或捕捉图像的传感器阵列。(以下更详细地描述的图2b说明根据一个实施例的具有传感器阵列单元212、微处理器216和实例外围电路214的传感器系统210。)

如图2a中所说明,接收输入的传感器系统210可包含传感器阵列单元212、外围电路214、微处理器216和/或存储器218。电子传感器可经由有线或无线连接而与电子装置的主处理器220(例如,移动电话的应用程序处理器)通信耦合,所述主处理器可提供对传感器系统210的查询且从传感器系统210接收事件和/或其它触发事件。在一些实施例中,“主处理器”220可仅对应于比微处理器216大(例如,在处理能力方面大和/或在电力上大)的处理单元。在一些实施方案中,微处理器216可对应于专用微处理器或第一处理单元,且可经配置以消耗比可对应于第二处理单元的主处理器220少的功率。

取决于电子传感器的所要的功能性,利用的传感器阵列单元212的类型可变化。如前指示,传感器阵列单元212可包含用于感测化学、视觉、听觉、生物、机械和/或其它类型的输入的一阵列(例如,一维或二维阵列)传感器单元。举例来说,传感器阵列单元212可包含相机传感器或其它视觉和/或传感器阵列,其中多个传感器单元形成像素网格。

在一些实施例中,传感器阵列单元212可包含“智能”阵列,其包含某一额外存储器和/或可执行对传感器单元的一或多个输出的操作所藉的逻辑电路。在一些实施例中,传感器阵列中的每一传感器像素可与可或可不为外围电路214(以下更详细地论述)的部分的存储器和/或逻辑电路耦合。传感器阵列单元212和/或外围电路的输出可包含作为传感器单元的原始传感器读数的添加或替代的输出。举例来说,在一些实施例中,传感器阵列单元212和/或外围电路可包含专用cv计算硬件,其经配置以从传感器阵列单元212的包括多于一个传感器像素的传感器阵列接收图像数据。cv特征可接着由专用cv计算硬件使用来自传感器阵列的相邻传感器像素的读数计算或提取,从而提供例如计算的hsg和/或lbp特征、标签或描述符的输出。在一些实施例中,无图像信号处理电路可安置于传感器阵列单元212与专用cv计算硬件之间。换句话说,专用cv计算硬件可在对原始传感器数据执行任何图像信号处理前从传感器阵列单元212接收原始传感器数据。基于包含边缘检测、拐角检测、尺度恒定特征变换(或sift)、加速稳固特征(surf)、定向梯度的直方图(hog)、局部三进位图案(ltp)等以及以上各者中的任一个的扩展的其它cv计算算法。

传感器阵列单元212的同步性(或非同步性)也可取决于所要的功能性。举例来说,在一些实施例中,传感器阵列单元212可包括具有读出电路的传统(即,“基于帧”)相机,所述读出电路经计时以基于某些时序要求提供每一像素的周期性采样。在一些实施例中,传感器阵列单元212可包括事件驱动阵列,当传感器读数或其它输出达到某一阈值和/或按某一阈值改变而非遵照特定采样率(或作为对特定采样率的添加)时,可通过所述事件驱动阵列确定传感器输出。对于如上所论述的“智能”阵列,所述传感器读数或其它输出可包含额外存储器和/或逻辑的输出(例如,来自智能传感器阵列的hsg或lbp输出)。在一个实施例中,智能传感器阵列可包含动态视觉传感器(dvs),其中对于智能传感器阵列中的每一像素,当像素值从先前值按阈值量改变时,非同步地输出所述值。在一些实施方案中,所述传感器阵列单元212可为混合帧事件驱动阵列,其按给定帧速率读出值,但通过仅读出阵列中从从先前读出已改变的元件的值而省电。

取决于电子传感器的所要的功能性,外围电路214也可变化。外围电路214可经配置以从传感器阵列单元212接收信息。在一些实施例中,外围电路214可从传感器阵列单元212内的一些或所有像素、传感器阵列单元212的像素级电路(实施有显著的像素级电路)中的一些或所有或两者接收信息。举例来说,对于传感器阵列单元212提供同步化的输出的实施例,外围电路可提供对传感器阵列单元输出的计时和/或控制操作(例如,执行基于帧和/或类似的计时)。由外围电路214提供的其它功能性可包含事件排入伫列和/或处理操作、模拟处理、模拟到数字转换、集成操作(例如,像素值的一维或二维集成)、cv特征计算、对象分类(例如,基于级联分类器的分类或基于直方图的分类),或直方图操作、存储器缓冲或其任何组合、“像素块值求和”、“相邻像素值比较和定限”、“向量内积计算”等。在各种实施方案中,用于执行此功能性的装置可包含(例如)外围电路214。在一些实施例中,外围电路214耦合到传感器阵列单元212的传感器电池输出端,且不包含微处理器或其它处理单元。本文中以下关于图2b,包含外围电路214的一些实例。

即,一些实施例可进一步包含耦合到外围电路214的输出端的微处理器216。微处理器216通常可包含相对于主处理器220在相对低功率上操作的处理单元。在一些实施方案中,微处理器216可进一步使用其自身程序(例如,基于软件)和数据存储器执行计算机视觉和/或机器学习算法(其可基于帧和/或事件)。因此,微处理器216能够基于当主处理器220在低功率模式中操作时由传感器阵列单元212接收的输入执行计算机视觉和/或机器学习功能。当微处理器216确定需要输出到主处理器220的事件已发生时,微处理器216可将事件传达到主处理器220,所述事件可使主处理器220离开其低功率模式且到正常操作模式内。

任选地,在一些实施例中,微处理器216的输出可进一步提供到存储器218,随后中继到主处理器220。基于哪些事件或触发事件经发送到主处理器220,存储器218可包含由微处理器216维护的工作存储器和/或数据结构。举例来说,可在存储图像、追踪检测的对象和/或执行如下文关于图2b更详细地论述的其它操作时利用存储器。另外或替代地,存储器218可包含主处理器220可向传感器系统210查询的信息。主处理器220可执行应用软件、算法等222,其中的一些可进一步利用从传感器系统210接收到的信息。

如前指出,传感器系统210独立于主处理器220执行某些功能(例如,图像处理和/或计算机视觉功能)的能力可提供电子装置中的大量的功率、速度和存储器节省,否则,电子装置将必须利用主处理器220执行传感器系统210的功能中的一些或所有。明确地说,传感器阵列单元212、外围电路214与微处理器216的组合允许能够在由图像阵列捕捉的动态改变场景中检测发生的场景理解。

在一个实例中,具有图2a中展示的配置的移动电话可使用面部检测退出待用模式。在此实例中,移动电话进入到移动电话的显示器断电的待用模式,且主处理器220在低功率睡眠模式上操作。然而,具有作为传感器阵列单元212的图像阵列的传感器系统210继续操作,在对象进入和退出图像阵列的视野时,处理来自传感器阵列单元212的数据。当面部进入图像阵列的视野时(例如,在图1中,当用户130的面部进入到移动装置105的视野110内时),其可由传感器阵列单元212、外围电路214、微处理器216或其任何组合检测到。如果检测到的面部保持在图像阵列的视野中达阈值时间周期(例如,0.5秒、1秒、2秒等),那么微处理器216可将指示已发生面部检测的面部检测事件发送到主处理器220。移动电话的主处理器220和显示器可接着切换回到正常操作模式。

如本文中其它处所指出,事件可为一或多个参考发生已发生的指示。更一般来说,事件可包含与参考发生有关的数据。取决于所要的功能性,事件中包含的数据可指示检测到的参考对象、与参考对象有关的位置信息、参考对象的数目、与检测到的参考对象相关联的移动等。可按多种方式中的任一个传送此数据。举例来说,在对象检测的情况下,事件可为简单的二进制输出,其中“0”意味着尚未检测到参考对象,且“1”意味着已检测到参考对象。

事件可包含不同于已发生参考发生的指示的信息。举例来说,事件也可包含与参考发生相关联的一些数据。在一些实施例中,事件可包含n位/字节消息或多字段消息,其中每一位或字段映射到一条特定数据。举例来说,事件可包含以下输出:第一位/字段指示是否已检测到对象、第二位/字段指示对象是在移动还是静止、第三位/字段是关于对象的位置(或与位置有关的信息,例如,界限对象的最小框的四个拐角,或对象的拐角的位置等)、第四位/字段是关于检测到多少对象等。一般来说,在仅有的参考发生的上,事件可以与参考发生相关联的任一方式(包含与参考发生有关的测量或计算)包含任何数据,包含硬件计算的cv特征或图像。

取决于所要的功能性,参考发生可包含多种触发事件中的任一个,例如,面部或其它对象检测事件、示意动作事件、面部和/或参考对象检测和/或辨识、眼睛或虹膜检测等。还可检测到特定面部特征,例如,眼睛、鼻子或耳朵。面部检测或面部特征检测可用以推断其它特征的位置,例如,鼻子的检测可推断眼睛的位置或反之亦然。可使用多种面部检测算法中的任一个实施的面部检测可包含进入人类面部或非人类动物面部(例如,狗、猫或其它宠物)的视界,或进入人体或非人类动物身体的视界。此“进入对象的视界”可为对象的移动和/或相机的移动的结果。参考发生可超出面部检测以从指示表现的各种面部特征和/或那些特征的位置的分析确定人类面部的表情或其它表现。另外或替代地,参考发生可包含检测和/或辨识额外对象和/或对象移动,例如,进入人手的视界、手示意动作、进入参考对象(例如,某一对象、标识或其它参考对象)的视界等。在一些实施例中,传感器系统210可经预先配置以检测某些参考对象。另外或替代地,用于由传感器系统210检测和/或辨识的对象可为可由用户和/或由主处理器220执行的应用程序选择。参考发生可包含检测的环境改变(例如,从室内环境到室外环境的改变)、参考移动、场景中的快速移动(例如,指示下落)、朝向对象的运动(例如,指示碰撞的风险)、场景中指示危险的移动或对象(例如,用于火检测的火)或其任何组合。在一些实施方案中,参考发生可与参考对象的检测有关,或基于参考对象的检测,如以下在图2b中和本文中其它处进一步详细地描述。在一些实施方案中,一旦在图像帧中检测到参考对象,那么微处理器216可检查看看随后在后续图像帧中是否检测到同一对象。微处理器216可使用从外围电路214接收到或由微处理器216自身产生的与检测到的对象相关联的位置信息和其它数据确定参考发生的发生,所述发生可基于参考对象的检测。再次参照先前段落中的面部检测的实例,如果面部(参考对象)的检测保持在图像阵列的视野中达阈值时间周期,那么面部检测(参考发生)可发生,从而导致对应的面部检测事件经发送到主处理器220。

图2b说明实例实施方案传感器系统(例如,图2a的传感器系统210),其包含传感器阵列单元、cv计算硬件和包含用于与第二微处理器的通信的接口的微处理器。传感器阵列单元212可包含相关二重采样电路。传感器阵列单元212也可包含在将信号输出到行缓冲器(linebuffer)230前将传感器元件或像素信号或值组合、求和或平均的电路,例如,在使用组合像素值或较低分辨率改善cv计算的实施方案中。行缓冲器230可包含一或多个行缓冲器以将表示来自传感器阵列单元212的图像或图像的部分的信号转移到视觉传感器的其它部分。在一些实施方案中,传感器元件阵列212不同于更常规的传感器阵列单元,可不包含用于图像信号处理(isp)的电路,且因此,图2b说明在无插入isp电路的情况下连接传感器阵列单元212与cv计算硬件242的实施方案,因此,在一些实施方案中,无isp电路安置于传感器阵列单元212与硬件扫描窗阵列238或专用cv计算硬件242之间。举例来说,在一些实施方案中,由cv计算硬件242从传感器阵列单元212接收到的信号可不经历isp,例如,信号尚未经历缺陷校正、白平衡、色彩平衡、自动聚焦、镜头滚降、去马赛克、去拜耳色彩转换(debayering)或图像锐化或其任何组合。然而,在一些这种无isp的实施方案中,一些处理(例如,对焦或自动曝光校正)可能发生。尚未经历isp的这些信号可被称作原始信号或原始传感器读数或原始传感器数据。原始信号、原始传感器读数或原始传感器数据可经转换到数字,集成以形成整体图像,存储于扫描窗和专用cv计算硬件中,可经配置以接收原始信号、原始传感器读数或原始传感器数据,即使应理解,原始信号、原始传感器读数或原始传感器数据已经历一些数据操纵(包含求和或积分),但尚未经历isp。在一个实施方案中,传感器阵列单元212为无isp电路的四分之一视频图形阵列(qvga)相机传感器,其中阵列包括216×240个传感器元件。

在各种实施方案中,cv计算硬件242可在数字或模拟域中执行cv计算。因此,任选地,在数字实施方案中,模拟到数字转换器(adc)234可安置于行缓冲器230与cv计算硬件242之间。在一些实施方案中,cv计算硬件242在其为经设计以具有极少或不具有不同于计算cv特征、标签或描述符的功能性的硬件的意义上为专用cv计算硬件。

在一些实施方案中,cv计算硬件242可使用与传感器元件或像素的块相关联的信号的组合、总和或平均值。在此类实施方案中,在输入到cv计算硬件242内前,积分图像可用于计算这些组合、总和或平均值。举例来说,为了将多于四个像素(例如,对于大于2×2的块,例如,3×3或11×11)求和,求和可比使用积分图像快得多,这是由于仅需要添加或减去四个值以确定积分图像中的像素值的总和,而非对用于相应3×3或11×11图像块的9或121个值求和。因此,任选地,视觉传感器也可包含用于基于表示由传感器阵列单元中的传感器元件(例如,像素)的至少一子集采样的图像的信号的至少一子集计算图像的至少一部分的积分图像的二维集成硬件236。如所说明,二维集成计算硬件236可与专用cv计算硬件242通信。如前指出,与直接添加信号值相比,表示由传感器阵列单元采样的图像的积分图像和/或由传感器阵列单元采样的图像的一部分的积分图像可用以更快速地对用于传感器元件的块的信号值组合、求和或平均。二维集成硬件236可包含能够基于来自传感器阵列单元212的原始信号产生表示由传感器阵列单元在数字或模拟域中采样的图像的所有或一部分的积分图像的信号的电路。在一些实施方案中,由二维集成硬件236产生的积分图像(其可为由传感器阵列单元采样的图像的仅一部分或样本窗的积分图像)可存储于硬件扫描窗阵列238中,如图2b中所说明。举例来说,硬件扫描窗阵列可包含随机存取存储器(ram)阵列或用于存储积分图像的其它形式的模拟或数字存储器。在计算对应于传感器元件的块的信号的组合、总和或平均值并不有用的实施方案(例如,像素级lbp)中,应理解,可不包含二维集成硬件236,且因此包含来自传感器阵列单元230的模拟原始信号或来自adc234的转换到数字原始信号的样本窗可直接存储于硬件扫描窗阵列238中。此外,应理解,在一些实施方案中,二维集成硬件236也可或取而代之执行一维集成。类似地,硬件扫描窗阵列238可存储对应于由传感器阵列230捕捉的图像的样本窗的一维积分图像。一维积分图像的使用可允许计算多块lbp,例如,使用经旋转块以便检测旋转的参考对象,例如,面部。任选地,帧缓冲器(未说明)可在二维集成硬件236前或后使用。在其中帧缓冲器安置于二维集成硬件236前的实施方案中,全部帧或图像可从传感器阵列单元212转移到帧缓冲器内。二维集成硬件236可接着产生存储于帧缓冲器中的图像的部分或窗的积分图像,且将这些窗存储于硬件扫描窗阵列238中。替代地,二维集成硬件236可对全部图像积分且将全部积分图像存储于安置于二维集成硬件236与硬件扫描窗阵列238之间的帧缓冲器中,在此情况下,存储于帧缓冲器中的积分图像的窗可存储于扫描窗阵列238中。然而,应理解,帧缓冲器是任选的,且二维集成硬件236可接收对应于来自传感器阵列单元212的图像的窗或部分的数据,且在运作中将窗或部分积分且将这些积分图像窗存储于硬件扫描窗阵列238中。

视觉传感器也可包含cv计算硬件242。在一些实施方案中,cv计算硬件可至少部分基于与最接近传感器元件的块的多个相邻传感器元件相关联的信号计算一或多个主体传感器元件的块的局部化cv特征。举例来说,在cv计算硬件的局部二进制图案(lbp)实施方案中,cv计算硬件可包含接收对应于(例如,使用积分图像产生的)原始图像信号或原始图像信号的组合、总和或平均值的信号值的硬件,且基于原始图像信号产生数字lbp标记或向量。在计算多块lbp的实施方案中,一或多个主体传感器元件的块可包含m乘n个传感器元件(例如,11乘11个传感器元件)的块。也应理解,在为其计算局部化cv特征的一或多个主体传感器元件的块为单个主体传感器元件的情况下,也可进行像素级lbp计算。虽然以上描述提及cv计算硬件312为与专用微处理器320分开,但应理解,在一些实施方案中,可按在专用微处理器320内的硬件来实施专用cv计算硬件312。

与在处理器(例如,通用处理器,例如,应用程序处理器或甚至微处理器216)中计算cv特征相比,在专用硬件中产生cv特征(例如,以上论述的lbp标签)可减小视觉传感器的功率。然而,所述视觉传感器仍然可包含耦合到cv计算硬件242的微处理器216,以执行不同于cv特征计算的功能(例如,cv有关的运算或不同于cv特征计算的计算),或以执行相对于使用cv特征计算硬件242执行的计算的额外cv特征计算。微处理器216从cv计算硬件238接收硬件计算的cv特征,且可执行较高层级计算机视觉操作,例如,对象类别检测(其中面部检测可被视为特定情况,其它实例包含上部躯体、行人和汽车),其中在各计算机视觉操作当中,任务为发现图像中属于给定类别的所有对象的位置和大小。此外,微处理器216可将控制信号提供到行缓冲器230、adc234、二维集成硬件236、硬件扫描窗阵列238和cv计算硬件242。在一些实施方案中,为了执行对象类别检测或其它计算机视觉操作,微处理器216可使用级联分类器算法执行对象类别检测,例如面部检测。在任选实施方案中,通过在硬件中实施级联分类器以进一步减小微处理器216上的计算负担,进一步的省电是可能的。

任选级联分类器硬件244包含级联分类器的硬件实施方案。在一些实施方案中,使用关于图像的数据集的机器学习技术来训练级联分类器,包含将训练级联分类器检测或分类的参考对象的实例,和非对象的实例,例如,面部和非面部的图像,或汽车和非汽车的图像,或上部躯体和非上部躯体的图像等。举例来说,在第一级,级联分类器硬件可请求cv计算硬件242计算存储于(例如)硬件扫描窗阵列238中的某一数目l个主体传感器元件的lbp特征。此外,主体传感器元件的位置{(x11,y11)、……、(x1l,y1l)}也将由级联分类器硬件244提供。一旦cv计算硬件242计算和提供所请求的lbp特征(其可被视为向量值),那么级联分类器硬件执行lbp特征中的每一个与一或多个权数的内积的求和,以产生第一加权的纯量和值。一般来说,每一lbp特征(lbp11、……、lbp1l)将乘以给定权数(w11、……、w1l),其中的每一个可不同。接着将第一加权的纯量和值与第一阈值比较。如果纯量和小于阈值,那么对于给定概率,在由存储于硬件扫描窗阵列238中的信号表示的图像的部分中不存在参考对象,且因此级联分类器硬件244将信号发送到硬件扫描窗阵列238,且任选地发送到视觉传感器的其它组件(例如,行缓冲器230和传感器阵列单元212),以指示硬件扫描窗阵列238应继续扫描和添加一或多个新列和/或行且去除一或多个旧列和/或行。在图像的后续窗或对应于传感器阵列单元的传感器元件的后续子集的后续多个信号存储于硬件扫描窗阵列238中的情况下,过程可再次开始。应理解,图像之后续窗可能大部份与图像的先前窗重叠。在一些实施方案中,从左到右扫描图像,且一旦到达传感器阵列单元212的末端,那么在向下移动一或多行后可再次从左到右扫描图像。在另一实施方案中,在向下移位一或多行后,可从右到左扫描图像,其可允许增大与先前图像的重叠。

如果纯量和取而代之大于第一阈值,那么级联分类器硬件244移动到下一级。在下一(在此实例中,第二)级中,级联分类器硬件再次请求cv计算硬件242提供在存储于硬件扫描窗阵列238中的位置{(x21,y21)、……、(x2m,y2m)}处的m个主体传感器元件的lbp特征。一旦cv计算硬件242计算且提供请求的lbp特征(lbp21、……、lbp2m),那么级联分类器硬件244执行lbp特征中的每一个与一或多个权数(w21、……、w2m)的内积的另一求和,以产生第二加权的纯量和值。接着将第二加权的纯量和值与第二阈值比较。如果所述纯量和小于第二阈值,那么存在参考对象存在于由存储于硬件扫描窗阵列238中的信号表示的图像的部分中的低可能性,且级联分类器发送信号到视觉传感器阵列中的另一组件以继续扫描并移动到图像之下一部分。如果第二加权的纯量和值大于第二阈值,那么所述过程如上所述继续第三级。在最后级的末尾,例如,在n级级联分类器中的第n级,如果第n个加权的纯量和值大于第n个阈值,那么在存储于硬件扫描窗阵列238中的图像的部分中检测到参考对象。所述级联分类器硬件244可接着对微处理器216指示已检测到参考对象,且可进一步任选地指示检测到参考对象或参考对象的部分的图像的部分的位置。一般来说,级联分类器硬件244可经配置以将检测到参考对象的指示连同与参考对象相关联的数据(例如,在检测参考对象的过程中计算的cv特征中的所有或一些、在那些cv特征的图像内的位置或与由cv计算硬件242和/或级联分类器硬件244执行的计算或操作相关联的任何其它数据)一起发送到微处理器216。

硬件扫描窗阵列238内待在每一级计算lbp特征、标签或向量的主体传感器元件的数目和位置通常经编程到级联分类器硬件244内,且从上文所论述的机器学习训练产生。类似地,对lbp特征中的每一个倍增的权数也通常在机器学习训练期间确定,且接着经编程到级联分类器硬件244内。级的数目也从训练产生,且经编程到级联分类器硬件244内。在一些实施方案中,级联分类器可包含1个与31个之间的级,例如,16个级。在一些实施方案中,级联分类器可包含1个与31个之间的级,例如,16个级。在一些实施方案中,级联分类器硬件244可被考虑为专用级联分类器硬件,意为其为经设计以执行级联分类器功能以及极少到无其它重要功能的硬件。虽然上文所描述的实施方案是关于基于实验室中的先前训练和机器学习基于经编程权数和阈值以产生模型的级联分类器,但应理解,经设计以基于从cv计算硬件242接收的经硬件计算cv特征执行cv操作的级联分类器硬件244或外围电路中的其它硬件可经设计以实地执行机器学习。

在刚刚描述的实施方案中,微处理器216可接着确定如何处理(例如)检测到参考对象事件。举例来说,其可发送事件到第二微处理器。在一些实施方案中,微处理器216和第二微处理器可对应于图2a的微处理器216和主处理器220。如图2b中所说明,微处理器216包含用于与第二微处理器通信的接口246。另外或替代地,微处理器216可随着时间的过去追踪检测到的参考对象的位置(例如,在多个图像上)以确定(例如)示意动作移动辨识、碰撞风险、危险和/或其它事件。

更一般来说,一些实施例可通过首先检测对象、接着确定其它特征来启用广泛范围的功能性。关于这些实施例,可经由外围电路(例如,级联分类器硬件244和/或其它专用硬件)进行对象检测,且额外操作可由微处理器216执行。举例来说,可首先通过对象的检测、接着(例如,使用微处理器)确定对象已在相机的视野中达阈值时间周期,来确定进入对象的视界。如上所指出,可通过检测示意动作控制对象(例如,手),接着确定手的移动,来进行示意动作检测。可通过检测对象和确定指示与所述对象碰撞的风险的移动(例如,通过相机、通过在相机的视野内的第二对象等)来作出碰撞的风险。一般所属领域的技术人员将认识到,可包含以上特征的任何组合,和/或关于这些特征的变化。

虽然以上描述将级联分类器硬件244提及为与微处理器216分开,但应理解,在一些实施方案中,级联分类器硬件244可按硬件实施于微处理器216内。并且,在一些实施方案中,可对级联分类器硬件244给予某一控制功能性以允许其(如所说明)控制cv计算硬件242和硬件扫描窗阵列238。因而,级联分类器硬件242可从主地检测来自微处理器216的特征,且因此微处理器216可在级联分类器硬件244执行其功能时处于低功率状态中。因而,智能传感器可基于一或多个计算的cv特征执行较低功率操作,且当(例如)检测到对象时,级联分类器硬件242可将事件(包含例如传感器读数的数据)提供到微处理器216,以唤醒微处理器216。微处理器216可接着确定下一个动作过程,例如,经由接口246将事件发送到第二微处理器。应理解,甚至在低功率状态中,在一些实施方案中,微处理器216可仍然将控制信号提供到传感器阵列单元212、行缓冲器230等,或替代地或另外,这些控制信号可由较低功率控制逻辑提供。替代地,级联分类器可作为软件算法在微处理器216上执行。此外,代替级联分类器,可使其它软件算法在微处理器上执行。举例来说,参考对象检测可使用直方图来执行,如在图11c中所描述。在一些此类实施方案中,可将针对存储于扫描窗阵列238中的图像的样本窗计算的所有lbp标签的直方图与参考直方图比较以检测存储于扫描窗阵列238中的样本窗中的面部的存在。在一些实施方案中,可实施专用硬件以使用直方图检测(例如)面部。代替级联分类器硬件244,或除了级联分类器硬件244之外,此实施方案也可包含此专用硬件。

在图2b中所说明的实施方案中,行缓冲器230、adc234、二维集成硬件236、硬件扫描窗阵列238、cv计算硬件242、级联分类器硬件244或其任何组合中的一或多个可被考虑为外围电路,意即,在传感器阵列单元212外围且可对应于图2a的外围电路214的电路。也应理解,可将刚刚所列出的各种组件或其任何组合取而代之实施为传感器阵列单元212内的像素级电路。

图3a到3c为说明可利用传感器系统210的组件提供低功率传感器处理的方式的框图。此处,仅说明某些组件。应理解,传感器系统可具有额外组件,如图2a和2b中所展示。

在图3a中,外围电路214与传感器阵列单元212的多个传感器电池输出端耦合。传感器阵列单元212和/或外围电路214包含专用cv计算硬件以使用多个传感器电池输出中的至少一子集执行特征检测计算,其中所述多个传感器电池输出中的所述子集对应于传感器阵列单元212(例如,图像阵列)的包括相邻传感器单元或像素的区域。因此,外围电路214的输出(至少部分)基于特征检测计算。此特征检测计算可包含使用传感器阵列单元212的可提供特征检测(例如,边缘检测、行检测等)的相邻传感器单元或像素的多种计算中的任一个。这些特征检测计算包括(例如)lbp、hsg等。在一些实施例中,专用cv计算硬件可包括一集成电路。

在图3b中,第一处理单元217与智能图像阵列213的一或多个输出端通信耦合,其中多个传感器像素与存储器和/或逻辑电路耦合。此处,第一处理单元217可对应于图2a和2b的微处理器216,且智能图像阵列213可对应于图2a和2b的传感器阵列单元212。智能图像阵列213可包含用于计算使用来自相邻传感器像素的读数计算的cv特征的专用cv计算硬件,如上关于图3a和/或2b所描述。如图2a和2b中所展示,这些两个组件可不直接彼此耦合,但可具有插入电路。第一处理单元217处理从智能图像阵列的一或多个输出端接收到的信号以检测参考发生。第一处理单元217接着产生指示参考发生的事件,以由第二处理单元(例如,图2a的主处理器220)接收。

可基于从基于一或多个计算的cv特征的操作产生的处理信号而产生。在一些实施方案中,这些操作可包含由级联分类器(例如,图2b的级联分类器硬件244)执行以检测面部的操作或计算。正基于从那些操作产生的处理信号产生的事件可因此包含微处理器处理检测到参考对象的信号,例如,来自级联分类器的指示。指示可包含与检测到的对象相关联的数据,例如,位置、相关联的lbp特征和其位置和/或图像数据自身。此使微处理器能够通过当未检测到参考对象时不分析图像数据来保存能量。

在图3c中,设置类似于图3b。此处,第一处理单元217与图像阵列216的一或多个输出端通信耦合。再次,第一处理单元217可与图2a和/或2b的微处理器216对应,且图像阵列216可类似地与图2a和/或2b的传感器阵列单元212对应。然而,在此实施例中,第一处理单元217确定已检测到面部,且针对第二处理单元产生面部检测事件。取决于所要的功能性,第一处理单元217可为可操作的以使用从图像阵列216的一或多个输出端接收到的一或多个信号检测面部。虽然图2a、2b、3b和3c中说明的实施方案描述发送到主处理器或第二处理单元的事件,但在以下参看图12到17进一步描述的一些替代性实施方案中,专用微处理器(例如,参照图2a和2b的微处理器216和参照图3b和3c的第一处理单元217)可与传统上将不被考虑为处理器的电路(例如,i/o装置控制器)接口连接。这些实施方案可被称作单处理器实施。如下文进一步描述,在替代性实施例中,i/o装置控制器也可实施于专用微处理器内。

图4为说明根据实施例的感测基于动态场景的发生的方法400的流程图。如同本文中所提供的其它图,图4作为非限制性实例提供。替代性实施例可包含图中所展示的额外功能性,和/或图中块中的一或多个中展示的功能性可被省略、组合、分开和/或同时执行。用于执行块的功能性的装置可包含电子装置的一或多个硬件和/或软件组件,例如,图5中所说明且以下描述的移动装置的一或多个组件。一般所属领域的技术人员将认识到许多变化。

方法400可开始于块410,其中专用cv计算硬件从传感器阵列接收图像数据。所述图像数据可包含来自传感器阵列的多个图像像素的传感器读数。如前指示,专用cv计算硬件可实施于图2a的传感器阵列单元212和/或外围电路214中和/或并入到图2a的传感器阵列单元212和/或外围电路214内。(所述传感器阵列可包含于传感器阵列单元212中。)

在块420处,一或多个cv特征由专用cv计算硬件使用来自传感器阵列的相邻传感器像素的读数计算。此处,cv特征可包含可使用(例如)lbp、hsg和/或其它计算而计算的边缘、行等。专用cv计算硬件的使用可实现快速且高效计算,而不需要使用比较起来较高的能量和/或处理能力。

在块425处,基于一或多个cv特征执行一或多个cv操作。如前指出,这些操作可发生于外围电路中。举例来说,如关于图2b所描述,级联分类器可执行检测面部或其它对象的操作,且将指示面部或其它对象的检测的信号提供到微处理器。然而,如下所指出,基于一或多个cv特征执行cv操作可由外围电路(例如,专用硬件)和/或微处理器中的任一个或两者执行。执行cv操作的硬件和/或软件组件可产生输出信号(例如,级联分类器的输出、指示直接从cv计算hw接收的lbp计算的信号、在微处理器内内部产生的信号等)。所述微处理器可使用这些信号中的一或多个确定参考发生(例如,面部检测)已发生。

在块430处,确定参考发生已发生。如先前所指示,参考发生可包含多种事件中的一或多个。这些可包含(例如)进入人面部的视界、人面部上表达的表情、进入非人类动物面部的视界、进入人手的视界、手示意动作、进入参考对象的视界、从室内环境到室外环境的改变、参考移动、指示下落的场景中的快速移动、指示碰撞的风险的朝向对象的运动、指示危险的场景中的移动或对象或其任何组合。在一些实施例中,这些参考发生可为预定义的和/或可用户配置。

在块440处,产生用于第二处理单元的事件,其中所述事件指示参考发生。如本文中所使用,术语“事件”描述指示参考发生的提供到处理单元的信息。此处,将所述事件提供到第二处理单元。在一些实施例中,所述事件可简单地包含参考发生已发生的指示。在一些实施例中,所述事件可进一步包含检测到的参考发生的类型的指示。所述事件可由第一处理单元产生且发送到第二处理单元。在一些实施例中,在第一与第二处理单元之间可存在插入电路。

可注意到,取决于所要的功能性,由图4中所说明的各种块执行的功能性可由传感器系统(例如,图2a和2b的传感器系统210)的各种组件执行。举例来说,块410和420的功能性可由像素级或外围电路(例如,cv计算硬件)执行。举例来说,块425的功能性可由微处理器或专用硬件(例如,级联分类器或其它专用硬件)执行。在一些实施例中,块425、430和440的功能性可都由微处理器执行。替代地,一些实施例可用外围电路执行块425的功能性,且用微处理器执行块430和440的功能性。一般所属领域的技术人员将认识到若干变化。

再次参看图2a,本文中描述的传感器系统210的实施例可进一步执行不同类型的功能,例如,较低功率操作和较高功率操作,其关于在相应较低功率和较高功率模式中使用的功率或能量消耗。举例来说,在较高功率模式中,传感器系统可通过利用如本文中所描述的专用cv计算硬件在传感器系统210自身内提供图像处理能力。应理解,本文中“较低功率”和“较高功率”的使用希望为相对的。换句话说,甚至在较高功率模式中,描述的传感器系统仍然可能能够基于硬件计算的cv特征使用比用以软件执行cv算法的微处理器执行那些相同基于cv的计算少的功率执行强大的基于cv的计算。如先前详述,专用cv计算硬件可包含集成到传感器阵列单元212内的像素级电路(其可包含用于一些或所有像素的电路),其能够对每一相应像素执行处理,例如,检测相对于一或多个相邻像素的感测的光强度、基于感测的光关于相邻像素的色彩或强度的差异检测对象的边缘,和/或进行lbp、hsg和/或其它cv计算。除了像素级电路外或替代像素级电路,专用cv计算硬件可进一步包含外围电路214,以执行这些计算中的一些或所有。当不需要较高功率操作时,实施例可停用或另外在低功率模式中操作传感器系统210的此专用cv计算硬件中的一些或所有,此可省电。因此,如本文中所描述,较高功率操作涉及专用cv计算硬件(例如,传感器阵列单元212和/或外围电路214中的像素级电路),而当专用cv计算硬件中的一些或所有经停用或在减小的功率状态中时,执行较低功率操作。

在一个实例中,传感器系统210可配置传感器阵列单元212以作为单个像素操作。在此情况下,传感器系统210可停用所有像素级电路和/或外围电路214。在此布置中,所述阵列中的个别像素中的每一个对全部传感器阵列的单个感测值有影响。

图5展示图2a的传感器阵列单元212的简化说明。在传感器阵列单元212中,像素510按行和列排列且放置于接收光学装置的焦平面中以提供图像捕捉。(为了清晰起见,图5中仅少数像素510具有数字标签)。应理解,传感器阵列单元的特征(例如,像素大小、纵横比、分辨率等)可取决于所要的功能性而变化。举例来说,图5的简化说明展示10×10像素阵列,但实施例可具有数百、数千或数百万个像素(或更多)。

如前指示,每一像素510可包含传感器以及像素级电路以针对像素510执行cv计算。另外或替代地,可包含外围电路以针对所述像素执行cv计算,如在本文中其它处所指示。继续以上实例,传感器阵列单元212的像素级电路和/或外围电路中的一或多个组件可停用以使传感器阵列单元212能够以有功率效率方式对(例如)一转所有像素而非一个像素执行较低功率操作,或读取和组合来自所有像素的感测值以有效地作为仅单个像素操作(被称作“单个像素模式”。在此配置中,传感器系统210经配置以执行一或多个较低功率操作,例如,环境光感测(als)、接近性检测(pd)、对参考对象的接近性检测或运动检测。在一些情况下,可使用具有仅单个像素的传感器阵列充分执行这些功能中的每一个。

另外或替代地,传感器阵列单元212可按较低分辨率实现传感器阵列单元212可作为多个像素操作而非有效地作为仅单个像素操作的配置。如图6中所展示,传感器阵列单元212的像素510的子群组610可各自按类似于以上描述的单个像素模式的方式操作,由此有效地作为具有多个像素的传感器操作(在图6的配置中,四个子群组610有效地形成2×2像素阵列)。再次,举例来说,在此模式期间可停用传感器系统210的专用cv计算硬件中的一些或所有(例如,外围电路214和/或传感器阵列单元212的像素级电路)。在此配置中,传感器系统210可执行一或多个较低功率操作,例如,als、pd、改变检测(cd)或运动检测(md)。且虽然图6的实例使用2×2个像素的表观分辨率,但可配置其它降低的分辨率。再次,这些降低的分辨率可包含聚集多个个别像素510以共同地作为较少数目个像素操作,或可包含停用传感器阵列单元212中的像素510中的一或多个,使得像素在其经停用时不感测光或不提供输出。

如同关于图3a到3c描述的操作,传感器系统210可经配置以在其正在较低功率操作中执行时检测一或多个参考发生且产生一或多个对应的事件。举例来说,传感器系统210可并入到移动电话内,且经配置以当用于单个像素310的感测值指示由传感器系统210检测到的光的量的显著增大时检测到参考发生。检测到的光的量的此改变可指示已从用户的口袋取回移动电话或已从桌面或床头柜拾取移动电话。传感器系统210当在较低功率操作中时可确定此参考发生已发生且产生指示针对主处理器220的参考发生的事件。在检测到此事件后,传感器系统210可进一步激活专用cv计算硬件以使较高功率操作能够执行不同类型的cv操作,例如,面部检测和面部辨识。

图7为说明用于使用作为光学传感器的传感器系统的实例方法700的简化流程图。如同本文中所提供的其它图,将图7作为非限制性实例提供。另外,方法700可广泛应用于本文中描述的实施例,包含图4中展示的感测基于动态场景的发生的方法400。用于执行图7中所说明的块的功能性的装置可包含传感器系统(例如,图2a的传感器系统210)的一或多个硬件组件。在一些实施例中,装置可进一步包含主处理器,例如,图2a的主处理器220。且虽然以下将方法500描述为由图2a的传感器系统210执行,但实施例不限于此传感器系统。

方法700可开始于块710,此时,传感器系统210起始较低功率操作。举例来说,在一个方面中,传感器系统210起始als操作、pd操作、cd操作或md操作中的一个。在此方面中,传感器系统210通过停用专用cv计算硬件而起始较低功率操作,且配置传感器阵列单元212以按降低的分辨率操作。如上所论述,在不同实例中,降低的分辨率可包含单个像素模式。在一些实施例中,传感器系统210可起始多个较低功率操作,例如,als操作和pd操作两者、cd操作和md操作,或als操作、pd操作、cd操作和md操作中的所有四个。在起始较低功率操作后,方法700继续进行到块720。

在块720处,当执行较低功率操作时,传感器系统210检测参考发生。在传感器系统210经配置以执行als功能的一个实例中,传感器系统210产生至少一个较低功率光学传感器读数,其可用以检测参考发生。举例来说,较低功率光学传感器读数可指示环境光量的改变,且当感测的光的等级按高于参考阈值的速率改变或按高于参考阈值的速率改变色彩时,传感器系统210可基于较低功率光学传感器读数检测参考发生。

在另一实例中,传感器系统210经配置以执行pd功能。在此实例中,传感器系统210进一步包含光发射器(例如,发光二极管(led)),且传感器阵列单元212经配置以检测反射的光的量。当检测到的反射的光量超过阈值时,传感器系统210检测到参考发生。举例来说,传感器系统210可检测到指示对象在传感器系统210附近的参考发生。在一个方面中,当检测到的反射的光量低于阈值时,传感器系统210可检测到参考发生。举例来说,传感器系统210可检测到对象不再在传感器系统210附近的事件。

在一个实例中,传感器系统210经配置以执行cd功能。改变检测可检测超过阈值的场景的改变,其中此场景改变对应于参考发生,例如,如在图7的块720中所描述。参看图2b,在一些实施方案中,硬件扫描窗阵列238、cv计算硬件242、级联分类器244和/或专用微处理器216或其任何组合可经停用或处于低功率模式中。如此处所使用,停用希望指示此组件处于减小的功率状态中,这是因为其功能性未被正利用,或与其正常操作相比,其功能性急剧地减少。因此,在此状态中,与涉及cv特征计算和后续cv操作的正常操作相比,传感器系统可在较低功率模式中操作。用于传感器阵列单元212中的像素的大块(例如,如图6中所说明,对应于子群组610的块)的像素值可求和以得到表示每一块中的所有像素值的单个值。此求和可使用由二维集成硬件236提供的积分图像来计算,且存储于(例如)积分图像帧缓冲器(图2b中未展示)中。接着可和时地将不同各帧的块总和比较。在给定块中,如果与前一帧相比,来自当前帧的总和值的改变大于参考改变阈值,那么可检测到场景改变参考发生。在替代性实施方案中,仅当参考最小数目个块登记此改变时,将检测到场景改变参考发生。举例来说,在具有划分成81个块(像素分群成9乘9阵列,其中9乘9阵列中的每一块包含像素子阵列)的传感器元件阵列的系统中,可如上所述检测每一块的改变,且可仅在三个、四个或另一数目个块登记改变时,触发场景改变参考发生。在检测到场景改变后,传感器系统210可进一步激活硬件扫描窗阵列238、cv计算硬件242、级联分类器244和/或专用微处理器216的任何组合。应理解,以上描述的cd操作可在不使用积分图像或二维集成硬件的情况下实施,但可使用其它硬件确定求和的块值。

在一个实例中,传感器系统210可经配置以执行md功能。在此实例中,传感器系统210配置传感器阵列单元212以具有大于2×2像素分辨率但小于传感器阵列单元212中的像素的最大分辨率的降低的分辨率。在此实例中,传感器系统210经配置以检测在不同有效像素处的感测的光的相对改变。在此实例中,传感器系统210分析在有效像素(例如,如图6中所展示的子群组610)中的每一个处感测的光的量,确定在每一有效像素处相对于至少一个其它有效像素感测的光的量之间的第一差集合。传感器系统210接着检测在有效像素中的每一个处感测的光的第二量,和确定在每一有效像素处相对于至少一个其它有效像素感测的光的量之间的第二差集合。传感器系统210接着基于第一集合和第二集合确定差的改变。如果差的改变超过参考运动阈值,那么传感器系统210检测到参考发生。在一个方面中,如果第一有效像素指示感测到的光相对于第二有效像素的正改变,且随后第一有效像素指示感测到的光相对于第二有效像素的负改变,那么传感器系统210可检测到运动事件。

在块720处的参考发生的检测可接着触发至少一个较高功率操作的起始。在块730中,传感器系统210通过启用专用cv计算硬件来起始较高功率操作。举例来说,传感器系统210可起始面部检测操作或面部辨识操作,或示意动作辨识操作。替代地,传感器系统210可起始对象检测操作以检测参考对象在由传感器系统210捕捉的图像中的存在。

在触发较高功率操作的参考发生为pd操作的情形中,在由传感器系统210捕捉的图像中的参考对象的检测可指示参考对象的接近性。因此,在此实例方法中,较高功率操作是基于较低功率操作与较高功率操作之间的单向相依性关系。在此实例中的单向相依性关系是关于仅在较低功率操作检测到参考发生后发生的较高功率操作。

另外,较高功率操作可基于评估至少一个较低功率光学传感器读数。举例来说,如上所论述,传感器系统210可执行较低功率als操作和起始较高功率操作。在一些实例中,较高功率操作也可评估来自较低功率als操作的传感器读数。举例来说,较高功率操作可包含面部检测或辨识功能。在一个方面中,传感器系统210可评估als传感器读数以确定环境光级,和当执行面部辨识功能时调整曝光时间或孔隙大小。或在一些方面中,pd功能可产生传感器读数,较高功率操作可评估所述传感器读数以确定对检测的对象的估计范围。在一些方面中,传感器系统210可起始其它或多个较高功率操作。在一些方面中,传感器系统210可重复执行方法700。举例来说,在执行较高功率操作后,传感器系统210可重新开始方法700,且通过起始较低功率操作来执行块710处的功能性。举例来说,在检测到场景改变后,传感器系统210可进一步激活额外组件(例如,硬件扫描窗阵列238、cv计算硬件242、级联分类器244和/或微处理器216)的任何组合以执行一或多个较高功率操作。一旦执行较高功率操作,那么传感器系统210可接着回复到较低功率模式。

虽然已将图7的方法700描述为一连串较低功率和较高功率操作,但在一些实例中,传感器系统210可大体上同时执行较低功率和较高功率两个操作。举例来说,在块730处,在执行较高功率操作后,传感器系统210可起始较低功率操作,但继续执行较高功率操作。因此,在一些实例中,在块710处,在传感器系统210正执行较低功率操作时,传感器系统210也可执行额外功能(例如,较高功率操作),且通过起始较低功率操作,传感器系统210可不独占地执行较低功率操作。另外,当传感器系统210在块730处起始较高功率操作时,在一些实例中,传感器系统210可继续执行较低功率操作。

图8展示用于将传感器系统用作光学传感器的实例方法800。再次,将关于图2a中展示的实例传感器系统210论述方法800,但所述方法不限于此传感器系统。

所述方法800开始于块810,其中传感器系统210起始较低功率操作,如上关于图7的方法700所论述。在块820处,当执行较低功率操作时,传感器系统210检测到参考发生,如上关于图7的方法700所论述。在检测到参考发生后,所述方法800继续进行到块830。

在块830处,传感器系统210提供用于较高功率操作的参数值。在一个实例中,传感器系统210将环境光的等级作为用于较高功率操作的配置设定提供。在此实例中,传感器系统210可将参数值作为与光强度或自动曝光参数相关联的配置设定提供,或给参数值提供用于图像的积分时间。在另一实例中,传感器系统210提供到对象的估计的距离。在一个此实例中,如果传感器系统210执行pd操作且检测到对象,那么传感器系统210提供到所述对象的估计的距离或检测到的反射光的量。在另一实例中,传感器系统210将运动方向提供到较高功率操作。在一个此实例中,传感器系统210可经配置以执行较低功率md操作和/或块登记改变的移动(见以上cd的论述),且基于感测到的光随着时间的过去的相对量的改变,检测运动方向。可将运动的方向提供到较高功率操作,例如,示意动作检测操作。

在一些实施例中,传感器系统210可经配置以提供指示由传感器系统210检视的场景是否有可能为室内场景或室外场景的参数。举例来说,如果环境光的等级高于预定义的阈值,那么传感器系统210可提供指示所述场景为室外场景的参数,而如果环境光低于第二预定义的阈值,那么传感器系统210可提供指示所述场景为室内场景的参数。在一些实例中,可基于按一或多个频率检测到的峰值强度进行室内/室外确定。

在一些实施例中,传感器系统210可经配置以提供指示场景中的所关注区域的参数参数。在一个实例中,传感器系统210已配置传感器阵列单元212以按3×3个有效像素的降低的分辨率操作。在此实例中,传感器系统210可确定所关注的有效像素,其可基于检测到的环境光的改变、接近性检测参考发生、有效像素中的一或多个中的改变检测和/或检测到的运动方向。在一个实例中,传感器系统210可经配置以提供与参考发生频率相关联的参数。在此实例中,传感器系统210检测事件的多个发生且确定所述事件发生的频率。

根据一些实施例,可使用参数确定较高功率操作。在一个实例中,参数可指示cv特征选择操作。举例来说,所述参数可基于光的强度指示是否使用lbp功能、hsg功能或cv功能。在传感器系统210提供参数后,所述方法继续进行到块840。

在块840处,传感器系统210使用如上所论述的参数(在块830处提供)起始较高功率操作。

如上关于图7的方法700所论述,虽然图8的方法800已经描述为一连串较低功率和较高功率操作,但在一些实例中,传感器系统210可大体上同时执行较低功率和较高功率两个操作。举例来说,在块840处,在执行较高功率操作后,传感器系统210可起始较低功率操作,但继续执行较高功率操作。因此,在一些实例中,在块810处,在传感器系统210正执行较低功率操作时,传感器系统210也可执行额外功能(例如,较高功率操作),且通过起始较低功率操作,传感器系统210可不独占地执行较低功率操作。另外,当传感器系统210在块840处起始较高功率操作时,在一些实例中,传感器系统210可继续执行较低功率操作。此处,并不停用专用cv计算硬件以执行较低功率操作,传感器系统210可继续用启用的专用cv计算硬件操作。然而,较低功率操作可简单地不利用专用cv计算硬件。

图9展示用于将传感器系统用作光学传感器的实例方法。如同本文中描述的其它方法,将关于图2a中展示的实例传感器系统论述方法900,但所述方法不限于此传感器系统。

方法900开始于块910,其中传感器系统210起始较高功率操作,如上所论述。在块920处,传感器系统210基于在块910处的较高功率操作而检测参考发生,例如,面部检测或面部辨识。在检测到参考发生后,所述方法900继续进行到块930。

在块930处,传感器系统210提供用于较低功率操作的参数值。在一个实施例中,较高功率操作可检测在传感器系统210附近的对象,且在一些实例中,系统也可确定到所述对象的估计距离。传感器系统210可将指示对象的存在的包括参数的事件提供到较低功率操作,或也可(或取而代之)提供指示到所述对象的距离的参数。此参数可由较低功率操作用以辅助或增强pd功能。举例来说,pd功能可能能够基于所述参数更准确地检测在传感器附近的对象,例如,通过建立或调整阈值强度等级。

在一些实施例中,传感器系统210可提供指示到光源的方向的参数。举例来说,较高功率操作可检测经照射的对象或反射性对象,和对象的位置或到所述对象的方向。传感器系统210可基于较高功率操作提供指示到光源的方向的参数。较低功率操作可使用此参数,例如,在执行als时。在一个实例中,较高功率操作可确定由传感器系统210检视的场景为室内或室外场景。传感器系统210可将参数提供到所述较低功率操作。举例来说,所述参数可辅助或增强较低功率操作,例如,通过通过提供与用于检测环境照明的改变的阈值相关联的信息来辅助als功能。

在一些实施例中,实例传感器系统210提供指示房间的占用或在由传感器系统210检视的场景中可见的人的数目的指示符的参数。举例来说,较高功率操作可检测由传感器系统210检视的场景中的一或多个面部或一或多个人。传感器系统210可接着提供指示场景中的人或面部的数目的参数,或区的占用等级的指示符。在一个实例中,例如md功能的较低功率操作可使用此信息更好地检测运动,或减小md功能对运动的敏感性。举例来说,如果传感器系统210提供指示高占用率的参数,那么md功能可切换到需要更强运动指示的预定阈值,且因此md功能对运动不太敏感。替代地,如果传感器系统210提供指示低占用率的参数,那么md功能可在检测运动事件时增大其敏感性。在另一实例中,较高功率操作可设定用于以上描述的cd操作的块的阈值和/或最小数目。

在块940处,传感器系统210使用所述参数起始较低功率操作。举例来说,传感器系统210可如上关于图7和8所描述起始较低功率操作。在此实例中,所述较低功率操作在起始后经配置以使用所述参数。举例来说,如上所论述,pd功能可能能够基于所述参数更准确地检测在传感器附近的对象,例如通过确立或调整阈值强度等级。在一个实例中,所述参数可辅助或增强较低功率操作,例如,通过通过提供与用于检测环境照明的改变的阈值相关联的信息来辅助als功能。

一些实施例可重复执行方法900。举例来说,在执行较高功率操作后,传感器系统210可重新开始方法900且在块910处起始较低功率操作。

如上关于图7和8的方法700、800所论述,虽然已将图9的方法900描述为一连串较高功率和较低功率操作,但在一些实例中,传感器系统210可大体上同时执行较低功率和较高功率两个操作。举例来说,在块940处,在执行较低功率操作后,传感器系统210可起始较高功率操作,但继续执行较低功率操作。因此,在一些实例中,在块910处,在传感器系统210正执行较高功率操作时,传感器系统210也可执行额外功能(例如,较低功率操作),且通过起始较高功率操作,传感器系统210可不独占地执行较高功率操作。另外,当传感器系统210在块940处起始较低功率操作时,在一些实例中,传感器系统210可继续执行较高功率操作。

在一些实施例中,可组合一或多个方法。举例来说,图7或8的方法可与图9的方法组合。举例来说,在完成图7的方法700的块730后,所述方法可继续进行到图9的方法900的块920。在一个实例中,在完成图8的方法800的块840后,所述方法可继续进行到图9的方法900的块920。还预料到再另外的组合。

图10a展示可由传感器系统210执行的计算机视觉计算和较低功率光学传感器读数的实例状态图。图10a包含两个状态——较低功率操作状态1010和较高功率操作状态1020。在较低功率操作状态1010中,传感器系统210经配置以执行一或多个较低功率操作且可获得一或多个传感器读数。在较高功率操作状态1020中,传感器系统210经配置以执行一或多个较高功率操作(例如,计算机视觉计算和操作),且可获得一或多个传感器读数。在一些实施例中,传感器系统210经配置以在较低功率操作状态1010或较低功率操作状态1020中,但不同时在两者中。在一个此实例中,传感器系统210经配置以基于传感器读数从一个状态转变到另一状态,此可建立所述状态之间的单向相依性关系。举例来说,在一个实例中,较高功率操作的执行取决于来自较低功率操作的传感器读数,或较低功率操作的执行取决于来自较高功率操作的传感器读数。

然而,在一些实例中,传感器系统210可经配置以大体上同时在两个状态1010、1020中操作。举例来说,在一个实例中,传感器系统210可包括多个传感器阵列单元212,其中的一个可经配置以执行较低功率操作,且其中的另一者可经配置以执行较高功率操作。在一些实例中,210可细分传感器阵列单元212,使得传感器阵列单元212的一部分经配置以执行较低功率(或操作),而传感器阵列单元212的另一部分经配置以执行较高功率操作(或多个操作)。在传感器系统210经配置以大体上同时在两个状态1010、1020中操作的一个实例中,可基于来自所述状态中的一个的引起在另一状态中的特定操作的起始或引起在另一状态中的操作的重新配置的传感器读数建立单向相依性关系。在一些实施例中,在一个状态中的操作可提供可由在另一状态中的操作使用的一或多个参数值,例如,可在图10b中看出。

图10b展示用于可所述传感器系统210执行的计算机视觉计算和较低功率光学传感器读数的实例状态图。图10b包含以上关于图10a描述的状态,并且也包含响应于在状态1010、1020中的一或两者中的事件检测在状态1010、1020之间穿过的状态转变或信息。如同图10a中的状态图,传感器系统210可依序在两个状态1010、1020之间转变,或可同时在两个状态1010、1020中操作。传感器系统210可经配置以在所述状态中的每一个中检测事件。参考发生的实例较早先在本发明中描述。如图10b中所展示,传感器系统210基于从一个状态中的功能到另一状态中的一或多个功能的检测的事件,提供一或多个参数值。

举例来说,如果传感器系统210正在较低功率操作状态1010中执行pd操作且在传感器系统210附近检测到对象,那么传感器系统210在较高功率操作状态1020中将参数值(例如,指示检测到对象或到所述对象的估计范围的旗标值)提供到计算机视觉功能,例如,面部检测功能。在一些情形中,传感器系统210也可从较低功率操作状态1010转变到较高功率操作状态1020;然而,传感器系统210可使用所述一或多个参数值激活或继续执行在较高功率操作状态1020中的操作。传感器系统210也可在较高功率操作状态1020中检测事件,且将一或多个参数值提供到较低功率操作,且传感器系统可转变到较低功率操作状态,或使用所述一或多个参数值激活或继续执行在较低功率操作状态1020中的操作。

图11a、11b和11c说明根据一些实施例的将来自多个传感器元件的传感器读数转换到cv特征的过程。

图11a说明来自传感器阵列单元(例如,图2a或2b的传感器阵列单元212)的多个传感器元件的一群传感器读数(窗1102),其经考虑用于产生直方图和检测特征。

图11b说明产生用于中心传感器元件1104的二进制阈值以用于产生lbp标签的过程。图2b的cv计算硬件242可包含用于计算lbp标签的硬件。针对中心传感器元件产生的标签可由二进制值1111000表示。类似地,针对来自窗1102的九个感觉元件中的每一个产生lbp标签。每一标签可从主体传感器元件的角度提供cv特征的指示。可针对对应于传感器阵列中的多个主体传感器元件的信号重复产生标签的定限。图11b中所说明的像素级lbp可扩大以包含多块lbp,其中通过比较对应于一或多个主体传感器元件的块与其相邻传感器元件块的值(例如,与块中的一或多个主体传感器元件相关联的值的总和),针对一或多个主体传感器元件中的所述块产生说明的二进制阈值。可通过计算积分图像来有助于对应于传感器元件的块中的每一个的值的计算。类似地,应理解,也可类似地计算lbp的扩展,例如,局部三进位图案(ltp),其取决于主体传感器元件与相邻传感器元件之间的差提供三个输出。举例来说,在ltp的一个实施方案中,如果对应于相邻传感器元件的信号大于对应于主体传感器元件的信号加阈值,那么输出为一,如果与对应于主体传感器元件的信号相比,对应于相邻传感器元件的信号在阈值内,那么输出为零,且如果对应于相邻传感器元件的信号小于对应于主体传感器元件的信号减所述阈值,那么输出为负一。

图11c说明用于窗的正规化直方图,例如,表示来自传感器元件阵列的传感器元件的某一子集的窗,其从用于来自所述窗的传感器元件中的每一个的多个标签产生,所述窗例如存储于图2b的硬件扫描窗阵列238中的样本窗。如图11c中所展示,用于来自窗1102的传感器读数的lbp标签中的每一个可落在具有(例如)256个槽的直方图上任何处。因此,举例来说,当比较主体传感器元件与其八个相邻者时,将产生8位数,其意味着256个不同lbp标签是可能的。直方图可表示给定lbp标签中的每一个实际上在所述窗中产生的次数。为了确定面部存在于窗中,在一个实施方案中,可将产生的直方图与面部的参考直方图比较。为计算产生的直方图与参考直方图之间的相交,且可从相交的总和产生纯量和。如果纯量和大于阈值,那么对于给定概率,在所述窗内检测到面部。参考直方图和阈值通常使用关于(在此实例中)样本面部和样本非面部的数据集和其lbp直方图的机器学习算法在训练阶段中确定。一旦参考直方图和阈值在训练阶段中确定了,那么对于同一架构,其可在(例如)图2a或2b的微处理器216中编程,或替代地,以上直方图过程可由用于计算对于图像内的给定窗的直方图且确定面部或其它对象是否存在于窗内(类似于在以上图2b中论述的级联分类器硬件244)的专用硬件执行。应理解,替代将lbp标签用于直方图产生或除了将lbp标签用于直方图产生外,lbp标签也可由级联分类器用于对象检测,如在图2b中所论述。

用于cv计算硬件控制和应用执行的单处理器系统

图12描绘根据本发明的实施例的用于部署用于处置计算机视觉硬件控制和应用程序执行的低功率、单处理器系统的应用环境1200。此低功率、单处理器系统良好地适合于许多不同类型的应用。此处,展示玩具泰迪熊1210,其中用户(即,儿童)1220正接近所述泰迪熊1210。在泰迪熊1210内部的低功率、单处理器系统处理来自相机(例如,位于泰迪熊的眼睛内部)的图像,且执行基于图像的特征检测以检测人脸。当检测到人脸时,泰迪熊1210播放音乐曲调,或开始说话。可由玩具或其它装置响应于检测到人脸而采取的可能动作的其它实例可包含将灯接通、移动机械组件和/或其它i/o操作。

虽然在图12中描绘的实例中论述面部检测,但也可实施其它形式的参考发生的基于图像的检测,如本文中其它处所描述。本文中揭示的基于视觉的系统可用以检测广泛多种不同类型的目标对象或参考/对象出现。一些非限制性实例包含:(1)人检测,即,检测人外形/身体(例如,如与动物或非生物对象相反),(2)检测特定种类的动物(例如,大型动物、小宠物等),(3)检测特定种类的对象(例如,桌子、椅子等),(4)检测某一玩具或某一类型的玩具(例如,“宠物”玩偶),和许多其它。

应用环境1200的重要方面为可用于计算机系统的有限功率资源。举例来说,展示泰迪熊1210未经由电缆或电线连接到电源。一般来说,例如泰迪熊1210的玩具在其正常操作中依赖于电池电力。此为许多玩具应用、物联网(iot)应用和其它i/o装置应用的典型情境。意即,功率资源可很有限,且常常基于电池。

基于视觉的检测与有限功率资源的组合对在应用环境1200中展示的计算机系统造成显著的难题。基于视觉的检测(例如,以检测人脸)通常需要复杂的图像处理。利用典型通用处理器进行软件例程和算法以实施此图像处理将需要大功率消耗,此不适合于在延长的时间周期内仅有限功率资源可用的应用类型。同时,为了计算机系统广泛地可适应于各种类型的应用(例如,不同玩具应用、物联网(iot)应用和其它i/o装置应用等),系统优选地可编程且足够灵活以执行不同应用程序。

图13a为根据本发明的实施例的在利用多个软件组件用于处置计算机视觉硬件控制和应用程序执行的低功率、单处理器系统1300中的组件的框图。如所展示,单处理器系统1300包括视觉传感器系统1310,其通信耦合到i/o装置控制器1340。视觉传感器系统1310包括视觉传感器阵列单元1312、外围电路1314、专用微处理器1320和存储器1330。

视觉传感器系统1310可类似于图2a的传感器系统210或图2b的传感器系统。视觉传感器系统1310接收包括在可见光谱中的光的视觉输入。视觉输入由视觉传感器阵列单元1312按一或多个图像的形式捕捉。视觉传感器阵列单元1312包括按阵列排列的多个像素。视觉传感器阵列单元1312可为进一步包括物理透镜和其它组件的传感器的部分。外围电路1314对由视觉传感器阵列单元1312捕捉的图像数据操作。外围电路1314可包含例如图2b中所说明的子系统的子系统,例如,adc234、2d集成硬件236、硬件扫描窗阵列238、cv计算硬件242和级联分类器硬件244。

视觉传感器系统1310的子系统可对所述图像数据执行计算机视觉操作(例如,lbp和其它操作),以便检测在由视觉传感器阵列单元1312捕捉的一或多个图像中的特征。某一特征检测操作可涉及计算随着时间的过去的统计(例如,针对运动)、已改变的面积的量(例如,像素的数目)等。如所论述,可基于在所捕捉图片内计算的计算机视觉特征的一类对象检测包含面部检测,但可实施其它类型的对象检测。结果可输出和/或存储于存储器1330中。通过使用cv计算硬件(例如包含于外围电路1314中的cv计算硬件)执行cv操作和利用专用处理器1320控制cv硬件操作,视觉传感器系统1310按很低的功率消耗操作。

专用处理器1320支持包含操作系统(os)、应用软件等的软件环境1322。专用处理器1320可能能够在不同模式中操作,包含(例如)较低功率模式(例如,睡眠模式、断电模式等)和较高功率模式(例如,唤醒模式、正常模式等)。专用微处理器1320充当双角色:(1)控制计算机视觉硬件的操作,和(2)执行应用程序以实现专用i/o操作,例如,基于例如基于cv操作的参考发生的检测的结果。

如图中所展示,专用微处理器1320利用不同软件组件用于处置计算机视觉硬件控制和应用程序。一个此软件组件为cv硬件控制器1324。软件实施的cv硬件控制器1324可建置为在专用微控制器1320的软件环境内执行的os、驱动程序和/或应用程序的部分。cv硬件控制器1324可控制影响cv计算硬件(例如,外围电路1314)的操作的一或多个参数。

此参数的实例为有限搜索区参数,其可包括识别由视觉传感器阵列单元1312检索的图像的视野内的有限搜索区的一或多个值,以有助于更高效地搜索特定特征(例如,人脸)。以下结合图14进一步详细地描述此有限搜索区。影响cv计算硬件的操作的参数的其它实例可包含影响计算极限、分辨率、速度、效率等的参数。这些cv计算参数包含检测的对象大小、目标真实肯定和假警报率、采样密度和数据的预处理/调节。举例来说,减小的对象大小可减少执行时间,这是因为搜索目标特征将按更有限的规模发生。影响cv计算硬件的操作的其它参数包括(例如)用于机器学习(ml)模型的值。参数和/或mc模型值的实例包含待由lbp或ltp计算硬件使用的阈值、用于产生以上参照图2b的级联分类器244论述的纯量加权平均值的权数、将纯量加权平均值与的比较的阈值、级联分类器244的级数。参数的其它实例可包含用于根据在图11c中描述的实施方案检测参考对象的存在的参考直方图。关于ml模型化的参数的额外实例包含用于调谐模型复杂性的参数、训练参数和正与负训练参数等。cv计算硬件可在特征的检测中并有机器学习。此处,ml模型的值可从训练获得,且可由制造商和/或由用户(如果实施用户训练)提供。然而,更一般来说,专用微处理器1320控制cv计算硬件,例如,通过载入模型,模型可包含待用于cv特征计算的阈值。另外或替代地,专用微处理器1320直接地或间接地通过指导cv计算硬件来控制cv计算硬件(如在图2b中所描述,其中级联分类器244控制cv计算hw242,但级联分类器244可由专用微处理器1320指导),以在从视觉传感器阵列单元1312接收到帧后执行参考对象检测。

展示为专用微处理器1320的部分的另一软件组件为应用程序1326。应用程序1326依赖于基于cv计算硬件的操作产生的事件(例如,面部检测事件或指示参考发生的检测的其它事件)的结果。应用程序1326也指定待发生的响应,明确地说,待响应于检测到的事件而执行的i/o操作。应用程序1326可与i/o装置控制器1340通信以实现所要的i/o操作。举例来说,返回参看图12中展示的泰迪熊1210,泰迪熊1210的制造商可指定应用程序1326且将其载入到存储器1330内,所述存储器可包含例如eeprom的非易失性存储器或快闪存储器,快闪存储器可为可编程的,或由包含应用程序的经预编程存储器物理替换。应用程序1326可在从外围电路1314接收到事件后控制泰迪熊1210的响应。在此情况下,当检测到人脸时,泰迪熊1210播放音乐音调。音乐音调可为可由耦合到i/o装置控制器1340的音频扬声器(未图示)播放的预定数字音频文件。此处,i/o装置控制器可为包括各种组件(例如,存储器、编解码器、数字到模拟(d/a)转换器等)的音频控制器。

专用微处理器1320主要地专用于控制cv计算硬件和执行响应于基于cv操作产生的事件的应用程序的任务。通过将cv操作卸载到cv计算硬件且朝向cv硬件操作的控制和影响i/o操作的特定应用程序的执行引导专用微处理器1320的可用处理能力,图13a中展示的低功率、单处理器系统1300能够平衡对于减小的功率消耗连同进行不同应用程序且支持广泛范围的i/o操作的需求。

虽然专用微处理器1320在图13a中展示为能够支持包含操作系统(os)和应用程序的软件环境的处理器,但在其它实施例中,专用微处理器可包括支持更基本功能性的更简单电路。仅作为实例,可使用支持功能和/或回叫的简单状态机。在某些情境中(例如,在低端系统中),可不存在对于操作系统(os)的支持。根据本发明的各种实施例,此更简单电路可用以降价成本和复杂性,同时仍服务控制计算机视觉计算硬件的操作以及控制一或多个i/o装置的操作的双重任务。

图13b为根据本发明的实施例的在利用多个硬件核心用于处置计算机视觉硬件控制和应用程序执行的单处理器系统1350中的组件的框图。单处理器系统1350以与图13a中展示的单处理器系统1300类似的方式操作,只有以下情况除外,在单处理器系统1350中,使用两个不同硬件核心执行控制cv计算硬件和执行应用程序的双重功能。如所展示,单处理器系统1350包括通信耦合到i/o装置控制器1340的视觉传感器系统1360。视觉传感器系统1310包括视觉传感器阵列单元1312、外围电路1314、专用微处理器1370和存储器1330。这些组件中的多数在其操作上与图13a中展示的对应组件相当。然而,展示专用处理器1370包括至少两个硬件核心,即,cv硬件控制器核心1372和应用程序处理器核心1374。cv硬件控制器核心1372经配置以控制包含(例如)外围电路1314的cv计算硬件的各种操作。应用程序处理器核心1374可支持包含操作系统(os)、应用软件等的软件环境。明确地说,应用程序处理器核心1374经配置以执行应用程序(此应用程序由例如玩具熊1210(图12中展示)的装置的制造商安装),以响应于基于cv操作产生的事件(例如,面部检测事件)执行i/o操作。在其它实施例中,应用程序处理器核心1374和/或cv硬件控制器核心1372可使用更简单的电路来实施。举例来说,可使用支持功能和/或回叫的基本状态机。根据本发明的各种实施例,此更简单电路可用以降价成本和复杂性,同时仍服务控制计算机视觉计算硬件的操作以及控制一或多个i/o装置的操作的双重任务。

图14展示根据某些实施例的经指定以流线化特征检测的有限搜索区1404的实例。所述图描绘对应于完全图像帧的全部视野1402。此完全图像帧可为到视觉传感器系统1310和1360(分别在图13a和13b中)的视觉输入。在某些应用中,针对参考对象搜索全部图像帧可能并非必要的。举例来说,在安装于机器人(例如,图16c)中的应用程序中,在机器人板上的相机的视野可足够大以捕捉天花板或天空的部分。然而,在此特定应用中,机器人在图像的上部部分中搜索人脸可能并非必要的。因此,应用程序可将对象检测(即,面部检测)限制于对应于图像的下部部分的有限搜索区1404。如此进行消除了在图像的某些区域中执行的计算集中性然而不必要的cv操作。

有限搜索区1404可由基于软件的cv硬件控制器1324(图13a)或cv硬件控制器核心(图13b)指定。此为由单处理器系统用以控制cv计算硬件的操作的一或多个参数的实例。取决于应用,有限搜索区1404的形状、位置和/或大小可不同。举例来说,在某些情境中,可使用圆形或椭圆形有限搜索区。有限搜索区的位置可在全部视野的中心、在视野的上部部分中、在拐角中等。并且,可变化有限搜索区的大小。有限搜索区的形状、位置和/或大小可使用默认设定来定义。另外或替代地,有限搜索区的形状、位置和/或大小可基于应用程序的推断或明确要求来确定。

图15展示可响应于基于cv操作检测到的事件而操作的i/o装置(即,致动器)的一个实例。如所述图中所展示,单处理器视觉传感器系统1310(先前在图13a中展示)耦合到i/o装置控制器1340。根据本发明的实施例,可利用许多不同类型的i/o装置控制器1340。此处,i/o装置控制器1340为致动器控制器,其产生用于控制电到机械致动器1510的位置/移动的控制信号。可使用各种类型的致动器控制器。举例来说,一类致动器控制器可为比例-积分-导数(pid)控制器,其并有控制回路,所述控制回路连续地监视误差值且应用变量校正,以朝向所要的设定点控制致动器。也可使用其它类型的致动器控制器,包含未并有控制回路的更简单控制器。致动器1510机械连结到可移动到“睁眼”位置1520或“闭眼”位置1522内的玩具眼睛。可响应于基于cv操作的事件的检测控制安装在例如泰迪熊或玩偶的玩具中的玩具眼睛或一组玩具眼睛睁开或闭上。

图15展示i/o装置控制器1340为与单处理器视觉系统1310分开的截然不同的组件(如图13a和13b的情况)的实施例。然而,在其它实施例中,i/o装置控制器可为单处理器视觉系统1310的部分。此外,在控制i/o装置的功能性经建置到单处理器视觉系统1310内的情况下,i/o装置控制器1340也可被简单地视为接脚,例如,单处理器视觉系统1310的通用输入/输出(gpio)接脚。此gpio接脚可实施有或未实施提升信号振幅的伴随的放大器电路。在此实施方案中,在i/o装置控制器待实施于视觉传感器系统1310内(例如,在分别参看图13a和13b的专用处理器1320或1370内)的情况下,在视觉传感器的处理器内的i/o装置控制器的编程可如上参照在图13a的论述中的应用程序1326到存储器1330内的载入所描述而达成。

举例来说,参看图16a,玩具玩偶1610可安装有一对如所描述的可机械调整的眼睛。玩具玩偶1610可为电池操作式,且装备有单处理器视觉传感器系统1310,其能够操作cv计算硬件以产生面部检测事件,执行由玩具玩偶的制造商提供的应用程序,和产生面部检测事件。取决于应用程序,面部检测事件可触发i/o操作以控制致动器将玩偶的眼睛在睁开与闭上位置之间机械移动。举例来说,玩具玩偶1610可使其眼睛开始就闭上。当用户1620接近时,玩具玩偶1610内的单处理器系统检测到用户1620的面部,且与应用程序一起,响应于用户1620的存在,使玩具玩偶1610的眼睛睁开且“唤醒”。当不再检测到面部时,例如,当用户1620移动远离玩具玩偶1610时,玩具玩偶1610的眼睛可闭上。

图16b展示基于面部检测自动解锁和/或打开的门1630的实例。门1630可按如先前所论述的类似方式装备有单处理器视觉传感器系统1310。举例来说,单处理器系统可安装在门1630的门框或顶部区中。单处理器视觉传感器系统1310可能能够操作cv计算硬件以产生面部检测事件,执行由门的制造商提供的应用程序,和产生面部检测事件。取决于应用程序,面部检测事件可触发i/o操作以控制致动器机械移动锁定机构和/或为门1630的部分的门打开机构。仅作为实例,如果用户1640从门1630的室内/内部侧接近,那么应用程序可操作以控制一或多个致动器(1)解锁门1630,和(2)打开门1630。这些操作可基于在由定位于门1630的门框或顶部区上且面向房间的内部的相机捕捉的图像中的人脸的检测。在门1630的外部侧上,应用程序可不同地操作。举例来说,在于门1630的室外/外部侧上检测到人脸后,应用程序可触发用户鉴认例程,以在解锁和/或打开门1630前验证用户的身分。

图16c展示又一实例——能够基于面部检测与用户1660交互的玩具机器人1650的实例。玩具机器人1650可按如先前所论述的类似方式装备有单处理器视觉传感器系统1310。单处理器视觉传感器系统1310可能能够操作cv计算硬件以产生面部检测事件,执行由玩具机器人的制造商提供的应用程序,和产生面部检测事件。取决于应用程序,面部检测事件可触发i/o操作以控制机器人的各种操作以有助于与用户1660的交互。举例来说,玩具机器人1650可经程序化以执行“跟随人”任务。假定有通过控制i/o操作来视觉检测人脸且反应的能力,那么应用程序可“追踪”检测到的人脸的位置且使用玩具机器人1650的可机械移动零件跟随人脸的位置。举例来说,玩具机器人的手指/手1652可指向检测到面部的方向。明确地说,单一处理器可基于面部检测事件(基于cv操作而确定)确定检测到的面部的位置。单一处理器可基于检测到的面部的确定的位置控制机器人的手指/手的移动。随着用户1660移动,玩具机器人的手指/手1652可经由由在单处理器系统1310的指引下操作的i/o控制器且与应用程序一起控制的致动器而移动,以当其相对于玩具机器人1650移动时追踪用户1660的面部的位置。仅为了说明性目的而提出此和先前实例。可使用基于能够控制cv计算硬件和执行应用程序的单处理器系统提出的平台来实施其它类型的移动和操作,以与应用程序执行一起与i/o装置控制器通信。

图17为说明用于对基于场景的发生反应的过程1700的流程图。在步骤1702,所述过程涉及在专用计算机视觉(cv)计算硬件处从包括多个传感器像素的传感器阵列接收传感器数据。在步骤1704,所述过程涉及在所述专用cv计算硬件处使用来自所述传感器阵列的相邻传感器像素的读数计算一或多个cv特征。在步骤1706,所述过程涉及使用第一处理单元控制与专用cv计算硬件的操作相关联的一或多个参数,以影响一或多个cv特征的计算。在步骤1708,所述过程涉及在所述第一处理单元处执行一或多个应用程序。在步骤1710,所述过程涉及在所述第一处理单元处且与一或多个应用程序的执行一起,与至少一个输入/输出(i/o)装置控制器通信,以实现i/o操作以反应于基于所述一或多个经计算的cv特征所产生的事件。

图18为根据实施例的可利用本文中描述的技术和特征的移动装置105(例如,玩具、iot装置或其它装置)的内部组件的框图。应注意,图18仅意味着提供各种组件的一般化说明,可适当的利用所述组件中的任一个或所有。可注意,在一些情况下,由图18所说明的组件可局部化到单个物理装置和/或分布于各种网络化装置之间,所述网络化装置可安置于不同物理位置处。

展示装置105包括可经由总线1805电耦合(或可在适当时以其它方式通信)的硬件元件。硬件元件可包含处理单元1810,所述处理单元可包含(不限于)一或多个通用处理器、一或多个专用处理器(例如,数字信号处理(dsp)芯片、图形加速处理器、专用集成电路(asic)等)和/或其它处理结构或装置。所述以上描述的实施例中,处理单元1810可对应于图2a的主处理器220和/或关于图4描述的第二处理单元。如图18中所展示,取决于所要的功能性,一些实施例可具有单独的dsp1820。所述装置105也可包含一或多个输入装置1870,其可包含(不限于)触碰屏幕、触控板、麦克风、按钮、拨号盘、开关等;和一或多个输出装置1816,其可包含(不限于)显示器、发光二极管(led)、扬声器等。

装置105也可包含无线通信接口1830,其可包含(不限于)调制解调器、网络卡、红外线通信装置、无线通信装置和/或芯片组(例如,bluetoothtm装置、ieee802.11装置、ieee802.16.4装置、wifi装置、wimax装置、蜂窝式通信设施等)等。无线通信接口1830可准许与网络、无线存取点、其它计算机系统和/或本文中所描述的任何其它电子装置交换数据。可经由发送和/或接收无线信号1834的一或多个无线通信天线1832进行通信。

取决于所要的功能性,无线通信接口1830可包含与基地收发器台(例如,蜂窝式网络的基站)和/或存取点通信的单独收发器。这些不同数据网络可包含各种网络类型。另外,无线广域网(wwan)可为码分多址(cdma)网络、时分多址(tdma)网络、频分多址(fdma)网络、正交频分多址(ofdma)网络、单载波频分多址(sc-fdma)网络、wimax(ieee802.16)等等。cdma网络可实施一或多个无线电存取技术(rat),例如,cdma2000、带宽带cdma(w-cdma)等等。cdma2000包含is-95、is-2000和/或is-856标准。tdma网络可实施全球移动通信系统(gsm)、数字先进型移动电话系统(d-amps)或某一其它rat。ofdma网络可使用lte、先进型lte等等。在来自3gpp的文件中描述lte、先进型lte、gsm和w-cdma。cdma2000描述于来自命名为“第三代合作伙伴计划2”(3gpp2)的协会的文件中。3gpp和3gpp2文件可公开获得。无线局域网(wlan)也可为ieee802.11x网络,且无线个人局域网(wpan)可为蓝牙网络、ieee802.16x或某一其它类型的网络。本文中所描述的技术也可用于wwan、wlan和/或wpan的任何组合。

装置105可进一步包含传感器1840。此类传感器可包含(不限于)一或多个加速度计、陀螺仪、相机、磁力计、高度计、麦克风、接近性传感器、光传感器等。另外或替代地,传感器1840可包含图2a或2b的传感器系统210和/或类似电子传感器。因此,本文中描述的实施例可包含在传感器1840的传感器系统210中的第一处理器(例如,图2a或2b中的微处理器216),其为包含于图18的处理单元1810(对应于图2a的主处理器220)中的第二处理单元产生事件。在一些实施例中,传感器1840的第一处理单元(例如,图2a或2b中的传感器系统210的微处理器216)可从接收从图像阵列(例如,图2a或2b的传感器阵列单元212)的一或多个输出端的一或多个信号确定已检测到面部,且响应于所述确定,为第二处理单元(例如,图18的处理单元1810)产生面部检测事件。在一些实施例中,处理单元1810可在低功率模式中操作,且传感器1840的第一处理单元(例如,图2a或2b中的传感器系统210的微处理器216)可操作以当处理单元2010正在低功率模式中操作时产生待由处理单元1810接收的事件和/或将事件传达到处理单元1810。

装置的实施例也可包含卫星定位系统(sps)接收器1880,其能够使用sps天线1882从一或多个sps卫星接收信号1884。sps接收器1880可使用常规技术从sps系统的卫星提取所述装置的位置,sps系统例如全球导航卫星系统(gnss)(例如,全球定位系统(gps))、伽利略(galileo)、格洛纳斯(glonass)、指南针(compass)、日本的准天顶(quasi-zenith)卫星系统(qzss)、印度的印度地区导航卫星系统(irnss)、中国的北斗等。此外,各种扩增系统(例如,基于卫星的扩增系统(sbas))可使用sps接收器1880,所述扩增系统可与一或多个全球和/或地区性导航卫星系统相关联或以其它方式经启用以与一或多个全球和/或地区性导航卫星系统一起使用。以实例说明而非限制,sbas可包含提供完整信息、微分校正等的扩增系统(例如,广域增强系统(waas)、欧洲地球同步导航扩增服务(egnos)、多功能卫星扩增系统(msas)、gps辅助式地理扩增导航或gps和地理扩增导航系统(gagan)等)。因此,如本文中所使用,sps可包含一或多个全球和/或地区性导航卫星系统和/或扩增系统的任何组合,且sps信号可包含sps、类sps和/或与此一或多个sps相关联的其它信号。

装置105可进一步包含存储器1860和/或与其通信。存储器1860可包含(不限于)本地和/或网络可存取存储装置、磁盘机、驱动阵列、光学存储装置、可为可编程的固态存储装置(例如,随机存取存储器(“ram”)和/或只读存储器(“rom”)、可更新快闪存储器等。这些存储装置可经配置以实施任何适当数据存储,其包含(不限于)各种文件系统、数据库结构等。取决于所要的功能性,图2a的存储器218(其可包含先前列出的存储器类型中的任一个)可包含于存储器1860中或可与存储器1860截然不同。

装置105的存储器1860也可包括软件元件(未图示),包含操作系统、装置驱动器、可执行程序库和/或内嵌于计算机可读媒体中的其它代码(例如,一或多个应用程序),所述软件元件可包括由各种实施例提供的计算机程序,和/或可经设计以实施由其它实施例提供的方法和/或配置由其它实施例提供的系统,如本文中所描述。在一方面中,接着,此代码和/或指令可用以配置和/或调适通用计算机(或其它装置)以根据所描述的方法执行一或多个操作。

所属领域的技术人员将显而易见,可根据特定要求作出实质变化。举例来说,也可使用定制硬件,和/或特定元件可以硬件、软件(包括便携式软件,例如,小程序等)或两者来实施。另外,可使用到其它计算装置(例如,网络输入/输出装置)的连接。

参看附图,可包含存储器的组件可包含非暂时性机器可读媒体。如本文中所使用,术语“机器可读媒体”和“计算机可读媒体”指参与提供使机器以特定方式操作的数据的任何存储媒体。在上文所提供的实施例中,各种机器可读媒体可能涉及将指令/代码提供到处理单元和/或其它装置以供执行。另外或可替代地,机器可读媒体可用以存储和/或携载此类指令/代码。在许多实施方案中,计算机可读媒体为物理和/或有形存储媒体。此媒体可呈许多形式,包含(但不限于)非易失性媒体、易失性媒体和传输媒体。普通形式的计算机可读媒体包含(例如)磁性和/或光学媒体、打孔卡片、纸带、具有孔图案的任何其它物理媒体、ram、prom、eprom、flash-eprom、任何其它存储器芯片或筒、如下文中所描述的载波,或计算机可从其读取指令和/或代码的任何其它媒体。

本文中论述的方法、系统和装置为实例。各种实施例可恰当地省略、取代或添加各种程序或组件。举例来说,可在各种其它实施例中组合关于某些实施例描述的特征。可以类似方式组合实施例的不同方面和元件。本文中所提供的图的各种组件可以硬件和/或软件体现。并且,技术发展,且因此,许多元件为实例,所述实例并不将本发明的范围限制于那些特定实例。

大体上出于普通使用的原因,已证实有时将此类信号称作位、信息、值、元素、符号、字符、变量、项、数字、编号等为方便的。然而,应理解,这些或类似术语中的所有者欲与适当物理量相关联且仅为方便的标签。除非另有特定陈述,否则从以上论述显而易见,应理解,贯穿本说明书,利用例如“处理”、“计算”、“演算”、“确定”、“确认”、“识别”、“关联”、“测量”、“执行”等的论述指特定设备(例如,专用计算机或类似专用电子计算装置)的动作或过程。因此,在本说明书的上下文中,专用计算机或类似专用电子计算装置能够操纵或转换信号,所述信号通常表示为专用计算机或类似专用电子计算装置的存储器、寄存器或其它信息存储装置、传输装置或显示装置内的物理电子、电气或磁性量。

如本文中所使用,术语“和”和“或”可包含多种含义,所述含义也预期至少部分取决于使用这些术语的上下文。通常,“或”如果用以关联一个列表(例如,a、b或c),那么希望意味着a、b和c(此处以包含性意义使用),以及a、b或c(此处以排它性意义使用)。此外,如本文中所使用的术语“一或多个”可用于以单数形式描述任何特征、结构或特性,或可用以描述特征、结构或特性的某一组合。然而,应注意,此仅为说明性实例且所主张的标的不限于此实例。此外,术语“中的至少一个”如果用以关联列表(例如,a、b或c),那么可解释为意味着a、b和/或c的任何组合(例如,a、ab、aa、aab、aabbccc等)。

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

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