。
罗小波1刘明培1,2(1.重庆邮电大学计算机学院中韩GIS研究所,重庆,400065;2.西南大学资源环境学院,重庆,400065)摘要:在网络结构给定的情况下,利用遗传算法的全局寻优能力得到一组权值和阈值作为BP神经网络的初始权值和阈值,来避免BP神经网络易陷入局部极小的缺陷,同时也可以提高网络的收敛速度。
然后再利用BP神经网络的局部寻优能力,对权值和阈值进行进一步的精细调整。实验结果表明,把这种基于遗传算法的BP神经网络应用于遥感影像监督分类,具有较高的分类精度。
关键词:BP神经网络;遗传算法;遥感影像分类1引言随着遥感技术的快速发展,遥感技术已经广泛应用于各个领域。其中,遥感影像分类是其重要组成部分。
近年来,随着人工神经网络理论的快速发展,神经网络技术日益成为遥感影像分类中的有效手段,特别是对高光谱等影像数据,更是具有许多独特的优势。
一般我们把采用BP(Back-propogation)算法的多层感知器叫做BP神经网络,它是目前研究得最完善、应用最广泛的神经网络之一。
与经典的最大似然法相比,BP神经网络最大的优势就是不要求训练样本正态分布。但是,它具有结构难以确定、容易陷入局部极小、不易收敛等缺陷。在本文中,网络的结构由用户根据问题的复杂度确定。
在进行网络训练之前,利用遗传算法的全局寻优能力确定网络的初始权值和阈值;然后利用BP学习算法的局部寻优能力对网络进行进一步的精细调整。最后利用训练后的网络进行遥感影像监督分类。
结果表明,基于遗传算法的BP神经网络进行遥感影像监督分类,具有较高的分类精度。2BP神经网络2.1网络结构BP神经网络的结构一般包括输入层、中间隐层、输出层。
在模式识别中,输入层的神经元个数等于输入的特征个数,输出层的神经元个数等于需要分类的类别数。隐层可以为一层或多层,但一般的实际应用中一层隐层就可以满足要求。
而各隐层的神经元个数需要根据实际问题的复杂度而定。以单隐层为例,其结构示意图如图1。
为了实现一种通用的遥感影像分类手段,除了提供默认的网络结构外,还为使用者提供了根据实际问题的复杂度自行确定网络隐层数与各隐层神经元数的功能。
这为一些高级用户提供了灵活性,但这种灵活性在一定程度上增加了使用的难度,有时也需要一个实验的过程,才能取得满意的效果。
图1BP神经网络结构2.2BP学习算法算法的基本步骤如下:(1)将全部权值与节点的阈值预置为一个小的随机数。(2)加载输入与输出。在n个输入节点上加载一n维向量X,并指定每一输出节点的期望值。
每次训练可以选取新的同类或者异类样本,直到权值对各类样本达到稳定。(3)计算实际输出y1,y2,…,yn。(4)修正权值。
权值修正采用了最小均方(LMS)算法的思想,其过程是从输出节点开始,反向地向第一隐层传播由总误差诱发的权值修正。
下一时刻的互连权值Wij(t+1)由下式给出:土地信息技术的创新与土地科学技术发展:2006年中国土地学会学术年会论文集式中,j为本节点的输出;i则是隐层或者输入层节点的序号;或者是节点i的输出,或者是外部输入;η为学习率;α为动量率;δj为误差项,其取值有两种情况:A.若j为输出节点,则:δj=yj(1-yj)(tj-yj)其中,tj为输出节点j的期望值,yj为该节点的实际输出值;B.若j为内部隐含节点,则:土地信息技术的创新与土地科学技术发展:2006年中国土地学会学术年会论文集其中k为j节点所在层之上各层的全部节点。
(5)在达到预定的误差精度或者循环次数后退出,否则,转(2)。2.3基于遗传算法的网络学习算法遗传算法具有全局寻优、不易陷入局部极小的优点,但局部寻优的能力较差。而BP学习算法却具有局部寻优的优势。
因此,如果将两种算法结合起来构成混合训练算法,则可以相互取长补短获得较好的分类效果。
主要思路如下:(1)利用遗传算法确定最优个体A.把全部权值、阈值作为基因进行实数编码,形成具有M个基因的遗传个体结构,其中M等于所有权值、阈值的个数。
B.设定种群规模N,随机初始化这N个具有M个基因的结构。C.适应度的计算:分别用训练样本集对N组权值、阈值进行训练,得出各自网络期望输出与网络实际输出的总误差e,适应度f=1.0-e。
D.进行遗传算子操作,包括选择算子、交叉算子和变异算子,形成新的群体:其中,选择算子采用了轮盘赌的方法,交叉算子采用了两点交叉。E.反复进行C、D两步,直到满足停止条件为止。
停止条件为:超出最大代数、最优个体精度达到了规定的精度。(2)把经过GA优化后的最优个体进行解码操作,形成BP神经网络的初始权值和阈值。(3)采用BP学习算法对网络进行训练,直到满足停止条件。
停止条件为:①达到最大迭代次数;②总体误差小于规定的最小误差。网络训练结束后,把待分数据输入训练好的神经网络,进行分类,就可以得到分类结果影像图。
3应用实例实现环境为VC++6.0,并基于Mapgis的二次开发平台,因为二次平台提供了一些遥感影像的基本处理函数,如底层的一些读取文件的基本操作。
实验中使用的遥感影像大小为500×500,如图1所示。该影像是一美国城市1985年的遥感影像图。
根据同地区的SPOT影像及相关资料,把该区地物类别分为8类,各类所对应的代码为:C1为水体、C2为草地、C3为绿化林、C4为裸地、C5为大型建筑物、C6为军事基地、C7为居民地、C8为其他生活设施(包括街道、道路、码头等)。
其中,居民地、军事设施、其他生活设施的光谱特征比较接近。
图1TM原始影像(5,4,3合成)在网络训练之前,经过目视解译,并结合一些相关资料,从原始图像上选取了3589个类别已知的样本组成原始样本集。
要求原始样本具有典型性、代表性,并能反映实际地物的分布情况。把原始样本集进行预处理,共得到2979个纯净样本。这些预处理后的样本就组成训练样本集。
网络训练时的波段选择为TM1、TM2、TM3、TM4、TM5、TM7共6个波段。
另外,由于所要分类的类别数为8,因此,网络结构为:输入层节点数为6,输出层节点数为8,隐层数为1,隐层的节点数为10,然后用训练样本集对网络进行训练。
在训练网络的时候,其训练参数分别为:学习率为0.05,动量率为0.5,最小均方误差为0.1,迭代次数为1000。把训练好的网络对整幅遥感影像进行分类,其分类结果如下面图2所示。
图2分类结果为了测试网络的分类精度,在分类完成后,需要进行网络的测试。
测试样本的选取仍然采用与选取训练样本集一样的方法在原始影像上进行选取,即结合其他资料,进行目视判读,在原始图像上随机选取类别已知的样本作为测试样本。
利用精度评价模块,把测试样本集与已分类图像进行比较,得到分类误差矩阵以及各种分类精度评价标准,如表1所示:表1分类误差矩阵总体精度:0.91,Kappa系数:0.90。
从表1可以看出,采用测试样本集进行测试,大部分地物的分类精度都达到了0.9以上,只有居民地和其他生活设施的精度没有达到,但也分别达到了0.89和0.77,总的分类精度为0.91。
Kappa系数在遥感影像分类精度评价中应用极为广泛,在本次测试中其值为0.90。从上面的分析可以看出,利用基于遗传算法的BP神经网络进行遥感影像分类,其分类精度较高,取得了令人满意的效果。
4结论与传统的基于统计理论的分类方法相比,BP神经网络分类不要求训练样本正态分布,并且具有复杂的非线性映射能力,更适合于日益激增的海量高光谱遥感数据的处理。
但BP神经网络也有易陷于局部极小、不易收敛等缺陷。初始权值和阈值设置不当,是引起网络易陷于局部极小、不易收敛的重要原因。
在实验中,利用遗传算法的全局寻优能力来确定BP网络的初始权值和阈值,使得所获取的初始权值和阈值是一组全局近似最优解。然后,利用BP学习算法的局部寻优能力对网络权值和阈值进行精细调整。
这样,训练后的稳定网络,不但具有较强的非线性映射能力,而且总可以得到一组均方误差最小的全局最优解。
实验表明,利用上述的基于遗传算法的BP神经网络进行遥感影像分类,只要所选取的训练样本具有代表性,能反映实际地物的分布情况,就能够得到较高的分类精度,具有较强的实际应用价值。
参考文献H.Yangetal,ABack-propagationneuralnetworkmformineralogicalmappingfromAVIRISdata,Int.J.Remotesensing,20(1):97~110ArdutiAlessandro,etal.Speeduplearningandnetworkoptimizationwithextendedbackpropogation.NeuralNetworks,1993,6:365~383PatrickP.Minimizationmethodsfortrainingfeedforwardneuralnetworks.NeuralNetworks,1994,7:1~12GoldbergDE.GeneticalgorithmsinSearchOptimizationandMachine:Addison-Wesley,1989RudolphGunter.ConvergenceanalysisofcanonicalgeneticTransactionsonNeuralNetworks,1994,5(1);102~119FangJ,XiY.Towarddesignbasedonevolutionary.,1997,11(2):155~161ParkYR,etal.PredictionsunspotsusinglayeredperceptionneuralNeuralNetorks,1996,7(2):501~505杨行峻、郑君里.人工神经网络与盲信号处理[M].北京:清华出版社,2003,23~40周成虎、骆剑成等.遥感影像地学理解与分析[M].北京:科学出版社,2001,228~238王耀男.卫星遥感图像的神经网络自动识别[J].湖南大学学报,1998,61~66江东,王建华.人工神经网络在遥感中的应用与发展.国土与资源遥感,1999,13~18。
谷歌人工智能写作项目:小发猫
从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类rbsci。
目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(BackPropagation)神经网络,这是一种应用较广泛的前馈式网络,属于有监督分类算法,它将先验知识融于网络学习之中,加以最大限度地利用,适应性好,在类别数少的情况下能够得到相当高的精度,但是其网络的学习主要采用误差修正算法,识别对象种类多时,随着网络规模的扩大,需要的计算过程较长,收敛缓慢而不稳定,且识别精度难以达到要求。
(2)Hopfield神经网络。属于反馈式网络。主要采用Hebb规则进行学习,一般情况下计算的收敛速度较快。
这种网络是美国物理学家J.J.Hopfield于1982年首先提出的,它主要用于模拟生物神经网络的记忆机理。
Hopfield神经网络状态的演变过程是一个非线性动力学系统,可以用一组非线性差分方程来描述。
系统的稳定性可用所谓的“能量函数”进行分析,在满足一定条件下,某种“能量函数”的能量在网络运行过程中不断地减少,最后趋于稳定的平衡状态。
Hopfield网络的演变过程是一种计算联想记忆或求解优化问题的过程。(3)Kohonen网络。
这是一种由芬兰赫尔辛基大学神经网络专家Kohonen(1981)提出的自组织神经网络,其采用了无导师信息的学习算法,这种学习算法仅根据输入数据的属性而调整权值,进而完成向环境学习、自动分类和聚类等任务。
其最大的优点是最终的各个相邻聚类之间是有相似关系的,即使识别时把样本映射到了一个错误的节点,它也倾向于被识别成同一个因素或者一个相近的因素,这就十分接近人的识别特性。
。
人工神经网络(ArtificialNeuralNetworks)(简称ANN)系统从20世纪40年代末诞生至今仅短短半个多世纪,但由于他具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。
尤其是基于误差反向传播(ErrorBackPropagation)算法的多层前馈网络(Multiple-LayerFeedforwardNetwork)(简称BP网络),可以以任意精度逼近任意的连续函数,所以广泛应用于非线性建模、函数逼近、模式分类等方面。
目标识别是模式识别领域的一项传统的课题,这是因为目标识别不是一个孤立的问题,而是模式识别领域中大多数课题都会遇到的基本问题,并且在不同的课题中,由于具体的条件不同,解决的方法也不尽相同,因而目标识别的研究仍具有理论和实践意义。
这里讨论的是将要识别的目标物体用成像头(红外或可见光等)摄入后形成的图像信号序列送入计算机,用神经网络识别图像的问题。
一、BP神经网络BP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。一个典型的BP网络采用的是梯度下降算法,也就是Widrow-Hoff算法所规定的。
backpropagation就是指的为非线性多层网络计算梯度的方法。一个典型的BP网络结构如图所示。我们将它用向量图表示如下图所示。
其中:对于第k个模式对,输出层单元的j的加权输入为该单元的实际输出为而隐含层单元i的加权输入为该单元的实际输出为函数f为可微分递减函数其算法描述如下:(1)初始化网络及学习参数,如设置网络初始权矩阵、学习因子等。
(2)提供训练模式,训练网络,直到满足学习要求。(3)前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行(4);否则,返回(2)。
(4)后向传播过程:a.计算同一层单元的误差;b.修正权值和阈值;c.返回(2)二、BP网络隐层个数的选择对于含有一个隐层的三层BP网络可以实现输入到输出的任何非线性映射。
增加网络隐层数可以降低误差,提高精度,但同时也使网络复杂化,增加网络的训练时间。误差精度的提高也可以通过增加隐层结点数来实现。一般情况下,应优先考虑增加隐含层的结点数。
三、隐含层神经元个数的选择当用神经网络实现网络映射时,隐含层神经元个数直接影响着神经网络的学习能力和归纳能力。
隐含层神经元数目较少时,网络每次学习的时间较短,但有可能因为学习不足导致网络无法记住全部学习内容;隐含层神经元数目较大时,学习能力增强,网络每次学习的时间较长,网络的存储容量随之变大,导致网络对未知输入的归纳能力下降,因为对隐含层神经元个数的选择尚无理论上的指导,一般凭经验确定。
四、神经网络图像识别系统人工神经网络方法实现模式识别,可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,允许样品有较大的缺损、畸变,神经网络方法的缺点是其模型在不断丰富完善中,目前能识别的模式类还不够多,神经网络方法允许样品有较大的缺损和畸变,其运行速度快,自适应性能好,具有较高的分辨率。
神经网络的图像识别系统是神经网络模式识别系统的一种,原理是一致的。一般神经网络图像识别系统由预处理,特征提取和神经网络分类器组成。预处理就是将原始数据中的无用信息删除,平滑,二值化和进行幅度归一化等。
神经网络图像识别系统中的特征提取部分不一定存在,这样就分为两大类:①有特征提取部分的:这一类系统实际上是传统方法与神经网络方法技术的结合,这种方法可以充分利用人的经验来获取模式特征以及神经网络分类能力来识别目标图像。
特征提取必须能反应整个图像的特征。但它的抗干扰能力不如第2类。
②无特征提取部分的:省去特征抽取,整副图像直接作为神经网络的输入,这种方式下,系统的神经网络结构的复杂度大大增加了,输入模式维数的增加导致了网络规模的庞大。
此外,神经网络结构需要完全自己消除模式变形的影响。但是网络的抗干扰性能好,识别率高。当BP网用于分类时,首先要选择各类的样本进行训练,每类样本的个数要近似相等。
其原因在于一方面防止训练后网络对样本多的类别响应过于敏感,而对样本数少的类别不敏感。另一方面可以大幅度提高训练速度,避免网络陷入局部最小点。
由于BP网络不具有不变识别的能力,所以要使网络对模式的平移、旋转、伸缩具有不变性,要尽可能选择各种可能情况的样本。
例如要选择不同姿态、不同方位、不同角度、不同背景等有代表性的样本,这样可以保证网络有较高的识别率。
构造神经网络分类器首先要选择适当的网络结构:神经网络分类器的输入就是图像的特征向量;神经网络分类器的输出节点应该是类别数。隐层数要选好,每层神经元数要合适,目前有很多采用一层隐层的网络结构。
然后要选择适当的学习算法,这样才会有很好的识别效果。
在学习阶段应该用大量的样本进行训练学习,通过样本的大量学习对神经网络的各层网络的连接权值进行修正,使其对样本有正确的识别结果,这就像人记数字一样,网络中的神经元就像是人脑细胞,权值的改变就像是人脑细胞的相互作用的改变,神经网络在样本学习中就像人记数字一样,学习样本时的网络权值调整就相当于人记住各个数字的形象,网络权值就是网络记住的内容,网络学习阶段就像人由不认识数字到认识数字反复学习过程是一样的。
神经网络是按整个特征向量的整体来记忆图像的,只要大多数特征符合曾学习过的样本就可识别为同一类别,所以当样本存在较大噪声时神经网络分类器仍可正确识别。
在图像识别阶段,只要将图像的点阵向量作为神经网络分类器的输入,经过网络的计算,分类器的输出就是识别结果。五、仿真实验1、实验对象本实验用MATLAB完成了对神经网络的训练和图像识别模拟。
从实验数据库中选择0~9这十个数字的BMP格式的目标图像。图像大小为16×8像素,每个目标图像分别加10%、20%、30%、40%、50%大小的随机噪声,共产生60个图像样本。
将样本分为两个部分,一部分用于训练,另一部分用于测试。实验中用于训练的样本为40个,用于测试的样本为20个。随机噪声调用函数randn(m,n)产生。
2、网络结构本试验采用三层的BP网络,输入层神经元个数等于样本图像的象素个数16×8个。隐含层选24个神经元,这是在试验中试出的较理想的隐层结点数。
输出层神经元个数就是要识别的模式数目,此例中有10个模式,所以输出层神经元选择10个,10个神经元与10个模式一一对应。
3、基于MATLAB语言的网络训练与仿真建立并初始化网络% ================S1 = 24;% 隐层神经元数目S1 选为24[R,Q] = size(numdata);[S2,Q] = size(targets);F = numdata;P=double(F);net = newff(minmax(P),[S1 S2],{'logsig''logsig'},'traingda','learngdm')这里numdata为训练样本矩阵,大小为128×40,targets为对应的目标输出矩阵,大小为10×40。
newff(PR,[S1S2…SN],{TF1TF2…TFN},BTF,BLF,PF)为MATLAB函数库中建立一个N层前向BP网络的函数,函数的自变量PR表示网络输入矢量取值范围的矩阵[Pminmax];S1~SN为各层神经元的个数;TF1~TFN用于指定各层神经元的传递函数;BTF用于指定网络的训练函数;BLF用于指定权值和阀值的学习函数;PF用于指定网络的性能函数,缺省值为‘mse’。
设置训练参数net.performFcn = 'sse'; %平方和误差性能函数 = 0.1; %平方和误差目标 = 20; %进程显示频率net.trainParam.epochs = 5000;%最大训练步数 = 0.95; %动量常数网络训练net=init(net);%初始化网络[net,tr] = train(net,P,T);%网络训练对训练好的网络进行仿真D=sim(net,P);A = sim(net,B);B为测试样本向量集,128×20的点阵。
D为网络对训练样本的识别结果,A为测试样本的网络识别结果。实验结果表明:网络对训练样本和对测试样本的识别率均为100%。如图为64579五个数字添加50%随机噪声后网络的识别结果。
六、总结从上述的试验中已经可以看出,采用神经网络识别是切实可行的,给出的例子只是简单的数字识别实验,要想在网络模式下识别复杂的目标图像则需要降低网络规模,增加识别能力,原理是一样的。
你要看你的图像是什么。如果是彩色数字,先转成灰度。用MNIST训练网络。如果是各种主题,用彩色的imageNET训练。如果你的数据量大到足以与数据集媲美,那么直接用你的数据训练网络即可。
在流行的数据集上训练完,你需要固定卷积池化层,只训练后面的全连接层参数,用你自己的数据集。CNN一是调整网络结构,几层卷积几层池化,卷积的模板大小等。
而是在确定结构上调整参数,weightscale,learningrate,reg等。
你用CNN做图像分类,无非是把CNN当成学习特征的手段,你可以吧网络看成两部分,前面的卷积层学习图像基本-中等-高层特征,后面的全连接层对应普通的神经网络做分类。
需要学习的话,首先你去看UFLDL教程。然后cs231n与其问别人,首先你看了imageNet数据集了吗?对于把流行数据集与自己数据混合训练模型的方法。如果两种数据十分相似,也未尝不可。
但是对于流行数据集而言,自己的标注数据量一般不会太大,如果是1:1000,1:100这种比例,那么可能不加自己的数据,完全用数据集训练的模型就能得到一个还好的结果。
如果自己的数据和数据集有些差别,那混在一起我认为自己的是在用自己的数据当做噪声加到数据集中。
cnn认为图像是局部相关的,而欺骗CNN的方法则主要出于,自然图像分布在一种流形结构中,训练的模型需要这种流形假设,而人工合成的图像由于添加非自然噪点,不满足模型假设,所以能用肉眼难分辨的噪声严重干扰分类结果。
如果二者相差过大,数据集是一种分布,你的数据是另一种,放到一起训练,我没试过,但我认为结果不会太好。这时候只能把数据集用来训练cnn的特征提取能力。而后用于分类的全连接层,视你的数据量调整规模。
人工智能是当下很火热的话题,其与大数据的完美结合应用于多个场景,极大的方便了人类的生活。而人工智能又包含深度学习和机器学习两方面的内容。深度学习又以计算机视觉和自然语言处理两个方向发展的最好,最火热。
大家对于自然语言处理的接触可能不是很多,但是说起计算机视觉,一定能够马上明白,因为我们每天接触的刷脸支付等手段就会和计算机视觉挂钩。可以说计算机视觉的应用最为广泛。
计算机视觉的定义是:基于感知对象做出对客观对象和场景有用的决策。目前发展较为主流的几个方面分别是:图像分类、对象检测、目标跟踪、语义分割和实例分割。
具体到实际应用上有人脸识别、图像检索、监控监测、生物识别以及汽车的自动驾驶等。图像分类,就是对给定的测试对象类别进行预测,比如在一堆猫和狗的图片中区分出狗。
目前用于图像分类的算法较为流行的框架是卷积神经网络,该算法在GPU上有良好的表现,通常在一周内就能完成训练。对象检测,就是在给定图片中把要检测的内容框选并标注出。
若将卷积神经网络用在对象检测上,需要很大的计算量,因此,常用的算法是基于区域的卷积神经网络,将图片分为很多个区域,并在这些区域中使用卷积神经网络的算法。
目标跟踪,就是在某种场景下跟踪特定对象的过程,在无人驾驶领域中有很重要的应用。目前较为流行的目标跟踪算法是基于堆叠自动编码器的DLT。语义分割,则是将图像分为像素组,再进行标记和分类。
目前的主流算法都使用完全卷积网络的框架。实例分割,是指将不同类型的实例分类,比如用4种不同颜色来标记4只猫。目前用于实例分割的主流算法是MaskR-CNN。
1.基于阈值的分割方法灰度阈值分割法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。
阈值分割方法实际上是输入图像f到输出图像g的变化其中,T为阈值;对于物体的图像元素,g(i,j)=1,对于背景的图像元素,g(i,j)=0。
由此可见,阈值分割算法的关键是确定阈值,如果能确定一个适合的阈值就可准确地将图像分割开来。阈值确定后,阈值与像素点的灰度值比较和像素分割可对各像素并行地进行,分割的结果直接给出图像区域。
阈值分割的优点是计算简单、运算效率较高、速度快。在重视运算效率的应用场合(如用于软件实现),它得到了广泛应用。
2.基于区域的分割方法区域生长和分裂合并法是两种典型的串行区域技术,其分割过程后续步骤的处理要根据前面步骤的结果进行判断而确定。
(1)区域生长区域生长的基本思想是将具有相似性质的像素集合起来构成区域。
具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区域就长成了。
(2)区域分裂合并区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标提取。
分裂合并差不多是区域生长的逆过程:从整个图像出发,不断分裂得到各个子区域,然后再把前景区域合并,实现目标提取。
分裂合并的假设是对于一幅图像,前景区域是由一些相互连通的像素组成的,因此,如果把一幅图像分裂到像素级,那么就可以判定该像素是否为前景像素。
当所有像素点或者子区域完成判断以后,把前景区域或者像素合并就可得到前景目标。
3.基于边缘的分割方法基于边缘的分割方法是指通过边缘检测,即检测灰度级或者结构具有突变的地方,确定一个区域的终结,即另一个区域开始的地方。
不同的图像灰度不同,边界处一般有明显的边缘,利用此特征可以分割图像。4.基于特定理论的分割方法图像分割至今尚无通用的自身理论。
随着各学科新理论和新方法的提出,出现了与一些特定理论、方法相结合的图像分割方法,主要有:基于聚类分析的图像分割方法、基于模糊集理论的分割方法等。
5.基于基因编码的分割方法基于基因编码的分割方法是指把图像背景和目标像素用不同的基因编码表示,通过区域性的划分,把图像背景和目标分离出来的方法。
该方法具有处理速度快的优点,但算法实现起来比较难。
6.基于小波变换的分割方法小波变换是近年来得到广泛应用的数学工具,它在时域和频域都具有良好的局部化性质,并且小波变换具有多尺度特性,能够在不同尺度上对信号进行分析,因此在图像处理和分析等许多方面得到应用。
基于小波变换的阈值图像分割方法的基本思想是首先由二进小波变换将图像的直方图分解为不同层次的小波系数,然后依据给定的分割准则和小波系数选择阈值门限,最后利用阈值标出图像分割的区域。
整个分割过程是从粗到细,由尺度变化来控制,即起始分割由粗略的L2(R)子空间上投影的直方图来实现,如果分割不理想,则利用直方图在精细的子空间上的小波系数逐步细化图像分割。
分割算法的计算会与图像尺寸大小呈线性变化。7.基于神经网络的分割方法近年来,人工神经网络识别技术已经引起了广泛的关注,并应用于图像分割。
基于神经网络的分割方法的基本思想是通过训练多层感知机来得到线性决策函数,然后用决策函数对像素进行分类来达到分割的目的。这种方法需要大量的训练数据。
神经网络存在巨量的连接,容易引入空间信息,能较好地解决图像中的噪声和不均匀问题。选择何种网络结构是这种方法要解决的主要问题。
。
我简单说一下,举个例子,比如说我们现在搭建一个识别苹果和橘子的网络模型:我们现在得需要两组数据,一组表示特征值,就是网络的输入(p),另一组是导师信号,告诉网络是橘子还是苹果(网络输出t):我们的样本这样子假设(就是):pt10312142这两组数据是这样子解释的:我们假设通过3个特征来识别一个水果是橘子还是苹果:形状,颜色,味道,第一组形状、颜色、味道分别为:103(当然这些数都是我随便乱编的,这个可以根据实际情况自己定义),有如上特征的水果就是苹果(t为1),而形状、颜色、味道为:214的表示这是一个橘子(t为2)。
好了,我们的网络模型差不多出来了,输入层节点数为3个(形状、颜色,味道),输出层节点为一个(1为苹果2为橘子),隐藏层我们设为一层,节点数先不管,因为这是一个经验值,还有另外的一些参数值可以在matlab里设定,比如训练函数,训练次数之类,我们现在开始训练网络了,首先要初始化权值,输入第一组输入:103,网络会输出一个值,我们假设为4,那么根据导师信号(正确的导师信号为1,表示这是一个苹果)计算误差4-1=3,误差传给bp神经网络,神经网络根据误差调整权值,然后进入第二轮循环,那么我们再次输入一组数据:204(当仍然你可以还输入103,而且如果你一直输入苹果的特征,这样子会让网络只识别苹果而不会识别橘子了,这回明白你的问题所在了吧),同理输出一个值,再次反馈给网络,这就是神经网络训练的基本流程,当然这两组数据肯定不够了,如果数据足够多,我们会让神经网络的权值调整到一个非常理想的状态,是什么状态呢,就是网络再次输出后误差很小,而且小于我们要求的那个误差值。
接下来就要进行仿真预测了t_1=sim(net,p),net就是你建立的那个网络,p是输入数据,由于网络的权值已经确定了,我们这时候就不需要知道t的值了,也就是说不需要知道他是苹果还是橘子了,而t_1就是网络预测的数据,它可能是1或者是2,也有可能是1.3,2.2之类的数(绝大部分都是这种数),那么你就看这个数十接近1还是2了,如果是1.5,我们就认为他是苹果和橘子的杂交,呵呵,开玩笑的,遇到x=2.5,我一般都是舍弃的,表示未知。
总之就是你需要找本资料系统的看下,鉴于我也是做图像处理的,我给你个关键的提醒,用神经网络做图像处理的话必须有好的样本空间,就是你的数据库必须是标准的。
至于网络的机理,训练的方法什么的,找及个例子用matlab仿真下,看看效果,自己琢磨去吧,这里面主要是你隐含层的设置,训练函数选择及其收敛速度以及误差精度就是神经网络的真谛了,想在这么小的空间给你介绍清楚是不可能的,关键是样本,提取的图像特征必须带有相关性,这样设置的各个阈值才有效。
OK,好好学习吧,资料去matlab中文论坛上找,在不行就去baudu文库上,你又不需要都用到,何必看一本书呢!祝你顺利毕业!