【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式

⛳️座右铭:行百里者,半于九十。
更多Matlab图像处理仿真内容点击👇
Matlab图像处理(进阶版)
付费专栏Matlab图像处理(初级版)

⛳️关注优快云海神之光,更多资源等你来!!

⛄一、背景差分法和帧间差分法的车辆运动目标检测简介

1 引言
运动目标检测是从图像序列中检测运动目标.通过运动目标检测可以得到图像中的运动目标,获取图像中的运动信息.运动目标检测在医学辅助诊断、航天航空、军事导弹精确制导、移动机器人视觉导航、智能交通等领域发挥着重要的作用.因为图像序列受光照、天气、噪声、以及阴影等因素的干扰,精准地检测运动目标显得尤为困难.

目前比较有效的目标检测方法主要是光流法、背景差分法和帧间差分法.光流法的时间复杂度较高,计算量大,实时性较差,且对光线较敏感,变化的光线会被错误地识别为光流.背景差分法和帧间差分法实现简单,且实时性较强,因此有着广泛地应用.帧间差分法只依赖于邻近的几个图像帧,稳定性较好,对环境变化适应性很强,即使在外部环境变化剧烈的情况下,仍然能够取得很好的效果.帧间差分法的缺点是帧间间隔的选取对目标识别的结果影响较大.背景差分法对背景图像的要求相对较苛刻,背景图像不允许存在运动目标,并且能实时更新适应环境的变化.但是传统的运动目标检测算法不能去除车辆运动目标的阴影部分,阴影经常被误检为车辆的一部分,影响获取正确的车辆目标信息.本文提出了将背景差分法和帧间差分法两种方法结合起来的车辆运动目标检测方法,得到去除阴影的车辆运动目标.

1 算法介绍
1.1 背景差分法

背景差分法是运动目标检测最为简单的一种方法.背景差分法的原理,由于运动目标和背景在像素值上存在较明显的差异,利用当前图像与背景图像进行差分,差分图像每一个像素的值与预先设定的阈值进行比较,如果像素值小于阈值,则判定为背景区域,反之为运动目标区域.背景差分的原理流程如下:

首先通过式(1)得到当前图像和背景图像的差分图像,即:

Ek(x,y)=|Pk(x,y)−Bk(x,y)|         (1)

然后根据式(2)对差分图像Ek(x,y)的像素值与给定的阈值进行比较,对差分图像进行二值化,T为给定的阈值,1代表运动目标区域,0代表背景区域.
在这里插入图片描述
1.2 帧间差分法
帧间差分法是差分连续两帧来获得运动目标区域.当图像序列中出现运动目标时,两帧之间就会出现较明显地变化.两帧差分得到差分图像,差分图像再通过设定的阈值进行判断,进行图像二值化,来确定图像序列中有无运动目标.

首先通过式(3)得到第k帧图像Pk(x,y)和第k-1帧图像Pk−1(x,y)的差分图像Ek(x,y):

Ek(x,y)=|Pk(x,y)−Pk−1(x,y)|         (3)

然后根据式(4)对差分图像Ek(x,y)的像素值与给定的阈值进行比较,对差分图像进行二值化,T为给定阈值,1代表运动目标区域,0代表背景区域.
在这里插入图片描述

2 算法改进
2.1 背景建模

直方图统计背景模型是一个常见的背景建模方法,该算法受噪声的影响较小,因此提取的背景图像较优质,但计算量大,时间复杂度较高.并且图像中较远的景物和运动目标会连接在一起,错误的把运动目标计算为背景,从而影响背景图像的质量.

单高斯背景模型的思想是假设图像中每个像素点的像素值出现的概率服从高斯分布,将像素点的颜色值看作一个随机过程X.设I(x,y,t)表示像素点(x,y,t)在t时刻的像素值,则有:
在这里插入图片描述
其中μt和σt为t时刻该像素高斯分布的期望值和标准差.单高斯背景模型仅适用于背景单一不变的场合.基于以上两种背景建模方法的缺陷,以及实验效果,采用均值背景模型来获取背景.算法思想是将车辆运动目标当作噪声,通过累积平均消除噪声,运用包含运动目标的图像序列通过取平均来获取背景图像.简而言之,就是将图像序列所有的像素点求和,取平均值来表示背景.再将平均值与阈值相比较,最后得到背景模型.假如对应位置的像素值超过背景模型中的阈值范围,就认为它是车辆运动目标.公式如下:
在这里插入图片描述
其中Bk 表示背景图像,N表示帧的数目,image(x,y)表示在第i帧图像序列中的所有(x,y)像素点所构成的整幅背景图像.

2.2 背景差分二值化
通过均值背景法获取背景模型之后,将当前图像帧Pk(i,j,k)与背景图像Bk(i,j,k)进行式(7)背景差分运算.再通过式(8)进行像素灰度值与阈值的比较,进行二值化,得到车辆运动目标.其表达式为:
在这里插入图片描述
车辆运动目标时的敏感程度.

2.3 图像边缘检测
常见的边缘检测算子有Prewitt算子、Roberts算子、Log算子、Canny算子及 Robert算子.相比之下,Roberts算子是一种较简单的算子,采用2×2的模板对图像进行处理,利用局部差分算子寻找边缘,并使用对角线方向相邻两像素之差来近似表示梯度幅值检测边缘.Roberts算子检测垂直边缘的效果优于斜向边缘,定位精度高.实验表明,该算子在分割边缘明显且噪声较少的图像时效果良好,边缘定位准确,相比于其他3×3算子,在不经过图像后处理时,可以给出相对较细的边缘.

对图像函数f(x,y)中的每一个像素元素,通过公式(9)获取该元素的梯度值:
在这里插入图片描述
其中,Δxf,Δyf分别为:
在这里插入图片描述
2.4 边缘图像差分
分别对背景差分二值化图像与对背景差分图像进行边缘检测,得到了两张边缘图像EG1(x,y)和EG2(x,y).再对两张边缘图像进行帧间差分运算得到

EG(x,y).EG(x,y)=|EG2(x,y)−EG1(x,y)|         (12)

2.5 图像后处理
由于噪声和边缘间断的影响,得到的车辆运动目标图像不够理想,因此需要对差分后的图像进行后处理.利用中值滤波去除部分干扰,利用腐蚀和膨胀剔除部分多余边缘线条,使运动目标区域封闭且完整连续.

⛄二、部分源代码

function varargout = EasyTrack(varargin)
% EASYTRACK MATLAB code for EasyTrack.fig
% EASYTRACK, by itself, creates a new EASYTRACK or raises the existing
% singleton*.
%
% H = EASYTRACK returns the handle to a new EASYTRACK or the handle to
% the existing singleton*.
%
% EASYTRACK(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in EASYTRACK.M with the given input arguments.
%
% EASYTRACK(‘Property’,‘Value’,…) creates a new EASYTRACK or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before EasyTrack_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to EasyTrack_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help EasyTrack

% Last Modified by GUIDE v2.5 12-Jun-2022 23:54:34

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @EasyTrack_OpeningFcn, …
‘gui_OutputFcn’, @EasyTrack_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before EasyTrack is made visible.
function EasyTrack_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to EasyTrack (see VARARGIN)

% Choose default command line output for EasyTrack
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes EasyTrack wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = EasyTrack_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% 最核心的函数,检测按钮
function mainB_Callback(~, ~, handles)

%数据的前期准备
set(handles.numText,‘string’,0);%计数框清零
set(handles.endTime,‘string’,0);%结束时间清零
set(handles.startTime,‘string’,datestr(datetime(‘now’)));
set(handles.infoP,‘Visible’,‘on’);

%视频获取途径的选择
camSwitch=get(handles.radioCam,‘value’);%获取值
position=handles.position;
areaSwitch=handles.areaSwitch;
if areaSwitch>0;
BW = handles.BW;%传递二进制图
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]罗敏,刘洞波,文浩轩,陈鑫海,宋丹.基于背景差分法和帧间差分法的车辆运动目标检测[J].湖南工程学院学报(自然科学版). 2019,29(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值