CN111066058A - 用于低功率实时对象检测的系统和方法 - Google Patents
用于低功率实时对象检测的系统和方法 Download PDFInfo
- Publication number
- CN111066058A CN111066058A CN201880057306.7A CN201880057306A CN111066058A CN 111066058 A CN111066058 A CN 111066058A CN 201880057306 A CN201880057306 A CN 201880057306A CN 111066058 A CN111066058 A CN 111066058A
- Authority
- CN
- China
- Prior art keywords
- object detection
- detection model
- model
- cpu core
- image frame
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 254
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000005192 partition Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 26
- 238000013135 deep learning Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 7
- 238000013136 deep learning model Methods 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 36
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000002355 dual-layer Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本文描述用于对象检测以实现具有低延迟的硬实时性能的系统和方法。公开了实时对象检测框架。在一个或多个实施方式中,框架包括第一CPU内核、第二CPU内核和多个shave。在一个或多个实施方式中,第一CPU内核处置一般CPU任务,而第二CPU内核处置来自相机传感器的图像帧和计算任务调度。在一个或多个实施方式中,所调度的计算任务由多个shave使用至少一个对象检测模型实施,以检测图像帧中的对象。在一个或多个实施方式中,使用来自具有较高检测概率的对象检测模型的计算结果以形成用于对象检测的输出。在一个或多个实施方式中,对象检测模型共享一些参数,以获得更小尺寸和更高实施速度。
Description
技术领域
本公开总体上涉及用于对象检测,尤其是实时面部检测的系统和方法,该系统和方法可提供改进的性能、特征和用途。
背景技术
面部检测是一种在多种应用中使用的、在数字图像中识别人脸的计算机技术。一些面部检测技术是基于在速度非常缓慢的串行处理器上运行的、没有并行计算协处理器(例如图形处理单元(GPU))的深度学习网络的变体,这是因为使用深度学习算法进行面部检测的计算量很大。
对于移动面部检测系统,从绝对能效和热功耗的角度来看,除了性能之外,功率和能效也成为主要限制因素中的两个。移动计算一直是追求更高的绝对能效和更低的热功耗趋势的一个主要驱动因素。能效问题不仅限于永远在线的移动计算。处理器的能效(以每瓦性能的形式)已成为关键度量。
此外,用于移动计算的处理器对于面部检测的应用存在问题。通过管理低延迟的面部检测深度学习计算机视觉算法所提出的硬实时要求非常具有挑战性,即使在运行诸如Linux或Android的操作系统(尚未明确设计用于低延迟)的功能强大的平台上也很难满足。另外,满足面部检测深度学习应用程序的计算要求需要常规应用处理器上的几乎所有计算资源。
因此,需要能够提供改进的性能、特征和用途的用于实时面部检测的系统和方法。
发明内容
在第一方面,本公开提供一种设备,该设备包括:相机传感器,用于捕获一个或多个图像帧;存储器,至少存储第一对象检测模型和第二对象检测模型;处理器,包括第一CPU内核、第二CPU内核和用于进行处理的多个shave,其中:第一CPU内核配置成运行操作系统的第一实例,以处置设备的一般CPU任务;以及第二CPU内核配置成运行操作系统的第二实例,以处置图像帧并且调度待由多个shave针对第一对象检测模型和第二对象检测模型实施的计算任务,以检测一个或多个图像帧中的对象。
在第二方面,本公开提供一种设备,该设备包括:相机传感器,生成至少一个图像帧;存储器,存储至少一个对象检测模型;处理器,包括第一CPU内核、第二CPU内核和用于进行处理的多个shave,其中:第一CPU内核配置成运行操作系统的第一实例,以处置设备的一般CPU任务;以及第二CPU内核配置成运行操作系统的第二实例,以处置至少一个图像帧并且调度由多个shave使用至少一个对象检测模型实施的计算任务,以检测至少一个图像帧中的对象,其中图像帧划分成多个分区,其中每个分区均分配给一个shave用于计算,第二CPU基于由多个shave对所调度的计算的实施来动态地更新计算任务。
在第三方面,本公开提供一种方法,该方法包括:通过相机传感器捕获一个或多个图像帧;在包括第一CPU内核、第二CPU内核和用于计算处理的多个shave的处理器处接收所述一个或多个图像帧,第一CPU内核配置成运行操作系统的第一实例,以处置设备的一般CPU任务,第二CPU内核配置成运行操作系统的第二实例,以处置一个或多个图像帧的处理;通过第二CPU内核调度待由多个shave使用第一对象检测模型和第二对象检测模型实施的计算任务,以检测一个或多个图像帧中的对象;以及从第一对象检测模型与第二对象检测模型之间的、具有较高检测概率的对象检测模型选择计算结果,以形成用于一个或多个图像帧中的对象检测的输出。
附图说明
将参考本公开的实施方式,它们的示例可示于附图中。这些附图旨在是说明性的而非限制性的。虽然本公开大体上在这些实施方式的上下文中描述,但应理解,本公开的范围并不旨在限于这些特定实施方式。附图中的项目未按比例绘制。
图1描绘根据本文件的实施方式的用于对象检测处理器系统的平台架构。
图2描绘根据本文件的实施方式的对象检测系统。
图3描绘根据本文件的实施方式的印刷电路板(PCB)功能框图的底层。
图4描绘根据本文件的实施方式的PCB功能框图的顶层。
图5以图形方式描绘根据本文件的实施方式的对象检测模型结构。
图6描绘根据本文件的实施方式的用于实施面部检测的过程。
图7以图形方式描绘根据本文件的实施方式的用于多个图像帧的多模型调度机制。
图8以图形方式描绘根据本文件的实施方式的用于实现实时面部检测的多线程编程。
图9以图形方式描绘根据本文件的实施方式的两个面部检测模型的并行计算。
图10描绘根据本文件的实施方式的用于实施实时多线程编程以实现实时面部检测的过程。
图11描绘根据本文件的实施方式的计算装置/信息处置系统的简化框图。
具体实施方式
在以下描述中,出于解释目的,阐明具体细节以便提供对本公开的理解。然而,将对本领域的技术人员显而易见的是,可在没有这些细节的情况下实践本公开。此外,本领域的技术人员将认识到,下文描述的本公开的实施方式可以以各种方式(例如过程、装置、系统、设备或方法)在有形的计算机可读介质上实施。
附图中示出的组件或模块是本公开实施方式的示例性说明,并且意图避免使本公开不清楚。还应理解,在本论述的全文中,组件可描述为单独的功能单元(可包括子单元),但是本领域的技术人员将认识到,各种组件或其部分可划分成单独组件,或者可整合在一起(包括整合在单个的系统或组件内)。应注意,本文论述的功能或操作可实施为组件。组件可以以软件、硬件、或它们的组合实施。
此外,附图内的组件或系统之间的连接并不旨在限于直接连接。相反,在这些组件之间的数据可由中间组件修改、重格式化、或以其它方式改变。另外,可使用另外或更少的连接。还应注意,术语“联接”、“连接”、或“通信地联接”应理解为包括直接连接、通过一个或多个中间设备来进行的间接连接、和无线连接。在面部检测的上下文中可通过示例的方式描述本文中的实施方式;然而,应注意,可能检测到其他对象。还当注意,图像可以是静止图像或可以是来自视频的图像帧。
在本说明书中对“一个实施方式”、“优选实施方式”、“实施方式”或“多个实施方式”的提及表示结合实施方式所描述的具体特征、结构、特性或功能包括在本公开的至少一个实施方式中,以及可包括在多于一个的实施方式中。另外,在本说明书的各个地方出现以上所提到的短语并不一定全都是指相同的实施方式或多个相同实施方式。
在本说明书的各个地方使用某些术语目的在于说明,并且不应被理解为限制。服务、功能或资源并不限于单个服务、单个功能或单个资源;这些术语的使用可指代相关服务、功能或资源的可分布或聚合的分组。
术语“包括”、“包括有”、“包含”和“包含有”应理解为开放性的术语,并且其后任何列出内容都是实例,而不旨在限于所列项目。本文所使用的任何标题仅是为了组织目的,并且不应被用于限制说明书或权利要求的范围。本专利文件中提到的每个参考文献以其全文通过引用并入本文。
此外,本领域的技术人员应认识到:(1)某些步骤可以可选地执行;(2)步骤可不限于本文中所阐述的特定次序;(3)某些步骤可以以不同次序执行;以及(4)某些步骤可同时地进行。
A.引言
面部检测已用于识别数字图像中人脸的各种应用中,数字图像可包括诸如风景、建筑物的非面部的各种对象,以及诸如腿、肩膀和手臂的人的非面部部位。一些面部检测技术是基于在速度非常缓慢的串行处理器上运行的、没有并行计算协处理器(例如图形处理单元(GPU))的深度学习网络的变体,这是因为使用深度学习算法进行面部检测的计算量很大。面部检测具有不仅包括面部识别的应用,还包括非识别应用,诸如自动对焦相机等。
对于移动面部检测系统,从绝对能效和热功耗的角度来看,除了性能之外,功率和能效也成为主要限制因素中的两个。移动计算一直是追求更高的绝对能效和更低的热功耗趋势的一个主要驱动因素。能效问题不仅限于永远在线的移动计算。处理器的能效(以每瓦性能的形式)可能是关键度量。
此外,用于移动计算的处理器在实施面部检测的应用时具有挑战。通过管理低延迟的面部检测深度学习计算机视觉算法所提出的硬实时要求非常具有挑战性,即使在运行诸如Linux或Android的操作系统(尚未明确设计用于低延迟)的功能强大的平台上也很难满足。另外,满足面部检测深度学习应用程序的计算要求需要常规应用处理器上的几乎所有计算资源。
实施方法中的一些要求将智能手机用作载体,并且因此不容易移植或部署到其它市场,例如智能家居、城市等。对于使用智能手机实施的面部检测系统,其性能受到智能手机的移动处理器和操作系统(OS)的限制。某些移动OS可能无法实现硬实时性能。
此外,在智能手机上实施面部检测可能需要充分利用智能手机的资源,不仅是应用处理器,而且还包括协处理器。在智能手机上实施面部检测的功耗可大约为5W至10W,这可能会限制智能手机上其他应用程序(或App)的操作。
B.对象检测架构的实施方式
在一个或多个实施方式中,公开了用于在永远在线的超低功耗移动装置上实施基于深度学习的实时面部检测的架构。该架构可为将面部检测技术部署到广泛的应用领域中提供更多机会。
图1描绘了根据本文件的实施方式的用于实时操作系统(RTOS)面部检测处理器系统100的平台架构。处理器系统100包括第一中央处理单元(CPU)内核110、第二CPU内核120、被称为shave的多个数字信号处理器(或计算引擎)130,它们能够与隔离的电源岛并行操作以限制在永久在线式面部检测实施下的功耗。在一个或多个实施方式中,第一CPU内核110和第二CPU内核120配置成专门处置单独的任务。例如,第一CPU内核配置成处置一般操作系统(OS)任务,而第二CPU内核配置成处置图像并调度待由shave 130完成的计算任务,使得可实现嵌入式实时多线程操作。
在一个或多个实施方式中,平台100(与下文中“xcore”或“处理器系统”可互换使用的术语)还包括存储器140,诸如动态随机存取存储器(DRAM),诸如双数据速率(DDR)RAM。CPU内核可经由存储器控制器150来实施对存储器的读/写操作,存储器控制器150可包括物理层155和控制层160。尽管在图1中未描绘,但是每个CPU均可经由存储器控制器150直接访问存储器140。
在一个或多个实施方式中,第一CPU内核110配置成运行第一操作系统(OS)实例,而第二CPU内核配置成运行与第一OS实例不同的第二OS实例。在具有多个面部检测模型和多个shave的情况下,平台可配置成通过优化面部检测深度学习计算库来管理用于不同面部检测网络/模型的多模型调度,以在永久在线的低功耗移动装置上实现所需的性能
图2描绘了根据本文件的实施方式的RTOS面部检测系统。如图2中所示,RTOS面部检测系统200包括:xcore 100;用于捕获图像的一个或多个相机传感器210;用于在一个或多个相机传感器210与xcore 100之间进行通信的媒体接口220。RTOS面部检测系统200还可包括联接至xcore 100或包括在xcore 100中的通用I/O接口230和外围电路240。在一个或多个实施方式中,媒体接口220可以是用于CPU互连的高速图形卡,诸如超端口架构(UPA)总线。媒体接口220也可以是高清多媒体接口(HDMI),以支持从兼容HDMI的相机发送未压缩的视频数据以及压缩或未压缩的数字音频数据。在一个或多个实施方式中,通用I/O接口230可以是以太网接口、无线通信接口、联合测试行动组(JTAG)接口、通用输入/输出(GPIO)接口、移动行业处理器接口(MIPI)和/或安全数字输入输出(SDIO)接口等。在一个或多个实施方式中,外围电路240可包括系统时钟电路、用于系统的电源管理的电源管理集成电路(PMIC)等。附加或替代部件可以是下面参考图11公开的那些部件中的一个或多个。
在实施方式中,RTOS面部检测系统的一个或多个部件可集成在PCB上以用于面部检测实施/应用。图3和图4分别描绘了根据本文件的实施方式的用于实施面部检测的示例性双层PCB的底层PCB功能框图和顶层PCB功能框图。
应当注意,图3和图4中的说明以及对应的描述是在使用一个或多个特定实施方式的特定配置下进行的;因此,这些说明性示例不应用于限制当前专利文件的公开范围。在一个或多个实施方式中,图3和图4中所示的部件可经由电线、焊盘、焊剂、导电通孔等互连(图中未示出连接)。底层和顶层上所示的部件仅用于说明目的,并且不应用于限制框架实施。
如图3中所示,底层PCB功能框图包括xcore 100、系统时钟电路310、网络物理层320、作为嵌入式非易失性存储器的嵌入式多媒体卡(eMMC)330、用于系统电源管理的电源管理集成电路(PMIC)340、层接口350、移动工业处理器接口(MIPI)360,以使得移动框架中的基本部件能够互连。在一个或多个实施方式中,MIPI 360可用作第二相机模块以适应与具有不同参数的相机的通信。eMMC 330可配置成存储多个面部检测模型,该多个面部检测模型可进行预先训练或者可能未进行预先训练。
在一个或多个实施方式中,底层PCB功能块还可包括其他部件,其这些他部件包括:USB(2.0或3.0)接口370;允许在一个简单的连接器中进行充电、数据传输和视频的C型USB接口380;用于设计验证和PCB测试的JTAG接口390;用于使可移动小型化安全数字闪存卡实现读/写操作的TransFlash(TF)卡395。本领域技术人员应当理解,可采用不同于图3和图4的各种配置来进行框架实施;这些变型应在本公开的范围内。
如图4中所示,顶层PCB功能框图包括:层接口410;用于提供实时逐帧图像的第一相机模块420;用于为相机模块供电的相机电源电路430;作为隔离式DC转换器的以太网供电(PoE)DC-DC转换器440;有线以太网接口450(可能具有POE能力);允许“slave”数字集成电路与“主”芯片进行通信的内部集成电路(I2C)通用I/O(GPIO)接口460;用于实现安全的无线通信的Wi-Fi安全数字输入输出(SDIO)电路470;用于从兼容HDMI的源装置(例如,相机模块420)发送未压缩的视频数据和已压缩或未压缩的数字音频数据的高清多媒体接口(HDMI)480;以及用于与其它外围装置通信的外部接口490。
在实施方式中,不同的应用可能需要不同的相机参数。相机模块420和相机模块360可进行定制和交换。类似地,为了处理不同的通信需求,可相应地调整通信接口(以太网、USB、HDMI和WIFI),和/或通过I2C和GPIO总线扩展到其他功能。
通过使用双层PCB配置,PCB的XY轴的面积可能非常小,例如4cm×4cm的尺寸,其适合于安装在需要或更偏向小尺寸的各种应用中,诸如智能安全相机、工业机器人、智能家居产品(诸如门铃或安全系统)等。在小面积的情况下,可更好地设计产品的结构和外观,因为通常,小矩形立方体在结构方面优于面积较大的单层板。应当注意,可采用不同的PCB形状和/或配置。
在一个或多个实施方式中,使用定制的操作系统(下文中也称为“xos”)来操作面部检测框架,所述定制的操作系统是在作为开源实时操作系统的多处理器系统实时执行体(RTEMS)的顶部上的实时操作系统(RTOS)的组合,以实现低延迟的硬实时性能,从而提高性能。
C.对象检测模型的实施方式
在一个或多个实施方式中,使用至少一个对象检测模型(例如,面部检测模型)来在一个或多个图像帧中实施实时图像检测。至少一个对象检测模型可包括第一对象检测模型和第二对象检测模型,它们可并行地实施以用于从相同输入进行对象检测,输入可以是完整的图像帧或全帧的一段。在一个或多个实施方式中,第一对象检测模型和第二对象检测模型可配置成用于从不同的角度优化性能。例如,第一对象检测模型可从第一视角(例如,正面)执行面部检测,而第二对象检测模型可优化成从第二视角(例如侧面/剖面图像)进行面部检测。在另一示例中,第一对象检测模型可配置用于从具有更高清晰度的图像进行面部检测,而第二对象检测模型可指定用于从模糊图像进行面部检测。在一个或多个实施方式中,第一对象检测模型和第二对象检测模型是包括多个层的深度学习神经网络。对于较小的尺寸和较高的实施速度,第一对象检测模型和第二对象检测模型可共享至少一个层或共享多个层当中至少一个层的参数。在一个或多个实施方式中,可对对象检测模型进行预训练并将其存储在非易失性存储器(例如,eMMC 330)中。
根据本文件的实施方式,图5以图形方式描绘了示例性对象检测模型结构500。在一个或多个实施方式中,对象检测模型结构500可基于包括多个卷积层520至570的卷积网络从深度学习模型演化而来,以从图像输入510形成多个边界框。在一个或多个实施方式中,面部检测模型可使用或可基于单发多框检测(SSD)模型或移动网络(MobileNet)SSD模型。在一个或多个实施方式中,第一对象检测模型和第二对象检测模型可共享至少一个卷积层,以降低存储需求并提高操作效率。在一个或多个实施方式中,模型与边界框识别层(例如,“conv11_mbox_loc_flat”层)共享相同的层,并且可从此点分支到不同的模型以说明不同的检测能力。本领域技术人员应理解,面部检测模型还可包括附加层或程序,诸如ReLU层、跨步(striding)和/或池化(pooling),以获得期望的性能和效率。
在一个或多个实施方式中,卷积层520至卷积层570分别产生多个边界框(或锚定框)532至572,以将一个或多个特征编码或包括在每个对应的边界框内。每个卷积层均可具有一组卷积滤波器以产生一组检测预测。边界框532至边界框572具有不同的参数(例如,不同的比例、纵横比、置信度分数等)。在一个或多个实施方式中,来自卷积层的较早阶段的边界框具有比来自卷积层的较后阶段的边界框相对更大的尺寸。
在一个或多个实施方式中,将边界框532至边界框572馈送至检测模块580中以产生边界框582至边界框584的集合,其中,每个框均与置信度分数和框位置参数相关联,置信度分数和框位置参数可由左上角和右下角的坐标表示,但也可使用其他尺寸和位置识别机制。在一个或多个实施方式中,边界框582和边界框584的集合可相同。在一个或多个实施方式中,检测模块580可应用置信度阈值以滤除置信度分数低于阈值的边界框。在一个或多个实施方式中,第一对象检测模型和第二对象检测模型可使用不同的推断模块来处理边界框的集合582和集合584,以得到相应的检测结果。例如,第一对象检测模型可使用一个或多个第一推断模块592来推断第一检测结果594,而第二对象检测模型可使用一个或多个第二推断模块596来推断第二检测结果598。在一个或多个实施方式中,第一对象检测模型和第二对象检测模型的输出是对于边界框的集合的检测期望指。每个边界框均具有表示检测概率的、范围在0.0至1.0之间的关联分数,该关联分数表示边界框包含待检测对象(例如面部)的可能性。在一个或多个实施方式中,对于单个边界框中的对象检测,选择来自具有更高检测概率的对象检测模型的输出作为用于单个边界框的图像检测输出。最终,根据第一对象检测模型与第二对象检测模型之间的每个边界框的检测概率的比较,包括多个边界框的整个图像帧的对象检测输出可包括使用第一对象检测模型的一个或多个输出和使用第二对象检测模型的一个或多个输出。在一个或多个实施方式中,如果第一对象检测模型和第二对象检测模型两者均输出低于边界框的一个或多个预定阈值(例如,模型可具有其自身的阈值标准)的分数,则将边界框的最终对象检测输出归类为未检测到图像。
在一个或多个实施方式中,可从不同角度配置或优化不同的对象检测模型,以用于对象检测或以检测不同的对象。本领域技术人员应理解,可通过各种实施方案(诸如不同的跨步和/或池化等)来实现不同模型之间的差异。区分对象检测模型的这种变化应在本公开的范围内。
在一个或多个实施方式中,在操作期间,对象检测模型的层可加载到DRAM存储器140中,并且在多个shave 130之间分布或分割以用于并行计算。在一个或多个实施方式中,面部检测模型的一部分(诸如模型的网络部分)可加载到多个shave 130的相关联的高速缓存中,而模型的尺寸(诸如权重参数)较大的其它部分加载到RAM存储器140中以用于实施。
在一个或多个实施方式中,在训练阶段期间,收集不同尺寸、姿势和条件的面部图像以进行模型训练。为了增强检测鲁棒性,将各种数据增强应用于训练,包括裁剪、翻转、剪切、加/乘噪声、色移、饱和度变化、对比度变化。训练之后,可使用一种或多种减薄技术修剪深度学习神经网络,以实现更小的尺寸和更高的实施速度。在一个或多个实施方式中,可分别训练第一对象检测模型和第二对象检测模型,以及然后将它们一起组合或训练为组合模型。在一个或多个实施方式中,可首先训练一个对象检测模型以固定一个或多个层权重/参数。然后,在一个或多个实施方式中,可利用权重固定的共享层来训练不同的对象检测模型,而其余层则针对此模型而进行特定地训练。
在一个或多个实施方式中,可使用相同或不同的数据集(包括完全不同的数据集或仅数据集的不同子集)来进行模型的训练。例如,在一个或多个实施方式中,第一专用数据集和第二专用数据集可分别用于训练第一对象检测模型和第二对象检测模型。在一个或多个实施方式中,在使用专用数据集对每个对象检测模型进行训练之后,可使用包括来自第一专用数据集和第二专用数据集两者的数据的训练数据集来联合训练第一对象检测模型和第二对象检测模型。
D.实施面部检测的实施方式
图6描绘了根据本文件的实施方式的用于实施面部检测的方法。首先,相机传感器捕获(605)一个或多个图像。在一个或多个实施方式中,将一个或多个图像传输(610)至包括第一CPU内核、第二CPU内核和多个数字信号处理器(shave)的处理器。第二CPU内核可用于调度(615)至少两个对象检测深度学习模型的计算任务,以检测一个或多个图像中的一个或多个对象。在一个或多个实施方式中,第二CPU结合shave执行(620)针对至少两个对象检测深度学习模型的对象检测处理的计算,并为每个图像检测模型生成输出。最后,在一个或多个实施方式中,选择(625)来自具有最高检测概率的模型的输出作为图像检测输出或图像检测输出的一部分,但是也可使用其它一个或多个选择标准。
在一个或多个实施方式中,每个图像帧均可包括具有不同的清晰度、朝向或尺寸的一个或多个可能的人脸。将每个图像帧均处理为具有针对一个或多个可能的人脸的面部检测的线程。根据第一深度学习检测模型和第二深度学习检测模型的检测概率,面部检测系统可具有对应于来自相同或不同检测模型的一个或多个可能的人脸的最终面部(图像)检测输出。
图7以图形方式描绘了根据本文件的实施方式的用于多个图像帧的多模型调度机制。如图7中所示,将多个实时图像帧f1…fk传输至面部检测系统,以进行面部检测处理。系统并入两个不同的模型M1和M2,以用于面部检测实施。在实施方式中,按顺次顺序处理帧,例如使用第一面部检测模型M1处理第一帧f1以生成对应于第一帧f1的第一输出710,以及然后使用第二面部检测模型M2处理该第一帧f1以生成对应于第一帧f1的第二输出720。一旦处理完第一图像帧,第二CPU便获取第二图像帧f2,并调度使用第一面部检测模型M1和第二面部检测模型M2进行顺次处理,以生成对应于第二帧f2的第一输出720和第二输出722。此过程继续,直到最后一个图像帧fk为止。
在一个或多个实施方式中,一旦面部检测使用检测模型调度图像帧的计算,检测模型的至少一部分(例如,模型的网络部分)和图像帧便可分布和加载在用于并行计算的多个shave 130当中。然后将来自多个shave 130的并行计算的结果合并在一起,以获得对应于图像帧的、检测模型的最终输出。然后将最终输出传送至存储器,并经由以太网接口或USB接口传输。
在一个或多个实施方式中,当图像帧是每帧具有大像素尺寸的HD图像帧并且来自相机的帧速率较高时,使用图7中所示的顺次调度机制来保持面部检测操作以实现硬实时性能很具有挑战性,因为由时刻t1(第一模型开始对帧操作)与时刻t2(第二模型完成对帧操作)之间的时间差所限定的时间段t成本需要非常小,以与相机的帧速率保持一致。
图8以图形方式描绘了根据本文件的实施方式的用于实现实时面部检测的多线程编程。期望多线程编程来克服图7中所示的实施方式的局限性,以提高硬实时面部检测实施中的性能。如图8中所示,将每个图像帧(f1…fk)均划分为多个分区(P1…PN),使用用于并行计算的多个shave(S1…SN)对N)对这些分区进行处理。由于图像帧的每个分区均独立于其它分区,因此一旦shave完成了对当前图像帧的分区的计算,便能够处置下一个图像帧的分区,而不会影响其它shave的计算。多个图像帧(线程)的动态调度由第二CPU处置,以在shave之间进行协调。
在实施方式中,多个shave可并行处理多个线程,其中,一些shave处理一个图像帧,而一些shave处理下一个图像帧。将在给定时刻同时并行处理的帧分区的集合称为波前(wave front),如图8中的虚线810或虚线820所示。波前的时间顺序帧跨度可等于或大于2,例如,shave同时处理两个或更多个帧。这种配置减少了shave的等待时间,并且因此最大化了shave计算效率,从而提高了实时性能。一旦处理完图像帧的所有分区,然后将所有分区的结果合并,以获得对应于图像帧的输出。
在一个或多个实施方式中,图像帧可包括多个潜在的人脸图像以进行检测。因此,来自对应于图像帧的面部检测模型的每个输出均可包括多个区部,其中,每个区部均与一个潜在的人脸有关。根据模型结构以及人脸参数(清晰度、对比度、朝向、噪声等),某些人脸可能比其他人脸具有更高的检测概率。此外,某些人脸使用一种面部检测模型可能比使用另一面部检测模型具有更高的检测概率。因此,用于图像帧的面部检测系统的最终输出可以是使用两个面部检测模型的结果的组合,例如,最终输出的某些区部来自第一模型,而最终输出的一些其它区部来自第二模型。
图9以图形方式描绘了根据本文件的实施方式的用于在图像帧fi中进行面部检测的两个模型的并行计算。如图9中所示,将图像帧fi(例如,第一帧f1)划分为多个分区(P1…PN),由两个面部检测模型(m1和m2)使用用于并行计算的多个shave(S1…SN)对这些分区进行处理。两个模型都包括用于实施面部检测算法的多个层(例如,卷积层)。在一个或多个实施方式中,两个面部检测模型m1和m2共享参数或对于一个或多个层是相同的。因此,在共享阶段(S1)中跨共享层(从lt1直到ltx)的所有shave实施并行计算,其中,图9中的lt1指定用于在涉及面部检测模型的第一层的时间顺序时间步骤中进行计算。当计算进入涉及层ltx+1的时间顺序时间步骤时,其中面部检测模型不共享参数时,在单个阶段(S2)中将shave分为两个shave组。第一shave组(S1至SM,M为小于N的整数)指定用于第一面部检测模型m1;以及第二shave组(SM+1至SN)指定用于第二面部检测模型m2。在一个或模式实施方式中,在单个阶段中,shave在面部检测模型之间均等地划分,其中,每个模型均采用一半shave以进行计算。在一个或模式实施方式中,在单个阶段中,shave在面部检测模型之间不均等地划分,其中,需要更多资源的面部检测模型采用更多shave,使得两个面部检测模型的计算时间可保持大致相同。例如,如果面部检测模型m1比面部检测模型m2更复杂(具有更多的层或更多的参数),则可将更多的shave分配给面部检测模型m1。
图10描绘了根据本文件的实施方式的用于实施实时多线程编程以实现实时面部检测的过程。最初,相机传感器捕获(1005)一个或多个图像。一个或多个图像传输(1010)至包括第一CPU内核、第二CPU内核和多个shave的处理器。在一个或多个实施方式中,第二CPU内核将每个图像帧划分(1015)成多个分区,其中,每个帧的分区数量均等于shave的数量。第二CPU内核通过为每个shave分配初始(或第一)图像帧的一个分区来调度(1020)计算任务。多个shave使用至少一个对象检测模型并行地执行(1025)对象检测。使用至少一个面部检测模型的详细并行计算的实施方式可参考与图8和/或图9有关的描述。在一个或多个实施方式中,第二CPU内核通过将下一个图像帧的分区分配给完成所调度的计算任务的shave来动态地更新(1030)计算任务调度,使得那些shave无需等待直到所有shave完成所调度的计算任务。步骤1030中的过程可以是具有动态调度操作直到所有图像帧被划分并分配用于计算为止的自更新步骤。一旦处理完图像帧的所有分区,然后将所有分区的结果合并(1035),以生成对应于图像帧的输出。
E.系统实施方式
在实施方式中,本专利文件的方面可涉及、可包括、利用或并入一个或多个信息处理系统/计算系统或者可在一个或多个信息处理系统/计算系统上实施。计算系统可包括可操作来计算、运算、确定、分类、处理、传输、接收、检索、发起、路由、交换、存储、显示、通信、显现、检测、记录、再现、处理或利用任何形式信息、智能或数据的任何手段或手段的组合。例如,计算系统可为或可包括个人计算机(例如,膝上型计算机)、平板电脑、平板手机、个人数字助理(PDA)、智能手机、智能手表、智能包装、服务器(例如,刀片式服务器或机架式服务器)、网络存储装置、相机或任何其他合适装置,并且可在大小、形状、性能、功能和价格方面改变。计算系统可包括随机存取存储器(RAM)、一个或多个处理资源(例如中央处理单元(CPU)或硬件或软件控制逻辑)、ROM和/或其他类型的存储器。计算系统的另外组件可包括一个或多个盘驱动器、用于与外部装置通信的一个或多个网络端口、以及各种输入和输出(I/O)装置(例如键盘、鼠标、触摸屏和/或视频显示器)。计算系统还可包括可操作为在各种硬件组件之间传输通信的一个或多个总线。
图11描绘根据本公开的实施方式的计算装置/信息处理系统(或是计算系统)的简化框图。应理解,计算系统可不同地配置并且包括不同组件,包括如图11中所示的更少或更多的部件,但应理解,针对系统1100所示出的功能可操作为支持计算系统的各种实施方式。
如图11所示,计算系统1100包括一个或多个中央处理单元(CPU)1101,CPU 1101提供计算资源并控制计算机。CPU 1101可实施有微处理器等,并且还可包括一个或多个图形处理单元(GPU)1119和/或用于数学计算的浮点协处理器。系统1100还可包括系统存储器1102,系统存储器1102可呈随机存取存储器(RAM)、只读存储器(ROM)、或两者的形式。
如图11中所示,还可提供多个控制器和外围装置。输入控制器1103表示至各种输入装置1104的接口,例如键盘、鼠标、触摸屏和/或触笔。计算系统1100还可包括存储控制器1107,该存储控制器1107用于与一个或多个存储装置1108对接,存储装置中的每个包括存储介质(诸如磁带或盘)或光学介质(其可用于记录用于操作系统、实用工具和应用程序的指令的程序,它们可包括实施本公开的各方面的程序的实施方式)。存储装置1108还可用于存储经处理的数据或是将要根据本公开处理的数据。系统1100还可包括显示控制器1109,该显示控制器1109用于为显示装置1111提供接口,显示装置1111可为阴极射线管(CRT)、薄膜晶体管(TFT)显示器、有机发光二极管、电致发光面板、等离子面板或其他类型的显示器。计算系统1100还可包括用于一个或多个外围装置1106的一个或多个外围控制器或接口1105。外围装置的示例可包括一个或多个打印机、扫描仪、输入装置、输出装置、传感器等。通信控制器1114可与一个或多个通信装置1115对接,这使系统1100能够通过各种网络(包括互联网、云资源(例如以太云、经以太网的光纤通道(FCoE)/数据中心桥接(DCB)云等)、局域网(LAN)、广域网(WAN)、存储区域网络(SAN))中的任一网络,或通过任何合适电磁载波信号(包括红外信号)来连接至远程装置。
在示出的系统中,所有主要系统组件可连接至总线1116,总线1116可表示多于一个的物理总线。然而,各种系统组件可在物理上彼此接近或可不在物理上彼此接近。例如,输入数据和/或输出数据可远程地从一个物理位置传输到另一物理位置。另外,实现本公开的各方面的程序可经由网络从远程位置(例如,服务器)访问。此类数据和/或程序可通过各种机器可读介质中的任一机器可读介质来传送,机器可读介质包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息装置的光学介质;磁光介质;以及硬件装置,该硬件装置专门被配置成存储或存储并执行程序代码,该硬件装置例如专用集成电路(ASIC)、可编程逻辑器件(PLD)、闪存装置、以及ROM和RAM装置。
本公开的方面可利用用于一个或多个处理器或处理单元以使步骤执行的指令在一个或多个非暂态计算机可读介质上编码。应注意,一个或多个非暂态计算机可读介质应当包括易失性存储器和非易失性存储器。应注意,替代实现方式是可能的,其包括硬件实现方式或软件/硬件实现方式。硬件实施的功能可使用ASIC、可编程的阵列、数字信号处理电路等来实现。因此,任何权利要求中的术语“手段”旨在涵盖软件实现方式和硬件实现方式两者。类似地,如本文使用的术语“计算机可读媒介或介质”包括具有实施在其上的指令程序的软件和/或硬件或它们的组合。利用所构想的这些替代实现方式,应当理解,附图以及随附描述提供本领域的技术人员编写程序代码(即,软件)和/或制造电路(即,硬件)以执行所需处理所要求的功能信息。
应当注意,本公开的实施方式还可涉及具有其上具有用于执行各种计算机实施的操作的计算机代码的非暂态有形计算机可读介质的计算机产品。介质和计算机代码可为出于本公开的目的而专门设计和构造的介质和计算机代码,或者它们可为相关领域中的技术人员已知或可用的。有形计算机可读介质的示例包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息装置的光学介质;磁光介质;以及专门配置成存储或存储并执行程序代码的硬件装置,例如,专用集成电路(ASIC)、可编程逻辑器件(PLD)、闪存装置、以及ROM和RAM装置。计算机代码的示例包括机器代码(例如,编译器产生的代码)以及包含可由计算机使用解释器来执行的更高级代码的文件。本公开的实施方式可整体地或部分地实施为可在由处理装置执行的程序模块中的机器可执行指令。程序模块的示例包括库、程序、例程、对象、组件和数据结构。在分布的计算环境中,程序模块可物理上定位在本地、远程或两者的设定中。
本领域的技术人员将认识到,计算系统或编程语言对本公开的实践来说均不重要。本领域的技术人员将还将认识到,多个上述元件可物理地和/或在功能上划分成子模块或组合在一起。
本领域技术人员将理解,前文的示例和实施方式是示例性的,并且不限制本公开的范围。旨在说明的是,在本领域的技术人员阅读本说明书并研究附图后将对本领域的技术人员显而易见的本公开的所有、置换、增强、等同、组合或改进包括在本公开的真实精神和范围内。还应注意,任何权利要求书的元素可不同地布置,包括具有多个从属、配置和组合。
Claims (20)
1.一种设备,包括:
相机传感器,用于捕获一个或多个图像帧;
存储器,至少存储第一对象检测模型和第二对象检测模型;
处理器,包括第一CPU内核、第二CPU内核和用于进行处理的多个shave,其中:
所述第一CPU内核配置成运行操作系统的第一实例,以处置所述设备的一般CPU任务;以及
所述第二CPU内核配置成运行操作系统的第二实例,以处置所述图像帧以及调度待由所述多个shave针对所述第一对象检测模型和所述第二对象检测模型实施的计算任务,以检测一个或多个图像帧中的对象。
2.根据权利要求1所述的设备,其中,所述第一对象检测模型和第二对象检测模型是深度学习模型,其中,每个模型均包括多个模型层,以及所述第一对象检测模型和所述第二对象检测模型共享所述层中的至少一些层,以减少所述设备的计算和资源要求。
3.根据权利要求2所述的设备,其中,所述第一对象检测模型和所述第二对象检测模型中的一个首先被训练,以固定一个或多个共享层权重。
4.根据权利要求1所述的设备,其中,每个图像帧均划分成多个分区,其中,所述分区的数量等于所述shave的数量,每个shave均分配有用于对象检测计算的分区。
5.根据权利要求4所述的设备,其中,来自每个shave的计算结果进行合并以生成对应于所述图像帧的输出。
6.根据权利要求1所述的设备,其中,所述对象检测是选自两个对象检测模型的计算结果的组合。
7.根据权利要求6所述的设备,其中,对于选自所述第一对象检测模型的计算结果,所述第一对象检测模型具有比所述第二对象检测模型高的检测概率;对于选自所述第二对象检测模型的计算结果,所述第二对象检测模型具有比所述第一对象检测模型高的检测概率。
8.根据权利要求7所述的设备,其中,所述第一对象检测模型和所述第二对象检测模型优化成用于从不同角度进行对象检测。
9.一种设备,包括:
相机传感器,生成至少一个图像帧;
存储器,存储至少一个对象检测模型;
处理器,包括第一CPU内核、第二CPU内核和用于进行处理的多个shave,其中:
所述第一CPU内核配置成运行操作系统的第一实例,以处置所述设备的一般CPU任务;以及
所述第二CPU内核配置成运行操作系统的第二实例,以处置所述至少一个图像帧以及调度由所述多个shave使用所述至少一个对象检测模型实施的计算任务,以检测所述至少一个图像帧中的对象,其中,图像帧划分成多个分区,每个分区均分配给一个shave用于计算,所述第二CPU基于由所述多个shave对所调度的计算的实施来动态地更新计算任务。
10.根据权利要求9所述的设备,其中,分区的数量等于所述shave的数量。
11.根据权利要求9所述的设备,其中,一旦处理完图像帧的所有分区,便将所有分区的结果合并,以获得对应于所述图像帧的输出。
12.根据权利要求9所述的设备,其中,所述多个shave并行实施计算。
13.根据权利要求9所述的设备,其中,一旦一个shave完成所调度的计算任务,所述第二CPU便通过分配来自下一图像帧的分区来更新所述shave的计算任务,使得所述shave开始计算而无需等待其它shave完成当前图像帧的计算。
14.根据权利要求9所述的设备,其中,所述至少一个对象检测模型包括第一对象检测模型和第二对象检测模型,所述第一对象检测模型和所述第二对象检测模型各自包括多个层,其中,一个或多个层共享参数,由所述多个shave实施的所述计算任务包括:
对于涉及共享参数的层的计算任务,通过所有的所述多个shave实施并行计算;以及
对于涉及不共享参数的层的计算任务,将所述多个shave分成指定用于所述第一对象检测模型的第一shave组和指定用于所述第二对象检测模型的第二shave组,使用指定用于所述第一对象检测组的所述第一shave组和指定用于所述第二对象检测模型的所述第二shave组实施并行计算。
15.一种用于低功率图像检测的方法,所述方法包括:
通过相机传感器捕获一个或多个图像帧;
在包括第一CPU内核、第二CPU内核和用于计算处理的多个shave的处理器处接收所述一个或多个图像帧,所述第一CPU内核配置成运行操作系统的第一实例,以处置所述设备的一般CPU任务,所述第二CPU内核配置成运行操作系统的第二实例,以处置所述一个或多个图像帧的处理;
通过所述第二CPU内核调度待由所述多个shave使用第一对象检测模型和第二对象检测模型实施的计算任务,以检测所述一个或多个图像帧中的对象;以及
从所述第一对象检测模型与所述第二对象检测模型之间的、具有较高检测概率的对象检测模型选择计算结果,以形成用于所述一个或多个图像帧中的对象检测的输出。
16.根据权利要求15所述的方法,其中,所述第一对象检测模型和所述第二对象检测模型深度学习对象检测模型包括多个卷积层,所述第一对象检测模型和所述第二对象检测模型共享至少一个卷积层。
17.根据权利要求16所述的方法,其中,所述第一对象检测模型和所述第二对象检测模型是预先训练的深度学习对象检测模型。
18.根据权利要求17所述的方法,其中,所述第一对象检测模型和所述第二对象检测模型进行单独训练并且然后组合。
19.根据权利要求18所述的方法,其中,所述第一对象检测模型和所述第二对象检测模型中的一个首先进行训练,以固定一个或多个共享模型层的参数,以及所述第二对象检测模型包括所述一个或多个共享模型层的所固定的参数,但所述第二对象检测模型进行训练以训练一个或多个其它层,以允许对象检测中的差异。
20.根据权利要求19所述的方法,其中,所述第一对象检测模型和所述第二对象检测模型首先分别利用第一专用数据集和第二专用数据集进行训练,然后利用包括来自所述第一专用数据集和所述第二专用数据集两者的数据的训练数据集联合训练。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093717 WO2020000383A1 (en) | 2018-06-29 | 2018-06-29 | Systems and methods for low-power, real-time object detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111066058A true CN111066058A (zh) | 2020-04-24 |
CN111066058B CN111066058B (zh) | 2024-04-16 |
Family
ID=68985767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880057306.7A Active CN111066058B (zh) | 2018-06-29 | 2018-06-29 | 用于低功率实时对象检测的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11741568B2 (zh) |
JP (1) | JP7268063B2 (zh) |
CN (1) | CN111066058B (zh) |
WO (1) | WO2020000383A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165954B1 (en) * | 2019-06-19 | 2021-11-02 | Objectvideo Labs, Llc | Scene-aware custom tuned video surveillance detection system |
US20220180185A1 (en) * | 2020-12-09 | 2022-06-09 | Micron Technology, Inc. | Artificial neural network model selection |
WO2023228290A1 (ja) * | 2022-05-24 | 2023-11-30 | 日本電信電話株式会社 | 学習装置、学習方法、及びプログラム |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999054833A2 (en) * | 1998-04-20 | 1999-10-28 | Recursion Dynamics Inc. | Dynamically configurable data storage and processing system optimized for performing database operations |
JP2006302095A (ja) * | 2005-04-22 | 2006-11-02 | Toyota Motor Corp | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 |
US20090293055A1 (en) * | 2008-05-22 | 2009-11-26 | Carroll Martin D | Central Office Based Virtual Personal Computer |
CN102945566A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法 |
US20140225902A1 (en) * | 2013-02-11 | 2014-08-14 | Nvidia Corporation | Image pyramid processor and method of multi-resolution image processing |
WO2015192812A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Data parallel processing method and apparatus based on multiple graphic procesing units |
WO2015192806A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Model parallel processing method and apparatus based on multiple graphic processing units |
WO2016004587A1 (zh) * | 2014-07-08 | 2016-01-14 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN105550974A (zh) * | 2015-12-13 | 2016-05-04 | 复旦大学 | 基于gpu的图像特征提取算法的加速方法 |
US20170011281A1 (en) * | 2015-07-09 | 2017-01-12 | Qualcomm Incorporated | Context-based priors for object detection in images |
US20170024849A1 (en) * | 2015-07-23 | 2017-01-26 | Sony Corporation | Learning convolution neural networks on heterogeneous cpu-gpu platform |
CN107358157A (zh) * | 2017-06-07 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 一种人脸活体检测方法、装置以及电子设备 |
JP2018026108A (ja) * | 2016-08-08 | 2018-02-15 | パナソニックIpマネジメント株式会社 | 物体追跡方法、物体追跡装置およびプログラム |
US20180114290A1 (en) * | 2016-10-21 | 2018-04-26 | Advanced Micro Devices, Inc. | Reconfigurable virtual graphics and compute processor pipeline |
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
EP3334142A1 (en) * | 2016-12-09 | 2018-06-13 | Canon Kabushiki Kaisha | Program, image processing apparatus, and image processing method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101031680B1 (ko) | 2006-03-03 | 2011-04-29 | 닛본 덴끼 가부시끼가이샤 | 고속 pe 간 데이터 재배치 기능을 갖는 프로세서 어레이 시스템 |
JP5241606B2 (ja) | 2009-05-20 | 2013-07-17 | キヤノン株式会社 | オブジェクト識別装置及びオブジェクト識別方法 |
WO2014147450A1 (en) | 2013-03-22 | 2014-09-25 | Freescale Semiconductor, Inc. | A haar calculation system, an image classification system, associated methods and associated computer program products |
CN104408720A (zh) * | 2014-11-25 | 2015-03-11 | 深圳市哈工大交通电子技术有限公司 | 图像处理方法及图像处理装置 |
GB2549554A (en) | 2016-04-21 | 2017-10-25 | Ramot At Tel-Aviv Univ Ltd | Method and system for detecting an object in an image |
US10627887B2 (en) * | 2016-07-01 | 2020-04-21 | Microsoft Technology Licensing, Llc | Face detection circuit |
CN107766839B (zh) * | 2017-11-09 | 2020-01-14 | 清华大学 | 基于3d卷积神经网络的动作识别方法和装置 |
US20190108447A1 (en) * | 2017-11-30 | 2019-04-11 | Intel Corporation | Multifunction perceptrons in machine learning environments |
US11127111B2 (en) * | 2019-11-14 | 2021-09-21 | Qualcomm Incorporated | Selective allocation of processing resources for processing image data |
-
2018
- 2018-06-29 WO PCT/CN2018/093717 patent/WO2020000383A1/en active Application Filing
- 2018-06-29 US US16/770,063 patent/US11741568B2/en active Active
- 2018-06-29 JP JP2020572465A patent/JP7268063B2/ja active Active
- 2018-06-29 CN CN201880057306.7A patent/CN111066058B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999054833A2 (en) * | 1998-04-20 | 1999-10-28 | Recursion Dynamics Inc. | Dynamically configurable data storage and processing system optimized for performing database operations |
JP2006302095A (ja) * | 2005-04-22 | 2006-11-02 | Toyota Motor Corp | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 |
US20090293055A1 (en) * | 2008-05-22 | 2009-11-26 | Carroll Martin D | Central Office Based Virtual Personal Computer |
CN102945566A (zh) * | 2012-10-19 | 2013-02-27 | 浪潮电子信息产业股份有限公司 | 一种基于sirt算法且使用cpu+mic协同计算模式的电镜三维重构方法 |
US20140225902A1 (en) * | 2013-02-11 | 2014-08-14 | Nvidia Corporation | Image pyramid processor and method of multi-resolution image processing |
WO2015192812A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Data parallel processing method and apparatus based on multiple graphic procesing units |
WO2015192806A1 (en) * | 2014-06-20 | 2015-12-23 | Tencent Technology (Shenzhen) Company Limited | Model parallel processing method and apparatus based on multiple graphic processing units |
WO2016004587A1 (zh) * | 2014-07-08 | 2016-01-14 | 北京航空航天大学 | 一种基于多核处理器架构的机器人混合系统应用框架 |
CN107851191A (zh) * | 2015-07-09 | 2018-03-27 | 高通股份有限公司 | 用于图像中的对象检测的基于上下文的先验 |
US20170011281A1 (en) * | 2015-07-09 | 2017-01-12 | Qualcomm Incorporated | Context-based priors for object detection in images |
US20170024849A1 (en) * | 2015-07-23 | 2017-01-26 | Sony Corporation | Learning convolution neural networks on heterogeneous cpu-gpu platform |
CN105550974A (zh) * | 2015-12-13 | 2016-05-04 | 复旦大学 | 基于gpu的图像特征提取算法的加速方法 |
JP2018026108A (ja) * | 2016-08-08 | 2018-02-15 | パナソニックIpマネジメント株式会社 | 物体追跡方法、物体追跡装置およびプログラム |
US20180114290A1 (en) * | 2016-10-21 | 2018-04-26 | Advanced Micro Devices, Inc. | Reconfigurable virtual graphics and compute processor pipeline |
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
EP3334142A1 (en) * | 2016-12-09 | 2018-06-13 | Canon Kabushiki Kaisha | Program, image processing apparatus, and image processing method |
CN107358157A (zh) * | 2017-06-07 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 一种人脸活体检测方法、装置以及电子设备 |
Non-Patent Citations (2)
Title |
---|
韦春丹;龚奕利;李文海;: "一种基于GPU的移动对象并行处理框架" * |
韦春丹;龚奕利;李文海;: "一种基于GPU的移动对象并行处理框架", 计算机应用与软件, no. 10 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813721A (zh) * | 2020-07-15 | 2020-10-23 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
WO2022012563A1 (zh) * | 2020-07-15 | 2022-01-20 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN111813721B (zh) * | 2020-07-15 | 2022-09-09 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11741568B2 (en) | 2023-08-29 |
WO2020000383A1 (en) | 2020-01-02 |
JP7268063B2 (ja) | 2023-05-02 |
CN111066058B (zh) | 2024-04-16 |
US20210173707A1 (en) | 2021-06-10 |
JP2021530038A (ja) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112101083B (zh) | 使用神经网络进行弱监督的对象检测方法及系统 | |
US11798271B2 (en) | Depth and motion estimations in machine learning environments | |
US11631239B2 (en) | Iterative spatio-temporal action detection in video | |
US11074717B2 (en) | Detecting and estimating the pose of an object using a neural network model | |
US11307865B2 (en) | Data processing apparatus and method | |
US20210192245A1 (en) | Information processing method and terminal device | |
CN110582785B (zh) | 配置用于执行层描述符列表的具有功率效率的深度神经网络模块 | |
US11049018B2 (en) | Transforming convolutional neural networks for visual sequence learning | |
US11307864B2 (en) | Data processing apparatus and method | |
CN111066058B (zh) | 用于低功率实时对象检测的系统和方法 | |
CN106204522B (zh) | 对单个图像的联合深度估计和语义标注 | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
CN111950695A (zh) | 使用一个或更多个神经网络进行语法迁移 | |
CN109690578B (zh) | 自主机器的通用输入/输出数据捕获和神经高速缓存系统 | |
US11301686B2 (en) | Visual anomaly detection without reference in graphics computing environments | |
CN114365185A (zh) | 使用一个或更多个神经网络生成图像 | |
CN112102329A (zh) | 使用一个或更多个神经网络进行细胞图像合成 | |
WO2018112833A1 (en) | Efficient transferring of human experiences to robots and other autonomous machines | |
CN117033702A (zh) | 使用一个或更多个神经网络的视频上采样 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
US20240211724A1 (en) | Multiple-model heterogeneous computing | |
US11307866B2 (en) | Data processing apparatus and method | |
US20200104207A1 (en) | Data processing apparatus and method | |
Yu et al. | INCAME: Interruptible CNN accelerator for multirobot exploration | |
US20230111375A1 (en) | Augmenting and dynamically configuring a neural network model for real-time systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |