CN113168502A - 用于可变计算资源的动态自适应卷积神经网络 - Google Patents
用于可变计算资源的动态自适应卷积神经网络 Download PDFInfo
- Publication number
- CN113168502A CN113168502A CN201880095126.8A CN201880095126A CN113168502A CN 113168502 A CN113168502 A CN 113168502A CN 201880095126 A CN201880095126 A CN 201880095126A CN 113168502 A CN113168502 A CN 113168502A
- Authority
- CN
- China
- Prior art keywords
- subset
- convolution
- available
- convolution filters
- cnn
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- 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/211—Selection of the most significant subset of features
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
讨论了涉及使用自适应卷积神经网络(CNN)进行对象检测的技术。这种技术包括:响应于用于处理输入图像数据的可用计算资源,将CNN的多种配置中的一种配置应用于输入图像数据。
Description
背景技术
在分析一系列视频图像或帧中的图像或视频图像的情况下,卷积神经网络(CNN)可用于对象识别、人脸识别等。CNN以大的模型大小和大的计算成本为代价提供高质量结果,这可能使得在资源有限的环境中难以实现。特别地,在一些实现方式中,用于CNN推理的计算预算取决于实现CNN的设备或系统的变化的实时计算资源可用性。例如,在中央处理器(CPU)实现CNN的情况下,用于CNN计算负载的CPU的可用资源可能根据CPU上运行的其他应用(例如,防病毒应用突然运行等)而显著变化。
通常,在计算资源有限的情况下,计算机视觉系统跳过帧,并且可能丢失重要信息。例如,在自动驾驶应用中,当对象可能仅在一帧或两帧中出现在相机的视野中并且跳过帧可能丢失重要的对象识别信息时,这至关重要。
因此,用于在可变计算资源环境中实现CNN的当前技术具有局限性。处于这些和其他考虑,当前的改进是必要的。随着在各种情况下识别对象的需求变得越来越普遍,这种改进可能变得至关重要。
附图说明
在附图中以示例而非限制的方式示出了本文所述的材料。为了图示的简单和清楚起见,附图中图示的元件不必按比例绘制。例如,为了清楚起见,一些元件的大小可能相对于其他元件被放大。此外,在认为适当的地方,在附图中重复参考标记以指示对应或类似的元件。在图中:
图1示出了用于使用自适应于可用计算资源的CNN来执行对象识别的示例系统;
图2是示出用于使用自适应于可用计算资源的CNN执行对象识别的示例过程的流程图;
图3是示出用于训练自适应CNN的示例过程的流程图;
图4示出了示例自适应CNN的示例性训练;
图5示出了示例逐通道丢弃CNN训练技术;
图6示出了使用示例自适应CNN的示例性对象识别推理;
图7是示出用于使用基于可用计算资源自适应的卷积神经网络执行对象识别的示例过程的流程图;
图8是用于使用基于可用计算资源自适应的卷积神经网络来执行对象识别的示例系统的示意图;
图9是示例系统的示意图;以及
图10示出了全部根据本公开的至少一些实现方式布置的示例设备。
具体实施方式
现在参考附图描述一个或多个实施例或实现方式。虽然讨论了特定配置和布置,但是应该理解,这样做仅出于说明的目的。相关领域的技术人员将认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和布置。相关领域的技术人员将清楚,本文描述的技术和/或布置也可以用在与本文描述的系统和应用不同的各种其他系统和应用中。
尽管下面的描述阐述了例如可以在诸如片上系统(SoC)体系结构之类的体系结构中体现的各种实现方式,但是本文描述的技术和/或布置的实现方式不限于特定的体系结构和/或计算系统,而是可由任何体系结构和/或计算系统为类似目的而实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种体系结构、和/或诸如机顶盒、智能电话等各种计算设备和/或消费电子(CE)设备都可以实现本文所述的技术和/或布置。此外,尽管以下的描述可以阐述许多具体细节,诸如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等,但是要求保护的主题可以在没有这样的具体细节的情况下实现。在其他情况下,可能没有详细示出某些材料,例如控制结构和完整软件指令序列,以免模糊本文中公开的材料。
本文公开的材料可以以硬件、固件、软件或其任何组合来实现。本文公开的材料还可以被实现为存储在机器可读介质上的指令,这些指令可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机构。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或其他形式的传播信号(例如,载波、红外信号、数字信号等);等等。
说明书中对“一种实现方式”、“实现方式”、“示例实现方式”等的引用表示所描述的实现方式可以包括特定特征、结构或特性,但是每个实施例可能不一定包括该特定特征、结构或特性。此外,这样的短语不一定指代相同的实现方式。此外,当结合实施例描述特定特征、结构或特性时,可以认为结合其他实现方式影响这种特征、结构或特性在本领域技术人员的知识范围内,无论本文是否有明确描述。术语“基本上”、“接近”、“近似”、“附近”和“大约”通常是指在目标值的+/-10%以内。当参考阈值使用时,术语“满足”表示所讨论的值满足由该阈值建立的条件。当参考阈值使用时,术语“有利地比较”表示所讨论的值大于、或者大于等于该阈值。当参考阈值使用时,术语“不利地比较”表示所讨论的值小于、或者小于等于该阈值。
本文描述了与可变计算资源环境中的CNN的实现有关的方法、设备、装置、计算平台和物品,尤其涉及响应于可用于CNN的可变的计算资源来调整CNN的卷积层处应用的卷积滤波器的数目。
如上所述,可以实现CNN以提供高质量的对象识别结果。在一些实施例中,提供了自适应CNN体系结构,使得提供对计算资源的动态响应。可以训练自适应CNN,使得可以在任何数量的配置中采用CNN。在每种配置中,CNN的每个卷积层处的卷积滤波器的数量(以及全连接层中的全连接通道的数量)不同。此外,在每种配置中,所采用的卷积滤波器共享相同的滤波器系数,因此共享相同的滤波器结构。在推理期间,当足够的计算资源级别可用时,使用完整的CNN(例如,在每个卷积层使用所有可用卷积滤波器的配置)。当随着较低计算资源级别可用时,在每个卷积层处使用越来越少的可用卷积滤波器。如本文中所使用的,术语计算资源级别指示以下一项或多项:可用计算周期、多核系统中的可用处理器核、可用存储器资源、可用功率资源等中的一个或多个。CNN配置的这种计算资源级别可以被预先定义,使得可以基于作为输入的这种计算资源级别参数经由查找表来访问CNN配置,或者使用任何适当的一种或多种技术来访问CNN配置。
所描述的CNN被训练,使得CNN的每种配置共享所有滤波器的滤波器参数。例如,当CNN处于最低计算资源配置时,可以在卷积层处应用可用卷积滤波器的第一子集。在较高计算资源配置下,在卷积层处应用第一子集以及一个或多个附加卷积滤波器。在最低计算资源配置和所有较高计算资源配置二者中,应用第一子集的相同卷积滤波器。类似地,在最高计算资源配置下,应用了最高计算资源配置中的那些也在较低计算资源配置中的所有卷积滤波器,在CNN的所有计算资源配置中都应用有相同的(例如,共享的或公共的)卷积滤波器系数。
所讨论的技术提供了自适应CNN的训练和使用(例如,推理),该自适应CNN是在推理期间以动态方式基于可用计算资源或预算来配置的。例如,在处理视频序列的每个图像或帧之前,可以监视可用计算资源,并且可以选择合适的CNN配置。所讨论的技术在计算资源或能力由于例如浮动和不稳定的计算资源可用性(例如,在偶尔运行端程序或服务(例如防病毒软件)等的情况下,由于功率不稳定、CPU或图形处理单元(GPU)负载的重新分配)而变化时稳健地工作。
本文讨论的自适应CNN配置改变了在CNN的一个或多个卷积层处具有共享或公共卷积滤波器系数的卷积滤波器集合的使用。当较高计算资源可用时,使用较多卷积滤波器(例如,该集合具有较多卷积滤波器),并且当较低卷积滤波器可用时,使用较少卷积滤波器。由于不管配置如何都在公共卷积滤波器中使用相同的卷积滤波器系数(例如,尽管尽管不是在每种配置中都应用所有卷积滤波器,但卷积滤波器系数相同),因此卷积滤波器生成的特征图具有相同的分辨率。生成的特征图的数量在卷积层处根据在特定配置中应用的集合中的卷积滤波器的数量而改变;但是,特征图的分辨率是相同的。如本文所使用的,本文关于图像或特征图所用的术语分辨率指示其中的成员或数据点的数量。在图像的情况下,分辨率指示像素数。在特征图的情况下,分辨率指示特征图中的数据点数。值得注意的是,在本文讨论的技术中,特征图的分辨率或大小不是响应于计算资源改变而变化。此外,如所讨论的,卷积滤波器系数是共享的。因此,卷积滤波器系数不需要(是CNN体系结构本身也不需要)被动态重新加载到存储器,从而实时提供CNN的操作的增强效率和速度。
如本文中进一步讨论的,单个CNN被训练,使得在推理期间即使是CNN的一部分(例如,在每个卷积层处仅使用可用卷积滤波器的子集的配置)也产生可靠且有用的对象识别或分类结果。CNN的较小部分(例如,使用较少卷积滤波器的配置)用于非常有限的计算资源环境中,以执行定义的计算机视觉任务,并且当更多计算资源可用时,使用较大部分(例如,使用具有较多卷积滤波器的配置)或甚至整个CNN,使得随着更多计算资源可用,CNN提供最高可用质量的对象识别或分类结果。如本文所使用的,术语对象识别和分类可互换使用,并且包括对象检测。对象识别或分类的数据结构或指示符可以指示检测到特定类别的对象的概率得分、关于是否已检测到特定类别的对象的指示符、或指示已经在图像中识别、分类或检测到对象的任何其他合适的数据结构。
图1示出了根据本公开的至少一些实现方式布置的用于使用自适应于可用计算资源的CNN来执行对象识别的示例系统100。如图1所示,系统100包括成像设备101、归一化模块102、自适应卷积神经网络(CNN)模块103和控制器104。系统100可以以任何合适的形状因子设备(诸如机动车辆平台、机器人平台、个人计算机、膝上型计算机、平板计算机、平板手机、智能手机、数码相机、游戏机、可穿戴设备、显示设备、多合一设备、二合一设备等)来实现。例如,系统100可以执行如本文所讨论的对象识别。
如图所示,成像设备101获得图像数据111。成像设备101可以是任何合适的成像设备,诸如RGB相机等。如图所示,在一些实施例中,系统100经由成像设备101获得图像数据111。在其他实施例中,系统100经由通信通道(未示出)从另一设备接收图像数据111或输入图像数据112。在一些实施例中,从系统100的存储器(未示出)获得图像数据111以用于处理。图像数据111可以包括任何合适的图片、帧等或以任何合适的分辨率表示图片或帧的任何数据结构。在一个实施例中,图像数据111是具有其像素的R(红色)、G(绿色)和B(蓝色)值的RGB图像数据。在实施例中,图像数据111是具有其像素的R、G、B、D(深度)值的RGB-D图像数据。在实施例中,图像数据111是在其每个像素处具有单个值(例如强度值)的单通道图像数据(例如亮度、IR等)。
图像数据111可以由可选的归一化模块102接收。使用图像数据111的归一化模块102可以可选地使用任何一种或多种合适的技术(诸如,地标检测)来执行对象检测,以在对象(如果有)周围生成边界框。另外地或替代地,归一化模块102可以归一化与检测到的(一个或多个)对象相对应的图像数据,或者可以在不使用对象检测的情况下将图像数据归一化到预定大小和/或比例以生成输入图像数据112。输入图像数据112可以包括任何合适的数据结构。在实施例中,输入图像数据112具有单个通道(例如,灰度图像数据),使得输入图像数据112对于其每个像素具有单个值。在实施例中,输入图像数据112具有三个颜色通道(例如,RGB图像数据),使得输入图像数据112对于其每个像素具有三个值(例如,R值、G值和B值)。尽管本文关于RGB图像数据进行了讨论,但是可以使用任何合适的图像数据格式(例如,YUV、YCbCr等)。在实施例中,输入图像数据112具有三个颜色通道和深度通道(例如,RGB-D图像数据),使得输入图像数据112对于其每个像素具有四个值(例如,R值、G值、B值和D值)。此外,输入图像数据112可以具有任何合适的大小。在实施例中,输入图像数据112可以表示任何合适大小的图像,例如32×32像素图像、160×160像素图像、672×384像素图像等。如所讨论的,归一化模块102是可选的。在实施例中,归一化模块102生成适合于使用自适应CNN模块103进行推理的输入图像数据112。在另一实施例中,图像数据111(由系统100生成或由系统100接收)适合于使用自适应CNN模块103进行推理。
如图所示,输入图像数据112和CNN配置数据114由自适应CNN模块103接收,自适应CNN模块103将自适应CNN的特定配置(如本文进一步所述)应用于输入图像数据112以生成CNN输出数据113。CNN输出数据113可以包括任何合适的数据结构,诸如N维向量,其中每个值指示对象或特征在输入图像数据112内的似然性或得分。N维向量可以包括任何数量的似然性得分,诸如10分、100分、或甚至1,000分或更多。如图所示,CNN输出数据113可以被提供给系统100的另一模块,用于生成对象识别数据、用于对象追踪、用于输出给用户、用于人工智能应用等。在实施例中,在基于输入图像数据112的CNN输出数据113中标识出包括识别出的对象(例如,汽车、自行车、人等)的指示的对象识别数据。
如图所示,控制器104接收计算资源级别115。计算资源级别115可以是指示可用于将自适应CNN(例如,经由自适应CNN模块103)应用于输入图像数据112的计算资源的任何合适的数据。例如,计算资源级别115可以指示可用于要应用自适应CNN的计算资源的可用处理核的数量、可用操作频率量、每次可用的处理器周期数等中的一个或多个。计算资源可以是任何合适的计算资源,诸如CPU、GPU、图像信号处理器等。另外或可替代地,计算资源级别115可以指示可用于要应用自适应CNN的计算资源的可用存储器分配、可用存储器带宽等中的一个或多个。存储器资源可以是任何合适的存储器资源,诸如静态随机存取存储器(SRAM)、板载高速缓存等。在一些实施例中,计算资源级别115是可用资源的预定义评级,其可以是标量值(例如1到10)或任何粒度级别的各种描述性值(例如,低、中低、中、中高、高)之一。
控制器104将计算资源级别115转换为CNN配置114。例如,自适应CNN可以具有N种配置之一,这样配置1在CNN的一个或多个卷积层处实现最低数量的卷积滤波器(例如,自适应CNN的最低级别),配置2在CNN的一个或多个卷积层处实现较高数量的卷积滤波器(例如,自适应CNN的较高级别),配置3在CNN的一个或多个卷积层处实现更高数量的卷积滤波器(例如,自适应CNN的更高级别),等等,直到配置N,它在CNN的每个卷积层处实现全部数目个可用卷积滤波器(例如,自适应CNN的最高级别)。自适应CNN可以具有任何数量的配置N,例如2、4、8或更多。
基于CNN配置数据114,经由自适应CNN模块103将自适应CNN的特定配置应用于输入图像数据112。这些技术在本文中关于图6进一步讨论。值得注意的是,无论自适应CNN的配置如何,在自适应CNN的每个卷积层处应用的那些卷积滤波器中,相同的卷积滤波器系数被应用于输入图像数据112和与输入图像数据112相对应的特征图。
图2是示出根据本公开的至少一些实施方式布置的用于使用自适应于可用计算资源的CNN来执行对象识别的示例过程200的流程图。过程200可以包括如图2所示的一个或多个操作201-204。过程200可以由本文讨论的任何设备或系统执行,以使用本文讨论的自适应CNN来执行推理。可以对任何数目的图像、视频序列的图像、视频序列的帧等重复过程200或其部分。由过程200生成的对象识别指示符可以由其他人工智能应用使用、呈现给用户(例如,作为与图像数据111相对应的图像上的边框)、存储到存储器等。
过程200开始于操作201,在步骤201中,监视用于实现自适应CNN的可用计算资源级别。这种监视可以如由特定事件(例如,其他软件运行、进入不同功率状态,响应于用户请求)触发的那样,以特定的时间间隔连续地执行。处理在操作202中继续,在操作202中,基于可用计算资源监视来选择CNN配置。可以使用任何适当的一种或多种技术来执行这种CNN配置选择。在实施例中,使用查找表或类似的映射技术将一个或多个可用计算资源参数映射到特定的CNN配置。值得注意的是,可用计算资源越多,选择的CNN的配置级别就越高(例如,应用于CNN的一个或多个卷积层处的卷积滤波器越多),从而CNN的更大预期准确度对应于更高级别的可用计算资源。处理在操作203中继续,在操作203中,自适应CNN使用所选择的CNN配置来处理输入图像(例如,输入图像数据112)。可以如本文关于图6进一步讨论的那样执行这种处理。处理在操作204中继续,在操作204中,输出与自适应CNN的应用相对应的对象检测指示符(如果有)。
如图所示,处理在操作201中继续,在操作201中,再次监视用于实现自适应CNN的可用计算资源级别。如果没有改变,则使用所选择的CNN配置来处理输入图像,直到检测到改变为止。如果检测到改变,则重复操作202、203、204以选择不同的CNN配置来处理下一个可用的输入图像数据,实现新选择的CNN配置,并且输出对象检测指示符(如果有)。值得注意的是,当计算资源级别较低时,在自适应CNN的一个或多个卷积层处,将较少的卷积滤波器应用于输入图像数据和/或与输入图像数据相对应的特征图。当计算资源级别较高时,在自适应CNN的一个或多个卷积层处,将更多卷积滤波器应用于输入图像数据和/或与输入图像数据相对应的特征图。在两种配置中,公共卷积滤波器在推理期间共享相同的卷积滤波器系数。
图3是示出了根据本公开的至少一些实施方式布置的用于训练自适应CNN的示例过程300的流程图。过程300可以包括如图3所示的一个或多个操作301-305。过程300可以由本文讨论的任何设备或系统执行,以训练本文讨论的任何自适应CNN。可以对于任何训练、训练集等重复过程300或其部分。例如,在推理期间,由过程300生成的参数权重可以被存储到存储器,并且经由系统100的处理器来实现。
过程300开始于操作301,在操作301中,获得图像的训练语料库。例如,训练语料库可以包括提供用于训练的基础真实的图像集。训练语料库可以包括任何数量的图像,诸如15k图像、1.2M图像或更多。在实施例中,训练语料库的图像具有相同的分辨率,并且每个图像具有相同的格式,诸如关于图像数据111或输入图像数据112讨论的任何格式。
处理在操作302中继续,在操作302中,选择用于自适应CNN的多个配置。例如,选择N个可能的CNN(例如,神经网络)配置。配置的数量可以是任何合适的数量,诸如2、4、8或更多。更多的配置级别为考虑到可用计算资源(例如,在推理期间考虑速度与准确度之间的权衡)的更合适的CNN配置的选择提供了更大的自由度,但代价是更困难和更不准确的训练。更少的配置提供了更快且更准确的训练,但代价是推理时的选择粒度更小。
处理在操作303中继续,在操作303中,对于在操作302处选择的每个配置,为CNN的每一层选择多个卷积滤波器。例如,对于每种配置i=0…N-1,选择用于自适应CNN的每一层1的多个使用的卷积滤波器(例如,输出通道)CNi,l。在实施例中,选择完整的CNN体系结构,其包括多个卷积层、每一层中的多个卷积滤波器、全连接层配置等。完整的CNN体系结构可以包括任何数量的卷积层,每个卷积层具有任何数量的卷积滤波器。然后,自适应CNN的每种配置(从越来越不精确的CNN配置开始)从CNN的一个或多个卷积层中消除一个或多个卷积滤波器。在实施例中,从越来越不精确的CNN配置开始,从CNN的每个卷积层移除至少一个卷积滤波器。
在实施例中,对于特定配置所使用的卷积滤波器的数量CNi,1如等式(1)所示定义:
(1)
其中,W1是CNN的层1的最大宽度(通道数)。例如,等式(1)可以提供CNN的每个卷积层处的卷积滤波器的数量的线性减少。
处理在操作304中继续,在操作304中,自适应CNN的N个配置被一起训练,所有卷积滤波器权重被共享,并且在训练期间应用公共损失函数。由于在训练期间共享所有权重,因此使用所选择的通道子集(例如,每个通道对应于卷积滤波器),并求解损失函数以提供具有不同质量和速度的CNN配置。
图4示出了根据本公开的至少一些实现方式布置的示例自适应CNN400的示例训练。如图所示,自适应CNN 400包括任何数量的卷积层481、482、483、484,以及一个或多个全连接层485。此外,自适应CNN 400包括任何数量的配置491、492、493、494,使得卷积层481、482、483、484中的一个或多个在配置491、492、493、494之间实现不同数量的卷积滤波器。
例如,在配置491(例如,完整的CNN配置)中,在卷积层481处,将每个可用卷积滤波器401应用于输入图像数据490以生成特征图402。在配置491的卷积层482处,将每个可用卷积滤波器403应用于特征图402以生成特征图404。此外,在配置491的任何附加卷积层483处,将每个可用卷积滤波器405应用于特征图404(以及在适用的情况下,应用于后续的特征图)以生成特征图图406。在配置491的卷积层484处,将每个可用卷积滤波器407应用于特征图406(或者如果没有实现中间卷积层,则应用于特征图404)以生成特征向量408。值得注意的是,在卷积层484处,每个卷积滤波器具有等于输入特征图406、426、446、466的大小的核大小,使得卷积层484产生具有1x1大小的输出通道以提供特征向量408、428、448、468。例如,卷积层484可以提供类似于全连接层的输出(例如1x1通道提供单个特征)。在其他实施例中,卷积层可以是全连接层。如本文所使用的,术语全连接层权重表示提供特征向量的卷积层的权重或提供特征向量的任何合适的全连接层的权重。如图所示,可以将全连接层409应用于特征向量408以生成类别概率410(例如,类似于CNN输出数据113),类别概率被提供给损失函数411。在图4和本文的其他地方,如本领域中已知的,每个卷积层还可以包括池化和整流线性单元(ReLU)层或任何其他深度网络操作。为了清楚起见,未示出这种操作。
在配置492(例如,较低质量/较高速度的CNN配置)中,在卷积层481处,将可用卷积滤波器401的子集421应用于输入图像数据490以生成特征图422(在图4和本文其他地方,虚线表示未应用卷积滤波器、未生成特征图等)。如图所示,特征图422的数量对应于子集421中的卷积滤波器的数量。在配置492的卷积层482处,将可用卷积滤波器403的子集423应用于特征图422以生成特征图424。此外,在配置492的任何附加卷积层483处,将可用卷积滤波器405的子集425应用于特征图424(以及在适用的情况下,应用于后续特征图)以生成特征图426。在配置492的卷积层484处,将可用卷积滤波器407的子集427应用于特征图426(或者如果没有实现中间卷积层,则应用于特征图424)以生成特征向量428。值得注意的是,每个卷积层(或全连接层)实现较少的卷积滤波器(或通道)以生成较少的特征图(或较小的特征向量)。如图所示,将可用全连接层权重409的子集429应用于特征向量428以生成类别概率430,类别概率被提供给损失函数431。
类似地,在配置493(例如,较低质量/较高速度的CNN配置)中,在卷积层481处,将可用卷积滤波器401的子集441应用于输入图像数据490,以生成特征图442,特征图442的数量对应于子集441中的卷积滤波器的数量。在配置493的卷积层482处,将可用卷积滤波器403的子集443应用于特征图442以生成特征图444。此外,在配置493的任何附加卷积层483处,将可用卷积滤波器405的子集445应用于特征图444(以及在适用的情况下,应用于后续特征图)以生成特征图446。在配置493的卷积层484处,将可用卷积滤波器407的子集447应用于特征图446(如果没有实现中间卷积层,则应用于特征图444)以生成特征向量448。值得注意的是,每个卷积层(或全连接层)实现较少的卷积滤波器(或通道)以生成较少的特征图(或较小的特征向量)。如图所示,将可用全连接层权重409的子集449应用于特征向量448以生成类别概率450(例如,类似于CNN输出数据113),类别概率被提供给损失函数451。
最后,在配置494(例如,最低质量/较高速度的CNN配置)中,在卷积层481处,将可用卷积滤波器401的子集461应用于输入图像数据490,以生成特征图462,特征图462的数量对应于子集461中的卷积滤波器的数量。在配置494的卷积层482处,将可用卷积滤波器403的子集463应用于特征图462以生成特征图464。此外,在配置494的任何附加卷积层483处,将可用卷积滤波器405的子集465应用于特征图464(以及在适用的情况下,应用于后续特征图)以生成特征图466。在配置494的卷积层484处,将可用卷积滤波器407的子集467应用于特征图466(或者如果没有实现中间卷积层,则应用于特征图464)以生成特征向量468。值得注意的是,每个卷积层(或全连接层)实现较少的卷积滤波器(或通道)以生成较少的特征图(或较小的特征向量)。如图所示,将可用全连接层权重409的子集469应用于特征向量468以生成类别概率479(例如,类似于CNN输出数据113),类别概率被提供给损失函数471。
损失函数411、431、451、471确定损失函数或值,其在损失函数472处被求和。值得注意的是,自适应CNN 400被训练为在求和的损失函数472处使损失函数411、431、451、471的和最小。
返回图3,处理在操作304中继续,在操作304中,将自适应CNN的每种配置彼此结合地训练以训练跨配置共享的共享卷积滤波器权重。参考图4,如图所示,经由共享滤波器权重412(例如,训练后的预训练滤波器权重)来共享滤波器权重,使得可用卷积滤波器401的权重在每个配置491、492、493、494处被训练和实现。也就是说,配置494中子集461中的卷积滤波器的滤波器权重与对应卷积滤波器的滤波器权重相同,分别与配置493、492、491的子集441、421、401中的卷积滤波器的权重相同。例如,假设子集461实现两个卷积滤波器A和B,子集441实现四个卷积滤波器A、B、C和D,子集421实现六个卷积滤波器A、B、C、D、E和F,并且可用卷积滤波器401在每个配置491、492、493、494中实现八个卷积滤波器A、B、C、D、E、F、G和H,每个卷积滤波器A、B、C、D、E、F、G和H(在适用时)具有共享的滤波器权重421。由于这种共享的滤波器权重421和卷积滤波器的共享应用,特征图402、422、442、462也都具有相同的分辨率(尽管特征图402、422、442、462或通道的数量在配置491、492、493、494之间改变)。
以类似的方式,经由共享的滤波器权重413(例如,训练之后的预训练滤波器权重)来共享滤波器权重,使得可用卷积滤波器403的权重在每个配置491、492、493、494处被训练和实现。在子集463、443、423和可用卷积滤波器403中应用的卷积滤波器的滤波器权重与它们之间的对应卷积滤波器的滤波器权重相同。这样的滤波器权重共享也在子集465、445、425与可用卷积滤波器405之间应用,如关于共享权重414(例如,训练后的预训练的滤波器权重)所示,以及在子集467、447、427与可用卷积滤波器407之间应用,如关于共享权重415(例如,训练后的预训练的滤波器权重)所示。此外,全连接层409、429、449、469共享滤波器权重,如关于共享权重416所示。
参考操作304,可以使用任何合适的一种或多种技术来执行自适应CNN 400的训练,使得保持权重共享。如本文所使用的,术语彼此结合的训练配置指示利用共享的滤波器权重和共享的损失函数来训练配置。在一些实施例中,可以使用逐通道丢弃技术。
图5示出了根据本公开的至少一些实现方式布置的示例逐通道丢弃CNN训练技术500。如图所示,每个配置模块501的丢弃能力(dropout power)设置可以提供指示502、503、504、505,以在训练期间从可用卷积滤波器401、403、405、507消除一个或多个卷积滤波器,以模拟可用卷积滤波器401、403、405、507的子集,如关于子集421、423、425、427所示。
在任何情况下,在训练自适应CNN 400的每个迭代中,前向传播和后向传播被执行N次(对于每种配置执行一次),并且批量梯度下降被累积。如图所示,在一些实施例中,前向传播和后向传播被执行,前向传播和后向传播的数量等于可用配置的数量,以确定批量梯度下降。在一些实施例中,对于单个随机选择的配置或迭代选择的配置执行前向传播和后向传播以确定批量梯度下降。即,在训练自适应CNN 400的每个迭代中,对于随机选择的配置或迭代选择的配置执行1次前向和后向传播。对于任何数量的迭代(例如,时期)重复这种处理,直到满足收敛条件、满足最大迭代数量等为止。
返回图3,处理在操作305中继续,在操作305中,自适应CNN 400的得到的滤波器权重(例如,参数权重)被输出。例如,自适应CNN 400的预定义体系结构和训练后的得到的滤波器权重可以存储到存储器和/或发送到另一设备,以在本文讨论的推理阶段期间实现。
参考图4,如所讨论的,自适应CNN 400可以具有任何数量的配置。此外,在所示的实施例中,在配置491、492、493、494的每个配置之间,每个卷积层481、482、483、484和全连接层485具有不同数量的卷积滤波器和权重。在其他实施例中,一些卷积层481、482、483、484和/或全连接层485在一些配置491、492、493、494之间具有相同数量的卷积滤波器或通道。此外,如关于等式(1)所讨论的,在一些实施例中,可以按照线性方式减少卷积滤波器(或通道)的数量。在实施例中,可用卷积滤波器401中的卷积滤波器的数量与子集421中的卷积滤波器的数量的比率和可用卷积滤波器403中的卷积滤波器的数量与子集423中的卷积滤波器的数量的比率相同。沿配置491、492的卷积滤波器或通道的数量之间的相似比率也可以是相同的,并且这种比率可以在配置491、492、493、494的其他组合之间匹配。在一些实施例中,可用卷积滤波器401中的卷积滤波器的数量不小于子集421中的卷积滤波器的数量的两倍,子集421中的卷积滤波器的数量不小于子集441中的卷积滤波器的数量的两倍,子集441中的卷积滤波器的数量不小于子集461中的卷积滤波器的数量的两倍。关于卷积层482、483、484和全连接层485中的卷积滤波器的数量,可以提供类似的特性。
在一些实施例中,配置491、492、493、494之间的卷积层481、482、483、484和/或全连接层485中的一个或多个的卷积滤波器或通道的数量的减少可以是非线性的。特别地,在一些实施例中,配置491和配置492之间的卷积滤波器或通道的数量的减少可以小于配置492和配置493之间的卷积滤波器或通道的数量的减少,配置492和配置493之间的卷积滤波器或通道的数量的减少又可以小于配置493和配置494之间的卷积滤波器或通道的数量的减少。这种减少特性可以有利地在峰值计算资源可用性或接近峰值计算资源可用性时提供更多配置,并因此在需要较小的计算资源时提供较小的准确度损失。
如所讨论的,定义了相同的自适应CNN模型的多种配置,使得这些配置对于自适应CNN的每一层具有不同数量的输出通道(例如,卷积滤波器)。使用共享权重和公共损失来一起训练配置(例如,彼此结合)。可以在推理期间针对用于执行的不同计算资源预算动态配置得到的预训练模型。使用所讨论的技术,在计算资源预算小的情况下,保持合理的准确度损失。此外,与单独训练完整的CNN相比,得到的完整的计算资源预算CNN提供了高的准确度和合理的损失。
在推理中,这种自适应CNN提供了多种优点,包括由于低计算资源而不跳过视频图像或帧,不增加用于实现CNN的权重的数量,即使在低或高可变的计算资源环境中也有稳健的计算机视觉结果,以及训练和操作单个CNN的简单性。
图6示出了根据本公开的至少一些实现方式布置的使用示例自适应CNN 400的示例性对象识别推理。如图所示,由自适应CNN模块103实现的自适应CNN 400可基于从控制器104接收的CNN配置数据114被配置为配置491、492、493、494之一。
在图6的示例中,自适应CNN 400被配置为配置493。例如,响应于可用于处理输入图像数据112的特定计算资源级别,可以选择配置493。在配置493中,仅将可用卷积滤波器401的子集441应用于卷积层481处的输入图像数据112,仅将可用卷积滤波器403的子集443应用于卷积层482处的特征图442,仅将可用卷积滤波器405的子集445应用于(一个或多个)卷积层483处的特征图444(如果有),仅将可用卷积滤波器407的子集447应用于特征图446(或特征图444),并且仅将全连接权重409的子集449应用于特征向量448以生成类别概率650。值得注意的是,当实现配置493时,不应用一些可用卷积滤波器和全连接层或节点。如本文所使用的,该术语仅指示使用集合或组的一部分或子集,而不使用集合或组的另一部分或子集。例如,未使用的部分或子集可被表征为未使用的、丢弃的、空闲的等。
如图所示,在配置493中,执行处理,使得将卷积层481的可用卷积滤波器401的子集441应用于输入图像数据112,以生成数量与子集441中的卷积滤波器的数量匹配的对应特征图442(例如,32个可用卷积滤波器中的6个卷积滤波器)。将卷积层482的可用卷积滤波器403的子集443应用于特征图442,以生成数量与子集443中的卷积滤波器的数量匹配的对应特征图444(例如,32个可用卷积滤波器中的16个卷积滤波器)。如果适用,将一个或多个卷积层483的一个或多个可用卷积滤波器405集合的一个或多个子集445应用于特征图444(以及后续形成的特征图),以生成数量与子集445的最终子集中的卷积滤波器的数量匹配的对应特征图446。将可用卷积滤波器407的子集447应用于特征图446(或者如果未实现中间的一个或多个卷积层483,则应用于特征图444),以生成其特征数量与子集447中的卷积滤波器的数量匹配的特征向量448(例如,64个可用卷积滤波器中的32个卷积滤波器)。将全连接层449应用于特征向量448以生成类别概率650,类别概率650指示与每个可用类别相对应的对象在输入图像数据112中的类别概率。例如,类别概率650可以指示对于每个可用类别(例如,汽车、人、卡车、狗、路灯等)包括在零到一的范围内的得分,其中增加的得概率分指示增加的似然图像数据112包括对应对象类别的对象。
可以基于CNN配置数据114将自适应CNN 400配置为任何数量的配置,诸如配置491、492、493、494。例如,响应于可用于处理后续输入图像数据112的计算资源级别的改变,可以选择配置491、492或494。在实施例中,响应于可用于处理第二输入图像数据112的大于先前讨论的计算资源级别的另一计算资源级别的改变,可以选择配置491或492。关于配置493,在配置491、492两者中,在卷积层481处将可用卷积滤波器401的子集441中的每个卷积滤波器以及一个或多个附加卷积滤波器应用于第二输入图像数据112。值得注意的是,子集421包括子集441中的所有卷积滤波器和附加卷积滤波器。可用卷积滤波器401包括子集441中的所有卷积滤波器(以及子集421中的卷积滤波器),并且实际上包括卷积层481的所有可用卷积滤波器401。类似地,如图所示,在配置491、492两者中,在卷积层482、483处将可用卷积滤波器403、405的子集443中的每个卷积滤波器以及一个或多个附加卷积滤波器分别应用于对应特征图。此外,在配置491、492两者中,在卷积层484处将可用卷积滤波器407的子集447中的每个卷积滤波器以及一个或多个附加卷积滤波器应用于对应特征图。如本文所讨论的,在配置之间共享的那些卷积滤波器应用相同的滤波器系数。类似地,在配置之间共享的全连接层权重应用相同的系数和参数。
例如,在最高准确度、最高计算资源负载配置中,选择配置491,并且类似于关于配置493所讨论的处理来执行处理,使得将卷积层481的所有可用卷积滤波器401应用于输入图像数据112以生成对应特征图402,将卷积层482的所有可用卷积滤波器403应用于特征图402以生成对应特征图404,将一个或多个卷积层483的所有卷积滤波器405应用于特征图404(以及后续形成的特征图)以生成对应特征图406,将所有可用卷积滤波器407应用于特征图446(或者,如果未实现中间的一个或多个卷积层483,则应用于特征图444)以生成特征向量408,并将全连接层409应用于特征向量408以生成类别概率610。
此外,在最低准确度、最低计算资源负载配置中,选择配置494,并且进行处理,使得将卷积层481的可用卷积滤波器401的子集461应用于输入图像数据112以生成对应特征图462,将卷积层482的可用卷积滤波器403的子集463应用于特征图462以生成对应特征图464,如果适用,将一个或多个卷积层483的一个或多个可用卷积滤波器405集合的一个或多个子集465应用于特征图444(以及后续形成的特征图)以生成对应特征图466,将可用卷积滤波器407的子集467应用于特征图466(或者如果未实现中间的一个或多个卷积层483,则应用于特征图464)以生成特征向量468,并将全连接层469应用于特征向量468以生成类别概率679。可以相对于配置492应用类似的处理以生成类别概率630。
在任何情况下,提供类别概率610、630、650或679作为来自自适应CNN模块103的输出,以用于任何合适的图像处理、对象追踪、对象识别、人工智能等应用中。在所示的实施例中,类别概率610、630、650或679被提供给对象识别模块611以用于对象识别或检测。如本文所用的,术语对象识别指示符表示指示对象识别或检测的任何数据或数据结构,诸如一个或多个类别概率、检测到的对象在图像数据内的一个或多个位置、指示在图像数据中检测到对象的标志,等等。
自适应CNN 400可以具有关于图4讨论的任何特征。值得注意的是,如图6所示,卷积滤波器、层、共享权重、全连接层等是用于实现的自适应CNN 400的最终的、经训练的参数(例如,自适应CNN 400的预训练参数)。此外,可以对输入图像数据112所表示的任何数量的输入图像重复所讨论的处理。在任何这样的输入图像之间,可以选择配置491、492、493、494中的不同配置进行处理。然而,对于任何数量的输入图像,这种配置491、492、493、494也可以保持恒定。例如,当计算资源变化时,可以发生配置491、492、493、494之间的这种改变。
图7是示出根据本公开的至少一些实现方式布置的用于使用基于可用计算资源自适应的卷积神经网络执行对象识别的示例过程700的流程图。过程700可以包括如图7所示的一个或多个操作701-703。过程700可以形成对象识别过程的至少一部分。通过非限制性示例,过程700可以形成如本文所讨论的由系统100执行的对象识别过程的至少一部分。此外,本文将参考图8的系统800来描述过程700。
图8是示出根据本公开的至少一些实现方式布置的用于使用基于可用计算资源自适应的卷积神经网络执行对象识别的示例过程800的示意图。如图8所示,系统800包括一个或多个中央处理单元801(即,(一个或多个)中央处理器)、图形处理单元802(即,图形处理器)和存储器存储库803。同样如图所示,图形处理单元802可以包括或实现归一化模块102、自适应CNN模块103和控制器104。这种模块可被实现为执行本文所讨论的操作。在系统800的示例中,存储器存储库803可以存储输入图像数据、CNN特性和参数数据、卷积滤波器系数、特征图、特征向量、CNN输出数据、类别概率或本文讨论的任何其他数据或数据结构。
如图所示,在一些示例中,归一化模块102、自适应CNN模块103和控制器104经由图形处理单元802实现。在其他示例中,归一化模块102、自适应CNN模块103和控制器104中的一个或两个或部分经由系统800的中央处理单元801或图像处理单元(未示出)实现。在又一示例中,视图归一化模块102、自适应CNN模块103和控制器104中的一个或两个或部分经由成像处理管线、图形管线等实现。
图形处理单元802可以包括可以提供如本文所讨论的操作的任何数量和类型的图形处理单元。这样的操作可以经由软件或硬件或其组合来实现。例如,图形处理单元802可以包括专用于处理从存储器存储库803获得的图像数据、CNN数据等的电路系统。中央处理单元801可以包括可以为系统800提供控制和其他高级功能和/或提供本文讨论的任何操作的任何数量和类型的处理单元或模块。存储器存储库803可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等),等等。在非限制性示例中,存储器存储库803可以由高速缓冲存储器来实现。在实施例中,视图合成网络92和图像超分辨率CNN 93中的一个或两个或部分经由图形处理单元802的执行单元(EU)来实现。EU可以包括例如可编程逻辑或电路系统,诸如可以提供各种各样的可编程逻辑功能的一个或多个逻辑核。在实施例中,视图归一化模块102、自适应CNN模块103和控制器104中的一个或两个或部分经由诸如固定功能电路系统等的专用硬件来实现。固定功能电路系统可以包括专用逻辑或电路系统,并且可以提供可以映射到用于固定目的或功能的专用逻辑的一组固定功能入口点。在一些实施例中,视图归一化模块102、自适应CNN模块103和控制器104中的一个或两个或部分经由专用集成电路(ASIC)来实现。ASIC可以包括被定制为执行本文所讨论的操作的集成电路系统。
回到图7的讨论,过程700在操作701处开始,在操作701中,响应于可用于处理第一输入图像数据的第一计算资源级别,在卷积神经网络(CNN)的卷积层处仅将可用卷积滤波器的第一子集应用于与所述第一输入图像数据相对应的第一特征图。
处理在操作702中继续,在操作702中,响应于到可用于处理第二输入图像数据的大于第一计算资源级别的第二计算资源级别的改变,在CNN的卷积层处将可用卷积滤波器的第一子集以及一个或多个附加卷积滤波器应用于与第二输入图像数据相对应的第二特征图。值得注意的是,将可用卷积滤波器的第一子集应用于第一特征图并将可用卷积滤波器的第一子集应用于第二特征图包括应用相同的预训练滤波器权重。此外,应用卷积滤波器的第一子集生成第三特征图的数量与卷积滤波器的第一子集中的卷积滤波器的数量相等,并且应用第一子集以及一个或多个附加卷积滤波器生成第四特征图的数量与第三特征图的数量加上附加卷积滤波器的数量相等,使得第三特征图和第四特征图都具有相同的分辨率。
在一些实施例中,过程700还包括响应于第一计算资源级别,在CNN的第二卷积层处仅将第二可用卷积滤波器的第二子集应用于第一输入图像数据,并且响应于第二计算资源级别,在CNN的第二卷积层处将第二可用卷积滤波器的第二子集以及一个或多个附加第二卷积滤波器应用于第二输入图像数据。在一些实施例中,第一子集中的卷积滤波器的数量与第一子集中的卷积滤波器加上一个或多个附加卷积滤波器的数量的比率,与第二子集中的卷积滤波器的数量与第二子集中的卷积滤波器加上一个或多个附加第二卷积滤波器的数量的第二比率相同。
在一些实施例中,过程700还包括响应于第一计算资源级别,在CNN的第二层处仅将可用全连接通道的第二子集应用于与第一输入图像数据相对应的第三特征图,并且响应于第二计算资源级别,在CNN的第二卷积层处将第二可用卷积滤波器的第二子集以及一个或多个附加全连接通道应用于与第二输入图像数据相对应的第四特征图。
在一些实施例中,过程700还包括响应于到可用于处理第三输入图像数据的小于第一计算资源级别的第三计算资源级别的改变,在CNN的卷积层处仅将可用卷积滤波器的第二子集应用于与第三输入图像数据相对应的第三特征图,使得第二子集具有比第一子集更少的卷积滤波器并且第二子集的每个卷积层在第一子集中。在一些实施例中,第一子集中的卷积滤波器的数量不小于第二子集中的卷积滤波器的数量的两倍,并且第一子集中的卷积滤波器以及一个或多个附加卷积滤波器的数量不小于第一子集中的卷积滤波器的数量的两倍。
处理在操作703中继续,在操作703中,至少部分地基于CNN的卷积层的所述应用,分别针对第一和第二图像发送第一和第二对象识别指示符。第一和第二对象识别指示符可以包括任何合适的对象识别或检测指示符,诸如类别概率得分、图像数据内检测到的对象的一个或多个位置、或指示在图像数据中检测到对象的一个或多个标记。
在一些实施例中,过程700还包括训练CNN。在一些实施例中,训练CNN包括为CNN选择多个可用配置,为每个可用配置确定在每个卷积层处应用的多个卷积滤波器、以及彼此结合地训练每个可用配置,使得可用配置的公共卷积滤波器共享训练中的滤波器等待,以生成CNN的最终权重。在一些实施例中,训练每个可用配置包括:在多个训练迭代中的每个迭代中,执行与可用配置的数量相等的数量的反向传播,以确定批量梯度下降,并使用该批量梯度下降来更新卷积滤波器等待。在一些实施例中,在多个训练迭代中的每个迭代中,训练每个可用配置包括在每个卷积层处逐层丢弃卷积滤波器,以训练完整的CNN并且随后训练减少的CNN配置。
过程700可以提供为任何数量的输入图像生成对象识别或检测数据。对于任何数量的输入图像、输入图像的视频序列的输入图像、视频帧等,过程700可以被串行或并行地重复任何次数。
本文描述的系统的各种组件可以用软件、固件和/或硬件和/或其任何组合中实现。例如,本文所讨论的设备或系统的各种组件可以至少部分地由诸如可存在于计算系统(诸如,例如计算机、膝上型计算机、平板计算机或智能手机)的计算片上系统(SoC)的硬件来提供。例如,这种组件或模块可以经由多核SoC处理器来实现。本领域技术人员可以认识到,本文所述的系统可以包括在对应附图中未示出的附加组件。
尽管本文讨论的示例过程的实现方式可以包括按照图示顺序进行示出的所有操作,但是本公开不限于此,并且在各种示例中,本文的示例过程的实现方式可以仅包括示出的操作的子集、包括以与示出的顺序不同的顺序执行的操作、或包括其他操作。
另外,本文讨论的任何一个或多个操作可以响应于由一个或多个计算机程序产品提供的指令来进行。这种程序产品可以包括提供指令的信号承载介质,所述指令当被例如处理器执行时可以提供本文所述的功能。计算机程序产品可在任何形式的一种或多种机器可读介质中提供。因此,例如,包括一个或多个图形处理单元或处理器内核的处理器可以响应于被一种或多种机器可读介质传送给处理器的程序代码和/或指令或指令集而进行本文的示例过程的一个或多个框。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,所述程序代码和/或指令或指令集可以使得本文描述的任何设备和/或系统实现本文所讨论的操作、模块或组件的至少一部分。
如本文描述的任何实现方式中所使用的,术语“模块”是指被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路系统的任何组合。软件可以实现为软件包、代码和/或指令集或指令,并且如本文描述的任何实现方式中所使用的“硬件”例如可单一地或者组合地包括硬连线电路系统、可编程电路系统、状态机电路系统、固定功能电路系统、执行单元电路系统、和/或存储由可编程电路执行的指令的固件。模块可以集体地或单独地实现为形成较大系统的一部分的电路系统,例如,集成电路(IC)、片上系统(SoC)等。
图9是示出根据本公开的至少一些实现方式布置的示例系统900的示意图。在各种实现方式中,系统900可以是计算系统,尽管系统900不限于该上下文。例如,系统900可以被并入个人计算机(PC)、膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能手机、智能平板计算机或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备、外围设备、游戏机、可穿戴设备、显示设备、多合一设备、二合一设备等。
在各种实现方式中,系统900包括耦合到显示器920的平台902。平台902可以从诸如(一个或多个)内容服务设备930或(一个或多个)内容递送设备940或其他类似内容源(诸如相机或相机模块等)之类的内容设备接收内容。包括一个或多个导航特征的导航控制器950可用于与例如平台902和/或显示器920交互。下面将更详细地描述这些组件中的每一个。
在各种实现方式中,平台902可以包括芯片集905、处理器910、存储器912、天线913、存储装置914、图形子系统915、应用916和/或无线电918的任何组合。芯片集905可以提供处理器910、存储器912、存储装置914、图形子系统915、应用916和/或无线电918之间的相互通信。例如,芯片集905可以包括能够提供与存储914相互通信的存储适配器(未示出)。
处理器910可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、与x86指令集兼容的处理器、多核或任何其他微处理器或中央处理单元(CPU)。在各种实现方式中,处理器910可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器等。
存储器912可以被实现为易失性存储设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置914可以被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接的存储设备、闪存、电池备份的SDRAM(同步DRAM)和/或网络可访问的存储设备。在各种实现方式中,例如,当包括多个硬盘驱动器时,存储装置914可以包括用于提高对有价值的数字媒体的存储性能增强保护的技术。
图形子系统915可以执行图像(诸如静态图像、图形或视频)的处理以便显示。例如,图形子系统915可以是图形处理单元(GPU)、视觉处理单元(VPU)或图像处理单元。在一些示例中,图形子系统915可以执行本文讨论的扫描图像渲染。模拟或数字接口可以用于通信地耦合图形子系统915和显示器920。例如,该接口可以是高清多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任何一种。图形子系统915可以集成到处理器910或芯片集905中。在一些实现方式中,图形子系统915可以是通信地耦合到芯片集905的独立设备。
本文描述的图像处理技术可以在各种硬件体系结构中实现。例如,图像处理功能可以被集成在芯片集内。可替代地,可以使用分立的图形和/或图像处理器和/或专用集成电路。作为又一实现方式,图像处理可以由包括多核处理器在内的通用处理器提供。在其他实现方式中,这些功能可以在消费电子设备中实现。
无线电装置918可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可能涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这种网络进行通信时,无线电装置918可以根据任何版本中的一个或多个适用标准来操作。
在各种实现方式中,显示器920可以包括任何平板监视器或显示器。例如,显示器920可以包括计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器920可以是数字的和/或模拟的。在各种实现方式中,显示器920可以是全息显示器。另外,显示器920可以是可以接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用916的控制下,平台902可以在显示器922上显示用户界面920。
在各种实现方式中,(一个或多个)内容服务设备930可以由任何国家的、国际的和/或独立的服务托管,并且因此例如是平台902经由互联网可访问的。(一个或多个)内容服务设备930可以耦合到平台902和/或显示器920。平台902和/或(一个或多个)内容服务设备930可以耦合到网络960以向网络960或从网络1060传输(例如,发送和/或接收)媒体信息。(一个或多个)内容传递设备940也可以耦合到平台902和/或显示器920。
在各种实现方式中,(一个或多个)内容服务设备930可以包括有线电视盒、个人计算机、网络、电话、能够传送数字信息和/或内容的具备互联网能力的设备或家电以及能够经由网络960或直接地在内容提供商与平台902和/显示器920之间单向地或双向地传送内容的任何其他类似设备。应当理解,可以经由网络960单向地和/或双向地向和从系统900中的组件的任何一者和内容提供者传送内容。内容的示例可以包括任何媒体信息,例如包括视频、音乐、医疗信息和游戏信息等。
(一个或多个)内容服务设备930可以接收诸如有线电视节目之类的内容,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可以包括任何有线或卫星电视或无线电台或互联网内容提供者。提供的示例并不意味着以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台902可以从具有一个或多个导航特征的导航控制器950接收控制信号。例如,导航控制器950的导航特征可以用于与用户界面922进行交互。在各种实施例中,导航控制器950可以是指点设备,该指点设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体地为人机接口设备)。诸如图形用户界面(GUI)、电视和监视器之类的许多系统都允许用户使用物理手势来控制计算机或电视和向其提供数据。
导航控制器950的导航特征的移动可以通过显示器(例如显示器920)上显示的指针、光标、聚焦环或其他视觉指示符的移动来复制在显示器上。例如,在软件应用916的控制下,位于导航控制器950上的导航特征可以例如被映射到在用户界面922上显示的虚拟导航特征。在各种实施例中,导航控制器950可以不是单独的组件,而是可以被集成到平台902和/或显示器920中。然而,本公开不限于本文示出或描述的元素或上下文。
在各种实现方式中,当被使能时,驱动器(未示出)可以包括使用户能够在初始启动之后通过触摸按钮向电视那样即刻打开和关闭平台902的技术(例如,启用时)。程序逻辑可以允许平台902即使在平台被“关闭”时也将内容流式传输到媒体适配器或其他(一个或多个)内容服务设备930或(一个或多个)内容传送设备940。即使平台被“关闭”,程序逻辑也可以允许平台902将内容流式传输到媒体适配器或其他内容服务设备930或内容传送设备940。另外,芯片集905可以包括例如针对5.1环绕声音频和/或高清晰度9.1环绕声音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在各种实施例中,图形驱动器可以包括外围组件互连(PCI)Express图形卡。
在各种实施例中,可以集成系统900中所示的任何一个或多个组件。例如,可以集成平台902和(一个或多个)内容服务设备930,或者可以集成平台902和(一个或多个)内容传送设备940,或者例如可以集成平台902、(一个或多个)内容服务设备930和(一个或多个)内容传送设备940。在各种例中,平台902和显示器920可以是集成单元。例如,可以集成显示器920和(一个或多个)内容服务设备930,或者可以集成显示器920和(一个或多个)内容传送设备940。这些示例不旨在限制本公开。
在各种实施例中,系统900可以被实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统900可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享介质的示例可以包括无线频谱的一部分,诸如RF频谱等。当实现为有线系统时,系统900可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与对应的有线通信介质连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台902可以建立一个或多个逻辑或物理通道来传送信息。该信息可以包括媒体信息和控制信息。媒体信息可以指表示用于用户的内容的任何数据。内容的示例可以包括例如来自语音对话的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。来自语音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可用于通过系统路由媒体信息,或指示节点以预定方式处理媒体信息。然而,实施例不限于图9中示出或描述的元件或上下文。
如上所述,系统900可以以变化的物理样式或形状因子来体现。图10示出了根据本公开的至少一些实现方式布置的示例小形状因子设备1000。在一些示例中,可以经由设备1000来实现系统900。在其他示例中,可以经由设备1000来实现本文讨论的其他系统、组件或模块或者其部分。在各种实施例中,例如,设备1000可以被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源或电源(诸如一个或多个电池)的任何设备。
例如,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能手机、智能平板计算机或智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备、相机(例如,傻瓜相机、超变焦相机、数码单反相机(DSLR))等。
移动计算设备的示例还可以包括被布置为由机动车辆或机器人实现或由人穿戴的计算机,诸如腕式计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机以及其他可穿戴计算机。在各种实施例中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能手机。虽然通过示例可使用被实现为智能手机的移动计算设备描述一些实施例,但可以理解,也可使用其他无线移动计算设备来实现其他实施例。实施例不限于此上下文。
如图10所示,设备1000可以包括具有前部1001和后部1002的壳体。设备1000包括显示器1004、输入/输出(I/O)设备1006、彩色相机1021、彩色相机1022以及集成天线1008。例如,彩色相机1021和彩色相机1022可以如本文所讨论的那样输入图像数据(例如,左图像和右图像)。设备1000还可以包括导航特征1012。I/O设备1006可以包括用于将信息输入到移动计算设备中的任何合适的I/O设备。I/O设备1006的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)输入到设备1000中,或者可以由语音识别设备数字化。如图所示,设备1000可以包括彩色相机1021、1022和集成到设备1000的后部1002(或其他地方)中的闪光灯1010。在其他示例中,彩色相机1021、1022和闪光灯1010可以集成到设备1000的前部1001中,或者可以提供相机的前部和后部组。彩色相机1021、1022和闪光灯1010可以是产生彩色图像数据的相机模块的组件,该彩色图像数据可以被处理成图像或流视频,例如,该图像或流视频被输出到显示器1004和/或经由天线1008从设备1000远程传送。
可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器,半导体器件、芯片、微芯片、芯片集等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据任何数量的因素而变化,诸如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
至少一个实施例的一个或多个方面可以通过存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现,指令在被机器读取时使得机器构造逻辑以执行本文所述的技术。这种被称为IP核的表示可以被存储在有形的机器可读介质上,并被提供给各种消费者或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
尽管已经参考各种实现方式描述了本文阐述的某些特征,但是该描述并非旨在以限制性的意义来解释。因此,对于本公开所属领域的技术人员而言显而易见的是,本文描述的实现方式的各种修改以及其他实现方式被认为在本公开的精神和范围内。
将认识到,实施例不限于所描述的实例,而是可以在不脱离所附权利要求的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,以上实施例在这方面不受限制,并且在各种实现方式中,以上实施例可以包括仅承担这种特征的子集、承担这种特征的不同顺序、承担这种特征的不同组合、和/或承担除了明确列出的特征以外的其他特征。因此,实施例的范围应当参考所附权利要求书以及这些权利要求书所赋予的等同物的全部范围来确定。
Claims (25)
1.一种用于执行对象识别的系统,包括:
存储器,用于存储第一输入图像数据和第二输入图像数据;以及
处理器,耦合至所述存储器,所述处理器用于:
响应于可用于处理所述第一输入图像数据的第一计算资源级别,仅将卷积神经网络(CNN)的卷积层处的可用卷积滤波器的第一子集应用于与所述第一输入图像数据相对应的第一特征图;
响应于改变到可用于处理所述第二输入图像数据的大于所述第一计算资源级别的第二计算资源级别,将所述CNN的卷积层处的可用卷积滤波器的所述第一子集以及一个或多个附加卷积滤波器应用于与所述第二输入图像数据相对应的第二特征图;以及
至少部分地基于所述CNN的卷积层的所述应用,分别发送所述第一图像的第一对象识别指示符和所述第二图像的第二对象识别指示符。
2.根据权利要求1所述的系统,其中,所述处理器将可用卷积滤波器的所述第一子集应用于所述第一特征图以及将可用卷积滤波器的所述第一子集应用于所述第二特征图包括:所述处理器应用相同的预训练的滤波器权重。
3.根据权利要求1或2中任一项所述的系统,其中,所述处理器应用卷积滤波器的所述第一子集生成第三特征图的数量等于卷积滤波器的所述第一子集中的卷积滤波器的数量,并且所述处理器应用所述第一子集以及所述一个或多个附加卷积滤波器生成第四特征图的数量等于所述第三特征图的数量加上所述附加卷积滤波器的数量。
4.根据权利要求3所述的系统,其中,所述第三特征图和所述第四特征图都具有相同的分辨率。
5.根据权利要求1至4中任一项所述的系统,其中,所述处理器还用于:
响应于所述第一计算资源级别,仅将所述CNN的第二卷积层处的第二可用卷积滤波器的第二子集应用于所述第一输入图像数据;以及
响应于所述第二计算资源级别,将所述CNN的第二卷积层处的第二可用卷积滤波器的所述第二子集以及一个或多个附加第二卷积滤波器应用于所述第二输入图像数据。
6.根据权利要求5所述的系统,其中,所述第一子集中的卷积滤波器的数量与所述第一子集中的卷积滤波器加上所述一个或多个附加卷积滤波器的数量的比率,和所述第二子集中的卷积滤波器的数量与所述第二子集中的卷积滤波器加上所述一个或多个附加第二卷积滤波器的数量的第二比率相同。
7.根据权利要求1至6中任一项所述的系统,其中,所述处理器还用于:
响应于所述第一计算资源级别,仅将所述CNN的第二层处的可用全连接权重的第二子集应用于与所述第一输入图像数据相对应的第三特征图;以及
响应于所述第二计算资源级别,将所述CNN的所述第二全连接层处的所述第二可用全连接权重的所述第二子集以及一个或多个附加全连接权重应用于与所述第二输入图像数据相对应的第四特征图。
8.根据权利要求1至7中任一项所述的系统,其中,所述处理器还用于:
响应于改变到可用于处理第三输入图像数据的小于所述第一计算资源级别的第三计算资源级别,仅将所述CNN的卷积层处的可用卷积滤波器的第二子集应用于与所述第三输入图像相对应的第三特征图,其中所述第二子集具有比所述第一子集更少的卷积滤波器,并且所述第二子集中的每个卷积滤波器在所述第一子集中。
9.根据权利要求1至8中任一项所述的系统,其中,所述处理器还用于:
对于所述CNN,选择多个可用配置;
对于每个所述可用配置,确定每个卷积层处应用的卷积滤波器的数量;以及
将每个所述可用配置彼此结合地训练,其中所述可用配置的公共卷积滤波器在所述训练中共享滤波器等待,以生成所述CNN的最终权重。
10.根据权利要求9所述的系统,其中,所述处理器训练每个所述可用配置包括:在多个训练迭代中的每个训练迭代中,所述处理器:
对于单个随机选择的配置或迭代选择的配置执行前向传播或后向传播,或者执行与可用配置的数量相等数量的前向传播和后向传播,以确定批量梯度下降;以及
使用所述批量梯度下降来更新卷积滤波器权重。
11.根据权利要求10所述的系统,其中,所述处理器在多个训练迭代中的每个训练迭代中训练每个所述可用配置包括:在每个卷积层处逐层丢弃卷积滤波器以训练完整的CNN并且随后训练减少的CNN配置。
12.一种用于执行对象识别的由计算机实现的方法,包括:
响应于可用于处理第一输入图像数据的第一计算资源级别,仅将卷积神经网络(CNN)的卷积层处的可用卷积滤波器的第一子集应用于与所述第一输入图像数据相对应的第一特征图;
响应于改变到可用于处理第二输入图像数据的大于所述第一计算资源级别的第二计算资源级别,将所述CNN的卷积层处的可用卷积滤波器的所述第一子集以及一个或多个附加卷积滤波器应用于与所述第二输入图像数据相对应的第二特征图;以及
至少部分地基于所述CNN的卷积层的所述应用,分别发送所述第一图像的第一对象识别指示符和所述第二图像的第二对象识别指示符。
13.根据权利要求12所述的方法,还包括:
响应于所述第一计算资源级别,仅将所述CNN的第二卷积层处的第二可用卷积滤波器的第二子集应用于所述第一输入图像数据;以及
响应于所述第二计算资源级别,将所述CNN的第二卷积层处的第二可用卷积滤波器的所述第二子集以及一个或多个附加第二卷积滤波器应用于所述第二输入图像数据。
14.根据权利要求13所述的方法,其中,所述第一子集中的卷积滤波器的数量与所述第一子集中的卷积滤波器加上所述一个或多个附加卷积滤波器的数量的比率,和所述第二子集中的卷积滤波器的数量与所述第二子集中的卷积滤波器加上所述一个或多个附加第二卷积滤波器的数量的第二比率相同。
15.根据权利要求12至14中任一项所述的方法,还包括:
响应于所述第一计算资源级别,仅将所述CNN的第二层处的可用全连接权重的第二子集应用于与所述第一输入图像数据相对应的第三特征图;以及
响应于所述第二计算资源级别,将所述CNN的所述第二全连接层处的第二可用全连接权重的所述第二子集以及一个或多个附加全连接权重应用于与所述第二输入图像数据相对应的第四特征图。
16.根据权利要求13至15中任一项所述的方法,还包括:
响应于改变到可用于处理第三输入图像数据的小于所述第一计算资源级别的第三计算资源级别,仅将所述CNN的卷积层处的可用卷积滤波器的第二子集应用于与所述第三输入图像相对应的第三特征图,其中所述第二子集具有比所述第一子集更少的卷积滤波器,并且所述第二子集中的每个卷积滤波器在所述第一子集中。
17.根据权利要求16所述的方法,其中,所述第一子集中的卷积滤波器的数量不小于所述第二子集中的卷积滤波器的数量的两倍,并且所述第一子集中的卷积滤波器以及所述一个或多个附加卷积滤波器的数量不小于所述第一子集中的卷积滤波器的数量的两倍。
18.至少一种机器可读介质,包括多条指令,所述指令响应于在计算设备上被执行而使得所述计算设备通过以下操作执行对象检测:
响应于可用于处理第一输入图像数据的第一计算资源级别,仅将卷积神经网络(CNN)的卷积层处的可用卷积滤波器的第一子集应用于与所述第一输入图像数据相对应的第一特征图;
响应于改变到可用于处理第二输入图像数据的大于所述第一计算资源级别的第二计算资源级别,将所述CNN的卷积层处的可用卷积滤波器的所述第一子集以及一个或多个附加卷积滤波器应用于与所述第二输入图像数据相对应的第二特征图;以及
至少部分地基于所述CNN的卷积层的所述应用,分别发送所述第一图像的第一对象识别指示符和所述第二图像的第二对象识别指示符。
19.根据权利要求18所述的机器可读介质,所述机器可读介质还包括指令,所述指令响应于在所述设备上被执行而使得所述设备通过以下操作执行对象检测:
响应于所述第一计算资源级别,仅将所述CNN的第二卷积层处的第二可用卷积滤波器的第二子集应用于所述第一输入图像数据;以及
响应于所述第二计算资源级别,将所述CNN的第二卷积层处的第二可用卷积滤波器的所述第二子集以及一个或多个附加第二卷积滤波器应用于所述第二输入图像数据。
20.根据权利要求19所述的机器可读介质,其中,所述第一子集中的卷积滤波器的数量与所述第一子集中的卷积滤波器加上所述一个或多个附加卷积滤波器的数量比率,和所述第二子集中的卷积滤波器的数量与所述第二子集中的卷积滤波器加上所述一个或多个附加第二卷积滤波器的数量的第二比率相同。
21.根据权利要求18至20中任一项所述的机器可读介质,所述机器可读介质还包括指令,所述指令响应于在所述设备上被执行而使得所述设备通过以下操作执行对象检测:
响应于所述第一计算资源级别,仅将所述CNN的第二层处的可用全连接权重的第二子集应用于与所述第一输入图像数据相对应的第三特征图;以及
响应于所述第二计算资源级别,将所述CNN的所述第二全连接层处的第二可用全连接权重的所述第二子集以及一个或多个附加全连接权重应用于与所述第二输入图像数据相对应的第四特征图。
22.根据权利要求18至21中任一项所述的机器可读介质,所述机器可读介质还包括指令,所述指令响应于在所述设备上被执行而使得所述设备通过以下操作执行对象检测:
响应于改变到可用于处理第三输入图像数据的小于所述第一计算资源级别的第三计算资源级别,仅将所述CNN的卷积层处的可用卷积滤波器的第二子集应用于与所述第三输入图像相对应的第三特征图,其中所述第二子集具有比所述第一子集更少的卷积滤波器,并且所述第二子集中的每个卷积滤波器都在所述第一子集中。
23.根据权利要求22所述的机器可读介质,其中,所述第一子集中的卷积滤波器的数量不小于所述第二子集中的卷积滤波器的数量的两倍,并且所述第一子集中的卷积滤波器以及所述一个或多个附加卷积滤波器的数量不小于所述第一子集中的卷积滤波器的数量的两倍。
24.一种系统,包括:
用于下述操作的装置:响应于可用于处理第一输入图像数据的第一计算资源级别,仅将卷积神经网络(CNN)的卷积层处的可用卷积滤波器的第一子集应用于与所述第一输入图像数据相对应的第一特征图;
用于下述操作的装置:响应于改变到可用于处理第二输入图像数据的大于所述第一计算资源级别的第二计算资源级别,而将所述CNN的卷积层处的可用卷积滤波器的所述第一子集以及一个或多个附加卷积滤波器应用于与所述第二输入图像数据相对应的第二特征图;以及
用于下述操作的装置:至少部分地基于所述CNN的卷积层的所述应用,分别发送所述第一图像的第一对象识别指示符和所述第二图像的第二对象识别指示符。
25.根据权利要求24所述的系统,还包括:
响应于所述第一计算资源级别,仅将所述CNN的第二卷积层处的第二可用卷积滤波器的第二子集应用于所述第一输入图像数据;以及
响应于所述第二计算资源级别,将所述CNN的第二卷积层处的第二可用卷积滤波器的所述第二子集以及一个或多个附加第二卷积滤波器应用于所述第二输入图像数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2018/000828 WO2020122753A1 (en) | 2018-12-14 | 2018-12-14 | On the fly adaptive convolutional neural network for variable computational resources |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113168502A true CN113168502A (zh) | 2021-07-23 |
Family
ID=65278442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880095126.8A Pending CN113168502A (zh) | 2018-12-14 | 2018-12-14 | 用于可变计算资源的动态自适应卷积神经网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11928860B2 (zh) |
EP (1) | EP3895059A1 (zh) |
CN (1) | CN113168502A (zh) |
WO (1) | WO2020122753A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI696129B (zh) * | 2019-03-15 | 2020-06-11 | 華邦電子股份有限公司 | 可執行人工智慧運算的記憶體晶片及其運算方法 |
US20210056357A1 (en) * | 2019-08-19 | 2021-02-25 | Board Of Trustees Of Michigan State University | Systems and methods for implementing flexible, input-adaptive deep learning neural networks |
CN111294512A (zh) * | 2020-02-10 | 2020-06-16 | 深圳市铂岩科技有限公司 | 图像处理方法、装置、存储介质及摄像装置 |
CN114581767B (zh) * | 2022-01-19 | 2024-03-22 | 上海土蜂科技有限公司 | 图像处理系统、方法及其计算机装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102276339B1 (ko) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
US10185891B1 (en) * | 2016-07-08 | 2019-01-22 | Gopro, Inc. | Systems and methods for compact convolutional neural networks |
US20190279092A1 (en) * | 2016-11-04 | 2019-09-12 | Google Llc | Convolutional Neural Network Compression |
US10997502B1 (en) * | 2017-04-13 | 2021-05-04 | Cadence Design Systems, Inc. | Complexity optimization of trainable networks |
US20180336468A1 (en) * | 2017-05-16 | 2018-11-22 | Nec Laboratories America, Inc. | Pruning filters for efficient convolutional neural networks for image recognition in surveillance applications |
US10051423B1 (en) * | 2017-06-02 | 2018-08-14 | Apple Inc. | Time of flight estimation using a convolutional neural network |
US20200279156A1 (en) * | 2017-10-09 | 2020-09-03 | Intel Corporation | Feature fusion for multi-modal machine learning analysis |
-
2018
- 2018-12-14 CN CN201880095126.8A patent/CN113168502A/zh active Pending
- 2018-12-14 US US17/058,077 patent/US11928860B2/en active Active
- 2018-12-14 WO PCT/RU2018/000828 patent/WO2020122753A1/en unknown
- 2018-12-14 EP EP18842859.3A patent/EP3895059A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210216747A1 (en) | 2021-07-15 |
EP3895059A1 (en) | 2021-10-20 |
US11928860B2 (en) | 2024-03-12 |
WO2020122753A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11538164B2 (en) | Coupled multi-task fully convolutional networks using multi-scale contextual information and hierarchical hyper-features for semantic image segmentation | |
US11676278B2 (en) | Deep learning for dense semantic segmentation in video with automated interactivity and improved temporal coherence | |
US10885384B2 (en) | Local tone mapping to reduce bit depth of input images to high-level computer vision tasks | |
US10685262B2 (en) | Object recognition based on boosting binary convolutional neural network features | |
US20240112035A1 (en) | 3d object recognition using 3d convolutional neural network with depth based multi-scale filters | |
JP7391883B2 (ja) | 顔認識のための圧縮-拡張深さ方向畳み込みニューラルネットワーク | |
US9860553B2 (en) | Local change detection in video | |
US20200160528A1 (en) | High fidelity interactive segmentation for video data with deep convolutional tessellations and context aware skip connections | |
US11928860B2 (en) | On the fly adaptive convolutional neural network for variable computational budget | |
US20230368493A1 (en) | Method and system of image hashing object detection for image processing | |
US11776263B2 (en) | Bidirectional pairing architecture for object detection in video | |
US11164317B2 (en) | Real-time mask quality predictor | |
JP7459425B2 (ja) | 適応的ランタイム高効率画像分類のための入力画像サイズスイッチ可能ネットワーク | |
WO2023028908A1 (en) | Dynamic temporal normalization for deep learning in video understanding applications | |
US20240005649A1 (en) | Poly-scale kernel-wise convolution for high-performance visual recognition applications |
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 |