CN113516580B - 提高神经网络图像处理效率的方法、装置及一种npu - Google Patents

提高神经网络图像处理效率的方法、装置及一种npu Download PDF

Info

Publication number
CN113516580B
CN113516580B CN202111071585.2A CN202111071585A CN113516580B CN 113516580 B CN113516580 B CN 113516580B CN 202111071585 A CN202111071585 A CN 202111071585A CN 113516580 B CN113516580 B CN 113516580B
Authority
CN
China
Prior art keywords
layer
neural network
convolutional neural
image
parameter
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
Application number
CN202111071585.2A
Other languages
English (en)
Other versions
CN113516580A (zh
Inventor
范名超
陈汉卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aojie Intelligent Technology Shanghai Co ltd
Original Assignee
Aojie Intelligent Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aojie Intelligent Technology Shanghai Co ltd filed Critical Aojie Intelligent Technology Shanghai Co ltd
Priority to CN202111071585.2A priority Critical patent/CN113516580B/zh
Publication of CN113516580A publication Critical patent/CN113516580A/zh
Application granted granted Critical
Publication of CN113516580B publication Critical patent/CN113516580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

本申请提供了一种提高神经网络图像处理效率的方法及装置,将图像预处理与神经网络第一层的权重参数融合在了一起,即,在不改变神经网络第一层原有结构基础上,将色域转换参数、标准化参数与神经网络第一层原有的权重参数融合,然后将待处理的图像数据重新排列成NPU PE易处理的格式,这样NPU便可利用新的第一层直接、同时完成图形预处理和第一层卷积的处理。在本申请方案中,只需要增加少量的控制逻辑进行图像数据重新配列即可,而参数的融合可以通过离线进行,没有额外的硬件消耗,相比CPU/GPU协处理方式或者是专门的硬件处理的方式,本申请方案具有更小的运算和更低的功耗,处理延时也更低,且不需要增加硬件成本。

Description

提高神经网络图像处理效率的方法、装置及一种NPU
技术领域
本申请涉及人工智能技术领域,尤其涉及一种提高神经网络图像处理效率的方法、装置及一种NPU。
背景技术
人工神经网络(Artificial Neural Network,ANN)是人工智能(ArtificialIntelligence,AI)领域的一个重要分支,随着AI技术的快速发展,人工神经网络(如卷积神经网络等)近年来在图像、视频以及语音等多种媒体信息的处理与分析中取得了很大成就。NPU(Neural Processing Unit,神经网络处理单元)加速器是可以支持多种神经网络的专用处理器,为AI算法专向进行优化,拥有的加速单元只与AI算法有关,可以从硬件层面实现快速处理AI算法中一些特定公式的计算。
在NPU中,PE(Processing Element,处理单元)Array模块是实现神经网络中核心卷积运算的重要模块,具体可实现图片(image)和权重(kernel)的点乘和加法运算。PEArray模块占据了硬件芯片/FPGA中大量的计算资源,通过同时进行并行运算达到高效计算处理的目的。目前,提高NPU的计算效率是行业趋势。
当使用NPU处理图片时,诸多类型的神经网络通常都要求对输入的图片先进行预处理,这些预处理主要包括两个步骤:先色域变化,然后再进行数据标准化(也可称为归一化)。在现有技术中,对NPU输入的图片进行预处理的过程往往都是分步分时分硬件进行的。
例如,在一种现有技术中,在面对NPU硬件资源紧张的SOC系统或者是加速器时,需要先使用CPU/GPU来预处理图片,即使用CPU/GPU来实现色域变化和数据标准化,然后再把处理后的数据发送给NPU进行处理。然而发明人发现,这样的操作会增加计算的延时和功耗。由于在不同的硬件之间处理数据,导致了额外的软件调度开销,不但整个系统附加了开发难度,而且提高了对系统的计算能力要求和带宽要求,处理时的延迟很长。
在另外一种现有技术中,在NPU中增加了专门的图片预处理硬件单元,试图通过增加成本来换取计算能力的提高。然而发明人却发现,即使不在意芯片成本的增加,这种方式依旧使用了与软件调度类似的处理流程,虽然减少了处理延时,但依旧需要消耗\抢占硬件带宽资源,在加速器运行时都会增加整体功耗。
发明内容
本申请提供了一种提高神经网络图像处理效率的方法、装置及一种NPU,以解决在不增加成本\功耗等前提下如何提高神经网络运算效率的问题。
根据本申请实施例的第一方面,提供一种提高神经网络图像处理效率的方法,所述方法用于卷积神经网络,所述方法包括:
获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数,其中所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层;
根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数;
获取待处理的图像数据;
根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列;
将重新排列后的图像数据输入所述卷积神经网络的第一层。
可选的:
所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出。
可选的,根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数,具体包括:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B。
可选的,根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列,包括:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量。
可选的:
所述第一预设规则包括:以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据;
所述第二预设规则包括:将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
可选的:
所述第一预设规则还包括:当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐;
所述第二预设规则还包括:当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
可选的,所述卷积神经网络通过神经网络处理单元NPU实现,卷积运算通过处理单元PE模块实现。
根据本申请实施例的第二方面,提供一种提高神经网络运算效率的装置,所述装置用于卷积神经网络,所述装置包括:
参数获取模块,用于获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数,其中所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层;
新权重生成模块,用于根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数;
图像获取模块,用于获取待处理的图像数据;
预处理模块,用于根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列;
输入模块,用于将重新排列后的图像数据输入所述卷积神经网络的第一层。
可选的:
所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出。
可选的:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B。
可选的:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量。
可选的:
所述第一预设规则包括:以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据;
所述第二预设规则包括:将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
可选的:
所述第一预设规则还包括:当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐;
所述第二预设规则还包括:当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
可选的,所述卷积神经网络通过神经网络处理单元NPU实现,卷积运算通过处理单元PE模块实现。
根据本申请实施例的第三方面,提供一种神经网络处理单元NPU,所述神经网络处理单元包括上述任一种提高神经网络运算效率的装置。
本申请实施例提供的技术方案可以包括以下有益效果:
本申请实施例将图像预处理的步骤与神经网络第一层的权重参数融合在了一起,提供了一种在神经网络加速器(芯片/FPGA)中融合图像预处理的技术。首先在不改变神经网络第一层原有结构的基础上,将色域转换参数、标准化参数与神经网络第一层原有的权重参数融合,得到第一层新的权重参数,然后将待处理的图像数据重新排列成NPU PE易处理的格式,这样NPU便可利用新的第一层直接、同时完成图形预处理和第一层卷积的处理。在本申请方案中,只需要增加少量的控制逻辑进行图像数据重新配列即可,而参数的融合可以通过离线进行,没有额外的硬件消耗,相比CPU/GPU协处理方式或者是专门的硬件处理的方式,本申请方案具有更小的运算和更低的功耗,处理延时也更低,且不需要增加硬件成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。此外,这些介绍并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是卷积过程的示意图;
图2是卷积过程的另一示意图;
图3 是NPU的PE阵列及单个PE的结构的示意图;
图4是本申请实施例提供的一种提高神经网络图像处理效率的方法的示意性流程图;
图5是现有技术中图像预处理过程的示意图;
图6是本申请实施例中图像预处理与第一层权重参数融合的示意图;
图7是本申请实施例中读取像素数据的示意图;
图8是本申请实施例中数据重新排列的示意图;
图9是本申请实施例提供的一种提高神经网络图像处理效率的装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。当涉及附图时,除非另有说明,否则不同附图中的相同数字表示相同或相似的要素。显然,以下所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例,或者说以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当本申请实施例的说明书、权利要求书及上述附图中出现术语“第一”、“第二”、“第三”等时,是用于区别不同对象,而不是用于限定特定顺序。在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”等的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
具体地,本申请实施例可以应用在图像分类、图像检索、图像语义分割、图像超分辨率和自然语言处理等需要使用(深度)神经网络处理图像的领域。
本申请实施例不涉及改变神经网络的结构,不涉及神经网络的训练,也不涉及除第一层外的其他层。
为了便于理解,下面先对深度神经网络、卷积核等相关术语及概念进行简单介绍:
深度神经网络(DNN,deep neural network),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元与第i+1层的任意一个神经元相连。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的过程也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
卷积神经网络(CNN,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络可由许多神经网络层组成,例如通常可由卷积、激活、池化、全连接这几种不同类型的层交替的生成,网络中每个滤波器的深度从左到右增加,最后通常由一个或多个全连接的层组成。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
卷积层:可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器(也可称为滤波器),卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,该权重矩阵的大小应该与图像的大小相关。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络进行正确的预测。
卷积运算:
神经网络里的主要运算形式是卷积运算,卷积运算相当于图像处理中的“滤波器运算”。卷积运算会对输入数据应用滤波器(Filter),可以看作是输入样本和卷积核的对应位置的点乘累加运算。
将计算过程公式化,公式可如下所示:
Figure 74089DEST_PATH_IMAGE001
其中:
A代表卷积的输入(Activation),是一个三维的矩阵,h代表A的高度,w代表宽度,c代表深度。
W代表卷积的滤波器,也称为权重,一般用核(kernel)来表示,m和n分别是权重的宽度和高度,c代表权重的深度。权重有多个通道,通道个数用ch表示。W是一个有ch通道的三维矩阵。对于NPU,滤波器系数是预置的数据。
Bias(即B)代表在卷积运算时,结果要增加的偏置。每个权重通道对应一个bias。对于NPU,bias也是预置的数据。在本申请中,为了描述方便可以将第一层的权重和偏置合称为权重参数。
Z代表卷积的输出,是一个三维的矩阵,e代表输出的高度,f代表宽度,ch代表输出的深度,它与输入的W通道数相同。
以上卷积公式可以简写为:Z=W*A+B。
对应一个输入源的卷积过程如下:
1)卷积核在输入源上,从w(或者h)方向开始以步进S(Stride)进行卷积运算,直到完成输入源内的所有对应运算。
2)当一个卷积核计算完后,切换下一个卷积核,重复1)中的运算。
3)每个卷积计算后的结果存储在一个深度平面中。
作为示例,卷积的过程可以如图1所示。
卷积过程的另一示意图可参见图2所示,图2是输入图像为5x5x1、权重为3x3x1的卷积过程的示意。
PE是NPU里的处理核心,它的作用是进行并行的乘累加运算,一次可以进行2k个数的乘加运算。将卷积的输入与PE的输入进行端口对应:把图像的输入Activation用Ak来表示;把滤波器权重输入weight用Wk来表示;通道的偏置用bias来表示。PE工作时,外部持续并行提供k个activation和weight,直到所有的数据访问完,然后加上bias,一次卷积就完成。一个PE对应处理一个通道权重的卷积运算,NPU里有多个PE,同时处理多个通道卷积运算。
作为示例,NPU的PE阵列和单个PE的结构可参见图3所示,图中Out表示输出,Delay表示延时,CH1、CH2等代表通道。
图4是本申请实施例提供的一种提高神经网络图像处理效率的方法的示意性流程图,该方法可用于卷积神经网络。
作为示例,所述卷积神经网络可以通过神经网络处理单元NPU实现,卷积运算可以通过处理单元PE模块实现。
参见图4所示,所述方法可以包括如下步骤:
步骤S401,获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数。
其中,所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层。
步骤S402,根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数。
在深度学习中,诸多类型的神经网络通常都需要对输入的图像进行预处理,这些预处理主要有两个步骤:先色域变化(CSC),然后再进行数据标准化。
所谓色域(Color Space)就是一种颜色的表示方法,针对不同的设备不同的系统,颜色往往有不同的表示方法。目前被广泛使用的色域可以被分为三大类:RGB、YIQ/YUV/YCrCb、CMYK,它们之间通过转换公式可以相互转换。所述色域转换参数也即色域转换公式中所用的参数。
数据归一化是基于原始数据的均值(mean)和标准差σ(standard deviation)进行的数据的标准化,经过处理的数据符合标准正态分布。假设原始数据是x,则标准化输出y =(x-mean)/σ = x/σ-mean/σ。标准化可通过转换公式实现。所述标准化参数也即标准化公式中所用的参数。
参见图5所示,在现有技术中,色域转换和标准化是两个独立的步骤,通常是分步分时分硬件进行。比如用CPU/GPU来实现色域转换和数据标准化,再把预处理后的数据送给NPU,这样的操作会增加计算的延时和功耗。或者是在NPU芯片里增加专门的预处理硬件单元来处理,这样的设计会增加芯片的成本和芯片功耗。
而在本实施例中,可参见图6所示,将图像预处理的步骤与神经网络第一层原有的权重参数(即权重和偏置)叠加或者说是融合在了一起,即,在不改变神经网络第一层原有结构的基础上,将色域转换参数、标准化参数与神经网络第一层原有的权重参数融合,得到第一层新的权重参数,这样便可以在完成第一层卷积的同时完成图形预处理。参数融合的过程可以提前离线处理。
对于色域转换参数、标准化参数等参数的具体形式以及参数具体的叠加过程,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本申请的精神和保护范围。
步骤S403,获取待处理的图像数据。
例如,待处理的图像数据可以是YUV图像。
步骤S404,根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列。
以NPU PE为例,重新排列即把预处理的图像数据重新排列成NPU PE易处理的格式,也即将需要处理的图像数据按照网络层的kernel形式重新排列成PE易处理的格式。
对于图像数据重新排列的具体形式,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本申请的精神和保护范围。
步骤S405,将重新排列后的图像数据输入所述卷积神经网络的第一层。以同时实现图像预处理(色域转换、标准化)和神经网络第一层原有的卷积运算。
下面进一步对各类参数进行示例性说明:
在本实施例或本申请其他某些实施例中,所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出。
将公式叠加Z = W*A + B = W*(S*U+O) + B = W*(S*(C*R+M)+O) + B,再将公式展开,可得到:Z = W*S*C*R + W*S*M+W*O+B。
故根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数,具体可以包括:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B。
下面对推导过程再进一步举例说明:
输入图像的色域变化通用公式如下:
Figure 365393DEST_PATH_IMAGE002
其中:
Y/U/V表示某种色彩的输入,R/G/B表示色域变换的输出。C00~C22和ym/um/vm为色域变化中的参数,对于指定的色域变化方式,这些值为常数定值。如果不需要CSC色域变换,则可以令C00/C11/C22=1,其它值都为0。
数据标准化的数学矩阵表达如下:
Figure 366847DEST_PATH_IMAGE003
其中:
Ru/Gu/Bu表示非标准化数据的输入,R/G/B表示标准化数据的输出。Sr/Sg/Sb和Rm/Gm/Bm为标准化计算的参数,对于指定的神经网络,这些值为常数定值。如果不需要标准化计算,则Sr/Sg/Sb=1,Rm/Gm/Bm=0。
结合上面两种预处理的运算可以得到:
Figure 674069DEST_PATH_IMAGE004
将计算展开可以得到:
Figure 77368DEST_PATH_IMAGE005
可以按照上面的规律重新将数据映射到weight和bias。
将变化后的预处理参数与神经网络第一层参数融合:
对于第一层任意MxNx3的kernel的卷积,在计算上可以看作M个1xNx3的运算叠加,则它的计算表达式如下:
Y = A1*W1 + A1*W1 + A2*W2 + … + AN*WN
这里的Ax/Wx都是矩阵,Ax表示一个像素,Wx表示整个像素的对应权重,将具体的像素和权重代入,则有:
Y = A1*W1 + A1*W1 + A2*W2 + … + AN*WN
Figure 805153DEST_PATH_IMAGE006
再将图像数据预处理运算映射到以上等式,可得到:
Figure 293903DEST_PATH_IMAGE007
将矩阵计算展开,得到新的卷积weight:
W’10 = W10*Sr*C00+ W11*Sg*C10+ W12*Sb*C20
W’11 = W10*Sr*C01+ W11*Sg*C11+ W12*Sb*C21
W’12 = W10*Sr*C02+ W11*Sg*C12+ W12*Sb*C22
……
W’N0 = WN0*Sr*C00+ WN1*Sg*C10+ WN2*Sb*C20
W’N1 = WN0*Sr*C01+ WN1*Sg*C11+ WN2*Sb*C21
W’N2 = WN0*Sr*C02+ WN1*Sg*C12+ WN2*Sb*C22
新的卷积bias值为:
Figure 889970DEST_PATH_IMAGE008
按照以上步骤实现的新的权重参数与神经网络的第一层原有的权重参数的尺寸大小是完全一样,只是数值不一样。
以上推导过程仅仅是示例性的,本实施例并不进行限制,本领域技术人员可以根据不同需求\不同具体场景而自行推导、计算、修改、修正。
概括来讲,从矩阵的角度来看:
色域转换可以表达为公式:V = C*R + M;
数据标准化转换可以表达为:I = S*U + O;
卷积的通用表达式为:Z = W*A + B。
这里的C/S/W都为输入的常数系数矩阵,M/O/B为输入的常数系数向量,以上常数矩阵在深度的维度上都一致。R/U/A为输入变量的矩阵,V/I/Z则为输出变量的矩阵。
基于深度维度的一致,对以上的公式进行输入变量的替换,可以得到以下融和:
Z = W*A + B = W*(S*U+O) + B = W*(S*(C*R+M)+O) + B
将公式展开,按照y=wx+b的方式精简,得到:
y = wx + b = Z = W*S*C*R + W*S*M+W*O+B
将公式展开,则融合后第一层新的系数也即权重w = W*S*C,偏置b = W*(S*M+O)+B。
下面再进一步对数据的重排进行示例性说明:
在本实施例或本申请其他某些实施例中,根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列,包括:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量。
输入的待处理图像包含有众多像素数据,这些像素数据按何种顺序依次读取出来,以及,当读取出像素数据之后,又按何种顺序重新排列,对此本实施例并不进行限制,本领域技术人员可以根据不同需求\不同场景而自行选择、设计,可以在此处使用的这些选择和设计都没有背离本申请的精神和保护范围。
作为示例,取出像素数据的规则,即所述第一预设规则,可以包括:
以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据。
在图像上每次取出m个像素数据,就相当于有一个m×1的窗口在图像上“移动”(或者说是“扫描”),该窗口先从左端移动到右端(也即先图像宽度方向),然后再向下移动一行(也即再图像高度方向)继续重复从左端移动到右端的步骤。该窗口每次移动的“距离”与卷积核的步长相同stride。
作为示例可参见图7所示,图7中图像的色彩深度为3,图7示出了沿图像宽度方向w移动时的部分过程,m×1的窗口先从第一行最左端出发,取出m个像素数据,然后向右移动步长stride,继续取出m个像素数据。
另外,在一些情况下,当m×1的窗口在一行中最后一次移动后,窗口内的像素数量可能已不足m个,此时可以添加零值来补充完整输出。
换句话说,在一些情况下,所述第一预设规则还可以包括:
当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐。
选取数据后,NPU要对数据进行重新排序,以方便PE的运算。
作为示例,数据重排的规则,即所述第二预设规则,可以包括:
将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
以色彩深度是3为例,当取出宽度上的m个像素数据后,由于色彩深度为3,就等于得到了3×m个数据,这3×m个数据将按照先色彩深度方向c、再图像宽度方向w的方式排列,即先排列一个像素的三个色彩数据,再排列下一个像素的三个色彩数据。
作为示例可参见图8所示,先排列第一个像素的三个色彩数据R1、G1、B1,再排列第二个像素的三个色彩数据R2、G2、B2,…,最后排列第m个像素的三个色彩数据Rm、Gm、Bm。
因为卷积运算的并行度为k,也即PE的运算并行度为k,所以所排列的一行数据的数量应为k。在一些情况下,如果这3×m个数据超出PE并行运算尺寸k,则分成多次排列,不足PE并行运算尺寸k的尾端补充零值。
换句话说,在一些情况下,所述第二预设规则还可以包括:
当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
本申请实施例将图像预处理的步骤与神经网络第一层的权重参数融合在了一起,提供了一种在神经网络加速器(芯片/FPGA)中融合图像预处理的技术。首先在不改变神经网络第一层原有结构的基础上,将色域转换参数、标准化参数与神经网络第一层原有的权重参数融合,得到第一层新的权重参数,然后将待处理的图像数据重新排列成NPU PE易处理的格式,这样NPU便可利用新的第一层直接、同时完成图形预处理和第一层卷积的处理。在本申请方案中,只需要增加少量的控制逻辑进行图像数据重新配列即可,而参数的融合可以通过离线进行,没有额外的硬件消耗,相比CPU/GPU协处理方式或者是专门的硬件处理的方式,本申请方案具有更小的运算和更低的功耗,处理延时也更低,且不需要增加硬件成本。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图9是本申请实施例提供的一种提高神经网络图像处理效率的装置的示意图,该装置可用于卷积神经网络。
作为示例,所述卷积神经网络可以通过神经网络处理单元NPU实现,卷积运算可以通过处理单元PE模块实现。
参见图9所示,所述装置可以包括:
参数获取模块901,用于获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数。
其中,所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层。
新权重生成模块902,用于根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数。
图像获取模块903,用于获取待处理的图像数据。
预处理模块904,用于根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列。
输入模块905,用于将重新排列后的图像数据输入所述卷积神经网络的第一层。
作为示例,在本实施例或本申请其他某些实施例中:
所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出。
作为示例,在本实施例或本申请其他某些实施例中,所述新权重生成模块具体用于:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B。
作为示例,在本实施例或本申请其他某些实施例中,所述预处理模块具体用于:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量。
作为示例,在本实施例或本申请其他某些实施例中:
所述第一预设规则包括:以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据;
所述第二预设规则包括:将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
作为示例,在本实施例或本申请其他某些实施例中:
所述第一预设规则还包括:当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐;
所述第二预设规则还包括:当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
关于上述实施例中的装置,其中各个单元\模块执行操作的具体方式已经在相关方法的实施例中进行了详细描述,此处不再赘述。在本申请中,上述单元\模块的名字对单元\模块本身不构成限定,在实际实现中,这些单元\模块可以以其他名称出现,只要各个单元\模块的功能和本申请类似,皆属于本申请权利要求及其等同技术的范围之内。
本申请实施例将图像预处理的步骤与神经网络第一层的权重参数融合在了一起,提供了一种在神经网络加速器(芯片/FPGA)中融合图像预处理的技术。首先在不改变神经网络第一层原有结构的基础上,将色域转换参数、标准化参数与神经网络第一层原有的权重参数融合,得到第一层新的权重参数,然后将待处理的图像数据重新排列成NPU PE易处理的格式,这样NPU便可利用新的第一层直接、同时完成图形预处理和第一层卷积的处理。在本申请方案中,只需要增加少量的控制逻辑进行图像数据重新配列即可,而参数的融合可以通过离线进行,没有额外的硬件消耗,相比CPU/GPU协处理方式或者是专门的硬件处理的方式,本申请方案具有更小的运算和更低的功耗,处理延时也更低,且不需要增加硬件成本。
此外,本申请还提供了一种神经网络处理单元NPU,所述神经网络处理单元包括上述任一种提高神经网络运算效率的装置。
本领域技术人员在考虑说明书及实践这里公开的方案后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (7)

1.一种提高神经网络图像处理效率的方法,其特征在于,所述方法用于卷积神经网络,所述方法包括:
获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数,其中所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层;
根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数;
获取待处理的图像数据;
根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列;
将重新排列后的图像数据输入所述卷积神经网络的第一层;
所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出;
根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数,具体包括:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B;
根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列,包括:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量;
所述第一预设规则包括:以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据;
所述第二预设规则包括:将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
2.根据权利要求1所述的方法,其特征在于,
所述第一预设规则还包括:当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐;
所述第二预设规则还包括:当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
3.根据权利要求1所述的方法,其特征在于,所述卷积神经网络通过神经网络处理单元NPU实现,卷积运算通过处理单元PE模块实现。
4.一种提高神经网络运算效率的装置,其特征在于,所述装置用于卷积神经网络,所述装置包括:
参数获取模块,用于获取用于图像色域转换的色域转换参数、用于图像数据标准化的标准化参数以及所述卷积神经网络第一层原有的权重参数,其中所述卷积神经网络第一层为所述卷积神经网络隐含层的第一层;
新权重生成模块,用于根据所述色域转换参数、标准化参数、所述第一层原有的权重参数,生成所述卷积神经网络第一层新的权重参数以替换所述原有的权重参数;
图像获取模块,用于获取待处理的图像数据;
预处理模块,用于根据所述卷积神经网络第一层的输入格式将所述图像数据重新排列;
输入模块,用于将重新排列后的图像数据输入所述卷积神经网络的第一层;
所述色域转换参数包括色域转换公式V=C*R+M中的系数C及偏置M,其中R为色域转换的输入,V为色域转换后的输出;
所述标准化参数包括数据标准化公式I=S*U+O中的系数S及偏置O,其中U为输入的非标准化数据,I为输出的标准化数据;
所述卷积神经网络第一层原有的权重参数包括卷积公式Z=W*A+B中的权重W和偏置B,其中A为所述第一层的输入,Z为所述第一层的输出;
所述新权重生成模块具体用于:
根据所述C、M、S、O、W、B,得到所述卷积神经网络第一层新的权重W*S*C及新的偏置W*(S*M+O)+B;
所述预处理模块具体用于:
按照第一预设规则从所述图像数据中取出像素数据;
将取出的像素数据按照第二预设规则排列成行以作为所述第一层的输入向量;
所述第一预设规则包括:以第一层的卷积核的宽度m为长度、以所述卷积核的步长stride为步进单位,从所述图像数据中按照先图像宽度方向w、再图像高度方向h的顺序每次取出m个像素数据;
所述第二预设规则包括:将每次取出的m个像素数据按照先色彩深度方向c、再图像宽度方向w的方式排列成与卷积运算的并行度k相适应的向量。
5.根据权利要求4所述的装置,其特征在于,
所述第一预设规则还包括:当在图像宽度方向移动时,如果剩余不足m个像素,则通过添加零值来补齐;
所述第二预设规则还包括:当超出所述并行度k时,分成多行排列;当一行不足所述并行度k时,在尾端补充零值。
6.根据权利要求4所述的装置,其特征在于,所述卷积神经网络通过神经网络处理单元NPU实现,卷积运算通过处理单元PE模块实现。
7.一种神经网络处理单元NPU,其特征在于,所述神经网络处理单元包括如权利要求4~6任一项所述的提高神经网络运算效率的装置。
CN202111071585.2A 2021-09-14 2021-09-14 提高神经网络图像处理效率的方法、装置及一种npu Active CN113516580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111071585.2A CN113516580B (zh) 2021-09-14 2021-09-14 提高神经网络图像处理效率的方法、装置及一种npu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111071585.2A CN113516580B (zh) 2021-09-14 2021-09-14 提高神经网络图像处理效率的方法、装置及一种npu

Publications (2)

Publication Number Publication Date
CN113516580A CN113516580A (zh) 2021-10-19
CN113516580B true CN113516580B (zh) 2021-12-28

Family

ID=78063047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111071585.2A Active CN113516580B (zh) 2021-09-14 2021-09-14 提高神经网络图像处理效率的方法、装置及一种npu

Country Status (1)

Country Link
CN (1) CN113516580B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114662679B (zh) * 2022-05-20 2022-09-06 深圳比特微电子科技有限公司 一种基于神经网络的数据处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797982A (zh) * 2020-07-31 2020-10-20 北京润科通用技术有限公司 基于卷积神经网络的图像处理系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417560B2 (en) * 2016-12-01 2019-09-17 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
CN112308202A (zh) * 2019-08-02 2021-02-02 华为技术有限公司 一种确定卷积神经网络的决策因素的方法及电子设备
KR20210020476A (ko) * 2019-08-14 2021-02-24 삼성전자주식회사 영상을 변환하는 컴퓨팅 장치 및 그 동작 방법
CN111178514A (zh) * 2019-12-31 2020-05-19 翱捷智能科技(上海)有限公司 神经网络的量化方法及系统
CN111652352B (zh) * 2020-05-13 2023-08-04 北京航天自动控制研究所 一种针对迁移学习的神经网络模型输入通道整合方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797982A (zh) * 2020-07-31 2020-10-20 北京润科通用技术有限公司 基于卷积神经网络的图像处理系统

Also Published As

Publication number Publication date
CN113516580A (zh) 2021-10-19

Similar Documents

Publication Publication Date Title
CN111767979B (zh) 神经网络的训练方法、图像处理方法、图像处理装置
US11461639B2 (en) Image processing method, image processing device, and training method of neural network
AU2017338783B2 (en) Efficient data layouts for convolutional neural networks
US11954822B2 (en) Image processing method and device, training method of neural network, image processing method based on combined neural network model, constructing method of combined neural network model, neural network processor, and storage medium
US11908102B2 (en) Image processing method and device, training method of neural network, and storage medium
CN110175671B (zh) 神经网络的构建方法、图像处理方法及装置
CN111144329B (zh) 一种基于多标签的轻量快速人群计数方法
EP3923233A1 (en) Image denoising method and apparatus
CN111046962A (zh) 基于稀疏注意力的卷积神经网络模型的特征可视化方法及系统
CN110070107A (zh) 物体识别方法及装置
CN112561027A (zh) 神经网络架构搜索方法、图像处理方法、装置和存储介质
CN111401294B (zh) 基于自适应特征融合的多任务人脸属性分类方法及系统
CN113516580B (zh) 提高神经网络图像处理效率的方法、装置及一种npu
CN109165734B (zh) 一种矩阵局部响应归一化的向量化实现方法
CN104796624B (zh) 一种光场编辑传播方法
CN111931927B (zh) 一种在npu中减少计算资源占用的方法及装置
CN117237623B (zh) 一种无人机遥感图像语义分割方法及系统
CN116524180A (zh) 基于轻量级主干结构的戏曲舞台场景分割方法
Sotiropoulos Handling variable shaped & high resolution images for multi-class classification problem
CN114663720A (zh) 基于孪生神经网络的目标跟踪方法、装置、介质及设备
CN112164078B (zh) 基于编码器-解码器的rgb-d多尺度语义分割方法
EP4024343A1 (en) Viewpoint image processing method and related device
Hah et al. Information-based boundary equilibrium generative adversarial networks with interpretable representation learning
CN114373110A (zh) 对输入图像进行目标检测的检测方法、设备及其相关产品
CN112132253A (zh) 3d动作识别方法、装置、计算机可读存储介质及设备

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
GR01 Patent grant
GR01 Patent grant