一种3*3卷积算法的加速电路制造技术

技术编号:19216501 阅读:35 留言:0更新日期:2018-10-20 06:59
本发明专利技术公开一种3*3卷积算法的加速电路,包括DDR模块、卷积结果FIFO模块、主状态机控制模块、移位选择控制模块、行缓冲模块和卷积计算模块。主控制模块通过AHB总线接口从所述像素存储阵列中突发读取输入图像当前相邻两行的像素数据,并控制移位选择控制模块内像素数据的并行移位使得每次写入卷积计算模块的像素数据与对应的卷积核数据进行卷积运算,再通过AHB总线将当前相邻两行的像素数据在卷积计算模块中运算结果写入所述卷积结果存储阵列,然后通过AHB总线读取下一行的像素数据,并进行相应的移位和卷积运算处理,直到输入图像所有像素数据处理完成后发出中断告知CPU卷积运算处理的结果以减小软件指令开销。

【技术实现步骤摘要】
一种3*3卷积算法的加速电路
本专利技术涉及机器视觉检测
,尤其涉及一种3*3卷积算法的加速电路。
技术介绍
当前,扫地机在采用视频图像进行地图建图和定位时,需要通过一套图像处理算法对摄像头采集到的图像数据进行预处理,例如图像滤波,图像噪声的消除,图像的特征增强,图像的平滑处理,等等。现有机器视觉
中,窗处理是图像处理中常见的一种处理,它的思想是对于图像矩阵,通过一个固定大小(例如3*3)的小矩阵对图像进行运算操作。常用的窗处理包括形态学操作,模糊滤波,高斯滤波等。其中,卷积算法被大量使用到。但是,卷积算法需要软件对图像数据进行读入,缓存,计算,然后写出,需要消耗大量的软件指令,占用大量的软件资源,导致效率低下。
技术实现思路
为了节约软件资源,提高指令效率,本专利技术采用专用集成电路的方式实现基于3*3大小的滑动窗口的快速卷积算法,在设计上能实现硬件并行和流水线技术,可以实现算法的加速,其技术方案如下:一种3*3卷积算法的加速电路,该加速电路包括,用于存储输入图像和图像卷积运算结果的DDR模块和用于缓冲卷积运算结果的卷积结果FIFO模块,其中,DDR模块包括配置输入图像的基本文档来自技高网...

【技术保护点】
1.一种3*3卷积算法的加速电路,该加速电路包括,用于存储输入图像和图像卷积运算结果的DDR模块和用于缓冲卷积运算结果的卷积结果FIFO模块,其中,DDR模块包括配置输入图像的基地址和存储空间的像素存储阵列,以及配置图像卷积运算结果的目标地址的卷积结果存储阵列;其特征在于,该加速电路包括主控制模块、移位选择控制模块、行缓冲模块和卷积计算模块;主控制模块,用于通过AHB总线从所述像素存储阵列中突发读取输入图像当前相邻两行的像素数据,并控制移位选择控制模块内像素数据的并行移位使得每次写入卷积计算模块的像素数据与匹配的卷积核数据对齐以加速运算过程,再通过AHB总线将当前相邻两行的像素数据在卷积计算模...

【技术特征摘要】
1.一种3*3卷积算法的加速电路,该加速电路包括,用于存储输入图像和图像卷积运算结果的DDR模块和用于缓冲卷积运算结果的卷积结果FIFO模块,其中,DDR模块包括配置输入图像的基地址和存储空间的像素存储阵列,以及配置图像卷积运算结果的目标地址的卷积结果存储阵列;其特征在于,该加速电路包括主控制模块、移位选择控制模块、行缓冲模块和卷积计算模块;主控制模块,用于通过AHB总线从所述像素存储阵列中突发读取输入图像当前相邻两行的像素数据,并控制移位选择控制模块内像素数据的并行移位使得每次写入卷积计算模块的像素数据与匹配的卷积核数据对齐以加速运算过程,再通过AHB总线将当前相邻两行的像素数据在卷积计算模块中运算结果写入所述卷积结果存储阵列;主控制模块,还用于通过AHB总线读取输入图像中基于当前相邻两行的下一行的像素数据,并进行相应的移位和卷积运算处理,直到输入图像所有像素数据处理完成后发出中断告知CPU卷积运算处理的结果以减小软件指令开销;其中,卷积核数据是CPU在卷积计算模块内预先配置的卷积窗口中存储的数据;所述每次写入卷积计算模块的像素数据与匹配的卷积核数据对齐是,为实现卷积运算,控制卷积核数据所在的卷积窗口在所写入的卷积计算模块内像素数据所对应的图像矩阵上滑动过程中,形成一个包含卷积核数据所在的卷积窗口中心的重叠区域;行缓冲模块,包括移位寄存器构成的行缓冲器,用于按照图像横向像素数据长度缓冲输入图像相应行的像素数据,并根据主控制模块生成的列地址信号和状态信号将缓冲输入图像中的像素数据输出至移位选择控制模块;移位选择控制模块,用于根据主控制模块输出的所述状态信号选择行缓冲模块中输入图像相应行的像素数据,再将每一列像素数据并行移位,并对像素数据进行填充处理,使得输入图像中所有像素数据写入卷积计算模块中完成卷积运算;卷积计算模块,用于将移位选择控制模块输出的像素数据与对应的卷积核数据进行乘法运算,基于加法器组将所述乘法运算的结果相加以实现卷积运算。2.根据权利要求1所述加速电路,其特征在于,所述行缓冲模块的行缓冲器包括第一行缓冲器、第二行缓冲器和第三行缓冲器,用于通过列地址选择端和状态选择端分别与所述主控制模块并联连接,其中:第一行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第一预置行的像素数据;第二行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第二预置行的像素数据;第三行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第三预置行的像素数据;所述第一预置行、所述第二预置行和所述第三预置行是AHB总线从所述像素存储阵列中突发读取的输入图像中彼此相邻的三个行序号,且这三个行序号所对应的像素数据被AHB总线突发读取后根据矩阵卷积运算规律更新。3.根据权利要求2所述加速电路,其特征在于,所述移位选择控制模块包括第一选择器、第二选择器、第三选择器和3*3卷积窗口控制逻辑;第一选择器、第二选择器和第三选择器都有三个输入端,这三个输入端分别为第一输入端、第二输入端、第三输入端,其中,第一选择器的第一输入端与所述第三行缓冲器的输出端相连接,第一选择器的第二输入端与所述第一行缓冲器的输出端相连接,第一选择器的第三输入端与所述第二行缓冲器的输出端相连接;第二选择器的第一输入端与所述第一行缓冲器的输出端相连接,第二选择器的第二输入端与所述第二行缓冲器的输出端相连接,第二选择器的第三输入端与所述第三行缓冲器的输出端相连接;第三选择器的第一输入端与所述第二行缓冲器的输出端相连接,第三选择器的第二输入端与所述第三行缓冲器的输出端相连接,第三选择器的第三输入端与所述第一行缓冲器的输出端相连接;3*3卷积窗口控制逻辑,包括由第一移位寄存器、第二移位寄存器和第三移位寄存器构成的3*3卷积窗口,其中,第一移位寄存器、第二移位寄存器和第三移位寄存器都由三个寄存器组合构成;第一移位寄存器的输入端与第一选择器的输出端相连,用于缓冲第一选择器选择进入3*3卷积窗口第一行的像素数据;第二移位寄存器的输入端与第二选择器的输出端相连,用于缓冲第二选择器选择进入3*3卷积窗口第二行的像素数据;第三移位寄存器的输入端与第三选择器的输出端相连,用于缓冲第三选择器选择进入3*3卷积窗口第三行的像素数据;其中,第一选择器的一个地址输入端与第二选择器的一个地址输入端相连接,第二选择器的另一个地址输入端和第三选择器的一个地址输入端相连接,第三选择器的另一个地址输入端与所述主控制模块连接,用于接收所述状态信号。4.根据权利要求3所述加速电路,其特征在于,所述移位选择控制模块还包括边缘填充逻辑,包括填充选择器、边缘检测逻辑和像素填充逻辑;边缘检测逻辑,分别与像素填充逻辑和填充选择器相连接,用于判定3*3卷积窗口内的待检测像素点在输入图像的地址...

【专利技术属性】
技术研发人员:何再生
申请(专利权)人:珠海市一微半导体有限公司
类型:发明
国别省市:广东,44

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

1