基于MATLAB的LLE算法的水下构建物污损处理

基于MATLAB的LLE算法的水下构建物污损处理
 本毕业设计研究不同污损的多流形学习问题,提出了一种基于局部线性嵌入(LLE)算法的多流形学习方法。对于分布在不同流形上的高维数据,该方法在降维的同时,首先对数据集进行非监督的聚类,然后分析每一类数据的低维流形的本质维数以及流形空间的构成,聚类及流形空间的确定是通过对LLE降维的结果进行分析而完成的。该方法能够对于不同的污损特征的子空间进行有效的分类,从而有效区分污损。
    为了提高基于流形学习理论水下构建物识别算法的识别率,采用一种非线性降维方法LLE与Fisher线性判别相结合的方法。首先将图片进行预处理,利用LLE算法,将水下构建物图像和本身图像的维度都降低到合适维度,然后使用Fisher线性判别进行图像数据集特征的提取,最后将两张经过处理的图像通过计算欧式距离进行比对从而成功的得到了分类识别的结果,完成了设计目标。   
关键词:局部线性嵌入,Fisher线性判别,水下构建物,降维,流形空间
  LLE算法是针对非线性数据的一种新的降维技术,并且能够使降维后的数据保持原有的拓扑结构它是一种有效的特征向量表示法,属于非线性降维算法的一种,它假设样本数据是在高维空间中呈现非线性分布,然后将其映射到低维空间中。许多高维数据都是非线性分布的。LLE的基本思想是将全局非线性转化为局部线性,而相互重叠的局部领域能够提供全局结构的信息。这样每个局部进行线性降维后,再按照某种规则将结果组合在一起,就能够得到低维的全局坐标表示。利用该算法降维后数据可以由全局非线性变为局部线性。同时可以做到使互相重叠的局部领域提供全局结构的信息,这样就保证即使对局部数据进行线性降维后,仍能按照某种规则将它们组合在一起,从而得到一个低维的全局坐标表示。LLE算法假设采样数据所在的低维流形[17]是局部线性的,即每个采样点都可以被它相邻的点线性表示出来,该假设可以用最终结果的有效性来进行验证。该算法的学习目标是保持低维空间中的每个领域中的权值不变,即嵌入映射在局部线性的前提下,可以最小化重构误差。
    局部线性嵌入(locally linear embedding)是一种通过局部线性关系的联合来揭示全局非线性结构的非线性降维方法。它是在保持数据的邻域关系下,计算高维输入数据在低维空间中的嵌入流形。Rowels[18]等将LLE应用到由特定人不同姿态和光照情况下的人脸图像构成的数据集上,学习其二维嵌入流形结构,并研究表明其结构具有明显的物理含义,如人脸的姿态的连续变化以及表情类型和程度的变化。Chang等人利用LLE对高维人脸表情图像进行降维,证明了人脸表情数据集在低维空间中具有流形的分布,相似的表情分布在相近的区域,基本的表情集合从中性表情向外延展成曲线。Chang等的工作对低维表情流形的学习具有重要意义,但存在以下问题: (1)只采用人脸58个特征点的坐标作为人脸特征,增加了预处理过程,同时由于摈弃了灰度信息,会丢失一些具有分辨能力的图像特征;(2)对每个人的图像数据单独进行降维,不能同时有效处理多人的数据。基本的LLE算法在连续的数据集上能够计算出较好的低维流形,但真实的数据集可能具有多个不连续的子集,且每个子集的低维流形亦不相同。那么直接采用LLE算法不能够准确有效地计算出每个数据集的低维流形空间
Matlab最有利作图像处理等操作的优势就在于它丰富的基本函数,由于Matlab是引入了矩阵概念,并且还有效的分别开数字运算和矩阵运算。使得它非常高效的可以被用户使用。
    在Matlab中LLE的算法仅仅就是利用Matlab中的基本函数去表达出来。在第4章中,LLE主要表达为三个步骤:
    第一步:是寻找周围的邻近点
     X2 = sum(X.^2,1);
    distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X;%计算欧式距离
    [sorted,index] = sort(distance);%根据距离分类
    neighborhood = index(2:(1+K),:);%选择邻近点
在上述代码中,先计算的是点与点之间的距离。再根据点与点之间的距离
    第二步:是根据第一步算出来的邻近值计算重建矩阵
if(K>D)
     fprintf(1,'   [note: K>D; regularization will be used]\n');
     tol=1e-3; % 调节有条件的约束,并筛选符合条件的点
     else
     tol=0;
end
      W = zeros(K,N);
for ii=1:N
    z = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); % 首先转变到基准点
   C = z'*z; % 计算局部协方差
    C = C + eye(K,K)*tol*trace(C);                   % 调节(K>D)
    W(:,ii) = C\ones(K,1);                           % 满足条件 Cw=1
    W(:,ii) = W(:,ii)/sum(W(:,ii));                  % 使得 sum(w)=1
end;
首先先限定一个取邻近点的范围,其次就是根据这些邻近点,以及一些Matlab中的基本函数去重建矩阵W,根据以前局部与局部之间的关系
    第三步,亦是最关键的一步,根据重建矩阵,取最小值,求特征向量
M = sparse(1:N,1:N,ones(1,N),N,N,4*K*N);
for ii=1:N
   w = W(:,ii);
   jj = neighborhood(:,ii);
   M(ii,jj) = M(ii,jj) - w';
   M(jj,ii) = M(jj,ii) - w;
   M(jj,jj) = M(jj,jj) + w*w';%根据重建矩阵M计算W
end;
% 计算嵌入
options.disp = 0; options.isreal = 1; options.issym = 1;
[Y,eigenvals] = eigs(M,d+1,0,options);
Y = Y(:,2:d+1)'*sqrt(N); % 最低的值 [1,1,1,1...] 等于 0
    实现局部线性条件下的非线性降维,并且重建得到新的特征向量。再带入Fisher算法好最终求欧式距离进行判断识别。
摘要..-I
ABSTRACT.-II
第1章 绪论.-1
    1.1 研究目的及其意义.-1
    1.2 研究背景和发展现状..-2
    1.3 流形算法的研究背景..-3
第2章 图像的处理.-5
    2.1 图像的预处理..-5
    2.2 图像处理的分类识别..-7
    2.3 本章小结-8
第3章 局部线性嵌入-9
    3.1 LLE的概述..-9
    3.2 LLE的具体原理.-10
    3.3 多种LLE比较.-13
    3.4 基于MATLAB的LLE算法..-15
    3.5 本章小结..-17
第4章 PCA与Fisher线性判别..-18
    4.1 PCA的基本原理-18
    4.2 基于PCA的降维-19
    4.3 PCA与LLE算法的比较.-20
    4.4 Fisher线形判别..-21
    4.5 本章小结..-22
第5章 水下构建物的图像处理算法及理解.-23
    5.1 水下图像识别概述及其选择.-23
    5.2 水下图像处理基于LLE的具体思路和算法.-23
    5.3 本章小结..-27
第6章 实验结果..-28
    6.1 结果和实验分析..-28
    6.2对于水下图像处理的问题分析及展望-30
第7章 总结与展望-32
参考文献-33
致谢.-35
附录.-36

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/2265.html

好棒文