CN101681449A - 计算处理装置及方法 - Google Patents
计算处理装置及方法 Download PDFInfo
- Publication number
- CN101681449A CN101681449A CN200880019536A CN200880019536A CN101681449A CN 101681449 A CN101681449 A CN 101681449A CN 200880019536 A CN200880019536 A CN 200880019536A CN 200880019536 A CN200880019536 A CN 200880019536A CN 101681449 A CN101681449 A CN 101681449A
- Authority
- CN
- China
- Prior art keywords
- processing
- calculation
- unit
- ring buffer
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 382
- 238000004364 calculation method Methods 0.000 title claims abstract description 251
- 238000000034 method Methods 0.000 title claims description 67
- 239000000872 buffer Substances 0.000 claims abstract description 185
- 230000015654 memory Effects 0.000 claims abstract description 129
- 238000013527 convolutional neural network Methods 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 239000010410 layer Substances 0.000 description 66
- 238000001514 detection method Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 32
- 230000006870 function Effects 0.000 description 23
- 238000013528 artificial neural network Methods 0.000 description 16
- 230000009466 transformation Effects 0.000 description 14
- 238000000605 extraction Methods 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 12
- 238000007781 pre-processing Methods 0.000 description 12
- 238000009825 accumulation Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000003909 pattern recognition Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101000608154 Homo sapiens Peroxiredoxin-like 2A Proteins 0.000 description 1
- 102100039896 Peroxiredoxin-like 2A Human genes 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种计算处理装置,其用于执行通过分级连接对输入数据施加计算处理的多个逻辑处理节点而定义的网络计算,根据规定要由所述多个处理节点执行的预定处理单位的计算的执行顺序的序列信息,依次指定要执行计算处理的处理节点,以实现网络计算,并以所述处理单位执行所指定的处理节点的计算处理以获得计算结果。所述计算装置对多个处理节点分配存储器的部分区域作为环形缓冲区,并在以与所述处理单位的计算结果的量对应的存储区域作为单位,使数据的写入目的地循环的同时,在存储器中写入循环结果。
Description
技术领域
本发明涉及一种应用于模式识别装置、模式识别系统以及分级滤波计算处理装置等的分级计算处理方法和装置。
背景技术
在应用于模式识别系统、预测系统和控制系统等时,普遍使用利用神经网络的信号处理装置。神经网络经常作为在微处理器上运行的软件来实现,并作为针对个人计算机和工作站等的应用软件来提供。
图2是示出利用一般的分层互连神经网络的图像处理装置的配置的示例的示意图。附图标记21表示例如作为检测目标的光栅扫描的图像数据。计算单元22包括三层神经网络并从图像数据21中检测预定对象。附图标记23表示与计算结果对应的输出数据面。计算单元22在扫描并参照图像数据21内的预定图像区域24的同时执行处理,从而检测存在于图像数据21中的检测目标。输出数据面23是与作为检测目标的图像数据21具有相同大小的数据面,并以扫描顺序存储在计算单元22扫描图像数据21的所有区域时对它们进行处理时获得的检测输出。由于计算单元22在检测到目标的位置上输出大的值,因此其能够通过扫描输出数据面23来识别目标在图像面中的位置。
在计算单元22中,附图标记25、26和27表示神经网络的层,预定数量的神经元28存在于各层中。第一层25具有与参照图像的像素数相同数量的神经元28。各神经元经由预定加权系数前馈互连。
图3示出了一个神经元28的配置。附图标记in_1至in_n表示神经元的输入值,其在第二及随后的层中是前一层神经元的输出值。乘法器31a、31b、...、31n输出将各前一层神经元的输出值乘以通过学习而获得的系数w_1至w_n而获得的积。累积加法器32累积来自乘法器31a、31b、...、31n的积。非线性变换处理单元33使用逻辑(logistic)函数、双曲正切函数(tanh函数)等对来自累积加法器32的累积和进行非线性变换,并将该变换结果作为检测结果“out”输出。在这种类型的分级神经网络中,使用诸如公知的反向传播等的学习算法,针对各个检测目标预先确定各个神经元所需的加权系数w_1至w_n。
为了在嵌入式设备等中以高性能和低成本实现这种分层互连神经网络,提出了使用模拟硬件或数字硬件来实现分层互连神经网络的方法。
例如,日本特许第2679730号(专利文献1)公开了使用单层的模拟神经网络硬件作为时分复用,来实现多层结构的分级结构神经网络的体系结构。此外,日本特开平3-55658号公报(专利文献2)公开了使用数字硬件来实现神经网络的实现方法。另一方面,已知神经网络中的称作卷积神经网络(Convolutional Neural Network,以下简称作CNN)的计算方法,作为相对于识别目标的变换使得能够进行鲁棒(robust)的模式识别的方法。例如,日本特开平10-021406号公报(专利文献3)和日本特开2002-358500号公报(专利文献4)提出了应用于图像中的目标识别或检测的示例。
图4示出了作为简单CNN的示例的逻辑网络构成。图4示出了三层CNN的示例,其中第一层406的特征数为3,第二层410的特征数为2,第三层411的特征数为1。附图标记401表示与光栅扫描的图像数据对应的图像数据。图像数据401是到CNN计算的输入数据。附图标记403a到403c表示第一层406的特征面。特征面是指示在使用预定特征提取滤波器(卷积计算的累积和以及非线性处理)扫描前一层数据时通过计算而获得的处理结果的图像数据面。由于特征面是针对光栅扫描的图像数据的检测结果,因此还用面来表示检测结果。根据图像数据401通过对应的特征提取滤波,生成特征面403a到403c。例如,通过对二维卷积滤波器404a到404c进行非线性变换以及计算结果的非线性变换,来生成特征面403a到403c。注意,附图标记402表示卷积滤波器404a到404c的卷积计算所需的参照图像区域。
例如,具有11×11内核(kernel)大小(水平方向上的长度和垂直方向上的高度)的卷积滤波计算通过由下式给出的积和计算,对数据进行处理:
(1)
其中,
input(x,y):坐标(x,y)处的参照像素值
output(x,y):坐标(x,y)处的计算结果
weight(column,row):坐标(x+column,y+row)处的加权系数
columnSize=11,rowSize=11:滤波内核大小(滤波器抽头的数量)。
卷积滤波器404a到404c是具有不同系数的卷积滤波内核。此外,卷积内核根据特征面而具有不同的大小。
CNN计算通过在针对各个像素扫描多个滤波内核的同时重复积和计算,并通过对最终的积和结果进行非线性变换来生成特征面。在计算特征面403a时,由于与前一层互连的数量为1,因此滤波内核的数量为1(卷积滤波器404a)。另一方面,在计算特征面407a和407b中的各个时,由于与前一层互连的数量为3,因此累积三个卷积滤波器409a到409c或409d到409f的计算结果。也就是说,能够通过累积来自卷积滤波器409a到409c的输出,并最终对和进行非线性变换处理来生成特征面407a。
注意,卷积滤波器409a到409f是具有不同滤波系数的卷积内核。如图4所示,卷积滤波器409a到409c和卷积滤波器409d到409f具有不同的内核大小。卷积滤波的累积和非线性变换处理的基本配置与图3所示的神经元的配置相同。即,卷积内核的系数与加权系数w_1到w_n对应。在像特征面407a、407b和408那样与多个先前层的特征面互连时,累积加法器32累积多个卷积内核的计算结果。即,互连的总数与卷积内核大小×前一层的特征数对应。
图5是用于说明CNN计算中的图形检测处理的图。附图标记51a到51c表示例示第一层的特征提取目标,并进行学习以分别提取水平边缘和倾斜边缘的卷积内核。附图标记52a和52b表示根据第一层的多个特征提取结果和它们的空间分配关系而确定的图形。附图标记53表示最终要提取的图形。根据多个第二层特征提取结果和它们的空间分配关系来确定图形53。假定通过使用例如感知学习和反向传播学习等普遍的方法进行学习,针对各个特征预先确定了卷积内核的滤波系数。在对象检测和识别等中,通常使用具有10×10以上的大小的滤波内核。一般而言,卷积内核大小针对各个特征而不同。
以这种方式,在CNN计算中,通过在针对各个特征提取用各个图像面保持结果的同时分级地互连各层,能够实现基于原始特征和它们的空间分配关系的鲁棒的模式检测。
如使用图2所描述的,在使用一般的分级神经网络的用于检测图像中的对象的装置中,作为计算处理所需的存储器大小,除了输入和输出图像缓冲器以外,用于保持神经元输出的缓冲存储器足够用。即,如果提供具有与神经元的数量相同的预定位数的存储器,则能够执行期望的计算处理。
另一方面,在CNN计算的情况下,由于根据前一层的多个特征提取结果的空间分配关系进行特征提取,因此在相邻的层间需要预定大小的数据缓冲器。例如,在图4所示的CNN计算结构的情况下,需要五个特征面403a到403c、407a和407b(缓冲存储器)。即,除了输入和输出图像缓冲器外,还需要图像大小×5的存储器大小。由于该原因,处理所需的存储器大小变得大于一般的分级神经网络。
上述专利文献3和4中公开的方法也是通过图像面来保持特征提取结果的方法,处理所需的存储器大小大于一般的分级神经网络。
特别地,其结果是,在硬件实现CNN计算结构时,需要在LSI中准备具有大的大小的RAM(Random Access Memory,随机存取存储器),这导致电路规模增大。即使在软件实现CNN计算结构时,如果在嵌入式设备中实现CNN计算结构,则由于系统所需的存储器大小增加,成本也同样增加。
另一方面,作为避免存储器大小增加的方法,使用将输入数据分割为区域并输入分割的数据的方法。但是,在对参照区域宽的计算进行分级处理时,需要通过在宽范围上交叠输入数据,来通过分割的方式将输入数据输入,因此处理目标区域增加,导致处理速度下降。
发明内容
为了解决这些问题而作出本发明,一个典型实施例在不分割输入数据的情况下使用小的存储器大小,来实现例如CNN计算等的基于空间分配关系的分级计算处理。
根据本发明的一个方面,提供一种计算处理装置,其分级连接对输入数据施加计算处理的多个逻辑处理节点,所述计算处理装置包括:指定单元,其用于根据规定要由所述多个处理节点执行的预定处理单位的计算的执行顺序的序列信息,从所述多个处理节点中依次指定要执行计算处理的处理节点;执行单元,其用于以所述处理单位执行由所述指定单元指定的所述处理节点的计算处理,以获得计算结果;以及存储器控制单元,其用于分别对所述多个处理节点分配环形缓冲区,并且在以与所述处理单位的所述计算结果对应的量为单位,使数据的写入目的地循环的同时,在对应的环形缓冲区中写入所述执行单元获得的所述处理节点的所述计算结果。
根据本发明的另一个方面,提供一种计算处理装置的控制方法,所述计算处理装置分级连接对输入数据施加计算处理的多个逻辑处理节点,所述控制方法包括:指定步骤,根据规定要由所述多个处理节点执行的预定处理单位的计算的执行顺序的序列信息,从所述多个处理节点中依次指定要执行计算处理的处理节点;执行步骤,以所述处理单位执行在所述指定步骤中指定的所述处理节点的计算处理,以获得计算结果;以及存储器控制步骤,分别对所述多个处理节点分配环形缓冲区,并且在以与作为单位的所述处理单位的计算结果对应的量为单位,使数据的写入目的地循环的同时,在对应的环形缓冲区中写入在所述执行步骤中获得的所述处理节点的所述计算结果。
从以下参照附图对示例性实施例的描述,本发明的其它特征将变得清楚。
附图说明
图1是示出根据第一实施例的CNN处理单元的配置的示例的框图;
图2是用于说明分层互连神经网络的构成的示例的图;
图3是示出神经元的结构的示例的图;
图4是用于说明CNN的网络构成的示例的图;
图5是用于说明CNN的特征提取的示例的图;
图6是示出根据第一实施例的使用分级计算处理的图像处理装置(模式检测装置)的配置的示例的框图;
图7是用于说明根据第一实施例的CNN的网络构成的示例的图;
图8A和图8B是用于说明根据第一实施例的模式检测装置的操作的流程图;
图9是示出网络构成信息表的数据结构的示例的图;
图10是示出序列信息表的数据结构的图;
图11是用于说明存储器分配的图;
图12是示出计算处理单元的配置的示例的框图;
图13A至13D是用于说明环形缓冲区的示例的图;
图14是用于说明处理节点的逻辑连接结构的图;
图15是用于说明参照数据组的读取处理的图;
图16是用于说明存储器存取控制单元103的配置的框图;
图17是用于说明各个CNN计算的操作定时的图;
图18是用于说明根据第二实施例的CNN的网络构成的图;
图19是示出根据第二实施例的CNN处理单元的配置的示例的框图;
图20是用于说明根据第二实施例的环形缓冲区设置单元和环形大小设置单元之间的关系的图;
图21是示出根据第二实施例的图像处理装置(模式检测装置)的配置的示例的框图;
图22A和22B是例示计算单元101针对各线(line)执行处理的状态的说明图;以及
图23A至23C是例示在图7所示的分级网络中针对各线的计算处理的进展的示意图。
具体实施方式
现在,依照附图详细说明本发明的示例性实施例。
<第一实施例>
下面使用图1、图6、图7、图8A和图8B说明第一实施例的操作的详细情况。
图6是示出根据第一实施例的包括分级计算处理电路的图像处理装置(在本实施例中用作模式检测装置)的配置的示例的框图。模式检测装置具有检测图像数据中的特定对象(图像模式)的功能。
参照图6,附图标记61表示图像输入单元,其包括光学系统和例如CCD(Charge-Coupled Device,电荷耦合器件)或CMOS(ComplementaryMetal Oxide Semiconductor,互补金属氧化物半导体)传感器等的光电转换设备。此外,图像输入单元61包括用于控制光电转换设备的驱动电路、AD转换器、用于控制各种图像校正的信号处理电路以及帧缓冲器等。附图标记62表示预处理单元,其执行有效执行检测处理所需的各种预处理。更具体而言,预处理单元62用硬件处理例如颜色转换处理、对比度校正处理等的图像数据转换。CNN处理单元63包括分级计算处理电路,并用作特征检测处理单元。稍后将参照图1描述CNN处理单元63的详细情况。
附图标记66表示DMAC(Direct Memory Access Controller,直接存储存取控制器),其控制图像总线64上的各个处理单元间的数据传输以及图像总线64上的设备和CPU总线67上的RAM 70间的数据传输。附图标记65表示提供图像总线64和CPU总线67间的电桥(bridge)功能的电桥。附图标记68表示总体控制该装置的操作的CPU。附图标记69表示ROM(Read Only Memory,只读存储器),其存储指定CPU 68的操作的指令和各种计算所需的参数数据。例如,ROM 69存储CNN处理单元63的操作所需的加权系数、网络互连信息和序列信息等。RAM(Random AccessMemory,随机存取存储器)70是CPU 68的操作所需的存储器。RAM 70包括例如DRAM(Dynamic RAM,动态RAM)等具有相对大的容量的存储器。CPU 68能够经由电桥65访问图像总线64上的各种处理单元。如图6所示,通过隔离图像总线64和CPU总线67,由硬件实现的例如图像输入单元61、预处理单元62和CNN处理单元63的各个处理单元能够与CPU68同时操作。
图1是示出CNN处理单元63的详细配置的框图。CNN处理单元63依照预定条件,通过以时分的方式执行与逻辑处理节点(稍后描述)对应的计算来处理整个CNN网络的计算。
参照图1,附图标记101表示针对预定数据组执行卷积计算和非线性处理的计算单元。图12示出了计算单元101的更具体的配置的示例。参照图12,乘法器1201依照内核选择信号,将同步输入的输入数据乘以由系数选择器1204选择并输出的加权系数。累积加法器1202将来自乘法器1201的输出累积与连接到前级的处理节点相同的数量。非线性变换处理器1203使用对数函数或tanh函数,对累积加法器1202的累积和进行非线性变换。注意,非线性变换通过列举相对于各个输入值的预定函数值的函数表来实现。加权系数存储单元1205根据检测目标存储多个加权系数数据。加权系数存储单元1205包括RAM等。系数选择器1204依照来自网络构成管理单元108的选择信号,从加权系数存储单元1205依次读出对应的加权系数。
在本实施例中,计算单元101与逻辑处理节点对应地针对各线执行时分处理。图22A和22B是例示计算单元101针对各线执行处理的状态的说明图。
参照图22A和22B,附图标记2201表示计算目标图像(参照数据面)。在计算目标图像2201中示出的最小的一格指示以光栅扫描顺序表示的输入图像的像素或前一层的处理节点中的计算结果像素(input(x,y),x:水平位置,y:垂直位置)。附图标记2202表示计算结果图像。在计算结果图像2202中示出的最小的一格指示按照光栅扫描顺序的计算结果像素(output(x,y),x:水平位置,y:垂直位置)。
计算目标图像2201中的粗框内的区域2203指示在处理位置output(6,7)处的卷积计算时的参照数据的区域。区域2203指示由水平方向上的“11”和垂直方向上的“13”定义卷积内核大小的情况。
计算结果图像2202中的粗框内的区域2204指示存储针对计算目标图像2201的各线的计算(针对水平方向上的一行的计算)结果的区域。区域2204内的交叉平行线阴影区域(右端和左端各五个像素)指示根据卷积内核大小生成的周边区域(未进行任何计算的区域)中的像素。在分级处理中如何处理这些周边区域(删除、嵌入默认值等)不是本发明的实质内容。在这种情况下,例如假定嵌入默认值。
从图22A和图22B能够看出,在执行单位计算(例如针对水平方向上的一行的计算)时,需要计算目标图像2201中的至少具有阴影区域2205的大小的区域。注意,区域2205的水平大小与计算目标图像的水平大小相同,其垂直大小与卷积内核的垂直大小相同。通过在移动单位计算图像目标区域的同时执行获得区域2204的计算结果数据的单位计算,能够针对计算目标图像2201的整个区域进行卷积计算。注意,以下将计算像素、计算结果图像和计算结果数据统称作计算结果。
返回参照图1,附图标记102表示存储器,其包括RAM并存储输入图像、中间层的特征提取结果和最终检测结果等。作为存储器102,优选使用允许进行高速随机存取的SRAM(Static RAM,静态RAM),以使卷积计算加速。
附图标记103表示存储器存取控制单元,其生成用于存储器102的地址,并执行读/写信号控制和数据总线的方向控制等。存储器存取控制单元103依照来自环形缓冲区设置单元104-1到104-n的输出来访问存储器。
附图标记104-1到104-n表示使用存储器102作为针对CNN计算的各个逻辑处理节点的独立环形缓冲区所需的环形缓冲区设置单元。以下将环形缓冲区设置单元中的任意一个描述为环形缓冲区设置单元104。环形缓冲区设置单元104包括用于设置环形缓冲区的大小的环形大小设置单元106、用于保持环形缓冲区的操作状态的环形计数器105以及用于确定存储器102上的物理地址的偏移地址设置单元107等。通过选择器1121和1122选择作为来自环形缓冲区设置单元104-1到104-n的输出的环形计数器值和偏移地址值。
附图标记108表示网络构成管理单元,其确定用于使用一个计算单元101来实现逻辑分级网络处理的构成及其操作。网络构成信息设置单元110作为表数据(构成信息表)保持指定分级网络的逻辑层互连关系的构成信息。该构成信息表包括寄存器或者RAM。网络构成管理单元108包含依照该构成信息表控制存储器存取控制单元103和计算单元101的操作的定序器。下面描述的序列控制单元109执行针对各线的序列控制,但是网络构成管理单元108中的定序器控制逻辑处理节点处理针对一个线的计算所需的序列。
附图标记109表示序列控制单元,其依照序列信息设置单元111中描述的序列信息控制针对各个预定计算处理单位的计算处理顺序。如上面使用图22A和图22B所描述的,本实施例中的预定计算处理单位针对水平方向上的一行。因此,序列控制单元109例如针对各线控制用于在以时分的方式切换逻辑处理节点的同时执行多个处理节点的处理的处理顺序。序列信息设置单元111包括保持序列信息的RAM等。
附图标记113表示CPU总线访问控制单元,其为CPU 68访问CNN处理单元63中的各种寄存器和存储器所需的总线接口。CPU 68经由该接口写入CNN处理单元63中的各种设置数据。注意,要写入的设置数据包括环形大小设置单元106中的缓冲器大小、网络构成信息设置单元110中的构成信息表以及序列信息设置单元111中的序列信息。此外,CPU 68设置计算单元101中的加权系数存储单元1205(图12)中的加权系数。
图7示出本实施例中实现的CNN网络和缓冲存储器之间的关系。图7是用于例示将使用图4描述的CNN网络应用于本实施例的CNN处理单元63的情况的说明图。
参照图7,附图标记701表示输入层,其为具有预定大小的检测目标图像数据。附图标记703a到703c表示存储作为第一层706的计算输出的特征面的环形缓冲区。在图7中,环形缓冲区703a到703c的大小与分配的用于存储各个特征面的存储器的部分区域的大小对应。也就是说,作为针对输入层701的卷积内核704a到704c的计算结果(卷积计算和非线性变换)的特征面存储在具有独立大小的存储器的部分区域(环形缓冲区703a到703c)中。如稍后所描述的,该部分区域被控制为环形缓冲区。作为第一层706的计算结果的特征面是各自与输入层701具有相同大小的数据面,并且存储在具有预定高度的环形缓冲区703a和703b中。这些环形缓冲区是与输入图像具有相同宽度并针对各线循环的带状缓冲区。
图13A至13D是例示本实施例的环形缓冲区的操作的说明图。为了方便描述,假定环形缓冲区的高度(循环数)为6。此外,下面将例示针对六个线的环形缓冲区参照针对以光栅扫描顺序输入的八个线L1到L8的图像数据1300的情况。附图标记1301表示环形缓冲区充满针对六个线的数据的状态。在这种情况下,环形计数器105的值从“0”到“5”循环,并在存储状态1301的状态下为“5”。在下一个处理单位中,线L7存储在环形缓冲区的第一行中,并且环形计数器105的值变成“0”。在这种情况下,环形缓冲区具有存储状态1302,并能够参照线L2到L7。在再下一个处理单位中,线L8存储在第二行位置中,并且环形计数器105的值变成“1”。在这种情况下,环形缓冲区具有存储状态1303,并能够参照线L3到L8。以这种方式,环形缓冲区以与在各处理节点执行预定处理单位的计算时获得的计算结果的量对应的存储区域为单位,进行循环。即,环形计数器105保持指示计算结果数据的写入目的地的循环位置。由于该环形计数器105与构成网络计算的多个处理节点关联地设置,因此针对各个处理节点保持指示计算结果数据的写入目的地的循环位置。
在本实施例中,根据与后级相连的所有卷积内核的大小确定环形缓冲区的高度(循环数)。例如,在环形缓冲区703a的情况下,卷积内核709a和709d的高度(垂直大小)中的较大值被确定为环形缓冲区高度。同样地,分别根据卷积内核709b和709e、以及卷积内核709c和709f的内核大小来确定环形缓冲区703b和703c的高度。
在用于存储作为第二层710的计算结果的特征面的环形缓冲区707a和707b中,卷积内核712a和712b的高度取环形缓冲区的高度中的较大值。注意,可以通过内核大小指定环形缓冲区703c的大小。但是,在本实施例中,由于环形缓冲区703c存储CPU 68用来进行确定处理的特征检测数据,因此与输入图像数据具有相同大小的缓冲区被分配为环形缓冲区703c。CPU 68参照存储在缓冲器713中的最终层711的特征面、和在环形缓冲区703c中保持的第一层706的特征面来确定检测目标图像的存在。
以这种方式,根据本实施例,用于保持中间层的特征面的环形缓冲区703a、703b、703c、707a和707b依照网络互连状态和既定目的分配到具有不同大小的存储区域。以这种方式,最小化在实现CNN网络时所需的存储器大小。
下面将参照图8A和图8B所示的流程图详细描述本实施例的操作。图8A和图8B在单个流程图中描述了CPU 68和CNN处理单元63的操作。图8B中清楚地标明“CNN处理单元操作”的例程(步骤S811到S820)指示CNN处理单元63的操作。
在步骤S801中,在检测处理开始前,CPU 68执行各种初始化处理。各个处理单元响应于来自CPU 68的初始化指令,初始化内部寄存器和存储器等。
在步骤S802中,CPU 68选择检测目标(检测目标图像数据)。在这种情况下,从预先准备的检测目标中选择期望的检测目标。本实施例的CNN处理单元63使用相同的硬件部件,通过更换卷积内核的加权系数、序列信息、网络构成信息等,来构成各种CNN,从而应对各种检测目标。
之后,CPU 68经由电桥65和图像总线64访问CNN处理单元63,并经由CPU总线访问控制单元113在预定寄存器和存储器中设置数据。在确定检测目标后,在步骤S803中,CPU 68在计算单元101的加权系数存储单元1205中设置根据确定的检测目标的加权系数。注意,加权系数是通过针对各检测目标进行学习而生成的卷积内核的系数数据。
在步骤S804中,CPU 68在网络构成管理单元108的网络构成信息设置单元110中设置网络构成信息。网络构成信息是指定网络互连的构成信息表。作为网络构成信息,如在加权系数中那样,依照检测目标设置不同的数据。
图9示出了网络构成信息(网络构成信息表)的数据结构的示例。参照图9,“指定的处理节点”与图7所示的逻辑网络的处理节点对应,第一到第六处理节点是分别用于计算特征面的逻辑处理节点。第一到第六处理节点计算的特征面分别存储在环形缓冲区703a到703c、707a、707b和713中。逻辑处理节点是通过以时分的方式利用计算单元101而实现的逻辑计算处理单位。能够通过图14所示的逻辑网络结构来实现图9所示的网络。在图14中,第零个处理节点与输入图像数据面对应,其实际上不执行任何计算。
“连接的节点的数量”指示处理节点在进行计算时所需的下层的连接的数量。例如,第四处理节点与三个处理节点的下层连接。网络构成管理单元108的内部定序器依照连接的数量控制存储器访问和计算。
“相邻的下层处理节点”是指定处理节点在进行计算时所需的下层的处理节点(与前级连接的处理节点)的信息。例如,第四处理节点与第一、第二和第三处理节点连接。即,在第四处理节点进行计算时,使用第一到第三处理节点的计算结果(在环形缓冲区703a到703c中保持的特征面)作为参照数据。
“计算类型”是指示要执行的计算的类型的信息,在CNN计算的情况下,依照计算类型选择加权系数。在计算单元101具有图12所示的配置时,在“计算类型”中描述的计算类型数量与用于使系数选择器1204选择加权系数的“内核选择信号”对应。注意,在CNN处理的情况下,针对各个处理节点执行不同的计算(不同加权系数的卷积计算)。
在图9中的网络构成信息表中,“参照数据宽度”与对应于“计算类型”的卷积内核的宽度对应,并且“参照数据高度”与对应于“计算类型”的卷积内核的高度对应。
在步骤S805中,CPU 68在序列控制单元109的序列信息设置单元111中设置序列信息。序列信息是规定针对要以时分的方式处理的各个计算处理单位(在本实施例中针对各线)的序列操作的表信息。图10示出了序列信息表的数据结构的示例。“序列号”是针对各线更新的序列号,“处理节点号”指示与序列号对应的逻辑执行处理节点。即,在序列号“1”处针对具有处理节点号“1”的处理节点(第一处理节点)执行计算处理,在序列号“2”处针对具有处理节点号“2”的处理节点执行处理。各处理节点响应于一个执行指令,以一个线作为处理单位执行计算(卷积计算+非线性变换)。因此,序列信息规定预定处理单位的计算的执行顺序。在本实施例中,输入数据是二维图像数据,并且执行针对水平方向上的一个线的图像数据的计算处理作为针对各预定处理单位的计算处理。其结果是,与一个序列号对应的计算处理获取针对水平方向上的一个线的计算结果,并且将该计算结果保持在与该处理节点对应的存储器102的部分区域中。在存储器102中,在与各个独立的处理节点相对应地分配的部分区域中形成以针对一个线的存储区域作为单位来使数据的写入目的地循环的环形缓冲区。
在步骤S806和S807中,CPU 68设置环形缓冲区的操作所需的信息。在本实施例中,CPU 68确定对存储器102的带状缓冲区的分配,并且依照网络计算中的多个处理节点的逻辑连接状态确定带状缓冲区的高度(环形缓冲区的循环数量)。更具体而言,CPU 68在具有与逻辑处理节点相同的数量的寄存器组(环形缓冲区设置单元104)中设置环形缓冲区的操作所需的信息。在用图9所示的网络构成信息表指示的网络结构的情况下,CPU68在六个环形缓冲区设置单元(单元104-1到104-6)中设置预定值。CPU68在环形大小设置单元106中设置对应的逻辑处理节点的环形缓冲区的高度(环形计数器的循环数)。CPU 68在偏移地址设置单元107中设置对应的处理节点的环形缓冲区开始地址。图11是示出在实现图7所示的网络时处理节点、偏移地址和环形缓冲区(带状缓冲区)的高度间的关系的存储器映射。在图11中,“ADRx(x:0到6)”与偏移地址对应,“BHx(x:0到2)”与环形缓冲区的高度(实际设置值为“高度-1”)对应。此外,“WIDTH”指示图像数据的宽度。注意,第零处理节点是用于保持输入图像数据的帧缓冲区域。
在本实施例中,如上所述,存储器102被分割为多个区域,并使用各个区域作为具有不同大小的环形缓冲区或帧缓冲区。例如,在图7所示的计算处理的情况下,第一和第二处理节点使用BH1的缓冲区,第零、第三和第六处理节点使用BH0的缓冲区,第四和第五处理节点使用BH2的缓冲区。BH0是与帧存储器对应的高度(即与输入图像数据的高度相同)。即,根据在执行预定处理单位的计算时处理节点参照的参照数据的大小,确定分配给处理节点的环形缓冲区的循环数。如上所述,在步骤S806中,CPU 68根据要执行的网络计算中的各个处理节点的计算处理内容和分级连接关系配置环形缓冲区。
在完成各种设置时,处理进行到步骤S808。在步骤S808中,CPU 68指令图像输入单元61、预处理单元62和CNN处理单元63开始处理(计算)。在步骤S809中,在接收到来自CPU 68的处理开始指令时,图像输入单元61获取一帧的图像数据,并将获取的图像数据存储到内部缓冲器(未图示)中。在完成存储时,图像输入单元61生成到CPU 68的图像获取完成中断。在步骤S810中,在检测到图像获取完成中断时,CPU 68起动DMAC 66,以将在步骤S809中获取的图像数据传输到预处理单元62的内部存储器(未图示)。在完成图像数据的传输时,预处理单元62开始预处理。预处理单元62依照预先指定的对比度校正信息校正图像数据的对比度。在完成校正处理时,预处理单元62生成到CPU 68的中断。在检测到中断时,CPU 68起动DMAC 66,以将校正后的图像数据传输到CNN处理单元63中的存储器102。在校正后的图像数据到存储器102的传输完成时,CNN处理单元63开始检测处理。
步骤S811到S820对应于与CNN处理单元63的硬件处理关联的例程。
在步骤S811中,序列控制单元109确定执行计算的处理节点。序列控制单元109依照在序列信息设置单元111中保持的序列信息表确定处理节点。例如,在图10所示的序列信息表的情况下,序列控制单元109在第一序列中选择处理节点号“1”。序列控制单元109具有对序列数量进行计数的序列计数器,并针对各序列单位(在该情况下为针对线单位的各处理)将序列计数器向上计数。序列控制单元109使用序列计数器作为地址,通过参照图10所示的序列信息表,确定作为处理目标的处理节点。
在步骤S812中,从存储器102读出确定为处理目标的处理节点的计算所需的参照数据,并将其设置在计算单元101中。
网络构成管理单元108根据从序列控制单元109输出的序列指令信息,从环形缓冲区设置单元104-1到104-n中选择与参照数据对应的环形缓冲区设置单元。例如,如果在步骤S811中选择第一处理节点,则序列控制单元109依照图9所示的网络构成信息表的内容,确定“连接的节点的数量=1”、“连接源处理节点=第零处理节点”和“计算类型=1”。网络构成管理单元108根据网络构成信息表的内容输出节点选择信号,并选择来自与参照数据对应的环形缓冲区设置单元104的输出。在这种情况下,单元108输出与第零处理节点对应的选择信号。存储器存取控制单元103依照所选择的环形缓冲区设置单元104的信息生成要读出的存储器的开始地址。
图16是用于说明存储器存取控制单元103的内部配置的框图。附图标记1601表示控制器,其根据从网络构成管理单元108输出的操作控制信号生成到各个处理单元的信号和到存储器102的存储器控制信号。存储器控制信号例如是相对于存储器102的读/写信号。附图标记1602表示列计数器,其对行方向上(列位置处)的像素的数量进行计数。附图标记1607表示窗口计数器,其与读出在列数方向(水平方向)上连续的多个参照像素时的参照窗口宽度(图15中为大小1502)对应。该参照窗口宽度与卷积内核的宽度对应。在窗口计数器1607对与参照窗口宽度对应的像素数量进行计数时,将其计数值更新为指示参照窗口宽度的下一行的像素。因此,加法器1603将由列计数器1602、窗口计数器1607和地址转换器1605生成的行开始地址值相加,从而生成访问一行数据所需的地址(指定行所需的地址)。
注意,每次依照由网络构成管理单元108保持的网络构成信息表(图9)的内容改变计算类型时,在列计数器1602和窗口计数器1607中设置计数值。
双向控制器1604是根据从控制器1601输出的缓冲器控制信号执行与存储器102的数据总线的双向控制的缓冲器。参照数据高速缓存1606是临时保持卷积计算所需的参照数据的高速缓存。根据前述的地址转换结果从存储器102读出的参照数据存储在参照数据高速缓存1606中。控制器1601在更新窗口计数器1607的同时,通过控制参照数据高速缓存1606来高速缓存在列数方向(水平方向)上连续的参照数据。计算单元101在依次读出存储在高速缓存中的参照数据的同时执行卷积计算。
图15是用于说明存储器存取控制单元103的参照数据读出操作的图。下面参照图16和图15更详细地描述存储器存取控制单元103的操作。
参照图15,附图标记1501表示分配给某个处理节点的环形缓冲区(通过针对各线循环来使用的带状缓冲区)。附图标记1502表示与要计算的卷积内核的参照窗口对应的大小。此外,附图标记1503表示卷积内核的加权系数阵列设置。下面描述卷积内核大小是6×6的情况。在加权系数阵列设置1503中,W00到W05指示针对第一行的数据阵列的加权系数阵列,W10到W15指示针对第二行的数据阵列的加权系数阵列,并且类似地列出了针对各数据阵列的加权系数阵列。在执行卷积计算时,执行系数值和对应位置处的参照数据的积和计算处理。
“WIDTH”指示特征面的宽度(即在本实施例的情况下其与输入图像数据的宽度对应),L3到L8指示特征面的第三到第八行的线数据。A1到A6指示带状缓冲区上的对应线的开始存储地址。
存储器存取控制单元103的地址转换器1605根据由选择器1121和1122选择的环形计数器105的环形计数器值和偏移地址设置单元107的偏移地址值来计算参照数据的开始地址。注意,“偏移地址值”与图15中的A1对应。环形计数器值是指向保持到现在为止的最后的处理线的行的指针。例如,在环形计数器值为“1”,并且滤波内核(=卷积内核)的高度为“6“时,要参照的数据的开始线是A3指示的线。在确定开始地址后,控制器1601在更新窗口计数器1607的值的同时输出存储器地址,并从存储器102读出线L3的连续的参照数据。即,窗口计数器1607用作用于读出在列数方向(水平方向)上连续的参照数据的计数器。注意,在窗口计数器1607中加载与参照区域的宽度对应的值(实际上为宽度-1)为向上计数数据。在这种情况下,读出在列数方向上的第六个连续数据,并将读出的数据存储到参照数据高速缓存1606中。在数据的读出处理完成时(即在与参照区域的宽度对应的计数操作完成时),重置窗口计数器以指示下一个行的第零个像素。接着,根据来自地址转换器1605的地址值及列计数器和窗口计数器的计数值生成地址A4,并且类似地将参照区域中的线L4的参照数据存储在参照数据高速缓存1606中。之后,将从线L5到L8的参照数据依次存储到参照数据高速缓存1606中。即,存储器存取控制单元103根据环形计数器值在环形缓冲区上检测开始行,并将与参照区域的宽度对应的各行的参照数据存储到参照数据高速缓存1606中。
注意,能够根据下式计算要参照的各行的开始地址:
Address(n)=OffsetAddress
+(mod(RingCtr-(FilterHeight-1)+RingHeight+n,RingHeight))×WIDTH
其中
Address(n):第n个线的参照数据行的开始地址;
n:线编号(升序);
OffsetAddress:偏移地址值(与A1对应的地址);
RingCtr:环形计数器输出值;
RingHeight:环形缓冲区的高度;
mod(x,y):x相对于y的余数;以及
WIDTH:特征数据的宽度。
在上述等式中,通过针对各个参照线将n从0依次增加到(滤波内核的高度-1),来获取参照线的开始地址。
上述等式是参照环形计数器值计算参照线的地址的计算方法的示例。在图15所示的示例的情况下,通过以(n,地址)的形式列举n和地址之间的关系,可以得到(0,A3)、(1,A4)、(2,A5)、(3,A6)、(4,A1)和(5,A2)。该处理以环形计数器指示的线(以A2作为开始地址的线)作为最新的地址,以光栅扫描顺序对应于前一个线的指定。
地址转换器1605执行上述地址转换处理。在控制器1601在预定定时将n输出到地址转换器1605时,依次生成开始地址。注意,参照线地址获取方法不限于上述等式,可以使用任何其它方法。在图15的示例中,环形缓冲区的高度与滤波内核的高度相同。此外,即使在环形缓冲区的高度大于滤波内核的高度时,也能够类似地计算开始地址。
返回参照图8B,如上所述,在完成将参照数据组从存储器102高速缓存到参照数据高速缓存1606时,处理从步骤S812进行到步骤S813。在步骤S813中,计算单元101开始卷积计算处理。即,网络构成管理单元108依照在网络构成信息表(图9)中记录的“计算类型”信息,指定计算单元101的加权系数,并驱动计算单元101。计算单元101读出存储在存储器存取控制单元103的参照数据高速缓存1606中的参照数据,并执行卷积计算处理。
在步骤S814和S815中,累积针对所有连接源处理节点(相邻的下层处理节点)执行的卷积计算的结果。下面更详细地描述这些步骤。
在步骤S815中,CNN处理单元63检查连接源处理节点的数量。例如,在图9所示的示例中,当目标处理节点是第四处理节点时,连接源处理节点的数量是3。在这种情况下,依照网络构成信息表的内容针对第一、第二和第三处理节点的计算结果依次执行卷积计算处理,并将这些计算处理结果保持在累计加法器1202中。针对各处理节点的参照数据的读出处理和计算序列与前述方法相同。也就是说,存储器存取控制单元103依照针对各个处理节点而不同的例如环形计数器值、偏移地址等信息,将作为计算目标的参照数据组从存储器102读出到参照数据高速缓存1606。接着,计算单元101针对高速缓存数据执行卷积计算。
在针对所有连接源节点的计算完成时,处理从步骤S815进行到步骤S816,非线性变换处理器1203对来自累积加法器1202的输出进行非线性变换。在步骤S817中,将变换结果存储到存储器102中。下面更详细地描述存储器102中的变换结果的存储处理。
网络构成管理单元108选择与本地处理节点关联的环形缓冲区设置单元104。例如,在第一处理节点的计算期间,网络构成管理单元108选择与第一处理节点对应的环形缓冲区设置单元104。存储器存取控制单元103以所选择的环形缓冲区设置单元104的环形计数器105指示的行的下一行作为开始地址,生成存储器地址。注意,在执行写入操作时,控制器1601将窗口计数器1607重置为零。存储器存取控制单元103在所生成的开始地址处写入计算结果。在写入操作完成时,控制器1601将列计数器1602的值增加1。每次写入一个计算结果时,将列计数器1602加1。因此,在进行下一个处理时,读出移动了一列(水平方向上一个像素的位置)的区域中的参照数据组。
图17是与网络构成管理单元108、存储器存取控制单元103和计算单元101对应的前述计算状态的时序图。最上部分示出了网络构成管理单元108的操作,存储器存取控制单元103和计算单元101依照来自网络构成管理单元108的指令执行它们的处理。
如上所述,网络构成管理单元108依照来自序列控制单元109的序列控制指令信息选择处理节点(1701)。网络构成管理单元108参照网络构成信息表设置连接的节点的数量(1702)。接着,网络构成管理单元108将与所选择的处理节点关联的信息(环形计数器值、偏移地址值等)通知给存储器存取控制单元103,并指令单元103读出参照数据(1703)。存储器存取控制单元103使用所通知的环形计数器值和偏移地址值从存储器102读出参照数据,并将其高速缓存在参照数据高速缓存1606上(1704、1705)。在存储器存取控制单元103进行的参照数据的读出操作完成时,网络构成管理单元108指令计算单元101开始计算。计算单元101读出高速缓存在参照数据高速缓存1606上的参照数据并执行卷积计算处理(1706、1707)。在计算单元101的卷积计算处理完成时,网络构成管理单元108针对下一个处理节点重复相同的处理(1709到1713)。在针对所有相邻的下层处理节点的卷积计算完成时,网络构成管理单元108控制计算单元101执行非线性变换处理(1714),以获得特征面上的一个像素的计算结果。为了在存储器102中存储该计算结果,网络构成管理单元108将与作为上述处理目标的处理节点关联的信息(环形计数器值、偏移地址值等)通知给存储器存取控制单元103,并指令单元103写入计算结果。存储器存取控制单元103使用通知的环形计数器值和偏移地址值将计算结果写入到存储器102中与处理节点对应的部分区域中(1716、1717)。为了针对下一个像素执行前述处理,将列计数器1602增加1(1718)。通过针对一行重复处理1703到1718,获得针对特征面的一行的计算结果。
返回参照图8B,在通过针对一个线重复步骤S812到S817的处理、针对一个线的处理的完成时,即在完成预定处理单位的计算时,处理从步骤S818进行到步骤S819。在步骤S819中,网络构成管理单元108增加与处理期间的处理节点对应的环形缓冲区设置单元104的环形计数器105。每次针对一个线的处理完成时,更新环形计数器105。注意,在环形计数器105的计数值与环形大小设置单元106的值相等时,将环形计数器105重置为零。即,参照环形大小,使环形计数器105的计数值循环。以这种方式,环形计数器105的计数器值指示作为计算结果在环形缓冲区中的写入目的地的存储区域,并指示环形计数器的循环状态。通过以这种方式针对各个逻辑处理节点与环形计数器105的操作一起处理对存储器102的访问,将存储器102上的多个部分区域独立地用作具有不同大小(循环数)的多个环形缓冲区。即,使用图11所示的存储器映射上的多个区域作为环形缓冲区。
在步骤S820中,CNN处理单元63检查是否所有处理节点都完成了计算。在这种情况下,CNN处理单元63检查是否完成了在序列信息表(图10)中描述的所有序列。注意,序列控制单元109通过比较序列计数器(未图示)和预先设置的序列号来检查完成。如果计算尚未完成,处理从步骤S820返回到S811。序列控制单元109更新序列计数器,以参照与计数器值对应的表来获取要处理的下一个处理节点号。在确定处理节点后,网络构成管理单元108依照序列指令信息开始针对下一个处理节点的处理。在处理不同的处理节点时,除了与环形缓冲区和计算关联的各种参数以外,重复与前述处理相同的操作。
如图10所示,计算处理在按顺序从下层开始在环形存储区中依次存储特征数据的同时进行。图23A到23C是例示针对图7所示的分级网络中的各个线的计算处理的进行的说明图。在图23A到23C中,阴影区域指示缓冲区上的处理后的数据的量。
针对各个线重复执行用于计算第一层的特征面的第一到第三处理节点,并将结果存储在环形缓冲区703a到703c中(图23A中的状态)。在将计算第二层的特征面所需的量(高度)的结果存储在环形缓冲区703a到703c中后,针对各个线重复执行第一到第五处理节点。环形缓冲区703a和703b依次重复环形操作,并且环形缓冲区703c依次存储计算结果。此外,环形缓冲区707a和707b依次存储计算结果(图23B中的状态)。
在将计算第三层的特征面所需的量(高度)的结果存储在环形缓冲区707a和707b中后,针对各个线重复执行第一到第六处理节点。在该状态下,环形缓冲区703a和703b依次重复环形操作,并且环形缓冲区703c依次存储计算结果。此外,环形缓冲区707a和707b依次重复环形操作,并且缓冲器713针对各个线依次存储最终结果(图23C中的状态)。
通过以上述序列从下层开始按顺序针对各个线进行处理,在缓冲器713中生成期望的最终特征数据,在环形缓冲区703c中生成期望的中间数据。
以这种方式,通过在以时分的方式针对各个线切换逻辑处理节点的同时执行逻辑处理节点,使由于切换处理节点而产生的开销的影响最小化,并且能够减小所需的存储器大小。
通过独立地控制针对各个处理节点的环形缓冲区,能够将任意中间数据作为帧数据进行保持。在图23A到图23C所示的示例中,在例如环形缓冲区703c中保持的数据与这种帧数据对应。
通过重复步骤S811到S820的处理,能够以时分的方式针对各个线执行根据预定CNN网络的各个特征面的计算。如果在步骤S820中确定最后的处理节点完成,则例如图7中的缓冲器713存储最终层的特征面的所有数据。此时,在环形缓冲区703c中存储了第三处理节点计算的特征面的所有数据。
在所有序列完成时(步骤S820中的“是”),CNN处理单元63生成到CPU 68的中断。在检测到该中断时,CPU 68开始步骤S821中的检查处理。即,CPU 68起动DMAC 66以将特征检测数据1和2(图7)传输到RAM70。CPU 68使用RAM 70上的特征数据来检查目标的检测状态。步骤S821中的检查处理通过例如使用预定阈值将特征数据二值化、并获取其重心的方法来检查是否存在目标。例如,CPU 68可以使用特征检测数据1的结果来检查是否存在检测目标,可以使用特征检测数据2来识别检测目标附近的基本纹理(texture)等。
如果检测目标改变,则处理从步骤S822返回到步骤S802,以重置各种参数。即,在步骤S803到S807中分别更新根据检测目标的加权系数、网络构成信息和序列信息。此外,在步骤S806和S807中根据新的加权系数和网络构成信息重置环形缓冲区设置单元104的环形计数器。以这种方式,逻辑处理节点根据检测目标使用存储器102上的不同区域作为具有不同大小的环形缓冲区来执行处理。即,构成针对与检测目标对应的CNN的图11所示的存储器映射。以这种方式,根据本实施例,基于根据改变的检测目标改变的网络计算中的处理节点的连接结构来改变序列信息,并改变存储器102上对处理节点的部分区域的分配。
如果检测目标没有改变,则处理从步骤S822进行到步骤S823。在步骤S823中检查是否要结束处理。如果不结束处理,则处理进行到步骤S824。在步骤S824和S825中,CNN处理单元63初始化各个环形缓冲区设置单元104的环形计数器105、序列控制单元109的内部计数器等。处理返回到步骤S809以重新开始从图像数据的获取开始的处理。也就是说,针对下一帧图像执行相同的检测处理。如果在步骤S823中指令结束检测处理,则结束该处理。
如上所述,根据第一实施例,针对各个逻辑处理节点设置用于控制环形缓冲区的环形缓冲区设置单元104,并且根据网络构成和既定目的设置环形缓冲区的大小(循环数)。在这种配置中,在以时分的方式针对各个线执行逻辑处理节点的同时执行计算。以这种方式,能够使用最小的存储器大小,以高速处理例如卷积神经网络等的分级计算处理。
此外,一个硬件或者软件能够使用小的存储器大小以高速处理具有各种互连关系(互连系数的大小、互连网络关系和所需的中间数据)的多层网络计算。
<第二实施例>
第一实施例描述了能够针对所有逻辑处理节点设置环形缓冲区的大小的配置。本发明并不限于此。例如,环形缓冲区的大小可以针对各层而不同。也就是说,可以针对网络中处理节点所属的各个层来设置环形缓冲区的大小(循环数)。第二实施例将说明这种配置。
图19示出了在针对各层指定环形缓冲区大小时CNN处理单元63的配置。图18示出了图19所示的CNN处理单元63实现的CNN网络的构成的示例。图18示出了环形缓冲区仅针对各层具有不同的大小的状态。即,第一层1806的缓冲存储器1803a到1803c包括相同大小的环形缓冲区,第二层1810的缓冲存储器1807a和1807b包括相同大小的环形缓冲区。由于该原因,在图18所示的构成中,第一层的第三特征的环形缓冲区大小与图7所示的构成不同。
下面,在第二实施例中描述与第一实施例的不同之处。在第二实施例中,与在第一实施例中相同,CNN处理单元63具有针对各个逻辑处理节点的环形缓冲区设置单元194-1到194-n。以下将环形缓冲区设置单元中的任意一个描述为环形缓冲区设置单元194。环形缓冲区设置单元194包括环形计数器105和偏移地址设置单元107。根据第二实施例的CNN处理单元63包括针对各个逻辑层设置的环形大小设置单元1961a和1961b。包括两个环形大小设置单元1961a和1961b的配置能够应对如图18所示的层数直到3的计算。
假定环形大小设置单元1961a和1961b连接到多个环形缓冲区设置单元194。但是,一个环形大小设置单元连接到各环形缓冲区设置单元。即,通过环形大小设置单元1961a和1961b将环形缓冲区设置单元194-1到194-n分组。图20示出了环形大小设置单元和环形缓冲区设置单元之间的关系。
参照图18,环形大小设置单元1961a连接到用于控制第一层1806的环形缓冲区的环形缓冲区设置单元。环形大小设置单元1961b连接到用于控制第二层1810的环形缓冲区的环形缓冲区设置单元。在执行计算时,根据由网络构成管理单元108保持的网络构成信息表,选择与处理节点对应的环形缓冲区设置单元194。
下面使用图8A和图8B的流程图,与第二实施例的处理序列关联地描述与第一实施例的不同之处。在第二实施例中,在步骤S806中针对各层在环形大小设置单元1961a和1961b中设置环形缓冲区大小。从针对各层分组的环形缓冲区设置单元194-1到194-n中选择与要构成的网络对应的环形缓冲区设置单元,并且在所选择的环形缓冲区设置单元中设置偏移地址。在构成图18所示的逻辑网络时,在环形大小设置单元1961a和1961b中分别设置与第一和第二层的环形缓冲区的高度对应的值。
由于后续的处理与第一实施例中的处理相同,因此不重复其描述。在处理图18所示的网络时,网络构成管理单元108在根据前述设置从环形缓冲区设置单元194-1到194-n中选择与预定逻辑处理节点对应的环形缓冲区设置单元的同时,进行处理。以这种方式,在第二实施例中,与在第一实施例中相同,针对各个线执行处理。
如上所述,根据第二实施例,能够进一步减少构成环形大小设置单元的寄存器数量。
<第三实施例>
在第一和第二实施例的描述中,用硬件来实现CNN处理单元63。但是,本发明也能够应用于CNN处理单元63的软件实现。图21是示出软件实现的情况下的图像处理装置(模式检测装置)的配置的示例的框图。在图21所示的配置中,从图6所示的配置中去除了CNN处理单元63,并增加了可随机存取的高速存储器2103(以下称作RAM 2103)。下面主要描述不同之处。
在接收到步骤S810中的来自预处理单元62的处理完成中断时,CPU68起动DMAC 66以将存储在预处理单元62的存储器中的校正后的图像数据传输到RAM 2103。CPU 68通过软件针对存储在RAM 2103中的图像数据执行步骤S811到S820中的处理。在这种情况下,将RAM 2103用作CNN计算处理的操作所需的工作存储器。即,CPU 68在RAM 2103中构成图11所示的存储器映射,并使用与处理节点对应的区域作为环形缓冲区。
将包括在第一实施例的CNN处理单元63中的环形缓冲区设置单元104等定义为软件上的变量,并将其分配到例如RAM 70上。
在第三实施例的情况下,与在硬件实现中相同,能够减少处理所需的缓冲存储器的数量。在图21所示的配置中,能够使用比一般的分级网络计算小的存储器大小来实现RAM 2103。此外,这适用于使用RAM 70作为工作存储器而不准备任何RAM 2103的情况。
<其它实施例>
在上述实施例中,说明了下列方法:对存储器102的连续的地址空间分配与多个处理节点对应的多个部分区域,并使用环形计数器105在针对各个线使这些区域循环的同时使用存储器102的部分区域。但是,本发明不限于这种特定的存储器使用方法。例如,可以使用在参照与环形计数器对应的存储地址表针对各预定处理单位分配不连续区域的同时执行处理的方法。即,在本发明中指定的环形缓冲区不限于狭义的环形缓冲区或循环缓冲区。
在上述实施例中,说明了根据序列信息表(图10)的内容以时分的方式针对各个线处理逻辑处理节点的情况。但是,可以使用其它方法。例如,可以使用依照读写缓冲器的使用状态自适应地(adaptively)调度要执行的处理节点的方法。
在上述实施例中,例示了以与输入层相同的分辨率保持特征提取结果的情况。但是,本发明能够类似地应用于相对于输入面对特征面(计算结果)进行子采样(sub-sample)的配置。
在上述实施例中,描述了针对作为最有效的处理单位的各个线执行序列控制的情况。但是,本发明不限于这种特定的处理单位。例如,本发明能够应用于针对不大于一个线的各个单位或针对各个块执行序列控制的情况。
上述实施例说明了对卷积神经网络计算的应用。但是,本发明不限于这种特定的应用。本发明能够应用于需要预定参照区域的各种类型的分级计算处理。此外,本发明不限于二维计算。
在上述实施例中,说明了作为寄存器设置各环形缓冲区设置单元104或194的情况。但是,其它参数存储器和存储器102可以共享环形缓冲区设置单元。例如,可以在环形缓冲区设置单元104或194中保持的数据的存储目的地映射存储器102上的预定地址。在这种情况下,能够更有效地使用电路资源。即,能够实现更灵活的网络构成。
在上述实施例中,说明了在参照数据高速缓存1606中高速缓存所有二维参照数据,接着起动计算单元101的情况。但是,本发明不限于此。在卷积计算等的情况下,可以控制计算单元101针对参照窗口中的各行来进行驱动。在这种情况下,在响应于窗口计数器1607的减小的连续的列数方向(水平方向)上的参照数据的读出处理完成时,在下一个线的参照数据读出处理开始之前,驱动计算单元101。计算单元101执行针对读出的数据的卷积计算。在计算完成时,开始下一个线的参照数据读出处理。重复上述处理。在这种情况下,由于参照数据高速缓存大小等于参照数据宽度的大小就足够用,因此能够使用更小的高速缓存大小来实现分级计算。
在第二实施例中,说明了针对各层设置环形大小设置单元1961a和1961b的情况。可替换地,可以使用针对各层设置环形缓冲区设置单元104的结构。在这种情况下,控制各环形计数器,以针对各分级处理单位进行更新。虽然限制了逻辑处理节点的操作序列(需要使用针对层单位的序列),但是能够减小电路规模。
在上述实施例中,说明了环形缓冲区设置单元能够任意设置环形缓冲区大小的情况(在环形缓冲区包括寄存器或RAM时)。但是,可以在所有或部分环形大小设置单元中将环形缓冲区大小设置为固定值。
详细说明了实施例。本发明可以采用例如系统、装置、方法、程序和存储介质等形式的实施方式。本发明可以应用于由多个设备构成的系统、或由单个设备构成的装置。
注意,本发明包括通过直接或远程地向系统或装置提供软件程序,并且由该系统或装置的计算机读出并执行所提供的程序代码来实现前述实施例的功能的情况。在这种情况下提供的程序是与在实施例中例示的各个流程图对应的程序。
因此,安装在计算机中的使用计算机来实现本发明的功能处理的程序代码本身实现本发明。也就是说,本发明包括用于实现本发明的功能处理的计算机程序本身。
在这种情况下,不特别限制程序的形式,可以使用目标代码、由解释器执行的程序和提供给OS的脚本数据等,只要其具有程序的功能即可。
作为用于提供程序的计算机可读存储介质,可以使用以下介质。例如,可以使用软盘、硬盘、光盘、磁光盘、MO、CD-ROM、CD-R、CD-RW、磁带、非易失性存储卡、ROM和DVD(DVD-ROM、DVD-R)等。
作为其它程序提供方法,用户使用客户计算机上的浏览器与互联网上的主页建立连接,将本发明的计算机程序从主页下载到例如硬盘等的记录介质。在这种情况下,下载的程序可以是包括自动安装功能的压缩文件。此外,可以将形成本发明的程序的程序代码分割成多个文件,从不同的主页下载该多个文件。换言之,本发明包括使多个用户下载计算机实现本发明的功能处理所需的程序文件的WWW服务器。
此外,可以将存储本发明的加密程序的例如CD-ROM等的存储介质分发给用户。在这种情况下,可以允许清楚预定条件的用户经由互联网从主页下载用于对加密程序进行解密的密钥信息。用户使用下载的密钥信息执行加密的程序,以将程序安装到计算机中。
在计算机执行读出的程序时,能够实现前述实施例的功能。此外,可以根据该程序的指令,与在计算机上运行的OS等协作来实现上述实施例的功能。在这种情况下,OS等执行部分或全部实际处理,从而实现前述实施例的功能。
此外,在将从存储介质读出的程序写入在插入或连接到计算机的功能扩展板或功能扩展单元上装配的存储器时,可以实现前述实施例的部分或全部功能。在这种情况下,在将程序写入功能扩展板或单元后,在功能扩展板或功能扩展单元上装配的CPU等根据该程序的指令执行部分或全部实际处理。
根据本发明,经由中间计算结果分级连接计算单元的多层网络能够使用小容量的存储器以高速进行处理。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公开的示例性实施例。所附权利要求的范围符合最宽的解释,以覆盖所有这种变型、等同结构和功能。
本申请要求2007年6月15日提交的日本专利申请2007-159491号的优先权,其全部内容通过引用包含于此。
Claims (22)
1.一种计算处理装置,其分级连接对输入数据施加计算处理的多个逻辑处理节点,所述计算处理装置包括:
指定单元,其用于根据规定要由所述多个处理节点执行的预定处理单位的计算的执行顺序的序列信息,从所述多个处理节点中依次指定要执行计算处理的处理节点;
执行单元,其用于以所述处理单位执行由所述指定单元指定的所述处理节点的计算处理,以获得计算结果;以及
存储器控制单元,其用于分别对所述多个处理节点分配环形缓冲区,并且在以与所述处理单位的所述计算结果对应的量为单位,使数据的写入目的地循环的同时,在对应的环形缓冲区中写入所述执行单元获得的所述处理节点的所述计算结果。
2.根据权利要求1所述的计算处理装置,其中,所述存储器控制单元根据所述多个处理节点的逻辑连接状态来确定对所述处理节点的所述环形缓冲区的分配。
3.根据权利要求2所述的计算处理装置,其中,所述存储器控制单元根据在与处理节点的后级连接的处理节点执行所述处理单位的计算时要参照的数据的大小,来确定对所述处理节点分配的各环形缓冲区的循环数。
4.根据权利要求1至3中的任意一项所述的计算处理装置,其中,所述输入数据是二维图像数据,
所述执行单元通过以所述图像数据的水平方向上的一个线作为单位执行计算处理,来获取针对所述水平方向上的一个线的计算结果,并且
所述存储器控制单元以针对所述水平方向上的一个线的存储区域作为单位,使所述数据的写入目的地循环。
5.根据权利要求2所述的计算处理装置,其中,所述指定单元依照要执行的计算的改变来改变所述序列信息,并且
所述存储器控制单元根据改变后的计算中的处理节点的连接结构来改变对所述处理节点的环形缓冲区的分配。
6.根据权利要求1至5中的任意一项所述的计算处理装置,该计算处理装置还包括:
保持单元,其用于与所述多个处理节点关联地保持指示所述计算结果在所述环形缓冲区中的写入目的地的循环位置。
7.根据权利要求1至6中的任意一项所述的计算处理装置,其中,所述存储器控制单元针对各个处理节点设置所述环形缓冲区的循环数。
8.根据权利要求1至6中的任意一项所述的计算处理装置,其中,所述存储器控制单元针对所述处理节点所属的各个层设置所述环形缓冲区的循环数。
9.根据权利要求1至8中的任意一项所述的计算处理装置,其中,所述环形缓冲区是存储器的具有连续的地址空间的部分区域,并且所述环形缓冲区通过对所述多个处理节点分配所述连续的地址空间的不同的子空间来共享。
10.根据权利要求1至9中的任意一项所述的计算处理装置,其中,所述计算处理是卷积神经网络的计算处理。
11.一种计算处理装置的控制方法,所述计算处理装置分级连接对输入数据施加计算处理的多个逻辑处理节点,所述控制方法包括:
指定步骤,根据规定要由所述多个处理节点执行的预定处理单位的计算的执行顺序的序列信息,从所述多个处理节点中依次指定要执行计算处理的处理节点;
执行步骤,以所述处理单位执行在所述指定步骤中指定的所述处理节点的计算处理,以获得计算结果;以及
存储器控制步骤,分别对所述多个处理节点分配环形缓冲区,并且在以与作为单位的所述处理单位的计算结果对应的量为单位,使数据的写入目的地循环的同时,在对应的环形缓冲区中写入在所述执行步骤中获得的所述处理节点的所述计算结果。
12.根据权利要求11所述的控制方法,其中,在所述存储器控制步骤中,根据所述多个处理节点的逻辑连接状态来确定对所述处理节点的所述环形缓冲区的分配。
13.根据权利要求12所述的控制方法,其中,在所述存储器控制步骤中,根据在与处理节点的后级连接的处理节点执行所述处理单位的计算时要参照的数据的大小,来确定对所述处理节点分配的各环形缓冲区的循环数。
14.根据权利要求11至13中的任意一项所述的控制方法,其中,所述输入数据是二维图像数据,
在所述执行步骤中,通过以所述图像数据的水平方向上的一个线作为单位执行计算处理,来获取针对所述水平方向上的一个线的计算结果,并且
在所述存储器控制步骤中,以针对所述水平方向上的一个线的存储区域作为单位,来使所述数据的写入目的地循环。
15.根据权利要求12所述的控制方法,其中,在所述指定步骤中,依照要执行的计算的改变来改变所述序列信息,并且
在所述存储器控制步骤中,根据改变后的计算中的处理节点的连接结构来改变对所述处理节点的环形缓冲区的分配。
16.根据权利要求11至15中的任意一项所述的控制方法,所述控制方法还包括:
保持步骤,与所述多个处理节点关联地保持指示所述计算结果在所述环形缓冲区中的写入目的地的循环位置。
17.根据权利要求11至16中的任意一项所述的控制方法,其中,在所述存储器控制步骤中,针对各个处理节点设置所述环形缓冲区的循环数。
18.根据权利要求11至16中的任意一项所述的控制方法,其中,在所述存储器控制步骤中,针对所述处理节点所属的各个层设置所述环形缓冲区的循环数。
19.根据权利要求11至18中的任意一项所述的控制方法,其中,所述环形缓冲区是存储器的具有连续的地址空间的部分区域,并且所述环形缓冲区通过对所述多个处理节点分配所述连续的地址空间的不同的子空间来共享。
20.根据权利要求11至19中的任意一项所述的控制方法,其中,所述计算处理是卷积神经网络的计算处理。
21.一种计算机程序,其用于使计算机执行根据权利要求11至20中的任意一项所述的控制方法。
22.一种计算机可读存储介质,其存储用于使计算机执行根据权利要求11至20中的任意一项所述的控制方法的计算机程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007159491A JP5184824B2 (ja) | 2007-06-15 | 2007-06-15 | 演算処理装置及び方法 |
JP159491/2007 | 2007-06-15 | ||
PCT/JP2008/061081 WO2008153194A1 (en) | 2007-06-15 | 2008-06-11 | Calculation processing apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681449A true CN101681449A (zh) | 2010-03-24 |
CN101681449B CN101681449B (zh) | 2013-03-06 |
Family
ID=40129791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800195360A Expired - Fee Related CN101681449B (zh) | 2007-06-15 | 2008-06-11 | 计算处理装置及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7937346B2 (zh) |
JP (1) | JP5184824B2 (zh) |
CN (1) | CN101681449B (zh) |
WO (1) | WO2008153194A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544506A (zh) * | 2013-10-12 | 2014-01-29 | Tcl集团股份有限公司 | 一种基于卷积神经网络的图像分类方法和装置 |
CN106056212A (zh) * | 2016-05-25 | 2016-10-26 | 清华大学 | 一种人工神经网络计算核 |
CN109034176A (zh) * | 2017-06-08 | 2018-12-18 | 财团法人资讯工业策进会 | 辨识系统以及辨识方法 |
CN110199256A (zh) * | 2016-12-01 | 2019-09-03 | 索尼半导体解决方案公司 | 计算设备、计算方法、以及计算机程序 |
CN110443360A (zh) * | 2017-06-16 | 2019-11-12 | 上海兆芯集成电路有限公司 | 用于操作处理器的方法 |
CN111428870A (zh) * | 2019-01-10 | 2020-07-17 | 佳能株式会社 | 信息处理装置及存储器控制方法 |
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
CN112334915A (zh) * | 2018-06-25 | 2021-02-05 | 奥林巴斯株式会社 | 运算处理装置 |
US20210082119A1 (en) * | 2018-01-15 | 2021-03-18 | Shenzhen Corerain Technologies Co., Ltd. | Image semantic segmentation method, programmable logic circuit, system and electronic device |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5495822B2 (ja) * | 2010-01-29 | 2014-05-21 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム |
US8775341B1 (en) | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US9015093B1 (en) | 2010-10-26 | 2015-04-21 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
JP5869759B2 (ja) | 2010-11-04 | 2016-02-24 | キヤノン株式会社 | 無線電力伝送システム、無線電力伝送システムの制御方法、無線送電装置、無線送電装置の制御方法、およびプログラム |
US9042655B2 (en) * | 2011-06-27 | 2015-05-26 | Konica Minolta, Inc. | Image processing apparatus, image processing method, and non-transitory computer readable recording medium |
JP5794686B2 (ja) | 2011-08-10 | 2015-10-14 | キヤノン株式会社 | 撮像装置及びその駆動方法 |
JP5852364B2 (ja) | 2011-08-26 | 2016-02-03 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、およびプログラム |
JP5911299B2 (ja) | 2011-12-27 | 2016-04-27 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法およびプログラム |
US8994746B2 (en) | 2012-06-27 | 2015-03-31 | Google Inc. | System and method for generating a flow based on multiple types of interactions |
JP6314628B2 (ja) | 2014-04-28 | 2018-04-25 | 株式会社デンソー | 演算処理装置 |
CN103984528A (zh) * | 2014-05-15 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 基于飞腾处理器平台的多线程并发数据压缩方法 |
JP6706788B2 (ja) | 2015-03-06 | 2020-06-10 | パナソニックIpマネジメント株式会社 | 画像認識方法、画像認識装置およびプログラム |
US10699186B2 (en) | 2015-12-02 | 2020-06-30 | Google Llc | Determining orders of execution of a neural network |
JP6631262B2 (ja) * | 2016-01-14 | 2020-01-15 | 株式会社デンソー | 演算処理装置 |
US11237528B2 (en) * | 2016-02-16 | 2022-02-01 | Ademco Inc. | System and method for handing off the configuration of a building device from a contractor to a customer using a hang tag or the like |
JP6333871B2 (ja) * | 2016-02-25 | 2018-05-30 | ファナック株式会社 | 入力画像から検出した対象物を表示する画像処理装置 |
US10942671B2 (en) | 2016-04-25 | 2021-03-09 | Huawei Technologies Co., Ltd. | Systems, methods and devices for a multistage sequential data process |
WO2017185336A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 用于执行pooling运算的装置和方法 |
CN111310904B (zh) * | 2016-04-29 | 2024-03-08 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN106056751B (zh) * | 2016-05-20 | 2019-04-12 | 聚龙股份有限公司 | 冠字号码的识别方法及系统 |
CN105957238B (zh) | 2016-05-20 | 2019-02-19 | 聚龙股份有限公司 | 一种纸币管理方法及其系统 |
JP6848216B2 (ja) * | 2016-06-06 | 2021-03-24 | 株式会社デンソー | 演算処理装置 |
JP2018022339A (ja) | 2016-08-03 | 2018-02-08 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6786948B2 (ja) | 2016-08-12 | 2020-11-18 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
DE102016216947A1 (de) * | 2016-09-07 | 2018-03-08 | Robert Bosch Gmbh | Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells |
US10366302B2 (en) | 2016-10-10 | 2019-07-30 | Gyrfalcon Technology Inc. | Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor |
US10402628B2 (en) | 2016-10-10 | 2019-09-03 | Gyrfalcon Technology Inc. | Image classification systems based on CNN based IC and light-weight classifier |
US10366328B2 (en) | 2017-09-19 | 2019-07-30 | Gyrfalcon Technology Inc. | Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit |
US10360470B2 (en) | 2016-10-10 | 2019-07-23 | Gyrfalcon Technology Inc. | Implementation of MobileNet in a CNN based digital integrated circuit |
US10043095B2 (en) * | 2016-10-10 | 2018-08-07 | Gyrfalcon Technology, Inc. | Data structure for CNN based digital integrated circuit for extracting features out of an input image |
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 |
US10339445B2 (en) | 2016-10-10 | 2019-07-02 | Gyrfalcon Technology Inc. | Implementation of ResNet in a CNN based digital integrated circuit |
CN106530210B (zh) * | 2016-10-31 | 2019-09-06 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
US10846836B2 (en) * | 2016-11-14 | 2020-11-24 | Ricoh Company, Ltd. | View synthesis using deep convolutional neural networks |
JP6852365B2 (ja) | 2016-11-25 | 2021-03-31 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法 |
US10657424B2 (en) * | 2016-12-07 | 2020-05-19 | Samsung Electronics Co., Ltd. | Target detection method and apparatus |
JP6972547B2 (ja) | 2016-12-27 | 2021-11-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6936592B2 (ja) | 2017-03-03 | 2021-09-15 | キヤノン株式会社 | 演算処理装置およびその制御方法 |
KR102499396B1 (ko) * | 2017-03-03 | 2023-02-13 | 삼성전자 주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법 |
US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
JP7294768B2 (ja) | 2017-08-04 | 2023-06-20 | オムロン株式会社 | 画像処理システム |
JP6929734B2 (ja) | 2017-08-08 | 2021-09-01 | キヤノン株式会社 | 判別演算装置、判別演算方法及びプログラム |
JP2019040403A (ja) | 2017-08-25 | 2019-03-14 | ルネサスエレクトロニクス株式会社 | 半導体装置および画像認識システム |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US10599978B2 (en) * | 2017-11-03 | 2020-03-24 | International Business Machines Corporation | Weighted cascading convolutional neural networks |
JP7299846B2 (ja) * | 2017-12-29 | 2023-06-28 | カンブリコン テクノロジーズ コーポレイション リミティド | ニューラルネットワーク処理方法、コンピュータシステム及び記憶媒体 |
EP3651079B1 (en) | 2018-02-13 | 2021-10-27 | Shanghai Cambricon Information Technology Co., Ltd | Computation device and method |
US12073215B2 (en) | 2018-02-13 | 2024-08-27 | Shanghai Cambricon Information Technology Co., Ltd | Computing device with a conversion unit to convert data values between various sizes of fixed-point and floating-point data |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
CN116991225A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
WO2019204700A1 (en) * | 2018-04-19 | 2019-10-24 | University Of South Florida | Neonatal pain identification from neonatal facial expressions |
JP7169768B2 (ja) * | 2018-05-08 | 2022-11-11 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
KR20190140808A (ko) * | 2018-05-30 | 2019-12-20 | 삼성전자주식회사 | 프로세서, 전자 장치 및 그 제어 방법 |
US11244027B2 (en) * | 2018-05-30 | 2022-02-08 | Samsung Electronics Co., Ltd. | Processor, electronics apparatus and control method thereof |
KR102470893B1 (ko) | 2018-06-27 | 2022-11-25 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템 |
US10417342B1 (en) | 2018-07-03 | 2019-09-17 | Gyrfalcon Technology Inc. | Deep learning device for local processing classical chinese poetry and verse |
US12099926B2 (en) * | 2018-07-26 | 2024-09-24 | Mitsubishi Electric Corporation | Water treatment plant and method for operating water treatment plant |
US10311149B1 (en) | 2018-08-08 | 2019-06-04 | Gyrfalcon Technology Inc. | Natural language translation device |
EP3640810A4 (en) | 2018-08-28 | 2021-05-05 | Cambricon Technologies Corporation Limited | DATA PRE-PROCESSING PROCESS AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA |
WO2020062392A1 (zh) | 2018-09-28 | 2020-04-02 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
US10387772B1 (en) | 2018-10-22 | 2019-08-20 | Gyrfalcon Technology Inc. | Ensemble learning based image classification systems |
CN111383637A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
US20200334522A1 (en) | 2019-04-18 | 2020-10-22 | Cambricon Technologies Corporation Limited | Data processing method and related products |
CN111832739B (zh) | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
US11176493B2 (en) * | 2019-04-29 | 2021-11-16 | Google Llc | Virtualizing external memory as local to a machine learning accelerator |
JP7278150B2 (ja) * | 2019-05-23 | 2023-05-19 | キヤノン株式会社 | 画像処理装置、撮像装置、画像処理方法 |
CN112085191B (zh) | 2019-06-12 | 2024-04-02 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
JP7146952B2 (ja) | 2019-08-23 | 2022-10-04 | 安徽寒武紀信息科技有限公司 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
WO2021036905A1 (zh) | 2019-08-27 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030179927A1 (en) * | 2002-03-20 | 2003-09-25 | Fuji Xerox Co., Ltd. | Image processing apparatus and image processing method |
US20040046773A1 (en) * | 2002-09-10 | 2004-03-11 | Canon Kabushiki Kaisha | Resolution conversion device and method, and information processing apparatus |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2679730B2 (ja) | 1988-08-31 | 1997-11-19 | 富士通株式会社 | 階層構造ニューラルネット |
FI894021A (fi) * | 1988-08-31 | 1990-03-01 | Fujitsu Ltd | Neuronstruktur. |
JPH0355658A (ja) | 1989-07-25 | 1991-03-11 | Fujitsu Ltd | 半導体情報処理装置 |
US6038337A (en) * | 1996-03-29 | 2000-03-14 | Nec Research Institute, Inc. | Method and apparatus for object recognition |
JPH10162120A (ja) * | 1996-12-02 | 1998-06-19 | Mitsubishi Electric Corp | 動画像処理方法ならびに動画像処理装置 |
JPH11184841A (ja) | 1997-12-22 | 1999-07-09 | Canon Inc | 画像処理方法及び装置 |
DE60130742T2 (de) * | 2001-05-28 | 2008-07-17 | Honda Research Institute Europe Gmbh | Mustererkennung mit hierarchischen Netzen |
JP4846924B2 (ja) * | 2001-05-31 | 2011-12-28 | キヤノン株式会社 | パターン認識装置 |
US7016529B2 (en) * | 2002-03-15 | 2006-03-21 | Microsoft Corporation | System and method facilitating pattern recognition |
US7028271B2 (en) * | 2002-11-06 | 2006-04-11 | Canon Kabushiki Kaisha | Hierarchical processing apparatus |
JP2004246678A (ja) * | 2003-02-14 | 2004-09-02 | Yaskawa Electric Corp | データ記憶処理装置およびこれを備えたデータ記憶装置 |
JP4532915B2 (ja) * | 2004-01-29 | 2010-08-25 | キヤノン株式会社 | パターン認識用学習方法、パターン認識用学習装置、画像入力装置、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体 |
JP2005352900A (ja) * | 2004-06-11 | 2005-12-22 | Canon Inc | 情報処理装置、情報処理方法、パターン認識装置、及びパターン認識方法 |
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
-
2007
- 2007-06-15 JP JP2007159491A patent/JP5184824B2/ja not_active Expired - Fee Related
-
2008
- 2008-06-11 CN CN2008800195360A patent/CN101681449B/zh not_active Expired - Fee Related
- 2008-06-11 WO PCT/JP2008/061081 patent/WO2008153194A1/en active Application Filing
- 2008-06-11 US US12/663,687 patent/US7937346B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030179927A1 (en) * | 2002-03-20 | 2003-09-25 | Fuji Xerox Co., Ltd. | Image processing apparatus and image processing method |
US20040046773A1 (en) * | 2002-09-10 | 2004-03-11 | Canon Kabushiki Kaisha | Resolution conversion device and method, and information processing apparatus |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544506B (zh) * | 2013-10-12 | 2017-08-08 | Tcl集团股份有限公司 | 一种基于卷积神经网络的图像分类方法和装置 |
CN103544506A (zh) * | 2013-10-12 | 2014-01-29 | Tcl集团股份有限公司 | 一种基于卷积神经网络的图像分类方法和装置 |
CN106056212A (zh) * | 2016-05-25 | 2016-10-26 | 清华大学 | 一种人工神经网络计算核 |
CN106056212B (zh) * | 2016-05-25 | 2018-11-23 | 清华大学 | 一种人工神经网络计算核 |
CN110199256A (zh) * | 2016-12-01 | 2019-09-03 | 索尼半导体解决方案公司 | 计算设备、计算方法、以及计算机程序 |
CN110199256B (zh) * | 2016-12-01 | 2023-09-12 | 索尼半导体解决方案公司 | 计算设备、计算方法、以及计算机程序 |
CN109034176B (zh) * | 2017-06-08 | 2021-09-17 | 财团法人资讯工业策进会 | 辨识系统以及辨识方法 |
CN109034176A (zh) * | 2017-06-08 | 2018-12-18 | 财团法人资讯工业策进会 | 辨识系统以及辨识方法 |
CN110443360A (zh) * | 2017-06-16 | 2019-11-12 | 上海兆芯集成电路有限公司 | 用于操作处理器的方法 |
US11636665B2 (en) * | 2018-01-15 | 2023-04-25 | Shenzhen Corerain Technologies Co., Ltd. | Streaming image semantic segmentation method, logical integrated circuit system and electronic device |
US20210082119A1 (en) * | 2018-01-15 | 2021-03-18 | Shenzhen Corerain Technologies Co., Ltd. | Image semantic segmentation method, programmable logic circuit, system and electronic device |
CN112334915A (zh) * | 2018-06-25 | 2021-02-05 | 奥林巴斯株式会社 | 运算处理装置 |
US11663453B2 (en) | 2019-01-10 | 2023-05-30 | Canon Kabushiki Kaisha | Information processing apparatus and memory control method |
CN111428870A (zh) * | 2019-01-10 | 2020-07-17 | 佳能株式会社 | 信息处理装置及存储器控制方法 |
CN111428870B (zh) * | 2019-01-10 | 2023-10-13 | 佳能株式会社 | 信息处理装置及存储器控制方法 |
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2008153194A1 (en) | 2008-12-18 |
JP2008310700A (ja) | 2008-12-25 |
US7937346B2 (en) | 2011-05-03 |
CN101681449B (zh) | 2013-03-06 |
JP5184824B2 (ja) | 2013-04-17 |
US20100223219A1 (en) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681449B (zh) | 计算处理装置及方法 | |
US8391306B2 (en) | Calculation processing apparatus and method | |
US7978905B2 (en) | Calculation processing apparatus and control method thereof | |
US11699067B2 (en) | Arithmetic processing apparatus and control method therefor | |
JP6987860B2 (ja) | ハードウェアにおけるカーネルストライドの実行 | |
US11748599B2 (en) | Super-tiling in neural network processing to enable analytics at lower memory speed | |
EP3583575B1 (en) | Image transformation for machine learning | |
US20210042616A1 (en) | Arithmetic processing device | |
US20200118249A1 (en) | Device configured to perform neural network operation and method of operating same | |
KR102442055B1 (ko) | 전자 장치 및 그 제어 방법 | |
KR20210039197A (ko) | 데이터를 처리하는 방법 및 장치 | |
JP6195342B2 (ja) | 情報処理装置およびメモリアクセス制御方法 | |
CN112884137A (zh) | 神经网络的硬件实现方式 | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
JP7410961B2 (ja) | 演算処理装置 | |
JP7437135B2 (ja) | プロセッシングシステム | |
WO2020255576A1 (ja) | 高位合成装置及び高位合成方法 | |
CN112884138A (zh) | 神经网络的硬件实现方式 | |
KR102718583B1 (ko) | 뉴럴 네트워크를 위한 데이터 처리 방법 및 장치 | |
US20230252756A1 (en) | Method and electronic device for processing input frame for on-device ai model | |
KR102441520B1 (ko) | 필터 분해 기법을 이용한 에너지 효율적 재구성형 cnn 가속기 장치 및 방법 | |
CN115952835A (zh) | 数据处理方法、可读介质和电子设备 | |
CN117422608A (zh) | 图像引导滤波方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 |