m基于形态学处理和边缘检测的人员跟踪检测算法matlab仿真

简介: m基于形态学处理和边缘检测的人员跟踪检测算法matlab仿真

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

22e3f72a7b394805417eae99802d1be8_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
261b83ae2d464d8a6c0274f4b2b83ae9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8599cbe0f2093ea55217e0598cdc40ec_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
3dcabf7c6c6002f7a8f8e6b4fbfe0990_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
2189aeacd4277b262cb3713f2cb376e3_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

   视频图像分析是近年来计算机视觉领域中备受关注的前沿方向。从技术角度而言,其研究内容相当丰富,主要涉及到模式识别、图像处理、计算机视觉、人工智能等学科知识;同时动态场景中运动的快速分割、非刚性运动、目标之间互相遮挡或停止的处理等也为视频图像分析研究带来了一定的挑战。其中人运动的视觉分析是近年来计算机视觉领域中备受关注的前沿方向,它从包含人的图像序列中检测、识别、跟踪人并对其行为进行理解和描述,属于图像分析和理解的范畴。

  其研究核心主要是从单个或多个视频序列中检测和跟踪运动人体,获取数据信息,进而描述和理解人体运动。这是一个很有挑战性的跨学科的研究课题,涉及到计算机视觉、计算机图形学、图像处理、模式识别和人工智能等多个学科。

  目前,对于运动物体的检测和跟踪技术有着广泛的应用,概括起来有如下几个方面:

·智能监控:在银行、商店、停车场等对安全要求敏感的场合的保安设施中常常都装有一些可视化的监控设备。

·感知接口:在高级用户接口应用领域,希望计算机或机器人能更加智能的感知外部环境,即能通过识别跟踪分析使用者的面部表情、身体姿势和于势等的含义,来达到与人的交流,提高计算机或机器人的智能水平。

 ·运动分析:跟踪图像序列中感兴趣的人体部位,获得其运动特性。

 ·虚拟现实:目前许多电脑游戏中人体、动物行为的逼真设计效果得益于人体及动物的运动跟踪分析。

2.1 背景提取

   由于人群视频空域上每个像素点的灰度值是沿时间轴不断变化的一维随机信号。该信号的非平稳段意味着有前景人群通过该像素点,而平稳段意味着该点表示背景图像。本算法的核心想法就是提取每个像素点的平稳部分像素值。假设某一帧的图像序列的像素值为I,那么相邻帧之间的像素值变化为:

55900c0aa011bc3c0607b3fcf0ba80fe_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   式子1表示,当差值大于某个门限值的时候,像素变化为两者的差值,而当小于某个门限的时候,那么认为像素值没有改变,即为0.那么通常情况下,这个亮度变化会满足的如下的变化情况:

96877046f81f9c16305e1b1cb8a9cbaf_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   从上图的曲线可知,当某一段的值为0的时候,这说明这段的像素值没有发生改变,即这段的像素值即为实际的背景像素值。 

2.2 运动物体检测

   主要通过原视频和提取的背景做差分运算,从而获得实际的运动物体,运动物体的检测,其主要流程为差分运算,二值化处理,形态学处理,边缘提取,最后获得运动物体的捕获。经过背景消减法获取的前景,可以通过设置阈值得二值图像。

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

2.3 形态学处理

   图中运动物体基本被提取出来了,但是提取出来的视频具有较大的噪声干扰,这样会严重影响实际的检测效果, 经过背景减后的二值化图像中,可能还存在一些噪声以及断裂,可以通过数学形态学处理使人群信息更加清晰、完整。数学形态学将二值图象看成是集合,并用结构元素进行“探测”。结构元素是一个可以在图象上平移、且尺寸比图象小的集合。基本的数学形态学运算是将结构元素在图象范围内平移,同时施加交、并等基本集合运算。数学形态学的实质是通过图象集合与结构元素间的相互作用来提取有意义的图象信息,不同的结构元素可以提取不同层面的图像信息。常用的二值图像的形态学运算有:膨胀运算、腐蚀运算、闭运算和开运算。

3.MATLAB核心程序

rows  = size(seq,1);    
cols  = size(seq,2); 
colors=['b.' , 'm.' , 'k.' , 'b*' , 'm*' , 'k*', 'bo' , 'mo' , 'ko',];
p = 1;
for k = 15:n_frames-90
    disp('--------------------------------');
    disp('Frame No.');k
    figure(2);
    subplot(331);
    imshow(seq(:,:,k),[]);title('原始的图像');    
    
    %Frame differencing
    images2(1:rows,1:cols) = func_framediff(seq(1:rows,1:cols,k),back3); 
    subplot(332);
    imshow(images2,[]);title('差分结果');
 
    %Morphological Processing 
    images3(1:rows,1:cols) = func_morpho(images2(1:rows,1:cols)); 
    subplot(333);
    imshow(images3,[]);title('滤波结果');    
 
    %Edge detection
    images4(1:rows,1:cols) = func_edgedetection(images3(1:rows,1:cols));
    subplot(334);
    imshow(images4,[]);title('边缘检测效果');     
    
    
    
    %显示检测效果
    [images5(1:rows,1:cols,1:3),images6(1:rows,1:cols,1:3),images7(1:rows,1:cols,1:3),Xcenters,Ycenters] = func_detect(images3,images4,seq(:,:,k));
    subplot(335);
    imshow(images5,[]);title('实际检测结果');    
    
    %进行跟踪
    subplot(336);
    imshow(images6,[]);title('人物跟踪');
    
    subplot(337);
    imshow(images7,[]);title('人物跟踪'); 
    
    
    
    %进行跟踪
....................................................................
    
    
    ind(p) = I;
  
    if isempty(Xcenterst) == 0 & isempty(Xcenters) == 0
        res3(1:rows,1:cols,1:3) = func_tracker(images3,seq(:,:,k),Xcenterst,Ycenterst,Xcenters,Ycenters,ind);
        subplot(338);
        imshow(res3,[]);title('人物跟踪');     
    else
        subplot(338);
        imshow(images7,[]);title('人物跟踪');     
    end
 
    p = p + 1;
end
相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
272 0
|
2月前
|
算法
基于MPPT算法的光伏并网发电系统simulink建模与仿真
本课题基于MATLAB/Simulink搭建光伏并网发电系统模型,集成PV模块、MPPT算法、PWM控制与并网电路,实现最大功率跟踪与电能高效并网。通过仿真验证系统在不同环境下的动态响应与稳定性,采用SVPWM与电流闭环控制,确保输出电流与电网同频同相,满足并网电能质量要求。
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
178 8
|
2月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
189 8
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
机器学习/深度学习 数据采集 负载均衡
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
结合多种启发式解码方法的混合多目标进化算法,用于解决带工人约束的混合流水车间调度问题(Matlab代码实现)
168 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
158 0
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
132 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
118 0
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
132 0

热门文章

最新文章