基于LBP和LPQ特征融合的PSO-SVM缺陷分类附matlab代码

简介: 基于LBP和LPQ特征融合的PSO-SVM缺陷分类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

钢板在生产及使用过程中产生的表面缺陷不仅影响外观还会降低产品的性能,针对目前检测的效率低,误差大提出了一种结合图像处理与粒子群优化支持向量机的缺陷分类检测系统.利用融合空域的局部二值模式和频域局部相位量化两种特征提取方式的优势对工件的图像进行缺陷特征提取,建立支持向量机(SVM)缺陷分类模型.由于SVM算法参数容易陷入局部最优的问题,所以采用粒子群算法优化SVM的惩罚参数和核函数.在MATLAB 2019b平台进行实验,实验结果对比分析显示,所提算法较传统的SVM分类模型相比提高了18.33%的识别准确率.

⛄ 部分代码

function results=CreateAndTrainANN(x,t)


   if ~isempty(x)

       

       % Choose a Training Function

       % For a list of all training functions type: help nntrain

       % 'trainlm' is usually fastest.

       % 'trainbr' takes longer but may be better for challenging problems.

       % 'trainscg' uses less memory. NFTOOL falls back to this in low memory situations.

       trainFcn = 'trainlm';  % Levenberg-Marquardt


       % Create a Fitting Network

       hiddenLayerSize = 10;

       net = fitnet(hiddenLayerSize,trainFcn);


       % Choose Input and Output Pre/Post-Processing Functions

       % For a list of all processing functions type: help nnprocess

       net.input.processFcns = {'removeconstantrows','mapminmax'};

       net.output.processFcns = {'removeconstantrows','mapminmax'};


       % Setup Division of Data for Training, Validation, Testing

       % For a list of all data division functions type: help nndivide

       net.divideFcn = 'dividerand';  % Divide data randomly

       net.divideMode = 'sample';  % Divide up every sample

       net.divideParam.trainRatio = 70/100;

       net.divideParam.valRatio = 15/100;

       net.divideParam.testRatio = 15/100;


       % Choose a Performance Function

       % For a list of all performance functions type: help nnperformance

       net.performFcn = 'mse';  % Mean squared error


       % Choose Plot Functions

       % For a list of all plot functions type: help nnplot

       net.plotFcns = {};

       % net.plotFcns = {'plotperform','plottrainstate','ploterrhist', 'plotregression', 'plotfit'};


       net.trainParam.showWindow=false;

       

       % Train the Network

       [net,tr] = train(net,x,t);


       % Test the Network

       y = net(x);

       e = gsubtract(t,y);

       E = perform(net,t,y);

       

   else        

       

       y=inf(size(t));

       e=inf(size(t));

       E=inf;

       

       tr.trainInd=[];

       tr.valInd=[];

       tr.testInd=[];

       

   end


   % All Data

   Data.x=x;

   Data.t=t;

   Data.y=y;

   Data.e=e;

   Data.E=E;

   

   % Train Data

   TrainData.x=x(:,tr.trainInd);

   TrainData.t=t(:,tr.trainInd);

   TrainData.y=y(:,tr.trainInd);

   TrainData.e=e(:,tr.trainInd);

   if ~isempty(x)

       TrainData.E=perform(net,TrainData.t,TrainData.y);

   else

       TrainData.E=inf;

   end

   

   % Validation and Test Data

   TestData.x=x(:,[tr.testInd tr.valInd]);

   TestData.t=t(:,[tr.testInd tr.valInd]);

   TestData.y=y(:,[tr.testInd tr.valInd]);

   TestData.e=e(:,[tr.testInd tr.valInd]);

   if ~isempty(x)

       TestData.E=perform(net,TestData.t,TestData.y);

   else

       TestData.E=inf;

   end

   

   % Export Results

   if ~isempty(x)

       results.net=net;

   else

       results.net=[];

   end

   results.Data=Data;

   results.TrainData=TrainData;

   % results.ValidationData=ValidationData;

   results.TestData=TestData;

   

end

⛄ 运行结果

⛄ 参考文献

[1]杜绪伟, 陈东. 基于LBP和LPQ特征融合的PSO-SVM缺陷分类[J]. 电子测量技术, 2020(021):043.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1月前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
157 13
|
2月前
|
机器学习/深度学习 算法 关系型数据库
基于PSO-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目展示了利用粒子群优化(PSO)算法优化支持向量机(SVM)参数的过程,提高了分类准确性和泛化能力。包括无水印的算法运行效果预览、Matlab2022a环境下的实现、核心代码及详细注释、操作视频,以及对PSO和SVM理论的概述。PSO-SVM结合了PSO的全局搜索能力和SVM的分类优势,特别适用于复杂数据集的分类任务,如乳腺癌诊断等。
|
2月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
262 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
155 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
128 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
机器学习/深度学习 算法
基于鲸鱼优化的knn分类特征选择算法matlab仿真
**基于WOA的KNN特征选择算法摘要** 该研究提出了一种融合鲸鱼优化算法(WOA)与K近邻(KNN)分类器的特征选择方法,旨在提升KNN的分类精度。在MATLAB2022a中实现,WOA负责优化特征子集,通过模拟鲸鱼捕食行为的螺旋式和包围策略搜索最佳特征。KNN则用于评估特征子集的性能。算法流程包括WOA参数初始化、特征二进制编码、适应度函数定义(以分类准确率为基准)、WOA迭代搜索及最优解输出。该方法有效地结合了启发式搜索与机器学习,优化特征选择,提高分类性能。
|
7月前
|
算法
基于蝗虫优化的KNN分类特征选择算法的matlab仿真
摘要: - 功能:使用蝗虫优化算法增强KNN分类器的特征选择,提高分类准确性 - 软件版本:MATLAB2022a - 核心算法:通过GOA选择KNN的最优特征以改善性能 - 算法原理: - KNN基于最近邻原则进行分类 - 特征选择能去除冗余,提高效率 - GOA模仿蝗虫行为寻找最佳特征子集,以最大化KNN的验证集准确率 - 运行流程:初始化、评估、更新,直到达到停止标准,输出最佳特征组合
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章