本文章仅仅提供一种自认为比较科学的方式去实现多人步态识别,如果对多人步态识别感兴趣,却又不知道如何实现的话,这篇文章将会有莫大的帮助。以下方法作者皆实验过是可行的方案。(训练集124人,准确率96%, 测试集大小14人,准确率100%)


《智能步态识别门禁系统》,基于深度学习的多人步态识别系统

算法设计

多人步态识别步骤①.多目标追踪定位

多人步态识别步骤②.分割算法提取步态轮廓图

多人步态识别步骤③.步态识别模型

3.1 基本原理:

3.2 损失函数(三元组损失函数Triplet Loss):

3.3 步态特征:

3.4 外形混合步态识别:

3.5 迁移学习:

多人步态识别步态识别数据集: CASIA-B

《智能步态识别门禁系统V1.0》项目用户手册

1、人脸登录系统特征识别

2、人脸登录系统数据录入

3、步态录入检测选择

4、步态门禁系统特征识别

4.1 功能面板解释

4.2 步态特征识别工作流程


算法设计

实现单人步态识别,假设视频中仅仅只出现一个人,或者出现多人的同时目标人物未被遮挡过,这两种情况,我们只需要使用目标检测算法得到一系列的目标行人步态数据,随后使用分割算法得到目标行人的步态轮廓图,随后将存储好的目标步态序列放入GaitSet模型进行身份比对,得到识别结果便可。

对于多人步态识别,我们不得不考虑多个目标行人的追踪问题,和他们相互之间的遮挡问题。

  • 对于多个目标行人追踪问题,我们应该使用多目标追踪算法来解决。
  • 对于多个目标行人遮挡问题,我们可以使用一系列的数据检测算法,剔除不符合规范的目标不太数据,并且同时检测行人步态数据是否连贯,是否数量达到标准。

项目整体算法设计思路:目标检测算法:Yolov5 +目标追踪算法:DeepSort +分割算法 +Segementation/背景减除法+ 步态识别算法:GaitSet+  测试数据集:CASIA-B

多人步态识别步骤①.多目标追踪定位

yolov5用于目标检测,DeepSort使用卡尔曼滤波匈牙利算法,利用目标检测所获得的bbox作为输入实现行人追踪。给每个单独的行人打出专属ID。这样可以识别出下一帧图片的人是上一帧图片中哪个人,或者说这一帧的人下一帧移动到哪个位置去了。

行人追踪onnx成品

多人步态识别步骤②.分割算法提取步态轮廓图

        分割算法具体效果:

多人步态识别步骤③.步态识别模型

3.1 基本原理:

本步态识别系统主要基于GaitSet模型进行实现的。

介绍:Gaitset是具有泛化能力的, 这一点和图像分类网络完全不一样,Gaitset不是学训练集中人的步态特征,而是学习提取步态特征的能力,也就是如何在一堆人里(数据库里)找到与探针最相近的那个数据。所以正在使用的时候,数据库是随时可以改变且不需要再次训练的。

3.2 损失函数(三元组损失函数Triplet Loss):

最小化锚点和具有相同身份的正样本之间的距离,最小化锚点和具有不同身份的负样本之间的距离。

(Triplet Loss的目标:Triplet Loss的目标是使得相同标签的特征在空间位置上尽量靠近,同时不同标签的特征在空间位置上尽量远离,同时为了不让样本的特征聚合到一个非常小的空间中要求对于同一类的两个正例和一个负例,负例应该比正例的距离至少远margin)

3.3 步态特征:

非连续不相关,是一个人30张步态图像中任取5张做为代表为消除其被遮挡或者剪影图裁剪有误的误差.

3.4 外形混合步态识别:

步态识别是需要对数据集进行归类,如A人为A人集合,B人为B人集合,这样的输入顺序,但是这与摄像头(video)经过YOLOV5部分读入的人物信息不一致的,实际上读入的信息是 第一帧:甲,乙,丙。第二帧:甲,乙,丙,......我们先要判断出每一帧甲乙丙等三幅图下和ABC等人的对应关系,如甲:B,乙:A,丙:C(不一定是顺序对应)然后再对每一帧出现的A,B,C等进行归类.如A人集合,B人集合,C人集合. 然后得到对应每人的集合后,并且假设每个人的集合的大小都大于10,即每个人都有10张以上的图片后,再将其投入Gaitset网络,这样就从人—图片字典,变成了人—特征向量字典,我们先得到目标人物步态的特征向量,通过余弦相似度与其余的每个人都进行计算,最终得到相似度最为显著的为依照目标人物步态的步态试别.(即相似度不仅要与目标人物步态特征向量相似度高,还要在实时系统中随帧数增加变化中最为稳定,这里采用假设检验,3sigma原则,即计算相对于其他人与目标人物的相似度后得出相似度μ+3sigma,目标人物再次出现的相似度要>μ+3sigma)

3.5 迁移学习:

我们运用的数据集是CASIA-B包括15004个步态序列,在gaitset网络中训练完成之后,将其网络训练好的参数作为迁移学习的初始参数再进行微调.

多人步态识别步态识别数据集: CASIA-B

CASIA-B是一个比较经典的步态识别数据集(2006),其包含124个目标(subjects),每个目标有3种步行情况和11个角度。3种步行情况指“normal(NM)”、“walking with bag(BG)”、“wearing coar or jacket(CL)”,其中每个目标有6段NM序列、2段BG序列、2段CL序列。11个角度是指0°、18°、…、180°。因此,这124个目标中,每个目标都有11×(6+2+2)=110段序列。经我观察,每段序列长度不定,一般80~100帧。

《智能步态识别门禁系统V1.0》项目用户手册

1、人脸登录系统特征识别

采用人脸识别进行登陆验证,之后可选择步态识别数据录入或者在已经录入步态数据的情况下进行步态特征识别。这样的双重验证使得门禁系统更安全。

用户进入人脸识别区域后,系统将进行目标人物的人脸特征数据识别。

当检测目标人物生物特征数据不在数据库里或者因为识别过程中出现遮挡等非正常行为导致识别失败时,进行提示。

点击“是”:人脸已经录入数据库,识别失败弹出Warning可能因为误判,重新识别!

点击“否”:人脸未录入数据库,上传图片进行人脸录入;(需要管理员密码)

当检测的人脸生物特征与数据库比对成功时,可进行下一步的步态识别通道进行步态识别。

2、人脸登录系统数据录入

当用户选择“否”的选项的时候,弹出输入框,等待用户输入管理员密钥进行人脸数据的录入。

当密钥成功的时候,提示用户将系统在摄像头采集到的人脸图像数据按照格式修改录入。

录入成功后,重新识别,并且登录成功。

3、步态录入检测选择

人脸登录系统成功识别后,软件弹出录入与检测功能框,点击录入按钮选择录入功能。此时系统将目前通过监视器的目标人物进行数据处理,记录人物轮廓图与步态信息

4、步态门禁系统特征识别

4.1 功能面板解释

上图模块蓝色矩形区域为数据功能模块区,分为检测模式、检测目标和识别信息展示区。

检测模式:标明是步态识别。

检测目标:展现模型处理原始数据后的最终成品——人体轮廓图。

识别信息展示区:,将识别到的目标人物的步态生物数据进行处理处理后得出相应的数据,“目标ID”为当天识别的人物的临时编号。“干扰率”为人物的着装,是否背包等对外在因素对步态识别的干扰。“预计时间”为程序检查该目标人物预计需要的时间,“状态”有“检测中”和“检测完毕“两种状态。“结果”为有“成功”和“失败”两种结果。

上图蓝色矩形区域是摄像头采集到的视频数据,当用户进入检测区域的时候,系统即刻对目标人物进行追踪, 红色区域数值为检测准确率,当目标人物被遮挡或者衣着对身形和步态有遮挡时,该数值会下降。

上图蓝色区域为当前检测人物的数据,将目标视频数据进行放大展示,便于观察。

上图蓝色区域为今日历史检测人物,将当天进行了步态检测识别成功的人物数据进行记录,存档保存。

4.2 步态特征识别工作流程

当用户通通过人脸数据的检测的时候,开通步态识别模块。当目标人物进入检测区域的时候,系统通过对目标人物进行追踪,并根据该目标人物走路方式,从身体表征、时间表征等表征中提取该目标人物的步态特征,从而分析识别目标人物的身份。当有人物进行检测时,右边将出现该人物的检测记录,如果检测成功,将保留该条记录,检测失败,则消除该记录,等待下一个检测任务。

当目标人物识别身份匹配成功的时候,实现自动开锁,并保存该条检测记录。

当陌生人进入检测通道时,检测结果为“失败”,并删除该条检测记录

《智能步态识别门禁系统》,基于深度学习的多人步态识别系统相关推荐

  1. 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)

    摘要:基于深度学习的花卉检测与识别系统用于常见花卉识别计数,智能检测花卉种类并记录和保存结果,对各种花卉检测结果可视化,更加方便准确辨认花卉.本文详细介绍花卉检测与识别系统,在介绍算法原理的同时,给出 ...

  2. 【camera】基于深度学习的车牌检测与识别系统实现(课程设计)

    基于深度学习的车牌检测与识别系统实现(课程设计) 代码+数据集下载地址:下载地址 用python3+opencv3做的中国车牌识别,包括算法和客户端界面,只有2个文件,surface.py是界面代码, ...

  3. 【毕业设计_课程设计】基于深度学习网络模型训练的车型识别系统

    文章目录 0 项目说明 1 简介 2 模型训练精度 3 扫一扫识别功能 4 技术栈 5 模型训练 6 最后 0 项目说明 基于深度学习网络模型训练的车型识别系统 提示:适合用于课程设计或毕业设计,工作 ...

  4. 基于深度学习的高精度交警检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度交警检测识别系统可用于日常生活中检测与定位交警目标,利用深度学习算法可实现图片.视频.摄像头等方式的交警目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本系统采用 ...

  5. 基于深度学习的高精度苹果检测识别系统(Python+Pyside6)

    摘要:基于深度学习的高精度苹果检测识别系统可用于日常生活中来检测与定位苹果目标,利用深度学习算法可实现图片.视频.摄像头等方式的苹果目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本系统采 ...

  6. 基于深度学习的水果检测与识别系统(Python界面版,YOLOv5实现)

    摘要:本博文介绍了一种基于深度学习的水果检测与识别系统,使用YOLOv5算法对常见水果进行检测和识别,实现对图片.视频和实时视频中的水果进行准确识别.博文详细阐述了算法原理,同时提供Python实现代 ...

  7. 基于深度学习的高精度塑料瓶检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度塑料瓶检测识别系统可用于日常生活中或野外来检测与定位塑料瓶目标,利用深度学习算法可实现图片.视频.摄像头等方式的塑料瓶目标检测识别,另外支持结果可视化与图片或视频检测结果的导 ...

  8. 基于深度学习的高精度奶牛检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度奶牛检测识别系统可用于日常生活中或野外来检测与定位奶牛目标,利用深度学习算法可实现图片.视频.摄像头等方式的奶牛目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本 ...

  9. 基于深度学习的高精度袋鼠检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度袋鼠检测识别系统可用于日常生活中或野外来检测与定位袋鼠目标,利用深度学习算法可实现图片.视频.摄像头等方式的袋鼠目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本 ...

最新文章

  1. 「智源论坛Live报名」清华大学董胤蓬:深度学习对抗攻防平台
  2. 亮剑:PHP,我的未来不是梦(3)
  3. mysql 8.0 ~ 存储和账户
  4. 计算机网络·用户代理和浏览器 发送邮件分别需要的协议
  5. DL之RBM:基于RBM实现手写数字图片识别提高准确率
  6. zend guard6的使用
  7. CentOS 7 怎样安装或升级最新的内核?
  8. 哪几所大学计算机软件方面是强项,计算机软件工程专业排名靠前的大学是那几所...
  9. 如何获取函数的变长参数(va_list, va_start, va_arg, va_end)
  10. java byte binary_java byte 与 binary 转换
  11. 2021-08-02 修改表
  12. SQL server 创建数据库代码,非常详细
  13. 软件验证码显示服务器连接错误,验证码总是提示错误,验证码错误的解决办法 专家详解...
  14. 用Python简单的实现AM调制信号波形的变化
  15. 有域名和服务器怎么建设网站新手,新手如何快速搭建一个新的网站【零基础】...
  16. 数学基础:积分中值定理
  17. 用Python实现自动扫雷
  18. 厂区佩戴安全帽检测算法 yolov5
  19. 云服务器是什么?云服务器有什么作用?
  20. 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?

热门文章

  1. 【阿里云】【备案】【年度审核】
  2. 向日葵Linux远程失败,向日葵远程控制客户端无法安装的问题解决方式
  3. FineUI中用JS在前端与后端中传数据
  4. 什么是零代码?零代码与低代码有什么联系与区别?
  5. 大数据架构师需要具备哪些能力?
  6. Log-Gabor滤波器
  7. 标签打印软件如何制作珠宝标签
  8. 纯css画一个樱桃小丸子
  9. 虚拟手机号与真实的手机号有什么不同?
  10. 临床执业助理医师(综合练习)题库【7】