帧差法原理
- 格式:docx
- 大小:37.72 KB
- 文档页数:4
基于视频图像的车速检测方法分析摘要:行车速度检测在交通事故识别过程中非常重要。
以往的行车速度计算方式只可以测量车辆碰撞时的速度。
碰撞发生前,驾驶员采取制动措施降低车速,造成实测车速偏低,影响事故认定结果。
因此,本文主要研究基于视频图像的车速检测方法,能够准确地测量出碰撞前的车速,为交通事故识别提供依据。
关键词:视频图像;车速检测;方法1.基于视频的车速检测原理如今,伴随监控设备的大量运用,公路上安装了很多的监控设备,以此方便了交通管理。
监控摄像机通常安装在公路的顶部或一侧的位置,高度在5-10m,可按需求安装提供双向或单向的车辆监控视频影像。
摄像机和公路上车辆的空间位置如图1所示。
速度检测的方法最为基础的依旧是按照视频来作为依据,通过车辆运动位移除以车辆行驶时间得到的。
行车速度计算公式为:V=(S2-S1)/(T2-T1)=△S/△T。
根据行车速度计算公式,行车速度检测一般是通过计算一定距离内运动的时间,或是一定时间内汽车移动的距离来实现的。
所以在实际运用过程中,可以通过视频图像检测直接获取汽车运行的时间△T,但无法直接得到汽车运行的距离△s。
所以,通过视频来检测车速的办法是通过检测车辆在运动时,在各帧中的图像坐标,通过此坐标与现实位置公路的坐标系的映射关系,通过这样的办法将二维转换成三维,从而得到得到实际位移△s,实现速度检测。
图1 车速检测原理图2.车速检测系统总体构架速度检测模块主要是基于图像处理的。
这个系统主要包括交通视频采集、摄像机标定、车辆检测、车辆跟踪和车速检测。
系统的工作流程如图2所示。
速度检测系统需要满足以下功能:(1)在监控的同时完成对车速的检测;(2)可获取车辆流量、车速、平均车速等多种交通信息;并且可以精准定位车辆牌照,实现超速违章的准确定位。
图2 车速检测系统示意图2.1 硬件构架视频测速的主要硬件部分是CCD摄像机。
CCD摄像机的视频采集卡可以把实时视频图像转换成连续帧的数字图像序列。
OpenCv图像处理篇之帧间差分法帧差法是背景减图法中的⼀种,只不过是帧差法不需要建模,因为它的背景模型就是上⼀帧的图,所以速度⾮常快,另外帧差法对缓慢变换的光照不是很敏感,所以其⽤途还是有的,有不少学者对其做出了出⾊的改进。
其基本原理可以⽤下⾯公式看出: |i(t)-i(t-1)|<T 背景 |i(t)-i(t-1)|>=T 前景 其中i(t),i(t-1)分别为t,t-1时刻对应像素点的像素值,T为阈值。
当然其缺点也不少,容易出现”双影”和”空洞”现象。
⽤opencv2.3.1+vs2010做了个简单的实验,其实验代码如下:// frame_diff.cpp : 定义控制台应⽤程序的⼊⼝点。
//#include "stdafx.h"#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/core/core.hpp>#define threshold_diff 20 //设置简单帧差法阈值using namespace cv;using namespace std;int main(int argc,unsigned char* argv[]){Mat img_src1,img_src2,img_dst,gray1,gray2,gray_diff;bool pause=false;VideoCapture vido_file("IndoorGTTest1.avi");//在这⾥改相应的⽂件名namedWindow("foreground",0);for (;;){if(!pause){vido_file >>img_src1; //因为视频⽂件帧数已经固定了,所以每次到这句语句都是读取相邻的帧数,没到时间视频并不向前⾛cvtColor(img_src1,gray1,CV_BGR2GRAY);imshow("video_src",img_src1);//可以事先不⽤新建⼀个窗⼝waitKey(5);vido_file >>img_src2;cvtColor(img_src2,gray2,CV_BGR2GRAY);imshow("video_src",img_src2);//可以事先不⽤新建⼀个窗⼝waitKey(5);subtract(gray1,gray2,gray_diff);for(int i=0;i<gray_diff.rows;i++)for(int j=0;j<gray_diff.cols;j++)if(abs(gray_diff.at<unsigned char>(i,j))>=threshold_diff)//这⾥模板参数⼀定要⽤unsigned char,否则就⼀直报错gray_diff.at<unsigned char>(i,j)=255;else gray_diff.at<unsigned char>(i,j)=0;imshow("foreground",gray_diff);}char c=(char)waitKey(10);if (c==27){break;}if(c==' ')pause=!pause;}return 0;}实验结果如下: 可以看出其“双影”和”空洞”⽐较明显。
背景差分法和帧差法的基本原理一、背景差分法背景差分法呀,就像是一个超级聪明的小侦探在找不同呢。
它的基本原理是这样的,先得有一个背景模型。
这个背景模型就像是一个参照的大框架。
一般呢,是在场景比较稳定的时候建立起来的。
比如说,在一个监控画面里,如果刚开始没有人或者物体在乱动,就可以把这个画面当作背景模型啦。
然后呢,当有新的帧也就是新的画面进来的时候,就把这个新画面和之前建立的背景模型进行比较。
怎么比较呢?就是一个像素一个像素地去看它们之间的差值。
如果某个像素的差值超过了一定的阈值,那这个地方就很可能是有东西发生了变化。
比如说,原来是一片空白的墙,突然有个小黑点,而且这个小黑点对应的像素差值很大,那就说明这里可能有个小虫子或者是别的东西出现了。
这种方法很实用呢,在很多监控领域都有应用。
像在商场里监控有没有小偷,或者在马路上看有没有违反交通规则的车辆。
它能够把我们想要关注的动态物体从相对静态的背景中分离出来,就像是把珍珠从沙子里挑出来一样。
二、帧差法帧差法呢,就有点像是在看动画片的时候,一帧一帧地去看变化。
它不需要事先建立背景模型这么麻烦的事情哦。
帧差法就是直接对相邻的两帧图像进行差值计算。
比如说,第一帧画面里有个小猫咪在左边角落,第二帧画面里小猫咪跑到了中间,那通过这两帧的比较,就能发现小猫咪动的这个区域的像素是有很大变化的。
但是呢,帧差法也有它的小缺点。
有时候,如果物体运动得很慢,相邻两帧之间的变化就很小,可能就不太容易准确地检测出物体的变化了。
而且如果场景里有光线的缓慢变化之类的,也可能会被误判成是物体的运动。
不过呢,它的优点就是计算比较简单快速,不需要像背景差分法那样先建立背景模型,在一些对实时性要求比较高,而且场景相对简单的情况下,帧差法就非常好用啦。
就像在一个简单的小仓库里监控货物有没有被挪动,帧差法就可以快速地给出结果。
这两种方法都有它们的厉害之处,在不同的场景下就可以根据实际需求来选择使用哪一种啦。
帧差法近些年来, 世界各地的学者们针对视频图像中的运动目标检测与跟踪问题做了大量而深入的研究, 提出了很多极其有效的算法难点主要在于视频序列中有各种不同的干扰因素, 这些因素主要包括: 光线明暗的变化、成像传感器本身的固有噪声、运动目标自身的形变或位移变化、背景中的杂波、运动目标的互相遮挡或者自遮挡等, 这些问题还有待于做进一步的研究。
目前, 常用的运动目标检侧方法有: 光流法、背景差分法和帧间差分法。
1.光流法光流法能够检测出运动目标较完整的运动信息, 不需要预先知道场景的任何信息, 能够较好的处理运动背景的情况, 并且可以用于摄像机运动的情况, 适用于帧间位移较大的情况。
但是由于透明性、阴影、多光源、遮挡和噪声等原因,利用光流法进行运动物体检测时, 计算量很大, 无法保证实时性和实用性, 故难以应用到实时系统, 同时对噪声比较敏感, 计算结果精度较低, 难以得到运动目标的精确边界。
2 .背景差分法操作简单, 能够提供完全的特征数据, 但对目标的检测能力较低, 尤其对天气、光照等噪声的影响极其敏感,3T 为预先设定的阈值, 可根据经验选取T , 若选取过大, 则检测的目标则可能出现较大的空洞甚至漏检, 若T 选取过小, 将出现大量噪声。
由于帧间差分法的不足, 就有学者提出了三帧差法, 三帧差法充分考虑了动像素的时间相关性, 对动态检测比较灵敏, 对随机噪声也有很好的抑制作用,但也存在一定缺陷, 即差分图像的检测阈值需手动设定, 大多数情况下只能依据实践经验。
三帧差分法的关键是选取合适的阈值对图像进行二值化。
运动目标自动跟踪是指对目标进行连续的检测并确定其运动轨迹[1].在视频监控领域中,目标智能识别与自动跟踪系统是近几年来的研究重点.在军事、国防和工业等领域有着广泛的应用前景.当前运动目标的检测方法主要有3类:光流法[2]、帧间差分法[3]和背景差分法[4].背景差分法具有简单、运算速度快等诸多优点,使得该法作为运动目标检测的基本方法被普遍采用.但该法暴露出若干问题:一种是因外部条件引起的,如对光线的变化、噪声等造成差分图像检测精度不高,甚至失效;另一种是由差分图像法本身内在局限引起的,主要有空洞[5]、拖影,以及运动目标被拉长等现象.光流法[6]虽然能够适用于静态背景和动态背景两种环境,有较好的适应性,但是其计算复杂度高,运算时间开销很大,不能满足实时性的要求.帧差法[7]比较简单,实时性高,它主要包括减背景方法和相邻帧相减法,即三帧差分法.减背景方法存在背景获取困难、受光照影响严重且更新困难等问题.三帧差分法受光照和阴影影响较小.笔者对三帧差分法进行改进,提出了一种简单有效的运动目标检测方法.1 运动目标实时跟踪系统1. 1 帧差法的基本原理帧间差分法的基本原理就是将前后两帧图像对应像素点的灰度值相减,在环境亮度变化不大的情况下,如果对应像素灰度相差很小,可以认为此处物是静止的;如果图像区域某处的灰度变化很大,可以认为这是由于图像中运动物体引起的,将这些区域标记下来,利用这些标记的像素区域,就可以求出运动目标在图像中的位置.一般采用的帧差法是在连续的图像序列[8]中2个或3个相邻帧间采用基于像素的时间差分并且阈值化来提取图像的运动区域.该运动目标实时跟踪系统是采用三帧差分来进行运动目标检测,这种方法不仅能提高运动目标检测[9]的速度,而且提高了所检测运动目标图像的完整性.均值滤波均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
背景差分法又称背景减法,背景差分法的原理是将当前帧与背景图像进行差分来得到运动目标区域,这种方法较帧差法能更好的识别和提取运动目标,是目前运动分割中最常用的一种方法。
但是需要构建一幅背景图像,这幅背景图像必须不含运动目标,并且应该能不断的更新来适应当前背景的变化,构建背景图像的方法有很多,比较常用的有基于单个高斯模型的背景构建,基于混合高斯模型的背景构建,基于中值滤波器的背景构造,基于卡尔曼滤波器的背景构造,基于核函数密度估计的背景模型构造。
背景差分法法是静止背景下运动目标识别和分割的另一种思路。
如不考虑噪音n(x ,y ,t)的影响,视频帧图像I(x ,y ,t)可以看作是由背景图像b(x ,y ,t)和运动目标m(x ,y ,t)组成:(,,)(,,)(,,)I x y t b x y t m x y t =+ (4-14)由式(4-14)可得运动目标m(x ,y ,t):(,,)(,,)(,,)m x y t I x y t b x y t =- (4-15)而在实际中,由于噪音的影响,式(4-15)不能得到真正的运动目标,而是由运动目标区域和噪音组成的差分图像d(x ,y ,t),即:(,,)(,,)(,,)(,,)d x y t I x y t b x y t n x y t =-+ (4-16)得到运动目标需要依据某一判断原则进一步处理,最常用的方法为阈值分割的方法:(,,)(,,)(,,)0(,,)I x y t d x y t T m x y t d x y t T ≥⎧=⎨<⎩ (4-17)式中T 为一阈值,图4-1为背景差分法的流程图:图4-1 背景差分法的流程图背景差分法较帧差法更能准确地提取运动目标,帧差法如果不与其他方法进行结合只能提取运动变化区域(包括真正的运动目标、被覆盖和显露的背景)而不能直接提取运动目标。
然而,当我们运用背景减法时还要考虑很多问题:(1)要得到背景图像b(x ,y ,t),最简单的方法就是将第一帧没有运动目标的图像帧作为背景图像。
2017年第8期 信息通信2017(总第 176 期)INFORMATION & COMMUNICATIONS(Sum. N o 176)运动目标检测研究方法述论霍天枢,潘鸣宇(吉林广播电视大学,吉林长春130022)摘要:运动目标检测是视频处理系统的基本环节,它是运动目标跟踪、特征提取等复杂的处理的前提。
当前,运动目标检测技术在视频监控、工业监测、质量控制、智能交通系统等众多领域广泛应用。
文章介绍了背景减除、帧差法与光流法的 原理特征,并对比分析指出了这三种方法的优势和局限性,对进一步提高运动目标的准确检测具有意义。
关键词:运动目标检测;光流法;背景差分法;帧差法中图分类号:TP 391.41 文献标识码:A文章编号:1673-1131(2017)08-0104-03〇引言近年来,运动目标检测技术快速发展,是诸多学者在计 算机视觉范畴的热点研究课题,运动目标有效检测对于目标 根据和运动分析非常重要,其主要目的是通过序列图像将运 动物体从复杂的背景图像中分割出来,进而得到目标的位 置、大小、旋转角度及运动轨迹等信息。
运动区域的有效分 割为后续目标根据提供可参考的区域。
要在各种复杂场景(如关照变化、突变、噪声干扰、阴影)中寻找一种通用的运 动目标检测方法存在一定执行难度,众多研究学者提出了自 己的检测算法,致力于构建一种实时准确的检测方式,对相 关研究做出相应贡献。
运动检测算法多数利用连续图像的 时间、空间信息对检测目标区域进行提取的方法来实现,本 文就目前比较常见的方法,即背景减除法(Background Sub traction )、 侦差法 (Frame Difference ) 与光流 (Optical Flow )进行分析。
1背景减除法 1.1算法原理背景减除法将建立好的背景帧图像与输入的当前帧图像 逐像素点差分,用背景帧图像与当前帧图像的差分图像的绝 对值来表示,对有变化的区域则认为是运动目标。
运动的目标识别与跟踪简述1. 引言1.1 研究背景在运动领域,目标识别与跟踪一直是一个备受关注的研究课题。
随着计算机视觉和人工智能技术的不断发展,对于视频中的目标进行自动识别和跟踪已经成为可能。
这项技术在许多领域都有着广泛的应用,如智能监控、无人驾驶、体育分析等。
在过去的几年中,随着深度学习技术在计算机视觉领域的飞速发展,目标识别与跟踪技术取得了显著的进步。
传统的目标识别与跟踪方法往往需要复杂的特征提取和手工设计的模型,但是深度学习方法可以自动学习到更加复杂和抽象的特征,从而提高了识别和跟踪的准确性和稳定性。
目标识别与跟踪仍然面临着许多挑战,如遮挡、光照变化、运动模糊等。
解决这些挑战需要不断地改进算法和模型,以提高对复杂场景的适应能力。
本文将对目标识别与跟踪技术进行概述,介绍目标识别和跟踪的方法及其应用领域。
我们将讨论目前面临的挑战,并展望未来在这一领域的研究方向。
希望通过本文的研究,能够进一步推动目标识别与跟踪技术的发展,为相关领域的应用提供有力的支持。
1.2 研究意义运动的目标识别与跟踪对于人类社会具有重要的意义,其应用领域涉及到安防监控、自动驾驶、智能交通等多个领域。
通过运动目标的识别和跟踪,可以实现对目标的实时监测和定位,有助于提高生产效率、减少人力成本,提升工作效率和安全性。
在现代社会,随着技术的不断发展,人们对于智能化、自动化的需求也越来越强烈。
而运动的目标识别与跟踪技术正是实现智能化的重要基础之一。
通过这项技术,我们可以更准确地追踪目标的位置和运动轨迹,可以在很大程度上提高生产效率,减少资源浪费,提升工作质量和效率。
运动的目标识别与跟踪技术还可以帮助我们更好地理解和掌握运动规律,改善运动训练和指导方式,提高运动员的竞技水平和训练效果。
研究运动的目标识别与跟踪具有重要的现实意义和应用价值,对于推动科技进步和社会发展具有重要的意义。
2. 正文2.1 跟踪技术概述跟踪技术是计算机视觉和图像处理领域的重要研究方向之一。
改进混合高斯模型的运动目标检测算法华媛蕾;刘万军【摘要】针对传统的混合高斯模型存在无法完整检测运动目标、易将背景显露区检测为前景等问题,提出了一种基于混合高斯模型的运动目标检测的改进算法.通过将混合高斯模型与改进帧差法进行融合,快速区分出背景显露区和运动目标区,从而提取出完整的运动目标.在运动目标由静止缓慢转为运动的情况下,为背景显露区给予较大背景更新速率,消除了背景显露区对运动目标检测的影响.在兼顾混合高斯模型在复杂场景中对噪声处理效果差的基础上,利用背景模型替换的方法来提高算法的稳定性.经过反复实验,结果表明改进后的算法在自适应性、正确率、实时性、实用性等方面有了很大的改进,能够在各种复杂因素存在的情况下正确有效地对运动目标进行检测.【期刊名称】《计算机应用》【年(卷),期】2014(034)002【总页数】5页(P580-584)【关键词】混合高斯模型;运动目标检测;帧差法;背景显露区;背景更新速率【作者】华媛蕾;刘万军【作者单位】辽宁工程技术大学软件学院,辽宁葫芦岛125105;辽宁工程技术大学软件学院,辽宁葫芦岛125105【正文语种】中文【中图分类】TP391随着社会经济的发展和城市化进程的加快,日益增长的交通容量的需求已经对现有的交通能力及管理设备造成了巨大压力。
基于视频的车流量检测系统是智能交通系统的重要环节,运动目标检测与提取成为了基本的热点问题。
随着计算机技术和图像处理技术的发展,基于视频采集和监控的智能交通系统会得到更大的发展,成为未来的发展方向。
对这方面的研究也将具有更大的价值[1]。
运动目标检测是从视频序列中检测和识别出运动目标的关键技术。
目前常用的基于视频的运动目标检测方法有光流法[2]、背景差法[3-6]、帧差法[7]以及统计模型法[8-9]等。
目前,最常用的、研究最多的方法是基于统计模型的目标检测方法。
本文以混合高斯模型为基础进行研究。
混合高斯背景模型最早由文献[10]提出,很好地描述了复杂的背景,在视频监控领域发挥了很大的优势;文献[11]提出了混合高斯背景模型与三帧差法结合的运动目标检测方法,并通过面积法对检测结果进行分析;文献[12]通过在颜色和空间上对像素点进行建模,使混合高斯背景模型的自适应性有了明显的改善,降低了环境的干扰;文献[13]通过为每个像素引入参考量来提高背景模型的自适应性。
监控系统下的运动目标检测方法摘要在监控系统中,运动目标的检测是其智能化程度的重要体现。
一个能够克服外界干扰,从而清楚的检测到运动目标的算法,己经成为研究人员的共同研究目标。
本文采用改进的帧间差分背景模型,运用高斯概率分布图的规律来更新背景模型,运用形态学理论来处理结果,效果不错。
关键词运动目标检测;背景差分法;背景模型;帧间差分法DETECTION OF OBJECTS IN VIDEOSABSTRACTIn monitoring system, moving targets detection is the important embodiment of the level of intelligence. One can overcome interference, thus clear detect moving targets algorithm, already become the common study researchers goal. This paper using an improved frame differential method background model, useing the rules of gaussian probability distribution update background model, using morphological theory to processing results, the results are right.KEY WORDS Motion Detection; Background Subtraction; Background Model; Frame Difference Method目录中文摘要................................................Ⅰ英文摘要................................................Ⅱ目录.....................................................Ⅲ引言 (1)1.课题研究的背景 (1)2. 运动目标检测的基本理论 (2)2.1 图像预处理 (2)2.1.1 图像去噪 (2)2.1.2 图像增强 (2)2.2 常用运动目标检测算法 (4)2.2.1 背景差分法 (4)2.2.2 帧间差分法 (5)2.3 运动目标分割 (7)2.4 后处理 (7)3. 改进的帧间差分背景模型 (7)3.1 背景模型建立 (8)3.2 背景模型更新 (8)3.3 运动目标检测 (10)3.4 形态学处理 (10)3.5 实验结果分析 (10)4. 小结 (13)参考文献 (13)致谢 (15)引言本文研究的内容为监控系统下的运动目标的检测方法。
帧差法原理
帧差法是一种常用的视频图像处理算法,它通过比较相邻帧之间的像
素变化来检测视频中的运动物体。
该算法广泛应用于视频监控、智能
交通、动态目标追踪等领域。
下面我们将详细介绍帧差法的原理和实
现过程。
一、帧差法原理
帧差法是一种以运动物体像素变化为基础,通过像素点连续性つ计算
出目标位置和大小的一种方法。
它的基本原理是利用相邻帧之间的差
异信息计算出图像中的运动物体,并对其进行分析和处理。
帧差法的基本步骤如下:
1. 提取视频帧
首先需要从视频中提取帧数据,这一过程称为视频帧提取。
2. 帧间差分
利用相邻帧像素信息的差异计算出差分图像,常见的通过前一帧和当
前帧的信息计算出它们之间的像素差异,得到的差分图像可以表示为:d(x, y, t) = |I(x, y, t)-I(x, y, t-1)|
其中,d表示差分图像,x,y表示像素坐标,t表示帧序号,I表示图像。
显然,通过差分图像我们可以得到相邻帧之间存在的运动物体像
素变化。
3. 去除噪声
由于摄像头噪声,运动物体遮挡、变形等因素的干扰,我们需要对差
分图像进行处理,去除噪声。
这可以通过一些滤波算法来完成,例如
中值滤波、高斯滤波等。
4. 运动物体检测
差分图像中的像素变化可以看作是运动物体的轮廓线,我们需要进一
步将这些轮廓线进行分析,得到运动目标的位置和大小。
这可以通过
一些形态学分析算法来完成,例如连通域分析、形态学操作等。
二、帧差法实现
Python是一个很好的图像处理语言,它有着丰富的图像处理库及工具,如OpenCV、Matplotlib等。
下面我们将以Python为例,简单介绍帧
差法的实现过程。
1. 导入库
首先需要导入Python图像处理库OpenCV的相关工具。
OpenCV是一个
广泛使用的图像处理库,它提供了各种图像处理函数和算法的实现工具。
import cv2
2. 视频帧提取
在视频帧提取的过程中,我们需要指定视频文件,然后从中提取帧数
据。
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
这里我们使用VideoCapture函数打开摄像头,循环读取摄像头的每一帧数据,并使用imshow函数将帧数据显示在窗口中,当按下q键时退出循环。
3. 帧间差分
在帧间差分的过程中,我们需要将得到的帧数据转换成灰度图像,然后计算差分图像。
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
diff = cv2.absdiff(gray1, gray2)
这里我们使用cvtColor函数将图像转换为灰度图像,然后将相邻帧的灰度图像相减得到差分图像diff。
4. 运动物体检测
在运动物体检测的过程中,我们需要通过对差分图像进行形态学分析,从而得到目标位置和大小。
_, thres = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY) dilated = cv2.dilate(thres, None, iterations=2)
contours, hierarchy = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
这里我们使用threshold函数将差分图像二值化,然后使用dilate函
数对二值图像进行形态学的膨胀操作,最后使用findContours函数查
找差分图像中的轮廓线。
综上所述,帧差法原理和实现过程是非常简单和直观的。
但是由于帧
差法对摄像头本身和摄像头视野内物体的限制比较大,因此需要结合
其他算法进行综合应用,以提高检测的效率和精度。