m基于CNN卷积神经网络和GEI步态能量图的步态识别算法MATLAB仿真

简介: 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)要求 。

 采用监督方式训练的一种面向两维形状不变性识别的特定多层感知机。

卷积层的结构如下所示:

c52e47c7ed0017694603f84c33b20695_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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中的部分步态数据。

87dfaca4f2776890c0b5492b08378060_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
0708ec5eea09645390035dcee9fdaee4_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
fb98e934eca8afcbcf9e3a2d0d1578ef_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

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);
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
18 7
|
20天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
5天前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
21 1
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
12天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
10天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
39 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
26天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
72 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
7天前
|
机器学习/深度学习 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
26 0

热门文章

最新文章

下一篇
无影云桌面