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

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 = Main_object_tracking(varargin)
% _____________________________________________________
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @Main_object_tracking_OpeningFcn, ...'gui_OutputFcn',  @Main_object_tracking_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before Main_object_tracking is made visible.
function Main_object_tracking_OpeningFcn(hObject, eventdata, handles, varargin)
movegui(hObject,'center')
imaqreset
% ID of video source
handles.fuente=2;
%Disable "Start" and "Stop" buttons
set(handles.inicio,'Enable','off');
set(handles.parar,'Enable','off');
set(hObject,'UserData',0)
set(handles.axes1,'XTickLabel',[],'YTickLabel',[])
% Choose default command line output for Main_object_tracking
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);% --- Outputs from this function are returned to the command line.
function varargout = Main_object_tracking_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{1} = handles.output;% --- FUNCTION TO GET BACKGROUND
function cap_fondo_Callback(hObject, eventdata, handles)
% Reset imaq device
imaqreset
set(hObject,'UserData',0) %User data 0 (1 stop capture)
% Enable "Start" and "Stop" buttons
set(handles.inicio,'Enable','off');
set(handles.parar,'Enable','off');
% Disable current button
set(hObject,'Enable','off');
% Get default source
sel_fuente=handles.fuente;
switch sel_fuente% _________________________________________________________________case 1 %WEB CAM        % Open GUI to select the camera to usesel_camera%uiwait% Bring the camera features% id= Camera ID% es_web_ext= indicator if laptop or external cameraglobal id es_web_ext% Determine format depending on the type of camera to useif es_web_ext==0formato='YUY2_176x144';elseformato='RGB24_320x240';endtry% Create video objectvid = videoinput('winvideo',id,formato);% Update handlesguidata(hObject, handles);            catch% Message on errormsgbox('Check the connection of the camera','Camera')% Remove axis labelsset(handles.axes1,'XTick',[ ],'YTick',[ ])end% Specify how often to acquire frame from video streamvid.FrameGrabInterval = 1;set(vid,'TriggerRepeat',Inf);% Start capture% _______Get Background_________vid.FramesPerTrigger=50;start(vid);data = getdata(vid,50);if es_web_ext==0fondo=double(ycbcr2rgb(data(:,:,:,50)));elsefondo=double(data(:,:,:,50));end% Set last image as background% Show backgroundimshow(uint8(fondo))% Reset video objectstop(vid);clear vidimaqresetcase 2%VIDEO AVI[nombre, ruta]=uigetfile('*.avi','SELECT VIDEO AVI');if nombre == 0 %If press cancel button, returnset(hObject,'Enable','on');set(handles.inicio,'Enable','on');set(handles.parar,'Enable','on');returnend

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]罗敏,刘洞波,文浩轩,陈鑫海,宋丹.基于背景差分法和帧间差分法的车辆运动目标检测[J].湖南工程学院学报(自然科学版). 2019,29(04)

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

【目标检测】基于matlab GUI背景差分算法视频运动物体跟踪【含Matlab源码 1915期】相关推荐

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

    ⛄一.背景差分法和帧间差分法的车辆运动目标检测简介 1 引言 运动目标检测是从图像序列中检测运动目标.通过运动目标检测可以得到图像中的运动目标,获取图像中的运动信息.运动目标检测在医学辅助诊断.航天航 ...

  2. 【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】

    ⛄一.正交拉丁方置乱简介 0 引言 随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要.通常应用于数字图像通信的两种保护技术为:数字水印技术和图像加密 ...

  3. 【图像融合】基于matlab GUI高斯金字塔+拉普拉斯金字塔彩色图像融合【含Matlab源码 1506期】

    一.区域分割图像融合简介 图像的分解 对源图像进行融合时,首先对图像进行分解,利用拉普拉斯金字塔分解,先对图像进行高斯金字塔分解,然后再进行拉普拉斯金字塔分解. 1 高斯金字塔分解 记源图像为G0,G ...

  4. 【数字信号调制】基于matlab GUI PCM编码和QAM调制系统【含Matlab源码 2080期】

    ⛄一.PCM编码+QAM调制简介 1 PCM 数字信号是对连续变化的模拟信号进行抽样.量化和编码产生的,称为PCM(Pulse Code Modulation),即脉冲编码调制. 脉冲编码调制就是把一 ...

  5. 【毕业设计_课程设计】基于微信小程序端的视频社交软件+后台管理系统(源码+论文)

    文章目录 0 项目说明 1 项目说明 2 开发环境 3 系统功能 3.1 微信小程序端 3.2 后台管理系统 4 界面展示 5 论文概览 6 项目工程 0 项目说明 基于微信小程序端的视频社交软件 + ...

  6. 【时钟识别】基于matlab GUI Hough变换指针式时钟识别【含Matlab源码 2085期】

    ⛄一.简介 1 仪表示数识别流程 基于刻度准确定位的指针式仪表示数识别方法包括预处理.指针检测.刻度定位.油位计表盘中心拟合与仪表读数计算5个部分.该方法无需预先添加任何表盘信息,算法流程如图2所示. ...

  7. 【图像加密】基于matlab GUI正交拉丁方置乱+混沌图像加密解密【含Matlab源码 636期】

    ⛄一.正交拉丁方置乱及混沌系统简介 0 引言 随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要.通常应用于数字图像通信的两种保护技术为:数字水印技术 ...

  8. 【图像增强】基于matlab双边滤波retinex算法暗光图像增强【含Matlab源码 2305期】

    ⛄一.简介 1 Retinex 1.1 理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线, ...

  9. 【图像重建】基于正交匹配追踪(OMP)算法结合小波变换是图像重建含Matlab源码

    1 简介 ​压缩感知是一种全新的信息采集与处理的理论框架,借助信号内在的稀疏性或可压缩性,利用随机投影实现以远低于奈奎斯特频率的采样频率下对压缩数据的采集.该技术应用于医学成像领域,加快CT和MRI的 ...

最新文章

  1. 【机器学习入门】(10) 特征工程:特征抽取,字典特征抽取、文本特征抽取,附完整python代码
  2. pytorch维度统计
  3. 步步为营:Asp.Net 淘宝通用应用接口攻略
  4. Android --- textColorHint与textColor的用法介绍(包懂)
  5. springboot中的spring-session用mysql实现session共享实践
  6. Oracle查询和解锁表
  7. FEIM Studios 团队欢迎您加入
  8. 一、android XML资源文件详解 —— 从物理上分析
  9. android清理缓存功能吗,Android清理缓存功能实现
  10. Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...
  11. WP8多分辨率解决方案
  12. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
  13. eclipse bookmark的使用
  14. C语言中 整数除法 向上取整的数学证明
  15. rust 连接mysql数据库_Dlang、Rust 以及 Golang 数据库操作方式对比
  16. android天气预报sdk,Android手机集成天气预报功能方案:全国天气预报API调用
  17. 【硬件篇】显卡五连问
  18. xsmax进入dfu模式_iPhoneXSMax怎么强制重启-如何进入DFU模式
  19. 【C++】struct结构体/构造函数
  20. 【阿里出品】数智园区白皮书(附下载)

热门文章

  1. 使用链表进行奇偶分排 c语言
  2. ce修改面板属性_用CE脚本进行FGO一键修改局内属性
  3. python抓取网页表格数据
  4. nn.Sequential()
  5. jboot websocket的使用
  6. [附源码]Python计算机毕业设计SSM基于协同过滤算法的个性化智能图书推荐系统(程序+LW)
  7. 在python终端中打印颜色的3中方式(python3经典编程案例)
  8. ns-3脚本初识——WIFI无线网络:third脚本
  9. python键盘控制_python如何直接控制鼠标键盘
  10. 微信app支付服务端开发记录