CN113689448A - 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 - Google Patents
一种基于FPGA的Sobel+Ewma边缘检测系统及方法 Download PDFInfo
- Publication number
- CN113689448A CN113689448A CN202110945025.9A CN202110945025A CN113689448A CN 113689448 A CN113689448 A CN 113689448A CN 202110945025 A CN202110945025 A CN 202110945025A CN 113689448 A CN113689448 A CN 113689448A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- ewma
- sobel
- edge detection
- 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.)
- Granted
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明一种基于FPGA的Sobel+Ewma边缘检测系统及方法,属于边缘检测技术领域;所要解决的技术问题为:提供一种基于FPGA的Sobel+Ewma边缘检测系统硬件结构的改进;解决上述技术问题采用的技术方案为:包括PC机、FPGA主控模块、显示屏,FPGA主控模块包括图片数据接收模块、数据缓存模块、Sobel+Ewma模块、数据存储模块、图片显示模块;图片数据接收模块接收从PC机发送的图片,数据缓存模块接收并缓存图片数据接收模块接收的图片数据,通过调用Sobel+Ewma模块实现卷积模板的生成;Sobel+Ewma模块对数据缓存模块的图片做边缘检测处理,数据存储模块用以接收处理好的图片数据并保存;图片显示模块将存储在数据存储模块的经过边缘处理后的图片在显示屏上进行显示;本发明应用于边缘检测。
Description
技术领域
本发明一种基于FPGA的Sobel+Ewma边缘检测系统及方法,属于边缘检测系统及方法技术领域。
背景技术
随着计算机视觉和数字图像处理等技术的不断发展边缘,实现边缘检测的算法多种多样。但是很多算法通常都存在不足之处,比如速度慢、精度差、效率低等问题。
在传统应用中,人们通常是基于CPU、DSP等串行处理器,通过编译软件程序来设计和实现边缘检测算法,然而随着图像处理技术的深入发展,所处理的图像信息越来越大,算法越来越复杂,基于软件程序的边缘检测系统已很难满足工业应用对于边缘检测实时性的要求。
现有关于Sobel边缘检测系统,主要是基于串行处理器(如CPU、DSP等)的仿真软件(如Matlab、Opencv)来设计并实现。串行处理一般具有以下缺点:(1)运算速度缓慢:串行执行指令,即指令只能按照顺序、一条一条地执行;对于图像处理这类涉及大量数据的领域,使用串行处理器进行处理极大地延长了时间周期,不利于实时图像处理。
(2)体积大、不利于携带:由于串行处理器一般的硬件平台为PC机(台式电脑、笔记本等),设备体积较大,不利于携带。不同于串行处理器,FPGA开发板体积小、仅有手掌大小,可以灵活的绑定在如无人机、工业生产线、交通检测口等无法放置大型设备的平台。
(3)检测结果不精确:现有的Sobel算法进行图像处理,所处理得到的结果显示,总会有部分边缘信息丢失。
发明内容
本发明为了克服现有技术中存在的不足,所要解决的技术问题为:提供一种基于FPGA的Sobel+Ewma边缘检测系统硬件结构的改进及检测方法的改进。
为了解决上述技术问题,本发明采用的技术方案为:一种基于FPGA的Sobel+Ewma边缘检测系统,包括PC机、FPGA主控模块、显示屏,所述FPGA主控模块外接PC机和显示屏,所述FPGA主控模块包括图片数据接收模块、数据缓存模块、Sobel+Ewma 模块、数据存储模块、图片显示模块;
所述图片数据接收模块接收来自PC机传输的串行图片数据,然后将串行数据转换为并行数据并发送给数据缓存模块;
所述数据缓存模块接收图片数据接收模块发送过来的图片数据,然后将图片数据发送给Sobel+Ewma 模块,同时生成Sobel算子所需的Sobel卷积模板;
所述Sobel+Ewma 模块通过数据缓存模块生成的Sobel卷积模板与图像数据矩阵做卷积运算,实现图片的边缘检测,图像数据经过边缘检测处理后,使用Ewma算法再次对图像数据进行处理,图像数据经Ewma算法进一步处理后,再发送给数据存储模块;
所述数据存储模块接收经过Sobel+Ewma 模块处理后图像数据,然后将图像数据发送给图像显示模块;
所述图片显示模块将存储在数据存储模块的经过边缘处理后的图片在显示屏上进行显示。
所述Sobel+Ewma 模块包括Sobel算子模块和Ewma算法模块,Sobel算子模块对图片数据进行初步边缘检测,Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测;
所述Sobel+Ewma 模块共占用38个寄存器、2个FIFO子IP核以及若干与非门,其中Sobel算子模块采用2个FIFO子IP核实现3*3卷积窗口。
所述Sobel算子模块对图片作初步边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
所述Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。
所述图片数据接收模块具体采用RS232串口接收PC机传输的图片数据。
所述显示屏具体采用材质为TFT_LCD、像素为480*800的、工作时钟为33.3MHZ、规格大小7英寸液晶显示屏,用以显示图片数据。
所述Sobel+Ewma 模块的RAM IP核具体采用Xilinx Zynq 7020主控芯片。
一种基于FPGA的Sobel+Ewma边缘检测方法,包括如下步骤:
步骤一:图片数据接收模块接收PC机传输的图片数据;
步骤二:数据缓存模块调用2个FIFO子IP核,用以接收并缓存图片数据,最终实现Sobel卷积模板的生成;
步骤三:Sobel+Ewma模块用于实现Sobel算子并对图片数据进行边缘检测;并且通过Ewma算法进一步对图片数据进行处理;
步骤四:数据存储模块调用RAM IP核,用以接收处理好的图片数据并保存;
步骤五:图片显示模块用以显示图片数据。
所述步骤三中Sobel算子图片数据进行边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
所述步骤三中通过Ewma算法进一步对图片数据进行处理的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。本发明相对于现有技术具备的有益效果为:本发明在原有的Sobel算子的基础上,再结合EWMA(融合指数加权移动平均算法),对原有的Sobel算子进行改进,所得到的边缘检测结果更加精确,纹理更加平滑,层次更加明晰。与现有的基于仿真软件的Sobel边缘检测系统相比,本系统基于FPGA硬件系统实现,运行速度高、检测结果准确、功耗更低、体积更小。
附图说明
下面结合附图对本发明做进一步说明:
图1为本发明边缘检测系统的整体框图;
图2为本发明图片数据接收模块的框图;
图3为本发明数据缓存模块的框图;
图4为本发明FIFO子IP核所生成的3*3数据矩阵结构示意图;
图5为本发明寄存器阵列、卷积模板的结构示意图;
图6为本发明Sobel+Ewma模块的框图;
图7为本发明图片显示模块的框图;
图8为行同步时序图;
图9为场同步时序图;
图10为采用本发明Sobel+Ewma边缘检测系统与传统Sobel边缘检测图像的对比结果图。
具体实施方式
如图1至图10所示,本发明一种基于FPGA的Sobel+Ewma边缘检测系统,包括PC机、FPGA主控模块、显示屏,所述FPGA主控模块外接PC机和显示屏,所述FPGA主控模块包括图片数据接收模块、数据缓存模块、Sobel+Ewma 模块、数据存储模块、图片显示模块;
所述图片数据接收模块接收来自PC机传输的串行图片数据,然后将串行数据转换为并行数据并发送给数据缓存模块;
所述数据缓存模块接收图片数据接收模块发送过来的图片数据,然后将图片数据发送给Sobel+Ewma 模块,同时生成Sobel算子所需的Sobel卷积模板;
所述Sobel+Ewma 模块通过数据缓存模块生成的Sobel卷积模板与图像数据矩阵做卷积运算,实现图片的边缘检测,图像数据经过边缘检测处理后,使用Ewma算法再次对图像数据进行处理,图像数据经Ewma算法进一步处理后,再发送给数据存储模块;
所述数据存储模块接收经过Sobel+Ewma 模块处理后图像数据,然后将图像数据发送给图像显示模块;
所述图片显示模块将存储在数据存储模块的经过边缘处理后的图片在显示屏上进行显示。
所述Sobel+Ewma 模块包括Sobel算子模块和Ewma算法模块,Sobel算子模块对图片数据进行初步边缘检测,Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测;
所述Sobel+Ewma 模块共占用38个寄存器、2个FIFO子IP核以及若干与非门,其中Sobel算子模块采用2个FIFO子IP核实现3*3卷积窗口。
所述Sobel算子模块对图片作初步边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
所述Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。
所述图片数据接收模块具体采用RS232串口接收PC机传输的图片数据。
所述显示屏具体采用材质为TFT_LCD、像素为480*800的、工作时钟为33.3MHZ、规格大小7英寸液晶显示屏,用以显示图片数据。
所述Sobel+Ewma 模块的RAM IP核具体采用Xilinx Zynq 7020主控芯片。
一种基于FPGA的Sobel+Ewma边缘检测方法,包括如下步骤:
步骤一:图片数据接收模块接收PC机传输的图片数据;
步骤二:数据缓存模块调用2个FIFO子IP核,用以接收并缓存图片数据,最终实现Sobel卷积模板的生成;
步骤三:Sobel+Ewma模块用于实现Sobel算子并对图片数据进行边缘检测;并且通过Ewma算法进一步对图片数据进行处理;
步骤四:数据存储模块调用RAM IP核,用以接收处理好的图片数据并保存;
步骤五:图片显示模块用以显示图片数据。
所述步骤三中Sobel算子图片数据进行边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
所述步骤三中通过Ewma算法进一步对图片数据进行处理的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。
本发明提供的基于FPGA的Sobel+Ewma边缘检测系统采用FPGA开发板来实现Sobel算子的边缘检测系统设计;因为与传统的CPU、DSP等串行处理器相比,FPGA具有可并行计算、流水线处理指令等优点,特别是并行处理这一优点,可以在一个时间周期内对多个数据进行处理,从而极大地提高了处理图像数据的速率,因此为图像处理实时性进一步打下了基础。
本发明采用Sobel+Ewma算法实现边缘检测系统;在原有的Sobel算子的基础上,再结合Ewma(融合指数加权移动平均算法),对原有的Sobel算子进行改进,所得到的边缘检测结果更加精确,纹理更加平滑,层次更加明晰。与传统的采用Sobel算法实现边缘检测系统相比,本发明采用了Sobel+Ewma算法实现边缘检测系统。下面分别简述Ewma算法和Sobel算法。
本发明采用的Sobel算法,主要是通过水平和垂直的3*3卷积窗口,如图5所示,与图像数据作卷积运算。从而求得图像水平方向和垂直方向的像素值梯度,然后通过求平方和或绝对值之和求得该点的像素点极值,最后与预设阈值相比较,从而判断该点是否为边缘点。
所述数据缓存模块通过调用FPGA内部的两个FIFO(先进先出)子IP核来实现数据缓存模块,并同时生成水平卷积模板和垂直模板。调用FIFO子IP核来生成卷积窗口数据。
所述数据存储模块采用FPGA的子IP核RAM(随机存取存储器)来生成数据存储模块。图片显示模块与FPGA主控模块通过FPC排线进行电气连接。
本发明主要是加上Ewma算法对Sobel算法进行改进,具体的讲:就是采用Ewma算法,对经Sobel算子处理后的图像做进一步处理;所述Ewma算法,又名指数移动加权平均算法,该算法先是对图像的像素数据分配权值系数而后,权值系数结合像素数据进行运算,从而求得指数移动加权平均的预测值。具体来讲:此算法是通过求得边缘像素点的像素数据与Ewma权值系数的乘积,而后求出权值系数与最大值1的差值,再求出该差值与上一个像素数据的乘积,最后对两个乘积求和,所得和就是该点的预测值。该预测值通过移动加权实现了对经过Sobel算子处理后的边缘点的平滑处理。具体运算公式如下式(1)所示:
y[n]=ax[n]+(1-a)y[n-1] (1)。
上式中x[n]为第n个图像像素数据,a为此像素点的权值系数,a的取值范围为[0,1],权值系数a的最大值为1,y[n]为第n个图像像素数据的预测值。
图1是本发明提供的基于FPGA的边缘检测系统的整体框图,包括图片数据接收模块,所述图片数据接收模块用于接收来自上位机的静态图片数据;数据缓存模块,所述数据缓存模块用于缓存来自图片数据接收模块的数据,并且生成Sobel算子所需的水平卷积窗口和垂直卷积窗口;Sobel+Ewma模块,该模块用于对图像数据进行卷积运算,从而获得像素在水平、垂直方向的梯度差,然后做平方和运算求得该点极值,然后根据获取的极值与预设阈值做比较来确定该点是否为边缘点;Ewma算法,所述Ewma算法用于对经Sobel算子处理后的图像做进一步处理;数据存储模块,所述数据存储模块图片存储经过Sobel+Ewma模块处理后的数据,并且随后发送到图片显示模块;图片显示模块,所述用于对处理过后的图片数据在显示屏上进行显示。
在本发明中,图片数据接收模块,通过基于RS232通信协议的Uart串口,来接收来自上位机发送的串行图片数据,并且将每8位串行数据转换为8bit的并行数据传送给数据缓存模块。如图2所示,该模块一共有5路输入输出信号:系统时钟、系统复位、串行数据、并行数据以及数据标志位。系统时钟为该模块提供时钟信号,由FPGA开发板的晶振提供,频率为50MHZ,在系统时钟作用下,使得该模块其他信号在同一时序下有序进行工作,避免各信号发生冲突和紊乱;系统复位是由FPGA开发板发出的、低电平有效的复位信号,该信号有效时,除系统时钟外的所有信号全部初始化;串行数据是由PC机通过基于RS232通信协议的Uart串口发送FPGA的串行图片数据;并行数据是图片数据接收模块将每8位为串行数据为一帧打包成一位8比特的并行数据进行输出;数据标志信号是指当图片数据接收模块每输出一位8比特的并行数据时,伴随而输出的占一个时钟周期的高电平信号。
在本发明中,数据缓存模块,该模块通过调用两个FIFO子IP核,来对来自图片接收模块的数据进行缓存,并且生成水平、垂直的3*3卷积窗口。如图3所示,FIFO模块一共有6路输入输出信号:系统时钟、系统复位、写使能信号、写数据信号、读使能信号和读数据信号。写使能信号是长度为一个时钟周期的高脉冲信号,该信号有效时标志着一个8比特的来自图片接收模块的并行数据被写入FIFO中;写数据信号是指当写使能信号有效时,伴随而写入的一个8比特的来自图片接收模块的并行数据;读使能信号是长度为一个时钟周期的高脉冲信号,该信号有效时标志着一个8比特的数据被读取出FIFO中;读数据信号是指当读使能信号有效时,伴随而读取的一个8比特的并行数据;
在本发明中,数据缓存模块,还用于生成3*3垂直卷积窗口和水平卷积窗口。如图4所示:FIFO1缓存来自图片数据缓存模块的第一行数据,FIFO2读出的数据丢弃;FIFO2缓存来自图片数据缓存模块的第一行数据,FIFO2读出的数据写入FIFO1中;同时输入来自图片数据缓存模块的第三行数据,第三行输出的数据写入FIFO2中;当三行数据全部输入完成后,截取前三列数据,便生成了3*3数据矩阵。
在本发明中,Sobel+Ewma模块,用于对图像数据作Sobel算法处理,然后通过Ewma算法对经Sobel算子处理后的图像做进一步处理;Sobel算法主要是通过水平和垂直的3*3卷积窗口,与图像数据作卷积运算。从而求得图像水平方向和垂直方向的像素值梯度差,然后通过求平方和求得该点的像素点极值,最后与预设阈值相比较,从而判断该点是否为边缘点。
在本发明中,如图5所示,调用9个寄存器(a1、a2、a3、b1、b2、b3、c1、c2、c3),来寄存3*3数据矩阵中的像素值,从而实现水平卷积窗口和垂直卷积窗口;定义两个寄存变量sum_x和sum_y来分别寄存水平卷积窗口和垂直卷积窗口的运算结果。
在本发明中,附图6为Sobel+Ewma模块的结构框图;如图6所示:首先将图片数据接收模块的数据标志位信号延迟一个时钟周期,连接到FIFO1的写使能信号端,在该写使能信号下接收来自图片数据接收模块的第一行数据,接收完成后拉低FIFO1的写使能信号;与此同时,将图片数据接收模块的数据标志位信号延迟一个时钟周期,连接到FIFO2的写使能信号端,在该写使能信号下接收来自图片数据接收模块的第二行至倒数第二行数据;同时将图片数据接收模块的数据标志位信号延迟一个时钟周期,连接到FIFO1和FIFO2的读使能信号端,将FIFO2读出的数据发送给FIFO1,而后将FIFO2的写使能信号与读使能信号相与并延迟一个时钟周期,然后将该信号连接带FIFO1的写使能信号端,FIFO1在该写使能信号下读出第二行至倒数第三行的数据;另外生成9个寄存器:a1、a2、a3、b1、b2、b3、c1、c2、c3,a1、a2、a3接收FIFO1读出的数据,b1、b2、b3接收FIFO1读出的数据,c1、c2、c3接收来自图片数据接收模块的第三行至最后一行读出的数据,当a1~c3等9个寄存器全部存满数据后,赋值a1=-1、b1=-2、c1=-1,并且a3=1、b3=2、c3=1,与图像数据作卷积运算,从而求得图像水平梯度Gx;同理:赋值a1=-1、a2=-2、a3=-1,并且c1=1、c2=2、c3=1,图像数据作卷积运算,从而求得图像垂直梯度Gy。而后求解像素点极值Gxy,计算公式为Gxy=|Gx|+|Gy|。求得像素点极值Gxy以后,将该像素点极值与预设阈值相比较,该像素点极值大于预设阈值则为边缘点,赋值为黑色;反之则为非边缘点,赋值为白色。判断是否为边缘点伪代码如下:
If(Gxy>Threshold)
Gxy <= BLACK;
Else
Gxy <= WHITE。
在本发明中,Ewma算法,用于对经Sobel算子处理后的图像做进一步处理;如图6所示:经过Sobel算子模块处理后的图像数据和标志信号,一起发送至Ewma算法模块,经过Ewma算法处理后将图像数据和标志信号,通过输出数据和输出标志信号,一起发送到图像显示模块。
图片显示模块,用于对处理过后的图片数据在显示屏上进行显示。所述图片显示模块采用材质为TFT_LCD、分辨率为480*800、规格大小为7英寸的显示屏作为图片显示设备。如图7所示,为显示模块硬件结构图;该模块一共有10路输入输出信号:分别是系统时钟、系统复位、写使能、写数据、像素时钟、背光控制、行同步信号、场同步信号、使能信号以及24位RGB888彩色数据信号。
图片显示模块分为时钟分频模块、RAM数据存储模块、显示区域模块、图片驱动模块和显示屏5个子模块构成。其中时钟分频模块接收系统时钟和系统复位,生成33.3MHZ的驱动时钟信号和50MHZ的工作时钟信号以及锁定信号;33.3MHZ的驱动时钟信号是显示区域模块和图片驱动模块的工作时钟,50MHZ的工作时钟信号是RAM数据存储模块的工作时钟;锁定信号是当时钟分频模块工作状态稳定后输出的高脉冲信号,该信号与系统时钟取反后经与非门输出,从而生成驱动复位信号作用于各子模块;RAM数据存储模块在工作时钟和工作复位信号的作用下,将写使能信号端口和写数据信号端口分别连接到Ewma算法模块的输出标志端口和输出数据端口,从而接收来自Ewma算法模块处理后的数据。与此同时,RAM数据存储模块将读使能信号以及读数据信号发送给显示区域模块,显示区域模块在驱动时钟和驱动复位信号的作用下,有序地接收来自图片驱动模块传送来的区域横、纵坐标信号;区域横坐标是图片在显示屏上的横坐标信号,区域纵坐标是图片在显示屏上的纵坐标信号;显示区域模块接收到坐标信号以后,再结合输入的图像数据生成显示数据,然后发送给图片驱动模块;最后,图片驱动模块在驱动时钟和驱动复位的共同作用下,有序地接收来自显示区域的显示数据,并随之生成驱动液晶显示屏所需的6路输出信号:像素时钟、背光控制、行同步信号、场同步信号、使能信号以及24位宽的RGB888彩色数据信号;其中像素时钟用来给显示屏提供33.3MHZ的工作时钟信号;背光控制信号控制屏幕的开关工作状态,背光控制信号为高电平时,显示屏亮,背光控制信号为低电平时,显示屏黑屏关闭;行同步信号是指当显示屏一行数据开始显示时,拉高多个时钟周期的高脉冲信号,表示该行图像数据开始显示;具体行同步信号时序图如图8所示。场同步信号是指当显示屏一帧数据开始显示时,拉高多个时钟周期的高脉冲信号,表示该帧图像数据开始显示;具体场同步信号时序图附图9所示。使能信号决定了显示屏何时开始接受图像数据,当使能信号拉高时,显示屏接收来自图片驱动模块发送的数据,当使能信号为低电平时,显示屏关闭数据通道,不接收来自其他模块传输的任何数据;RGB888彩色数据信号是一个位宽为24位的数据通道,该通道接收来自图片驱动模块发送的图像数据,并且显示到显示屏上。
经过各模块处理后,最终图像结果显示在显示屏上,边缘检测结果图及原始图像如图10所示。图10中,原始图像为未经边缘检测算法处理的原图像,Sobel边缘检测图像为经过常规边缘检测算子——Sobel算子处理后的图像,Sobel边缘检测图像为经过Sobel+Ewma算法处理后的图像。通过对比Sobel边缘检测图像和常规的Sobel边缘检测图像可知,本发明所涉及的边缘检测系统,通过Sobel+Ewma算法处理图像,可以使得边缘检测图像轮廓更加细腻、层次区分度更加明显,图像所展示的细节信息显示的更加清晰。由图可知,与传统的Sobel边缘检测系统相比较,本发明通过结合Sobel和Ewma算法,能够更加有效、精确、充分的对各种图像进行边缘检测。
本发明基于FPGA的Sobel+EWMA边缘检测系统,通过FPGA的编程语言Verilog,设计并实现了Sobel+EWMA模块,该模块一共占用38个寄存器、2个FIFO以及若干与非门。
本发明采用2个FIFO来实现3*3卷积窗口,从而进一步实现Sobel算子的水平卷积窗口以及垂直卷积窗口。
本发明采用基于Uart通信协议的RS232串口线,来完成图像数据的接收,并且通过编写Verilog代码来实现数据接收模块。
本发明的主控芯片为采用Xilinx Zynq 7020主控芯片。在Vivado 2018.3编译软件内、通过编写硬件描述语言Verilog代码,来实现整个系统的设计。
本发明采用型号为Alientek的、材质为TFT_LCD、分辨率为480*800的、工作时钟为33.3MHZ的、规格大小为7英寸的显示屏作为该模块的显示设备。
关于本发明具体结构需要说明的是,本发明采用的各部件模块相互之间的连接关系是确定的、可实现的,除实施例中特殊说明的以外,其特定的连接关系可以带来相应的技术效果,并基于不依赖相应软件程序执行的前提下,解决本发明提出的技术问题,本发明中出现的部件、模块、具体元器件的型号、连接方式除具体说明的以外,均属于本领域技术人员在申请日前可以获取到的已公开专利、已公开的期刊论文、或公知常识等现有技术,无需赘述,使得本案提供的技术方案是清楚、完整、可实现的,并能根据该技术手段重现或获得相应的实体产品。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于FPGA的Sobel+Ewma边缘检测系统,包括PC机、FPGA主控模块、显示屏,其特征在于:所述FPGA主控模块外接PC机和显示屏,所述FPGA主控模块包括图片数据接收模块、数据缓存模块、Sobel+Ewma 模块、数据存储模块、图片显示模块;
所述图片数据接收模块接收来自PC机传输的串行图片数据,然后将串行数据转换为并行数据并发送给数据缓存模块;
所述数据缓存模块接收图片数据接收模块发送过来的图片数据,然后将图片数据发送给Sobel+Ewma 模块,同时生成Sobel算子所需的Sobel卷积模板;
所述Sobel+Ewma 模块通过数据缓存模块生成的Sobel卷积模板与图像数据矩阵做卷积运算,实现图片的边缘检测,图像数据经过边缘检测处理后,使用Ewma算法再次对图像数据进行处理,图像数据经Ewma算法进一步处理后,再发送给数据存储模块;
所述数据存储模块接收经过Sobel+Ewma 模块处理后图像数据,然后将图像数据发送给图像显示模块;
所述图片显示模块将存储在数据存储模块的经过边缘处理后的图片在显示屏上进行显示。
2.根据权利要求1所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述Sobel+Ewma 模块包括Sobel算子模块和Ewma算法模块,Sobel算子模块对图片数据进行初步边缘检测,Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测;
所述Sobel+Ewma 模块共占用38个寄存器、2个FIFO子IP核以及若干与非门,其中Sobel算子模块采用2个FIFO子IP核实现3*3卷积窗口。
3.根据权利要求2所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述Sobel算子模块对图片作初步边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
4.根据权利要求3所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述Ewma算法模块对经过Sobel算子处理后的图片作进一步边缘检测的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。
5.根据权利要求1-4任一项所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述图片数据接收模块具体采用RS232串口接收PC机传输的图片数据。
6.根据权利要求1-4任一项所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述显示屏具体采用材质为TFT_LCD、像素为480*800的、工作时钟为33.3MHZ、规格大小7英寸液晶显示屏,用以显示图片数据。
7.根据权利要求1-4任一项所述的一种基于FPGA的Sobel+Ewma边缘检测系统,其特征在于:所述Sobel+Ewma 模块的RAM IP核具体采用Xilinx Zynq 7020主控芯片。
8.一种基于FPGA的Sobel+Ewma边缘检测方法,其特征在于:包括如下步骤:
步骤一:图片数据接收模块接收PC机传输的图片数据;
步骤二:数据缓存模块调用2个FIFO子IP核,用以接收并缓存图片数据,最终实现Sobel卷积模板的生成;
步骤三:Sobel+Ewma模块用于实现Sobel算子并对图片数据进行边缘检测;并且通过Ewma算法进一步对图片数据进行处理;
步骤四:数据存储模块调用RAM IP核,用以接收处理好的图片数据并保存;
步骤五:图片显示模块用以显示图片数据。
9.根据权利要求8所述的一种基于FPGA的Sobel+Ewma边缘检测方法,其特征在于:所述步骤三中Sobel算子图片数据进行边缘检测的步骤为:
通过水平和垂直的3*3卷积窗口与图像数据作卷积运算,求得图像水平方向和垂直方向的像素值梯度;
然后通过求平方和或求水平、垂直梯度的绝对值之和得到某一个像素点的像素点极值;
最后将像素点极值与预设阈值相比较,判断该像素点是否为边缘点。
10.根据权利要求9所述的一种基于FPGA的Sobel+Ewma边缘检测方法,其特征在于:所述步骤三中通过Ewma算法进一步对图片数据进行处理的步骤为:
Ewma算法模块首先对已经判断为边缘像素点的像素数据分配权值系数;
然后计算该像素点的像素数据与Ewma权值系数的乘积;
而后求出权值系数与最大值的差值;
再求出该差值与上一个像素数据的乘积;
最后对两个乘积求和,所得和就是该像素点的预测值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945025.9A CN113689448B (zh) | 2021-08-17 | 2021-08-17 | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945025.9A CN113689448B (zh) | 2021-08-17 | 2021-08-17 | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113689448A true CN113689448A (zh) | 2021-11-23 |
CN113689448B CN113689448B (zh) | 2023-09-12 |
Family
ID=78580387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110945025.9A Active CN113689448B (zh) | 2021-08-17 | 2021-08-17 | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113689448B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116416268B (zh) * | 2023-06-09 | 2023-08-18 | 浙江双元科技股份有限公司 | 基于递归二分法的锂电池极片边缘位置检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267675A1 (en) * | 2014-06-23 | 2016-09-15 | Boe Technology Group Co., Ltd. | Image edge detection method and apparatus thereof, image target identification method and apparatus thereof |
US20180232860A1 (en) * | 2017-02-15 | 2018-08-16 | Danylo Kozub | Data smoothing |
CN111340835A (zh) * | 2020-03-27 | 2020-06-26 | 天津光电通信技术有限公司 | 基于fpga的视频图像边缘检测系统 |
CN111402280A (zh) * | 2020-03-10 | 2020-07-10 | 西安电子科技大学 | 基于对数图像处理模型的图像边缘检测系统及方法 |
-
2021
- 2021-08-17 CN CN202110945025.9A patent/CN113689448B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267675A1 (en) * | 2014-06-23 | 2016-09-15 | Boe Technology Group Co., Ltd. | Image edge detection method and apparatus thereof, image target identification method and apparatus thereof |
US20180232860A1 (en) * | 2017-02-15 | 2018-08-16 | Danylo Kozub | Data smoothing |
CN111402280A (zh) * | 2020-03-10 | 2020-07-10 | 西安电子科技大学 | 基于对数图像处理模型的图像边缘检测系统及方法 |
CN111340835A (zh) * | 2020-03-27 | 2020-06-26 | 天津光电通信技术有限公司 | 基于fpga的视频图像边缘检测系统 |
Non-Patent Citations (1)
Title |
---|
张庭亮;甄倩倩;胡明明;: "基于FPGA的目标边缘提取硬件加速系统的设计", 山西大同大学学报(自然科学版), no. 05 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116416268B (zh) * | 2023-06-09 | 2023-08-18 | 浙江双元科技股份有限公司 | 基于递归二分法的锂电池极片边缘位置检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113689448B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681984B (zh) | 一种3*3卷积算法的加速电路 | |
US6014144A (en) | Rapid computation of local eye vectors in a fixed point lighting unit | |
US7805589B2 (en) | Relative address generation | |
EP0548586A2 (en) | An extendable multiple image-buffer for graphics systems | |
US6166743A (en) | Method and system for improved z-test during image rendering | |
CN105611256B (zh) | 一种基于梯度的Bayer格式插值方法及基于FPGA的显示装置 | |
CN109658337A (zh) | 一种图像实时电子消旋的fpga实现方法 | |
JPH11331610A (ja) | 画像情報送信方法、画像情報更新方法、送信装置及び更新装置 | |
CN111340835A (zh) | 基于fpga的视频图像边缘检测系统 | |
CN113689448B (zh) | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 | |
US6445386B1 (en) | Method and apparatus for stretch blitting using a 3D pipeline | |
CN109685715B (zh) | 一种显示系统中高精度图像无级旋转处理方法 | |
US5887079A (en) | Image processing apparatus | |
WO2023184754A1 (zh) | 可配置实时视差点云计算装置及方法 | |
US8314803B2 (en) | Buffering deserialized pixel data in a graphics processor unit pipeline | |
US9251557B2 (en) | System, method, and computer program product for recovering from a memory underflow condition associated with generating video signals | |
CN115687194A (zh) | 采用降低的能量传输模式的存储器接口 | |
CN109344116B (zh) | Prewitt算子的NEON加速引擎器 | |
CN113255538A (zh) | 基于fpga的红外弱小目标的检测跟踪装置及方法 | |
CN110602426B (zh) | 一种视频图像边缘提取系统 | |
TWI822482B (zh) | 任意倍率圖像放大模塊、顯示驅動晶片、顯示裝置以及資訊處理裝置 | |
JP4381778B2 (ja) | テクスチャ処理装置 | |
CN102129667A (zh) | 一种图像缩放方法 | |
WO2023185476A1 (zh) | 对象渲染方法、装置、电子设备、存储介质及程序产品 | |
JP3090644B2 (ja) | 画像データ処理装置及びそれを用いたシステム |
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 |