CN118043859A - 高效视觉感知 - Google Patents
高效视觉感知 Download PDFInfo
- Publication number
- CN118043859A CN118043859A CN202280066344.5A CN202280066344A CN118043859A CN 118043859 A CN118043859 A CN 118043859A CN 202280066344 A CN202280066344 A CN 202280066344A CN 118043859 A CN118043859 A CN 118043859A
- Authority
- CN
- China
- Prior art keywords
- frame
- attention
- regions
- region
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000016776 visual perception Effects 0.000 title claims abstract description 46
- 238000013528 artificial neural network Methods 0.000 claims abstract description 368
- 238000000034 method Methods 0.000 claims abstract description 290
- 238000012545 processing Methods 0.000 claims abstract description 232
- 230000006870 function Effects 0.000 claims abstract description 97
- 230000004438 eyesight Effects 0.000 claims abstract description 73
- 230000008569 process Effects 0.000 claims description 158
- 230000003287 optical effect Effects 0.000 claims description 125
- 238000001514 detection method Methods 0.000 claims description 122
- 230000000007 visual effect Effects 0.000 claims description 94
- 238000004422 calculation algorithm Methods 0.000 claims description 59
- 230000015654 memory Effects 0.000 claims description 58
- 238000010586 diagram Methods 0.000 description 33
- 230000033001 locomotion Effects 0.000 description 17
- 230000003190 augmentative effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 9
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004424 eye movement Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
提供了用于视觉感知处理的系统和技术。示例方法可以包括:从帧序列确定帧的每个区域的注意力需求分数或特性;基于每个区域的注意力需求分数或特性来生成帧的每个区域的注意力投票,每个区域的注意力投票提供注意力需求和/或注意力请求;基于来自一个或多个计算机视觉功能的多个注意力投票来确定帧的每个区域的注意力分数或特性;基于帧的每个区域的注意力需求分数或特性,选择帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用神经网络对一个或多个区域的处理来检测或跟踪帧的一个或多个区域中的一个或多个对象。
Description
技术领域
本公开内容总体上涉及用于检测和跟踪对象的视频分析。例如,本公开内容的各方面涉及基于每区域注意力投票和每秒帧的高效视觉感知。
背景技术
电子设备越来越多地配备有相机硬件以捕获图像和/或视频以供消费。例如,计算设备可以包括相机(例如,诸如包括一个或多个相机的移动电话或智能电话的移动设备)以允许计算设备捕获场景、人、对象等的视频或图像。图像或视频可以由计算设备(例如,移动设备、IP相机、扩展现实设备、连接设备、高级驾驶员辅助系统等)捕获和处理,并且存储或输出以供消费(例如,显示在设备和/或另一设备上)。在一些情况下,图像或视频可以被进一步处理以用于效果(例如,压缩、图像增强、图像恢复、缩放、帧速率转换等)和/或某些应用,诸如计算机视觉、扩展现实(例如,增强现实、虚拟现实等)、对象检测、对象跟踪、图像识别(例如,面部识别、对象识别、场景识别等)、特征提取、认证和自动化等。
在一些情况下,电子设备可以处理图像以检测和/或跟踪图像中描绘的对象、面部和/或任何其它项目。对象检测和/或跟踪可以用于各种应用,诸如例如认证、自动化、姿势识别、监视、扩展现实、游戏、计算机视觉等。例如,可以由自主车辆使用对象检测和跟踪来执行自主驾驶操作。然而,实现用于对象检测和跟踪的系统和操作可以具有高功率和处理需求。高功率和处理需求可能产生热管理问题,这可能对实现这种对象检测和跟踪操作的计算机系统产生负面影响。例如,热管理问题可能对计算机系统的稳定性/可靠性、性能、操作等具有负面影响。
发明内容
本文描述了用于计算机视觉中的高效视觉感知的系统和技术。根据至少一个示例,提供了一种用于计算机视觉中的高效视觉感知的方法。该方法可以包括:从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
根据至少一个示例,提供了一种用于计算机视觉中的高效视觉感知的非暂时性计算机可读介质。该非暂时性计算机可读介质可以包括指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
根据至少一个示例,提供了一种用于计算机视觉中的高效视觉感知的装置。该装置可以包括存储器和耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
根据至少一个示例,提供了另一种用于计算机视觉中的高效视觉感知的装置。该方法可以包括:用于从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票的单元,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以确定所述第一帧中的一个或多个特征;至少部分地基于所述第一帧中的所述一个或多个特征来确定所述第一帧的每个区域的注意力需求分数或特性;以及基于所述每个区域的注意力需求分数或特性来确定所述每个区域的注意力分数。
在一些示例中,所述一个或多个特征可以包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和/或可视化显著性信息。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以使用光流算法来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。在一些示例中,检测所述第一帧的所述一个或多个附加区域中的所述一个或多个附加对象可以包括使用所述光流算法处理所述一个或多个附加区域并且避免使用所述神经网络处理所述一个或多个附加区域。
在一些情况下,所述一个或多个计算机视觉功能可以包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点估计和/或可视化显著性检测。
在一些示例中,检测所述第一帧的所述一个或多个区域中的所述一个或多个对象可以包括避免使用所述神经网络来处理所述第一帧的一个或多个附加区域;并且在处理来自所述帧集合的预定数量的帧之后,使用所述神经网络处理第二帧的一部分,所述第二帧的所述部分对应于所述一个或多个附加区域中的至少一个附加区域。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以使用所述第一帧的一个或多个特征来生成用于所述一个或多个对象的分类和边界框。
在一些示例中,检测所述一个或多个区域中的所述一个或多个对象可以包括使用所述神经网络处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的一个或多个附加区域。
在一些情况下,所述第一帧的所述一个或多个区域的组合小于所述第一帧的所有区域的组合,并且所述第一帧的所述一个或多个区域可以包括在所述第一帧中确定的一个或多个注意力区域。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以基于一个或多个约束来确定所述神经网络的神经网络负载目标。
在一些示例中,所述一个或多个约束可以包括与计算设备相关联的系统性能、系统组件性能、功耗和/或温度条件。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以针对不同的帧区域应用神经网络处理的不同的每秒帧速率。在一些示例中,所述不同的每秒帧速率基于所述第一帧的所选择的一个或多个区域。
在一些情况下,所述一个或多个区域可以包括第一区域和第二区域,所述第一区域可以具有比所述第二区域更高的注意力分数,并且可以以比具有较低注意力分数的所述第二区域更高的每秒帧速率使用所述神经网络来处理具有较高注意力分数的所述第一区域。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以使用所述神经网络来根据一个或多个相应的处理速率仅处理所述帧集合的一个或多个部分区域。在一些示例中,所述帧集合的所述一个或多个部分区域可以包括所述第一帧的所述一个或多个区域。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以基于针对计算负载能力的动态改变的约束来确定要使用所述神经网络进行处理的区域的数量以及用于使用所述神经网络处理帧区域的一个或多个每秒帧速率。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以确定与所述区域的数量和所述一个或多个每秒帧速率相关联的总处理器负载满足动态改变的约束。
在一些方面中,上述装置中的每一个可以是移动设备、智能或连接设备、相机系统、计算机系统、高级驾驶员辅助计算机、机器人系统和/或扩展现实(XR)设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备),可以是上述各项的一部分,或者可以包括上述各项。在一些示例中,所述装置可以包括车辆、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、可穿戴设备、个人计算机、膝上型计算机、平板计算机、服务器计算机、机器人设备或系统、航空系统或其它设备或者是其一部分。在一些方面中,所述装置包括用于捕获一个或多个图像的图像传感器(例如,相机)或多个图像传感器(例如,多个相机)。在一些方面中,所述装置包括用于显示一个或多个图像、通知和/或其它可显示数据的一个或多个显示器。在一些方面中,所述装置包括一个或多个扬声器、一个或多个发光器件和/或一个或多个麦克风。在一些方面中,上文描述的装置可以包括一个或多个传感器。在一些情况下,所述一个或多个传感器可以用于确定所述装置的位置、所述装置的状态(例如,跟踪状态、操作状态、温度、湿度水平和/或其它状态)和/或用于其它目的。
该发明内容既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或全部附图以及每个权利要求来理解该主题。
在参考以下说明书、权利要求和附图时,上述内容以及其它特征和方面将变得更加显而易见。
附图说明
下文参考以下附图详细描述了本申请的说明性示例:
图1是示出根据本公开内容的一些示例的计算机视觉(CV)系统的示例的框图;
图2是示出根据本公开内容的一些示例的用于视觉感知的示例对象检测框架的示意图;
图3是示出根据本公开内容的一些示例的示例视觉感知工作负载的示例功耗和执行时间的图表;
图4A是示出根据本公开内容的一些示例的人类视觉系统的示例的示意图;
图4B示出了根据本公开内容的一些示例的面部的图像和面部的眼睛扫视的示例跟踪;
图5是示出根据本公开内容的一些示例的实现每区域注意力投票和处理速率的示例基于计算机的视觉感知系统的示例功能的表;
图6A是示出根据本公开内容的一些示例的视觉感知处理的示例流的示意图;
图6B示出了根据本公开内容的一些示例的由视觉认知和存储器算法识别的示例注意力区域;
图6C示出了根据本公开内容的一些示例的由神经网络针对与由视觉认知和存储器算法识别并由神经网络处理的感兴趣区域相对应的检测到的对象生成的示例边界框;
图7是示出根据本公开内容的一些示例的视觉感知处理的示例流的流程图;
图8是示出根据本公开内容的一些示例的用于使用计算机视觉信息来感测和理解场景的示例流程的示意图;
图9是示出根据本公开内容的一些示例的从场景的图像提取的用于确定针对注意力和注意力区域的每区域投票的特征的示例处理的示意图;
图10是示出根据本公开内容的一些示例的根据针对注意力区域确定的相应处理速率的输入帧中的注意力区域的示例处理的示意图;
图11是示出根据本公开内容的一些示例的描绘从先前帧生成的边界框的帧和描绘由光流跟踪器估计的光流的帧的示意图;
图12是示出根据本公开内容的一些示例的部分神经网络推理流的示例的示意图;
图13是示出根据本公开内容的一些示例的由神经网络对帧区域的示例选择性处理的示意图;
图14是示出根据本公开内容的一些示例的用于动态地平衡神经网络负载的示例性负载控制流程的示意图;
图15是示出根据本公开内容的一些示例的针对由系统处理的场景的帧的变化部分确定的自适应注意力区域的示例的示意图;
图16是示出根据本公开内容的一些示例的动态变化的神经网络工作负载的示例的示意图;
图17和图18是示出根据本公开内容的一些示例的用于视觉感知处理的示例过程的流程图;以及
图19示出了根据本公开内容的一些示例的示例计算设备架构。
具体实施方式
下面提供本公开内容的某些方面。如对于本领域技术人员将显而易见的,这些方面中的一些可以独立地应用,并且它们中的一些可以相结合地应用。在下文的描述中,出于解释的目的,阐述了具体细节以便提供对本申请的方面的全面理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个方面。附图和描述不旨在是限制性的。
随后的描述仅提供了示例方面,并且不旨在限制本公开内容的范围、适用性或配置。确切而言,对示例方面的随后描述将向本领域技术人员提供用于实现示例方面的可行描述。应当理解的是,在不脱离如在所附的权利要求中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
电子设备(例如,高级驾驶员辅助系统、移动电话、可穿戴设备(例如,智能手表、智能眼镜等)、计算机、扩展现实(XR)设备(例如,虚拟现实(VR)设备、增强现实(AR)设备、混合现实(MR)设备等)、连接设备、服务器、分析系统、相机系统等)可以实现相机以检测、跟踪和/或识别感兴趣的事件和/或对象。例如,电子设备可以实现可以捕获场景的图像的相机。场景的图像可以用于检测、跟踪和/或识别场景中的事件和/或对象。在一些示例中,电子设备可以实现视频分析系统,该视频分析系统可以从诸如相机之类的视频源获得视频帧序列,并且处理视频序列以执行各种任务,诸如例如对象检测、跟踪、对象识别等。
例如,视频分析系统可以检测和跟踪场景中的移动对象。在一些情况下,视频分析系统可以围绕检测到的对象生成边界框(或任何其它形状)。如本文所述的视频分析系统可以在各种上下文和应用中实现。在一些示例中,视频分析系统可以由车辆的高级驾驶员辅助系统(ADAS)实现,以检测和跟踪对象,以便帮助ADAS执行自主驾驶操作。
在一些示例中,视频分析系统可以使用计算机视觉来获取、处理、分析和理解来自真实世界的图像/帧和数据,以便产生诸如决策和输出的信息。计算机系统(诸如视频分析系统)的上下文中的视觉感知是计算机系统从场景接收和解释视觉刺激的能力。然而,在计算机系统的上下文中,视觉感知存在许多挑战。例如,增加对高分辨率图像数据和/或每秒帧数(FPS)处理的需求可以导致增加的功耗和计算机系统处的热问题。这可以产生各种问题并且在各种应用中可能是有问题的。通常,用于自主驾驶的视觉感知系统中经常经历的高功率消耗和热问题可能在由自主车辆使用的ADAS系统的性能、稳定性、准确性等方面产生显著挑战。
计算机视觉(CV)中的大部分研究集中于改善用于计算机视觉的深度神经网络(DNN)的损失和准确性(ACC)。改善ACC的方法通常包括使用更深、更耗电的DNN,这可能加剧先前提到的功耗和热问题。例如,较高的功耗可导致热管理中的问题,其用于维持计算机系统(和/或其组件)在热功率包络内工作并因此确保持续/稳定的性能。然而,在许多情况下,实现更深的、更耗电的DNN可能不是可持续的解决方案,并且与更深的DNN的更高的功耗相关联的热管理困难可能产生许多问题。
在本公开内容的一些方面中,描述了用于在计算机视觉的上下文中的高效视觉感知的系统、装置、方法(也称为过程)和计算机可读介质(在本文中统称为“系统和技术”)。在一些示例中,本文描述的系统和技术可以基于每区域注意力投票来实现高效视觉感知,如下文进一步描述的。高效视觉感知可以提高CV性能、准确性、效率、稳定性、热管理等。
在一些示例中,本文描述的系统和技术可以执行高效的图像处理以检测场景的对象和特征。在一些情况下,本文描述的系统和技术可以通过限制或减少使用神经网络处理的帧的部分来执行视觉感知并增加处理性能、减少热功率占用空间、减少资源负担和/或降低处理复杂度。例如,本文描述的系统和技术可以通过使用神经网络来处理帧中的感兴趣区域并跳过使用神经网络来处理帧中的其它区域来提高性能和/或效率。
在一些示例中,本文描述的系统和技术可以使用低水平CV功能(例如,深度估计、光流估计、可视化显著性估计、扩展焦点估计、天空检测、遮挡/去遮挡检测等)来执行高效图像处理以理解成像场景(例如,深度、光流、天空、遮挡、去遮挡、显著视觉特征等),识别场景中的感兴趣区域,并且使用神经网络仅处理感兴趣区域,而不是使用神经网络来处理整个图像帧。此外,通过减少使用神经网络处理的图像数据的量,本文描述的系统和技术可以增加处理效率和性能,降低热需求,减少资源需求/负担等。此外,通过使用神经网络来处理帧中的感兴趣区域,本文描述的系统和技术可以增加和/或维持处理结果的准确性和/或可靠性。
在一些情况下,系统和技术可以从图像捕获设备(例如,图像传感器)接收输入帧,使用低水平CV功能来理解整体场景(例如,检测深度、光流、天空、遮挡、去遮挡、显著视觉特征等)。本文描述的系统和技术可以基于使用低水平CV功能检测到的场景的低水平特征来识别描绘场景的帧中的感兴趣区域。与使用神经网络处理整个帧相反,本文描述的系统和技术可以仅使用神经网络来处理感兴趣区域。在一些情况下,本文描述的系统和技术可以动态地调整整个帧和/或帧的部分的处理。
如本文更详细描述的,CV系统可以执行视觉感知和/或视频分析以检测和/或跟踪场景的图像中的对象。在一些示例中,CV系统可跟踪视频序列中的一或多个对象或斑点。例如,在一些情况下,CV系统可以使用一个或多个边界框(和/或任何其它形状)来跟踪视频序列中的一个或多个对象或斑点。CV系统可以实现各种策略以提高视觉感知效率,如本文所述。例如,在一些情况下,CV系统可以实现神经网络以检测和/或跟踪场景的图像中描绘的对象。神经网络通常会消耗大量系统资源并增加系统上的热和处理需求/负担。
在一些示例中,为了提高效率,CV系统可以仅使用神经网络来处理图像帧的某些区域,诸如图像帧中的感兴趣区域,同时使用较少功率饥饿算法来处理图像帧的其它区域。在一些情况下,CV系统可以使用神经网络来处理一些图像帧并且使用神经网络跳过以处理其它图像帧。CV系统可以使用神经网络来检测和/或跟踪场景的图像帧中描绘的对象。
将参考附图描述本申请的各个方面。
图1是示出计算机视觉(CV)系统100的示例的框图。CV系统100可以执行计算机视觉、图像处理、视频分析、可视化/视觉感知等,以用于各种应用,诸如自动化(例如,自主驾驶、机器人、制造等)、扩展现实、跟踪、安全、游戏等。
CV系统100可以从视频源130接收视频帧102。视频帧在本文中也可称为视频图片、图片或图像。视频帧102可以是一个或多个视频序列的一部分。视频源130可以包括视频捕获设备(例如,摄像机、相机电话、视频电话、或其它适当的捕获设备)、视频存储设备、包含存储的视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、此类源的组合、或者视频内容的其它源。在一个示例中,视频源130可以包括相机或多个相机。在说明性示例中,多个相机可以位于整个环境或结构(诸如车辆)中,并且可以向CV系统100提供视频帧102。例如,相机可以放置在环境或车辆内的各种视场处,使得可以基于环境或车辆的捕获的视频帧102来执行视频处理。
在一些示例中,CV系统100和视频源130可以是同一计算设备的一部分。在一些示例中,CV系统100和视频源130可以是单独的计算设备的一部分。在一些示例中,计算设备(或多个计算设备)可以包括用于无线通信的一个或多个无线收发器。计算设备(或设备)可以包括电子设备,诸如高级驾驶员辅助系统(ADAS)、相机(例如,IP相机或其它视频相机、相机电话、视频电话或其它合适的捕获设备)、移动或固定电话手机(例如,智能电话、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视、服务器、显示设备、数字媒体播放器、视频游戏控制台、视频流传输设备、扩展现实设备或任何其它合适的电子设备。
CV系统100可以包括斑点检测系统104和对象跟踪系统106。对象检测和跟踪允许CV系统100提供特征,诸如本文描述的视频分析特征。例如,智能运动检测、入侵检测、自主驾驶和其它过程可以使用来自对象检测和跟踪的结果来生成事件、决策、输出等。此外,可以基于对象检测和跟踪的结果来简化某些特征,诸如人、车辆、对象计数和分类等。
斑点检测系统104可以检测视频序列的一个或多个视频帧(例如,视频帧102)中的一个或多个斑点。对象跟踪系统106可以跨视频序列的帧跟踪一个或多个斑点。如本文所使用,斑点是指视频帧中的对象(例如,对象或整个对象的一部分)的至少一部分的图像像素。例如,斑点可以包括组成视频帧中的前景对象的至少一部分的连续像素组。在另一示例中,斑点可以指组成图像数据帧中的背景对象的至少一部分的连续像素组。斑点也可以被称为对象、对象的一部分、像素斑纹、像素补片、像素簇、像素块、像素点、像素块或指代对象或其部分的像素组的任何其它术语。
在一些示例中,边界框可以与斑点相关联。在一些实例中,跟踪器也可由跟踪器限界区表示。斑点或跟踪器的边界区域可以包括边界框、边界圆、边界椭圆或表示跟踪器和/或斑点的任何其它适当形状的区域。虽然出于说明性目的在本文中使用边界框来描述示例,但是本文描述的技术和系统也可以使用其它适当形状的边界区域来应用。与跟踪器和/或斑点相关联的边界框可以具有矩形形状、正方形形状或其它合适的形状。在跟踪层中,在不需要知道如何在边界框内配制斑点的情况下,术语斑点和边界框可以互换使用。
如下面更详细描述的,可以由CV系统100检测和跟踪斑点。使用斑点检测系统104和对象跟踪系统106,CV系统100可以针对视频序列的每个帧或图片执行斑点生成和检测。例如,斑点检测系统104可以针对帧执行背景减除,并且可以检测帧中的前景像素。可以使用例如形态操作和空间分析从前景像素生成前景斑点。
CV系统100可以实现多个对象检测框架。例如,在一些情况下,CV系统100可以实现一个或多个神经网络和算法,诸如卷积神经网络(CNN)、基于区域的CNN(R-CNN)、快速R-CNN、更快的R-CNN、单镜头检测器(SSD)、你只看一次(YOLO)、非最大抑制(NMS)、语义分割算法、扩展焦点估计算法、可视化显著特征提取算法、计算机视觉算法等。
图1中相对于CV系统100示出的组件是出于解释目的而提供的说明性示例。在其它示例中,CV系统100可以包括比图1中所展示的组件更多或更少的组件。尽管CV系统100被示为包括某些组件,但是本领域普通技术人员将理解,CV系统100可以包括比图1所示的组件更多或更少的组件。例如,在一些情况下,CV系统100可以包括一个或多个存储器设备(例如,RAM、ROM、高速缓存等)、一个或多个联网接口(例如,有线和/或无线通信接口等)、一个或多个显示设备、一个或多个高速缓存、一个或多个存储设备、一个或多个处理设备(例如,中央处理单元、图像信号处理器、数字信号处理器、图形处理单元、专用集成电路、现场可编程门阵列等)、和/或图1中未示出的其它硬件或处理设备。下面针对图19描述可以用CV系统100实现的计算设备和/或硬件组件的说明性示例。
图2是示出用于视觉感知的示例对象检测框架200的示意图。在一些示例中,CV系统100可以实现对象检测框架200以检测和跟踪场景的图像中的对象,诸如图2所示的场景220。
在图2的示例中,对象检测框架200可以包括被配置为处理输入帧202并检测输入帧202中的对象的神经网络210。输入帧202可以包括由图像捕获设备(例如,图像传感器、具有相机的移动设备、相机系统等)捕获的场景(例如,场景220)的视频/图像帧。图像捕获装置可以是CV系统100的一部分或与CV系统100分离。
神经网络210可以被配置为执行一个或多个功能,诸如但不限于语义分割、对象检测、视频和/或对象跟踪、姿势估计、对象识别、事件检测、场景重建、运动估计、场景建模、图像恢复、索引、分类、学习、边缘提取、降噪、变换、模式识别、面部识别、光流、鸟瞰图(BEV)分割和/或对象检测、匹配、决策、视觉感知和/或任何其它基于计算机的操作和/或功能。
神经网络210可以包括任何类型的神经网络,诸如,例如但不限于CNN、R-CNN、快速R-CNN、更快速R-CNN、SSD、YOLO、掩码CNN、掩码R-CNN、分类网络和/或任何其它类型的神经网络。在一个非限制性示例中,神经网络210可以包括被配置为提取输入帧202中的特征的主干和/或被配置用于图像分类的神经网络部分、被配置为提取附加特征(例如,更精细的特征等)的颈部、和/或被配置为计算和/或生成神经网络210的输出的头部或检测头。
在一些情况下,神经网络210和/或神经网络210的主干可以以高每秒帧(FPS)速率处理高分辨率的整个输入帧。这可能导致大量的计算密集型负载并且可能导致功率和热问题。如本文进一步描述的,在一些示例中,为了减少计算负载和/或功率和热问题,神经网络210可以仅处理某些捕获的帧并且跳过处理其它捕获的帧;和/或可以仅处理输入帧的区域的子集,诸如感兴趣区域,并且跳过处理输入帧的其它区域。
神经网络210可以处理输入帧202并生成输出212。输出212可以包括识别在输入帧202中检测到的一个或多个对象的对象检测输出。在一些示例中,输出212可以包括在输入帧202中检测到的对象的分类(例如,对象/斑点分类等)和/或边界框(和/或任何其它形状)。例如,在一些情况下,神经网络210可以处理输入帧202并且输出输入帧202中的对象的分类和边界框。
在一些情况下,对于捕获和/或接收的每个帧,神经网络210可以处理整个帧,这可以导致高计算负载和功率和热问题的增加,如前所述。在一些示例中,为了增加处理效率,减少设备上的计算负载(例如,在CV系统100上),减少功率和热问题等,神经网络210可以仅处理每个帧的一部分(例如,小于整个帧),诸如帧的一个或多个感兴趣区域(ROI),和/或可以仅处理捕获和/或接收的帧的子集。在一些情况下,CV系统100可以实现较不复杂和/或计算/资源密集的算法和/或用于处理那些未被神经网络210处理的帧和/或帧区域的操作。
如前所述,视觉感知工作负载可以由神经网络(诸如神经网络210)处理。神经网络工作负载通常可以导致视觉感知处理(诸如ADAS视觉感知处理或任何其它视觉感知处理)中的执行时间和功耗的最大部分。
图3是示出示例视觉感知工作负载的示例功耗和执行时间的图表300。在该示例中,图表300示出了神经网络工作负载302、鱼眼校正工作负载320、图像格式转换工作负载322、分辨率缩放工作负载324、降噪工作负载326、天空检测工作负载328、遮挡/去遮挡工作负载330、运动跟踪工作负载332和活动检测工作负载334的功耗和执行时间。该示例中的神经网络工作负载302包括主干工作负载304、RPN工作负载306、检测头工作负载308、NMS工作负载310、分割工作负载312和BEV对象检测工作负载314。
如图表300所示,神经网络工作负载302可以比其它工作负载消耗更多的功率和执行时间。神经网络工作负载302通常相比其它工作负载对设备上的总处理时间贡献更多。此外,大的视觉感知工作负载可能存在各种问题。例如,大的视觉感知工作负载可以与各种性能问题相关联,因为支持高分辨率和FPS速率是具有挑战性的。许多时候,可能存在超出处理器在设备处的能力的爆发的神经网络工作负载。还可能存在功率问题,因为将电源大小保持在较小的水平是具有挑战性的,并且相关联的功耗和密度可能导致热问题。还可能出现热问题,因为将工作负载维持在高环境温度和处理器(例如,神经网络信号处理器和/或任何其它处理器)的多位乘法-累加(MAC)阵列中的热点处可能具有挑战性。
在一些示例中,为了在不损害准确性的情况下减小计算机系统(例如,CV系统100)中的神经网络工作负载的大小,本文描述的系统和技术可以实现特定或替代的视觉感知工作流。视觉感知工作流可以实现与人类视觉系统类似和/或被人类视觉系统启发的方面。由本文描述的系统和技术提供的所得视觉可以比其它技术更高效。
图4A是示出人类视觉系统400的示例的示意图,其示出了人类中的视觉系统的一些特性、质量、益处等。人类视觉系统400包括眼睛和中枢神经系统的部分,它们一起允许人类检测和解释来自光谱的信息。人类视觉系统400可以允许人类识别场景中的对象、感知运动、识别模式、集成可视化信息、检测和处理可见光等。此外,人类可以执行分层视觉感知(例如,从低水平感知到高水平认知),其中大脑的不同部分以不同的努力量处理不同的信息比特。
可视化注意力和眼睛可以扫视以聚焦在视图的较小的重要区域而不是整个视图上。例如,图4B示出面部420的图像和面部420的眼睛扫视的示例跟踪430。此外,利用人类视觉系统400,还存在用于感知对象的工作存储器保留和更新信息。人类还选择性地处理视觉信息,并且通常将其注意力集中在较小的视觉区域上(例如,小于整个视觉区域)。例如,在驾驶的背景下,人类对具有与驾驶相关和驾驶所需的高优先级信息的区域具有集中注意力。通常,场景中的人类驾驶可以在驾驶时具有某些驾驶员眼睛移动模式。例如,驾驶员眼睛移动模式通常反映驾驶员对较高优先级的较小视觉区域的集中注意力。
如前所述,本文描述的系统和技术可以实现视觉感知工作流,其包括与人类视觉系统类似和/或由人类视觉系统启发的方面。例如,本文描述的系统和技术可以实现选择性地处理可视化信息的视觉感知工作流。为了说明,视觉感知工作流可以使用神经网络来处理和/或集中注意力较小的感兴趣区域。
在一些示例中,本文描述的系统和技术可以基于每区域注意力投票和FPS来实现高效视觉感知。图5是示出实现每区域注意力投票和FPS的示例基于计算机的视觉感知系统的示例功能的表500。如图所示,示例功能包括元素注意力因子502、针对注意力需求的投票504(例如,每个区域的注意力投票)、动态控制神经网络负载功能506、注意力区域功能508、每区域FPS 510(例如,每个图像的非均匀FPS)、神经网络中的选择性处理512以及来自部分神经网络处理的结果组成514和通过光流的调整。
在一些示例中,元素注意力因子502可以在输入图像上应用计算机视觉功能(例如,深度估计、光流、天空检测、遮挡/去遮挡检测、扩展估计的聚焦、可视化显著性检测等)。在一些情况下,元素注意力因子502可以提取输入图像的网格中的每个区域的元素注意力因子(例如,对于近距离区域、更快的移动区域、非天空区域、从隐藏出现的对象、道路消失点、独特的颜色和边缘等的更多的注意力)。这些是可以吸引人的注意力并且可以类似地通过计算机系统接收注意力的示例因子。
针对注意力需求的投票504(例如,每个区域的注意力投票)可以计算每个计算机视觉结果中的每个区域的注意力需求分数。在一些情况下,针对注意力需求的投票504可以将每像素值转换为每区域值。在一些示例中,针对注意力需求的投票504可以通过平均或最大池化将许多每像素值转换为每区域值。针对注意力需求的投票504可以基于注意力需求分数来生成每个区域的注意力投票(注意力需求或注意力请求),并且基于来自一个或多个计算机视觉功能的注意力投票来计算每个区域的注意力分数。
动态控制神经网络负载功能506可以确定神经网络负载目标。在一些示例中,动态控制神经网络负载功能506可以基于动态改变的约束(例如,片上系统(SOC)或系统性能、功耗、热温度条件等)来确定神经网络负载目标。
注意力区域功能508可以基于注意力投票和神经网络负载目标来确定注意力区域。每区域FPS 510(例如,每个图像的非均匀FPS)可以取决于注意力区域(例如,可以针对具有较高注意力分数的区域应用较高FPS速率)应用神经网络处理的不同FPS速率。在神经网络中的选择性处理512中,神经网络(例如,神经网络210)可以根据区域以不均匀的FPS速率和/或变化的FPS速率来处理图像的部分区域(例如,注意力区域),并且可以跳过处理图像的其它区域。
来自部分神经网络处理和通过光流的调整的结果合成514可以通过合并来自神经网络处理的对用于注意力区域的部分区域的新对象检测结果和基于用于注意力区域之外的图像部分的光流的先前对象检测结果的调整来生成完整图像的对象检测结果。通常,来自神经网络的对象检测比来自具有光流的先前对象检测的调整后的位置更准确和可靠,而光流计算的处理负载和功耗小于神经网络的处理负载和功耗。
图6A是示出根据本公开内容的一些示例的视觉感知处理的示例流600的示意图。示例流程600可以由计算机系统(诸如图1所示的CV系统100)实现。在一些示例中,神经网络606可以表示与图2所示的神经网络210相同的神经网络。在其它示例中,神经网络606可以表示任何其它神经网络。
在该示例中,CV系统100可以获得用于视觉感知处理的输入帧602。在一些情况下,CV系统100可从CV系统100的图像捕获设备接收输入帧602。在其它情况下,CV系统100可从单独装置(诸如服务器或与CV系统100分离的图像捕获设备)接收输入帧602。输入帧602可以描绘场景620。在图6A中,场景620是实现示例流程600和CV系统100的车辆遇到的驾驶场景。然而,在其它示例中,输入帧602可以描绘任何其它场景。
CV系统100可以接收输入帧602并从输入帧602提取特征604。CV系统100可实现任何特征提取算法和/或技术以从输入帧602提取特征604。CV系统100可以使用特征604来理解输入帧602中描绘的场景620。例如,CV系统100可以使用特征604来确定输入帧602中描绘的场景620的深度图,检测场景620的输入帧602中的天空,估计场景620中的运动(例如,光流)和/或场景620中的物体(例如,对象、表面、边缘等)的运动,检测场景620中的任何遮挡和/或去遮挡,估计场景620中的移动物体的前进方向或方向,和/或确定场景620的任何其它方面或特性。
在一些示例中,特征604可以是或可以包括从输入帧602提取的低水平特征。在一些情况下,CV系统100可以实现低水平计算机视觉功能以提取和/或检测输入帧602中的低水平特征。低水平特征的非限制性示例可以包括深度信息(例如,深度估计、深度图等)、光流、天空检测结果、检测到的遮挡和/或去遮挡、前景区域、背景区域、场景620中的对象的速度、扩展焦点、视差图、边缘、颜色、显著视觉特征、分割图和/或任何其它低水平特征。此外,低水平计算机视觉功能的非限制性示例可以包括深度估计、光流估计、天空检测、遮挡和/或遮挡检测、语义分割、扩展焦点估计、前景估计、背景估计、显著视觉特征提取、边缘检测、颜色检测和/或任何其它低水平计算机视觉功能。
CV系统100可以从所接收的每个输入帧提取特征(例如,低水平特征)。例如,CV系统100可以实现特征提取器以从输入帧602中的每个输入帧提取特征。特征提取器可以处理每个输入帧以从每个帧提取低水平特征。特征提取器可以将所提取的特征(例如,特征604)提供给视觉认知和存储器算法608,如下文进一步描述的。
神经网络606还可以处理输入帧602(或输入帧602的子集)以检测输入帧602中描绘的场景620中的对象。如前所述,神经网络处理可以消耗大量功率、资源、计算等。因此,在一些示例中,为了提高效率并减少CV系统100上的处理负担,神经网络606可以仅处理每个输入帧的子集或部分(或每n个帧的子集或部分),诸如输入帧中的注意力区域(例如,感兴趣区域)。在一些情况下,如果输入帧是由神经网络606和/或CV系统100处理的第一帧,则神经网络606可以处理整个输入帧(例如,帧的每个像素),并且对于任何后续帧,神经网络606可以仅处理帧的一部分(例如,帧中的一个或多个注意力区域),同时跳过帧的任何其它部分的处理。
在一些情况下,神经网络606可以处理输入帧602的子集(例如,小于所有输入帧602),同时跳过处理其它输入帧(例如,同时避免处理其它输入帧)。例如,神经网络606可以基于由视觉认知和存储器算法608确定的FPS速率来处理每个n个输入帧,并且跳过其它输入帧(例如,避免处理其它输入帧)。在一些情况下,神经网络606可以仅处理来自由神经网络606处理的n数量个输入帧的每个经处理的帧的一部分(例如,少于全部)。在一些示例中,可以基于诸如例如系统性能、功耗、热温度条件、资源可用性、处理要求、性能要求、预期等待时间等的一个或多个约束来确定FPS速率。
CV系统100的视觉认知和存储器算法608可以使用来自神经网络606的特征604和信息(例如,对象检测结果、跟踪结果等)来确定输入帧602中的一个或多个注意力区域。一个或多个注意力区域可以包括应当由神经网络606处理以检测和/或跟踪那些感兴趣区域中的任何对象的任何感兴趣区域。例如,视觉认知和记忆算法608可以确定输入帧602的最重要的区域,并且将最重要的区域标识为要由神经网络606处理的注意力区域。
为了说明,在其中CV系统100由自主车辆用于自主驾驶操作的示例用例中,输入帧602的最重要区域可以对应于场景620的在距自主车辆的门限距离内的元素(例如,对象、表面、标牌、颜色、边缘等)(例如,比场景620中的其它元素更靠近车辆的元素)、场景620的正在接近车辆的元素(例如,以特定速度移动和/或位于车辆的特定接近度内的元素)、场景620的在时间帧内应当被识别以安全地导航和/或执行驾驶操纵和/或操作的元素、场景620的与当前(和/或即将发生的)上下文和/或车辆的操作最相关的元素等。
图6B示出了由视觉认知和存储器算法608识别的注意力区域622至628。如图所示,场景620的对应于更靠近实现CV系统100的车辆(并且因此更相关和/或当前与车辆的操作相关)的对象的区域被标识为注意力区域622至628,而场景620中对应于远离车辆的对象(并且因此在当前时间较不相关)的其它区域不被标识为注意力区域。在一些示例中,神经网络606可以在当前输入帧中处理注意力区域622至628,同时跳过处理(例如,避免处理)当前输入帧的其它部分/区域。
返回参考图6A,在一些示例中,视觉认知和存储器算法608可以使用特征604和来自神经网络606的任何信息来识别应当由神经网络606针对当前和/或未来输入帧处理的一个或多个注意力区域。在一些情况下,视觉认知和存储器算法608还可以生成场景620中的一个或多个对象的一个或多个分类输出(例如,对象分类、场景分类等)和/或边界框(和/或任何其它形状)。
视觉认知和存储器算法608可以将其输出的一个或多个部分发送回神经网络606以进行处理。例如,视觉认知和存储器算法608可以向神经网络606发送由视觉认知和存储器算法608识别的一个或多个注意力区域。一个或多个注意力区域可以通知神经网络606输入帧的哪个(哪些)部分应当由神经网络606处理。神经网络606可以对一个或多个注意力区域执行对象检测,以检测和/或跟踪一个或多个注意力区域中描绘的任何对象。为了提高效率、减少神经网络处理工作负载和/或减少处理和/或系统需求,神经网络606可以跳过处理输入帧的未被识别为注意力区域的任何其它区域。
图6C示出了由神经网络606针对对应于由视觉认知和存储器算法608识别并由神经网络606.处理的感兴趣区域624、626和628的检测到的对象生成的边界框640、642和644。图6C还示出了用于来自先前输入帧的对象的边界框630、632和634。来自对应于边界框630到634的先前输入帧的对象可以包括估计为在当前时间较不相关和/或重要的对象,例如估计为与CV系统100相关联的车辆的当前操作较不相关和/或重要的对象。
在一些情况下,CV系统100(例如,经由神经网络606和/或CV系统100的任何其它组件)可以使用来自先前帧和/或当前帧的光流估计来跟踪场景620中的对象。在一些情况下,CV系统100(例如,经由神经网络606和/或CV系统100的任何其它组件)可以使用来自所提取的特征604的光流估计来修改/更新在先前帧中检测到的对象。例如,CV系统100可以使用来自先前输入帧的光流估计来更新/修改对应于边界框630至634的对象。Cv系统100可以更新/修改来自先前输入帧的对象以反映当前帧处的对象的估计位置/位置、方向和/或运动和/或当前帧被捕获的时间。
神经网络606可以处理由视觉认知和存储器算法608针对输入帧识别的一个或多个注意力区域(例如,图6B中示出的注意力区域622至628),并且输出对象检测结果。在一些示例中,神经网络606可以将对象检测结果发送回视觉认知和存储器算法608。视觉认知和存储器算法608可以使用来自神经网络606和特征604的对象检测结果来生成输出610。输出610可以包括一个或多个分类结果(例如,对象分类、场景分类等)和/或一个或多个边界框(和/或任何其它形状),其标识与来自场景620的检测到的对象相对应的输入帧的区域。在一些情况下,视觉认知和存储器算法608可以将输出610发送到神经网络606,神经网络606可以在处理输入帧时和/或为了修改当前和/或先前帧使用该输出610。
在一些示例中,视觉认知和存储器算法608还可以向控制神经网络606的神经网络处理速率的交换机612发送帧处理信息。例如,视觉认知和存储器算法608可以使用特征604和/或来自神经网络606的输出来确定用于由神经网络606处理帧和/或注意力区域的速率(例如,FPS速率或任何其它速率)。为了说明,视觉认知和存储器算法608可以确定在当前时间应由神经网络606处理对应于正在接近的车辆的注意力区域,并且在已经由CV系统100捕获和/或处理n数量的帧之后,应由神经网络606处理与更远离的车辆相对应的不同注意力区域(例如,当前不相关但被预测为在一段时间之后和/或在n数量的帧之后相关的注意力区域)。
例如,参考图6C,视觉认知和存储器算法608可以确定注意区域622至628应当由神经网络606在当前输入帧中处理,并且对应于边界框630至634的区域应当在下一个输入帧中或在处理n数量的输入帧之后由神经网络606处理。
返回参考图6A,交换机612可以使用来自视觉认知和存储器算法608的信息(例如,帧处理速率信息、注意力区域信息等)来确定哪些输入帧应当被发送到神经网络606以用于处理(和/或输入帧的什么区域应当由神经网络606处理),并且哪些输入帧不应当被发送到神经网络606以用于处理(和/或输入帧的什么区域不应由神经网络606处理)。例如,如果来自视觉认知和存储器算法608的信息指示每个第三输入帧应当由神经网络606处理,则交换机612可以将每个第三输入帧发送到神经网络606并且跳过将其它输入帧发送到神经网络606。
作为另一示例,如果来自视觉认知和存储器算法608的信息指示应当由神经网络606处理当前输入帧中的注意力区域622至628,并且应当在n个帧之后处理与图6C中所示的边界框630至634相对应的区域,则交换机612可以将当前输入帧中的注意力区域622至628发送到神经网络606以进行处理,并且在n个帧之后将对应于图6C中所示的边界框630至634的区域发送到神经网络606。替代地,如果来自视觉认知和存储器算法608的信息指示应当由神经网络606处理当前输入帧中的注意力区域622至628,并且应当在n个帧之后处理与图6C中所示的边界框630至634相对应的区域,则交换机612可以向神经网络606发送指令以处理当前输入帧中的注意力区域622至628,并且在n个帧之后处理与图6C中所示的边界框630至634相对应的区域。
图7是示出根据本公开内容的一些示例的视觉感知处理的示例流700的流程图。在流程700开始时,不存在识别出的初始注意力区域。CV系统100可以从输入帧702提取特征704,如前所述。所提取的特征704可以包括低水平特征,诸如例如光流、深度图、显著可视化特征、扩展焦点信息、分割图、天空检测信息、颜色信息、边缘信息、背景特征、前景特征等。
CV系统100可以使用所提取的特征704来识别(例如,经由视觉认知和存储器算法608)输入帧702的一个或多个注意力区域06。CV系统100可以如前所述地识别一个或多个注意力区域706(见图6A-6C)。在一些示例中,CV系统100还可以使用所提取的特征704来确定下一输入帧(例如,未来输入帧)的注意力区域720。如下面关于注意力区域706进一步描述的,可以应用注意力区域720。在一些情况下,CV系统100可以基于提取的特征704和估计用于在下一帧中找到一个或多个对象的区域718来确定注意力区域720。
神经网络708可以应用针对输入帧702识别的注意力区域706。例如,神经网络708可以处理输入帧702中的注意力区域706,并且跳过处理(例如,避免处理)输入帧702的其它部分。在一些示例中,神经网络708可以从注意力区域706的处理生成对象检测结果。在一些示例中,神经网络708可以与图2所示的神经网络210相同。在其它示例中,神经网络708可以是任何其它类型的神经网络。
CV系统100可以初始化710光流跟踪器712以确定输入帧702中在注意力区域706之外的一个或多个对象的光流(例如,运动)。在一些示例中,神经网络708可以向光流跟踪器712发送跟踪在注意力区域706之外的对象的光流的指令。在一些情况下,神经网络708可以向光流跟踪器712发送其输出的一个或多个部分(例如,一个或多个对象检测结果、分类、边界框和/或任何其它输出),以用于确定在注意力区域706外部的一个或多个对象的光流。
当初始化光流跟踪器712时,光流跟踪器712可以接收所提取的特征704和来自神经网络708的信息。光流跟踪器712可以使用所提取的特征704和来自神经网络708的信息来跟踪在注意力区域706之外的一个或多个对象的光流。如果光流跟踪器712成功(如在框714所确定的)跟踪在注意力区域706之外的一个或多个对象的光流,则CV系统100可以生成输出帧716。在一些示例中,输出帧716可以包括对注意力区域706之外的一个或多个对象的更新。更新可以反映光流跟踪器712.估计的一个或多个对象的运动。在一些示例中,输出帧716可以附加地或替代地包括与由神经网络708检测到的对象相对应的分类(例如,对象分类等)和/或边界框(和/或任何其它形状)。
如果光流跟踪器712在跟踪注意力区域706之外的一个或多个对象的光流方面不成功(如在框714处确定的),则CV系统100可以估计帧的区域718以找到一个或多个对象。如前所述,CV系统100可以使用区域718和提取的特征704来确定下一帧的注意力区域720。
流程700可以继续使用光流跟踪器712来处理后续帧(和/或在所确定的注意力区域之外的后续帧的部分)以跟踪在所确定的注意力区域之外的对象,并且可以使用神经网络708来处理注意力区域,同时跳过处理在注意力区域之外的帧部分。
图8是示出用于使用诸如低水平计算机视觉信息的计算机视觉信息来感测和理解场景的示例流程800的示意图。如图所示,CV系统100从场景的输入图像802提取特征804到812。在一些示例中,特征804至812可以包括使用一个或多个计算机视觉算法从输入图像802提取的低水平特征。低水平特征可以包括任何低水平特征,诸如但不限于深度、光流、显著视觉特征、扩展焦点、天空检测、颜色检测、背景和/或前景特征、边缘、遮挡和/或去遮挡、和/或任何其它低水平特征。
在图8所示的示例中,特征804可以包括光流,特征806可以包括深度(例如,深度图),特征808可以包括显著视觉特征(例如,基于图表的可视化显著性、定义将一个物体/目标与另一个物体/目标区分开的元素的特征等),特征810可以包括扩展焦点,并且特征812可以包括天空检测特征。在其它示例中,从输入图像802提取的特征可以包括除了图8所示的特征804至812中的一个或多个特征之外或代替特征804至812中的一个或多个特征的任何其它特征。
CV系统100可以使用来自输入图像802的特征804(例如,光流)和注意力的区域投票814(下面描述)来生成更新的帧区域816。更新的帧区域816可以包括基于针对注意力的每区域投票814识别的注意力区域之外的一个或多个区域。CV系统100可以使用特征804(例如,光流)来更新帧区域以反映和/或考虑由特征804识别的运动。
CV系统100可以使用特征804-812来确定针对输入图像802的针对注意力的每区域投票814。在一些示例中,CV系统100可以附加地或替代地使用其它信息来生成更新的帧区域816和/或确定针对注意力的每区域投票814。例如,在一些情况下,CV系统100可以另外或替代地使用遮挡图、去遮挡图、驾驶员注意力估计、分割图等来生成更新的帧区域816和/或确定针对注意力的每区域投票814。
CV系统100可以使用针对注意力的每区域投票814来识别输入图像802中的一个或多个注意力区域(例如,一个或多个感兴趣区域、一个或多个重要性区域和/或相关性等),如本文进一步描述的。CV系统100可以使用一个或多个注意力区域来确定输入图像802的什么部分应当由神经网络处理(例如,用于对象检测)以及输入图像802的什么部分应当由光流跟踪器(例如,光流跟踪器712)处理。例如,CV系统100可以使用神经网络基于针对注意力的每区域投票814来处理针对输入图像802确定的一个或多个注意力区域,并且可以使用光流跟踪器来处理在一个或多个注意力区域之外的区域,以便跟踪与一个或多个注意力区域之外的那些区域相关联的光流(和/或基于估计光流修改/更新)。
在一些示例中,CV系统100可以基于一个或多个计算机视觉处理结果(例如,光流、深度、可视化显著性、扩展焦点、天空检测等)来确定输入图像802的每个区域的注意力需求分数。CV系统100可以使用每个区域的注意力需求分数来根据与一个或多个计算机视觉处理结果相关联的一个或多个计算机视觉功能确定每个区域的注意力投票(例如,注意力需求或注意力请求)。在一些示例中,CV系统100然后可以使用每个区域的注意力投票来确定每个区域的注意力分数。在一些情况下,CV系统100还可以确定神经网络处理速率(例如,FPS速率)以实现使用神经网络处理注意力区域。
CV系统100可以使用针对注意力的每区域投票814(和/或每个区域的注意力需求分数)来识别输入图像802中的一个或多个注意力区域。CV系统100可以使用神经网络选择性地处理一个或多个注意力区域。为了提高效率并且在保持准确性的同时减少处理负载/负担,CV系统100可以使用神经网络来处理一个或多个注意力区域,并且使用神经网络跳过处理(例如,避免处理)输入图像802的其它区域(例如,一个或多个注意力区域之外的区域)。在一些情况下,CV系统100可以替代地使用光流跟踪器来处理在一个或多个注意力区域之外的任何区域。
在一些示例中,CV系统100可以以基于针对注意力的每区域投票814确定的相应速率(例如,相应的FPS速率)来处理输入图像802的区域(例如,一个或多个注意力区域中的每个注意力区域)。例如,CV系统100的神经网络可以以比具有较低注意力分数的注意力区域更高的速率来处理具有更高注意力分数(和/或更高数量的注意力投票)的注意力区域(和/或更低数量的注意力投票)。
CV系统100的神经网络可以处理一个或多个注意力区域以生成针对输入图像802的部分推断818。部分推断818可以包括针对小于/少于整个输入图像802的图像的一部分(例如,一个或多个注意力区域)确定的一个或多个推断。例如,部分推断818可以包括对于针对输入图像802确定的每个注意力区域的相应对象检测结果。如前所述,神经网络可以以相应速率(例如,FPS速率)对一个或多个注意力区域中的每个注意力区域。在一些情况下,对于每个注意力区域,相应的速率可以是相同的。在其它情况下,注意力区域的相应速率可以不同于另一个注意力区域的相应速率。
CV系统100可以基于来自神经网络的更新的帧区域816和部分推断818来生成感知结果820。感知结果820可以包括针对整个输入图像802的对象检测结果。在一些示例中,CV系统100可以通过将来自神经网络处理的针对注意力区域的输入图像802的部分区域(例如,一个或多个注意力区域)的对象检测结果(例如,部分推断818)与基于针对在一个或多个注意力区域之外的输入图像802的一个或多个区域确定的光流(例如,特征804)对先前对象检测结果的调整(例如,更新、修改)进行合并来生成针对完整输入图像802的对象检测结果(例如,感知结果820)。
图9是示出从场景的图像910提取的特征的示例处理以确定针对注意力的每区域投票和注意力区域的示意图。在该示例中,所提取的特征包括深度图902、基于图的可视化显著性估计904、光流估计906和扩展焦点估计908。
CV系统100可以生成图像区域912和914的注意力投票。图像区域912和914可以包括网格区域和/或任何其它类型的区域。在一些示例中,CV系统100可以从用于确定提取的特征(例如,深度图902、基于图的可视化显著性估计904、光流估计906和扩展焦点估计908)的相应计算机视觉功能获得图像区域912和914的注意力投票。
例如,CV系统100可以(例如,从用于确定深度图902的深度估计功能)获得深度图902中的图像区域912和914的相应注意力投票。CV系统100可以(例如,从用于确定基于图的可视化显著性估计904的可视化显著性估计功能)获得基于图的可视化显著性估计904中的图像区域912和914的相应注意力投票。CV系统100可以(例如,从用于确定光流估计906的光流跟踪器)获得光流估计906中的图像区域912和914的相应注意力投票。此外,CV系统100可以获得(例如,从用于确定扩展焦点估计908的扩展焦点功能)扩展焦点估计908中的图像区域912和914的相应注意力投票。
CV系统100可以以基于从针对图像区域912和914的相应计算机视觉功能(例如,深度估计功能、可视化显著性估计功能、光流跟踪器、扩展焦点功能等)获得的相应注意力投票确定的相应速率(其可以相同或可以变化)来处理图像910的图像区域912和914。例如,深度估计功能可以从深度图902确定用于处理图像区域912的推荐速率916,可视化显著性估计功能可以从基于图形的可视化显著性估计904确定用于处理图像区域912的推荐速率918,光流跟踪器可以从光流估计906确定用于处理图像区域912的推荐速率920,并且扩展焦点功能可以从扩展焦点估计908确定用于处理图像区域912的推荐速率922。然后,CV系统100可以基于从针对图像区域912的计算机视觉功能(例如,生成深度图的功能902、基于图表的可视化显著性估计904、光流估计906和扩展焦点估计908)获得的推荐速率来确定用于图像区域912的处理速率,并且基于从针对图像区域914的计算机视觉功能(例如,生成深度图的功能902、基于图表的图表显著性估计904、光流估计906和扩展焦点估计908)获得的推荐速率来确定用于图像区域914的处理速率。
为了说明,在图9所示的示例中,从针对图像区域912的深度估计功能获得的推荐速率916指示应当在每n数量个帧之后(例如,通过神经网络)处理图像区域912,从针对图像区域912的可视化显著性估计功能获得的推荐速率918指示应当在每n数量个帧之后(例如,通过神经网络)处理图像区域912,从针对图像区域912的光流跟踪器获得的推荐速率920指示应当在每n数量个帧之后(例如,通过神经网络)处理图像区域912,并且从针对图像区域912的扩展焦点估计功能获得的推荐速率922指示应当在每m数量个帧之后(例如,通过神经网络)处理图像区域912。
Cv系统100可以使用从针对图像区域912的计算机视觉功能获得的推荐速率916、918、920和922来确定用于图像区域912的处理速率924。在图9所示的示例中,用于图像910的图像区域912的处理速率924指示应在n数量个帧之后处理图像区域912。如图所示,处理速率924基于推荐速率916、918、920和922。类似地,CV系统100可以基于从计算机视觉功能获得的推荐速率(例如,生成深度图的功能902、基于图表的可视化显著性估计904、光流估计906和针对图像区域914的扩展焦点估计908)来确定用于图像区域914的处理速率。
在一些示例中,CV系统100可以在每相同数量的帧之后或在针对图像区域和/或特征(例如,深度、可视化显著性、光流、焦点扩展等)中的两个或更多个的不同数量的帧之后处理图像区域(例如,图像区域912、图像区域914)和/或特征(例如,深度、可视化显著性、光流、焦点扩展等)。在一些示例中,针对图像910中的区域和/或特征确定的处理速率可以指示神经网络处理应当跳过针对某些处理区域和/或特征的一个或多个帧,这可以允许CV系统100增加处理效率并且降低CV系统100的总体计算负载、功耗、热量等。
图10是示出根据针对注意力区域1010和1012确定的相应处理速率1020和1022的对输入帧1002中的注意力区域1010和1012的示例处理的示意图。如图10所示,CV系统100处理输入帧1002以识别注意力区域1004和用于处理帧中的注意力区域1004的速率1020和1022。在该示例中,注意力区域1004包括注意力区域1010和注意力区域1012。
CV系统100可以基于针对注意力区域1010和1012从用于从输入帧1002提取特征的计算机视觉功能获得的注意力投票来确定注意力区域1010和1012。计算机视觉功能可以包括例如但不限于深度估计功能、可视化显著性估计功能、光流跟踪器、扩展焦点功能、语义分割功能、视差图估计功能、天空检测功能、边缘检测功能、颜色检测功能和/或任何其它计算机视觉功能。
在图10所示的说明性示例中,速率1020指示在已经处理和/或捕获最大n个帧之后应当由CV系统100的神经网络处理注意力区域1010,并且速率1022指示应现在由神经网络处理注意力区域1012。基于所识别的注意力区域1004和速率1020和1022,神经网络可以跳过处理一个或多个区域(例如,在注意力区域1010和1012之外的一个或多个区域)和/或一个或多个帧以增加处理效率并降低CV系统100的总体计算负载、功耗、热量等。
图11是示出了描绘从先前帧生成的边界框1130-1134和描绘由CV系统100的光流跟踪器估计的光流的帧1120的帧1110的示意图。边界框1130-1134可以识别包括相应帧区域内的场景元素(例如,对象、诸如天空的场景特征等)的相应帧区域。边界框1130-1134可以包括、包围、识别和/或包含相应帧区域中的场景元素。
光流跟踪器可以使用从先前帧(例如,帧1110中描绘的边界框)生成的边界框1130、1132和1134以及估计光流(例如,帧1120中描绘的光流)来更新从先前帧1110生成的边界框1130-1134以考虑场景元素的估计运动。更新的边界框可以跟踪场景元素在帧之间的移动。例如,光流可以反映场景元素在场景(和/或场景的图像)内的移动。光流跟踪器可以使用从先前帧生成的边界框1130-1134和估计光流来更新边界框1130-1134的放置(例如,位置等)以包括、包围和/或包含在场景元素的移动之后(例如,在场景元素的位置改变之后)的场景元素。
在一些示例中,光流跟踪器可以使用来自光流的相应光流方向(例如,帧1120中描绘的光流)来确定向何处移动边界框1130-1134中的每个边界框。光流跟踪器还可以使用光流幅度来确定移动边界框1130-1134的距离。在一些情况下,CV系统100可以使用特征匹配来确保来自先前帧的边界框1130-1134和经更新的边界框(例如,被修改以反映由估计光流识别的场景元素的移动的边界框)包括相同场景元素(例如,相同对象等)。在一些示例中,CV系统100可以使用缩放不变特征变换(SIFT)特征匹配来验证来自先前帧的边界框1130-1134和更新的边界框包含相同的场景元素。
图12是示出部分神经网络推理流程1200的示例的示意图。在一些示例中,仅针对输入帧1202中的注意力区域执行部分神经网络推理。在示例性部分神经网络推理流程1200中,CV系统100处理输入帧1202以识别注意力区域。
CV系统100可以生成识别针对输入帧1202确定的注意力区域的掩码1204(或映射)。CV系统100可以使用识别注意力区域的掩码1204来生成注意力区域1206。然后,CV系统100可以使用注意力区域帧1206来生成输出帧1208。
在该示例中的输出帧1208包括示出和/或包括使用CV系统100的神经网络跟踪的对象的边界框1210和1212,以及示出和/或包括由光流跟踪器使用光流跟踪的对象的边界框1214和1216。如部分神经网络推理流程1200所示,CV系统100可以使用神经网络来跟踪场景中的某些对象,并且使用光流跟踪器来跟踪场景中的其它对象。使用神经网络跟踪的对象可以对应于针对场景的帧确定的注意力区域,如先前所解释的。在一些示例中,使用神经网络跟踪的对象可以包括场景中在当前时间和/或上下文最重要和/或相关(例如,更接近的对象、更快地迫近的对象等)的对象,并且使用光流跟踪器跟踪的对象可以包括在当前时间和/或上下文较不重要和/或相关的对象。
光流跟踪器可以比神经网络更高效和更低需求,并且神经网络可以比光流跟踪器更高需求和更低效,但是比光流跟踪器更准确。CV系统100可使用更高效且更低需求的光流跟踪器来跟踪在当前时间、上下文和/或帧处较不重要和/或相关的对象;以及使用更高需求但更准确的神经网络来跟踪在当前时间、上下文和/或帧处较重要和/或相关的对象。这样,CV系统100可以提高总体效率并减少总体计算负载和资源消耗,同时保持跟踪结果的准确性。
图13是示出由神经网络对帧区域的示例选择性处理的示意图。在该示例中,示例帧1300标识(和/或被划分为)区域1302-1306。如先前所描述,区域1302-1306以由CV系统100确定的相应速率选择性地处理。
如图所示,帧1300的区域1302被配置和/或选择用于在处理和/或捕获N数量个帧之后由神经网络处理。在处理和/或捕获m数量个帧之后,区域1304被配置和/或选择用于由神经网络处理。n数量个帧和m数量个帧可以表示相同或不同的值。区域1306被配置和/或选择用于在当前时间由神经网络处理。因此,神经网络可以在当前时间处理区域1306,但是可以跳过处理区域1302达特定数量的帧(例如,基于n数量个帧的速率)和区域1304达特定数量的帧(例如,基于m数量个帧的速率)。
在一些示例中,神经网络仅处理在某些时间被确定为重要和/或相关的区域。如前所述,低水平计算机视觉可以用于感测和/或理解由帧1300描绘的场景。低水平计算机视觉可以包括例如但不限于深度估计、光流、遮挡/去遮挡估计、天空检测、显著可视化特征估计等。CV系统100可以识别要由神经网络处理的区域(例如,更相关和/或重要的区域),并且组合从帧1300提取的特征(例如,低水平特征,诸如深度、可视化显著性、遮挡和/或去遮挡、光流、诸如天空的场景元素等)以理解由帧描绘的场景。如前所述,在一些示例中,CV系统100可以仅对帧1300的重要和/或相关区域执行神经网络推理。这可以提高CV系统100的整体性能(例如,每秒帧数)、效率、功耗等。
在示例自主驾驶用例中,选择性处理可以通过确保神经网络仅处理场景的帧的重要和/或相关区域来改善ADAS感知,使得在帧的较不重要和/或相关部分上不使用或浪费更昂贵/需求高的神经网络处理。CV系统100可以使用低水平计算机视觉算法来感测和理解场景。低水平计算机视觉算法的非限制性示例包括用于深度估计、光流、天空检测、遮挡和/或遮挡检测、可视化显著性等的算法。CV系统100可以结合来自低水平计算机视觉算法的信息来确定场景的哪些区域是最重要的和/或相关的,以便将神经网络处理限制在这些区域。此外,CV系统100可组合来自低水平计算机视觉算法的信息以确定应立即由神经网络处理哪些区域(例如,更重要和/或相关区域)。然后,神经网络可以对所识别的区域执行神经网络推理(例如,对象检测)。
图14是示出用于动态地平衡神经网络负载的示例负载控制流程1400的示意图。负载控制流程1400可以基于CV系统100的负载约束1402动态地平衡神经网络负载。在一些示例中,负载约束1402可以包括CV系统100的热功率包络(例如,功率约束、温度约束等)。在一些情况下,负载约束1402可以附加地或替代地包括系统性能、资源可用性、处理要求、性能要求和/或任何其它硬件、处理和/或软件约束。
CV系统100可以使用负载约束1402来确定目标神经网络负载1404。目标神经网络负载1404可以根据负载约束1402动态地平衡CV系统100的神经网络的负载。在一些示例中,目标神经网络负载1404可以定义用于由CV系统100的神经网络处理帧和/或帧区域的一个或多个负载和/或一个或多个处理速率(例如,一个或多个FPS速率)。例如,在图14的说明性示例中,目标神经网络负载1404提供帧1410的帧区域1412将在已经处理和/或捕获了n数量个帧之后使用神经网络来处理,帧区域1414将在已经处理和/或捕获了m数量个帧之后使用神经网络来处理,并且帧区域1416将立即使用神经网络来处理。在一些示例中,帧区域的数量和处理速率(例如,FPS速率)可以基于针对计算负载能力的动态改变的约束来确定,以确保总处理器负载满足负载约束1402。
目标神经网络负载1404可以允许CV系统100从神经网络处理减少系统上的负载。通常,使用神经网络的对象检测和跟踪比使用光流的对象跟踪更准确和可靠,而光流计算的处理负载和功耗小于神经网络的处理负载和功耗。因此,神经网络负载的动态平衡可以平衡准确性、可靠性、处理负载和功耗。
图15是示出针对由CV系统100处理的场景的帧的变化部分确定的自适应注意力区域的示例的示意图。在该示例中,帧1502-1506描绘驾驶场景。帧1502在时间t1被捕获,帧1504在时间t2被捕获,并且帧1506在时间t3被捕获。因此,帧1502描绘了在第一时间的驾驶场景,帧1504描绘了在第一时间之后的第二时间的驾驶场景,并且帧1506描绘了在第二时间之后的第三时间的驾驶场景。
如图所示,帧1502描绘了在一定距离处的对象1510(例如,相对于用于捕获帧1502-1506的CV系统100的图像捕获设备),帧1504描绘了在更近的距离处的对象1510,并且帧1506描绘在更近的距离处的对象1510。在实现自适应注意力区域时,CV系统100可以在对象1510更远离CV系统100(例如,并且因此较不相关和/或重要)时从注意力区域排除描绘对象1510的帧区域,并且当对象1510更靠近CV系统100时(例如,并且因此更直接相关和/或重要)在注意力区域中包括描绘对象1510的帧区域。
例如,CV系统100可以从针对帧1502确定的注意力区域排除描绘对象1510的帧区域,因为对象1510在帧1502中比在帧1504和帧1506中更远。CV系统100可以在针对帧1506确定的注意力区域包括描绘对象1510的帧区域,因为对象1510在帧1506中最接近(例如,与在帧1502和帧1504中相比)。在一些示例中,CV系统100可以在针对帧1504确定的注意力区域包括描绘对象1510的帧区域,因为对象1510在帧1504中比在帧1502中更近,但是在帧1504中比在帧1506中更远。在其它示例中,CV系统100可以从针对帧1504确定的注意力区域排除描绘对象1510的帧区域。
因此,当对象1510在帧中更接近时,CV系统100可以在被识别用于由CV系统100的神经网络处理的注意力区域中包括描绘对象1510的帧区域,并且当对象1510更远离时,CV系统100可以从被识别用于由神经网络处理的注意力区域排除描绘对象1510的帧区域。这样,当对象1510更靠近CV系统100并且因此更直接相关和/或重要时,CV系统100可以在要由神经网络处理的注意力区域中包括对象1510周围的区域。
在一些情况下,CV系统100可以使用一个或多个加载或负载平衡因子(例如,图14中所示的负载约束1402)来确定描绘对象1510的帧区域是否应当被包括在针对帧1504确定的注意力区域或排除在针对帧1504确定的注意力区域之外。在一些情况下,CV系统100可以另外或替代地实现用于确定描绘对象1510的帧区域是否应当被包括在针对帧确定的注意力区域或排除在针对帧确定的注意力区域之外的门限。例如,CV系统100可以确定是否满足特定门限,并且如果满足门限,则确定在针对帧1504的注意力区域中包括描绘对象1510的帧区域,并且如果不满足门限,则从针对帧1504的注意力区域排除它。门限可以包括例如但不限于对象的门限距离(例如,相对于CV系统100)、对象的门限速度、门限时间段,直到预测对象进入CV系统100的接近度、门限性能、门限准确性、门限系统负载和/或任何其它因子和/或因子的组合内。
如先前所解释的,CV系统100可以实现每区域处理速率(例如,FPS速率)、用于确定要包括用于由CV系统100的神经网络处理的注意力区域的量的门限或标准、目标神经网络负载(例如,目标神经网络负载1404)、元素注意力因子、对象跟踪等。在一些示例中,每区域处理速率(例如,每区域FPS速率)可以根据场景的一个或多个帧中的注意力区域(例如,具有较高注意力分数的区域的较高处理速率)来应用神经网络处理的不同速率(例如,不同FPS速率)。这些对象检测和自适应处理技术可以提高处理效率,同时降低整体功耗和温度条件并提供准确的结果。在自主驾驶用例中,对象检测和自适应处理技术也可以增加和/或确保自主驾驶安全。例如,对象检测和自适应处理技术可以确保没有场景中的对象在对象检测和/或跟踪结果中被错过,并且可以基于优先级(例如,注意力投票)来实现每区域处理的调度。
在一些示例中,如本文所述的门限和/或标准可以根据一个或多个因子(诸如例如但不限于性能、功耗、温度条件、硬件系统/组件中的热预算变化、精度要求、资源可用性、处理约束、服务要求和/或期望、系统能力和/或任何其它因子)来提供动态反馈控制。在一些情况下,可以基于针对计算负载能力的动态改变的约束来确定被选择用于由神经网络处理的区域的数量和/或神经网络处理速率(例如,FPS速率),以便确保总处理器负载满足约束。
通常,来自神经网络的对象检测和跟踪比使用光流跟踪器的跟踪更准确和可靠,而光流跟踪器的处理负载和功耗小于神经网络的处理负载和功耗。可以利用神经网络处理和光流计算之间在准确性、可靠性、性能、功耗、处理复杂度等方面的差异来识别神经处理区域和速率,以实现准确性、可靠性、性能、功耗、处理复杂度等的最佳平衡。例如,在一些情况下,如果CV系统100经历高功耗和/或高温,则CV系统100可以降低来自如前所述的一个或多个计算机视觉功能的具有低注意力投票的区域中的神经网络处理速率。这可以通过减少神经网络处理并增加光流计算的使用来更新跟踪结果来减少处理负载。
在一些示例中,神经网络加载可以动态地实现某些因子(诸如例如准确性、功率和性能)之间的权衡。此外,CV系统100可以使用注意力因子(例如,深度、光流、天空检测、遮挡、遮挡、扩展焦点、可视化显著性等)来确定来自一组计算机视觉功能(例如,深度估计、光流、天空检测、遮挡估计、去遮挡估计、扩展焦点估计、可视化显著性估计等)的注意力分数和/或投票。在一些示例中,注意力因子可以包括与特定场景(诸如驾驶场景)相关的因子。由CV系统100根据本文描述的技术执行的对象跟踪可以基于光流提供对象位置更新,并且可以使用神经网络处理来确保和/或增加跟踪准确性。
图16是示出根据本公开内容的一些示例的动态变化的神经网络工作负载的示例的示意图。如图所示,示意图示出了帧1602-1622的动态神经网络处理。在帧1602(第一帧)处,神经网络可以处理整个帧(例如,100%个工作负载)。在一些情况下,神经网络还可以在每n数量个帧被处理之后处理整个帧。例如,在图17所示的说明性示例中,如下动态地改变神经网络工作负载。对于接下来的t秒,帧的数量等于20个帧每秒乘以时间t秒,其等于20t。每帧(例如,在20t处)处理帧的最重要和/或相关的20%,每5帧(例如,在4t处)处理帧的最重要和/或相关的50%,并且每10帧(例如,在2t处)处理整个帧。
因此,在该示例中,神经网络处理整个帧1602(例如,100%工作负载)。在帧1602之后,神经网络处理帧1604、1606、1608和1610的最重要和/或相关的20%(例如,帧1604-1610的20%工作负载)。这里,神经网络处理对应于基于如先前所解释的注意力分数和/或投票确定的帧1604-1610的最重要和/或相关的20%的帧区域1604至1610。在帧1612处,神经网络处理基于注意力分数和/或投票确定的帧的最重要和/或相关的50%(例如,50%工作负载)。在帧1614、1616、1618和1620处,神经网络处理帧1614-1620中的每个帧的如基于注意力分数和/或投票确定的最重要和/或相关的20%。在帧1622处,神经网络处理整个帧1622(例如,100%个工作负载)。
如图所示,动态变化的神经网络工作负载可以导致显著的工作负载减少和功率和热需求和/或条件的降低。动态和自适应神经网络工作负载可以显著降低平均神经网络工作负载、处理需求和/或复杂度、功耗、温度条件等,同时保持和/或提高处理效率、准确性、可靠性、性能等。
图17中所示的工作负载、处理速率、变化等仅仅是出于解释目的而提供的说明性示例。在其它示例中,神经网络可以实现其它工作负载、处理速率、变化等。例如,在其它情况下,神经网络可以整体处理第一帧(例如,帧1602),每个后续帧的最重要和/或相关的30%,以及每第十帧的最重要和/或相关的75%。
图17是示出用于视觉感知处理的示例过程1700的流程图。在框1702处,过程1700可以包括确定帧集合的第一帧中的一个或多个特征。在一些示例中,过程1700可以包括从图像捕获设备获得帧集合。在一些情况下,帧集合是帧序列(例如,视频或其它帧序列)的一部分。在一些方面中,一个或多个特征可以包括通过一个或多个计算机视觉功能从第一帧提取的低水平特征。例如,一个或多个特征可以包括深度、光流、可视化显著性、天空检测特征、遮挡和/或去遮挡特征和/或任何其它低水平特征。
在框1704处,过程1700可以包括基于一个或多个特征来识别第一帧的一个或多个区域以供神经网络处理。如本文所述,第一帧的一个或多个区域可以包括一个或多个注意力区域。在一些示例中,可以基于由用于提取一个或多个特征的一个或多个计算机视觉功能提供的注意力投票来识别第一帧的一个或多个区域。例如,在一些情况下,第一帧的一个或多个区域可以包括具有来自一个或多个计算机视觉功能的n个最高注意力投票数量的帧区域。
在一些示例中,一个或多个区域可以小于整个第一帧。例如,一个或多个区域的组合可以小于第一帧的所有区域的组合。
在框1706处,过程1700可以包括使用神经网络来检测或跟踪第一帧的一个或多个区域中的一个或多个对象。例如,过程1700可以包括基于使用神经网络对一个或多个区域的处理来检测或跟踪第一帧的一个或多个区域中的一个或多个对象。在一些情况下,可以基于计算的光流来更新未使用神经网络处理的任何区域。例如,可以替代地更新未使用神经网络处理的区域以反映根据计算的光流的移动。CV系统100可以调整帧内的区域的放置和/或位置,以考虑根据计算的光流的移动。
在一些方面中,过程1700可以包括计算第一帧的每个区域的注意力需求分数或特性,基于每个区域的注意力需求分数或特性来生成每个区域的注意力投票,以及基于来自一个或多个计算机视觉功能的多个注意力投票来计算第一帧的每个区域的注意力分数或特性。在一些示例中,每个区域的注意力投票可以提供注意力需求和/或注意力请求。
在一些方面中,过程1700可以包括进一步基于根据多个注意力投票计算的每个区域的注意力需求分数或特性来识别一个或多个区域。在一些示例中,所述一个或多个计算机视觉功能可以包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点估计和/或可视化显著性检测。
在一些方面中,过程1700可以包括基于使用光流跟踪器/算法处理一个或多个附加区域来检测或跟踪第一帧的一个或多个附加区域中的一个或多个附加对象。
在一些情况下,检测或跟踪一个或多个区域中的一个或多个对象可以包括在来自帧集合的特定数量的帧之后使用神经网络处理一个或多个区域。
在一些方面中,过程1700可以包括使用一个或多个特征为第一帧中的每个对象生成相应的分类和边界框。
在一些情况下,检测或跟踪所述一个或多个区域中的所述一个或多个对象可以包括使用所述神经网络处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的任何其它区域。
在一些方面中,过程1700可以包括基于一个或多个约束来确定用于神经网络的神经网络负载目标。在一些示例中,用于动态地计算负载能力的一个或多个约束可以基于系统性能、组件性能、功耗、系统的温度条件、资源条件、系统能力和/或任何其它因素来改变。
在一些方面中,过程1700可以包括针对不同区域应用神经网络处理的不同的每秒帧速率。在一些情况下,针对不同区域的不同的每秒帧速率基于所识别的区域(例如,所识别的注意力区域)。在一些示例中,具有较高注意力分数的第一区域由神经网络以比具有较低注意力分数的第二区域更高的每秒帧速率来处理。
在一些方面中,过程1700可以包括使用神经网络根据一个或多个相应的每秒帧速率来仅处理所述帧集合中的一个或多个部分区域。在一些示例中,被选择用于由神经网络处理的一个或多个区域包括与第一帧相关联的注意力区域。
在一些方面中,过程1700可以包括基于针对计算负载能力的动态改变的约束来确定区域的数量和每秒帧速率。在一些方面中,过程1700可以包括确定与区域的数量和每秒帧速率相关联的总处理器负载满足动态改变的约束。
图18是示出用于视觉感知的过程1800的另一示例的流程图。在框1802处,过程1800可以包括从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票。在一些情况下,过程1800可以包括从图像捕获设备获得所述帧集合。在一些示例中,所述帧集合可以是帧序列(例如,视频或其它帧序列)的一部分。在一些方面中,所述每个区域的注意力投票可以提供注意力需求和/或注意力请求。在一些情况下,所述一个或多个计算机视觉功能可以包括用于以下各项的一个或多个功能:深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点估计和/或可视化显著性检测。
在一些情况下,一个或多个计算机视觉功能可以用于从第一帧(以及来自帧集合的任何其它帧)提取特征。在一些示例中,可以基于所确定的第一帧的每个区域的注意力需求分数或特性来确定所述每个区域的注意力投票。在一些示例中,用于从所述第一帧提取特征的一个或多个计算机视觉功能中的每个计算机视觉功能可以提供所述第一帧的每个区域的分数。
在框1804处,过程1800可以包括基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数。在一些示例中,可以基于与该区域相关联的相应数量的注意力投票来确定所述每个区域的注意力分数。例如,可以基于针对每个区域从一个或多个计算机视觉功能获得的相应数量的注意力投票来确定所述用于每个区域的注意力分数。
在框1806处,过程1800可以包括基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理。在一些示例中,一个或多个区域可以包括如本文进一步描述的识别的一个或多个注意力区域(例如,一个或多个感兴趣区域)。
在框1808处,过程1800可以包括基于使用所述神经网络对所述一个或多个区域的处理来检测和/或跟踪所述第一帧的所述一个或多个区域中的一个或多个对象。例如,神经网络可以处理所述一个或多个区域以检测和/或跟踪所述第一帧的所述一个或多个区域中的一个或多个对象。
在一些示例中,可以使用神经网络来处理所述第一帧的所述一个或多个区域,并且可以使用一个或多个计算机视觉算法(例如,光流算法等)来处理所述第一帧的一个或多个附加区域。在一些情况下,使用所述神经网络对所述一个或多个区域的所述处理可以基于所述第一帧的所述每个区域的注意力分数。例如,可以基于所述一个或多个区域的相关联的注意力分数经由所述神经网络来选择所述一个或多个区域用于处理。
在一些方面中,过程1800可以包括:确定所述第一帧中的一个或多个特征;至少部分地基于所述第一帧中的所述一个或多个特征来确定所述第一帧的每个区域的注意力需求分数或特性;以及基于所述每个区域的注意力需求分数或特性来确定所述每个区域的注意力分数。在一些情况下,所述一个或多个特征可以包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和/或可视化显著性信息。
在一些方面中,过程1800可以包括使用光流算法来检测和/或跟踪所述第一帧的一个或多个附加区域中的一个或多个附加对象。在一些示例中,监测和/或跟踪所述第一帧的所述一个或多个附加区域中的所述一个或多个附加对象可以包括使用所述光流算法处理所述一个或多个附加区域并且避免使用所述神经网络处理所述一个或多个附加区域。
在一些示例中,检测和/或跟踪所述第一帧的所述一个或多个区域中的所述一个或多个对象可以包括避免使用所述神经网络来处理所述第一帧的一个或多个附加区域,并且在处理来自所述帧集合的预定数量的帧之后,使用所述神经网络处理第二帧的一部分。在一些示例中,所述第二帧的所述部分可以对应于所述一或多个附加区域中的至少一个区域。
在一些方面中,过程1800可以包括使用所述第一帧的一个或多个特征来生成用于所述一个或多个对象的分类和边界框。
在一些情况下,检测和/或跟踪所述一个或多个区域中的所述一个或多个对象可以包括使用所述神经网络处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的一个或多个附加区域。
在一些方面中,过程1800可以包括基于一个或多个约束来确定用于神经网络的神经网络负载目标。在一些示例中,所述一个或多个约束可以包括与计算设备相关联的系统性能、系统组件性能、功耗和/或温度条件(例如,CV系统100)。
在一些方面中,过程1800可以包括针对不同帧区域应用神经网络处理的不同的每秒帧速率。在一些情况下,所述不同的每秒帧速率基于所述第一帧的所选择的一个或多个区域。
在一些示例中,所述一个或多个区域包括第一区域和第二区域。在一些示例中,所述第一区域具有与所述第二区域相比较高的注意力分数,并且具有所述较高的注意力分数的所述第一区域是使用神经网络以与具有较低的注意力分数的所述第二区域相比较高的每秒帧速率来处理的。
在一些方面中,过程1800可以包括使用神经网络根据一个或多个相应的处理速率来仅处理所述帧集合中的一个或多个部分区域。在一些示例中,所述帧集合的所述一个或多个部分区域可以包括所述第一帧的所述一个或多个区域。
在一些方面,过程1800可以包括基于针对计算负载能力的动态改变的约束来确定要使用所述神经网络处理的区域的数量以及用于使用所述神经网络处理帧区域的一个或多个每秒帧速率。在一些方面中,过程1800可以包括确定与所述区域的数量和所述一个或多个每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
在一些示例中,过程1800可以包括确定所述第一帧中的一个或多个特征。在一些情况下,所述一个或多个特征可以包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息、分割图和/或可视化显著性信息。在一些情况下,可以至少部分地基于一个或多个特征来识别第一帧的一个或多个区域。
在一些示例中,过程1700和/或过程1800可以由一个或多个计算设备或装置执行。在一个说明性示例中,过程1700和/或过程1800可以由图1所示的CV系统100执行。在一些示例中,过程1700和/或过程1800可以由具有图19所示的计算设备架构1900的一个或多个计算设备执行。在一些情况下,这样的计算设备或装置可以包括处理器、微处理器、微型计算机或被配置为执行过程1700和/或过程1800的步骤的设备的其它组件。在一些示例中,此类计算设备或装置可以包括被配置为捕获图像数据和/或其它传感器测量的一或多个传感器。例如,计算设备可以包括智能电话、头戴式显示器、移动设备或其它合适的设备。在一些示例中,此类计算设备或装置可以包括被配置为捕获一个或多个图像或视频的相机。在一些情况下,这样的计算设备可以包括用于显示图像的显示器。在一些示例中,一个或多个传感器和/或相机与计算设备分离,在这种情况下,计算设备接收感测到的数据。这样的计算设备可以进一步包括被配置为传送数据的网络接口。
计算设备的组件可以被实施在电路中。例如,组件可以包括电子电路或其它电子硬件,和/或者可以使用电子电路或其它电子硬件来实施,所述电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其它合适的电子电路),和/或者组件可以包括用于执行本文中描述的各种操作的计算机软件、固件或其组合和/或者可以使用用于执行本文中描述的各种操作的计算机软件、固件或其组合来实现。计算设备还可以包括显示器(作为输出设备的示例或除了输出设备之外)、被配置为通信和/或接收数据的网络接口、其任何组合和/或其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(IP)的数据或其它类型的数据。
过程1700和过程1800被示为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实现的操作序列。在计算机指令的背景下,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构、等等。操作以其描述的顺序不旨在被解释为限制,并且任何数量个所描述的操作可以以任何顺序和/或并行地组合以实施所述过程。
附加地,过程1700和/或过程1800可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件实施为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序),或其组合。如上面所指出的,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
图19示出了示例计算设备的示例计算设备架构1900,其可以实现本文所述的各种技术。例如,计算设备架构1900可以实现图1中所示的CV系统100的至少一些部分。计算设备架构1900的组件被示出为使用诸如总线的连接1905彼此电通信。示例计算设备架构1900包括处理单元(CPU或处理器)1910和计算设备连接1905,所述计算设备连接1905将包括计算设备存储器1915的各种计算设备组件(诸如只读存储器(ROM)1920和随机存取存储器(RAM)1925耦合到处理器1910。
计算设备架构1900可以包括与处理器1910直接连接、紧邻处理器910或集成为处理器910的一部分的高速存储器的高速缓存。计算设备架构1900可以将数据从存储器1915和/或存储设备1930复制到高速缓存1912以供处理器1910快速访问。以这种方式,高速缓存可以提供避免处理器1910在等待数据时延迟的性能提升。这些模块和其它模块可以控制或被配置为控制处理器1910执行各种动作。其它计算设备存储器1915也可以用于使用。存储器1915可以包括具有不同性能特性的多种不同类型的存储器。处理器1910可以包括任何通用处理器和存储在存储设备1930中并被配置为控制处理器1910的硬件或软件服务,以及其中将软件指令并入处理器设计中的专用处理器。处理器1910可以是自含式系统,包含多个内核或处理器、总线、存储器控制器、高速缓存、等等。多核处理器可以是对称的或不对称的。
为了实现与计算设备架构1900的用户交互,输入设备1945可以表示任意数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备1935也可以是本领域技术人员已知的多个输出机制中的一个或多个输出机制,例如显示器、投影仪、电视、扬声器设备。在一些情况下,多模式计算设备可以使用户能够提供多种类型的输入以与计算设备架构1900进行通信。通信接口1940一般可以控制和管理用户输入和计算设备输出。对在任何特定硬件布置上的操作没有限制,并且因此这里的基本特征可以很容易地替换为改进的硬件或固件布置(因为它们被开发)。
存储设备1930是非易失性存储器并且可以是硬盘或可以存储由计算机可访问的数据的其它类型的计算机可读介质,例如磁带、闪存卡、固态存储设备、数字通用盘、盒式磁带、随机存取存储器(RAM)1925、只读存储器(ROM)1920及其混合。存储设备1930可以包括用于控制处理器1910的软件、代码、固件等。其它硬件或软件模块是预期的。存储设备1930可以连接到计算设备连接1905。在一个方面中,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与执行该功能所需的硬件组件(例如处理器1910、连接1905、输出设备1935等)相结合。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括可存储数据的非暂时性介质,而不包括无线传输或通过有线连接传输的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、光盘存储介质(如,压缩光盘(CD)或数字多用途光盘(DVD))、闪存、存储器或存储设备。计算机可读介质可以存储代码和/或机器可执行指令,这些指令可以表示过程、功能、子程序、程序、例程、子例程、模块、软件包、类、或指令、数据结构或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,代码段可以耦合到另一代码段或硬件电路。信息、自变量、参数、数据等等可以通过任何合适的方式传递、转发或传输,这些方式包括内存共享、消息传递、令牌传递、网络传输等。
在一些方面中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。但是,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
在上面的描述中提供了具体细节以提供对本文提供的方面和示例的透彻理解。然而,本领域普通技术人员将理解,在没有这些具体细节的情况下也可以实践方面。为了解释清楚,在一些情况下,本文的技术可以被呈现为包括单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。可以使用除了附图中所示和/或本文中所描述的那些之外的附加组件。例如,电路、系统、网络、过程和其它组件可以被示出为框图形式的组件,以免以不必要的细节模糊方面。在其它情况下,可以示出众所周知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊方面。
各个方面可以在上面被描述为被描绘为流程图、流示意图、数据流图、结构图或框图的过程或方法。尽管使用流程图将操作描述成了一个顺序处理过程,但很多操作可以是并行或同时进行。附加地,可以对这些操作的顺序进行重新布置。当这些操作结束时,处理过程也就终结了,但其可以具有附图中没有包括的其它步骤。过程可以对应于方法、功能、进程、子程序、子程序等。当过程对应于功能时,它的终止可以对应于功能返回到调用功能或主功能。
根据上述示例的过程和方法可以使用被存储在计算机可读介质中或以其它方式可从计算机可读介质获取的计算机可执行指令来实施。这样的指令可以包括例如导致或以其它方式配置通用计算机、专用计算机或处理设备来执行特定功能或功能组的指令和数据。可以通过网络访问使用的计算机资源部分。计算机可执行指令可以是例如二进制、中间格式指令,诸如汇编语言、固件、源代码、等等。可用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、具有非易失性存储器的USB设备、联网存储设备、等等。
实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,以及可以采用多种形状因子中的任何一种。当实施在软件、固件、中间件或微代码中时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。一个(或多个)处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其它小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文所描述的功能还可以体现在外围设备或附加卡中。通过进一步的示例,这样的功能也可以被实施在电路板上在不同芯片或在单个设备中执行的不同过程之间。
指令、用于传送这样的指令的介质、用于执行它们的计算资源、以及用于支持这样的计算资源的其它结构,是用于提供本公开内容中描述的功能的示例性装置。
在前述描述中,参考本发明的具体方面描述了本申请的各方面,但是本领域技术人员将认识到本发明不限于此。因此,尽管在本文中已经详细描述了本申请的说明性方面,但是应当理解,这些发明构思可以用其它方式被不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变型,除了现有技术所限制的以外。上述应用的各种特征和方面可以单独地或联合地使用。此外,方面可以用于超出本文描述的环境和应用的任何数量的环境和应用,而不脱离本说明书的更广泛的精神和范围。因此,说明书和附图应被认为是说明性的而不是限制性的。为了说明起见,以特定顺序描述了方法。应当理解,在替代方面中,可以以与所描述的次序不同的次序来执行这些方法。
本领域普通技术人员将理解,在不脱离本说明书的范围的情况下,本文所使用的小于(“<”)和大于(“>”)符号或术语可以分别由小于或等于(“≤”)和大于或等于(“≥”)符号代替。
在组件被描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过以下各项来实现:设计电子电路或其它硬件以执行操作、通过编程可编程电子电路(例如,微处理器或其它合适的电子电路)以执行操作、或其任何组合。
短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口而连接到另一组件)。
本公开内容中记载集合“中的至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言指示集合中的一个成员或集合中的多个成员(以任何组合)满足权利要求。例如,记载"A和B中的至少一个"或"A或B中的至少有一个"的权利要求语言是指A、B,或A和B。在另一个示例中,记载"A、B和C中的至少一个"或"A、B或C中的至少一个"的权利要求语言是指A、B、C,或A和B,或A和C,或B和C,或A和B和C。语言集合“中的至少一个”和/或集合“中的一个或多个”不限制在该集合中列出的项目的集合。例如,记载“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以表示A、B、或A和B,并且可以另外包括在A和B的集合中未列出的项目。
结合本文中所公开的示例进行描述的各个说明性逻辑框、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上文已经对各种说明性的组件、框、模块、电路和步骤围绕其功能性进行了总体描述。至于这样的功能性是实现为硬件还是软件,取决于特定的应用以及施加在整个系统上的设计约束。技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这样的实现决策不应当被解释为导致脱离本申请的范围。
本文中描述的技术还可以被实现在电子硬件、计算机软件、固件或其任何组合中。这样的技术可以被实现在多种设备中的任何设备中,多种设备诸如通用计算机、无线通信设备手持设备、或具有多种用途的集成电路设备,多种用途包括在无线通信设备手持设备和其它设备中的应用。描述为模块或组件的任何特征可以一起实现在集成逻辑器件中,或者单独实现为分立但可互操作的逻辑器件。如果被实现在软件中,则所述技术可以至少部分地由包括程序代码的计算机可读数据存储介质来实施,所述程序代码包括在被执行时执行上文所描述的方法、算法和/或操作中的一项或多项的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、FLASH存储器、磁或光数据存储介质、等等。附加地或替代地,技术可以至少部分地由计算机可读通信介质来实现,该计算机可读通信介质携带或传送指令或数据结构形式的且可由计算机存取、读取和/或执行的程序代码,诸如传播的信号或波。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其它等效的集成逻辑电路或离散逻辑电路。这种处理器可以被配置为执行本公开内容中描述的任何技术。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核的一个或多个微处理器、或者任何其它这样的配置。因此,如本文中所使用的术语“处理器”可以指前述结构中的任何结构、前述结构的任何组合或适合于实施本文中所描述的技术的任何其它结构或装置。
本公开内容的说明性方面包括:
方面1:一种用于处理图像数据的装置,所述装置包括:存储器;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:从图像捕获设备获得帧序列的帧集合;确定所述帧集合中的第一帧中的一个或多个特征;基于所述一个或多个特征,识别所述第一帧中的用于由神经网络处理的一个或多个区域;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
方面2:根据方面1所述的装置,其中,所述一个或多个处理器被配置为:计算所述第一帧的每个区域的注意力需求分数或特性;基于所述每个区域的注意力需求分数或特性来生成每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;以及基于来自一个或多个计算机视觉功能的多个注意力投票来计算所述第一帧的每个区域的注意力分数或特性。
方面3:根据方面1至2中任一项所述的装置,其中,所述一个或多个处理器被配置为还基于根据所述多个注意力投票计算的所述每个区域的注意力分数或特性来识别所述一个或多个区域。
方面4:根据方面2或3中任一项所述的装置,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点和可视化显著性检测中的至少一项。
方面5:根据方面1至4中任一项所述的装置,其中,所述一个或多个处理器被配置为基于使用光流算法处理所述一个或多个附加区域来检测或跟踪所述第一帧的一个或多个附加区域中的一个或多个附加对象。
方面6:根据方面1至5中任一项所述的装置,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
方面7:根据方面1至6中任一项所述的装置,其中,为了检测所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为在来自所述帧集合的特定数量的帧之后使用所述神经网络来处理所述一个或多个区域。
方面8:根据方面1至7中任一项所述的装置,其中,所述一个或多个处理器被配置为使用所述一个或多个特征针对所述第一帧中的每个对象生成相应的分类和边界框。
方面9:根据方面1至8中任一项所述的装置,其中,为了检测所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的任何其它区域。
方面10:根据方面9所述的装置,其中,所述一个或多个区域的组合小于所述第一帧的所有区域的组合。
方面11:根据方面1至10中任一项所述的装置,其中,所述一个或多个处理器被配置为基于一个或多个约束来确定用于所述神经网络的神经网络负载目标。
方面12:根据方面11所述的装置,其中,用于计算负载能力的所述一个或多个约束动态地改变所述装置的系统性能、系统组件性能、功耗和热温度条件中的至少一项。
方面13:根据方面1至12中任一项所述的装置,其中,所述一个或多个处理器被配置为针对不同区域应用神经网络处理的不同的每秒帧速率。
方面14:根据方面13所述的装置,其中,针对不同区域的所述不同的每秒帧速率基于所识别的注意力区域。
方面15:根据方面13或14中任一项所述的装置,其中,具有较高注意力分数的第一区域由所述神经网络以与具有较低注意力分数的第二区域相比较高的每秒帧速率来处理。
方面16:根据方面1至15中任一项所述的装置,其中,所述一个或多个处理器被配置为使用所述神经网络以根据一个或多个相应的每秒帧速率仅处理所述帧集合中的一个或多个部分区域。
方面17:根据方面1至16中任一项所述的装置,其中,被选择用于由所述神经网络处理的所述一个或多个区域包括与所述第一帧相关联的注意力区域。
方面18:根据方面1至17中任一项所述的装置,其中,所述装置被用作高级驾驶员辅助系统中的视觉感知功能。
方面19:根据方面1至18中任一项所述的装置,其中,所述装置包括生成一个或多个视觉帧流的一个或多个相机。
方面20:根据方面1至19中任一项所述的装置,其中,所述一个或多个处理器被配置为基于针对计算负载能力的动态改变的约束来确定区域的数量和每秒帧速率。
方面21:根据方面20所述的装置,其中,所述一个或多个处理器被配置为确定与所述区域的数量和每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
方面22:一种装置,包括:存储器;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:从图像捕获设备获得帧序列的帧集合;计算第一帧的每个区域的注意力需求分数或特性;基于每个区域的所述注意力需求分数来生成每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于来自一个或多个计算机视觉功能的多个注意力投票来计算所述第一帧的每个区域的注意力分数或特性;以及基于使用神经网络对所述一个或多个区域的处理来检测所述第一帧的一个或多个区域中的一个或多个对象,所述一个或多个区域是基于与所述一个或多个区域相关联的所述注意力分数或特性使用所述神经网络来处理的。
方面23:根据方面22所述的装置,其中,所述一个或多个处理器被配置为还基于根据所述多个注意力投票计算的所述每个区域的注意力分数或特性来识别所述一个或多个区域。
方面24:根据方面22或23中任一项所述的装置,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点和可视化显著性检测中的至少一项。
方面25:根据方面22至24中任一项所述的装置,其中,所述一个或多个处理器被配置为确定所述帧集合的所述第一帧中的一个或多个特征,并且其中,所述第一帧的所述每个区域的注意力需求分数或特性是至少部分地基于所述第一帧中的所述一个或多个特征来计算的。
方面26:根据方面25所述的装置,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
方面27:根据方面22至26中任一项所述的装置,其中,一个或多个处理器被配置为基于使用光流算法处理所述一个或多个附加区域来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。
方面28:根据方面22至27中任一项所述的装置,其中,为了检测所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为在来自所述帧集合的特定数量的帧之后使用所述神经网络来处理所述一个或多个区域。
方面29:根据方面22至28中任一项所述的装置,其中,所述一个或多个处理器被配置为使用所述第一帧的一个或多个特征来针对所述第一帧中的每个对象生成相应的分类和边界框。
方面30:根据方面22至29中任一项所述的装置,其中,为了检测所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的任何其它区域。
方面31:根据方面30所述的装置,其中,所述一个或多个区域的组合小于所述第一帧的所有区域的组合。
方面32:根据方面22至31中任一项所述的装置,其中,所述一个或多个处理器被配置为基于一个或多个约束来确定用于所述神经网络的神经网络负载目标。
方面33:根据方面32所述的设备,其中所述一或多个约束包括系统性能、系统组件性能、功率消耗和热温度条件中的至少一项。
方面34:根据方面22至33中任一项所述的装置,其中,所述一个或多个处理器被配置为针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
方面35:根据方面34所述的装置,其中,所述不同的每秒帧速率基于所识别的注意力区域。
方面36:根据方面34或35中任一项所述的装置,其中,具有较高注意力分数的第一区域由所述神经网络以与具有较低注意力分数的第二区域相比较高的每秒帧速率来处理。
方面37:根据方面22至36中任一项所述的装置,其中,所述一个或多个处理器被配置为使用所述神经网络以根据一个或多个相应的每秒帧速率仅处理所述帧集合中的一个或多个部分区域。
方面38:根据方面22至37中任一项所述的装置,其中,被选择用于由所述神经网络处理的所述一个或多个帧区域包括与所述第一帧相关联的注意力区域。
方面39:根据方面22至38中任一项所述的装置,其中,所述一个或多个处理器被配置为基于针对计算负载能力的动态改变的约束来确定区域的数量和每秒帧速率。
方面40:根据方面39所述的装置,其中,所述一个或多个处理器被配置为确定与所述区域的数量和每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
方面41:根据方面22至40中任一项所述的装置,其中,所述装置包括高级驾驶员辅助系统。
方面42:根据方面22至41中任一项所述的装置,其中,所述装置包括生成一个或多个视觉帧流的一个或多个相机。
方面43:一种用于处理图像数据的方法,所述方法包括:存储器;从图像捕获设备获得帧序列的帧集合;确定所述帧集合中的第一帧中的一个或多个特征;基于所述一个或多个特征,识别所述第一帧中的用于由神经网络处理的一个或多个区域;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
方面44:根据方面43所述的方法,还包括:计算所述第一帧的每个区域的注意力需求分数或特性;基于所述每个区域的注意力需求分数或特性来生成每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;以及基于来自一个或多个计算机视觉功能的多个注意力投票来计算所述第一帧的每个区域的注意力分数或特性。
方面45:根据方面44所述的方法,还包括:还基于根据所述多个注意力投票计算的所述每个区域的注意力需求分数或特性来识别所述一个或多个区域。
方面46:根据方面44或45中任一项所述的方法,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点和可视化显著性检测中的至少一项。
方面47:根据方面43至46中任一项所述的方法,还包括:基于使用光流算法处理所述一个或多个附加区域来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。
方面48:根据方面43至47中任一项所述的方法,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
方面49:根据方面43至48中任一项所述的方法,其中,检测所述一个或多个区域中的所述一个或多个对象包括:在来自所述帧集合的特定数量的帧之后使用所述神经网络来处理所述一个或多个区域。
方面50:根据方面43至49中任一项所述的方法,还包括:使用所述一个或多个特征针对所述第一帧中的每个对象生成相应的分类和边界框。
方面51:根据方面43至50中任一项所述的方法,其中,检测所述一个或多个区域中的所述一个或多个对象包括:使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的任何其它区域。
方面52:根据方面51所述的方法,其中,所述一个或多个区域的组合小于所述第一帧的所有区域的组合。
方面53:根据方面43至52中任一项所述的方法,还包括:基于一个或多个约束来确定用于神经网络的神经网络负载目标。
方面54:根据方面53所述的方法,其中,所述一或多个约束包括系统性能、系统组件性能、功率消耗和热温度条件中的至少一项。
方面55:根据方面43至54中任一项所述的方法,还包括:针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
方面56:根据方面55所述的方法,其中,所述不同的每秒帧速率基于所识别的注意力区域。
方面57:根据方面55或56中任一项所述的方法,其中,具有较高注意力分数的第一区域由所述神经网络以与具有较低注意力分数的第二区域相比较高的每秒帧速率来处理。
方面58:根据方面43至57中任一项所述的方法,还包括:使用所述神经网络根据一个或多个相应的每秒帧速率来仅处理所述帧集合中的一个或多个部分区域。
方面59:根据方面43至58中任一项所述的方法,其中,被选择用于由所述神经网络处理的所述一个或多个帧区域包括与所述第一帧相关联的注意力区域。
方面60:根据方面43至59中任一项所述的方法,还包括:基于针对计算负载能力的动态改变的约束来确定区域的数量和每秒帧速率。
方面61:根据方面60所述的方法,还包括:确定与所述区域的数量和每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
方面62:一种方法,包括:从图像捕获设备获得帧序列的帧集合;计算第一帧的每个区域的注意力需求分数或特性;基于每个区域的所述注意力需求分数来生成每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于来自一个或多个计算机视觉功能的多个注意力投票来计算所述第一帧的每个区域的注意力分数或特性;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的一个或多个区域中的一个或多个对象,所述一个或多个区域是基于与所述一个或多个区域相关联的所述注意力分数或特性使用所述神经网络来处理的。
方面63:根据方面62所述的方法,还包括:还基于根据所述多个注意力投票计算的所述每个区域的注意力需求分数或特性来识别所述一个或多个区域。
方面64:根据方面62或63中任一项所述的方法,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点和可视化显著性检测中的至少一项。
方面65:根据方面62至64中任一项所述的方法,还包括:确定所述帧集合的所述第一帧中的一个或多个特征,并且其中,所述第一帧的所述每个区域的注意力需求分数或特性是至少部分地基于所述第一帧中的所述一个或多个特征来计算的。
方面66:根据方面65所述的方法,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
方面67:根据方面62至66中任一项所述的方法,还包括:基于使用光流算法处理所述一个或多个附加区域来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。
方面68:根据方面62至67中任一项所述的方法,其中,检测所述一个或多个区域中的所述一个或多个对象包括:在来自所述帧集合的特定数量的帧之后使用所述神经网络来处理所述一个或多个区域。
方面69:根据方面62至68中任一项所述的方法,还包括:使用所述第一帧的一个或多个特征针对所述第一帧中的每个对象生成相应的分类和边界框。
方面70:根据方面62至69中任一项所述的方法,其中,检测所述一个或多个区域中的所述一个或多个对象包括:使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的任何其它区域。
方面71:根据方面70所述的方法,其中,所述一个或多个区域的组合小于所述第一帧的所有区域的组合。
方面72:根据方面62至71中任一项所述的方法,还包括:基于一个或多个约束来确定用于神经网络的神经网络负载目标。
方面73:根据方面72所述的方法,其中,所述一或多个约束包括系统性能、系统组件性能、功率消耗和热温度条件中的至少一项。
方面74:根据方面62至73中任一项所述的方法,还包括:针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
方面75:根据方面74所述的方法,其中,所述不同的每秒帧速率基于所识别的注意力区域。
方面76:根据方面75所述的方法,其中,具有较高注意力分数的第一区域由所述神经网络以与具有较低注意力分数的第二区域相比较高的每秒帧速率来处理。
方面77:根据方面62至76中任一项所述的方法,还包括:使用所述神经网络根据一个或多个相应的每秒帧速率来仅处理所述帧集合中的一个或多个部分区域。
方面78:根据方面62至77中任一项所述的方法,其中,被选择用于由所述神经网络处理的所述一个或多个帧区域包括与所述第一帧相关联的注意力区域。
方面79:根据方面62至78中任一项所述的方法,还包括:基于针对计算负载能力的动态改变的约束来确定区域的数量和每秒帧速率。
方面80:根据方面79所述的方法,还包括:确定与所述区域的数量和每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
方面81:一种非暂时性计算机可读介质,具有存储在其上的指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行根据方面43至61中的任意示例所述的方法。
方面82:一种非暂时性计算机可读介质,具有存储在其上的指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行根据方面62至80中的任意示例所述的方法。
方面83:一种装置,包括用于执行根据方面43至61中任一项所述的方法的单元。
方面84:一种装置,包括用于执行根据方面62至80中任一项所述的方法的单元。
方面85:一种方法,包括:从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
方面86:根据方面85所述的方法,还包括:确定所述第一帧中的一个或多个特征;至少部分地基于所述第一帧中的所述一个或多个特征来确定所述第一帧的每个区域的注意力需求分数或特性;以及基于所述每个区域的注意力需求分数或特性来确定所述每个区域的注意力分数。
方面87:根据方面86所述的方法,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
方面88:根据方面85至87中任一项所述的方法,还包括:使用光流算法来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。
方面89:根据方面88所述的方法,其中,检测所述第一帧的所述一个或多个附加区域中的所述一个或多个附加对象包括使用所述光流算法处理所述一个或多个附加区域并且避免使用所述神经网络处理所述一个或多个附加区域。
方面90:根据方面85至89中任一项所述的方法,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点估计和可视化显著性检测中的至少一项。
方面91:根据方面85至90中任一项所述的方法,其中,检测所述第一帧的所述一个或多个区域中的所述一个或多个对象包括避免使用所述神经网络来处理所述第一帧的一个或多个附加区域;并且在处理来自所述帧集合的预定数量的帧之后,使用所述神经网络处理第二帧的一部分,所述第二帧的所述部分对应于所述一个或多个附加区域中的至少一个附加区域。
方面92:根据方面85至91中任一项所述的方法,还包括:使用所述第一帧的一个或多个特征针对所述一个或多个对象生成分类和边界框。
方面93:根据方面85至92中任一项所述的方法,其中,检测所述一个或多个区域中的所述一个或多个对象包括:使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的一个或多个附加区域。
方面94:根据方面85至93中任一项所述的方法,其中,所述第一帧的所述一个或多个区域的组合小于所述第一帧的所有区域的组合,并且其中,所述第一帧的所述一个或多个区域包括在所述第一帧中确定的一个或多个注意力区域。
方面95:根据方面85至94中任一项所述的方法,还包括:基于一个或多个约束来确定用于神经网络的神经网络负载目标。
方面96:根据方面95所述的方法,其中,所述一或多个约束包括系统性能、系统组件性能、功率消耗和与计算设备相关联的温度条件中的至少一项。
方面97:根据方面85至96中任一项所述的方法,还包括:针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
方面98:根据方面97所述的方法,其中,所述不同的每秒帧速率是基于所述第一帧的所选择的一个或多个区域的。
方面99:根据方面85至98中任一项所述的方法,其中,所述一个或多个区域包括第一区域和第二区域,其中,所述第一区域具有与所述第二区域相比较高的注意力分数,并且其中,具有所述较高的注意力分数的所述第一区域是使用神经网络以与具有较低的注意力分数的所述第二区域相比较高的每秒帧速率来处理的。
方面100:根据方面85至99中任一项所述的方法,还包括:使用所述神经网络根据一个或多个相应的处理速率仅处理所述帧集合的一个或多个部分区域,所述帧集合的所述一个或多个部分区域包括所述第一帧的所述一个或多个区域。
方面101:根据方面85至100中任一项所述的方法,还包括:基于针对计算负载能力的动态改变的约束来确定要使用所述神经网络处理的区域的数量以及用于使用所述神经网络处理帧区域的一个或多个每秒帧速率。
方面102:根据方面101所述的方法,还包括:确定与所述区域的数量和所述一个或多个每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
方面103:一种装置,包括存储器和耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为执行根据方面85到102中任一项所述的方法。
方面104:一种装置,包括用于执行根据方面85至102中任一项所述的方法的单元。
方面105:一种非暂时性计算机可读介质,具有存储在其上的指令,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行根据示例85至102中的任意示例所述的方法。
Claims (31)
1.一种用于视觉感知的装置,所述装置包括:
存储器;以及
耦合到所述存储器的一个或多个处理器,所述一个或多个处理器被配置为:
从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;
基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与每个区域相关联的相应数量的注意力投票;
基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及
基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
2.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
确定所述第一帧中的一个或多个特征;
至少部分地基于所述第一帧中的所述一个或多个特征来确定所述第一帧的每个区域的注意力需求分数或特性;以及
基于所述每个区域的注意力需求分数或特性来确定所述每个区域的注意力分数。
3.根据权利要求2所述的装置,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
4.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:使用光流算法来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象。
5.根据权利要求4所述的装置,其中,为了检测所述第一帧的所述一个或多个附加区域中的所述一个或多个附加对象,所述一个或多个处理器被配置为:使用所述光流算法处理所述一个或多个附加区域,并且避免使用所述神经网络处理所述一个或多个附加区域。
6.根据权利要求1所述的装置,其中,所述一个或多个计算机视觉功能包括深度估计、光流估计、天空检测、遮挡检测、去遮挡检测、扩展焦点估计和可视化显著性检测中的至少一项。
7.根据权利要求1所述的装置,其中,为了检测所述第一帧的所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为:
避免使用所述神经网络来处理所述第一帧的一个或多个附加区域;以及
在处理来自所述帧集合的预定数量的帧之后,使用所述神经网络处理第二帧的一部分,所述第二帧的所述部分对应于所述一个或多个附加区域中的至少一个附加区域。
8.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:使用所述第一帧的一个或多个特征生成用于所述一个或多个对象的分类和边界框。
9.根据权利要求1所述的装置,其中,为了检测所述一个或多个区域中的所述一个或多个对象,所述一个或多个处理器被配置为使用所述神经网络来处理所述一个或多个区域,并且在不使用所述神经网络的情况下处理所述第一帧的一个或多个附加区域。
10.根据权利要求1所述的装置,其中,所述第一帧的所述一个或多个区域的组合小于所述第一帧的所有区域的组合,并且其中,所述第一帧的所述一个或多个区域包括在所述第一帧中确定的一个或多个注意力区域。
11.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为基于一个或多个约束来确定用于所述神经网络的神经网络负载目标。
12.根据权利要求11所述的装置,其中,所述一个或多个约束包括系统性能、系统组件性能、功率消耗和与所述装置相关联的温度条件中的至少一项。
13.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
14.根据权利要求13所述的装置,其中,所述不同的每秒帧速率是基于所述第一帧的所选择的一个或多个区域的。
15.根据权利要求1所述的装置,其中,所述一个或多个区域包括第一区域和第二区域,其中,所述第一区域具有与所述第二区域相比较高的注意力分数,并且其中,具有所述较高的注意力分数的所述第一区域是使用神经网络以与具有较低的注意力分数的所述第二区域相比较高的每秒帧速率来处理的。
16.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:使用所述神经网络根据一个或多个相应的处理速率仅处理所述帧集合的一个或多个部分区域,所述帧集合的所述一个或多个部分区域包括所述第一帧的所述一个或多个区域。
17.根据权利要求1所述的装置,其中,所述一个或多个处理器被配置为:
基于针对计算负载能力的动态改变的约束来确定要使用所述神经网络处理的区域的数量以及用于使用所述神经网络处理帧区域的一个或多个每秒帧速率。
18.根据权利要求17所述的装置,其中,所述一个或多个处理器被配置为确定与所述区域的数量和所述一个或多个每秒帧速率相关联的总处理器负载满足所述动态改变的约束。
19.根据权利要求1所述的装置,其中,所述装置包括高级驾驶员辅助系统。
20.根据权利要求1所述的装置,其中,所述装置包括图像捕获设备,所述图像捕获设备被配置为捕获所述帧集合。
21.一种用于视觉感知的方法,包括:
从一个或多个计算机视觉功能获得来自帧集合的第一帧的每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;
基于所述每个区域的注意力投票确定所述第一帧的每个区域的注意力分数,针对每个区域的所述注意力分数基于与该区域相关联的相应数量的注意力投票;
基于所述第一帧的所述每个区域的注意力分数,选择所述第一帧的一个或多个区域以用于使用神经网络进行处理;以及
基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
22.根据权利要求21所述的方法,还包括:
确定所述第一帧中的一个或多个特征;
至少部分地基于所述第一帧中的所述一个或多个特征来确定所述第一帧的每个区域的注意力需求分数或特性;以及
基于所述每个区域的注意力需求分数或特性来确定所述每个区域的注意力分数。
23.根据权利要求22所述的方法,其中,所述一个或多个特征包括深度信息、光流信息、天空检测信息、遮挡图、去遮挡图、扩展焦点信息和可视化显著性信息中的至少一项。
24.根据权利要求21所述的方法,还包括:
使用光流算法来检测所述第一帧的一个或多个附加区域中的一个或多个附加对象;以及
使用所述神经网络来避免处理所述一个或多个附加区域。
25.根据权利要求21所述的方法,其中,检测所述第一帧的所述一个或多个区域中的所述一个或多个对象包括:
避免使用所述神经网络来处理所述第一帧的一个或多个附加区域;以及
在处理来自所述帧集合的预定数量的帧之后,使用所述神经网络处理第二帧的一部分,所述第二帧的所述部分对应于所述一个或多个附加区域中的至少一个附加区域。
26.根据权利要求21所述的方法,还包括:基于一个或多个约束来确定用于所述神经网络的神经网络负载目标,其中,所述一个或多个约束包括与计算设备相关联的系统性能、系统组件性能、功耗和温度条件中的至少一项。
27.根据权利要求21所述的方法,还包括:针对不同的帧区域应用神经网络处理的不同的每秒帧速率。
28.根据权利要求21所述的方法,其中,所述一个或多个区域包括第一区域和第二区域,其中,所述第一区域具有与所述第二区域相比较高的注意力分数,并且其中,具有所述较高的注意力分数的所述第一区域是使用神经网络以与具有较低的注意力分数的所述第二区域相比较高的每秒帧速率来处理的。
29.根据权利要求21所述的方法,还包括:
基于针对计算负载能力的动态改变的约束来确定要使用所述神经网络处理的区域的数量以及用于使用所述神经网络处理帧区域的一个或多个每秒帧速率。
30.至少一个包含指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:
从图像捕获设备获得帧序列的帧集合;
确定所述帧集合中的第一帧中的一个或多个特征;
基于所述一个或多个特征,识别所述第一帧中的用于由神经网络处理的一个或多个区域;以及
基于使用所述神经网络对所述一个或多个区域的处理来检测所述第一帧的所述一个或多个区域中的一个或多个对象。
31.根据权利要求30所述的至少一个非暂时性计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器:
计算所述第一帧的每个区域的注意力需求分数;
基于所述每个区域的注意力需求分数生成每个区域的注意力投票,所述每个区域的注意力投票提供注意力需求和注意力请求中的至少一项;
基于来自一个或多个计算机视觉功能的多个注意力投票来计算所述第一帧的每个区域的注意力分数;以及
基于根据所述多个注意力投票计算的所述每个区域的注意力分数来识别所述一个或多个区域。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/252,544 | 2021-10-05 | ||
US17/701,400 | 2022-03-22 | ||
US17/701,400 US20230115371A1 (en) | 2021-10-05 | 2022-03-22 | Efficient vision perception |
PCT/US2022/075542 WO2023059962A1 (en) | 2021-10-05 | 2022-08-26 | Efficient vision perception |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118043859A true CN118043859A (zh) | 2024-05-14 |
Family
ID=90997262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280066344.5A Pending CN118043859A (zh) | 2021-10-05 | 2022-08-26 | 高效视觉感知 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118043859A (zh) |
-
2022
- 2022-08-26 CN CN202280066344.5A patent/CN118043859A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020216008A1 (zh) | 图像处理方法、装置、存储介质及设备 | |
US11170210B2 (en) | Gesture identification, control, and neural network training methods and apparatuses, and electronic devices | |
US11756223B2 (en) | Depth-aware photo editing | |
US10609284B2 (en) | Controlling generation of hyperlapse from wide-angled, panoramic videos | |
EP3742388B1 (en) | Electronic device, image processing method thereof, and computer-readable recording medium | |
US11276177B1 (en) | Segmentation for image effects | |
US20210004962A1 (en) | Generating effects on images using disparity guided salient object detection | |
EP3477436B1 (en) | Method, storage medium and apparatus for eye tracking by removal of a reflection area | |
KR20170056860A (ko) | 이미지 생성 방법 및 장치 | |
US10929982B2 (en) | Face pose correction based on depth information | |
EP4024270A1 (en) | Gesture recognition method, electronic device, computer-readable storage medium, and chip | |
CN105430269B (zh) | 一种应用于移动终端的拍照方法及装置 | |
WO2024021742A1 (zh) | 一种注视点估计方法及相关设备 | |
WO2023044233A1 (en) | Region of interest capture for electronic devices | |
CN112541418B (zh) | 用于图像处理的方法、装置、设备、介质和程序产品 | |
US20230115371A1 (en) | Efficient vision perception | |
KR20240039130A (ko) | 이벤트 맵핑에 기초한 카메라 설정 조정 | |
US20240143077A1 (en) | Machine Learning Based Forecasting of Human Gaze | |
CN118043859A (zh) | 高效视觉感知 | |
WO2023059962A1 (en) | Efficient vision perception | |
CN117441195A (zh) | 纹理补全 | |
KR20210000671A (ko) | 헤드 포즈 추정 | |
US20230368520A1 (en) | Fast object detection in video via scale separation | |
CN112950516B (zh) | 图像局部对比度增强的方法及装置、存储介质及电子设备 | |
WO2023097576A1 (en) | Segmentation with monocular depth estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |