CN112236779A - 基于卷积神经网络的图像处理方法和图像处理装置 - Google Patents
基于卷积神经网络的图像处理方法和图像处理装置 Download PDFInfo
- Publication number
- CN112236779A CN112236779A CN201980001620.8A CN201980001620A CN112236779A CN 112236779 A CN112236779 A CN 112236779A CN 201980001620 A CN201980001620 A CN 201980001620A CN 112236779 A CN112236779 A CN 112236779A
- Authority
- CN
- China
- Prior art keywords
- convolution
- convolution kernel
- auxiliary
- kernels
- main
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Biophysics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Medical Informatics (AREA)
- Algebra (AREA)
- Biodiversity & Conservation Biology (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了人工智能领域的一种基于卷积神经网络的图像处理方法和图像处理装置,该方法可包括:接收输入图像;对该输入图像进行预处理,得到预处理后的图像信息;利用卷积神经网络对该图像信息进行卷积操作,输出卷积操作结果;其中,在利用第n层卷积层对该图像信息进行卷积操作时,由该层卷积层的m个主卷积核得到r个辅卷积核之后,利用该层卷积层的m个主卷积核和r个辅卷积核分别对该图像信息做卷积运算,将得到的多个特征图进行拼接得到该层卷积层的卷积操作结果。本申请实施例中,图像处理装置可存储各卷积层的主卷积核,在利用各卷积层执行卷积操作之前利用各卷积层的主卷积核生成辅卷积核,可以减少卷积神经网络占用的内存。
Description
本申请要求于2019年3月20日提交的第16359346号、申请名称为“基于卷积神经网络的图像处理方法和图像处理装置”的美国非临时专利申请以及于2019年9月4日提交的、申请号PCT/CN2019/104460的国际专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机视觉领域,尤其涉及一种图像处理方法和图像处理装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断、军事等领域中各种智能系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
得益于图形处理器(graphics processing unit,GPU)以及各种神经网络处理器的快速发展,卷积神经网络(convolutional neuron network,CNN)已经成为计算机视觉领域中不可或缺的一项技术。如今,CNN在移动设备(例如,手机、摄像头、智能家居)上,具有非常多的应用需求,例如图像识别、目标检测等。目前,常用的CNN中每个卷积层的卷积核的参数量常常能够达到几万甚至几十万,整个CNN中参与卷积运算的参数(卷积核参数)的个数加起来,能够达到几千万。如果存储CNN中的每个参数则需要占用上百兆字节的内存空间。然而,移动设备的内存资源非常有限,因此如何降低CNN占用的内存空间是个亟待解决的问题。
发明内容
本申请实施例提供了一种基于卷积神经网络图像处理方法和图像处理装置,可以有效减少卷积神经网络占用的内存。
第一方面,本申请实施例提供了一种基于卷积神经网络图像处理方法,该方法包括:接收输入图像;对该输入图像进行预处理,得到预处理后的图像信息;利用卷积神经网络对该图像信息进行卷积操作,该卷积神经网络包括N层卷积层,该卷积操作包括:使用第n层卷积层中的M个卷积核对该图像信息执行卷积运算,其中,该M个卷积核中包括m个主卷积核和r个辅卷积核,该r个辅卷积核由该m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核,且该r个辅卷积核中的每一个辅卷积核所包含的非0元素的个数均少于其对应的主卷积核所包含的非0元素的个数;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;输出卷积操作结果,该卷积操作结果包括M个特征图。
该图像处理方法的执行主体为图像处理装置,该图像处理装置可以是手机、平板电脑、笔记本电脑、游戏机、服务器、可穿戴设备等。可选的,由一个主卷积核中的一部分元素得到一个辅卷积核,即该辅卷积核中的元素均来源于该主卷积核。采用这种方式得到的辅卷积核包含的元素的个数少于该辅卷积核对应的主卷积核包含的元素的个数。可选的,将一个主卷积核中的一部分元素设置为0得到一个辅卷积核。采用这种方式得到的辅卷积核包含的非0元素的个数少于该辅卷积核对应的主卷积核包含的非0元素的个数。
该图像处理装置可以存储卷积神经网络中的每个卷积层的主卷积核,在利用每个卷积层执行卷积运算之前,根据该卷积层的主卷积核生成该卷积层对应的多个辅卷积核,利用主卷积核以及生成的多个辅卷积核对该卷积层输入的图像信息做卷积运算。举例来说,卷积神经网络中的某一卷积层执行卷积运算时需要使用6个卷积核,图像处理装置可以仅存储该卷积层的1个主卷积核,在该卷积层进行卷积运算之前,该图像处理装置根据该主卷积核生成6个辅卷积核,并利用这6个辅卷积核对输入的图像信息进行卷积运算。
本申请实施例中,图像处理装置可以先存储各卷积层的主卷积核,在利用各卷积层执行卷积操作之前利用各卷积层的主卷积核生成各卷积层所需的辅卷积核,可以减少卷积神经网络占用的内存。
在一个可选的实现方式中,r个辅卷积核中任一辅卷积核包括P个通道,该任一辅卷积核对应的主卷积核包括P个通道,该任一辅卷积核在第p个通道上的二维矩阵包括该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
矩阵是一个按照长方阵列排列的复数或实数集合。举例来说,由(H×W)个数排成的H行W列的数表称为H行W列的二维矩阵,简称(H×W)矩阵,这(H×W)个数称为矩阵的元素。从一个矩阵当中选取某些行和某些列交叉位置的元素所组成的新矩阵称为原矩阵的一个子矩阵。可以理解,任一辅卷积核在每个通道上的二维矩阵中的元素均是来源于该任一辅卷积核对应的主卷积核。也就是说,任一辅卷积核包括的元素均来自于该任一辅卷积核对应的主卷积核。
在该实现方式中,图像处理装置由主卷积核在第p个通道上的二维矩阵的子矩阵得到辅卷积核在第p个通道上的二维矩阵,可以由主卷积核快速地得到辅卷积核,实现简单。
在一个可选的实现方式中,任一辅卷积核在第p个通道上的二维矩阵包括的元素为该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列之外的元素;K为不小于1的整数。
在该实现方式中,图像处理装置将主卷积核除最外围的K行以及最外围的K列之外的元素对应的矩阵作为辅卷积核,可以快速地生成比主卷积核尺寸更小的辅卷积核。
在一个可选的实现方式中,任一辅卷积核包括该任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P小于Q。
可选的,任一辅卷积核包括该任一辅卷积核对应的主卷积核包括的Q个通道中任意P个通道上的二维矩阵。图像处理装置可以由该任一辅卷积核对应的主卷积核的Q个通道中的任意P个通道上的二维矩阵得到该任一辅卷积核。
在该实现方式中,图像处理装置可以快速地生成比主卷积核尺寸更小的辅卷积核。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核中的至少一个元素设置为目标值得到的。
该目标值可以0,也可以是其他数值,本申请不做限定。
在该实现方式中,通过将主卷积核中的至少一个元素设置为目标值,可以快速地生成一个与主卷积核不同的辅卷积核,实现简单。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的每个通道上的二维矩阵中目标位置的元素设置为目标值得到的。
一个二维矩阵中目标位置的元素可以为该二维矩阵中除最外围的K行和最外围的K列之外的元素,K为不小于1的整数。
在该实现方式中,可以快速地得到一个与主卷积核差异较大的辅卷积核,实现简单。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的一个或多个通道上的二维矩阵中的元素均设置为目标值得到的。
在该实现方式中,通过将主卷积核的任一通道上的二维矩阵中的元素均设置为目标值,可以快速地生成一个包括主卷积核部分元素的辅卷积核。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的至少一个通道上的二维矩阵设置为零矩阵得到的。零矩阵为元素均为0的矩阵。
在该实现方式中,将主卷积核的至少一个通道上的二维矩阵设置为零矩阵得到辅卷积核,利用该辅卷积核进行卷积运算可以大大减少所需执行的浮点计算次数。
在一个可选的实现方式中,任一辅卷积核为计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到的矩阵;该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应,该采样矩阵的目标位置的元素均为1且除该目标位置之外的元素均为0。
该采样矩阵的目标位置的元素可以为该采样矩阵在通道维度上的每个二维矩阵中除最外围的K行和最外围的K列之外的元素,K为不小于1的整数。
在该实现方式中,通过计算主卷积核和采样矩阵的乘积得到辅卷积核,实现简单。
在一个可选的实现方式中,任一辅卷积核为计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到的矩阵;该采样矩阵在通道维度上包括(Q-P)个零矩阵和P个包含的元素均为1的二维矩阵,该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应;Q为大于0的整数,P为大于0且不大于Q的整数。
在该实现方式中,通过计算主卷积核和采样矩阵的乘积得到辅卷积核,实现简单。
在一个可选的实现方式中,该图像处理方法还包括:由该r个辅卷积核中任一辅卷积核作为主卷积核得到新的辅卷积核。
在该实现方式中,将已生成的辅卷积核作为新的主卷积核来生成另外的辅卷积核,不仅可以解决根据一个主卷积核生成的辅卷积核的个数有限的问题,还可以更充分地利用主卷积核,进一步减少CNN中的参数量。
第二方面,本申请实施例提供了一种训练方法,该方法包括:利用卷积神经网络对训练样本做图像处理,得到预测处理结果;该卷积神经网络包括N层卷积层,该图像处理包括:使用第n层卷积层中的M个卷积核对该训练样本执行卷积运算,其中,该M个卷积核中包括m个主卷积核和r个辅卷积核,该r个辅卷积核由该m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核,且该r个辅卷积核中的每一个辅卷积核所包含的非0元素的个数均少于其对应的主卷积核所包含的非0元素的个数;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;根据该预测处理结果和标准结果,确定该训练样本对应的损失;该标准结果为利用该卷积神经网络处理该训练样本期望得到的处理结果;利用该训练样本对应的损失,通过优化算法更新该卷积神经网络的参数。
该图像处理可以是图像分类、物体检测、图像重构等。每一个训练样本对应一个标准结果。举例来说,图像处理装置对训练样本做图像分类,该训练样本对应的标准结果为该训练样本的标注数据(ground truth),即真实的分类结果。
本申请实施例中,图像处理装置在训练卷积神经网络的过程中,利用卷积神经网络各卷积层的主卷积核生成各卷积层所需的辅卷积核,可以减少卷积神经网络占用的内存。
在一个可选的实现方式中,r个辅卷积核中的s个辅卷积核由该m个主卷积核中的任一主卷积核得到;利用该训练样本对应的损失,通过优化算法更新该卷积神经网络的参数包括:根据该训练样本对应的损失,分别计算由该m个主卷积核中的任一主卷积核得到的s个辅卷积核的梯度;采用反向传播算法将该s个辅卷积核的梯度之和作为该任一主卷积核的梯度,更新该任一主卷积核中的参数。
在该实现方式中,将多个辅卷积核的梯度之和作为主卷积核的梯度来更新该主卷积核,以便于根据该更新后的主卷积核生成的辅卷积核可以满足各卷积层的需求。
在一个可选的实现方式中,r个辅卷积核中任一辅卷积核包括P个通道,该任一辅卷积核对应的主卷积核包括P个通道,该任一辅卷积核在第p个通道上的二维矩阵包括该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
在一个可选的实现方式中,任一辅卷积核在第p个通道上的二维矩阵包括的元素为该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列之外的元素;K为不小于1的整数。
在一个可选的实现方式中,任一辅卷积核包括该任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P小于Q。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核中的至少一个元素设置为目标值得到的。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的每个通道上的二维矩阵中目标位置的元素设置为目标值得到的。
一个二维矩阵中目标位置的元素可以为该二维矩阵中除最外围的K行和最外围的K列之外的元素,K为不小于1的整数。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的一个或多个通道上的二维矩阵中的元素均设置为目标值得到的。
在一个可选的实现方式中,任一辅卷积核为将该任一辅卷积核对应的主卷积核的至少一个通道上的二维矩阵设置为零矩阵得到的。
在一个可选的实现方式中,任一辅卷积核为计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到的矩阵;该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应,该采样矩阵的目标位置的元素均为1且除该目标位置之外的位置上的元素均为0。
在一个可选的实现方式中,任一辅卷积核为计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到的矩阵;该采样矩阵在通道维度上包括(Q-P)个零矩阵和P个包含的元素均为1的二维矩阵,该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应;Q为大于0的整数,P为大于0且不大于Q的整数。
在一个可选的实现方式中,该训练方法还包括:由该r个辅卷积核中任一辅卷积核作为主卷积核得到新的辅卷积核。
第三方面,本申请实施例提供了一种电子设备,包括:处理器和存储器,该存储器用于存储代码;该处理器通过读取该存储器中存储的该代码以用于执行如下操作:接收输入图像;对该输入图像进行预处理,得到预处理后的图像信息;使用卷积神经网络对该图像信息执行卷积操作,该卷积神经网络包括N层卷积层,该卷积操作包括:利用第n层卷积层中的M个卷积核对该图像信息进行卷积运算,其中,该M个卷积核中包括m个主卷积核和r个辅卷积核,该r个辅卷积核由该m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核,且该r个辅卷积核中的每一个辅卷积核所包含的非0元素的个数均少于其对应的主卷积核所包含的非0元素的个数;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;输出卷积操作结果,该卷积操作结果包括M个特征图。
本申请实施例中,图像处理装置可以先存储各卷积层的主卷积核,在利用各卷积层执行卷积操作之前利用各卷积层的主卷积核生成各卷积层所需的卷积核,可以大大减少卷积神经网络占用的内存。
在一个可选的实现方式中,r个辅卷积核中任一辅卷积核包括P个通道,该任一辅卷积核对应的主卷积核包括P个通道,该任一辅卷积核在第p个通道上的二维矩阵包括该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
在一个可选的实现方式中,任一辅卷积核在第p个通道上的二维矩阵包括的元素为该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列之外的元素;K为不小于1的整数。
在一个可选的实现方式中,任一辅卷积核包括该任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P小于Q。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核中的至少一个元素设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的每个通道上的二维矩阵中目标位置的元素设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的一个或多个通道上的二维矩阵中的元素均设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的至少一个通道上的二维矩阵设置为零矩阵得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于训练得到卷积神经网络;训练过程包括:初始化卷积神经网络的第n层卷积层中的m个主卷积核;利用该卷积神经网络对训练样本做图像处理,得到图像处理结果;根据该图像处理结果和标准结果,计算该训练样本对应的损失,该标准结果为利用该卷积神经网络处理该训练样本期望得到的处理结果;根据该训练样本对应的损失,分别计算由该m个主卷积核中的任一主卷积核得到的s个辅卷积核的梯度;采用反向传播算法将该s个辅卷积核的梯度之和作为该任一主卷积核的梯度,更新该任一主卷积核中的参数。
在一个可选的实现方式中,处理器,还用于计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到该任一辅卷积核;该采样矩阵在通道维度上包括(Q-P)个零矩阵和P个包含的元素均为1的二维矩阵,该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应;Q为大于0的整数,P为大于0且不大于Q的整数。
在一个可选的实现方式中,处理器,还用于由该r个辅卷积核中任一辅卷积核作为主卷积核得到新的辅卷积核。
在一个可选的实现方式中,r个辅卷积核中的s个辅卷积核由该m个主卷积核中的任一主卷积核得到;处理器,还用于分别计算该s个辅卷积核的梯度,得到s个梯度;s为不小于1的整数;采用反向传播算法将该s个梯度之和作为该任一主卷积核的梯度,更新该任一主卷积核。
第四方面,本申请实施例提供了另一种电子设备包括:处理器和存储器,该存储器用于存储代码;该处理器通过读取该存储器中存储的该代码以用于执行如下操作:利用卷积神经网络对训练样本做图像处理,得到预测处理结果;该卷积神经网络包括N层卷积层,该图像处理包括:使用第n层卷积层中的M个卷积核对该图像信息执行卷积运算,其中,该M个卷积核中包括m个主卷积核和r个辅卷积核,该r个辅卷积核由该m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核,且该r个辅卷积核中的每一个辅卷积核所包含的非0元素的个数均少于其对应的主卷积核所包含的非0元素的个数;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;根据该预测处理结果和标准结果,确定该训练样本对应的损失;该标准结果为利用该卷积神经网络处理该训练样本期望得到的处理结果;利用该训练样本对应的损失,通过优化算法更新该卷积神经网络的参数。
本申请实施例中,电子设备在训练卷积神经网络的过程中,利用卷积神经网络各卷积层的主卷积核生成各卷积层所需的辅卷积核,可以大大减少卷积神经网络占用的内存。
在一个可选的实现方式中,r个辅卷积核中的s个辅卷积核由该m个主卷积核中的任一主卷积核得到;
处理器,具体用于分别计算该s个辅卷积核的梯度,得到s个梯度;s为不小于1的整数;采用反向传播算法将该s个梯度之和作为该任一主卷积核的梯度,更新该任一主卷积核。
在该实现方式中,利用损失函数相对于各辅卷积核的梯度之和来更新主卷积核,以便于根据更新后的主卷积核生成的辅卷积核可以满足各卷积层的需求。
在一个可选的实现方式中,该r个辅卷积核中任一辅卷积核包括P个通道,该任一辅卷积核对应的主卷积核包括P个通道,该任一辅卷积核在第p个通道上的二维矩阵包括该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
在一个可选的实现方式中,任一辅卷积核在第p个通道上的二维矩阵包括的元素为该任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列之外的元素;K为不小于1的整数。
在一个可选的实现方式中,任一辅卷积核包括该任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P小于Q。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核中的至少一个元素设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的每个通道上的二维矩阵中目标位置的元素设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的一个或多个通道上的二维矩阵中的元素均设置为目标值得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于将该任一辅卷积核对应的主卷积核的至少一个通道上的二维矩阵设置为零矩阵得到该任一辅卷积核。
在一个可选的实现方式中,处理器,还用于计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到该任一辅卷积核;该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵,该采样矩阵的目标位置的元素均为1且除该目标位置之外的位置上的元素均为0。
在一个可选的实现方式中,处理器,还用于计算该任一辅卷积核对应的主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到该任一辅卷积核;该采样矩阵在通道维度上包括(Q-P)个零矩阵和P个包含的元素均为1的二维矩阵,该采样矩阵和该任一辅卷积核对应的主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应;Q为大于0的整数,P为大于0且不大于Q的整数。
在一个可选的实现方式中,处理器,还用于由该r个辅卷积核中任一辅卷积核作为主卷积核得到新的辅卷积核。
第五方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面或上述第二方面的方法。
第六方面本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行如上述第一方面以及上述第二方面的方法。
第七方面本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面以及上述第二方面的方法。
附图说明
图1是本申请实施例提供的系统架构的结构示意图;
图2为本申请实施例提供的一种卷积神经网络的结构示意图;
图3是本申请实施例提供的一种芯片硬件结构示意图;
图4为本申请实施例提供的一种训练卷积神经网络的方法流程图;
图5为本申请实施例提供的一种图像处理方法流程图;
图6A为本申请实施例提供的一种主卷积核和辅卷积核的对比示意图;
图6B为本申请实施例提供的另一种主卷积核和辅卷积核的对比示意图;
图7为本申请实施例提供的又一种主卷积核和辅卷积核的对比示意图;
图8为本申请实施例提供的又一种主卷积核和辅卷积核的对比示意图;
图9为本申请实施例提供的一种AlexNet的结构示意图;
图10为本申请实施例提供的一种卷积神经网络的训练设备的硬件结构示意图;
图11为本申请实施例提供的一种图像处理装置的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例提供的基于卷积神经网络的图像处理方法能够应用在图像分类、目标检测、图像超分辨率重建、图像复原等场景。具体而言,本申请实施例的基于卷积神经网络的图像处理方法能够应用在图像分类场景和图像超分辨率重建场景中,下面分别对图像分类场景和图像超分辨率重建场景进行简单的介绍。
图像分类场景1:图像处理装置利用卷积神经网络对通过数据采集设备(例如摄像头)采集的图像进行分类以得到图像分类结果,并且还可根据该图像分类结果执行相应的后续操作。图像处理装置可以是终端,例如手机终端,平板电脑,笔记本电脑,增强现实设备(augmented reality,AR),虚拟现实设备(virtual reality,VR),车载终端等,还可以是服务器。举例来说,图像处理装置可以为指纹考勤机,该图像处理装置通过指纹采集装置采集用户录入的指纹图像,对该指纹图像进行分类以确定该用户的身份,并生成相应的考勤记录。又举例来说,图像处理装置为门禁系统,该图像处理装置利用摄像头采集用户的人脸图像,对该人脸图像进行识别以确定该用户的身份,在确定该用户为授权用户后,开放通道以便该用户通过。
图像分类场景2:图像处理装置利用卷积神经网络对来自客户设备的图像进行分类以得到图像分类结果,以及根据该图像分类结果执行相应的后续操作。该图像处理装置可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。客户设备可以是手机、平板电脑等。举例来说,图像处理装置为云服务器,用户利用手机通过某个软件应用查询社保时,该用户利用该手机采集其人脸图像并发送给该图像处理装置;该图像处理装置对该人脸图像进行识别以确定该用户的身份,在确定该用户的身份后向该手机发送该用户的社保信息。
图像超分辨率重建场景:图像处理装置利用卷积神经网络对较低分辨率的输入图像进行超分辨率重建以得到分辨率较高的图像。输入图像可以是遥感图像、医学图像(例如利用X光机、核磁共振扫描仪等设备等医疗设备拍摄的图像)、视频图像等。该图像处理装置可以是云服务器、网络服务器、应用服务器以及管理服务器等具有数据处理功能的设备或服务器。举例来说,图像处理装置为计算机,该图像处理装置对遥感图像进行图像超分辨率重建以得到更好分辨率的图像。
在上述场景中,图像处理装置在利用卷积神经网络的各卷积层对图像信息进行卷积运算之前,由各卷积层的主卷积核得到辅卷积核,各卷积层利用主卷积核和辅卷积核对输入的图像信息进行卷积运算,这样卷积神经网络占用的内存空间大大减少。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
本申请实施例提供的卷积神经网络的训练方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等图像处理方法,对训练数据(如本申请中的输入图像)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的卷积神经网络;并且,本申请实施例提供的基于卷积神经网络的图像处理方法可以运用上述训练好的卷积神经网络,将输入数据(如本申请中的输入图像)输入到所述训练好的卷积神经网络中,得到输出数据(如本申请中的图像处理结果或处理后的图像)。需要说明的是,本申请实施例提供的卷积神经网络的训练方法和基于卷积神经网络的图像处理方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)卷积神经网络是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器对一个输入的图像或者卷积特征平面(feature map)做卷积,卷积特征平面还可以称为特征图。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经元组成。同一特征平面的神经单元共享权重,这里共享的权重对应的权重矩阵就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的,即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接数量,同时又降低了过拟合的风险。
(2)损失函数
在训练卷积神经网络的过程中,因为希望卷积神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为卷积神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它的预测值低一些,不断的调整,直到卷积神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么卷积神经网络的训练就变成了尽可能缩小这个loss的过程。
(3)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正卷积神经网络中参数的大小,使得卷积神经网络输出的预测值与真正想要的目标值之间的误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的卷积神经网络中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的卷积神经网络的参数,例如权重矩阵,也就卷积层的卷积核。
下面介绍本申请实施例提供的系统架构。
参见附图1,本发明实施例提供了一种系统架构100。如所述系统架构100所示,数据采集设备160用于采集训练数据,本申请实施例中训练数据包括:一个或多个测试图像(训练样本)以及该一个或多个测试图像对应的真实结果,即利用卷积神经网络处理该一个或多个测试图像期望得到的理想结果;并可将训练数据存入数据库130,训练设备120可基于数据库130中维护的训练数据训练得到目标模型/规则101(101就是前面介绍的经训练阶段训练得到的模型,可以是用于实现图像分类、图像超分辨率重建等图像处理操作的卷积神经网络)。一个测试图像对应一个真实结果,也即ground truth。下面将以实施例一更详细地描述训练设备120如何基于训练数据得到目标模型/规则101,该目标模型/规则101能够用于实现本申请实施例提供的基于卷积神经网络的图像处理方法,即,将输入图像,例如待超分处理的低分辨率图像、待图像分类处理的图像等,通过相关预处理后得到的图像信息输入该目标模型/规则101,即可得到图像处理结果。本申请实施例中的目标模型/规则101具体可以为训练得到的卷积神经网络,在本申请提供的实施例中,该卷积神经网络是通过训练初始化的卷积神经网络得到的。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,AR设备,VR设备,车载终端等,还可以是服务器等。在附图1中,执行设备110配置有I/O接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:输入图像,可以是执行设备110通过数据采集设备160采集的图像,还可以是数据库130中图像,还可以是来自客户设备140的图像。
预处理模块113用于根据I/O接口112接收到的输入数据(如所述输入图像)进行预处理,在本申请实施例中,预处理模块113可以用于实现图像滤波、图像预处理增强、图像预处理平滑、图像预处理复原等中的一项或多项操作,还用于实现其他预处理操作,本申请不做限定。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以实现相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果,如上述得到的图像处理结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据训练得到相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图1仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。本申请中,基于训练数据训练得到的目标模型/规则101可以是一个用于处理图像处理任务的卷积神经网络。
目前,一个训练好的CNN通常包含了大量的冗余参数。为减少CNN在设备中占用的存储资源,当前主要采用如下两种方式来减少CNN中的参数量:方式一、对训练好的CNN中的卷积核进行压缩;方式二、利用较小尺寸的卷积核替换较大尺寸的卷积核。CNN中的参数量是指CNN中参数的个数。采用方式一是利用剪枝、量化、字典学习等方式重新将训练好的CNN中的卷积核的参数进行表示,这样虽然可以减少CNN的存储开销,但是在采用方式一压缩得到的CNN进行卷积运算的过程中需要引入一些特殊的计算方式,例如稀疏计算、矩阵分解、量化等,难以在通用的计算平台(例如移动终端)上部署。采用方式二的缺点是CNN中的卷积核未被充分利用,卷积核中包含大量的冗余信息。这两种方式仅仅考虑如何去除和修整卷积核的参数,并没有考虑到如何去更充分地利用卷积核。本申请主要是从最大化地利用CNN中的卷积核的角度来减少CNN占用的存储资源。下面通过表1来说明CNN中的参数未得到充分利用的问题以及通过合理地优化CNN中的参数既可以减少CNN的参数量又能提高或保证CNN的计算精度的实现。
表1
表1展示了近年来一些在ImageNet数据集上取得佳绩的深度卷积神经网络(CNN)模型的属性,包含了它们的参数量、占用内存、浮点计算次数以及准确率。表1中的计算次数为利用表1中的各网络对该ImageNet数据集中的图像进行分类分别执行的浮点计算的次数。浮点运算就是实数运算。CNN是一种深度神经网络。ImageNet数据集可以理解为一个可供图像/视觉训练的图片库,用于评估不同算法和网络的性能。表1中的AlexNet、VGGNet-16、GooleNet、ResNet-50以及ResNeXt-50为不同的深度卷积神经网络(CNN),分别用于对ImageNet数据集中的图像进行分类。Top1错误率是指预测的最大概率的分类是错误分类的概率(前1预测错误率);Top5错误率是指预测出来最大概率的5个分类里没有正确分类的概率(前5预测错误率)。表1中,一个网络的Top1错误率以及Top5错误率均与该网络的分类准确率负相关。从表1可以看出,参数量较少的ResNet-50以及ResNeXt-50的分类准确率高于参数量较多的AlexNet以及VGGNet-16的分类准确率。可以理解,CNN中的很多参数是冗余的,并不是CNN中的参数量越多,CNN的计算精度越高。这就激励着我们去开发更高效的卷积计算方式,期望于用更少的参数来完成更多有效的计算,在减少CNN占用的内存和计算开销的同时,尽可能地提高利用CNN做图像处理的性能。本申请提供了一种基于卷积神经网络的低存储开销的图像处理方案。
如图1所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是卷积神经网络,具体的,本申请实施例提供的卷积神经网络的各卷积层仅包含主卷积核,在利用各卷积层进行卷积运算之前,由各卷积层的主卷积核得到辅卷积核,每层卷积层利用该层卷积层的主卷积核和辅卷积核对输入的图像信息进行卷积运算。
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入该前馈人工神经网络的图像作出响应。
如图2所示,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。
卷积层/池化层220:
卷积层:
如图2所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225层为卷积层,226层为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为卷积核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,取决于步长stride的取值,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素或者两个像素接着两个像素的进行处理从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。纵深维度也即是通道维度,对应于通道数。因此,使用一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。在本申请各个实施例中,在利用各卷积层进行卷积运算之前,由各卷积层的主卷积核得到辅卷积核,每层卷积层利用该层卷积层的主卷积核和辅卷积核对输入的图像信息进行卷积运算。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。权重矩阵也就是卷积核,权重矩阵中的权重值也就是卷积核中的参数。卷积核中的参数也可以称为卷积核中的元素。
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义级别越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中220所标记的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以取特定范围内值最大的像素作为最大池化的结果。另外,就像卷积层中权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由210至240方向的传播为前向传播)完成,反向传播(如图2由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果(即上述图像处理结果)和理想结果之间的误差。
需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
下面介绍本申请实施例提供的一种芯片硬件结构。
图3为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器30。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
神经网络处理器30可以是神经网络处理器(neural-network processing unit,NPU),张量处理器(tensor processing unit,TPU),或者图形处理器(graphicsprocessing unit,GPU)等一切适合用于大规模异或运算处理的处理器。以NPU为例:NPU可以作为协处理器挂载到中央处理器(central processing unit,CPU),也即主CPU(HostCPU)上,由主CPU为其分配任务,例如图像处理任务。NPU的核心部分为运算电路303,通过控制器304控制运算电路303提取存储器(301和302)中的矩阵数据并进行乘加运算。
在一些实现中,运算电路303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路303从权重存储器302中取矩阵B的权重值,并缓存在运算电路303中的每一个PE上。运算电路303从输入存储器301中取矩阵A的输入数据,根据矩阵A的输入数据与矩阵B的权重值进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。输入数据可以为输入图像,权重矩阵即为卷积核。权重数据也可以称为权重矩阵。
统一存储器306用于存放输入数据以及输出数据。权重矩阵通过直接存储单元访问控制器(direct memory access controller,DMAC)305,被搬运到权重存储器302中。输入数据也通过DMAC被搬运到统一存储器306中。输出数据即为图像处理结果。
总线接口单元(bus interface unit,BIU)310,用于DMAC和取指存储器(instruction fetch buffer)309的交互;总线接口单元310还用于取指存储器309从外部存储器获取指令;总线接口单元310还用于存储单元访问控制器305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器306中,或将权重数据搬运到权重存储器302中,或将输入数据搬运到输入存储器301中。
向量计算单元307包括多个运算处理单元,在需要的情况下,对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元307主要用于神经网络中非卷积层,或全连接(fully connected,FC)层的计算,具体可以处理:池化(pooling),归一化(normalization)等的计算。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
在一些实现中,向量计算单元307将经处理的向量存储到统一存储器306。在一些实现中,经向量计算单元307处理过的向量能够用作运算电路303的激活输入,例如用于神经网络中后续层中的使用,如图2所示,若当前处理层是隐含层1(231),则经向量计算单元307处理过的向量还可以被用到隐含层2(232)中的计算。
控制器304连接的取指存储器309,用于存储控制器304使用的指令。
统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为On-Chip存储器。外部存储器可以独立于该NPU硬件架构。
其中,图2所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
实施例一:
图4为本发明实施例一提供的一种卷积神经网络的训练方法400,该方法可包括:
S401、训练设备对接收到的输入图像进行预处理,得到预处理后的图像信息。
S402、训练设备初始化卷积神经网络。
初始化卷积神经网络包括初始化卷积神经网络的各层卷积层的主卷积核以及其他层(例如池化层、神经网络层和全连接层)的参数。训练设备可以采用任意初始化方法,例如采用高斯分布随机数采样、均匀分布随机数采样等方法来初始化卷积神经网络。
S403、训练设备由主卷积核得到空间辅卷积核。
训练设备可以由主卷积核得到空间辅卷积核。该主卷积核可以为卷积神经网络的任一卷积层的主卷积核。在实际应用中,训练设备可以由各层卷积层的主卷积核得到各层卷积层的空间辅卷积核。后续会详述如何由主卷积核得到空间辅卷积核,这里不作详述。
S404、训练设备由主卷积核得到通道辅卷积核。
训练设备可以由主卷积核得到通道辅卷积核。该主卷积核可以为卷积神经网络的任一卷积层的主卷积核。在实际应用中,训练设备可以由各层卷积核的主卷积核得到各层卷积层的通道辅卷积核。后续会详述如何由主卷积核得到通道辅卷积核,这里不作详述。
S404中的主卷积核可以与S403中的主卷积核相同,也可以不同。训练设备可以仅执行S403和S404中的一个,此时S403和S404中的辅卷积核对应的主卷积核可以为S402中的主卷积核;训练设备也可以独立执行S403和S404,此时S403和S404中的辅卷积核对应的主卷积核可以均为S402中的主卷积核;训练设备还可以是先执行S403再执行S404,S403得到的空间辅卷积核为S404得到的通道辅卷积核对应的主卷积核;还可以是先执行S404再执行S403,S404得到的通道辅卷积核为S403得到的空间辅卷积核对应的主卷积核。
S405、训练设备使用辅卷积核对图像信息执行卷积操作,得到多个特征图。
训练设备可以至少使用辅卷积核对图像信息执行卷积操作,也就是说,训练设备可以使用辅卷积核和步骤S402中的主卷积核对图像信息执行卷积操作,也可以只使用辅卷积核对图像信息执行卷积操作。其中,辅卷积核可以包括空间辅卷积核和通道辅卷积核中的一个或多个。可选的,训练设备可仅使用得到的空间辅卷积核对图像信息进行卷积操作,得到多个特征图。可选的,训练设备可仅使用得到的通道辅卷积核对图像信息进行卷积操作,得到多个特征图。可选的,训练设备可使用每个空间辅卷积核对图像信息进行卷积操作得到多个特征图中的一部分特征图,可使用每个通道辅卷积核对图像信息进行卷积操作得到多个特征图中的另一部分特征图。在实际应用中,训练设备可以按照一定的顺序依次利用卷积神经网络的各层卷积层对各层输入的图像信息进行卷积操作。举例来说,训练设备采用的卷积神经网络的第3层卷积层的输出为第4层卷积层的输入,训练设备利用第3层卷积层的卷积核(空间辅卷积核和通道辅卷积核)对该第3层输入的图像信息进行卷积操作,将得到的各特征图拼接起来输入至该第4层卷积层进行卷积操作。
S406、训练设备将得到的多个特征图在通道维度上拼接起来作为卷积层的输出特征图。
通道维度也即上述纵深维度。举例来说,卷积神经网络的某一卷积层包括4个卷积核,该卷积层待输出包括24个通道的输出特征图,训练设备利用这4个卷积核分别对该层卷积层输入的图像信息做卷积运算得到4个特征图,每个特征图包括6个通道,将这4个特征图依次拼接起来得到该卷积层的输出特征图。该输出特征图的第1个通道至第6个通道、第7个通道至第12个通道、第13个通道至第18个通道以及第19个通道至第24个依次对应这4个特征图。也就是说,利用每个卷积核得到的特征图作为卷积层的输出特征图的一部分。
S407、训练设备判断卷积神经网络是否收敛。
若是,执行S409;否则,执行S408。训练设备判断卷积神经网络是否收敛可以是判断更新主卷积核的次数是否到达迭代阈值;也可以是判断卷积神经网络的损失值是否低于损失阈值。卷积神经网络的损失值是训练设备利用该卷积神经网络的损失函数计算得到的该卷积神经网络输出的图像处理结果和理想结果之间的误差。训练设备的训练任务不同,卷积神经网络的损失函数也不同。迭代阈值可以是训练设备预先设置的迭代次数,例如10000次、20000次等。损失阈值可以是训练设备预先设置的,若卷积神经网络输出的图像处理结果与真实结果之间的差值小于该损失阈值,则结束训练。
S408、训练设备计算各个辅卷积核的梯度,将各个辅卷积核的梯度之和作为主卷积核的梯度,更新主卷积核的参数。
可选的,训练设备计算各个空间辅卷积核的梯度,将各个空间辅卷积核的梯度之和作为主卷积核的梯度,更新主卷积核的参数。可选的,训练设备计算各个通道辅卷积核的梯度,将各个通道辅卷积核的梯度之和作为主卷积核的梯度,更新主卷积核的参数。
对于一个主卷积核来说,可以将由该主卷积核得到的各辅卷积核的梯度之和作为该主卷积核的梯度,其中辅卷积核可以包括空间辅卷积核和通道辅卷积核中的一种或多种。
下面以任一卷积层为例,介绍如何更新主卷积核的参数。
卷积核对输入的图像信息的卷积操作可以通过矩阵乘法实现:首先,某一层卷积层的输入特征图x(该层卷积层输入的图像信息)可被划分为z个区块,其中z=H×W,每个区块大小为(d1×d2×P);其中,输入特征图包括P个通道,每个通道对应一个(H×W)的二维矩阵,H和W均为大于0的整数;主卷积核f包括P个通道,每个通道对应一个(d1×d2)的二维矩阵,d1、d2和P均为大于0的整数。其次,将每个区块向量化,获得向量化的输入特征图X,X=[vec(x1),vec(x2),...,vec(xz)]∈Rd1d2p×z。同样地,将输出特征图y和它对应的主卷积核f也分别向量化为Y=vec(y)∈Rz×1和F=vec(f)∈Rd1d2p×1。那么,卷积操作可以写作如下公式:
Y=XTF+b;
对于辅卷积核,输出特征图的矩阵化形式为:
Y=[XTF1+b1,XTF2+b2,...,XTFs+bs];
其中,F1至Fs为由主卷积核f得到的s个辅卷积核,b1至bs为F1至Fs分别对应的偏置项,Y=[Y1,Y2,...,Ys]∈Rz×s是由各辅卷积核得到的输出特征图,Y1至Ys分别为由各辅卷积核得到的特征图。输入特征图的梯度为:
每个辅卷积核的梯度表示如下:
所以,主卷积核的梯度是各辅卷积核的梯度的之和:
计算好主卷积核的梯度之后,其更新方式如下:
其中,η为学习率。学习率(learning rate)作为监督学习以及深度学习中重要的超参,其决定着损失函数能否收敛到局部最小值以及何时收敛到最小值。学习率对于深度学习是一个重要的超参数,它控制着基于损失梯度调整神经网络权值的速度,学习率越小,损失梯度下降的速度越慢,收敛的时间更长。在实际应用中,训练设备训练卷积神经网络执行不同的处理操作时,可以设置不同的学习率。
S409、结束训练。
可选的,训练设备重复执行S402至S408直到达到其所设置的迭代次数。
所述方法400具体可以由如图1所示的训练设备120执行,所述方法400中的输入图像可以是如图1所示的数据库130中维护的训练数据。可选的,所述方法400的S401可以在训练设备120中执行,也可以在训练设备120之前由其他功能模块预先执行,即先对从所述数据库130中接收或者获取到的训练数据进行预处理,如S401,得到预处理后的图像信息,作为所述训练设备120的输入,并由所述训练设备120执行S402至S409。
可选的,所述方法400可以由CPU执行,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
本申请实施例中,由主卷积核得到辅卷积核,通过辅卷积核的梯度来计算主卷积核的梯度进而更新主卷积核;可以训练得到用于生成各辅卷积核的主卷积核,从而得到参数量较少的卷积神经网络。
下面介绍如何利用包含少量卷积核(主卷积核)的CNN做图像处理的方案。在该方案中,CNN包括N层卷积层,该N层卷积层中任一卷积层采用m个主卷积核和由该m个主卷积核得到的r个辅卷积核对向其输入的图像信息进行卷积运算。N、m、r均为大于0的整数。在该方案中,图像处理装置可以先存储CNN的各卷积层的主卷积核,任一卷积层对输入的图像信息做卷积操作之前,由该任一卷积层的主卷积核得到多个辅卷积核,该任一卷积层再利用主卷积核和辅卷积核对输入的图像信息做卷积运算。可以理解,辅卷积核是由主卷积核得到的,而不是图像处理装置预先存储的。图像处理装置可以由一个主卷积核得到多个辅卷积核,这些辅卷积核中的参数可以都是采样该主卷积核中的一部分元素得到的。本申请中,图像处理装置仅需存储CNN的各卷积层的主卷积核,在利用各卷积层做卷积运算之前,由各卷积层的主卷积核得到辅卷积核,这样可以大大减少CNN中卷积核的参数量,从而减少CNN所占用的内存空间。
实施例二:
图5为本发明实施例二提供的一种基于神经网络的图像处理方法500,该方法可包括:
S501、图像处理装置接收输入图像。
图像处理装置为图1中的执行设备110。图像处理装置接收输入图像可以是该图像处理装置获取其通过数据采集设备(例如摄像头)采集的图像(输入图像);也可以是通过I/O接口112接收来自客户设备的图像;还可以是获取数据库130中存储的图像。
S502、图像处理装置对上述输入图像进行预处理,得到预处理后的图像信息。
图像处理装置对上述输入图像进行预处理的主要目的是消除上述输入图像中无关的信息、恢复有用的真实信息、增强有关信息的可检测性以及最大限度地简化数据,从而提高CNN对上述输入图像做特征提取、图像分割、图像匹配以及图像识别等图像处理操作的可靠性和精度。图像处理装置对上述输入图像进行预处理可以是采用如下至少一项对上述输入图像进行预处理:图像滤波、图像预处理增强、图像预处理平滑、图像预处理复原。图像处理装置还可以对上述输入图像进行其他图像预处理操作,本申请不做限定。图像滤波主要包括调整图像尺寸,并对缩放后的图像中的噪声进行去噪平滑处理。图像预处理增强是对图像中的信息有选择地加强和抑制,以改善图像的视觉效果,或将图像转变为更适合于机器处理的形式,以便于数据抽取或识别。图像预处理平滑是消除图像中的随机噪声。图像预处理复原是校正各种原因所造成的图像退化,使重建或估计得到的图像尽可能逼近于理想无退化的图像。
S503、图像处理装置利用卷积神经网络对上述图像信息进行卷积操作。
上述卷积神经网络包括N层卷积层,上述卷积操作包括:利用第n层卷积层中的M个卷积核对上述图像信息进行卷积运算。上述M个卷积核中包括m个主卷积核和r个辅卷积核,上述r个辅卷积核由上述m个主卷积核得到,一个主卷积核对应得到多个辅卷积核,且上述r个辅卷积核中的每一个辅卷积核所包含的非0元素的个数均少于其对应的主卷积核所包含的非0元素的个数。其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数。
上述r个辅卷积核中任一辅卷积核包括P个通道,上述任一辅卷积核对应的主卷积核包括Q个通道,上述任一辅卷积核在第p个通道上的二维矩阵为上述任一辅卷积核对应的主卷积核在第q个通道上的二维矩阵的子矩阵;其中,P和Q均为大于0的整数,p为大于0且不大于P的整数,q为大于0且不大于Q的整数。图像处理装置可以由上述任一辅卷积核对应的主卷积核得到上述任一辅卷积核。
在一个可选的实现方式中,上述任一辅卷积核为图像处理装置提取上述任一辅卷积核对应的主卷积核中的部分参数(元素)得到的。本申请中,卷积核中的元素和卷积核中的参数是相同的概念。在该实现方式中,每个辅卷积核均是采样主卷积核中的部分元素得到的。也就是说,每个辅卷积核的参数(元素)包含在主卷积核的参数内,不会产生新的参数。举例来说,某个主卷积核为一个(11×11×3)的三维矩阵,也即三维张量,该主卷积核包括的一个(9×9×3)的三维矩阵为由该主卷积核得到的一个辅卷积核。又举例来说,某个主卷积核为一个(5×5×96)的三维矩阵,即该主卷积核包括96个通道,每个通道对应的一个(5×5)的二维矩阵,该主卷积核包括的一个(5×5×93)的三维矩阵为由该主卷积核得到的一个辅卷积核。
在一个可选的实现方式中,上述任一辅卷积核为图像处理装置将上述任一辅卷积核对应的主卷积核中的部分元素设置为目标值得到的矩阵。上述目标值可以是0,也可以是其他数值,本申请不做限定。在该实现方式中,辅卷积核与主卷积核为同型矩阵,将一个主卷积核不同位置的元素设置为目标值可以得到不同的辅卷积核。举例来说,某个主卷积核为一个(11×11×3)的三维矩阵,将该主卷积核在通道维度上的每个二维矩阵的最外围的2行和最外围的2列置为0得到一个辅卷积核。又举例来说,某主卷积核包括96个通道,每个通道对应的一个二维矩阵,即该主卷积核包括96个二维矩阵,将该96个二维矩阵中的任意3个二维矩阵设置为零矩阵得到一个辅卷积核。
S504、图像处理装置输出卷积操作结果。
上述卷积操作结果包括M个特征图。图像处理装置利用上述第n层卷积层中的M个卷积核分别对上述图像信息进行卷积运算可以得到M个特征图;将得到的M个特征图拼接起来得到卷积操作结果(该层卷积层的输出特征图)。举例来说,卷积神经网络的某层卷积层包括4个卷积核,图像处理装置利用这4个卷积核分别对该层卷积层输入的图像信息做卷积运算得到4个特征图,若每个特征图包括6个通道,将这4个特征图依次拼接起来得到该卷积层的输出特征图。该输出特征图的第1个通道至第6个通道、第7个通道至第12个通道、第13个通道至第18个通道以及第19个通道至第24个依次对应这4个特征图。也就是说,图像处理装置利用任一卷积层的各卷积核得到的特征图作为该任一卷积层的输出特征图的一部分。S503和S504为图像处理装置对上述图像信息做图像分类、目标检测等图像处理过程中执行的操作。例如,当图像处理装置利用卷积神经网路对图像信息做图像分类时,该图像处理装置需要利用该卷积神经网络的卷积层、池化层、神经网络层对该图像信息做图像分类以得到图像分类结果。
所述方法500具体可以由如图1所示的执行设备110执行,所述方法500中的S501中的输入图像可以是如图1所示的客户设备140给出的输入数据,所述执行设备110中的预处理模块113可以用来执行所述方法500中S502所述的对输入图像进行的预处理,所述执行设备110中的计算模块111可以用于执行所述S503和S504。
可选的,所述方法500可以由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
可以理解实施例一为该卷积神经网络的训练阶段(如图1所示的训练设备120执行的阶段),具体训练是采用由实施例一提供的卷积神经网络进行的;而实施例二则可以理解为是该卷积神经网络的应用阶段(如图1所示的执行设备110执行的阶段),具体可以体现为采用由实施例一训练得到的卷积神经网络,并根据用户输入的图像,从而得到图像处理结果。
图像处理装置在利用卷积神经网络的任一卷积层中的辅卷积核对输入的图像信息进行卷积操作之前,需要由该任一卷积层的主卷积核得到这些辅卷积核。下面介绍由卷积神经网络的任一卷积层中的任一主卷积核得到辅卷积核的实现方式。
方式一、图像处理装置由主卷积核得到空间辅卷积核。
空间辅卷积核在第p个通道上的二维矩阵包括该空间辅卷积核对应的主卷积核在第q个通道上的二维矩阵的子矩阵。该空间辅卷积核和该空间辅卷积核对应的主卷积核均包括P个通道,p、q、P均为大于0的整数。该空间辅卷积核在任一通道上的二维矩阵包括该主卷积核在一个通道上的二维矩阵的子矩阵,且该空间辅卷积核在任意两个通道上的二维矩阵不同。下面介绍由主卷积核得到空间辅卷积核的两种方法。
方法1:图像处理装置获取主卷积核在通道维度上的每个二维矩阵中目标位置对应的子矩阵分别作为空间辅卷积核在通道维度上的各二维矩阵。
每个主卷积核包括一个或多个通道,每个通道上有一个二维矩阵,各通道上的二维矩阵即为该主卷积核在通道维度上的二维矩阵。每个二维矩阵中目标位置对应的子矩阵为每个二维矩阵中的任一子矩阵。可选的,每个二维矩阵中目标位置对应的元素为每个二维矩阵中除最外围的K行和最外围的K列之外的元素,K为不小于1的整数。
在一个可选的实现方式中,任一主卷积核包括P个通道,由该任一主卷积核得到的空间辅卷积核包括P个通道,图像处理装置可以将该任一主卷积核在第1个通道至第P个通道上的二维矩阵中目标位置对应的子矩阵分别作为该空间辅卷积核在第1个通道至第P个通道上的二维矩阵。举例来说,一个主卷积核包括P个通道,即第一个通道至第P个通道,每个通道上的二维矩阵为(7×7)的矩阵,图像处理装置获取该主卷积核包括的第一个通道至第P个通道上的每个二维矩阵中的一个(5×5)的子矩阵分别作为空间辅卷积核包括的第一个通道至第P个通道上的二维矩阵。
在一个可选的实现方式中,任一主卷积核包括P个通道,由该任一主卷积核得到的空间辅卷积核包括P个通道,图像处理装置可以将该任一主卷积核在第q个通道上的二维矩阵中目标位置对应的子矩阵作为由该任一主卷积核得到的空间辅卷积核在第p个通道上的二维矩阵,P、p、q均为大于0的整数,p不等于q。例如某一主卷积核包括三个通道,图像处理装置将该主卷积核在第一个通道上的二维矩阵的子矩阵作为空间辅卷积核在第二个通道上的二维矩阵,将该主卷积核在第二个通道上的二维矩阵的子矩阵作为该空间辅卷积核在第三个通道上的二维矩阵,将该主卷积核在第三个通道上的二维矩阵的子矩阵作为该空间辅卷积核在第一个通道上的二维矩阵。
在一个可选的实现方式中,图像处理装置可以获取P个二维矩阵中每个二维矩阵不同位置的元素,得到一个空间辅卷积核。该P个二维矩阵为任一主卷积核包括的P个通道上的二维矩阵。该空间辅卷积核在第p1个通道上的二维矩阵包括的元素为该任一主卷积核在第q1个通道上的二维矩阵中第一位置的元素;该辅卷积核在第p2个通道上的二维矩阵包括的元素为该任一主卷积核在第q2个通道上的二维矩阵中第二位置的元素,该第一位置和该第二位置不同。该空间辅卷积核包括P个通道,P为大于0。p1、p2、q1、q2均为大于0且不大于P的整数。图像处理装置可以将该任一主卷积核在第q1个通道上的二维矩阵中第一位置的元素对应的子矩阵作为该空间辅卷积核在第p1个通道上的二维矩阵;将该任一主卷积核在第q2个通道上的二维矩阵中第二位置的元素对应的子矩阵作为该空间辅卷积核在第p2个通道上的二维矩阵。举例来说,对于(3×3×256)的主卷积核,每个通道上有一个(3×3)的二维矩阵,由该主卷积核得到的空间辅卷积核的第1个通道上的二维矩阵是该主卷积核的第1个通道上的二维矩阵中左上角(2×2)的矩阵,该空间辅卷积核的第2个通道上的二维矩阵是该主卷积核的第2个通道上的二维矩阵中右下角(2×2)的矩阵。可以理解,图像处理装置可以提取该任一主卷积核在各通道上的二维矩阵中不同位置的元素以得到辅卷积核。
图像处理装置可以由任一主卷积得到多个空间辅卷积核。图像处理装置可以获取P个二维矩阵中每个二维矩阵的第三位置的元素,得到第一辅卷积核;获取该P个二维矩阵中每个二维矩阵的第四位置的元素,得到第二辅卷积核;若该第三位置与该第四位置不同,则该第一辅卷积核和该第二辅卷积核不同。该P个二维矩阵为任一主卷积核在P个通道上的二维矩阵。本申请不对图像处理装置获取的每个二维矩阵中的元素的位置做限定,即不对目标位置做限定。图6A为本申请实施例提供的一种主卷积核和辅卷积核的对比示意图,如图6A所示,601为主卷积核,602、603、604均为由主卷积核601得到的空间辅卷积核。从图6A可以看出,空间辅卷积核602、空间辅卷积核603、空间辅卷积核604均包含于主卷积核601。由任一主卷积核得到的空间辅卷积核的各通道上的二维矩阵是采用相同的方式从该任一主卷积核的各通道上的二维矩阵获取的。下面以获取任一主卷积核的一个通道上的二维矩阵为例介绍如何由该任一主卷积核得到一个或多个空间辅卷积核。
图6B为本申请实施例提供的另一种主卷积核和辅卷积核的对比示意图,图6B包括的4个矩阵分别为图6A包括的4个卷积核在第p个通道上的二维矩阵。如图6B所示,605为主卷积核601在第p个通道上的二维矩阵,606为空间辅卷积核602在第p个通道上的二维矩阵,607为空间辅卷积核603在第p个通道上的二维矩阵,608为空间辅卷积核604在第p个通道上的二维矩阵。从图6B可以看出,606、607、608均为605包括的子矩阵。图6B中,从左至右的3个实线黑框对应的矩阵依次为空间辅卷积核602在第p个通道上的二维矩阵,空间辅卷积核603在第p个通道上的二维矩阵,空间辅卷积核604在第p个通道上的二维矩阵。
下面介绍一种由任一主卷积核得到多个空间辅卷积核的方法。图像处理装置可以获取任一主卷积核在通道维度上的每个二维矩阵中除最外围的2行和最外围的2列之外的元素得到一个空间辅卷积核、提取每个二维矩阵中除最外围的4行和最外围的4列之外的元素得到另一个空间辅卷积核。可以理解,图像处理装置可以采用类似的方式由该任一主卷积核得到一系列的空间辅卷积核,直到得到的空间辅卷积核的个数满足需求。在任一主卷积核或者该任一主卷积核在通道上的二维矩阵为(d1×d2)矩阵的情况下,图像处理装置采用该方式最多可以得到(s-1)个空间辅卷积核;其中,d=min(d1,d2),d为d1和d2中较小的数,为向上取整符号。
图像处理装置采用方法1可以由主卷积核得到比主卷积核的尺寸更小的空间辅卷积核,既能快速地得到所需的空间辅卷积核,又能提高计算效率。
方法2:图像处理装置将主卷积核在通道维度上的每个二维矩阵中目标位置之外的位置上的元素均设置为目标值。
上述目标值可以0,也可以是其他数值,一般情况下目标值为0,本申请不做限定。可选的,每个二维矩阵中目标位置之外的元素为每个二维矩阵中最外围的K行和最外围的K列的元素,K为不小于1的整数。图像处理装置可以将任一主卷积核的任一通道上的二维矩阵中的至少一个元素设置为目标值以得到一个空间辅卷积核。
在一个可选的实现方式中,图像处理装置将P个二维矩阵中的每个二维矩阵中目标位置之外的元素设置为目标值以得到一个空间辅卷积核。P个二维矩阵为任一主卷积核包括的P个通道上的P个二维矩阵。该空间辅卷积核包括P个通道,P为大于0的整数。图像处理装置可以将该P个二维矩阵中每个二维矩阵的第五位置的元素设置为目标值,得到一个空间辅卷积核;将该P个二维矩阵中每个二维矩阵的第六位置的元素设置为该目标值,得到另一空间辅卷积核;若该第五位置与该第六位置不同,则该这两个空间辅卷积核不同。可选的,图像处理装置将该P个二维矩阵中的每个二维矩阵中除最外围的K行和最外围的K列之外的元素设置为目标值;也可以是将每个二维矩阵中的其他位置的元素设置为目标值,本申请不做限定。K为不小于1的整数。
下面介绍一种由任一主卷积核得到多个空间辅卷积核的方法。图像处理装置可以将任一主卷积核在通道维度上的每个二维矩阵的最外围的2行和最外围的2列设置为目标值得到第一个辅卷积核;将每个二维矩阵最外围的4行和最外围的4列设置为该目标值得到第二个辅卷积核;将每个二维矩阵最外围的2(s-1)行和最外围的2(s-1)列设置为该目标值得到第s个辅卷积核。在该任一主卷积核或者该任一主卷积核在通道维度上的二维矩阵为(d1×d2)矩阵的情况下,图像处理装置采用该方法最多可以得到(s-1)个辅卷积核;其中,d=min(d1,d2),d为d1和d2中较小的数,为向上取整符号。图像处理装置可以采用类似的方式将任一主卷积核在通道维度上的每个二维矩阵中相同位置的元素设置为目标值以得到空间辅卷积核。下面以设置该任一主卷积核的一个通道上的二维矩阵为例介绍如何由该任一主卷积核得到一个或多个辅卷积核。图7为本申请实施例提供的又一种主卷积核和辅卷积核的对比示意图,如图7所示,701为一个主卷积核在第t个通道上的二维矩阵,702、703、以及704分别为由该主卷积核得到的空间辅卷积核在第t个通道上的二维矩阵,t为大于0的整数。从图7可以看出,图像处理装置将主卷积核在通道维度上的每个二维矩阵中最外围的一行或多行以及最外围的一列或多列设置为0,可以得到与该主卷积核同型的空间辅卷积核。
下面提供一种将主卷积核在通道维度上的每个二维矩阵中目标位置之外的元素设置为目标值以得到空间辅卷积核的方式。
图像处理装置计算任一主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到空间辅卷积核;该采样矩阵和该任一主卷积核为同型矩阵且该采样矩阵中各位置的元素与该主卷积核中各位置的元素一一对应,该采样矩阵的目标位置的元素均为1且除该目标位置之外的位置上的元素均为0。该采样矩阵的目标位置的元素可以为该采样矩阵在通道维度上的每个二维矩阵中除最外围的K行和最外围的K列之外的元素,K为不小于1的整数。
在一个可选的实现方式中,采样矩阵和任一主卷积核为同型矩阵,该采样矩阵在通道维度上的每个二维矩阵的最外围的K行以及最外围的K列包括的元素均为0,该采样矩阵中除这些元素之外的元素均为1;图像处理装置计算该任一主卷积核中对应位置的元素和该采样矩阵中对应位置的元素的乘积得到空间辅卷积核。可以理解,计算任一主卷积核和采样矩阵的乘积得到的空间辅卷积核与将该任一主卷积核在通道维度上的每个二维矩阵的最外围的K行以及最外围的K列包括的元素均设置为0得到的空间辅卷积核相同。图像处理装置可以分别计算任一主卷积核与多个不同采样矩阵的乘积以得到多个空间辅卷积核。在该实现方式中,采样矩阵的数学表达式如下:
其中,采样矩阵Mi为一个(d1×d2×Q)的三维矩阵,i为不小于1的整数,d为d1和d2中较小的数。Mi(a,b,:)表示采样矩阵Mi在通道维度上的每个二维矩阵中的第a行和第b列。采样矩阵Mi为任一主卷积核对应的第i个采样矩阵,且与该任一主卷积核为同型矩阵,Q为采样矩阵Mi的通道的个数。图像处理装置可以采用如下公式计算任一主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积:
其中,fi为由该任一主卷积核得到的第i个空间辅卷积核,f为该任一主卷积核,表示两个矩阵对应位置的元素相乘。在该任一主卷积核或者该任一主卷积核在通道上的二维矩阵为(d1×d2)矩阵的情况下,该任一主卷积核最多对应(s-1)个采样矩阵。其中,d=min(d1,d2),d为d1和d2中较小的数,为向上取整符号。图像处理装置分别计算该任一主卷积核中对应位置的元素和该(s-1)个采样矩阵中对应位置的元素的乘积,可以得到(s-1)个空间辅卷积核。
图像处理装置采用方法2可以由主卷积核得到与主卷积核同型的空间辅卷积核,实现简单。
方式二、图像处理装置由主卷积核得到通道辅卷积核。
通道辅卷积核在第p个通道上的二维矩阵为该通道辅卷积核对应的主卷积核在第q个通道上的二维矩阵的子矩阵,p和q均为大于0的整数。该通道辅卷积核包括P个通道,该通道辅卷积核对应的主卷积核包括Q个通道,P和Q均为大于0的整数,且P不等于Q。下面介绍由主卷积核得到通道辅卷积核的两种方法。
方法1:图像处理装置获取主卷积核包括的Q个通道中任意P个通道上的二维矩阵,得到通道辅卷积核,Q为大于0的整数;该通道辅卷积核包括P个通道,P为大于0且小于Q的整数。
可选的,该P个通道可以是该Q个通道中的P个连续的通道。假定一个主卷积核包括的通道依次为第一通道至第Q通道,则第u通道至第(P+u-1)通道为P个连续的通道。其中,(P+u-1)不大于Q,u为大于0的整数。
可选的,P等于1,图像处理装置将该任一主卷积核的任一通道上的二维矩阵作为通道辅卷积核的1个通道上的二维矩阵。
可选的,P大于1,图像处理装置将该任一主卷积核的任一通道上的二维矩阵作为通道辅卷积核的T个通道中每个通道的二维矩阵,T为大于1、且小于或等于P的整数。举例来说,图像处理装置可将主卷积核的第1个通道上的二维矩阵作为通道辅卷积核的第1个通道至第48个通道中每个通道上的二维矩阵,将该主卷积核的第2个通道上的二维矩阵作为该通道辅卷积核的第49个通道至第96个通道中每个通道上的二维矩阵。可以理解,一个通道辅卷积核的各通道上的二维矩阵均来自该通道辅卷积核对应的主卷积核。
下面介绍一种由任一主卷积核得到多个通道辅卷积核的方法。图像处理装置可以将任一主卷积核的第1个通道至第P个通道上的P个二维矩阵依次作为第一个通道辅卷积核的第1个通道至第P个通道上的二维矩阵;将该任一主卷积核的第(1+g)个通道至第(P+g)个通道上的P个二维矩阵依次作为第二个通道辅卷积核的第1个通道至第P个通道上的二维矩阵;将该任一主卷积核的第(1+g*(f-1))个通道至第(P+g*(f-1))个通道上的P个二维矩阵依次作为第f个通道辅卷积核的第1个通道至第P个通道上的二维矩阵。其中,g为大于0的整数,可以理解为通道辅卷积核的步长,即图像处理装置在主卷积核的通道上进行采样时的滑动步长;f为大于1,且小于或等于((Q-P)/g+1)的整数。
由任一主卷积核得到的一个通道辅卷积核在第p个通道上的二维矩阵为该任一主卷积核在第q个通道上的矩阵,p和q均为大于0的整数。举例来说,一个主卷积核包括96个通道,每个通道上有一个二维矩阵,由该主卷积核得到的辅卷积核包括93个通道。图像处理装置可以将该96个通道中的第1个通道至第93个通道上的93个二维矩阵依次作为第一个通道辅卷积核的第1个通道至第93个通道上的二维矩阵;将该96个通道中的第2个通道至第94个通道上的93个二维矩阵依次作为第二个通道辅卷积核的第1个通道至第93个通道上的二维矩阵;将该96个通道中的第3个通道至第95个通道上的93个二维矩阵依次作为第三个通道辅卷积核的第1个通道至第93个通道上的二维矩阵;将该96个通道中的第4个通道至第96个通道上的93个二维矩阵依次作为第四个通道辅卷积核的第1个通道至第93个通道上的二维矩阵。图8为本申请实施例提供的又一种主卷积核和辅卷积核的对比示意图,如图8所示,801为主卷积核,802为第一个通道辅卷积核,803为第二个通道辅卷积核,804为第三个通道辅卷积核,805为第四个通道辅卷积核,这些通道辅卷积核均是图像处理装置获取主卷积核801的多个连续通道上的二维矩阵得到的。由任一主卷积核得到的通道辅卷积核包括的通道数少于该任一主卷积核包括的通道数。也就是说,通道辅卷积核的尺寸小于主卷积核的尺寸,利用通道辅卷积核进行卷积运算的速度更快。
方法二:图像处理装置将主卷积核包括的Q个通道中任意一个或多个通道上的二维矩阵中的元素均设置为目标值,得到通道辅卷积核。Q为大于0的整数。目标值可以为0以及其他数值。
在一个可选的实现方式中,图像处理装置将任一主卷积核包括的Q个通道中的任意(Q-P)个通道上的(Q-P)个二维矩阵均设置为零矩阵以得到一个通道辅卷积核。其中,该(Q-P)个通道可以是该Q个通道中的(Q-P)个连续通道。Q为大于0的整数,P为大于0且小于Q的整数。图像处理装置可以采用类似方式由一个主卷积核得到多个通道辅卷积核。下面介绍一种由任一主卷积核得到多个通道辅卷积核的方法。图像处理装置可以将任一主卷积核的第1个通道至第P个通道之外的各通道上的二维矩阵均设置为零矩阵以得到第一个通道辅卷积核;将该任一主卷积核的第(1+g)个通道至第(P+g)个通道之外的各通道上的二维矩阵均设置为零矩阵以得到第二个通道辅卷积核;将该任一主卷积核的第(1+g*(u-1))个通道至第(P+g*(u-1))个通道之外的各通道上的二维矩阵均设置为零矩阵以得到第u个通道辅卷积核。其中,g为大于0的整数,可以理解为通道辅卷积核的步长;u为大于1且小于或等于((P-H)/g+1)的整数。
下面提供一种将任一主卷积核在通道维度上的一个或多个二维矩阵设置为零矩阵以得到通道辅卷积核的方式。
在一个可选的实现方式中,采样矩阵和任一主卷积核为同型矩阵,该采样矩阵的Q个通道中的(Q-P)个通道上的(Q-P)个二维矩阵均为零矩阵,该采样矩阵中除这(Q-P)个通道之外的通道上的二维矩阵中的元素均为1。Q为大于0的整数,P为大于0且小于Q的整数。图像处理装置计算该任一主卷积核中对应位置的元素和该采样矩阵中对应位置的元素的乘积得到通道辅卷积核。图像处理装置可以分别计算任一主卷积核与多个不同采样矩阵的乘积以得到多个通道辅卷积核。在该实现方式中,采样矩阵的数学表达式如下:
其中,采样矩阵Mj为一个(d1×d2×Q)的三维矩阵,j为不小于1的整数,g为大于0的整数。采样矩阵Mj为任一主卷积核对应的第j个采样矩阵,且与该任一主卷积核为同型矩阵,Q为采样矩阵Mj(:,:,l)包括的通道的个数。Mj(:,:,l)表示采样矩阵Mj在第l个通道上的二维矩阵中的全部元素。图像处理装置采用如下公式计算任一主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积:
其中,fj为由该任一主卷积核得到的第j个辅卷积核,表示两个矩阵对应位置的元素相乘。在该实现方式中,任一主卷积核最多对应个采样矩阵。其中,(Q-P)为任一采样矩阵在通道维度上包括的零矩阵的个数;g为大于0的整数,可以理解为通道辅卷积核的步长;为向下取整符号。在该实现方式中,图像处理装置由任一主卷积核得到的辅卷积核为通道辅卷积核。
图像处理装置可以预先存储有该任一主卷积核对应的多个采样矩阵,并利用这些采样矩阵和该任一主卷积核得到多个通道辅卷积核。图像处理装置通过计算主卷积核中对应位置的元素和采样矩阵中对应位置的元素的乘积得到通道辅卷积核,可以快速地得到多个与主卷积核不同的通道辅卷积核,实现简单。
方式三、图像处理装置将由主卷积核得到的辅卷积核作为新的主卷积核,由新的主卷积核得到新的辅卷积核。
在一个可选的实现方式中,图像处理装置可以先由一个或多个主卷积核得到多个空间辅卷积核;再将这些空间辅卷积核分别作为新的主卷积核来得到通道辅卷积核。举例来说,图像处理装置由一个主卷积核得到4个空间辅卷积核;由每个空间辅卷积核作为一个新的主卷积核得到3个通道辅卷积核,这样就可以得到12个辅卷积核。
在一个可选的实现方式中,图像处理装置可以先由一个或多个主卷积核得到多个通道辅卷积核;再将这些通道辅卷积核分别作为新的主卷积核来得到空间辅卷积核。举例来说,图像处理装置由一个主卷积核得到4个通道辅卷积核;由每个通道辅卷积核作为一个新的主卷积核得到3个空间辅卷积核,这样就可以得到12个辅卷积核。
在方式三中,图像处理装置将已生成的辅卷积核作为新的主卷积核来生成另外的辅卷积核,不仅可以解决根据一个主卷积核生成的辅卷积核的个数有限的问题,还可以更充分地利用主卷积核,进一步减少CNN中的参数量。
图像处理装置采用上述任一种方式得到的辅卷积核的参数量均小于或等于它所对应的主卷积核,所以利用每一个辅卷积核来进行卷积运算的计算复杂度都不高于主卷积核的计算复杂度。也就是说,利用上述方式得到的辅卷积核可以降低卷积运算的计算复杂度,提高计算效率。
本申请中,图像处理装置还可以采用其他方式由任一主卷积核得到辅卷积核,由主卷积核得到辅卷积核的方式并不限定于上述三种方式。应理解,采用其他方式由主卷积核得到辅卷积核的方案也属于本申请的保护范围。
前述实施例描述了由主卷积核得到辅卷积核的多种实现方式,下面介绍由主卷积核得到的辅卷积核如何存储以及使用的过程。
在一个可选的实现方式中,图像处理装置由主卷积核得到辅卷积核后,直接利用得到的辅卷积核对图像信息进行卷积运算,并存储得到的特征图。在该实现方式中,图像处理装置利用通过对主卷积核进行采样或调整得到的辅卷积核直接进行卷积运算,不需要存储这些辅卷积核,可以有效减少存储开销。
在一个可选的实现方式中,图像处理装置由卷积神经网络的任一层卷积层的主卷积核得到辅卷积核后,存储得到的辅卷积核,在该任一层卷积层利用这些辅卷积核完成卷积运算后,清除存储的辅卷积核;继续执行下一层卷积层的卷积运算。举例来说,图像处理装置在执行卷积神经网络的第一层卷积层的卷积运算时,由该第一层卷积层的主卷积核得到辅卷积核并存储,利用该第一层卷积层的主卷积核和辅卷积核对输入的图像信息进行卷积运算,存储得到的特征图;在执行该卷积神经网络的第二层卷积层的卷积运算之前,清除存储的第一层卷积层的辅卷积核;在执行该卷积神经网络的第二层卷积层的卷积运算时,由该第二层卷积层的主卷积核得到辅卷积核并存储,利用该第二层卷积层的主卷积核和辅卷积核对输入的图像信息进行卷积运算,存储得到的特征图;重复之前的操作直到完成各层卷积层的卷积运算。在该实现方式中,图像处理装置并不需要同时存储各层卷积层的辅卷积核,而是在各层卷积层执行卷积运算的过程中依次存储各层卷积层的辅卷积核;可以有效减少卷积核占用的存储空间。
本申请中,由主卷积核得到辅卷积核可以用于任何卷积神经网络。下面以AlexNet为例,介绍在利用CNN实现图像分类的过程中怎样使用辅卷积核。图9为本申请实施例提供的一种AlexNet的结构示意图,如图9所示,AlexNet包含5个卷积层和3个全连接层,901至905依次为第1层卷积层至第5层卷积层输入的图像信息,902至906依次为该第1层卷积层至该第5层卷积层的输出特征图,907至909为3个全连接层。从图9可以看出,第1层卷积层至第5层卷积层的滑动窗(卷积核各通道上的二维矩阵)大小分别为11×11、5×5、3×3、3×3和3×3,该第1层卷积层至该第5层卷积层的输入通道数(输入图像信息的通道数)依次为3、96、256、384和384,输出通道数(输出特征图的通道数)依次为96、256、384、384和256。可以理解,第1层卷积层采用的卷积核为(11×11×3)的三维矩阵;第2层卷积层采用的卷积核为(5×5×96)的三维矩阵;依次类推可以确定各层卷积核的卷积核的大小。图9中的AlexNet还可以包括池化层,由于本申请的主要发明点在于卷积层,这里不对池化层多做描述。
空间辅卷积核的使用:以第1层卷积层为例介绍空间辅卷积核的使用。图像处理装置对(11×11×3)的主卷积核在空间上进行采样,能够得到{11×11×3、9×9×3、7×7×3、5×5×3、3×3×3、1×1×3}6个不同尺寸的空间辅卷积核,它们的参数均来自于主卷积核。由于AlexNet的第1层卷积层的输出通道数为96,为了保持通道数一致,(11×11×3)的主卷积核的输出通道数为16,即由该主卷积核得到的特征图的输出通道数为16,这样由该主卷积核得到的6个空间辅卷积核的输出通道数也都是16,将由这6个空间辅卷积核得到的6个输出特征图拼接起来,最终得到的特征图输出通道数为16×6=96。在这种情况下,该层卷积层的空间辅卷积核的参数量为(11×11×3×16=5808),而原始AlexNet中该层卷积层的参数量为(11×11×3×96=34848),参数量减少了34848/5808=6倍。计算速度加速了(11×11×6)/(11×11+9×9+7×7+5×5+3×3+1×1)=2.54倍。对于其他卷积层,操作是类似的。
通道辅卷积核的使用:以输入通道数为96的第2个卷积层为例介绍通道辅卷积核的使用。如果设置采样步长为1,通道辅卷积核通道数为93,那么图像处理装置在主卷积核的通道上进行采样,得到4个输入通道数为93的通道辅卷积核。由于AlexNet中的第2层卷积层的输出通道数应该为256,为了保持通道数一致,主卷积核的输出通道数为64,这样得到的4个通道辅卷积核的输出通道数也都是64,将由这4个通道辅卷积核得到的4个输出特征图拼接起来,最终得到的特征图的输出通道数为64×4=256。在这种情况下,该层卷积层的通道辅卷积核的参数量为5×5×96×64=153600,而原始AlexNet中该层卷积层的参数量为5×5×96×256=614400,参数量减少了614400/153600=4倍。对于其他卷积层,操作是类似的。
本申请实施例中的方法适用于所有CNN结构,对于AlexNet之外的网络,例如ResNet-50和ResNeXt-50等,辅卷积核可以以类似上述描述的方式替换原卷积核,达到减少网络的参数量和提高计算速度的效果。
前述实施例介绍了在利用CNN实现图像分类的过程中怎样使用辅卷积核,下面介绍本申请实施例提供的图像处理方法达到的图像分类效果。
本申请所提出的算法在ImageNet数据集上进行了图像分类的测试实验。表2展示了几个卷积神经网络(AlexNet,ResNet-50和ResNeXt-50)利用本申请所提出的辅卷积核之后的实验结果。在实验中,并不改变这些神经网络模型的结构(层数、每层的卷积核尺寸、参数等),仅仅根据本申请所提出的辅卷积核的计算方式来对每一层的卷积核个数进行减少。
表2
表2展示了多种卷积神经网络在ImageNet数据集上进行图像分类实验时的参数量、占用内存、浮点计算次数以及准确率。表2中,Versatile-AlexNet表示使用了空间辅卷积核的AlexNet,Versatile v2-AlexNet表示使用了空间辅卷积核和通道辅卷积核的AlexNet;Versatile-ResNet-50表示使用了空间辅卷积核的ResNet-50,Versatile v2-ResNet-50表示使用了空间辅卷积核和通道辅卷积核的ResNet-50;Versatile v2-ResNeXt-50表示使用了空间辅卷积核和通道辅卷积核的ResNeXt-50。从表2可以看出,在利用本申请所提出的辅卷积核替换现有卷积神经网络中传统的卷积核后,卷积神经网络的参数量大大减少,占用内存以及计算量也减少,并且对图像分类效果的影响很小。进一步地,利用本申请所提出的辅卷积核替换一些轻量级的深度卷积神经网络(例如ShuffleNet)中的传统的卷积核,并在ImageNet数据集上进行训练。这样可以来验证本申请所提出的辅卷积核应用到轻量级的深度卷积神经网络是否有效。
表3
网络 | 参数量 | 占用内存 | 计算次数 | Top1错误率 |
ShuffleNet | 0.7×10<sup>7</sup> | 20.6MB | 0.5×10<sup>9</sup> | 26.3% |
Versatile v2-ShuffleNet | 0.4×10<sup>7</sup> | 14.0MB | 0.5×10<sup>9</sup> | 27.6% |
ShuffleNet中绝大多数的卷积核尺寸都是1x1。从表3可以看出,应用本申请所提出的辅卷积核可以将其内存开销减少30%以上,并且对图像分类的准确率影响很小。
本申请所提出的辅卷积核除了可以应用到图像分类任务之外,还可以应用到其他图像处理任务。以处理图像超分辨率任务为例,采用VDSR(Very Deep CNN for ImageSuper-resolution)网络执行图像超分辨率任务需要进行大量卷积操作,可以将VDSR网络中的传统的卷积核替换为本申请中的辅卷积核,替换方法和AlexNet类似。VDSR网络是一种发表于CVPR 2016的图像超分辨率CNN模型。CVPR是IEEE conference on computer visionand pattern recognition的缩写,即IEEE国际计算机视觉与模式识别会议。在超分辨率标准数据集上的具体的实验结果如表4所示。
表4
网络 | 占用内存 | 计算次数 | PSNR(×2) | PSNR(×4) |
VDSR | 2.82MB | 48.39×10<sup>9</sup> | 37.53dB | 31.35dB |
Versatile-VDSR | 1.41MB | 26.90×10<sup>9</sup> | 37.64dB | 31.41dB |
Versatile v2-VDSR | 0.69MB | 26.46×10<sup>9</sup> | 37.58dB | 31.37dB |
表4中,Versatile-VDSR表示使用了空间辅卷积核的VDSR网络,Versatile v2-VDSR表示使用了空间辅卷积核和通道辅卷积核的VDSR网络。PSNR(Peak signal-to-noiseratio)是指峰值信噪比。PSNR(×4)表示图像超分辨处理得到的图像放大4倍后的峰值信噪比,PSNR(×2)表示图像超分辨处理得到的图像放大2倍后的峰值信噪比。从表4可以看出,采用本申请所提出的辅卷积核在达到模型压缩和加速目的的同时,能够保持甚至提升超分辨率的效果。
前述实施例介绍了图像处理方法以及训练方法,下面介绍实现这些方法的训练设备以及图像处理装置的结构。
图10是本申请实施例提供的一种卷积神经网络的训练设备的硬件结构示意图。图10所示的训练设备120(该训练设备120具体可以是一种计算机设备)包括存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。
存储器1001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1001可以存储程序,当存储器1001中存储的程序被处理器1002执行时,处理器1002和通信接口1003用于执行本申请实施例的卷积神经网络的训练方法的各个步骤。
处理器1002可以采用通用的中央处理器,微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processingunit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的卷积神经网络的训练装置中的单元所需执行的功能,或者执行本申请方法实施例的卷积神经网络的训练方法。
处理器1002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的卷积神经网络的训练方法的各个步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件完成本申请实施例的卷积神经网络的训练设备中包括的单元所需执行的功能,或者执行本申请方法实施例的卷积神经网络的训练方法。
通信接口1003使用例如但不限于收发器一类的收发装置,来实现训练设备1000与其他设备或通信网络之间的通信。例如,可以通过通信接口1003获取训练数据(如本申请实施例一所述的输入图像)。
总线1004可包括在训练设备120各个部件(例如,存储器1001、处理器1002、通信接口1003)之间传送信息的通路。
图11是本申请实施例提供的图像处理装置的硬件结构示意图。图11所示的图像处理装置1100(该装置1100具体可以是一种计算机设备,例如图1所示的执行设备110)包括存储器1101、处理器1102、通信接口1103以及总线1104。其中,存储器1101、处理器1102、通信接口1103通过总线1104实现彼此之间的通信连接。
存储器1101可以是只读存储器(ROM),静态存储设备,动态存储设备或者随机存取存储器(RAM)。存储器1101可以存储程序,当存储器1101中存储的程序被处理器1102执行时,处理器1102和通信接口1103用于执行本申请实施例的基于卷积神经网络的图像处理方法的各个步骤。
处理器1102可以采用通用的中央处理器,微处理器,应用专用集成电路,图形处理器或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像处理装置所需执行的功能,或者执行本申请方法实施例的图像处理方法。
处理器1102还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的基于卷神经网络的图像处理方法的各个步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102还可以是通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1101,处理器1102读取存储器1101中的信息,结合其硬件完成本申请实施例的图像处理装置中包括的单元所需执行的功能,或者执行本申请方法实施例的基于卷积神经网络的图像处理方法。
通信接口1103使用例如但不限于收发器一类的收发装置,来实现装置1100与其他设备或通信网络之间的通信。例如,可以通过通信接口1103获取训练数据(如本申请实施例二所述的输入图像)。
总线1104可包括在图像处理装置1100各个部件(例如,存储器1101、处理器1102、通信接口1103)之间传送信息的通路。
应注意,尽管图10和图11所示的训练设备120和执行设备110(图像处理装置1100)仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,训练设备120和执行设备110还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,训练设备120和执行设备110还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,训练设备120和执行设备110也可仅仅包括实现本申请实施例所必须的器件,而不必包括图10或图11中所示的全部器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种基于卷积神经网络的图像处理方法,其特征在于,包括:
接收输入图像;
对所述输入图像进行预处理,得到预处理后的图像信息;
使用卷积神经网络对所述图像信息进行卷积操作,所述卷积神经网络包括N层卷积层,所述卷积操作包括:使用第n层卷积层中的M个卷积核对所述图像信息执行卷积运算,其中,所述M个卷积核中包括m个主卷积核和r个辅卷积核,所述r个辅卷积核由所述m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;
输出卷积操作结果,所述卷积操作结果包括M个特征图。
2.根据权利要求1所述的方法,其特征在于,所述r个辅卷积核中任一辅卷积核包括P个通道,所述任一辅卷积核对应的主卷积核包括P个通道,所述任一辅卷积核在第p个通道上的二维矩阵包括所述任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
3.根据权利要求2所述的方法,其特征在于,所述任一辅卷积核在第p个通道上的二维矩阵包括的元素为所述任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列中的元素之外的元素;K为不小于1的整数。
4.根据权利要求1所述的方法,其特征在于,所述r个辅卷积核中任一辅卷积核包括P个通道,所述任一辅卷积核包括所述任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P和Q均为大于0的整数,P小于Q。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述r个辅卷积核中的s个辅卷积核由所述m个主卷积核中任一主卷积核得到,s为大于或等于1的整数,所述使用卷积神经网络对所述图像信息进行卷积操作之前,所述方法还包括:训练所述卷积神经网络;所述训练卷积神经网络包括:
使用所述卷积神经网络对训练样本进行卷积操作,得到卷积操作结果;
根据所述卷积操作结果,分别计算所述s个辅卷积核的梯度;
根据所述任一主卷积核的梯度,更新所述任一主卷积核中的元素,所述任一主卷积核的梯度为所述s个辅卷积核的梯度之和。
6.一种电子设备,其特征在于,包括:至少一个处理器和与所述至少一个处理器耦合的非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质用于存储由所述至少一个处理器执行的编程指令;所述编程指令指示所述至少一个处理器执行如下操作:
接收输入图像;对所述输入图像进行预处理,得到预处理后的图像信息;
利用卷积神经网络对所述图像信息进行卷积操作,所述卷积神经网络包括N层卷积层,所述卷积操作包括:
使用第n层卷积层中的M个卷积核对所述图像信息执行卷积运算,其中,所述M个卷积核中包括m个主卷积核和r个辅卷积核,所述r个辅卷积核由所述m个主卷积核得到,一个主卷积核对应得到一个或多个辅卷积核;其中,N和M均为大于0的整数;n为大于0,且小于或等于N的整数;m为大于0且小于M的整数,r为大于0且小于M的整数;输出卷积操作结果,所述卷积操作结果包括M个特征图。
7.根据权利要求6所述的电子设备,其特征在于,所述任一辅卷积核包括P个通道,所述任一辅卷积核对应的主卷积核包括P个通道,所述任一辅卷积核在第p个通道上的二维矩阵包括所述任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵的子矩阵;其中,P为大于0的整数,p为大于0且不大于P的整数。
8.根据权利要求7所述的电子设备,其特征在于,所述任一辅卷积核在第p个通道上的二维矩阵包括的元素为所述任一辅卷积核对应的主卷积核在第p个通道上的二维矩阵中除最外围的K行和最外围的K列之外的元素;K为不小于1的整数。
9.根据权利要求6所述的电子设备,其特征在于,所述任一辅卷积核包括P个通道,所述任一辅卷积核包括所述任一辅卷积核对应的主卷积核包括的Q个通道中P个连续通道上的二维矩阵,P和Q均为大于0的整数,P小于Q。
10.根据权利要求6至9任一项所述的电子设备,其特征在于,所述r个辅卷积核中的s个辅卷积核由所述m个主卷积核中任一主卷积核得到,s为大于或等于1的整数,所述编程指令指示所述至少一个处理器通过以下操作训练所述卷积神经网络:
使用所述卷积神经网络对训练样本进行卷积操作,得到卷积操作结果;
根据所述卷积操作结果,分别计算所述s个辅卷积核的梯度;
根据所述任一主卷积核的梯度,更新所述任一主卷积核中的元素,所述任一主卷积核的梯度为所述s个辅卷积核的梯度之和。
11.一种非瞬时性计算机可读存储介质,其特征在于,所述非瞬时性计算机可读存储介质存储由至少一个处理器执行的编程指令,所述编程指令指示所述至少一个处理器执行如权利要求1-5任一项所述的方法。
12.一种芯片,所述芯片包括至少一个处理器与数据接口,所述至少一个处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1-5任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/359,346 | 2019-03-20 | ||
US16/359,346 US10891537B2 (en) | 2019-03-20 | 2019-03-20 | Convolutional neural network-based image processing method and image processing apparatus |
PCT/CN2019/104460 WO2020186703A1 (en) | 2019-03-20 | 2019-09-04 | Convolutional neural network-based image processing method and image processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112236779A true CN112236779A (zh) | 2021-01-15 |
Family
ID=71016327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980001620.8A Pending CN112236779A (zh) | 2019-03-20 | 2019-09-04 | 基于卷积神经网络的图像处理方法和图像处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10891537B2 (zh) |
EP (1) | EP3732619A4 (zh) |
CN (1) | CN112236779A (zh) |
WO (1) | WO2020186703A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724151A (zh) * | 2021-07-30 | 2021-11-30 | 荣耀终端有限公司 | 一种图像增强方法、电子设备和计算机可读存储介质 |
CN115221102A (zh) * | 2021-04-16 | 2022-10-21 | 中科寒武纪科技股份有限公司 | 用于优化片上系统的卷积运算操作的方法和相关产品 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US11263526B2 (en) * | 2017-05-31 | 2022-03-01 | Intel Corporation | Gradient-based training engine for quaternion-based machine-learning systems |
CN111708448B (zh) * | 2019-05-08 | 2023-11-03 | 义隆电子股份有限公司 | 用于触控装置的控制系统及方法 |
CN110598731B (zh) * | 2019-07-31 | 2021-08-20 | 浙江大学 | 一种基于结构化剪枝的高效图像分类方法 |
US20210096934A1 (en) * | 2019-10-01 | 2021-04-01 | Shanghai United Imaging Intelligence Co., Ltd. | Systems and methods for enhancing a patient positioning system |
CN112751792B (zh) * | 2019-10-31 | 2022-06-10 | 华为技术有限公司 | 一种信道估计方法及装置 |
US11610129B2 (en) * | 2020-06-08 | 2023-03-21 | Robert Bosch Gmbh | System and method for multiscale deep equilibrium models |
CN112329912A (zh) * | 2020-10-21 | 2021-02-05 | 广州工程技术职业学院 | 卷积神经网络训练方法、图像重建方法、装置和介质 |
TWI768517B (zh) * | 2020-10-21 | 2022-06-21 | 國立政治大學 | 影像品質提昇方法及使用該方法的影像處理裝置 |
CN112417984B (zh) * | 2020-10-29 | 2022-07-05 | 西南交通大学 | 基于共注意力机制的时序鲁棒遥感影像变化检测方法 |
US11972348B2 (en) * | 2020-10-30 | 2024-04-30 | Apple Inc. | Texture unit circuit in neural network processor |
CN112288829A (zh) * | 2020-11-03 | 2021-01-29 | 中山大学 | 一种针对图像复原卷积神经网络的压缩方法及装置 |
CN112598012B (zh) * | 2020-12-23 | 2022-12-02 | 清华大学 | 神经网络模型中数据处理方法、存储介质和电子装置 |
CN112650974B (zh) * | 2020-12-30 | 2023-10-13 | 南京大学 | 一种高效的转置卷积计算方法 |
CN113344791B (zh) * | 2021-07-05 | 2022-06-10 | 中山大学 | 基于空洞卷积和特征融合的双目超分辨率图像检测方法、系统及介质 |
CN113673690B (zh) * | 2021-07-20 | 2024-05-28 | 天津津航计算技术研究所 | 一种水下噪声分类卷积神经网络加速器 |
CN113642589B (zh) * | 2021-08-11 | 2023-06-06 | 南方科技大学 | 图像特征提取方法及装置、计算机设备和可读存储介质 |
US20230164337A1 (en) * | 2021-11-25 | 2023-05-25 | Electronics And Telecommunications Research Institute | Method and apparatus for adaptive image preprocessing and reconstruction |
CN117079324B (zh) * | 2023-08-17 | 2024-03-12 | 厚德明心(北京)科技有限公司 | 一种人脸情绪识别方法、装置、电子设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5171118B2 (ja) | 2007-06-13 | 2013-03-27 | キヤノン株式会社 | 演算処理装置及びその制御方法 |
US10460230B2 (en) | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
CN106228556B (zh) | 2016-07-22 | 2019-12-06 | 北京小米移动软件有限公司 | 图像质量分析方法和装置 |
US11157814B2 (en) | 2016-11-15 | 2021-10-26 | Google Llc | Efficient convolutional neural networks and techniques to reduce associated computational costs |
CN107944545B (zh) | 2017-11-10 | 2020-07-31 | 中国科学院计算技术研究所 | 应用于神经网络的计算方法及计算装置 |
CN107729994B (zh) | 2017-11-28 | 2020-05-26 | 南京地平线机器人技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
CN107967459B (zh) | 2017-12-07 | 2021-08-24 | 北京小米移动软件有限公司 | 卷积处理方法、装置及存储介质 |
-
2019
- 2019-03-20 US US16/359,346 patent/US10891537B2/en active Active
- 2019-09-04 EP EP19769975.4A patent/EP3732619A4/en active Pending
- 2019-09-04 WO PCT/CN2019/104460 patent/WO2020186703A1/en unknown
- 2019-09-04 CN CN201980001620.8A patent/CN112236779A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115221102A (zh) * | 2021-04-16 | 2022-10-21 | 中科寒武纪科技股份有限公司 | 用于优化片上系统的卷积运算操作的方法和相关产品 |
CN115221102B (zh) * | 2021-04-16 | 2024-01-19 | 中科寒武纪科技股份有限公司 | 用于优化片上系统的卷积运算操作的方法和相关产品 |
CN113724151A (zh) * | 2021-07-30 | 2021-11-30 | 荣耀终端有限公司 | 一种图像增强方法、电子设备和计算机可读存储介质 |
CN113724151B (zh) * | 2021-07-30 | 2022-09-27 | 荣耀终端有限公司 | 一种图像增强方法、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020186703A1 (en) | 2020-09-24 |
EP3732619A4 (en) | 2020-12-23 |
US10891537B2 (en) | 2021-01-12 |
US20200302265A1 (en) | 2020-09-24 |
EP3732619A1 (en) | 2020-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112236779A (zh) | 基于卷积神经网络的图像处理方法和图像处理装置 | |
CN110033003B (zh) | 图像分割方法和图像处理装置 | |
CN110188795B (zh) | 图像分类方法、数据处理方法和装置 | |
CN110378381B (zh) | 物体检测方法、装置和计算机存储介质 | |
CN112308200B (zh) | 神经网络的搜索方法及装置 | |
CN110532871B (zh) | 图像处理的方法和装置 | |
WO2021043168A1 (zh) | 行人再识别网络的训练方法、行人再识别方法和装置 | |
CN109993707B (zh) | 图像去噪方法和装置 | |
CN112639828A (zh) | 数据处理的方法、训练神经网络模型的方法及设备 | |
CN110222717B (zh) | 图像处理方法和装置 | |
CN111914997B (zh) | 训练神经网络的方法、图像处理方法及装置 | |
CN111819568A (zh) | 人脸旋转图像的生成方法及装置 | |
CN112446380A (zh) | 图像处理方法和装置 | |
CN113191489B (zh) | 二值神经网络模型的训练方法、图像处理方法和装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
US20220157046A1 (en) | Image Classification Method And Apparatus | |
CN111695673B (zh) | 训练神经网络预测器的方法、图像处理方法及装置 | |
CN111797882A (zh) | 图像分类方法及装置 | |
CN112287954A (zh) | 图像分类方法、图像分类模型的训练方法及其装置 | |
CN113011562A (zh) | 一种模型训练方法及装置 | |
CN112529904A (zh) | 图像语义分割方法、装置、计算机可读存储介质和芯片 | |
CN111951195A (zh) | 图像增强方法及装置 | |
CN113673545A (zh) | 光流估计方法、相关装置、设备及计算机可读存储介质 | |
CN112464930A (zh) | 目标检测网络构建方法、目标检测方法、装置和存储介质 | |
CN115131256A (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 |