CN110689475A - 一种图像数据处理方法、系统、电子设备及存储介质 - Google Patents
一种图像数据处理方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110689475A CN110689475A CN201910853884.8A CN201910853884A CN110689475A CN 110689475 A CN110689475 A CN 110689475A CN 201910853884 A CN201910853884 A CN 201910853884A CN 110689475 A CN110689475 A CN 110689475A
- Authority
- CN
- China
- Prior art keywords
- image data
- fpga
- data processing
- processed
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000011176 pooling Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 74
- 238000012549 training Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 43
- 238000004364 calculation method Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 23
- 238000013527 convolutional neural network Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种图像数据处理方法,所述图像数据处理方法包括从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。本申请能够提高最大池化操作的处理效率。本申请还公开了一种图像数据处理系统、一种存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及深度学习技术领域,特别涉及一种图像数据处理方法、系统、一种存储介质及一种电子设备。
背景技术
深度学习作为机器学习的一个分支,是人工智能(AI)中发展迅速的领域之一,可帮助计算机理解大量图像、声音和文本形式的数据。目前,深度学习在人脸识别、语音识别、精准医疗以及无人驾驶等领域正被广泛的应用。卷积神经网络(Convolutional NeutralNetwork,CNN)是人工神经网络的一种,是第一个真正成功训练多层网络结构的深度学习算法。开发人员使用计算密集型算法创建CNN,并在各种平台上对其进行实施。由于CNN使用多层神经元相连处理数据,能模仿生物视觉神经的行为获得很高识别准确率,已成为当前语音分析和图像识别领域的研究热点。
相关技术中的CNN网络训练过程是基于CPU+GPU集群的传统分布式异构计算架构实现的,由于其存在能耗过高、扩展性较差、计算资源利用不足等问题。卷积神经网络中,在卷积层的后面设置有最大池化层,最大池化层的作用为降低卷积层输出的特征向量的维度和减少过拟合现象。但是,上述相关技术中基于CPU+GPU计算架构池化操作的图像处理效率较低。
因此,如何提高最大池化操作的处理效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种图像数据处理方法、系统、一种存储介质及一种电子设备,能够提高最大池化操作的处理效率。
为解决上述技术问题,本申请提供一种图像数据处理方法,该图像数据处理方法包括:
从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;
按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
可选的,控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果包括:
控制所述FPGA将每一所述区域数据中的最大值设置为第一中间结果;
控制所述FPGA将每一所述第一中间结果的梯度传递至所述区域数据的目标像素,将所述区域数据的其他像素的梯度设置为0得到第二中间结果,并对所有所述第二中间结果进行累加合并得到所述图像数据处理结果。
可选的,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之前,还包括:
设置所述FPGA的最大并行数VEC。
可选的,所述从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存包括:
查询数据读取位置,并根据所述数据读取位置从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存。
可选的,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之后,还包括:
更新所述数据读取位置,以便对更新后的数据读取位置对应的待处理图像数据执行最大池化操作。
可选的,还包括:
将所有所述待处理图像数据按照地址连续的方式写入所述全局内存。
可选的,还包括:
当所述全局内存中的待处理图像数据全部处理完成时,从所述全局内存读取所有所述图像数据处理结果,并根据所有所述图像数据处理结果输出最大池化操作结果;
根据所述最大池化操作结果训练图像识别模型,以便利用所述图像识别模型执行图像识别操作。
本申请还提供了一种图像数据处理系统,该图像数据处理系统包括:
数据加载模块,用于从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;
数据划分模块,用于按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
池化操作模块,用于控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述图像数据处理方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述图像数据处理方法执行的步骤。
本申请提供了一种图像数据处理方法,包括从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
本申请首先从全局内存中加载预设数量行的待处理图像数据至本地内存,相当于以分块的方式进行预取数据,按照池化层窗口尺寸将待处理图像数据划分为多个区域数据,利用FPGA对所有区域数据并行处理,能够使FPGA以池化层窗口尺寸为单元循环展开并行计算。在得到所有区域数据的图像数据处理结果。由于本申请通过采用OpenCL标准的FPGA对本地内存中的区域数据进行并行处理,能够解决最大池化层操作面临的数据读取地址不连续、访存延迟较大的问题,可以提高池化层的图像处理效率。本申请同时还提供了一种图像数据处理系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种图像数据处理方法的流程图;
图2为Maxpool操作的前向传播和反向传播算法实现原理示意图;
图3为本申请实施例所提供的基于OpenCL并行描述的Maxpool前向传播计算的数据处理和计算实现方式示意图;
图4为本申请实施例所提供的基于OpenCL并行描述的Maxpool反向传播计算的数据处理和计算实现方式示意图;
图5为本申请实施例所提供的一种图像数据处理系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种图像数据处理方法的流程图。
具体步骤可以包括:
S101:从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;
其中,本实施例可以应用于异构加速架构的主机端CPU(central processingunit,中央处理器),该异构加速架构还可以包括写处理异构加速器件FPGA(Field-Programmable Gate Array,现场可编程门阵列)。本实施例中提到的FPGA可以为采用OpenCL(Open Computing Language,开放运算语言)标准的FPGA。
可以理解的是,本步骤的目的是从全局内存中加载待处理图像数据至本地内存,以便进行计算操作。在本步骤之前可以存在接收图像处理指令的操作,图像处理指令可以包括前向传播计算指令和反向传播计算指令。前向传播计算指令即基于前向传播算法的计算指令,可以把一个区域中最大的值传递给后一层,而其他像素的值直接被舍弃掉;反向传播计算指令即基于反向传播算法的计算指令,可以把梯度直接传给区域中前一层某一个像素,而其他像素不接受梯度,值设置为0。
本实施例可以预先设置并向参数VEC1,以便每次读取VEC1*width的数据至本地内存,width为最大池化层操作计算的通道宽度。例如,目标图片经过卷积网络最大池化层前面的卷积等操作后,需要进行最大池化层操作计算的一个通道的尺寸为height*width,首先将全部输入数据由CPU控制写入FPGA全局内存DDR中,然后根据设置的并行参数VEC1,每次读取VEC1*width的数据到FPGA本地内存中进行图像处理操作,当前获取的待处理数据经图像处理完成后可以从全局内存中获取新的待处理图像数据,依次类推直至全局内存中所有的待处理图像数据均被处理完成。
S102:按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
其中,本步骤将待处理图像数据划分为多个区域数据,以便基于FPGA并行处理的特性对所有的区域数据进行并行计算。池化层窗口尺寸可以为在执行S102之前确定的预设值。通过S102的数据划分操作得到的区域数据尺寸等于池化层窗口尺寸。
S103:控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;
其中,本步骤建立在已经在本地内存中得到多个区域数据的基础上,可以利用FPGA对所有所述区域数据执行最大池化操作得到图像数据处理结果。具体的,由于每个区域数据的计算是相互独立的,因此本实施例可以采用循环展开方式全部并行实现,即保证一次循环可以完成所有区域数据的计算过程,并将计算结果暂存在FPGA本地内存中,在完成所有区域数据的处理后,可以将本地内存中的处理写入FPGA全局内存中,再对下一批待处理图像数据执行最大池化操作。本步骤可以应用于最大池化层中,最大池化层的作用为降低卷积层输出的特征向量的维度和减少过拟合现象,还可以减小图片的噪声。
作为一种可行的实施方式,S103的最大池化操作可以为先对区域数据执行前向传播操作再执行反向传播操作,具体过程可以为:控制所述FPGA将每一所述区域数据中的最大值设置为第一中间结果;控制所述FPGA将每一所述第一中间结果的梯度传递至所述区域数据的目标像素,将所述区域数据的其他像素的梯度设置为0得到第二中间结果,并对所有所述第二中间结果进行累加合并得到所述图像数据处理结果。
在S103执行的过程中,每得到一个区域数据的处理结果后都可以将处理结果存储至本地内存中,在得到所有区域数据的处理结果之后,本实施例可以根据区域信息对应的地址信息将所有处理结果存储至全局内存中。
本实施例首先从全局内存中加载预设数量行的待处理图像数据至本地内存,相当于以分块的方式进行预取数据,按照池化层窗口尺寸将待处理图像数据划分为多个区域数据,利用FPGA对所有区域数据并行处理,能够使FPGA以池化层窗口尺寸为单元循环展开并行计算。在得到所有区域数据的图像数据处理结果。由于本实施例通过采用OpenCL标准的FPGA对本地内存中的区域数据进行并行处理,能够解决最大池化层操作面临的数据读取地址不连续、访存延迟较大的问题,可以提高池化层的图像处理效率。
作为对于图1对应实施例的进一步补充,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之前,还可以设置所述FPGA的最大并行数VEC。
作为对于图1对应实施例的进一步补充,S101中所述从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存包括:查询数据读取位置,并根据所述数据读取位置从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存。相应的,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之后,还可以更新所述数据读取位置,以便对更新后的数据读取位置对应的待处理图像数据执行最大池化操作。
当所述全局内存中的待处理图像数据全部处理完成时,从所述全局内存读取所有所述图像数据处理结果,并根据所有所述图像数据处理结果输出最大池化操作结果;根据所述最大池化操作结果训练图像识别模型,以便利用所述图像识别模型执行图像识别操作。
本申请实施例还提供了另一种图像数据处理方法,具体步骤可以包括:
步骤1:查询数据读取位置,并根据所述数据读取位置从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存。
步骤2:按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
步骤3:控制所述FPGA将每一所述区域数据中的最大值设置为第一中间结果;
步骤4:控制所述FPGA将每一所述第一中间结果的梯度传递至所述区域数据的目标像素,将所述区域数据的其他像素的梯度设置为0得到第二中间结果,并对所有所述第二中间结果进行累加合并得到所述图像数据处理结果。
步骤5:将所有所述待处理图像数据按照地址连续的方式写入所述全局内存。
步骤6:当所述全局内存中的待处理图像数据未全部处理完成时,更新所述数据读取位置,进入步骤1以便对更新后的数据读取位置对应的待处理图像数据执行最大池化操作。
步骤7:当所述全局内存中的待处理图像数据全部处理完成时,从所述全局内存读取所有所述图像数据处理结果,并根据所有所述图像数据处理结果输出最大池化操作结果;
步骤8:根据所述最大池化操作结果训练图像识别模型,以便利用所述图像识别模型执行图像识别操作。
下面通过实际应用中的实施例说明上述图像数据处理过程的具体实施方式。请参见图2,图2为Maxpool操作的前向传播和反向传播算法实现原理示意图。TensorFlow源码中maxpool的实现基于第三方Eigen库和cudnn库实现,前向计算是把一个区域中最大的值传递给后一层,而其他像素的值直接被舍弃掉;反向计算把梯度直接传给区域中前一层某一个像素,而其他像素不接受梯度,值为0。本实施例基于图2所示实现原理,脱离第三库实现方式,利用OpenCL并行描述Maxpool操作(最大池化操作)的两向计算过程,并将其注册为FPGA设备,实现FPGA对maxpool操作的并行异构加速。基于OpenCL并行描述的Maxpool使用CPU作为主机端运行主程序,FPGA作为协处理异构加速器件,主机端主要负责参与Maxpool操作计算的特征向量输入数据、窗口尺寸以及步长等其他参数与FPGA进行交互时的读写控制,FPGA加速器主要负责完成前向和反向计算过程。
请参见图3和图4,图3为本申请实施例所提供的基于OpenCL并行描述的Maxpool前向传播计算的数据处理和计算实现方式示意图,图4为本申请实施例所提供的基于OpenCL并行描述的Maxpool反向传播计算的数据处理和计算实现方式示意图,图3和图4中offset为当前和数据读取位置,Width为数据宽度,height为数据高度,Strides为步长。具体实施过程方案如下:
假设图片经过卷积网络Maxpool前面的卷积等操作后,需要进行Maxpool操作计算的一个通道的尺寸为height*width,首先将全部输入数据由CPU控制写入FPGA全局内存DDR中,然后根据设置的并行参数VEC1,每次读取VEC1*width的数据到FPGA本地内存中,在进行具体计算时,设置区域并行参数VEC,每个区域的数据计算是相互独立的,因此可以用循环展开方式,全部并行实现,保证一个cycle可以完成VEC个区域的计算过程,并将计算结果暂存在FPGA本地内存中;最后,在完成VEC1*width全部数据的处理后,将本地内存中的计算结果写入FPGA全局内存中,再进行下一批次数据运算。
前向传播和反向传播计算过程实现时可以包括以下几个步骤:
步骤1:宏定义并行参数VEC1和区域并行参数VEC;
步骤2:加载VEC1*width到本地内存中;
步骤3:对本地内存中的数据按区域进行分块处理;
步骤4:循环展开,全并行实现各区域数据的计算过程,并在本地内存暂存计算结果。对于前向传播,计算过程为遍历区域内数据,并对比选出最大值,作为输出结果;对于反向传播,计算过程为遍历区域数据,依次与梯度值进行对比,如果相等则对应位置数据与梯度值相加,否则该位置值为0。
步骤5:处理计算过程产生的计算结果。对于前向传播,将步骤4产生的计算结果依次写入到全局内存中;对于反向传播,需要将步骤4产生的中间计算结果在本地内存中,对应位置的数据进行累加合并,合并后的结果写入全局内存中。
步骤6:更新读取数据位置,循环执行步骤1至5直到所有数据处理完毕。
步骤7:CPU端从FPGA全局内存中读取计算结果,最为最后输出。
本实施例提供了一种实现Maxpool操作FPGA异构加速的OpenCL并行优化的设计方法。该方法针对TensorFlow中Maxpool操作的源码,实现Maxpool操作前向传播和反向传播过程的OpenCL语言并行化描述设计。在执行网络训练过程时,指定Maxpool在FPGA设备上运行,可以实现神经网络训练过程中,FPGA对Maxpool操作的异构加速,提供Maxpool操作的计算性能和能效比。
请参见图5,图5为本申请实施例所提供的一种图像数据处理系统的结构示意图;
该系统可以包括:
数据加载模块100,用于从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;
数据划分模块200,用于按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
池化操作模块300,用于控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
本实施例首先从全局内存中加载预设数量行的待处理图像数据至本地内存,相当于以分块的方式进行预取数据,按照池化层窗口尺寸将待处理图像数据划分为多个区域数据,利用FPGA对所有区域数据并行处理,能够使FPGA以池化层窗口尺寸为单元循环展开并行计算。在得到所有区域数据的图像数据处理结果。由于本实施例通过采用OpenCL标准的FPGA对本地内存中的区域数据进行并行处理,能够解决最大池化层操作面临的数据读取地址不连续、访存延迟较大的问题,可以提高池化层的图像处理效率。
进一步的,池化操作模块300包括
前向传播模块,用于控制所述FPGA将每一所述区域数据中的最大值设置为第一中间结果;
反向传播模块,用于控制所述FPGA将每一所述第一中间结果的梯度传递至所述区域数据的目标像素,将所述区域数据的其他像素的梯度设置为0得到第二中间结果,并对所有所述第二中间结果进行累加合并得到所述图像数据处理结果。
进一步的,还包括:
参数设置模块,用于在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之前,设置所述FPGA的最大并行数VEC。
进一步的,所述数据加载模块100具体为用于查询数据读取位置,并根据所述数据读取位置从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存的模块。
进一步的,还包括:
读取位置更新模块,用于在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之后,更新所述数据读取位置,以便对更新后的数据读取位置对应的待处理图像数据执行最大池化操作。
进一步的,还包括:
数据写入模块,用于将所有所述待处理图像数据按照地址连续的方式写入所述全局内存。
进一步的,还包括:
数据读取模块,用于当所述全局内存中的待处理图像数据全部处理完成时,从所述全局内存读取所有所述图像数据处理结果,并根据所有所述图像数据处理结果输出最大池化操作结果;
模型训练模块,用于根据所述最大池化操作结果训练图像识别模型,以便利用所述图像识别模型执行图像识别操作。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种图像数据处理方法,其特征在于,包括:
从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;
按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
2.根据权利要求1所述图像数据处理方法,其特征在于,控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果包括:
控制所述FPGA将每一所述区域数据中的最大值设置为第一中间结果;
控制所述FPGA将每一所述第一中间结果的梯度传递至所述区域数据的目标像素,将所述区域数据的其他像素的梯度设置为0得到第二中间结果,并对所有所述第二中间结果进行累加合并得到所述图像数据处理结果。
3.根据权利要求1所述图像数据处理方法,其特征在于,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之前,还包括:
设置所述FPGA的最大并行数VEC。
4.根据权利要求1所述图像数据处理方法,其特征在于,所述从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存包括:
查询数据读取位置,并根据所述数据读取位置从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存。
5.根据权利要求4所述图像数据处理方法,其特征在于,在控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果之后,还包括:
更新所述数据读取位置,以便对更新后的数据读取位置对应的待处理图像数据执行最大池化操作。
6.根据权利要求1所述图像数据处理方法,其特征在于,还包括:
将所有所述待处理图像数据按照地址连续的方式写入所述全局内存。
7.根据权利要求1至6任一项所述图像数据处理方法,其特征在于,还包括:
当所述全局内存中的待处理图像数据全部处理完成时,从所述全局内存读取所有所述图像数据处理结果,并根据所有所述图像数据处理结果输出最大池化操作结果;
根据所述最大池化操作结果训练图像识别模型,以便利用所述图像识别模型执行图像识别操作。
8.一种图像数据处理系统,其特征在于,包括:
数据加载模块,用于从FPGA的全局内存中加载预设数量行的待处理图像数据至本地内存;其中,所述FPGA为采用OpenCL标准的芯片;
数据划分模块,用于按照池化层窗口尺寸将所述待处理图像数据划分为多个区域数据;
池化操作模块,用于控制所述FPGA对所有所述区域数据并行执行最大池化操作得到图像数据处理结果;其中,所述最大池化操作包括前向传播操作和反向传播操作。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述图像数据处理方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述图像数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853884.8A CN110689475A (zh) | 2019-09-10 | 2019-09-10 | 一种图像数据处理方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910853884.8A CN110689475A (zh) | 2019-09-10 | 2019-09-10 | 一种图像数据处理方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110689475A true CN110689475A (zh) | 2020-01-14 |
Family
ID=69108831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910853884.8A Pending CN110689475A (zh) | 2019-09-10 | 2019-09-10 | 一种图像数据处理方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689475A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815502A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 基于WebP压缩算法的多图处理的FPGA加速方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092676A (zh) * | 2017-04-18 | 2017-08-25 | 广东浪潮大数据研究有限公司 | 一种数据处理方法及装置 |
CN107506773A (zh) * | 2017-09-25 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种特征提取方法、装置及系统 |
CN109325494A (zh) * | 2018-08-27 | 2019-02-12 | 腾讯科技(深圳)有限公司 | 图片处理方法、任务数据处理方法和装置 |
CN109618165A (zh) * | 2019-01-07 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种图像解码方法、系统及主机和图像处理系统 |
WO2019136760A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 图像语义分割方法、可编程逻辑电路、系统及电子设备 |
CN110210490A (zh) * | 2018-02-28 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
-
2019
- 2019-09-10 CN CN201910853884.8A patent/CN110689475A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092676A (zh) * | 2017-04-18 | 2017-08-25 | 广东浪潮大数据研究有限公司 | 一种数据处理方法及装置 |
CN107506773A (zh) * | 2017-09-25 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种特征提取方法、装置及系统 |
WO2019136760A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 图像语义分割方法、可编程逻辑电路、系统及电子设备 |
CN110210490A (zh) * | 2018-02-28 | 2019-09-06 | 深圳市腾讯计算机系统有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
CN109325494A (zh) * | 2018-08-27 | 2019-02-12 | 腾讯科技(深圳)有限公司 | 图片处理方法、任务数据处理方法和装置 |
CN109618165A (zh) * | 2019-01-07 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种图像解码方法、系统及主机和图像处理系统 |
Non-Patent Citations (1)
Title |
---|
鲍云峰 等: "基于OpenCL与FPGA异构模式的Sobel算法研究", 《计算机测量与控制》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815502A (zh) * | 2020-07-08 | 2020-10-23 | 上海雪湖科技有限公司 | 基于WebP压缩算法的多图处理的FPGA加速方法 |
CN111815502B (zh) * | 2020-07-08 | 2023-11-28 | 上海雪湖科技有限公司 | 基于WebP压缩算法的多图处理的FPGA加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11488000B2 (en) | Operation apparatus and method for acceleration chip for accelerating deep neural network algorithm | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
US11675997B2 (en) | Device and method for processing convolution operation using kernel | |
CN110633153A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
JP7181264B2 (ja) | 深層学習処理装置、方法、デバイス及び記憶媒体 | |
CN110826708B (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
CN110717574B (zh) | 一种神经网络运行方法、装置及异构智能芯片 | |
CN112711478B (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
CN110689121A (zh) | 一种用多核处理器实现神经网络模型拆分方法及相关产品 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
US11593628B2 (en) | Dynamic variable bit width neural processor | |
CN109146065B (zh) | 二维数据的卷积运算方法及装置 | |
US20230409885A1 (en) | Hardware Environment-Based Data Operation Method, Apparatus and Device, and Storage Medium | |
CN111539526A (zh) | 一种神经网络卷积的方法和设备 | |
CN114298329A (zh) | 一种模型训练方法、装置、设备及存储介质 | |
JP2022546271A (ja) | カーネルチューニングパラメータを予測するための方法及び装置 | |
CN110689475A (zh) | 一种图像数据处理方法、系统、电子设备及存储介质 | |
KR102256289B1 (ko) | 인공 신경망에서 학습을 통한 로드 밸런싱 방법 및 시스템 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN116860999B (zh) | 超大语言模型分布式预训练方法、装置、设备及介质 | |
CN117011118A (zh) | 模型参数更新方法、装置、计算机设备以及存储介质 | |
US20220180187A1 (en) | Method and apparatus for performing deep learning operations | |
CN115374395A (zh) | 一种通过算法控制单元进行调度计算的硬件结构 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN113627587A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200114 |