基于matlab视频的人体姿态检测

这篇具有很好参考价值的文章主要介绍了基于matlab视频的人体姿态检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于matlab视频的人体姿态检测

设计目的和要求

1.根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方法的基于MATLAB的人体姿态

  1. 设计原理

首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。

噪声的影响,会使检测结果中出现一些本身背景的区域像素点被检测成运动区域,也可能是运动目标内的部分区域被漏检。另外,背景的扰动,如树枝、树叶的轻微摇动,会使这部分也被误判断为运动目标,为了消除这些影响,首先对上一步的检测结果用形态学的方法进行处理,在找出经过形态学处理的后的连通域,计算每个连通域中的面积,对于面积小于一定值的区域,将其抛弃,不看做是前景运动目标。

  1. 设计内容

2.1课题意义

随着监控系统到位,以帮助人们甚至完成监控任务。可以减少人力和财力的投入,由于就业监视人员进行。另外,如果长时间不运动图像信息记录,保存几下,就失去了意义和视频监控系统的存储资源浪费存储空间。因此,传统的监视系统浪费了大量的人力,并有可能引起报警,性能差的实时监控的泄漏。监控等实时行为分析系统来识别人体,不仅可以替代监控人员的工作的一部分,提高监测系统的自动化水平,同时也提高监视存储的效率,还有一个广泛的应用,并在视频监视系统的潜在经济价值之前。由于人的行为具有自由的伟大程度,因为身体宽松长裙不同程度和它的外貌和从图像捕获设备位置不同距离的表现风格将是一个很大的分歧,这是人的行为分析,找出了一定的难度。但是,人类行为的实时分析,智能监控系统,以确定关键技术及其广阔的前景药,安全性,虚拟现实,军事和潜在的经济价值,国内外研究机构和学者越来越多的关注,并在许多全球领先的刊物和会议专题讨论。美国和欧洲都进行了一些相关的研究项目。

2.2运动分割算法

首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。

本次采用了基于累积差分和数学形态学处理的运动区域提取算法。在时域窗口内,首先对图象进行降级处理得到灰度带图象,对灰度带差分图象累积并进行数学形态学处理得到运动目标的轨迹模版,将轨迹模版与当前帧差分图象与运算得到当前帧运动目标象素,最后进行多级数学形态学处理得到当前帧运动区域。实验结果表明,该算法不仅能够对静止背景序列运动区域有较好的分割结果,而且在没有进行全局运动补偿的情况下,对部分运动背景序列也能成功的提取出运动区域。

2.3方案设计

根据设计要求确定视频监控中行人分割和人体姿态识别的方法,选择确定运动目标检测、行人人体姿态特征信息提取实现方法。画出流程图见附录2并对各部分功能进行说明。

(1)判断是否为人体

在目标提取之前,首先要对输入的图片进行检测。本文通过连通域的面积来检测判断目标是否为人体。

(2)人体目标提取

如果是人体导入背景图片与背景图片做差,再通过背景差阈值分割法进行提取。 (4)行为识别

在解决了以上的问题之后,接下来就是要选择一种合适的算法来进行人体姿态识别,这也是本文研究的重点和难点。本文采用人体目标的连通区域的长宽比例和方向角的方法来对人体行为进行识别。

  1. 过程实现

根据设计要求确定视频中行人检测和人体姿态特征信息提取方法,进行程序设计,编写实现程序,使用matlab等软件。

3.3.1图像分割中运动的运用(运动目标检测)

运动目标检测首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。


基于matlab视频的人体姿态检测,人工智能,算法,matlab,目标跟踪,图像处理


基于matlab视频的人体姿态检测,人工智能,算法,matlab,目标跟踪,图像处理

图3.3.3—1对站立姿势的判断

在躺卧时,视频的上方会出现“躺卧”的文字,如下图3.3—2 所示


基于matlab视频的人体姿态检测,人工智能,算法,matlab,目标跟踪,图像处理

图3.3—2对躺卧姿势的判断

基于matlab视频的人体姿态检测,人工智能,算法,matlab,目标跟踪,图像处理

图3.3.3—3对其他姿势的的判断

参考源码

% Approximate Median Filter background model for moving object segmentation.

%采用近似中值滤波背景模型参考图像实现运动目标分割

clear all; close all;

% Construct a videoreader class to read a avi file, first the 'car_parking.avi' ,

% then the ‘highwayII_raw.avi'.

videoObj = VideoReader('gyz.avi');

numFrames =videoObj.NumberOfFrames;

%Get the speed of the AVI movie in frames per second (fps)

FPS = videoObj.FrameRate;

% Read the first frame in the video sequence as the initial value

newframe = read(videoObj, 1);

fmed = double(newframe);

% Get the height, width, and number of color components of the frame

[height, width, numColor] = size(newframe);

% Assign a value to the threshold

Threh = 20;

beta = 0.6;

fg = false(height, width);

%创建方形结构元素,用于对分割结果形态学滤波

se = strel('square',3);

% To avoid consuming too much memories, read only a one frame each time.

for n = 100:400

    newframe = read(videoObj, n);

    % Calculate the differrence image between the new frame and fmed        

    Idiff = double(newframe) - fmed;

    % Update the median of each pixel value

    pixInc = find(Idiff > 0);

    fmed(pixInc) = fmed(pixInc) + beta;

    pixDec = find(Idiff < 0);

    fmed(pixDec) = fmed(pixDec) - beta;

    % Motion segment, detection moving object by threholding Idiff

    fg = abs(Idiff) >Threh;

    if ( numColor == 3)  % color image

        fg = fg(:, :, 1) | fg(:, :, 2) | fg(:, :, 3);  

    end

 

    figure(1);

    subplot(2,3,1), imshow(newframe);

    title(strcat('Current Image, No. ', int2str(n)));

    subplot(2,3,2), imshow(fg);

    title('Segmented result using Approximate Median Filter');

    subplot(2,3,3), imshow(fg2);

    title('Segmented result using morphological filter');

    pause(0.01)

 

    [L,num]=bwlabel(fg2,4);%对连通域进行标记,num=6   

     img_reg = regionprops(L, 'Area', 'Orientation', 'boundingbox');

     %测量标注矩阵 L中每一个标注区域的area、orientation、boundingbox属性。

     all = [ img_reg.Area];%求出6个连通域的像素个数

     [d,ind]=max(all);%得到面积最大的连通域

 

     or = [img_reg.Orientation];

     or_m(n)=or(ind);%得到视频每一帧的最大连通域的方向角

     %对每一帧图像的方向角进行判断姿态

     subplot(2,3,4), imshow(newframe);

     if (or_m(n)>ori_low)&&(or_m(n)<ori_high)

         title(strcat('躺卧,NO. ', int2str(n)));

        elseif  (or_m(n)>ors_low)&&(or_m(n)<ors_high)

          title(strcat('站立,NO. ', int2str(n)));

        elseif  title(strcat('其他,NO. ', int2str(n)));    

     end

 

 

     %对每一帧图像的长宽比进行判断姿态

     subplot(2,3,5), imshow(newframe);

     if ratio(n)<bo_t1&&ratio(n)>bo_t2

         title(strcat('躺卧,NO. ', int2str(n)));

        elseif  ratio(n)>bo_z1&&ratio(n)<bo_z2

          title(strcat('站立,NO. ', int2str(n)));

        elseif  title(strcat('其他,NO. ', int2str(n)));

     end  

end文章来源地址https://www.toymoban.com/news/detail-782671.html

到了这里,关于基于matlab视频的人体姿态检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Opencv实践 - 人体姿态检测

            本文仍然使用mediapipe做练手项目,封装一个PoseDetector类用作基础姿态检测类。         mediapipe中人体姿态检测的结果和手部跟踪检测的结果是类似的,都是输出一些定位点,各个定位点的id和对应人体的位置如下图所示:         关于mediapipe的pose解决方案类更详细

    2024年02月03日
    浏览(46)
  • MediaPipe人体姿态、手指关键点检测

    Mediapipe是google的一个开源项目,用于构建机器学习管道 提供了16个预训练模型的案例:人脸检测、Face Mesh、虹膜、手、姿态、人体、人物分割、头发分割、目标检测、Box Tracking、Instant Motion Tracking、3D目标检测、特征匹配、AutoFlip、MediaSequence、YouTube-8M 肢体识别本质上还是分类

    2024年02月08日
    浏览(56)
  • 人体姿态检测 通过Opencv+Openpose实现

    通过一个偶然机会,我了解到了人体姿态解算,在学习K210之余,我便想着通过opencv实现这个功能,查找了很多资料,发现可以利用opencv+openpose实现,接着我又开始找一些资料,在pycharm上部署。 人体姿态估计的一个有趣应用是 CGI(computer graphic image,一种电影制造技术)应用

    2024年02月08日
    浏览(76)
  • Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    1、人体姿态估计简介 2、人体姿态估计数据集 3、OpenPose库 4、实现原理 5、实现神经网络 6、实现代码 人体姿态估计(Human Posture Estimation),是通过将图片中已检测到的人体关键点正确的联系起来,从而估计人体姿态。 人体关键点通常对应人体上有一定自由度的关节,比如颈、

    2024年02月04日
    浏览(46)
  • 利用机器学习,进行人体33个2D姿态检测与评估

    前几期的文章,我们分享了人脸468点检测与人手21点的代码实现过程,本期我们进行人体姿态的检测与评估 通过视频进行人体姿势估计在各种应用中起着至关重要的作用,例如量化体育锻炼,手语识别和全身手势控制,还可以在增强现实中将数字内容和信息覆盖在物理世界之

    2023年04月08日
    浏览(35)
  • Mediapipe人体骨架检测和实时3d绘制——Mediapipe实时姿态估计

    大约两年前,基于自己的理解我曾写了几篇关于Mediapipe的文章,似乎帮助到了一些人。这两年,忙于比赛、实习、毕业、工作和考研。上篇文章已经是一年多前发的了。这段时间收到很多私信和评论,请原谅无法一一回复了。我将尝试在这篇文章里回答一些大家经常问到的问

    2024年02月03日
    浏览(60)
  • YOLOv5姿态估计:HRnet实时检测人体关键点

    前言: Hello大家好,我是Dream。 今天来学习一下 利用YOLOv5进行姿态估计,HRnet与SimDR检测图片、视频以及摄像头中的人体关键点 ,欢迎大家一起前来探讨学习~ 首先需要我们利用Pycharm直接克隆github中的姿态估计原工程文件,如果不知道怎样在本地克隆Pycharm,可以接着往下看,

    2024年01月17日
    浏览(69)
  • 基于人体姿态识别的AI健身系统(浅谈

    目录 前言 一、人体姿态识别的一些入门知识点 二、Blazepose 算法简介 三、AI健身系统的实现 随着全民健身热潮的兴起,越来越多的人积极参加健身锻炼,但由于缺乏科学 的运动指导,使健身难以取得相应的效果。据市场调查显示,没有产品可以自动分析健身 运动并提供指导。而

    2024年02月02日
    浏览(45)
  • YOLOv8 人体姿态估计(关键点检测) python推理 && ONNX RUNTIME C++部署

    目录   1、下载权重 ​编辑2、python 推理 3、转ONNX格式 4、ONNX RUNTIME C++ 部署 utils.h utils.cpp detect.h detect.cpp main.cpp CmakeList.txt 我这里之前在做实例分割的时候,项目已经下载到本地,环境也安装好了,只需要下载pose的权重就可以 输出:   用netron查看一下:  如上图所是,YOLO

    2024年02月07日
    浏览(48)
  • 基于 Python 和深度学习技术实现的人体姿态识别

    人体姿态识别是计算机视觉领域的一个重要应用,它通过识别人体的关键点和关节位置,能够准确地判断人体的姿态和动作。这项技术可以应用在很多领域,比如运动训练、医疗康复、安保监控等,为人们的生活和工作带来了很大的便利和效益。 在本文中,我们将介绍一种基

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包