基于FPGA的Roberts边沿检测器的制作方法

文档序号:6372286阅读:229来源:国知局
专利名称:基于FPGA的Roberts边沿检测器的制作方法
技术领域
本发明涉及一种基于FPGA的Roberts边沿检测器,它是图像处理的一部分,具体的说是一种利用经典边沿检测算子Roberts算子实现的边沿检测技术、图像分割技术的边沿检测器。
背景技术
人们感受客观世界70%以上的信息是以人的眼睛来获取的,因此视觉信息是当前信息和研究的中心之一。图像处理是机器视觉的基础,图像处理主要是模拟人类对图像信息的认知和决策能力。图像边沿提取是图像处理的一部分,图像的边缘是图像识别的重要根据,图像的边缘也是图像的最基本特征。图像边沿检测是图像处理的范畴,它同时也是机器视觉的重要环节。经典的边缘提取方法是考察图像的每一个像素在某个领域内的灰度变化,利用邻近一阶或二阶方向导数变化规律,用最简单的方法检测出边缘。这类方法称为边缘检测局部算子法。边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类基于查找一类和基于零穿越的一类。基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。边沿检测器具有广泛的应用。边沿检测也是机器视觉中的重要环节,它对机器智能化起着至关重要的作用。近年来,随着图像处理与识别技术的进展,边沿检测在很多领域的到广泛的应用,例如民用领域,机器视觉技术可用在智能交通、安全防范、文字识别、身份验证、医疗设备等方面。在医学领域,机器视觉用于辅助医生进行医学影像和分析,主要利用数字图像处理技术,信息融合技术对X射线透视图、核磁共振图像、CT图像进行适当叠力口,然后进行综合分析,以及对其它医学影响数据进行统计和分析。在科研研究领域可以利用机器视觉进行材料分析、生物分析、化学分析和生命科学,如血液细胞自动分类、染色体分析、癌症细胞识别等。军事领域,视觉技术可用在航天、航空、兵器、(敌我目标识别、跟踪)及测绘。在卫星摇杆系统中,机器视觉技术被用于分析各种摇杆图像,进行环境监测,根据地形、地貌的图像和图形特征,对地面目标进行自动识别、理解和分类等。但是,现阶段边沿检测理论方法比较多,由于计算量大且复杂,一般都是用软件来实现,其数据处理速度慢,并且用软件来处理必须建立在一个庞大的硬件平台,例如PC机上,这样就限制其应用范围。也有少部分基于硬件实现,其硬件资源消耗大,处理周期长等性能的不足。在市场上,大部分的边沿检测都是用软件实现的,这满足不了现代社会的需求。基于此,本发明提出了一种基于FPGA的Roberts边沿检测器。与其它一些技术相比,本发明的优点在于,用硬件实现边沿检测器实现了硬加速,处理速度可以得到成倍的提高,同时硬件资源消耗也非常小,与同类设计比较来看节约10%-50%不等。可以很好解决了软件实现的速度问题和硬件资源消耗大的问题。

发明内容
本发明的目的是为了解决现阶段边沿检测软件实现成本高和运算速度慢的不足,硬件实现资源消耗大等问题。提供一种基于Roberts的边沿检测器,以简单硬件实现方法解决了速度慢和资源消耗大的问题,并且具有速度快、资源利用率高和低功耗的特点,能够处理大小为640*480的RGB565格式图像边沿检测。为达到上述目的,本发明的技术方案是
一种基于FPGA的边沿检测器,包括一个16位寄存器、一个深度640的同步FIFO、一个 核心控制器模块、一个梯度计算模块和一个图像分割模块,其特征在于所述核心控制器模块连接同步FIFO、梯度计算模块和16位寄存器,所述梯度计算模块连接图像分割模块;在发送端,输入像素数据经过一个16位寄存器和深度640的同步FIFO缓存后实现两行像素同时输入到梯度计算模块,使两个像素相差640个像素,然后两个像素进入梯度计算模块中,实现2x2正方形窗,当其满时
计算该点像素梯度值,并将该梯度值输入到图像分割模块,与设定好的阈值(T)作比较,实现边沿提取和图像二值化,实现图像背景为白色,图像中物体的边缘为黑色。最终从输出端口输出像素数据,整个过程的时序由核心控制模块控制,它控制包括=FIFO时序,梯度计算时序和图像分割时序。上述的16位寄存器模块产生两个输出,一个是FIFO写数据和一个梯度计算的算子1,并且实现时序上的延迟一拍的作用。上述的控制器模块,控制器控制FIFO读写指针时序,使读指针慢写指针一怕,每拍延迟640个周期。产生两个像素数据同时输出,并且每个周期计算一个像素值的梯度,产生一个边沿检测像素值输出。上述的同步FIFO缓冲模块的结构所述的同步FIFO的结构一个FIFO状态控制器连接一个FIFO写地址控制器,一个FIFO存储单元和一个FIFO读地址控制器;通过写地址控制器产生写地址,读地址控制器产生读地址,在时钟的上升沿触发,FIFO状态控制产生读写使能信号和空满信号;使读指针慢于写指针一拍,每拍延迟640个周期;在一帧图像数据传输过程中,同步FIFO内部数据一直保持639个,使16位寄存器和同步FIFO读出得数据保持相差640个像素,并且两个像素数据同时输入到梯度计算模块;产生两个像素数据同时输出,并且每个周期计算一个像素值的梯度,产生一个边沿检测像素值输出。上述的写地址控制器结构包括一个二分频器、一个比较器、一个加法器、一个锁存器、两个二选一选择器和一个与门构成,实现写地址初始地址为“639”,每一个像素时钟循环加“I”。上述的读地址控制器结构包括一个二分频器、一个比较器、一个加法器、一个锁存器、两个二选一选择器和一个与门构成,实现读地址初始地址为“639”,每一个像素时钟循环加“I”。
上述的梯度计算模块的结构一个二分频控制器经多个二选一选择器和两个绝对值减法器连接一个加法器。有像素时钟上升沿触发,产生分频时钟,再有分频时钟控制其它控制器。多个二选一选自器、两个绝对值减法器和一个加法器实现一个2x2正方形窗,完场梯度计算,其结果输入到图像分割模块。上述的图像分割模块的结构一个比较器连接一个二选一选择器。实现图像边缘提取和图像二值化。本发明与现有技术相比较,具有如下优点
(I)本发明实现简单,在FPGA中都可以实现。(2)本发明的解决了边沿检测软件实现成本高和运算速度慢的不足,硬件实现资源占用率低的不足。(3)本发明由于结构简单,这就使得速度快、资源利用率高和功耗比较低。·(4)本发明实现处理速度可达到30帧/秒,像素数据16位RGB565格式640*480图像数据输出,效果清晰,视频流畅。


图I是系统总框图。图2是同步FIFO缓冲模块逻辑图。图3是FIFO写地址控制器电路图。图4是FIFO读地址控制器电路图。图5是梯度计算模块电路图。图6是图像分割模块电路图。图7是图像控制模块控制的时序图。
具体实施例方式本发明的优选实施例结合附图详述如下
实施例一
如图I所示,本基于FPGA的Roberts边沿检测器包括一个16位寄存器(I)、一个特定功能的同步FIFO (2)、一个核心控制器模块(3)、一个梯度计算模块(4)和一个图像分割模块(5)。所述核心控制器模块(3)连接同步FIFO (2)、梯度计算模块(4)连接图像分割模块
(5)。在发送端,输入像素数据经过一个16位寄存器和深度“640”的同步FIFO (2)缓存后实现两行像素同时输入到梯度计算模块(4),使两个像素相差“640”个像素,然后两个像素进入梯度计算模块(4)中,实现2x2正方形窗,当其满时计算该点像素梯度值,并将该梯度值输入到图像分割模块(5),与设定好的阈值(T)作比较,实现边沿提取和图像二值化,实现图像背景为白色,图像中物体的边缘为黑色。最终从输出端口输出像素数据,整个过程的时序由核心控制模块(3)控制,它控制包括FIF0时序,梯度计算时序和图像分割时序。实施例二
本实施例与实施例一基本相同,特别之处如下
〈一〉、同步 FIFO (2)
参见图2、图3、图4,整个FIFO结构图如图2,包括FIFO存储单元(2-3)、写地址控制器(2-2 )、读地址控制器(2-4 )和FIFO状态控制器(2_1),FIFO状态控制器(2_1)连接FIFO写地址控制器(2-2)、FIF0存储单元(2-3)和读地址控制器(2-4),由像素时钟上升沿触发,实现可以同时读写操作。写地址控制器(2-2)如图3,一个二分频器、一个比较器、一个加法器、一个锁存器、两个二选一选择器和一个与门构成。读地址控制器如图4,一个二分频器、一个比较器、一个加法器、一个锁存器、两个二选一选择器和一个与门构成。通过写地址控制器(2-2)产生写地址,写地址初始地址为“639”,然后每一个像素时钟循环加“1”,读地址控制器(2-4)产生读地址,读地址的初始地址为“639”,然后每一个像素时钟循环加“I”。在时钟的上升沿触发,FIFO状态控制器(2-1)产生读写使能信号和空满信号,内部通过一个循环计数器来计算FIFO中现在是什么状态,产生一次FIFO写,计数器加“ I ”,产生一次FIFO读,计数器减“ I ”,计数器的初始值为“0”,实现计数器从“O”到“640”循环技术功能,当计数器为“640”时,FIFO为满,当计数器为“O”时,FIFO为空。所述同步FIFO (2)是一个特定FIF0,它使读指针慢写指针一怕,每拍延迟“640”个周期。在一帧图像数据传输过程中,同步FIFO (2)内部数据一直保持“639”个,使16位 寄存器和FIFO读出得数据保持相差“640”个像素,并且两个像素数据同时输入到梯度计算模块。产生两个像素数据同时输出,并且每个周期计算一个像素值的梯度,产生一个边沿检测像素值输出。〈二〉、梯度计算模块(4)
由图5知,梯度计算模块(4)由一个二分频电路(4-1)经多个选择器(4-2)和两个绝对值减法器(4-3)连接一个加法器(4-4)组成。算子I是从16位寄存器(I)中获得,算子2是从FIFO (2)中读出,通过二分频电路(4-1)实现对像素时钟(pclk)的分频(pclk_2),使每个算子可以保持两个像素时钟(pclk),通过多个二选一选择器(4-2)在像素分频时钟(pclk_2)内产生四个像素同时输入2x2正方形窗一两个绝对值加法器(4-3),两个绝对值减法器(4-3)的结果做和运算输出梯度值,每一个像素时钟完成一个像素的梯度计算,该点的梯度结果输入到下一模块图像分割模块(5)。〈三〉、图像分割模块(5)
由图6知,图像分割模块(5)由一个比较器(5-1)连接一个二选一选择器(5-2)组成,通过每一个像素计算的梯度与设定阈值(T)作比较实现图像二值化,当像素梯度大于阈值(T)时,结果输出“255”,当像素梯度小于阈值(T)时,结果输出“O”。这样的结果输出使图像的背景为白色,物体边缘是黑色,完成图像的边沿提取。〈四〉、控制模块(3)
核心控制器模块(3)控制整个边沿检测器的时序如图7,包括FIFO读写指针时序,是读指针慢写指针一怕,每拍延迟640个周期,Roberts算子输出时序,梯度计算时序和图像分割模块时序,并且每个周期计算一个像素值的梯度,产生一个边沿检测像素值输出。〈五>、16位寄存器模块(I)
16位寄存器(I ),实现像素数据输入延迟一拍传给FIFO和梯度计算模块,它实现两个输出,一个传给FIFO的写数据,一个传给梯度计算模块的算子I。
权利要求
1.一种基于FPGA的Roberts边沿检测器,包括一个16位寄存器(I)、一个深度640的同步FIFO (2)、一个核心控制器模块(3)、一个梯度计算模块(4)和一个图像分割模块(5),其特征在于所述核心连接控制器模块(3)连接同步FIFO (2)、梯度计算模块(4)和16位寄存器(1),所述梯度计算某块(4)连接图像分割模块(5);输入像素数据经过所述16位寄存器(I)和深度640的同步FIFO (2)缓存后实现两行像素同时输入到梯度计算模块(4),使两个像素相差640个像素,然后两个像素进入梯度计算模块(4)中,实现2x2正方形窗,当其满时计算该点像素梯度值,并将该梯度值输入到图像分割模块(5),与设定好的阈值(T)作比较,实现边沿提取和图像二值化,实现图像背景为白色,图像中物体的边缘为黑色;最终从输出端口输出像素数据,整个过程的时序由核心控制模块(3)控制,它控制包括=FIFO时序,梯度计算时序和图像分割时序。
2.根据权利要求I所述的基于FPGA的Roberts边沿检测器,其特征在于所述的同步FIFO (2)的结构一个FIFO状态控制器(2-1)连接一个FIFO写地址控制器(2-2),一个FIFO存储单元(2-3)和一个FIFO读地址控制器(2-4);通过写地址控制器(2-2)产生写地址,读地址控制器(2-4)产生读地址,在时钟的上升沿触发,FIFO状态控制(2-1)产生读写使能信号和空满信号;使读指针慢于写指针一拍,每拍延迟640个周期;在一帧图像数据传输过程中,同步FIFO内部数据一直保持639个,使16位寄存器(I)和同步FIFO (2)读出得数据保持相差640个像素,并且两个像素数据同时输入到梯度计算模块(4);产生两个像素数据同时输出,并且每个周期计算一个像素值的梯度,产生一个边沿检测像素值输出。
3.根据权利要求I所述的基于FPGA的Roberts边沿检测器,其特征在于所述梯度计算模块(4)的结构一个二分频电路(4-1)、多个二选一选择器(4-2)和两个绝对值减法器(4-3 )连接一个加法器(4-4 );所述二分频电路(4-1)和多个二选一选择器(4-2 )实现一个2x2正方形窗;每一个时钟两个绝对值减法器(4-3)完成一个像素的梯度计算,同时结果输入到图像分割模块(5)。
4.根据权利要求I所述的基于FPGA的Roberts边沿检测器,其特征在于所述图像分割模块(5)的结构一个比较器(5-1)连接一个二选一选择器(5-2);图像分割模块(5)根据计算的梯度值和设定阈值比较,实现对图像边沿提取和图像二值化,实现背景为白色,图像边缘为黑色。
5.根据权利要求I所述的基于FPGA的Roberts边沿检测器,其特征在于所述16位寄存器(I)和核心控制器模块(3): —个十六寄存器(I)对输入像素数据进行延迟一个时钟周期,为了实现两个像素数据同时输入到梯度计算模块(4 ),并且这两个像素相差640个像素;核心控制器模块(3)实现整个系统的时序控制,包括FIF0读写时序和梯度计算时序。
全文摘要
本发明涉及一种基于FPGA的Roberts边沿检测器。它包括一个16寄存器、一个同步FIFO、一个核心控制器模块、一个梯度计算模块和一个图像分割模块。在发送端,输入数据经过一个16为寄存器和深度640的同步FIFO缓存后实现两个像素同时输入到梯度计算模块,然后当梯度计算模块中的正方形窗为满时计算该点像素梯度值,并输入到图像分割模块实现边沿提取,最终从输出端口输出像素数据,整个过程的时序由核心控制模块控制。
文档编号G06F5/06GK102841773SQ20121021923
公开日2012年12月26日 申请日期2012年6月29日 优先权日2012年6月29日
发明者毕卓, 韩冰, 徐昱琳, 王镇, 戴益君 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1