MATLAB人体异常行为检测

课题题目:MATLAB人体异常行为检测

  • 课题介绍

本文设计了一款人体行为异常监控系统,主要适用人群是老年人,在摄像头固定的情况下,自动检测人体运动轨迹,并与提前设定好的行为库进行匹配,分析判断是否具有异常行为。

在数字图像预处理部分采用了图像二值化,腐蚀与膨胀等几种方法为人体目标的跟踪和检测做准备。为了克服在实际操作中遇到的问题,采用了帧差法和ViBe算法,帧差法即利用帧间变化与当前帧、背景算法来判断它是否大于阈值,并分析视频中序列的运动特性,ViBe算法则是一种背景建模的方法,背景模型是由邻域像素来创建,并对比背景模型、当前输入像素值检测出前景,确定视频中的目标跟踪。在人体行为识别中,运动目标最小长宽比以及连续帧间的加速度来判断人体行为是否异常,如果检测到异常的行为比如说摔倒、快跑等行为,在识别的过程这种实时监测。

  • GUI界面

  • 篇幅安排

四、源码:

  1. 快跑检测代码

[filename, pathname] = uigetfile({ '*.*'},'打开视频');

videoName = [pathname filename];

Objs=VideoReader(videoName);

Nums=Objs.NumberOfFrames;%读取视频的帧数

FrameRate=Objs.FrameRate;%每秒多少帧

%% <________________________ViBe算法____________________________>%%

%% 设定参数

sample_num = 10;                % 样本库

match_thres = 20;               % 匹配阈值

frame_count = 0;                % 处理帧数

neighbor = [1, 0, -1, -1, 1, 0, 0, -1, 1];  % 邻域选择

%% 判断是否为第一帧

first_flag = true;

for num=1:1:Nums

    frame = read(Objs,num);

    frame_gray = double(rgb2gray(frame));

    if first_flag

        first_flag = false;

        %% 开始初始化

        samples = cell(1, sample_num);

        % 前两个样本设置初始像素

        samples{1} = frame_gray;

        samples{2} = frame_gray;

        % 剩下的样本初始化

        for i = 3:sample_num

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值