基于CNN卷積神經網絡和GEI步態能量提取的步態識別算法matlab仿真,對比不同角度下的步態識別性能
1.算法運行效果圖預覽
(完整程序運行后無水印)
本課題所用步態數據庫:

測試結果如下:
步態能量圖

識別率對比


上圖識別率含義是:
1.使用0度的數據庫進行訓練,分別測試0度,45度,90度。
2.使用45度的數據庫進行訓練,分別測試0度,45度,90度。
3.使用90度的數據庫進行訓練,分別測試0度,45度,90度。
4.使用0度,45度,90度三種樣本混合進行訓練,分別測試混合樣本,0度樣本,45度樣本,90度樣本。
2.算法運行軟件版本
matlab2022a/matlab2024b
3.部分核心程序
(完整版代碼包含詳細中文注釋和操作步驟視頻)
%使用訓練集訓練網絡
net = trainNetwork(imdsTrain, layers, options);
%識別標準的步態
%對驗證圖像進行分類并計算精度
YPred = classify(net, imdsValidation);
YValidation = imdsValidation.Labels;
accuracy0 = 100*sum(YPred == YValidation) / numel(YValidation)
digitDatasetPath = ['步態能量圖\0\'];
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
numTrainFiles = 3;%設置每個類別的訓練個數
[imdsTrain, imdsValidation] = splitEachLabel(imds, numTrainFiles, 'randomize');
YPred = classify(net, imdsValidation);
YValidation = imdsValidation.Labels;
accuracy1 = 100*sum(YPred == YValidation) / numel(YValidation)
digitDatasetPath = ['步態能量圖\45\'];
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
numTrainFiles = 3;%設置每個類別的訓練個數
[imdsTrain, imdsValidation] = splitEachLabel(imds, numTrainFiles, 'randomize');
YPred = classify(net, imdsValidation);
YValidation = imdsValidation.Labels;
accuracy2 = 100*sum(YPred == YValidation) / numel(YValidation)
%識別90度角度的步態
digitDatasetPath = ['步態能量圖\90\'];
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
numTrainFiles = 3;%設置每個類別的訓練個數
[imdsTrain, imdsValidation] = splitEachLabel(imds, numTrainFiles, 'randomize');
YPred = classify(net, imdsValidation);
YValidation = imdsValidation.Labels;
accuracy3 = 100*sum(YPred == YValidation) / numel(YValidation)
figure;
bar([accuracy0,accuracy1,accuracy2,accuracy3]);
xlabel('0:混合步態, 1:標準步態, 2:45度角度步態, 3:90度角度步態');
ylabel('識別率');
save R4.mat accuracy0 accuracy1 accuracy2 accuracy3
4.算法理論概述
步態識別作為一種生物特征識別技術,具有非接觸、遠距離和難以偽裝等優點,在安防監控、智能門禁等領域有著廣泛的應用前景。基于CNN卷積神經網絡和GEI步態能量提取的步態識別算法結合了GEI對步態特征的有效提取能力和CNN強大的特征學習與分類能力,能夠取得較好的識別效果。同時,研究不同角度下的步態識別性能對于全面評估該算法的實用性和魯棒性具有重要意義。

5.激活函數
為了引入非線性,在卷積層之后通常會使用激活函數。常用的激活函數如 ReLU(Rectified Linear Unit),其定義為:

8.基于CNN和GEI的步態識別算法流程
數據采集:采集不同角度下的步態圖像序列。
GEI 提取:對每個角度下的步態圖像序列進行GEI提取,得到不同角度的GEI數據集。
數據預處理:對GEI數據集進行歸一化、裁剪等預處理操作,以提高模型的訓練效果。
CNN 模型訓練:使用預處理后的GEI數據集對 CNN 模型進行訓練,優化模型的參數。
模型評估:使用測試集對訓練好的CNN模型進行評估,計算不同角度下的識別準確率指標。

浙公網安備 33010602011771號