您的位置: 首页 >> 人工智能

基于遗传神经网络的图像分割模型

2019.05.14 来源: 浏览:7次

基于遗传神经络的图像分割模型

1.案例描述

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

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

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

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

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

式中 H 分割后的图像。

2.代码实现

function retstr = gabpdemo()

NNTWARN OFF

retstr=-1;

%

%用于产生样本文件

generatesample(t);

%

%遗传神经络训练示例

gaP = [100 0.00001];

bpP = [500 0.00001];

load(t);

gabptrain( gaP,bpP,p,t )

%

%神经络分割示例

load(t);

img = imread(p);

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});

ochs = epochs;

al = goal ;

load(t);

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神经络训练过程误差

遗传算法适应值计算

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

图像分割结果

Tags:
友情链接