CN111784557A - 一种处理图像数据的方法、装置、板卡及可读存储介质 - Google Patents
一种处理图像数据的方法、装置、板卡及可读存储介质 Download PDFInfo
- Publication number
- CN111784557A CN111784557A CN202010622290.9A CN202010622290A CN111784557A CN 111784557 A CN111784557 A CN 111784557A CN 202010622290 A CN202010622290 A CN 202010622290A CN 111784557 A CN111784557 A CN 111784557A
- Authority
- CN
- China
- Prior art keywords
- vector
- data
- scalar
- calculation
- channel data
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Image Processing (AREA)
Abstract
本公开涉及处理图像数据的方法、装置、板卡及计算机可读存储介质。本公开自片外存储单元读取批次数据,对该批次数据进行图像边缘检测计算,以获得计算结果,最后将计算结果分次发送至片外存储单元,直到该计算结果发送完毕。
Description
技术领域
本公开一般地涉及神经网络领域。更具体地,本公开涉及一种处理图像数据的方法、装置、板卡及计算机可读存储介质。
背景技术
在图像处理领域中,边缘检测算法在物体检测和视频增强中有广泛的应用。基于边缘检测的分析不易受到整体光照强度变化的影响,许多图像理解方法都以边缘为基础。Prewitt算子大量应用在边缘检测上,其是一种一阶微分算子的边缘检测工具,利用像素上下左右邻点的灰度差,在边缘处会达到极值的特征来检测边缘,并去掉部分伪边缘,对噪声具有平滑作用。虽然Prewitt算子对灰度渐变噪声图像有较好的检测效果,但是在运算过程中仍存在大量的重复读取数据和冗余计算,效率不高。
因此一种能对Prewitt算子进行加速并提升算法的运行效率的方案是迫切需要的。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种处理图像数据的方法、装置、板卡及计算机可读存储介质。
在一个方面中,本公开揭露一种处理图像数据的方法,该图像数据包括C个通道,每个通道包括M×N的数据,存储在片外存储单元。该方法包括:自该片外存储单元读取C×S×N的批次数据,其中S小于M;对该批次数据进行计算,以获得计算结果;以及将该计算结果分次发送至该片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕,其中T小于C,且C、M、N、S及T皆为正整数。
在另一个方面,本公开揭露一种计算机可读存储介质,其上存储有处理图像数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行前述的方法。
在另一个方面,本公开揭露一种计算装置,与片外存储单元相连接,该片外存储单元存储有图像数据及标量数据。该图像数据包括C个通道,每个通道包括M×N的数据。该计算装置包括片上存储单元、通用寄存器及功能模块。片上存储单元用以存储该图像数据中的C×S×N的批次数据;通用寄存器用以存储该标量数据;功能模块用以读取该片上存储单元中的批次数据及该通用寄存器中的标量数据进行计算,并将计算结果分次发送至片外存储单元,每次发送T×S×N的数据量,直到计算结果发送完毕。其中,S小于M,T小于C,且C、M、N、S及T为正整数。
在另一个方面,本公开揭露一种集成电路装置,包括前述的计算装置。
在另一个方面,本公开揭露一种板卡,包括前述的集成电路装置。
本公开对图像边缘检测算子进行优化,藉由流水线操作以提高计算效率,满足实时处理图像的需求。不仅如此,本公开采用向量并行处理的方式,有效降低计算功耗和硬件资源,适合在移动终端上运行。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出本公开的一个实施例的内部结构示意图;
图2是示出本公开实施例中神经元存储单元分割成2个存储区的示意图;
图3是示出本公开实施例在进行数据读取的示意图;
图4是示出本公开实施例在进行写回任务的示意图;
图5是示出本公开实施例在进行灰度化计算的流程图;
图6是示出本公开实施例在进行水平梯度计算加速方案的流程图;
图7是示出本公开实施例在进行向量平移的示意图;
图8是示出本公开实施例在进行竖直梯度计算加速方案的流程图;
图9是示出本公开实施例在进行竖直梯度计算加速方案的示意图;
图10是示出本公开实施例在进行均方根计算加速方案的流程图;
图11是示出本公开实施例在进行二值化计算的流程图;
图12是示出本公开实施例的集成电路装置的结构图;
图13是示出本公开实施例的板卡的结构图;以及
图14是示出本公开另一个实施例处理图像数据的流程图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
图像边缘是图像中一个重要的结构性特征,边缘往往存在于物体和背景之间,因此它可以用来作为识别物体以及图像分割的重要依据。边缘检测是用来定义出图像的边缘,其原理是利用在图像边缘的像素的灰度发生了急剧的变化,灰度上的明显变化被认为是图像中的物体不同所导致的,因此通过找到这些灰度发生剧烈变化的像素,形成一个集合,用来标注图像中不同物体的边界。
灰度的变化在数学上是以梯度来代表,可以用一阶导数和二阶偏导数来求解。由于图像的信息是以矩阵的形式存储的,无法像数学理论中对直线或者曲线求导,对图像的求导相当于对一个平面、曲面求导,一般采用模板对图像进行卷积运算,从而达到求导的效果。
Prewitt算子就是一种常用的模板,应用在图像边缘检测上,其原理是计算特定区域内像素灰度值产生的差分来实现边缘检测,适合用来识别噪声较多、灰度渐变的图像。Prewitt算子是利用3×3的模板对区域内的像素值进行计算,其模板如下所示:
其中,dx为水平方向上的算子,dy为竖直方向上的算子。举例来说,一个如下所示的3×3图像矩阵:
P1 | P2 | P3 |
P4 | P5 | P6 |
P7 | P8 | P9 |
在像素P5处的x和y方向上的梯度大小gx和gy分别由以下公式获得:
基于Prewitt算子进行图像边缘检测时,需要先计算出像素的水平梯度和竖直梯度,以量化灰度值变化情况,再根据水平梯度和竖直梯度求得均方根向量,用来反映梯度变化幅度大小,最后与阈值进行比较,如果梯度变化幅度大于阈值,表示该像素是图像的边缘,如果梯度变化幅度未大于阈值,表示该像素并非图像的边缘。通过对图像矩阵进行前述的计算,便能生成一个像素集,用以表述图像的边缘。
本公开是基于Prewitt算子,用来优化图像边缘检测计算的方案。下面将结合附图来详细描述本公开的具体实施方式。
图1示出了本公开的一个实施例的内部结构示意图,其为一种应用于神经网络计算的机器学习单元,也就是一种计算装置。计算装置100共有N个处理器核,在此实施例中示例性的展示16个(处理器核0至处理器核15),用于执行计算任务。每4个处理器核组成一个处理器组,也就是集群(cluster),如图所示,处理器核0至处理器核3组成第一集群102,处理器核4至处理器核7组成第二集群104,处理器核8至处理器核11组成第三集群106,处理器核12至处理器核15组成第四集群108,共4个集群。计算装置100基本上以集群为单元执行计算任务,这些集群合称为功能模块130。
计算装置100还包括存储单元核110及片上存储单元112。存储单元核110主要用于对外通过总线114连接并访问片外存储单元116,片上存储单元112用以暂存计算过程的输入数据、中间数据及计算结果,更详细来说,片上存储单元112包括通用寄存器(GPR)118及神经元存储单元(Neural-RAM)120,其中通用寄存器118用以存放标量数据,神经元存储单元120的大小通常为512KB,用以存放向量数据。
片外存储单元116为双倍速率同步动态随机存储器,采用非统一内存存取(non-uniform memory access,NUMA)框架,包括多个DDR通道,功能模块130可以通过总线114去访问这些DDR通道。
当欲进行图像边缘检测时,待处理的图像数据与相应的标量数据会被存放在片外存储单元116的DDR通道的指定输入地址中。当准备开始计算图像数据的梯度时,存储单元核110会把部分数据从片外存储单元116搬运到神经元存储单元120中进行计算,计算完成后再将计算结果搬运回片外存储单元116指定输出地址。循环上述过程直至完成整张图像的计算。
在此实施例中,待处理的图像数据为1080p,包括C个通道,每个通道包括M×N的数据。更具体来说,图像数据是由RGB三原色所组成,故C等于3,分别对应了图像数据里的红色通道数据、绿色通道数据及蓝色通道数据,M×N表示每个通道的矩阵大小,即各色通道数据是由M行及N列的矩阵所组成。
神经元存储单元120负责数据搬运的输出入队列和负责向量计算的流(stream)队列是相互独立的两个队列。如图2所示,神经元存储单元120分割成2个存储区:第一存储区202及第二存储区204。第一存储区202的空间用来执行与片外存储单元116间的数据搬运,即自片外存储单元116读取并存储批次数据,且当功能模块130计算完毕后,暂存计算结果并将其发送给片外存储单元116。第二存储区204的空间用来支援计算,也就是存储计算过程由功能模块130所产生的中间数据。
通过将神经元存储单元120分割为第一存储区202及第二存储区204,当功能模块130在计算的同时,也能访问片外存储单元116,这样的安排可以使访存和计算进行流水线操作,并行处理,隐藏访存延迟,互不干扰,进一步提升总体效率。
如前所述,片外存储单元116上待处理的图像数据大小为C×M×N,在此实施例中具体为3×1080×1920,每个像素为8比特。图3是示出此实施例在进行数据读取的示意图。片外存储单元116上的图像数据包括红色通道数据302、绿色通道数据304及蓝色通道数据306。此实施例在读取这些数据时,是一次读取3个通道数行的数据,也就是读取C×S×N的数据量,其中S小于M。
在此实施例中,存储单元核110每次读取3个通道中的40行(即S等于40)的数据,即批次读取3×40×1920的数据量。换言之,存储单元核110每次从片外存储单元116读取225KB的数据到神经元存储单元120进行计算。如图3所示,存储单元核110同时读取红色通道数据302中的红色批次数据308、绿色通道数据304的绿色批次数据310及蓝色通道数据306的蓝色批次数据312,总计读取C×S×N(即3×40×1920)的批次数据。由于是自片外存储单元116进行访问,因此这些批次数据会被存储在神经元存储单元120的第一存储区202。功能模块130除了读取批次数据,还会读取存储在通用寄存器118中计算所需的标量数据进行计算。
此实施例以列为单位,再涵盖适当的行数形成批次数据进行传送。对于拥有1080行的图像数据来说,此实施例每次读取3个通道各40行的数据,意味着一个图像数据要读取27次,以将图像数据完整的存储到神经元存储单元120上。
在计算完成后要将计算结果写回至片外存储单元116时,每次发送T×S×N的数据量,直到计算结果发送完毕,其中T小于C。如图4所示,此实施例批次将1×40×1920(即T为1)的计算结果402自神经元存储单元120的第一存储区202写回片外存储单元116上,也就是每次写回75KB的数据。以此方式进行写回任务,直到计算结果发送完毕为止。
当功能模块130欲启动计算任务时,在批次数据被存储在第一存储区202后,便开始进行灰度化计算。此实施例采用并行计算的方法,每次针对40×1920的批次数据计算灰度值。基于Prewitt算子进行灰度化计算时,灰度向量Vgray是由以下公式计算而得的:
Vgray=Vred×第一标量+Vgreen×第二标量+Vblue×第三标量其中,Vred为红色通道向量,Vgreen为绿色通道向量,Vblue为蓝色通道向量,第一标量为0.299,第二标量为0.587,第三标量为0.114,这些标量分别对应至一个通道,并自通用暂存器118中被取出计算。
功能模块130执行如图5所示的流程,以获得灰度向量。
首先执行步骤502,将红色通道数据与第一标量相乘,以获得A向量,也就是计算Vred×第一标量。第一标量是通过广播的方式与红色通道向量中的每一个元素进行乘法运算,并将A向量暂存在神经元存储单元120的第二存储区204中。
接着步骤504,将绿色通道数据与第二标量相乘,以获得B向量,也就是计算Vgreen×第二标量。第二标量同样是通过广播的方式与绿色通道向量中的每一个元素进行乘法运算,并将B向量暂存在神经元存储单元120的第二存储区204中。
在执行步骤506时,将蓝色通道数据与第三标量相乘,以获得C向量,也就是计算Vblue×第三标量。第三标量同样是通过广播的方式与蓝色通道向量中的每一个元素进行乘法运算,并将C向量暂存在神经元存储单元120的第二存储区204中。
在执行步骤508时,将A向量与B向量自第二存储区204取出相加,以获得D向量,并将D向量暂存在第二存储区204中。
最后执行步骤510,将C向量与D向量自第二存储区204取出相加,以获得灰度向量,并将灰度向量暂存在第二存储区204中,此灰度向量便是灰度化计算的计算结果。
取得灰度向量后,接着计算梯度,而梯度计算包括水平梯度计算及竖直梯度计算。此实施例将数据进行复用,以加速梯度计算。
图6是示出基于Prewitt算子,功能模块130进行水平梯度计算加速方案的流程图。
首先执行步骤602,功能模块130自红色通道数据、绿色通道数据及蓝色通道数据其中之一读取相邻的E向量、F向量及G向量,并将E向量、F向量及G向量暂存在第二存储区204中。更详细来说,功能模块130自第一存储区202中取出任一单色通道数据中前后相邻的3行数据,也就是3个向量,每个向量的长度为N个元素,在此实施例为1920个元素。
在步骤604中,功能模块130将E向量与F向量相加,以获得H向量,并将H向量暂存在第二存储区204中。
在步骤606中,功能模块130将G向量与H向量相加,以获得I向量,故I向量为E向量、F向量及G向量之和。I向量亦暂存在第二存储区204中。
在步骤608中,功能模块130将I向量平移2个元素,以形成J向量,并将J向量暂存在第二存储区204中。图7是示出此步骤的示意图,I向量702为E向量、F向量及G向量之和,共有a1、a2、a3至a1920等1920个元素,J向量704是I向量702向右位移2个元素,即I向量702的元素a3对应至J向量704的元素a1,I向量702的元素a4对应至J向量704的元素a2,以此类推,最后是I向量702的元素a1920对应至J向量704的元素a1918。
接着执行步骤610,功能模块130将I向量减去J向量,以获得水平梯度向量。如图7所示,区间706所涵盖的I向量702及J向量704皆分别存在元素,在此步骤中,在区间706内的I向量702的元素减去J向量704中相对应的元素,其计算结果即为水平梯度向量,从图7可知,水平梯度向量包括1918个元素。水平梯度向量被暂存在第二存储区204中,此水平梯度向量便是水平梯度计算的计算结果。
最后循环遍历整个图像进行图6的流程,以完成所有像素水平梯度的计算任务。
图8是示出基于Prewitt算子,功能模块130进行竖直梯度计算加速方案的流程图。
首先执行步骤802,功能模块130自红色通道数据、绿色通道数据及蓝色通道数据其中之一读取间隔一行的K向量及L向量,并将K向量、L向量暂存在第二存储区204中。更详细来说,功能模块130自第一存储区202中取出任一单色通道数据中间隔一行的2行数据,也就是2个向量,每个向量的长度同样为1920个元素。
在步骤804中,功能模块130将K向量平移1个元素,以形成M向量,并将M向量暂存在第二存储区204中。图9是示出竖直梯度计算加速方案的示意图,如图9所示,将K向量902向右位移1个元素,以形成M向量904。
在步骤806中,功能模块130将M向量平移1个元素,以形成O向量,并将O向量暂存在第二存储区204中。如图9所示,将M向量904向右位移1个元素,以形成O向量906。
在步骤808中,功能模块130将L向量平移1个元素,以形成N向量,并将N向量暂存在第二存储区204中。如图9所示,将L向量908向右位移1个元素,以形成N向量910。
在步骤810中,功能模块130将N向量平移1个元素,以形成P向量,并将P向量暂存在第二存储区204中。如图9所示,将N向量910向右位移1个元素,以形成P向量912。
在步骤812中,功能模块130将K向量与M向量相加,以获得Q向量,并将Q向量暂存在第二存储区204中。如图9所示,将K向量902与M向量904相加,以获得Q向量。区间914所涵盖的K向量902及M向量904皆分别存在元素,在此步骤中,在区间914内的K向量902的元素加上M向量904中相对应的元素,以获得Q向量916,Q向量916仅有1919个元素。
在步骤814中,功能模块130将L向量与N向量相加,以获得R向量,并将R向量暂存在第二存储区204中。如图9所示,将L向量908与N向量910相加,以获得R向量。区间918所涵盖的L向量908与N向量910皆分别存在元素,在此步骤中,在区间918内的L向量908的元素加上N向量910中相对应的元素,以获得R向量920,R向量920仅有1919个元素。
在步骤816中,功能模块130将O向量与Q向量相加,以获得S向量,并将S向量暂存在第二存储区204中。如图9所示,将O向量906与Q向量916相加,以获得S向量。区间922所涵盖的O向量906与Q向量916皆分别存在元素,在此步骤中,在区间922内的O向量906的元素加上Q向量916中相对应的元素,以获得S向量924,S向量924仅有1918个元素。
在步骤818中,功能模块130将P向量与R向量相加,以获得T向量,并将T向量暂存在第二存储区204中。如图9所示,将P向量912与R向量920相加,以获得T向量。区间926所涵盖的P向量912与R向量920皆分别存在元素,在此步骤中,在区间926内的P向量912的元素加上R向量920中相对应的元素,以获得T向量928,T向量928仅有1918个元素。
接着执行步骤820,功能模块130将S向量减去T向量,以获得竖直梯度向量。如图9所示,区间930所涵盖的S向量924及T向量928皆分别存在元素,在此步骤中,在区间930内的S向量924的元素减去T向量928中相对应的元素,其计算结果即为竖直梯度向量,竖直梯度向量仅有1918个元素。竖直梯度向量被暂存在第二存储区204中。
最后循环遍历整个图像进行图8的流程,以完成所有像素竖直梯度的计算任务。
图8示出了10个步骤以实现竖直梯度的计算任务,在1个步骤接着1个步骤执行的前提下,完成这10个步骤需要10个程序时间。然而,由于特定步骤与其他步骤间不存在必然的因果关系,故某些步骤能同时被执行,例如:步骤804和步骤806、步骤808及810、步骤812及814、步骤816及818。在同时执行某些步骤的情况下,竖直梯度的计算任务仅需6个程序时间便可完成。
在获得水平和竖直方向梯度之后,接着进行均方根计算,均方根计算的目的是用来反映梯度变化幅度大小。均方根向量的公式如下:
其中,VGx为水平梯度向量,VGy为竖直梯度向量。
为完成前述的均方根计算,功能模块130执行如图10所示的均方根计算加速方案的流程。
首先执行步骤1002,功能模块130根据批次数据,计算水平梯度向量,其计算流程如图6所示。
接着执行步骤1004,功能模块130根据批次数据,计算竖直梯度向量,其计算流程如图8所示。
在步骤1006中,功能模块130将水平梯度向量与水平梯度向量做点积,以获得U向量,并将U向量暂存在第二存储区204中。
在步骤1008中,功能模块130将竖直梯度向量与竖直梯度向量做点积,以获得V向量,并将V向量暂存在第二存储区204中。
在步骤1010中,功能模块130将U向量与V向量相加,以获得W向量,并将W向量暂存在第二存储区204中。
最后执行步骤1012,功能模块130对W向量取均方根,以获得均方根向量,并将均方根向量暂存在第二存储区204中。此步骤产生的均方根向量即为均方根计算的计算结果。
图10示出了6个步骤以实现均方根向量的计算任务。此实施例可以通过并行计算的方法来计算均方根,例如步骤1006和步骤1008间不存在必然的因果关系,故这2个步骤能同时被执行,以缩短程序时间。
在获得均方根向量后,此实施例将均方根向量内各元素的数值与阈值进行比较,获得二值化向量,以判断图像的边缘。如均方根值高于阈值,表示该像素梯度变化大,可视为图像的边缘;如均方根值低于阈值,表示该像素梯度变化不够大,不是图像的边缘。
图11是示出此实施例的功能模块130进行二值化计算的流程图。
首先执行步骤1102,功能模块130基于的批次数据,计算均方根向量,计算流程如图10所示。
在步骤1104中,功能模块130根据阈值常数标量,产生阈值常数向量。阈值常数标量是用来比较均方根值的大小,其存储在通用暂存器118中。在此实施例中,阈值常数标量会根据不同的图像设置不同的数值,考虑到灰度值的范围介于0至255间,一般来说阈值常数标量值会落在100左右。功能模块130自通用暂存器118取出阈值常数标量,并在神经元存储单元120的第二存储区204上申请一块与均方根向量相同大小的空间,用以存储阈值常数向量。功能模块130根据阈值常数标量生成阈值常数向量,阈值常数向量的数据量与均方根向量的数据量相同,也就是元素量相同,而阈值常数向量的每个元素数值均为该阈值常数标量。功能模块130将阈值常数向量存储至第二存储区204中。
在步骤1106中,功能模块130判断均方根向量的每个元素是否大于阈值常数向量相对应元素,以获得X向量。如果均方根向量的元素大于阈值常数标量,则执行步骤1108,功能模块130将X向量中相对应元素设定为1。如果均方根向量的元素不大于阈值常数标量,则执行步骤1110,功能模块130将X向量中相对应元素设定为0。功能模块130将X向量存储至第二存储区204中。
接着执行步骤1112,功能模块130根据标量峰值,产生标量峰值向量。标量峰值是灰度的上限值,一般为255,存储在通用暂存器118中。标量峰值向量的数据量与均方根向量的数据量相同,也就是元素量相同,标量峰值向量的每个元素数值均为标量峰值。功能模块130将标量峰值向量存储至第二存储区204中。
最后执行步骤1114,功能模块130将X向量的元素与标量峰值向量的相对应元素进行元素乘法运算,以获得二值化向量。由于X向量的元素非1即0,其中数值1表示梯度变化大,是图像的边缘,数值0表示梯度变化小,非图像边缘。当X向量的各元素与标量峰值相乘时,二值化向量的元素非255即0。可以理解的,数值255表示该像素为图像的边缘,而数值0表示该像素非图像边缘。该二值化向量即为最终计算结果。
此实施例亦可以通过并行计算的方法来计算二值化向量,由于步骤1106、步骤1108与步骤1110和步骤1112间不存在必然的因果关系,故步骤1106、步骤1108与步骤1110等3个步骤可以和步骤1112同时被执行,以缩短程序时间。
获得二值化向量后,基于向量的元素值,便能定义出图像的边缘,完成图像边缘检测。
在计算结束后,功能模块130可以将前述所有的计算结果写回至片外存储单元116,或只将二值化向量写回至片外存储单元116。此实施例只将二值化向量写回至片外存储单元116,该二值化向量为单通道图像,尺寸为1080×1920,其中每个像素为8比特。在写回时,每次是以单一通道的40行为单位批次写回,即每次写回75KB的图像数据。如图4所示,每次有40×1920的二值化向量存储在神经元存储单元120的第一存储区202中,接着被一次性写回片外存储单元116上。以此方式进行写回任务,直到计算结果发送完毕为止。
图12是示出根据本公开实施例的一种集成电路装置1200的结构图。如图12所示,集成电路装置1200包括计算装置1202,该计算装置1202是前述实施例中的计算装置100。另外,集成电路装置1200还包括通用互联接口1204和其他处理装置1206。
其他处理装置1206可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。其他处理装置1206作为计算装置1202与外部数据和控制的接口,执行包括但不限于数据搬运,完成对计算装置1202的开启、停止等的基本控制。其他处理装置1206也可以和计算装置1202协作共同完成运算任务。
通用互联接口1204可以用于在计算装置1202与其他处理装置1206间传输数据和控制指令。例如,计算装置1202可以经由通用互联接口1204从其他处理装置1206中获取所需的输入数据,写入计算装置1202片上的存储单元。进一步,计算装置1202可以经由通用互联接口1204从其他处理装置1206中获取控制指令,写入计算装置1202片上的控制缓存。替代地或可选地,通用互联接口1204也可以读取计算装置1202的存储模块中的数据并传输给其他处理装置1206。
集成电路装置1200还包括存储装置1208,其可以分别与计算装置1202和其他处理装置1206连接。存储装置1208用于保存计算装置1202和其他处理装置1206的数据,尤其适用于所需要运算的数据在计算装置1202或其他处理装置1206的内部存储中无法全部保存的数据。
根据应用场景的不同,集成电路装置1200可以作为手机、机器人、无人机、视频采集等设备的片上系统(SOC),从而有效地降低控制部分的核心面积,提高处理速度并降低整体的功耗。在此情况时,集成电路装置1200的通用互联接口1204与设备的某些部件相连接。此处的某些部件可以例如是摄像头,显示器,鼠标,键盘,网卡或wifi接口。
本公开还揭露一种芯片或集成电路芯片,其包括了集成电路装置1200。本公开还揭露一种芯片封装结构,其包括了上述芯片。
本公开另一个实施例是一种板卡,其包括了上述芯片封装结构。参阅图13,板卡1300除了包括多个上述芯片1302以外,还可以包括其他的配套部件,该配套部件包括存储器件1304、接口装置1306和控制器件1308。
存储器件1304与芯片封装结构内的芯片1302通过总线1314连接,用于存储数据。存储器件1304可以包括多组存储单元1310。每一组存储单元1310可以是图1的片外存储单元116。
接口装置1306与所述芯片封装结构内的芯片1302电连接。所述接口装置1306用于实现芯片1302与外部设备1312(例如服务器或计算机)之间的数据传输。在此实施例中,接口装置1306为标准PCIe接口,待处理的数据由服务器通过标准PCIe接口传递至芯片1302,实现数据转移。芯片1302的计算结果亦由接口装置1306传送回外部设备1312。
控制器件1308与芯片1302电连接,以便对芯片1302的状态进行监控。具体地,芯片1302与控制器件1308可以通过SPI接口电连接。控制器件1308可以包括单片机(“MCU”,Micro Controller Unit)。
本公开的另一个实施例是一种电子设备或装置,其包括了上述板卡1300。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开另一个实施例是一种处理图像数据的方法,该方法应用在前述的计算装置100中。图14是示出此实施例的流程图。
在步骤1402中,自片外存储单元读取C×S×N的批次数据,其中S小于M。在此实施例中,片外存储单元上待处理的图像数据大小为C×M×N,其中C等于3,对应至红色通道数据、绿色通道数据及蓝色通道数据,而M等于1080,N等于1920,每个像素为8比特。此实施例在读取这些数据时,是一次读取3个通道数行的数据,也就是读取C×S×N的数据量,其中S小于M。
在此实施例中,与前述实施例相同,每次读取3个通道中的40行(即S等于40)的数据,即批次读取3×40×1920的数据量。换言之,每次从片外存储单元读取225KB的数据进行计算。由于是自片外存储单元进行访问,因此批次数据会被存储在图2的神经元存储单元120的第一存储区202中。除了批次数据,此实施例还会读取存储在通用寄存器中计算所需的标量数据进行计算。
在此步骤中,是以列为单位再涵盖适当的行数形成批次数据进行传送。对于拥有1080行的图像数据来说,此实施例每次读取40行,意味着每个图像要读取27次才能搬运完毕。
接着执行步骤1404,对前述批次数据进行计算,以获得计算结果。在此步骤中,灰度向量、水平梯度向量、竖直梯度向量、均方根向量及二值化向量的计算流程分别如图5、图6、图8、图10及图11所示,不再赘述。
在步骤1406中,将计算结果分次发送至片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕,其中T小于C。在计算结束后,可以将前述所有的计算结果写回至片外存储单元,或只将二值化向量写回至片外存储单元。此实施例是将二值化向量写回至片外存储单元,该二值化向量为单通道图像,尺寸为1080×1920,其中每个像素为8比特。在写回时,每次是以单一通道的40行为单位批次写回,即每次写回75KB的图像数据。以此方式进行写回任务,直到计算结果发送完毕为止。
在此实施例中,片上存储单元的神经元存储单元同样被分割成如图2所示的2个存储区:第一存储区202及第二存储区204。第一存储区202的空间用来执行与片外存储单元间的数据搬运,且计算完毕后暂存计算结果并将其发送给片外存储单元。第二存储区204的空间用来支援计算,也就是存储计算过程所产生的中间数据。
通过将神经元存储单元120分割为第一存储区202及第二存储区204,在计算的同时也能访问片外存储单元,这样的安排可以使访存和计算进行流水线操作,并行处理,隐藏访存延迟,互不干扰,进一步提升总体效率。
本公开另一实施例为一种计算机可读存储介质,其上存储有处理图像数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行如图5、图6、图8、图10、图11及图14所示的方法。
本公开采用向量并行处理的方式,有效降低计算功耗和硬件资源,适合应用在移动终端上,同时基于流水线操作,提高计算效率,达到实时处理图像的需求。
依据以下条款可更好地理解前述内容:
条款A1、一种处理图像数据的方法,该图像数据包括C个通道,每个通道包括M×N的数据,存储在片外存储单元,该方法包括:自该片外存储单元读取C×S×N的批次数据,其中S小于M;对该批次数据进行计算,以获得计算结果;以及将该计算结果分次发送至该片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕,其中T小于C;其中,C、M、N、S及T为正整数。
条款A2、根据A1所述的方法,其中C等于3,该批次数据包括红色通道数据、绿色通道数据及蓝色通道数据,每色通道数据具有S×N的数据量。
条款A3、根据A2所述的方法,还包括:自该片外存储单元读取第一标量、第二标量及第三标量,分别对应至每个通道;其中,该计算步骤基于该第一标量、该第二标量及该第三标量进行灰度化计算,该计算结果为灰度向量。
条款A4、根据A3所述的方法,其中该计算步骤包括:将该红色通道数据与该第一标量相乘,以获得A向量;将该绿色通道数据与该第二标量相乘,以获得B向量;将该蓝色通道数据与该第三标量相乘,以获得C向量;将该A向量与该B向量相加,以获得D向量;以及将该C向量与该D向量相加,以获得该灰度向量。
条款A5、根据A2所述的方法,其中该计算步骤进行水平梯度计算,该计算结果为水平梯度向量。
条款A6、根据A5所述的方法,其中该计算步骤包括:自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取相邻的E向量、F向量及G向量,该些向量具有N个元素;将该E向量与该F向量相加,以获得H向量;将该G向量与该H向量相加,以获得I向量;将该I向量平移2个元素,以形成J向量;以及将该I向量减去该J向量,以获得该水平梯度向量。
条款A7、根据A2所述的方法,其中该计算步骤进行竖直梯度计算,该计算结果为竖直梯度向量。
条款A8、根据A7所述的方法,其中该计算步骤包括:自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取间隔一行的K向量及L向量,该些向量具有N个元素;将该K向量平移1个元素,以形成M向量;将该L向量平移1个元素,以形成N向量;将该M向量平移1个元素,以形成O向量;将该N向量平移1个元素,以形成P向量;将该K向量与该M向量相加,以获得Q向量;将该L向量与该N向量相加,以获得R向量;将该O向量与该Q向量相加,以获得S向量;将该P向量与该R向量相加,以获得T向量;以及将该S向量减去T向量,以获得该竖直梯度向量。
条款A9、根据A1所述的方法,其中该计算步骤进行均方根计算,该计算结果为均方根向量。
条款A10、根据A9所述的方法,其中该计算步骤包括:根据该批次数据,计算水平梯度向量;根据该批次数据,计算竖直梯度向量;将该水平梯度向量与该水平梯度向量做点积,以获得U向量;将该竖直梯度向量与该竖直梯度向量做点积,以获得V向量;将该U向量与该V向量相加,以获得W向量;以及对该W向量取均方根,以获得该均方根向量。
条款A11、根据A1所述的方法,其中该计算步骤进行二值化计算,该计算结果为二值化向量。
条款A12、根据A11所述的方法,其中该计算步骤包括:根据该批次数据,计算均方根向量;接收阈值常数标量;产生阈值常数向量,该阈值常数向量的数据量与该均方根向量的数据量相同,该阈值常数向量的每个元素数值均为该阈值常数标量;判断该均方根向量的每个元素是否大于该阈值常数向量相对应元素,以获得X向量;产生标量峰值向量,该标量峰值向量的数据量与该均方根向量的数据量相同,该标量峰值向量的每个元素数值均为标量峰值;以及将该X向量的元素与该标量峰值向量的相对应元素进行元素乘法运算,以获得该二值化向量。
条款A13、根据A1所述的方法,还包括:将片上存储单元分为第一存储区及第二存储区;存储该批次数据及该计算结果至该第一存储区;以及存储该计算步骤所产生的中间数据至该第二存储区;其中,该计算步骤与该读取步骤或发送步骤同步。
条款A14、一种计算机可读存储介质,其上存储有处理图像数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行条款A1-13的任意一项所述的方法。
条款A15、一种计算装置,与片外存储单元相连接,该片外存储单元存储有图像数据及标量数据,该图像数据包括C个通道,每个通道包括M×N的数据,该计算装置包括:片上存储单元,用以存储该图像数据中的C×S×N的批次数据;通用寄存器,用以存储该标量数据;以及功能模块,用以读取该片上存储单元中的该批次数据及该通用寄存器中的该标量数据进行计算,并将计算结果分次发送至该片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕;其中,S小于M,T小于C,且C、M、N、S及T为正整数。
条款A16、根据A15所述的计算装置,其中C等于3,该批次数据包括红色通道数据、绿色通道数据及蓝色通道数据,每色通道数据具有S×N的数据量。
条款A17、根据A16所述的计算装置,其中该标量数据包括第一标量、第二标量及第三标量,分别对应至每个通道,该功能模块执行:将该红色通道数据与该第一标量相乘,以获得A向量;将该绿色通道数据与该第二标量相乘,以获得B向量;将该蓝色通道数据与该第三标量相乘,以获得C向量;将该A向量与该B向量相加,以获得D向量;以及将该C向量与该D向量相加,以获得灰度向量;其中,该灰度向量为该计算结果。
条款A18、根据A16所述的计算装置,其中该功能模块执行:自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取相邻的E向量、F向量及G向量,该些向量具有N个元素;将该E向量与该F向量相加,以获得H向量;将该G向量与该H向量相加,以获得I向量;将该I向量平移2个元素,以形成J向量;以及将该I向量减去该J向量,以获得水平梯度向量;其中,该水平梯度向量为该计算结果。
条款A19、根据A16所述的计算装置,其中该功能模块执行:自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取间隔一行的K向量及L向量,该些向量具有N个元素;将该K向量平移1个元素,以形成M向量;将该L向量平移1个元素,以形成N向量;将该M向量平移1个元素,以形成O向量;将该N向量平移1个元素,以形成P向量;将该K向量与该M向量相加,以获得Q向量;将该L向量与该N向量相加,以获得R向量;将该O向量与该Q向量相加,以获得S向量;将该P向量与该R向量相加,以获得T向量;以及将该S向量减去T向量,以获得竖直梯度向量;其中,该竖直梯度向量为该计算结果。
条款A20、根据A15所述的计算装置,其中该功能模块执行:根据该批次数据,计算水平梯度向量;根据该批次数据,计算竖直梯度向量;将该水平梯度向量与该水平梯度向量做点积,以获得U向量;将该竖直梯度向量与该竖直梯度向量做点积,以获得V向量;将该U向量与该V向量相加,以获得W向量;以及对该W向量取均方根,以获得均方根向量;其中,该均方根向量为该计算结果。
条款A21、根据A15所述的计算装置,其中该标量数据包括阈值常数标量及标量峰值,该功能模块执行:根据该批次数据,计算均方根向量;根据该阈值常数标量,产生阈值常数向量,该阈值常数向量的数据量与该均方根向量的数据量相同,该阈值常数向量的每个元素数值均为该阈值常数标量;判断该均方根向量的每个元素是否大于该阈值常数向量相对应元素,以获得X向量;如是,则该X向量的相对应元素设定为1;如否,则该X向量的相对应元素设定为0;根据该标量峰值,产生标量峰值向量,该标量峰值向量的数据量与该均方根向量的数据量相同,该标量峰值向量的每个元素数值均为该标量峰值;以及将该X向量的元素与该标量峰值向量的相对应元素进行元素乘法运算,以获得该二值化向量;其中,该二值化向量为该计算结果。
条款A22、根据A15所述的计算装置,其中该片上存储单元包括:第一存储区,用以存储该批次数据及该计算结果;以及第二存储区,用以存储该功能模块所产生的中间数据;其中,该功能模块计算的同时,访问该片外存储单元。
条款A23、一种集成电路装置,包括根据A15-22的任意一项所述的计算装置。
条款A24、一种板卡,包括根据A23所述的集成电路装置。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。
Claims (24)
1.一种处理图像数据的方法,该图像数据包括C个通道,每个通道包括M×N的数据,存储在片外存储单元,该方法包括:
自该片外存储单元读取C×S×N的批次数据,其中S小于M;
对该批次数据进行计算,以获得计算结果;以及
将该计算结果分次发送至该片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕,其中T小于C;
其中,C、M、N、S及T为正整数。
2.根据权利要求1所述的方法,其中C等于3,该批次数据包括红色通道数据、绿色通道数据及蓝色通道数据,每色通道数据具有S×N的数据量。
3.根据权利要求2所述的方法,还包括:自该片外存储单元读取第一标量、第二标量及第三标量,分别对应至每个通道;
其中,该计算步骤基于该第一标量、该第二标量及该第三标量进行灰度化计算,该计算结果为灰度向量。
4.根据权利要求3所述的方法,其中该计算步骤包括:
将该红色通道数据与该第一标量相乘,以获得A向量;
将该绿色通道数据与该第二标量相乘,以获得B向量;
将该蓝色通道数据与该第三标量相乘,以获得C向量;
将该A向量与该B向量相加,以获得D向量;以及
将该C向量与该D向量相加,以获得该灰度向量。
5.根据权利要求2所述的方法,其中该计算步骤进行水平梯度计算,该计算结果为水平梯度向量。
6.根据权利要求5所述的方法,其中该计算步骤包括:
自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取相邻的E向量、F向量及G向量,该些向量具有N个元素;
将该E向量与该F向量相加,以获得H向量;
将该G向量与该H向量相加,以获得I向量;
将该I向量平移2个元素,以形成J向量;以及
将该I向量减去该J向量,以获得该水平梯度向量。
7.根据权利要求2所述的方法,其中该计算步骤进行竖直梯度计算,该计算结果为竖直梯度向量。
8.根据权利要求7所述的方法,其中该计算步骤包括:
自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取间隔一行的K向量及L向量,该些向量具有N个元素;
将该K向量平移1个元素,以形成M向量;
将该M向量平移1个元素,以形成O向量;
将该L向量平移1个元素,以形成N向量;
将该N向量平移1个元素,以形成P向量;
将该K向量与该M向量相加,以获得Q向量;
将该L向量与该N向量相加,以获得R向量;
将该O向量与该Q向量相加,以获得S向量;
将该P向量与该R向量相加,以获得T向量;以及
将该S向量减去T向量,以获得该竖直梯度向量。
9.根据权利要求1所述的方法,其中该计算步骤进行均方根计算,该计算结果为均方根向量。
10.根据权利要求9所述的方法,其中该计算步骤包括:
根据该批次数据,计算水平梯度向量;
根据该批次数据,计算竖直梯度向量;
将该水平梯度向量与该水平梯度向量做点积,以获得U向量;
将该竖直梯度向量与该竖直梯度向量做点积,以获得V向量;
将该U向量与该V向量相加,以获得W向量;以及
对该W向量取均方根,以获得该均方根向量。
11.根据权利要求1所述的方法,其中该计算步骤进行二值化计算,该计算结果为二值化向量。
12.根据权利要求11所述的方法,其中该计算步骤包括:
根据该批次数据,计算均方根向量;
接收阈值常数标量;
产生阈值常数向量,该阈值常数向量的数据量与该均方根向量的数据量相同,该阈值常数向量的每个元素数值均为该阈值常数标量;
判断该均方根向量的每个元素是否大于该阈值常数向量相对应元素,以获得X向量;
产生标量峰值向量,该标量峰值向量的数据量与该均方根向量的数据量相同,该标量峰值向量的每个元素数值均为标量峰值;以及
将该X向量的元素与该标量峰值向量的相对应元素进行元素乘法运算,以获得该二值化向量。
13.根据权利要求1所述的方法,还包括:
将片上存储单元分为第一存储区及第二存储区;
存储该批次数据及该计算结果至该第一存储区;以及
存储该计算步骤所产生的中间数据至该第二存储区;
其中,该计算步骤与该读取步骤或发送步骤同时执行。
14.一种计算机可读存储介质,其上存储有处理图像数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行权利要求1-13的任意一项所述的方法。
15.一种计算装置,与片外存储单元相连接,该片外存储单元存储有图像数据及标量数据,该图像数据包括C个通道,每个通道包括M×N的数据,该计算装置包括:
片上存储单元,用以存储该图像数据中的C×S×N的批次数据;
通用寄存器,用以存储该标量数据;以及
功能模块,用以读取该片上存储单元中的该批次数据及该通用寄存器中的该标量数据进行计算,并将计算结果分次发送至该片外存储单元,每次发送T×S×N的数据量,直到该计算结果发送完毕;
其中,S小于M,T小于C,且C、M、N、S及T为正整数。
16.根据权利要求15所述的计算装置,其中C等于3,该批次数据包括红色通道数据、绿色通道数据及蓝色通道数据,每色通道数据具有S×N的数据量。
17.根据权利要求16所述的计算装置,其中该标量数据包括第一标量、第二标量及第三标量,分别对应至每个通道,该功能模块执行:
将该红色通道数据与该第一标量相乘,以获得A向量;
将该绿色通道数据与该第二标量相乘,以获得B向量;
将该蓝色通道数据与该第三标量相乘,以获得C向量;
将该A向量与该B向量相加,以获得D向量;以及
将该C向量与该D向量相加,以获得灰度向量;
其中,该灰度向量为该计算结果。
18.根据权利要求16所述的计算装置,其中该功能模块执行:
自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取相邻的E向量、F向量及G向量,该些向量具有N个元素;
将该E向量与该F向量相加,以获得H向量;
将该G向量与该H向量相加,以获得I向量;
将该I向量平移2个元素,以形成J向量;以及
将该I向量减去该J向量,以获得水平梯度向量;
其中,该水平梯度向量为该计算结果。
19.根据权利要求16所述的计算装置,其中该功能模块执行:
自该红色通道数据、该绿色通道数据及该蓝色通道数据其中之一读取间隔一行的K向量及L向量,该些向量具有N个元素;
将该K向量平移1个元素,以形成M向量;
将该M向量平移1个元素,以形成O向量;
将该L向量平移1个元素,以形成N向量;
将该N向量平移1个元素,以形成P向量;
将该K向量与该M向量相加,以获得Q向量;
将该L向量与该N向量相加,以获得R向量;
将该O向量与该Q向量相加,以获得S向量;
将该P向量与该R向量相加,以获得T向量;以及
将该S向量减去T向量,以获得竖直梯度向量;
其中,该竖直梯度向量为该计算结果。
20.根据权利要求15所述的计算装置,其中该功能模块执行:
根据该批次数据,计算水平梯度向量;
根据该批次数据,计算竖直梯度向量;
将该水平梯度向量与该水平梯度向量做点积,以获得U向量;
将该竖直梯度向量与该竖直梯度向量做点积,以获得V向量;
将该U向量与该V向量相加,以获得W向量;以及
对该W向量取均方根,以获得均方根向量;
其中,该均方根向量为该计算结果。
21.根据权利要求15所述的计算装置,其中该标量数据包括阈值常数标量及标量峰值,该功能模块执行:
根据该批次数据,计算均方根向量;
根据该阈值常数标量,产生阈值常数向量,该阈值常数向量的数据量与该均方根向量的数据量相同,该阈值常数向量的每个元素数值均为该阈值常数标量;
判断该均方根向量的每个元素是否大于该阈值常数向量相对应元素,以获得X向量;如是,则该X向量的相对应元素设定为1;如否,则该X向量的相对应元素设定为0;
根据该标量峰值,产生标量峰值向量,该标量峰值向量的数据量与该均方根向量的数据量相同,该标量峰值向量的每个元素数值均为该标量峰值;以及
将该X向量的元素与该标量峰值向量的相对应元素进行元素乘法运算,以获得该二值化向量;
其中,该二值化向量为该计算结果。
22.根据权利要求15所述的计算装置,其中该片上存储单元包括:
第一存储区,用以存储该批次数据及该计算结果;以及
第二存储区,用以存储该功能模块所产生的中间数据;
其中,该功能模块计算的同时,访问该片外存储单元。
23.一种集成电路装置,包括根据权利要求15-22的任意一项所述的计算装置。
24.一种板卡,包括根据权利要求23所述的集成电路装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622290.9A CN111784557A (zh) | 2020-06-30 | 2020-06-30 | 一种处理图像数据的方法、装置、板卡及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622290.9A CN111784557A (zh) | 2020-06-30 | 2020-06-30 | 一种处理图像数据的方法、装置、板卡及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111784557A true CN111784557A (zh) | 2020-10-16 |
Family
ID=72760557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010622290.9A Pending CN111784557A (zh) | 2020-06-30 | 2020-06-30 | 一种处理图像数据的方法、装置、板卡及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111784557A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799726A (zh) * | 2021-01-26 | 2021-05-14 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888554A (zh) * | 2010-07-09 | 2010-11-17 | 西安交通大学 | 并行流水运动补偿滤波器vlsi结构设计方法 |
CN103716511A (zh) * | 2014-01-22 | 2014-04-09 | 天津天地伟业数码科技有限公司 | 基于Prewitt算子的图像锐化系统及图像锐化方法 |
CN103955446A (zh) * | 2014-04-28 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的可变长度fft计算方法 |
CN104268872A (zh) * | 2014-09-25 | 2015-01-07 | 北京航空航天大学 | 基于一致性的边缘检测方法 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
CN109344116A (zh) * | 2018-09-21 | 2019-02-15 | 福州大学 | Prewitt算子的NEON加速引擎器 |
EP3611697A1 (en) * | 2018-08-17 | 2020-02-19 | Rolls-Royce plc | Method of detecting rotor blade damage |
CN111028136A (zh) * | 2019-12-24 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 一种人工智能处理器处理二维复数矩阵的方法和设备 |
-
2020
- 2020-06-30 CN CN202010622290.9A patent/CN111784557A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888554A (zh) * | 2010-07-09 | 2010-11-17 | 西安交通大学 | 并行流水运动补偿滤波器vlsi结构设计方法 |
CN103716511A (zh) * | 2014-01-22 | 2014-04-09 | 天津天地伟业数码科技有限公司 | 基于Prewitt算子的图像锐化系统及图像锐化方法 |
CN103955446A (zh) * | 2014-04-28 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的可变长度fft计算方法 |
CN104268872A (zh) * | 2014-09-25 | 2015-01-07 | 北京航空航天大学 | 基于一致性的边缘检测方法 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
EP3611697A1 (en) * | 2018-08-17 | 2020-02-19 | Rolls-Royce plc | Method of detecting rotor blade damage |
CN109344116A (zh) * | 2018-09-21 | 2019-02-15 | 福州大学 | Prewitt算子的NEON加速引擎器 |
CN111028136A (zh) * | 2019-12-24 | 2020-04-17 | 上海寒武纪信息科技有限公司 | 一种人工智能处理器处理二维复数矩阵的方法和设备 |
Non-Patent Citations (2)
Title |
---|
CSDN博客: "从外部存储器获取并绘制流位图", 《HTTPS://BLOG.CSDN.NET/WUYUZUN/ARTICLE/DETAILS/100174267》 * |
曹建锋: "基于FPGA的图像视觉检测系统的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799726A (zh) * | 2021-01-26 | 2021-05-14 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
WO2022161318A1 (zh) * | 2021-01-26 | 2022-08-04 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
CN112799726B (zh) * | 2021-01-26 | 2024-01-30 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032669B (zh) | 神经网络处理装置及其执行向量最小值指令的方法 | |
Possa et al. | A multi-resolution FPGA-based architecture for real-time edge and corner detection | |
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
CN108898086B (zh) | 视频图像处理方法及装置、计算机可读介质和电子设备 | |
CN109284823B (zh) | 一种运算装置及相关产品 | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN111223128A (zh) | 目标跟踪方法、装置、设备及存储介质 | |
Shiau et al. | A low-cost hardware architecture for illumination adjustment in real-time applications | |
US20200242455A1 (en) | Neural network computation device and method | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN108629410B (zh) | 基于主成分分析降维和/或升维的神经网络处理方法 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN111784557A (zh) | 一种处理图像数据的方法、装置、板卡及可读存储介质 | |
CN111199276B (zh) | 数据处理方法及相关产品 | |
CN112084023A (zh) | 数据并行处理的方法、电子设备及计算机可读存储介质 | |
CN111860814B (zh) | 一种用于执行batch normalization运算的装置和方法 | |
CN109711367B (zh) | 运算方法、装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN110663046A (zh) | 用于方向梯度直方图计算的硬件加速器 | |
CN116797464A (zh) | 计算方法、装置、计算机设备和存储介质 | |
CN115455798A (zh) | 校正坏点的装置、板卡、方法及可读存储介质 | |
CN108629409B (zh) | 一种基于主成分分析减少io开销的神经网络处理系统 | |
CN113867800A (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
WO2019082283A1 (ja) | 画像解析装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201016 |
|
RJ01 | Rejection of invention patent application after publication |