CN104035750A - 一种基于fpga的实时模板卷积实现方法 - Google Patents
一种基于fpga的实时模板卷积实现方法 Download PDFInfo
- Publication number
- CN104035750A CN104035750A CN201410258255.8A CN201410258255A CN104035750A CN 104035750 A CN104035750 A CN 104035750A CN 201410258255 A CN201410258255 A CN 201410258255A CN 104035750 A CN104035750 A CN 104035750A
- Authority
- CN
- China
- Prior art keywords
- template
- fpga
- data
- row
- register
- 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
Abstract
本发明提供了一种基于FPGA的实时模板卷积实现方法,实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m-1个加法器组成;运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部m+1个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算;提高了模板卷积的运算速度,能够更好地满足实时性的要求,同时增大了卷积模板的大小,从而改善了模板卷积的处理结果,可应用于图像增强、边缘检测以及目标识别等数字图像处理技术领域,尤其用于对实时性要求较高的系统。
Description
技术领域
本发明属于图像处理技术领域,涉及一种高速实时数字图像处理技术的实现方法,特别涉及一种基于FPGA的实时模板卷积实现方法。
背景技术
目前,模板卷积运算被广泛应用于图像增强、边缘检测以及目标识别等数字图像处理领域。模板卷积运算虽然操作简单,但运算量巨大且非常耗时。对于一个N×N的模板来说,每个输出点的运算量为N2次乘法,N2-1次加法,1次除法;对于一帧大小为M×M的图像来说,输出点的数量为(M-N+1)2,总的乘法运算量将是(M-N+1)2×N2。
传统的实现方法是采用通用CPU或DSP做处理机,通过流水线方式进行模板卷积运算。由于CPU或DSP速度的限制,对于高速实时的设计,传统方法不再能满足要求。同时,因为模板越大,运算量越大,所以传统方法所使用的模板都相对较小,进而影响处理结果。
发明内容
本发明的目的在于克服现有技术缺陷,提供一种基于FPGA的实时模板卷积实现方法,能够在实现模板卷积的同时提高其运算速度,以满足高速系统的实时性要求。
为达到上述目的,本发明采用的技术方案是:
一种基于FPGA的实时模板卷积实现方法,实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m-1个加法器组成;运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部的m+1个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。
所述的模板卷积实现方法,n组模板运算单元的并行和流水运算步骤如下:
(1)将一帧MxN图像的第1行第1到第m个图像数据存放到FPGA内部的第1到第m个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的m个乘法器;
(2)将步骤(1)中第1个到第m个寄存器中存放的m个图像数据提供给m个乘法器进行乘法运算,这相当于第1组数据;
(3)在进行步骤(2)的同时,将图像该行的第m+1个图像数据更新至第m+1个寄存器;
(4)步骤(2)、(3)结束后,保持模板数据不变,将FPGA内部第2到第m+1个寄存器中的m个图像数据提供给模板卷积运算单元的m个乘法器,进行乘法运算,这相当于第2组数据;
(5)在进行步骤(4)的同时,将图像该行第m+2个图像数据更新至m+1个寄存器中闲置的一个寄存器中;
(6)重复步骤(1)至(5),直到第1行图像数据运算结束;
(7)重复步骤(1)至(6),直到第m行图像数据运算结束;
(8)将第1行至第m行所有对应组数据运算结果相加,得到完整的模板处理结果,到此完成了模板在原始输入图像上扫描1行的运算;
(9)将一帧图像的第2行到M-m+1行重复步骤(1)至(8),直到完成整帧图像的模板卷积运算。
在FPGA中构建4组模板卷积运算单元进行并行计算,模板尺寸为15x15,小尺寸模板通过将15x15模板边缘置0实现。
本发明与现有技术相比具有如下优点:
本发明提出了一种基于FPGA的实时模板卷积实现方法,通过在FPGA中构建n个独立的卷积运算单元并行计算和垂直方向流水计算,实现模板卷积运算,提高了模板卷积的运算速度,能够更好地满足实时性的要求。同时由于能够在FPGA中建立多个运算单元,而且运算能力相比传统的CPU或DSP大大提高,增大了卷积模板的大小,从而改善了模板卷积的处理结果,可应用于图像增强、边缘检测以及目标识别等数字图像处理技术领域,尤其用于对实时性要求较高的系统。
附图说明
图1为模板卷积运算单元结构图;
图2为模板卷积运算流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
本发明基于FPGA的实时模板卷积实现方法,其实现平台为FPGA,全部由硬件描述语言Verilog HDL实现。
如图1所示,本发明采用4组模板卷积运算单元进行并行计算,模板大小为15x15。每组模板卷积运算单元由15个乘法器和14个加法器组成。在运算过程中,15个乘法器的图像数据和模板数据利用FPGA内部16个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。
如图2所示,基于FPGA的实时模板卷积实现方法,模板运算单元的并行和流水运算步骤如下:
(1a)将一阵图像的第1行第1到第15个图像数据存放到第1到第15个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的15个乘法器;
(1b)将步骤(1a)中第1个到第15个寄存器中存放的15个图像数据提供给15个乘法器进行乘法运算,这相当于第1组数据;
(1c)在进行步骤(1b)的同时,将该行第16个图像数据更新至第16个寄存器;
(1d)步骤(1b)(1c)结束后,保持模板数据不变,将第2到第16个寄存器中的15个图像数据提供给模板卷积运算单元的15个乘法器,进行乘法运算,这相当于第2组数据;
(1e)在进行步骤(1d)的同时,将该行第17个图像数据更新至16个寄存器中闲置的一个寄存器中,此时为第1个寄存器;
(1f)重复步骤(1a)至(1e),直到第1行图像数据运算结束;
(1g)重复步骤(1a)至(1f),直到第15行图像数据运算结束;
(1h)将第1行至第15行所有对应组数据运算结果相加,得到一个完整的模板处理结果,到此完成了模板在原始输入图像上扫描1行的运算;
(1i)重复步骤(1a)至(1i),直到完成整帧图像的模板卷积运算。
上述模板尺寸为15x15,对于小尺寸模板的运算,可以通过将15x15模板边缘置0实现。上述模板卷积运算单元由15个乘法器和14个加法器组成,15个乘法器进行并行乘法运算。上述寄存器共使用31个,其中15个寄存器存放卷积模板数据,16个寄存器存放图像数据。上述模板运算过程采用4个独立模板卷积运算单元,即可同时并行计算4行图像数据。
以上所述,仅是本发明的较佳实施案例而已,并非对本发明做任何形式上的限制,虽然本发明已以较佳实施方法揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,仍属于本发明技术方案的范围内。
Claims (3)
1.一种基于FPGA的实时模板卷积实现方法,其特征在于:实现平台为FPGA,在FPGA中构建n组模板卷积运算单元进行并行计算,模板大小为mxm,每组模板卷积运算单元由m个乘法器和m-1个加法器组成;运算过程中,m个乘法器的图像数据和模板数据利用FPGA内部的m+1个寄存器给出,通过水平方向并行计算和垂直方向流水计算,实现模板卷积运算。
2.根据权利要求1所述的模板卷积实现方法,其特征在于n组模板运算单元的并行和流水运算步骤如下:
(1)将一帧MxN图像的第1行第1到第m个图像数据存放到FPGA内部的第1到第m个寄存器,同时将模板的第1行数据提供给模板卷积运算单元的m个乘法器;
(2)将步骤(1)中第1个到第m个寄存器中存放的m个图像数据提供给m个乘法器进行乘法运算,这相当于第1组数据;
(3)在进行步骤(2)的同时,将图像该行的第m+1个图像数据更新至第m+1个寄存器;
(4)步骤(2)、(3)结束后,保持模板数据不变,将FPGA内部第2到第m+1个寄存器中的m个图像数据提供给模板卷积运算单元的m个乘法器,进行乘法运算,这相当于第2组数据;
(5)在进行步骤(4)的同时,将图像该行第m+2个图像数据更新至m+1个寄存器中闲置的一个寄存器中;
(6)重复步骤(1)至(5),直到第1行图像数据运算结束;
(7)重复步骤(1)至(6),直到第m行图像数据运算结束;
(8)将第1行至第m行所有对应组数据运算结果相加,得到模板运算处理结果,到此完成了模板在原始输入图像上扫描1行的运算;
(9)将一帧图像的第2行到M-m+1行重复步骤(1)至(8),直到完成整帧图像的模板卷积运算。
3.根据权利要求1所述的模板卷积实现方法,其特征在于:在FPGA中构建4组模板卷积运算单元进行并行计算,模板尺寸为15x15,小尺寸模板通过将15x15模板边缘置0实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410258255.8A CN104035750A (zh) | 2014-06-11 | 2014-06-11 | 一种基于fpga的实时模板卷积实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410258255.8A CN104035750A (zh) | 2014-06-11 | 2014-06-11 | 一种基于fpga的实时模板卷积实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104035750A true CN104035750A (zh) | 2014-09-10 |
Family
ID=51466526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410258255.8A Pending CN104035750A (zh) | 2014-06-11 | 2014-06-11 | 一种基于fpga的实时模板卷积实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104035750A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN108491929A (zh) * | 2018-03-20 | 2018-09-04 | 南开大学 | 一种基于fpga的可配置并行快速卷积核的结构 |
CN109447085A (zh) * | 2018-09-07 | 2019-03-08 | 西安电子科技大学 | 一种模板卷积运算方法 |
CN109472734A (zh) * | 2018-10-18 | 2019-03-15 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN109635929A (zh) * | 2018-12-07 | 2019-04-16 | 锐捷网络股份有限公司 | 基于fpga的卷积实现方法及卷积器 |
CN110399976A (zh) * | 2018-04-25 | 2019-11-01 | 华为技术有限公司 | 计算装置和计算方法 |
WO2020042771A1 (zh) * | 2018-08-31 | 2020-03-05 | 北京嘉楠捷思信息技术有限公司 | 图像识别处理方法和装置 |
CN111260536A (zh) * | 2018-12-03 | 2020-06-09 | 中国科学院沈阳自动化研究所 | 可变参数的数字图像多尺度卷积处理器及其实现方法 |
CN112330524A (zh) * | 2020-10-26 | 2021-02-05 | 沈阳上博智像科技有限公司 | 一种在图像跟踪系统中快速实现卷积的装置和方法 |
CN114862654A (zh) * | 2022-04-15 | 2022-08-05 | 山东浪潮科学研究院有限公司 | 一种实时模板卷积在fpga上的实现方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1916959A (zh) * | 2006-08-29 | 2007-02-21 | 中国航天时代电子公司第七七一研究所 | 可缩放大规模二维卷积电路 |
CN1987928A (zh) * | 2005-12-21 | 2007-06-27 | 北京航空航天大学 | 一种实时快速实现高斯模板卷积的装置 |
CN101949768A (zh) * | 2010-08-20 | 2011-01-19 | 中国科学院光电技术研究所 | 点源目标相关哈特曼-夏克波前斜率处理器及制造方法 |
CN102208005A (zh) * | 2011-05-30 | 2011-10-05 | 华中科技大学 | 一种2-d卷积器 |
-
2014
- 2014-06-11 CN CN201410258255.8A patent/CN104035750A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987928A (zh) * | 2005-12-21 | 2007-06-27 | 北京航空航天大学 | 一种实时快速实现高斯模板卷积的装置 |
CN1916959A (zh) * | 2006-08-29 | 2007-02-21 | 中国航天时代电子公司第七七一研究所 | 可缩放大规模二维卷积电路 |
CN101949768A (zh) * | 2010-08-20 | 2011-01-19 | 中国科学院光电技术研究所 | 点源目标相关哈特曼-夏克波前斜率处理器及制造方法 |
CN102208005A (zh) * | 2011-05-30 | 2011-10-05 | 华中科技大学 | 一种2-d卷积器 |
Non-Patent Citations (2)
Title |
---|
万海军: "实时图像处理算法研究及FPGA 实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
朱学亮等: "基于FPGA的图像卷积IP核的设计与实现", 《微电子学与计算机》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN106228240B (zh) * | 2016-07-30 | 2020-09-01 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN108491929A (zh) * | 2018-03-20 | 2018-09-04 | 南开大学 | 一种基于fpga的可配置并行快速卷积核的结构 |
CN110399976A (zh) * | 2018-04-25 | 2019-11-01 | 华为技术有限公司 | 计算装置和计算方法 |
WO2020042771A1 (zh) * | 2018-08-31 | 2020-03-05 | 北京嘉楠捷思信息技术有限公司 | 图像识别处理方法和装置 |
CN109447085A (zh) * | 2018-09-07 | 2019-03-08 | 西安电子科技大学 | 一种模板卷积运算方法 |
CN109472734A (zh) * | 2018-10-18 | 2019-03-15 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN109472734B (zh) * | 2018-10-18 | 2022-12-27 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN111260536A (zh) * | 2018-12-03 | 2020-06-09 | 中国科学院沈阳自动化研究所 | 可变参数的数字图像多尺度卷积处理器及其实现方法 |
CN111260536B (zh) * | 2018-12-03 | 2022-03-08 | 中国科学院沈阳自动化研究所 | 可变参数的数字图像多尺度卷积处理器及其实现方法 |
CN109635929A (zh) * | 2018-12-07 | 2019-04-16 | 锐捷网络股份有限公司 | 基于fpga的卷积实现方法及卷积器 |
CN112330524A (zh) * | 2020-10-26 | 2021-02-05 | 沈阳上博智像科技有限公司 | 一种在图像跟踪系统中快速实现卷积的装置和方法 |
CN114862654A (zh) * | 2022-04-15 | 2022-08-05 | 山东浪潮科学研究院有限公司 | 一种实时模板卷积在fpga上的实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104035750A (zh) | 一种基于fpga的实时模板卷积实现方法 | |
KR102476343B1 (ko) | 자리수가 비교적 적은 고정 소수점 수치의 신경망 연산에 대한 지원 장치와 방법 | |
CN103970720A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
Li et al. | A multistage dataflow implementation of a deep convolutional neural network based on FPGA for high-speed object recognition | |
KR20180125843A (ko) | (국문)다양한 cnn 모델에 적용 가능한 하드웨어 분류기 | |
Nosrat et al. | Hardware description of multidirectional fast sobel edge detection processor by VHDL for implementing on FPGA | |
CN104765713A (zh) | 基于分段查表三角函数实现fpga数字信号处理的方法 | |
CN103985083A (zh) | 一种可重构的一维卷积处理器 | |
CN104504205A (zh) | 一种对称fir算法的并行化二维分割方法及其硬件结构 | |
CN104182411A (zh) | 基于Map-Reduce的高维数据相似性连接方法和装置 | |
Wei et al. | Fast median filtering algorithm based on FPGA | |
CN111788567B (zh) | 一种数据处理设备以及一种数据处理方法 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
Tang et al. | FPGA implementation of RANSAC algorithm for real-time image geometry estimation | |
Amanatiadis et al. | Accelerating image super-resolution regression by a hybrid implementation in mobile devices | |
Chen et al. | Hardware Resource and Computational Density Efficient CNN Accelerator Design Based on FPGA | |
CN105809663A (zh) | 一种获取图像局部区域的方法、装置和电子设备 | |
CN109800793A (zh) | 一种基于深度学习的目标检测方法和系统 | |
Soloviev et al. | Hardware implementation of convolutional neural networks based on residue number system | |
Jeon et al. | The parallelization of convolution on a CNN using a SIMT based GPGPU | |
Liu et al. | Objects detection deep learning system based on 2-D winograd convolutional neural network | |
Dighorikar et al. | Area Efficient Architecture for Convolution Using Vedic Mathematics | |
CN107480102B (zh) | 一种基于并行lu分解的psf反变换方法 | |
WO2016119397A1 (zh) | 一种实现信道估计的方法、装置及计算机存储介质 | |
Lai et al. | High-efficient semantic segmentation for Internet-of-Things-enabled smart cameras |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140910 |
|
WD01 | Invention patent application deemed withdrawn after publication |