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

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

Accelerating Circuit of 3*3 Convolution Algorithms

The utility model discloses a 3*3 convolution algorithm acceleration circuit, which includes DDR module, convolution result FIFO module, main state machine control module, shift selection control module, line buffer module and convolution calculation module. The main control module reads the current two adjacent rows of the input image from the pixel storage array by the AHB bus interface, and controls the parallel shift of the pixel data in the shift selection control module so that the pixel data written to the convolution calculation module and the corresponding convolution core data are convoluted each time. Then the current two adjacent rows of the pixel data are convoluted by the AHB bus. In the product computing module, the result of operation is written into the convolution result storage array, and then the next row of pixel data is read through the AHB bus, and the corresponding shift and convolution operations are processed, until all the pixels of the input image are processed, interruption is issued to inform the CPU of the result of the convolution operation processing to reduce the software instruction overhead.

【技术实现步骤摘要】
3*3卷积算法的加速电路
本技术涉及机器视觉检测
,尤其涉及3*3卷积算法的加速电路。
技术介绍
当前,扫地机在采用视频图像进行地图建图和定位时,需要通过一套图像处理算法对摄像头采集到的图像数据进行预处理,例如图像滤波,图像噪声的消除,图像的特征增强,图像的平滑处理,等等。现有机器视觉
中,窗处理是图像处理中常见的一种处理,它的思想是对于图像矩阵,通过一个固定大小(例如3*3)的小矩阵对图像进行运算操作。常用的窗处理包括形态学操作,模糊滤波,高斯滤波等。其中,卷积算法被大量使用到。但是,卷积算法需要软件对图像数据进行读入,缓存,计算,然后写出,需要消耗大量的软件指令,占用大量的软件资源,导致效率低下。
技术实现思路
为了节约软件资源,提高指令效率,本技术采用专用集成电路的方式实现基于3*3大小的滑动窗口的快速卷积算法,在设计上能实现硬件并行和流水线技术,可以实现算法的加速,其技术方案如下:一种3*3卷积算法的加速电路,该加速电路包括,用于存储输入图像和图像卷积运算结果的DDR模块和用于缓冲卷积运算结果的卷积结果FIFO模块,其中,DDR模块包括配置输入图像的基地址和存储空间的像素存储阵列,以及配置图像卷积运算结果的目标地址的卷积结果存储阵列;该加速电路包括主控制模块、移位选择控制模块、行缓冲模块和卷积计算模块;主控制模块,用于通过AHB总线从所述像素存储阵列中突发读取输入图像当前相邻两行的像素数据,并控制移位选择控制模块内像素数据的并行移位使得每次写入卷积计算模块的像素数据与匹配的卷积核数据对齐以加速运算过程,再通过AHB总线将当前相邻两行的像素数据在卷积计算模块中运算结果写入所述卷积结果存储阵列;主控制模块,还用于通过AHB总线读取输入图像中基于当前相邻两行的下一行的像素数据,并进行相应的移位和卷积运算处理,直到输入图像所有像素数据处理完成后发出中断告知CPU卷积运算处理的结果以减小软件指令开销;其中,卷积核数据是CPU在卷积计算模块内预先配置的卷积窗口中存储的数据;所述每次写入卷积计算模块的像素数据与匹配的卷积核数据对齐是,为实现卷积运算,控制卷积核数据所在的卷积窗口在所写入的卷积计算模块内像素数据所对应的图像矩阵上滑动过程中,形成一个包含卷积核数据所在的卷积窗口中心的重叠区域;行缓冲模块,包括移位寄存器构成的行缓冲器,用于按照图像横向像素数据长度缓冲输入图像相应行的像素数据,并根据主控制模块生成的列地址信号和状态信号将缓冲输入图像中的像素数据输出至移位选择控制模块;移位选择控制模块,用于根据主控制模块输出的所述状态信号选择行缓冲模块中输入图像相应行的像素数据,再将每一列像素数据并行移位,并对像素数据进行填充处理,使得输入图像中所有像素数据写入卷积计算模块中完成卷积运算;卷积计算模块,用于将移位选择控制模块输出的像素数据与对应的卷积核数据进行乘法运算,基于加法器组将所述乘法运算的结果相加以实现卷积运算。进一步地,所述行缓冲模块的行缓冲器包括第一行缓冲器、第二行缓冲器和第三行缓冲器,用于通过列地址选择端和状态选择端分别与所述主控制模块并联连接,其中:第一行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第一预置行的像素数据;第二行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第二预置行的像素数据;第三行缓冲器用于在所述主控制模块的控制下缓冲AHB总线突发读取的输入图像的第三预置行的像素数据;所述第一预置行、所述第二预置行和所述第三预置行是AHB总线从所述像素存储阵列中突发读取的输入图像中彼此相邻的三个行序号,且这三个行序号所对应的像素数据被AHB总线突发读取后根据矩阵卷积运算规律更新。进一步地,所述移位选择控制模块包括第一选择器、第二选择器、第三选择器和3*3卷积窗口控制逻辑;第一选择器、第二选择器和第三选择器都有三个输入端,这三个输入端分别为第一输入端、第二输入端、第三输入端,其中,第一选择器的第一输入端与所述第三行缓冲器的输出端相连接,第一选择器的第二输入端与所述第一行缓冲器的输出端相连接,第一选择器的第三输入端与所述第二行缓冲器的输出端相连接;第二选择器的第一输入端与所述第一行缓冲器的输出端相连接,第二选择器的第二输入端与所述第二行缓冲器的输出端相连接,第二选择器的第三输入端与所述第三行缓冲器的输出端相连接;第三选择器的第一输入端与所述第二行缓冲器的输出端相连接,第三选择器的第二输入端与所述第三行缓冲器的输出端相连接,第三选择器的第三输入端与所述第一行缓冲器的输出端相连接;3*3卷积窗口控制逻辑,包括由第一移位寄存器、第二移位寄存器和第三移位寄存器构成的3*3卷积窗口,其中,第一移位寄存器、第二移位寄存器和第三移位寄存器都由三个寄存器组合构成;第一移位寄存器的输入端与第一选择器的输出端相连,用于缓冲第一选择器选择进入3*3卷积窗口第一行的像素数据;第二移位寄存器的输入端与第二选择器的输出端相连,用于缓冲第二选择器选择进入3*3卷积窗口第二行的像素数据;第三移位寄存器的输入端与第三选择器的输出端相连,用于缓冲第三选择器选择进入3*3卷积窗口第三行的像素数据;其中,第一选择器的一个地址输入端与第二选择器的一个地址输入端相连接,第二选择器的另一个地址输入端和第三选择器的一个地址输入端相连接,第三选择器的另一个地址输入端与所述主控制模块连接,用于接收所述状态信号。进一步地,所述移位选择控制模块还包括边缘填充逻辑,包括填充选择器、边缘检测逻辑和像素填充逻辑;边缘检测逻辑,分别与像素填充逻辑和填充选择器相连接,用于判定3*3卷积窗口内的待检测像素点在输入图像的地址位置,并将判断结果信号输出至像素填充逻辑和填充选择器的选择端;填充选择器,包括填充输入端和不填充输入端,用于根据其选择端接收的边缘检测逻辑的判断结果信号选择相应输入端的像素数据写入卷积计算模块;像素填充逻辑,用于根据边缘检测逻辑的判断结果信号对所述3*3卷积窗口控制逻辑移位输出的像素数据进行对称填充,使得3*3卷积窗口所框定的以边界像素点为中心的图像矩阵与所述卷积核数据完成平面卷积,并输出至填充选择器的填充输入端。进一步地,所述主控制模块包括主状态机,所述主状态机的工作状态包括第一行首次写状态、第二行首次写状态、第一行卷积状态、第三行写状态、第二行卷积状态、第一行写状态、第三行卷积状态和第二行写状态;主状态机,用于在第一行首次写状态下,通过第一行读写使能信号控制AHB总线首次突发读取所述第一预置行的像素数据,并写入所述第一行缓冲器中;在第二行首次写状态下,通过第二行读写使能信号控制AHB总线首次突发读取所述第二预置行的像素数据,并写入所述第二行缓冲器中;在第一行卷积状态下,通过第一行卷积使能信号控制读取出所述第一行缓冲器中的像素数据,并根据列地址使能信号将读取出的像素数据移位写入所述卷积计算模块中进行卷积运算;在第三行写状态下,通过第三行读写使能信号控制AHB总线突发读取所述第三预置行的像素数据,并写入所述第三行缓冲器中;在第二行卷积状态下,通过第二行卷积使能信号控制读取出所述第二行缓冲器中的像素数据,并根据列地址使能信号将读取出的像素数据移位写入所述卷积计算模块中进行卷本文档来自技高网...

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

【技术特征摘要】
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