在全志V853平台上成功部署深度学习步态识别算法

2024-03-05 11:12

本文主要是介绍在全志V853平台上成功部署深度学习步态识别算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

北理工通信课题组辛喆同学在本科毕业设计《基于嵌入式系统的步态识别的研究》中,成功将深度步态识别算法GaitSet移植到全志V853开发板上。本研究在CASIA-B数据集上进行测试,正常行走状态下该系统的步态识别准确率达到了94.9%,背包行走和穿外套行走条件下识别准确率分别达到了87.9%与71.0%。

在这里插入图片描述

步态识别作为一种新兴的生物识别方式,相比于人脸识别、指纹识别等方式,具有易于适应环境、无法伪装等优点。

本文所设计的步态识别系统,搭建在全志V853开发板上,充分利用板载外设、CPU与NPU,实现了嵌入式系统上的实时步态识别系统。

在这里插入图片描述

具体来说,系统所采用的深度学习算法在PC端进行训练,得到的Pytorch 模型通过模型转换工具转换为V853 NPU所能运行的NB模型,模型的推理在NPU上进行。系统的整体运行过程分为前处理、模型推理、后处理与UI显示四大部分。

在这里插入图片描述

本系统所采用的深度学习算法绝大部分算子在板载NPU上进行推理,小部分算子在板载CPU上运算得到结果。前处理与后处理过程均在板载CPU上进行,分别采用OpenCV与Eigen运算库,其中前处理从板载摄像头采集的视频中提取步态轮廓,并将其裁剪拼接后作为NPU模型的输入数据,后处理将NPU模型运行结束得到的输出数据进行补充运算并进行特征对比,以实现身份鉴定。UI界面的显示,通过Qt生成的应用程序实现。

本研究在CASIA-B数据集上测试了NB模型的步态识别准确率。CASIA-B是一个大规模、多视角的步态识别数据集,共包含124个样本,每个样本都有10种步态序列,分为6个正常行走的序列(NM),2个身着长外套行走的序列(CL)以及2个佩戴背包行走的序列(BG)。CASIA-B注重视角的变化,在每个行走序列中又包含了11个不同的角度。将数据集中的74个样本作为训练样本,剩下的50个样本作为测试样本。

在这里插入图片描述

在测试集中,使用每个样本的前4个正常行走的序列作为gallery集,为了研究在不同人体轮廓下系统的性能表现,划分了3个probe集,分别为正常行走序列的最后2个序列、2个身着长外套行走的序列和2个佩戴书包行走的序列。考虑到角度对识别效果的影响,本研究在每一个角度都进行了单独测试,以验证不同角度下识别的正确率。

根据上述测试数据制作了下表,表中包含了本文设计的步态识别系统GaitCircle使用的NB模型与GaitSet模型针对相同条件下的识别准确率数据。其中NM表示正常行走状态、BG表示背包行走,CL表示穿外套行走。

在这里插入图片描述

除了针对步态识别准确率进行了测试,本研究也对步态识别的实时性进行了测试。对于单人步态识别,前处理的处理速度达到了每帧58ms,模型推理运行时间仅为77ms,后处理的运行时间为0.73s。

最后,本研究还进行了实时识别测试,实时识别测试是利用V853开发板上的摄像头拍摄录像,并实时进行步态识别输出行人身份的过程。在进行测试之前,V853 Tina Linux中设置了开机自启动步态识别程序,主要通过在/etc/profile文件添加运行步态识别程序的命令实现。以下视频即为实时步态识别测试的过程,已经提前在步态信息库中录入了20个人的步态特征。

这篇关于在全志V853平台上成功部署深度学习步态识别算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776322

相关文章

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现