基于图像处理运动物体识别

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

基于图像处理运动物体识别

目录

第一章绪论 (1)

1.1课题的背景和意义 (1)

1.2国内外研究动态 (1)

第二章视频捕捉相关技术概述 (3)

2.1 USB2.0接口规范概述 (3)

2.1.1 简介 (3)

2.1.2 USB2.0物理结构概述 (3)

2.1.3 USB2.0系统的构成 (3)

2.1.4 USB2.0的主要优点 (4)

2.2 Video for windows技术架构 (5)

2.2.1 VFW简介 (5)

2.2.2 VFW体系结构 (5)

2.2.3 VFW视频捕获模块AVICap (6)

2.2.4 AVICap窗口类常用的数据结构及窗口类 (7)

2.2.5 利用VFW技术实现视频捕捉的工作流程 (9)

2.2.6 VFW技术实现视频捕获的优缺点 (11)

第三章运动检测技术概述 (12)

3.1 运动图像的含义 (12)

3.2 图像运动检测技术概述 (12)

3.3 运动检测的典型应用 (13)

3.4 运动检测的发展特点 (14)

3.5 运动图像目标检测的研究 (14)

第四章视频捕获的设计方案与实现 (16)

4.1 开发环境介绍 (16)

目录

4.2 视频捕获工具的选择 (18)

4.3 实现视频捕获的基本方法 (18)

4.4 实现视频捕获的具体步骤 (20)

4.4.1 实现视频捕获基本功能的源码 (20)

4.4.2 实现单帧捕捉 (24)

4.4.3 实现视频录像方式一 (25)

4.4.4 实现视频录像方式二 (28)

第五章运动检测监控录像设计与实现 (35)

5.1 概述 (35)

5.2 基本的研究思路 (35)

5.3 实现的步骤 (36)

5.4 功能的改进 (38)

5.5 总结 (38)

第六章论文总结与展望 (49)

6.1 课题完成情况 (49)

6.2 主要的研究成果 (49)

6.3 存在的不足 (49)

6.4 工作展望 (50)

参考文献 (47)

致谢 (49)

第一章绪论

1.1课题的背景和意义

21世纪是信息化的时代,社会将由工业化社会转变为信息化社会,视频技术也因此而得到高速发展。它广泛应用于社会生活的各个方面,包括视频会议、监控系统、可视电话技术以及医疗影像系统等等。人们的生活也得到了很大的变化,人们可以实时地在家里就看到远在千里之外的事情。近年来,视频信号采集与存储在各行各业得到了广泛的应用,生活中有小区安全监控,电讯行业有机站监控,银行系统有柜员监控和金库监控,交通方面有违章和流量监控等等。因此开发带有视频捕捉和监控的程序在日常生活中是非常实用的。

在这些视频应用领域中,使用USB2.0摄像头进行图像采集和运动图像的检测就是其中的一个方面,USB2.0接口具有传输速度快、即插即用、使用方便等优点,因此USB摄像头图像采集技术就将成为图像采集和处理必备的基本技术。通过摄像头对感兴趣的目标或地点进行拍摄并且存储,可以获取视频录像,作为监控之用,在银行、商场、交通路口等有广泛的应用。其次当环境改变,拍摄目标运动时,也可以实时监控并采集运动的图像,并且存储到一个特别的地方,实现视频监控。可以应用于工矿企业、机关学校、银行保卫、公安报警、仓库、车站、码头、宾馆等单位,以实时监视、控制和报警等特点深受广大用户的欢迎,并取得了较大的经济效益与社会效益[8][13]。

运动检测的目的是从序列图像中将变化区域从背景中分割出来。由于光照的变化、背景混乱运动的干扰、运动目标的影子、摄像机的抖动以及运动目标的自遮挡和互遮挡现象的存在,这些都给运动目标的正确检测带来了极大的挑战。运动目标的正确检测与分割影响着运动目标能否正确跟踪和分类.因此成为计算机视觉研究中一项重要的课题[18]。

1.2国内外研究动态

国内外在视频信号的采集与存储方面做了大量的研究工作。目前,除了对一般基于Windows系统下的视频采集与存储、单片机系统下的视频监控设备以外,在高速视频采集、存储和传输,视频采集存储系统的小型化等方面,均取得了许多重要成果。

近年来智能交通系统(ITS)在欧美得到快速发展,它是一种基于图像识别技术的非接触式交通参数视频检测方法,它利用数字图像识别技术,对用高速摄像机拍摄的交通现场画面进行处理,获得被检测车道上车型、车速、车流量等交通参数,为交通控制和管理提供准确的交通流数据,从而更有效地进行交通控制和管理。与传统的接触检测方式相比,它的工作量小,检测范围大,系统可靠性高,是一种很有前途的方法。

运动分析是近年来计算机视觉领域中备受关注的前沿方向,尤其是在美国、英国等发达国家已经开展了大量相关项目的研究。1997年美国国防高级研究项目署(Defense Advanced Research Projects Agency)设立了卡内基梅隆

大学为首、麻省理工学院等高校参与的视觉监控重大项目VSAM(visual surveillance and Monitoring ),英国的雷丁大学已开展了对车辆和行人的跟踪及其交互作用识别的相关研究。在国内,运动图像分析已在人体运动检测与跟踪、智能交通、机器人视觉、运动目标检测与跟踪等诸方面展开了深层次研究。

总之,在多媒体技术飞速发展的今天,视频采集与存储系统将得到广泛的应用,并且不断改进。目前,实现视频捕获主要有两种方法,一种是利用视频捕获卡所附带的SDK开发工具。开发者只需利用采集卡所提供的控件就能方便的进行二次开发。开发简便、采集性能好是其最大的优点。同时,缺点也是显而易见的:这种捕获方法的实现是与设备有关的,依赖于视频捕获卡与摄像头的类型,不利于灵活的应用,而且其封装好的SDK函数不利于用户作更底层一点的操作,扩展性不好。

另一种方法是利用数字视频处理软件开发包直接对数字化的视频捕获

设备捕获到的数据进行处理。用它开发应用程序的特点是捕获视频时不依赖专用的硬件设备,而且应用灵活。随着计算机总体性能的不断提升,用软件来实现视频采集过程也能获得较好的图像效果。windows平台为多媒体信息技术的处理和集成提供了强有力的支持,也为数字视频信息的实时捕获提供了多种实现技术。主要有早期的Microsoft多媒体控制接口MCI(Multimedia Control Interface)这里主要指Video for Windows(VFW),以及现在DirectShow.技术。

第二章视频捕捉相关技术概述

2.1 USB2.0接口规范概述

2.1.1 简介

USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。在视频存储和图像宽带领域中,经常遇到实时高速数据传输的问题。2000年4月,由Intel、Microsoft、NEC、Compaq、Lucent、Phillips等公司发布了USB2.0版本,其传输速率提高到48OMb/s,一时间USB红遍全球.现在USB支持3种传输速率:低速(1.5Mb/s)、全速(12Mb/s)和高速(48OMb/s),四种传输类型:块传输、同步传输、中断传输和控制传输。这使USB应用起来灵活方便,能够满足多种外设需要。USB2.0在传输速度方面有很大改进,但USB设备之间直连互通仍需依赖计算机主机,仍没有合适的直通解决方案。2001年底,USB 开发者论坛USBIF(USB Implementers Porum)发布了USB2.0补充规范USB

0n-The-G。使支持该协议的USB外设可以以主机的身份和另外特定的一组外设直接通信,进一步拓展了USB技术的发展空间[8]。

2.1.2 USB2.0物理结构概述

在终端用户看来,USB系统就是USB设备到主机的简单连接,但对开发人员来说,这种连接可被分为三个逻辑层:功能层、USB设备层和USB总线接口层,且每一层都由主机和USB设备的不同功能模块组成。

USB规范向下兼容,在物理结构上,USB2.0规范具有与USB1.x相同的结构特征,采用分层的星型结构:在连线上,可以使用USB1.1系统已有的设备连线,信号线长度一般不能超过5m。在扩展USB设备连接时,用户可采用级联USB集线器的方式,最多可级联5级USB集线器,使USB设备数量达到127个。

2.1.3 USB2.0系统的构成

USB系统主要由主控制器(Host Controller)、USB、Hub和USB外设(Perip- herals Node)组成系统拓扑结构[14],如图2.1所示。

它的硬件组成:一个实用的USB数据采集系统包括A/D转换器、微控制

器以及USB通信接口。为了扩展其用途,还可以加上多路模拟开关和数字I/O 端口。系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择合适的芯片,设计时应充分注意抗干扰的性能,尤其对A/D采集更是如此。

在微控制器和USB接口的选择上有两种方式,一种是采用普通单片机加上专用的USB通信芯片。另一种方案是采用具备USB通信功能的单片机。

图2.1 USB总线的拓扑结构

2.1.4 USB2.0的主要优点

速度快。USB有高速和低速两种方式,主模式为高速模式,速率为

l2Mbps,另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,USB还提供低速方式,速率为1.5Mb/s[14]。

设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

易于扩展。通过使用Hub扩展可拨接多达127个外设。标准USB电缆长度为3m (5m低速)。通过Hub或中继器可以使外设距离达到30m。能够采用总线供电。USB总线提供最大达5V电压、500mA电流。

使用灵活。USB共有4种传输模式:控制传输(C0NTR0L)、同步传输

(Synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。

2.2 Video for windows技术架构

2.2.1 VFW简介

VFW是微软公司1992年推出的关于数字视频的一个软件包。它能使应用程序数字化并播放从传统模拟视频源得到的视频剪辑。VFW的一个关键思想是播放时不需要专用硬件。为解决数字视频数据量大的问题,需要对数据进行压缩。于是,它引进了AVI的文件标准,该标准未规定如何对视频进行捕获、压缩及播放,仅规定视频和音频该如何存储在硬盘上,在AVI文件中交替存储视频帧和与之相匹配的音频数据。VFW给程序员提供.VBX和AVICap 窗口类的高级编程工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。VFW编程充分体现了C++的类封装风格,使得进行视频软件开发的程序设计工程师,完全不必了解艰深而晦涩的图像压缩原理和图像格式,直接面对的是面向对像的开发模块的标准化的用户界面[2]。

2.2.2 VFW体系结构

VFW以消息驱动方式对视频设备进行存取,可以很方便地控制设备数据流的工作过程。它主要包括多个动态连接库,通过这些组件间的协调合作,来完成视频的捕获、视频压缩及播放功能。VFW体系结构如图2.2所示,VFW主要由以下6个模块组成[7]:

(1)AVICAP.DLL:包含了执行视频捕获的函数,它给AVI文件I/O和视频,音频设备驱动程序提供了一个高级接口。

(2)MSVIDEO.DLL:用一套特殊的DrawDib函数来处理屏幕上的视频操作。

(3)MCIAVI.DRV:此驱动程序包括对VFW的MCIA命令的解释器。

(4)AVIFILE.DLL:支持由标准多媒体I/O(MMIO)函数提供的更高的命令来访问.AVI文件。

(5)压缩管理器(ICM):管理用于食品压缩-解压缩的编解码器(CODEC)。

(6)音频压缩管理器ACM:提高与ICM相似的服务,不同的是它适于波形音频。

图2.2 VFW体系结构图

2.2.3 VFW视频捕获模块A VICap

Visual C++ 在支持VFW方面提供有vfw32.lib、msacm32.lib、winmm.lib等类似的库。特别是它提供了功能强大、简单易行、类似于MCIWnd的窗口类AVICap。AVICap为应用程序提供了一个简单的、基于消息的接口,使之能访问视频和波形音频硬件,并能在将视频流捕获到硬盘上的过程中进行控制[2]。

AVICap支持实时的视频流捕获和单帧捕获并提供对视频源的控制。

虽然MCI也提供数字视频服务,比如它为显示.AVI文件的视频提高了avivideo命令集,为了视频叠加提供了overlay命令集,但这些命令主要是基于文件的操作,它不能满足实时地直接从视频缓存中取数据的要求,对于使用没有视频叠加能力的捕获卡的PC机来说,用MCI提供的命令集市无法捕获视频流的。而AVICap在捕获视频方面具有一定的优势,它能直接访问视频缓冲区,不需要生成中间文件,实时性很强,效率很高。

同时,它也可将数字视频捕获到文件。

使用AVICap窗口类可以轻易将视频捕捉和应用程序相结合。

AVICap给应用程序提供了一个非常简单的、基于消息的从硬件访问视频

和声音的接口,使应用程序可以控制视频从捕获到存盘的过程。

AVICap支持实时的视频流捕捉和单帧捕捉。该类提供了对MCI视频源的完全控制,这样,开发人员就可以任意确定视频捕捉的起点和终点,并且有可能对其中的一个点即单帧进行访问。用AVICap窗口类创建的窗口可以完成以下工作[6]。

(1)将一视频流和音频流捕获到一个AVI文件中。

(2)动态的和视频或声音输入设备进行连接和断开连接。

(3)使用叠加或者预览方法对输入信号进行实时显示。

(4)设定捕捉频率。

(5)显示控制视频源、视频格式和视频压缩的对话框。

(6)装载、创建或保存调色板。

(7)将图片或调色板复制到剪贴板上。

(8)单独捕捉一副图像并且保存为一张与设备无关的图片文件

(DIB)。

2.2.4 A VICap窗口类常用的数据结构及窗口类

AVICap 为应用程序提供了一个简单的、基于消息的接口,使之能够访问视频和波形音频硬件,并能够在视频流捕获到硬盘上的过程中进行控制。这些接口函数,是高级的,经过了优化的,我们利用它们来创建自己的应用程序具有较大的灵活性。

下面是视频捕捉以及处理过程中涉及到的几个很重要的结构:

(1) CAPSTATUS:此结构定义了捕获窗口的当前状态,如:以象素为

单位表示图像的高、宽、预览和重叠方式的标志量,尺寸缩放的标志量等。

(2)CAPDRIVERCAPS:此结构定义了捕获驱动器的能力,如有无视

频叠加能力,以及能否通过用户直接操作捕获窗口而查看视频源、视频格式、视频源、视频显示。

(3)CAPTUREPARMS:包含控制视频流捕获过程的参数,如捕获帧频,指定键盘或鼠标键以终止捕获,捕获时间限制等;

以上3个结构都专门有对应的函数来设置和获得相应结构所包含的相应信息。

(4)VIDEOHDR:定义视频数据块的头信息。在编写回调函数时常用到

其数据成员lpData(指向数据缓存的指针)和dwBufferLength(数据缓存的大小)。

VFW中视频捕捉编程常用的一些VFW函数和宏如下表1所示[16]:

表1 视频捕捉常用的VFW函数和宏

通过使用AVICap窗口类函数,可以在应用系统中方便的集成视频采集

功能。它为应用程序提供了一个基于消息的简单的接口,从而使之能够访问视频采集硬件,并能控制将所捕捉的视频流写到磁盘的过程。用AVICAP窗口类函数创建的窗口(通过CapCreateCaptureWindow函数创建)被称为捕获窗,该窗口的客户区用来显示采集卡传入计算机的实时视频图像,其窗口风格一般为WS_CHILD和WS_VISIBLE。在视频采集之前需要创建一个捕获窗,所有的视频操作及其设置都以它为基础。

AVICap在显示视频图像时提供了以下两种模式:

(1)预览(Preview)模式:该模式把数字化的帧从捕捉硬件传到系统内存,显示要占系统资源,视频由系统调用GDI函数在捕获窗中显示,Preview模式的显示速度慢,该模式的视频格式为RGB格式。

(2)叠加(overlay)模式:在该模式下将捕捉缓冲区的内容直接在监视器上显示,而不占用CPU资源。视频卡将VGA的输出信号与其自身的输出信号叠加合并,所得的组合信号显示在计算机的监视器上。这种方式的视频显示比预览方式有更好的连贯性。所捕获的视频数据的显示不需要占系统资源,显示速度快,同时不影响系统的其它任务。

但是如果应用程序要对捕获的图像在显示之前进行加工,则最好在预览模式下进行,先把图像数据送到系统内存,根据需要对图像进行处理后再把图像显示出来。该模式为部分采集设备所具有的能力,因此在视频采集程序中要先加以判断,以选择最佳的显示模式。

2.2.5 利用VFW技术实现视频捕捉的工作流程

利用VFW技术可以方便的实现视频的捕捉,下面我们讨论一下进行视频捕捉的基本工作流程,如下图2.3所示:

(1)创建捕获窗口

捕获窗口也就是被采集到的图像的预览窗口,它是其他捕获工作的基础。通过函数CapCreateCapturewindow可完成捕获窗口的创建,并取得该捕获窗口的句柄。

(2)注册回调函数

回调函数由开发人员预先定义好,事件发生时由操作系统来调用,调用的接口也是由系统定义好的。AVICap中定义了多个的回调函数的形式。(3)设置捕获窗口的相关参数

用宏CapCaptureGetSetup来获得当前采集的参数设置或默认的参数设置,该宏返回的值是一个CAPTUREPARMS结构。可以根据具体的需要来修改

图2.3 利用vfw进行视频捕获的流程图CAPTUREPARMS结构中的相应变量来设置捕获参数,设置结束捕获的方式。

(4)与视频采集设备相连接

可以直接用宏CapDriverConnect(hWnd,Index)将采集窗口和指定的采集设备连接起来(hWnd是采集窗口的句柄,Index是指定的采集设备的号码),也可以先用CapGetDriverDescription函数获得系统中所有的采集设备的名称和其版本信息,然后再选择其中一个采集设备将它和采集窗口。

(5)获取视频采集设备的能力及状态信息

用宏CapDriverGetCaps来获取视频设备的能力。用宏CapGetstatus来获取视频设备的状态。

(6)设置捕捉窗口的显示模式

上一步获取的视频设备的能力存放在CAPDRIVERCAPS结构中,可以通过其fHasOverlay域来判断设备是否具备Overlay模式。若具有Overlay模式就可以通过Capoverlay启动,否则,可以通过CapPreview启动Preview模式。(7)捕捉图像到缓存或文件并进行处理

这就涉及到前面介绍的视频数据传输的两种模式。

若准备对捕获的数据进行实时处理就用到回调机制可以注册函数CapSetCallbackOnFrame,当一帧结束就立刻产生回调;若要及时保存捕获到的视频数据,则可以调用宏CapCaptureSequence,将数据存入文件中。其扩展名为avi。

(8)终止视频捕捉并断开与视频采集设备的连接

结束捕获时,应进行各种清理工作,捕获终止、取消回调函数、释放内存、断开驱动给其他设备使用视频硬件等。

2.2.6 VFW技术实现视频捕获的优缺点

通过分析VFW的模块AVICap窗口实现视频捕获的过程,我们知道,AVICap窗口类封装了有关视频捕获的底层API函数,才使得编程人员在编写的应用程序中实现了视频捕获功能。它提供一个简便的、基于消息的接口,程序通过它可以完成由视频捕获硬件获取数据,并按照需要的格式进行存储或进行其它处理。

VFW的优势在于简单直观,能够比较快捷地运用回调函数、宏等函数完成实时的视频捕获和单帧捕获并提供对视频源的控制。AVICap类能直接访问视频缓冲区,而不需要生成中间文件,实时性很强,效率较高。

同时,VFW也存在着一些缺点。首先,其结构化的编程模式已经落后于当前面向对象的程序设计思想,在整体上破坏了软件的体系结构。它支持的数据格式有限,只能存储、处理AVI的文件。另外,由于自1992年以来VFW 技术的总体结构没有太大变化,采用VFW技术的捕获系统存在通用性差、维护困难、系统可扩展性差、不能很好地支持PCI总线、总线控制器等新的硬件技术等问题。在网络视频会议等领域迅速发展的今天,VFW架构自身固有的设计缺陷逐步显露出来,缺少对视频会议、电视观赏、视频捕捉以及处理附加数据流如垂直消隐间隔(VBI,Vertical Blanking Interval)等的关键功能支持。

第三章运动检测技术概述

3.1 运动图像的含义

与静止图像相比,动态图像的基本特征就是灰度的变化。具体说来,在对某一景物拍摄到的图像序列中,相邻两帧图像间至少有一部分像元的灰度发生了变化,这个图像序列就称之为动态图像序列。

造成灰度变化的原因是多种多样的,主要有以下几类[18]:

(1)景物本身发生了变化:物体发生了变形(扩大或缩小)或运动(旋转、平移);

(2)相机与景物发生了相对运动:相机的平移、旋转使图像内容发生了改变;

(3)照度变化:照射景物的光源发生变化导致物体亮度改变;

(4)上述几种情况的组合;

由此可见,图像灰度变化的原因很多,本文研究讨论的内容主要集中在景物与射相机之间相对运动所形成的动态图像上。而这种动态图像又分为两类:一类是背景是静止的,物体是运动的;另一类是背景是变化的,物体是运动的。在此我们主要研究的是背景是静止的,物体进入摄像机范围,即物体的运动引起的图像灰度变化。

我们通常在直观上将运动与变化联系起来,因此我们对运动分析的讨论就从观察序列中的两帧图像的差别开始。对于一个大场面的远景图像来说,从直观上看它们的差别不明显。但是在两帧图像相减后的差分图像上,差别就很明显了。从中可以很清晰地看出图像中发生了物体的运动变化。因此,在对图像进行质的描述后,我们就明显地感觉到运动分折对动态景物的理解是很有帮助的。

根据对运动图像的观察我们得出以下结论:运动可能导致灰度的时变。但反过来不成立的,即灰度的时变不一定就是由运动引起。照度和环境光反射的改变同样会引起灰度时变。本文我们研究的就是运动导致的灰度变化。

3.2 图像运动检测技术概述

数字图像处理是从20世纪60年代以来随着计算机技术和VLSL(Very Large ScaleIntegrated)的发展而产生、发展和不断成熟起来的一个新兴技术领

域,与人类视觉机理着迷的历史相比,它是一门相对年轻的学科。但在其短短的历史中,它却广泛应用于几乎所有与成像有关的领域,在理论上和实际应用上都取得了巨大的成就,并引起各方面人士的广泛重视。有几个因素表明数字图像处理领域将一直保持持续发展的势头。其主要因素是图像处理所需的计算机设备的不断降价,处理器和大容量存储器都一年比一年便宜。第二个因素是图像数字化和图像显示设备越来越普及。诸多迹象表明计算机设备的价格将继续下降。

运动目标的检测技术是通过对摄像机获取的动态序列图像进行分析数

据量通常都很庞大,现有的算法在一般处理器上实现起来处理速度明显不足,实时性很差,离实用化还有相当的距离。如果采用专用的芯片组实现,虽然实时性得到了保证,但系统的灵活度会大大降低,不利于以后功能升级。近年来,出现了一些可视化的监控系统,可以满足人们“眼见为实”的要求,但这种监控系统较多地集中在基于PC机的图像监控,它要求监控人员不停地监视屏幕,获得视频信息,通过人为的理解和判断,才能得到相应的结论,做出相应的决策。而让监控人员长期盯着众多的电视监视器成了一项非常繁重的任务,特别在一些监控点较多的情况下,监控人员几乎无法做到完整全面的监控。对于更广泛的中、小型企业、办公室和家庭用户来说,更需要一种体积小、适于安装、操作简单、可靠性高、价格便宜同时具备自动化、智能化的数字图像监控产品,于是基于嵌入式的智能监控系统应运而生。对它的研究具有很大的实际意义。

3.3 运动检测的典型应用

基于运动图像的目标检测在科学技术研究和工程应用上有着广阔的应

用前景[10]。例如:

(1)军事上:用于对空监视中的多目标跟踪机载或弹载前视红外图像中的目标检测、导弹动态检测等方面。

(2)工业上:用于工业过程控制、机器人视觉、白主运载器导航等方面。

(3)商用上:用于高清晰度电视及电视会议的动态图像传输中的频带压缩等方面。

(4)医学上:用于生物组织(如显微镜下的细胞和x光或超声波下的器官)运动分析等方面。

(5)气象上:用于云图的分析预报。

(6)运输上:用于交通管理、运输工具的流量控制等方面。

3.4 运动检测的发展特点

运动目标检测方法多种多样,但到目前为止,还没有一个通用的算法,这是因为运动目标检测算法大多都是针对具体情况的。应用场合和场景观条件的不同,必然导致运动目标检测方法的不同。总结起来,运动标检测技术的发展有如下特点[14]:

1.形成了三种传统的运动目标检测方法:光流法、帧间差分法和背景减除法。其中基于差分图像的帧间差分法和背景消减法是目前应用视觉系统应用最广泛的检测方法。

2.传统检测方法不断改进。一方面,针对三种传统检测方法自身的不足和某些缺陷,提出了许多改进方法,使之更稳健,更实用;另一方面,将不同检测方法结合起来,克服单个方法的缺点,使其优点互补。这是运动目标检测技术研究的热点和重点之一。

3.新颖算法不断涌现。当一种技术滞留于传统算法的基础上时,这种技术也就失去了其应有的生命力。只有新颖算法的不断涌现,才能促进这种技术的蓬勃发展。曲线演化等新颖算法的出现,使运动目标检测技术的研究发展走上了一个新的台阶。新的检测算法是运动目标检测技术研究的另一热点和重点。

4.稳健性、准确性和实时性是运动目标检测技术研究和应用的主旋律。3.5 运动图像目标检测的研究

运动目标是生活中常见的,如活动的动物,行驶的运载工具以及自然界其他运动物体等。利用图像捕捉并跟踪感兴趣的运动目标在许多领域有广泛的应用。运动目标如天文观测中的星体、气象分析中的云图,安全监视中的人或动物,交通管制中的汽车、飞机、轮船等。

对于运动图像的检测分析,背景图像是静止的情况,现阶段的研究成果比较成熟,也易于广泛实现,常见的有背景减除法、时间差分方法等,而对动态变化的背景图像,由于外界条件的复杂多变性,研究方法不可能完全一致,因而各研究方法也会有不同的适用性。目前常用的运动目标检测方法有三种:帧间差方法,背景减除和光流法。帧间差法方法是在连续的图像序列

中两个或三个楣邻帧间采用基于像素的时间差分并且阈值化来提取出图像中的运动区域。背景减除法是目前运动分割中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动区域的一种技术。它一般能够提供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干扰等特别敏感。光流法测采用了运动目标随时间变化的光流特性,如Meyer等通过计算位移向量光流场来初始化基于轮廓的跟踪算法,从而有效地提取和跟踪运动目标。

目标的运动图像序列为低信噪比情况下的目标检测提供了比目标静止时更多的有用信息,使得我们可以利用图像序列检测出真图像中很难检测出的目标。由运动目标所形成的图像序列可分为两种情况:一种是静止背景,一种是变化的背景。前一种情况通常发生在摄像机相对静止的状态,后一种情况通常发生在摄像机相对运动状态(如装在卫星或飞机上的监视系统)。从处理方法上看,一般是采用突出目标或消除背景的思想。对前一种情况可采用消除背景的方法,出来起来比较简单,如简单的帧间差分或自适应背景对消方法。对后一种情况,处理起来比较复杂,若采用消除背景的方法,则通常需要先进行帧间图像配准,若采用突出目标的方法,则需要在配准的前提下进行多帧能量积累和噪声抑制。此外,还可以采用光流模型方法,背景模型法,基于熵的方法等方法从运动速度上区分不同目标与背景。

第四章视频捕获的设计方案与实现

4.1 开发环境介绍

在本论文中,使用的开发环境是Visual C++ 6.0软件。它是Microsoft公司推出的一个面向对象、功能丰富的可视化开发工具,是近十年来程序设计领域中最强大的开发工具之一。利用Visual C++ 6.0提供的高效Windows编程环境,可以编写各种各样的软件,尤其是其他语言所难以企及的关于底层操作的软件[1]。

Visual C++ 6.0之所以受到无数的程序员的青睐,主要是有3方面的原因:(1)它是C和C++的混合编译器,使得Visual C++ 6.0开发的程序具备了C和C++的高效、简洁的特点。(2)它是一种面向对象的语言,使得软件能够在源码级、类级、控件级等多个级别上重用,软件的开发效率大为提高。(3)借助于Microsoft出色的MFC类库和应用程序框架能够轻而易举开发出Windows标准界面的应用程序。

Visual C++ 6.0首先是一种程序设计语言,同时也是一个集成开发工具它提供了自动生成软件代码和可视化资源编辑的功能。Visual C++ 6.0是Windows环境下最主要的面向对象(Object Oriented)应用开发环境之一,它不仅是C++语言的集成开发环境,而且与Win32紧密相连。所以,使用Visual C++ 6.0可以灵活地开发从底层软件到上层直接面向用户的软件。另外,在大型复杂软件的开发使用Visual C++ 6.0的调试工具可以有效地进行排错,开发环境是程序员与Visual C++ 6.0的交互界面,通过它程序员可以创建工程文件,创建或访问C++源代码、资源文件等。Developer Studio开发环境,即Visual C++ 6.0的开发环境,问程序员提供了一个面向对象C++程序进行开发和调试的平台[3]。

在开始Visual C++ 6.0程序设计之前,首先应该对开发平台即Visual C++ 6.0的集成开发环境(IDE)有一个了解。熟悉这个开发环境,能提供程序设计的效率,也能给我们创造一个舒心的开发界面。

启动程序后,我们可以看到一个窗口,如下图4.1所示,他的每个区域都有其特定的用途,我们可以重新布置各个区域来定制自己的开发环境,时期适合自己的特殊开发需要和个人习惯。

主界面窗口包括有以下几部分:1,工作区,它是确定开发项目中各部

分位置的关键工作区;2,输出窗格,它是向用户提供信息的地方,这些信息包括编译程序的进展说明、警告及出错的信息;3,编辑区,它是Visual C++6.0中进行一切编译工作的区域,当编辑C++的源代码时将在这里显示代码编辑窗,当设计对话框时,窗口绘制器也在此显示;4,菜单栏,主要由File 、Edit 、View 、Insert 、Project 、Build 和Tools 等组成,每个菜单又由多个选项构成;5,工具栏,它由某些操作按钮组成,分别对应着某些菜单选项或命令的功能。

图4.1 Visual C++ 的开始主界面

Visual C++6.0大概可以分成三个主要的部分:

1. Developer Studio 。这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++6.0了。其实不然,虽然Developer Studio 提供了一个很好的编辑器和很多Wizard ,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,工

格 输出窗格 编辑区域

工具栏

Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C++6.0,它充其量只是Visual C++6.0的一个壳子而已。

2.MFC。从理论上来讲,MFC也不是专用于Visual C++6.0,Borland C++,Builder C++和Symantec C++同样可以处理MFC。同时,用Visual

C++6.0编写代码也并不意味着一定要用MFC,只要愿意,用Visual C++6.0来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C++6.0本来就是为MFC打造的,Visual C++6.0中的许多特征和语言扩展也是为MFC 而设计的,所以用Visual C++6.0而不用MFC就等于抛弃了Visual C++6.0中很大的一部分功能。但是,Visual C++6.0也不等于MFC。

3.Platform SDK。这才是Visual C++6.0和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C++编译器为核心(不是Visual C++6.0,看清楚了),配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。

下面进入到程序的具体编辑阶段。

4.2 视频捕获工具的选择

经过前面的讨论研究,我们知道VFW和DirectShow这两个开发包都能够完成对视频的捕获。DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,与DirectX 开发包一起发布。目前,DirectX最新版本为9.0。DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,可以很方便地从支持WDM 驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。这样使在多媒体数据库管理系统(MDBMS)中多媒体数据的存取变得更加方便,但是实现过程复杂。而使用VFW的优势在于简单直观,能够比较快地完成捕捉操作,由于研究的需要要求,在此选择使用VFW进行本课题。

本课题主要是在PC机上用软件实现的,所需硬件主要是一台PC机和一个数字摄像头,该摄像头是USB2.0口的摄像头

4.3 实现视频捕获的基本方法

相关文档
最新文档