CN110414599A - 基于集成学习的图像分类系统 - Google Patents
基于集成学习的图像分类系统 Download PDFInfo
- Publication number
- CN110414599A CN110414599A CN201910684593.0A CN201910684593A CN110414599A CN 110414599 A CN110414599 A CN 110414599A CN 201910684593 A CN201910684593 A CN 201910684593A CN 110414599 A CN110414599 A CN 110414599A
- Authority
- CN
- China
- Prior art keywords
- cnn
- image classification
- group
- integrated
- classification system
- 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
Classifications
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- 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
- G06N7/00—Computing arrangements based on specific mathematical models
-
- 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/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/809—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
-
- 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/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/259—Fusion by voting
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种基于集成学习的图像分类系统,包含多个基于细胞神经网络(CNN)的集成电路(IC),所述多个基于细胞神经网络的集成电路操作联接在一起作为用于图像分类任务的一组基础学习器。每个基于CNN的IC配置有以过滤器系数形式的至少一个有区别的深度学习模型。基于集成学习的图像分类系统还包含:被配置为该集成的元学习器的控制器;以及用于保持由所述控制器和基于CNN的IC在该集成中使用的各种数据的基于存储器的数据缓冲器。各种数据可以包括待分类的输入图像数据。各种数据还可以包括来自所述一组基础学习器的经提取的特征向量或图像分类输出。然后,所述经提取的特征向量或图像分类输出被元学习器使用以进一步执行该图像分类任务。
Description
技术领域
本专利文件大体上涉及机器学习领域。更具体地,本文件涉及基于集成学习的图像分类系统。
背景技术
细胞神经网络或细胞非线性网络(CNN)已经应用于许多不同的领域和问题,包括但不限于自1988年以来的图像处理。然而,大多数现有技术CNN方法或者基于软件解决方案(例如,卷积神经网络、递归神经网络等),或者基于为其他目的(例如,图形处理、通用计算等)而设计的硬件。因此,CNN现有技术方法在计算速度方面太慢和/或太昂贵,因此对于处理大量图像数据是不切实际的。图像数据可以来自任何二维数据(例如,静止照片、图片、视频流的帧、语音数据的经转换的形式等)。
集成学习是一种机器学习范例,其中多个学习器被训练以解决相同的问题。与试图从经训练的数据中学习一个假设的普通机器学习方法相反,集成方法试图构造一组假设并将它们组合起来使用。集成包括若干基础学习器,其中每个学习器使用不同的假设。然后,元学习器用于组合从基础学习器获得的结果(例如,特征)。
发明内容
本部分的目的是总结本发明的一些方面并简要介绍一些优选实施方式。可以对本部分以及本文的摘要和标题进行简化或省略,以避免使本部分的目的模糊。这种简化或省略不旨在限制本发明的范围。
描述了基于集成学习的图像分类系统。在本公开的一个方面,基于集成学习的图像分类系统包含多个基于细胞神经网络(CNN)的集成电路(IC),所述多个基于细胞神经网络的集成电路操作联接在一起作为用于图像分类任务的集成的一组基础学习器。每个基于CNN的IC配置有过滤器系数形式的至少一个有区别的深度学习模型。所述基于集成学习的图像分类系统还包含:控制器,所述控制器被配置为所述集成的元学习器;以及基于存储器的数据缓冲器,所述基于存储器的数据缓冲器用于保持由所述控制器和基于CNN的IC在所述集成中使用的各种数据。各种数据可以包括待分类的输入图像数据。所述各种数据还可以包括来自所述一组基础学习器的经提取的特征向量或图像分类输出。然后,所述经提取的特征向量或类别被所述元学习器使用以进一步执行图像分类任务。此外,所述各种数据可以包括分类标记,其直接从基础学习器馈送到元学习器。
在本公开的另一方面,基于集成学习的图像分类系统包含一组基于细胞神经网络(CNN)的集成电路(IC),所述基于细胞神经网络的集成电路包括一个被配置为集成的元学习器的基于细胞神经网络的集成电路,而其余的基于细胞神经网络的集成电路操作联接在一起作为用于图像分类任务的一组基础学习器。每个基础学习器配置有至少一个有区别的深度学习模型。基于集成学习的图像分类系统还包含:用于管理数据流的控制器;以及用于保持待分类的输入图像的基于存储器的数据缓冲器。
通过结合随附附图检查下文对本发明实施方式的详细描述,本发明的目的、特征和优点将变得显而易见。
附图说明
参考以下描述、所附权利要求和随附附图将更好地理解本发明的这些和其他特征、方面和优点,附图如下所示:
图1A至图1B是示出根据本发明的一个实施方式的示例性集成电路的框图,所述集成电路被设计用于从输入图像数据中提取特征;
图2是显示根据本发明的一实施方式的示例性控制器的功能框图;所述控制器被配置成用于控制一个或多个CNN处理引擎的操作;
图3是显示根据本发明的一个实施方式的示例性CNN处理引擎的图;
图4是显示根据本发明的实施方式的在(M+2)像素乘(M+2)像素区域内的MxM像素位置的图;
图5A至图5C是显示根据本发明的一实施方式的三个示例性像素位置的图;
图6是示出根据本发明的一个实施方式的示例性数据布置的图,所述数据布置用于在一像素位置处执行3x3卷积;
图7是示出根据本发明的一个实施方式的示例性电路的功能框图,所述电路用于在一像素位置处执行3x3卷积;
图8是示出根据本发明的一实施方式的示例性整流的图;
图9A至图9B是示出根据本发明的一实施方式的两个示例性2x2池化操作的图;
图10是示出根据本发明的一个实施方式的2x2池化操作将M像素乘M像素块缩减为(M/2)像素乘(M/2)像素块的图;
图11A至图11C是示出根据本发明的一个实施方式的在输入图像中的M像素乘M像素块和对应的(M+2)像素乘(M+2)像素区域的示例的图;
图12是示出根据本发明的一实施方式的用于存储接收到的图像数据的第一组存储缓冲器的示例的图;
图13A是显示根据本发明的一实施方式的用于存储过滤器系数的示例性的第二组存储缓冲器的两种操作模式的图;
图13B是显示根据本发明的一实施方式的第二组存储缓冲器中的过滤器系数的示例性的存储方案的图;
图14是显示根据本发明的一实施方式的经由示例性的时钟偏移电路连接为环路的多个CNN处理引擎的图;
图15是显示根据本发明的一实施方式的基于卷积神经网络的示例性图像处理技术的示意图;
图16是示出根据本发明的一实施方式的实现具有双值3x3过滤器内核的经训练的卷积神经网络模型的示例性过程的流程图。
图17是显示根据本发明的示例性过滤器内核转换方案的图;
图18是显示根据本发明的一个实施方式的示例性数据转换方案的图;
图19是示出根据本发明的一个实施方式的示例性集成学习的图;以及
图20A至图20B是显示根据本发明的一个实施方式的实例性的基于集成学习的图像分类系统的突出组件的功能图。
具体实施方式
在下面的描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明。本文的描述和表示是本领域的技术人员用于最有效地将其工作实质传达给本领域其他技术人员的常用手段。在其他情况下,没有详细描述众所周知的方法、过程和组件以避免不必要地使本发明的各方面模糊。
本文对“一个实施方式”或“一种实施方式”的引用意味着结合该实施方式描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方式中。在说明书中各处出现的短语“在一个实施方式中”不一定都指相同的实施方式,也不是指与其他实施方式互斥的单独或替代的实施方式。此外,表示本发明的一个或多个实施方式的过程流程图或图示或电路中的各个框或块的顺序并不固有地指示任何特定顺序,也不暗示本发明的任何限制。本文使用的术语“上”、“下”、“对角线”、“非对角线”“顶部”、“底部”、“右”和“左”旨在为描述的目的提供相对位置,并且不旨在指定绝对的参照系。
本文参考图1A至图1B到图20A至图20B来讨论本发明的实施方式。然而,本领域技术人员将容易理解,因为本发明延伸超出了这些有限的实施方式,因此本文关于这些附图给出的详细描述是出于解释的目的。
首先参考图1A,显示了示出根据本发明的一个实施方式的用于从输入图像中提取出特征的示例的数字集成电路(IC)100的框图。
所述集成电路100被实现为数字半导体芯片并且包含:CNN处理引擎控制器110;以及一个或多个神经网络(CNN)处理引擎102,所述神经网络(CNN)处理引擎可操作地联接到至少一个输入/输出(I/O)数据总线120。控制器110被配置为控制所述CNN处理引擎102的各种操作,从而基于图像处理技术,通过利用整流或其他非线性操作(例如,sigmoid函数)执行多层的3x3卷积以及2x2池化操作,从输入图像中提取特征。为了执行3x3卷积,需要数字形式的图像数据和对应的过滤器系数,将这些数字形式的图像数据和对应的过滤器系数经由输入/输出数据总线120提供给CNN处理引擎102。众所周知,数字半导体芯片包含逻辑门、多路复用器、寄存器文件、存储器、状态机等。
根据一个实施方式,数字集成电路100是可扩展和可升级的。例如,可以在一个半导体芯片上实现该数字集成电路100的多个复制物。
所有CNN处理引擎都是相同的。为简化示出,仅有很少数(即,CNN处理引擎122a-122h、132a-132h)在图1B中示出。本发明对数字半导体芯片上的CNN处理引擎的数量没有限制。
每个CNN处理引擎122a-122h、132a-132h分别包含CNN处理块124、第一组存储缓冲器126和第二组存储缓冲器128。所述第一组存储缓冲器126被配置成用于接收图像数据并用于将已经接收的图像数据提供给所述CNN处理块124。所述第二组存储缓冲器128被配置成用于存储过滤器系数并用于将已经接收的过滤器系数提供给所述CNN处理块124。通常,芯片上的CNN处理引擎的数量是2n,其中n是整数(即,0、1、2、3……)。如图1B所示,CNN处理引擎122a-122h可操作地联接到第一输入/输出数据总线130a,而CNN处理引擎132a-132h可操作地联接到第二输入/输出数据总线130b。每个输入/输出数据总线130a-130b被配置成独立地传输数据(即,图像数据和过滤器系数)。在一个实施方式中,所述第一组存储缓冲器和第二组存储缓冲器包括随机存取存储器(RAM)。所述第一组存储缓冲器和第二组存储缓冲器中的每一组都是逻辑上定义的。换句话说,可以重新配置所述第一组存储缓冲器和第二组存储缓冲器的相应大小以适应图像数据和过滤器系数的相应量。
这里示出了第一I/O数据总线和第二I/O数据总线130a-130b以成顺序的方案连接所述CNN处理引擎122a-122h、132a-132h。在另一实施方式中,至少一个I/O数据总线可以与CNN处理引擎具有不同的连接方案,以实现并行数据输入和输出的相同目的来改善性能。
图2是显示示例性控制器200的图,所述控制器200用于控制在集成电路上配置的至少一个CNN处理引擎的各种操作。控制器200包括用于控制图像数据加载控制212、过滤器系数加载控制214、图像数据输出控制216和图像处理操作控制218的电路。控制器200还包括寄存器文件220,所述寄存器文件用于存储位于所述集成电路中的特定配置(例如,CNN处理引擎的数量、输入/输出数据总线的数量等等)。
图像数据加载控制212经由对应的I/O数据总线来控制图像数据到相应的CNN处理引擎的加载。过滤器系数加载控制214经由对应的I/O数据总线来控制过滤器系数到相应的CNN处理引擎的加载。图像数据输出控制216经由对应的I/O数据总线来控制来自相应的CNN处理引擎的图像数据的输出。图像处理操作控制218控制诸如卷积、整流和池化操作之类的各种操作,其可以由集成电路的用户经由一组用户定义的指令来限定(例如,文件包含一系列的操作,诸如卷积、整流、池化等)。
CNN处理引擎302的更多细节在图3中示出。CNN处理块304包含数字电路,所述数字电路通过使用(M+2)像素乘(M+2)像素区域的图像数据和来自相应存储缓冲器的对应的过滤器系数而在MxM像素位置处执行3x3卷积,以同时获得MxM卷积操作结果。所述(M+2)像素乘(M+2)像素区域是以MxM像素位置作为M像素乘M像素中心部分加上围绕该中心部分的一个像素的边界来形成的。M是正整数。在一个实施方式中,M等于14,因此,(M+2)等于16,MxM等于14x14=196,并且M/2等于7。
图4是显示表示具有在CNN处理引擎302中使用的以MxM像素位置420为中心部分的(M+2)像素乘(M+2)像素区域410的图的图示。
图像数据可以表示输入图像中的像素的特征(例如,像素的颜色(例如,RGB(红色、绿色、蓝色))值、或像素与观察位置之间的距离中的一者)。通常,RGB的值是0到255之间的整数。过滤器系数的值是浮点整数,其可以是正数也可以是负数。
为了实现更快的计算,在CNN处理块304中使用并实现很少的计算性能改进技术。在一个实施方式中,图像数据的表示使用尽可能少的位(例如,5位表示)。在另一实施方式中,每个过滤器系数表示为带有小数点的整数。类似地,表示过滤器系数的整数使用尽可能少的位(例如,12位表示)。因此,随后可以使用定点算法执行3x3卷积以实现更快的计算。
每个3x3卷积基于以下公式产生一个卷积操作结果Out(m,n):
其中:
m、n是对应的行号和列号,用于识别(M+2)像素乘(M+2)像素区域内的哪个图像数据(像素)执行所述卷积;
In(m,n,i,j)是在所述区域内以像素位置(m,n)为中心的3像素乘3像素区;
C(i,j)表示九个权重系数C(3x3)中的一个,每个对应于3像素乘3像素区中的一个;
b表示偏移系数;并且
i、j是权重系数C(i,j)的指数。
每个CNN处理块304同时产生MxM卷积操作结果,并且所有CNN处理引擎执行同时的操作。
图5A至图5C示出了MxM像素位置的三个不同示例。图5A中所示的第一像素位置531在左上角处且在(M+2)像素乘(M+2)像素区域内的3像素乘3像素区的中心。图5B中所示的第二像素位置532是平移到第一像素位置531右侧的一个像素数据。图5C中所示的第三像素位置533是一般示例的像素位置。MxM像素位置包含在(M+2)像素乘(M+2)像素区域内的多个重叠的3像素乘3像素区。
为了在每个采样位置执行3x3卷积,图6中示出了示例性数据布置。图像数据(即,In(3x3))和过滤器系数(即,权重系数C(3x3)和偏移系数b)被馈送到示例性CNN 3x3电路600。在根据公式(1)的3x3卷积操作之后,产生一个输出结果(即,Out(1x1))。在每个采样位置处,图像数据In(3x3)以具有八个直接相邻像素601-604、606-609的像素坐标(m,n)605为中心。
图7是示出用于在每个像素位置处执行3x3卷积的示例性CNN 3x3电路700的功能图。电路700至少包含加法器721、乘法器722、移位器723、整流器724和池化操作器725。在数字半导体实现方式中,所有这些都可以用逻辑门和多路复用器实现,这些逻辑门和多路复用器是使用众所周知的方法(例如,硬件描述语言,诸如Verilog等)生成的。加法器721和乘法器722用于进行加法和乘法操作。移位器723用于根据3x3卷积中涉及的定点算术对输出结果进行移位。整流器724用于将负的输出结果设定为零。池化操作器725用于执行2x2池化操作。
图像数据存储在第一组存储缓冲器306中,而过滤器系数存储在第二组存储缓冲器308中。图像数据和过滤器系数二者在数字集成电路的每个时钟处被馈送到CNN块304。过滤器系数(即,C(3x3)和b)直接从第二组存储缓冲器308馈送到CNN处理块304中。然而,图像数据经由多路复用器MUX 305从第一组存储缓冲器306馈送到CNN处理块304中。多路复用器305基于时钟信号(例如,脉冲312)从第一组存储缓冲器中选择图像数据。
否则,多路复用器MUX 305通过时钟偏移电路320从第一相邻CNN处理引擎(图3的左侧的CNN处理引擎,未示出)中选择图像数据。
同时,馈送到CNN处理块304中的图像数据的副本经由时钟偏移电路320被发送到第二相邻CNN处理引擎(图3的右侧的CNN处理引擎,未示出)。时钟偏移电路320可以用已知技术(例如,D触发器322)实现。
第一相邻CNN处理引擎可以被称为由时钟偏移电路320形成的环路中的上游的相邻的CNN处理引擎。第二相邻CNN处理引擎可以被称为下游CNN处理引擎。在另一实施方式中,当时钟偏移电路的数据流方向反转时,所述第一CNN处理引擎和第二CNN处理引擎也分别反转变为下游相邻CNN处理引擎和上游相邻CNN处理引擎。
在为预定数量的过滤器系数执行针对每组图像数据的3x3卷积之后,基于另一时钟信号(例如,脉冲311)将卷积操作结果Out(m,n)经由另一多路复用器MUX 307发送到第一组存储缓冲器。绘制示例性时钟周期310以用于说明脉冲311和脉冲312之间的时间关系。如所示出的,脉冲311是脉冲312之前的一个时钟,3x3卷积操作的结果在所有CNN处理引擎已通过时钟偏移电路320处理了特定的图像数据块之后被存储到第一组存储缓冲器中。
在从公式(1)获得卷积操作结果Out(m,n)之后,可以按照图像处理控制218的指示执行整流程序。小于零(即负值)的任何卷积操作结果Out(m,n)被设定为零。换句话说,仅保留输出结果的正值。图8示出了整流的两个示例结果。正的输出值10.5保持为10.5,而-2.3变为0。整流导致集成电路中的非线性。
如果需要2x2池化操作,则MxM输出结果将缩减为(M/2)x(M/2)。为了将(M/2)x(M/2)输出结果存储在第一组存储缓冲器中的对应位置,需要附加的簿记技术来跟踪正确的存储器地址,使得可以在一个CNN处理引擎中处理四个(M/2)x(M/2)输出结果。
为了演示2x2池化操作,图9A是以图形方式示出2像素乘2像素块的第一示例性输出结果被缩减到单个值10.5的图,该单个值10.5是四个输出结果中的最大值。图9A中所示的技术被称为“最大池化”。当四个输出结果的平均值4.6用于图9B中所示的单个值时,这被称为“平均池化”。还有其他池化操作,例如,“混合最大平均池化”,其是“最大池化”和“平均池化”的组合。池化操作的主要目标是缩减被处理的图像数据的大小。图10是示出通过2x2池化操作将MxM像素位置缩减为原始大小的四分之一的(M/2)x(M/2)像素位置的图。
输入图像通常包含大量的图像数据。为了执行图像处理操作。如图11A所示,输入图像1100被划分为M像素乘M像素块1111-1112。然后将与这些M像素乘M像素块中的每个相关联的图像数据馈送到相应的CNN处理引擎中。在特定的M像素乘M像素块中的MxM像素位置中的每个像素位置处,在对应的CNN处理块中同时执行3x3卷积。
尽管本发明不需要特定特征尺寸的输入图像,但是输入图像可能需要调整大小以适合用于某些图像处理过程的预定义的特征尺寸。在一种实施方式中,需要具有(2KxM)像素乘(2KxM)像素的正方形形状。K是正整数(例如,1、2、3、4等)。当M等于14且K等于4时,特征尺寸为224。在另一实施方式中,输入图像是尺寸为(2IxM)像素和(2JxM)像素的矩形形状,其中I和J是正整数。
为了在M像素乘M像素块的边界附近的像素位置处正确地执行3x3卷积,需要来自相邻块的附加图像数据。图11B示出了位于(M+2)像素乘(M+2)像素区域1130内的典型的(用虚线界定的)M像素乘M像素块1120。(M+2)像素乘(M+2)像素区域由来自当前块的M像素乘M像素的中心部分和四个边缘(即,顶部边缘、右侧边缘、底部边缘和左侧边缘)以及来自对应的相邻块的四个角(即,左上角、右上角、右下角和左下角)形成。附加细节显示在图12和对于第一组存储缓冲器的对应描述中。
图11C显示了两个示例性M像素乘M像素块1122-1124和相应的相关联的(M+2)像素乘(M+2)像素区域1132-1134。这两个示例块1122-1124沿着输入图像的周界来定位。第一示例性M像素乘M像素块1122位于左上角,因此,第一示例块1122在两个边缘和一个角上具有邻居。值“0”被用于相关联的(M+2)像素乘(M+2)像素区域1132中没有邻居(显示为阴影区)的两个边缘和三个角,以形成图像数据。类似地,第二示例块1124的相关联的(M+2)像素乘(M+2)像素区域1134需要将“0”用于顶部边缘和两个顶角。沿着输入图像的周边的其他块被类似地处理。换句话说,为了在输入图像的每个像素处执行3x3卷积,在输入图像的周边的外部添加一层零(“0”)。这可以利用许多众所周知的技术来实现。例如,将第一组存储缓冲器的默认值设定为零。如果没有从相邻块填充图像数据,则那些边缘和角将包含零。
此外,输入图像可以包含大量的图像数据,这些图像数据可能无法整体地馈送到CNN处理引擎中。因此,第一组存储缓冲器配置在相应的CNN处理引擎上,用于存储输入图像的图像数据的一部分。第一组存储缓冲器包含图12中图形示出的九个不同的数据缓冲器。九个缓冲器被设计为匹配所述(M+2)像素乘(M+2)像素区域,如下所示:
1)缓冲器-0用于存储图像数据的表示中心部分的MxM像素;
2)缓冲器-1用于存储图像数据的表示顶部边缘的1xM像素;
3)缓冲器-2用于存储图像数据的表示右侧边缘的Mx1像素;
4)缓冲器-3用于存储图像数据的表示底部边缘的1xM像素;
5)缓冲器-4用于存储图像数据的表示左侧边缘的Mx1像素;
6)缓冲器-5用于存储图像数据的表示左上角的1x1像素;
7)缓冲器-6用于存储图像数据的表示右上角的1x1像素;
8)缓冲器-7用于存储图像数据的表示右下角的1x1像素;以及
9)缓冲器-8用于存储图像数据的表示左下角的1x1像素。
从I/O数据总线接收的图像数据是成连续块的图像数据的MxM像素的形式。图像数据的每个MxM像素存储在当前块的缓冲器-0中。图像数据的接收到的MxM像素的左列存储在前一块的缓冲器-2中,而图像数据的接收到的MxM像素的右列存储在下一块的缓冲器-4中。基于输入图像的几何形状,将图像数据的接收到的MxM像素的顶部行和底部行以及四个角存储到对应块的相应缓冲器中(例如,图11A-11C)。
用于存储过滤器系数的示例的第二组存储缓冲器在图13A中示出。在一个实施方式中,提供一对独立的缓冲器,缓冲器01301和缓冲器11302。这对独立的缓冲器允许缓冲器1301-1302中的一个从I/O数据总线1330接收数据,而另一个将数据馈送到CNN处理块(未示出)。本文显示了两种操作模式。
过滤器系数的示例性存储方案在图13B中示出。这对缓冲器中的每个缓冲器(即,缓冲器01301或缓冲器11302)具有一宽度(即,字大小1310)。在一个实施方式中,字大小为120位。因此,在第一示例性存储方案1311中,过滤器系数(即,C(3x3)和b)中的每个占据12位。在第二示例性存储方案1312中,每个过滤器系数占据6位,从而在每个字中存储20个系数。在第三示例性方案1313中,每个系数使用3位,因此存储了四组过滤器系数(40个系数)。最后,在第四示例性存储方案1314中,在每个字中存储80个系数,每个系数占据1.5位。
在另一实施方式中,可以设置第三存储缓冲器,用于存储整个过滤器系数以避免I/O延迟。通常,输入图像必须具有一定的大小,以便可以存储所有过滤器系数。这可以通过在第一组存储缓冲器中分配一些未使用的容量以适应这种第三存储缓冲器来完成。由于所有存储缓冲器在逻辑上被定义在RAM(随机存取存储器)中,因此可以使用众所周知的技术来创建第三存储缓冲器。换句话说,可以调整第一组存储缓冲器和第二组存储缓冲器以适合不同量的图像数据和/或过滤器系数。此外,RAM的总量取决于图像处理操作中需要什么。
当在集成电路上配置多于一个CNN处理引擎时。CNN处理引擎经由时钟偏移电路连接到第一相邻CNN处理引擎和第二相邻CNN处理引擎。为了简化示出,仅显示了用于图像数据的CNN处理块和存储缓冲器。图14中示出了用于一组CNN处理引擎的示例性时钟偏移电路1440。经由第二示例性时钟偏移电路1440连接CNN处理引擎以形成环路。换句话说,每个CNN处理引擎将其自己的图像数据发送到第一邻居(相邻的CNN处理引擎),并且同时接收第二邻居的图像数据。时钟偏移电路1440可以利用众所周知的方式实现。例如,每个CNN处理引擎可以与D触发器1442连接。
在一环路中仅有两个CNN处理引擎被连接的特殊情况中,第一邻居和第二邻居是相同的。
现在参考图15,其是显示根据本发明的实施方式的基于卷积神经网络的示例性图像处理技术的示意图。基于卷积神经网络,使用第一组过滤器或权重1520利用卷积来处理多层输入图像数据1511a-1511c。由于图像数据1511a-1511c大于过滤器1520,所述图像数据的每个对应的重叠的子区域1515被处理。在获得卷积结果之后,可以在第一池化操作1530之前进行启动。在一个实施方式中,利用在整流线性单元(ReLU)中执行的整流来实现启动。作为第一池化操作1530的结果,图像数据被缩减为一组缩减的图像数据1531a-1531c。对于2x2池化,该组缩减的图像数据比之前的组减小4倍。
重复先前的卷积到池化过程。然后使用第二组过滤器1540利用卷积来处理该组缩减的图像数据1531a-1531c。类似地,处理每个重叠的子区域1535。可以在第二池化操作1540之前进行另一启动。针对若干层重复该卷积到池化过程,并且最终连接到至少一个全连接(FC)层1560。在图像分类中,可以在FC层1560中计算预定义的类别的相应概率。
使用已知的数据集或数据库来训练这种重复的卷积到池化过程。对于图像分类,数据集包含预定义的类别。在用于对图像数据进行分类之前,可以对一组特定的过滤器、启动和池化进行调谐并获得例如过滤器类型的特定组合、过滤器的数量、过滤器的顺序、池化类型和/或何时执行启动。在一个实施方式中,卷积神经网络是基于视觉几何组(VGG16)架构神经网络,其包含13个卷积层和3个全连接层。
利用图16所示的示例的一组操作1600来实现经训练的卷积神经网络模型。在动作1602处,首先通过基于经标记的数据集的图像分类来训练卷积神经网络模型来获得卷积神经网络模型,该经标记的数据集包含足够多数量的输入数据(例如,图像数据、经转换的语音数据、光学字符识别(OCR)数据等)。例如,每个类别至少有4000个数据。换句话说,在所述经标记的数据集中的每个数据与待分类的类别相关联。卷积神经网络模型包括多个有序的过滤器组(例如,在卷积神经网络模型中每个过滤器组对应于卷积层)。所述多个有序的过滤器组中的每个过滤器包含标准的3x3过滤器内核(即,以浮点数格式的九个系数(例如,图17中的标准的3x3过滤器内核1710))。九个系数中的每个系数可以是任何负实数或正实数(即,带有分数的数字)。初始卷积神经网络模型可以从许多不同的框架获得,所述框架包括但不限于Mxnet、caffe、tensorflow等。
然后,在动作1604处,通过基于一组内核转换方案将相应的标准3x3过滤器内核1710转换为所述多个有序的过滤器组中的当前处理的过滤器组的对应的双值3x3过滤器内核1720,来修改所述卷积神经网络模型。在一个实施方式中,对应的双值3x3过滤器内核1720中的九个系数C(i,j)中的每个被赋予值“A”,该值“A”等于绝对系数值的平均值乘以标准的3x3过滤器内核1710中的对应系数的正负号,如以下公式所示:
过滤器组按所述多个有序的过滤器组中限定的顺序一次转换一个。在某些情况下,可选地,组合两个连续的过滤器组,使得卷积神经网络模型的训练更有效。
接下来,在动作1606处,重新训练经修改的卷积神经网络模型,直到满足或实现期望的收敛标准。存在许多众所周知的收敛标准,这些收敛标准包括但不限于:完成预定数量的再训练操作、将由于过滤器内核转换而导致的准确率损失进行收敛等等。在一个实施方式中,包括在先前的再训练操作中那些已经转换的所有过滤器组都可以被改变或更改以进行精细调谐。在另一实施方式中,在当前处理的过滤器组的重新训练操作期间,已经转换的过滤器组被冻结或不进行更改。
过程1600移动到判定1608,从而确定是否存在其他未经转换的过滤器组。如果“是”,则过程1600返回以重复动作1604-1606,直到所有过滤器组已被转换。此后判定1608变为“否”。在动作1610处,将所有过滤器组中的双值3x3过滤器内核的系数从浮点数格式转化为定点数格式,以适应基于CNN的集成电路中所需的数据结构。此外,定点数被实现为基于CNN的集成电路中的可重新配置的电路。在一个实施方式中,使用12位定点数格式来实现所述系数。
图18是显示用于将数据从每像素8位[0-255]转换为每像素5位[0-31]的示例性数据转换方案的图。例如,位0-7变为0,位8-15变为1,等等。
如图16的过程1600中所述,为所述基于CNN的集成电路训练卷积神经网络模型。整组的经训练的系数或权重被预先配置到所述基于CNN的集成电路,作为特定数据格式(例如,图像数据、语音频谱、指纹、掌纹、光学字符识别等)的特征提取器。通常有许多卷积层,每层有许多过滤器。在一个实施方式中,VGG16模型包含13个卷积层。在基于软件的图像分类任务中,卷积层的计算传统上占用了计算的大部分(例如,90%)。使用诸如基于CNN的IC100之类的专用硬件大大减少了这种计算。
在另一实施方式中,可以在所述基于CNN的集成电路上训练整组的系数。换句话说,不需要从完全浮点数格式转换到定点数格式。可以对双值3x3过滤器内核的系数直接进行训练。不需要从标准内核转换到双值过滤器内核。
在一个实施方式中,固定点数格式是可调整的,以适合不同的要求(例如,过滤器系数的范围)。换句话说,可以调整小数点之后的数字位数。
图19中显示了示例的集成学习方法。输入图像数据1910的精确副本通过一组基础学习器1930中的每个进行处理,所述基本学习器配置有有区别的深度学习模型(即,模型-11920a、模型-21920b、...、模型-t 1920t)。使用共用的经标记的数据库来训练所述有区别的深度学习模型,以用于一组预定义的类别的图像分类。深度学习模型可以包括但不限于具有双值过滤器系数的VGG16模型,其使用减少数量的通道以用于提取特征等。还有许多用于创建所述有区别的深度学习模型的其他技术。通过使用所述共用的经标记的数据库的不同部分进行训练来实现多样化模型。利用一个特定模型使用不同训练技术也可以实现多样化,所述不同训练技术包括但不限于不同的初始化、不同的时期、不同的学习速率等。
经提取的特征向量或图像分类输出是来自基础学习器1930的输出结果。图像分类输出的示例可以包括但不限于前1个预测、前5个预测等。前5个预测是具有最高分类概率分数的前5个类别。元学习器1940因而使用基础学习器1930的输出结果作为输入以获得图像分类任务中的类别。在一个实施方式中,元学习器1940配置有机器学习模型(例如,加权投票、支持向量机、逻辑回归、随机森林、梯度提升决策树等等)。用于集成的技术可以包括但不限于blending(混合)技术、stacking(堆叠)技术、boosting(提升)技术、bagging(自助聚集)技术等。
图像数据1910可以是像素形式的二维数据(例如,224x224x3是三种基本颜色的224x224像素)。
图20A显示了基于第一示例性集成学习的图像分类系统2020的突出组件。第一示例性系统2020包含:一组基于CNN的IC 2022a-2022r,作为基础学习器;控制器2023,作为元学习器;以及基于存储器的数据缓冲器2024,用于保持在所述集成中使用的各种数据。
所述基于CNN的IC 2022a-2022r中的每个都配置有过滤器系数形式的至少一个有区别的深度学习模型。在一个实施方式中,每个基于CNN的IC加载有一种独特的深度学习模型的经预训练的过滤器系数。在另一实施方式中,如果经预训练的过滤器系数的总量可以存储在基于CNN的IC内的存储器空间内,则所述基于CNN的IC具有多于一个深度学习模型。
当在基于CNN的IC中实现磁性随机存取存储器时,与已实现的静态随机存取存储器相比,该磁性随机存取存储器通常提供更大的存储空间。
控制器2023被配置为使用机器学习模型的元学习器。基于存储器的数据缓冲器2024被配置成用于保持该集成中的各种数据,例如,在加载到所述基于CNN的IC 2022a-2022r之前的输入图像数据的相关部分、经提取的特征向量、全连接(FC)层的系数等。控制器2023还可以被配置成用于为需要FC层的那些深度学习模型执行FC层的计算。在一个实施方式中,使用静态随机存取存储器来实现基于存储器的数据缓冲器2024。
图20B中显示了第二示例性基于集成学习的图像分类系统2040的突出组件。第二示例性系统2040包含一组基于CNN的IC 2042a-2042s,其中所述组中的一个基于CNN的IC(例如,基于CNN的IC 2042a)被配置为元学习器,而其余的基于CNN的IC(例如,基于CNN的IC2042b-2042s)被配置为一组基础学习器。第二示例性基于集成学习的图像分类系统2040还包含控制器2043和基于存储器的数据缓冲器2044。类似于第一示例性系统2020,基础学习器中的每个加载有至少一个有区别的深度学习模型的经预训练的过滤器系数。元学习器基于另一深度学习模型,该深度学习模型使用来自基础学习器中的级联特征向量作为输入以进一步执行图像分类任务。在一个实施方式中,填充值(例如,0)用于级联特征向量的未填充位置。
可以使用所述基于集成学习的图像分类系统的若干物理实现方式。例如,可以通过在印刷电路板(PCB)上安装所有组件(即,基于CNN的IC2022a-2022r)、控制器2023以及基于存储器的缓冲器2024来实现第一示例性基于集成学习的图像分类系统2020。在另一实施方式中,一个或多个基于CNN的IC可以封装在软件保护器(加密狗)中。多个软件保护器可以经由集线器(例如,通用串行总线(USB)集线器)彼此连接。
尽管已经参考本发明的具体实施方式描述了本发明,但是这些实施方式仅仅是说明性的而不是对本发明的限制。本领域技术人员将想到对具体公开的示例性实施方式的各种修改或改变。例如,虽然输入图像已被显示并描述为按特定顺序划分为M像素乘M像素块,但是在本发明中可以使用其他顺序来实现相同的目的,例如,M像素乘M像素块的顺序可以按列而不是按行。此外,已使用M等于14来显示并描述了M像素乘M像素块作为示例。可以将M选择为其他正整数来实现相同的目的,例如,16、20、30等。最后,虽然在元学习器中描述了很少的示例性机器学习模型,但是可以使用其他类型的机器学习模型来实现相同的目的。总之,本发明的范围不应限于本文公开的具体示例实施方式,并且本领域普通技术人员容易想到的所有修改应被包括在本申请的精神和范围以及所附权利要求的范围内。
Claims (13)
1.一种基于集成学习的图像分类系统,包括:
多个基于细胞神经网络CNN的集成电路IC,所述多个基于CNN的IC操作联接在一起作为用于图像分类任务的集成的一组基础学习器,每个基于CNN的IC配置有多个有区别的深度学习模型中的至少一个深度学习模型;
控制器,所述控制器被配置为所述集成的元学习器;以及
基于存储器的数据缓冲器,所述基于存储器的数据缓冲器用于保持由所述控制器和所述多个基于CNN的IC在所述集成中使用的各种数据。
2.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述多个基于CNN的IC经由印刷电路板而联接在一起。
3.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述多个基于CNN的IC经由软件保护器的集线器而联接在一起。
4.根据权利要求1所述的基于集成学习的图像分类系统,其中,使用在所述图像分类任务中所使用的一组类别共用的经标记的数据库来训练所述有区别的深度学习模型中的全部深度学习模型。
5.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述各种数据包括待分类的输入图像数据。
6.根据权利要求5所述的基于集成学习的图像分类系统,其中,所述每个基于CNN的IC还包括:
多个CNN处理引擎,所述多个CNN处理引擎操作联接到至少一个输入/输出数据总线,所述多个CNN处理引擎由时钟偏移电路连接在一环路中,每个CNN处理引擎包括:
CNN处理块,所述CNN处理块被配置成:使用所述多个有区别的深度学习模块中的至少一个深度学习模块的经预训练的过滤器系数和所述输入图像数据来同时执行卷积操作;
第一组存储缓冲器,所述第一组存储缓冲器操作联接到所述CNN处理块以用于存储所述输入图像数据的相关部分;以及
第二组存储缓冲器,所述第二组存储缓冲器操作联接到所述CNN处理块以用于存储所述经预训练的过滤器系数。
7.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述各种数据包括来自所述一组基础学习器的经提取的特征向量。
8.根据权利要求7所述的基于集成学习的图像分类系统,其中,所述经提取的特征向量被所述元学习器使用以进一步执行所述图像分类任务。
9.根据权利要求8所述的基于集成学习的图像分类系统,其中,所述元学习器配置有选自由以下项组成的组中的机器学习模型:(i)加权投票,(ii)支持向量机,(iii)逻辑回归,(iv)随机森林,以及(v)梯度提升决策树。
10.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述各种数据包括来自所述一组基础学习器的图像分类输出。
11.根据权利要求10所述的基于集成学习的图像分类系统,其中,所述图像分类输出被所述元学习器使用以进一步执行所述图像分类任务。
12.根据权利要求8所述的基于集成学习的图像分类系统,其中,所述元学习器配置有选自由以下项组成的组中的机器学习模型:(i)加权投票,(ii)支持向量机,(iii)逻辑回归,(iv)随机森林,以及(v)梯度提升决策树。
13.根据权利要求1所述的基于集成学习的图像分类系统,其中,所述控制器还被配置成用于执行全连接层的计算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/167,523 US10387772B1 (en) | 2018-10-22 | 2018-10-22 | Ensemble learning based image classification systems |
US16/167,523 | 2018-10-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110414599A true CN110414599A (zh) | 2019-11-05 |
Family
ID=67253727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910684593.0A Pending CN110414599A (zh) | 2018-10-22 | 2019-07-26 | 基于集成学习的图像分类系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10387772B1 (zh) |
EP (1) | EP3644223A1 (zh) |
JP (1) | JP2020068027A (zh) |
CN (1) | CN110414599A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111772588A (zh) * | 2020-07-29 | 2020-10-16 | 天津大学 | 一种基于神经网络集成学习的皮肤镜图像的分类方法 |
CN112085030A (zh) * | 2020-09-09 | 2020-12-15 | 重庆广播电视大学重庆工商职业学院 | 相似图像确定方法及装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110514140B (zh) * | 2019-09-10 | 2021-05-18 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种三维成像方法、装置、设备以及存储介质 |
CN111832416B (zh) * | 2020-06-16 | 2024-07-09 | 杭州电子科技大学 | 一种基于增强卷积神经网络的运动想象脑电信号识别方法 |
US11354543B2 (en) | 2020-09-21 | 2022-06-07 | Kyocera Document Solutions Inc. | Convolutional neural network filter stacker for colorization preprocessing |
US11928182B1 (en) * | 2020-11-30 | 2024-03-12 | Amazon Technologies, Inc. | Artificial intelligence system supporting semi-supervised learning with iterative stacking |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
US9940534B1 (en) * | 2016-10-10 | 2018-04-10 | Gyrfalcon Technology, Inc. | Digital integrated circuit for extracting features out of an input image based on cellular neural networks |
US20180101747A1 (en) * | 2016-10-10 | 2018-04-12 | Gyrfalcon Technology, Inc. | Data Structure For CNN Based Digital Integrated Circuit For Extracting Features Out Of An Input Image |
CN108038815A (zh) * | 2017-12-20 | 2018-05-15 | 深圳云天励飞技术有限公司 | 集成电路 |
CN108345939A (zh) * | 2017-01-25 | 2018-07-31 | 微软技术许可有限责任公司 | 基于定点运算的神经网络 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140670A (en) | 1989-10-05 | 1992-08-18 | Regents Of The University Of California | Cellular neural network |
US5355528A (en) | 1992-10-13 | 1994-10-11 | The Regents Of The University Of California | Reprogrammable CNN and supercomputer |
DE69625040D1 (de) | 1996-03-21 | 2003-01-09 | St Microelectronics Srl | Zellulares Neuronalnetzwerk zur Erlangung der nichtgefalteten Schaltung von Chua |
CN1145872C (zh) | 1999-01-13 | 2004-04-14 | 国际商业机器公司 | 手写汉字自动分割和识别方法以及使用该方法的系统 |
US8726148B1 (en) | 1999-09-28 | 2014-05-13 | Cloanto Corporation | Method and apparatus for processing text and character data |
JP3502330B2 (ja) * | 2000-05-18 | 2004-03-02 | Necマイクロシステム株式会社 | 出力回路 |
US6941513B2 (en) | 2000-06-15 | 2005-09-06 | Cognisphere, Inc. | System and method for text structuring and text generation |
US6754645B2 (en) | 2001-03-20 | 2004-06-22 | Winbond Electronics Corp. | Voltage-mode pulse width modulation VLSI implementation of neural networks |
US6985861B2 (en) | 2001-12-12 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Systems and methods for combining subword recognition and whole word recognition of a spoken input |
JP4252028B2 (ja) * | 2004-11-25 | 2009-04-08 | 住友電気工業株式会社 | 交通音識別装置、コンピュータを交通音識別装置として機能させるための交通音判定プログラム、記録媒体および交通音判定方法 |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
WO2008066441A1 (en) | 2006-12-01 | 2008-06-05 | Zi Decuma Ab | Method for character recognition |
JP5184824B2 (ja) | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
JP5638948B2 (ja) | 2007-08-01 | 2014-12-10 | ジンジャー ソフトウェア、インコーポレイティッド | インターネットコーパスを用いた、文脈依存言語の自動的な修正および改善 |
US8321222B2 (en) | 2007-08-14 | 2012-11-27 | Nuance Communications, Inc. | Synthesis by generation and concatenation of multi-form segments |
JP5376920B2 (ja) | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
TWI383618B (zh) | 2008-12-22 | 2013-01-21 | Univ Nat Taiwan | 管線架構型正規表示式樣式比對處理電路 |
US20130002553A1 (en) | 2011-06-29 | 2013-01-03 | Nokia Corporation | Character entry apparatus and associated methods |
US8533204B2 (en) | 2011-09-02 | 2013-09-10 | Xerox Corporation | Text-based searching of image data |
US9171069B2 (en) | 2012-07-31 | 2015-10-27 | Freedom Solutions Group, Llc | Method and apparatus for analyzing a document |
WO2014165286A1 (en) | 2013-03-12 | 2014-10-09 | Iowa State University Research Foundation, Inc. | Systems and methods for recognizing, classifying, recalling and analyzing information utilizing ssm sequence models |
US9384423B2 (en) | 2013-05-28 | 2016-07-05 | Xerox Corporation | System and method for OCR output verification |
US9613001B2 (en) | 2013-12-20 | 2017-04-04 | Intel Corporation | Processing device for performing convolution operations |
US11256982B2 (en) | 2014-07-18 | 2022-02-22 | University Of Southern California | Noise-enhanced convolutional neural networks |
FR3025344B1 (fr) | 2014-08-28 | 2017-11-24 | Commissariat Energie Atomique | Reseau de neurones convolutionnels |
US10223333B2 (en) | 2014-08-29 | 2019-03-05 | Nvidia Corporation | Performing multi-convolution operations in a parallel processing system |
US9411726B2 (en) | 2014-09-30 | 2016-08-09 | Samsung Electronics Co., Ltd. | Low power computation architecture |
US9418319B2 (en) | 2014-11-21 | 2016-08-16 | Adobe Systems Incorporated | Object detection using cascaded convolutional neural networks |
US20160358069A1 (en) | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
US9959328B2 (en) | 2015-06-30 | 2018-05-01 | Microsoft Technology Licensing, Llc | Analysis of user text |
US10635949B2 (en) | 2015-07-07 | 2020-04-28 | Xerox Corporation | Latent embeddings for word images and their semantics |
US10089576B2 (en) | 2015-07-28 | 2018-10-02 | Microsoft Technology Licensing, Llc | Representation learning using multi-task deep neural networks |
US10726328B2 (en) | 2015-10-09 | 2020-07-28 | Altera Corporation | Method and apparatus for designing and implementing a convolution neural net accelerator |
US10614354B2 (en) | 2015-10-07 | 2020-04-07 | Altera Corporation | Method and apparatus for implementing layers on a convolutional neural network accelerator |
JP6700712B2 (ja) | 2015-10-21 | 2020-05-27 | キヤノン株式会社 | 畳み込み演算装置 |
US10268756B2 (en) | 2015-12-18 | 2019-04-23 | Here Global B.V. | Method and apparatus for providing natural language input in a cartographic system |
US10497089B2 (en) | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
US9665799B1 (en) | 2016-01-29 | 2017-05-30 | Fotonation Limited | Convolutional neural network |
US10325351B2 (en) | 2016-03-11 | 2019-06-18 | Qualcomm Technologies, Inc. | Systems and methods for normalizing an image |
GB201607713D0 (en) | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
US9858636B1 (en) | 2016-06-30 | 2018-01-02 | Apple Inc. | Configurable convolution engine |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US10354009B2 (en) | 2016-08-24 | 2019-07-16 | Microsoft Technology Licensing, Llc | Characteristic-pattern analysis of text |
US10339445B2 (en) * | 2016-10-10 | 2019-07-02 | Gyrfalcon Technology Inc. | Implementation of ResNet in a CNN based digital integrated circuit |
TWI607387B (zh) | 2016-11-25 | 2017-12-01 | 財團法人工業技術研究院 | 字符辨識系統及其字符辨識方法 |
-
2018
- 2018-10-22 US US16/167,523 patent/US10387772B1/en active Active
-
2019
- 2019-07-03 US US16/503,402 patent/US10482374B1/en active Active
- 2019-07-11 EP EP19185678.0A patent/EP3644223A1/en not_active Withdrawn
- 2019-07-26 CN CN201910684593.0A patent/CN110414599A/zh active Pending
- 2019-10-07 JP JP2019184360A patent/JP2020068027A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
US9940534B1 (en) * | 2016-10-10 | 2018-04-10 | Gyrfalcon Technology, Inc. | Digital integrated circuit for extracting features out of an input image based on cellular neural networks |
US20180101747A1 (en) * | 2016-10-10 | 2018-04-12 | Gyrfalcon Technology, Inc. | Data Structure For CNN Based Digital Integrated Circuit For Extracting Features Out Of An Input Image |
CN108345939A (zh) * | 2017-01-25 | 2018-07-31 | 微软技术许可有限责任公司 | 基于定点运算的神经网络 |
CN108038815A (zh) * | 2017-12-20 | 2018-05-15 | 深圳云天励飞技术有限公司 | 集成电路 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111772588A (zh) * | 2020-07-29 | 2020-10-16 | 天津大学 | 一种基于神经网络集成学习的皮肤镜图像的分类方法 |
CN112085030A (zh) * | 2020-09-09 | 2020-12-15 | 重庆广播电视大学重庆工商职业学院 | 相似图像确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2020068027A (ja) | 2020-04-30 |
EP3644223A1 (en) | 2020-04-29 |
US10482374B1 (en) | 2019-11-19 |
US10387772B1 (en) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414599A (zh) | 基于集成学习的图像分类系统 | |
US11360818B2 (en) | Systems and methods for data management | |
US10726177B2 (en) | Reconfigurable interconnect | |
Long et al. | Fully convolutional networks for semantic segmentation | |
US10339445B2 (en) | Implementation of ResNet in a CNN based digital integrated circuit | |
Ke et al. | Multigrid neural architectures | |
CN110059710A (zh) | 用于利用卷积神经网络进行图像分类的装置和方法 | |
CN104574290B (zh) | 应用色调映射的方法、色调映射单元及可读存储介质 | |
EP1262908B1 (en) | Pattern recognition apparatus for detecting predetermined pattern contained in input signal | |
US20180157940A1 (en) | Convolution Layers Used Directly For Feature Extraction With A CNN Based Integrated Circuit | |
JPH09511078A (ja) | 信号処理方法および装置 | |
Xiong et al. | AI-NET: Attention inception neural networks for hyperspectral image classification | |
EP0422348A2 (en) | Two-dimensional systolic array for neural networks, and method | |
CN110059815B (zh) | 人工智能推理计算设备 | |
EP3553709A1 (en) | Deep learning image processing systems using modularly connected cnn based integrated circuits | |
CN108242051A (zh) | 中位数确定 | |
US11645072B2 (en) | Semiconductor device | |
Dürre et al. | A HOG-based real-time and multi-scale pedestrian detector demonstration system on FPGA | |
CN110321974A (zh) | 用于识别手写汉字的装置 | |
Kim et al. | A novel hardware design for SIFT generation with reduced memory requirement | |
CN117561515A (zh) | 拥塞预测模型训练方法、图像处理方法及装置 | |
Grosspietsch et al. | The associative processor system CAPRA: architecture and applications | |
Kawada et al. | An approach for applying large filters on large images using FPGA | |
Porter et al. | Evolving network architectures with custom computers for multi-spectral feature identification | |
Hunt | Tools for image processing and computer vision |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191105 |
|
WD01 | Invention patent application deemed withdrawn after publication |