东大学(威海)2022年机器学习项目——布匹缺陷检测
结果预览
- 测试环境:
- CPU:12th Gen Intel® Core™ i7-12700H 2.70 GHz
- GPU:NVIDIA RTX3070Ti
- RAM:32GB
- 软件:Matlab R2020a (Deep Learning Tools)
- 注:Data文件过大,未上传。

一、神经网络概述
1. 卷积神经网络概念
人工神经网络(Artificial Neural Networks, ANN)是一种模拟生物神经系统的结构和行为,进行分布式并行信息处理的算法数学模型。通过调整内部神经元之间的权重关系,ANN能够处理信息。卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,由若干卷积层和池化层组成,尤其在图像处理方面表现优异。
CNN的基本结构包括输入层、卷积层、池化层、全连接层和输出层。卷积层和池化层交替设置,卷积层通过局部连接和权值共享提取特征,池化层通过下采样减少特征图的空间大小。图像输入层用于指定图像大小,卷积层通过卷积核提取特征,批量归一化层加速训练,ReLU层引入非线性,最大池化层减少冗余信息,全连接层组合特征,softmax层归一化输出,分类层计算损失。
2. 卷积神经网络的特点
CNN由多层感知机(MLP)演变而来,具有局部区域连接、权值共享和降采样的特点。权值共享和局部连接降低了网络复杂度,减少了权值数目,使CNN在图像处理领域表现优异。

二、图像数据预处理
2.1 处理步骤
- 裁剪图像并保存:去除边缘模糊和噪声。
- 加载数据集:使用
imageDatastore函数读取图像数据。 - 显示类别数量:统计每类图像数量。
- 图像的维度大小:使用
imread函数读取图像尺寸。 - 样本平衡:以最少样本数为基准抽取样本。
- 图像预处理:将图像转换为适合输入的格式。
- 样本分割:随机抽取样本,按7:3划分训练集和验证集。
2.1.1 加载数据集
使用imageDatastore函数读取图像数据,支持子文件夹读取和标签生成。
2.1.2 显示类别数量
使用countEachLabel函数统计每类图像数量。
2.1.3 图像的维度大小
使用imread函数读取图像尺寸,返回灰度或彩色图像的数组。
2.1.4 样本平衡
以最少样本数为基准,使用splitEachLabel函数随机抽取样本。
2.1.5 图像预处理
使用自定义函数读取图像数据,确保输入格式一致。
2.1.6 样本分割
使用splitEachLabel函数按比例划分训练集和验证集。

三、缺陷检测
3.1 可视化工具Deep Learning Tools(Matlab工具)
Matlab提供丰富的深度学习工具,支持数据预处理、模型构建、训练和可视化。通过应用程序和工具,用户可以创建、修改和分析深度学习架构,加速算法训练,并与TensorFlow、PyTorch等框架协作。
3.2 设计的神经网络结构
- 图像输入层:输入大小为128×128×3,对应RGB图像。
- 卷积层:三层卷积层,卷积核分别为8、16、32个,尺寸为3x3。
- 批量归一化层:加速训练,降低对初始化的敏感度。
- ReLU层:引入非线性激活函数。
- 最大池化层:池化区域为2x2,步幅为2。
- 全连接层:组合特征,输出类别数为17。
- softmax层:归一化输出。
- 分类层:计算损失。
- 丢弃层:防止过拟合,丢弃概率为0.2。
3.3 训练CNN网络
使用带动量的随机梯度下降(SGDM)优化器,初始学习率为0.001,最大训练轮数为16。通过深度学习工具实现训练过程的可视化。
3.4 卷积神经网络的实际分类测试
从验证集中随机抽取9张图片进行测试,验证准确率为98.87%。

四、训练与测试
4.1 特征维度
通过调整特征维度,观察验证准确度的变化:
- 64x64x3:验证准确度48.53%,训练时间22分20秒。
- 128x128x3:验证准确度81.77%,训练时间7分37秒。
- 256x256x3:验证准确度94.85%,训练时间15分51秒。
结果表明,特征维度为256x256x3时,模型性能最佳。

总结
本项目基于卷积神经网络,实现了布匹缺陷检测系统。通过数据预处理、模型构建、训练和测试,验证了CNN在图像分类任务中的高效性和准确性。未来可进一步优化模型结构,提升检测精度和速度。
163

被折叠的 条评论
为什么被折叠?



