CN108074211B - 一种图像处理装置及方法 - Google Patents
一种图像处理装置及方法 Download PDFInfo
- Publication number
- CN108074211B CN108074211B CN201711432333.1A CN201711432333A CN108074211B CN 108074211 B CN108074211 B CN 108074211B CN 201711432333 A CN201711432333 A CN 201711432333A CN 108074211 B CN108074211 B CN 108074211B
- Authority
- CN
- China
- Prior art keywords
- calculation
- data
- module
- branch
- cnn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 485
- 238000013527 convolutional neural network Methods 0.000 claims description 159
- 238000011176 pooling Methods 0.000 claims description 17
- 238000010606 normalization Methods 0.000 claims description 16
- 238000003672 processing method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Input (AREA)
Abstract
本发明公开了一种图像处理装置及方法,装置包括:Eltwise层计算模块,CNN通用层计算模块和内部缓存模块,CNN通用层计算模块分别与Eltwise层计算模块及内部缓存模块连接;其中CNN通用层计算模块对分支图像数据进行CNN计算,确定第一计算结果,根据分支标识信息,判断分支图像数据是否为第一分支数据;如果是,采用第一计算结果对内部缓存模块中缓存的数据更新;如果否,则将第一计算结果发送给Eltwise层计算模块;Eltwise层计算模块与内部缓存模块连接用于根据内部缓存模块中缓存的数据和第一计算结果,进行Eltwise计算,确定第二计算结果,减少了数据读取写出耗时,节省带宽外部存储器资源。
Description
技术领域
本发明涉及芯片设计技术领域,尤其涉及一种图像处理装置及方法。
背景技术
随着Resnet(Residual Neural Network,残差神经网络)网络在图像分类比赛方面的优异表现,Resnet及相关类Resnet卷积神经网络重要性在深度学习学术界和工业界越来越受到重视。Resnet通过跨层(Skip-Layer)的方式,解决了梯度传播的问题,并可以实现深度方面的多模型融合。Resnet中除了卷积、池化等通用CNN(Convolutional NeuralNetwork,卷积神经网络)层外,大量使用Eltwise层以实现不同分支的合并及元素级操作,如图1所示为34层Resnet中的一段,包括两个分支的数据,其中3*3conv,64表示卷积计算,Eltwise表示Eltwise计算,使用Eltwise层分别对两个分支的数据进行Eltwise计算并将最后一个分支的计算结果进行输出。Caffe等深度学习工具采用4维数组用于存储和交换数据,维度从低到高为width、height、channels、num,width和height可以简单理解为图像的宽度和高度,channels可以简单理解为颜色通道RGB,num可以简单理解为第几帧数据。Eltwise层所有输入分支的4个维度必须完全一致,主要支持3种操作:product(点乘)、sum(相加减)和max(取最大值)。
目前主流的CNN计算硬件对Eltwise层的计算缺乏友好支持:一种是完全不支持Eltwise层的计算,需通过额外的硬件设备,如GPU(Graphics Processing Unit,图形处理器)芯片、DSP(Digital Signal Processing,数字信号处理)芯片等实现Eltwise层的计算;另一种是对每个分支的CNN层独立进行计算,将每个分支的计算结果分别保存到外部存储设备的不同地址空间中,外部存储设备可以为DDR(Double Data Rate,双倍速率同步动态随机存储器),最后将每个分支对应的计算结果从外部存储设备中读回,进行Eltwise层的计算后再输往外部存储设备,由外部存储设备进行存储。
Resnet网络在某一硬件平台耗时分布如下表所示:
层类型 | 层个数 | 耗时(us) | 时间占比 |
ConvolutionReluLayer | 25 | 41394 | 5.57% |
PoolingLayer | 4 | 402455 | 54.11% |
ConcatLayer | 7 | 18498 | 2.49% |
FullyConnectReluLayer | 2 | 2645 | 0.36% |
SoftmaxLayer | 1 | 2398 | 0.32% |
EltwiseLayer | 4 | 276374 | 37.16% |
根据上表可知,4个Eltwise层计算耗时占到整个Resnet网络的37%以上。因此可知采用上述方式进行计算时,不但严重消耗带宽及存储器资源,而且由于各分支数据量众多,数据的读取和写出耗时过大,导致Eltwise层成为整个Resnet网络的速度瓶颈。
发明内容
本发明提供一种图像处理装置及方法,用以解决现有技术中存在在外部存储器中读取和写出数据耗时过大,消耗带宽和外部存储器资源的问题。
本发明提供一种图像处理装置,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,
所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;
所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
进一步地,所述CNN通用层计算模块,具体用于进行以下至少一种CNN计算:卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
进一步地,所述Eltwise层计算模块,还用于根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据,如果否,则采用所述第二计算结果对所述内部缓存模块中缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。
进一步地,所述CNN通用层计算模块,具体用于在所述外部存储器中读取待计算的分支图像数据的数据块,对所述分支图像数据的数据块进行CNN计算。
进一步地,所述CNN通用层计算模块,具体用于读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
本发明提供了一种图像处理方法,所述方法包括:
在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行卷积神经网络CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对内部缓存的数据进行更新;
如果否,根据读取到的所述内部缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
进一步地,所述对所述分支图像数据进行CNN计算包括以下至少一种CNN计算:
卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
进一步地,所述确定第二计算结果后,所述方法还包括:
根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据;
如果否,则采用所述第二计算结果对所述内部缓存的数据进行更新;
如果是,则将所述第二计算结果输出到所述外部存储器中。
进一步地,所述读取待计算的分支图像数据包括:
读取待计算的分支图像数据的数据块;
所述对所述分支图像数据进行CNN计算包括:
对所述分支图像数据的数据块进行CNN计算。
进一步地,所述读取待计算的分支图像数据的数据块包括:
读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
本发明提供一种图像处理装置及方法,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。在本发明中,CNN通用层计算模块在分支图像数据为第一分支数据时,采用分支图像数据的第一计算结果对内部缓存模块中缓存的数据进行更新,在分支图像数据非第一分支数据时,将第一计算结果发送给Eltwise层计算模块,减少了向外部存储器中写出数据的耗时,Eltwise层计算模块根据内部缓存模块中缓存的数据和第一计算结果,进行Eltwise计算,避免了在外部存储器中读取和写入数据的耗时,从而减少了数据的读取和写入耗时,节省了带宽及外部存储器资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术34层Resnet中图像处理的示意图;
图2为本发明实施例1提供的图像处理装置示意图;
图3为本发明实施例3提供的一种图像处理装置与外部存储器连接示意图;
图4为本发明实施例4提供的一种图像处理过程示意图;
图5为本发明实施例4提供的一种图像处理装置与外部存储器连接示意图;
图6为本发明实施例5提供的一种数据块宽度和高度的示意图;
图7为本发明实施例5提供的一种图像处理过程示意图;
图8为本发明实施例6提供的一种图像处理过程示意图。
具体实施方式
为了减少数据的读取和写出耗时,节省带宽及外部存储器资源,本发明实施例提供了一种图像处理装置及方法。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图2为本发明实施例提供的图像处理装置示意图,所述装置包括:Eltwise层计算模块21,CNN通用层计算模块22和内部缓存模块23,所述CNN通用层计算模块22分别与所述Eltwise层计算模块21及所述内部缓存模块23连接;其中,
所述CNN通用层计算模块22,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块23中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块21;
所述Eltwise层计算模块21与所述内部缓存模块23连接,用于根据读取到的所述内部缓存模块23中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
为了减少数据的读取和写出耗时,节省带宽及外部存储器资源,本发明实施例提供了一种图像处理装置,该图像处理装置包括Eltwise层计算模块、CNN通用层计算模块和内部缓存模块。具体地,该图像处理装置可以为一个图像处理芯片,即用于实现CNN计算的硬件架构。
在该图像处理装置中,CNN通用层计算模块分别与Eltwise层计算模块及内部缓存模块连接,用于将计算结果写入内部缓存模块及将计算结果写入Eltwise层计算模块。
外部存储器中保存有待计算的分支图像数据,因此CNN通用层计算模块在计算前,需要在外部存储器中读取待计算的分支图像数据,该外部存储器可以为图像处理装置的外部缓存装置如DDR。具体地,CNN通用层计算模块可以是直接从外部存储器中读取待计算的分支图像数据,也可以是间接从外部存储器中读取待计算的分支图像数据。
如果CNN通用层计算模块直接在外部存储器中读取待计算的分支图像数据,则CNN通用层计算模块与外部存储器之间通过总线连接,并且CNN通用层计算模块通过该总线在外部存储器中读取待计算的分支图像数据。
如果CNN通用层计算模块间接在外部存储器中读取待计算的分支图像数据,则图像处理装置中可以包括数据读取模块,CNN通用层计算模块可以与数据读取模块连接,数据读取模块通过总线与外部存储器连接,CNN通用层计算模块通过数据读取模块从外部存储器中读取待计算的分支图像数据。
CNN通用层计算模块可以实现除Eltwise计算以外的其他CNN层的计算过程,具体在该CNN通用层计算模块中的其他CNN层一般不存在分支操作,因此可以合并为CNN通用层计算模块。
CNN通用层计算模块读取到待计算的分支图像数据后,对读取到的分支图像数据进行CNN计算,确定第一计算结果。CNN通用层计算模块在确定第一计算结果后,根据当前的分支图像数据所在的分支情况,确定第一计算结果输出到哪个模块中,如果分支图像数据为第一分支数据,CNN通用层计算模块将第一计算结果输往内部缓存模块,采用第一计算结果对内部缓存模块中的缓存的数据进行更新,如果分支图像数据非第一分支数据,CNN通用层计算模块将第一计算结果输往Eltwise层计算模块。
CNN通用层计算模块在确定当前的分支图像数据所在的分支情况时,根据分支图像数据中包含的分支标识信息,判断分支图像数据是否为第一分支数据。分支图像数据中包含的分支标识信息可以是包含在分支图像数据中的命令字中。
Eltwise层计算模块为Eltwise的专用计算部件,用于完成两路数据的product、sum、max选择操作。Eltwise层计算模块中的两路数据主要来自两个模块,一个是内部缓存模块中缓存的数据,另一个是CNN通用层计算模块完成的当前的分支图像数据的第一计算结果。如果某一分支图像数据无需进行CNN运算时,可以通过CNN通用层计算模块将原始的该分支图像数据转发给Eltwise层计算模块。
Eltwise层计算模块根据读取到的内部缓存装置中缓存的数据和第一计算结果,进行Eltwise计算,确定第二计算结果的过程属于现有技术,在本发明实施例中不做赘述。
Eltwise层计算模块计算时用到的两路数据分别来自内部缓存模块和CNN通用层计算模块,也就是计算时用到的两路数据均来自图像处理装置内部,因此能够完全避免Eltwise计算时对带宽和外部存储器资源的占用,并且Eltwise计算的时间与CNN计算的过程可以并行存在,将Eltwise计算时间隐藏在CNN计算的过程中,可以有效低提升整个卷积神经网络运行速度。由于图像处理装置以芯片形式存在,内部缓存模块和CNN通用层计算模块均位于芯片内部,因此可以理解为Eltwise层计算模块计算时用到的两路数据均来自图像处理芯片的内部。
由于在本发明实施例中CNN通用层计算模块在分支图像数据为第一分支数据时,采用分支图像数据的第一计算结果对内部缓存模块中缓存的数据进行更新,在分支图像数据非第一分支数据时,将第一计算结果发送给Eltwise层计算模块,减少了向外部存储器中写出数据的耗时,Eltwise层计算模块根据内部缓存模块中缓存的数据和第一计算结果,进行Eltwise计算,避免了在外部存储器中读取和写入数据的耗时,从而减少了数据的读取和写入耗时,节省了带宽及外部存储器资源。
实施例2:
在上述实施例的基础上,本发明实施例中,所述CNN通用层计算模块,具体用于进行以下至少一种CNN计算:卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
在卷积神经网络中,CNN计算通常包括卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算中的至少一种,当然也不排除存在其他CNN计算。
如果CNN通用层计算模块进行的CNN计算为至少两种时,可以将至少两种CNN通用层计算功能合并流水实现,具体地,可以是将该至少两种计算功能对应的计算层进行可编程拼接实现,通过配置寄存器方式来决定各层之间的连接关系。
较佳地,CNN通用层计算模块中包括全部的CNN计算功能对应的计算层,在实际应用中,通过配置寄存器进行开关控制来实现每层的连接关系,以完成最终的CNN计算,确定第一计算结果。
如果CNN通用层计算模块中进行至少两种CNN计算时,在每一种CNN计算完成后,除了判断当前计算的分支图像数据是否为第一分支数据,还需要判断下一步要进行的计算是否为Eltwise计算。如果分支图像数据为第一分支数据,则将CNN计算结果确定为第一计算结果,采用该第一计算结果对内部缓存模块中缓存的对应数据进行更新,如果分支图像数据非第一分支数据,且下一步要进行的计算为Eltwise计算,则将CNN计算结果确定为第一计算结果发送给Eltwise层计算模块,如果分支图像数据非第一分支数据,且下一步要进行的计算非Eltwise计算,则可以将CNN计算结果输往内部缓存模块进行数据缓存,或者是将CNN计算结果输出到外部存储器中。
内部缓存模块可以是对任意的数据进行缓存,也可以是仅对Eltwise计算的相关数据进行缓存,较佳地,为了避免Eltwise计算的相关数据以外的数据占用内部缓存模块的资源,内部缓存模块可以是仅对Eltwise计算的相关数据进行缓存,当接收到Eltwise计算的相关数据以外的数据时,将Eltwise计算的相关数据以外的数据输出到外部存储器中。
CNN通用层计算模块在判断下一步要进行的计算是否为Eltwise计算时,可以是根据第一计算结果对应的分支图像数据中包含的层标识信息确定的,层标识信息可以是包含在命令字中。
所述卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算的计算过程属于现有技术,在本发明实施例中不做赘述。
本发明实施例中CNN通用层计算模块支持ReLU计算,此外Eltwise计算模块也可以支持ReLU计算,此ReLU计算可以通过寄存器配置方法单独进行开关控制。
由于本发明实施例中CNN通用层计算模块进行卷积计算、池化计算、BatchNormalization计算、SCALE计算和ReLU计算中至少一种CNN计算,从而能够确定第一计算结果。
实施例3:
在上述各实施例的基础上,本发明实施例中,所述Eltwise层计算模块,还用于根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据,如果否,则采用所述第二计算结果对所述内部缓存模块中缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。
为了减少向外部存储器读取和写出数据的耗时,Eltwise层计算模块在第一计算结果对应的分支图像数据非最后一个分支数据时,采用第二计算结果对内部缓存模块中缓存的数据进行更新,避免了Eltwise层计算模块在下次Eltwise计算时在外部存储器中获取数据。
Eltwise层计算模块可以根据第一计算结果,确定第一计算结果对应的分支图像数据的分支标识信息,从而判断第一计算结果对应的分支图像数据是否为最后一个分支数据。
Eltwise层计算模块如果确定第一计算结果对应的分支图像数据非最后一个分支数据时,则采用第二计算结果对内部缓存模块中缓存的数据进行更新;如果确定第一计算结果对应的分支图像数据为最后一个分支数据时,将第二计算结果输出到外部存储器中。
Eltwise层计算模块可以是直接将第二计算结果输出到外部存储器中,也可以是间接将第二计算结果输出到外部存储器中。
如果Eltwise层计算模块直接将第二计算结果输出到外部存储器中,则Eltwise层计算模块与外部存储器之间通过总线连接,并且Eltwise层计算模块通过该总线将第二计算结果输出到外部存储器中。
如果Eltwise层计算模块间接将第二计算结果输出到外部存储器中,则图像处理装置中可以包括结果写出模块,Eltwise层计算模块可以与结果写出模块连接,结果写出模块通过总线与外部存储器连接,Eltwise层计算模块通过结果写出模块将第二计算结果输出到外部存储器中。
Eltwise层计算模块或结果写出模块将第二计算结果输出到外部存储器中时,需要通过地址、总线方面的计算、操作,使第二计算结果在外部存储器中仍然按照帧格式排列,所述通过地址、总线方面的计算、操作,使第二计算结果在外部存储器中仍然按照帧格式排列的过程属于现有技术,在本发明实施例中不做赘述。
如果CNN通用层计算模块通过数据读取模块间接读取待计算的分支图像数据,且Eltwise层计算模块通过结果写出模块间接将第二计算结果输出到外部存储器中,则CNN硬件架构即图像处理装置中各个模块之间的连接关系及模块与外部存储器的连接关系如图3所示,图像处理装置包括数据读取模块、CNN通用层计算模块、Eltwise层计算模块、内部缓存模块和结果写出模块,其中数据读取模块通过总线BUS与外部存储器连接,且CNN通用层计算模块分别与数据读取模块、Eltwise层计算模块及内部缓存模块连接,Eltwise层计算模块与内部缓存模块和结果写出模块连接,内部缓存模块与结果写出模块连接,结果写出模块通过总线BUS与外部存储器连接,其中箭头起始端为发送数据的模块,箭头所指一端为接收数据的模块,如根据数据读取模块与CNN通用层计算模块之前的箭头可知,数据由数据读取模块发送给CNN通用层计算模块。
由于本发明实施例中,Eltwise层计算模块在第一计算结果对应的分支图像数据非最后一个分支数据时,采用第二计算结果对内部缓存模块中缓存的数据进行更新,避免了Eltwise层计算模块在下次Eltwise计算时在外部存储器中获取数据,从而减少了向外部存储器读取和写出数据的耗时。
实施例4:
在上述各实施例的基础上,本发明实施例中,所述CNN通用层计算模块,具体用于在所述外部存储器中读取待计算的分支图像数据的数据块,对所述分支图像数据的数据块进行CNN计算。
由于Eltwise层计算模块所有输入分支的4个维度必须完全一致,而且支持的product、sum和max的三种操作都是点对点运算,实现比较简单,因此,可将已完成的第一计算结果或第二计算结果缓存在内部缓存模块,可以减少在外部存储中读取和写出数据的耗时,以提升Eltwise层计算模块运算性能。但由于CNN分支图像大小的未知性,基于节省内部缓存模块资源考虑,传统的按帧为单位的CNN分支图像的计算方式将不再适用,将图像分割成以块为单位进行图像处理更易于节省内部缓存模块资源。
如果CNN通用层计算模块直接在外部存储器中读取待计算的分支图像数据,则CNN通用层计算模块与外部存储器之间通过总线连接,并且CNN通用层计算模块通过该总线在外部存储器中读取待计算的分支图像数据的数据块。
如果CNN通用层计算模块间接在外部存储器中读取待计算的分支图像数据,则图像处理装置中可以包括数据读取模块,CNN通用层计算模块可以与数据读取模块连接,数据读取模块通过总线与外部存储器连接,CNN通用层计算模块通过数据读取模块在外部存储器中读取待计算的分支图像数据的数据块。
下面以一个具体的实施例对本发明实施例进行说明,如图4所示,为三输入分支,且每个分支图像均分成9个数据块,图像处理过程如下:
在外部存储器中读取分支0数据块0的数据块,进行CNN计算,将第一计算结果对内部缓存模块中缓存的数据进行更新;在外部存储器中读取分支1数据块0的数据块,进行CNN计算,根据内部缓存模块中缓存的数据和第一计算结果进行Eltwise计算,确定第二计算结果,采用第二计算结果对内部缓存模块中缓存的数据进行更新;在外部存储器中读取分支2数据块0的数据块,进行CNN计算,根据内部缓存模块中缓存的数据和第一计算结果进行Eltwise计算,确定第二计算结果,将第二计算结果写出到外部存储器中的结果数据块0,完成数据块0的计算。数据块1到数据8的计算过程与数据块0相似,在本发明实施例中不做赘述。
如果CNN通用层计算模块通过数据读取模块间接读取分支图像数据,则数据读取模块为支持块计算的数据读取模块,且结果写出模块为支持块计算的结果写出模块,如图5所示,图5为在图3的基础上,将数据读取模块和结果写出模块分别替换为支持块计算的数据读取模块和支持块计算的结果写出模块,各个模块之间的连接关系与图3相同,在本发明实施例中不做赘述。
由于本发明实施例中将图像分割成以块为单位进行图像处理更易于节省内部缓存模块资源。
实施例5:
在上述各实施例的基础上,本发明实施例中,所述CNN通用层计算模块,具体用于读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W-1)*Stride_W+Kernel_W,D_H=(B_H-1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
图像处理装置通过总线在外部存储器中按块读取分支图像数据时,分块大小需要根据当前CNN层计算类型和及内部缓存模块相匹配,才能保证计算结果的准确性。
对于CNN计算前后块大小一致不变的CNN计算层,如激活层、Batch Normalization层等,可以直接根据内部缓存模块的容量宽度和高度进行分配块大小,假设内部缓存模块的容量宽度为B_W,内部缓存模块的容量高度为B_H,则在读取分支图像数据的数据块时,读取宽度为B_W且高度为B_H的数据块即可。
对于CNN计算前后块大小不一致发生变化的CNN计算层,如卷积层、池化层等,由于这些CNN计算层如卷积层为窗口操作,因此数据块之间存在一定数据重叠,需要考虑内部缓存模块的容量宽度和高度,卷积核的横向尺寸和纵向尺寸及卷积核跨度的横向尺寸和纵向尺寸,从而确定数据块的大小,其中卷积核跨度为每次移动时卷积核移动的步幅,假设内部缓存模块的容量宽度为B_W,内部缓存模块的容量高度为B_H,卷积核的横向尺寸为Kernel_W,卷积核的纵向尺寸为Kernel_H,卷积核跨度的横向尺寸为Stride_W,卷积核跨度的纵向尺寸为Stride_H,则读取分支图像数据的数据块时,读取宽度为D_W且高度为D_H的数据块,并且D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H。
如图6所示为数据块宽度和高度的示意图,在卷积层进行卷积计算时,读取的数据块大小为宽度为D_W且高度为D_H,图中的BEX_W和BEX_H为数据的重叠区域,其中BEX_W为Kernel_W除以2并向下取整,BEX_H为Kernel_H除以2并向下取整。
下面以一个具体的实施例对上述各实施例进行说明,如图7所示,pool1表示池化计算;res2a_branch0、res2a_branch1、res2a_branch2a、res2a_branch2b、res2a_branch2c表示卷积计算;bn2a_branch0、bn2a_branch1、bn2a_branch2a、bn2a_branch2b、bn2a_branch2c表示Batch Normalization计算;scale2a_branch0、scale2a_branch1、scale2a_branch2a、scale2a_branch2b、scale2a_branch2c表示Scale计算;res2a_branch2a_relu、res2a_branch2b_relu、res2a_relu表示ReLU计算;res2a表示Eltwise计算,O_Branch0表示分支0、O_Branch1表示分支1和O_Branch2表示分支2。如图7所示Batch Normalization计算、Scale计算、ReLU计算等比较简单,因此与卷积计算合并实现。具体的图像处理过程如下:
池化计算的结果O_Pool1存储在外部存储器中,图像处理装置中的数据读取模块从外部存储器中按帧或块的方式读取O_Pool1中的分支2数据,进行O_Branch2A计算,将计算结果写出到外部存储器,数据流路线为图5中所示的①→②→③→⑧→⑨,从外部存储器中按帧或块的方式对O_Branch2A的计算结果数据进行读取,进行O_Branch2B计算,将计算结果写出到外部存储器,数据流路线为图5中所示的①→②→③→⑧→⑨,从外部存储器中按帧或块的方式对O_Branch2B的计算结果数据进行读取,进行O_Branch2C计算,将计算结果输往内部缓存模块,数据流路线为图5中所示的①→②→③,完成分支2的数据计算过程;
从外部存储器中按帧或块的方式读取O_Pool1中的分支1数据,进行O_Branch1计算,将计算结果输往图像处理装置中的Eltwise层计算模块,Eltwise层计算模块根据分支1的计算结果和内部缓存模块中缓存的数据进行Eltwise计算,将Eltwise计算的结果输往内部缓存模块,数据流路线为图5中所示的①→②→④→⑥,完成分支2和分支1的数据或数据块的计算过程;
从外部存储器中按帧或块的方式读取O_Pool1中的分支0数据,进行O_Branch0计算,将计算结果输往图像处理装置中的Eltwise层计算模块,Eltwise层计算模块根据分支0的计算结果和内部缓存模块中缓存的数据进行Eltwise计算,将Eltwise计算的结果写出到外部存储器,数据流路线为图5中所示的①→②→④→⑦→⑨,完成分支2、分支1和分支0的数据或数据块的计算过程。如果是按照帧在外部存储器中读取数据,则此时完成全部分支数据的计算过程,如果是按照块在外部存储器中读取数据,则此时完成全部分支数据的某一数据块的计算过程,对每个分支的其他数据块的计算过程与上述图像处理过程相同,在此不做赘述。
本发明实施例中图像处理装置通过总线在外部存储器中按块读取分支图像数据时,分块大小需要根据当前CNN层计算类型和及内部缓存模块相匹配,保证了计算结果的准确性。
实施例6:
图8为本发明实施例提供的一种图像处理过程示意图,包括以下步骤:
S801:在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,进行S802,如果否,进行S803。
S802:采用所述第一计算结果对内部缓存的数据进行更新;
S803:根据读取到的所述内部缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
本发明实施例提供的图像处理方法应用于图像处理装置,该图像处理装置可以为一个图像处理芯片,即用于实现CNN计算的硬件架构。该图像处理装置包括Eltwise层计算模块、CNN通用层计算模块和内部缓存模块。
外部存储器中保存有待计算的分支图像数据,因此CNN通用层计算模块在计算前,需要在外部存储器中读取待计算的分支图像数据,该外部存储器可以为图像处理装置的外部缓存装置如DDR。
图像处理装置通过总线与外部存储器连接,因此图像处理装置可以在外部存储器中读取待计算的分支图像数据,对分支图像数据进行CNN计算,确定第一计算结果,具体地,该过程可以由图像处理装置中的CNN计算模块完成。
图像处理装置确定第一计算结果后,根据分支图像数据的分支标识信息,判断第一计算结果是否为第一分支数据,如果是,采用第一计算结果对内部缓存的数据进行更新,具体地,该过程可以由CNN计算模块完成,且内部缓存的数据可以是缓存在内部缓存模块中。
如果第一计算结果非第一分支数据,则根据读取到的所述内部缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果,具体地,该过程可以由图像处理装置中的Eltwise层计算模块完成。Eltwise层计算模块需要在内部缓存模块中读取缓存的数据,并接收CNN计算模块发送的第一计算结果。
由于在本发明实施例中在分支图像数据为第一分支数据时,采用分支图像数据的第一计算结果对内部缓存的数据进行更新,减少了向外部存储器中写出数据的耗时,根据内部缓存的数据和第一计算结果,进行Eltwise计算,避免了在外部存储器中读取和写入数据的耗时,从而减少了数据的读取和写入耗时,节省了带宽及外部存储器资源。
实施例7:
在上述实施例的基础上,本发明实施例中,所述对所述分支图像数据进行CNN计算包括以下至少一种CNN计算:
卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
在卷积神经网络中,CNN计算通常包括卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算中的至少一种,当然也不排除存在其他CNN计算。
如果进行的CNN计算为至少两种时,可以将至少两种CNN通用层计算功能合并流水实现,具体地,可以是将该至少两种计算功能对应的计算层进行可编程拼接实现,通过配置寄存器方式来决定各层之间的连接关系。
如果进行至少两种CNN计算时,在每一种CNN计算完成后,除了判断当前计算的分支图像数据是否为第一分支数据,还需要判断下一步要进行的计算是否为Eltwise计算。如果分支图像数据为第一分支数据,则将CNN计算结果确定为第一计算结果,采用该第一计算结果对内部缓存的对应数据进行更新,如果分支图像数据非第一分支数据,且下一步要进行的计算为Eltwise计算,则将CNN计算结果确定为第一计算结果,根据第一计算结果及内部缓存的数据进行Eltwise计算,如果分支图像数据非第一分支数据,且下一步要进行的计算非Eltwise计算,则可以将CNN计算结果进行内部数据缓存,或者是将CNN计算结果输出到外部存储器中。
内部缓存模块可以是对任意的数据进行缓存,也可以是仅对Eltwise计算的相关数据进行缓存,较佳地,为了避免Eltwise计算的相关数据以外的数据占用内部缓存的资源,内部缓存可以是仅对Eltwise计算的相关数据进行缓存,当接收到Eltwise计算的相关数据以外的数据时,将Eltwise计算的相关数据以外的数据输出到外部存储器中。
在判断下一步要进行的计算是否为Eltwise计算时,可以是根据第一计算结果对应的分支图像数据中包含的层标识信息确定的,层标识信息可以是包含在命令字中。
所述卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算的计算过程属于现有技术,在本发明实施例中不做赘述。
由于本发明实施例中CNN计算时进行卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算中至少一种CNN计算,从而能够确定第一计算结果。
实施例8:
在上述实施例的基础上,本发明实施例中,所述确定第二计算结果后,所述方法还包括:
根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据;
如果否,则采用所述第二计算结果对所述内部缓存的数据进行更新;
如果是,则将所述第二计算结果输出到所述外部存储器中。
为了减少向外部存储器读取和写出数据的耗时,在第一计算结果对应的分支图像数据非最后一个分支数据时,采用第二计算结果对内部缓存的数据进行更新,避免了在下次Eltwise计算时在外部存储器中获取数据。
图像处理装置可以根据第一计算结果,确定第一计算结果对应的分支图像数据的分支标识信息,从而判断第一计算结果对应的分支图像数据是否为最后一个分支数据。
将第二计算结果输出到外部存储器中时,需要通过地址、总线方面的计算、操作,使第二计算结果在外部存储器中仍然按照帧格式排列,所述通过地址、总线方面的计算、操作,使第二计算结果在外部存储器中仍然按照帧格式排列的过程属于现有技术,在本发明实施例中不做赘述。
由于本发明实施例中,在第一计算结果对应的分支图像数据非最后一个分支数据时,采用第二计算结果对内部缓存的数据进行更新,避免了下次Eltwise计算时在外部存储器中获取数据,从而减少了向外部存储器读取和写出数据的耗时。
实施例9:
在上述各实施例的基础上,本发明实施例中,所述读取待计算的分支图像数据包括:
读取待计算的分支图像数据的数据块;
所述对所述分支图像数据进行CNN计算包括:
对所述分支图像数据的数据块进行CNN计算。
由于CNN分支图像大小的未知性,基于节省内部缓存模块资源考虑,传统的按帧为单位的CNN分支图像的计算方式将不再适用,将图像分割成以块为单位进行图像处理更易于节省内部缓存模块资源。
具体地,图像处理装置通过总线在外部存储器中按块读取分支图像数据时,分块大小需要根据当前CNN层计算类型和及内部缓存模块相匹配,才能保证计算结果的准确性。
所述读取待计算的分支图像数据的数据块包括:
读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
对于CNN计算前后块大小一致不变的CNN计算层,如激活层、Batch Normalization层等,可以直接根据内部缓存模块的容量宽度和高度进行分配块大小,假设内部缓存模块的容量宽度为B_W,内部缓存模块的容量高度为B_H,则在读取分支图像数据的数据块时,读取宽度为B_W且高度为B_H的数据块即可。
对于CNN计算前后块大小不一致发生变化的CNN计算层,如卷积层、池化层等,由于这些CNN计算层如卷积层为窗口操作,因此数据块之间存在一定数据重叠,需要考虑内部缓存模块的容量宽度和高度,卷积核的横向尺寸和纵向尺寸及卷积核跨度的横向尺寸和纵向尺寸,从而确定数据块的大小,假设内部缓存模块的容量宽度为B_W,内部缓存模块的容量高度为B_H,卷积核的横向尺寸为Kernel_W,卷积核的纵向尺寸为Kernel_H,卷积核跨度的横向尺寸为Stride_W,卷积核跨度的纵向尺寸为Stride_H,则读取分支图像数据的数据块时,读取宽度为D_W且高度为D_H的数据块,并且D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H。
本发明实施例中图像处理装置通过总线在外部存储器中按块读取分支图像数据时,分块大小需要根据当前CNN层计算类型和及内部缓存模块相匹配,保证了计算结果的准确性。
对于系统/方法实施例而言,由于其基本相似于装置实施例,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种图像处理装置,其特征在于,所述装置包括:Eltwise层计算模块,卷积神经网络CNN通用层计算模块和内部缓存模块,所述CNN通用层计算模块分别与所述Eltwise层计算模块及所述内部缓存模块连接;其中,
所述CNN通用层计算模块,用于在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对所述内部缓存模块中缓存的数据进行更新;如果否,则将所述第一计算结果发送给所述Eltwise层计算模块;
所述Eltwise层计算模块与所述内部缓存模块连接,用于根据读取到的所述内部缓存模块中缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
2.如权利要求1所述的装置,其特征在于,所述CNN通用层计算模块,具体用于进行以下至少一种CNN计算:卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
3.如权利要求1或2所述的装置,其特征在于,所述Eltwise层计算模块,还用于根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据,如果否,则采用所述第二计算结果对所述内部缓存模块中缓存的数据进行更新;如果是,则将所述第二计算结果输出到所述外部存储器中。
4.如权利要求1或2所述的装置,其特征在于,所述CNN通用层计算模块,具体用于在所述外部存储器中读取待计算的分支图像数据的数据块,对所述分支图像数据的数据块进行CNN计算。
5.如权利要求4所述的装置,其特征在于,所述CNN通用层计算模块,具体用于读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为所述内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
6.一种图像处理方法,其特征在于,所述方法包括:
在外部存储器中读取待计算的分支图像数据,对所述分支图像数据进行卷积神经网络CNN计算,确定第一计算结果,根据所述分支图像数据中包含的分支标识信息,判断所述分支图像数据是否为第一分支数据;如果是,采用所述第一计算结果对内部缓存的数据进行更新;
如果否,根据读取到的所述内部缓存的数据,和所述第一计算结果,进行Eltwise计算,确定第二计算结果。
7.如权利要求6所述的方法,其特征在于,所述对所述分支图像数据进行CNN计算包括以下至少一种CNN计算:
卷积计算、池化计算、Batch Normalization计算、SCALE计算和ReLU计算。
8.如权利要求6或7所述的方法,其特征在于,所述确定第二计算结果后,所述方法还包括:
根据所述第一计算结果对应的分支图像数据的分支标识信息,判断所述分支图像数据是否为最后一个分支数据;
如果否,则采用所述第二计算结果对所述内部缓存的数据进行更新;
如果是,则将所述第二计算结果输出到所述外部存储器中。
9.如权利要求6或7所述的方法,其特征在于,所述读取待计算的分支图像数据包括:
读取待计算的分支图像数据的数据块;
所述对所述分支图像数据进行CNN计算包括:
对所述分支图像数据的数据块进行CNN计算。
10.如权利要求9所述的方法,其特征在于,所述读取待计算的分支图像数据的数据块包括:
读取宽度为B_W且高度为B_H的数据块,或读取宽度为D_W且高度为D_H的数据块,其中所述B_W为内部缓存模块的容量宽度,B_H为所述内部缓存模块的容量高度,D_W=(B_W–1)*Stride_W+Kernel_W,D_H=(B_H–1)*Stride_H+Kernel_H,Kernel_W为卷积核的横向尺寸,Kernel_H为卷积核的纵向尺寸,Stride_W为卷积核跨度的横向尺寸,Stride_H为卷积核跨度的纵向尺寸。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711432333.1A CN108074211B (zh) | 2017-12-26 | 2017-12-26 | 一种图像处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711432333.1A CN108074211B (zh) | 2017-12-26 | 2017-12-26 | 一种图像处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108074211A CN108074211A (zh) | 2018-05-25 |
CN108074211B true CN108074211B (zh) | 2021-03-16 |
Family
ID=62155598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711432333.1A Active CN108074211B (zh) | 2017-12-26 | 2017-12-26 | 一种图像处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108074211B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020044566A1 (ja) * | 2018-08-31 | 2020-03-05 | オリンパス株式会社 | データ処理システムおよびデータ処理方法 |
CN110163337B (zh) * | 2018-11-12 | 2023-01-20 | 腾讯科技(深圳)有限公司 | 基于神经网络的数据处理方法、装置、设备及存储介质 |
CN109726798B (zh) * | 2018-12-27 | 2021-04-13 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
CN110096947A (zh) * | 2019-03-15 | 2019-08-06 | 昆明理工大学 | 一种基于深度学习的行人再识别算法 |
CN112308199B (zh) * | 2019-07-26 | 2024-05-10 | 杭州海康威视数字技术股份有限公司 | 数据块的处理方法、装置及存储介质 |
CN112308216B (zh) * | 2019-07-26 | 2024-06-18 | 杭州海康威视数字技术股份有限公司 | 数据块的处理方法、装置及存储介质 |
CN110555847B (zh) * | 2019-07-31 | 2021-04-02 | 瀚博半导体(上海)有限公司 | 一种基于卷积神经网络的图像处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567944A (zh) * | 2012-03-09 | 2012-07-11 | 中国人民解放军信息工程大学 | 基于fpga的ct图像重建硬件加速方法 |
CN106203619A (zh) * | 2015-05-29 | 2016-12-07 | 三星电子株式会社 | 数据优化的神经网络遍历 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107330446A (zh) * | 2017-06-05 | 2017-11-07 | 浙江工业大学 | 一种面向图像分类的深度卷积神经网络的优化方法 |
CN107451654A (zh) * | 2017-07-05 | 2017-12-08 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10002415B2 (en) * | 2016-04-12 | 2018-06-19 | Adobe Systems Incorporated | Utilizing deep learning for rating aesthetics of digital images |
AU2016203619A1 (en) * | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
-
2017
- 2017-12-26 CN CN201711432333.1A patent/CN108074211B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567944A (zh) * | 2012-03-09 | 2012-07-11 | 中国人民解放军信息工程大学 | 基于fpga的ct图像重建硬件加速方法 |
CN106203619A (zh) * | 2015-05-29 | 2016-12-07 | 三星电子株式会社 | 数据优化的神经网络遍历 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107330446A (zh) * | 2017-06-05 | 2017-11-07 | 浙江工业大学 | 一种面向图像分类的深度卷积神经网络的优化方法 |
CN107451654A (zh) * | 2017-07-05 | 2017-12-08 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
Non-Patent Citations (4)
Title |
---|
An automatic RTL compiler for high-throughput FPGA implementation of diverse deep convolutional neural networks;Yufei Ma 等;《2017 27th International Conference on Field Programmable Logic and Applications (FPL)》;20170908;第1-8页 * |
Cnvlutin: Ineffectual-Neuron-Free Deep Neural Network Computing;Jorge Albericio 等;《2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA)》;20160825;第1-13页 * |
卷积神经网络的并行化研究;凡保磊;《万方学位论文库》;20131008;第1-49页 * |
基于FPGA的卷积神经网络并行结构研究;陆志坚;《万方学位论文库》;20140417;第1-118页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108074211A (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074211B (zh) | 一种图像处理装置及方法 | |
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
CN111310904B (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
US20200050453A1 (en) | Apparatus and methods for matrix multiplication | |
CN111199273B (zh) | 卷积计算方法、装置、设备及存储介质 | |
CN111353589B (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
US10346507B2 (en) | Symmetric block sparse matrix-vector multiplication | |
CN111160545A (zh) | 人工神经网络处理系统及其数据处理方法 | |
CN111465943B (zh) | 一种集成电路和用于神经网络处理的方法 | |
US20190065938A1 (en) | Apparatus and Methods for Pooling Operations | |
CN111008040A (zh) | 缓存装置及缓存方法、计算装置及计算方法 | |
CN110554913A (zh) | 神经网络系统及其操作方法以及应用处理器 | |
CN111028360B (zh) | 一种3d图像处理中数据读写方法及系统、存储介质及终端 | |
WO2009131007A1 (ja) | Simd型並列計算機システム、simd型並列計算方法及び制御プログラム | |
JP7121019B2 (ja) | アウトオブオーダのピクセルシェーダのエクスポート | |
CN118152980A (zh) | 一种分叉算子融合方法、装置、设备及存储介质 | |
CN110232665B (zh) | 最大池化方法、装置、计算机设备及存储介质 | |
CN109726798B (zh) | 一种数据处理方法及装置 | |
CN107871162B (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN112183732A (zh) | 卷积神经网络加速方法、装置和计算机设备 | |
US20230306275A1 (en) | Neural network processors | |
CN109800867B (zh) | 一种基于fpga片外存储器的数据调用方法 | |
US20240135677A1 (en) | Method, system and storage media for training a graphics processing neural network with a patch-based approach | |
CN109816093B (zh) | 一种单路式卷积实现方法 | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200925 Address after: Room 1201, building a, 1181 Bin'an Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Zhejiang Xinsheng Electronic Technology Co., Ltd Address before: Hangzhou City, Zhejiang province Binjiang District 310053 shore road 1187 Applicant before: ZHEJIANG DAHUA TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |