自适应图像

2024-10-23

自适应图像(共12篇)

自适应图像 篇1

摘要:为解决自然场景下各种颜色花朵目标的提取问题,提出一种基于自适应图像数据源的彩色图像分割方法。该方法中,一幅图像的不同数据源对应着此图像不同的色彩分量信息。由于模糊C均值聚类算法(FCM)是一种局部搜索算法,因此新方法中首先利用细菌觅食优化算法(BFO)的全局寻优性与FCM结合,从而寻得一幅图像在多个色彩分量下各自的全局最优聚类中心;然后利用一种新的综合的模糊聚类评价函数求得此图像在其不同色彩分量下即不同数据源下的分类质量;最后输出分类质量最好的分类结果。通过对真实场景中采集的10幅具有代表性的图像进行实验,结果证明新方案能适应目标颜色和背景因素的变化,分割出更接近期望的目标。

关键词:自适应图像数据源,彩色图像分割,新的模糊聚类评价函数,FCM,BFO,目标提取

0 引言

图像分割是目标提取与识别的基础,分割结果的好坏直接影响着图像处理的最终结果。目前,图像处理技术越来越多地被应用于目标的自动识别系统,其中需要解决的首要问题就是图像中目标的准确分割。国内外许多学者对植物目标的分割方法或技术进行了大量的研究,提出了许多不同的色彩模型和分割方法。Perez等[1]利用RGB色彩空间中的颜色特征因子的组合( G - R) /( G + R) 作为图像分割的数据源,实现了土壤和植物的分割。Zhou等[2]使用RGB色彩空间中的色差法G - R和R - B分割出树上的苹果目标。崔永杰等[3]通过不同颜色空间的对比,利用R - G色差分量实现了自然环境中猕猴桃的识别。王新忠[4]在HIS色彩空间下实现了成熟番茄目标的识别。王玉德等[5]融合CIELAB和HSV色彩空间信息,实现了复杂背景下甜瓜果实目标的分割。

在上述研究中,主要利用一种或多种色彩空间颜色分量的组合作为某一特定农作物图像分割的固定数据源。由于其方法主要针对某种特定的农作物提出,从而不具备普遍适用性。

基于现有的研究,本文提出一种基于细菌觅食模糊聚类算法和自适应图像数据源方案的彩色图像分割方法,实现了不同颜色花朵目标在各种复杂背景下的有效分割。

1 模糊C均值聚类算法

近年来,将模糊理论应用于图像分割领域已成为热点,由于图像本身具有模糊性与不确定性,而模糊理论正好具有处理这种模糊性与不确定性的天然优势。基于模糊理论的图像分割算法有很多,其中最著名的要数模糊C均值聚类算法FCM。FCM算法的策略是通过迭代不断更新目标函数,当目标函数收敛于极小值时则寻得全局最优解[6]。

从很多文献可以看出FCM算法本身存在一些不足: ( 1)FCM对初始聚类中敏感[7],初始聚类中心的选取会直接影响到最终的聚类结果; ( 2) FCM对噪声较为敏感[8]; ( 3) 由于其计算数据是基于每个像素点的,故其算法计算量较大。

为了解决此算法对初值敏感、易陷入局优的缺陷,有学者利用智能算法的全局寻优性与FCM进行结合,如文献[9]结合蚁群算法、文献[10]结合粒子群算法、文献[11]结合遗传算法分别针对FCM进行了改进。虽然改进算法的全局搜索力得到了改善,但是由于引入智能算法使得新算法搜索时间变长,算法收敛速度较慢,特别是当数据量较大时容易出现早熟现象。而BFO是一种全局性的寻优算法,且其算法简单、具有鲁棒性、相对较快的收敛速度[12]和精细的搜索特性[13],使其在学术研究和工程应用方面都具有重大的价值。故本文将BFO和FCM进行结合,从而使新算法具有更快的收敛速度、更强的全局寻优能力和更好的寻优精度。

2 细菌觅食算法介绍

细菌觅食算法,是模仿大肠杆菌在人体肠道内寻找食物行为的一种仿生算法。该算法主要通过三大操作迭代计算来求解问题,这三大操作分别为: 趋向性操作、繁殖操作和迁徙操作[14]。趋向操作是细菌向环境好的区域聚集的行为,它包括两种模式( 翻转和前进) 。翻转是指细菌向着任意的一个方向移动一个单位步长,前进是指在翻转后细菌个体的适应度值得到改善,则它沿着上一步的方向继续移动,直到其适应度值不再变好,或达到预定的最大连续移动步数。趋向性操作结束后,进入繁殖阶段,首先根据趋向过程中各个细菌的适应度值进行排序,然后让适应度较差的一半个体继承适应度较好的一半个体的位置信息,此过程模仿了自然界的“优胜劣汰”行为。在繁殖操作完成后,细菌将按一定的概率被迁徙到搜索空间中的一个随机位置,此操作被称为迁徙操作。在此算法中,通过菌群不断依次重复这三大操作,形成了高效快速的寻优模式。文献[15,16]表明此算法收敛速度快,具有较强的全局寻优能力。

3 自适应数据源的图像分割算法

由于自然环境中鲜花的颜色是多种多样的,在一幅包含鲜花目标的图像中,背景大多为绿色的枝叶。作为目标的花朵虽然有各种颜色但其颜色相对于背景它的红色分量较大,于是在本文中选用了RGB色彩空间。图像分割的实质是将目标和背景进行分离,让它们分属于不同的一类。如果目标和背景的差距越大,目标就分割得更明确,属于目标的像素点就不会被误分给背景类,其分割效果也将越好。由于同一图像在不同的色彩分量下其目标和背景有着不同的差距,也就是说如果某一色彩分量下目标与背景的差距最大,则其分割效果将会最好。因此要想取得好的分割效果,我们只需将目标与背景差距最大时的色彩分量作为数据源进行处理即可。本着这样的思路进行了本文的实验。针对鲜花目标图像的分割,本文选用了RGB色彩空间下的R分量、G分量、B分量和R-G色差分量作为图像分割的数据源。

3. 1 R-G色差分量

R-G色差分量在农业领域的成熟果实目标的分割中运用得相当广泛[17,18,19],由于成熟果实的分割和鲜花目标的分割具有一定的相似性,故将其色差分量选为鲜花目标分割的数据源之一。

由于R、G、B各自的分量取值范围是[0,255]而R-G的取值范围为[- 255,255],故将R-G的数据进行转化使其取值范围同样为[0,255]。这样做的目的类似于数据的标准化。数据转换如下[19]:

其中,Fi代表图像中第i个像素点的R - G的分量值,Ri为第i个点的R分量值,Gi为该像素点的G分量值。于是式( 1) 的取值范围变为[- 1,1],再通过式( 2) 的转换[19],其取值范围便是[0,255]。

3. 2 BFO与FCM的结合

通过将FCM的目标函数作为BFO的寻优目标函数,让BFO替代FCM进行全局寻优,从而迅速找到在各个颜色分量下具有较高精度的全局最优聚类中心。并根据聚类中心求得每个颜色分量下每个像素点到对应聚类中的隶属度值,再根据最后的结果利用新的评价函数计算每个颜色分量下的聚类质量。

由于图像本身的数据量较大,为了降低计算量,减少大尺寸图像给算法带来过重的计算压力,故采用基于直方图的快速FCM算法,即参与运算的数据为图像数据的直方图,而非图像中每个像素点的数据。

3. 3 新的模糊聚类评价函数

针对模糊聚类结果的评价函数有很多,常用的有划分系数[20]、划分熵[21]、Xie-Beni指标[22]等。

划分系数表示类与类之间的重叠量,其值越大表示分割效果越好。对于给定的聚类中心数c和隶属度矩阵U,划分系数F( U; c) 定义为:

划分熵代表类别本身的模糊程度,其值越小分割效果越好,其函数如下:

Xie-Beni指标即类间关联度,其值越小分割效果便越好,其函数定义为:

本文的评价函数是建立在以上3 个指标上的。为了评价在不同颜色分量下的聚类结果的好坏,本文中新的评价函数综合了以上三个指标。当其综合指标最优,则其对应颜色分量下的聚类结果最好。为了公式的简洁,下面将划分系数用Vpc代替,划分熵用Vpe代替,Vxb则表示Xie-Beni指标。

新的评价函数中,首先通过式( 6) 中的3 个子公式分别将每个颜色分量下的3 个指标进行标准化,这样可以避免不同指标的取值范围差异对评价结果造成影响。其中k = 4,因为选用了4 个颜色分量的数据源。新的综合评价函数如下:

由于Vpc指标是其取值越大效果越好,故将其取倒数,也就是当值越小时聚类结果越好。而Vpe和Vxb指标都是当其取值最小时对应的聚类结果最好。于是得出当HFV( i) 取得最小值时,对应的色彩分量下的聚类效果最好。

3. 4 对分割结果的修正

在图像分割领域,图像的分割结果常受到噪声的影响[23,24,25]。为了分割出更加符合人们期望的目标,本文利用邻域像信息对其最优分割结果中的噪声点进行了修正。首先定义一种邻域信息函数,用于计算和保存每个像素点的领域像素信息。其表示如下:

式中,Aij代表以像素点xi为中心的一个正方形( 亦可设置成其他形状) 邻域内,所有像素点隶属于第j类的平均隶属度值。N( xj) 代表以xi为中心的邻域内所有像素点。num代表邻域内像素点的个数。

噪声点的判断条件如下:

当像素点xi属于j类的隶属度小于属于p类的隶属度,且邻域像素属于j类的平均值大于属于p类的平均值,那么此时xi即为噪声点。简而言之,当周围像素大部分都属于j类,而此像素却属于p类时,此点即为噪声点。

修正方式: 如果一个点被判断为噪声点,该点对于每个聚类中心的隶属度将被修改为Aij。最后根据每个像素点对于每个聚类中心隶属度值的大小将此点判属于隶属度值最大的聚类中心。

3. 5 新的图像分割方法的处理流程

为了找到具有最优分割结果的数据源和其对应的最优分割结果,文中方案的整体处理流程如图1 所示。

流程图中的说明: 1) 计算颜色分量i的直方图是为了大大减少参与计算的数据量,即不再采用传统方法中逐像素点的计算方式,而参与计算的仅为256 个色阶值和每个色阶出现的频率,从而使得图像尺寸的大小对算法效率的影响没有明显的变化。2) 将BFO和FCM结合,即将FCM的目标函数作为BFO的目标函数,让BFO代替FCM的迭代过程去改进FCM全局寻优的性能,从而迅速找到较高精度的各个颜色分量下的全局最优聚类中心。3) 新的聚类质量评价函数是为了综合评价聚类结果的质量。4) 修正分割结果的目的是为了减少图像中噪声和背景因素造成的一些误分割。

4 实验结果及其分析

为了验证本文方法的可行性及其效果,特于2014 年5 月24日( 天气: 小雨转阴) 在兰州植物园拍摄了多张花卉图片,最终选取了其中10 张包含不同颜色的花朵目标和不同背景因素的图片作为实验素材。实验前图片大小均被重设为512 × 512。算法的实现平台为Visual C + + 6. 0,编码是通过C语言实现。算法处理的初始图像数据是由Matlab将图片转换成的数组,图像分割处理结果的显示也用到了Matlab,再将数组用图片的方式显示出来。

首先对实验涉及的10 幅图片的背景因素和对分割构成干扰的因素说明如表1 所示。

按照3. 5 节的处理流程,分别对10 幅图片在其R分量、G分量、B分量、R-G分量下进行了分割实验,并利用最优分割结果对目标进行了提取。同时也进行了标准FCM对传统数据源( 灰度图数据) 进行分割的实验,并将其传统方法的分割结果与本文方法进行对比。以下所有实验均是将图片分成3 类。由于印刷效果为黑白,故将彩色的原图和结果图转换为灰度图列于表2 中,并在图编号列中特别标明花朵目标的颜色,实验结果如表2 所示。

从表2 中我们可以看出一般情况下黄色花朵适合用R分量作为数据源,红色系花朵适合R - G分量作为数据源,白色系花朵适合G分量,蓝色系花朵适合B分量,但是相同颜色的花朵目标随着背景的变化,其最优数据源也会发生变化,如图中4、5 号图片的分割效果。从十幅图的实验结果可见,本文方法选择出的最优数据源的分割结果比传统方法( 标准FCM对灰度图的分割) 的分割结果要更加完整和准确,而传统方法的分割结果严重受到了背景因素的影响致使目标对象不能被准确地分割出。实验过程中尽管花朵目标颜色在变化,其背景因素也在变化,本文方法均能在无人工干预的情况下较完整地分割出人们期望的目标。

表3 记录了每张实验图每个色彩分量下分割结果的划分系数( Vpc) 、划分熵( Vpe) 、Xie-Beni指标( Vxb) 、本文综合指标HFV的值以及用传统方法( 标准FCM对灰度图的分割) 的实验结果数据。根据各个指标系数的特点可知: 划分系数越大分割效果越好,划分熵和Xie-Beni指标越小分割效果越好,HFV越小越好。表3 中对每幅图的最优数据源的分割结果进行了加粗显示。

通过表3 中的实验数据可见,本文方法选择的最优数据源的分割结果比传统方法的分割结果更好,从而自适应数据源的图像分割方案是可行的,其新的综合模糊聚类评价函数也是有效的。该方法对目标颜色的变化和背景的变化有很强的适应性,它能自适应地找出最优数据源并得到最优分割结果,让分割结果更符合人们的期望。

5 结语

本文通过细菌觅食优化算法和FCM相结合来改进FCM的全局搜索性能和算法的收敛速度,并提出了新的模糊聚类评价函数去评价一幅图像在不同数据源下分割结果的好坏,从而使本文的图像分割方法在不同颜色的花卉目标和复杂的自然背景下均能取得较好的分割结果。同时,本文方法还存在一些不足,目标的分割还是会受到一些和目标颜色非常相似的因素的干扰,这是后续需要研究和改进的地方。

自适应图像 篇2

在八周的自适应控制学习中,我了解了自适应控制的基本概念和定义,自适应控制的原理和数学模型以及发展状况。其中,老师重点给我们讲了李亚普诺夫稳定理论设计MRAC系统和MIT方案,波波夫超稳定理论设计MRAC系统和MIT方案和自校正控制系统。虽然这些理论知识掌握的不是很牢固,理解的也不够透彻,但是这为我以后的学习和实践奠定了一定的基础。

自适应控制的定义:(1)不论外界发生巨大变化或系统产生不确定性,控制系统能自行调整参数或产生控制作用,使系统仍能按某一性能指标运行在最佳状态的一种控制方法。(2)采用自动方法改变或影响控制参数,以改善控制系统性能的控制。

自适应控制的基本思想是:在控制系统的运行过程中,系统本身不断的测量被控系统的状态、性能和参数,从而“认识”或“掌握”系统当前的运行指标并与期望的指标相比较,进而做出决策,来改变控制器的结构、参数或根据自适应规律来改变控制作用,以保证系统运行在某种意义下的最优或次优状态。

按这种思想建立起来的控制系统就称为自适应控制系统。自适应控制是主动去适应这些系统或环境的变化,而其他控制方法是被动地、以不变应万变地靠系统本身设计时所考虑的稳定裕度或鲁棒性克服或降低这些变化所带来的对系统稳定性和性能指标的影响。好的自适应控制方法能在一定程度上适应被控系统的参数大范围的变化,使控制系统不仅能稳定运行,而且保持某种意义下的最优或接近最优。

自适应控制也是一种基于模型的方法,与基于完全模型的控制方法相比,它关于模型和扰动的先验知识比较少,自适应控制策略可以在运行过程中不断提取有关模型的信息,自动地使模型逐渐完善。

李亚普诺夫稳定理论设计MRAC系统和MIT方案的学习中,如果要设计一个关于李雅普诺夫函数的MRAC系统。首先构造出系统的李亚普诺夫函数,然后用李雅普诺夫稳定性理论的设计方法,能够成功地设计稳定的模型参考自适应系统。在这一章的学习中,理解李亚普诺夫稳定性理论和构造系统的李亚普诺夫函数是重点。

超稳定性概念是波波夫于六十年代初研究非线性系统绝对稳定性时发展起来的。当时,波波夫对某种类型的非线性系统的渐近稳定性问题,提出了一个具有充分条件的频率判据,对研究的这类非线性系统的稳定性提供了比较实用的方法。波波夫所研究的这类非线性系统,是由线性时不变部分与非线性无记忆元件相串联而构成的反馈系统。波波夫超稳定性理论来设计模型参考自适应系统,它可以给出一族自适应规律,并且有一整套设计理论。因此,有利于学习掌握这种自适应控制的设计方法和结合实际系统灵活选择适当的自适应控制规律。

自校正控制系统又称为参数自适应系统,它源于随机调节问题,该系统有两个环路,一个环路由参数可调的调节器和被控系统所组成,称为内环,它类似于通常的反馈控制系统;另一个环路由递推参数估计器与调节器参数计算环节所组成,称为外环。自校正控制系统与其它自适应控制系统的区别为其有一显性进行系统辨识和控制器参数计算(或设计)的环节这一显著特征。自校正控制的思想是将在线参数估计与调节器的设计有机的结合在一起。自适应控制常常兼有随机性、非线性和时变等特征,内部机理也相当复杂,所以分析这类系统十分困难。目前,已被广泛研究的理论课题有稳定性、收敛性和鲁棒性等,但取得的成果与人们所期望的还相差甚远。

在传统的控制理论与控制工程中,当对象是线性定常、并且完全已知的时候,才能进行分析和控制器设计。无论是采用频域方法还是状态空间方法对象一定是已知的。这类方法称为基于完全模型的方法。在模型能够精确的描述实际对象时,基于完全模型的控制方法可以进行各种分析、综合,并得到可靠、精确和满意的控制效果。因此,在控制工程中,要成功设计一个良好的控制系统,不论是通常的反馈控制系统或是最优控制系统,都需要掌握好被控系统的数学模型。

然而,有一些实际被控系统的数学模型是很难事先通过机理建模或离线系统辨识来确知的,或者它们的数学模型的某些参数或结构是处于变化之中的。对于这些事先难以确定数学模型的系统,通过事先鉴定好控制器参数的常规控制难以应付。

面对这些系统特性未知或经常处于变化之中而无法完全事先确定的情况,如何设计一个满意的控制系统,使得能主动适应这些特性未知或变化的情况,这就是自适应控制所要解决的问题。

自适应控制技术在20世纪80年代即开始向产品过渡,在我国得到了较好的推广应用,取得了很大的经济效益。且理论研究也有一些开创性的成果。但总的来说推广应用还很有限,主要是由于其通用性和开放性严重不足。

虽然现已能设计出安全、有效、稳定、快速且现场操作比较简单的自适应控制系统,但今后较长一段时期内,相对简单实用的反馈、反馈加前馈或其他一些成熟的控制技术仍将继续占据实际应用的主流。

自适应控制理论必须有新的突破,才能在工程应用中对PID控制等传统方法取得显著的优势,结合人工智能技术,尤其是神经网络技术与模糊理论,或许是最终实现这一远景的可能途径。

自适应图像 篇3

关键词遥感图像NSCT自适应阈值去噪

1引言

随着远程数字传感技术的进步,遥感技术已应用于各个领域,例如越来越多地球科学,农业,军事等。但是在成像过程中,遥感图像总是不可避免的受各种噪声的影响,遥感图像去噪的一个重要任务就是去除噪声的同时尽可能地保留遥感图像的边缘和细节。在变换域去噪过程中,合理地选取阈值非常重要,直接影响到去噪效果。在去噪领域中,由于小波技术具备良好的时频特性,小波理论也同样受到了许多学者的重视,并在实际中得到非常广泛的应用。Donoho等人提出利用小波系数进行阈值去噪[1],该方法对于一维信号的去噪效果比较好,由于小波变换缺乏方向性,对二维遥感图像信号来说,小波变换不能最优表示遥感图像中线和面的奇异性,使得小波变换在遥感图像去噪中具有一定的局限性。为了克服小波变换的这一局限性,2002年Minh N.Do和Martin Vetterli提出了一种具有多分辨的、局部的、多方向的二维遥感图像的稀疏表示方法:Contourlet变换[2],变换的最终结果使用类似于轮廓段(Contour Segment)的基结构来逼近原遥感图像,其基函数支撑区间9的长度比随尺度变化而变化,能以接近最优的方式描述遥感图像边缘。但由于Contourlet本身缺乏平移不变性,从而导致遥感图像去噪时奇异点周围存在Gibbs现象。故在此基础上,Cunha和M.N.Do等人又给出了其下采样形式,即非下采样Contourlet变换(NSCT)[3],并将其用于遥感图像去噪。传统的NSCT域阈值去噪由于没有考虑到NSCT系数的领域相关性,会“过扼杀”NSCT系数[4]。本文以小波变换和NSCT变换为基础,根据NSCT系数所在邻域的特性[5-6],对于边缘区域,以减小阈值来保留更多的边缘系数;本文提出了结合邻域信息的自适应阈值,对高频系数区域通过增加阈值来去掉更多的噪声。仿真实验结果表明,通过本文提出的方法能够得到较高的PSNR,其性能优于当前一些典型的去噪方法。

2NSCT域的自适应阈值遥感图像去噪方法

2.1NSCT

NSCT是通过塔形方向滤波器组(PDFB)把遥感图像分解成各个尺度上的带通方向子带,主要由两个步骤实现:子带分解和方向分解。首先,用Laplacian(LP)金字塔分解对遥感图像进行多尺度分解,以“捕获”奇异点,然后由方向滤波器组(DFB)将分布在同方向上的奇异点合成为一个系数。为了保留轮廓变换的频率分割结构同时实现平移不变性,将原轮廓变换中对遥感图像的下采样步骤去掉,即得到非下采样轮廓变换。非下采样轮廓变换主要由两个具有不变性的部分组成:第一、非下采样金字塔分解,保证了变换多次度特性;第二、非下采样方向滤波器组成,使变换具有多方向性。

不同于Contourlet变换,NSCT采用的是非下采样的金字塔结构和方向滤波器组。非下采样的金字塔结构主要是通过双通道的非下采样的二维的滤波器组实现的。与传统Contourlet严格抽样滤波器及其重构条件相比,这种滤波器的设计及重构条件更加易于实现。方向滤波器(DFB)是通过交换DFB树结构每个双通道滤波器组的下采样和上采样并相应的对滤波器上采样实现的。因而NSCT具有平移不变性并且比Contourlet变换能更好地采集频率且具规律性。非下采样Contourlet分解过程如图1所示。

2.2阈值去噪

经典的硬阈值方法为:

■ (1)

式中x(m,n)为软阈值处理前子块内的NSCT系数, x'(m,n)为进行硬阈值处理后的新的NSCT系数,T '为所选择的阈值。

本文在K-sigma阈值[5]的基础上,用改进的K-sigma阈值为阈值系数,改进后的阈值:

■ (2)

■ (3)

式中σ是NSCT域的噪声方差,NSCT变换的非正交性导致了不同方向子带的噪声方差不相等,这里用鲁棒的中值估计子获得σ:

■ (4)

取值为σ时,Xl,j是NSCT分解后l尺度j方向的系数矩阵;取值为σwt时,Xl,j是小波域中直接对对角子带。

2.3邻域信息的自适应阈值

遥感图像的NSCT系数之间存在着一定的相关性。NSCT变换后遥感图像边缘的系数能量集中,幅值较大,则边缘区域内系数绝对值之和较大;而噪声能量分散,幅值较小,则区域内系数绝对值之和就较小。因此根据系数所在邻域的特性[5-6],在NSCT变换后的的每个子带遥感图像内,对于边缘区域以较小的阈值来保留更多的系数;对噪声区域通过较大的阈值来去掉更多的噪声。

定义V(m,n),它由对子带内系数通过均值滤波器获得:

■ (5)

式中B为子带内NSCT系数X(m,n)的邻域,在本文中我们取3×3大小的窗口。N为B中NSCT系数的个数。

则本文中结合领域信息的自适应阈值表示为[6]:

■ (6)

式中T取T1或T2为2.2中(2)、(3)式得到的各子带内不同方向的初始阈值,E(a)为整个子带中V(m,n)的均值,在文献[6]中M(a)为整个子带中V(m,n)的最小值,根据实验验证在本文中其并不是最优的,本文选择M(a)为整个子带中V(m,n)的最大值,λ为大于1小于2的常数值,本文中取1.06。

3本文算法实现过程

本文去噪方法具体步骤如下:

(1)对含噪遥感图像进行小波分解,根据(4)式计算出σwt。

(2)用鲁棒的中值估计子估计每个子带的噪声方差,根据式(2)至式(6)计算每个子带系数的自适值,在尺度最细的一层令T=T1计算T ',而在其它层次令T=T2计算T ',对低频系数则不做处理。

(3)对不同尺度不同方向带通子带的NSCT系数根据上面三步计算得到的阈值T '结合(1)式进行硬阈值去噪得到处理后的系数x'(m,n)。

(4)利用步骤(3)处理后的系数x '(m,n)进行NSCT反变换,重建遥感图像,得到去噪后的遥感图像。

4实验结果及分析

采用大小为512×512,256级灰度的遥感图像作为测试样本。在原始遥感图像上添加具有零均值,标准差分别为10,15,20,25,30不同方差的高斯白噪声,并对小波硬阈值去噪(WT)[1],Contourlet硬阈值去噪(CT),NSCT域硬阈值去噪(NSCT)[3],以及本文的去噪方法四种方法进行了比较,来说明本文算法对于遥感图像去噪的有效性。

试验中Contourlet及NSCT的分解级数均为3级,Contourlet和NSCT的由粗分辨级到细分辨级分解方向分别为4,8,16。表1是添加不同方差高斯噪声的遥感图像利用不同方法去噪后的峰值信噪比(PSNR)结果,图1是添加标准差为20的高斯白噪声的遥感图像利用不同方法去噪后的效果图。

从图1中可以看出,小波硬阈值重构后的遥感图像出现振铃,伪Gibbs效应等视觉失真。Contourlet域去噪方法出现了较明显的栅格效应且平滑效果略显不足,本文的去噪算法结果的效果相对较好。

综上所述,由于本文:(1)结合小波变换并利用NSCT变换具有各向异性、平移不变性、多方向选择性等诸多对遥感图像去噪非常有利的优点,避免了振铃,伪Gibbs效应的出现,且有效地保持了原图中的方向和细节信息,更有利于阈值选取的准确性。(2)在阈值处理过程中,结合了NSCT系数的邻域信息,采用了自适应阈值,进一步提高了去噪遥感图像的峰值信噪比。因此本文算法在遥感图像去噪上相对于其它去噪算法具有一定的优势。

5结论

本文在研究了NSCT特性基础上,提出了一种基于NSCT域自适应阈值遥感图像去噪方法。本文方法研究了阈值与遥感图像噪声标准差之间的关系,结合Contourlet 系数间的相关性,对噪声系数的处理除了考虑其本身的幅值大小外,还考虑其局部邻域系数的影响。仿真结果证明,该算法在遥感图像去噪上能获得更好的视觉效果和更高的峰值信噪比(PSNR)值,虽然与在NSCT域用Monte Carlo估计噪声去噪相比,明显缩短了运算时间,但是相对于对小波硬阈值去噪(WT),Contourlet硬阈值去噪(CT)运算时间还是比较长,还需要进一步的研究。

参考文献

[1] Donoho D L,Johhstone I M. Ideal special adaptation by wavelet shrinkage. [J]Biometrika, 1994, 81(3): 425-455.

[2] Do M N,VETTERLI M.The contourlet transform: an efficient directional multiresolution image representation[J].IEEE Transactions on Image Processing, 2005,14(12) : 2091- 2106.

[3] Cunha A L da,Zhou J P,Do M N. The nonsubsampled Contourlet transform : Theory,design and application[J]. IEEE Transactions on Image Processing, 2006,15(10): 3089-3101.

[4] W.Shenqian,Z. Yuanhua, Z.Daowen. Adaptive shrinkage denoising using neighbourhood characteristic[J].Electronics Letters, 2002,38(11): 502-503.

[5] Jean-Luc Starck, E. J. Candes, D. L. Donoho . The curvelet transform for image denoising[J]. IEEE Trans. On Image Processing, 2002, 11( 6): 670-684.

[6] Kang Li,Jinghuai Gao,Wei Wang. Adaptive Shrinkage for Image Denoising Based on Contourlet Transform[J].IEEE Transactions on Image Processing, 2008,2(12):995-999

Adaptive Threshold for Remote Sensing Image Denoising Based on Wavelet and NSCT

Mu Juan1,Du Chaoben2,Yi Zhou3

(1. The people's Liberation Army 69064 Army,Kuerle841000,China)

(2. College of information science and Engineering,Wulumuqi 830046,China)

(3. The people's Liberation Army 61711 Army,Kashi 844000,China)

AbstractA new local adaptive threshold estimation method for image denoising based on the Nonsubsampled Contourlet Transform(NSCT) is proposed. The new method uses wavelet estimate the noise strength of Noisy images, then according to the strength of noise determines the shrinkage threshold according to the neighbouring NCST coefficients, the scale of the coefficients and the noise level. Compared with the wavelet hard-thresholding, the contourlet hard-thresholding and the NSCT hard-thresholding denoising method,the proposed method is obviously reduces the Gibbs phenomenon and superiors both in vision and in PSNR。

Key wordsremote sensing image,NSCT,adaptive threshold,denoising

自适应图像 篇4

关键词:医学图像,自适应迭代分割,图像分割,实用性

计算机断层扫描(CT)数据及核磁共振图像(MRI)数据的可视化如今已经作为医学图像处理中研究的热点问题之一。实现医学图像三维重建的首要前提就是对图像数据进行正确、合理的分割,从中提取出感兴趣器官、组织或病变体的三维重建,达到辅助治疗与手术规划的目的[1]。

CT、MRI等图像数据,又称三维医学图像,对其进行分割是在三维空间进行。在医学图像的获取过程中,由于影像设备中各电子器件的随机扰动和受周围环境的影响,使图像多少含有噪声和失真,这就给医学图像准确、快速分割带来了一定的难度,影响了组织的分割与提取[2]。由于传统分割方法的阈值设置不合理时,会产生过分割和欠分割问题,从而导致算法的鲁棒性不高。因此如何设置最佳阈值,如何检测和避免过分割和欠分割是三维医学图像在实际应用中遇到的难题[3]。

文中针对三维图像分割难题提出了一种基于3D区域生长的三维迭代自适应分割算法(SO3DAISA),该算法主要包括4部分:种子选择、生长准则的设计、自适应迭代分割算法设计。

1 种子的选择

区域生长从种子开始,因此种子选取优劣对最后的分割结果有很大影响。最理想的种子选择方法是全自动方法,由计算机自动从输入图像中提取最佳种子,但医学图像结构复杂、数据量大,实现比较困难,因此目前主要还是采用人工交互方法[4]。

为尽可能减少和方便人工交互,文中设计了一个简单的种子设置软件。通过该软件可以方便地从 3D 图像中抽取任何一张切片Sz(x,y), 通过鼠标操作,可以用线条、矩形或圆形等形状在切片图像中标识出种子候选区域,如图1所示。基于这些候选区域,提出了一种基于概率统计的种子选择方法。

(1)从3D图像中抽取多张切片(通常采取每隔 3、4 张抽一张的方法),利用灰度直方图的分布计算概率得出种子的候选区域,并从切片图像中标识出种子的候选区域。假设共有N个候选区域Ri,1≤ iN,通常 N>6;

(2)对每个区域R中的像素进行灰度值统计,由式(1)和式(2)计算其均值和方差,分别记为X¯,σi2,其中1≤iN

X¯i=1nk=1nXk (1)

σi2=1n-1k=1n(Xk-X¯)2 (2)

其中,n 为区域Ri,1≤iN中的像素数,Xk,1≤ Kn代表区域中第K个元素的灰度值;

(3)对每一个候选区域Ri,1≤iN,依据正态分布“3σ原则”,视|Xi-X¯i|3σ的样本点为不合理种子点,予以剔除;

(4)对剔除不合理候选点后的区域重新计算均值和方差;

(5)舍弃具有最大和最小方差的区域,计算所有合理种子点的均值X¯和方差σ2;

(6)将所有种子点的二维坐标映射为三维坐标,并加入种子队列中;

(7)得出所需要的三维种子侯选队列。

2 生长准则的设计

种子选择后,要根据种子的特征进行生长。通常,合理的生长准则既要考虑目标对象的总体特征,也要考虑其局部特征。文中设计了一种生长准则,它综合了对象的全局和局部信息,具有较好的性能[5]。

全局特征FG=exp(-(ΙV-X¯R)22σR2)(3)

其中,IV表示体素V的灰度值,R表示目标区域,X¯R表示区域R中体素的平均灰度值,σR2表示区域R中体素灰度值方差。当新的体素添加到区域R中,应更新X¯RσR2,因此,FG准则反映了当前体素V与区域R的相似性大小,是一种全局的相似性评价准则。

局部特征FL={1ifΝRλΝλΝR/Νotherwise(4)

其中NNR分别表示当前体素邻域大小和邻域中已划分到区域中体素的个数。λ为一调节参数,该准则反映了当前体素V与其近邻体素的相似性大小,是一种局部相似性评价准则。

为综合考虑全局和局部的特征信息,采用加权因子WFGFL的线性组合作为最终的生长准则F,F的取值越大,表明当前体素属于目标区域的可能性越大。

F=WFG+(1-W)FL (5)

加权因子W的取值是制约生长准则F可靠性的一个关键的因素。从式(5)可以看出,FG越大,表明当前体素与目标区域的相似性越大,考虑到区域生长的邻接性,此时当前体素归并到目标区域的可能性应该较大,因此FG占主导地位,其权值W应较大;相反,FG越小,表明当前体素与目标区域在灰度值上差别越大,此时应考虑其局部特征FL,所以(1-W)应该越大,即W应取较小值。因此可以将W看作是的函数,在文中,采用式(6)函数来表示两者的关系。

W=1-exp(-FG22σ2)0FG1 (6)

其中σ2为控制参数。由式(5)和式(6)推导得出分割阈值

F=[1-exp(-FG22σ2)]FG+exp(-FG22σ2)FL (7)

3 三维自适应迭代分割算法的实现

根据式(7)可以计算出图像的分割阈值,算法主要有3个控制参数:Δηδ。其中,Δ代表生长准则阈值TF的减小步长;δ是用户设置参数,用于控制分割的精度,该参数通常为一常数,在迭代分割过程中不变。

假设ΔTE在第k次迭代时的取值为Δ(k)和TE(k),则第k+1次迭代ΔTE的相应值Δ(k +1)和TE(k+ 1)分别由式(8)和式(9)确定。

TE(k+1)=ηN-VTF(k)+β (9)

当有新的体素归并到区域R时,其均值X¯R和方差σR2由式(10)和式(11)计算

X¯Rnew=(X¯Rold×ΝR+VoxelVal)/(ΝR+1) (10)

σRnew2=((σRold2+X¯Rold)×ΝR+VoxelVal2)/(ΝR+1)-X¯Rnew2(11)

算法重复迭代执行,直到(TF(k)-TF(k+1))<σ时算法终止。

参数X¯RσR2有两种更新方式:第一种方式为逐元素更新方式,在这种方式下,每当有一个新体素归并到目标区域时,就对X¯RσR2更新一次;第二种方式是成批更新方式,在一次迭代下,将所有种子的邻域判决完毕后再对X¯RσR2进行更新。

现以一张256×256的CT图为分割对象,令计数k=0,计算X¯(0)和方差σ2(0),初始化FG,FL;设置TF的初始减小步长Δ(0)以及η,初始化掩模AuxVMask,将种子置1,其它体素置0;执行第一次区域生长。

当迭代一次后,执行 k=k+1;更新X¯(k),σ2(k),FG(k),FL(k)TF(k);如果(VTF(k)-VTF(k-1))≥TE或越界,重新恢复到前一次迭代状态,令Δ=Δ/2;如果Δ<δ,程序执行完毕,退出。

分割结果对比,如图2所示。

在该算法中,每次迭代总是在上一次迭代的基础上向外扩展,并采用生长过度判断准则防止生长过度,具有较好的鲁棒性。通过逐次迭代得到针对不同三维图象的局部分割阈值,最大程度提取出医学图象中的细节信息。根据上图实验对比,自适应迭代分割比别的一般算法具有更好的分割效果。

4 结束语

利用三维自适应迭代分割算法,很好地解决了医学图像分割中的过分割与欠分割问题,并对其直方图进行多次迭代算法,最大程度找出图像中具有的细节信息。文中设计的人机交替分割系统,很好地解决了数据运算大、计算复杂等问题。具有很好的操作性和实用性,为下一步医生的诊断提供了很好的依据。同时,由于参数的设置依赖于图像的先验性,因此在进行三维自适应迭代分割过程中,必须反复交替对参数的设计进行调节,也得到合适的分割阈值。

参考文献

[1]向日华,王润生.一种基于高斯混合模型的距离图像分割算法[J].软件学报,2003,14(7):1250-1257.

[2]刘伟强,陈鸿,夏德深.基于马尔可夫随机场的快速图像分割[J].中国图像图形学报,2001,6(A版)(3):228-233.

[3]汪俊,周来水,安鲁陵,等.基于网格模型的一种新的区域分割算法[J].中国机械工程,2005,16(9):796-801.

[4]Kun Chang Yu,Erilc L Ritman,William E Higgins.System for the Analysis and Visyalization of Large3D An-atomical Tress[J].IEEE Transactions on Medical Ima-ging,1990,19(8):384-395.

自适应算术编码的FPGA实现 篇5

在利用FPGA实现自适应算术编码的过程中,首先遇到的问题就是将浮点运算转化为定点运算,即将[0,1]区间的一个小数映射为一个便于硬件实现的定点数。考虑到硬件实现的简便性,本文中将[0,1]之间的浮点数与[0,256]之间的定点数对应。相应的对应关系如表2所示。

表2浮点与定点之间的关系

浮点00.20.50.71定点051128179256

编码器在实现编码的整个过程中按照耦合弱、聚合强的原则分为四个模块:修改码表、计算确定区间、并行编码、串行输出。四个模块相对独立,通过输入、输出信号使其构成一个整体。系统的顶层结构如图2所示。

3.2码表的设计及修改

自适应算术编码器可以在许多场合中得到应用。本文实现的自适应算术编码器应用在采用6符号对小波变换系数进行零树编码的小波域视频编码中[3],因此设计的码表中含有六个符号。这样根据自适应算术编码的基本原理,将区间分成六个子区间,整个区间含水量有七个分割点。所以码表可以用七个8位寄存器表示。初始时设定等概率,这时七个寄存器可以顺序地存储0到6这七个数,即每个子区间的数值为1。随着符号不断地输入,自适应地修改码表,并且在修改码表的过程中时刻要保持寄存器中的数值是递增的。

修改码表时,首先判断输入符号,确定其所在区间,同时为后续模块输出该子区间的两个端点值l_count和h_count以及码表的最后一个端点值scale,然后进行码表的修改:将当前符号所在区间之后的所有端点值都加1,即当前区间及后面所有子我间的h_count=h_count+1,这样即完成了码表的修改。在数值不断累加过程中,寄存器中的数值为255时,需要对每一个寄存器中的值都取半,并同时对相邻的两个寄存器中的值进行比较,时刻保持数值是递值的。这样,处理前后的概率十分接近,对压缩比影响不大。

修改码表模块在输出h_count、l_count和scale之后,后面的计算子区间的模块即可进行计算;而修改码表模块在输出h_count、l_count和scale之后,亦可进行码表的修改。因此,这两个操作可以采用并行处理的方法实现,极大地节省了所用的时钟周期,相应地提高了速度,达到了优化的目的。表3给出了输入符号为3(对应于寄存器2与寄存器3之间的区间)时码表的修改过程。

表3码表修改前后对照表

寄存器0123456修改前04345677112233修改后04345778113234修改前023545657234255修改后011272829117127

3.3区间计算及确定

初始时符号所在的总区间为high=0xff,low=0(high和low分别表示已编码的符号序列所在子区间的上下界)。随着符号的不断输入,high和low的值也不断地减小,用以表示输入符号序列所对应的子区间。通过如下的公式可确定输入符号的区间:

计算时,最耗资源的是乘法器和除法器。本方案中乘法器采用参数化模块lpm中的lpm_mult生成。而除法器则自动编写。虽然占用的时钟周期较多,但与使用lpm相比,这样做可以大大地提高工作频率,从总体上提高性能。

3.4并行编码

在区间计算过程中,high和low总是有限值,不可能无限制地划分下去。为了能够实现连续的编码,通过对high和low的处理,可以实现利用有限长的寄存器表示无限精度的区间,即在不断修改high和low的过程中输出high和low中相同的高端位,形成输出码流。详细过程如下:

在区间确定之后,将low和high按位比较,若首位相同,则输出首位二进制码,产生输出码流,同时把low和high左移,low末位补0,high末位补1。循环比较输出,直到首位不同为止。如:

high=00110110

low=00100111

输出码流为001,而high和low的结果为:

high=10110111

low=00111000

通过这种连续地处理便可生成符号序列的自适应算术编码结束。但随着待编码符号序列的不断输入,可能会出现high和low十分接近,并且high和low的首位没有相同位的情况,如:

high=10000000

low=01111111

称这种现象为产生了下溢。产生下溢后,后面的编码都失去了意义,此时需要特殊处理。

对于下溢的处理方法为:保留首位,同时删除紧接在首位后的high中连续的0和low中连续的1,并且保证对high和low删除的位数相同,若连续0和连续1的位数不同,则取其较小者;然后high和low左移相同的位数,同时high的低位补1,low的低位补0。表4给出了下溢处理前后high和low值。

表4下溢处理前后对照表

下溢处理前下溢处理后下溢个数high10001000110001113low0111011100111000

经过处理后,扩大了区间,使得后面的编码可以顺利地进行。

在考虑了下溢的编码输出中,下溢作为输出码流的一部分,使得解码时能对下溢进行同样的处理,达到编解码的一致。但是下溢产生后并不马上输出,只记下下溢的个数,下溢则是在下一个符号编码时进行输出的。在下一个符号编码时,如果high和low比较后高端有相同位则输出下溢,即在第一个输出后紧接着插入首位的反,插入首则反的个数为前面产生下溢的个数,然后输出相同的次高位及以后相同的各位。这样处理既保留了下溢的信息又使得输出码流不偏离编码符号所在的子区间,使得解码时很容易处理。但是如此high和low比较后没有相同输出则不输出下溢,而是把两次产生的下溢的个数进行累加,再输入下一个符号,直到high和low有相同首位才输出下溢。

例如:在一个符号编码计算后得到的high=11010010和low=11001101,而前一个符号编码产生的下溢为1个,比较后输出为1010,同时记录下产生的下溢2个,如表5所示。

表5含有下溢的编码输出

highlow下溢输出编码输出前110100101100110111010编码输出后11011111001000002

3.5串行输出

并行编码后产生的码流存储在并行数据中,但在大多的情况下只有两、三个输出,甚至没有输出,若采用并行输出,就会产生极大的浪费。为了充分利用资源,在并行编码之后进行并/串转换,使其一位一位地输出,并且这个输出过程与下一个符号编码的过程并行完成,因此并不占用多余的时钟周期。

在编码过程中,当一个符号编码结束后,触发reload信号,通知此次编码结束,进行下一次编码,读取输入的符号。同时需判断输入是否合法,如果是合法的输入,就进行编码;否则停止编码,否则停止编码,处于等待状态,直到复位信号ret置1,重新初始化、编码。

图3

4仿真结果

本文算法采用VHDL硬件描述语言实现,并在ALTERA公司的MAX+plusⅡ软件上编译仿真。市府采用全局同步时钟,避免了毛剌的产生,保证了信号的稳定性。编码的仿真结果如图书3所示。

其中,rst、clk、c为输入信号,rst为模块中各寄存器的初始化信号,clk为时钟同步信号,而c则为输入的编码信号;out_flag、out_bit、reload、end_code、为输出信号,out_flag和out_bit分别为输出标志位和输出位(若out_falg=1,则此时out_bit为有效输出;否则out_bit输出无效),reload为一个符号编码结束)下一个符号输入的标志位,end_code为编码结束的标志(若end_code=0,则继续编码,否则编码结束)。

在进行性能仿真时[4],采用的器件是FLEX1K系列的EP1K30TC144-1器件,其最大工作频率为40MHz,消耗1533个LC,平均编码时间为20个时钟周期。一个符号的编码时间不到500ns,对于QCIF格式的图像完全可以满足每秒钟实时编码30帧图像的要求。

数据有增加 图表自适应 篇6

如需利用柱形图展示员工的工作业绩,当员工人数增加或减少时,柱形图的个数实现自动进行相应的变化,即增加或减少(图1)。在一般操作中,实例中柱形图的数值系列的数据源是由手动选取的B2:B9,水平(分类)轴标签的数据源也是手动选取的A2:A9,这些数据源都是固定不变的。要想实现上述效果,需要将这两个数据源更改为可变的表达式。

用Excel 2013打开数据表,点击“公式→定义名称”,在弹出窗口的名称处输入“分类轴”,引用位置处输入“=OFFSET($A$2,,,COUNTA($A:$A)-1,1)”;以同样的方式再定义一个名称为“数值轴”的名称,引用位置处输入“=OFFSET($B$2,,,COUNTA($A:$A)-1,1)”(图2)。

数据源名称定义完成后,就该修改柱形图的两个数据源了。

右击柱形图,选择“选择数据”,在弹出的窗口中点击“图例项(系列)”下的“编辑”按钮,在弹出的窗口系列值处输入“Sheet1!数值轴”( Sheet1这要根据数据表的名称而定);点击“水平(分类)轴标签”下的“编辑”按钮,在弹出的窗口中输入“=Sheet1!分类轴”(图3)。

自适应图像 篇7

关键词:图像插值,边缘信息,自适应

0 引 言

图像放大处理在医学、军事、气象、遥感、动画制作和电影合成等方面均有普遍的应用。图像放大的方法很多,目前比较成熟的算法有最近点插值, 双线性插值以及立方卷积插值等。其中立方卷积插值法普遍认为效果比较好。

文献[1]提出了相邻像素加权的插值算法,算法简单速度快但精度不高。文献[2]提出了一种根据图像内部特征的插值算法,算法复杂难以大规模应用。文献[3]提出了自适应双线性和自适应立方卷积算法,得到的图像精度有一定的改善。在文献[4]中提出了一种利用边缘信息的快速插值算法,该算法成功地实现了图像的放大且具有较好的图像质量,但由于在放大图像边缘部分时,利用的是其相邻的新生成的像素点来估算待插入像素点的值,这样会产生累积误差,影响图像质量。文献[5]在文献[3]自适应立方卷积算法的基础上提出了改进方法,考虑了邻点间灰度值变化率对图像的影响,算法实现较复杂。本文提出的基于边缘信息的图像自适应插值算法思想是:利用阈值将图像区分为非边缘部分和边缘部分,区分与插值同时进行,针对图像边缘的特性采用了自适应插值算法,这样既不会产生累积误差还能加快插值速度。

1 基于边缘信息的图像自适应插值算法

1.1 利用阈值区分图像非边缘部分和边缘部分

本算法首先将原图分成两部分:非边缘部分和边缘部分,而后针对不同的部分采取不同的插值算法。具体思路如图1所示。

要定义非边缘部分和边缘部分首先需预置一个阈值,然后,分别沿水平、垂直和两个对角共四个方向计算像素间差值,再与预置阈值比较。如果像素点间差值比预置阈值小, 则待内插像素点归类为非边缘像素点,直接使用双线性插值算法;反之,如果像素点间差值比预置阈值大,则待内插像素点就归为边缘像素点,则使用本文下面介绍的自适应插值算法。具体算法描述如下:

E1= | f(i,j)-f(i+1,j) |

E2= | f(i,j)-f(i,j+1) |

E3= | f(i,j)-f(i+1,j) |

E4= | f(i,j)-f(i,j+1)) |

If( E1<r)&(E2<r)&(E3<r)&(E4<r))

Then 双线性插值

Else 自适应插值

其中f(i,j)为原图坐标点(i,j)的灰度,r为预置的阈值。

1.2 立方卷积插值

立方卷积插值是一种应用较广泛的插值方式,不仅考虑到四个直接邻点灰度值的影响, 还考虑到各邻点间灰度值变化率的影响, 利用了待采样点周围更大邻域内像素的灰度值作三次插值。此法用了三次多项式S(w),其数学表达式为:

S(w)={1-2|w|2+|w|3|w|14-8|w|+5|w|2-|w|31|w|20|w|2(1)

式中w为自变量;S(w)为三次多项式的值。计算时利用周围16个邻点的灰度值按下式进行内插:

f(i+u,j+v)=A·B·C (2)

A=[S(1+u)S(u)S(1-u)S(2-u)]B=[f(i-1,j-1)f(i-1,j)f(i-1,j+1)f(i-1,j+2)f(i,j-1)f(i,j)f(i,j+1)f(i,j+2)f(i+1,j-1)f(i+1,j)f(i+1,j+1)f(i+1,j+2)f(i+2,j-1)f(i+2,j)f(i+2,j+1)f(i+2,j+2)]C=[S(1+v)S(v)S(1-v)S(2-v)]

分析式(1)和式(2),可得:

S(1+u)=4-8|1+u|+5|1+u|2-|1+u|3=-(|u|-2|u|2+|u|)

S(u)=1-2|u|2+|u|3=(1-|u|)+(|u|-2|u|2+|u|3)

令k=|u|-2|u|2+|u|3

则: S(1+u)=-k S(u)=(1-|u|)+k (3)

若令k = 0, 则立方卷积法就退化为双线性内插法。因此,可以把用三次多项式插值的立方卷积法看成由两部分组成, 其中( 1 - | u | )代表直接邻点的灰度值对待采样点的影响, 而k则代表邻点间灰度值的变化率对待采样点的影响。与双线性内插法相比, 立方卷积法不仅考虑了直接邻点的灰度值对待采样点的影响, 还考虑了邻点间灰度值变化率的影响, 因此具有更高的插值精度。

1.3 自适应插值法

由于人眼对图像边缘特别敏感,插值图像边缘部分的分辨率对整个图像放大有着非常重要的影响。由于图像边缘灰度值变化剧烈,不仅要考虑邻点灰度值的影响,同时也必须考虑邻点间灰度值变化率的影响, 因此可将(3)式改写成:

S(1+u)=-λk S(u)=(1-|u|)+λk (4)

当λ=0时,式(4)为双线形插值,当λ=1时,式(4)为立方卷积插值。λ越大,邻点间灰度值变化率的影响权值就越大;λ越小,直接邻点灰度值的影响权值就越大。经过计算与统计分析可以发现,当λ取0~1之间的值时,内插效果优于立方卷积法。但固定的λ值只在图像某个邻域内效果比较好,因此可根据该映射点周围各邻点灰度值的变化情况,自适应地调整λ值,以此来达到提高插值精度和缩放质量的目的。判据可以有多种选择,为简化算法采用了直接邻点与间接邻点的灰度差是否大于一个给定的阈值来判断该映射点的周围是高频区或低频区,再以此来自适应地选择一个λ值进行插值运算。

r=f(i)-f(i-1)

在缩放时,λ的取值由下式决定:

λ={0.80r10.651r1.50.51.5r

2 实验结果

分别用256×256的pepper、baboon、lena灰度图像进行缩放实验。实验时先把每幅图缩小2倍,然后再放大2倍,再根据放大后图像与原图的峰值信噪比(PSNR)作为缩放质量的标准。PSNR越高说明插值图像与原图像相符合的程度越高。实验结果如表1所示。

从表1中可以看出,在对三种图像pepper、baboon、lena进行缩放实验时,本文算法的PSNR值最高,说明本文算法的效果是比较好的。

为进一步验证本插值算法的有效性,把512×512的Lean灰度图用四种算法放大到1024×1024的图像,图2显示了放大后的局部图像。从图2中可以可看到,本文算法的视觉效果优于其它算法。

表2显示4种插值算法分别连续插值处理10幅Lena灰度图512 ×512到1024 ×1024的平均CPU处理时间(s/图像) (实验条件P4 CPU 2.6GHz,内存512M,编译系统Matlab7.0)。从表2看出本文算法CPU处理插值的平均时间与Bicubic算法相近,因此,本文算法不但有较好的视觉质量,而且有相对较低的计算复杂性及平均CPU处理时间。

3 结 论

本文主要研究了一种基于图像边缘信息自适应插值算法,使用本算法对低分辨率图像进行重建,效果要比传统插值法好,特别在边界部分清晰自然, 明显好于传统插值方法。从实验结果也看到,本文算法还是比较有效的。当然根据图像的复杂度如何更好的选取边缘预置阈值和参数λ的值还有待进一步的研究。

参考文献

[1]Lukin A,Kubasov D.High-quality algorithm for Bayer Pattern interpo-lation[J].Programming and Computer Software,2004,30(6):347-358.

[2]El-Khamy S E,Hadhoud MM,Dessouky MI,et al.Efficient implemen-tation of image interpolation as an inverse problem[J].Digital SignalProcessing.2005(15):137-152.

[3]庞博,张旭东,徐小红.自适应图像插值在超分辨率图像重建中的应用[J].合肥工业大学学报:自然科学版,2006(7):825-829.

[4]Mei-Juan Chen,Chin-Hui Huang,Wen-Li Lee.Afast edge-oriented al-gorithm for image interpolation[J].Image and Vision Computing,2005(23):791-798.

自适应图像 篇8

混沌系统对初始条件和参数非常敏感, 同时具有类噪声特性, 因此被广泛应用到保密通信系统设计中。许多学者已提出众多基于混沌的图像加密算法, 有的使用超混沌系统[1,2,3], 有的使用多混沌及复合混沌[4,5,6,7,8], 有的则使用分段线性混沌[9,10]等。无论采用什么样的设计方法, 安全性和运行速度是衡量算法性能好坏的两个重要指标。

对于需要大量数据运算的图像加密算法, 并行计算可成倍地提高运算速度。并行加密模型是指多个PE (Processing Elements) 同时加密一幅图像, 并且每个PE都有独立的内存和计算资源, 并通过数字通信实现PE之间的数据交换。一个好的图像并行加密算法应该满足良好的扩散效应、保证PE的计算负载平衡以及实现临界区域管理[11]。

Zhou等人提出了一种基于离散混沌映射的并行图像加密算法[11], 对图像进行分组, 采用AES算法对每个分组加密, 然后分组之间进行像素重排, 再对每个分组重复加密。算法使用K (Kolmogorov flow) 变换进行分组间的像素重排, 需要多次乘法运算, 耗时较多。刘君等人针对Zhou的算法提出了改进措施[12], 使用模256 加法替代了分组Mixing操作中的异或运算, 改善了扩散性能, 像素重排采用了类似魔方旋转的操作, 减小了计算开销, 因此运行速度有所提高。Miraei等人提出了一种基于超混沌的并行子图加密算法[13], 将图像分成上下左右四个子图操作, 由于子图之间像素相互独立, 因此不能获得良好的扩散效应。孙劲光等人提出了一种改进的图像分块加密算法[14], 将矩形图像分成若干正方形图像, 而每个正方形图像又分成上下左右四个子块, 子块之间按水平、垂直和对角的方向进行扩散替代, 加密过程中子块之间存在大量像素信息交换, 不适合并行计算实现。

针对上述并行加密算法存在的问题, 提出了基于两个一维混沌映射的并行双向加密算法。实验结果表明算法运行速度快, 且安全性高。

1 算法设计

1.1 图像分组

大小为m × n的图像I , 假定由r个PE并行加密, 且m × n能被r整除, 令l = (m × n) r 。将图像按从上至下、从左至右的顺序转换成序列, 再按长度l划分成r组, 用Pi表示, 每组中的像素用pi, j表示, 其中i ∈[1, r] , j ∈[1, l] 。

1.2 分组内正向加密

每个分组都需要一个长度为l的加密序列Bi (用bi, j表示其中一个元素) 。在生成Bi时, 使用tent映射:

式中:abs为取绝对值, 舍去前k0次迭代结果, 生成长度为l的混沌序列, 并取出小数点后12 至14 位对256 取模, 得序列Xi。以同样的方法, 使用kent映射:

式中:a ∈ (0, 0.5) , x0∈ (0, 1) 。

生成序列Yi, 则加密序列Bi= Xi⊕Yi。为进一步提高算法安全性, 在生成Xi和Yi时, 用扰动因子t0、t1, 按式 (3) , 式 (4) 分别对tent映射、kent映射的参数及初始值进行扰动,

式中:k1∈ (0.99, 1) , k2∈ (0, 1) , k3∈ (0.4, 0.5) , k4∈ (0, 1) , k1~ k4为加密密钥, 扰动因子t0由pi, 1代入, t1由 (2 × pi, 1) mod 256 代入。扰动使得Bi自适应于分组内容的变化而变化。

用Ci表示每个分组正向加密结果, ci, j为每个像素对应的密文。按式 (5) 实现分组内像素的正向替代与扩散。

由于pi, 1用作混沌映射的扰动, 因此正向加密从第二个像素开始。

1.3 分组间扩散

正向加密后, 对每个分组最后一个密文ci, l按式 (6) 进行处理, 用ci, l′ 表示处理后的结果。

原图像任意像素值的变化, 经正向加密后会扩散至对应分组的最后一个密文。而经过式 (6) 处理, 这种变化会再次扩散至所有分组的最后一个密文。

1.4 分组内反向加密

分组内反向加密的方法与正向加密相同。不同之处在于处理密文像素的顺序, 是从分组最后一个密文像素开始, 以相反的方向处理至第一个密文像素。用Ci′表示每个分组反向加密结果, ci, j′ 表示反向加密后的每个密文, 可按式 (7) 实现分组内的反向替代与扩散, 当j = l - 1, l - 2, ⋯, 1时:

注意, 分组内第l个密文的处理结果在分组间扩散时已按式 (6) 得到。因此, 反向加密实际是从倒数第二个密文像素开始。反向加密时加密序列Bi可按正向加密时相同的方法得到, 但扰动因子t0由ci, l代入, t1由 (2 × ci, l) mod 256 代入。经反向加密, 分组内最后一个密文的变化将扩散至分组内所有密文。

将所有的密文分组Ci′按顺序排列, 并转换为m × n的矩阵, 可得到最终的密文图像。

从上述算法理论分析可知, 经过正反两轮加密, 任意一个像素的微小变化都会扩散至整个密文, 满足并行算法扩散要求;另外, 每个PE的加密对象都是大小相同的图像分组, 因此保证了各个PE的计算负载平衡;最后, 每个PE负责一个分组, 不存在临界区域问题, 因此不需要进行临界区域管理。本文算法能够满足图像并行加密算法的各项要求。

2 实验结果

实验测试采用Intel酷睿i5 双核2.4 GHz的PC机模拟并行运行环境, 在Windows7 操作系统下使用Matlab 7.6 编写测试程序。明文图像使用512 × 512 的Man灰度图。 加密算法密钥取k0= 100, k1= 0.992, k2= 0.002 , k3= 0.422 , k4= 0.012 。实验的目的是检测算法的执行速度与安全性能。

2.1 执行速度

本文算法需要正、反两轮加密。因此, 为方便比较, 将文献[11]和文献[12]算法的加密轮次也设定为两轮。同时, 分组数 (即PE的个数) 设定为16。所有算法都重复运行50 次, 求得加密算法平均执行时间如表1 所示。

从表1 可以看出本文算法的加密速度要明显优于文献[11]和文献[12]算法。主要原因是文献[11]采用K (Kolmogorov Flow) 变换进行分组间的像素重排, 需要多次乘法运算, 耗时较多;文献[12]改进了像素重排方式, 采用了类似魔方旋转的操作, 减小了计算开销, 因此运行速度得到提高, 但分组之间数据读写量还是相对较大, 除分组第一个元素外, 其他所有元素的位置都要重排;而本文算法在进行分组间扩散时, 只对分组最后一个元素进行操作, 分组间数据读写量很少, 因此, 算法的执行速度得到明显提高。

2.2 扩散性能

攻击者可以通过对明文图像微小的改动来观察密文图像的变化, 从中找到明、密文之间的某种关联, 从而破译算法。如果明文微小的改动会导致密文非常大的变化 (即算法的扩散能力很强) , 那么这种攻击就非常无力。可用像素变化率NPCR和像素平均强度变化率UACI来衡量算法的扩散性能。设C1为原明文加密结果, C2为原明文某一像素值加1 后再加密的结果, 则:

式中, 当C1 (i, j) ≠ C2 (i, j) 时D (i, j) = 1 , 否则D (i, j) = 0 。将明文图像最后一个像素值加1 , 表2 列出了各轮加密后密文的像素变化率NPCR和像素平均强度变化率UACI。两轮之后, NPCR一直稳定在0.996 , UACI稳定在0.333 以上, 说明算法具有良好的扩散性能。第1 轮加密时, NPCR和UACI都近似为0 , 原因是最后一个像素的变化不会影响第1 轮正向加密时其他像素的加密结果;但经过分组间扩散之后, 它的变化会扩散至每个分组的最后一个元素, 再经第2 轮反向加密扩散至整个密文。

2.3 抗统计攻击性能分析

对Man图像进行正、反2 轮加密, 效果如图1 所示, 密文与明文图像的视觉效果完全不同。可用信息熵来衡量图像中灰度值的分布情况, 其定义为:H = -∑ip (vi) · log2p (vi) 。其中, vi表示L级灰度图像的第i个灰度值, p (vi) 表示图像中具有第i个灰度值的像素所占的比例。图像灰度分布越均匀, 则信息熵越大, 反之信息熵越小。对于256 级的灰度图, 信息熵最大值为8 。原Man图像信息熵为7.192 6 。以上述初始密钥为起始值, 按0.000 001 步长, 连续微调密钥k3100 次, 计算密文图像信息熵均值为7.999 3 , 非常接近最大值8 , 调整其他密钥参数可以得到类似的结果。从信息熵分析可知, 本文算法的密文图像灰度分布十分均匀, 能有效抵御统计攻击。

2.4 相关性分析

图像中水平、垂直及对角相邻像素的相关系数rxy可按:计算得到。其中:

式中xi, yi代表相邻的像素值;rxy越接近于1 , 则相邻像素相关性越高, 越接近于0 , 相关性越低。在初始密钥基础上, 按0.000 001 步长连续微调密钥k1100 次, 计算密文图像三个方向相关系数的均值, 同时计算原图像三个方向的相关系数, 如表3 所示。

2.5 密钥空间分析

本文算法使用了两个混沌映射, 共有k1~ k4四个密钥, 若每个密钥使用16 位十进制实数表示 (包括1 位整数和15 位小数) , 则密钥空间为1016 × 4= 1064, 若考虑混沌映射迭代舍去数k0取3 位十进制整数, 则密钥空间可达1067。假设攻击者以每秒搜索1016 (1 万万亿) 个密钥的速度进行穷举攻击, 需要3.170 9 × 1043年以上才能搜索完所有密钥。因此, 算法的密钥空间巨大, 能有效抵御穷举攻击。

2.6 密钥敏感性分析

加密算法应该对密钥的变化非常敏感, 两个具有微小差异的密钥, 应该产生完全不同的密文结果。表4 列出了微调密钥k1~ k4后 (加上10-15) , 密文之间的NPCR与UACI。结果表明密钥的微小变化会使密文图像截然不同, 算法对密钥的微小变化非常敏感。

3 结语

本文给出了一种自适应混沌的并行双向图像加密算法, 为了提高算法的执行速度, 同时兼顾算法的安全性, 提出:

(1) 对图像进行分组并行加密, 使用分组的最后一个元素实现分组间的扩散, 有效减少分组间的数据读写量, 提高加密算法的执行速度;

(2) 每个分组进行正反两轮加密, 通过反向加密将最后一个元素的变化扩散至分组内所有元素;

(3) 使用两个一维混沌映射生成混沌序列, 并相互异或得到每个分组的加密序列, 使用一维混沌能有效降低计算复杂度, 而异或操作能有效改善加密序列的混沌特性;

(4) 生成加密序列时, 用分组中的元素对混沌映射的参数及初始值进行扰动, 使加密序列自适应于分组内容的变化而变化, 能有效地抵御选择明文攻击, 提高算法安全性。

自适应图像 篇9

随着深空探测任务需求的发展, 星上数据流呈现复杂化、多样化, 对在轨数据处理的需求迅速增长, 地面可视化是深空探测工程任务的重要需求之一, 在轨图像的存储和实时抽取下传是解决可视化需求的关键[1,2]。实际工程中, 图像数据量与下行速率之间存在矛盾, 工程应用上需要获取高分辨率的载荷图像导致了数据速率的增加, 而深空探测受数传信道距离和速率的限制, 无法实时下传全部数据。因此需要在星载复接存储器中对图像进行处理, 存储图像数据的同时对图像进行整帧抽取, 下传最新的图像, 实现任务可视化。星载复接存储器的功能是将多路不同格式的载荷数据按照高级在轨系统协议格式形成一路数据流, 经过切分、组帧形成多个虚拟信道数据单元 (VCDU) , 存入大容量存储芯片 (FLASH) , 同时将大容量存储芯片中的数据按照选定地址进行回放, 并根据需求对回放数据进行筛选[3,4]。

针对上述需求, 在星载复接存储器的存储回放过程中通过图像帧识别、指针管理、数据筛选实现抽取速率自适应的载荷图像抽取方法, 并通过FPGA进行实现和验证, 可为后续深空探测载荷数据管理任务提供技术参考。

1 抽帧回放算法

星载复接存储器的功能为复接多路载荷图像数据, 将复接后的数据流存入大容量存储器, 根据回放指令将固存中数据读出, 进行信道编码后输出至数传[5,6]。

抽帧回放的过程应结合复接存储器的工作过程, 由于一幅图像数据量较大, 复接器入口无法缓存整幅图像, 因此综合考虑软硬件开销, 设计在记录时进行数据标记, 抽取在存储之后的回放过程中完成。

抽取方法如图1所示, 图像通过LVDS接口以串行形式输入, 在接口预处理模块, 将一幅图像切分并填充为多个虚拟信道数据单元 (VCDU) , 用于存储和下传。同时利用跟随的门控信号判定图像数据的头尾, 产生图像帧头、帧尾标识信号, 以标识一幅完整的图像。信息附加模块将头尾标识信号组织成附加信息, 填入数据内。

为了保证回放的图像总是最新的图像数据, 需要知道最新图像的帧头VCDU地址及帧尾VCDU的存储地址。因此在记录过程中, 使用一个最新图像数据帧地址寄存器来记录存储器中最新图像的帧头帧尾VCDU地址, 每收完一幅完整的图像数据立即更新最新图像数据帧地址寄存器中的地址信息, 保证最新图像数据帧地址寄存器中的地址为最新图像数据的帧头帧尾VCDU地址。

回放时, 收到数据请求信号, 回放控制模块从最新图像数据帧地址寄存器中加载最新图像地址, 从此地址处依次回放, 直到遇到了有尾帧标记字节的数据帧, 完成一幅图像的抽取回放, 之后继续加载最新图像数据帧地址寄存器, 进行下一幅图像回放。

由于采用数据复接设计, 多路图像会同时进入存储器, 以多种VCDU的形式存在, FLASH的页操作导致每次回放出的数据为两个VCDU, 因此在备用符号域中设计附加信息, 通过对附加信息的判读滤除多余数据, 保证回放数据中充满有效抽取图像。

回放的速率取决于下行信道的速率, 工程中由上级的回放请求信号控制。在每次请求到来时, 均加载预先存入的最新图像地址, 既保证了图像实时性, 又达到了抽取速率自适应的要求。

抽帧回放算法主要考虑三个方面:抽取图像为完整的载荷图像数据;当前抽取出的图像为最新数据;抽取算法对抽取速率自适应。

1.1 完整性设计

输入图像数据由接口模块生成VCDU, 不同载荷数据通过VCID被区分为不同类的VCDU, 由于FLASH采用页操作模式, 一页的大小为[7,8]2 KB, 设计中一页包含两个VCDU。

FLASH的读写都基于页进行操作[9], 读出一页的两个VCDU中, 有多种可能性, 数据处理过程如图2所示, 图2中给出三种可能, 一是前一个是需要抽取的头数据, 后一个是需要抽取的中间数据;二是前一个是需要抽取的图像数据, 后一个是不需要抽取的其他VCDU数据;三是前一个是需要抽取的尾数据, 后一个是下一幅图像的头, 但不需要抽取。

可见, 在抽取回放中必须滤除一定数据, 保证抽取图像的完整性和正确性, 因此在存储时增加附加信息, 以解决图像完整性问题。

附加信息设计为6 b, 格式定义见表1。

附加信息与数据一起被存到存储芯片中。在回放时, 读取附加信息, 解析出高VCDU有效/无效信号和低VCDU有效/无效信号。由回放请求模块进行数据滤除, 保证仅回放有效数据, 并且为完整图像。

附加信息与有效标志映射关系见表2。对输入数据的各种情况, 按照表2中映射关系解析出有效/无效信号。

数据过滤模块设置缓存, 根据高低VCDU有效标示控制缓存地址, 为1进行读取, 为0跳过无效的VCDU数据, 实现数据的滤除。

1.2 实时性设计

方法中必须获取到帧头VCDU信息和帧尾VCDU信息才会更新图像数据帧地址寄存器, 即在收到一整幅图像之后才能进行回放。

抽取的延时计算一幅图像第一比特输出和输入时间之差, 最坏情况时第N幅图像已经写入, 第N+1幅图像尾部没有写完, 即在第N幅图像头写入后两幅图像时间才开始回放。抽取过程中延迟时间=两幅图像时间+数据回放时间。

工程中, 图像生成速率为10幅/s, 一幅图像的生成时间按100 ms计算。

回放数据的时间为数据从FLASH芯片中读出时间和数据缓存时间, 每页2 KB, 读取时间约320μs;其余处理路径上的寄存时间<10μs。因此, 抽取过程中延迟时间约为200.33 ms, 完全可以满足图像的回放观看需要。

1.3 速率自适应设计

图像抽取的比例 (即抽取图像的间隔) 与输入速率和回放速率相关, 在工程应用中, 输入图像速率为13.33 Mb/s, 回放速率为50 Kb/s, 其中图像有效数据率为41.808 Kb/s, 一幅图像大小为131 080 B, 每幅图像形成149个VCDU帧, 下行共149×1 024 B=152 576 B。

以5500 KKbb//ss速率进行回放, 回放一幅图像需要115522 557766××88//4411 880088==2299..1199 ss, , 此此过过程程中中记记录录图图像像2299..1199××1100==291.9, 约292帧, 即间隔约292帧抽取一幅图像。

实现速率自适应的关键是抽取方法的各个环节和输入速率、回放速率均没有耦合。

输入数据通过帧头尾识别, 划分为标识出头尾的VCDU, 输入数据速率改变, 仅影响VCDU的数据间隔。VCDU的数据间隔实际影响写控制模块对FLASH芯片操作的频繁程度。因此在输入速率符合入口速率的要求时, 数据可以被正常存储并产生附加信息, 输入速率对方法没有影响。

回放数据从FLASH读出后, 解析附加信息, 进行缓存、滤除无效数据后输出回放。回放速率的改变, 将导致回放控制模块加载头尾寄存器的间隔改变。回放速率减慢, 加载间隔增长, 头尾地址寄存器将被写控制模块刷新多次, 即抽取图像的间隔自动增大。回放速率加快, 加载间隔减小, 由于在算法设计中考虑只有新的头尾地址被存入时, 回放模块才能正确加载新地址, 否则回放模块会停止在当前地址继续等待新图像。因此抽取图像的间隔会自动减小, 当没有新图像时, 抽取模块会等待新数据进入。

速率的自适应有利于算法的稳定性和通用性, 在输入、回放速率改变时不需要改变抽取程序即可实现抽取回放功能。

2 工程实现与验证

在工程中采用Xilinx公司300万门FPGA, XQR2V3000[10]进行实现, 占用资源 (Slices) 27%, 经仿真和测试验证满足需求。

2.1 仿真情况

FPGA仿真情况如图3所示, 在抽取回放过程中, 回放指针关系正确, 间隔相等, 符合分析情况。

2.2 工程验证情况

在下行速率50 Kb/s时, 按前述计算, 间隔292帧抽取一幅图像。实际测试中, 抽取图像均为整幅图像帧, 且两幅图像之间连续, 抽取的图像号为0, 291, 581, 872, 1 167, 1 457, 1 749, 2 040, 2 334, 2 627, 2 917, 3 209, 3 500, 3 793, 4 083, 4 377, 4 668, 4 961, 5 251, 5 543, 5 837, 6 128, 6 421, 6 711, 7 003, 图像号、图像间距的测试结果与理论值对比如图4 (a) , (b) 所示, 实际测试图像间隔与计算值符合, 误差小于3幅图像。

在下行速率250 Kb/s时, 有效数据率为241.808 Kb/s, 按上文计算方式计算, 间隔约50帧抽取一幅图像。实际测试中, 抽取图像均为整幅图像帧, 且两幅图像之间连续, 抽取的图像号为0, 50, 100, 151, 201, 251, 302, 353, 403, 453, 504, 555, 605, 655, 706, 757, 807, 857, 908, 959, 1 009, 1 059。图像号、图像间距的测试结果与理论值对比如图4 (c) 、 (d) 所示, 实际测试图像间隔与计算值符合, 误差小于1幅图像。

两种速率下, 实际测试图像间隔与计算值符合, 验证了方法的功能性能符合需求, 且具有速率自适应特点。

3 结语

本文设计实现了一种速率自适应的载荷图像抽取方法, 适用于深空探测器载荷自主管理和地面可视化应用, 实现了完整载荷图像实时抽取。采用FPGA实现算法, 经过测试, 抽取图像完整, 等间距, 可适用于不同下传速率, 满足可视化要求。可以作为后续深空探测载荷自主管理的技术参考。

参考文献

[1]NGUYEN Q, YUKINS W, PURSLEY S, et al.A high perfor-mance command and data handling system for NASA’s lunar reconnaissance orbiter[C]//AIAA Space 2008 Conference and Exposition.Washington, USA:AIAA, 2008.

[2]叶培建, 彭兢.深空探测与我国深空探测展望[J].中国工程科学, 2006, 8(10) :13-18.

[3]陈斌, 沈卫华, 朱岩, 等.嫦娥二号卫星大容量存储器设计[J].航天器工程, 2011, 20(5) :99-104.

[4]邢开宇, 曹晓曼, 方火能.基于FPGA和NAND FLASH的存储器ECC设计与实现[J].电子科技, 2012, 25(10) :70-73.

[5]郭东文, 金勇, 樊秀云.基于CPCI总线的数据回放系统设计[J].测控技术, 2009, 28(z1) :128-130.

[6]CCSDS.732.0-B-2.AOS SPACE DATA LINK PROTOCOL[S].Blue Book, 2006.

[7]Samsung Electronics Corporation.K9WBG08U1M Flash Memory[M].Korea:Samsung Electronics Corporation, 2007.

[8]Samsung Electronics Corporation.Application Note for NAND Flash Memory (Revision2.0) [M].Korea:Samsung Electronics Corporation, 1999.

[9]陆浩, 王振占.高速大容量固态存储器设计[J].计算机工程, 2011, 37(15) :226-231.

自适应图像 篇10

视觉信息是人类获取外界信息的主要来源。近年来,随着多媒体技术的快速发展,视频图像的应用领域越来越广,例如安保监控、车场管理、医用、军事及民用等。而这些应用常常需要全天候运行,拍摄环境复杂多变,常常因各种因素导致视频图像质量不佳。特别是受噪声、雾霾、低照度等因素影响时,很容易覆盖视频图像蕴含的某些特征,造成对比度大幅下降,严重影响后续处理。而且长期观看低质量视频会加重人眼负担,造成视觉疲劳,甚至导致头晕眼花,因此视频增强技术应运而生。

自20世纪末以来,对于视频增强的需求越来越多,要求也越来越高,关于视频图像增强的算法也不断涌现,并且大部分算法针对某些特定环境具有良好的增强效果[1,2,3],但是缺少一种对各种环境增强效果都很好的算法。因此,针对视频图像的不同应用环境,需要选择不同算法对其进行处理。那么对于不同的视频环境,如何快速分类就显得尤为重要,然后根据视频不同类型给予相应的处理以达到自适应视频增强的目的。

本文以TI公司的一款高性能数字图像处理器TMS320DM642为核心构建系统的硬件平台。根据低亮度图像、噪声图像和雾霾图像的统计特性和特征,进行模式分类。通过分别计算图像的亮度均值、色饱和度均值、分块后总体的平均目标个数和每个块的目标个数标准差,从而实现了自动判断视频类型,自适应地将视频分为正常、低亮度、雾霾、噪声、低亮度加噪声这5种情况。

1 系统硬件设计

为了满足系统对实时性和复杂算法的要求,采用TI公司的高性能多媒体处理DSP 芯片TMS320DM642作为主处理器[4],Altera公司的Cyclone II FPGA芯片EP2C8Q208A做协处理器的主从架构。该平台处理器核心频率配置720 MHz,每个时钟周期可以同时处理8条指令,处理速度高达5 760 MInstruction/s(兆指令/s)[5]。在外部存储器总线接口(EMIF)上扩展了32 Mbyte的SDRAM和4 Mbyte的NOR Flash。除此之外,硬件平台还包括了电源模块、时钟模块、复位模块、JTAG模块、GPIO模块等。系统硬件结构框图如图1所示。

视频图像经过摄像头采集后,送到解码器SAA7113进行A/D转换,将摄像头采集的模拟信号转换为YCbCr为4∶2∶2格式的数字视频信号。再通过DM642的VP0输入口送到数据缓冲区,VP2口则配置为视频输出,与SAA7105编码芯片相连接,将数字视频信号进行D/A转换成模拟信号再送到LCD显示器进行显示。SDRAM作为片内存储器的扩展,主要用作图像处理前和处理后视频帧的存储,Flash则用于固化编译后生成的可执行文件,并引导系统的启动。

2 视频图像自适应分类算法

在实际应用中,视频图像的拍摄环境与场景时常变化,这导致视频图像的质量时好时坏。其中受噪声、雾霾、低照度等影响的视频图像,其质量一般比较差。现有的视频图像增强方法有很多,并且针对某些特定的视频背景采用相应的增强算法可以取得良好的增强效果。因此,针对不同的视频图像实际背景,首先需判定视频是否受某种或几种干扰因素影响,属于何种类型,然后进行相应的处理。

针对视频图像,通过DM642硬件平台采集后对需要进行判断的视频帧,先提取图像的平均亮度、分块后目标个数(二值图像中灰度值为255且连通的一个区域为一个目标)、各块总体平均目标个数和每块目标个数标准差、色饱和度均值这些特征,然后基于这些统计特性分析判断其降质的原因,最后进行模式分类,从而实现视频图像的自适应分类。判断过程主要需要3个模块:亮度判断模块、噪声判断模块、雾霾判断模块。由于实际运行平台的限制,过于复杂的算法将难以达到实时的要求,本文综合考虑到实时性和准确性的要求采用如下原理进行判断。

2.1 亮度判断原理

视频图像质量的好坏与其亮度值关系密切,过亮或者过暗都会损失图像的有用信息。本文通过计算亮度均值来反映视频图像的亮度情况,计算公式为

Avg=1Μ×Νi=0Ν-1j=0Μ-1Gray(i,j)(1)

式中:Gray(i,j)是图像的亮度信息(可直接读入视频图像的Y通道分量);M,N分别为图像的高度和宽度;Avg代表图像的亮度均值。

亮度判断的基本思想是根据输入视频图像的亮度均值Avg判断其类型。如果Avg小于某个阈值,则判为是曝光不足或低亮度类型,需要进行亮度增强处理。如果Avg大于某个阈值,则判为是曝光过度或高亮度类型,需要进行降低亮度处理;否则判为亮度正常情况,不做亮度处理。

2.2 噪声判断原理

数字视频图像的噪声主要来源于图像的获取和传输过程[6]。人们对于平坦区域噪声的敏感度要远远大于边缘区域的噪声。对于视频图像的平坦区域,如果引入了噪声,由噪声引起的目标个数将急剧增多。因此,可通过分析图像的目标个数来判断视频图像是否受噪声影响。

具体步骤如下:

1) 对灰度图像X进行Sobel边缘检测获得边缘梯度图像G,GxGy分别代表经横向及纵向边缘检测的图像,公式为

Gx=[-101-202-101]×X(2)

Gy=[121000-1-2-1]×X(3)

每个像素的边缘梯度为

G(i,j)=Gx(i,j)2+Gy(i,j)2(4)

2) 对边缘图像采用OTSU自适应阈值分割,将目标像素灰度值设为255,背景像素灰度值设为0,从而得到二值图像。

3) 将二值图像分为3×3即9个小块,统计每个块的目标个数(灰度值为255,且连通的为一个目标)记为Ni。计算总体平均目标个数ObjectMeanNum以及每个块的目标个数的标准差ObjectNumStdard,公式为

ΟbjectΜeanΝum=i=08Νi9(5)

ΟbjectΝumStdard=i=08|Νi-ΟbjectΜeanΝum|29(6)

4) 如果目标个数均值ObjectMeanNum大于某个阈值TNumMean,而且每个块的目标个数的标准差ObjectNumStdard小于某个阈值TNumStad,则将视频图像判定为存在噪声,需要进行降噪处理;否者视为无噪声,不需要进行噪声处理。

2.3 雾霾判断原理

雾霾天气的视频图像呈现出偏白色的现象,所以R,G,B这3个分量比较接近,也就是色饱和度比较小。因此本文提出一种基于视频图像色饱和度分量均值来判断视频是否受雾霾天气影响的方案。

HSI模型是1915年美国色彩学家孟塞尔提出的,以色调(H)、色饱和度(S)和亮度强度(I)这3种基本特征量来感知颜色,它反映了人的视觉系统感知彩色的方式。HSI模型可从彩色图像中提取出相互独立的亮度信息和彩色信息,而一般的图像或者视频都是基于RGB(红、绿、蓝)模型,因此需要先进行颜色空间的转换,公式为

Ι=13(R+G+B)(7)

S=1-3(R+G+B)[min(R,G,B)](8)

式中:IS分别为彩色图像的亮度分量和色饱和度分量。对于雾霾天气的视频图像,本文利用色饱和度均值对其进行判断。雾霾天视频图像的色饱和度普遍较小,如果色饱和度均值小于某个阈值,则可确认为雾霾天类型;否则为非雾霾类型。

3 系统软件设计

3.1 软件开发工具

Code Composer Studio(CCS)是一种针对TI的DSP、微控制器和应用处理器的集成开发环境,可完成软件的编辑、编译、调试、代码性能测试和项目管理等工作[7]。为了简化DSP软件的设计过程,提高DSP软件对复杂应用的任务支持,TI公司设计开发了一种尺寸可裁剪的实时多任务嵌入式操作系统内核即DSP/BIOS[8],它包含时钟模块、硬件中断模块、软件中断模块、任务模块、信号量模块、邮箱模块、数据管道模块、资源锁模块等。基于嵌入式操作系统DSP/BIOS的DSP程序,任务请求由DSP/BIOS通过线程和中断优先级来控制执行,从而大大简化了应用程序的前期设计过程。除了利用BIOS提供的模块进行复杂任务的软件开发,还可以借助CCS分析工具高效调试应用程序,了解程序代码的存储、开销及执行时间,或者图形化显示线程占用的CPU时间等。

3.2 基于DSP的软件设计

基于上述DSP/BIOS实时操作系统的多线程框架,结合本文工作需求,软件分两个线程来实现。软件设计结构如图2所示。系统上电工作后,应用程序被BOOT引导程序从Flash中拷贝到SDRAM中开始执行进行初始化。首先对内部执行环境初始化,包括DM642处理器相关模块进行初始化、DSP/BIOS模块的初始化、片级支持库CSL的初始化以及缓存的初始化。然后开始对设备驱动进行初始化,主要是视频采集设备,即DM642的VP口和SAA7113视频编码芯片,将VP0口配置为采集输入口,其他视频接口不用;将SAA7113的输出图像设置为8位YCbCr4∶2∶2格式。在完成初始化后,应用程序开始循环执行,采集线程和判断线程在DSP/BIOS实时操作系统的调度下协同工作。

3.2.1 采集线程

本文采集线程的驱动采用了FVID模块,FVID模块为DSP/BIOS程序提供API函数,以实现视频帧图像的获取和显示。其流程如图3所示。在线程初始化各参数后,调用FVID_create函数,创建采集通道;采集通道创建并初始化成功后,调用FVID_control发送命令使采集设备开始工作;利用FVID_alloc函数获得缓存区,调用FVID_exchange更新图像数据,并将更新的数据通过SCOM通信传递给判断线程。最后判断采集是否完成,并调用FVID_delete()释放帧缓存。

3.2.2 判断线程

在实际应用中,一般视频图像的场景都是运动可变的,其实际背景具有随机性,因此对视频图像分类的结果需要不断更新。如果更新时间过长,可能因为视频背景快速变换导致分类结果更新不及时,影响后面的增强效果;而过短的更新时间会造成算法复杂度较高,不利于视频实时处理。通过大量实验,结合本文采用的硬件平台的实际情况,本文采用每100帧判断1次的方式。

当系统每采集到100帧图像后,通过SCOM队列通信启动判断线程。对采集到的视频帧,先计算图像的亮度均值、色饱和分量的统计均值、分块后每个块的目标个数、总体平均目标个数以及每个块的目标个数标准差。得到这些统计特征后进入如图4所示的判断线程流程图,确定视频图像受到某种或某几种因素影响,属于那种类型。判定完成后,等待下一次判断线程的启动。

4 实验结果

针对不同实际背景的视频图像,结合本文算法得到如图5所示的结果。

表1给出了不同实际背景的视频图像的亮度均值、色饱和分量的统计均值、分块后每块的平均目标个数和目标个数标准差,结合预先设定的阈值(亮度均值Avg<60为低亮度图像,色饱和度均值S_mean<0.05为雾霾图像,平均目标个数ObjectMeanStdard>500且目标个数标准差ObjectNumStdard<80为噪声图像)做出了判断。

本文针对每个类型的不同场景进行了判断结果准确率的测试,测试结果如表2所示。从表2可以看出,除噪声判断准确率稍微偏低,只有76%左右,雾霾天及低照度类型的判断准确率都较高,分别达到了82%和96%。

最后,将编译好的可执行文件烧写到DSP的Flash中,通过上电自举模式,由摄像头采集的视频图像,经过本系统能够快速且较准确地自适应判断其类型,为后续的视频图像自适应增强打下坚实基础。分析实验结果表明,本文基于DSP的视频图像自适应分类系统具有一定的工程实用性。

5 小结

本文介绍了一种以高速定点DSP芯片DM642为核心的视频图像自适应分类的软硬件设计。实验结果表明该系统实现了对视频图像类型快速且自适应的分类判断,为下一步实现图像自适应增强打下了坚实基础。但是系统还存在不足,主要表现在对噪声的判断准确率较低,因此提高噪声判断准确率和实现图像自适应增强将是下一步工作目标。

参考文献

[1]郭蕾,田松,许悦雷,等.一种小波自适应比例萎缩去噪改进算法[J].电视技术,2012,36(11):27-29.

[2]郭珈,王孝通,胡程鹏,等.基于邻域相似性的暗原色先验图像去雾方法[J].计算机应用,2011,31(5):1224-1226.

[3]蔡利梅,钱建生,罗驱波,等.一种基于色彩保持的低照度图像增强算法[J].计算机应用与软件,2009,26(3):226-243.

[4]Texas Instruments.2008年第2季度DSP选择指南[M].[S.l.]:Texas Instrument Incorporated,2008.

[5]Texas Instruments.TMS320DM642video/imaging fixed point digital Sig-nal Processor[M].[S.l.]:Texas Instrument Incorporated,2007.

[6]武英,吴海勇.一种自适应图像去噪混合滤波方法[J].计算机工程与应用,2010,45(7):168-170.

[7]Texas Instruments.TMS320C6000code composer studio tutorial[M].[S.l.]:Texas Instrument Incorporated,2000.

自适应图像 篇11

关键词:高速网络;负载均衡;负载均衡技术;网络处理

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30729-02

Implementation of self-adapting Load Balance Technique of High-speed Network

ZHENG Zhi-xian1, CHEN Hua1,2, XU Rong-sheng3

(1. Fujian Communication Technology College, Fuzhou 350007, China; 2. Fuzhou University, Fuzhou 350002, China; 3. Network Security Lab, Institute of High Energy Physics, CAS, Beijing 100049, China)

Abstract:Gbit network developes andits scale and speed have brought a new challenge to network processing .The difficulty of processing technology for High-speed network is how to make processing speed match network speed.The load balance technique can solve it.The present researches all base on the NP, and the hardware requirement are higher.The thesis puts forward a software solution to achieve load balance for network processing.And it is proved that the solution is well done .

Key words:High-speed network; load balance; load balance technique; network processing

1 引言

Gbit网络的出现,其规模和速度都给网络处理带来了新的挑战,如何实现在高速链路中的处理能力也成为了当前各种网络处理系统讨论的焦点。一种观点认为高速网中的网络处理是不实际的,因为当前的技术很难实现处理速度与网络速度的匹配,丢包的问题势必造成很高的错误;另一种观点是利用多个处理器并行工作,将网络流量分成单个处理器能处理的多个部分,以实现高速网络中的网络处理。由此可见,研究网络流的负载均衡技术在现实中具有重要的意义。目前在网络中负载均衡技术应用较多是网络处理器(NP)[1,2]。这些应用需要从硬件上改造网络处理能力,下面提出一个软件方案,在现有的条件基础上实现大规模网络的负载均衡。

2 技术背景

2.1 负载均衡技术

负载均衡技术[4]通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去,用多个设备共同完成任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。负载均衡技术面临的问题有3方面:负载状况的定义、如何获取网络数据以及获取后如何处理的问题。而如何处理实际上就是选择合适的负载均衡算法,它能保证设备协同完成任务,消除或避免现有的网络负载不均、数据流量拥挤和响应时间长的瓶颈。

2.2 负载均衡

将负载均衡技术应用在网络处理系统中,是为了解决高速网的网络速度与处理速度不匹配的问题,将从网络中均衡地捕获的数据包再分配给各处理节点进行处理。所以负载均衡技术满足以下条件将更有利于实现网络分析处理:

(1)属于同一IP的所有数据包应由同一个捕获节点完成。

(2)同一类型的数据包,即使用同一协议的数据包集中在一起以便共同处理。

(3)可扩展性和容错性。随网络中的流量发生变化,捕获节点负载分配不均或崩溃时,负载均衡技术都能针对具体情况进行响应,调整数据捕获节点之间的负载,使之重新达到均衡,并且使对其余数据分析处理器的影响降低到最小。

如何在多个数据捕获器之间分配流量是关键问题。其分配方法,在分流节点按照控制节点根据当前情况定义的策略向各捕获节点分配任务,通过调整对应于捕获节点的这些策略来保证每个数据捕获节点的负载均衡。

3 流量分配策略

网络处理第一步就是捕获所有网络流。通常情况下,数据捕获器直接连接到主要入口和路由出口处。它就像sniffer软件那样捕获经过路由器的IP包。分离网络数据流是常用的解决方式。我们可以采用好几种策略。本节给出动态流量分配思想:选择一种或多种被检测网段内主要的服务类型的流量单独对其进行处理,其余类型的流量合并为一类,并且每一种类型的流量都按照一定的流量分配算法分配到各个网络捕获节点,其结构图如图1所示。

图1 动态流量分配结构

3.1 动态负载均衡策略

分离网络数据流是负载均衡常用的解决方式。我们可以采用以下几种策略。

3.1.1 以IP段来分类

每个单位网络都有它们自己的IP段。比如,某单位的IP段是137.138.1.1至137.138.2.254。因此,如果有3个DC,我们就能以以下的方式自动地捕获数据包:

DC1 ------------- 137.138.1.1

DC2 ------------- 137.138.1.2

DC3 ------------- 137.138.1.3

DC1 ------------- 137.138.1.4

……

DC2 ------------- 137.138.2.254

3.1.2 以流入或流出来分类

由于网络捕获器通常直接连接到机构的中心交换机或路由器上,多数IP包很自然地被分成2类,即流入包和流出包。因此很容易设置一部分网络捕获器捕获流入包而另一部分捕获流出包。

3.1.3 以协议来分类

TCP/IP协议模型中,TCP层有两个协议:TCP和UDP。所以我们可以分配一部分网络捕获器只处理TCP包而另一部分只处理UDP数据。网络捕获器的数量取决于网络数据流和网络捕获器的硬件性能。

一般情况下仅使用其中的一种是不能均衡DC的负载。比如,一些企业流入流量比流出流量大得多,而大部分网络服务提供商则流出流量比流入流量大得多。而且不同类型的流量比率也不全是一样的。流量状况经常发生变化。因此为了在捕获器间更好地均衡负载,最好是三种策略的组合。

有很多方式组合这些负载方法。这些方式组合很大程度上取决于开发者的环境需要。每个DC分配的IP范围有静态分配和动态分配两种选择。一般后者比前者更适合网络处理应用。下面我们提出实现动态负载均衡网络流的过程。

3.2 动态负载均衡实现

每个捕获器上有个配置文件,指明本机捕获的IP段和所覆盖的协议。捕获器从中央管理器获取其配置文件。每个捕获器有个运行中的daemon来检查自己的状态,如CPU、内存和网络使用情况,然后把结果送给每个机器。中央管理器检查捕获器的状态,然后给每台机器做最新的配置。它把所有的捕获器看成一个整体,并定期地刷新。如果一个捕获器崩溃了,中央管理器不能接收到该机器的状态,那么就把崩溃机器负责的负载均衡到其他捕获器上。如果一个新的捕获器加入,中央管理器将被告知然后为每个捕获器创建配置文件。这样移走或增加捕获器变得更容易、更安全。

3.2.1 捕获器的综合负载指数

每个捕获器上都有一个daemon定期发送综合负载情况。daemon从本机/proc/目录里获取各种基本负载信息。该程序将本机上的CPU Load、登录会话数、内存用度等进行综合计算,再传给中央管理器。

/proc/loadavg:CPU平均负载

/proc/meminfo:内存使用情况

/proc/stat:swap使用情况

/proc/net/dev:网络流量情况

……

然后,根据一定的综合负载算法得出本机的综合负载指数GLI。下面介绍综合负载算法。

3.2.2 综合负载算法

本机负载指标主要记录各种负载信息,如当前CPU负载CPULOAD、当前内存利用情况MEMORY、当前磁盘交换分区使用情况SWAP、当前网卡负载NICLOAD。

综合负载可以通过以下公式计算出:

GLI=R1*CPULOAD+R2*MEM+R3*SWAP+R4* NICLOAD,其中∑Ri=1。

若当前的系数Ri不能很好地反映应用的负载,系统管理员可以对系数不断地修正调整,直到找到贴近当前应用的一组系数。

另外,关于发送负载信息时间间隔的设置,虽然很短的间隔可以跟确切地反映各个节点的负载并及时作出调整,但是很频繁地查询(如1秒钟几次)会给节点带来一定的负载。所以,这里要有个折衷,我们一般建议将时间间隔设置在5至20秒之间。

我们依据上述算法思想做了一个评估实验,测试了大量配置相同的机器的运行情况,得出每个机器上的CPU、内存、交换空间、进程数等,然后估算出各个参量值的权重系数{0.4,0.3,0.1,0.2}:

表1各种负载系数

于是得出综合负载指数为:

GLI=R1*CPULOAD+R2*MEM+R3*SWAP+R4* NICLOAD,其中∑Ri=1。

3.3 中央管理器

将要处理的网络IP数列出,同时根据协议类别形成多个任务。中央管理器接收到各个捕获器的综合负载指数,根据其负载能力分配任务。在系统运行过程中,流量发生变化,则需要对各种流量对应的捕获器作调整,并将任务重新同步发送到各捕获器上。每个捕获器上的配置如下:

task.conf文件

seize

{ host ipaddr;

protocol pro;

int port; };

……

4 数据捕获的设计

BPF包捕获技术提供了基于内核的过滤和缓冲,在高速高负载网络中可获得较好的性能。每个捕获器的网络数据捕获基于libpcap。libpcap作为一个通用可移植的包捕获API函数库,提供了对BPF的内在支持,为底层网络监听提供一个可移植框架。BPF改进了过滤方式,使用基于寄存器的过滤求值程序, 同时还使用了一种简单的缓冲策略, BPF的性能大幅度得提高。BPF过滤器和缓冲器是经过优化的,用户可用BIOCSBLEN ioct1()增加缓冲区长度。

每个捕获器将读入其配置文件,通过libpcap的Pcap_setfilter来设置过滤器,完成给它分配的捕获任务。在实现上,为提高捕获速度,技术上做以下改进:引入“零拷贝”技术[3]。

传统的Libpcap采用BPF方式来实现对网络数据的采集,从网卡抓包到应用程序获取数据包要经历3次拷贝:网卡到内核缓冲区;内核中复制一份,一份交给正常的应用程序,另一份交给抓包程序;内核到应用层的拷贝。这三次拷贝中主要是后两次所消耗的资源比较大,影响系统的整体性能。引入零拷贝技术,取消后两次拷贝操作,让应用程序直接访问网卡复制到内核缓冲区的数据包,实现CPU的零参与,彻底消除CPU在这方面的负载。

零拷贝技术首先利用DMA方式将网络数据包直接传递到系统内核预先分配的地址空间中,避免CPU的参与;同时将系统内核中存储数据包的内存区域映射到网络数据获取的应用程序空间,以对这块内存进行访问,从而减少了系统内核向用户空间的内存拷贝,同时减少了系统调用的开销。

5 性能测试

3台捕获机与中央管理机均为PC机,操作系统为RedHat 7.3,处理器为P4 2.0GHz,内存为256MBDDR,硬盘为40GB,千兆以太网卡;使用用IXIA网络测试仪发送ip段为192.168.10.1~192.168.10.10的网络数据,数据丢包率低于0.01%。

6 结束语

这种软件负载均衡技术是实现高速网络环境下网络处理的有效途径之一。该方式具有高可用性,高扩展性,使得网络处理系统能更好地适应网络带宽不断增加的趋势。因而进一步研究有很强的应用前景。该技术可以实现基于网络层的数据转发和负载均衡调度。在此基础上进行改进可以实现千兆带宽的网络入侵检测、千兆带宽的网络取证等网络处理。

参考文献:

[1] 陈宇,薛鹏,翟伟斌,刘宝旭,许榕生.基于IXP2400开发NIDS负载均衡器的研究[J].计算机工程,2007,33(1):104-105,127.

[2] 郑爱蓉,施恩,杨彬,陈宇,许榕生.基于IXP2400千兆防火墙包分类算法的设计与实现[J].计算机应用研究,2005,22(9):237-239.

[3] 杨武,方滨兴,云晓春,等.基于骨干网的并行集群入侵检测系统[J].哈尔滨工业大学学报,2004,36(3):274-275.

[4] 负载均衡技术:http://publish.it168.com/cword/2876.shtml.

自适应图像 篇12

由于传感器和天气等因素, 出现的图像清晰度、对比度下降等问题,严重影响后续的信息提取、模式识别等环节,必须要对图像进行增强处理以提高图像质量。非线性增强处理以更逼近于人类视觉效果应用广泛,但确定Beta 函数参数是一个复杂的问题,针对图像灰度分布的不同情况,一般采用人工和穷举法设置相应的灰度变换函数参数,没有自适应性和智能性,因此可以考虑利用智能优化算法来自动获取最佳参数。

粒子群算法(particle swarm optimization, PSO)是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性,然而具有唯一的内动力的粒子群系统当进化到一定程度后,粒子群中粒子间的差异减少,系统逐渐平衡,进化减缓甚至停滞。这影响到它探索得到最优解的能力。

本文将突变机制引入到传统的粒子群算法中提高系统进化的效率,并应用此算法自适应获取最佳非线性变换参数达到图像增强的目的。

1 图像非线性增强

1.1非线性变换及其不足

图像像素灰度变换可用如下最基本的形式表达:

Ιxy*=f(ixy)(1)

式(1)中I为输出的增强图像像素点(x,y)的灰度值,f是非线性变换。一般对不同质量的图像则采用不同的变换函数,与此对应的变换函数大致有四类。

其中横坐标为原图像的灰度值,纵坐标为变换后图像的灰度。(a)变换适用于对较暗区域进行扩展;(b)变换适用于对较亮区域进行扩展;(c)变换表示对中间区域进行拉伸而对两端区域压缩;(d)变换表示对两端区域进行拉伸而对中间区域压缩。其中(c)和(d)两种变换函数可用于处理灰度集中于某一区域的图像。

每一种变换曲线都可以被一组参数所描述。Tubbs提出了一种归一化的非完全Beta 函数F(u)来自动拟合图像增强的这4类变换曲线[1]。该归一化的非完全Beta 函数F(u)定义为:

F(u)=B-1(α,β)0utα-1(1-t)β-1dt0<α,β<10(2)

式(2)中,B(α,β)为Beta函数,表示如下:

B(α,β)=01tα-1(1-t)β-1dt(3)

通过调整α,β的值,就可以得到图1所示的各种类型的非线性变换曲线。

可以看出,关键就是确定Beta 函数中α,β的值来获得上面所示的各种类型曲线。然而确定这两个值是一个复杂的问题。常用的做法是根据图像灰度分布的不同情况,人工干预确定,这样存在三个不足:(1)不能自动完成增强任务;(2)人工设置参数的正确度,直接决定着增强效果;(3)耗费时间,毫无自适应、智能性可言。可见将自适应机制、自组织能力、自学习能力与传统的成熟算法相结合显得非常必要。

1.2像素非线性变换过程

设原始图像中像素点(x,y) 的灰度值为f(x,y),增强后的灰度值为f`(x,y),则像素非线性变换过程可归纳如下:

1.2.1 对原始图像像素点归一化

u(x,y)=f(x,y)-iminimax-imin

其中imax和imin分别为原图像的灰度最大和最小值,0≤u(x,y)≤1。

1.2.2 利用非完全Beta 函数进行灰度变换

u(x,y)=Τ(u(x,y))0u(x,y)1

1.2.3 计算增强后的图像灰度值f′(x,y)

f′(x,y)=(imax-imin)u′(x,y)+imin。

2 突变粒子群算法

2.1基本粒子群算法[2,3]

粒子群算法是Kennedy 和Eberhart 受鸟群觅食行为的启发于1995年共同提出的。基本原理是一个由m个粒子组成的群体在D维搜索空间以一定的速度飞行, 每个粒子在搜索时, 考虑到了自己搜索到的为最好点和群体内其他粒子的历史最好点, 在此基础上进行位置的变化。和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,没有遗传算法用的交叉(crossover)以及变异(mutation)操作,在大多数的情况下,所有的粒子可能更快的收敛于最优解。

粒子的进化方程为

vij=vij+c1r1(pij-xij)+c2r2(pgj-xij)(5){vij=vmax,ifvij>vmaxvij=-vmax,ifvij<-vmaxxij=xij+vij(6)

式(5)、式(6)中,c1,c2为学习因子; r1,r2为在[0,1]区间内均匀分布的伪随机数; xij为粒子的位置; vij为粒子的速度。

为了使算法具有良好的全局寻优能力, Y. Shi和 Eberhart引入了惯性权重w[4],平衡全局和局部搜索能力,一般将它定为随迭代的次数线性减小,如由1.4到0,由0.9到0.4,由0.95至0.2等,从而形成了一个标准的PSO形式:

vij=wvij+c1r1(pij-xij)+c2r2(pgj-xij) (7)

{vij=vmax,ifvij>vmaxvij=-vmax,ifvij<-vmaxxij=xij+vij(8)

引入惯性权重的PS0算法进化规则由三部分构成:第1部分为粒子先前的速度;第2部分为“认知(cogntion)”部分,表示粒子本身的思考,即一个得到加强的随机行为在将来更有可能出现,并假设获得正确的知识是得到加强的,这样一个模型假定粒子被激励着去减小误差;第3部分为“社会(social)”部分,表示粒子问的信息共享与相互合作,即当观察者观察到一个模型在加强某一行为时,将增加它实行该行为的几率,即粒子本身的认知将被其他粒子所模仿。

2.2突变PSO算法[3]

进一步分析进化式(7)可知,PSO算法中有3个权重因子:惯性权重w、加速常数c1和c2。惯性权重w使粒子保持运动惯性,使其有扩展搜索空间的能力。加速常数c1和c2代表将每个粒子推向pbest和gbest位置的加速度:值较小时,允许粒子在被拉回之前可以在目标区域外徘徊;而值较大时则导致粒子突然的冲向或越过目标区域。

PSO算法进化的关键在速度。为使粒子不至越过目标区域太远,对粒子的速度加了限制:vmax。当vmax 较大时,粒子的飞行速度大,有利于全局搜索,但有可能飞过最优解;vmax 较小时,粒子可在特定区域内精细搜索,但容易陷入局部最优,一般取值为2.0。粒子的速度是根据自身与同伴的位置而变化的,所以粒子的速度还取决于粒子自身经历的最好位置和所有粒子经历的最好位置pbest和gbest。假设粒子xi正经历全局最好位置,那它将保持静止,其他粒子逐步向它靠拢,这样易陷于局部解。在加了惯性权重的基础上,当粒子xi经历全局最好位置时,该粒子只能做匀速运动,随着w的不断减小,该粒子几乎不变,仍有陷入局部解的可能。

通过粒子群算法的进化方程可以看出,它进化的唯一动力是各粒子之间的相互作用,这也就是一种内动力,具有唯一的内动力的粒子群系统当进化到一定程度后,粒子群中粒子间的差异减少,系统逐渐平衡,进化减缓甚至停滞。这影响到它探索得到最优解的能力。

为使PSO算法有更好的持续开发最优解的能力,本文在标准粒子群的基础上引入了突变机制,形成了突变粒子群算法,它能有效增大粒子间的差异性和非均匀性,打破平衡态,从而增强系统内动力以提高系统进化的效率。

突变机制指当粒子经历全局最好位置时,保存这个最好位置,同时随机产生一个新的种子,也就是说当产生了最优解时,增加一个新的扰动,扩大寻找的空间,更有利于找到全局最优解。

突变PSO算法的进化是将标准PSO算法的进化式子(7)改为:

vij=wvij+c1r1(pij-xij)+c2r2(pp-xij) (9)

{vij=vmax,ifvij>vmaxvij=-vmax,ifvij<-vmax

式(9)中pp用于保存粒子经历的全局最好位置。

突变PSO算法流程描述如下:

step1: 初始化,设定vmax、c1、c2、w和最大迭代次数N的值,产生原始种群并计算种群中个体的适应度f,记下pipg,pp保留pg的值,同时随机产生出得到pg的相应的新的个体;

step 2: 如果迭代次数等于N则转step 5,否则转step 3;

step3:种群按式(5)和式(4)进化,计算个体适应度fg;

step4:比较fsf;如果fs<f则修改pi,产生新的pg,若pg的值优于pp,就用pp保存pg,同时随机产生出得到pg的相应个体,否则,转step2:

step 5:输出最优个体。

2.3图像增强适应度函数[5,6]

这里使用新设计的适用图像质量评价的适应度函数Fitness,其值越大,表明图像增强后的效果越好。一般算法中考虑的因素仅为与图像质量最相关的方差Fac,其实图像的信息熵E、像素差别Fbr、信噪改变量Inc以及紧致度C等性能参数对于图像质量的好坏也具有重要参考价值。据此,本文采用上述5个因素结合的表达式,即

Fitness=EInc[Fac+2.5C]+Fbr (10)

式(10)中,

Fac=1nx=1Μy=1Νixy2-(1nx=1Μy=1Νixy)2;

E=-i=0L-1pilg2pi;

Fbr=x=1Μ-2y=1Ν(ix,y-ix+2,y)2;

Ιnc=n(h)>t1;

C=Ρ2A,即周长P的平方与面积A的比。

3 实验仿真

为验证本文算法的有效性,采用MATLAB7.0对同一幅较暗图像(图2)进行增强仿真实验[7]。分别采用一般的粒子群算法与本文改进的基于突变机制的粒子群算法对图2进行非线性增强比较,效果评价以处理后图像的直方图为标准。其实验结果图如图3所示。

从图3算法对应的灰度直方图可以看出,本文设计的基于突变机制的粒子群算法进行图像非线性增强,较一般的标准粒子群优化增强算法而言,灰度分布更加均匀宽广,对比度明显,视觉效果更好。

4 结论

本文提出了一种将突变机制引入到常规粒子群算法的改进型粒子群算法, 扩大了寻找的空间,更有利于找到全局最优解。利用本文的优化算法对图像进行了增强实验仿真,进而得到图像非线性增强Beta 函数的最优变换参数。通过Matlab仿真实验表明,该算法较使用标准粒子群算法的增强处理,在提高算法的搜索效率、收敛精度以及图像增强效果等方面有显著效果。

摘要:利用突变粒子群算法自动获取图像非线性增强函数的最佳变换参数,达到图像增强的效果。该算法基于粒子群算法原理,采用针对图像质量评价效果的新适应度函数(包括方差、信息熵、紧致度、信噪改变量以及像素差别五要素),提出一种基于突变机制的粒子群算法,有效增大粒子间的差异性和非均匀性,打破平衡态,从而增强系统内动力以提高系统进化的效率。实验表明,该算法具有较高的自适应性,即避免了陷入局部极小,加快了收敛速度,且增强质量评价明显提高。

关键词:图像增强,粒子群算法,突变,适应度函数

参考文献

[1] Tubbs J D.A note on parametric image enhancement.Pattern Recog-nition,1987;20(6):617—621

[2] Kennedy J,Eberhart R.Particle swarm optimization.Proceedings ofIEEE International Conference on Neural Networks.Perth,Australia,1995:1942—1948

[3]孙颖.微粒群算法的改进及其在图像预处理中的应用.南京:南京师范大学,2007

[4] Shi Y,Eberhart R C.Parameter selection in particle swarm optimiza-tion.In:Evolutionary programming.Porto V W,Saravanan N,Waa-gen D,et al.Eds.Berlin,Germany:Springer-Verlag,1998;VII:591—600

[5] Rosenfield A,Avinash C K.Digital picture processing.New York:Academic Press,1982:154—167

[6]孙勇强,秦媛媛.基于粒子群算法的彩色图像增强研究.徐州工程学院学报(自然科学版),2009;24(3):36—40

上一篇:厄贝沙坦/治疗应用下一篇:金融市场企业筹资