展会信息港展会大全

基于遗传神经网络的图像分割模型
来源:互联网   发布日期:2011-12-16 20:30:55   浏览:19475次  

导读:1.案例描述 遗传神经网络在特征分类方面,有着非常广泛的应用。通过先期的学习,能够通过分类得到特定的对象和特征。将其用在图像分割上面,主要对特定类型的一类图像进行分割。如,在一副含有苹果和草莓的图像当中,分割出苹果或者草莓;在一副含有人的图...

1.案例描述

遗传神经网络在特征分类方面,有着非常广泛的应用。通过先期的学习,能够通过分类得到特定的对象和特征。将其用在图像分割上面,主要对特定类型的一类图像进行分割。如,在一副含有苹果和草莓的图像当中,分割出苹果或者草莓;在一副含有人的图像中,分割出肤色区域。在本例中,主要将其用在医学图像的分割上。

在分割之前要做好两项工作:一是提取前景和背景的特征值;二是用提取好的特征值进行遗传神经网络训练。

(1) 提取特征值  主要通过手工对图像进行分析,确定前景色的范围和背景色的范围,然后把前景色和背景色按顺序存入一个数组中,生成的这个数组就为训练样本数组。然后再建立一个同样大小的数组,来保存样本的特征值。如果为前景则特征值为1,背景色特征值为0。

(2) 遗传神经网络训练  将上一步提取好的样本值和特征值送入遗传神经网络进行训练。遗传神经网络首先在权值、阈值的值空间中,搜索出一组最合适的权值和阈值,将此设置为神经网络的初始权值、阈值。然后再进行训练,直到均方误差收敛到指定值,或者达到最大迭代次数。此时的神经网络是最优的。

(3) 图像分割  可以将图像分割看成一个分类的过程。图像(G)中的每一个像素(Gij)是一个待分类的样本,将这个样本送入遗传神经网络(sim)进行分类,将输出一个特征值Vi,这个特征值决定该样本属于其中一类的概率。可以决定,如果该值大于0.5,那么认为它是前景(F),否则它就是背景(B)。

 

 式中  H    分割后的图像。

2.代码实现

function retstr = gabpdemo()

NNTWARN OFF

retstr=-1;

%

%用于产生样本文件

generatesample('datasample.mat'); 

%

%遗传神经网络训练示例

gaP = [100 0.00001];

bpP = [500 0.00001];

load('datasample.mat');

gabptrain( gaP,bpP,p,t )

%

%神经网络分割示例

load('datanet.mat');

img = imread('imagea.bmp');

bw = segment( net,img ) ;

figure;

subplot(2,1,1);

imshow(img);

subplot(2,1,2);

imshow(bw);

%

%传统BP训练

%出现的结果,可能收敛不到目标值,或者收敛步数太长(356步)

epochs = 2000;

goal = 0.00001 ;

net = newcf([0 255],[6 1],{'tansig' 'purelin'});

net.trainParam.epochs = epochs;

net.trainParam.goal = goal ;

load('datasample.mat');

net = train(net,p,t);

%

%遗传BP训练

%遗传算法寻找最优权值、阈值会用一些时间

%bp的训练还是非常快,38步就收敛到的目标值

gaP = [100 0.00001];

bpP = [500 0.00001];

gabptrain( gaP,bpP,p,t );

3.程序运行

程序在MATLAB7.0下运行,同时要求将遗传算法工具箱加入到MATLAB的搜索路径中,在MATLAB命令窗口中直接运行gabpdemo.m文件即可。主要界面分别如下图所示。

传统BP神经网络训练过程误差

 

遗传算法适应值计算

结合遗传算法的神经网络训练过程误差

 图像分割结果 

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港