当前位置:文档之家› 基于GPU并行计算的图像二值化研究【文献综述】

基于GPU并行计算的图像二值化研究【文献综述】

文献综述计算机科学与技术基于GPU并行计算的图像二值化研究引言:图像是当今社会运用的越来越多的元素之一,不过是动画还是静态的图片都是图像的动静呈现,所以对图像的处理也就越来越得到人们的关注。

图像重要性,图像处理就是在图像中得到可靠的信息。

而图像的二值化处理也是当今正盛行的一种图像的处理方法,它把图像原始化,使得数据更加简单的表现。

本毕业设计是GPU与二值化的并行运算,这无疑就是一种加速算法,也就是讲在二值化处理本来就跟快的基础上,能够更快的读取图像中的信息,得到我们想要的数据。

而现在最常用的一种加速算法就是CUDA算法,他的并行运算可以使得二值化运算提高几十倍,在图像处理中是一个很庞大的数据。

CUDA的并行运算在处理小图像时并不能很明显的突出速度,但是当遇到有大量的图像需要处理,而且图像又很大的情况下,这种并行运算可以节省很多时间。

1图像处理简介1.1图像处理的概念图像处理一般指数字图像处理。

数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。

图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。

常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。

图像处理一般指数字图像处理。

虽然某些处理也可以用光学方法或模拟技术实现,但它们远不及数字图像处理那样灵活和方便,因而数字图像处理成为图像处理的主要方面。

1.2 图像二值化技术的简介首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。

其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。

所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。

二值图像形态学是依据数学形态学的集合论方法发展起来的针对二值图像的处理方法。

其主要内容是设计一整套的运算、概念和方法,用以表述图像的基本特征。

二值图像形态学的运算以腐蚀和膨胀两种基本运算为基础,引出了其它几个常用的数学形态学运算,最常用的运算有腐蚀、膨胀、开运算、闭运算,它们是全部形态学的基础。

用这些运算及其组合可以进行图像形态和结构的分析及处理[1]。

图像二值化的基本算法步骤是找出阈值th ,然后按照公式1完成图像的二值化。

⎩⎨⎧<≥=th y)f(x,0,th y)f(x,1, y)g(x, (1) 2 图像二值化处理的方法2.1二值化方法简介采用闽值确定边界的最简单做法是在整个图像中使用单一灰度闽值T 。

如果背景的灰度值在整幅图像中可以大致地看作恒定,而且所有物体与背景都具有几乎相同的对度,那么,只要选择了正确的闭值,使用一个固定的全局闽值一般效果会比较好。

全局阐值二值化方法是根据图像的直方图或灰度空间的分布确定一个闽值,并根据该阐值实现灰度图像的二值化。

全局阐值方法的优点在于算法简单,对于目标和背景明显分离、释放图分布呈双峰的图像效果良好,但输入图像量化噪声或不均匀光照等情况抵抗能力差。

全局阐值分割方法在图像处理中应用比较多,它在整幅图像内采用固定的闽值分割图像。

经典的闽值选取以灰度直方图为处理对象。

根据闭值选择方法的不同,可以分为模态方法、迭代式闭值选择等方法。

这些方法都是以图像的直方图为研究对象来确定分割的闽值的。

另外还有类间方差闽值分割法、二维最大嫡分割法、模糊闽值分割法、共生矩阵分割法、区域生长法等等[6]。

2.2全局二值化采用闽值确定边界的最简单做法是在整个图像中使用单一灰度闽值T 。

如果背景的灰度值在整幅图像中可以大致地看作恒定,而且所有物体与背景都具有几乎相同的对度,那么,只要选择了正确的闭值,使用一个固定的全局闽值一般效果会比较好。

全局阐值二值化方法是根据图像的直方图或灰度空间的分布确定一个闽值,并根据该阐值实现灰度图像的二值化。

全局阐值方法的优点在于算法简单,对于目标和背景明显分离、释放图分布呈双峰的图像效果良好,但输入图像量化噪声或不均匀光照等情况抵抗能力差。

全局阐值分割方法在图像处理中应用比较多,它在整幅图像内采用固定的闽值分割图像。

经典的闽值选取以灰度直方图为处理对象。

根据闭值选择方法的不同,可以分为模态方法、迭代式闭值选择等方法。

这些方法都是以图像的直方图为研究对象来确定分割的闽值的。

另外还有类间方差闽值分割法、二维最大嫡分割法、模糊闽值分割法、共生矩阵分割法、区域生长法等等。

2.3局部二值化局部闽值法是将原始图像划分为较小的图像,并对每个子图像选取相应的闽值,是由像素灰度值和像素周围点局部灰度特性来确定像素的闭值的,在闽值分割后,相邻子图像之间的边界处可能产生灰度级的不连续性、容易出现伪造影现象等,因此需用平滑技术进行排除。

非均匀光照条件等情况虽然影响整体图像的灰度分布却不影响局部的图像性质。

局部闭值法的方法有灰度差直方图法、微分直方图法。

2.4最大类间方差法最大类间方差法[9,10]是由日本学者大津于1979 年提出的,是一种自适应的阈值确定方法,又叫大津法,简称Otsu 。

它按图像的灰度特性,将图像分成背景和目标两部分。

因方差是灰度分布均匀性的一种度量,方差值越大,说明构成图像的两部分差别越大,因此,背景和目标之间的类间方差越大,说明构成图像的两部分的差别也越大。

当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此,使类间方差最大的分割意味着错分概率最小。

设t 为前景与背景的二值化阈值;属于前景像素点数占图像比例为w 0,平均灰度为u 0;背景点数占图像比例为w 1,平均灰度为u 1;图像的总平均灰度为u ,类间方差记为g 。

假设图像的背景较暗,图像的大小为M ×N ,图中像素的灰度小于阈值t 的像素个数为N 0(此类像素被判为前景),像素灰度值大于阈值t 的像素个数为N1(此类像素被判为背景),则有:)N M /(N w ),N M /(N w 110⨯=⨯=11001010u w u w u 1w w N M N N ⨯+⨯==+⨯=+ (2) )u u (w )u u (w g 11200-+-= (3) 将(2)代入(3)可得:)u u (w w g 1010-= (4)采用遍历的方法得到使类间方差最大的阈值t,即为所求。

2.5 均值法用均值全局二值化法,就是把整个图片看成一个大的部分,比如是a*a的一幅图像,接下来就可以读取整个图像的数据,对整个图像进行图像的分析,获得需要的数据,然后对这个数据去求平均值,也就是去整除整个图像的大小,这样就微分到最小的像素了,得到一个数值,但是这个数据相对来说不是很稳定,因为对图像处理的过程相对比较粗糙,如果是一个受光面不均匀的图像,整个数据读取就会出现误差,所以不能很精确的读取图像,如果是一个较为清晰的图像,可能这是一个有简单有快捷的好方法。

这就是简单的基于均值的全局二值化法。

2.6 边缘差值法物体的边缘是以图像局部特性的不连续性的形式出现的,比如灰度值的突变,纹理结构的突变,颜色的变化等。

图像的边缘通常有方向和幅度两个不同的特性。

图像的边缘信息在图像分析和人的视觉中都占有十分重要的地位,在图像识别中提取图像特征是一个重要的属性。

通常,沿边缘走向的象素变化平缓,而垂直于边缘走向的象素变化剧烈。

这种变化可能呈现阶跃型、房顶型和凸缘型。

边缘点对应于一阶微分幅度大的点,也对应于二阶微分幅度的零交叉点。

在边缘上灰度的一阶导数幅值较大,也就是说,而二阶导数在边缘上的值为0 ,其左右分别为一正一负两个峰,因此,利用梯度最大值或二阶导数的过零点提取边缘就成为一种有力的手段[11]。

根据上面各种方法的介绍,分别都提及了各种方法的功能。

当然,不管是什么样的方法,总会存在优势和劣势。

像全局法,通常可以很全面的去处理一幅图像,一般只考虑到整体像素的平均灰度值,而不能够顾及到每个像素的不同之处,所以其二值化在整体来说相对执行速度上是快了一点,但对输入图像量化噪音或不均匀光照等情况抵抗能力差[4]。

所以在受光不均匀的图像处理时,一般选取的就是局部二值化法。

因为这种方法把图片分割成若干个相同的模块,选取其中一个对其进行处理,这个逐个处理下来就可以得到相对精确的数据,所以经常用局部二值化法去处理那些看上去相对较暗的图片。

当然,这样逐个的处理会减慢图像处理的速度,计算也就变得繁琐。

根据他们处理图像的优劣,所以总会先分析不同的图像,对图像选择不同的处理方法。

3 CUDA图像二值化3.1CUDA简介随着显卡的不断发展,处理器功能变得越来越强大,并且出现了具有高度的可程序化能力,目前可编程的GPU具有比较高的内存带宽,和大量的执行单元,因此开始有利用显示芯片来帮助进行一些计算工作。

由于GPU的计算能力已经超越了通用的CPU,而且在并行运算中可以得到很好的结果,NVidia推出的CUDA应用程序,让显卡可以用于辅助计算。

CUDA的SDK中的编译器和开发平台支持Windows、Linux和MAC系统,可以与Visual Studio集成在一起,并且以使用C语言为基础,写出在显示芯片上执行的程序。

这种强大的处理器所用的工具集的核心是一个C语言编译器。

目前只有GT200、GF100、G80、G92、G94、G96平台(即Geforce 8~Gecorce GTX480)的NVidia显卡才能使用CUDA,G80中拥有128个单独的ALU,因此非常适合并行计算,而且数值计算的速度远远优于CPU[7]。

CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。

在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而对于大规模的数据计算应用就有了一种比CPU 更加强大的计算能力。

同时它是一个完整的解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。

CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起更高效率数据密集度高的多的计算解决方案[9]。

所以与CPU相比,GPU具有以下优势:强大的并行处理能力和高效率的数据传输能力。

其中,并行性主要体现了指令级、数据级和任务级三个层次。

高效率的数据传输主要体现在两个方面:GPU与显存之间的带宽为:16GB/s;系统内存到显存的带宽为:4GB/s。

综上所述,GPU比较适合处理具有下面特性的应用程序:1、大数据量;2、高并行性;3、低数据耦合;4、高计算密度;5、与CPU交互比较少[3]。

相关主题