一种基于嵌入式GPU和卷积计算的图像处理方法和装置制造方法及图纸

技术编号:22136146 阅读:46 留言:0更新日期:2019-09-18 09:44
本发明专利技术公开了一种基于嵌入式GPU和卷积计算的图像处理方法和装置,针对SSD算法中的卷积计算进行优化,采用内存优化的卷积扩展对输入图像进行矩阵变换,利用CUDA并行处理形成中间矩阵,同时采用卷积核矩阵行列扩充对齐,卷积核矩阵扩充后做分块处理以减少运算时内存开销,最后采用CUDA库中高度优化的cuBLAS矩阵乘法函数进行卷积计算并行加速,最后合并输出矩阵。本发明专利技术提供的方法能够降低内存开销,提高算法的性能,同时发挥GPU并行控制的优势,减少矩阵乘法时间,提高计算效率。

An Image Processing Method and Device Based on Embedded GPU and Convolution Computing

【技术实现步骤摘要】
一种基于嵌入式GPU和卷积计算的图像处理方法和装置
本专利技术涉及计算机视觉
,更具体的说是涉及一种基于嵌入式GPU和卷积计算的图像处理方法和装置。
技术介绍
自从在ImageNet竞赛中引入卷积神经网络以来,计算机视觉技术在过去几年中取得了长足的进步,在诸如图像分类、模式识别和多媒体压缩等各种领域表现出了很好的性能。其中SSD算法得到了广泛的应用,SSD算法均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用卷积神经网络提取特征后直接进行分类与回归,整个过程只需要一步,速度快于RCNN系列算法。SSD算法在多尺度特征图、利用卷积进行检测、设置检验框等方面做了优化,更适合检测相对较小的目标。由于SSD检测算法过程比较复杂,当在嵌入式硬件平台上实现时,需要消耗大量的存储、计算单元,这就对硬件平台提出了较高的要求。由于用DSP和FPGA等硬件编程相对于软件开发来说难度很大,另一方面很多针对软件的算法很难以用硬件实现,而且硬件开发的周期更长、成本更高,故综合考虑选用嵌入式GPU作为处理器。嵌入式GPU可以并发执行程序、支持深度学习CUDA库;然而,嵌入式GPU内存有限,因此,如何在嵌入是平台上优化卷积计算的内存利用率和运行时间对于图像处理就显得十分重要。因此,如何提供一种基于嵌入式GPU和卷积计算的图像处理方法是本领域技术人员亟需解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种基于嵌入式GPU和卷积计算的图像处理方法和装置,能够降低内存开销、提高计算效率。为了实现上述目的,本专利技术采用如下技术方案:一种基于嵌入式GPU和卷积计算的图像处理方法,包括:S1:采用内存优化的卷积扩展方法对输入图像进行矩阵变换和CUDA并行处理,得到中间矩阵;S2:对输入图像进行卷积核矩阵行列扩充,得到卷积核临时矩阵,对所述卷积核临时矩阵进行分块处理,生成卷积核子矩阵;S3:对中间矩阵和卷积核子矩阵进行卷积计算;S4:对卷积计算后输出的子矩阵进行合并,得到输出矩阵。优选的,在步骤S1中,采用内存优化的卷积扩展方法对输入图像进行矩阵变换的具体步骤包括:S11:在输入图像对应的输入矩阵I[0:ih,0:iw]上,选取[0:ih,0:sw]为滑动窗口,滑动窗口大小为ih*sw;ih为输入矩阵的行,iw为输入矩阵的列;S12:滑动窗口[0:ih,0:sw]依次在输入矩阵I[0:ih,0:iw]上开始滑动,滑动步长为1,滑动窗口内的数据按行拉伸为中间矩阵L[0:oh,0:ow]的一行;S13:滑动窗口[0:ih,x:sw]在输入矩阵I[0:ih,0:iw]上滑动iw-sw+1个单位后结束,形成中间矩阵L[0:oh,0:ow],oh=iw-sw+1,ow=ih*sw,中间矩阵的行数为iw-sw+1,oh为中间矩阵的行,ow为中间矩阵的列。优选的,步骤S2的具体步骤包括:S21:以卷积核矩阵s[0:sw*sh,1]为滑动窗口,滑动窗口在卷积核临时矩阵S上滑动,其中,卷积核临时矩阵S初始化为空;sw为卷积核矩阵的长,sh为卷积核矩阵的宽;S22:滑动窗口s在卷积核临时矩阵S第1列上向下滑动0个单位,S内其余元素补0,形成卷积核临时矩阵S的第1列;S23:滑动窗口s在卷积核临时矩阵S第i列上向下滑动3*(i-1)个单位,S内其余元素补0,形成卷积核临时矩阵S的第i列;S24:基于上述步骤得到卷积核临时矩阵S[0:Sh,0:Sw],且卷积核临时矩阵S[0:Sh,0:Sw]中每列有效数据与卷积核矩阵s[0:sw*sh,1]的数据相对应,S上其余元素为0;Sh=ih*sw,Sw=ih-sh+1;Sh为卷积核临时矩阵的行,Sw为卷积核临时矩阵的列;S25:对卷积核临时矩阵S[0:Sh,0:Sw]做分块处理,分为卷积核第一子矩阵S1[0:Sh,0:Sw1]和卷积核第二子矩阵S2[0:Sh,0:Sw2],其中Sw1=Sw-Sw/2,Sw2=Sw/2;,Sw1为分块后卷积核第一子矩阵的列,Sw2为分块后卷积核第二子矩阵的列。优选的,在步骤S3中,利用CUDA库中高度优化的cuBLAS函数对中间矩阵和卷积核子矩阵进行卷积计算。优选的,步骤S3的具体步骤包括:S31:创建并初始化cuBLAS库对象;S32:在GPU中为待运算的数据以及需要存放结果的变量开辟显存空间;S33:将待运算的数据从内存传输进显存;S34:基于cuBLAS函数对中间矩阵L[0:oh,0:ow]分别和卷积核第一子矩阵S1[0:Sh,0:Sw1]、卷积核第二子矩阵S2[0:Sh,0:Sw2]进行卷积计算;S35:从GPU中获取卷积计算后的第一子矩阵O1[0:Oh,0:Ow1]和第二子矩阵O2[0:Oh,0:Ow2],释放开辟的显存空间以及cuBLAS库对象。优选的,步骤S4具体包括:将第一子矩阵O1[0:Oh,0:Ow1]和第二子矩阵O2[0:Oh,0:Ow2]合并为输出矩阵O[0:Oh,0:Ow],其中,Oh为输出矩阵的行,Ow为输出矩阵的列。优选的,该方法由CPU和GPU协同处理实现,其中,GPU负责执行步骤S1和步骤S3,CPU负责执行步骤S2和步骤S4。一种基于嵌入式GPU和卷积计算的图像处理装置,包括:卷积扩展模块,用于采用内存优化的卷积扩展方法对输入图像进行矩阵变换和CUDA并行处理,得到中间矩阵;扩充分块处理模块,用于对输入图像进行卷积核矩阵行列扩充,得到卷积核临时矩阵,对所述卷积核临时矩阵进行分块处理,生成卷积核子矩阵;卷积计算模块,用于对中间矩阵和卷积核子矩阵进行卷积计算;合并模块,用于对卷积计算后输出子矩阵进行合并,得到输出矩阵。经由上述的技术方案可知,与现有技术相比,本专利技术公开提供了一种基于嵌入式GPU和卷积计算的图像处理方法和装置,针对SSD算法中的卷积计算进行优化,采用内存优化的卷积扩展对输入图像进行矩阵变换,利用CUDA并行处理形成中间矩阵,同时采用卷积核矩阵行列扩充对齐,卷积核矩阵扩充后做分块处理以减少运算时内存开销,最后采用CUDA库中高度优化的cuBLAS矩阵乘法函数进行卷积计算并行加速,最后合并输出矩阵。与现有技术相比具有如下优点:1、本专利技术采用的方法,与im2col卷积计算方法相比,减少了内存开销,提高了卷积计算速度。在嵌入式GPU平台JetsonTX2上,经大量实验证明,本专利技术提供的方法平均内存使用效率提升了45%,卷积计算速度平均提高了90%以上。2、本专利技术采用的卷积核矩阵扩展使其与中间矩阵地址对齐,可充分简化分段卷积控制逻辑,减少CPU与GPU之间的数据传输次数,进而节省GPU总线传输资源。3、本专利技术基于嵌入式GPU平台,可充分利用CUDA库,发挥GPU并行控制的优势,从而加速CNN卷积计算的运行。适合运行在内存受限的平台,如嵌入式GPU、物联网等,而且适合CNN和DNN的应用。因此,综上所述,本专利技术提供的基于嵌入式GPU和卷积计算的图像处理方法和装置具有很好的推广意义。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获本文档来自技高网...

【技术保护点】
1.一种基于嵌入式GPU和卷积计算的图像处理方法,其特征在于,包括:S1:采用内存优化的卷积扩展方法对输入图像进行矩阵变换和CUDA并行处理,得到中间矩阵;S2:对输入图像进行卷积核矩阵行列扩充,得到卷积核临时矩阵,对所述卷积核临时矩阵进行分块处理,生成卷积核子矩阵;S3:对中间矩阵和卷积核子矩阵进行卷积计算;S4:对卷积计算后输出的子矩阵进行合并,得到输出矩阵。

【技术特征摘要】
1.一种基于嵌入式GPU和卷积计算的图像处理方法,其特征在于,包括:S1:采用内存优化的卷积扩展方法对输入图像进行矩阵变换和CUDA并行处理,得到中间矩阵;S2:对输入图像进行卷积核矩阵行列扩充,得到卷积核临时矩阵,对所述卷积核临时矩阵进行分块处理,生成卷积核子矩阵;S3:对中间矩阵和卷积核子矩阵进行卷积计算;S4:对卷积计算后输出的子矩阵进行合并,得到输出矩阵。2.根据权利要求1所述的一种基于嵌入式GPU和卷积计算的图像处理方法,其特征在于,在步骤S1中,采用内存优化的卷积扩展方法对输入图像进行矩阵变换的具体步骤包括:S11:在输入图像对应的输入矩阵I[0:ih,0:iw]上,选取[0:ih,0:sw]为滑动窗口,滑动窗口大小为ih*sw;ih为输入矩阵的行,iw为输入矩阵的列;S12:滑动窗口[0:ih,0:sw]依次在输入矩阵I[0:in,0:iw]上开始滑动,滑动步长为1,滑动窗口内的数据按行拉伸为中间矩阵L[0:oh,0:ow]的一行;S13:滑动窗口[0:ih,x:sw]在输入矩阵I[0:ih,0:iw]上滑动iw-sw+1个单位后结束,形成中间矩阵L[0:oh,0:ow],oh=iw-sw+1,ow=ih*sw,中间矩阵的行数为iw-sw+1,oh为中间矩阵的行,ow为中间矩阵的列。3.根据权利要求1所述的一种基于嵌入式GPU和卷积计算的图像处理方法,其特征在于,步骤S2的具体步骤包括:S21:以卷积核矩阵s[0:sw*sh,1]为滑动窗口,滑动窗口在卷积核临时矩阵S上滑动,其中,卷积核临时矩阵S初始化为空;sw为卷积核矩阵的长,sh为卷积核矩阵的宽;S22:滑动窗口s在卷积核临时矩阵S第1列上向下滑动0个单位,S内其余元素补0,形成卷积核临时矩阵S的第1列;S23:滑动窗口s在卷积核临时矩阵S第i列上向下滑动3*(i-1)个单位,S内其余元素补0,形成卷积核临时矩阵S的第i列;S24:基于上述步骤得到卷积核临时矩阵S[0:Sh,0:Sw],且卷积核临时矩阵S[0:Sh,0:Sw]中每列有效数据与卷积核矩阵s[0:sw*sh,1]的数据相对应,S上其余元素为0;Sh=ih*sw,Sw=ih-sh+1;Sh为卷积核临时矩阵的行,Sw为卷积核临时矩阵的列;S25:...

【专利技术属性】
技术研发人员:姜宏旭王玺坤李波张永华林珂玉
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1