CN114155222B - 一种基于fpga的实时边缘检测系统 - Google Patents
一种基于fpga的实时边缘检测系统 Download PDFInfo
- Publication number
- CN114155222B CN114155222B CN202111477550.9A CN202111477550A CN114155222B CN 114155222 B CN114155222 B CN 114155222B CN 202111477550 A CN202111477550 A CN 202111477550A CN 114155222 B CN114155222 B CN 114155222B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- image
- image data
- shift 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.)
- Active
Links
- 238000003708 edge detection Methods 0.000 title claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000004364 calculation method Methods 0.000 claims abstract description 10
- 230000007797 corrosion Effects 0.000 claims description 23
- 238000005260 corrosion Methods 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 18
- 101100327165 Arabidopsis thaliana CCD8 gene Proteins 0.000 claims description 12
- 102100022002 CD59 glycoprotein Human genes 0.000 claims description 12
- 101000897400 Homo sapiens CD59 glycoprotein Proteins 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 101100382854 Arabidopsis thaliana CCD7 gene Proteins 0.000 claims description 6
- 101100129496 Arabidopsis thaliana CYP711A1 gene Proteins 0.000 claims description 6
- 101100129499 Arabidopsis thaliana MAX2 gene Proteins 0.000 claims description 6
- 101100083446 Danio rerio plekhh1 gene Proteins 0.000 claims description 6
- 101000766246 Homo sapiens Probable E3 ubiquitin-protein ligase MID2 Proteins 0.000 claims description 6
- 102100026310 Probable E3 ubiquitin-protein ligase MID2 Human genes 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 102100022404 E3 ubiquitin-protein ligase Midline-1 Human genes 0.000 claims description 3
- 101000680670 Homo sapiens E3 ubiquitin-protein ligase Midline-1 Proteins 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 4
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于FPGA的实时边缘检测系统,包括:OV5640摄像头、图像处理模块、Axi4流视频输入模块、可变地址多址模块、Axi4流视频输出模块、视频时间控制模块、动态时钟模块、DDR3;其中,Ov5640摄像头模块用于实时收集数据;图像处理模块用于对图像数据加工处理;视频时间控制模块和动态时钟模块用于控制各个模块;Axi4流视频输入模块和Axi4流视频输出模块用于将视频流数据转换成Axi4流格式的数据;可变地址多址模块用于读取和传输DDR3中数据。本发明旨在增强边缘检测系统设计的性能,加快计算速度、降低资源利用率、应用更多实际场景。
Description
技术领域
本发明属于视频图像边缘检测的技术领域,具体的说是主要应用于一些对图像帧数要求较高的人脸识别系统、虹膜识别、手势识别、障碍识别,以及无人驾驶、交通道路上车牌识别等场合的一种基于FPGA的实时边缘检测系统。
背景技术
图像边缘可代表图像最本质特征,其携带了许多重要的图像信息,在提取图像边缘时,能够在保留大部分图形信息的境况下,有效地减少数据量。而边缘识别也正是图像处理和机械视觉的基础技术,现如今视频图像数据正朝着高分辨率、高帧数的方向发展,图像数据处理量巨大,因此对处理速度的要求非常严格,这样才能满足图像数据传输的实时性。
边缘是数字图像处理中的重要内容,随着边缘检测技术的发展,在边缘检测精度不断提高的同时程序的复杂性也在不断增加,而边缘检测的很多使用场合都要求具有较高的实时性和较低的功耗。在某些重要的场合,利用软件程序实现边缘检测是以往传统的处理手段,如一般处理器例如单片机、DSP,GPU等大多只能对静态或者帧数要求较低的图像完成图像处理,串行结构处理方式已经不能较好地实现高速以及实时性,由于串行执行的特点会导致运算效率过低,丢帧现象普遍,消耗更多的处理时间,因此很难满足速度、精度的要求。
发明内容
本发明为解决上述现有技术中存在的不足之处,提出一种基于FPGA的实时边缘检测系统,以期能实现对任意图片的高速实时处理,满足图像边缘检测处理的实效性和可靠性要求,同时能降低资源的消耗、加快运算效率。
本发明为解决技术问题采用如下技术方案:
本发明一种基于FPGA的实时边缘检测系统的特点包括:OV5640摄像头模块、OV5640图像获取模块、OV5640配置模块、图像处理模块、Axi4流视频输入模块、可变地址多址模块、Axi4流视频输出模块、数字视频接口模块、视频时间控制模块、动态时钟模块、Axi智能互联模块、HP接口、Axi互联模块、GP接口、HDMI接口、DDR3;其中,所述图像处理模块包括:中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块;
所述动态时钟模块用于产生全局时钟以控制其余模块,并产生五倍于全局时钟频率的像素时钟以控制数字视频接口模块;
在所述全局时钟的控制下,所述Ov5640配置模块用于配置Ov5640摄像头的初始化状态;
所述Ov5640摄像头实时采集图像数据并将该数据传输至Ov5640图像获取模块;
所述Ov5640图像获取模块将所接收到的图像数据进行数据位宽的处理,并将处理后的图像数据传输至图像处理模块;
所述图像处理模块接收所述图像数据,并利用中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块分别依次进行中值滤波、Sobel边缘检测、腐蚀膨胀操作,得到处理后的图像数据并传输到Axi4流视频输入模块;
所述Axi4流视频输入模块接收所述处理后的图像数据,并转换成Axi4流格式的数据后传输至可变地址多址模块中;
所述可变地址多址模块通过Axi4智能互联模块与HP端口连接,用于高速访问DDR3;同时,所述可变地址多址模块将Axi4流格式的图像数据通过写通道转换成Axi4内存映射格式的图像数据并存储在DDR3中;并从所述DDR3中读取Axi4内存映射格式的图像数据再转换为Axi4流格式的图像数据后传输给所述Axi4流视频输出模块;
在所述全局时钟的控制下,所述视频时间控制模块产生工作时钟;
所述Axi4流视频输出模块在所述工作时钟的控制下,将所接收的Axi4流格式的图像数据转换成视频数据格式的图像数据后发送给数字视频接口模块;
在所述像素时钟的控制下,所述数字视频接口模块将所接收到的视频数据格式的图像数据转换成RGB888数据格式的图像数据并传输至HDMI接口;
所述HDMI接口用于将RGB888数据格式的图像数据显示到外接的显示屏上;
所述GP接口用于所述Axi互联模块与外设配置接口的互联,从而依据外设配置接口所连接的显示屏参数对所述动态时钟模块的全局时钟、视频时间控制模块的工作时钟、可变地址多址模块的初始化参数进行配置。
本发明所述的一种基于FPGA的实时边缘检测系统的特点也在于,所述中值滤波模块包括:三个移位寄存器模块、三个排序模块、一个最大值模块、两个中值模块、一个最小值模块;
在第一个全局时钟时,第一移位寄存器模块进行初始化,令三组图像数据DATA11、DATA12、DATA13的值都为0;第二移位寄存器模块也进行时初始化,令三组图像数据DATA21、DATA22、DATA23的值都为0;第三移位寄存器模块也进行初始化,令三组图像数据DATA31、DATA32、DATA33的值都为0;
在当前任意第i个全局时钟下,所述第一移位寄存器模块将第一组图像数据DATA11传输给第二移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA11、DATA12、DATA13传输给第一排序模块;
在当前任意第i个全局时钟下,第一移位寄存器模块接收所述Ov5640图像获取模块传输的一组图像数据,并命名为DATA_1,并将DATA12赋值给DATA11、将DATA13赋值给DATA12、将DATA_1赋值给DATA13;
在当前任意第i个全局时钟下,所述第二移位寄存器模块将一组图像数据DATA21传输给第三移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA21、DATA22、DATA23传输给第二排序模块;
在当前任意第i个全局时钟下,所述第二移位寄存器模块接收所述第一移位寄存器模块传输的一组图像数据DATA11,并命名为DATA_2,并将DATA22赋值给DATA21、将DATA23赋值给DATA22、将DATA_2赋值给DATA23;
在当前任意第i个全局时钟下,所述第三移位寄存器模块将第i个全局时钟下存储的三组图像数据DATA31、DATA32、DATA33传输给第三排序模块;
在当前任意第i个全局时钟下,所述第三移位寄存器模块接收所述第二移位寄存器模块传输的一组图像数据DATA21,并命名为DATA_3,将DATA32赋值给DATA31、将DATA33赋值给DATA32、将DATA_3赋值给DATA33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;
在当前第i+1个全局时钟下,所述第一排序模块将所述第三移位寄存器模块存储的三组图像数据DATA11、DATA12、DATA13进行排序处理,得到最大值MAX1、中值MID1、最小值MIN1;
在当前第i+1个全局时钟下,所述第二排序模块在将所述第二移位寄存器模块存储的三组图像数据DATA21、DATA22、DATA23进行排序处理,得到最大值MAX2、中值MID2、最小值MIN2;
在当前第i+1个全局时钟下,所述第三排序模块将所述第一移位寄存器模块存储的三组图像数据DATA31、DATA32、DATA33并进行排序处理,得到最大值MAX3、中值MID3、最小值MIN3;
在当前第i+2个全局时钟下,所述第一最大值模块对三个最大值MAX1、MAX2、MAX3进行排序处理,得到三个最大值中的最小值MAX4,并将得到的值MAX4传输给第二中值模块;
在当前第i+2个全局时钟下,所述第一中值模块对所述三个中值MID1、MID2、MID3进行排序处理,得到三个中值中的中值MID4,并将得到的值MID4传输给第二中值模块;
在当前第i+2个全局时钟下,所述第一最小值模块对三个最小值MIN1、MIN2、MIN3进行排序处理,得到三个最小值中的最大值MIN4,并将得到的值MIN4传输给第二中值模块;
在当前第i+3个全局时钟下,所述第二中值模块对接收到的MAX4、MID4、MIN4进行排序处理,得到三者的中值MID5并作为滤波后的图像数据后输出给所述Sobel边缘检测模块。
所述Sobel边缘检测模块包括:三个移位寄存器模块、卷积模块、一个梯度模块、一个阈值模块;
在第一个全局时钟时,第四移位寄存器模块进行初始化,令三组图像数据Image11、Image12、Image13的值都为0;第五移位寄存器模块也进行初始化,令三组图像数据Image21、Image22、Image23的值都为0;第六移位寄存器模块也进行初始化,令三组图像数据Image31、Image32、Image33的值都为0;
在当前第i+4个全局时钟下,所述第四移位寄存器模块传输一组图像数据Image11给第二移位寄存器模块,同时接收所述中值滤波模块传输的滤波后的一组图像数据,并命名为Image_1,并将Image12赋值给Image11、将Image13赋值给Image12、将Image_1赋值给Image13;
在当前第i+4个全局时钟下,所述第五移位寄存器模块传输一组图像数据Image21给第三移位寄存器模块,并接收所述第四移位寄存器模块传输的一组图像数据Image11,并命名为Image_1,将Image22赋值给Image21、将Image23赋值给Image22、将Image_2赋值给Image23;
在当前第i+4个全局时钟下,所述第六移位寄存器模块接收所述第五移位寄存器模块传输的一组图像数据Image21,并命名为Image_3,并将Image32赋值给Image31、将Image33赋值给Image32、将Image_3赋值给Image33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;
在当前第i+5个全局时钟下,所述卷积模块接收三行三列的图像数据矩阵并分别与八个方向的Sobel算子进行卷积计算,每个全局时钟下进行一次卷积计算,最终经过8个全局时钟后得到八个方向的卷积值G0、G45、G90、G135、G180、G225、G270、G315;
在当前第i+13个全局时钟下,所述梯度模块对所述卷积模块得到的八个卷积值G0、G45、G90、G135、G180、G225、G270、G315分别进行平方操作处理,得到八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2;
在当前第i+14个全局时钟下,所述梯度模块对得到的八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2一起进行开根号处理,得到Sobel梯度值G;
在当前第i+15个全局时钟下,所述阈值模块将所述Sobel梯度值G与设定的阈值K进行比较,若梯度值G大于阈值K,则输出“1”作为Sobel边缘检测模块的输出并传输给所述腐蚀膨胀模块,否则,输出“0”作为Sobel边缘检测模块的输出并传输给腐蚀膨胀模块。
与现有技术相比,本发明的有益效果在于:
1、本发明采用了Xilinx的Zynq系列开发板,在该开发板的基础上一种实现了基于FPGA的实时边缘检测系统,使得计算结果、速度和资源消耗等与传统进行对比评估,数据传输和计算的时间达到最优,极大地提高了算法的执行效率,能为实时图像处理系统的速度与稳定性提供保障。此外,相较于传统的基于FPGA的实时边缘检测系统采用的Altera系列开发板,Xilinx的Zynq系列开发板在高分辨率、高帧数的人脸识别系统、虹膜识别、手势识别等领域中的应用更加广泛、潜力更大。
2、本发明采用了新的Sobel边缘检测算法,在传统Sobel算法计算垂直和水平方向的基础上,额外加入45度、135度、180度、225度、270度、315度六个方向的Sobel算子,增加了图像边缘的强度,满足了复杂边缘和高分辨率精度的要求,提高了图像边缘检测效果。
附图说明
图1为本发明一种基于FPGA的实时边缘检测系统框架图;
图2为本发明图像处理模块的流程示意图;
图3为本发明3x3图像数据矩阵构成示意图;
图4为本发明中值滤波处理流程示意图;
图5为本发明八方向Sobel边缘检测模块运算示意图;
图6为本发明Sobel算子与3x3图像矩阵卷积过程示意图;
图7为本发明八方向Sobel算子示意图。
具体实施方式
本实施例中,一种基于FPGA的实时边缘检测系统,如图1所示,包括:OV5640摄像头模块、OV5640图像获取模块、OV5640配置模块、图像处理模块、Axi4流视频输入模块、可变地址多址模块、Axi4流视频输出模块、数字视频接口模块、视频时间控制模块、动态时钟模块、Axi智能互联模块、HP接口、Axi互联模块、GP接口、HDMI接口、DDR3;其中,图像处理模块包括:中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块;
动态时钟模块用于产生全局时钟以控制其余模块,并产生五倍于全局时钟频率的像素时钟以控制数字视频接口模块;
在全局时钟的控制下,Ov5640配置模块用于配置Ov5640摄像头的初始化状态;
Ov5640摄像头实时采集图像数据并将该数据传输至Ov5640图像获取模块;在具体实施中,OV5640摄像头输出的数据格式为RGB565,而数据位宽是8位,因此需要将两次输入的8位数据拼接成一个RGB565的数据格式在该实例中Ov5640摄像头实时收集图像的大小为1280*720,单位是像素;
Ov5640图像获取模块将所接收到的图像数据进行数据位宽的处理,并将处理后的图像数据传输至图像处理模块;在本实施例中,因为Axi4流视频输入模块的输入端口为视频流数据,而OV5640摄像头输出的数据为行场同步信号控制的8位数据,这两个端口不可以直接连接,需要先经过数据的转换才能连接,因此本设计通过添加了一个图像采集模块来实现这个数据的转换;
如图2所示,图像处理模块接收图像数据,并利用中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块分别依次进行中值滤波、Sobel边缘检测、腐蚀膨胀操作,得到处理后的图像数据并传输到Axi4流视频输入模块;
Axi4流视频输入模块接收处理后的图像数据,并转换成Axi4流格式的数据后传输至可变地址多址模块中;
可变地址多址模块通过Axi4智能互联模块与HP端口连接,用于高速访问DDR3;同时,可变地址多址模块将Axi4流格式的图像数据通过写通道转换成Axi4内存映射格式的图像数据并存储在DDR3中;并从DDR3中读取Axi4内存映射格式的图像数据再转换为Axi4流格式的图像数据后传输给Axi4流视频输出模块;
在全局时钟的控制下,视频时间控制模块产生工作时钟;
Axi4流视频输出模块在工作时钟的控制下,将所接收的Axi4流格式的图像数据转换成视频数据格式的图像数据后发送给数字视频接口模块;
在像素时钟的控制下,数字视频接口模块将所接收到的视频数据格式的图像数据转换成RGB888数据格式的图像数据并传输至HDMI接口;
HDMI接口用于将RGB888数据格式的图像数据显示到外接的显示屏上;
GP接口用于Axi互联模块与外设配置接口的互联,从而依据外设配置接口所连接的显示屏参数对动态时钟模块的全局时钟、视频时间控制模块的工作时钟、可变地址多址模块的初始化参数进行配置。在具体实施中,处理系统通过GP接口获取外接显示屏ID,并根据获取到的ID,配置可变地址多址模块的帧缓存空间大小、读通道等以及配置视频时间控制模块的输出的时序参数。
腐蚀膨胀模块对接收到的图像数据III依次进行腐蚀、膨胀操作,其中腐蚀操作的作用是可以使图像数据中的物体缩小或细化,将小于结构元素的图像细节从图像数据中滤除;膨胀操作的作用是可以弥合图像数据中较窄的间断和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂。在具体实践中,腐蚀操作后图像更加精细,在很大程度上抑制了噪声,而进行膨胀操作后,图像的边缘变厚,效果更清晰;
在腐蚀膨胀模块进行完腐蚀、膨胀操作后,将得到的数据作为整个图像处理模块的输出数据传输给Axi4流视频输入模块。在具体实施中,腐蚀操作实际操作为:用3x3的结构元素扫描图像的每个像素,用结构元素覆盖的二元图像进行“和”操作。如果两者都为1,则结果图像中的像素均为1。否则,它为0。该结果将使二进值图像减少一个圆。在FPGA中,为了提高运行速度,该算法可以用以下公式来实现:
Pcor_lin1=P11&P12&P13;
Pcor_lin2=P21&P22&P23;
Pcor_lin3=P31&P32&P33;
Pcorrosion=Pcor_lin1&Pcor_lin2&Pcor_lin3;
同样,膨胀操作实际操作为将图像的每个像素用3x3个结构元素进行扫描,用结构元素覆盖的二元图像进行“或”操作。如果两者都为0,则结果图像中的像素均为0。否则,它为1。该结果将使二进值图像放大一个圆。在FPGA中,为了提高运行速度,该算法可以用以下公式来实现:
Pexp_lin1=P11|P12|P13;
Pexp_lin2=P21|P22|P23;
Pexp_lin3=P31|P32|P33;
Pexpansion=Pexp_lin1|Pexp_lin2|Pexp_lin3;
在本实施例例中,中值滤波模块包括:三个移位寄存器模块、三个排序模块、一个最大值模块、两个中值模块、一个最小值模块,具体如图4所示;
在第一个全局时钟时,第一移位寄存器模块进行初始化,令三组图像数据DATA11、DATA12、DATA13的值都为0;第二移位寄存器模块也进行时初始化,令三组图像数据DATA21、DATA22、DATA23的值都为0;第三移位寄存器模块也进行初始化,令三组图像数据DATA31、DATA32、DATA33的值都为0;
在当前任意第i个全局时钟下,第一移位寄存器模块将第一组图像数据DATA11传输给第二移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA11、DATA12、DATA13传输给第一排序模块;
在当前任意第i个全局时钟下,第一移位寄存器模块接收Ov5640图像获取模块传输的一组图像数据,并命名为DATA_1,并将DATA12赋值给DATA11、将DATA13赋值给DATA12、将DATA_1赋值给DATA13;
在当前任意第i个全局时钟下,第二移位寄存器模块将一组图像数据DATA21传输给第三移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA21、DATA22、DATA23传输给第二排序模块;
在当前任意第i个全局时钟下,第二移位寄存器模块接收第一移位寄存器模块传输的一组图像数据DATA11,并命名为DATA_2,并将DATA22赋值给DATA21、将DATA23赋值给DATA22、将DATA_2赋值给DATA23;
在当前任意第i个全局时钟下,第三移位寄存器模块将第i个全局时钟下存储的三组图像数据DATA31、DATA32、DATA33传输给第三排序模块;
在当前任意第i个全局时钟下,第三移位寄存器模块接收第二移位寄存器模块传输的一组图像数据DATA21,并命名为DATA_3,将DATA32赋值给DATA31、将DATA33赋值给DATA32、将DATA_3赋值给DATA33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;具体如图3所示。
在具体实施中,本设计将数据的位宽定义为8位,每行有1024条数据,同时注册两行数据。首先,在使能时钟的作用下,将输入信号延迟一个周期,以此保证数据的同步。其次,输入并实例化所需的三行数据,通过利用两个移位寄存器模块,可以得到所需的3x3矩阵。在本设计中,三个移位寄存器模块实际上是使用两个Ram来实现的,两个Ram依次存储图像的前两行的数据。Ram1存储第一行的数据,Ram0存储第二行的数据,输入的图像数据为第三行。
在当前第i+1个全局时钟下,第一排序模块将第三移位寄存器模块存储的三组图像数据DATA11、DATA12、DATA13进行排序处理,得到最大值MAX1、中值MID1、最小值MIN1;
在当前第i+1个全局时钟下,第二排序模块在将第二移位寄存器模块存储的三组图像数据DATA21、DATA22、DATA23进行排序处理,得到最大值MAX2、中值MID2、最小值MIN2;
在当前第i+1个全局时钟下,第三排序模块将第一移位寄存器模块存储的三组图像数据DATA31、DATA32、DATA33并进行排序处理,得到最大值MAX3、中值MID3、最小值MIN3;
在当前第i+2个全局时钟下,第一最大值模块对三个最大值MAX1、MAX2、MAX3进行排序处理,得到三个最大值中的最小值MAX4,并将得到的值MAX4传输给第二中值模块;
在当前第i+2个全局时钟下,第一中值模块对三个中值MID1、MID2、MID3进行排序处理,得到三个中值中的中值MID4,并将得到的值MID4传输给第二中值模块;
在当前第i+2个全局时钟下,第一最小值模块对三个最小值MIN1、MIN2、MIN3进行排序处理,得到三个最小值中的最大值MIN4,并将得到的值MIN4传输给第二中值模块;
在当前第i+3个全局时钟下,第二中值模块对接收到的MAX4、MID4、MIN4进行排序处理,得到三者的中值MID5并作为滤波后的图像数据后输出给Sobel边缘检测模块。
在具体实施中,Sobel滤波模块包括:三个移位寄存器模块、卷积模块、一个梯度模块、一个阈值模块,具体如图5所示。
在第一个全局时钟时,第四移位寄存器模块进行初始化,令三组图像数据Image11、Image12、Image13的值都为0;第五移位寄存器模块也进行初始化,令三组图像数据Image21、Image22、Image23的值都为0;第六移位寄存器模块也进行初始化,令三组图像数据Image31、Image32、Image33的值都为0;
在当前第i+4个全局时钟下,第四移位寄存器模块传输一组图像数据Image11给第二移位寄存器模块,同时接收中值滤波模块传输的滤波后的一组图像数据,并命名为Image_1,并将Image12赋值给Image11、将Image13赋值给Image12、将Image_1赋值给Image13;
在当前第i+4个全局时钟下,第五移位寄存器模块传输一组图像数据Image21给第三移位寄存器模块,并接收第四移位寄存器模块传输的一组图像数据Image11,并命名为Image_1,将Image22赋值给Image21、将Image23赋值给Image22、将Image_2赋值给Image23;
在当前第i+4个全局时钟下,第六移位寄存器模块接收第五移位寄存器模块传输的一组图像数据Image21,并命名为Image_3,并将Image32赋值给Image31、将Image33赋值给Image32、将Image_3赋值给Image33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;
在当前第i+5个全局时钟下,卷积模块接收三行三列的图像数据矩阵并分别与八个方向的Sobel算子进行卷积计算,每个全局时钟下进行一次卷积计算,最终经过8个全局时钟后得到八个方向的卷积值G0、G45、G90、G135、G180、G225、G270、G315;
在当前第i+13个全局时钟下,梯度模块对卷积模块得到的八个卷积值G0、G45、G90、G135、G180、G225、G270、G315分别进行平方操作处理,得到八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2;在本实施例中,八个方向Sobel算子如图7所示。
在当前第i+14个全局时钟下,梯度模块对得到的八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2一起进行开根号处理,得到Sobel梯度值G;在本实施例中,图像数据与Sobel算子的计算依据公式G卷积=A3X3图像矩阵*Sobel_X,Sobel_X为对应方向的Sobel算子,具体运算过程如图6所示。
在当前第i+15个全局时钟下,阈值模块将Sobel梯度值G与设定的阈值K进行比较,若梯度值G大于阈值K,则输出“1”作为Sobel边缘检测模块的输出并传输给腐蚀膨胀模块,否则,输出“0”作为Sobel边缘检测模块的输出并传输给腐蚀膨胀模块。
在本实施例中,以FPGA为开发平台,利用Xilinx的Zynq系列开发板,对ov5640相机收集的30帧/s、分辨率为1280x720的彩色视频图像进行实时边缘检测算法处理,并且结合中值滤波器Sobel边缘检测算法和腐蚀膨胀算法,最后通过HDMI界面进行显示。
Claims (3)
1.一种基于FPGA的实时边缘检测系统,其特征包括:OV5640摄像头模块、OV5640图像获取模块、OV5640配置模块、图像处理模块、Axi4流视频输入模块、可变地址多址模块、Axi4流视频输出模块、数字视频接口模块、视频时间控制模块、动态时钟模块、Axi智能互联模块、HP接口、Axi互联模块、GP接口、HDMI接口、DDR3;其中,所述图像处理模块包括:中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块;
所述动态时钟模块用于产生全局时钟以控制其余模块,并产生五倍于全局时钟频率的像素时钟以控制数字视频接口模块;
在所述全局时钟的控制下,所述Ov5640配置模块用于配置Ov5640摄像头的初始化状态;
所述Ov5640摄像头实时采集图像数据并将该数据传输至Ov5640图像获取模块;
所述Ov5640图像获取模块将所接收到的图像数据进行数据位宽的处理,并将处理后的图像数据传输至图像处理模块;
所述图像处理模块接收所述图像数据,并利用中值滤波模块、Sobel边缘检测模块、腐蚀膨胀模块分别依次进行中值滤波、Sobel边缘检测、腐蚀膨胀操作,得到处理后的图像数据并传输到Axi4流视频输入模块;
所述Axi4流视频输入模块接收所述处理后的图像数据,并转换成Axi4流格式的数据后传输至可变地址多址模块中;
所述可变地址多址模块通过Axi4智能互联模块与HP端口连接,用于高速访问DDR3;同时,所述可变地址多址模块将Axi4流格式的图像数据通过写通道转换成Axi4内存映射格式的图像数据并存储在DDR3中;并从所述DDR3中读取Axi4内存映射格式的图像数据再转换为Axi4流格式的图像数据后传输给所述Axi4流视频输出模块;
在所述全局时钟的控制下,所述视频时间控制模块产生工作时钟;
所述Axi4流视频输出模块在所述工作时钟的控制下,将所接收的Axi4流格式的图像数据转换成视频数据格式的图像数据后发送给数字视频接口模块;
在所述像素时钟的控制下,所述数字视频接口模块将所接收到的视频数据格式的图像数据转换成RGB888数据格式的图像数据并传输至HDMI接口;
所述HDMI接口用于将RGB888数据格式的图像数据显示到外接的显示屏上;
所述GP接口用于所述Axi互联模块与外设配置接口的互联,从而依据外设配置接口所连接的显示屏参数对所述动态时钟模块的全局时钟、视频时间控制模块的工作时钟、可变地址多址模块的初始化参数进行配置。
2.根据权利要求1所述的一种基于FPGA的实时边缘检测系统,其特征是,所述中值滤波模块包括:三个移位寄存器模块、三个排序模块、一个最大值模块、两个中值模块、一个最小值模块;
在第一个全局时钟时,第一移位寄存器模块进行初始化,令三组图像数据DATA11、DATA12、DATA13的值都为0;第二移位寄存器模块也进行时初始化,令三组图像数据DATA21、DATA22、DATA23的值都为0;第三移位寄存器模块也进行初始化,令三组图像数据DATA31、DATA32、DATA33的值都为0;
在当前任意第i个全局时钟下,所述第一移位寄存器模块将第一组图像数据DATA11传输给第二移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA11、DATA12、DATA13传输给第一排序模块;
在当前任意第i个全局时钟下,第一移位寄存器模块接收所述Ov5640图像获取模块传输的一组图像数据,并命名为DATA_1,并将DATA12赋值给DATA11、将DATA13赋值给DATA12、将DATA_1赋值给DATA13;
在当前任意第i个全局时钟下,所述第二移位寄存器模块将一组图像数据DATA21传输给第三移位寄存器模块,同时将第i个全局时钟下存储的三组图像数据DATA21、DATA22、DATA23传输给第二排序模块;
在当前任意第i个全局时钟下,所述第二移位寄存器模块接收所述第一移位寄存器模块传输的一组图像数据DATA11,并命名为DATA_2,并将DATA22赋值给DATA21、将DATA23赋值给DATA22、将DATA_2赋值给DATA23;
在当前任意第i个全局时钟下,所述第三移位寄存器模块将第i个全局时钟下存储的三组图像数据DATA31、DATA32、DATA33传输给第三排序模块;
在当前任意第i个全局时钟下,所述第三移位寄存器模块接收所述第二移位寄存器模块传输的一组图像数据DATA21,并命名为DATA_3,将DATA32赋值给DATA31、将DATA33赋值给DATA32、将DATA_3赋值给DATA33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;
在当前第i+1个全局时钟下,所述第一排序模块将所述第三移位寄存器模块存储的三组图像数据DATA11、DATA12、DATA13进行排序处理,得到最大值MAX1、中值MID1、最小值MIN1;
在当前第i+1个全局时钟下,所述第二排序模块在将所述第二移位寄存器模块存储的三组图像数据DATA21、DATA22、DATA23进行排序处理,得到最大值MAX2、中值MID2、最小值MIN2;
在当前第i+1个全局时钟下,所述第三排序模块将所述第一移位寄存器模块存储的三组图像数据DATA31、DATA32、DATA33并进行排序处理,得到最大值MAX3、中值MID3、最小值MIN3;
在当前第i+2个全局时钟下,所述第一最大值模块对三个最大值MAX1、MAX2、MAX3进行排序处理,得到三个最大值中的最小值MAX4,并将得到的值MAX4传输给第二中值模块;
在当前第i+2个全局时钟下,所述第一中值模块对所述三个中值MID1、MID2、MID3进行排序处理,得到三个中值中的中值MID4,并将得到的值MID4传输给第二中值模块;
在当前第i+2个全局时钟下,所述第一最小值模块对三个最小值MIN1、MIN2、MIN3进行排序处理,得到三个最小值中的最大值MIN4,并将得到的值MIN4传输给第二中值模块;
在当前第i+3个全局时钟下,所述第二中值模块对接收到的MAX4、MID4、MIN4进行排序处理,得到三者的中值MID5并作为滤波后的图像数据后输出给所述Sobel边缘检测模块。
3.根据权利要求1所述的一种基于FPGA的实时边缘检测系统,其特征是,所述Sobel边缘检测模块包括:三个移位寄存器模块、卷积模块、一个梯度模块、一个阈值模块;
在第一个全局时钟时,第四移位寄存器模块进行初始化,令三组图像数据Image11、Image12、Image13的值都为0;第五移位寄存器模块也进行初始化,令三组图像数据Image21、Image22、Image23的值都为0;第六移位寄存器模块也进行初始化,令三组图像数据Image31、Image32、Image33的值都为0;
在当前第i+4个全局时钟下,所述第四移位寄存器模块传输一组图像数据Image11给第二移位寄存器模块,同时接收所述中值滤波模块传输的滤波后的一组图像数据,并命名为Image_1,并将Image12赋值给Image11、将Image13赋值给Image12、将Image_1赋值给Image13;
在当前第i+4个全局时钟下,所述第五移位寄存器模块传输一组图像数据Image21给第三移位寄存器模块,并接收所述第四移位寄存器模块传输的一组图像数据Image11,并命名为Image_1,将Image22赋值给Image21、将Image23赋值给Image22、将Image_2赋值给Image23;
在当前第i+4个全局时钟下,所述第六移位寄存器模块接收所述第五移位寄存器模块传输的一组图像数据Image21,并命名为Image_3,并将Image32赋值给Image31、将Image33赋值给Image32、将Image_3赋值给Image33;从而由三个移位寄存器模块中所存储的九组图像数据构成一个三行三列的图像数据矩阵;
在当前第i+5个全局时钟下,所述卷积模块接收三行三列的图像数据矩阵并分别与八个方向的Sobel算子进行卷积计算,每个全局时钟下进行一次卷积计算,最终经过8个全局时钟后得到八个方向的卷积值G0、G45、G90、G135、G180、G225、G270、G315;
在当前第i+13个全局时钟下,所述梯度模块对所述卷积模块得到的八个卷积值G0、G45、G90、G135、G180、G225、G270、G315分别进行平方操作处理,得到八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2;
在当前第i+14个全局时钟下,所述梯度模块对得到的八个卷积值的平方G0 2、G45 2、G90 2、G135 2、G180 2、G225 2、G270 2、G315 2一起进行开根号处理,得到Sobel梯度值G;
在当前第i+15个全局时钟下,所述阈值模块将所述Sobel梯度值G与设定的阈值K进行比较,若梯度值G大于阈值K,则输出“1”作为Sobel边缘检测模块的输出并传输给所述腐蚀膨胀模块,否则,输出“0”作为Sobel边缘检测模块的输出并传输给腐蚀膨胀模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477550.9A CN114155222B (zh) | 2021-12-06 | 2021-12-06 | 一种基于fpga的实时边缘检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477550.9A CN114155222B (zh) | 2021-12-06 | 2021-12-06 | 一种基于fpga的实时边缘检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114155222A CN114155222A (zh) | 2022-03-08 |
CN114155222B true CN114155222B (zh) | 2024-02-20 |
Family
ID=80452945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111477550.9A Active CN114155222B (zh) | 2021-12-06 | 2021-12-06 | 一种基于fpga的实时边缘检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114155222B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016206508A1 (de) * | 2016-04-18 | 2017-10-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren und Vorrichtung zur Kantendetektion |
US10097818B1 (en) * | 2016-12-27 | 2018-10-09 | Advanced Testing Technologies, Inc. | Video processor with digital video signal processing capabilities |
CN111340835A (zh) * | 2020-03-27 | 2020-06-26 | 天津光电通信技术有限公司 | 基于fpga的视频图像边缘检测系统 |
CN113450376A (zh) * | 2021-06-14 | 2021-09-28 | 石河子大学 | 一种基于fpga的棉株边缘检测方法 |
CN113744189A (zh) * | 2021-08-02 | 2021-12-03 | 盐城工学院 | 一种基于fpga的自适应阈值边缘检测系统及方法 |
-
2021
- 2021-12-06 CN CN202111477550.9A patent/CN114155222B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016206508A1 (de) * | 2016-04-18 | 2017-10-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren und Vorrichtung zur Kantendetektion |
US10097818B1 (en) * | 2016-12-27 | 2018-10-09 | Advanced Testing Technologies, Inc. | Video processor with digital video signal processing capabilities |
CN111340835A (zh) * | 2020-03-27 | 2020-06-26 | 天津光电通信技术有限公司 | 基于fpga的视频图像边缘检测系统 |
CN113450376A (zh) * | 2021-06-14 | 2021-09-28 | 石河子大学 | 一种基于fpga的棉株边缘检测方法 |
CN113744189A (zh) * | 2021-08-02 | 2021-12-03 | 盐城工学院 | 一种基于fpga的自适应阈值边缘检测系统及方法 |
Non-Patent Citations (2)
Title |
---|
基于FPGA与Sobel算法的实时图像处理;王强;冀苗苗;刘立培;骆滔;乔可;;电脑与电信;20200510(05);全文 * |
基于FPGA的高速视频实时边缘检测算法设计与实现;黄峰;易浩;;湖南工程学院学报(自然科学版);20141225(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114155222A (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104200447B (zh) | 一种实时低照度彩色图像增强装置 | |
CN104902193A (zh) | 一种基于fpga对图像数据进行分割处理和显示的方法 | |
CN1306412C (zh) | 像素数据块生成装置及像素数据块生成方法 | |
CN111340835A (zh) | 基于fpga的视频图像边缘检测系统 | |
CN109889743B (zh) | 一种高低增益联合存贮的夜光遥感相机大动态范围图像获取方法 | |
Sharma et al. | Super high-speed vision platform for processing 1024× 1024 images in real time at 12500 fps | |
JPS60159973A (ja) | 画像処理装置 | |
CN107277373A (zh) | 一种高速实时图像处理系统的硬件电路 | |
CN114155222B (zh) | 一种基于fpga的实时边缘检测系统 | |
CN102158655B (zh) | 一种dvi/hdmi/dp/vga信号的后级无抖校正系统 | |
CN110493516A (zh) | 一种异速像移补偿装置及系统 | |
CN114449131A (zh) | 一种基于zynq加速的运动目标检测系统 | |
CN109873954B (zh) | 一种基于FPGA实现Bayer阵列彩色恢复方法 | |
CN113867678A (zh) | 基于电子墨水技术的视频处理装置和显示器 | |
CN113689448A (zh) | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 | |
CN107623834A (zh) | 一种基于fpga的运动目标检测系统 | |
Bako et al. | Embedded implementation of a real-time motion estimation method in video sequences | |
Gu et al. | 2000-fps multi-object extraction based on cell-based labeling | |
CN203299892U (zh) | 雾霾图像快速去雾处理组件 | |
CN112801080B (zh) | 基于fpga的印刷体数字字符自动识别装置 | |
CN110602426B (zh) | 一种视频图像边缘提取系统 | |
Putra et al. | FPGA implementation of template matching using binary sum of absolute difference | |
CN118379315B (zh) | 一种基于FPGA的8方向Sobel边缘检测系统 | |
CN111696024B (zh) | 一种基于fpga的红外图像的镜像方法及装置 | |
CN113222831B (zh) | 一种图像条带噪声去除的特征记忆遗忘单元、网络及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |