基于FPGA视频图像的Canny算法加速器的设计

2012-07-27 23:01:11来源: 现代电子技术 关键字:Canny算子  边缘检测  加速器  现场可编程门阵列
   

摘要:由于Canny算法自身的复杂性,使得其做边缘检测的处理时间较长。针对这个问题,提出和实现了一种Canny算法的硬件加速功能。加速功能的设计是以FPGA为硬件基础,并采用了流水线技术来对系统的结构改进和优化。最后通过对有加速器和无加速器的系统分别做图像处理,并对统计时间对比分析。结果表明经过加速改进的系统相对节约了处理时间,并能实时高效地处理复杂图像的边缘。
关键词:Canny算子;边缘检测;加速器;现场可编程门阵列

0 引言
    边缘检测是图像分析过程中非常基础和重要的研究领域,边缘提取的好坏将直接影响到后续处理的准确性和难易程度。用于边缘检测的方法有Roberts,Sobel,Laplace,Canny,PreWitt等众多算法。在这些算法当中,由于具有良好的边缘检测能力而使得Canny算法在数字图像处理中得到了广泛的应用。然而由于计算量的庞大,处理的时间又比较长,往往很难满足系统的要求。因为FPGA对数据的并行处理,能达到系统的实时性要求,且开发的周期短,采用电子设计的EDA技术使得开发、调试和验证更为直接和简单可行。
    本文在FPGA基础上研究Canny算法的边缘检测,并对它进行了加速改进,且在数据处理过程中使用了流水线设计,更深入地挖掘了FPGA在数据处理速度中的优势。仿真实验证明了该方法的可行性,并且实现了良好的实时性。

1 Canny算子的边缘检测
    边缘是指在其周围像素灰度有明显变化的那些像素的组合,它是具有幅值和方向的矢量,在图像中表现为灰度的突变。早在1986年Canny就提出了边缘检测应该满足的三个最优准则:
    (1)重要的边缘不能丢失,没有虚假的边缘,并且误差检测率是最小的。
    (2)实际边缘与检测到的边缘位置之间的变差最小。
    (3)对单一边缘应具有惟一的响应。
    Canny算子首先使用高斯滤波器来平滑图像,再计算图像梯度的强度和方向,接着对梯度图像进行非极大值抑制,最后采用双阈值方法从候选边缘点中检测和连接边缘。
1.1 Canny算子原理
    Canny算子是把边缘检测问题转换为函数极大值的问题加以处理。提取边缘首先要进行高斯滤波,其目的是对原始图像进行平滑处理,以减弱或除去图像中的噪声。其高斯滤波的基本思想是将一个对称的二维高斯函数与原始的图像做卷积运算,再沿其梯度方向做微分,这样就形成了一个简单且有效的方向算子。
    f(x,y)为原始图像,G(x,y)是二维高斯函数,则平滑滤波后的图像I(x,y)为:
    I(x,y)=G(x,y)*_f(x,y)                 (1)
    定义方向n为边缘方向的法向方向,则n可由下式得出:
a.JPG
    式(3)说明了如何寻找局部最大值,在非极大值抑制之后,还要通过阈值化处理来寻找极大值。先设定一低阈值Th1,然后选取高阈值Th2≈2*Th1,将极大值抑制后的图像按Th1,Th2进行两次阈值化处理,得到图像T1和T2。由于图像T2是通过高阈值得到的,噪声和伪边缘很少,但也造成了一些真实边缘信息的丢失;而图像T1保留的边缘信息相对全面,但是存在一些虚假的边缘信息。所以以图像T2为基础,图像T1为补充可以获得相对全面的边缘图像。
1.2 算法的模板
    本文算法中的高斯滤波器和梯度强度计算时都采用3×3的方形移动窗口,同时梯度强度计算选用Sobel算子。在对图像进行平滑处理时,需要使用高斯模板与原图像中的像素点值做矩阵的卷积运算。本文选取高斯模板的模板系数为0.062 5,且σ=1。模板如下所示:
b.JPG
    式中:h为水平方向上的模板;v为垂直方向上的模板。h与图像做卷积得到水平方向上的梯度强度Ex;v与图像做卷积得到垂直方向上的梯度强度Ev。然后通过式(4)计算梯度强度Gr为:
    Gr=|Ex|+|Ey|          (4)
    在FPGA中,卷积的运算是通过移位和加法来实现的。对于8位的图像来说,在移位和加法的运算中,由于存在正负号的运算,像素值的大小会被调整为11位,在最后做完绝对值的加法运算后要把11位缩回8位并得到最终的像素导数值。

2 加速功能设计
    本文对图像的快速处理采用了流水线技术。所谓流水线技术是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组并暂存中间数据。对于每个步骤只依赖于前面步骤的运算结果的顺序处理来说,流水线技术能大大地提高系统的性能。在本文的算法中,可将处理过程分为以下几个任务:图像平滑、梯度计算、非极大值抑制和图像边缘判定检测。任务与任务之间都是顺序执行的,即就是说下一任务的执行需要上级任务的结果输出数据,因此总的时间花销为各个任务所需时间的总和。要使系统使用的处理时间最小,也就是使每个任务所花费的时间最短。

[1] [2] [3] [4]

关键字:Canny算子  边缘检测  加速器  现场可编程门阵列

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2012/0727/article_3082.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于FPGA的汽车视频和图形控制系统设计
下一篇:基于FPGA的LCD测试用信号发生器设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
Canny算子
边缘检测
加速器
现场可编程门阵列

小广播

独家专题更多

TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved