2 Star 6 Fork 0

Halley / 模式识别

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

模式识别导论

  • 模式识别:用计算机实现对象(objects)的分类和识别。可以是图像、声音、或者其他任何需要分类的测量数据(如遥感图像、激光测高数据、地质勘探数据、甚至是经济社会领域中的各种数据)
  • 模式:在模式识别中,这些待分类的对象统称为模式

模式识别系统

  • 信息的获取:是通过传感器,将光或声音等信息转化为电信息。信息可以是二维的图象如文字,图象等;可以是一维的波形如声波,心电图,脑电图;也可以是物理量与逻辑值。
  • 预处理:包括A\D,二值化,图象的平滑,变换,增强,恢复,滤波等, 主要指图象处理。
  • 特征抽取和选择:在模式识别中,需要进行特征的抽取和选择,例如,在高光谱遥感中,可以有几百个甚至上千个波段,也就是对一个像素多对应的地块进行了几百个甚至上千个波段的光谱测量,从中选择对分类识别有效的波段。这就是特征提取和选择的过程。
  • 分类器设计:分类器设计的主要功能是通过训练确定判决规则,使按此类判决规则分类时,错误率最低。把这些判决规则建成标准库。
  • 分类决策:特征空间中对被识别对象进行分类。

基于混淆矩阵的分类精度

  • 总体精度Overall accuracy
  • 漏检率Omission error (type 1),虚警率commission error (type 2)
  • 生产者精度Producer’s error
  • 用户精度User’s error
  • 其他一些统计量如Kappa coefficient, etc

Bayes分类器理论学习

如果模式表现为具有确定性(deterministic)特征,在特征空间(feature space)中各类互不重叠,那么可以用线性判别函数(linear decision function,广义线性),但事实上并不完全是这样,许多(特征)观测结果具有不确定性(uncertainty),这时用概率法则。

贝叶斯公式

$$ \begin{equation} p\left(Y_i|X\right)=\frac{p(X|Y_i)\cdot p(Y_i)}{\sum\limits_{j=0}^n p(X|Y_j)\cdot p(Y_j)} \end{equation} $$

在公式中,$X$表示结果,$Y_i$表示造成结果$X$可能的原因。贝叶斯公式的作用在于,由先验概率计算后验概率,即当结果$X$发生时,计算原因是$Y_i$的概率。

贝叶斯分类器

试图利用贝叶斯函公式设计一个判别函数,通过判别函数值的大小来判断待分类的对象最有可能属于哪一个类别,并且需要证明这样分类的错误率最小。

以两个类别为例,假设当前有类别$\omega_1$,$\omega_2$,需要对$X$进行分类。假设我们按照一个判别函数$g(X)$将所有的未分类对象分为两个区域$R_1$和$R_2$,理想的分类结果这个区域划分非常完美,以至于$R_1$区域中的对象全部属于$\omega_1$、$R_2$区域中的对象全部属于$\omega_2$。但是这样的情况一般难以达到,此时我们可以定义犯错误的概率为:

$$ \begin{equation} \begin{split} P_e&=P(X\in R_1,\omega_2)+P(X\in R_2,\omega_1)\\ &=P(\omega_2|X\in R_1)\cdot P(X\in R_1)+P(\omega_1|X\in R_2)\cdot P(X\in R_2)\\ &=\int_{R_1}P(\omega_2|x)\cdot P(x)\mathrm{d}x+\int_{R_2}P(\omega_1|x)\cdot P(x)\mathrm{d}x\\ &=\int_{R_1}P(\omega_2|x)\cdot P(x)\mathrm{d}x+\left[P(\omega_1)-\int_{R_1}P(\omega_1|x)\cdot P(x)\mathrm{d}x\right]\\ &=P(\omega_1)-\int_{R_1}\left[P(\omega_1|x)-P(\omega_2|x)\right]P(x)\mathrm{d}x \end{split} \end{equation} $$

要想$P_e$最小,则我们要求区域$R_1$是由满足以下式子的对象组成的区域:

$$ \begin{equation} P(\omega_1|x)-P(\omega_2|x)>0 \end{equation} $$

则我们可以设计判别函数:

$$ \begin{equation} g_i(x)=P(\omega_i|x) \end{equation} $$

根据判别函数的大小决定X属于哪个类别。这是一种决策规则,同时还可以得到常用的几个决策规则:

$$ \begin{equation} \begin{split} P(\omega_1|x)-P(\omega_2|x)>0\\ P(x|\omega_1)P(\omega_1)-P(x|\omega_2)P(\omega_2)>0\\ \frac{P(x|\omega_1)}{P(x|\omega_2)}-\frac{P(\omega_2)}{P(\omega_1)}>0\\ \ln\frac{P(x|\omega_1)}{P(x|\omega_2)}-\ln\frac{P(\omega_2)}{P(\omega_1)}>0 \end{split} \end{equation} $$

马氏距离分类器

使用上述决策规则中的第四个(取对数方法),则第$i$类的判别函数为:

$$ \begin{equation} g_i(x)=\ln\left[P(x|\omega_i)P(\omega_i)\right] \end{equation} $$

需要知道每个类别的先验概率$P(\omega_i)$以及每一类别的概率密度函数$P(x|\omega_i)$。

  • 先验概率通过事先做统计调查、或者根据已有知识假定等方法确定,相对容易
  • 类概率密度函数的确定,分为事先知道概率密度的分布形式,如正态分布(参数估计,parameter estimation)和事先不知道概率密度的分布形式(非参数估计,nonparameter estimation)两种情况。

假设每一类别服从正态分布,

$$ \begin{equation} \begin{split} P(x|\omega_i)&=\frac{1}{(2\pi)^{n/2}|\sum|^{1/2}}\exp{\left[-\frac{1}{2}(x-\mu)^T{\sum}^{-1}(x-\mu)\right]}\\ x&=(x_1,x_2,...,x_n)^T\text{,类别}\omega_i \text{对应的n维特征向量}\\ \mu&=(\mu_1,\mu_2,...,\mu_n)^T\text{,类别}\omega_i \text{对应的n维均值向量}\\ \sum &为类别\omega_i 对应的n*n维协方差矩阵,{\sum}^{-1}为\sum 的逆矩阵,|\sum| 为\sum 的行列式 \end{split} \end{equation} $$

则可以得到多元正态分布假设下的贝叶斯判别函数:

$$ \begin{equation} \begin{split} g_i(x)&=\ln\left[P(x|\omega_i)P(\omega_i)\right]\\ &=-\frac{1}{2}(x-\mu)^T{\sum}^{-1}(x-\mu)-\frac{n}{2}\ln{2\pi}-\frac{1}{2}\ln{|\sum|}+\ln{P(\omega_i)} \end{split} \end{equation} $$

假设每个类别具有相同的先验概率和协方差矩阵。则判别规则可以简化为:

$$ \begin{equation} r^2=(x-\mu)^T{\sum}^{-1}(x-\mu) \end{equation} $$

这就是马氏距离,马氏距离最小即后验概率最大。

聚类分析理论学习

聚类完全按照样本之间的相似性进行。相似性的度量需要一定的准则。不同的准则结果有很大的差别。因此聚类有一定的主观性。

聚类过程如下:

  • 特征的选择
  • 相似性度量
  • 聚类准则
  • 聚类算法
  • 聚类评价
  • 聚类结果的解译

常用的相似性测度

  • 明氏(Minkowaski)距离 $$ \begin{equation} \left[\sum_{k=1}^n\left|\left(x_{i k}-x_{j k}\right)\right|^p\right]^{1 / p} \end{equation} $$

  • 马氏(Mahalanobis)距离 $$ \begin{equation} d^2=(x-\mu)^T {\sum}^{-1} (x-\mu) \end{equation} $$

  • 向量夹角余弦 $$ \begin{equation} S(x_j,x_j)=\frac{x_j^T x_j}{||x_j|| ||x_j||} \end{equation} $$

  • Tanimoto 测度 $$ \begin{equation} S(x_j,y_j)=\frac{x_i^T y_j}{x_i^T x_i+y_i^T y_i-x_i^T y_j} \end{equation} $$

聚类准则

  • 误差平方和准则(the sum-of-squared-error criterion)

    $$ \begin{equation} J_e=\sum_{i=1}^{M}\sum_{x\in \omega_i}{\Vert x-\mu_i \Vert}^2 \end{equation} $$

    当J最小时,认为聚类合理。在各类样本密集,类别间分离明显时,最宜采用这一准则。但是当两类的样本数量相差很大时,可能出现不合理情况。

  • 与最小方差及散布矩阵相关的准则

    $$ \begin{equation} J_e=\sum_{i=1}^{M}N_i S_i \end{equation} $$

    其中,$N_i$是$\omega_i$类的样本数,$S_i$是相似性系数:

    $$ \begin{equation} S_i=\frac{1}{N_i^2}\sum_{x\in \omega_i}\sum_{x'\in \omega_i}{\Vert x-x' \Vert}^2 \end{equation} $$

    它是$\omega_i$类中所有点间距离平方的均值,相似性算子$S_i$也可以由其它形式取代,如夹角余弦算子。这一准则也是以$J_e$最小作为判断聚类合理的依据。

聚类算法

在算力允许的情况下,最合理的算法应该是对于不同的阈值,各种可能的分类结果,都要计算$J_e$值,以求达到最优。这样做需要大量计算,实际上是不可能的。一般采取一些被认为是可以达到最优结果的聚类算法。

  • Kmeans算法

    基于误差平方和准则,首先确定若干初始聚类中心,然后依一定算法改变或调整这些中心,使它们逐步趋于合理。

    结果受初始聚类中心选择的影响,尤其对于小样本数据集可以通过选择不同的聚类中心,部分克服此问题。

  • Fuzzy Kmeans算法

    目标函数: $$ \begin{equation} J_e=\sum_{i=1}^{c}\sum_{j=1}^{n} u_{ij}^{m} d_{ij}^{2} \end{equation} $$

    约束条件: $$ \begin{equation} \sum_{i=1}^{c}u_{ij}=1 \end{equation} $$

    构造拉格朗日函数 $$ \begin{equation} J_e(U,c_1,...,c_c,\lambda_i,...,\lambda_n)=\sum_{i=1}^{c}\sum_{j=1}^{n} (u_{ij})^{m} d_{ij}^{2}+\sum_{j=1}^{n}\lambda_i\left(\sum_{i=1}^{c}u_{ij}-1\right) \end{equation} $$

    式子中,$d_{ij}$为聚类中心$c_i$到样本$x_j$之间的距离。

    对$c_i$求导得到

    $$ \begin{equation} \frac{\partial J}{\partial c_i}=\sum_{j=1}^{n}\left(-u_{ij}^m\cdot 2\cdot (x_j-c_i)\right)=0 \end{equation} $$

    即: $$ \begin{equation} \sum_{j=1}^{n}u_{ij}^m c_i=\sum_{j=1}^{n}x_j u_{ij}^m \end{equation} $$

    得到:

    $$ \begin{equation} c_i=\frac{\sum_{j=1}^{n} u_{ij}^{m}x_j}{\sum_{j=1}^{n} u_{ij}^{m}} \end{equation} $$

  • ISODATA算法

人工神经网络理论学习

TM影像下载与处理

1. 下载TM遥感影像

地理空间数据云(网站链接在文末)

网站中进入高级检索,选择数据集和区域,进行检索。

选择下载影像,页面地图上可以显示选择的影像的区域。

修正:数据集选择 Landsat4-5 TM 卫星数字产品

下载TM遥感影像,解压后的完整文件目录如下所示。

2. 图像预处理

TM影像包含7个波段(具体介绍见文末链接)。实习要求使用1,2,3,4,5,7这六个波段,需要将这六个波段输出为一个.tif文件。在ENVI软件中完成。首先在ENVI中以正确的格式打开下载的遥感影像数据。

软件会自动筛选*_mtl.txt文件,选择影像文件夹中对应的文件。

在弹出的页面选择要进行假彩色增强的三个波段,选择7,4,3三个波段作为RGB数据来源,按照这个规则合成的影像色调接近自然彩色,便于选择训练样本。选择完成点击加载。

加载后的图像如下所示。

将实习中的要求的六个波段导出为一个tif文件。

选择要导出的输入文件,这里ENVI自动将1,2,3,4,5,7波段划分为一个集合(可能是第6个波段有什么特殊之处),所以直接选择以MultiSpectral结尾的集合。直接下载的图像太大,可以通过空间裁剪进行剪切。(1024*1024)

在弹出的窗口中选择输出格式为TIFF,输出文件名要写完整,写自己想要输出的路径及文件名。

输出的文件如下所示,这个文件含有六个波段,无法通过一般图片浏览器打开。

使用ENVI Classic工具(注意不是ENVI主程序,这是一个随ENVI一起安装的程序,使用搜索可以搜到)。

打开导出的tif文件。

在弹出的窗口选择要假彩色增强的波段(仅用于展示),选择6,4,3波段,对应之前的7,4,3波段。点击Load RGB

3. 选择训练样本

选择训练样本的操作见老师发的视频。

4. MATLAB读取ENVI导出的roi.txt文件

相关链接

空文件

简介

WHU模式识别课程作业 展开 收起
MATLAB 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/halleygitee/pattern-recognition.git
git@gitee.com:halleygitee/pattern-recognition.git
halleygitee
pattern-recognition
模式识别
master

搜索帮助