一种实时模板卷积在FPGA上的实现方法及系统技术方案

技术编号:34443859 阅读:41 留言:0更新日期:2022-08-06 16:36
本发明专利技术公开了一种实时模板卷积在FPGA上的实现方法及系统,属于图像处理技术领域;所述的方法实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m

【技术实现步骤摘要】
一种实时模板卷积在FPGA上的实现方法及系统


[0001]本专利技术公开一种实时模板卷积在FPGA上的实现方法及系统,涉及图像处理


技术介绍

[0002]目前,模板卷积运算被广泛应用于图像增强、边缘检测以及目标识别等数字图像处理领域。模板卷积运算虽然操作简单,但运算量巨大且非常耗时。对于一个N
×
N的模板来说,每个输出点的运算量为N2次乘法N2

1次加法,1次除法;对于一帧大小为M
×
M的图像来说,输出点的数量为(M

N+1)2,总的乘法运算量将是(M

N+1)2
×
N2。
[0003]传统的实现方法是采用通用CPU或DSP做处理机,通过流水线方式进行模板卷积运算。由于CPU或DSP速度的限制,对于高速实时的设计,传统方法不再能满足要求。同时,因为模板越大,运算量越大,所以传统方法所使用的模板都相对较小,进而影响处理结果。
[0004]故现专利技术一种实时模板卷积在FPGA上的实现方法及系统,以解决上述问题。

技术实现思路

[0005]本专利技术针对现有技术的问题,提供一种实时模板卷积在FPGA上的实现方法及系统,所采用的技术方案为:一种实时模板卷积在FPGA上的实现方法,所述的方法实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m

l个加法器组成;运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部的m+l个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。
[0006]所述方法的具体步骤如下:
[0007]S1将一帧M
×
N图像的第1行第1个到第m个图像数据存放到FPGA内部的第1到第m个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的m个乘法器;
[0008]S2将S1中第1个到第m个寄存器中存放的m个图像数据提供给m个乘法器进行乘法运算,这相当于第1组数据;
[0009]S3在进行S2的同时,将图像该行的第m+1个图像数据更新至第m+1个寄存器;
[0010]S4保持模板数据不变,将FPGA内部第2到第m+1个寄存器中的m个图像数据提供给模板卷积运算单元的m个乘法器,进行乘法运算,这相当于第2组数据;
[0011]S5在进行S4的同时,将图像该行第m+2个图像数据更新至m+1个寄存器中闲置的一个寄存器中;
[0012]S6重复以上步骤直至图像数据运算结束。
[0013]S7将第1行至第m行所有对应组数据运算结果相加,得到模板运算处理结果;
[0014]S8将一帧图像的第2行到M

m+1行重复S1~S8。
[0015]所述S6具体步骤如下:
[0016]S601重复S1~S5,直到第1行图像数据运算结束;
[0017]S602重复S1~S601,直到第m行图像数据运算结束;
[0018]所述S8将一帧图像的第2行到M

m+1行重复S1~S8,直到完成整帧图像的模板卷积运算。
[0019]一种实时模板卷积在FPGA上的实现系统,所述的系统实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m

l个加法器组成;
[0020]运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部的m+l个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。
[0021]所述系统具体包括数据存放模块、数据组件模块A、数据更新模块A、数据组件模块B、数据更新模块B、循环操作模块、运算处理模块和运算循环模块:
[0022]数据存放模块:将一帧M
×
N图像的第1行第1个到第m个图像数据存放到FPGA内部的第1到第m个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的m个乘法器;
[0023]数据组件模块A:将数据存放模块中第1个到第m个寄存器中存放的m个图像数据提供给m个乘法器进行乘法运算,这相当于第1组数据;
[0024]数据更新模块A:在数据组件模块A工作的同时,将图像该行的第m+1个图像数据更新至第m+1个寄存器;
[0025]数据组件模块B:保持模板数据不变,将FPGA内部第2到第m+1个寄存器中的m个图像数据提供给模板卷积运算单元的m个乘法器,进行乘法运算,这相当于第2组数据;
[0026]数据更新模块B:在数据组件模块B工作的同时,将图像该行第m+2个图像数据更新至m+1个寄存器中闲置的一个寄存器中;
[0027]循环操作模块:重复以上步骤直至图像数据运算结束。
[0028]运算处理模块:将第1行至第m行所有对应组数据运算结果相加,得到模板运算处理结果;
[0029]运算循环模块:将一帧图像的第2行到M

m+1行重复S1~S8。
[0030]所述循环操作模块具体包括第一循环模块和第二循环模块:
[0031]第一循环模块:重复之前的模块工作,直到第1行图像数据运算结束;
[0032]第二循环模块:重复之前的模块工作,直到第m行图像数据运算结束;
[0033]所述运算循环模块将一帧图像的第2行到M

m+1行重复S1~S8,直到完成整帧图像的模板卷积运算。
[0034]本专利技术的有益效果为:本专利技术方法通过在FPGA中构建n个独立的卷积运算单元并行计算和垂直方向流水计算,实现模板卷积运算,提高了模板卷积的运算速度,能够更好地满足实时性的要求。同时由于能够在FPGA中建立多个运算单元,而且运算能力相比传统的CPU或DSP大大提高,增大了卷积模板的大小,从而改善了模板卷积的处理结果,可应用于图像增强、边缘检测以及目标识别等数字图像处理
,尤其用于对实时性要求较高的系统。
附图说明
[0035]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发
明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本专利技术方法实施例的模板卷积运算单元计算示意图;图2是本专利技术方法实施例的模板运算到哪元并行流水运算流程图。
具体实施方式
[0037]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0038]实施例一:
[0039]一种实时模板卷积在FPGA上的实现方法,所述的方法实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实时模板卷积在FPGA上的实现方法,其特征是所述的方法实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m

l个加法器组成;运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部的m+l个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。2.根据权利要求1所述的方法,其特征是所述方法的具体步骤如下:S1将一帧M
×
N图像的第1行第1个到第m个图像数据存放到FPGA内部的第1到第m个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的m个乘法器;S2将S1中第1个到第m个寄存器中存放的m个图像数据提供给m个乘法器进行乘法运算,这相当于第1组数据;S3在进行S2的同时,将图像该行的第m+1个图像数据更新至第m+1个寄存器;S4保持模板数据不变,将FPGA内部第2到第m+1个寄存器中的m个图像数据提供给模板卷积运算单元的m个乘法器,进行乘法运算,这相当于第2组数据;S5在进行S4的同时,将图像该行第m+2个图像数据更新至m+1个寄存器中闲置的一个寄存器中;S6重复以上步骤直至图像数据运算结束。S7将第1行至第m行所有对应组数据运算结果相加,得到模板运算处理结果;S8将一帧图像的第2行到M

m+1行重复S1~S8。3.根据权利要求2所述的方法,其特征是所述S6具体步骤如下:S601重复S1~S5,直到第1行图像数据运算结束;S602重复S1~S601,直到第m行图像数据运算结束。4.根据权利要求3所述的方法,其特征是所述S8将一帧图像的第2行到M

m+1行重复S1~S8,直到完成整帧图像的模板卷积运算。5.一种实时模板卷积在FPGA上的实现系统,其特征是所述的系统实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每...

【专利技术属性】
技术研发人员:薄振桐赵鑫鑫姜凯
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1