基于小波特征提取与概率神经网络(PNN)的图像分类系统
项目介绍
本项目是一款基于 MATLAB 环境开发的图像分类与识别系统。系统核心结合了二维离散小波变换(2-DWT)强大的多尺度特征提取能力与概率神经网络(PNN)在小样本下卓越的分类性能,专为处理具有明显纹理或结构特征的数字图像而设计。通过对图像在不同频域子带的系数进行深度统计分析,系统能够捕捉图像的本质属性,并实现极速、高精度的类别判别。
功能特性
- 自动化模拟数据合成:内置三类典型纹理图像生成逻辑(水平、垂直、网格),并引入随机噪声以模拟真实环境中的图像质量。
- 多尺度小波分析:采用 Daubechies 小波基对图像进行两层分解,逐级提取低频近似信息与多方向(水平、垂直、对角)的高频细节信息。
- 高维统计特征构建:针对每个子带自动计算均值、标准差、能量和近似熵,形成多维度的特征向量。
- 极速神经网络训练:利用 PNN 网络的并行处理特性,无需反向传播迭代即可完成模型参数配置,显著优于传统 BP 神经网络。
- 多维度性能评估:除了准确率统计,系统还提供 PCA 降维可视化、混淆矩阵分析及预测值对比,实现分类结果的全方位量化。
运行环境
- 平台要求:MATLAB 2018b 或更高版本。
- 必备工具箱:
* Wavelet Toolbox(小波工具箱)
* Deep Learning Toolbox / Neural Network Toolbox(深度学习/神经网络工具箱)
* Statistics and Machine Learning Toolbox(统计与机器学习工具箱)
系统实现逻辑
- 数据准备阶段:生成水平、垂直、网格三类灰度纹理图像,每类包含 40 个样本,尺寸为 64x64,并在生成过程中加入随机噪声以测试算法鲁棒性。
- 小波特征提取:
* 使用 db4 小波基进行 2 层分解。
* 从分解结果中提取 7 个核心子带:a2(第二层低频)、h2/v2/d2(第二层细节)、h1/v1/d1(第一层细节)。
* 对每个子带计算 4 个统计特征,总计为每个图像提取 28 维特征。
- 数据预处理:
* 按照 70% 训练、30% 测试的比例随机划分数据集。
* 使用 mapminmax 函数将特征统一归一化到 [0, 1] 区间,消除量纲影响。
- PNN 模型构建:
* 采用 newpnn 函数建立概率神经网络。
* 设置扩展常数 Spread 为 0.15,确保高斯径向基函数能有效覆盖特征空间。
- 分类预测与分析:
* 对训练集和测试集分别进行仿真推理。
* 计算预测准确率,并绘制可视化图表。
关键技术解析
- 2D-DWT 多尺度分解:wavedec2 函数能够将图像能量集中在少数系数中,有效地将空间域图像转换为具备判别性的频域特征。
- 特征工程统计量:
* 均值:反映图像各子带的平均亮度。
* 标准差:衡量像素间的对比度和纹理强度。
* 能量:反映特征分布的均匀性。
* 近似熵:利用概率分布计算信息的混乱程度,反映纹理的复杂性。
- PNN 概率神经网络:本质上是一种基于径向基函数(RBF)的分类器,其理论基础是 Parzen 窗概率密度估计。它通过求和层对同类样本进行概率叠加,最终在决策层通过贝叶斯准则判定类别。其核心优势在于训练速度极快,且网络结构随训练样本自动扩展,不会陷入局部最优。
- PCA 降维可视化:利用主成分分析方法提取高维小波特征的前三个主分量,通过三维散点图直观展示特征对不同类别的区分能力。
使用方法
- 启动 MATLAB 软件,将工作目录切换至本项目路径。
- 在命令行窗口输入主程序的函数名直接运行。
- 系统将自动依次执行:图像生成、各子带特征提取、数据集划分、PNN 构建与预测。
- 运行结束后,屏幕将输出训练集和测试集的准确率,并弹出四个可视化窗口:
*
样本预览:展示生成的三种纹理原始形态。
*
PCA 降维分布:展示提取出的 28 维小波特征在三维空间的聚类情况。
*
测试集混淆矩阵:直观展示各类别的分类精度及易错项。
*
预测分类对比:通过散点图与真实标签的重合度直观评估模型效果。