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
相关文章
|
7天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
4天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
7天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
该程序基于ACO蚁群优化算法解决VRPSD问题,使用MATLAB2022a实现,输出优化收敛曲线及路径规划结果。ACO通过模拟蚂蚁寻找食物的行为,利用信息素和启发式信息指导搜索,有效求解带时间窗约束的车辆路径问题,最小化总行程成本。
|
5天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
5天前
|
算法 C++ Windows
基于离散差分法的复杂微分方程组求解matlab数值仿真
本程序基于离散差分法求解复杂微分方程组,将连续微分方程转化为差分方程,采用一阶显式时间格式和一阶偏心空间格式。在MATLAB2022a上测试通过,展示了运行结果。
|
10天前
|
机器学习/深度学习 存储 算法
基于圆柱体镜子和光线跟踪实现镜反射观测全景观图的matlab模拟仿真
本程序基于圆柱体镜子和光线跟踪技术,实现镜反射观测全景观图。通过模拟光线在场景与圆柱镜面之间的交互,构建出360°全景视图。核心算法涉及几何光学、计算机图形学和数值计算,适用于MATLAB 2022a版本。
|
10天前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
47 0
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
161 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
116 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
84 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码