m公交车上车乘客实时计数系统matlab仿真

简介: m公交车上车乘客实时计数系统matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

28e4f6305e825e4ab49c501c34ea0128_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
51a23de94a80ea799b220d4ec7aa103f_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8fd9790edadd9ff7ace3445bf94cd1bd_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要
视频预处理:

主要包括视频防抖处理,噪声干扰滤波处理等步骤

头部提取:

由于这里,需要统计的人数,其主要特征是头部信息较为完整,而身体部分存在较大的重叠,所以这里我们主要对头部进行提取。

具体思路如下:

   目标提取,获得视频的运动部分;

   背景去除,干扰去除,通过这个步骤,获得无背景干扰的运动目标

   通过提取头部头发纹理以及脸部特征的方法获得每个目标的头部,并通过边缘检测的方法,提取头部轮廓信息。

数量统计:

    通过特征匹配的方法,对检测到的轮廓,分析出对应的是否是头部,如果是头部,就进行计数统计。

整个算法的整体流程图如下图所示:

9e4c623f58ddae9454ef8f90e367d223_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

     中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。中值滤波的目的是保护图像边缘的同时去除噪声。 

    阶跃形的边缘,Canny推导出的最优边缘检测器的形状与高斯函数和一阶导数类似,因此Canny边缘检测器就是由高斯函数的一阶导数构成的。我们知道,高斯函数是圆对称的,因此Canny算子在边缘方向上是对称的,在垂直于边缘的方向上是反对称的。这就意味着该算子对最急剧的变化方向上的边缘特别敏感,但在沿边缘方向上是不敏感的。

    根据Canny的定义,中心边缘点为算子nG与图像f(x,y)的卷积在边缘梯度方向上的区域中的最大值。这样,就可以在每一点的梯度方向上判断此点强度是否为其领域的最大值来确定该点是否为边缘点。当一个像素满足以下三个条件时,则被认为是图像的边缘点。 

(1)该点的边缘强度大于沿该点梯度方向的两个相邻像素点的边缘强度;

(2)与该点梯度方向上相邻两点的方向差小于45度;

(3)以该点为中心的33领域中的边缘强度极大值小于某个阈值。 此外,如果(1)和(2)同时被满足,那么在梯度方向上的两相邻像素就从候选边缘点中取消,条件(3)相当于区域梯度最大值组成的阈值图像与边缘点进行匹配,这一过程消除了许多虚假的边缘点。 图像边缘检测的基本步骤:

(1) 滤波,边缘检测主要基于导数计算,但受噪声的影响。但滤波器在降低噪 声的同时也导致了边缘强度的损失。

(2) 增强,增强算法将邻域咴度有显著变化的点突出显示。一般通过计算梯度 幅值完成。 (3) 检测,但在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测 是梯度幅值阈值的判定。

(4) 定位,精确确定边缘的位置。

    一般情况下,获得的边缘,会存在较大的缺口,这里,我们使用膨胀处理,修复边缘,膨胀原理如下所示:

   假定二值图像A和形态学处理的结构元素B是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素,当结构元素的原点移到点(x,y)时,记为Sxy

   膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。A被B膨胀是所有位移z的集合,这样, 和A至少有一个元素是重叠的。我们可以把上式改写为: 结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。

⑴ 用结构元素B,扫描图像A的每一个像素

⑵ 用结构元素与其覆save func\tmps.mat L1 X1 X2 Y1 Y2 I
else

CNT = CNT + 1;
if xlag == 1 & CNT <= 5;
   load func\tmps.mat
   Xc(frm) = (X1(I)+X2(I))/2;
   Yc(frm) = (Y1(I)+Y2(I))/2;
else
   Xc(frm) = 0;
   Yc(frm) = 0;  
end

end

if frm > 1 & mod(frm,2) == 0
Xc1 = Xc(frm);
Yc1 = Yc(frm);
save func\xy1.mat Xc1 Yc1
end
if frm > 1 & mod(frm,2) == 1
Xc2 = Xc(frm);
Yc2 = Yc(frm);
save func\xy2.mat Xc2 Yc2
end

if frm > 4
load func\xy1.mat
load func\xy2.mat

if sqrt((Xc1 - Xc2)^2 + (Yc1 - Yc2)^2) > 80 & Yc2 - Yc1 > 0

  PEOPLE = PEOPLE + 1;

end
end

[R1,C1,K] = size(I0);

I_final = I0;
for i = 1:R1

for j = 1:C1
    if L1(i,j,1) == 255 
       I_final(i,j,1) = 255;
       I_final(i,j,2) = 0;
       I_final(i,j,3) = 0;
    end
end

end盖的二值图像做“与”操作

⑶ 如果都为0,结果图像的该像素为0。否则为1

3.MATLAB核心程序

else
    CNT = CNT + 1;
    if xlag == 1 & CNT <= 5;
       load func\tmps.mat
       Xc(frm) = (X1(I)+X2(I))/2;
       Yc(frm) = (Y1(I)+Y2(I))/2;
    else
       Xc(frm) = 0;
       Yc(frm) = 0;  
    end
end
 
if frm > 1 & mod(frm,2) == 0
   Xc1 = Xc(frm);
   Yc1 = Yc(frm);
   save func\xy1.mat  Xc1 Yc1
end
if frm > 1 & mod(frm,2) == 1
   Xc2 = Xc(frm);
   Yc2 = Yc(frm);
   save func\xy2.mat  Xc2 Yc2
end
 
if frm > 4
   load func\xy1.mat
   load func\xy2.mat
   
   if sqrt((Xc1 - Xc2)^2 + (Yc1 - Yc2)^2) > 80 & Yc2 - Yc1 > 0
      PEOPLE = PEOPLE + 1;
   end
end   
 
[R1,C1,K] = size(I0);
 
I_final = I0;
for i = 1:R1
    for j = 1:C1
        if L1(i,j,1) == 255 
           I_final(i,j,1) = 255;
           I_final(i,j,2) = 0;
           I_final(i,j,3) = 0;
        end
    end
end
相关文章
|
22天前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
13天前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
13天前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
27天前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
141 15
|
18天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
|
22天前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
352 5
|
18天前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
109 0
|
23天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
23天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
140 14
|
18天前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)

热门文章

最新文章