日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【步态识别】基于CNN、步态能量图+HOG特征提取的步态识别算法的MATLAB仿真

發(fā)布時間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【步态识别】基于CNN、步态能量图+HOG特征提取的步态识别算法的MATLAB仿真 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??? 卷積層的結(jié)構(gòu)如下所示:

具體可以看如下的網(wǎng)址:

這個是傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)。我們按這個進(jìn)行設(shè)計。仿真結(jié)果如下:

?他的識別率為88.89%。

然后我這里介紹下我們的改進(jìn)思路,改進(jìn)思路如下所示:

此外, 影響卷積網(wǎng)絡(luò)的參數(shù)主要為學(xué)習(xí)率的設(shè)置,然后我們通過WOA優(yōu)化算法計算最優(yōu)的學(xué)習(xí)率。關(guān)于WOA的原理,請參考文獻(xiàn):

?這個部分,將得到的最優(yōu)的學(xué)習(xí)率為:0.0408

訓(xùn)練過程為:

?通過測試可以知道,

GRNN識別率為80%

CNN的識別率為88.89%

基于改進(jìn)CNN,識別率為:95.56%

部分核心代碼如下:

clc; clear; close all; warning off; addpath 'subfunc\'rng(1); digitDatasetPath = ['步態(tài)能量圖\']; imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');%劃分?jǐn)?shù)據(jù)為訓(xùn)練集合驗證集,訓(xùn)練集中每個類別包含1張圖像,驗證集包含其余圖像的標(biāo)簽 numTrainFiles = 1;%設(shè)置每個類別的訓(xùn)練個數(shù) [imdsTrain, imdsValidation] = splitEachLabel(imds, numTrainFiles, 'randomize');%定義卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu) layers = [imageInputLayer([400 150 1]);%注意,400,150為能量圖的大小,不能改%第1個卷積層convolution2dLayer(3, 8, 'Padding', 'same');%第一個卷積層batchNormalizationLayer;%第1個激勵層reluLayer;%第1個池化層maxPooling2dLayer(2, 'Stride', 2);%第2個卷積層convolution2dLayer(3, 8, 'padding', 'same');batchNormalizationLayer;%第2個激勵層reluLayer;%第2個池化層maxPooling2dLayer(2, 'Stride', 2);%第3個卷積層convolution2dLayer(3, 16, 'Padding', 'same');batchNormalizationLayer;%第3個激勵層reluLayer;%第3個池化層maxPooling2dLayer(2, 'Stride', 2);%全連接層1fullyConnectedLayer(5);%softmaxsoftmaxLayer;%輸出分類結(jié)果classificationLayer;]; %設(shè)置訓(xùn)練參數(shù)Num = 10; %搜索數(shù)量 Iters = 10; %迭代次數(shù) D = 1; %搜索空間維數(shù) woa_idx = zeros(1,D); woa_get = inf; %初始化種群的個體 %初始化種群的個體 Xmin = 0; Xmax = 1; xwoa=rand(Num,D); for t=1:Iterstfor i=1:Num%目標(biāo)函數(shù)更新[pa(i)] = fitness(xwoa(i,:),imdsTrain, imdsValidation,layers);Fitout = pa(i);%更新if Fitout < woa_get woa_get = Fitout; woa_idx = xwoa(i,:);endend%調(diào)整參數(shù)c1 = 2-t*((1)/Iters); c2 =-1+t*((-1)/Iters); % w = 0.1+0.8*(cos(std(pa)));%位置更新for i=1:Numrng(i);r1 = rand();r2 = rand();K1 = 2*c1*r1-c1; K2 = 2*r2; l =(c2-1)*rand + 1; rand_flag = rand(); if rand_flag<0.5 if abs(K1)>=1RLidx = floor(Num*rand()+1);X_rand = xwoa(RLidx, :);D_X_rand = abs(K2*X_rand(1:D)-xwoa(i,1:D)); xwoa(i,1:D)= X_rand(1:D)-K1*D_X_rand; elseD_Leader = abs(K2*woa_idx(1:D)-xwoa(i,1:D)); xwoa(i,1:D)= woa_idx(1:D)-K1*D_Leader; endelsedistLeader = abs(woa_idx(1:D)-xwoa(i,1:D));xwoa(i,1:D) = distLeader*exp(l).*cos(l.*2*pi)+woa_idx(1:D);endend[pb] = fitness(woa_idx,imdsTrain, imdsValidation,layers); end rng(1); options = trainingOptions('sgdm', ...'InitialLearnRate', abs(woa_idx/5), ...'MaxEpochs', 200, ...'Shuffle', 'every-epoch', ...'ValidationData', imdsValidation, ...'ValidationFrequency', 10, ...'Verbose', false, ...'Plots', 'training-progress');%使用訓(xùn)練集訓(xùn)練網(wǎng)絡(luò) net = trainNetwork(imdsTrain, layers, options);%對驗證圖像進(jìn)行分類并計算精度 YPred = classify(net, imdsValidation); YValidation = imdsValidation.Labels;accuracy = sum(YPred == YValidation) / numel(YValidation); accuracy

運(yùn)行結(jié)果如下:

?

A05-77

總結(jié)

以上是生活随笔為你收集整理的【步态识别】基于CNN、步态能量图+HOG特征提取的步态识别算法的MATLAB仿真的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。