m基于C3D-hog-GRNN广义回归神经网络模型的人员异常行为识别算法的matlab仿真

article/2025/9/29 0:44:41

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

      实时的人群异常行为识别是一项极具挑战的工作,具有较高的现实意义和社会需求,快速准确地判断出异常行为并及时预警,一直是我们探索的方向。传统的机器学习算法虽然具有较好的行为识别效果,但是算法的性能严重依赖于人工设计特征,且特征的采用依赖于特定的问题,这就使得算法的泛化能力不足。卷积神经网络作为一种深度模型,因其不需要手动设计特征,可直接作用于原始输入的特性,具有更强的学习和表达能力,在图像识别领域应用广泛。但是CNN中的BP神经网络分类器易导致模型陷入局部最优且收敛速度慢,会对模型精度带来负面影响,而广义回归神经网络(GRNN)仅有一个变量,具有较好的函数逼近能力,不需要迭代,在应用方面效果较优。

       C3D 模型是由最初的3D CNN网络发展而来,包括8个卷积层、5个池化层、2个全连接层以及1个 Softmax 输出层。其中每个卷积核尺寸为 ,步长为 ,且对应一张特征map。每次卷积处理前,需要对图像序列作距离为1的填充处理,将图像的长、宽和序列长各向两端扩展一个单元,使得卷积前后的图像尺寸不变。除第一层的池化核大小和步长设为 外,其余池化层的窗口长度和步长均设为 ,防止过早地合并时序信息,并且保持原有固定的16帧输入结构。有资料显示,C3D模型每秒可处理42个16帧的视频输入,换算成无重叠的情况下的fps为672,可见C3D的处理速度比较快。

       方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。在一副图像中,局部目标的表象和形状(appearance and shape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。

HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):

1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);

2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

4)将图像划分成小cells(例如6*6像素/cell);

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;

6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。

7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。


       GRNN,即General Regression Neural Network,中文全称为广义回归神经网络,是由The Lockheed Palo Alto研究实验室在1991年提出的。GRNN是一种新型的基于非线性回归理论的神经网络模型。GRNN是建立在非参数核回归基础之上的,该神经网络是以测试样本为后验条件,并从观测样本中计算得到自变量和因变量之间的概率密度函数,然后在计算出因变量关于自变量的回归值。由于GRNN不需要规定模型的类型,只需要设置神经网络的光滑因子参数,GRNN神经网络的光滑因子参数的取值对神经网络的输出影响较大,当光滑因子参数较大的时候,其对应的神经元所覆盖的输入区域就越大;当光滑因子参数较小的时候,神经网络对应的径向基函数曲线较陡,因此神经网络输出结果更接近期望值,但此时光滑度越差。由于GRNN广义回归神经网络是基于非线性核回归分析的神经网络,因此,对于任意一个非独立变量y,其相对于独立变量x的回归分析的过程是计算具有最大概率值y。现假设随机变量x和y的联合概率密度函数为f (x ,y),已知x的观测值为X,则y相对于X的回归,即条件均值为:
 

 

        从图3的结构图可知,GRNN神经网络的输入层神经元数目和输入样本的维度是相同的,即每一个神经元将输入信号直接传递给GRNN神经网络的隐含层中。GRNN神经网络的模式层的神经元数目和学习训练样本的数目相同,即每一个神经元都分别对应着一个不同的学习训练样本.

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

3.MATLAB核心程序

function y2 = func_feature1(I1,I2,I3);FX_Number   = 9;  %9个方向
Angle       = 180;%角度
CellSize    = 8;  %分割大小8X8
FilterSize  = 0;  %高斯低通滤波器大小
FilterDelta = 0;  %标准偏差
move_pixel  = 8;  %移动像素%3D卷积核得到空时间特征,输入前后两帧视频信息
Images(:,:,1)=I1;
Images(:,:,2)=I2;
Images(:,:,3)=I3;%但是硬核特征计算,替换为hog法,效果更好
%3D卷积核进行卷积
%获得每一帧的特征
%input—>H1
y1 = [func_HOG_Feature(I1,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
y2 = [func_HOG_Feature(I2,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
y3 = [func_HOG_Feature(I3,move_pixel,FX_Number,Angle,CellSize,FilterSize,FilterDelta,32)]';
%H1—>C2 
y1th = tanh(y1); 
y2th = tanh(y2); 
y3th = tanh(y3); 
%C2—>S3
y1th2 = y1th(1:2:end); 
y2th2 = y2th(1:2:end); 
y3th2 = y3th(1:2:end); 
%out
G1 = conv(y1th2,y2th2,'same');
G2 = conv(y1th2,y3th2,'same');
G3 = conv(y2th2,y3th2,'same');
G  = G1+G2+G3;y  = [G];
......................................................
for k = 1:length(setA1)-2k image3 = rgb2gray(imread(NAME1)); tmps3  = im2bw(imread(NAME2));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   %时空特征提取特征image1b = image1;image2b = image2;image3b = image3;%时空特征提取特征image1b = image1;image2b = image2;image3b = image3;[R,C] = size(tmps1);for i = 1:Rfor j = 1:Cif tmps1(i,j)==1image1b(i,j) = image1(i,j); elseimage1b(i,j) = 0;endif tmps2(i,j)==1image2b(i,j) = image2(i,j); elseimage2b(i,j) = 0;endif tmps3(i,j)==1image3b(i,j) = image3(i,j); elseimage3b(i,j) = 0;end             endend%C3D神经网络模型来提取图像帧中人群的时空特征, 时间维度3y = func_feature1(image1b,image2b,image3b);type = sim(net,y');%容错处理TYPE1(k)=type;if k <= 16TYPE2(k)=round(mean(TYPE1(1:k))); elseTYPE2(k)=round(mean(TYPE1(k-16:k))); end[R,C]=size(tmps1);frame2 = imread(NAME1);for i = 1:Rfor j = 1:Cif tmps1(i,j)==1;frame2(i,j,1)=0;frame2(i,j,2)=255;frame2(i,j,3)=0;endendend%轮廓显示YY = func_position(tmps3,imread(NAME1),80,TYPE2(k)); 
end
05_059_m

4.完整MATLAB

V


http://chatgpt.dhexx.cn/article/HAY6Oked.shtml

相关文章

基于BP神经网络/GRNN神经网络的电力预测matlab仿真

目录 一、理论基础 二、案例背景 三、MATLAB程序 四、仿真结论分析 一、理论基础 BP神经网络&#xff0c;即Back Propagation神经网络&#xff0c;其本质是一种基于误差反馈传播的神经网络算法。从结构上讲&#xff0c;BP神经网络是由一个信息的正向传播网络和一个误差的反…

RNN CNN GCN

RNN CNN GCN 属于深度学习领域——图像识别 主要用于识别提取图像的特征 CNN:对象是图片&#xff0c;一个二维结构&#xff0c;其主要核心是有一个kernel小窗口&#xff0c;用于图片的平移&#xff0c;然后再利用卷积来提取图片的特征。 RNN:针对一维结构&#xff0c;主要利用…

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 -附代码

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 文章目录 基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测1.GRNN 神经网络概述2.GRNN 的网络结构3.GRNN的理论基础4.运输系统货运量预测相关背景5.模型建立6.麻雀搜索算法优化GRNN7.实验结果8.参考文献9.Matlab代码 摘要&…

广义回归神经网络(GRNN)的数据预测

广义回归神经网络是径向基神经网络的一种&#xff0c;GRNN具有很强的非线性映射能力和学习速度&#xff0c;比RBF具有更强的优势&#xff0c;网络最后普收敛于样本量集聚较多的优化回归&#xff0c;样本数据少时&#xff0c;预测效果很好&#xff0c; 网络还可以处理不稳定数…

神经网络(一):GRNN广义回归神经网络理论概念笔记

GRNN广义回归神经网络以及相关概念 https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://blog.csdn.net/guoyunlei/article/details/76101899参考博客 小小白入坑系列&#xff0c;欢迎大佬的指教! 算法网上铺天盖地的&#xff0c;我只是把自己对算法的理…

【GRNN回归预测】基于matlab有限增量进化广义回归神经网络LIEV-GRNN数据回归预测【含Matlab源码 2132期】

⛄一、GRNN模型 GRNN是一种非线性回归的前馈式神经网络。通常是由输入层、模式层、求和层和输出层构成。GRNN算法在运算速度与学习能力上比径向基函数神经网络(radial basis function, RBF)、反向传播神经网络(back propagation, BP)更强&#xff0c;广泛应用于系统辨识、预测…

神经网络学习笔记(二)GRNN广义回归神经网络

广义回归神经网络&#xff08;GRNN&#xff09; 广义回归神经网络是径向基神经网络的一种&#xff0c;GRNN具有很强的非线性映射能力和学习速度&#xff0c;比RBF具有更强的优势&#xff0c;网络最后普收敛于样本量集聚较多的优化回归&#xff0c;样本数据少时&#xff0c;预测…

GRNN神经网络概述

GRNN&#xff0c;General Regression Neural Network&#xff0c;即广义回归神经网络&#xff0c;最早是由美国的Donald F.Specht教授于1991年提出的基于非线性的回归理论的人工神经网络模型[47,48]。GRNN广义回归神经网络具有较好的网络适应能力&#xff0c;从而使得神经网络能…

广义回归神经网络GRNN回归预测-MATLAB代码实现

一、GRNN简介 广义回归神经网络&#xff08;General Regression Neural Network, GRNN&#xff09;是1991年提出的基于径向基函数&#xff08;Radial Basis Fuction&#xff0c;RBF&#xff09;网络的一种改进形式&#xff0c;与径向基函数网络相比&#xff0c;其训练更为方便…

广义回归神经网络(GRNN)的实现(Python,附源码及数据集)

文章目录 一、理论基础1、广义回归神经网络结构2、输入层3、模式层4、求和层5、输出层6、优化思路 二、广义回归神经网络的实现1、实现过程&#xff08;GRNN.py&#xff09;2、预测结果3、参考源码及实验数据集 一、理论基础 广义回归神经网络&#xff08;Generalized Regress…

【机器学习】广义回归神经网络(GRNN)的python实现

【机器学习】广义回归神经网络(GRNN)的python实现 一、广义回归神经网络原理1.1、GRNN与PNN的关系2.2、GRNN的网络结构二、广义回归神经网络的优点与不足2.1、优点2.2、不足三、GRNN的python实现参考资料一、广义回归神经网络原理 1.1、GRNN与PNN的关系 广义回归神经网络(…

C++ Unique函数 详细

unique函数是STL中比较实用的函数之一 包含该函数的函数头文件为 #include <algorithm>2 unique函数可以删除有序数组中的重复元素。 注意&#xff1a; a 这里的删除不是真的delete&#xff0c;而是将重复的元素放到容器末尾 b unique函数的返回值是去重之后的尾地址 c…

c++的unique函数

unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要 #include <algorithm> 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素&#xff0c;注意 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容器的末尾&…

SQL查询JSON格式的字段值 JSON_UNQUOTE与JSON_EXTRACT 去除SQL中双引号

一、最常用的就是 JSON_EXTRACT()函数&#xff0c;用于提取字段值 selectJSON_EXTRACT(a.info,"$.Score")fromjsontest awhereJSON_EXTRACT(a.info,"$.name") "Bob" 二、JSON_UNQUOTE 去除 SQL 中 " " ? MySQL自5.7之后开始支持js…

unique函数的用法

unique函数是用于将矩阵数据中的相同元素删除&#xff0c;只留下不相同的唯一元素。 1.例如: 得到的B矩阵为&#xff1a; 这个相对简单&#xff0c;但是有时需要将矩阵中的元素相同行的删除&#xff0c;也可以用到unique 2.当需要删除矩阵中的出现多次的行数组时 例如&#x…

c++ unique函数详解

unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要#include <algorithm>头文件 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容器的末尾&#xff0c;返回值…

unique函数用法

unique函数用法 unique包含在头文件 #include <algorithm>函数作用&#xff1a;“去除”容器或数组中相邻元素之间重复出现的元素 unique函数的三个参数&#xff1a; 1、想要去重的数据集的起始地址 2、想要去重的最后一个元素的下一个元素的地址 3、比较函数(可以省…

MySQL JSON_EXTRACT()、JSON_UNQUOTE() 函数获取JSON串的值

JSON_EXTRACT()函数作用是读取数据库储存的json值&#xff0c;已key、value的形式获取某个键值 如果json字符串是对象{Object} 1&#xff1a;第一个参数为需要查询的json字段 2&#xff1a;第二个参数为json里需要获取的键名 $.key 如果json字符串是数组[Array] 1&#xff1a;…

c++ unique函数

unique函数属于STL中比较常用函数&#xff0c;它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除&#xff0c;并不是真的删除&#xff0c;而是指重复元素的位置被不重复的元素给占领了(详细情况&#xff0c;下面会讲)。由于它”删除”的是相邻的…

ubuntu启动后一直黑屏

好奇怪的一件事&#xff0c;昨晚使用完ubuntu后&#xff0c;和往常一样拍了快照&#xff0c;但今天打开后就一直黑屏&#xff0c;就突然的有了自己的思想&#xff0c;任我重启电脑都没有任何用处 我采用的方法 徽标cmd回车&#xff0c;输入如下命令,然后重启电脑 netsh winsoc…