CN112580675A - 图像处理方法及装置、计算机可读存储介质 - Google Patents
图像处理方法及装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN112580675A CN112580675A CN201910935478.6A CN201910935478A CN112580675A CN 112580675 A CN112580675 A CN 112580675A CN 201910935478 A CN201910935478 A CN 201910935478A CN 112580675 A CN112580675 A CN 112580675A
- Authority
- CN
- China
- Prior art keywords
- convolution
- feature map
- coordinates
- deformable
- image processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 230000009466 transformation Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims abstract description 58
- 238000004364 calculation method Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 28
- 238000010586 diagram Methods 0.000 claims description 47
- 238000005070 sampling Methods 0.000 claims description 41
- 239000013598 vector Substances 0.000 claims description 38
- 239000011159 matrix material Substances 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013075 data extraction Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 6
- 238000007792 addition Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000008707 rearrangement Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 230000008521 reorganization Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003702 image correction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Processing (AREA)
Abstract
公开了一种图像处理方法及装置、计算机可读存储介质。本公开一实施例中,图像处理装置可包括扭曲变换模块、卷积计算模块、存储器和控制器,存储器可配置为存储可变形卷积的偏移参数和权重参数,控制器可配置为控制扭曲变换模块利用可变形卷积的偏移参数对输入图像执行扭曲变换处理,并控制所述卷积计算模块利用权重参数对扭曲变换模块的输出结果执行卷积运算,以完成输入图像的可变形卷积运算。本公开的上述实施例可高效且灵活地完成可变形卷积运算,不仅对具有空间形变的图像具有较好的处理效果,而且处理效率较高。
Description
技术领域
本公开涉及神经网络技术领域,尤其涉及一种图像处理方法及装置、计算机可读存储介质。
背景技术
可变形卷积(DCN,Deformable Convolution Network)相比于传统卷积,有效提升了几何变换建模的能力,对于具有空间形变的图像识别具有很好的效果,因此常用于人脸检测、自动驾驶等场景中。然而,基于可变形卷积的图像处理,因其神经网络模型的复杂度高、计算量大,采用通用的硬件架构来实现可变形卷积时处理效率很低,无法满足实际应用的需求。
发明内容
为了解决上述技术问题,期望提供一种图像处理方法及装置、计算机存储介质,能够灵活、高效地完成可变形卷积运算,不仅对具有空间形变的图像处理效果很好,而且处理效率较高。
根据本公开的一个方案,提供了一种图像处理装置,包括:
扭曲变换模块;
卷积计算模块;
存储器,配置为存储可变形卷积的偏移参数和权重参数;
控制器,配置为控制所述扭曲变换模块利用所述可变形卷积的偏移参数对输入图像执行扭曲变换处理,并控制所述卷积计算模块利用所述权重参数对所述扭曲变换模块的输出结果执行卷积运算,以完成所述输入图像的可变形卷积运算。
根据本公开的一个方面,提供了一种图像处理方法,包括:根据可变形卷积的偏移参数校正输入图像,以获得第一特征图;使用可变形卷积的权重参数对所述第一特征图执行卷积运算,以获得第二特征图;存储所述第二特征图。
根据本公开的一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的图像处理方法。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是可变形卷积的基础框架示意图。
图2是标准卷积运算过程的示意图。
图3是本公开一示例性实施例提供的可变形卷积运算过程的示意图。
图4是本公开另一示例性实施例提供的可变形卷积运算过程的示意图。
图5是本公开一示例性实施例提供的图像处理装置的示例性结构图。
图6是本公开一示例性实施例提供的图像处理装置中计算引擎的示例性结构图。
图7是本公开一示例性实施例提供的扭曲变换模块的示例性结构图。
图8是本公开一示例性实施例提供的扭曲变换单元的示例性结构图。
图9是本公开一示例性实施例提供的扭曲变换单元的示例性电路结构图。
图10是本公开一示例性实施例提供的图像处理方法的流程示意图。
图11是本公开另一示例性实施例提供的图像处理方法的流程示意图。
图12是本公开一示例性实施例提供的可变形卷积执行过程的示意图。
图13是本公开另一示例性实施例提供的可变形卷积执行过程的示意图。
图14是本公开一示例性实施例提供的图像处理方法中步骤S110中扭曲变换处理过程的示意图。
图15是本公开一示例性实施例提供的图像处理方法中步骤S110中扭曲变换处理逆过程的示意图。
图16是本公开一示例性实施例提供的图像处理方法中步骤S120中权重参数重排的示意图。
图17是本公开一示例性实施例提供的图像处理方法中步骤S120中第一特征图中数据重排的示意图。
图18是本公开一示例性实施例提供的图像处理方法中步骤S120中调制参数重组的示意图。
图19是本公开一示例性实施例提供的图像处理方法中步骤S121~步骤122处理过程的示意图。
图20是本公开另一示例性实施例提供的图像处理方法中步骤S121~步骤122处理过程的示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
申请概述
如前文所述,可变形卷积相比于传统卷积,有效提升了几何变换建模的能力,对于具有空间形变的图像识别任务达到了很好的效果。然而,可变形卷积中因引入二维(2D)偏移量而使得其卷积操作的作用区域具有不确定性,输入数据坐标是浮点数,必须经过一些前期计算才可获得其数值,因此,输入数据难以复用,而且输入特征图也无法进行拆分处理,这大大降低了硬件执行卷积运算时的并行能力,从而导致可变形卷积的执行效率很低且功耗高。
针对上述技术问题,本公开实施例的基本构思包括提供一种图像处理装置,该图像处理装置可包括:扭曲变换模块、卷积计算模块、存储器和控制器,存储器可配置为存储可变形卷积的偏移参数和卷积层的权重参数,控制器可配置为控制扭曲变换模块利用可变形卷积的偏移参数对输入图像执行扭曲变换处理,并控制卷积计算模块利用权重参数对扭曲变换模块的输出结果执行卷积运算,以完成输入图像的可变形卷积运算。根据本公开实施例,通过在硬件中设计包含较高并行度的通用卷积模块和扭曲变换模块,不仅提升了计算的性能和效率,而且可支持输入数据的复用、输入特征图的拆分处理、通道维度上的并行,由此可见,本公开实施例提供的图像处理装置不仅可支持标准卷积运算而且可高效完成可变形卷积运算,可充分利用卷积计算模块的并行计算能力,提高可变形卷积的执行效率,进而高效实现针对具有空间形变的图像的处理。
本公开实施例的基本构思还包括提供一种图像处理方法,该方法先通过可变形卷积的偏移参数校正输入图像以获得第一特征图,再使用可变形卷积的权重参数对第一特征图执行卷积运算以获得第二特征图,该第二特征图即是可变形卷积运算的结果。根据本公开实施例,通过将可变形卷积拆成扭曲变换和普通卷积,执行卷积运算时输入数据可复用、输入特征图也可以进行拆分处理,还可在通道维度上并行,提升了计算的灵活性,由此,本公开实施例的技术方案可以快速、灵活的完成可变形卷积的计算,从而可高效实现针对具有空间形变的图像的处理。
本公开实施例可应用于任何可适用的应用场景。至少一些实施例中,本公开实施例可适用于需要对具有一定几何形变的目标(例如,人脸、行人、车辆、文字、动物)进行识别的场景。举例来说,本公开实施例尤其适用于可能发生图像扭曲或目标形变的情况,例如,自动驾驶应用中,车辆等交通工具在行驶过程中其摄像装置所拍摄的图像很容易发生扭曲、形变等问题,同时自动驾驶的应用对图像处理结果(例如,障碍物检测及其定位)的精确度要求也更高。
示例性应用场景
图1示出了可变形卷积的基础框架。图1的示例中,输入特征图中的填充白色的正方形小框表示普通卷积的采样点,输入特征图中的灰色边框的正方形小框表示可变形卷积的采样点。图1的示例中,可变形卷积的过程分成两路,其中一路学***移后的窗口(如图1所示灰色边框所在的区域)。
可变形卷积不需要任何额外的监督信号,可以直接通过目标任务学习得到。它可以方便地取代任何已有视觉识别任务的卷积神经网络中的若干个标准卷积单元,并通过标准的反向传播进行端到端的训练,是对于传统卷积网络简明而又意义深远的结构革新,具有重要的学术和实践意义。它适用于所有待识别目标具有一定几何形变的任务(几乎所有重要的视觉识别任务都有此特点,人脸、行人、车辆、文字、动物等),可以直接由已有网络结构扩充而来,无需重新预训练。它通过增加模型复杂度和计算量,显著提高了识别精度。
在实现方面,主要存在两种可变形卷积,该两种可变形卷积包括如下的第一种可变形卷积和第二种可变形卷积。
第一种可变形卷积在卷积操作的作用区域上,通过加入可学习的二维(2D)偏置参数来采样,改变了普通卷积运算中固定位置的采样模式,而变成非固定位置的采样模式。
第一种可变形卷积的计算原理如下式(1)所示,其中,y(p0)表示输出特征图(output feature map)中对应输入特征图中像素p0的像素点的像素值,w(pn)表示卷积运算的权重参数,R表示对应输入特征图中像素p0的感受野(也可以认为是以像素p0为起始采样点的采样点集合),n表示R中的像素个数,p0+pn表示R中的第n个像素,Δpn表示偏移向量。
以3*3卷积为例,假设像素p0的坐标是(0,0),感受野R可以表示为R={(-1,-1),(-1,0),...,(0,1),(1,1)}。
第二种可变形卷积在上述第一种可变形卷积的基础上额外加入了调制参数(mask),用于调节每个采样位置的幅值。第二种可变形卷积的运算原理如下式(2)所示,其中,y(p0)表示输出特征图(output feature map)中对应输入特征图中像素p的像素点的像素值,wk表示第k个权重参数,K表示输入特征图中像素p的感受野中的像素个数,p+pk表示输入特征图中像素p的感受野中的第k个像素,表示偏移向量,Δmk表示调制参数中对应像素p+pk的数据。
图2示出了标准卷积运算的过程,图3示出了第一种可变形卷积的运算过程,图4示出了第二种可变形卷积的运算过程。对比图2和图3、图4,可以看出,标准卷积是规则格点采样,而可变形卷积则是分散式采样。正因标准卷积是规则格点采样,导致使用标准卷积的神经网络难以适应图像的几何形变,对具有几何形变的图像处理效果不佳。
本公开的一些示例中,可变形卷积的参数可以包括权重参数和偏移参数。其中,权重参数用于执行标准卷积运算,偏移参数用于确定采样点的位置(即输入图像中参与卷积运算的像素点的位置),利用偏移参数可以在每个采样点的位置增加偏移向量,使得卷积核在当前位置附近可以随意的采样,不再局限于标准卷积的规则格点,从而使得包含可变形卷积的神经网络能够更好地适应图像的几何形变,对具有几何形变的图像处理效率较佳。
本公开的其他示例中,可变形卷积的参数还可以包括调制参数(mask),调制参数可用于调节每个采样位置的输入特征幅值。对于某些不想要的采样点,调制参数中对应该采样点的元素值可以学成0或其他较低的值,而对于某些涉及图像关键特征的采样点,调制参数中对应该采样点的元素值可以学成较高的值,如此,通过加入调制参数可使可变形卷积更好地适应图像的各种形变。
可变形卷积的输入图像和输出特征图可以通过张量数据来表示,该张量数据可以具有四个维度:数量、通道、高度和宽度。相应的,可变形卷积的权重参数可以包括一定数量的卷积核,每个卷积核可以通过一张量数据来表示,该张量数据具有三个维度:通道、高度和宽度。为实现卷积运算,权重参数中卷积核的数量等于输出特征图的通道数且每个卷积核的规格都相同,单个卷积核的通道数等于输入图像的通道数,而单个卷积核的宽度大小和长度大小则可以预先设定。对于本公开实施例的可变形卷积而言,其权重参数中单个卷积核的宽度大小和长度大小可以相等。一些示例中,单个卷积核的宽度可以是1、长度可以是1。
此外,权重参数中还可以包括滑动步长,滑动步长表示每次卷积运算采样时在输入图像上的滑动距离。滑动步长可以是二维向量,该二维分量包括一宽度方向上的分量和一高度方向上的分量。对于本公开实施例的可变形卷积而言,滑动步长在宽度方向上的分量和高度方向上的分量均可取为1,或者分别取为与卷积核相应维度方向上尺寸相等的值。例如,卷积核的高度是3、宽度是3时,其滑动步长可以取为(1,1)(即宽度方向上的分量和高度方向上的分量均取1)或者(3,3)(即宽度方向上的分量和高度方向上的分量均取3),这可以避免数据重叠,从而保证应用本公开技术方案得到的可变形卷积运算结果(即下文的第二特征图)更为准确。
可变形卷积的偏移参数可以通过二维矩阵来表示,该二维矩阵可具有两个维度:高度和宽度,其高度大小和宽度大小的乘积等于可变形卷积的输出特征图(例如,下文的第二特征图)的宽度大小、高度大小、卷积核的宽度大小、卷积核的高度大小的乘积。以图2和图3为例,假设输出特征图的宽度是w、高度是h,卷积核的高度是k、宽度是k,那么偏移参数可以是尺寸为(h*k)*(w*k)的二维矩阵,该二维矩阵中包括h*w组偏移向量,并且每组包括k*k个偏移向量(offset),这k*k个偏移向量与使用尺寸为k*k*C的卷积核进行一次卷积运算时在某个通道上的k*k个采样点一一对应。其中,每个偏移向量可以包括用于确定采样点高度维度坐标的高度分量和用于确定采样点宽度维度坐标的宽度分量,偏移向量中每个分量的值为实数,可通过学习来获得,一般取为高精度浮点数。例如,某一通道上的采样点的坐标表示为(x,y),x表示宽度维度坐标,y表示高度维度坐标,那么相应的偏移向量可以表示为(dx,dy),dx表示宽度分量,dy表示高度分量。
可变形卷积的调制参数(mask)可以通过二维矩阵来表示,调制参数中的每个元素值可通过学习获得,且其取值均在[0,1]的范围内。例如,以图3为例,权重参数包括N个卷积核且每个卷积核的尺寸是k*k*C(高是k、宽是k、通道数是C)时,表示调制参数的二维矩阵尺寸是h*w*k*k,且该二维矩阵中每个元素的值都在[0,1]的范围内。
举例来说,假设权重参数中的卷积核尺寸是3*3(即,高度大小为3、宽度大小也为3),那么偏移参数中每组偏移向量的尺寸是3*3(即,高度大小为3、宽度大小也为3),偏移参数中所有偏移向量的数量等于输出特征图(即第二特征图)中像素点的个数,调制参数的尺寸可以是h*w*3*3,h是第二特征图的高度大小,w是第二特征图的宽度大小。
示例性装置
图5是本公开实施例图像处理的示例性装置50的结构示意图。
如图5所示,本公开实施例图像处理的示例性装置50可以包括:扭曲变换模块51、卷积计算模块52、存储器53和控制器54。其中,扭曲变换模块51连接控制器54和存储器53,卷积计算模块52连接控制器54和存储器53。
至少一些实施例中,控制器54可配置为控制扭曲变换模块51利用可变形卷积的偏移参数对输入图像执行扭曲变换处理,并控制卷积计算模块52利用权重参数对扭曲变换模块51的输出结果执行卷积运算,以完成输入图像的可变形卷积运算。
本公开的一些示例中,控制器54可以包括一个或多个处理器或者具有神经网络运算能力和/或指令执行能力的其他形式的处理单元,并且可以控制示例性装置50中的其他组件以执行期望的功能。上述处理器可以包括但不限于GPU、大脑处理器(BPU,BrainProcessing Unit)、张量处理单元(TPU,Tensor Processing Unit)等支持神经网络相关计算的处理器。一些示例中,控制单元31可通过运行指令序列(例如,用于完成可变形卷积运算的指令序列)来控制扭曲变换模块51和卷积计算模块52完成针对输入图像的可变形卷积运算操作。一些示例中,控制器54可配置为指令解码、调度其他各个组件(例如,扭曲变换模块51、卷积计算模块52、存储器53等)以及处理中断等。
本公开的实施例中,存储器53可配置为存储完成可变形卷积运算所需的参数。一些示例中,存储器53至少可存储有可变形卷积的偏移参数和卷积层的权重参数。其他示例中,存储器53还可存储可变形卷积的调制参数(mask)。此外,存储器53还可配置为缓存各个组件(例如,扭曲变换模块51、卷积算模块52)的输入输出数据。例如,存储器53还可配置为存储扭曲变换模块51的输入图像的数据、扭曲变换模块51的输出结果(例如,第一特征图)、卷积计算模块52的运算结果(例如,第二特征图)。此外,存储器53还可配置为存储下文重组偏移参数而得到的第一矩阵、重组调制参数而得到的第二矩阵、重排第一特征图而得到的第三特征图、权重参数重组而得到的若干1*1卷积核等。
本公开实施例中,存储器53可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,控制器54可以运行所述程序指令,以控制扭曲变换模块51、卷积计算模块52实现下文所述的图像处理方法以及/或者其他期望的功能。
至少一些实施例中,存储器53可包括一个或多个独立的存储器或者具有数据存储能力的处理单元,并且可以在控制器54的控制下供扭曲变换模块51、卷积计算模块52访存。一些示例中,存储器53可以是速度慢、容量大的动态存取存储器,比如动态随机存取存储器(DRAM,Dynamic Random Access Memory)。一个示例中,存储器53可以是双倍数据速率(Double Data Rate,DDR)DRAM。
一些示例中,存储器53可配置为以一维排布方式存储各类数据(该数据包括但不限于作为输入图像的数据、各种特征图(如下文的第一特征图、第二特征图)的数据、可变形卷积的偏移参数、卷积层的权重参数等)。相应的,存储器53可采用一维度的线性地址结构,其地址可通过十六进制的数字来表示。一个示例中,可以通过将数据的各个维度(例如,数量、高度、宽度、通道)映射到一个维度的方式来将上述数据存储于存储器53中,这样,数据在存储器53中的地址便可通过其各个维度上的坐标及上述映射的关系来唯一确定。当然,存储器53中数据的排布方式不限于此,其他各类排布方式均可适用于本申请实施例中。
本申请实施例中,卷积计算模块52执行何种卷积运算取决于要实现的可变形卷积的类型。一些示例中,例如,对于上文所述第一种可变形卷积而言,卷积计算模块52,可配置为使用可变形卷积的权重参数对扭曲变换模块51输出的第一特征图执行卷积运算,以获得第二特征图。一些示例中,例如,对于上文所述第二种可变形卷积来说,卷积计算模块52可配置为对调制参数与第一特征图执行元素级(element-wise)乘运算,并使用该乘运算的结果和权重参数执行卷积运算,以获得第二特征图。
本申请实施例中,卷积计算模块52可通过任何支持卷积运算的硬件来实现。一些示例中,卷积计算模块52可以是用于支持卷积运算的计算引擎。图6示出了该计算引擎60的示例结构及其与存储器53、控制器54之间的连接关系。如图6所示,计算引擎60可以包括缓冲存储器61和计算单元62,缓冲存储器61连接存储器53和计算单元62。在至少一个实施例中,缓冲存储器61可配置为接收来自存储器53的张量数据(例如,下文第一特征图)的至少一部分并缓存以供计算单元62使用,以及还可配置为接收并缓存计算单元62输出的运算结果(例如下文第二特征图的至少一部分),并将该运算结果(例如,下文的第二特征图)输出到存储器53中。
一些示例中,缓冲存储器61可以为速度快、容量小的静态存取存储器,比如,静态随机存取存储器(SRAM,Static Random Access Memory)。
一些示例中,计算单元62包括但不限于运算电路,该运算电路可配置为执行标准卷积运算操作。在至少一种实现方式中,该运算电路可以包括乘法累加器阵列,该乘法累加器阵列可以由多个乘法器和多个加法器连接而成,配置为对输入的数据(例如,下文第一特征图中的数据和卷积层的权重参数)执行卷积运算操作,通过复用可实现多种卷积核尺寸、多种步长的标准卷积操作和/或元素级(element-wise)的乘操作和/或加操作,在通道、高度、宽度中一个或多个维度方向上具有较高的并行度。应当理解,计算单元62的结构不限于上述实现方式。具体应用中,计算单元62的结构可采用各种形式,只需要支持卷积运算操作即可。
一些示例中,计算单元62可以包括控制部件和上述的运算电路,该控制部件可基于控制器54下发的指令控制上述运算电路中的多个乘法器和多个加法器执行标准卷积运算操作和/或元素级的乘操作和/或加操作。例如,在执行标准卷积运算操作时,控制器54可以通过指令解码将标准卷积操作的指令转换为计算单元62能够执行的指令格式并下发给计算单元62的控制部件,计算单元62的控制部件根据该指令控制运算电路中的各个乘法器和加法器执行乘加运算,从而完成相应的标准卷积运算操作。
本公开实施例中,扭曲变换模块51可配置为根据可变形卷积的偏移参数校正输入图像,以获得第一特征图。概括来说,扭曲变换模块51可实现图像关于任意位置的平移、旋转、扭曲变形等,在通道方向可以具有较高的并行度。本公开实施例中,扭曲变换模块51以可变形卷积的偏移参数作为变换矩阵对输入图像进行处理并输出第一特征图,相当于预先对输入图像关于偏移参数所定义位置的平移、旋转和扭曲变换等处理,获得的第一特征图中目标物体的几何形变已被消除。
至少一些实施例中,扭曲变换模块51可以包括至少一个扭曲变换单元510,每个扭曲变换单元510可配置为针对输入图像中一个或多个通道方向上的数据执行扭曲变换处理。如此,可根据输入图像的通道维度尺寸和对并行的需求来自由定义扭曲变换模块51的结构,使扭曲变换模块51的并行度满足需求。
由于可变形卷积的偏移参数是二维参数,其在通道方向是相同的,将该可变形卷积的偏移参数作为扭曲变换模块51的变换矩阵时,由于变换矩阵在通道方向是相同的,仅在宽度、高度两个方向具有随机性,因此,一些示例中,可以在扭曲变换模块51中设置多个扭曲变换单元510,每个扭曲变换单元510可配置为对输入图像中一个通道方向上的数据执行扭曲变换处理,如此,可实现扭曲变换在多个通道方向的并行,从而提高图像处理效率。图7示出了该示例方式下扭曲变换模块51的结构及其与存储器53的连接关系。
图8示出了单个扭曲变换单元510的示例性结构及其与存储器53的连接关系。如图8所示,至少一些实施例中,扭曲变换单元510可以包括:坐标定位单元511、数据提取单元512和双线性插值单元513。其中,坐标定位单元511可配置为根据第一特征图中像素点的位置坐标以及偏移参数中的相应偏移向量,确定第一特征图中像素点在输入图像中的采样点坐标;数据提取单元512可配置为根据采样点坐标,获取相应的参考像素点的像素值;双线性插值单元513可配置为对参考像素点的像素值执行双线性插值运算,以获得第一特征图中像素点的像素值。其中,采样点坐标一般是浮点数,但也可以是定点数。
一些示例中,参考像素点可以是与采样点最相邻的四个像素点。如果采样点处于输入图像的边缘位置(例如,所在的行是输入图像的第一行或最后一行,或者和/或所在的列是输入图像的第一列、最后一列),采样点最相邻的像素点可能只有两个,即四个参考像素点中的两个参考像素存在、其他两个参考像素点不存在,此时该不存在的两个参考像素点的像素值可以取默认值(例如,这个默认值可以是边界点的值,也可以是预先设定的固定值,例如,都设为0或一个其他的数值。)。并且,由于该其他两个参考像素点实际上不存在,因此也无需从存储器中读取,只需使用默认的像素值来执行上述双线性插值运算即可。如果采样点最相邻的四个参考像素点均存在,可根据采样点位置确定出这四个参考像素点的坐标并根据坐标读取其像素值,再执行上述双线性插值运算。
本公开的一些示例中,可以预先将偏移参数中的偏移向量重组为多个第一矩阵,关于第一矩阵将在下文详述。扭曲变换单元510执行扭曲变换的过程可以是:坐标定位单元511依次遍历第一矩阵找到对应第一特征图中像素点的偏移向量,根据第一特征图中像素点S1的坐标与该偏移向量推算出输入图像中采样点的浮点坐标,然后数据提取单元512推算该浮点坐标所在位置最邻近4个参考像素点的坐标并提取这4个参考像素点的像素值,最后双线性插值单元513对该4个参考像素点的像素值进行双线性插值,得到第一特征图中像素点的像素值。如此,对第一特征图中所有像素点均执行该扭曲变换之后即可获得第一特征图中所有像素点的像素值,即得到了第一特征图。本公开的上述示例中,多个扭曲变换单元510并行即可同时对第一特征图中各个通道上的像素点执行上述扭曲变换的处理。
本公开的一些示例中,坐标定位单元511可以包括:第一加法器和第二加法器;其中,第一加法器可配置为对第一特征图中像素点的高度维度坐标与相应偏移向量中的高度分量求和,输出相应采样点的高度维度坐标;第二加法器,可配置为对第一特征图中像素点的宽度维度坐标与相应偏移向量中的宽度分量求和,输出相应采样点的宽度维度坐标。这样,扭曲变换模块51可通过偏移向量和坐标的求和,定位符合可变形卷积运算要求的浮点坐标,以便实现符合可变形卷积运算要求的图像校正。并且,扭曲变换模块51中多个扭曲变换单元510中的坐标定位单元511可以对各个不同通道上采样点的浮点坐标并行定位,效率更高。
图9示出了扭曲变换单元510中的示例性电路结构。以图9为例,坐标定位单元511可以从存储器53中读取相应的偏移向量(dx,dy),通过2个加法器(加法器91、加法器92)完成与第一特征图中对应像素点的坐标求和,得到输入图像中采样点的浮点坐标,即(xsrc,ysrc)=(xdst+dx,ydst+dy)。
本公开的一些示例中,数据提取单元512可以包括:数据定位单元、地址生成单元(例如,图9中的地址生成单元916)和读取单元,其中,数据定位单元可配置为根据采样点坐标,确定参考像素点的坐标,地址生成单元可配置为根据参考像素点的坐标确定所述参考像素点的数据存储地址,读取单元可配置为根据参考像素点的数据存储地址向存储器53获取上述参考像素点的像素值并送至双线性插值单元513。通过上述该示例性结构的数据提取单元512可以定位并且获取到采样点的浮点坐标最相邻的的四个参考像素点的数据,以便通过该四个参考像素点的数据来确定第一特征图中相应像素点的像素值,从而实现符合可变形卷积运算需求的校正。
以图9为例,本公开的一些示例中,上述数据定位单元可以包括:第一移位器93,配置为对采样点的高度维度坐标右移预定比特位,输出第一高度维度坐标;第三加法器95,配置为将第一高度维度坐标加1,输出第二高度维度坐标;第二移位器94,配置为对采样点的宽度维度坐标右移预定比特位,输出第一宽度维度坐标;第四加法器96,配置为将第一宽度维度坐标加1,输出第二宽度维度坐标;其中,第一高度维度坐标、第二高度维度坐标、第一宽度维度坐标和第二宽度维度坐标即为所述参考像素点的坐标。通过这种特定的结构,能够准确定位到浮点坐标附近的四个像素点,进而完成符合可变形卷积运算要求的图像校正。
一些实现方式中,扭曲变换模块51和卷积计算模块52可以各自具有一个地址生成单元在控制器54中,根据坐标确定存储地址并读取数据的过程可以由控制器54来完成。其他实现方式中,上述地址生成单元也可以设置于扭曲变换模块51中或者独立设置。当然,地址生成单元具体如何设置,本公开实施例不予限制。
仍以图9为例,数据提取单元512根据外部读入的浮点坐标小数比特位数frac(即上述的右移预定比特位)和坐标定位单元511得到的采样点的浮点坐标(xsrc,ysrc),确定输入图像中与采样点所在位置最邻近的4个像素点(即参考像素点)的整数坐标(x0,y0)、(x0,y1)、(x1,y0)、(x1,y1),其中x0=xsrc>>frac,x1=x0+1,y0=ysrc>>frac,y1=y0+1。随后,根据该4个像素点的坐标生成数据存储地址并完成相应数据(即这4个像素点的像素值)的读取,并传输给双线性插值单元513。这里,浮点坐标小数比特位数frac也可称为浮点坐标小数点后数值的二进制表示的位数阈值,其数值可以预先约定并存入存储器53或其他存储器中。
本公开实施例中,双线性插值单元513可以对来自数据提取单元512的四个参考像素点的像素值双线性插值的乘加操作,输出第一特征图中像素点的像素值并存入存储器53中。这里,如果有部分参考像素点不存在,可以由数据提取单元512根据预先配置的默认值的数据存储地址从存储器中读取相应的默认值并作为该部分参考像素点的像素值送入双线性插值单元513中。
本公开实施例中,双线性插值单元513的电路结构可以有多种。本公开的一些示例中,可以直接按照如下的双线性插值运算公式(3)来实现双线性插值单元513的电路结构。
dst[xsrc,ysrc]=(x1-xsrc)*(y1-ysrc)*src[x0,y0]+
(xsrc-x0)*(y1-ysrc)*src[x1,y0]+
(x1-xsrc)*(ysrc-y0)*src[x0,y1]+
(xsrc-x0)*(ysrc-y0)*src[x1,y1] (3)
本公开的一些示例中,通过等价变换双线性插值单元513执行的双线性插值计算如下式(4)~(6)所示,式(4)~(6)所示的双线性插值计算只需3组乘加操作即可完成,这样,按照式(4)~(6)来实现双线性插值单元513的电路结构可以节省乘法器资源。
tmp0=(x1-xsrc)*src00+(xsrc-x0)*src10=src00+xsrc[frac-1:0]*(src10-src00) (4)
tmp1=(x1-xsrc)*src01+(xsrc-x0)*src11=src01+xsrc[frac-1:0]*(src11-src01) (5)
dst=(y1-ysrc)*tmp0+(ysrc-y0)*tmp1=tmp0+ysrc[frac-1:0]*(tmp1-tmp0)(6)
其中,tmp0表示第一中间值,tmp1和第二中间值,dst表示第一特征图中像素点的像素值,xsrc[frac-1:0]表示xsrc用二进制表示时的低[frac-1:0]比特,[frac-1:0]是二进制表示时的低frac个比特。比如frac=4,xsrc[frac-1:0]就是xsrc的低4比特。
本公开对应式(4)~(6)的示例中,如图9所示,双线性插值单元513可以包括:第一乘加子单元5131、第二乘加子单元5132和第三乘加子单元5133,其中,第一乘加子单元5131可配置为利用参考像素点中宽度维度坐标相同的两个参考像素点的值计算第一中间值,第二乘加子单元5132配置为利用参考像素点中高度维度坐标相同的两个参考像素点的数值计算第二中间值,第三乘加子单元5133可配置为利用第一中间值和第二中间值计算得到第一特征图中像素点的像素值。其中,第一乘加子单元5131、第二乘加子单元5132和第三乘加子单元5133中的每个乘加子单元可以包括顺序连接的一个减法器、一个乘法器和一个加法器。该示例中,双线性插值单元513可以分两次计算、每次计算完进行一次移位量化,得到结果,只需要三个加法器、三个减法器和三个乘法器即可实现,式(3)的结构需要8个乘法器,而该示例仅需使用3个乘法器,其使用更少的乘法器即可实现双线性插值运算,从而节省了乘法器资源,也有利于减小芯片面积。
仍以图9为例,第一乘加子单元5131的减法器97可配置为对宽度维度坐标相同的参考像素点的像素值执行减法操作以得到第一差值(即式(4)中的src10-src00),第一乘加子单元5131的乘法器98可配置为对第一差值与采样点的宽度维度坐标低比特位数阈值个比特位数xsrc[frac-1:0]执行乘操作以得到第一乘积值,第一乘加子单元5131的加法器99可配置为对该第一乘积值与宽度维度坐标相同的参考像素点中高度维度坐标靠前的参考像素点的像素值src00执行加操作,以得到第一中间值tmp0。
仍以图9为例,第二乘加子单元5132的减法器910可配置为对高度维度坐标相同的参考像素点的像素值执行减法操作以得到第二差值(即式(5)中的src11-src01),第二乘加子单元5132的乘法器911可配置为对第二差值与采样点的宽度维度坐标低比特位数阈值个比特位数xsrc[frac-1:0]执行乘操作以得到第二乘积值,第二乘加子单元5132的加法器912可配置为对第二乘积值与高度维度坐标相同的参考像素点中宽度维度坐标靠前的参考像素点的像素值src01执行加操作,以得到第二中间值tmp1。
仍以图9为例,第三乘加子单元5133的减法器913可配置为对第一中间值tmp0与第二中间值tmp1执行减法操作以得到第三差值,第三乘加子单元5133的乘法器914可配置为对该第三差值与采样点的高度维度坐标低比特位数阈值个比特位数ysrc[frac-1:0]执行乘操作以得到第三乘积值,第三乘加子单元5133的加法器915可配置为对该第三乘积值与第一中间值tmp0执行加操作以得到所述第一特征图中像素点的数值dst。
上述示例性结构,可以节省乘法器资源。可以理解,双线性插值单元513还可采用其他任何可适用的电路结构,对于双线性插值单元513的具体电路结构,本公开实施例不作限制。
本公开的一些示例中,扭曲变换模块51、卷积计算模块52、存储器53和控制器54之间可以通过总线来连接。当然,图像处理的示例性装置50中的各部分还可通过其他任何适用的连接方式来实现其连接。
为了简化,图5中仅示出了图像处理的示例性装置50的部分部件,省略了诸如总线等的部件。除此之外,根据具体应用情况,图像处理的示例性装置50还可以包括任何其他适当的部件。例如,输入部件(例如,键盘、鼠标、麦克风等)、输出部件(例如,打印机、显示器、扬声器等)等。
本公开实施例图像处理的示例性装置50,先通过扭曲变换模块对输入图像进行校正,再使用卷积计算模块对校正后的图像直接进行普通卷积运算,实现基于可变形卷积的图像处理。
本公开实施例的图像处理装置,可以仅通过其中的扭曲变换模块51对输入的图像进行校正,也可以仅通过其中的卷积计算模块52执行标准卷积运算或其他乘加运算,还可以通过扭曲变换模块51和卷积计算模块52的协作来实现可变形卷积的运算,可根据具体应用场景的需求来定。
示例性方法
图10是本公开实施例图像处理的示例性方法100的流程示意图。如图10所示,本公开实施例图像处理的示例性方法100可以包括:步骤S110,根据可变形卷积的偏移参数校正输入图像,以获得第一特征图;步骤S120,使用可变形卷积的权重参数对第一特征图执行卷积运算,以获得第二特征图;步骤S130,存储第二特征图。通过示例性方法100不仅可实现上述第一种可变形卷积的运算,还通过在步骤S120中加入调制参数来实现第二种可变形卷积的运算。
图11是本公开实施例图像处理的示例性方法200的流程示意图。如图11所示,该示例性方法200中步骤S120是使用可变形卷积的权重参数和调制参数共同对第一特征图执行卷积运算,以获得第二特征图。如图11所示,示例性方法200中的步骤S120可以包括:步骤S121,对可变形卷积的调制参数与第一特征图执行元素级乘运算;步骤S122,使用元素级乘运算的结果和所述权重参数执行卷积运算,以获得第二特征图。通过示例性方法200可以实现上文上述第二种可变形卷积的运算。
本公开实施例中的示例性方法100和示例性方法200均可通过上文图像处理的示例性装置50来执行。
根据本公开实施例的上述示例性方法100和示例性方法200,将可变形卷积的运算分割为针对偏移参数的计算和卷积操作这两个部分,即先使用偏移参数对输入图像整体执行扭曲变换得到第一特征图,然后使用权重参数(或者,权重参数和调制参数)针对第一特征图整体执行卷积操作(例如,图1所示的标准卷积操作或者元素级乘操作和标准卷积的结合),从而得到可变形卷积运算的结果(即第二特征图),这样,执行卷积操作时输入数据可复用、特征图可进行拆分处理,并且卷积操作部分和针对偏移参数的计算均可在通道维度上并行,由此可见,本公开实施例的示例性方法可以快速、灵活地完成可变形卷积的计算,便于充分利用硬件(例如,上文的示例性装置50)的并行处理能力来提高可变形卷积的处理速度,从而在较低硬件成本下高效实现具有空间形变的图像的处理。
举例来说,假设输入图像的尺寸是h0*w0*C,权重参数中包括N个卷积核,每个卷积核的尺寸是k*k*C,可变形卷积的输出特征图(即第二特征图)的尺寸是h*w*N,偏移参数包括h*w*(k*k)个偏移向量,调整参数可包括h*w*(k*k)个元素,图12示出了通过本公开的示例性方法100对该输入图像执行第一种可变形卷积的示意图,图13示出了通过本公开的示例性方法200对该输入图像执行第二种可变形卷积运算的示意图。需要说明的是,图12、图13仅为示例,并不用于限制本公开实施例的范围。
本公开的一些示例中,步骤S110中可以包括:步骤a1,按照偏移参数中各个偏移向量在权重参数中的卷积核中的对应位置,重组偏移参数中的偏移向量,以获得k1*k2个尺寸为h*w的第一矩阵;步骤b2,使用每个第一矩阵对输入图像中的数据执行扭曲变换处理,以获得第一特征图;其中,k2、k1分别为权重参数中卷积核的宽度维度大小和高度维度大小,h为第一特征图的高度维度大小,w为第一特征图的宽度维度大小。该示例中,重排后偏移参数中偏移向量的位置与它对应的第一特征图中的像素点的位置相同,不仅偏移向量所属的第一矩阵与它对应的第一特征图中的像素点在第一特征图中的通道相对应,而且偏移向量在第一矩阵的位置(h、w方向的坐标)也与它对应的第一特征图中的像素点在相应通道上的坐标(即h、w方向的坐标)相一致,这样,扭曲变换单元可以方便地直接根据第一特征图中像素点的位置(即像素点所属的通道维度、相应通道维度上的坐标)来找到相应的第一矩阵并读取到相应的偏移向量,不仅方便多个扭曲变换单元并行,而且也有利于提高单个扭曲变换单元的处理速度,从而有效提高处理效率。这里,步骤b2中扭曲变换处理的具体处理过程可参见上文示例性装置的相关描述,不再赘述。
仍以前文尺寸是h0*w0*C的输入图像、尺寸是h*w*N的输出特征图(即第二特征图)为例,假设k=3,图14示出了该示例中步骤S110执行过程的示意图。图14中,MVi表示第i个偏移向量,i=0,1,2……,h*w;offj表示第j个第一矩阵,j=0,1,2……,8(即k*k-1)。图14的示例中,由于每个通道上的卷积窗口大小为3*3,每个通道上的卷积窗口可覆盖9个采样点,这9个采样点对应第一特征图中9个处于不同通道上的像素点,该示例中将偏移参数重组为9个第一矩阵,每个第一矩阵的宽度维度大小为w、高度维度大小为h,即每个第一矩阵的高度维度大小等于第一特征图的高度维度大小、宽度维度大小等于第一特征图的宽度维度大小。图15示出了该示例中步骤S110执行的逆过程,图15中箭头指示的方向是步骤S110计算过程的逆序,图15中P表示第一特征图中的元素,图15中将第一特征图划分为k*k个且每个第一特征图对应一个第一矩阵。图14和图15中,将可变形卷积的偏移参数视作扭曲变换模块51的转换矩阵,并按照其在卷积核中的位置拆成k*k组,由此得到k*k组尺寸为w*h的第一矩阵,通过将该k*k组尺寸为w*h的第一矩阵依次输入到扭曲变换模块51中,即可计算得到尺寸为w*h*(k*k*C)的第一特征图。
本公开的一些示例中,步骤S120中可以包括:步骤b1,将可变形卷积中权重参数的卷积核拆分为尺寸为1*1的卷积核;步骤b2,使用拆分后的卷积核对第一特征图执行卷积运算。该示例中,通过把卷积核拆分为尺寸为1*1的卷积核,可以避免卷积计算时发生数据重叠,确保卷积计算的运算结果与可变形卷积的运算结果一致。
图16示出了步骤b1的拆分示例图,图16的示例中表示卷积核中的数据,其中,i=0,1,2,3,……,N,j=0,1,……,k*k,N表示卷积核的数量,N等于输出特征图(即第二特征图)的通道数。步骤b2中执行卷积运算的过程与上文图1所示标准卷积的过程相似,不在赘述。
本公开的一些示例中,如果权重参数中卷积核的宽度维度大小为k2、高度维度大小为k1、通道数为c,在步骤S120中,可以先按照第一特征图中各个数据在卷积核中的对应数据的位置将第一特征图中的数据重排,以获得宽度维度大小为k2*w、高度维度尺寸为k1*h、通道数为c的第三特征图;然后,使用第三特征图与上述权重参数执行卷积运算。该示例通过把第一特征图重组,可以避免卷积计算时发生数据重叠,从而确保步骤S120的结果与可变形卷积的运算结果相一致。并且,由于第一特征图中的像素点和其对应的卷积核中的数据位置对应,因此可以在通道方向上并行处理,宽度维度方向和高度维度方也可以拆分,从而可以充分利用硬件(例如,上文示例性装置50中卷积计算模块52的乘法累加器阵列)的并行处理能力,高效完成可变形卷积运算,进而有效提升硬件执行可变形卷积运算的效率。
以上文卷积核尺寸为k*k的为例,图17示出了第一特征图的数据重排示例图,图17中P表示第一特征图中的数据。
本公开的一些示例中,在步骤S121中可以先将调制参数重排再执行元素级乘运算,以便充分利用硬件的并行运算能力来提高运算速度。该示例的步骤S121中,可以先按照调制参数中各数据在权重参数中的卷积核中的对应位置,重组调制参数中的数据以获得k1*k2个尺寸为h*w的第二矩阵,h是第一特征图的高度大小,w是第一特征图的宽度大小,然后对每个第二矩阵与第一特征图中相应通道维度上的数据执行逐点乘运算,k2、k1分别为权重参数中卷积核的宽度维度大小和高度维度大小。该示例中,调制参数的重组过程跟偏移参数相同。重排之后每个所述第二矩阵中数据的位置与其在第一特征图中对应的像素点的位置相同。
仍以上文卷积核为k*k且k=3为例,图18示出了调制参数重组的示例性过程,图18中的m表示调制参数中的元素,该重组过程与上文偏移参数的重组过程相同,便于第二乘加阵列在通道方向上并行计算,每个第二矩阵中数据的位置与其在第一特征图中的对应像素点的位置相同。
图19示出了步骤S121~步骤S122的一示例性执行过程,图19中O表示第二特征图中的数据,N为第二特征图的通道数。图19的示例中,将调制参数重组为k*k个尺寸为h*w的第二矩阵,且将权重参数中尺寸为k*k的卷积核拆分为1*1,该示例中使用第二矩阵完成元素级乘运算,并使用1*1卷积核来完成标准卷积运算,不仅更高效、快速,便于在通道上并行处理,而且可保证最终计算结果准确。
图20示出了步骤S121~步骤S122的另一示例性执行过程,图20中,将调制参数重组为尺寸为(k*h)*(k*w)的二维矩阵,该二维矩阵中的数据与其在第一特征图中对应的像素点的位置相同,且将权重参数中卷积核的尺寸仍为k*k、滑动步长也仍是k,该示例中使用尺寸为(k*h)*(k*w)的二维矩阵与第一特征图进行元素级乘运算,并使用k*k卷积核来完成标准卷积运算,不仅更高效、快速,便于在通道上并行处理,而且可保证最终计算结果准确。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (18)
1.一种图像处理装置,包括:
扭曲变换模块;
卷积计算模块;
存储器,配置为存储可变形卷积的偏移参数和权重参数;
控制器,配置为控制所述扭曲变换模块利用所述可变形卷积的偏移参数对输入图像执行扭曲变换处理,并控制所述卷积计算模块利用所述权重参数对所述扭曲变换模块的输出结果执行卷积运算,以完成所述输入图像的可变形卷积运算。
2.根据权利要求1所述的图像处理装置,其中,
所述扭曲变换模块,配置为根据所述可变形卷积的偏移参数校正输入图像,以获得第一特征图;
所述卷积计算模块,配置为使用可变形卷积的权重参数对所述第一特征图执行卷积运算,以获得第二特征图;
所述存储器,还配置为存储所述第二特征图。
3.根据权利要求2所述的图像处理装置,其中,所述扭曲变换模块包括至少一个扭曲变换单元,所述扭曲变换单元包括:
坐标定位单元,配置为根据所述第一特征图中像素点的位置坐标以及所述偏移参数中的相应偏移向量,确定所述第一特征图中像素点在所述输入图像中的采样点坐标;
数据提取单元,配置为根据所述采样点坐标,获取相应的参考像素点的像素值;
双线性插值单元,配置为对所述参考像素点的像素值执行双线性插值运算,以获得所述第一特征图中像素点的像素值。
4.根据权利要求3所述的图像处理装置,其中,所述坐标定位单元,包括:
第一加法器,配置为对所述第一特征图中像素点的高度维度坐标与所述偏移向量中的高度分量求和,输出所述采样点的高度维度坐标;
第二加法器,配置为对所述第一特征图中像素点的宽度维度坐标与所述偏移向量中的宽度分量求和,输出所述采样点的宽度维度坐标。
5.根据权利要求3所述的图像处理装置,其中,所述数据提取单元,包括:
数据定位单元,配置为根据所述采样点坐标,确定所述参考像素点的坐标;
地址生成单元,配置为根据所述参考像素点的坐标,确定所述参考像素点的数据存储地址;以及
读取单元,配置为根据所述参考像素点的数据存储地址,向所述存储器获取所述参考像素点的像素值并送至所述双线性插值单元。
6.根据权利要求5所述的图像处理装置,其中,所述数据定位单元,包括:
第一移位器,配置为对所述采样点的高度维度坐标右移预定比特位,输出第一高度维度坐标;
第三加法器,配置为将所述第一高度维度坐标加1,输出第二高度维度坐标;
第二移位器,配置为对所述采样点的宽度维度坐标右移预定比特位,输出第一宽度维度坐标;
第四加法器,配置为将所述第一宽度维度坐标加1,输出第二宽度维度坐标;
其中,所述第一高度维度坐标、第二高度维度坐标、第一宽度维度坐标和第二宽度维度坐标即为所述参考像素点的坐标。
7.根据权利要求3所述的图像处理装置,其中,所述双线性插值单元,包括:
第一乘加子单元,配置为利用所述参考像素点中宽度维度坐标相同的两个参考像素点的值,计算第一中间值;
第二乘加子单元,配置为利用所述参考像素点中高度维度坐标相同的两个参考像素点的数值,计算第二中间值;
第三乘加子单元,配置为利用所述第一中间值和第二中间值计算得到所述第一特征图中像素点的像素值;
其中,第一乘加子单元、第二乘加子单元和第三乘加子单元中的每个乘加子单元包括顺序连接的一个减法器、一个乘法器和一个加法器。
8.根据权利要求7所述的图像处理装置,其中,
所述第一乘加子单元的减法器,配置为对宽度维度坐标相同的参考像素点的像素值执行减法操作以得到第一差值;
所述第一乘加子单元的乘法器,配置为对所述第一差值与采样点的宽度维度坐标低比特位数阈值个比特位数执行乘操作以得到第一乘积值
所述第一乘加子单元的加法器,配置为对所述第一乘积值与所述宽度维度坐标相同的参考像素点中高度维度坐标靠前的参考像素点的像素值执行加操作,以得到所述第一中间值。
9.根据权利要求7所述的图像处理装置,其中,
所述第二乘加子单元的减法器,配置为对高度维度坐标相同的参考像素点的像素值执行减法操作以得到第二差值;
所述第二乘加子单元的乘法器,配置为对所述第二差值与采样点的宽度维度坐标低比特位数阈值个比特位数执行乘操作以得到第二乘积值;
所述第二乘加子单元的加法器,配置为对所述第二乘积值与所述高度维度坐标相同的参考像素点中宽度维度坐标靠前的参考像素点的像素值执行加操作,以得到所述第二中间值。
10.根据权利要求7所述的图像处理装置,其中,
所述第三乘加子单元的减法器,配置为对所述第一中间值与所述第二中间值执行减法操作以得到第三差值;
所述第三乘加子单元的乘法器,配置为对所述第三差值与采样点的高度维度坐标低比特位数阈值个比特位数执行乘操作以得到第三乘积值;
所述第三乘加子单元的加法器,配置为对所述第三乘积值与所述第一中间值执行加操作以得到所述第一特征图中像素点的数值。
11.根据权利要求1所述的图像处理装置,其中,
所述存储器,还配置为存储所述可变形卷积的调制参数;
所述卷积计算模块,还配置为对所述调制参数与所述第一特征图执行元素级乘运算,并使用所述乘运算的结果和所述权重参数执行卷积运算,以获得第二特征图。
12.一种图像处理方法,包括:
根据可变形卷积的偏移参数校正输入图像,以获得第一特征图;
使用可变形卷积的权重参数对所述第一特征图执行卷积运算,以获得第二特征图;
存储所述第二特征图。
13.根据权利要求12所述的方法,其中,根据可变形卷积的偏移参数校正输入图像,包括:
按照所述偏移参数中各个偏移向量在所述权重参数中卷积核中的对应位置,重组所述偏移参数中的偏移向量,以获得k1*k2个尺寸为h*w的第一矩阵;以及
使用每个所述第一矩阵对所述输入图像中的数据执行扭曲变换处理,以以获得所述第一特征图;
其中,k2、k1分别为所述权重参数中卷积核的宽度维度大小和高度维度大小,h为第一特征图的高度维度大小,w为第一特征图的宽度维度大小。
14.根据权利要求12所述的方法,其中,所述使用可变形卷积的权重参数对所述第一特征图执行卷积运算,包括:
将所述可变形卷积中权重参数的卷积核拆分为尺寸为1*1的卷积核;以及
使用所述拆分后的卷积核对所述第一特征图执行卷积运算。
15.根据权利要求12所述的方法,其中,
所述权重参数包括至少一个卷积核,所述卷积核的宽度维度大小为k2、高度维度大小为k1、通道数为c;
所述使用可变形卷积的权重参数对所述第一特征图执行卷积运算,包括:
按照第一特征图中各个数据在所述卷积核中的对应数据的位置,将所述第一特征图中的数据重排,以获得宽度维度大小为k2*w、高度维度尺寸为k1*h、通道数为c的第三特征图;以及
使用所述第三特征图与所述权重参数执行卷积运算。
16.根据权利要求12所述的方法,其中,所述使用可变形卷积的权重参数对所述第一特征图执行卷积运算,包括:
对可变形卷积的调制参数与所述第一特征图执行元素级乘运算;以及
使用所述元素级乘运算的结果和所述权重参数执行卷积运算,以获得第二特征图。
17.根据权利要求16所述的方法,其中,对可变形卷积的调制参数与所述第一特征图执行元素级乘运算,包括:
按照所述调制参数中各数据在所述权重参数中的卷积核中的对应位置,重组所述调制参数中的数据以获得k1*k2个尺寸为h*w的第二矩阵;以及
对每个所述第二矩阵与所述第一特征图中相应通道维度上的数据执行逐点乘运算;
其中,k2、k1分别为所述权重参数中卷积核的宽度维度大小和高度维度大小,h为第一特征图的高度维度大小,w为第一特征图的宽度维度大小。
18.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求12-17任一所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910935478.6A CN112580675A (zh) | 2019-09-29 | 2019-09-29 | 图像处理方法及装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910935478.6A CN112580675A (zh) | 2019-09-29 | 2019-09-29 | 图像处理方法及装置、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112580675A true CN112580675A (zh) | 2021-03-30 |
Family
ID=75110756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910935478.6A Pending CN112580675A (zh) | 2019-09-29 | 2019-09-29 | 图像处理方法及装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580675A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113657587A (zh) * | 2021-08-17 | 2021-11-16 | 上海大学 | 基于fpga的可变形卷积加速方法及装置 |
CN114463592A (zh) * | 2022-04-01 | 2022-05-10 | 深圳鲲云信息科技有限公司 | 一种应用于depthwise卷积的量化计算方法和装置 |
WO2023279739A1 (zh) * | 2021-07-09 | 2023-01-12 | 上海商汤智能科技有限公司 | 一种图像处理方法及装置、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149952A (zh) * | 1994-06-03 | 1997-05-14 | 德国Idt国际数字技术有限公司 | 解码视频图像的装置和方法 |
CN107292319A (zh) * | 2017-08-04 | 2017-10-24 | 广东工业大学 | 一种基于可变形卷积层的特征图像提取的方法及装置 |
CN108564025A (zh) * | 2018-04-10 | 2018-09-21 | 广东电网有限责任公司 | 一种基于可变形卷积神经网络的红外图像物体识别方法 |
CN108764164A (zh) * | 2018-05-30 | 2018-11-06 | 华中科技大学 | 一种基于可变形卷积网络的人脸检测方法及*** |
CN109034373A (zh) * | 2018-07-02 | 2018-12-18 | 鼎视智慧(北京)科技有限公司 | 卷积神经网络的并行处理器及处理方法 |
CN109862208A (zh) * | 2019-03-19 | 2019-06-07 | 深圳市商汤科技有限公司 | 视频处理方法、装置以及计算机存储介质 |
CN109886400A (zh) * | 2019-02-19 | 2019-06-14 | 合肥工业大学 | 基于卷积核拆分的卷积神经网络硬件加速器***及其计算方法 |
CN110210571A (zh) * | 2019-06-10 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、计算机设备及计算机可读存储介质 |
-
2019
- 2019-09-29 CN CN201910935478.6A patent/CN112580675A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149952A (zh) * | 1994-06-03 | 1997-05-14 | 德国Idt国际数字技术有限公司 | 解码视频图像的装置和方法 |
CN107292319A (zh) * | 2017-08-04 | 2017-10-24 | 广东工业大学 | 一种基于可变形卷积层的特征图像提取的方法及装置 |
CN108564025A (zh) * | 2018-04-10 | 2018-09-21 | 广东电网有限责任公司 | 一种基于可变形卷积神经网络的红外图像物体识别方法 |
CN108764164A (zh) * | 2018-05-30 | 2018-11-06 | 华中科技大学 | 一种基于可变形卷积网络的人脸检测方法及*** |
CN109034373A (zh) * | 2018-07-02 | 2018-12-18 | 鼎视智慧(北京)科技有限公司 | 卷积神经网络的并行处理器及处理方法 |
CN109886400A (zh) * | 2019-02-19 | 2019-06-14 | 合肥工业大学 | 基于卷积核拆分的卷积神经网络硬件加速器***及其计算方法 |
CN109862208A (zh) * | 2019-03-19 | 2019-06-07 | 深圳市商汤科技有限公司 | 视频处理方法、装置以及计算机存储介质 |
CN110210571A (zh) * | 2019-06-10 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、计算机设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
KAIQIANG SONG, ETAL.: "An Efficient Lightweight Neural Network for Remote Sensing Image Change Detection", REMOTE SENSING, 18 December 2021 (2021-12-18), pages 1 - 25 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023279739A1 (zh) * | 2021-07-09 | 2023-01-12 | 上海商汤智能科技有限公司 | 一种图像处理方法及装置、电子设备和存储介质 |
CN113657587A (zh) * | 2021-08-17 | 2021-11-16 | 上海大学 | 基于fpga的可变形卷积加速方法及装置 |
CN113657587B (zh) * | 2021-08-17 | 2023-09-26 | 上海大学 | 基于fpga的可变形卷积加速方法及装置 |
CN114463592A (zh) * | 2022-04-01 | 2022-05-10 | 深圳鲲云信息科技有限公司 | 一种应用于depthwise卷积的量化计算方法和装置 |
CN114463592B (zh) * | 2022-04-01 | 2022-07-22 | 深圳鲲云信息科技有限公司 | 一种应用于depthwise卷积的量化计算方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205700B (zh) | 神经网络运算装置和方法 | |
CN112580675A (zh) | 图像处理方法及装置、计算机可读存储介质 | |
KR101298393B1 (ko) | 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법 | |
US8539201B2 (en) | Transposing array data on SIMD multi-core processor architectures | |
JP2021522565A (ja) | 並列分散テンソル計算用のニューラル・ハードウェア・アクセラレータ | |
CN110807170B (zh) | 多样本多通道卷积神经网络Same卷积向量化实现方法 | |
US11481994B2 (en) | Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
US20220004840A1 (en) | Convolutional neural network-based data processing method and device | |
CN102231788A (zh) | 信号的高速和低复杂度的分条几何变换的方法及装置 | |
US5621676A (en) | Discrete cosine transformation system and inverse discrete cosine transformation system, having simple structure and operable at high speed | |
CN112703511B (zh) | 运算加速器和数据处理方法 | |
CN112005251A (zh) | 运算处理装置 | |
KR20200095300A (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
EP3876092B1 (en) | Method for executing matrix multiplication, circuit and soc | |
CN108629405B (zh) | 提高卷积神经网络计算效率的方法和装置 | |
CN109446478B (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算*** | |
CN114387197A (zh) | 一种双目图像处理方法、装置、设备和存储介质 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
CN108154522B (zh) | 目标追踪*** | |
CN112784951B (zh) | Winograd卷积运算方法及相关产品 | |
CN112889072A (zh) | 用于降低功率消耗的***、方法和装置 | |
CN115936974A (zh) | 基于单应性变换的图像数据处理方法、装置及介质 | |
CN116805370A (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 |