英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
灰色图像格式的边缘检测及其FPGA实现
摘要:
本文的目的是分析FPGA中用于图像格式实现的方法。所有的摄像机在FPGA应用给出了原始的RGB输出视频格式,一些摄像机也提供了YUV,YCbCr,RGB565/555或压缩的JPEG格式。如果FPGA电路的可配置逻辑块(CLB)数量有限,JPEG格式似乎是一个好的解决方法,对于如何增大处理图像的大小。另一方面,使用有损压缩的图像或多或少会影响图像处理的整体结果。本文的第一个目标是证明有损图像压缩是否会影响边缘检测的质量。本文给出的结果表示,图像有损压缩会使边缘检测的效率下降6%。许多研究者提出了FPGA实现的一些边缘检测方法。通常他们的第一步RGB到灰度转换,因为他们对灰度图像使用边缘检测方法。本文的第二个目标是证明如果使用YUV,YCbCr或Raw RGB,可以提高FPGA实现的性能相机输出格式代替了RGB格式。
1.简介
边缘检测是数字领域中图像处理最常用的方法之一。目标定位是:1车牌;2指纹识别;3火灾报警;4SAR图像处理;5高亮的边缘可以帮助医生识别结肠镜检查中的息肉。在过去的40年李,有几百个数字图像边缘检测的方法被提出。更具他们所依据的原则,发表的边缘检测器可以分为若干组。清单所有相关的边缘检测类型都超出了本文的范围。但是,应该提到最著名的算法-梯度运算符,如Prewitt和Sobel或Canny,肯是日常实践中最常用的。形态学算子和基于小波变换的检测器也得到了较好的结果。新的趋势下,最近几年几种新的方法被提出来了,包括模糊逻辑,字典学习和分数阶导数。每一个新的方法在多幅图像上进行了测试。有时研究人员使用JPEG格式的图像来测试他们提出的算法。但是有损图像压缩会影响边缘检测的效率。本文的第一个目标是证明图像有损压缩是否会影响边缘检测的质量。要测试大量的边缘检测器是不可能的。所以只能得到结果提出了四种基于梯度算子的方法。
关于FPGA实现图像边缘检测的文章很多,而关于FPGA实现颜色边缘检测的文章有一篇。颜色边缘检测十分罕见,因为它的计算要求是灰度图像的三倍,而且在90%的情况下,灰度值和彩色图像边缘基本相同,很明显,没用必要对彩色图像进行处理,除了某些特殊情况。一些文章的作者使用彩色相机,他们的FPGA实现包括转换到灰度图像。Sagar等人使用带有模拟摄像机的数字解码器TVP5146。一些作者使用了来自non的灰度图像指定的源程序,有一些使用了来自Matlab的灰度图像,还有一些作者只是用灰度图像模拟了他们的FPGA实现。作者似乎没有特别注意相机,市场上有几个FPGA的摄像头,知道摄像头的特点对于使用者来说非常有用,这样他们就可以提出更有效的实施方案。特别是摄像头输出图像格式可以改善FPGA实现边缘检测算法。
论文的其他部分如下。第二部分简要描述了JPEG图像压缩。对常用边缘检测方法的描述在第三部分。用不同的质量因子值创建图像的实验在第四部分,对真实图像的测试在第五部分。第六部分综述了13种FPGA用相机,并对其结构进行了描述。第七部分中对摄像机输出数据格式进行了分析,以说明哪些格式适合FPGA实现的边缘检测方法。结论在第八部分。
2.JEPG图像压缩
分析有损压缩对边缘检测系统效率的影响,最好是了解使用JPEG压缩的算法。整个过程由四步组成。首先,原始图像被分成大小不一的方块8像素。然后,对每一块进行二维离散余弦变换,得到1个直流系数和63个交流系数。第三步是量子化,每个系数除以一个相应的常数,结果四舍五入得到一个整数。用于量子化的常数由基矩阵定义,根据质量因素值变化。有些频率分量经过量子化后变为0。压缩的最后一步是无损熵编码。很明显,图像质量压缩比由使用的量化矩阵确定。解码后的JPEG图像与原始图像不同,存在一些可见的伪影和失真。解码图像与原始图像不同,会影响边缘检测的性能。
3.常用的边缘检测方法
要测量大量的边缘检测方法是不实际的,因此我们决定测试其中的四种。三种最常用的检测方法是Prewitt,Sobel和Canny。选择这三个检测方法的优势是,它们通常是通过Matlab实现的功能既由用户决定,也由研究人员决定。他们用旧的算法提出了边缘检测方法。第四种是基于分数阶导数的边缘检测方法,我们选择它是因为它的新颖性。这种检测方法的作者声明,它比旧的梯度边缘检测方法更好。Prewitt,Sobel和分数阶导数是基于卷积核:
Prewitt:
,
Sobel:
,
分数阶导数:
,
对于图像可以计算出边缘强度
,
图1创建的测试图像
Quality |
Figure of merit(fom) |
|||
Prewitt |
Sobel |
Canny |
Fract |
|
Uncomp. |
0.9993 |
0.9998 |
0.9925 |
0.9465 |
100 |
0.9999 |
0.9998 |
0.9907 |
0.9465 |
90 |
0.9998 |
0.9998 |
0.9908 |
0.9414 |
80 |
0.9998 |
0.9998 |
0.9903 |
0.9329 |
70 |
0.9999 |
0.9998 |
0.8936 |
0.9307 |
60 |
0.9998 |
0.9998 |
0.7637 |
0.9095 |
表格1创建的图像的FoM计算
这里x和y方向上的梯度估计是通过上述卷积掩模计算得到的。该操作的结果是边缘强度图像(灰度)。从边缘强度图像中获取边缘图像(二值化)需要两个过程:阈值化和细化。在本文的实验中,我们使用Matlab函数边缘(默认设置)来计算Prewitt,Sobel和Canny的边缘检测。
对于基于分数阶导数的边缘检测,根据公式在Matlab中计算边缘强度图像,然后分别得到Matlab函数im2bw和bwmorph用于阈值化和细化。阈值水平由Matlab函数graythresh计算。
4.创建图像的实验
选取4个边缘检测方法分别对生成的图像和2张真实图像进行检测。图1中创建的是8位灰度测试图像。背景层是40,前景层是220。使用Matlab函数imwrite创建5幅质量从100到60的JPEG图像。可以获得完全相同的图像,同样用程序irfanView也进行上述步骤。然后根据原始图像和五幅JPEG图像计算边缘图。为了评估边缘检测性能,我们使用了一个优点图。品质因数(FoM)由Pratt引入,它平衡了边缘检测过程中三种类型的错误:缺失边缘点,假边缘点,检测到的边缘点相对于原始边缘的偏移的位置。品质因数(FoM)定义如下:
delta;是比例常数(通常是1/9),e(k)是第k个边缘点的距离,Id为检测到的边缘点个数,Ii为一些实际的边缘点。显然0le;FoMle;1.如果两个比较的边缘点是相同的,那么FoM=1。FoM值越低,说明比较的边缘图像差异越大。表1总结了用不同的质量计算的五幅JPEG图像的FoM值。
用有噪声的图像重复上述实验。如果高斯噪声标准差sigma;n是添加到无噪声图像Iu(c,r),信噪比SNR可以由公式计算
式中Pu为原值的幂次均值的平方根,图像Iu(c,r)大小为N*M像素
FPGA实现中使用的摄像头的信噪比为36db到42db。这些值是在良好的光照条件中定义的。在我们的实验中,我们决定使用信噪比为30db的噪声图像。由于测试图像的Pu为124.79,高斯噪声的标准差应该为3.95,这个值四舍五入为4。从原始图像中提取未压缩的噪声图像图像Iu(c,r)采用以下公式
其中,randn是Matlab函数,它产生一个伪随机数,其正态分布的均值为0,标准差为1.获得的图像被用来创建5个质量从100到60的噪声JPEG图像。然后根据这五幅有噪声的JPEG图像计算出边缘图,并根据无噪声的原始边缘图计算出相应的FoM值。结果如表2所示。
Quality |
Figure of merit(fom) |
|||
Prewitt |
Sobel |
Canny |
Fract |
|
Uncomp. |
0.9997 |
0.9998 |
0.5902 |
0.9446 |
100 |
0.9997 |
0.9998 |
0.5851 |
0.9446 |
90 |
0.9998 |
0.9998 |
0.4798 |
0.9414 |
80 |
0.9998 |
0.9998 |
0.3745 |
0.9307 |
70 |
0.9998 |
0.9998 |
0.1756 |
0.9167 |
60 |
0.9984 |
0.9965 |
0.1640 |
0.9027 |
表2创建的噪声图像的FoM值
结果表示,对于Prewitt和Sobel边缘检测方法,图像压缩对于边缘检测性能没有实际影响。使用无噪声或是有噪声的图像并不重要。基于分数阶导数的边缘检测对噪声步敏感,但对图像压缩敏感。令人惊讶的是Canny边缘检测方法对噪声和压缩的灵敏度。如前所述,边缘映射是使用Matlab函数边缘在默认设置下计算的。这意味着Canny检测器的参数是自动设置的。从现有的资料中去确认Matlab是如何确定更低和滞后阈值的上阈值是不太可能的。所创建的图像的直方图与真实图像的直方图有很大的区别,如果在Matlab中从图像直方图中计算出阈值,阈值可能太低,会导致不好的结果。
对生成的图像进行边缘检测得到的结果可能很有趣,但它们不能反映边缘检测在真实的图像上。
5.实像实验
在本章中,将介绍在两个不同的图像Castle.png和Capsicum.png上的实验。 原始图片Castle.png其三个边缘图在图2中。图2a是利希滕斯坦城堡(Schloss Lichtenstein)的灰度图片。选择该图片是因为它包含许多小细节。 由未压缩图片Castle.png计算得出的边缘贴图。边缘图是根据Sobel,Canny和Unbel的未压缩图片Castle.png计算得出的分数导数边缘检测器在图2b–图2d。 由Prewitt边缘检测器计算出的边缘图非常接近So bel检测器的乘积,因此在图2中未给出。
从图2b,图2c和图2d中获得的边缘图可以很明显得出,Sobel(Prewitt),Canny和分数导数边缘检测器产生或多或少的不同边缘图。 在表1和表2中的数据确认相同的结论。
图2原始图片Castle.png(a)和Sobel(b),Canny(c)和分数导数(d)边缘检测器
Matlab函数的imwrite应用于Castle.png以获得质量为100至60的9张JPEG图像。对于每个JPEG图像,计算了四个边缘图,并计算了相应的FoM值。将原始图像Cas tle.png(图3a)的缩放部分与压缩版本(图3b)进行比较,可以看到在压缩版本的对象边缘出现了伪影。乍一看,利用Sobel边缘检测器从原始图像计算出的边缘图(图3c)似乎与从JPEG版本获得的图(图3d)相同。 但是缩放边缘贴图揭示了它们之间的一些差异(图3e和图3f)。这些差异对于正常使用而言并不重要,但可能会影响一些边缘检测方法的比较
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239656],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。