CN114444650A - 改进量化的多级对象检测网络的准确度的方法 - Google Patents
改进量化的多级对象检测网络的准确度的方法 Download PDFInfo
- Publication number
- CN114444650A CN114444650A CN202011228919.8A CN202011228919A CN114444650A CN 114444650 A CN114444650 A CN 114444650A CN 202011228919 A CN202011228919 A CN 202011228919A CN 114444650 A CN114444650 A CN 114444650A
- Authority
- CN
- China
- Prior art keywords
- region
- rpn
- processor
- feature map
- quantized
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims description 115
- 230000015654 memory Effects 0.000 claims abstract description 67
- 238000011176 pooling Methods 0.000 claims abstract description 67
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 238000013139 quantization Methods 0.000 claims abstract description 24
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 16
- 238000012549 training Methods 0.000 claims description 16
- 238000012952 Resampling Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 75
- 238000012545 processing Methods 0.000 description 35
- 239000000872 buffer Substances 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 238000003860 storage Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 125000002015 acyclic group Chemical group 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 206010065042 Immune reconstitution inflammatory syndrome Diseases 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- 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/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- 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
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
一种装置,包括存储器和处理器。存储器可以被配置为存储输入图像的图像数据。处理器可以被配置为使用量化的多级对象检测网络来检测输入图像中的一个或多个对象,其中量化的多级对象检测网络的量化包括(i)通过对输入图像的图像数据执行第一数据范围分析来生成量化的图像数据,(ii)通过将区域提议网络(RPN)应用于量化图像数据来生成特征图和提议边界框,(iii)对特征图以及与RPN生成的提议边界框相对应的多个地面真值框执行感兴趣区域池化操作,(iv)通过对来自感兴趣区域池化操作的结果执行第二数据范围分析,生成量化的感兴趣区域池化结果,以及(v)将基于区域的卷积神经网络(RCNN)应用于量化的感兴趣区域池化结果。
Description
技术领域
本发明总体上涉及计算机视觉,并且更具体地涉及用于改进量化的多级对象检测网络的准确度的方法和/或装置。
背景技术
为了使量化后对量化的神经网络模型的准确度下降最小化,量化方法分析了输入数据的数据范围。量化的模型的准确度对数据范围分析的数据(尤其是输入数据)非常敏感。
现有技术的对象检测网络依赖于区域提议算法来假设对象位置。现有的基于区域的对象检测网络是Faster-RCNN。Faster-RCNN由区域提议网络(RPN)和基于区域的卷积神经网络(RCNN)组成。在RPN和RCNN之间,执行Faster-RCNN功能,例如,bbox_transform_inv、非最大抑制(NMS)和ROI池化。RPN使用默认锚(anchor)来获得可以包含对象的提议边界框,同时对图像执行特征提取。然后,提议边界框经过bbox转换、NMS和ROI池化,最后进入RCNN。由于中间步骤对人工智能(AI)芯片不是非常友好,因此行业惯例是将网络分为两部分:RPN和RCNN。由于网络被分为两部分,因此数据范围分析(DRA)需要进行两次。对作为对RPN的输入呈现的图像进行第一数据范围分析。对于多级目标检测,行业惯例是对ROI池化的输出执行第二数据范围分析。由ROI池化所呈现的数据由RPN生成的提议边界框确定,该提议边界框作为对RCNN的输入呈现。尽管来自ROI池化的数据与推断相同,但该数据不太适合量化。
期望实现一种改进量化的多级对象检测网络的准确度的方法。
发明内容
本发明涵盖涉及一种包括存储器和处理器的装置的方面。存储器可以被配置为存储输入图像的图像数据。处理器可以被配置为使用量化的多级对象检测网络来检测输入图像中的一个或多个对象,其中,对量化的多级对象检测网络的量化包括:(i)通过对输入图像的图像数据执行第一数据范围分析来生成量化的图像数据;(ii)通过将区域提议网络(RPN)应用于量化的图像数据来生成特征图和提议边界框;(iii)对特征图以及与RPN生成的提议边界框相对应的多个地面真值框执行感兴趣区域池化操作;(iv)通过对来自感兴趣区域池化操作的结果执行第二数据范围分析来生成量化的感兴趣区域池化结果;以及(v)将基于区域的卷积神经网络(RCNN)应用于量化的感兴趣区域池化结果。
在上面描述的装置方面的一些实施例中,地面真值框是提议边界框在输入图像上的投影。
在上面描述的装置方面的一些实施例中,第二数据范围分析应用由第一数据范围分析应用的技术。
在上面描述的装置方面的一些实施例中,对RPN和RCNN的训练包括:(i)通过将RPN应用于输入图像的图像数据来生成特征图和提议边界框;以及(ii)对RPN生成的特征图和提议边界框执行感兴趣区域池化操作。
在上面描述的装置方面的一些实施例中,RPN和RCNN作为有向非循环图和对应的加权被存储在处理器中。
在上面描述的装置方面的一些实施例中,RPN和RCNN共享一个或多个卷积层。
在上面描述的装置方面的一些实施例中,处理器还被配置为通过对特征图中的向其指派了对象检测提议的对应的部分进行裁剪和重采样来生成针对感兴趣区域的池化结果。在一些实施例中,重采样包括扭曲(warp)操作。在一些实施例中,处理器可以配置双线性插值硬件以调整感兴趣区域的特征的大小,以用作在硬件上对随后子网的输入。
在上面描述的设备方面的一些实施例中,特征图包括三维阵列,该三维阵列的维度对应于所述特征图的深度、高度和宽度。
在上面描述的装置方面的一些实施例中,存储器和处理器是计算机视觉系统或自动驾驶车辆中的至少一个的一部分。
本发明还涵盖涉及一种对象检测的方法的方面,该方法包括:将输入图像的图像数据存储在存储器中;以及使用量化的多级对象检测网络来检测输入图像中的一个或多个对象,其中,通过以下操作来执行对量化的多级对象检测网络的量化:(i)通过对输入图像的图像数据执行第一数据范围分析来生成量化的图像数据;(ii)通过将区域提议网络(RPN)应用于量化的图像数据来生成特征图和提议边界框;(iii)对特征图以及与RPN生成的提议边界框相对应的多个地面真值框执行感兴趣区域池化操作;(iv)通过对来自感兴趣区域池化操作的结果执行第二数据范围分析来生成量化的感兴趣区域池化结果;以及(v)将基于区域的卷积神经网络(RCNN)应用于量化的感兴趣区域池化结果。
在上面描述的方法方面的一些实施例中,地面真值框是提议边界框在所述输入图像上的投影。
在上面描述的方法方面的一些实施例中,方法还包括训练RPN和RCNN,其中,对RPN和RCNN的训练包括:(i)通过将RPN应用于输入图像的图像数据来生成特征图和提议边界框;以及(ii)对RPN生成的特征图和提议边界框执行感兴趣区域池化操作。
在上面描述的方法方面的一些实施例中,RPN和RCNN作为有向非循环图和对应的加权被存储在处理器中。
在上面描述的方法方面的一些实施例中,RPN和RCNN共享一个或多个卷积层。
在上面描述的方法方面的一些实施例中,方法还包括通过使用处理器对特征图中的向其指派了对象检测提议的对应的部分执行裁剪和重采样来生成针对感兴趣区域的池化结果。在一些实施例中,重采样包括应用扭曲操作。
在上面描述的方法方面的一些实施例中,方法还包括使用处理器来配置双线性插值硬件以调整感兴趣区域的特征的大小,以用作在硬件上对随后子网的输入。
在上面描述的方法方面的一些实施例中,特征图包括三维阵列,该三维阵列的维度对应于所述特征图的深度、高度和宽度。
附图说明
根据下面的详细描述以及所附权利要求书和附图,本发明的实施例将变得显而易见,其中:
图1是示出了其中可以实现根据本发明的示例实施例的量化多级对象检测网络的上下文的图。
图2是示出图1的硬件引擎的一般实现方式的图。
图3是示出根据本发明的示例实施例的多级对象检测过程的图。
图4是示出根据本发明的示例实施例的在利用卷积神经网络(CNN)进行对象检测的上下文中实现的示例感兴趣区域(ROI)池化操作的图。
图5是示出根据本发明的示例实施例的在训练或推断阶段期间的过程的图。
图6是示出根据本发明的示例实施例的在量化阶段期间的过程的图。
图7是示出其中可以实现图3的过程的计算机系统的示例的图。
图8是示出相机系统的图,该图示出了其中可以利用根据本发明的示例实施例的量化的多级对象检测网络的计算机视觉系统的示例实现方式。
具体实施方式
本发明的实施例包括一种改进量化的多级目标检测网络的准确度的方法,该方法可以:(i)在量化期间直接使用地面真值来执行第二阶段数据范围分析(DRA);(ii)减少或消除过多非对象提议边界框对第二阶段数据范围分析的结果的影响;(iii)提供独立于第一阶段的第二阶段数据范围分析;(iv)获得数据范围分析数据的最佳分布;(v)获得相对高的准确度;(vi)在包含区域提议网络(RPN)的所有网络中使用;(vii)在级联网络(例如,Faster-RCNN、MASK-RCNN、Cascade-RCNN、MTCNN等)中使用;(viii)构造卷积特征图;(ix)将提议/ROI指派给输入图像中的地面真值边界框;(x)在具有有限的硬件资源和功率预算的嵌入式设备上实现;(xi)利用向量处理器、CPU、DSP或GPU来实现和/或(xii)被实现为一个或多个集成电路。
参考图1,示出了说明其中可以实现根据本发明的示例实施例的结合了感兴趣区域(ROI)池化方法的检测过程的上下文的处理电路80的图。在各种实施例中,处理电路80可以被实现为计算机视觉系统的一部分。在各种实施例中,处理电路80可以被实现为相机、计算机、服务器(例如,云服务器)、智能电话(例如,蜂窝电话)、个人数字助理等的一部分。在一个示例中,处理电路80可以被配置用于包括但不限于自动驾驶和半自动驾驶车辆(例如,汽车、卡车、摩托车、农用机械、无人机、飞机等)、制造和/或安全和监视系统的应用。与通用计算机相反,处理电路80通常包括硬件电路,该硬件电路被优化以在最小的面积中且在最小的功耗的情况下提供高性能的图像处理和计算机视觉流水线。在示例中,可以使用被设计为减少计算复杂度并高效使用资源的硬件模块来实现用于执行用于计算机(或机器)视觉的图像处理、特征检测/提取和/或对象检测/分类的各种操作。
在示例实施例中,处理电路80可以包括块(或电路)82、块(或电路)84、块(或电路)86和/或存储器总线88。电路82可以实现第一处理器。电路84可以实现第二处理器。在示例中,电路84可以实现计算机视觉处理器。在示例中,处理器84可以是智能视觉处理器。电路86可以实现外部存储器(例如,电路82和84外部的存储器)。在示例中,电路86可以被实现为动态随机存取存储器(DRAM)电路。处理电路80可以包括其他组件(未示出)。处理电路80的组件的数量、类型和/或布置可以根据特定实现方式的设计标准而变化。
电路82可以实现处理器电路。在一些实施例中,可以使用通用处理器电路来实现处理器电路82。处理器82可以是可操作的以与电路84和电路86交互来执行各种处理任务。在示例中,处理器82可以被配置为用于电路84的控制器。处理器82可以被配置为执行计算机可读指令。在一个示例中,计算机可读指令可以由电路86存储。在一些实施例中,计算机可读指令可以包括控制器操作。处理器82可以被配置为与电路84通信和/或访问由电路84的组件生成的结果。在示例中,处理器82可以被配置为利用电路84来执行与一个或多个神经网络模型相关联的操作。
在示例中,处理器82可以被配置为利用一个或多个预训练的人工神经网络模型(ANN)对电路84进行编程,该ANN包括区域提议网络(RPN)100、基于区域的卷积神经网络(RCNN)102以及与RPN 100和RCNN 102相关的对应的加权/内核(WGTS)104。在各种实施例中,RPN 100和RCNN102可以被配置(训练和/或量化)用于在边缘设备中的操作。在示例中,处理电路80可以耦合到被配置为生成数据输入的传感器(例如,视频相机等)。处理电路80可以被配置为基于通过利用对应的加权/内核(WGTS)104执行RPN 100和RCNN 102做出的一个或多个推断,响应于来自传感器的数据输入来生成一个或多个输出。由处理器82执行的操作可以根据特定实现方式的设计标准而变化。
在各种实施例中,电路86可以实现动态随机存取存储器(DRAM)电路。电路86通常是可操作的以存储输入数据元素的多维阵列和各种形式的输出数据元素。电路86可以与处理器82和处理器84交换输入数据元素和输出数据元素。
处理器84可以实现计算机视觉处理器电路。在示例中,处理器84可以被配置为实现用于计算机视觉的各种功能。处理器84通常是可操作的以执行由处理器82安排的特定处理任务。在各种实施例中,处理器84的全部或部分可以仅以硬件来实现。处理器84可以直接执行针对具有感兴趣区域池化的对象检测并由指定处理(例如,计算机视觉)任务的软件(例如,有向非循环图等)生成的数据流。在一些实施例中,处理器84可以是由处理电路80实现并且被配置为一起操作的若干计算机视觉处理器的代表示例。
在示例实施例中,处理器84通常包括块(或电路)90、一个或多个块(或电路)92a-92n、块(或电路)90、路径96和块(或电路)98。块90可以实现调度器电路。块92a-92n可以实现硬件资源(或引擎)。块94可以实现共享存储器电路。块98可以实现有向非循环图(DAG)存储器。在示例实施例中,电路92a-92n中的一个或多个可以包括块(或电路)110a-110n。在所示的示例中,实现了电路110a和110b。
在示例实施例中,电路110a可以实现卷积运算。在另一示例中,电路110b可以被配置为提供池化操作。电路110b可以被配置为根据本发明的示例实施例(例如,使用地面真值输入作为量化过程的一部分)来提供ROI池化操作。卷积和池化操作可以用于执行计算机(或机器)视觉任务(例如,作为对象检测过程的一部分等)。在又一示例中,电路92c-92n中的一个或多个可以包括块(或电路)110c-110n(未示出)以提供多维的卷积计算。
在示例中,电路84可以被配置为从处理器82接收有向非循环图(DAG)。从处理器82接收到的DAG可以被存储在DAG存储器98中。电路84可以被配置为使用电路90、92a-92n和94执行用于RPN 100和RCNN 102的DAG。
可以在电路90与相应的电路92a-92n之间交换多个信号(例如,OP_A至OP_N)。每个信号OP_A至OP_N可以传达执行操作信息和/或产生操作信息。可以在相应的电路92a-92n与电路94之间交换多个信号(例如,MEM_A至MEM_N)。信号MEM_A至MEM_N可以携带数据。信号(例如,DRAM)可以在电路86与电路94之间交换。信号DRAM可以在电路86与90之间(例如,在存储器总线96上)传输数据。
电路90可以实现调度器电路。调度器电路90通常是可操作的以在电路92a-92n之间调度任务,以执行由处理器82定义的各种与计算机视觉相关的任务。调度器电路90可以将各个任务分配给电路92a-92n。调度器电路90可以响应于解析由处理器82提供的有向非循环图(DAG)而分配各个任务。调度器电路90可以基于电路92a-92n执行工作的可用性将任务时间复用到电路92a-92n。
每个电路92a-92n可以实现处理资源(或硬件引擎)。硬件引擎92a-92n通常是可操作的以执行特定的处理任务。硬件引擎92a-92n可以被实现为包括专用硬件电路,该专用硬件电路被优化以在执行特定的处理任务时具有高性能和低功耗。在一些配置中,硬件引擎92a-92n可以并行且彼此独立地操作。在其他配置中,硬件引擎92a-92n可以彼此共同操作以执行分配的任务。
硬件引擎92a-92n可以是同质处理资源(例如,所有电路92a-92n可以具有相同的能力)或异质处理资源(例如,两个或更多个电路92a-92n可以具有不同的能力)。硬件引擎92a-92n通常被配置为执行运算符,该运算符可以包括但不限于重采样运算符、扭曲运算符、操纵组件列表的组件运算符(例如,组件可以是向量的共享共同属性的区域并且可以与边界框组合在一起)、矩阵逆运算符、点积运算符、卷积运算符、条件运算符(例如,复用和解复用)、重映射运算符、最小-最大-约简运算符、池化运算符、非最小非最大抑制运算符、聚集运算符、散射运算符、统计运算符、分类器运算符、积分图像运算符、上采样运算符和二的幂的下采样运算符等。
在各种实施例中,硬件引擎92a-92n可以仅被实现为硬件电路。在一些实施例中,硬件引擎92a-92n可以被实现为通用引擎,这些通用引擎可以通过电路定制和/或软件/固件被配置为作为专用机器(或引擎)来操作。在一些实施例中,硬件引擎92a-92n可以被替代地实现为在处理器82和/或一个或多个处理器84(包括但不限于向量处理器、中央处理单元(CPU)、数字信号处理器(DSP)或图形处理单元(GPU))上执行的程序代码的一个或多个实例或线程。在一些实施例中,调度器90可以针对特定过程和/或线程选择硬件引擎92a-92n中的一个或多个。调度器90可以被配置为响应于解析存储在DAG存储器98中的有向非循环图而将硬件引擎92a-92n指派给特定任务。
电路94可以实现共享存储器电路。共享存储器94可以被配置为响应于输入请求而存储数据和/或响应于输出请求(例如,来自处理器82、DRAM86、调度器电路90和/或硬件引擎92a-92n的请求)而呈现数据。在示例中,共享存储器电路94可以针对计算机视觉处理器84实现片上存储器。共享存储器94通常是可操作的以存储硬件引擎92a-92n生成和/或利用的输入数据元素和输出数据元素的多维阵列(或向量)的全部或部分。输入数据元素可以经由存储器总线88从DRAM电路86传输到共享存储器94。输出数据元素可以经由存储器总线88从共享存储器94发送到DRAM电路86。
路径96可以实现处理器84内部的传输路径。传输路径96通常是可操作的以将数据从调度器电路90移动到共享存储器94。传输路径96还可以是可操作的以将数据从共享存储器94移动到调度器电路90。
处理器82被示为与计算机视觉处理器84进行通信。处理器82可以被配置为用于计算机视觉处理器84的控制器。在一些实施例中,处理器82可以被配置为将指令传输到调度器90。例如,处理器82可以经由DAG存储器98将一个或多个有向非循环图提供给调度器90。调度器90可以响应于解析有向非循环图而初始化和/或配置硬件引擎92a-92n。在一些实施例中,处理器82可以从调度器90接收状态信息。例如,调度器90可以将状态信息和/或输出的准备度从硬件引擎92a-92n提供给处理器82,以使得处理器82能够确定要执行的一个或多个下一条指令和/或要做出的决定。在一些实施例中,处理器82可以被配置为与共享存储器94进行通信(例如,直接地或通过调度器90进行通信,该调度器90经由路径96从共享存储器94接收数据)。处理器82可以被配置为从共享存储器94取回信息以做出决定。处理器82响应于来自计算机视觉处理器84的信息而执行的指令可以根据特定实现方式的设计标准而变化。
电路110a可以实现卷积电路。卷积电路110a可以与存储器94进行通信以接收输入数据并呈现输出数据。卷积电路110a通常是可操作的以从共享存储器电路94抓取多个数据向量。每个数据向量可以包括多个数据值。卷积电路110a还可以是可操作的以从共享存储器94抓取内核。该内核通常包括多个内核值。卷积电路110a还可以是可操作的以将块从共享存储器94抓取到内部(或本地)缓冲器。该块通常包括多个输入分片(tile)。每个输入分片可以包括多个维度上的多个输入值。卷积电路110a还可以是可操作的以通过将内部缓冲器中的每个输入分片与内核值中的对应的一个相乘来并行地计算多个中间值,并且基于中间值来计算包括多个输出值的输出分片。在各种实施例中,卷积电路110a可以仅以硬件来实现。可以用于实现电路110a的卷积计算方案的示例可以在美国专利第10,210,768号中找到,该专利以其整体通过引用并入本文。
电路110b可以实现根据本发明的实施例的池化过程。在各种实施例中,可以根据本文提供的实现方式描述来执行根据本发明的实施例的感兴趣区域池化方案。
参考图2,示出了说明图1的通用硬件引擎92x的示例实现方式的图。硬件引擎92x可以代表硬件引擎92a-92n。硬件引擎92x通常包括块(或电路)120、块(或电路)122、块(或电路)124和多个块(或电路)126a-126n。电路120可以被实现为存储器(或缓冲器)对120a和120b。电路122可以实现控制器电路。在示例中,电路122可以包括一个或多个有限状态机(FSM),该FSM被配置为控制由硬件引擎92x实现的各种运算符。电路124可以实现硬件引擎92x的处理流水线。电路126a-126n可以实现先进先出(FIFO)存储器。电路126a-126n可以被配置为用于处理流水线124的输入缓冲器。共享存储器94可以(例如,通过来自电路122的信号)被配置作为多个共享输入缓冲器128a-128n和一个或多个输出缓冲器130。
信号(例如,ADDR/CONFIG)可以由调度器电路90生成并由硬件引擎92x接收。信号ADDR/CONFIG可以携带地址信息和配置数据。信号(例如,BUSY_LEVEL)可以由电路122生成并且被传输到调度器电路90。信号BUSY_LEVEL可以传达硬件引擎92x的忙碌水平。信号(例如,状态/目标)可以由电路122生成并且被传输到调度器电路90。信号STATUS/TARGETS可以提供关于硬件引擎92x的状态信息和针对操作数的目标信息。
在示例实施例中,缓冲器120a和120b可以被配置作为双存储体配置缓冲器。双存储体缓冲器可以是可操作的以将用于当前正在运行的操作的配置信息存储在一个缓冲器(例如,缓冲器120b)中,同时将用于下一操作的配置信息移动到另一缓冲器(例如,缓冲器120a)中。调度器90通常将运算符配置信息(包括在已经在先前的运算符组块中对运算符进行了部分处理的情况下的状态字)加载到双存储体缓冲器中。一旦电路122完成了正在运行的操作的配置信息并且已经接收到用于下一操作的配置信息,就可以交换缓冲器120a和120b。
电路122通常实现硬件引擎92x的控制电路。电路122确定何时从当前正在运行的运算符切换到新的运算符。控制器122通常是可操作的以控制信息向硬件引擎122x的进出的移动以及在硬件引擎122x内部的移动。通常,硬件引擎92x的操作是流水线化的。在运算符切换期间,流水线124的前端可能已经正在处理针对新运算符的数据,而流水线124的尾端仍在完成与旧运算符相关联的处理。
电路124可以实现流水线电路。流水线电路124通常是可操作的以使用被设计在硬件引擎92x中的功能来处理从共享存储器94接收到的操作数。电路124可以将由执行的功能产生的数据传送到一个或多个共享缓冲器130。
缓冲器126a-126n可以实现FIFO缓冲器。FIFO缓冲器126a-126n可以是可操作的以存储从共享缓冲器128a-128n接收到的操作数以在流水线124中进行处理。通常,FIFO缓冲器的数量和实现的共享缓冲器的数量可以变化以满足特定应用的设计标准。
参考图3,示出了说明根据本发明的示例实施例的多级对象检测过程的图。在示例实施例中,过程(或方法)200通常根据本发明的示例实施例实现多级对象检测过程。在示例实施例中,过程200可以包括步骤(或状态)202、步骤(或状态)204、步骤(或状态)206、步骤(或状态)208、步骤(或状态)210、步骤(或状态)212、步骤(或状态)214、步骤(或状态)216、步骤(或状态)218、步骤(或状态)220和步骤(或状态)222。在步骤202中,过程200可以使用区域提议网络对一个或多个输入图像(IMAGE)的图像数据执行特征提取过程。在过程200的训练阶段和推断阶段应用期间,特征提取过程可以直接应用于(多个)输入图像的图像数据。在过程200的量化阶段应用期间,可以对(多个)输入图像的量化的图像数据执行特征提取过程。在各种实施例中,可以通过将第一数据范围分析(DRA)应用于(多个)输入图像的图像数据来获得(多个)输入图像的量化的图像数据。
在步骤204中,过程200可以基于来自步骤202的结果来生成特征图。在步骤206中,过程200可以基于来自步骤202的结果来预测边界框的数量。在步骤208中,过程200可以基于来自步骤202的结果针对多个边界框的每一个预测对应的类别概率。在步骤210中,可以通过使用在步骤206中生成的边界框的数量、在步骤208中生成的类别概率和多个默认锚212作为输入,应用边界框转换函数(例如,bbox_transform_inv)来生成多个提议边界框214。
在步骤216中,可以执行感兴趣区域(ROI)池化操作。通常使用在步骤204中生成的特征图作为一个输入以及在步骤218中选择的第二输入来执行步骤216的ROI池化操作。在步骤218中,通常基于是在训练阶段、量化阶段还是在推断(操作)阶段执行过程200来选择对ROI池化步骤216的第二输入。在训练和推断阶段,步骤218通常选择提议bbox 214作为对ROI池化步骤216的第二输入,并且将ROI池化步骤216的输出直接呈现为对步骤220的输入。在量化阶段中,步骤218通常选择地面真值bbox 222作为对ROI池化步骤216的第二输入,并且对ROI池化步骤216的输出执行第二数据范围分析(DRA),然后将其呈现为对步骤220的输入。
在步骤220中,过程200可以将基于区域的卷积神经网络(RCNN)模型应用于ROI池化步骤216的输出,以标识输入图像中是否存在一个或多个预定对象类别,并且如果存在一个或多个预定对象类别,则标识存在多少实例。在一些实施例中,步骤220可以提供(生成)两个输出,包括边界框的位置和一个或多个类别中的每一个的概率。
因为提议bbox 214来自RPN,所以提议bbox 214通常相对于地面真值bbox 222具有偏移。然而,该偏移通常不是问题,因为在步骤220期间应用的RCNN模型通常还会对位置进行微调。在示例中,地面真值框222可以取自诸如VOC、COCO等之类的一些数据集中的注释。注释通常由个人或组织标记。在示例流水线中,可以读取来自对应的注释的地面真值。
在量化阶段期间,ROI池化操作216通过使用在步骤218中选择的多个地面真值框222,应用第二数据范围分析(DRA)来生成多个量化提议边界框。使用地面真值bbox 222通常改进来自ROI池化步骤216的量化数据分布的准确度。第一数据范围分析和第二数据范围分析通常利用相同的算法来实现。不同之处在于,第一数据范围分析处理输入图像数据,并且第二数据范围分析处理ROI池化步骤216的输出。通常,常规的或专有数据范围分析算法可以用于量化阶段中的第一数据范围分析和第二数据范围分析。
在各种实施例中,过程200可以在正常人工神经网络开发流(训练->量化->部署(实时推断))的步骤或级或阶段中的每一个的期间使用。在训练期间,过程200的ROI池化通常使用传统方法,采用区域提议网络(RPN)生成的特征图和提议bbox。当训练完成时,可以执行量化过程。通常根据输入数据范围来执行量化以确定最佳系数,使得可以使用定点值来更准确地替换浮点值。在量化期间,过程200的ROI池化切换到一种新方法,该方法使用区域提议网络(RPN)生成的特征图和地面真值边界框,并将数据范围分析应用于ROI池化结果,然后再将其呈现给基于区域的卷积神经网络(RCNN)模型。
在量化阶段中,通常为数据范围分析提供尽可能多的测试场景图片。训练集的图片在这里也可以用于针对定点应用的量化。在根据本发明的实施例的量化期间,通过采用区域提议网络(RPN)生成的特征图和地面真值边界框而不是区域提议网络(RPN)生成的提议bbox来执行过程200的ROI池化。在示例中,地面真值框可以取自诸如VOC、COCO等之类的一些数据集中的注释。注释通常由个人或组织标记。在示例流水线中,可以读取来自对应的注释的地面真值。
当量化完成时,网络准备好被部署(例如,推断操作)。在推断操作期间,过程200的ROI池化通常返回传统方法,从而使用区域提议网络(RPN)生成的特征图和提议bbox。在各种实施例中,RPN和RCNN可以共享一个或多个卷积层。
参考图4,示出了说明根据本发明的示例实施例的在利用卷积神经网络(CNN)进行对象检测的上下文中实现的示例感兴趣区域(ROI)池化操作的图。在各种实施例中,通常将整个输入图像转发通过若干卷积层250以生成卷积特征图252。在示例中,特征图通常具有大小C×H×W,其中C、H和W表示特征图的深度(例如,通道的数量)、高度和宽度。
卷积特征图252可以用作对区域提议生成器的输入。在各种实施例中,区域提议生成器可以是外部提议方法或内部子网。可以使用常规和/或专有技术来实现区域提议生成器。区域提议生成器通常被配置为输出在输入图像(例如,在原始图像空间254上示出)内的对象(例如,感兴趣区域)的提议的集合。提议/ROI可以具有不一致的大小。在各种实施例中,从区域提议生成器中接收到的提议/ROI通常基于预定标准被投影到输入图像254上以获得感兴趣的地面真值区域。根据本发明的实施例对每个地面真值提议/ROI执行的ROI池化操作,以针对每个区域提议产生固定大小的特征图256a-256n。通常将固定大小的特征图256a-256n中的每一个馈送到随后的按提议的(per-ROI)子网(例如,基于区域的卷积神经网络或R-CNN)或针对对象分类(例如,汽车、行人或骑自行车的人)和边界框回归/细化的过程。基于区域的卷积网络方法的示例可以在R.Girschick的“Fast R-CNN(快速R-CNN)”(IEEE International Conference on Computer Vision(ICCV),2015)中找到,该文献以其整体通过引用并入本文。在示例中,感兴趣区域池化的结果可以用于对输入图像中的对象进行分类。
参考图5,示出了说明根据本发明的示例实施例的在训练或推断阶段期间的过程的过程400的流程图。根据本发明的示例实施例,过程(或方法)400通常实现感兴趣区域(ROI)池化方案。在示例实施例中,过程400可以包括步骤(或状态)402、步骤(或状态)404、步骤(或状态)406、步骤(或状态)408、步骤(或状态)410和步骤(或状态)412。在示例实施例中,步骤402-412可以利用根据本发明的示例实施例的ROI池化技术来实现对象检测方案(例如,在对象检测过程中的量化期间使用地面真值输入作为第二阶段数据范围分析的一部分)。
过程400通常开始于步骤402并且移动至步骤404。在步骤404中,过程400可以使用整个输入图像来生成卷积特征图。在示例中,可以将整个输入图像转发通过若干卷积层以生成大小为C×H×W的卷积特征图,其中C、H和W表示特征图的深度(例如,通道的数量等)、高度和宽度。然后,过程400移动至步骤406。
在步骤406中,过程400可以基于卷积特征图来生成输入图像内的对象的提议。在示例实施例中,可以作为外部提议方法或内部子网的区域提议生成器可以用于生成输入图像内的对象的提议/ROI的集合。通常,提议/ROI可以具有不一致的大小。然后,过程400移动至步骤408。
在步骤408中,过程400使用默认锚向对象提议/ROI中的每一个指派边界框(BBOX)。在各种实施例中,可以基于预定标准来进行指派。然后,过程400移动至步骤410。在步骤410中,过程400可以使用特征图和在步骤408中生成的边界框提议针对每个对象提议生成池化结果。在示例实施例中,过程400可以通过对对应的边界框进行裁剪和重采样(调整大小)来生成池化结果。在一些实施例中,可以通过扭曲工具来执行重采样。在示例中,双线性插值可以用作扭曲工具来生成目标大小的per-ROI特征图。然而,可以使用其他扭曲工具(例如,最近邻插值、双三次插值等)来生成目标大小的per-ROI特征图。
在示例中,可以通过软件将映射的区域编程为双线性插值硬件,该硬件调整区域的特征的大小,并且然后结果可以作为输入被传递到硬件上的随后子网。在ROI投影到地面真值空间中小于目标大小(例如,7×7)的区域的情况下,可以使用原始图像数据,并且将双线性插值应用于该区域的上采样特征。
然后,过程400移动至步骤412。在步骤412中,池化结果可以用于随后处理(例如,作为检测到的对象)。在示例中,可以将每个固定大小的特征图馈送到随后的按提议的子网(例如,RCNN)或针对对象分类(例如,汽车、行人、骑自行车的人等)和边界框回归/细化的过程。
参考图6,示出了说明根据本发明的示例实施例的在量化阶段期间的过程的过程500的流程图。根据本发明的示例实施例,过程(或方法)500通常实现感兴趣区域(ROI)池化方案的量化阶段。在示例实施例中,过程500可以包括步骤(或状态)502、步骤(或状态)504、步骤(或状态)506、步骤(或状态)508、步骤(或状态)510、步骤(或状态)512、步骤(或状态)514和步骤(或状态)516。在示例实施例中,步骤502-516可以利用根据本发明的示例实施例的ROI池化技术来实现对象检测方案(例如,在对象检测过程中的量化期间使用地面真值输入作为第二阶段数据范围分析的一部分)。
过程500通常开始于步骤502并且移动至步骤504。在步骤504中,过程500可以执行数据范围分析以对输入图像数据进行量化。然后,过程500移动至步骤506。在步骤506中,过程500可以使用整个输入图像来生成卷积特征图。在示例中,可以将整个图像转发通过若干卷积层以生成大小为C×H×W的卷积特征图,其中C、H和W表示特征图的深度(例如,通道的数量等)、高度和宽度。然后,过程500移动至步骤508。
在步骤508中,过程500可以基于卷积特征图来生成输入图像内的对象的提议。在示例实施例中,可以作为外部提议方法或内部子网的区域提议生成器可以用于生成输入图像内的对象的提议/ROI的集合。通常,提议/ROI可以具有不一致的大小。然后,过程500移动至步骤510。
在步骤510中,过程500将提议/ROI中的每一个指派给对应的对象地面真值边界框。在各种实施例中,可以基于预定标准来进行指派。在示例中,地面真值边界框可以取自诸如VOC、COCO等之类的数据集中的注释。注释通常由个人或组织标记。在示例流水线中,可以读取来自对应的注释的地面真值。然后,过程500移动至步骤512。
在步骤512中,过程500可以使用特征图和地面真值边界框而不是根据区域提议网络生成的边界框提议来针对每个对象提议生成池化结果。在示例实施例中,过程500可以通过对对应的地面真值边界框进行裁剪和重采样(调整大小)来生成池化结果。在一些实施例中,可以通过扭曲工具来执行重采样。在示例中,双线性插值可以用作扭曲工具来生成目标大小的per-ROI特征图。然而,可以使用其他扭曲工具(例如,最近邻插值、双三次插值等)来生成目标大小的per-ROI特征图。
在示例中,可以通过软件将映射的区域编程为双线性插值硬件,该硬件调整区域的特征的大小,并且然后结果可以作为输入被传递到硬件上的随后子网。在ROI投影到地面真值空间中小于目标大小(例如,7×7)的区域的情况下,可以使用原始图像数据,并且将双线性插值应用于该区域的上采样特征。
然后,过程500移动至步骤514,在步骤514中,对池化结果执行第二数据范围分析。然后,过程500移动至步骤516。在步骤516中,池化结果可以用于随后处理(例如,作为检测到的对象)。在示例中,可以将每个固定大小的特征图馈送到随后的按提议的子网(例如,RCNN)或针对对象分类(例如,汽车、行人、骑自行车的人等)和边界框回归/细化的过程。
参考图7,示出了说明其中可以实现图3的过程200的训练和量化阶段的上下文的图。在示例中,系统600可以(例如,通过软件)被配置为对先前生成的神经网络执行过程200。在示例中,系统600可以包括计算机602和计算机可读存储介质604。在示例中,计算机602可以被实现为通用计算机系统。在示例中,计算机可读存储介质604可以包括非易失性介质,包括但不限于磁存储介质(例如,硬盘驱动器或HDD)、光存储介质(例如,压缩盘(CD)、数字视频盘(DVD)、蓝光盘(BD))、固态驱动器(SSD)、闪速存储器和/或与网络相关联的存储系统(NAS)。在示例中,计算机602和计算机可读存储介质604可以耦合在一起以交换程序和数据。在示例中,实现过程200的(多个)程序可以存储在计算机可读存储介质604上或基于云的资源606中。在示例中,计算机602可以进一步被配置为利用云资源606来执行过程200。在示例中,计算机602可以被配置为经由应用程序接口(API)来执行过程200。
在示例中,计算机602可以包括但不限于处理器610、存储器612、显示器614和用户接口616。在各种实施例中,处理器610可以包括但不限于中央处理单元(CPU)、图形处理单元(GPU)和视频处理单元(VPU)。在各种实施例中,存储器612可以包括但不限于随机存取存储器(例如,SRAM、DRAM、FLASH等)、只读存储器(ROM)和高速缓冲存储器。显示器614和用户接口616通常允许用户在训练和量化阶段期间启动并监视计算机602执行过程200。
参考图8,示出了相机系统900的图,该图说明了其中可以实现和/或部署根据本发明的示例实施例的量化的多级对象检测过程的计算机视觉系统的示例实现方式。在一个示例中,相机系统900的电子设备可以被实现为一个或多个集成电路。在示例中,相机系统900可以围绕处理器/相机芯片(或电路)902构建。在示例中,处理器/相机芯片902可以被实现为专用集成电路(ASIC)或片上系统(SOC)。处理器/相机电路902通常结合硬件和/或软件/固件,该硬件和/或软件/固件可以被配置为实现上面结合图1至图5描述的电路和过程。
在示例中,处理器/相机电路902可以连接到透镜和传感器组装件904。在一些实施例中,透镜和传感器组装件904可以是处理器/相机电路902的组件(例如,SoC组件)。在一些实施例中,透镜和传感器组装件904可以是与处理器/相机电路902分离的组件(例如,透镜和传感器组装件可以是与处理器/相机电路902兼容的可互换组件)。在一些实施例中,透镜和传感器组装件904可以是(例如,经由视频电缆、高清晰度媒体接口(HDMI)电缆、通用串行总线(USB)电缆、以太网电缆或无线链路)连接到处理器/相机电路902的单独相机的一部分。
透镜和传感器组装件904可以包括块(或电路)906和/或块(或电路)908。电路906可以与透镜组装件相关联。电路908可以被实现为一个或多个图像传感器。在一个示例中,电路908可以被实现为RGB传感器和/或IR传感器。在另一示例中,电路908可以被实现为RGB-IR传感器。透镜和传感器组装件904可以包括其他组件(未示出)。透镜和传感器组装件904的组件的数量、类型和/或功能可以根据特定实现方式的设计标准而变化。
透镜组装件906可以捕获和/或聚焦从相机系统900周围的环境接收到的光输入。透镜组装件906可以捕获和/或聚焦用于(多个)图像传感器908的光。透镜组装件906可以实现一个或多个光学透镜。透镜组装件906可以提供缩放特征和/或聚焦特征。可以利用附加电路(例如,电动机)来实现透镜组装件906,以调整透镜组装件906的方向、缩放和/或光圈。可以定向、倾斜、平移、缩放和/或旋转透镜组装件906以提供相机系统900周围的环境的目标视图。
图像传感器908可以从透镜组装件906接收光。图像传感器908可以被配置为将接收到的聚焦光转换为数字数据(例如,位流)。在一些实施例中,图像传感器908可以执行模数转换。例如,图像传感器908可以对从透镜组装件906接收到的聚焦光执行光电转换。图像传感器908可以将转换后的图像数据呈现为颜色滤波器阵列(CFA)格式的位流。处理器/相机电路902可以将位流转换为视频数据、视频文件和/或视频帧(例如,人类可读的内容)。
处理器/相机电路902还可以连接到:(i)包括音频编解码器910、麦克风912和扬声器914的可选的音频输入/输出电路;(ii)存储器916,其可以包括动态随机存取存储器(DRAM);(iii)非易失性存储器(例如,NAND闪速存储器)918、可移除介质(例如,SD、SDXC等)920、一个或多个串行(例如,RS-485、RS-232等)设备922、一个或多个通用串行总线(USB)设备(例如,USB主机)924和无线通信设备926。
在各种实施例中,处理器/相机电路902可以包括多个块(或电路)930a-930n、多个块(或电路)932a-932n、块(或电路)934、块(或电路)936、块(或电路)938、块(或电路)940、块(或电路)942、块(或电路)944、块(或电路)946、块(或电路)948、块(或电路)950、块(或电路)952和/或块(或电路)954。多个电路930a-930n可以是处理器电路。在各种实施例中,电路930a-930n可以包括一个或多个嵌入式处理器(例如,ARM等)。电路932a-932n可以实现多个与计算机视觉相关的处理器电路。在示例中,电路932a-932n中的一个或多个可以实现各种与计算机视觉相关的应用。电路934可以是数字信号处理(DSP)模块。在一些实施例中,电路934可以实现分离的图像DSP和视频DSP模块。
电路936可以是存储接口。电路936可以使处理器/相机电路902与DRAM 916、非易失性存储器918和可移除介质920接合。DRAM 916、非易失性存储器918和/或可移除介质920中的一个或多个可以存储计算机可读指令。可以由处理器930a-930n读取并执行计算机可读指令。响应于计算机可读指令,处理器930a-930n可以是可操作的以用作用于处理器932a-932n的控制器。例如,处理器932a-932n的资源可以被配置为高效地执行硬件中的各种特定操作,并且处理器930a-930n可以被配置为做出关于如何处理去往/来自处理器932的各种资源的输入/输出的决定。
电路938可以实现本地存储器系统。在一些实施例中,本地存储器系统938可以包括但不限于高速缓冲存储器(例如,L2CACHE)、直接存储器访问(DMA)引擎、图形直接存储器访问(GDMA)引擎和快速随机访问存储器。在示例中,DAG存储器98可以在本地存储器系统938中实现。电路940可以实现传感器输入(或接口)。电路942可以实现一个或多个控制接口,包括但不限于设备间通信(IDC)接口、集成电路间(I2C)接口、串行外围设备接口(SPI)和脉冲宽度调制(PWM)接口。电路944可以实现音频接口(例如,I2S接口等)。电路946可以实现时钟电路,包括但不限于实时时钟(RTC)、看门狗定时器(WDT)和/或一个或多个可编程定时器。电路948可以实现输入/输出(I/O)接口。电路950可以是视频输出模块。电路952可以是通信模块。电路954可以是安全模块。电路930至954可以使用一条或多条总线、接口、迹线、协议等彼此连接。
电路918可以被实现为非易失性存储器(例如,NAND闪速存储器、NOR闪速存储器等)。电路920可以包括一个或多个可移除介质卡(例如,安全数字介质(SD)、安全数字扩展容量介质(SDXC)等)。电路922可包括一个或多个串行接口(例如,RS-485、RS-232等)。电路924可以是用于连接到通用串行总线(USB)主机或用作USB主机的接口。电路926可以是用于与用户设备(例如,智能电话、计算机、平板计算设备、云资源等)进行通信的无线接口。在各种实施例中,电路904-926可以被实现为处理器/相机电路902外部的组件。在一些实施例中,电路904-926可以是处理器/相机电路902的板上组件。
控制接口942可以被配置为生成用于控制透镜和传感器组装件904的信号(例如,IDC/I2C、STEPPER、IRIS、AF/ZOOM/TILT/PAN等)。信号IRIS可以被配置为调整透镜组装件906的光圈。接口942可以使得处理器/相机电路902控制透镜和传感器组装件904。
存储接口936可以被配置为管理一种或多种类型的存储和/或数据访问。在一个示例中,存储接口936可以实现直接存储器访问(DMA)引擎和/或图形直接存储器访问(GDMA)。在另一示例中,存储接口936可以实现安全数字(SD)卡接口(例如,以连接到可移除介质920)。在各种实施例中,可以将编程代码(例如,用于控制处理器/相机电路902的各种处理器和编码器的可执行指令)存储在存储器(例如,DRAM 916、NAND 918等)中的一个或多个中。编程代码当由处理器930中的一个或多个执行时,通常使得处理器/相机电路902中的一个或多个组件配置视频同步操作并开始视频帧处理操作。可以将所得到的压缩视频信号呈现给存储接口936、视频输出950和/或通信接口952。存储接口936可以在外部介质(例如,DRAM916、NAND 918、可移除介质920等)与本地(内部)存储器系统938之间传输程序代码和/或数据。
传感器输入940可以被配置为向图像传感器908发送数据/从图像传感器908接收数据。在一个示例中,传感器输入940可以包括图像传感器输入接口。传感器输入940可以被配置为将捕获的图像(例如,图片元素、像素、数据)从图像传感器908发送到DSP模块934、处理器930中的一个或多个和/或处理器932中的一个或多个。由传感器输入940接收到的数据可以由DSP 934使用来确定来自图像传感器908的亮度(Y)和色度(U和V)值。传感器输入940可以提供到透镜和传感器组装件904的接口。传感器输入接口940可以使得处理器/相机电路902能够捕获来自透镜和传感器组装件904的图像数据。
音频接口944可以被配置为发送/接收音频数据。在一个示例中,音频接口944可以实现音频IC间声音(I2S)接口。音频接口944可以被配置为以由音频编解码器910实现的格式发送/接收数据。
DSP模块934可以被配置为处理数字信号。DSP模块934可以包括图像数字信号处理器(IDSP)、视频数字信号处理器DSP(VDSP)和/或音频数字信号处理器(ADSP)。DSP模块934可以被配置为从传感器输入940接收信息(例如,图像传感器908捕获的像素数据值)。DSP模块934可以被配置为根据从传感器输入940接收到的信息来确定像素值(例如,RGB、YUV、亮度、色度等)。DSP模块934可以进一步被配置为支持或提供传感器RGB到YUV原始图像流水线,以改进图像质量、进行不良像素检测和校正、去马赛克、白平衡、色彩和色调校正、伽玛校正、色相调整、饱和度、亮度和对比度调整、色度和亮度噪声过滤。
I/O接口948可以被配置为发送/接收数据。由I/O接口948发送/接收的数据可以是杂项信息和/或控制数据。在一个示例中,I/O接口948可以实现通用输入/输出(GPIO)接口、模数转换器(ADC)模块、数模转换器(DAC)模块、红外(IR)远程接口、脉冲宽度调制(PWM)模块、通用异步接收器发送器(UART)、红外(IR)远程接口和/或一个或多个同步数据通信接口(IDC SPI/SSI)中的一个或多个。
视频输出模块950可以被配置为发送视频数据。例如,处理器/相机电路902可以连接到外部设备(例如,电视、监视器、膝上型计算机、平板计算设备等)。视频输出模块950可以实现高清晰度多媒体接口(HDMI)、PAL/NTSC接口、LCD/电视/并行接口和/或DisplayPort接口。
通信模块952可以被配置为发送/接收数据。通信模块952发送/接收的数据可以根据特定协议(例如,USB、Wi-Fi、UART等)进行格式化。在一个示例中,通信模块952可以实现安全数字输入输出(SDIO)接口。通信模块952可以包括对通过一种或多种无线协议(例如,Z-Wave、LoRa、电气与电子工程师协会(IEEE)802.11a/b/g/n/ac(WiFi)、IEEE 802.15、IEEE 802.15.1、IEEE 802.15.2、IEEE802.15.3、IEEE 802.15.4、IEEE 802.15.5和/或IEEE 802.20、GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、5G、LTE_M、NB-IoT、SMS等)进行的无线通信的支持。通信模块952还可以包括对使用通用串行总线协议(例如,USB 1.0、2.0、3.0等)中的一种或多种进行的通信的支持。处理器/相机电路902还可以被配置为经由USB连接供电。然而,可以相应地实现其他通信和/或电源接口,以满足特定应用的设计标准。
安全模块954可以包括一套高级安全功能,以实现高级的设备上物理安全,包括OTP、安全启动、以及I/O可视化和DRAM加扰。在示例中,安全模块958可以包括真随机数生成器。在示例中,安全模块954可以用于处理器/相机电路902上的DRAM通信加密。
处理器/相机电路902可以被配置(例如,编程)为控制一个或多个透镜组装件906以及一个或多个图像传感器908。处理器/相机电路902可以从(多个)图像传感器908接收原始图像数据。处理器/相机电路902可以同时(并行地)将原始图像数据编码为多个编码的视频流。多个视频流可以具有各种分辨率(例如,VGA、WVGA、QVGA、SD、HD、超HD、4K等)。处理器/相机电路902可以在音频接口944处接收编码的和/或未编码的(例如,原始)音频数据。处理器/相机电路902还可以从通信接口952(例如,USB和/或SDIO)接收编码的音频数据。处理器/相机电路902可以(例如,使用USB主机接口)将编码的视频数据提供给无线接口926。无线接口926可以包括对通过一种或多种无线和/或蜂窝协议(例如,Z-Wave、LoRa、Wi-Fi IEEE 802.11a/b/g/n/ac、IEEE802.15、IEEE 802.15.1、IEEE 802.15.2、IEEE 802.15.3、IEEE 802.15.4、IEEE802.15.5、IEEE802.20、GSM、CDMA、GPRS、UMTS、CDMA2000、3GPP LTE、4G/HSPA/WiMAX、5G、SMS、LTE_M、NB-IoT等)进行的无线通信的支持。处理器/相机电路902还可以包括对使用通用串行总线协议(例如,USB 1.0、2.0、3.0等)中的一种或多种进行的通信的支持。
如将对于(多个)相关领域的技术人员显而易见的,在图1至图8的图中示出的功能和结构可以使用常规通用处理器、数字计算机、微处理器、微控制器、分布式计算机资源和/或类似的计算机器中的一个或多个来设计、建模、仿真和/或模拟或者根据本说明书的教导进行编程。还如将对于(多个)相关领域的技术人员显而易见的,熟练的程序员可以基于本公开的教导容易地准备适当的软件、固件、编码、例程、指令、操作码、微码和/或程序模块。该软件通常体现在一种或多种介质(例如,非暂时性存储介质)中,并且可以由处理器中的一个或多个顺序或并行执行。
本发明的实施例还可以在ASIC(专用集成电路)、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、门海、ASSP(专用标准产品)和集成电路中的一个或多个中实现。该电路可以基于一种或多种硬件描述语言来实现。可以结合闪速存储器、非易失性存储器、随机存取存储器、只读存储器、磁盘、软盘、光盘(例如,DVD和DVDRAM)、磁光盘和/或分布式存储系统结合来利用本发明的实施例。
当在本文中与“是”和动词结合使用时,术语“可以”和“通常”意在传达这样的意图:该描述是示例性的,并且被认为足够宽泛以涵盖本公开中提出的具体示例以及可以基于本公开得出的替代示例两者。如本文所使用的术语“可以”和“通常”不应被解释为必然暗示省略对应的元件的可取性或可能性。
尽管已经参考本发明的实施例具体地示出并描述了本发明,但是本领域技术人员将理解,在不脱离本发明的范围的情况下,可以对形式和细节进行各种改变。
Claims (20)
1.一种装置,包括:
存储器,其被配置为存储输入图像的图像数据;以及
处理器,其被配置为使用量化的多级对象检测网络来检测所述输入图像中的一个或多个对象,其中,对所述量化的多级对象检测网络的量化包括:(i)通过对所述输入图像的所述图像数据执行第一数据范围分析来生成量化的图像数据;(ii)通过将区域提议网络(RPN)应用于所述量化的图像数据来生成特征图和提议边界框;(iii)对所述特征图以及与所述RPN生成的所述提议边界框相对应的多个地面真值框执行感兴趣区域池化操作;(iv)通过对来自所述感兴趣区域池化操作的结果执行第二数据范围分析来生成量化的感兴趣区域池化结果;以及(v)将基于区域的卷积神经网络(RCNN)应用于所述量化的感兴趣区域池化结果。
2.根据权利要求1所述的装置,其中,所述地面真值框是所述提议边界框在所述输入图像上的投影。
3.根据权利要求1所述的装置,其中,所述第二数据范围分析应用由所述第一数据范围分析应用的技术。
4.根据权利要求1所述的装置,其中,对所述RPN和所述RCNN的训练包括:(i)通过将所述RPN应用于所述输入图像的所述图像数据来生成特征图和提议边界框;以及(ii)对所述RPN生成的所述特征图和所述提议边界框执行所述感兴趣区域池化操作。
5.根据权利要求1所述的装置,其中,所述RPN和所述RCNN作为有向非循环图和对应的加权被存储在所述处理器中。
6.根据权利要求1所述的装置,其中,所述RPN和所述RCNN共享一个或多个卷积层。
7.根据权利要求1所述的装置,其中,所述处理器还被配置为通过对特征图中的向其指派了对象检测提议的对应的部分进行裁剪和重采样来生成针对感兴趣区域的池化结果。
8.根据权利要求7所述的装置,其中,所述重采样包括扭曲操作。
9.根据权利要求1所述的装置,其中,所述处理器配置双线性插值硬件以调整感兴趣区域的特征的大小,以用作在硬件上对随后子网的输入。
10.根据权利要求1所述的装置,其中,所述特征图包括三维阵列,所述三维阵列的维度对应于所述特征图的深度、高度和宽度。
11.根据权利要求1所述的装置,其中,所述存储器和所述处理器是计算机视觉系统或自动驾驶车辆中的至少一个的一部分。
12.一种对象检测方法,包括:
将输入图像的图像数据存储在存储器中;以及
使用量化的多级对象检测网络来检测所述输入图像中的一个或多个对象,其中,通过以下操作来执行对所述量化的多级对象检测网络的量化:(i)通过对所述输入图像的所述图像数据执行第一数据范围分析来生成量化的图像数据;(ii)通过将区域提议网络(RPN)应用于所述量化的图像数据来生成特征图和提议边界框;(iii)对所述特征图以及与所述RPN生成的所述提议边界框相对应的多个地面真值框执行感兴趣区域池化操作;(iv)通过对来自所述感兴趣区域池化操作的结果执行第二数据范围分析来生成量化的感兴趣区域池化结果;以及(v)将基于区域的卷积神经网络(RCNN)应用于所述量化的感兴趣区域池化结果。
13.根据权利要求12所述的方法,其中,所述地面真值框是所述提议边界框在所述输入图像上的投影。
14.根据权利要求12所述的方法,还包括训练所述RPN和所述RCNN,其中,对所述RPN和所述RCNN的训练包括:(i)通过将所述RPN应用于所述输入图像的所述图像数据来生成特征图和提议边界框;以及(ii)对所述RPN生成的所述特征图和所述提议边界框执行所述感兴趣区域池化操作。
15.根据权利要求12所述的方法,其中,所述RPN和所述RCNN作为有向非循环图和对应的加权被存储在所述处理器中。
16.根据权利要求12所述的方法,其中,所述RPN和所述RCNN共享一个或多个卷积层。
17.根据权利要求12所述的方法,还包括:
通过使用所述处理器对特征图中的向其指派了对象检测提议的对应的部分执行裁剪和重采样来生成针对感兴趣区域的池化结果。
18.根据权利要求17所述的方法,其中,重采样包括应用扭曲操作。
19.根据权利要求12所述的方法,还包括使用所述处理器来配置双线性插值硬件以调整感兴趣区域的特征的大小,以用作在硬件上对随后子网的输入。
20.根据权利要求12所述的方法,其中,所述特征图包括三维阵列,所述三维阵列的维度对应于所述特征图的深度、高度和宽度。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011228919.8A CN114444650A (zh) | 2020-11-06 | 2020-11-06 | 改进量化的多级对象检测网络的准确度的方法 |
US17/096,110 US11694422B2 (en) | 2020-11-06 | 2020-11-12 | Method to improve accuracy of quantized multi-stage object detection network |
US18/115,188 US12073599B2 (en) | 2020-11-06 | 2023-02-28 | Method to improve accuracy of quantized multi-stage object detection network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011228919.8A CN114444650A (zh) | 2020-11-06 | 2020-11-06 | 改进量化的多级对象检测网络的准确度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114444650A true CN114444650A (zh) | 2022-05-06 |
Family
ID=81361765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011228919.8A Pending CN114444650A (zh) | 2020-11-06 | 2020-11-06 | 改进量化的多级对象检测网络的准确度的方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11694422B2 (zh) |
CN (1) | CN114444650A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938332A (zh) * | 2022-06-29 | 2022-08-23 | 上海喜马拉雅科技有限公司 | 模型参数配置方法、装置、电子设备及可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114444650A (zh) * | 2020-11-06 | 2022-05-06 | 安霸国际有限合伙企业 | 改进量化的多级对象检测网络的准确度的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190147245A1 (en) * | 2017-11-14 | 2019-05-16 | Nuro, Inc. | Three-dimensional object detection for autonomous robotic systems using image proposals |
US10713794B1 (en) * | 2017-03-16 | 2020-07-14 | Facebook, Inc. | Method and system for using machine-learning for object instance segmentation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6943338B2 (ja) * | 2018-05-18 | 2021-09-29 | 日本電気株式会社 | 画像処理装置、システム、方法及びプログラム |
DE102020123155A1 (de) * | 2019-09-24 | 2021-03-25 | Samsung Electronics Co., Ltd. | Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks |
CN114444650A (zh) * | 2020-11-06 | 2022-05-06 | 安霸国际有限合伙企业 | 改进量化的多级对象检测网络的准确度的方法 |
-
2020
- 2020-11-06 CN CN202011228919.8A patent/CN114444650A/zh active Pending
- 2020-11-12 US US17/096,110 patent/US11694422B2/en active Active
-
2023
- 2023-02-28 US US18/115,188 patent/US12073599B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713794B1 (en) * | 2017-03-16 | 2020-07-14 | Facebook, Inc. | Method and system for using machine-learning for object instance segmentation |
US20190147245A1 (en) * | 2017-11-14 | 2019-05-16 | Nuro, Inc. | Three-dimensional object detection for autonomous robotic systems using image proposals |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938332A (zh) * | 2022-06-29 | 2022-08-23 | 上海喜马拉雅科技有限公司 | 模型参数配置方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220147753A1 (en) | 2022-05-12 |
US12073599B2 (en) | 2024-08-27 |
US20230206587A1 (en) | 2023-06-29 |
US11694422B2 (en) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445402B1 (en) | Fast and energy-efficient region of interest pooling for object detection with convolutional neural network | |
US11775614B2 (en) | Unsupervised multi-scale disparity/optical flow fusion | |
WO2020051776A1 (en) | Method and system of deep supervision object detection for reducing resource usage | |
TWI768323B (zh) | 影像處理裝置以及其影像處理方法 | |
US12073599B2 (en) | Method to improve accuracy of quantized multi-stage object detection network | |
KR102616700B1 (ko) | 영상 처리 장치 및 그 영상 처리 방법 | |
US20170076195A1 (en) | Distributed neural networks for scalable real-time analytics | |
US10784892B1 (en) | High throughput hardware unit providing efficient lossless data compression in convolution neural networks | |
US10621464B1 (en) | Block based non-maximum suppression | |
CA3157994A1 (en) | Systems and methods for performing direct conversion of image sensor data to image analytics | |
US11587259B2 (en) | Fixed pattern calibration for multi-view stitching | |
US20220094847A1 (en) | Smart ip camera with color night mode | |
Werner et al. | Hardware implementation of a full HD real-time disparity estimation algorithm | |
US11620816B1 (en) | Hardware efficient RoI align | |
US11568251B1 (en) | Dynamic quantization for models run on edge devices | |
US11194474B1 (en) | Link-list shortening logic | |
US11521300B2 (en) | Edge preserving noise reduction algorithm using inverse exponential function optimization | |
CN109309788A (zh) | 多镜头图像拼接装置及方法 | |
US11586892B1 (en) | Modeling quantization loss using a preprocessing network that simulates hardware behavior | |
US10445883B1 (en) | ID recycle mechanism for connected component labeling | |
US11615304B1 (en) | Quantization aware training by constraining input | |
US10878254B1 (en) | Real-time color classification for street vehicles | |
US10671883B1 (en) | Approximate cross-check for real-time feature matching | |
KR20240039394A (ko) | 영상 처리 장치, 그것을 갖는 전자 장치, 그것의 동작 방법 |
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 |