CN117974417A - Ai芯片、电子设备及图像处理方法 - Google Patents
Ai芯片、电子设备及图像处理方法 Download PDFInfo
- Publication number
- CN117974417A CN117974417A CN202410368142.7A CN202410368142A CN117974417A CN 117974417 A CN117974417 A CN 117974417A CN 202410368142 A CN202410368142 A CN 202410368142A CN 117974417 A CN117974417 A CN 117974417A
- Authority
- CN
- China
- Prior art keywords
- matrix
- coordinate
- vector
- memory
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims abstract description 368
- 230000009466 transformation Effects 0.000 claims abstract description 87
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 70
- 238000004364 calculation method Methods 0.000 claims abstract description 66
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 58
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 186
- 230000008569 process Effects 0.000 abstract description 39
- 238000005516 engineering process Methods 0.000 abstract description 20
- 238000012546 transfer Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- 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
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
一种AI芯片、电子设备及图像处理方法,属于芯片技术领域。本申请可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。该AI芯片包括矩阵运算处理器和向量运算处理器;矩阵运算处理器用于获取第一坐标矩阵,利用仿射变换矩阵将第一坐标矩阵中的N个第一坐标映射至原始图像中,得到N个第二坐标;向量运算处理器用于根据第二坐标在原始图像中的邻近像素点的像素值,计算得到第二坐标对应的第一坐标的像素值。上述方法,在以仿射变换为核心的图像处理任务中,利用仿射变换的矩阵化运算特性,提高了仿射变换过程的执行效率,利用像素值计算过程的向量化运算特征,提高了像素值计算过程的执行效率,从而提高了图像处理任务的执行效率。
Description
技术领域
本申请实施例涉及芯片技术领域,特别涉及一种AI(Artificial Intelligence,人工智能)芯片、电子设备及图像处理方法。
背景技术
仿射变换是指一种将向量空间进行旋转、缩放和平移的几何变换。仿射变换在图像处理任务中具有广泛应用,如应用于图像渲染和OCR(Optical Character Recognition,光学字符识别)任务中的图像裁剪。
在相关技术中,在完成以仿射变换为核心的图像处理任务时,通常使用硬件执行该任务。这些硬件具有高度并行计算能力,可以显著提高整个过程的处理速度。示例性地,可以使用GPU(Graphics Processing Unit,图形处理器)执行该任务,GPU在实现仿射变换以及插值计算时,通常采用并行处理的方式,这种并行处理方式可以同时处理图像的多个坐标像素点的仿射变换和插值计算,以提高计算效率。
上述方法,GPU只是简单的通过并行处理来完成仿射变换和插值计算过程,并没有考虑到仿射变换的矩阵化运算特征以及插值计算的向量化运算特性,会导致该GPU的计算效率并没有达到最优,降低了仿射变换和插值计算的执行效率,从而降低图像处理任务的执行效率,延长图像处理任务的执行时间。
发明内容
本申请实施例提供了一种AI芯片、电子设备及图像处理方法。本申请实施例提供的技术方案如下:
根据本申请实施例的一个方面,提供了一种AI芯片,所述AI芯片包括矩阵运算处理器和向量运算处理器;
所述矩阵运算处理器,用于获取第一坐标矩阵,所述第一坐标矩阵包括N个第一坐标,每个所述第一坐标指代输入图像中未配置像素值的一个像素点;
所述矩阵运算处理器,进一步地用于利用仿射变换矩阵将所述N个第一坐标映射至原始图像中,得到N个第二坐标,所述N个第二坐标构成第二坐标矩阵,N为大于1的整数;
所述向量运算处理器,用于针对所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,计算得到所述第二坐标对应的所述第一坐标的像素值,所述第一坐标的像素值用于配置给所述输入图像中对应于所述第一坐标的像素点,得到输出图像。
根据本申请实施例的一个方面,提供了一种电子设备,所述电子设备包括上述AI芯片。
根据本申请实施例的一个方面,提供了一种应用于AI芯片的图像处理方法,所述AI芯片包括矩阵运算处理器和向量运算处理器;所述方法包括:
所述矩阵运算处理器获取第一坐标矩阵,所述第一坐标矩阵包括N个第一坐标,每个所述第一坐标指代输入图像中未配置像素值的一个像素点;
所述矩阵运算处理器进一步地利用仿射变换矩阵将所述N个第一坐标映射至原始图像中,得到N个第二坐标,所述N个第二坐标构成第二坐标矩阵,N为大于1的整数;
所述向量运算处理器针对所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,计算得到所述第二坐标对应的所述第一坐标的像素值,所述第一坐标的像素值用于配置给所述输入图像中对应于所述第一坐标的像素点,得到输出图像。
本申请实施例提供的技术方案至少包括如下有益效果:
在以仿射变换为核心的图像处理任务中,通过矩阵运算处理器根据第一坐标矩阵和仿射变换矩阵得到第二坐标矩阵,通过向量运算处理器根据该第二坐标矩阵中的第二坐标的邻近像素点的像素值,计算得到该第二坐标对应的第一坐标的像素值。利用仿射变换的矩阵化运算特性通过矩阵运算处理器得到第二坐标矩阵,充分发挥了矩阵运算处理器的算力,提高了仿射变换过程的执行效率;利用像素值计算过程的向量化运算特征通过向量运算处理器得到第一坐标的像素值,充分发挥了向量运算处理器的算力,提高了像素值计算过程的执行效率;从而提高了图像处理任务的执行效率,缩短了图像处理任务的执行时间。
附图说明
图1是本申请一个实施例提供的AI芯片的示意图;
图2是本申请一个实施例提供的仿射变换的示意图;
图3是本申请另一个实施例提供的AI芯片的示意图;
图4是本申请一个实施例提供的4个原始图像的示意图;
图5是本申请一个实施例提供的数据流控制和融合计算优化的示意图;
图6是本申请一个实施例提供的矩阵运算单元和向量运算单元的时序图的示意图的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等技术。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。预训练模型是深度学习的最新发展成果,融合了以上技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、数字孪生、虚拟人、机器人、人工智能生成内容(Artificial Intelligence GeneratedContent,AIGC)、对话式交互、智能医疗、智能客服、游戏AI等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及人工智能的人工智能芯片和深度学习等技术,具体通过如下实施例进行说明。
在图像处理任务中,仿射变换和插值计算常常应用于图像变形、图像缩放、图像旋转、透视变换等操作中。为了提高仿射变换和插值计算的处理效率,可以设计专门用于图像处理的AI芯片。
请参考图1,其示出了本申请一个实施例提供的AI芯片的示意图。该AI芯片10包括矩阵运算处理器11和向量运算处理器12。
矩阵运算处理器11,用于获取第一坐标矩阵,第一坐标矩阵包括N个第一坐标,每个第一坐标指代输入图像中未配置像素值的一个像素点。
矩阵运算处理器11,进一步地用于利用仿射变换矩阵将N个第一坐标映射至原始图像中,得到N个第二坐标,N个第二坐标构成第二坐标矩阵,N为大于1的整数。
向量运算处理器12,用于针对第二坐标矩阵中的每个第二坐标,根据第二坐标在原始图像中的邻近像素点的像素值,计算得到第二坐标对应的第一坐标的像素值,第一坐标的像素值用于配置给输入图像中对应于第一坐标的像素点,得到输出图像。
输入图像是指未配置像素值的图像,输出图像是指与输入图像尺寸相同且配置像素值的图像。本申请的重点在于如何高效地给输入图像配置像素值,以此得到输出图像,其处理过程可以包括仿射变换和像素值计算两个阶段。
在仿射变换阶段进行输入图像的像素点坐标到原始图像中的坐标的映射。具体来说,针对输入图像的每一个像素点坐标进行坐标映射,即可以确定输入图像的每一个像素点坐标与原始图像中的坐标的对应关系。
在像素值计算阶段进行输入图像各个像素点的像素值计算。具体来说,根据上述输入图像的每一个像素点坐标与原始图像中的坐标的对应关系,对于输入图像的每一个像素点,利用该像素点坐标对应的原始图像中的坐标的邻近像素点的像素值,可以通过插值计算,得到该像素点的像素值,然后将该计算出的像素值配置给输入图像的对应像素点处,以此可以得到输出图像。
上述过程中,可以利用仿射变换来实现坐标映射,仿射变换定义如何将输入图像的像素点坐标映射到原始图像中的对应坐标。然后,利用插值处理根据仿射变换过程中获取到的输入图像中每一个像素点坐标在原始图像中的对应坐标,根据插值算法利用该对应坐标在原始图像中的邻近像素点的像素值,来计算出新的像素值,并将新的像素值配置到输入图像中的对应像素点处,即可以得到输出图像。在得到的输出图像中,保留了原始图像的内容,同时校正了原始图像的几何扭曲,使得输出图像符合预期的要求。整个过程结合了仿射变换和插值处理的技术,实现了原始图像到输出图像的转换和改善。
示例性地,原始图像可以是倾斜文字框图像,即该文字框图像与水平方向具有一定的倾斜角度,如45度;输入图像可以是未配置像素值的水平文字框图像;输出图像可以是配置像素值的水平文字框图像。
根据该原始图像以及输入图像,利用仿射变换和像素值计算两个步骤,可以得到输出图像,上述像素值计算步骤可以使用插值算法来完成。其中,在仿射变换过程中,计算出输入图像中的每一个像素点在原始图像中的对应坐标。在插值处理的过程中,根据输入图像中的每一个像素点在原始图像中的对应坐标,根据插值算法计算出新的像素值,并将新的像素值配置给输入图像的对应像素点处,以此得到输出图像。该输出图像保留了原始图像中的文字内容,同时校正了图像的倾斜角度,将倾斜角度从45度转换成0度,使得输出图像符合预期的要求。
仿射变换(Affine Transformation)是指将向量空间进行旋转、缩放和平移的几何变换。请参考图2,其示出了本申请一个实施例提供的仿射变换的示意图。利用仿射变换,进行输入图像的像素点坐标(x,y)映射到原始图像中的对应坐标(x',y')的过程,包括以下过程。
该仿射变换可以包括旋转、缩放和平移操作,坐标映射公式如下述公式1和公式2所示。
(公式1)
(公式2)
其中,是用于控制缩放和旋转的参数,/>是用于控制平移的参数。公式1和公式2可以转成矩阵乘法,如下述公式3所示,其中M为仿射变换矩阵。
(公式3)
上述公式3仅示出了输入图像中的一个像素点坐标的映射公式,矩阵运算处理器能够同时计算输入图像中的多个像素点坐标的映射,将上述公式3进行扩展,即坐标向量也扩展成矩阵,如下述公式4所示。
(公式4)
该输入图像包括多个像素点,每一个像素点对应一个坐标。第一坐标矩阵是指输入图像中的N个像素点的坐标组成的矩阵,N为大于1的整数,对应上述公式4中的。原始图像包括至少一个像素点,每一个像素点对应一个坐标。第二坐标矩阵是指对第一坐标矩阵进行仿射变换得到的由原始图像中的多个坐标组成的矩阵,对应上述公式4中的/>。
矩阵运算处理器11是指用于处理矩阵运算的硬件装置,如可以处理矩阵乘法、矩阵加法、矩阵求逆等矩阵运算操作。如矩阵运算处理器11可以用于完成上述所示的仿射变换的过程,如可以用于计算(公式4)等式右边的矩阵乘法,利用矩阵运算处理器11,可以高效地计算仿射变换公式中的矩阵乘法,从而实现对原始图像的旋转、缩放和平移等变换操作。
第一坐标是指输入图像中未配置像素值的一个像素点的坐标,即该第一坐标的像素值为空,给该第一坐标配置像素值的步骤可以包括:首先,可以将该第一坐标映射至原始图像中,得到该第一坐标在原始图像中的对应坐标,该对应坐标作为第二坐标;然后,根据该第二坐标在原始图像中的邻近像素点计算出一个新的像素值;最后,将该新的像素值配置给第一坐标,得到了第一坐标的像素值。
第二坐标在原始图像中的邻近像素点,是指在原始图像中距离该第二坐标最近的M个像素点,M为正整数。根据距离第二坐标最近的M个像素点的像素值,可以利用插值算法计算出该第二坐标对应的第一坐标的像素值。M的取值不作限定,例如可以是1、2、4、8、16等。
该插值算法可以是最近邻插值、双线性插值、双立方插值等,其中,最近邻插值算法会根据当前第二坐标的位置,选择其最近的1个像素点的像素值作为该第二坐标对应的第一坐标的像素值。双线性插值算法利用第二坐标周围的4个邻近像素点的像素值进行加权平均计算,从而得到该第二坐标对应的第一坐标的像素值。双立方插值算法利用第二坐标周围的16个邻近像素点的像素值进行加权平均计算,从而得到该第二坐标对应的第一坐标的像素值。本申请对插值算法的选择不作限定。
示例性地,可以选择双线性插值算法计算第一坐标的像素值,即M为4。如图2所示,其示出了根据第二坐标在原始图像中的邻近像素点的像素值,插值计算得到第二坐标对应的第一坐标的像素值的过程示意图。根据原始图像中距离该第二坐标(x’,y’)最近的4个像素点(像素点21、像素点22、像素点23和像素点24)的像素值,计算输入图像中第一坐标(x,y)的像素值。
其中,假设像素点21的坐标为Q11(x1’,y1’),像素点22的坐标为Q12(x2’,y1’),像素点23的坐标为Q21(x1’,y2’),像素点24的坐标为Q22(x2’,y2’)。像素点21的像素值为f(Q11),像素点22的像素值为f(Q12),像素点23的像素值为f(Q21),像素点24的像素值为f(Q22)。
首先,计算x方向的线性插值f(R1)、f(R2),如下述公式5所示。
(公式5)
其中,可以作为向量1,/>可以作为向量2,/>可以作为向量3,/>可以作为向量4,即公式5中f(R1)可以通过该向量1和该向量3的内积(点乘)来计算得出,f(R2)可以通过该向量2和该向量4的内积(点乘)来计算得出。
然后计算y方向的线性插值f(P),如下述公式6所示。
(公式6)
其中,可以作为向量5,/>可以作为向量6,f(P)可以通过该向量5和该向量6的内积(点乘)来计算得出。
由于Q11、Q12、Q21和Q22是最邻近的像素点,所以4个点的坐标之间相差1,即分母为1,将公式5代入公式6,该第二坐标(x’,y’)对应的第一坐标(x,y)的像素值f(x,y)为,如下述公式7所示。
(公式7)
其中,可以作为向量7,/>可以作为向量8,f(x,y)可以通过该向量7和该向量8的内积(点乘)来计算得出。
向量运算处理器12是指用于处理向量运算的硬件装置,如可以处理向量加法、向量乘法、向量范数计算等向量运算操作。如向量运算处理器12可以用于完成图2所示的插值计算的过程,通过向量运算处理器12,可以对第二坐标的M个邻近像素点的像素值进行向量加法、向量乘法等操作,从而实现插值计算,得到该第二坐标对应的第一坐标的像素值。示例性地,请查看上述公式5至公式7,通过向量的内积(点乘)计算,可以根据第二坐标的4个邻近像素点的像素值,得到该第二坐标对应的第一坐标的像素值。
在一些实施例中,如果仿射变换矩阵是从输入图像到原始图像的变换矩阵,则将第一坐标矩阵与仿射变换矩阵相乘,得到第二坐标矩阵。如果仿射变换矩阵是从原始图像到输入图像的变换矩阵,则将第一坐标矩阵与仿射变换矩阵的逆矩阵相乘,得到第二坐标矩阵。
请参考图3,其示出了本申请另一个实施例提供的AI芯片10的示意图。其中,矩阵运算处理器11包括矩阵运算单元101、矩阵输入存储器102和矩阵输出存储器103。矩阵运算单元101分别与矩阵输入存储器102和矩阵输出存储器103耦接。向量运算处理器12包括向量运算单元104、向量寄存器105和向量存储器106。向量寄存器105分别与向量运算单元104和向量存储器106耦接。AI芯片10还包括数据搬运单元13,数据搬运单元13分别与矩阵输入存储器102、矩阵输出存储器103和向量存储器106耦接。
矩阵运算单元101,用于从矩阵输入存储器102获取第一坐标矩阵和仿射变换矩阵,将第一坐标矩阵和仿射变换矩阵相乘,得到第二坐标矩阵,将第二坐标矩阵存储至矩阵输出存储器103中。数据搬运单元13,用于将第二坐标矩阵,从矩阵输出存储器103搬运至向量存储器106中,其中,向量存储器106中存储有原始图像中像素点的像素值。向量寄存器105,用于从向量存储器106中,获取第二坐标矩阵中的每个第二坐标在原始图像中的邻近像素点的像素值。向量运算单元104,用于对于第二坐标矩阵中的每个第二坐标,根据该第二坐标在原始图像中的邻近像素点的像素值,插值计算得到第二坐标对应的第一坐标的像素值,将第二坐标对应的第一坐标的像素值存储至向量存储器106中。
矩阵运算单元101是指用于执行矩阵运算的硬件处理单元,它从矩阵输入存储器102中获取数据,执行矩阵运算操作,并将计算结果输出至矩阵输出存储器103中。矩阵运算单元101可以用于从矩阵输入存储器102获取第一坐标矩阵和仿射变换矩阵,并进行矩阵乘法运算,得到第二坐标矩阵。
矩阵输入存储器102是指用于存储矩阵输入数据的存储器。矩阵输入存储器102可以用于存储第一坐标矩阵和仿射变换矩阵。矩阵输入存储器102中的第一坐标矩阵和仿射变换矩阵可以被读取到矩阵运算单元101中进行计算。
矩阵输出存储器103是指用于存储矩阵输出数据的存储器。矩阵输出存储器103可以用于存储经过矩阵运算得到的第二坐标矩阵。矩阵输出存储器103中的第二坐标矩阵可以被数据搬运单元13搬运至向量存储器106中。
向量运算单元104是用于执行向量运算的硬件处理单元。向量运算单元104可以用于对第二坐标在原始图像中的邻近像素点的像素值进行插值计算,得到第二坐标对应的第一坐标的像素值。
向量寄存器105是指用于暂存数据的寄存器,它可以用于存储第二坐标矩阵中的每个第二坐标在原始图像中的邻近像素点的像素值。向量寄存器105中的邻近像素点的像素值可以被读取到向量运算单元104中进行计算。
向量存储器106是指用于存储原始图像中像素点的像素值的存储器。它可以包含一组内存单元或存储位置,每个存储位置存储一个像素值。向量存储器106中的像素值可以按照特定的顺序和结构进行存储和读取,以满足向量运算所需的数据访问要求。在一些实施例中,向量存储器106可以按照顺序存储方式对像素值进行存储。顺序存储是指将像素值按照一定的顺序,如按行/按列依次将像素值存储在连续的存储单元中,像素值之间的存储位置是连续的,其中,按行/按列存储是指将原始图像像素值按行/按列连续存储在向量存储器106中。当需要读取向量存储器106中的像素值时,可以根据顺序存储的方式,如根据按行存储以及像素值在向量存储器106中的起始存储地址来计算偏移量,从而直接读取对应地址处的像素值。
在一些实施例中,可以将原始图像分为多个块状区域,然后将多个块状区域分别包含的像素值以块状结构存储在向量存储器106中。其中,每一个块状区域包含的像素值可以以上述顺序存储方式进行存储。这种方法,由于在插值计算中,通常需要针对输入图像的每一个像素点,读取该像素点对应的原始图像坐标的多个邻近像素点的像素值,以进行插值处理。将原始图像的像素值以块状结构进行存储,可以增强该像素点对应的原始图像坐标的多个邻近像素点的像素值之间的局部性,提高了多个邻近像素点的像素值的读取效率以及插值计算的效率。
数据搬运单元13是指用于在不同存储器之间传输数据的硬件处理单元。它可以用于将数据从一个存储器传输到另一个存储器,以满足不同模块或处理单元之间的数据交互和共享需求。数据搬运单元13可以将第二坐标矩阵从矩阵输出存储器103传输到向量存储器106中。数据搬运单元13可以具有高速的数据传输能力和灵活的接口,可以支持不同的数据格式和传输协议。它可以根据特定的数据传输需求,通过直接内存访问(Direct MemoryAccess,DMA)、总线传输或点对点传输等方式,将数据从源设备搬运到目标设备。示例性地,可以通过DMA方式,将第二坐标矩阵从矩阵输出存储器103传输到向量存储器106中。步骤如下:首先,设置好DMA控制器的参数,包括源地址、目标地址、传输长度等信息。源地址指的是矩阵输出存储器103的起始地址,而目标地址则是向量存储器106的起始地址,其中,起始地址是指第二坐标矩阵在矩阵输出存储器103或向量存储器106中的起始位置。然后,触发DMA传输的开始信号,使DMA控制器开始执行数据传输操作。DMA控制器根据设置的参数,从矩阵输出存储器103中读取第二坐标矩阵的数据,并将其直接写入向量存储器106中。
上述方法,充分考虑到仿射变换过程中,采用矩阵运算的运算特性。通过矩阵运算单元101可以实现对第一坐标矩阵和仿射变换矩阵进行矩阵乘法运算,可以高效快速地得到第二坐标矩阵。并且,充分考虑到在像素值计算过程中,如插值计算过程,采用向量运算的运算特性,通过向量运算单元104可以根据第二坐标矩阵中的每个第二坐标在原始图像中的邻近像素点的像素值进行插值计算,得到第二坐标对应的第一坐标的像素值。这种方式,充分发挥了矩阵运算单元101和向量运算单元104的运算算力,加快了仿射变换以及插值运算的执行速度,提高了仿射变换以及插值运算的执行效率。
在一些实施例中,请参考图3,矩阵运算处理器11还包括第一控制单元107,向量运算处理器12还包括第二控制单元108。第一控制单元107,用于获取第一指令,向矩阵运算单元101发送第一指令,第一指令用于对矩阵运算单元101进行控制。第二控制单元108,用于获取第二指令,向向量运算单元104发送第二指令,第二指令用于对向量运算单元104进行控制。
第一控制单元107也可以称为第一标量控制单元。第一指令是指用于对矩阵运算单元101进行控制的指令,可以包括操作类型、矩阵地址、操作结果存储地址中的至少一个。其中,操作类型用于指示矩阵运算单元101要执行的具体操作类型,例如矩阵乘法、矩阵加法、转置等。矩阵地址用于指定目标矩阵在矩阵输入存储器102中的地址,该目标矩阵可以包括第一坐标矩阵和仿射变换矩阵。示例性地,矩阵地址可以用于指定第一坐标矩阵和仿射变换矩阵在矩阵输入存储器102中的地址。操作结果存储地址用于指定操作结果的存储地址,该操作结果可以是第二坐标矩阵。示例性地,操作结果存储地址可以用于指定第二坐标矩阵在矩阵输出存储器103中的存储地址。
第二控制单元108也可以称为第二标量控制单元。第二指令是指用于对向量运算单元104进行控制的指令,可以包括操作类型、向量地址、操作结果存储地址中的至少一个。其中,操作类型用于指示要执行的具体操作类型,例如向量加法、向量乘法、向量归一化等。向量地址用于指示目标向量的地址,该目标向量可以是第二坐标的M个邻近像素点的像素值组成的向量。操作结果存储地址用于指示操作结果的存储地址,该操作结果可以是第二坐标对应的第一坐标的像素值。示例性地,操作结果存储地址可以用于指定第二坐标对应的第一坐标的像素值在向量存储器106中的存储地址。
上述方法,通过第一控制单元107和第二控制单元108,可以实现对矩阵运算单元101和向量运算单元104的灵活控制,从而根据具体应用的需要,进行不同类型运算的指令操作,这有助于提高系统的运算效率和灵活性。
并且,矩阵运算处理器11包括第一控制单元107,向量运算处理器12包括第二控制单元108,矩阵运算处理器11和向量运算处理器12具有完全独立的标量控制单元。
矩阵运算处理器11包括矩阵输入存储器102和矩阵输出存储器103,向量运算处理器12包括向量寄存器105和向量存储器106,上述两个运算处理器具有完全独立的存储器。矩阵运算单元101只与矩阵运算处理器11内部的矩阵输入存储器102和矩阵输出存储器103进行数据交互。向量运算单元104只与向量运算处理器12内部的向量寄存器105和向量存储器106进行数据交互。这种分离的标量控制单元和存储器结构保证了矩阵类操作和向量类操作在编程上的松耦合。
在一些实施例中,如图3所示,数据搬运单元13还与AI芯片10的外部存储器14耦接。数据搬运单元13,还用于将原始图像中像素点的像素值,从外部存储器14搬运至向量存储器106中;数据搬运单元13,还用于将第二坐标对应的第一坐标的像素值,从向量存储器106搬运至外部存储器14中。
为了向量运算单元104在进行向量运算的过程中,减少数据搬运的次数,上述数据搬运单元13用于将原始图像中所有像素点的像素值,从外部存储器14搬运至向量存储器106中。这样,在向量运算单元104进行向量运算的过程中,可以从向量存储器106获取像素值,而不需要频繁地从外部存储器14读取数据,从而减少了数据的搬运次数。
当向量运算单元104利用插值算法计算出第二坐标对应的第一坐标的像素值后,数据搬运单元13将该像素值搬运至外部存储器14中。
上述方法,通过将原始图像中所有像素点的像素值一次性地搬运至向量存储器106中,在向量运算单元104进行像素值计算时,可以直接从向量存储器106中获取所需的像素值,而不需要从外部存储器14读取,可以有效地减少数据传输的开销,提高了数据访问效率和向量运算的效率。
并且,通过数据搬运单元13可以灵活的切换数据通路,数据搬运单元13可以支持:1)矩阵类算子和向量类算子在处理器内数据交互;2)可以显示控制多级内存间的数据搬运,并且该数据搬运过程与计算过程可以进行流水线方式并行执行。
在该AI芯片上,通过数据搬运单元,支持7条数据通路。1)外部存储器14到矩阵输入存储器102;2)外部存储器14到向量存储器106;3)矩阵输出存储器103到矩阵输入存储器102;4)矩阵输出存储器103到外部存储器14;5)矩阵输出存储器103到向量存储器106;6)向量存储器106到外部存储器14;7)向量存储器106到矩阵输入存储器102。
在一些实施例中,由于向量寄存器105的存储容量的限制,输入图像可能会包括多个第一坐标矩阵。在输入图像包括多个第一坐标矩阵的情况下,矩阵运算流程和向量运算流程通过流水线方式并行执行;其中,矩阵运算流程是指通过矩阵运算处理器11进行坐标映射的流程,向量运算流程是指通过向量运算处理器12进行像素值计算的流程。
矩阵运算流程和向量运算流程通过流水线方式并行执行是指矩阵运算处理器11和向量运算处理器12同时进行计算,并通过流水线的方式实现连续的数据处理。示例性地,假设输入图像包括3200个像素点(对应3200个坐标),向量寄存器105一次只能存储320个像素点对应的第二坐标在原始图像中的邻近像素点的像素值,那么输入图像包括10个第一坐标矩阵。10个第一坐标矩阵处理顺序为,第1个第一坐标矩阵、第2个第一坐标矩阵,…,第10个第一坐标矩阵。首先,矩阵运算处理器11处理第1个第一坐标矩阵,此时向量运算处理器12不进行数据处理。矩阵运算处理器11完成对第1个第一坐标矩阵处理后,将第1个第一坐标矩阵的处理结果传输给向量运算处理器12,并开始处理第2个第一坐标矩阵。当向量运算处理器12接收到第1个第一坐标矩阵的处理结果后,对该第1个第一坐标矩阵的处理结果进行数据处理。当向量运算处理器12完成对该第1个第一坐标矩阵的处理结果的数据处理且矩阵运算处理器11完成对第2个第一坐标矩阵处理后,矩阵运算处理器11将第2个第一坐标矩阵的处理结果传输给向量运算处理器12,并开始处理第3个第一坐标矩阵。直到输入图像的第10个第一坐标矩阵的处理结果在向量运算处理器12完成处理。
上述方法,矩阵运算流程在矩阵运算处理器11中完成,向量运算流程在向量运算处理器12中完成,将矩阵运算流程和向量运算流程通过流水线方式并行执行,可以充分利用矩阵运算处理器11和向量运算处理器12的计算资源,同时减少数据处理的等待时间,从而提高整个矩阵和向量运算的效率。有利于提高计算效率和整体系统的运行速度,达到了优化运算性能、提升系统响应速度、降低处理时间等技术效果。
在一些实施例中,由于向量存储器106的容量限制,在处理流程中,可以包含多个原始图像。当原始图像有多个,每一组原始图像和输入图像通过如下方式确定:在待处理图像中的待处理区域对应的最小边界框内的像素数量大于第一阈值的情况下,将待处理区域划分为多个子区域,每个子区域对应的最小边界框内的像素数量小于或等于第一阈值;对于每个子区域,将原始图像中的子区域对应的最小边界框内的图像内容,确定为一个原始图像,对子区域对应的最小边界框进行缩放,确定原始图像对应的输入图像的尺寸。
待处理图像是指待处理的完整图像,包含了至少一个待处理区域以及其他区域。待处理区域是指待处理图像中需要进行特定处理的区域,待处理区域可以为文字框,特定处理可以包括仿射变换、插值处理等。待处理区域对应的最小边界框是指能够完整包围待处理区域的最小矩形框,且该最小矩形框的边长与待处理图像的边长平行。请参考图4,其示出了本申请一个实施例提供的4个原始图像的示意图。图4中,将待处理区域分为4个子区域,4个子区域对应着4个原始图像。
第一阈值是指向量存储器106中用于存储原始图像的存储区域所能容纳的最大像素数量。在待处理图像中的待处理区域对应的最小边界框内的像素数量大于第一阈值的情况下,将待处理区域划分为多个子区域,每个子区域对应的最小边界框内的像素数量小于或等于第一阈值。子区域对应的最小边界框是指能够完整包围该子区域的最小矩形框,且该最小矩形框的边长与待处理图像的边长平行。示例性地,当待处理区域为文字框时,如图4所示,待处理图像中的待处理区域的最左向量点的坐标为(x_l,y_l),最右向量点的坐标为(x_r,y_r),最上向量点的坐标为(x_u,y_u),最下向量点的坐标为(x_d,y_d),因此该待处理区域对应的最小边界框为矩形框40,且该矩形框40的边长与待处理图像的边长平行。同样地,第一个子区域对应的最小矩形框为矩形框41,第二个子区域对应的最小矩形框为矩形框42,第三个子区域对应的最小矩形框为矩形框43,第四个子区域对应的最小矩形框为矩形框44。
在一些实施例中,当待处理区域对应的最小边界框内的像素数量小于或等于第一阈值的情况下,不对待处理区域进行处理,将待处理区域对应的最小矩形框,确定为一个原始图像,将该原始图像包含的全部像素点的像素值搬运至向量存储器106中。
上述方法,充分考虑到向量存储器106的存储容量,针对每一个待处理区域,将其划分为多个子区域进行处理,可以确保每个子区域的像素数量不会超出向量存储器106的容量限制,从而更好地管理和处理图像数据。
在一些实施例中,当原始图像有多个时,针对每一组原始图像和输入图像的处理流程,包括搬运流程和计算流程;其中,搬运流程是指数据搬运单元13将原始图像中像素点的像素值,从外部存储器14搬运至向量存储器106中的流程;计算流程是指矩阵运算处理器11和向量运算处理器12根据原始图像中像素点的像素值,计算得到输入图像中像素点的像素值的流程;在原始图像和输入图像的组数大于1的情况下,搬运流程和计算流程通过流水线方式并行执行。
计算流程可以包括矩阵运算流程和向量运算流程。矩阵运算流程是指矩阵运算处理器11对第一坐标矩阵进行坐标映射,以得到第二坐标矩阵的流程;向量运算流程是指向量运算处理器12根据第二坐标矩阵,取原始图像中第二坐标的邻近像素点的像素值,计算得到第一坐标的像素值的流程。
由于向量存储器106的容量限制,对于待处理图像中的每一个待处理区域,需要划分为多组原始图像和输入图像进行处理。搬运流程和计算流程通过流水线方式并行执行是指,在进行多组原始图像和输入图像的处理过程中,将每一组的处理流程分解成搬运流程和计算流程,多组原始图像和输入图像分别对应多个搬运流程和计算流程。矩阵运算处理器11和向量运算处理器12在执行当前组原始图像和输入图像对应的计算任务的同时,数据搬运单元13执行下一组原始图像和输入图像对应的搬运任务。从而多组原始图像和输入图像分别对应的多个搬运流程和计算流程可以通过流水线方式并行执行,减少整体任务的执行时间,提高系统的效率。
示例性地,待处理图像包含1个待处理区域,该待处理区域被分为4个子区域,每一个子区域对应的最小矩形框为一个原始图像。针对4组原始图像和输入图像的处理顺序为,第1组原始图像和输入图像、第2组原始图像和输入图像、第3组原始图像和输入图像和第4组原始图像和输入图像。首先,数据搬运单元13将第1个原始图像中像素点的像素值,从外部存储器14搬运至向量存储器106中,然后矩阵运算处理器11和向量运算处理器12根据第1个原始图像中像素点的像素值,计算得到第1个输入图像中像素点的像素值。同时,数据搬运单元13将第2个原始图像中像素点的像素值从外部存储器14中搬运至数据搬运单元13。当矩阵运算处理器11和向量运算处理器12得到第1个输入图像中像素点的像素值的计算结果后,数据搬运单元将第2个原始图像中像素点的像素值从数据搬运单元搬运至向量存储器106中,然后矩阵运算处理器11和向量运算处理器12根据第2个原始图像中像素点的像素值,计算得到第2个输入图像中像素点的像素值。同时,数据搬运单元将第3个原始图像中像素点的像素值从外部存储器14中搬运至数据搬运单元13中。当矩阵运算处理器11和向量运算处理器12得到第2个输入图像中像素点的像素值的计算结果后,数据搬运单元13将第3个原始图像中像素点的像素值从数据搬运单元13搬运至向量存储器106中,然后矩阵运算处理器11和向量运算处理器12根据第3个原始图像中像素点的像素值,计算得到第3个输入图像中像素点的像素值。同时,数据搬运单元13将第4个原始图像中像素点的像素值从外部存储器14中搬运至数据搬运单元13。当矩阵运算处理器11和向量运算处理器12得到第3个输入图像中像素点的像素值的计算结果后,数据搬运单元13将第4个原始图像中像素点的像素值从数据搬运单元13搬运至向量存储器106中,然后矩阵运算处理器11和向量运算处理器12根据第4个原始图像中像素点的像素值,计算得到第4个输入图像中像素点的像素值。
上述方法,通过采用流水线方式并行执行数据搬运流程和运算流程,可以有效地提高处理效率和并行性。并行处理数据搬运和运算的同时,能够减少数据搬运和数据运算之间的时间间隔,从而降低了整体处理时间。
请参考图5,其示出了本申请一个实施例提供的数据流控制和融合计算优化的示意图。数据流控制策略是一种针对待处理图像的待处理区域容量大于向量存储器106的情况,将待处理区域划分为多个子区域的策略。通过该策略,可以优化向量运算单元104在插值计算中的处理过程,通过向量存储器106获取所需像素点的像素值,而不需要频繁地访问外部存储器14,从而减少数据搬运的频率,提高以仿射变换为核心的图像处理任务的执行效率。融合计算优化策略是指一种充分利用AI芯片10的矩阵运算单元101和向量运算单元104的多种运算能力的策略。通过该策略,在矩阵运算处理器11的支持下,利用第一坐标矩阵和仿射变换矩阵计算得到第二坐标矩阵。然后,通过向量运算处理器12对第二坐标矩阵的第二坐标的邻近像素点的像素值进行插值计算,从而得到第二坐标对应的第一坐标的像素值。这种利用矩阵运算处理器11和向量运算处理器12算力的融合计算优化策略能够高效处理图像任务,提升计算性能。
本申请实施例提供的技术方案,在以仿射变换为核心的图像处理任务中,通过矩阵运算处理器根据第一坐标矩阵和仿射变换矩阵得到第二坐标矩阵,通过向量运算处理器根据该第二坐标矩阵中的第二坐标的邻近像素点的像素值,计算得到该第二坐标对应的第一坐标的像素值。利用仿射变换的矩阵化运算特性通过矩阵运算处理器得到第二坐标矩阵,充分发挥了矩阵运算处理器的算力,提高了仿射变换过程的执行效率;利用像素值计算过程的向量化运算特征通过向量运算处理器得到第一坐标的像素值,充分发挥了向量运算处理器的算力,提高了像素值计算过程的执行效率;从而提高了图像处理任务的执行效率,缩短了图像处理任务的执行时间。
在一些实施例中,上述AI芯片可以应用于以仿射变换为核心的文字框提取任务中。矩阵运算处理器11根据原始图像(原始文字框),利用仿射变换将输入图像(未配置像素值的文字框)中的像素点坐标映射至原始文字框中的对应坐标处。向量运算处理器12针对未配置像素值的文字框中的每一个像素点,根据该像素点坐标在原始文字框中的坐标的邻近像素点的像素值,计算得到新的像素值,将该新的像素值配置给未配置像素值的文字框中的对应像素点处,从而得到配置像素值的文字框(输出图像)。具体算法包括以下步骤。
1.初始化输出列表:创建一个空列表,用于存储配置像素值的文字框。
2.遍历原始文字框:对于输入的每个原始文字框(包含宽度、高度、中心坐标和旋转角度信息),执行以下步骤。
a.计算未配置像素值的文字框的四个顶点坐标(最左、最右、最上、最下像素点的坐标),以及未配置像素值的文字框的尺寸。
b.创建一个与未配置像素值的文字框尺寸相同的空白图像。
c.计算仿射变换矩阵,用于将未配置像素值的文字框的像素点坐标映射至原始文字框中的对应坐标处。
d.遍历未配置像素值的文字框的每个像素点坐标(x,y),将其坐标映射回原始文字框中的坐标(x’,y’)。
e.根据未配置像素值的文字框的每个像素点坐标(x,y)在原始文字框中的坐标(x’,y’),使用插值计算得到该未配置像素值的文字框的像素点的像素值。如果映射回的坐标超过原始文字框的图像范围,则使用原始文字框的边缘点像素值。
f.将计算得到的像素值配置给未配置像素值的文字框的相应像素点位置(x,y),得到配置像素值的文字框。
3.将配置像素值的文字框添加到输出列表中。
4.返回输出列表,其中包含原始文字框对应的配置像素值的文字框。
当待处理图像的待处理文字框所占容量大于向量存储器106容量时,首先将待处理图像的待处理文字框划分为多个子区域,每一个子区域对应的最小矩形框作为一个原始文字框。上述步骤b是指在外部存储器14创建与输入文字框尺寸相同的空白图像。数据搬运单元13将原始文字框的所有像素值搬运至向量存储器106中。上述步骤d可以在AI芯片10中的矩阵运算单元101中执行,上述步骤e可以在AI芯片10中的向量运算单元104中执行。请参考图6,其示出了本申请一个实施例提供的矩阵运算单元101和向量运算单元104的时序图的示意图的框图。矩阵运算单元101用于进行输入图像的坐标映射,即用于根据未配置像素值的文字框的坐标矩阵和仿射变换矩阵,得到原始文字框的坐标矩阵。如果映射回的原始文字框的坐标超过原始文字框范围,在后续向量运算单元104取不连续像素值时,使用该原始文字框边缘像素点的像素值。向量运算单元104根据原始文字框的坐标矩阵中的每一个坐标,取该坐标在原始文字框图像中的M个邻近像素点的像素值,可以通过gather(收集)类指令取出M个邻近像素点的像素值,也可以使用标量方式取M个邻近像素点的像素值,本申请对此不作限定。在得到M个邻近像素点的像素值后,可以使用双线性插值计算出该未配置像素值的文字框的像素点的像素值,在得到计算结果后,数据搬运单元13将该计算结果传输至外部存储器14中,以此将该计算结果配置给该空白图像对应的像素点处,从而得到输出图像。
在一些实施例中,本申请进行了实验测量,实验结果如下表1所示。其中,未配置像素值的文字框(输入图像)的宽度为32,未配置像素值的文字框的宽是指未配置像素值的文字框的短边,未配置像素值的文字框的高是指未配置像素值的文字框的长边。总开销表示以仿射变换为核心的文字框提取任务的时钟周期开销,平均开销表示总开销除以未配置像素值的文字框像素点个数,即为每个像素点平均占用的时钟周期。本申请实际测量了多张待处理图像里的多个原始文字框,开销如下表所示,所有未配置像素值的文字框的平均开销的平均数为9.17周期/像素。同样的任务,使用纯标量方法代替本申请的加速方法,在AI芯片上实测平均性能为120周期/像素。经对比,本申请的加速方法在AI芯片上性能提升为13倍以上。
在一些实施例中,本申请提供了一种电子设备,该电子设备包括AI芯片和CPU芯片。该AI芯片可以是上文实施例介绍的AI芯片,用于完成上文描述的数据搬运和运算流程,以实现图像处理的高效并行计算。该CPU芯片用于判断是否将待处理图像的待处理区域划分为多个子区域以及对待处理区域进行子区域的划分。
CPU芯片的应用在AI芯片应用之前。首先,CPU芯片根据待处理图像的待处理区域的大小以及AI芯片的向量存储器的大小,对待处理图像的待处理区域进行是否进行子区域划分的判断。如果待处理区域较大则需要将待处理区域划分成多个子区域进行分组处理,每一个子区域对应的最小矩形框作为一个原始图像。
CPU芯片将至少一个原始图像传递给AI芯片。AI芯片将针对每个原始图像进行数据搬运和数据运算,以得到每个原始图像的输出图像。
通过AI芯片和CPU芯片的协同工作,该电子设备能够实现对待处理图像的待处理区域的分块处理。并且CPU芯片的子区域划分策略能够适应不同AI芯片的存储器容量,以此实现对AI芯片的高效应用。
在一些实施例中,本申请提供了一种应用于AI芯片的图像处理方法,该方法各个实施例的详细内容,请参考上文内容。AI芯片包括矩阵运算处理器和向量运算处理器;该方法包括:矩阵运算处理器获取第一坐标矩阵,第一坐标矩阵包括N个第一坐标,每个第一坐标指代输入图像中未配置像素值的一个像素点;矩阵运算处理器进一步地利用仿射变换矩阵将N个第一坐标映射至原始图像中,得到N个第二坐标,N个第二坐标构成第二坐标矩阵,N为大于1的整数;向量运算处理器针对第二坐标矩阵中的每个第二坐标,根据第二坐标在原始图像中的邻近像素点的像素值,计算得到第二坐标对应的第一坐标的像素值,第一坐标的像素值用于配置给输入图像中对应于第一坐标的像素点,得到输出图像。
在一些实施例中,矩阵运算处理器包括矩阵运算单元、矩阵输入存储器和矩阵输出存储器,矩阵运算单元分别与矩阵输入存储器和矩阵输出存储器耦接;矩阵运算处理器利用仿射变换矩阵将N个第一坐标映射至原始图像中,得到N个第二坐标,包括:矩阵运算单元从矩阵输入存储器获取第一坐标矩阵和仿射变换矩阵,将第一坐标矩阵和仿射变换矩阵相乘,得到第二坐标矩阵,将第二坐标矩阵存储至矩阵输出存储器中。
在一些实施例中,向量运算处理器包括向量运算单元、向量寄存器和向量存储器,向量寄存器分别与向量运算单元和向量存储器耦接;AI芯片还包括数据搬运单元,数据搬运单元分别与矩阵输入存储器、矩阵输出存储器和向量存储器耦接;方法还包括:数据搬运单元将第二坐标矩阵,从矩阵输出存储器搬运至向量存储器中,其中,向量存储器中存储有原始图像中像素点的像素值;向量运算处理器针对第二坐标矩阵中的每个第二坐标,根据第二坐标在原始图像中的邻近像素点的像素值,计算得到第二坐标对应的第一坐标的像素值,包括:向量寄存器从向量存储器中,获取第二坐标矩阵中的每个第二坐标在原始图像中的邻近像素点的像素值;向量运算单元对述第二坐标矩阵中的每个第二坐标,根据第二坐标在原始图像中的邻近像素点的像素值,插值计算得到第二坐标对应的第一坐标的像素值,将第二坐标对应的第一坐标的像素值存储至向量存储器中。
在一些实施例中,数据搬运单元还与AI芯片的外部存储器耦接;方法还包括:数据搬运单元将原始图像中像素点的像素值,从外部存储器搬运至向量存储器中;数据搬运单元将第二坐标对应的第一坐标的像素值,从向量存储器搬运至外部存储器中。
在一些实施例中,针对每一组原始图像和输入图像的处理流程,包括搬运流程和计算流程;其中,搬运流程是指数据搬运单元将原始图像中像素点的像素值,从外部存储器搬运至向量存储器中的流程;计算流程是指矩阵运算处理器和向量运算处理器根据原始图像中像素点的像素值,计算得到输入图像中像素点的像素值的流程;在原始图像和输入图像的组数大于1的情况下,搬运流程和计算流程通过流水线方式并行执行。
在一些实施例中,矩阵运算处理器还包括第一控制单元,向量运算处理器还包括第二控制单元;方法还包括:第一控制单元获取第一指令,向矩阵运算单元发送第一指令,第一指令用于对矩阵运算单元进行控制;第二控制单元获取第二指令,向向量运算单元发送第二指令,第二指令用于对向量运算单元进行控制。
在一些实施例中,在输入图像包括多个第一坐标矩阵的情况下,矩阵运算流程和向量运算流程通过流水线方式并行执行;其中,矩阵运算流程是指通过矩阵运算处理器进行坐标映射的流程,向量运算流程是指通过向量运算处理器进行像素值计算的流程。
在一些实施例中,每一组原始图像和输入图像通过如下方式确定:在待处理图像中的待处理区域对应的最小边界框内的像素数量大于第一阈值的情况下,将待处理区域划分为多个子区域,每个子区域对应的最小边界框内的像素数量小于或等于第一阈值;对于每个子区域,将待处理图像中的子区域对应的最小边界框内的图像内容,确定为一个原始图像,对子区域对应的最小边界框进行缩放,确定原始图像对应的输入图像的尺寸。
本申请提供的技术方案,在以仿射变换为核心的图像处理任务中,通过矩阵运算处理器根据第一坐标矩阵和仿射变换矩阵得到第二坐标矩阵,通过向量运算处理器根据该第二坐标矩阵中的第二坐标的邻近像素点的像素值,计算得到该第二坐标对应的第一坐标的像素值。利用仿射变换的矩阵化运算特性通过矩阵运算处理器得到第二坐标矩阵,充分发挥了矩阵运算处理器的算力,提高了仿射变换过程的执行效率;利用像素值计算过程的向量化运算特征通过向量运算处理器得到第一坐标的像素值,充分发挥了向量运算处理器的算力,提高了像素值计算过程的执行效率;从而提高了图像处理任务的执行效率,缩短了图像处理任务的执行时间。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种人工智能AI芯片,其特征在于,所述AI芯片包括矩阵运算处理器和向量运算处理器;
所述矩阵运算处理器,用于获取第一坐标矩阵,所述第一坐标矩阵包括N个第一坐标,每个所述第一坐标指代输入图像中未配置像素值的一个像素点;
所述矩阵运算处理器,进一步地用于利用仿射变换矩阵将所述N个第一坐标映射至原始图像中,得到N个第二坐标,所述N个第二坐标构成第二坐标矩阵,N为大于1的整数;
所述向量运算处理器,用于针对所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,计算得到所述第二坐标对应的所述第一坐标的像素值,所述第一坐标的像素值用于配置给所述输入图像中对应于所述第一坐标的像素点,得到输出图像。
2.根据权利要求1所述的AI芯片,其特征在于,所述矩阵运算处理器包括矩阵运算单元、矩阵输入存储器和矩阵输出存储器,所述矩阵运算单元分别与所述矩阵输入存储器和所述矩阵输出存储器耦接;
所述矩阵运算单元,用于从所述矩阵输入存储器获取所述第一坐标矩阵和所述仿射变换矩阵,将所述第一坐标矩阵和所述仿射变换矩阵相乘,得到所述第二坐标矩阵,将所述第二坐标矩阵存储至所述矩阵输出存储器中。
3.根据权利要求2所述的AI芯片,其特征在于,所述向量运算处理器包括向量运算单元、向量寄存器和向量存储器,所述向量寄存器分别与所述向量运算单元和所述向量存储器耦接;所述AI芯片还包括数据搬运单元,所述数据搬运单元分别与所述矩阵输入存储器、所述矩阵输出存储器和所述向量存储器耦接;
所述数据搬运单元,用于将所述第二坐标矩阵,从所述矩阵输出存储器搬运至所述向量存储器中,其中,所述向量存储器中存储有所述原始图像中像素点的像素值;
所述向量寄存器,用于从所述向量存储器中,获取所述第二坐标矩阵中的每个所述第二坐标在所述原始图像中的邻近像素点的像素值;
所述向量运算单元,用于对于所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,插值计算得到所述第二坐标对应的第一坐标的像素值,将所述第二坐标对应的第一坐标的像素值存储至所述向量存储器中。
4.根据权利要求3所述的AI芯片,其特征在于,所述数据搬运单元还与所述AI芯片的外部存储器耦接;
所述数据搬运单元,还用于将所述原始图像中像素点的像素值,从所述外部存储器搬运至所述向量存储器中;
所述数据搬运单元,还用于将所述第二坐标对应的第一坐标的像素值,从所述向量存储器搬运至所述外部存储器中。
5.根据权利要求4所述的AI芯片,其特征在于,针对每一组所述原始图像和所述输入图像的处理流程,包括搬运流程和计算流程;其中,所述搬运流程是指所述数据搬运单元将所述原始图像中像素点的像素值,从所述外部存储器搬运至所述向量存储器中的流程;所述计算流程是指所述矩阵运算处理器和所述向量运算处理器根据所述原始图像中像素点的像素值,计算得到所述输入图像中像素点的像素值的流程;
在所述原始图像和所述输入图像的组数大于1的情况下,所述搬运流程和所述计算流程通过流水线方式并行执行。
6.根据权利要求3所述的AI芯片,其特征在于,所述矩阵运算处理器还包括第一控制单元,所述向量运算处理器还包括第二控制单元;
所述第一控制单元,用于获取第一指令,向所述矩阵运算单元发送所述第一指令,所述第一指令用于对所述矩阵运算单元进行控制;
所述第二控制单元,用于获取第二指令,向所述向量运算单元发送所述第二指令,所述第二指令用于对所述向量运算单元进行控制。
7.根据权利要求1至6任一项所述的AI芯片,其特征在于,在所述输入图像包括多个所述第一坐标矩阵的情况下,矩阵运算流程和向量运算流程通过流水线方式并行执行;其中,所述矩阵运算流程是指通过所述矩阵运算处理器进行坐标映射的流程,所述向量运算流程是指通过所述向量运算处理器进行像素值计算的流程。
8.根据权利要求1至6任一项所述的AI芯片,其特征在于,每一组所述原始图像和所述输入图像通过如下方式确定:
在待处理图像中的待处理区域对应的最小边界框内的像素数量大于第一阈值的情况下,将所述待处理区域划分为多个子区域,每个子区域对应的最小边界框内的像素数量小于或等于所述第一阈值;
对于每个子区域,将所述待处理图像中的所述子区域对应的最小边界框内的图像内容,确定为一个所述原始图像,对所述子区域对应的最小边界框进行缩放,确定所述原始图像对应的所述输入图像的尺寸。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求1至8任一项所述的人工智能AI芯片。
10.一种应用于人工智能AI芯片的图像处理方法,其特征在于,所述AI芯片包括矩阵运算处理器和向量运算处理器;所述方法包括:
所述矩阵运算处理器获取第一坐标矩阵,所述第一坐标矩阵包括N个第一坐标,每个所述第一坐标指代输入图像中未配置像素值的一个像素点;
所述矩阵运算处理器进一步地利用仿射变换矩阵将所述N个第一坐标映射至原始图像中,得到N个第二坐标,所述N个第二坐标构成第二坐标矩阵,N为大于1的整数;
所述向量运算处理器针对所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,计算得到所述第二坐标对应的所述第一坐标的像素值,所述第一坐标的像素值用于配置给所述输入图像中对应于所述第一坐标的像素点,得到输出图像。
11.根据权利要求10所述的方法,其特征在于,所述矩阵运算处理器包括矩阵运算单元、矩阵输入存储器和矩阵输出存储器,所述矩阵运算单元分别与所述矩阵输入存储器和所述矩阵输出存储器耦接;
所述矩阵运算处理器进一步地利用仿射变换矩阵将所述N个第一坐标映射至原始图像中,得到N个第二坐标,包括:
所述矩阵运算单元从所述矩阵输入存储器获取所述第一坐标矩阵和所述仿射变换矩阵,将所述第一坐标矩阵和所述仿射变换矩阵相乘,得到所述第二坐标矩阵,将所述第二坐标矩阵存储至所述矩阵输出存储器中。
12.根据权利要求11所述的方法,其特征在于,所述向量运算处理器包括向量运算单元、向量寄存器和向量存储器,所述向量寄存器分别与所述向量运算单元和所述向量存储器耦接;所述AI芯片还包括数据搬运单元,所述数据搬运单元分别与所述矩阵输入存储器、所述矩阵输出存储器和所述向量存储器耦接;所述方法还包括:
所述数据搬运单元将所述第二坐标矩阵,从所述矩阵输出存储器搬运至所述向量存储器中,其中,所述向量存储器中存储有所述原始图像中像素点的像素值;
所述向量运算处理器针对所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,计算得到所述第二坐标对应的所述第一坐标的像素值,包括:
所述向量寄存器从所述向量存储器中,获取所述第二坐标矩阵中的每个所述第二坐标在所述原始图像中的邻近像素点的像素值;
所述向量运算单元对于所述第二坐标矩阵中的每个所述第二坐标,根据所述第二坐标在所述原始图像中的邻近像素点的像素值,插值计算得到所述第二坐标对应的第一坐标的像素值,将所述第二坐标对应的第一坐标的像素值存储至所述向量存储器中。
13.根据权利要求12所述的方法,其特征在于,所述数据搬运单元还与所述AI芯片的外部存储器耦接;所述方法还包括:
所述数据搬运单元将所述原始图像中像素点的像素值,从所述外部存储器搬运至所述向量存储器中;
所述数据搬运单元将所述第二坐标对应的第一坐标的像素值,从所述向量存储器搬运至所述外部存储器中。
14.根据权利要求13所述的方法,其特征在于,针对每一组所述原始图像和所述输入图像的处理流程,包括搬运流程和计算流程;其中,所述搬运流程是指所述数据搬运单元将所述原始图像中像素点的像素值,从所述外部存储器搬运至所述向量存储器中的流程;所述计算流程是指所述矩阵运算处理器和所述向量运算处理器根据所述原始图像中像素点的像素值,计算得到所述输入图像中像素点的像素值的流程;
在所述原始图像和所述输入图像的组数大于1的情况下,所述搬运流程和所述计算流程通过流水线方式并行执行。
15.根据权利要求12所述的方法,其特征在于,所述矩阵运算处理器还包括第一控制单元,所述向量运算处理器还包括第二控制单元;所述方法还包括:
所述第一控制单元获取第一指令,向所述矩阵运算单元发送所述第一指令,所述第一指令用于对所述矩阵运算单元进行控制;
所述第二控制单元获取第二指令,向所述向量运算单元发送所述第二指令,所述第二指令用于对所述向量运算单元进行控制。
16.根据权利要求10至15任一项所述的方法,其特征在于,在所述输入图像包括多个所述第一坐标矩阵的情况下,矩阵运算流程和向量运算流程通过流水线方式并行执行;其中,所述矩阵运算流程是指通过所述矩阵运算处理器进行坐标映射的流程,所述向量运算流程是指通过所述向量运算处理器进行像素值计算的流程。
17.根据权利要求10至15任一项所述的方法,其特征在于,每一组所述原始图像和所述输入图像通过如下方式确定:
在待处理图像中的待处理区域对应的最小边界框内的像素数量大于第一阈值的情况下,将所述待处理区域划分为多个子区域,每个子区域对应的最小边界框内的像素数量小于或等于所述第一阈值;
对于每个子区域,将所述待处理图像中的所述子区域对应的最小边界框内的图像内容,确定为一个所述原始图像,对所述子区域对应的最小边界框进行缩放,确定所述原始图像对应的所述输入图像的尺寸。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410368142.7A CN117974417B (zh) | 2024-03-28 | 2024-03-28 | Ai芯片、电子设备及图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410368142.7A CN117974417B (zh) | 2024-03-28 | 2024-03-28 | Ai芯片、电子设备及图像处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117974417A true CN117974417A (zh) | 2024-05-03 |
CN117974417B CN117974417B (zh) | 2024-07-02 |
Family
ID=90865965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410368142.7A Active CN117974417B (zh) | 2024-03-28 | 2024-03-28 | Ai芯片、电子设备及图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117974417B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729734A (zh) * | 2017-08-31 | 2019-05-07 | 北京中科寒武纪科技有限公司 | 芯片装置及相关产品 |
CN109978147A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197268A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197274A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN111833959A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 存储器的测试的方法、装置、电子设备和计算机可读存储介质 |
CN113590199A (zh) * | 2021-01-28 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 指令调度方法、人工智能芯片、计算机设备和存储介质 |
US20210342990A1 (en) * | 2019-07-31 | 2021-11-04 | Tencent Technology (Shenzhen) Company Limited | Image coordinate system transformation method and apparatus, device, and storage medium |
CN114154112A (zh) * | 2021-11-19 | 2022-03-08 | 上海寒武纪信息科技有限公司 | 数据处理装置、芯片和板卡 |
WO2022134718A1 (zh) * | 2020-12-24 | 2022-06-30 | Oppo广东移动通信有限公司 | 图像处理方法、芯片及电子装置 |
CN115601231A (zh) * | 2022-11-22 | 2023-01-13 | 南京后摩智能科技有限公司(Cn) | 图像处理方法、装置、硬件加速器、芯片以及设备 |
CN117135454A (zh) * | 2023-01-13 | 2023-11-28 | 荣耀终端有限公司 | 图像处理方法、设备及存储介质 |
CN117216466A (zh) * | 2023-08-30 | 2023-12-12 | 鹏城实验室 | 数据处理方法、装置、系统及存储介质 |
US20240046408A1 (en) * | 2022-08-04 | 2024-02-08 | Black Sesame Technologies Co., Ltd. | Image processing method and apparatus, electronic device, and storage medium |
-
2024
- 2024-03-28 CN CN202410368142.7A patent/CN117974417B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729734A (zh) * | 2017-08-31 | 2019-05-07 | 北京中科寒武纪科技有限公司 | 芯片装置及相关产品 |
CN109978147A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197268A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197274A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
US20210342990A1 (en) * | 2019-07-31 | 2021-11-04 | Tencent Technology (Shenzhen) Company Limited | Image coordinate system transformation method and apparatus, device, and storage medium |
CN111833959A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 存储器的测试的方法、装置、电子设备和计算机可读存储介质 |
WO2022134718A1 (zh) * | 2020-12-24 | 2022-06-30 | Oppo广东移动通信有限公司 | 图像处理方法、芯片及电子装置 |
CN113590199A (zh) * | 2021-01-28 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 指令调度方法、人工智能芯片、计算机设备和存储介质 |
CN114154112A (zh) * | 2021-11-19 | 2022-03-08 | 上海寒武纪信息科技有限公司 | 数据处理装置、芯片和板卡 |
US20240046408A1 (en) * | 2022-08-04 | 2024-02-08 | Black Sesame Technologies Co., Ltd. | Image processing method and apparatus, electronic device, and storage medium |
CN115601231A (zh) * | 2022-11-22 | 2023-01-13 | 南京后摩智能科技有限公司(Cn) | 图像处理方法、装置、硬件加速器、芯片以及设备 |
CN117135454A (zh) * | 2023-01-13 | 2023-11-28 | 荣耀终端有限公司 | 图像处理方法、设备及存储介质 |
CN117216466A (zh) * | 2023-08-30 | 2023-12-12 | 鹏城实验室 | 数据处理方法、装置、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
HIROSHI MOMOSE ET AL.: "Systems and circuits for AI chips and their trends", 《JAPANESE JOURNAL OF APPLIED PHYSICS》, 21 April 2020 (2020-04-21), pages 1 - 16 * |
于振华 等: "面向可重构AI芯片的编译框架设计", 《单片机与嵌入式系统应用》, 15 June 2023 (2023-06-15), pages 20 - 23 * |
Also Published As
Publication number | Publication date |
---|---|
CN117974417B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
KR102258414B1 (ko) | 처리 장치 및 처리 방법 | |
Liu et al. | Learning to upsample by learning to sample | |
CN107833176A (zh) | 一种信息处理方法及相关产品 | |
CN114430837A (zh) | 使用脉动阵列的转置卷积 | |
CN112699806B (zh) | 一种基于三维热图的三维点云目标检测方法和装置 | |
RU2623806C1 (ru) | Способ и устройство обработки стереоизображений | |
Rupnow et al. | High level synthesis of stereo matching: Productivity, performance, and software constraints | |
JP7261226B2 (ja) | 演算処理装置 | |
JP2022550170A (ja) | コンピュータがテンソルデータの計算を実現する方法、装置、媒体及び機器 | |
CN112686377B (zh) | 利用卷积硬件对特征数据进行反卷积处理的方法和装置 | |
WO2023045446A1 (zh) | 计算装置、数据处理方法及相关产品 | |
US20220113944A1 (en) | Arithmetic processing device | |
CN117974417B (zh) | Ai芯片、电子设备及图像处理方法 | |
US11704546B2 (en) | Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method | |
US10387997B2 (en) | Information processing device, information processing method, and storage medium | |
US20220351432A1 (en) | Reconfigurable hardware acceleration method and system for gaussian pyramid construction | |
KR20210138954A (ko) | 변형 가능한 합성곱 신경망의 설계 방법 및 이를 이용한 장치 | |
RU168781U1 (ru) | Устройство обработки стереоизображений | |
CN113867800A (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
US20240005127A1 (en) | Smart memory extension to processors | |
CN115619631A (zh) | 图数据的处理方法、装置、电子设备及存储介质 | |
CN116385714A (zh) | 图像处理方法及相关产品 | |
CN118608376A (zh) | 一种图片缩放融合算子的执行方法、设备及存储介质 | |
CN118229511A (zh) | 一种适用DSP的小图像remap优化方法、系统、设备及介质 |
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 |