m基于CNN卷积神经网络和GEI步态能量图的步态识别算法MATLAB仿真
目录
1.算法描述
步态识别是一种新兴的生物特征识别技术,旨在通过人们走路的姿态进行身份识别,与其他的生物识别技术相比,步态识别具有非接触远距离和不容易伪装的优点。在智能视频监控领域,比图像识别更具优势。步态是指人们行走时的方式,这是一种复杂的行为特征。罪犯或许会给自己化装,不让自己身上的哪怕一根毛发掉在作案现场,但有样东西他们是很难控制的,这就是走路的姿势。英国南安普敦大学电子与计算机系的马克·尼克松教授的研究显示,人人都有截然不同的走路姿势,因为人们在肌肉的力量、肌腱和骨骼长度、骨骼密度、视觉的灵敏程度、协调能力、经历、体重、重心、肌肉或骨骼受损的程度、生理条件以及个人走路的“风格”上都存在细微差异。对一个人来说,要伪装走路姿势非常困难,不管罪犯是否带着面具自然地走向银行出纳员还是从犯罪现场逃跑,他们的步态就可以让他们露出马脚。
人类自身很善于进行步态识别,在一定距离之外都有经验能够根据人的步态辨别出熟悉的人。步态识别的输入是一段行走的视频图像序列,因此其数据采集与面像识别类似,具有非侵犯性和可接受性。但是,由于序列图像的数据量较大,因此步态识别的计算复杂性比较高,处理起来也比较困难。尽管生物力学中对于步态进行了大量的研究工作,基于步态的身份鉴别的研究工作却是刚刚开始。步态识别主要提取的特征是人体每个关节的运动。到目前为止,还没有商业化的基于步态的身份鉴别系统。
————————————————
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)” 。
对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络 [4] ;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域 。
卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求 。
采用监督方式训练的一种面向两维形状不变性识别的特定多层感知机。
卷积层的结构如下所示:
2.仿真效果预览
matlab2022a仿真结果如下:
与其他生物识别相比,步态识别具有许多优点,如远距离、非接触等。为了获得良好的识别效果,虹膜识别需要目标在30厘米以内;人脸识别需要目标在3米以内;步态识别需要目标远达50m。不同的体型、头部形状、肌肉骨骼特征、运动神经敏感性、行走姿势等特征决定了步态具有更好的辨别能力。通过复杂的算法设计和海量数据训练,机器可以更好地识别这些细节。首先基于CASIA A数据库来模拟算法的性能,然后基于真实场景来模拟算法性能。CASIA A数据库是2005年1月在室内收集的最大步态数据集。视频大小为320×240,帧数为25fps。数据集中有20名行人。每个人收集了12个序列,包括4个0度序列、4个45度序列和4个90度序 列。因此,序列的总数为240。图显示了CASIA A中的部分步态数据。
3.MATLAB核心程序
........................................................................
if SEL == 1
digitDatasetPath = ['步态能量图0t0\'];
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
%划分数据为训练集合验证集,训练集中每个类别包含1张图像,验证集包含其余图像的标签
numTrainFiles = 2;%设置每个类别的训练个数
[imdsTrain, imdsValidation] = splitEachLabel(imds,0.5);
end
if SEL == 2
digitDatasetPath = ['步态能量图0t45\'];
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders', true, 'LabelSource', 'foldernames');
%划分数据为训练集合验证集,训练集中每个类别包含1张图像,验证集包含其余图像的标签
numTrainFiles = 2;%设置每个类别的训练个数
[imdsTrain, imdsValidation] = splitEachLabel(imds,0.5);
end
..................................................
%定义卷积神经网络的基础结构
layers = [
imageInputLayer([227 227 3]);%注意,227,227,不能改
%第1个卷积层
convolution2dLayer(3, 8, 'Padding', 'same');%第一个卷积层
batchNormalizationLayer;
reluLayer;
maxPooling2dLayer(2, 'Stride', 2);
%第2个卷积层
convolution2dLayer(3, 8, 'padding', 'same');
batchNormalizationLayer;
reluLayer;
maxPooling2dLayer(2, 'Stride', 2);
%全连接层
fullyConnectedLayer(20);
%softmax
softmaxLayer;
%输出分类结果
classificationLayer;];
%设置训练参数
options = trainingOptions('sgdm', ...
'InitialLearnRate', 0.0001, ...
'MaxEpochs', 200, ...
'Shuffle', 'every-epoch', ...
'ValidationData', imdsValidation, ...
'ValidationFrequency', 10, ...
'Verbose', false, ...
'Plots', 'training-progress');
%使用训练集训练网络
net = trainNetwork(imdsTrain, layers, options);
05_077_m
4.完整MATLAB
V
相关文章
- matlab图像处理初步,MATLAB数字图像处理初步「建议收藏」
- 重磅研究!味觉可以被识别吗?脑机接口在味觉感知中的新应用
- lasso回归matlab,机器学习Lasso回归重要论文和Matlab代码「建议收藏」
- M91A安全帽识别布控球 安全帽穿戴AI视频分析功能
- nsga2 matlab,NSGA2算法特征选择MATLAB实现(多目标)
- 一站式完成车牌识别任务:从模型优化到端侧部署
- matlab怎么对语音信号处理,语音信号处理MATLAB程序
- 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数…[通俗易懂]
- matlab interp1db,matlab – Matlab interp1图出现数据偏移 – 堆栈内存溢出
- 基于Pytorch实现的语音情感识别
- matlab保存所有图,Matlab中图片保存的5种方法
- 【文本检测与识别白皮书-3.2】第二节:基于CTC的无需分割的场景文本识别方法&基于注意力机制的无需分割的场景文本识别方法
- butterworth matlab,Matlab实现Butterworth滤波器
- Matlab 直方图_matlab分析
- matlab plot函数详解_MATLAB的plot
- MATLAB的循环_matlab循环输出
- MATLAB 循环语句_for循环matlab
- matlab画三维约束图命令,Matlab画三维图的方法[通俗易懂]
- MATLAB循环_matlab如何循环计算
- win10系统无法识别usb大容量移动硬盘_电脑没有usb大容量存储设备选项
- Matlab循环语句_matlab中if语句的用法
- 中科院 | 基于 “敏感情感识别” 和 “理性知识选择” 的情感对话生成(含源码)
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
- matlab数据如何利用MongoDB管理MATLAB数据?(mongodb管理)
- Linux下使用Matlab玩转编程世界。(linux下matlab)
- 使用开源工具识别 Linux 的性能瓶颈
- 用Python端对端数据分析识别机器人“僵尸粉
- Linux无法识别网卡的万丈深渊(linux不识别网卡)
- 腾讯QQ与人教数字推出全国首个可AR识别课本
- Google展示ARCore 1.2,支持多人共享AR、垂直平面识别、基于Java全新SDK
- 硬核观察 #365 科技公司研发 AI 工具可通过摄像头识别员工是否真生病