




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 课题的研究背景及意义 1-1 课题研究的意义 得益于工业革命的巨大成果,以及现代社会经济的迅速发展和人们生活水平的不断提高, 汽车已成为世界各国人民出行的主要交通工具,由此产生的城市交通问题已经越来越引起 世界各国的重视。随着人口的不断增加和车辆的不断增加而产生的交通拥堵和环境污染已 经严重的制约了世界各国的经济发展,使得城市的功能无法正常发挥。因此如何有效的解 决城市交通问题,提高城市交通运转效率,已成为各个国家各个地区的当务之急 目前,解决城市交通问题主要有两个方法。一是加快城市道路设施规划建设,完善城市交 通网络体系。固然,不断的进行道路设施建设可以缓解城市交通压力。但是任何国家任何 地区都会受到建设资金和城市空间的制约,因此不可能无限的进行道路交通建设。所以该 方法并不是行之有的解决途径。第二种方法是采用当前各领域先进的技术,对城市交通进 行现代化的科学的管理和控制,提高道路的通行能力,此方法是目前公认的成本少、见效 快的方法。 ITS(Intelligent Transport System)智能交通系统,是指将先进的信息技 术、电子控制技术及计算机技术等有效地运用于整个交通运输管理系统而建立起的一种精 确、高效、实时的综合运输和管理系统。传统的交通管理模式已经不再适应现代化的交通 需求,因此 ITS 便成为改善城市交通的一个重要途径。对于一个城市的交通系统来说,能 有效地提高交通运输效率,保证各交通道路顺畅,同时又环保节能,是 ITS 实现的最终目 的。本课题通过控制交通路口的交通信号灯,达到能够有效地提高交通路口的通行效率, 使得各个方向的车辆能够有效迅速的通过各个交通路口,如此便提高了整个城市的道路通 行能力,保护环境,节约资源。因此,本课题的设计有着重要的研究意义,在未来的社会 发展中有着广阔的应用前景 1-2 智能交通系统的起源与发展 早在 20 世纪 60 年代,美国便开始了智能交通系统的开拓性研究。到了 80 年代中期, California 交通部门研制出了加速了智能交通的发展的系统PATHFINDER 。92 年 5 月, 美国交通部制定出描述其未来 20 年发展蓝图的美国智能交通系统战略规划 ,该规划书 将智能交通系统划分为商用车辆操作系统(CVO)、高级公共交通系统(APTS)、高级车辆信 息系统(ATIS)、农区交通系统(RTS)、高级车辆控制与安全系统(AVCSS)几个研究开发领域。 欧洲早在 1969 年便开始发展 ITS。1985 年,在法国的倡导和推动下,欧洲开始了一项名 为“由里卡”的计划,制定了包括交通技术在内的九大重点研究领域。1986 年,欧洲十一 家汽车公司以奔驰为主,进行了民间主导 PROMETHEUS(Programme for European Traffic with Highest Efficiency and Unprecedented Safety)计划,于 1994 年结束,取得 了巨大的成功。 当前世界各国使用广泛的且具有成效的交通控制系统有英国的 TRANSYT 系统、SCOOT 系统和澳大利亚的 SCATS 系统。 (1)TRANSYT(traffic network study tool)是当今世界上最负盛名的信号配时优化设计程序。 其最初版本是由英国道路运输研究所于 1968 年研制成功的。该系统是一种脱机操作的定 时控制系统,主要由优化模型和仿真模型两部分组成,自 1968 年问世以来,得到了不断 的发展,目前已经发展到先进的 TRANSYT-8,其主要技术特征有: 控制模式:静态模式,即脱机时预测确定控制参数,再上机调试。 系统目标:平均延误时间、停车次数、排队长度最小。 参数优化特征:绿信比与相位差是通过建立数学模型计算的,即是优化确定的,周期不参 加优化,只是从给定的数值中通过试探法找到性能指标最优的目标周期,也就是选择确定。 优化方法:瞎子爬山法。 (2)SCATS(Sydney Coordinated Adaptive Traffic System):是澳大利亚于 20 世纪 70 年代 末研制成功的,从 1980 年起陆续在澳大利亚全境安装使用。该系统采用分层递进控制方 式,主要的技术特征有: 控制模式:地区级、联机、中央级、联机与脱机同时进行。 系统目标:类饱和度最大(车辆有效利用绿灯时间与绿灯显示时间之比)和通过带最宽。 参数优化特征:根据最大周期类饱和度确定下一周期的参数,从事先准备好的 4 种绿信比 方案中以“投票”方式选出下一周期的绿信比,选中的依据是类饱和度最小:相位差是根 据通过带的宽度比较选择得出 (3)SCOOT(Split Cycle Offset Optimization Technique)是 20 世纪 70 年代初,英国运输 和道路研究所与三家公司在 TRANSYT 的基础上研制出的一种自适应控制系统,其主要 技术特征有: 控制模式:联机实时控制,即动态控制。 系统目标:车辆延误时间和停车次数最小。 参数优化特征:周期、绿信比和相位差均通过建立优化模型计算得到。 优化方法:小步长渐进寻优法 智能交通系统的发展历程可用表 1.1 表示。 表 1.1 现代主要交通系统举例 Tab.1.1 The development process of Traffic control system 系统名称 方式 系统特征 路口数 周期 检测器 TRANSYT 面控 静态控制 多 变 环形线圈 SCOOT 面控 动态控制 多 变 地感线圈 SCATS 面控 动态控制 多 变 环线圈 在智能交通灯系统设计和应用开发方面,我国起步较晚,单点信号机在 1973 年研制成功 标志着我国开始进入智能交通系统时代。北京的前三门大街的交通线路在 1985 年实现了 智能交通系统的自动控制,这是我国首次将 ITS 应用于实际。同济大学以南京市作为实验 对象,研制了一套全国产的、具有自主知识产权的智能化的交通系统控制器,该项目是我 国“七五“期间国家重点攻关项目,但由于种种原因,一些标志性功能,如自动配时等并 没有投入使用。1991 年,天津大学首次将自学习智能原理应用于其自主研发的城市交通控 制系统 TICS(Traffic Intelligent Control System)。2000-2002 年,吉林大学在杨兆升教授带 领下,研发了专门针对我国的城市道路交通特点(自行车数量较多)的控制系统及其软件 混合交通自适应信号控制系统。考虑到我国交通道路上自行车较多的情形,该系统实 现了自行车车流量的检测,在进行信号灯自适应配时方案时考虑到自行车流对配时时间的 影响,并且应用 于实际工程中,取得了显著的效果 综上所述,现代智能交通系统的控制模式都是动态控制,且也不仅仅单一局限于单个路口 的控制,对实时性的需求越来越强,这就要求控制系统能够告诉的处理大量的实时数据, 而 FPGA 由于其处理速度快,且容量大,非常适合用来实现智能交通系统的核心控制, 因此本设计采用 FPGA 技术完成课题的设计。 1-3 FPGA 技术的简介 1-3-1 FPGA 的简介 FPGA(Filed-Programmable Gate Array) ,即现场可编程门阵列,它在 1984 年诞生于硅 谷,是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。FPGA 是一种半 定制电路,由可配置逻辑模块 CLB(Configurable Logic Block) 、输入输出模块 IOB(Input Output Block)和内部连线(Interconnect)三个部分组成。用户可以通过开 发软件对 FPGA 进行配置和编程来改变 CLB 和 IOB 的触发状态,从而实现不同的功能 需求;在对 FPGA 进行功能改进和系统升级时,用户可以直接在计算机上对程序进行修 改和更新,而不需要重新设计调试 PCB 电路板,从而使硬件设计能够像软件开发那样方 便快捷,缩短了系统设计周期,增强了硬件设计的灵活性。FPGA 的出现,解决了定制电 路不足问题,克服了原有可编程器件门电路少的缺点。 1-3-2 FPGA 的结构 和基于乘积项的 CPLD 相比, FPGA 主要是基于查找表的。查找表( Look-Up- Table)简称为 LUT,它实际就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所 以每一个 LUT 可以看成有 4 位地址线的 161 的 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结 果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址 进行查表,找出地址对应的内容,然后将之输出即可。 目前,业界通用的 FPGA 基本上都是基于查找表原理的,如图 1.1 所示,典型的有 Xilinx 的 Spartan、Virtex 系列,Altera 的 ACEX、APEX 系列等 FPGA 芯片主要由 6 部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、 完整的时钟管理、嵌入块式 RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬 件模块,每个模块的功能如下: (1)可编程输入输出单元(IOB ) 可编程输入/输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气 特性下对输入/输出信号的驱动与匹配要求。 FPGA 内的 I/O 按组分类,每组都能够独立 地支持不同的 I/O 标准。通过软件的灵活配置,可适配不同的电气标准与 I/O 物理特性, 可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O 口的频率也越来越高,一 些高端的 FPGA 通过 DDR 寄存器技术可以支持高达 2Gbps 的数据速率。 外部输入信号可以通过 IOB 模块的存储单元输入到 FPGA 的内部,也可以直接输入 FPGA 内部。当外部输入信号经过 IOB 模块的存储单元输入到 FPGA 内部时,其保持时 间(Hold Time)的要求可以降低,通常默认为 0。 (2)可配置逻辑块(CLB) CLB 是 FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同,但是 每个 CLB 都包含一个可配置开关矩阵,此矩阵由 4 或 6 个输入、一些选型电路(多路 复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、 移位寄存器或 RAM。在 Xilinx 公司的 FPGA 器件中,CLB 由多个(一般为 4 个或 2 个)相同的 Slice 和附加逻辑构成。每个 CLB 模块不仅可以用于实现组合逻辑、时序逻 辑,还可以配置为分布式 RAM 和分布式 ROM。 (3)数字时钟管理模块(DCM) 业内大多数 FPGA 均提供数字时钟管理(Xilinx 的全部 FPGA 均具有这种特性) 。 Xilinx 推出最先进的 FPGA 提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精 确的时钟综合,且能够降低抖动,并实现过滤功能。 (4)嵌入式块 RAM(BRAM ) 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA 的应用范围和灵活性。 块 RAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器(CAM)以及 FIFO 等常用存储结构。RAM、FIFO 是比较普及的概念,在此就不冗述。CAM 存储器在其内部 的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比 较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。 除了块 RAM,还可以将 FPGA 中的 LUT 灵活地配置成 RAM、ROM 和 FIFO 等结构。 在实际应用中,芯片内部块 RAM 的数量也是选择芯片的一个重要因素。 (5)丰富的布线资源 布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的 驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分 布位置的不同而划分为类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟 和全局复位/置位的布线;第二类是长线资源,用以完成芯片 Bank 间的高速信号和第二全 局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线; 第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。 (6)底层内嵌功能单元 内嵌功能模块主要指 DLL(Delay Locked Loop) 、PLL(Phase Locked Loop) 、DSP 和 CPU 等软处理核(Soft Core) 。现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了 系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向 SOC 平台过渡。 DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比 调整和移相等功能。Xilinx 公司生产的芯片上集成了 DLL,Altera 公司的芯片集成了 PLL,Lattice 公司的新型芯片上同时集成了 PLL 和 DLL。PLL 和 DLL 可以通过 IP 核 生成的工具方便地进行管理和配置。 (7)内嵌专用硬核 内嵌专用硬核是相对底层嵌入的软核而言的,指 FPGA 处理能力强大的硬核(Hard Core) ,等效于 ASIC 电路。为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专 用的硬核。例如:为了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了专用乘法器; 为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器(SERDES) , 可以达到数十 Gbps 的收发速度。 1-3-3 FPGA 的发展方向 随着 FPGA 的出现和发展, FPGA 的性能越来越高,资源越来越丰富,因其设计灵 活性以及处理速度快等优势,市场上对于 FPGA 的应用需求的领域不断随之扩大,从最 初的通信领域,逐步扩大到航空航天、测试测量、汽车电子,安防、医疗等各个领域。近 年来,越来越多的厂商与设计人员倾向于选择 FPGA 来实现产品的开发。FPGA 依靠自 身的优越性和适用性,促使其朝着以下几个方向发展: (1)与 DSP 结合 实际上,数字信号处理的解决方法有很多。比如,使用普通的数字信号处理器、MCU 等。同样,也可以使用 FPGA 作为数字信号处理工具。尤其是 FPGA 的处理速度快这个 特点,特别适合处理速度不断提升的数字信号处理。近年来,传统的 DSP 正面临功耗、 性能和生产使用周期长等缺点的挑战。而 FPGA 其独特的优势,正好实现了 DSP 上述缺 陷的互补,满足设计的实时性和并行处理的需求。 (2)IP 库的利用 当前系统级 FPGA 具有 IP 内核的开发主要表现在两个方面:一方面是 FPGA 厂商 将 IP 硬核直接嵌入到 FPGA 中;二是全面扩充经过优化的 IP 软核(即利用硬件描述语 言设计并经过验证的单元功能模块) ,用户可以直接使用这些经过预定义和验证的 IP 核资 源,有效完成复杂的片上系统设计。 (3)可编程系统芯片(SOPC)的发展 系统设计将会是推动 SOPC 发展的原动力,并不是特定的硬件或软件设计方法。系统 级设计的着重点是放在其设计的并行性以及其高度并发和平行的特性。实现 SOPC 主要有 两种途径,一种是将专有功能的 IP 核嵌入到 FPGA 芯片中,实现其 SOC 功能;另一种 是将可编程逻辑 IP 核嵌入到 SOC 中 1-4 论文的结构安排 全文共分为四章,具体内容安排如下: 第一章主要介绍了课题研究的意义以及智能交通技术的发展及现状、FPGA 技术的历 史背景及未来的发展方向。 第二章主要介绍了系统的整体体方案,首先进行车流量的检测,得出的数值通过模糊 控制,得到绿灯时间,最终控制交通灯。 第三章主要介绍了车流量检测算法的实现,首先简单介绍了车流量检测的相关知识, 然后介绍了车流量检测的实现过程。 第四章主要呈现了系统硬件的总体设计,主要介绍了系统的整体硬件仿真和实现。 1-5 总结 本章主要讲述了课题的研究背景及意义。首先介绍了课题的研究意义,其次分别介绍 了智能交通技术和 FPGA 技术的研究现状及未来发展方向,最后介绍了整篇论文的工作 安排。本章是全文的开篇部分,是全文的引领,为全文制定了主要的脉络。 第二章 系统整体方案设计 2-1 功能需求分析 本设计需要设计一个智能的交通灯自动控制系统。所谓智能控制,就是能够使得交通信号 灯的各种信号时间实现自动配时,即按需求自动获得相应相位的信号灯延续时间。要实现 自动配时,首先需要通过 FPGA 芯片外部摄像头拍摄的交通路口视频。其次,通过图像 处理算法,统计出交通路口各相位在通行时间内的通行车辆数量,通过此数量,反馈一个 时间给系统,这样就实现了交通路口信号灯的自动配时方案。课题要实现的目标如下: (1)通过对交通路口车流量视频对车流量进行统计。 (2)通过模糊控制算法,得出应分配的绿灯时间。 (3)根据系统计算出的绿灯时间控制 LED 灯。 2-2 系统整体框图 从图 2.1 可以看出,该系统以 FPGA 芯片为控制核心,接收外部图像传感器传输的图像 数据;通过车辆检测模块判断有无车辆通过,通过车流量统计模块,对通过的车流量数量 进行统计;LED 控制模块负责接收统计模块统计的结果,根据某种法则,给出特定的红绿 灯时间,对外部的交通信号灯进行自适应的控制。 2-3 论文的关键技术 本文要解决的重点问题是如何通过图像处理技术统计出交通路口车流量,以及通过模糊控 制算法和之前的车流量求出下一周期的绿灯时间。 (1)车流量检测和统计算法 此部分是整个论文的核心部分,也是整个设计的难点所在。通过图像处理算法,实现交通 路口通过的车辆进行检测,并将检测结果进行统计,得出具体的车辆数量后。 (2)信号灯时间分配方法 此部分的关键技术是,如何通过上一部分的交通路口的具体车量数量,来给出绿灯的时长。 本论文在此采用模糊控制算法,来实现红绿灯的自动配时。并通过 FPGA 芯片的控制, 实现该智能系统。 以上的问题的解决方法和设计思路将在本论文的第三、四章详细介绍。 第三章 车流量检测算法的软件设计和系统的模糊控制 3-1 车流量检测基础知识简介 本部分主要介绍车流量检测部分常用的基础理论,包括图像滤波部分和常用车流量检 测的方法,其中,图像滤波部分是对图像进行预处理的关键技术,如果不对图像进行滤波, 则生成的图像本身会夹杂各种各样的噪声,这些噪声会严重的干扰检测的准确性,本部分 主要介绍中值滤波和均值滤波两种常用的方法。常用的车流量检测方法,提供了当今世界 车辆流量检测技术的主流方法,通过对各种方法进行相互比较,可以找出最适合本设计的 办法。 3-1-1 图像滤波 图像从生成到传输,会受到各种各样噪声的影响。基于视频的车流量统计技术,实际上也 是图像处理技术,由于交通视频图像是由摄像机拍摄而来的,摄像机的抖动以及外界自然 环境的干扰,使得交通视频图像夹杂着更多的噪声。因此,要实现车流量的精确统计,在 对视频图像处理之前,必须要经过滤波这一步。常用的滤波技术有线性滤波和非线性滤波, 近年来,随着数学形态学的发展,很多人用形态学来实现图像滤波。 (1)中值滤波 中值滤波,一开始应用于时间序列分析,后来被用于图像滤波。中值滤波是一种非线 性平滑技术,由于噪声被安放在数值序列的两端,故中值滤波达到了抑制噪声的目的。 对于一维中值滤波,就是用一个奇数点的移动窗口,将窗口中心点的值用窗口内各点 的中值来代替。假设窗口内有 5 个值,分别为 50、60、70、80、90,则此窗口内各点的 中值为 70。 设有一个一维序列为 ,取窗口长度为 L=2k+1,对其进行中值滤波, 就是从输入 的 序 列 中 取 出 L 个 数 , 为 , 则 一 维 中 值 滤 波 公 式 为 ,则 y 称为序列 的中值。 图像中值滤波是一维中值滤波在二维空间的推广,区别在于它处理的数据是二维矩阵形式。 中值滤波在图像处理中骑到保护边缘信息的作用,采用相同模板的中值滤波引起的模糊比 均值滤波要差,但对于脉冲噪声,特别是脉冲宽度小于 1/2 滤波窗口长度和相聚较远的窄 脉冲抑制效果好。平滑噪声和保护图像边缘是一对矛盾,往往很难两者兼顾。中值滤波在 平滑噪声的同时也会抑制信号,使图像变的模糊。二维中值滤波器的滤波窗口形状和大小 对滤波结果都会产生影响。实际应用中应该根据图像特点和滤波要求采用合适的滤波窗口, 图 3.1 给出了尺寸为 3*3 的常见二维中值滤波器窗口。考虑到中值滤波器对图像细节的 平滑,在使用中值滤波是一般先使用 3*3 的检测窗口,若图像无明显模糊再改用 5*5 大 小的检测窗口。依次增加,最终达到平滑噪声和保护图像边缘的平滑状态。 在有很强的椒盐脉冲干扰下,由于这些灰度值的干扰值与其临近像素的灰度值有很大差异, 因此经排序后取中值的结果是强迫将此干扰点变成与临近的某些像素灰度值一样,从而达 到去除干扰的效果,因此中值滤波对椒盐噪声有较强的抑制作用,如图 3.2 和 3.3 所示。 (2)均值滤波 均值滤波又称平滑线性空间滤波器,对移植高斯噪声有很好的抑制效果。均值滤波是 典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临 近像素(以目标象素为中心的周围 8 个象素,构成一个滤波模板,即去掉目标象素本身) , 再用模板中的全体像素的平均值来代替原来像素值。 均值滤波采用的主要方法为领域平均法。平滑线性滤波的基本原理是用均值代替原图 像中的各个像素值,即对待处理的当前像素点( x , y ),选择一个模板,该模板由其近邻的 若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点( x , y ),作为处理 后图像在该点上的灰度个 g ( x , y ),即 g ( x, y ) 1/ m f ( x, y),其中 m 为该模板中 包含当前像素在内的像素总个数。 平滑线性滤波处理降低了图像的“尖锐”变化。由于典 型的随机噪声由灰度级的急剧变化组成,因此常见的平滑处理的应用就是降低噪声。然而, 由于图像边缘(几乎总是一副图像希望有的特性) 也是由图像灰度的尖锐变化带来的特性,所以均值滤波处理还是存在着不希望有的边 缘模糊的负面效应,这是算法本身存在的固有缺陷,只能改善不能彻底消除。 为了改善对图像边缘的模糊,有学者提出了加权均值滤波算法。例如采用如图 3.4 所 示的 3*3 的掩模进行加权平均。从权值上看处于掩模中心位置的像素比其他任何像素的权 值都要打,说明在均值中该点像素值较其他点最为重要。而随着距中心点距离的增大加权 系数减小,是为了最终的均值结果更接近中心像素点的真实值,减少处理中的模糊。在实 践中,由于掩模占整幅的比例很小,通常很难看出加权前后的滤波区别。 均值滤波对高斯噪声有很好的抑制效果,如图 3.5 和 3.6 所示。 本文中,由于交通路口拍摄的视频有很多点状的椒盐噪声,由上所述,故采取中值滤波方 案。 3-1-2 几种常用的运动目标检测算法简介 (1)光流检测法 Gibson 在 1950 年提出了光流的概念 光流,是一个关于视域中运动物体检测的概念。用来描述一些特定的运动所造成的运 动物体的边缘、表面或运动目标本身的运动。光流法是把检测区域中的运动物体的每一个 点当做一个速度矢量,当物体运动时,每一个点的向量也瞬息变化。因此,光流法携带了 丰富的运动物体的信息,通过对运动物体光流场分析可以判断区域内是否有车辆通过。 光流场可以简单的理解为物体的运动矢量场,包括两个分量 u,v。设平面上有一点( x , y ),它代表的是场景中某一点( x, y , z )在图像平面上的投影,该点在时刻 t 的灰度值为 I ( x , y , t ),假设该点在 时刻运动到 ,则在很短的时间 t 内灰 度值保持不变,即: 式中,u,v 分别是 改点 x,y 方向上的分量。 根据图像灰度保持假设推出光流矢量的约束方程为 ,式中 将上述的约束方程与速度场平滑约束合在一起,得到 u ,v 计算的变分问题, 式中, 是 u 的拉普拉斯算子, 是 v 的拉普拉斯算子, 为权值。 上式叫做欧拉-拉格朗日方程,对于上式,通过设定初值,然后经过有限次的迭代,最 终能得到满足误差需求的某一点的速度矢量。用此种方法可以得到图像整个检测区域的速 度场,然后通过每个点的速度矢量可以对图像进行分析。当没有车辆通过时,光流向量在 整个检测区域是连续变化的;当有车辆经过时,光流向量必然与其临域的向量不同,从而 得知有车辆的存在以及其位置。 由于大部分光流检测的算法复杂,且其抗噪能力较差,计算量大,处理起来速度达不 到实时的要求,故在工程应用上,很少用光流法来检测视频的车流量 2)帧差法 帧差法的基本原理是将前后两幅图片对应像素的灰度值做差,得到差分图像,如果差分图 像的灰度值很小,则认为是背景图像,既不动的物体;若差分图像的灰度值很大,则认为 是有运动物体。其具体步骤是,首先,将相邻的两帧图像对应像素值相减,得到差分图像, 然后对该差分图像二值化,在环境亮度变化不大的情况下,如果对应像素值变化小于确定 好的阈值,则认为是背景像素点;如果对应像素值变化很大,大于确定的阈值,则认为是 前景像素点,即是运动物体。由于前后帧相差时间短,因此用前一帧作为背景图像有较好 的实时性,且背景不易积累,实现简单,运算速度快 设 T 代表车辆, 代表任意连续的两帧图像。 T (i , j )和 T (i +i , j+ j )代表第 k 和 k+1 帧的目标位置, ( i ,j )为目标位移 矢量; ,分别代表第 k 帧和第 k+1 帧的噪声; 设 代表相对噪声,则帧间差分的结果可表示为: 为了更直观的理解上述公式代表的含义,图 3.7 给出了用韦恩图表述帧差法。假设车辆车 辆自左向右运动,图中矩形代表一辆车。 图中,K1 表示运动恢复区,K2 表示 T (i+i , j+j) T (i , j),K3 表示遮挡区。由 于帧差法可以检测事物的相对运动,所以利用帧差法可以提取出 K1 和 K3 区域。但是, 当 K2 部分不够清晰时,会自动将其当成背景处理,造成检测的运动目标断裂。 另外,应用此种方法,选好恰当的帧间差时间非常重要。当车辆运动很快时,则应选择较 小的时间间隔,如若间隔很大,则容易造成前后两帧车辆未重叠,检测出来的是两辆分开 的车;当车辆运动速度很慢时,则应选择较大的时间间隔,如若间隔较小,则容易造成前 后两帧车辆几乎重叠,检测不到车辆的存在 算法的不足在于对环境噪声比较敏感,阈值的 选择也相当关键,如若阈值过低,则不足以抑制图中的噪声,如若阈值过高,则容易将图 中有用的信息忽略掉。对于比较大的、颜色一致的目标,有可能在目标内部产生空洞,无 法完整的提取目标。 (3)背景削减法 背景削减法是一种有效的运动对象检测算法,其基本思想是首先通过某种准则生成背景图 像,最理想的情况是背景图像生成后就完全不变的。然后用每一帧图像和背景图像做差, 如若当前帧的图像与背景图像像素点灰度差值很大,则认为有运动的物体存在;相反,如 果差值很小,在一定阈值范围内,则认为没有运动物体的存在。 背景削减法的关键是背景建模和背景更新。但是,由于它对于外界环境的变化,如光照、 环境噪声以及摄像机抖动等非常敏感,因此选择一个可靠的背景模型是十分必要的。为了 建立对于不同场景的动态变化均具有自适应功能的模型,研究人员提出了很多背景建模算 法,总得来说可以概括我非回归递推和回归递推两类。非回归背景建模算法是利用从之前 某一时刻开始到当前一段时间内存储的数据作为样本来进行建模,常用的非回归背景建模 法有帧差法、中值滤波法等等。回归算法在背景估计中无需维持保存背景估计帧的缓冲区, 它们是通过回归的方式基于输入的每一帧图像来更新某个时刻的背景模型。这类方法包括 广泛应用的线性卡尔曼滤波法、混合高斯模型等等 (4)边缘检测法 物体的边缘包含了丰富的信息,是图像识别中重要的提取特征之一。边缘检测法可以不受 场景的光线、物体的颜色形状差异等因素的影响,从而提取出物体的边缘信息。相比于之 前介绍的方法,边缘检测法更能准确的检测出运动物体。即使当车辆的颜色与路面的颜色 十分接近时,但由于反光及阴影的存在,也能将车辆与道路区分开来 通过计算图像的空间和时间上的灰度变化率和变化方向,可以得到运动车辆的边缘信息。 因此,目前常用的运动车辆的边缘检测可分为空间上的边缘检测和时间上的边缘检测两类。 空间上的边缘检测常用的检测算子有 Roberts、Robinson、Sobel 、Prewiit、Krisch 、高斯拉 氏算子等,不同的算子在算法和效果上有很大的差距,应根据实际情况来具体的应用。而 要通过时间上的边缘检测算法获得边缘信息可以通过计算连续帧图像上对应像素点。但是, 无论是基于空间的边缘检测算法还是基于时间的边缘检测算法,其本质都是高通滤波器, 这样虽然提取出了边缘信息,但是,同样会留下一些高频噪声,引起边缘信息失真。 为了克服上述缺点,在传统的边缘检测方法下,有人提出,先对图像进行平滑滤波,这样 可以减弱高频噪声的影响,然后再提取边缘信息。例如 Marr 和 Hildreth 提出,首先对图 像进行平滑滤波,可以通过高斯函数完成,其次,可以用拉普拉斯算子对边缘进行增强, 最后再提取边缘信息。目前,这种先对图像滤波在进行边缘信息提取的方法,由于其抗噪 能力强,已被广泛的应用于各边缘检测领域。 近几年以来,随着数学形态学的发展,基于 形态学的边缘检测算法逐渐得到了广泛的应用。之前介绍的检测算子,无论是基于时间上 的还是基于空间上的,虽然对噪声比较敏感,但是对于较细的边界,不能准确的检测出来, 而基于形态学的边缘检测算子,对此问题便有较好的解决效果。常用的基于形态学的边缘 检测算法的算子 top-hat、blur-min 和开-闭算子。在这些常用的算子基础上,Siyal 和 Fathy 两位科学家又研究了一种新的基于边缘检测的算子:SMED,即可分离形态学边缘 检测器。该算法在图像的重要区域内,用可分离中值滤波器滤掉噪声,再用之前的简单的 形态学边缘检测算子来检测边缘,既减少了计算量,同时又能获得良好的效果 (5)运动矢量检测算法 所谓运动矢量检测算法,是对之前和之后两个连续的帧图像的模块进行匹配和跟踪, 在下一帧图像的一定范围内搜索当前图像的最优匹配的宏块,计算得出各个宏块在两帧图 像间的平均运动矢量,再根据得出的运动矢量的值来判断是否有车辆的存在。 设第 t 帧第 i 个 MN 的宏块为 ,通过宏块的全局搜索法,再通过最小平均 绝对差分值(MAD)准则,得出第 t+1 帧相对应的宏块运动的位移 此宏块从第 t 帧到第 t+1 帧运动矢量为 通过上述运动矢量的公式,可计算出宏块运动的大小 和运动方向 ,若 与道路 夹角极小,且 足够大则认为该宏块存在车辆,否则不存在。 由上可知,基于运动矢量的检测方法,其计算量很大,严重影响实时处理的需求,因 此,有人提出了改进算法,取以公路方向为中心的扇形区域,在此区域内的 3 步为搜索的 路径,取 MAD 值最小的点认为是最佳匹配点。由于搜索区域减小,所以处理速度相对于 上述的全局搜索来说提高了。还有人改进了 MAD 的计算公式,仅仅计算宏模块内奇数或 偶数行点的值,这样使得计算量减少了一倍,也能使处理速度加快。 (6)几种算法的比较 一般来说,人们常用鲁棒性、处理速度、准确性这 3 个指标作为衡量检测算法的尺 度。所谓鲁棒性,就是指一个系统抗击外界干扰,保持系统稳定的能力;所谓处理速度, 即该算法在计算机上的实时性如何,处理速度快慢;所谓准确性,是指通过该算法检测出 的结果与真实结果的相近程度下面通过这 3 个指标对上述各个算法做一个简单的比较。 表 3.1 简单的对各个算法的性能做了一个比较,由表可知,各个算法有各自的优势,同时 也有各自的不足,在实际中,不可以严格的按照上表所述来评估某种算法的优缺点,而且 在实际应用中,我们往往使用的是某种算法的改进方法,这会造成结果有所不同。比如, 我们常用背景消减法中的高斯模型,虽然它的处理速度较之于其他算法比较慢,实时性较 差,但是其具有较高的鲁棒性,随着计算机技术的发展,cpu 的处理速度越来越快,将会 补足其实时性较差的缺点,因此,我们在选择某种算法作为检测算法时,要根据实际情况 和具体的需求来选择合适的算法。 3-2 车流量检测算法的软件设计 目前,常用的基于视频的车流量检测的思路首先是对帧图像进行运动目标的提取,可以通 过之前介绍的几种方法如帧差法、背景消减法等实现,提取运动目标后,即可统计运动目 标的数量,进而计算出具体的车流量。此种方法,统计结果精度高,误差率小。但是算法 设计较复杂,硬件实现不容易,且该算法适合车辆间距稀疏的统计模型,而现如今,城市 的交通路口车辆繁多,且通常排列密集,不易将单独的运动目标拆分开来,所以用这种思 路在城市交通路口进行统计,结果误差较大。因此本设计采用一种较为简单的设计算法, 即不对交通路口的车辆进行运动目标提取,而是直接统计路面前方车辆通过时造成的灰度 的剧烈变化,进而统计出通过道路的车流量。 本设计的算法验证部分都用 Matlab 软件实现。Matlab 是美国 Mathworks 公司设计 的主要用于数据分析、数据可视化以及算法设计的高级计算机语言和交互式环境,主要包 括 matlab 和 simulink 两部分。 由于它是一种交互式系统,其基本数据元素可以是一个数组,且不要求确定维数,这 就使得开发者可以用公式化方法求解许多技术计算问题,特别是跟矩阵有关的问题。同时, Matlab 可调用 C 或 Fortran 等语言所编写的程序。 Matlab 给开发者提供了许多有特定应用的工具箱,本设计主要使用 Matlab 的图像处 理工具箱。所谓图像处理工具箱就是 Matlab 提供的图像处理函数组成的函数集,它扩展 了 Matlab 解决图像处理 问题的能力 3-2-1 视频预处理 (1)帧序列的提取 预处理是实现该算法的重要部分。预处理的第一步工作是要将摄像头拍摄到的视频转 换成一帧一帧的图像序列。本设计中,采用的视频是架设于石家庄市裕华路和东大街交口 的摄像机拍摄到的视频。 要将视频转换成图像序列,首先必须将视频存储到 matlab 一个指定的变量里,用图 像处理工具箱提供的函数 aviread 可以实现。 通常使用指令 aviread 时,matlab 提示指令无法识别,这是因为 matlab 并不是专业 的处理视频的软件,因此它对一些视频是无法识别的,这时要用 winAVI 9.0 软件改变视 频的编码,选择编码格式为 ZJMedia Uncompress RGB24 转换后,方可读取视频。其 次,通过指令 frame2im 即可将视频分解成一帧一帧的图片。因为视频也是由图像序列组 成,因此可以将视频看成一个特殊的三维矩阵,其第三维的长度就是该视频包含的帧数。 由于本视频是 1 秒中包含 25 帧的标准视频格式,而交通路口的车辆大多行驶比较缓慢, 因此,为了减少数据处理量,而又不影响实验结果的 前提下,采取隔一帧取一次的方法,这样就是数据处理量减少了一半,提高了处理的速度。 (2)图像二值化 将视频分解成帧序列后,由于分解后的一帧一帧的图片是彩色图像,而我们无法对彩 色图像进行任何处理工作,因此需要将帧序列二值化。首先,要将彩色帧序列转换成灰度 图像,如图 3.8 所示的第一帧彩色图像灰度化后的结果。 然后,要对转换后的灰度图像二值化,将其转换为二值图像。其中 g 为二值化后的图 像,f 为要进行二值化的图像,T 为阈值,这里 T 是一个介于0,1 之间的数值 其转换法则是,若输入图像是 uint8 类型(即图像的每个点的像素值在 0-255 内) ,则图 像每个点的像素值除以 255,若小于 T,则将该点像素值化为 0;若大于 T,则将该点像 素值化为 1;同理,若输入图像是 uint16 类型(图像的每个点的像素值在 0-65535 内) , 则用每个点的像素值除以 65536 加以判断。本设计中输入的灰度图像为 uint8 类型。经 过大量的实验证明,当取阈值 T 为 0.4 时,车身、车身前的车影与道路明显的区分开 来,得到最理想的二值图像。 (3)中值滤波 由图 3.9 可以看出,二值化以后的图像上,路面上有很多不连贯的黑洞和黑点,这些 都是由外界噪声引起,如果不加以处理,会对检测结果造成很大的干扰,因此要对上述的 二值图像进行滤波。常用的滤波方法有中值滤波和均值滤波,中值滤波对椒盐噪声有很好 的去噪效果,而均值滤波其原理是求平均值,故其能有效的滤掉图像中尖锐的变化,但同 时也降低了物体边缘分界线的清晰度。故本设计采取中值滤波方法。通过实验可得,采用 5*5 的中值滤波器,能够达到较好的滤波效果,如下图所示。 2-2 算法实现过程 首先要根据某种准则生成背景图像,本设计采取视频帧序列的前 25 帧生成背景图像。生 成背景图像的方法是先将前 25 帧图像求和,求和以后再除以 25,即可得出背景图像,用 如下公式表示: ,其中 T ( i , j )代表生成的背 景图像, , 分别代表第一帧图像、第二帧图像和第 n 帧图像。此处,由于图像为 uint8 类型,即每个像素的像素值为 0-255,但是,当有多 幅图像求和后,会有对应像素点发生溢出的可能,这是,系统默认将值超过 255 的像素点 的值化为 255,就造成了图像失真,无法求得平均值。为了解决此问题,必须要通过强制 类型转换,将图像各个像素转换成 double 类型,这样就不会发生溢出,求和后还能求出 平均值,如图 所示。 生成背景灰度图像后,要将其转换成二值图像。由于之前为了求和求平均,而将图像强制 转换成立 double 类型,所以图像的各个像素的灰度值是 double 类型,且数值较大。如若 按照之前转换每一帧图片的标准,设置阈值为 0.4,那么转换后是一片白色。因为之前的 每一帧图片格式为 uint8 类型,即每一帧的每一个像素值是介于0,255之间的 int 类型的 数值,所以系统会默认将每个像素灰度值除以 255,生成归一化图像,归一化后得到的值 若小于 0.4,则设为 0,在图上显示为黑色,大于 0.4,设为 1,在图上显示为白色。而生 成的背景图像为 double 类型,若还是将阈值设为 0.4,则系统默认将值小于 0.4 的设为 黑色,值大于 0.4 的设为白色。图 3.12 为背景图像一部分行像素的灰度值,由此可知, 背景图像大部分像素的灰度值都大于 0.4,因此转换后会呈现一片白色。 要解决此问题,必须将 double 类型的图片归一化,矩阵归一化的方法为:设有矩阵 景的灰度图像转换为二值图像,转换成二值图像后,再中值滤波,即可得到最终的背景图 像,如图所示。 由上图清晰可见,二值化后图像将图中车身的信息和道路信息清晰的分割开来,图中 车身下方的阴影呈黑色,而路面呈白色,因此,当车身从路面走过,车身到达的一瞬间, 车身前方路面上的像素点的灰度值会发生剧烈的变化。在二值图像中,白色被设定值为 1,黑色被设定值为 0,当车辆经过路面某处时,该处的各个像素点的灰度值的总和瞬间的 减小。因此可以以此为依据,检测区域内的灰度值瞬间的剧烈减小,则给计数器加 1,通 过这样的计数方法,最终可求得通过的车辆数量。 此算法的关键是要在道路上车辆行驶的 前方设置一个虚拟的检测区域,当车辆到来时,通过计算检测区域内各个像素点像素值的 变化来确定有无车辆通过。传统的设置虚拟检测区域的方法有三种:第一种是基于特征点 的检测区域;第二种是基于检测线的检测区域;第三种是基于检测窗口的检测区域。由于 单个点元素所包含的信息量非常的少,而且单个点极易受到外界噪声的干扰,因此基于检 测点的方法很少用于现代的检测算法;而检测窗口虽然包含的信息量大,但是如果划定的 检测区域过大,当车辆经过时,容易造成计数重复,影响检测结果的准确率,因此本文采 用基于检测线的检测区域。 上图可见,在某一条车道车辆行驶的正前方,设置一条检测线,当车辆经过此检测线 时,检测线上的像素点的灰度值剧烈的下降,便可以判断为有一辆车经过。具体实现过程 是,将视频的全部帧序列连续两帧检测线位置像素点前后做差,当有车辆即将经过时,前 一帧的检测线位置还未被车辆影响,而后一帧的检测线已被车身的阴影影响,故前一帧检 测线像素减去后一帧检测线像素应该为一个较大的正值,而当车身离开时,前一帧检测线 像素减去后一帧检测线像素应该为一个较大的负值。故在此处需要设定一个阈值作为判断 依据,即前后帧差值大于这个阈值时,认为是有车辆通过。同时,为了确保不是噪声造成 的干扰,要让前一帧图像检测线的像素值与背景图像检测线位置的像素值做差,如若差值 小于一个阈值,则认为是车辆还未经过。因此,必须同时满足前一帧减去后一帧的差值很 大和前一帧减去背景图像的差值很小这两个条件,才可判定是有一辆车通过,计数器加 1。这里统一规定,用每一张图片检测线位置像素点的灰度值的总和与其他图片的相应数值 做差,作为统计的标准。 如下图得到的曲线图,即前一帧图像检测线上像素点灰度值求和后减去后一帧检测线 上像素点灰度值求和后得到的曲线图。 图像较高的正值尖锋可以看做是有一辆车通过。通过设定阈值,可以将图像中小的尖 峰滤掉。本设计通过大量实验可得,前后两帧差的阈值设定为 16,而前一帧减去背景图像 差的阈值设定为 5,检测检测结果为 9,与视频中的车流量一致 上面做的统计仅仅是一列 车辆通过的数量,从图中可以看出,图中的车道一共有四列车道组成,可以再每一列车道 设置同样的检测线统计出每一列车道的车流量,最终求和就是这个路口的通行车流量。 由上可知,由于采用了基于检测线的检测方法,计算机在进行处理时,仅仅计算每一 帧的检测线位置的像素值即可,不必处理整个视频帧序列的各个帧,从而大大的减少了计 算量,又能获得较快的处理速度,能够达到系统实时性的要求。 第四章 系统的硬件设计 4-1 FPGA 硬件系统设计知识简介 4-1-1 硬件描述语言知识简介 (1)硬件描述语言 硬件描述语言 HDL 是一种用形式化方法描述数字电路和系统的语言。利用这种语言, 设计人员可以在数字电路系统的设计中从上层到下层逐层描述自己的设计思想 在设计过程中,设计人员首先用一系列分层次的模块来表示及其复杂的数学系统,然 后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,最后,用专用集成电路 (ASIC)或现场可编程门阵列(FPGA)自动布局布线,把网标转换为要实现的具体电路 布线结构 20 世纪 80 年代,VHDL 和 Verilog HDL 语言诞生。它们是一种面向设计的多领域、多 层次并得到普遍认同的标准硬件描述语言 (2)VHDL 和 Verilog HDL 语言的概述 VHDL 语言诞生于 20 世纪 80 年代,目前已成为数字电路设计和系统的描述、建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月四川成都纺织高等专科学校招聘事业编制人员7人模拟试卷及参考答案详解一套
- 2025年商丘夏邑县公安局招聘看护队员50人模拟试卷及完整答案详解
- 2025甘肃省卫生健康委系统招聘51人模拟试卷及答案详解(考点梳理)
- 2025海南乐东县机关事务服务中心招聘保安人员2人模拟试卷及完整答案详解
- 2025贵州大方县人民政府办公室招募见习人员考前自测高频考点模拟试题及参考答案详解一套
- 2025广东省事业单位集中招聘高校毕业生广州市中级人民法院岗位笔试考前自测高频考点模拟试题完整答案详解
- 2025北京市公安局东城分局招聘勤务辅警122人考前自测高频考点模拟试题完整答案详解
- 2025广东依顿电子科技股份有限公司招聘工艺工程师岗人员模拟试卷参考答案详解
- 2025年甘肃省天水市秦安县中医医院招聘编外人员34人模拟试卷含答案详解
- 2025河南郑州大学招聘500人模拟试卷及1套完整答案详解
- 2025年上海市(秋季)高考语文真题详解
- 《秘书文档管理第三版》课件第七章
- 电力工程电缆设计课件
- 施工班组驻地管理制度
- 城投公司成本控制管理制度
- 中国磷化工行业市场规模及发展前景研究报告(智研咨询)
- 万亨工业科技(台州)股份有限公司年产500万套逆变器及配件、800万套新能源汽车控制器配件技改项目环评报告
- 娃哈哈企业财务分析报告
- 装修木工清包合同协议书
- DB13T 1568-2012 生态公益林经营技术规程
- 科技论文写作 第2版 课件 第1-5章 科技论文写作概述-英文科技论文的写作
评论
0/150
提交评论