基于计算机视觉的人体姿态识别

本文详细描述了一款产品,利用OpenCv和YOLOV5进行目标检测和人体姿态识别,通过深度学习进行数据分析,以评估和指导康复治疗。系统还包括交互式页面设计,如PyQt5界面,提供登录、信息查看和康复计划等功能。
摘要由CSDN通过智能技术生成

姿态识别模块和视觉识别模块是此产品的和核心部分,本产品计算机视觉技术进行人体姿态信息的获取,并将获取到的人体姿态信息进行数据获取,统计出受伤人员的姿态、行为信息。同时将数据进行存储,由医务人员对数据进行分析,将标准姿态信息进行对比,得出伤、病人的康复情况,根据上一阶段信息,进行下一阶段的康复治疗。

1.2目标姿态识别设计

1.2.1软件选取

本产品采用非常广泛的计算机视觉库——OpenCv(如图1-1)。OpenCv不仅可用于图像的读取与显示,也可用于图像处理、分析、机器视觉方面。它可以运行在Linux、Windows、Android和Mac OS操作系统上,并且他也可以与Tensorflow、Pytorch进行深度学习方面的应用,也可与PyQt进行交互式页面的显示于读取,利用OpenCv可实现图像处理和计算机视觉方面的很多通用算法,在人工智能方面产生较大的影响。

图1-1 Opencv标志图

1.2.2 目标检测

本产品采用YOLOV5目标检测算,在进行目标检测前首先需要进行训练数据集,利用YOLOV5深度学习框架,进行训练模型。首先将数据集分成训练集(train)和测试集(test),进行神经网络结构的搭建,搭建好输入层、全连接层、输出层,创建模型实例,然后进行模型训练,将模型训练为100轮,持续追踪时间和损失,每5轮输出一次当前状态,最终将损失曲线图(如图1-2)输出,同时输出模型model。

https://t11.baidu.com/it/u=3937240657,4237471663&fm=173&app=25&f=JPG?w=548&h=192&s=BDAA5C320F224520486921DA030080B1

图1-2损失曲线图

将模型导入主程序中,利用OpenCv进行读取图像,将图像进行灰度化、阈值分割等处理,将图像中存在人员进行检测出来,并进行标注,如图3-3所示:

图1-3目标检测图

1.2.3 Openpose人体姿态识别

OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷积神经网络和监督学习并以Caffe为框架开发的开源库。OpenPose相比较其他深度学习框架在姿态训练这方面,有着速度快、损失函数较低、训练率高等特点,如图1-4所示:

图1-4 OpenPose训练效果

在进行目标检测的基础上,进行姿态识别首先需要利用Opencv对输入图像进行读取,进行图像处理 ,利用卷积网络进行特征提取,利用Bipartite Matching(二分匹配,如图1-5)求出Part Association将同一个人的关节点连接起来。

https://pic.rmb.bdstatic.com/bjh/down/aa08d8687ca70d603dc7183698bc6b22.jpeg

图1-5二分匹配

利用OpenCV进行读取一张图象,经过卷积网络提取特征,然后得到一组特征图,将特征图与模型进行匹配,得出图像中人员的各个关节点,最终合成一个人的骨架。

图1-6姿态识别

1.3关键算法解析

1.3.1 YOLOV5目标检测算法

YOLOV5算法是与计算机视觉和图像处理相关的计算机技术,用于在一张图片中识别物体的种类,并标出物体所在位置。YOLOV5算法结构(如图1-7)主要包括输入端、基准网络、Neck网络、Head输出层。主要通过一下几个步骤进行实现:

1.首先要进行Mosaic数据增强,将图片进行随机缩放、裁剪、排布、旋转等方式进行拼接

2.预设边框先大致在可能位置标出目标,在预设边框上进行调整

3.利用Focus对图片进行邻近下采样,同时将W、H信息一起几种到通道上,利用5×5的卷积进行特征提取

4.利用特征金字塔,通过简单的网络连接改变,增加检测多样性

5.将预测边框与实际边框进行对比,得到损失函数。

6.利用Head输出端完成对目标检测结果的输出。

图1-7 YOLOV5结构图

1.3.2 Caffe深度学习计算框架

Caffe的模型和优化都是以文本形势给出,同时给出了模型定义、训练的权重,可进行海量数据的计算,因此用来进行姿态识别方面的运算。结构图如图一所示,Caffe主要由五个组件(如图1-8)构成Blob,Solver,Net,Layer,Proto。Solver负责深度网络的训练,每个Solver中包含一个训练网络对象和一个测试网络对象。每个网络则由若干个Layer构成。每个Layer的输入和输出Feature map表示为Input Blob和Output Blob。

Blob是一个不定维的矩阵,在Caffe中一般用来表示一个拉直的四维矩阵

Proto在Caffe中用于网络模型的结构定义、存储和读取。

图1-8 Caffe结构图

1.4交互式页面设计

1.4.1软件采用

本交互式页面主要采用PyQt5、Qt Designer制作的GUI可交互页面。Qt Designer程序实现界面开发的案例。包括使用Qt Designer实现程序Gui开发、使用pyuic5将.ui转换.py程序、信号与槽的配置以及实现、使用pycharm转换成可执行程序的完成过程。同时可在pycharm中通过代码进行调试,相比较其他方面,较为容易操作。

1.4.2页面介绍

此页面主要利用Label、Push Button以及信号和槽等控件和功能制作而成。通过Push Button各个功能操作按钮的实现,利用Label实现窗口的展示,可通过不同窗口观察人员的当前状态。同时可在页面上进行启动、数据查看、报警提示、紧急操作、姿态识别等功能的实现,系统的工作页面(1-10)如下图所示:

图1-10工作页面

3.5系统展示网页

用户通过GUI页面可进行账号进行登陆,登陆页面采用html文件。因为html文件可被多种浏览器识别和读取,例如谷歌、360浏览器等。通过html网页结构,将受伤人员受伤信息和康复训练信息传递给受伤人员。同时页面有下一周期的康复训练计划,和前几周的康复训练情况,对受伤人员了解自身信息较为方便。

1.5.1注册页面

用户可通过GUI页面登陆账号按钮进行登陆,若有账号可根据账号进行登陆,若无账号,则点击注册账号,进行账号注册,注册账号界面1-11如下图所示:

图1-11用户注册界面

1.5.1登陆页面

  已有账号的用户,可直接输入账号进行登陆,登陆页面如图1-12所示:

图1-12登陆页面

若账号、密码输入错误会进行提示 ,同时可根据注册时的邮箱等方式进行找回密码。

3.5.2信息页面

受伤人员信息页面(如图1-13)包括康复训练时间、病人信息、受伤程度、康复阶段以及其他的受伤人员的基本信息都可进行显示,方便受伤人员查看自身信息,同时页面内还提供周期训练计划查看等信息。

图1-13 信息显示界面

需要源码可留言

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值