datasheet
超过460,000+ 应用技术资源下载
pdf

基于ARM嵌入式平台的目标跟踪系统的研究

  • 1星
  • 日期: 2014-03-05
  • 大小: 4.42MB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 基于ARM嵌入式平台的目标跟踪系统的研究

近年来,随着现代社会对军用和民用设备需求的不断扩大及要求的不断提高,运动目标的识别和跟踪技术已经迅速发展成为现代信息处理领域中一项非常重要的技术,并在许多领域内发挥着不可替代的作用,但是在面向应用的目标跟踪系统却不尽如人意,不能很好的满足应用的要求。 本文简述了传统的基于桌面PC机的目标跟踪系统实现方法。目标跟踪具有两个突出的特点,一是计算数据量大,一是对处理速度要求高。传统上,运动目标跟踪系统的实现是基于桌面PC机,但工业应用的快速发展使传统的目标跟踪系统越来越不能满足应用的需要。 本文提出了一种基于ARM嵌入式平台的目标跟踪解决方案。研究了如何将嵌入式平台和目标跟踪结合起来,并对系统的设计思想和设计方法进行了详述。首先进行了功能分析和总体设计,分析了将嵌入式平台作为目标跟踪解决方案的关键性问题,包括采用ARM嵌入式平台的必要性,系统框架的设计,对于嵌入式处理器和操作系统的选择:然后在总体设计的基础上完成了系统的设计,包括软硬件平台的设计,完成了BootLoader的设计,Linux内核的定制,USB摄像头驱动程序的设计和OpenCV视觉库的建立;最后分析了目标跟踪的过程,利用背景差法实现了运动的检测,提取了行人的特征,利用Mean-Shift算法实现了对运动目标的跟踪。 本文提出的基于嵌入式平台的目标跟踪系统的应用潜力巨大,有待进一步的研究和探索。在论文最后对研究进行了总结和展望,提出了未来的研究方向。

武汉科技大学 硕士学位论文 基于ARM嵌入式平台的目标跟踪系统的研究 姓名:吴繁 申请学位级别:硕士 专业:控制理论与控制工程 指导教师:潘炼 20090516 武汉科技大学硕士学位论文 第1页 摘要 近年来,随着现代社会对军用和民用设备需求的不断扩大及要求的不断提高,运动 目标的识别和跟踪技术已经迅速发展成为现代信息处理领域中一项非常重要的技术,并 在许多领域内发挥着不可替代的作用,但是在面向应用的目标跟踪系统却不尽如人意, 不能很好的满足应用的要求。 本文简述了传统的基于桌面PC机的目标跟踪系统实现方法。目标跟踪具有两个突出 的特点,一是计算数据量大,一是对处理速度要求高。传统上,运动目标跟踪系统的实 现是基于桌面PC机,但工业应用的快速发展使传统的目标跟踪系统越来越不能满足应用 的需要。 本文提出了一种基于ARM嵌入式平台的目标跟踪解决方案。研究了如何将嵌入式 平台和目标跟踪结合起来,并对系统的设计思想和设计方法进行了详述。首先进行了功 能分析和总体设计,分析了将嵌入式平台作为目标跟踪解决方案的关键性问题,包括采 用ARM嵌入式平台的必要性,系统框架的设计,对于嵌入式处理器和操作系统的选择; 然后在总体设计的基础上完成了系统的设计,包括软硬件平台的设计,完成了BootLoader 的设计,Linux内核的定制,USB摄像头驱动程序的设计和OpenCV视觉库的建立;最 后分析了目标跟踪的过程,利用背景差法实现了运动的检测,提取了行人的特征,利用 Mean-Shift算法实现了对运动目标的跟踪。 本文提出的基于嵌入式平台的目标跟踪系统的应用潜力巨大,有待进一步的研究和 探索。在论文最后对研究进行了总结和展望,提出了未来的研究方向。 关键词:嵌入式平台,目标跟踪,ARM,Linux,OpenCV 第1I页 武汉科技大学硕士学位论文 Abstract In recent years,by the expand and request of equipment useful for civilian and military purposes of modern society,classification and tracking technique of the moving object has become a very important technique of modem information processing domain.And also play an important role in many other domains.But these algorithms are not useful for applications and Can’t meet the demand of the application. The thesis compendium a method of image processing system based on PC.The object tracking has two extrude feature.One is the calculated amount is too intensive,and the other is the request of the processing speed demanding.Traditionally,the realization of the moving object tracking technique is based on PC.But the traditional moving object tracking technique demand can’t meet the of the application any more for the quick process of the industry application. The thesis significant an object tracking solution based on ARM embedded platform.It dealt with the combine of the object tracking and embedded platform,and detailed the design ideal and method.It analyzed the function and the whole system firstly,and then analyzed the main problem of the embedded platform used for object tracking solution,which including the system necessity of the use of the embedded platform,the design of the frame and the option of the embedded processor and the operation system.And the thesis complete the design of the system based on the design of the whole system,including the design of the hardware and software platform,the design of the BootLoader,the custom of the kernel of Linux,the design of the driver of the USB camera and the set up of the OpenCV vision bank.It finally analyzed movement the process of the object tracking,the realization of the detecting using background finite difference method,extracted the feature of the pedestrian and realized the tracking of the moving object using Mean-Shift algorithm. The use the object tracking system based on embedded platform is potentially huge,and it needs further study and research.The thesis summarized and prospected the research finally and significant the direction of the study in the future. Keywords:Embedded platform,Object tracking,ARM,Linux,OpenCV 武汉科技大学 研究生学位论文创新性声明 本人郑重声明:所呈交的学位论文是本人在导师指导下,独立进行研 究所取得的成果。除了文中已经注明引用的内容或属合作研究共同完成的 工作外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 差垫 论文作者签名: 日期:之!呈:互堡 研究生学位论文版权使用授权声明 本论文的研究成果归武汉科技大学所有,其研究内容不得以其它单位 的名义发表。本人完全了解武汉科技大学有关保留、使用学位论文的规定, 同意学校保留并向有关部门(按照《武汉科技大学关于研究生学位论文收录 工作的规定》执行)送交论文的复印件和电子版本,允许论文被查阅和借阅, 同意学校将本论文的全部或部分内容编入学校认可的国家相关数据库进行 检索和对外服务。 .墨銎 论文作者签名: 指导教师签名:磕笙生 It 期:兰翌墨:笸:呈 武汉科技大学硕士学位论文 第1页 第一章绪论 1.1本课题研究的目的和意义 近年来,随着现代社会对军用和民用设备需求的不断扩大及要求的不断提高,运动目 标的识别和跟踪技术已经迅速发展成为现代信息处理领域中一项非常重要的技术,并在许 多领域内发挥着不可替代的作用,在军事上,用于导弹的地形和地图匹配n1、飞行器导航、 武器投射系统的制导、光学和雷达图像的跟踪乜1等方面;在工业上,用于工业流水线的自 动监测、机器人视觉疆1等;在医学上,用于生物组织(如细胞、器官等)的运动分析;在商用 上,用于高清晰度电视及视频会议的动态图像传输、频带压缩等;在气象上,还可以对卫 星云图进行动态分析和天气预报。基于图像的目标跟踪算法由于其跟踪精度高,跟踪平稳, 抗干扰能力强以及成本低等优点,是目标识别和跟踪系统中最为常用。在序列图像中进行 目标跟踪是计算机视觉研究的一个核心方向之一.目标跟踪具有两个突出的特点,一是计 算数据量大,一是对处理速度要求高。传统上,运动目标跟踪系统的实现是基于桌面PC 机,但工业应用的快速发展使传统的目标跟踪系统越来越不能满足工业应用的要求,这主 要体现在以下几个方面: 第一,实时性要求 机器视觉检测和视频跟踪监控领域,对实时性有较高的要求,实时性不满足就会导致 任务的失败。在日益复杂的图像应用中,不仅要求有硬件加速,还要求有实时操作系统的 支持。与目标跟踪相关的主要应用领域有智能视频监控、人机交互、自动驾驶控制、农业 自动化、医学图像、视觉重构等。 第二,小型化要求 现今图像处理应用越来越趋于小型化系统,趋向于把整个处理系统集成在一个小“黑 盒子"里面,甚至于一块电路板上。这就要求目标跟踪系统具有高速度、高集成度的处理 芯片来完成原本需要许多部件合作完成的任务。要求中央处理器可以把众多的功能集于一 身,并通过外部扩展来实现复杂的功能,实现系统的小型化。另外,视频图像一个很大的 特点就是大容量性,这是与音频数据最大的区别之一。对于大容量数据的实时处理不但需 要高速的CPU,还需要能扩展的大容量存储空间Ht引。 对于实时性和小型化的要求,可以使用嵌入式系统作为核心处理器,它体积小,结构 紧凑,可作为一个部件安放在所控制的装置中。它提供了用户接口,管理相关信息的输入 输出,使应用系统有较高智能和性价比。嵌入式系统的硬件集成化高,软件采用实时多任 务操作系统和相应的应用软件,软件硬件均可裁剪,以ARM处理器为核心的嵌入式平台 拥有很大的优势。因此,本文提出了一种基于ARM嵌入式平台的目标跟踪解决方案。嵌 入式平台基于上述优点,可以面对日益复杂的图像及目标跟踪应用。基于嵌入式平台的目 标跟踪系统是未来目标跟踪系统的发展趋势。研究如何将嵌入式平台和目标跟踪结合起 来,对于开发目标跟踪应用具有重要的指导意义。 第2页 武汉科技大学硕士学位论文 1.2国内外研究现状 1.2.1目标识别与跟踪技术的发展 国外对目标跟踪的理论研究及应用研究起步较早,早在50年代初期,GAC公司就为 美国海军开发研制了自动地形识别跟踪系统(AT黜≮N)∞1。进入70年代以来,随着相关理论 与技术的不断发展,自适应跟踪、智能跟踪的思想方法相继提出,目标跟踪技术无论从理 论研究、还是从应用研究上都取得了巨大的进展。20世纪是世界科学技术发展最辉煌的时 代,不胜枚举的科技成果相继诞生并迅速投入各个领域。并且许多国际性刊物,如:IEEE on AES,IEEE On AC,Proceedings of SPIE等成为了专家、学者学术交流的重要平台。在 国际上已经为图像跟踪的研究提供了良好的环境,并取得了惊人的成就。目标识别和跟踪 技术在我国起步较晚,其主要应用在国防、航天等领域。自上世纪80年代以来,我国开 始注重视频跟踪方面的研究口1,并研制出了788型广电经纬仪,DGC电视跟踪测量经纬仪 等产品。随着此技术的日趋成熟和创新,如今它在民用产品中的应用也越来越广泛。目前, 一些高等院校、科研院所都已经开展了此项研究工作。近年来,一些专家、学者通过各种 方式,如模式识别、人工智能、图像信息融合等对智能图像跟踪技术的研究进行了尝试。 目标跟踪系统一般式基于对图像序列的处理,力求从复杂的背景中识别出运动目标, 并对目标的运动轨迹加以预测,从而实现对运动目标的跟踪。目标跟踪系统的算法包括目 标跟踪系统包括图像输入,图像预处理,运动目标检测,运动目标提取,运动目标跟踪等。 总的来说,这些算法分为两大类,目标的识别算法和目标的跟踪算法。识别算法是跟踪算 法的重要前提,识别算法的优劣决定了跟踪算法的稳定性。·而跟踪算法的好坏影响着识别 算法在系统运行中的性能。国内外学者对各种情况下的目标跟踪算法作了很多的研究,目 前比较常用的跟踪算法有如下几种:基于目标运动特征的跟踪算法,如图像差分跟踪算法 随】、基于目标光流特征的跟踪算法∞¨伽等。 1.2.2 ARM技术的发展 ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类 微处理器的统称,还可以认为是一种技术的名字。采用ARM技术IP核的微处理器遍及汽 车、消费电子、成像、工业控制、海量存储、网络、安保和无线等各类产品市场。目前, 基于ARM技术的处理器已经占据了32位RISC芯片75%的市场份额。基于A砌订的处理 器以其高速度、低功耗、价格低等优点得到非常广发的应用,它可以应用于以下领域: (1)为无线通信、消费电子、成像设备等产品提供可运行复杂操作系统的开发应用平台; (2)在海量存储、汽车电子、工业控制和网络应用等领域提供实时嵌入式应用; (3)安全系统,比如信用卡、SIM卡等。 迄今为止,ARM体系结构共定义了6个版本。从版本1到版本6,ARM体系的指令 集功能不断扩大。ARM处理器系列中的各种处理器,其采用的实现技术各不相同,性能 差别很大,应用场合也有所不同,但是只要它们支持相同的ARM体系版本,基于它们的 武汉科技大学硕士学位论文 第3页 应用软件将是兼容的。 1.3基于ARM嵌入式平台的目标跟踪系统 以前的目标跟踪系统多以桌面PC和DSP处理器构建。但是随着图像处理应用领域的 深入发展,实时性和小型化对目标跟踪系统的发展提出了新的挑战。以ARM为代表的嵌 入式处理器的出现,使以更高速度,更高集成度,支持大容量FLASH和RAM存储器,拥 有丰富接口,支持操作系统为处理器的嵌入式系统的发展成为未来图像处理系统的发展趋 势。基于ARM嵌入式平台目标跟踪系统具有体积小、成本低、稳定性高等优点,未来会 在诸如智能交通、移动机器人、智能产品检测、医学仪器、视频监控系统、等各种目标跟 踪应用领域得到越来越广泛的应用。基于嵌入式平台的目标跟踪解决方案,在未来目标跟 踪领域会有很大的发展潜力。研究如何将嵌入式平台和目标跟踪结合起来,对于目标跟踪 应用具有重要的指导意义。本文详细分析了将嵌入式平台作为一种目标跟踪解决方案中应 解决的关键性问题。本系统采用的硬件开发平台为S3C2440 ARM开发板,开发板提供了 一套比较完整的通用系统的外围设备,并且使得整个系统消耗最少。正是因为它具有很多 常用的功能模块,所以也免去了添加配置附加设备的麻烦。 1.4本课题主要研究的内容和章节安排 1.4.1本课题主要研究内容 1、根据实际环境下运动目标的特点,结合ARM硬件开发平台,设计了对运动目标进行检 测、识别和稳定跟踪的系统总体方案。 2、对目标跟踪算法进行研究,结合运动目标的特点,在ARM硬件上实现较复杂的图像处 理算法。结合实例进行了功能分析和总体设计,分析了将嵌入式平台作为目标跟踪解决方 案的关键性问题,包括采用嵌入式平台的必要性,系统框架的设计,开发流程和开发原则 的设计,对于嵌入式处理器和操作系统的选择。对基于嵌入平台的图像处理系统设计具有 普遍意义。 3、完成了系统的硬件平台的设计针对Samusng公司的3SC2440处理器完成了系统的时钟 模块、存储器接口、LCD模块、图像采集模块等的设计。. 4、分析了Linux内核的特点,完成了操作系统内核的定制,BootLoader的修改和编写,驱 动程序的开发,嵌入式系统的移植,并分析了应用程序开发的一些关键问题。 5、分析了目标跟踪的过程。利用自适应背景减除方法实现了运动的检测,分析了目标跟踪 的过程。利用背景差法实现了运动的检测,提取了运动物体的特征。运动检测是发现运动 目标,然后利用Mean.Shift算法实现对运动目标的跟踪。 1.4.2本论文的章节安排 第一章为绪论。分析了图像处理系统的背景和现状,在分析了嵌入式系统,实时图像 处理的发展现状之后,针对传统图像处理实现不能满足日益复杂和广泛的图像处理应用, 提出了一种基于ARM嵌入式平台的图像处理解决方案。此外,还介绍了论文的主要工作 第4页 武汉科技大学硕士学位论文 和章节安排。 第二章系统功能和总体设计。进行了功能分析和总体设计,分析了将嵌入式平台作为 图像处理解决方案的关键性问题,包括采用嵌入式平台的必要性,系统框架的设计,开发 流程和开发原则的设计,对于嵌入式处理器和操作系统的选择。对基于嵌入式平台的目标 跟踪系统设计具有普遍意义。 第三章针对¥3C2440处理器设计了整个硬件平台,重点叙述了系统时钟,存储器接口, LCD模块,USB接口的摄像头等模块。 第四章分析了Linux内核的特点,完成了操作系统内核的定制,BootLoade:的修改和 编写,驱动程序的开发。并分析了应用程序开发的一些关键问题,详细描述了如何移植 OpenCV视觉库。 第五章分析了目标跟踪的过程。利用背景差法实现了运动的检测,提取了运动物体的 特征。运动检测是发现运动目标,然后利用Mean.Shift算法实现对运动目标的跟踪。 第六章总结了本课题研究所取得的成果及其不足之处,提出了课题进一步深入研究的 展望及应用前景。 武汉科技大学硕士学位论文 第5页 第二章系统功能分析和总体设计 目标跟踪系统有其特殊性,同样嵌入式系统也有其特殊性,研究如何将嵌入式平台与 目标跟踪结合起来并很好的解决特定方面上的应用,需要对目标跟踪系统进行功能分析和 总体设计。这样的系统经扩展后可以应用到工业流水线的自动监测、机器人视觉等应用中。 2.1系统功能分析 目标跟踪系统是利用一个可移动的图像处理设备实现图像中运动物体的检测和跟踪。 传统上,运动目标跟踪系统的实现是基于桌面PC机,但工业应用的快速发展使传统的目 标跟踪系统越来越不能满足工业应用的要求,要实现实时性和小型化的要求,在目标跟踪 的场合,被跟踪目标的数目的不确定性要求多任务的实现机制,DSP处理器不是本质上多 任务的系统,程序实现面临很大的困难。利用具有多任务的操作系统,就可以轻松解决这 个问题。只需要增加新的线程,就可以实现运动目标的跟踪。 根据上述功能的分析, -ARM嵌入式平台是解决实时性和小型化的有效途径,采用基 于ARM嵌入式平台的目标跟踪系统的解决方案可以满足设备功能的要求。 2.2系统总体设计 2.2.1系统结构框架 总体设计是在功能分析的基础上,对系统的结构框架,开发流程和开发原则进行的设 计。总体上,基于ARM嵌入式目标跟踪系统可划分为摄像头、嵌入式硬件开发平台、嵌入 式操作系统和实现目标跟踪算法的应用程序。图2.1是嵌入式平台目标跟踪系统的结构框 图。 应用程序(目标跟踪 算法的实现) 操作系统 嵌入式硬件开发平 厶 口 图2.1基于嵌入式平台目标跟踪系统的结构框图 (1)摄像头 摄像头主要作用是采集视频信号,然后将其转换成数字形式存储。 (2)嵌入式硬件开发平台 硬件部分以ARM核的嵌入式处理器为核心并扩展了大容量SDRAM存储器,ARM嵌 入式硬件平台控制序列图像的采集和实时处理。 (3)操作系统 第6页 武汉科技大学硕士学位论文 嵌入式操作系统为底层硬件提供驱动支持、内存管理、中断管理以及目标跟踪处理任 务管理等,系统启动后首先通过引导程序启动操作系统完成硬件的初始化,然后通过操作 系统实现对目标跟踪需要的计算和内存资源进行实时分配和回收。 (4)应用程序 应用程序是针对需求编写的只适用于本操作系统的专用程序,由于有操作系统的支 持,在应用程序的开发过程中开发者只需要关注软件功能的实现,而不用注意具体的硬件 细节。如果操作系统相同,应用程序可以很容易移植到其它硬件环境中。在本系统中,应 用程序主要实现目标跟踪系统所需要的算法。保证目标跟踪系统的实现。 2.2.2系统硬件总体设计 系统硬件体系分为两部分:核心模块和外围扩展模块。核心模块主要包括ARM微 处理器、存储暑¥(Flash、SDRAM和NAND Flash)、晶振、复位、JTAG接口以及I/O总 线接口。外围扩展模块包括电源、键盘、LCD、串口以及USB摄像头。各功能模块的 布局如图2.3所示。 图2.3ARM各功能模块的布局 2.3嵌入式处理器的选择 2.3.1 ARM处理器简介 嵌入式系统的核心是处理器,传统嵌入式处理器根据应用可分为两大类:一是以单片 机为主的微处理器,这一类芯片的产品有8/16位的单片机,如Intel的80c51等,单片机 具有体积小,指令系统简单,抗干扰能力强,成本低廉,控制能力强等特点。二是注重数 字化后的各种快速算法的数字信号处理器DSP,DSP作为高速的数字信号处理器主要的应 用在声音、图像等需要大量的数据计算的领域,有着功耗小、运算速度快、吞吐量大的特 点。 近年来,随着微电子技术、计算机技术、通信以及网络技术的发展,嵌入式技术参透 到各个领域。由于被嵌入对象的复杂程序变化很大,对嵌入式系统本身在性能、体系结构 等方面要求多样化,导致了嵌入式系统及其应用的多样性。作为嵌入式系统核心的嵌入式 微处理器必须对嵌入式应用面临的挑战,而ARM(Advanced RISC Machines)嵌入式微处理 武汉科技大学硕士学位论文 第7页 器,以其完整的体系结构发展系列,极小的体积、极低的功耗、极低的成本、极高的性能, 及时根据嵌入的对象的不同进行功能上的扩展的优势,在众多种类的嵌入式微处理器中脱 颖而出。ARM的设计实现了非常小但高性能的结构。ARM处理器的结构简单使得其内核 十分的小,因此器件的功耗非常低。首个被设计的ARM处理器芯片采用的加载/存储体系 结构是典型的精简指令集计算机(RISC)结构。ARM体系结构继承了RISC结构中的加载/ 存储体系结构、固定长32位指令和三地址指令格式。ARM处理器大量使用寄存器,指令 执行速度更快,大多数数据操作都在寄存器中完成n小伽。 2.3.2 ARM处理器的选择 ARM处理器的选择需要遵守如下几点: (1)处理器的应用领域 由于本课题是用来做目标跟踪系统,操作系统需要有强大的内存管理能力,所以 要选择有对内存管理单元MMU支持的ARM核。 (2)合适的操作系统 由于运动目标跟踪系统需要实现多进程的调度,所以需要选择合适的操作系统来 实现这一功能。 (3)实时性要求 根据目标跟踪系统实时性的要求,需要系统的时钟频率较高的处理器。 基于上述3点,本课题采用¥3C2440芯片作为核心处理器,¥3C2440芯片是基于 ARM920T内核,采用五级流水线和哈弗结构,提供1.1MIPS/MHz的性能,是高性能和低 功耗的硬宏单元。ARM920T具有全性能的MMU、指令和数据Cache以及高速ARBA总 线接口。作为¥3C2440芯片的CPU芯核。16/32位ARM920T RISC微处理器采用0.181m CMOS标准单元结构。具有独立的16KB指令缓存和16KB数据缓存n钔。 ¥3C2440内部结构复杂,提供可扩展的功能模块较多,主要有ARM920T内核(16-/32.bit RISC CPU),独立的16KB指令和16KB数据缓存,MMU虚拟内存管理单元,LCD控制 器,NAND flash boot loader,系统管理单元(SDRAM控制器等),3通道DART,4通道DMA, 4通道具备PWM功能的定时器,I/O口,RTC(实时时钟),8通道10bit精度ADC和触摸 屏控制器,IIC总线接口,IIS数字音频总线接口,USB主机,USB设备,SD/MMC卡控 制器,2通道SPI和PLL数字锁相环组成。 ¥3C2440提供了一套比较完整的通用系统的外围设备,并且使得整个系统消耗最少。 正是因为它具有很多常用的功能模块,所以也免去了添加配置附加设备的麻烦。片上集成 的功能主要包括以下几个方面: (1)1.8VARM内核,3.3V存储器,3.3V外部I/O,具有16KB指令缓存/16KB数据缓存 和MMU的微处理器; (2)外部存储控制器(SDRAM控制和片选逻辑); (3)LCD控制器,1通道LCD专用DMA: (4)具有外部请求引脚的4通道DMA: 第8页 武汉科技大学硕士学位论文 (5)3通道UART(IRDAl.0,16.ByteTx FIFO和16一Byte Rx FIFO),2通道SPI; (6)1通道IIC总线控制器,1通道BS总线控制器; (7)SD主机接口和兼容的多媒体卡协议; (8)2个USB主机,1个USB设备(USBl.1): (9)4通道PWM计时器,1通道内部计时器; (10)看门狗电路; (11)117个通用入口,24通道外部中断源; (12)电源控制:常规、缓慢、空闲和断电模式; (13)8通道10位ADC和触摸屏接口; (14)具有日历功能的实时时钟RTC; 。 (15)具有锁相环的片上时钟发生器。 2.4 ARM9的体系结构 2.4.1 ARM处理器模式 ARM(Advanced RISC Machines)是目前在嵌入式领域里应用最广泛的RISC微处理器 结构,以其低成本、低功耗、高性能的特点占据了嵌入式系统应用领域的领先地位。ARM 系列的处理器当前有ARM7、ARM9、ARM9E、ARMl0等多个产品,所有的ARM处理 器都共享ARM通用的基础体系结构,所以开发者在不同的ARM处理器上做操作系统移 植时,可以节省相当多的工作量,这无疑将大大降低软件开发成本。 ARM处理器共有7种运行模式,如表2.1所示: 表2.1 ARM处理器运行模式 处理器模式 描述 用户模式(Uscr,usr) 正常程序执行的模式 快速中断模式(FIQ,fiq) 用于高速数据传输和通道处理 外部中断模式(IRQ.irq) 用于通常的中断处理 特权模式(Supervisor,sve) 供操作系统使用的一种保护模式 数据访问中止模式(Abort,abt) 用于虚拟存储及存储保护 未定义指令中-I卜模式(Undefined,und) 用于支持通过软件方针硬件的协处理器 系统模式(System,sys) 用于运行特权级的操作系统任务 除了用户模式之外的其他6种处理器模式称为特权模式。在这些模式下,程序可以访 问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他5 种特权模式又称为异常模式n 71。 处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切 换。大多数的用户程序运行在用户模式下。这时。应用程序不能够访问一些受操作系统保 护的系统资源。应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式切换 时。应用程序可以产生异常处理,在异常处理过程中进行处理器模式的切换。这种体系结 构可以使操作系统控制整个系统的资源。 武汉科技大学硕士学位论文 第9页 2.4.2 ARM寄存器 ARM处理器共有37个寄存器。31个通用寄存器,包括程序计数器(PC)在内。这些寄 存器都是32位寄存器。6个状态寄存器。包括CPSR和各种模式下的SPSR,注意用户模 式和系统模式下没有SPSRn81。全部的寄存器可以分为两大类:通用寄存器和状态寄存器。 通用寄存器: (1)R㈣7:与所有处理器模式无关的寄存器,可以用作任何用途。 (2)R8 ̄R14:与处理器模式有关的寄存器,在不同的模式下,对应到不同的物理寄存器。 其中R13又叫SP,一般用于堆栈指针。R14又叫做LR,一般用于保存返回地址。这两 个寄存器在每种异常模式下都对应到不同的物理寄存器上。 (3)R15:又叫做程序计数器,即PC,所有的模式下都使用同一个PC。 。 (4)CPSR:当前程序状态寄存器,所有的模式下都使用同一个CPSR。CPSR可以在任何处 理器模式下被访问。 (5)SPSR:保存的程序状态寄存器,每种异常模式下都有自己的SPSR,一共有5种SPSR, 但用户模式和系统模式下没有SPSR。 2.4.3 ARM体系的异常中断 ARM处理器对异常中断的响应过程如下: (1)保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态 寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中 断有自己的物理SPSR寄存器。 (2)设置当前程序状态寄存器CPSR中相应的位。包括:设置CPSR中的位,使处理 器进入相应的执行模式;设置CPSR中的位,禁止Ⅱ垃中断,当进入FIQ模式时,禁止 FIQ中断。 (3)将寄存器k mode设置成返回地址。 (4)将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应的异 常中断处理程序处执行。 从异常中断处理程序中返回包括以下两个基本操作: (1)恢复被中断的程序的处理器状态,即将SPSR mode寄存器内容复制到CPSR中。 (2)返回到发生异常终端的指令的下一条指令处执行,即将lr mode寄存器的内容复 制到程序计数器PC中。 复位异常中断处理程序不需要返回。在复位异常中断处理程序开始整个用户程序的执 行,因而它不需要返回。 2.4.4存储器管理单元MMU MMU提供的一个关键服务是,能使各个任务作为各自独立的程序在自己的私有存储空 间中运行。在带MMU的操作系统下,运行的任务无需知道其它与之无关的任务存储的需 求情况,这就简化了各个任务的设计。 第10页 武汉科技大学硕士学位论文 MMU简化了任务编程,因为它提供了一些资源,以允许使用虚拟存储器,一个另外 的独立于系统物理存储器空间的存储空间。MMU作为转换器,将程序和数据的虚拟地址 转换为实际的物理地址,即在物理主存中的地址。这个转换过程允许运行的多个程序使用 相同的虚拟地址,而各自存储在物理存储器的不同位置。从这种角度看,存储器就有两种 类型的地址:虚拟地址和物理地址。虚拟地址是由编译器和连接器在定位程序时分配;物 理地址用来访问实际的主存硬件模块n91。 在ARM系统中,存储器管理单元MMU主要完成以下工作: (1)虚拟存储空间到到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它 把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分 为同样大小的页。页的大小可以分为粗粒度和细粒度两种。MMU就要实现从虚拟地址到 物理地址的转换。 (2)存储器访问权限的控制。 (3)设置虚拟存储空间的缓冲的特性。 2.5操作系统的选择 ‘ 2.5.1几种主要的嵌入式系统 嵌入式操作系统负责嵌入式系统的全部软硬件资源的分配、调度工作、控制、协 调并发活动。目前国际上的嵌入式操作系统有近200种,这些操作系统有实时的,也 有非实时的。从20世纪80年代开始,市场上出现了各种各样的嵌入式操作系统,这 些操作系统大部分是为专有系统开发的,从而使得嵌入式系统呈现百花齐放的局面。 嵌入式操作系统具有可装卸性、强实时性、强稳定性和良好的移植性等特点。目前有 名的嵌入式操作系统有Windows CE、Palm OS、Linux、VxWorks等。 随着技术的发展及人们需求的增加,各种消费类电子产品的功能越来越强大,随着携 带的电子设备变得“等同于PC":上面有键盘、触摸屏、LCD等输入、输出设备,可以观 看视频。 1、VxWbrks VxWorks是美国WindRiver公司开发的嵌入式实时操作系统。单就性能而言,它是非 常优秀的操作系统,具有可裁剪的微内核结构、高效的任务管理、灵活的任务间通信、微 秒级的中断处理,支持POSIX 1003.1b实时扩展标准,支持多种物理介质及标准、完整的 TCP/IP网络协议等。缺点是它支持的硬件相对较少,并且源代码不开放,需要专门的技术 人员进行开发和维护,并且授权费比较高。 2、Windows CE Windows CE是微软公司针对嵌入式设备开发的32位、多任务、多线程的操作系统。 它支持X86、ARM、MIPS、SH等架构的CPU,硬件驱动程序丰富,比如支持WiFi、USB2.0 等新型设备,并具有强大的多媒体功能;可以灵活裁剪以减小系统的体积;与PC上的 Windows操作系统相通,开发、调试工具使用方便,应用程序的开发流程与PC上的Windows 武汉科技大学硕士学位论文 第11页 程序的开发流程相似,就开发的便利而言(特别是对于习惯在Windows下开发的程序员), Windows CE是最好的,但是,其源代码没有开放,开发人员难以跟细致的定制;占用比 较多的内存,整个系统相对庞大;版权许可费也比较高。在本课题中,内存资源有限,不 适合采用该系统。 3、pC/OS-II ltC/OS.II是Micrium公司开发的操作系统,可用于8位、16位、32位处理器。可裁 剪,对硬件要求较低;可以运行最多64个任务;调度方式为抢占式,即总是运行最高优 先级的就绪任务。用户可以获得pC/OS.II的全部代码,但它不是开放源码的免费软件,作 为研究和学习,可以通过购买相关书籍获得源码,用于商业目的时,必须购买其商业授权。 相对于其他按照每个产品收费的操作系统,pC/OS.II采用一次性的收费方式,价格低廉。 需要说明的是,}土C/OS.II仅是一个实时内核,用户需要完成其他更多的工作,比如编写硬 件驱动程序、实现文件系统操作等。对于本课题,要完成的工作相对太复杂,所以没有选 择该系统。 4、Linux Linux是遵循GPL协议的开放源码的操作系统,使用时无需缴纳许可费用。内核可任 意裁剪,几乎支持所有的32位、64位CPU;内核中支持的硬件种类繁多,几乎可以从网 络上找到所有硬件驱动程序;支持几乎所有网络协议;有大量的应用程序可用,从编译工 具、调试工具到GUI程序,几乎都有遵循GPL协议的相关版本;有庞大的开发人员群体, 有数量众多的技术论坛,大多问题都可以得到快速而免费的解答 正是由于Linux开放源代码、易于移植、资源丰富、免费等优点,使得它在嵌入式领 域越来越来流行。更重要的一点,由于嵌入式Linux与PC Linux源于同一套内核代码,只 是裁剪的程度不一样,这使得很多为PC开发的软件再次编译之后,可以直接在嵌入式设 备上运行,这使得软件资源“极大"丰富n朝。 2.5.2系统采用的嵌入式操作系统 本论文使用的是嵌入式Linux操作系统,下面就Linux做具体介绍。 Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与它自身诸多优秀的特性 是分不开的。Linux具有以下主要优点: (1)开发性 开发性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI:OpenSystem Interconnect)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实 现互连,Linux是一个免费软件,可以自由安装并任意修改软件的源代码,具有很好的开 放性。同时,它具有广泛的硬件支持特性,无论是精简指令系统(RISC),也无论是32位还 是“位等各种处理器,Linux都能运行。 (2)多用户 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如: 文件、设备)有特定的权限,互不影响。Linux是全面的多任务多用户和真正的32位操作 第12页 武汉科技大学硕士学位论文 系统。Linux和Unix都具有多用户的特性。 (3)多任务 多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序,并且各 个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处 理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执 行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时 间延迟,用户是感觉不出来的。 (4)良好的用户界面 Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的 命令行界面,即Shell,它既可以联机使用,又可保存在文件上脱机使用。Shell有很强的 程序设计能力,用户可方便地用它编译程序,从而为用户扩充系统功能提供了更高级的手 段。可编程Shell是指将多条命令组合在一起,形成一个Shell程序,这个程序可以单独运 行,也可以与其他程序同时运行。系统调用是给用户提供编程时使用的界面。用户可以在 编程时直接使用系统提供的系统调用命令。系统通过这个界面位用户程序提供低级、高效 率的服务。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设 施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。 (5)设备独立性 设备独立性是指操作系统把所有外部设备统一当成文件来看待,只要安装它们的驱动 程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存 在形式。设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备都 是通过与内核的专用连接独立进行访问,而其他操作系统只允许一定数量或一定种类的外 部设备连接。 (6)丰富的网络功能 完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。 其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联 网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。支持Intemet,免费提 供了大量支持Intemet的软件;支持文件传输,用户能通过一些Linux命令完成内部信息 或文件的传输;支持远程访问,Linux不仅允许进行文件和程序的传输,它还为系统管理 员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够 有效地为多个系统服务,即使那些系统位于相距很远的地方。 (7)良好的可移植性 可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运 境中和任何平台上运行,遵循通用国际标¨OSIX 行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环 1003.1标准,代码也有良好的可移植 性。POSIX 1003.1标准定义了一个最小的UNIX操作系统接口,任何操作系统只有符合这 一标准,才有可能运行UNIX程序。 武汉科技大学硕士学位论文 第13页 (8)Linux具有一整套工具链 Linux拥有非常完整的工具链,因此,容易自行建立嵌入式系统的开发环境和交叉运行 环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。一般开发嵌入式操作系统的程序 调试和跟踪都使用仿真器实现,而使用Linux系统做原型的时候,可以绕过这个障碍,直 接使用内核调试器来做操作系统的内核调试。 (9)支持多种文件系统 Linux支持的文件系统很多,而且还在继续增加。目前支持的文件系统有: EXT、EXT2、EXT3、NFS、UFS、VFAT、NCP、IS09660等。Linux最常用的文件系 统是EXT2,它的文件名长度可达255字符,并且还有许多特有的功能。 对于嵌入式Linux操作系统,根据外部设备和存储空间等情况,需要对系统进行裁剪, 裁剪主要通过减小内核,减小动态链接库,减小应用程序等减少各种代码占用空间的方法, 以及压缩文件系统来实现。另外,嵌入式系统还需要增强定时性,可以通过修改进程调度 算法和使用双内核系统等方法实现。Linux具有的网络功能,可以满足嵌入式系统对网络 越来越多的需求。同时,嵌入式Linux也可以使用在桌面系统广泛使用的图形界面,具有 良好的交互性。 Linux应用于嵌入式系统的另外一个显著地优势就是可以使用主机模拟的环境进行 开发,因为在嵌入式设备上运行的Linux系统与普通的桌面Linux系统几乎完全相同,这 对应用程序的开发提供了很大的便利。开发者可以在桌面Linux环境下编写和调试程序, 完成后的直接放到嵌入式系统中,这样嵌入式系统的开发就有大量的资源可以利用。源码 开发的Linux的开发模式对于嵌入式系统的快速开发具有很大作用。 2.6本章小结 本章从整体上进行了功能分析和总体设计,分析了将嵌入式平台作为图像处理解决方 案的关键性问题,包括采用嵌入式平台的必要性,系统框架的设计,开发流程和开发原则 的设计,对于嵌入式处理器和操作系统的选择。对基于嵌入式平台的目标跟踪系统设计具 有普遍意义。 第14页 武汉科技大学硕士学位论文 第三章硬件开发平台 本课题采用了¥3C2440芯片作为核心处理器,¥3C2440处理器是Samsung公司基于 ARM公司的ARM920T处理器核,采用0.13pm制造工艺的COMS标准宏单元和存储器单 元。该处理器拥有:支持内存管理MMU,独立的16KB指令Cache和16KB数据Cache, 支持TFT的LCD控制器,NAND闪存控制器,3路UATR,4路DMA,4路带PWM的 Timer,I/O口,RTC,8路10位ADC和触摸屏接口,IIC—BUS接口,115一BUS接口, 2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2440处理器最高可 运行在203MHz,是同类嵌入式CPU中最快的一款,并兼有低功耗、高度集成性等特性啪1。 3.1存储控制器 ¥3C2440的“存储控制器"提供了访问外部设备所需的信号,它有如下特性: (1)支持小字节序、大字节序; (2)每个BANK的地址空间为128MB,总共1GB(8 BANKs); (3)可编程控制的总线位宽(8/16/32-bit),不过BANK0只能选择两种位宽(16/32.bit); (4)总共8个BANK,BANK0 ̄BANK5可以支持外接ROM、SRAM等,BANK6 ̄BANK7 除可以支持ROM、SRAM外,还支持SDRAM等; (5)BANKo ̄BANK-6共7个BANK的起始地址是固定的; (6)BANK7的起始地址可编程选择; (7)BANK6、BANK7的地址空间大小是可编程控制的; (8)在外接SDRAM时,支持自刷新(self-refresh)和省电模式(power down mode)。 ¥3C2440与GDRAM的接口示意图如图3.1所示 S3C2440 SDRAM 图3.1¥3C2440与SDRAM的接口示意图 3.2 LCD控制器 S3C2440 LCD控制器被用来向LCD传输图像数据,并提供必要的控制信号,比如 武汉科技大学硕士学位论文 第15页 VFRAME、VLINE、VCLK、VM等。可以支持STN LCD和TFT LCD,其特性如下(BPP) 表示bitperpi)【el,即每个色素使用多少位来表示其颜色)。 (1)STN LCD 支持3种扫描方式:4位单扫、4位双扫和8位单扫;支持单色(1BPP)、4级灰度(2BPP) 和16级灰度(4BPP)屏;支持分辨率为640x480、320x240、160x 160以及其他规格的多种 LCD;虚拟屏幕最大可达4MB。 (2)TFrLCD 支持单色(1BPP)、4级灰度(2BPP)、16级灰度(4BPP)、256色(8BPP)的调色板显示模 式;支持64K(16BPP)和16M(24BPP)色非调色板显示模式;支持分辨率为640x480、 320x240以及其他规格的多种LCD;虚拟屏幕最大可达4MB。 ¥3C2440 LCD控制器提供了驱动STN LCD、1rI叮LCD所需的所有信号。REGBANK 是LCD控制器的寄存器组,含17个寄存器及一块256x 16的调色板内存,用来设置各项 参数。而LCDCDMA则是LCD控制器专用的DMA信道,可以自动地从系统总线上取到 图像数据,这使得显示图像时不需要CPU的干涉,VIDPRCS将LCDCDMA中的数据组合 成特定的格式,然后从VD[23:0]发送给LCD屏。同时TIMEGEN和LPC3600负责产生LCD 屏所需要的控制时序,例如VSYHC、HSYNC、VCLK、VDEN,然后从VIDEO MUX送 给LCD屏。 LCDCDMA中有两个FIFO:FIFOH容量为16(1个字为4个字节)个字FIFOL容量为 12个字。当使用“双扫"方式时,FIFOH、FIFOL分别用于传输上半屏、下半屏数据:当 使用“单扫"方式时,只用到FIFoH。当FIFO为空或者其中的数据已经减少到设定的阈 值时,LCDCDMA自动地发起DMA传输从内存中获取图像数据。 3.3系统时钟和定时器 3.3.1¥3C2440时钟体系 S3C2440的时钟控制逻辑既可以外接晶振,然后通过内部电路产生时钟源;也可以直 接使用外部提供的时钟源,它们通过引脚的设置来实现。为了降低电磁干扰、降低板间布 线的要求,¥3C2440外接的晶振频率通常很低,本课题采用的系统时钟为12MHz,需要通 过时钟控制逻辑的PLL提高系统时钟。 3.3.2 PWM定时器 S3C2440的定时器部件共有5个16位的定时器。其中定时器0、1、2、3有PWM(Pulse Width Modulation)功能,即它们都有一个输出引脚,可以通过定时器来控制引脚周期性的 高、低电平变化:定时器4没有输出引脚。定时器部件的时钟源为PCLK,首先通过两个 8位的预分频降低频率:定时器0、1共用第一个预分频器,定时器2、3、4共用第二个预 分频器。预分频器的输出将进入第二级分频器,它们输出5种频率的时钟:2分频、4分 频、8分频、16分频或者外部时钟TCLK0/TCLKl。每个定时器的工作时钟可以从这5种 频率中选择。这两个预分频都可以通过TCFG0寄存器来设置,每个定时器工作在哪种频 第16页 武汉科技大学硕士学位论文 率下也可以通过TCFGl寄存器来选择。 定时器内部控制逻辑的工作流程如图3.2所示: TCONn 用于控制 I...........................................................一 图3.2定时器内部控制逻辑图 (1)程序初始,设定TCMPBn、TCNTBn这两个寄存器,它们表示定时器11的比较值、 初始计数器。 (2)随之设置TCON寄存器启动定时器n,这时,TCMPBn、TCNTBn的值将被装入 其内部寄存器TCMPn、TCNTn中。在定时器n的工作频率下,TCNTn开始减1计算,其 值可以通过读取TCNTOn寄存器得知。 (3)当TCNTn的值等于TCMPn的值时,定时器n的输出管脚TOUTn反转;TCNTn 继续减1计数。 (4)当TCNTn的值达到0时,其输出管脚TOUTn再次反转,并触发定时器n的中断。 (5)当TCNTn的值到达0时,如果在TCON寄存器中将定时器n设为“自动加载’’, 则TCMPB0和TCNTB0寄存器的值被自动装入TCMP0和TCNT0寄存器中,下一个计数 流程开始。 3.3.3 WATCHDOG定时器 WATCHDOG定时器可以像一般16位定时器一样用于产生周期性的中断,也可以用于发出 复位信号以重启失常的系统。它与PWM定时器结构类似,如图3.3所示。 M[UX PCLK——… ‘。-—8位—预—分—频r—器 中断信号 w'rcoNl 5:1 WTCON[2】WTCON[0】 图3.3 WATCHDOG定时器结构图 同样,WATCHDOG定时器的8位预分频器将PCLK分频后,被再次分频得到4种频 率:16分频、32分频、64分频、128分频,WATCHDOG定时器可以选择工作于哪种频率 武汉科技大学硕士学位论文 第17页 之下。WTCNT寄存器按照其工作频率减l计数,当达到0时,可以产生中断信号,可以 输出复位信号。在第一次使用WATCHDOG定时器时,需要往WTCNT寄存器中写入初始 计数器,以后挨计数值到达0时自动从WATDAT寄存器中装入,重新开始下一个计数周 期。 使用WATCHDOG定时器的“WATCHDOG功能"时,在正常的程序中,必须不断重 新设置WTCHT寄存器使得它不为0,这样可以保证系统不被重启,这称为“喂狗一;当程 序崩溃时不能正常“喂狗一,计数值达到0后系统将被重启,这样程序将重新运行。为了 克服各种干扰、避免各类系统错误时系统彻底死机,经常使用WATCHDOG功能。 3.4 USB接口摄像头 目标平台通过USB接口摄像头获得图像。本课题采用¥3C2440微处理器的ARM9开 发平台,驱动USB接口芯片ZC0301PI进行视频数据采集,提供了低成本的视频采集方案。 比起直接与微处理器接口的CMOS传感器,使用USB摄像头虽然成本偏高,但是易于实 现,节省CPU资源,而且驱动支持非常丰富。它是一个28个引脚的微型芯片并且不带有 外部的DRAM,ZC0301为PC摄像应用提供了一个高效的单片解决方案,所有主要的图 像处理功能,图像数据压缩,包括内置的数据传输单元,这个ZC0301PI微芯片通过USB 端口与ARM开发板通信。 3.5本章小结 本章针对目标跟踪系统设计了整个硬件平台,叙述了硬件主要模块的组成。 第18页 武汉科技大学硕士学位论文 第四章系统软件设计 本章详细叙述了系统软件部分的设计与开发过程。首先叙述了Linux操作系统内核的 开发,详细描述了Linux内核特点和定制过程。 4.1嵌入式Linux系统的一般架构 Linux是由许多组件组成的,图4.1展示了一般Linux系统的架构及其包含的每个组件。 图4.1一般Linux系统的架构 ARM目标板的硬件必须符合一些要求方能执行Linux系统。第一,Linux需要至少32 位的CPU,而且CPU必须配备存储管理单元。第二,RAM的容量必须满足系统的需要。 第三,如果任何开发工作都是在目标板上完成,而且目标板具备适当的调试功能,则需要 最起码的I/o能力。 硬件的上面就是内核。内核是操作系统的中心组件。使用内核的目的是希望以一致的 方式管理硬件,以及为用户软件提供高层抽象层。正如其他的类Unix内核那样,Linux会 驱动设备、管理I/O的存取、调度进程、共享存储空间、管理信号的配送以及处理其他管 理工作。如果应用程序使用的是内核所提供的API,则应用程序可能根本不用或者只需要 一点修改就可以移植到此内核所支持的任何架构上。这正是Linux的优势所在,Linux支 持的所有架构上可以看到大量相同的应用程序。 为了给应用程序提供它们需要的功能,内核被大致分为两个部分:底层接口层、高层 抽象层。底层接口层专属于硬件配置,内核运行在底层接口层之上,并以硬件无关的API 提供对硬件资源的直接控制。也就是说,对寄存器或内存分页的处理,在PowcrPC系统和 ARM系统上,会以不同的方式完成,但是却可以使用通用的API来存取内核里高层的组 件,尽管有些罕见的例外。通常,底层部分将会处理CPU特有的操作、架构特有的内存操 作,以及设备的基本接口。在正常操作期间,内核至少需要一个具有合适结构的文件系统 ——根文件系统。内核会从这个文件系统加载它要在系统上执行的第一个应用程序。内核 还得靠这个文件系统做更进一步的操作。内核上面是由操作系统执行的应用程序和工具程 武汉科技大学硕士学位论文 第19页 序组成。可是内核提供的服务通常不适合让应用程序直接使用。应用程序应该靠链接库提 供的普通API以及可代替应用程序跟内核交互来获得所需要功能的抽象服务。大多数Linux 应用程序使用的主要链接库就是GNU C链接库。链接库一般会跟应用程序动态链接库在 一起。也就是说,链接库并不是应用程序的二进制文件的一部分,它们会在应用程序启动 期间被加载到应用程序的内存空间。这让多个应用程序能够使用同一个链接库实体,而不 是每个应用程序都必须拥有自己的副本。 4.2引导加载程序的设计与实现 在系统启动过程里,有三个主要软件组件参与其中:引导加载程序、内核、初始化进 程。引导加载程序是系统启动过程中执行的第一个软件,它与目标板的硬件有高度的依存 关系。在本课题中,系统所用的引导加载程序是Bootloader,ARM.Linux需要一段程序来 进行初始化:关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制 到内存中等。在开发时,通常需要使用各种命令操作Bootloader,Bootloador可以分为两种 操作模式: (1)启动加载模式 上电后,Bootloadcr从板子上的某个固态存储设备上将操作系统加载到RAM中运行, 整个过程并没有用户的介入。 (2)下载模式 在这种模式下,开发人员可以使用各种命令,通过串口连接或网络连接等通信手段从 主机下载文件,将它们直接放在内存运行或是烧入Flash类固态存储设备中。 Bootloader的启动过程有两个阶段,第一阶段使用汇编来实现,它完成一些依赖于CPU 体系结构的初始化,并调用第二阶段的代码;第二阶段则通常使用C语言来实现,这样可 以实现更复杂的功能,而且代码会有更好的可读性和可移植性。 这两个阶段完成的功能如下分类: (1)Bootloader第一阶段的功能:硬件设备初始化;为加载Bootloader的第二阶段代码 准备RAM空间;复制Bootloader的第二阶段代码到RAM空间;设置好栈;跳转到第二 阶段代码的C入口点。 (2)Bootloader第二阶段的功能:初始化本阶段要使用到的设备;检测系统内存映射; 将内核映像和根文件系统映像从Flash上读到RAM空间中;为内核配置启动参数;调用内 核。第二阶段流程图如图4.2所示。 4.3移植Linux内核 在嵌入式系统上使用Linux怎样准备内核。尤其是,内核的选择、配置、编译及安装。 4.3.1内核的选择与设定 本课题采用的内核版本是Linux.2.6.13,在实验运用中,这个内核版本相当稳定。在为 目标板建立内核的过程中,配置属于最初的阶段。内核配置的方法有四种:make config、 make oldconfig、make menuconfig、make xconfig。这四种方法都可以用来设定内核配置。 第20页 武汉科技大学硕士学位论文 它们都会在内核源码的根目录中产生.eonfig文件。一般情况下,我们会使用make menuconfig。使用如下命令行: E!竺j ¥make ARCH=arm CROSS_COMPILE=arm—linux—menuconfig ( 厂—1始T 死—] 一一I一.一 LIRQ堡!Q噤式的栈I 设置系统时钟等l I 初始化定时器 - 广]匿查Fl酞K上的环境『] 叁数是否有效 眄l初磊始化蕊串苦口控赢制习台I 丫一—— I.......................................................。...............................,,,J 一 I检测系统内存映射l ■赢N一矗OR i初始化 Flash ■ 评弘秘;掺戮读灭内存l 堂定鱼置一一J j丽巫二i苤≯ 初始化网络设备I 调用main loop 图4.2 bootload第二阶段流程图 然后我们开始选择合适ARM目标板使用的配置选项。配置内核界面如图4.3所示。 许多功能和驱动程序可以以模块的形式存在,我们按照实际需要,选择是否将它们建立在 内核中,或是将它们建立成模块的形式。一旦设定好内核配置之后,我们可以使用Esc键 武汉科技大学硕士学位论文 第21页 或是选择Exit条目离开配置菜单。然后配置工具程序会问我们是否保存配置。我们可以选 择Yes条目来保存内核的配置以及建立.config文件。 !女墨耍f雹ia雹t璺Ⅺ盈~雹窒MⅢ程匮o西Ⅲ霉p盈墨圜冒曩●■■■■■■■■■I!i曼遵 圈4.3配置内棱界面图 4.3.2内核的编译 内核的编译包括以下几个步骤:建立内核源码的依存关系,建立内核映像,以及建立 内核模块。 (1)建立依存关系 内核源码中大多数文件都会与一些头文件有依存关系。要想顺利建立内核,必须建立 依存关系,如下命令来建立内核源码的依存关系: ¥makeARCH=arm CROSS COMPILE-arm-linux-d锄dep ARCH变量用柬指明要为哪种架构建立内核,CROSS COMPILE用来产生一些工具程序的 名称。 (2)建立内核 建立依存关系后.接着编译内核映像: SmakeARCH=armCROSS COMPILE=ann.1inux-zlmage zlmage这个建立目标用来指示Makefile建立经gzip算法压缩过的内核映像。 f3)建立模块 内核映像正确建立后,接着建立内核模块: ¥makeARCH=ann CROSS—COMPILE=arm·linux-modules 内核映像和内核模块都正确建立之后,表示已经准备好可以为目标板进行安装工作了。 第22页 武汉科技大学硕士学位论文 4.3.3安装内核 从这步开始,就可以将产生的内核映像以及它的模块必须复制到目标板上去。内核源 码的Makefile文件包含的modules install建立目标可用来安装内核模块。缺省情况下,内 核模块会安装至lJ/lib/modules目录。一旦复制好模块后,内核就会根据模块工具程序执行时 的要求,建立模块依存关系。 4.4构建Linux根文件系统 4.4.1 Linux根文件系统目录结构 Linux根文件系统中一般有如下几个目录。 (1)/bin目录 该目录下存放所有用户都可以使用的、基本的命令。 (2)/sbin目录 该目录下存放系统命令,即只有管理员能够使用的命令。 (3)/dev目录 该目录下存放的是设备文件。设备文件是Linux中特有的文件类型,在Linux系统下, 以文件的方式访问各种外设,即通过读写某个设备文件操作某个具体硬件。 (4)/etc目录 该目录下存放各种配置文件。对于PC上的Linux系统,/etc目录文件依赖于系统中所 拥有的应用程序,依赖于这些程序是否需要配置文件。 (5)/lib目录 该目录下存放共享库和可加载模块,共享库用于启动系统、运行根文件系统中的可执 行程序。 (6)/home目录 用户目录,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置 文件。 (7)/root目录 根目录的目录,与此对应,普通用户的目录是/home下的某个子目录。 (8)/usr目录 在系统启动后再挂接到根文件系统中的/usr目录下。里面存放的是共享、只读的程序和 数据。 (9)/vat目录 该目录下存放着可变的数据,比如spool目录,log文件、临时文件。 (10)/proc目录 这是一个空目录,常作为proc文件系统的挂接点。 (11)/mnt目录 用于临时挂接某个文件系统的挂接点,通常是空目录;也可以在里面创建一些空的子 武汉科技大学硕士学位论文 第23页 目录,比如/mnt/cdram,用来临时挂接光盘。 (12)/tmp目录 . 用于存放临时文件,通常是空目录。一些需要生成临时文件的程序要用至U/tmp目录. 4.4.2选择合适的文件系统 为根文件系统选择文件系统是个困难的过程,通常是文件系统的能力与目标板的用途 之间折中的结果。本课题采用的是yaffs文件系统。yaffs文件系统映像的制作过程如下: (1)把mkyaffsimage.tgz文件拷贝到某一个目录,进入该目录,然后执行以下命令: #tar xvzfmkyaffsimage.tgz-C/usr/sbin 该命令将把制作工具mkyaffsimage安装到系统的可执行路径_/usr/sbin。 (2)把root_default.tgz文件拷贝到某一个目录,进入该目录,然后执行以下命令: #tar xvzf root_default.tgz-C/opt/FriendlyARM/QQ2440 该命令将把root—default文件系统目录解压到/opt/FriendlyARM/QQ2440目录。 (3)使用mkyaffsimage制作ya稳文件系统映像,生成映像后,可通过USB把 root default.img烧写到目标板。 4.5视频采集与实现 4.5.1 USB摄像头驱动的实现 Vide04Linux是Linux中关于视频设备的内核驱动,它为并口及USB口的摄像头提供 统一的编程接口。在Linux下,USB摄像头的正常使用依赖于对Vide04Linux标准的支持, Vide04Lin_u】【设备的驱动程序中需要提供基本的I/0操作接口函数open、read、write、close 的实现,对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等, 并把他们定义在struct video device中。这样当应用程序对设备文件进行诸如open、close、 read、write等系统调用操作时,Linux内核将通过video device结构访问驱动程序提供的 函数。 4.5.2 Vide04Linux驱动程序 大部分内核代码包含了许多数量的头文件来获得函数,数据结构和变量的定义。有几 个文件对模块是特殊的,必须出现在每一个可加载模块中,几乎所有模块代码都有下面内 容: #include<linux/module.h> #include<linux/init.h> module.h包含了大量加载模块需要的函数和符号的定义。需要init.h来指定初始化和 清理函数。 在版本为linux.2.6.13的内核中,包含着设备驱动所需的文件,如 include/linux/videodev.h文件,该文件定义了Vide04Linux设备的驱动程序中所需要的函数 和符号定义。在内核中的drivers/media/video/videodev.c文件,为内核开发提供的一个 Ⅵde04Li肌x设备驱动程序模块,它想外提供了一些内核接口符号以供驱动程序开发者在 第24页 武汉科技大学硕士学位论文 该模块的基础上添加自己设计的驱动程序。在videodev.h头文件中,定义了Vide04Linux 支持的数据结构,如下所示: struct video——device { struct device木dev; char name[32]; int type; int type2; int hardware; int minor; struct file_operations牛fops; void(*release)(struct video—device水vfd); struct module*owner; void木priv; int users; struct semaphore lock; char devfs_name[64]; struct class——device class_dev; ); 4.5.3 USB摄像头采集图像流程 系统加载设备驱动的方式有模块和内核初始化加载两种:第一种是通过用户使用 insmod命令动态加载到内核,通过rmmod命令卸载驱动模块;第二种是把驱动编进内核, 在内核初始化时自动加载。本课题采用的内核版本是Linux2.6.13,相应的设备名: /dev/v41/vide00;我们使用的是ZC0301微芯片的USB摄像头,所以在运行程序前,一定 要先加载USB及ZC0301的设备驱动模块,同时加载Vide04Linux模块,然后将会生成设 备文件/dev/v41/vide00,视频图像程序编程便是针对此设备名进行。打开视频设备,调用 酉ab fd=open(“/dev/vide00",O RDWR)函数,调用成功设备打开并返回描述符蓼ab fd(打开 错误返回.1l},表示捕捉了视频文件。以后就可以对设备文件进行操作。设备打开后,调用 中的关于图像的信息,.pic)i墨i 中有关摄像头的信息。再.fd ioctl(grab , VIDIOCGCAP,&grab. cap)函数来获得 video capture 用ioctl(grab fd.VIDIOCGCAP,&grab 数来读取 video picture 包括图像的亮度、色度、对比度等。完成初始化过程后,就开始对视频数据采集,用mmap0 内存映射方法截取视频。mmap()通过系统调用使得进程之间通过映射同一个普通文件实现 共享内存。采用共享内存通信的一个很明显的好处就是进程可以直接读写内存,而不需要 任何数据的拷贝。 首先,使用ioctl(grab fd,VIDIOCGMBUF,&grab VHl)函数获得摄像头存储缓冲区的帧 信息,修改video mmap中的设置,重新设置图像信息如帧的垂直及水平分辨率、颜色显 示格式等。然后使用函数: grab_data--mmap(0,grab_size,PORT_READIPORT_WRITE,MAP—SHARED,grab_fd,O),使得 武汉科技大学硕士学位论文 第25页 设备内容映射到内存区。接下来使用VDIoC√WCAPTI瓜E来获取视频,具体应用函数为: Ioctl(grab—砧VDIoC砧屹APl'I瓜E,&grab_bur)。若调用成功,开始下一帧的读取。 图像采集流程图如图4.4所示: 图4.4 USB摄像头图像采集流程图 4.6应用程序设计 在ARM嵌入式系统中实现目标跟踪,需要用到一些视觉库,本课题用到的是OpenCV, OpenCV是Intel@开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像 处理和计算机视觉方面的很多通用算法。它的特性如下: (1)OpenCV拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其它的外部 库一尽管也可以使用某些外部库。 (2)OpenCV为Intel@Integrated Performance Primitives(IPP)提供了透明接口。这意味着 如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。 4.6.1在Linux系统下安装OpenCV 本课题的目标跟踪应用程序是要在ARM9下运行的,因此首先需要在Linux环境下安 装OpenCV,安装步骤如下: (1)下载源码 从官网下载OpenCV源码,下载文件为opencv-1.0.0.tar.gz (2)解压文件 tar zxvf opencv-1.0.0.tar.gz (3)检查软件配置 (4)编译并安装OpenCV 第26页 武汉科技大学硕士学位论文 用root用户执行: make make install (5)更行动态链接库 在root用户执行下面的操作: 添加路径/usr/local/lib到文件/etc/ld.SO.conf',然后运行命令 ldconfig (6)测试安装是否成功 安装完毕后,可以运行它带的例程来判定是否安装成功。 4.6.2嵌入式ARM系统中安装OpenCV 我们的最终目标是要在ARM嵌入式平台下实现对运动目标的跟踪,故需要也在ARM 平台下使用OpenCV,来实现编译目标跟踪算法。安装步骤如下: (1)OpenCV库编译 在目录下,输入如下命令: ./configure 一一host=arm-linux -·without-gtk --without—carbon 一-without-quicktime ·---without·-1 3941ibs·-—·without·-fflnpeg··-·without-python·-·-without--swig····enable-static 一一disable—shared-一disable—apps CXX=armv41一unknown-linux—g抖CPPFLAGS=-l/usr/inelude 接着,根据需要在/usr/local/lib/pkgconfig/opencv.pc的Libs项中加入参数一lpthread、·ldl 之类,例如 Libs:··L¥{libdir}·-lev-·lcxcore-·lcvaux--lml--lpthread·-ldl (2)编译例程 编译例程drawing.C Armv41-unknown-linux-斟斗‘pkg-config-cflags_libs opencv’drawing.C"--O drawing 编译修改后的摄像头标定程序 army4 1-unknown-linux-刮斗‘pkg-config--cflags-libs opencv’calibration.cpp—o calibration 将生成的可执行程序拷贝到开发板上,运行。如果出现缺少库函数,可以在alTn编译 器目录下的lib目录中查找,拷贝到开发板中,并确保程序可以找到即可。 4.6.3 OpenCV中Mean.Shift算法的实现 在本系统中,主要运用的是Mean.Shift算法,算法简述如下:首先,在图像HSI空间 中计算H通道(色彩通道)分量的1D直方图;接着,利用此lD直方图将原图改建成2D概 率分布图;第三步,计算出目标区域的重心;第四部,利用经典的“Mean.Shift”算法, 不断平移调整窗口中心到与目标重心重合;第五步,将上一帧的窗口大小和中心,作为下 一帧Mean.Shift算法搜索窗口的初始值,在下一帧中继续Mean-Shift运算。 OpenCV中相关Mean.Shift算法的实现简述如下: (1)函数原型 int cvMeanShift(const CvArr木prob_image,CvRect criteria,CvConnectedComp幸comp); window,CvTczmCriten'ia 武汉科技大学硕士学位论文 第27页 (2)参数说明 1.prob_image 目标直方图的反向投影 2.window 初始搜索窗口 3.criteria 确定窗口搜索停止的准则 4.comp 生成的结构,包含收敛的搜索窗口坐标(comp->rcct字段)与窗口内部所有像素点的和 (comp->area字段) 函数cvMeanShifl在给定方向投影和初始搜索窗口位置的情况下,用迭代方法寻找目 标中心。当搜索窗口中心的移动小于某个给定值时或者函数已经达到最大迭代次数时停止 迭代。函数返回迭代次数。 4.7本章小结 本章介绍了系统软件的设计,详细分析了如何构建嵌入式Linux系统,如何在系统下 移植OpenCV视觉库,从而使得目标跟踪算法能正确的编译、运行。 第28页 武汉科技大学硕士学位论文 第五章目标跟踪系统 设计的基于ARM嵌入式平台的目标跟踪系统要实现对运动目标的跟踪。本章详细说 明了目标跟踪的处理算法和流程。 5.1目标跟踪的原理 图5.1目标跟踪流程 图5.1所示的是运动目标跟踪的流程图,目标跟踪系统包括图像输入,图像预处理, 运动目标检测,运动目标提取,运动目标跟踪等过程。 图像的输入是整个过程的开始,只有先通过摄像头获取运动目标所在区域的图像,才 能对目标进行设别、捕获和跟踪。 图像的预处理是指对系统输入的目标图像进行灰度变换、平滑、锐化、滤波等处理, 去掉原图中的噪声和干扰点,使目标图像的轮廓更加分明,信息更加全面,便于对图像中 的目标进行分割和识别。 图像的特征选择与提取时基于特征匹配的目标识别中的一个重要环节。特征选择是指 从所分割出来的目标中选取能够代表该目标特征信息的过程,其目的是获得目标的独立、 可鉴别的特征,同时还要有利于提高计算效率、减少存储空间。特征提取即对所选特征量 的计算,在目标特征成功提取之后的工作就是对这些参数进行匹配和对比,并设置可信度 机制,来确定目标的真伪。 5.2目标图像的输入 本课题采用的是ZC0301微芯片的USB摄像头来采集图像。 武汉科技大学硕士学位论文 第29页 s3图像预处理 在实际的环境中,由于图像在USB摄像头成像的过程中会受到各种外界因素的干扰, 加上周围环境的影响,会造成图像质量较差,对这样的图像直接进行目标的检测是相当困 难的,必须对图像进行适当的预处理,减少或滤除各种噪声和随机干扰,增强有用信息, 提高后续处理的有效性和可靠性。 在预处理中,输入和输出的都是视频序列,只是经过预处理后,输出图像的质量得到 一定程度上的改善.我们在本系统中所用到的图像预处理技术包括灰度变换、噪声滤波等 图像预处理。 考虑到图像文件的存储量和处理图像需要占用ARM嵌入式系统太量的内存,故要对 图像进行适当的预处理。首先,采用不含彩色信息的灰度图像,即图中每一个像素仅由一 个八位的字节表示该像素的亮度值,因而灰度图像是具有256个灰度级的灰度图像,处理 运算量大大较少,便于后续的处理。 由真彩图像到灰度图像的变换: RGB—>Gray:Y=0.299R+0.587G+0.120B (5.1) 其中Y为灰度图像的灰度值,R,G,B,位真彩图像的红,绿,蓝三通道颜色值。根 据式(5 11可以将彩色图像变换为灰度图像。如图5.2所示: fa)彩色图像(时灰度图像 图5.2图像灰度化 滤波器的种类非常多,但是总的来说可以分为两类,即空间域滤波器和频率域滤波器, 空间域滤波器一般采用平滑滤波和中值滤波来减小噪声,而在频率域一般采用低通滤波器 柬滤除噪声。 (1)低通滤波器。 首先要对图像进行变换域(通常变到频率域),然后在变换域中对图像的值进行滤波, 最后再变回空间域。例如:先对图像进行傅里叶变换,再对图像的频谱进行滤波,最后将 修正后的图像进行傅里叶反变换回空间域,从而增强图像。 可以用下图来描述这个过程。 数学描述如下: F(u,v)=R{,(J,,)) G(“,订=Hm,v)·,(“.v) (5 2) 第30页 武汉科技大学硕士学位论文 g(x,y)=R叫{G(“,1,)) 其中尺{)表示某种频域正变换,R‘1{)表示该频域变换的反变换。F(u,1,)为原始图像 f(x,y)结果频域正变换的结果,H(u,’,)为频域中的传递函数(即滤波函数),G(u,1,)为修 正后的结果,g(x,Y)是G(u,1,)反变换的结果,即滤波后的图像。二维低通滤波器的传递函 数可以由式(5.2)表示: 脚州,嵋V)D=(2三卜帅帅D(u,,,’yv,)>))<>或或DO (5.3) 式中鼠是一个规定的非负的量,称为低通滤波器的截止频率。D(u,’,)是从频率原点到 (“,V)点的距离,即D(u,订=tu2+’,2f (5.4) (2)平滑滤波 平滑滤波器是一种常用的线性低通滤波器,它能减弱或消除傅里叶空间的高频分量, 但不影响低频分量。因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部 分,滤波器将这些分量滤去可使图像平滑,领域平滑法是最简单的去噪方法,用某一像素 及其领域的9个像素的平均值,作为该像素的输出值。平滑滤波器的缺点是图像中的边缘 和边界会变得模糊。 (3)中值滤波 中值滤波器是一种常用的非线性滤波器,由J.W.Tukey在1971年首先提出并应用于一 维信号处理技术中。后来被二维图像信号处理技术所引用。由于它在实际运算过程中并不 需要图像的统计特性,所以使用比较方便。中值滤波首先是被应用在一维信号处理技术中, 后来被二维图像信号处理所引用。在一定条件下,中值滤波可以克服线性滤波器所带来的 图像细节模糊,而且对滤除脉冲干扰及颗粒噪声最为有效。但是对一些细节多,特别是点、 线、顶尖细节多的图像不宜采用中值滤波的方法。 中值滤波是采用一个含有奇数个点的滑动窗口,用窗口中各点灰度值的中值来替代窗 口中心点像素的灰度值。对于一个一维序列,取窗口长度为m,m为奇数。对此序列进行 中值滤波,就是从输入序列中顺序取出m个元素,其中f为窗口的中心位置,’,=(埘一1)/2。 将这m个元素按照数值大小排列,位于正中间的那个数值作为滤波输出。用数学公式表达 为 gf=Med(Z_∥一,z,…z+,)f∈z,y=掣 (5.5) 式中:Med(…)表示取序中值。例如,有一个序列(20,10,30,15,25),从大到小排序后 序列为(10,15,20,25,30),中值滤波的输出结果为20。如果灰度值为30的像素是噪声点,则 经过中值滤波后噪声被消除。从总体上来说,中值滤波器能够较好地保留原图像中的跃变 部分。 一维中值滤波的概念很容易推广到二维。对二维序列进行中值滤波时,滤波窗口也 是二维的,将窗口内像素排序,生成单调数据序列,二维中值滤波结果为 武汉科技大学硕士学位论文 第31页 岛=ged(xF) (5.6) 一般来说,二维中值滤波比一维中值滤波更能抑制噪声。二维中值滤波器的窗口彤状可以 有多种,如线状、方形、十字形等。不同形状的窗口产生不同的滤波效果,使用中必须根 据图像的内容和不同的要求加以选择。基于中值滤波的以上特点.本研究课题中的图像预 处理采用了中值滤波。 中值滤波器的工作步骤如下: (1)将模板在图中移动,并将模板中心与图中像素位置重合: (2)读取模板下对应像素的灰度值; (31将读取的灰度值从小到大排成1列,找出这些值里排在中间的一个: (4】将这个中间值赋给对应模板中心位置的像素。 中值滤波的实验结果如图5.3(a),O)所示。 (a)中值滤波前 (b)中值滤波后 图5.3图像进行中值滤波图 从图5.3中可以看出.圈5.3(a)由于受到干扰,各种噪声较多。中值滤波后,图5.3(b) 变得平滑和清晰。 5.4运动目标检测 本文中运动目标跟踪的任务是在视频图像序列中检测并提取这样两种类型的目标:运 动目标、新出现在场景中的新目标。故这个任务可以分为两步来完成,第一是目标检测, 第二是目标提取。所谓目标检测.就是检测视频序列图像中被监视的场景图像是否有所变 化,如果图像有变化,就说明有新的目标出现,反之就说明没有新的目标出现。而目标提 取,就是当日标检测算法检测到有目标出现时,把这个目标从视频序列中分割提取出来, 为下一步目标跟踪提供数据。在目标跟踪过程中,对运动目标的检测时进行跟踪的关键技 术之一。目标检测的准确与否对后续步骤的跟踪会产生重要影响。在实验过程中,目标检 测成功,目标检测模块将从图像序列中获知是否存在运动目标,如果运动目标检测存在, 刚通过算法给出运动目标在视频图像中的位置、太小,然后提交给目标跟踪模块.目标跟 踪模块根据给定的目标位置、大小,建立跟踪模式.为后续跟踪过程初始化目标模板模型。 运动检测的目的是从序列图像中将变化区域从背景中分割出来。运动检测的方法包含 帧问差分,光流法,背景差法等。 帧间差分时检测相邻两帧图像之间变化的最简单的方法,但是对于缓慢运动的物体在 第32页 武汉科技大学硕士学位论文 固定阈值下可能检测不到,而且无法应对背景较大的场合。 光流法在不需要背景区域的任何先验知识条件下酒能够实现对运动目标的检测和跟 踪,还可以应用于摄像机运动的情况。但是,光流法的计算复杂且无法适应大的背景噪声, 而且对噪声比较敏感,对硬件要求比较高。 背景差法是通过当前帧减去背景参考帧,然后对所得图像选择合适的阈值进行二值 化,就得到完整的运动目标,这是一种最为简单和有效的方法,完全克服了相邻帧差法的 缺点。背景差法的不足之处是易受环境光线变化的影响,在非受控环境下需要加入背景图 像更新机制,且不适用于运动或者背景灰度变化很大的情况。 本文研究的是背景静止的情况下对运动目标的提取,而且实验环境中光线的变化比较 小,故采用背景差法进行运动目标提取。 5.4.1图像背景的确定 背景提取就是从一定的图像序列中提取出当前整个背景。背景提取的方法一般有以下 三大类: (1)基于统计模型的方法,如高斯分布模型、混合高斯分布模型、非参数化模型; (2)基于预测法的方法,如近似中值滤波、贝叶斯估计法等; (3)特征匹配法。 前两种方法运算比较复杂,适应于复杂背景的情况下。第三种方法运算较简单,适用 于简单背景的情况。因此本文采用特征匹配的方法进行背景提取。该方法首先是确定图像 的特征信息,图像的特征信息一般都集中在像素值变化比较剧烈的地方,也就是图像的边 缘地区。对图像球梯度,可以使图像的边缘会更加突出。图像的梯度就是图像中像素之间 变化的大小,它是一个微分的过程。梯度的求法也有很多种,比较有名的算子有Sobel算 子,拉普拉斯算子等。本文采用了Sobel算子来求梯度。 Sobel算子的基本思想是:以待增强图像的任意像素(f,_,)为中心,截取一个3*3的像 素窗口,如图5.4所示。分别计算窗口中心像素在x.Y方向上的梯度 最=[们+1,/-1)+2巾+1,j『)+朋+1,J+1)】一 【f(i—l,/一1)+2f(i一1,_,)+f(i一1,.,+1)】 (5.7) 、7 S 2【邝一1,/+1)+2饨,/+1)+朋+1,_,+1)卜 (5.8) 、7 [f(i—l,J一1)+2f(i,J一1)+f(i+1,J一1)】 f(i—I,/一1) f(i一1,/) f(f一1,.,+1) f(f,/一1) f(i,/) f(i,/+1) f(i+1,/一1) f(i+1,/) f(i+1,/+1) 图5.4 Sobel算子图像窗口 增强后图像在(f,_,)处的灰度值为 g=√《+s; (5.9) 武汉科技大擘硕士学位论文 第33页 为了简化计算,也可以采用式(5.8)或者式(5 9)经行计算。 g爿瓦l+ls,I (5.10) g=max(1£I,I置1) (5.11) 可以看出,Sobel算子在计算x方向和Y方向上的梯度时,不像普通梯度算子那样只用 两个像素灰度差值来表示,而是采用两列或两行像素灰度加权和的差值来表示,这使得 Sobel算子具有如下两个优点: (11由于引入了加权平均,因而对图像中的随机噪声具有一定的平滑作用。 f2)由于Sobel算子采用间隔两行或者两列的差分,所以图像中边缘两侧的像素得到增 强。Sobel算子得到的锐化图像的边缘显得粗而亮。 Sobel算子也可以采用矢量的方式来表示。将图5,3所示窗口中的像素表示成一个3x3 的二维矢量M。Sobel算子可以分解成下列两个模板 卜011 f_1_2。1] MI=|-2 0 2l鸠=l 0 0 0| l一1 0 1I l1 2 1 I 特定区域的确定要人为的设定判断条件。在本文中,把像素点数值总数最大的一块区 域作为特征区域,因为这样的特征区域中的像素点数值变化明显,更加容易进行匹配,有 利于减少误差。本文中特征区域尺寸取30x30像素,图5.5白色方框内图像为实验求得的 图像特征区域。 图5.5图像特征区域 求得一幅图像的特征区域之后,就要把这幅图像和第二幅图像进行匹配,分析两幅图 像的相似程度如何,如果很相似,说明图像上没有运动的物体,可|三L把其中的一幅图像设 定为背景。 两幅图像的匹配分为两个过程,第一个过程是特征区域的匹配,把从第一幅图像提取 出来的特征区域模板在第二幅图像上移动,计算两个图像的像素点差值,找到第二幅图像 中差值最小的区域。如果这个差值大于设定的上限,则说明第二幅图像里面没有第一幅图 像的特征区域,反之,则把这块区域当作第二幅图像的特征区域。 第二个过程是进行相似度判定,相似度判定就是考察两幅图像像素值差别的大小。最 后根据得到的差值,综台确定两幅图像是否相似。如果匹配成功则确定背景,不成功则查 看下一幅图像,继续进行背景的判定。 第34页 武汉科技大学硕士学位论文 " ■ 武汉科技大学硕士学位论文 第35页 图5毒提取后的目标 5.5日标跟踪 5.5.1目标跟踪算法分类 运动目标模板提取以后,下一步就是进行目标跟踪。跟踪目标所需要的信息中首要的 是目标位置信息,目标跟踪的目的就是通过对摄像头获得的图像序列进行分析,计算出目 标在每一帧图像上的二维位置坐标,并根据不同的特征值,将图像序列中不同帧内同一运 动目标关联起来,得到各个运动目标完整的运动轨迹,即在连续的视频序列中建立运动日 标的对应关系。简单来说,就是在下一幅图像中找到目标的确切位置。在运动目标跟踪中 主要的工作就是选择好的目标特征和采用实用的搜索算法。 目前最主流的图像目标跟踪算法主要有两种: 第一种是灰度相关(Correlation-Based)匹配跟踪算法。主要思想就是在当前帧中寻找与 上一帧巾目标区域灰度相关性最大的区域。具体做法就是将目标基准模板图像在实时图像 上以不同的偏移值位移,然后根据一定的相关度量准测对每一个偏移值下重合的两个图像 ——基准模板图像与当前偏移值下的候选图像进相关性计算.根据判别准测和相关性计算 结果.决定目标在当前帧中的位置。]孔tket-E.S等人于1998年提出这种算法,之后又有不 少新的相关度量算法被相继提出,这类算法以对应像素灰度值差异为跟踪依据,实现较容 易,但常难以克服目标形变或旋转带来的灰度变化问题。 第二种是基于Mean-Shif【(均值漂移)算法的目标跟踪。主要思想是利用核密度估计作为 目标模板描述,选择合适的核函数以及相似性度量函数使得目标周围邻域内相似性度量曲 面为平滑的上^曲面,然后用Mean.Shift算法快速找到极值点束确定目标在当前帧中的位 置。Mean-Shift算法最早由Fulomaga等人在1973年提出,将Mean-ShiR成功用于图像分 割和目标跟踪是由ComanieiuD和Meer P于1997年提出来的,他们在后续的研究中将算 法进行改进,选择Bhattacharyya系数作为核密度相似性度量的标准,采用正负10%的试 探法改变核窗宽度,即目标模板大小,取得了良好的跟踪效果。Mean-Shift算法的优势在 于能够在整体上抓住目标所具有的灰度值概率密度特性,很好地克服了目标形变与旋转问 题,且无需做穷尽搜索,能够快速收敛到最佳候选位置。算法的缺点是当目标与背景灰度 值分布相近时,将难以正确辨别目标。 5.5.2 Mean-Shif!算法 本文设计的目标跟踪系统采用Mean—Shift算法。 第36页 武汉科技大学硕士学位论文 Mean.Shift算法是一种计算局部最优的搜索算法,通过计算候选目标与目标模块直接 之间相似度的概率密度分度,然后利用概率密度梯度下降的方向来获取匹配搜索的最佳路 径,加速运动目标的定位降低搜索的时间。 Mean.Shift算法由核密度估计(又称Parzen窗估计)开始,这是目前一种比较流行的密 度估计方法,给定在d维空间Rd的咒个样本数据五,i=1…n,多维变量的核密度估计可以 写成下式: 知,=等鲫训2七口寻『] @柳 式中,q.J为归一化常数;后(x)称为核(k肌a1)函数或轮廓0rofile)函数;H为d x d维的 带宽矩阵。完整的表示H参数会增加算法的复杂度,在实际中,常用对角矩阵 H=diagEha2…砺】或Jjl2I,I为d x d单位矩阵。简便起见,使用后一种表示,则核密度估计 可以写为: z“加等缃旱||2] @∽ 其中,核函数k(x)必须满足下列条件: 1)尼(石)为非负;2)k(x)为从中心向外单调递 减,如0≤a<b,则k(a)≥k(b);3)后(x)有界。当尼(x)可微对,由式(5—11)n-]"求得梯度: 咖%(,加荔=吾象(卜打薯删弦,川了了…x-xl『](5.15,’ 定义g(x)=-k’(x),由上式可得: 垓删=貉打拶口降112]=貉踟降112]]· (5.16) 式中后半部分就是Mean.shift算法,设 酬斛) 吨抽啡g惭12]] @∽ 其中勺,d为归一化常数,则上式可写为: 垓如)=拍%V嘣功 (5.18) 则有: 武汉科技大学硕士学位论文 第37页 ‰暑(曲:耙单盟 (5.19) ‘ %占(功 其中,c=%,d/ct。J·上式说明了局部均值朝附近数据样本密集区域移动,所以有 迭代公式: Yt+I=Yt+Vmh,s(只) (5.20) 其中只代表第t步的样本数据,咒+。代表第t+l步的样本数据,经过替换及化简可 得Mean-Shift算法的迭代式: 只+i 2 (5.21) 绷孚112] 可得: 只+l=以+九,·t (5.22) 其中,九,=h2c/2fh,譬(只)>0;Z=V以。I(以)。上式表明,Mean-Shift算法沿梯方向迭 代,使每个待处理的点“飘移"到分布密度函数的局部最大值点处,其步长九.随迭代过程 自适应地变化,即当前数据相对属于低密度时,迭代步长较大;在局部极大值附近,迭代 步长较小。 5.5.3算法分析 Mean.Shill算法的形式非常简洁优美,收敛条件也很宽松。只要确定了跟踪目标,整 个跟踪过程就不需额外的参数输入。与通常的优化方法不同,Mean-Shill方法每一步都能 使概率密度估计以,七(力获得增长,具有极佳的稳定性。由于无需对密度分布厶。七(力进行估 计,就可以直接沿着梯度方向搜索局部最大值,大大减少了运算量,所以这种算法具有良 好的实时性,因而基于Mean-Shift优化算法代表了视频跟踪算法的发展水平,得到了计算 机视觉界的广泛关注。 Mean-Shift算法用于视频跟踪有以下几个优势:首先,算法计算量不大,在目标区域已 知的情况下完全可以做到实时跟踪;其次,作为一个无参数密度估计算法,很容易作为一 个模块和别的算法集成;然后,采用核函数直方图建模,对部分遮挡、目标旋转、形变和 背景运动不敏感。但是,它也有不足之处,比如:缺乏必要的模板更新算法,整个跟踪过 程中窗宽的大小保持不变,当目标有尺度变化时,可能跟踪失败;颜色直方图是一种比较 通用的目标特征描述子,当背景和目标的颜色直方图相似时,跟踪算法效果不好:另外, Mean.ShiR算法是局部最优的优化算法,当出现多个局部峰值时,算法可能会收敛于局部 最优值而造成跟踪算法失效。 第38页 武汉科技大学硕士学位论文 5.6仿真实验与实验结果分析 以上算法在Linux系统下用OpenCV,在Windows系统下用Matlab进行仿真实验。 在实际目标跟踪中.我们采用的核函数是高斯核。 高斯轮廓函数为; 1 々Ⅳ(x)=cx“一÷J) z≥0 (5 23) 其所对应的核函数为: KⅣ(砷=(2砷叫“exp(一=1 Ilxl|2) 图5.9为上述所描述的函数及其核函数: x≥0 (5 24) \ 图5.9高斯轮廓函数及其核函数 我们可以看出核函数对模板中心的像素具有较大的权值,随着靠近边缘,权值最低。 采用一组行人运动视频序列图像,在第一帧中手动选取大小30x80的模板: ] 圈5.11目标模板 使用核密度估计对其进行描述,为使计算简单,仿真实验中采用16段直方图,利用 高斯核函数进行加权,得出的核密度描述为: i=【0 1569,0 0541,001 56,0 012I,0 002I,0,0,0,0,0.0613,0.0692,0 0313, o 0157 r 0 0287,0 1484,0 3931]; 本课题所设计的系统是基于ARM嵌入式的目标跟踪系统,目的是以ARM丌发板为 硬件平台.将算法在ARM中运行,使其完成对运动目标的准确捕获和稳定跟踪。本课题 采用的的图像大小为320x240x24bits。为了提高处理速度,选择扶度图像处理,同比例 缩小图像,这样,实际处理的图像为176x 1“,大大减少了ARM处理的工作量.在一定 程度上提高了处理速度。图5 12是本系统在实际环境中对行人进行连续跟踪的效果图, 并对连续的跟踪视频流截取了第10帧,第20帧.第30帧,第40帧,第50帧,共截取 武汉科技大学硕士学位论文 了5幅图像,如图512所示 第39页 圈5.12系统厦踪行^的效果圈 由实验结果分析可知; (1)本系统所选用的ARM硬件开发平台资源配置台理,能够在规定的时间内完成复 杂的目标跟踪算法。 (2)系统所采用的目标跟踪算法能够正确的识别运动目标,在ARM开发平台下较稳 定。 (3)系统可以在实时显示图像的基础上,实时检测和跟踪运动目标,并且检测和跟踪 具有较高的鲁棒性。在跟踪过程中,即时目标保持静止,程序也不会丢失对目标的跟踪。 5.7本章小结 分析了目标跟踪的过程。利用自适应背景减除方法实现了运动的检测,提取了运动物 体的特征。运动检测是发现运动目标,然后利用Mean-Shift算法实现对运动目标的跟踪。 第40页 武汉科技大学硕士学位论文 第六章总结与展望 6.1工作总结 目标跟踪的应用前景十分广阔,目标跟踪是图像处理领域内的重要研究内容,产生了 许多优秀、成熟的算法。但是传统的目标跟踪系统实现方法却不尽如人意,不能很好的满 足应用实时性和小型化的要求。 本文主要完成了如下工作: (1)在收集和查阅大量国内外文献资料的基础上,首先介绍了基于ARM嵌入式平台的 目标跟踪系统研究的意义和运动目标跟踪技术的发展情况,嵌入式系统的发展历程。 (2)对目标跟踪系统进行了功能分析和总体设计,包括采用嵌入式平台的必要性,系 统框架的设计,开发流程和开发原则的设计,对于嵌入式处理器和操作系统的选择。对基 于嵌入式平台的目标跟踪系统设计具有普遍意义。 (3)围绕如何将嵌入式平台和目标跟踪结合起来,详细探讨了将嵌入式平台作为一种 目标跟踪解决方案中应解决的关键性问题。在嵌入式Linux操作系统中建立OpenCV视觉 库,为下一步编译目标跟踪算法提供必要的条件。 (4)分析了运动目标跟踪系统的处理过程,包括图像采集、图像预处理、背景提取、 运动目标提取、运动目标匹配搜索。 (5)在嵌入式平台和MATLAB下进行了目标跟踪的仿真实验,可以达到预期的效果。 6.2后续工作展望 随着嵌入式和图像应用的快速发展,基于嵌入式平台的图像处理系统的应用潜力非常 巨大,本文的研究为下一步的研究设计工作提供了经验,同时作者深知本文的许多工作仍 需要进一步的深入,主要体现在以下几个方面: (1)本文提出了一种基于ARM嵌入式平台的目标跟踪系统的解决方案,在未来目标跟 踪领域会有很大的发展潜力,如何将嵌入式平台和目标跟踪结合起来,还有很多工作要做。 本系统在ARM上实现了目标跟踪算法,缺少了可操作的图形用户界面,系统的人机交互 友好性还不够,下一步打算在ARM—Linux平台下移植MiniGUI,从而实现功能强大的图形 用户界面支持系统。 (2)目标跟踪算法需要更加深入。基于ARM嵌入式平台目标跟踪系统平台虽然搭建起 来,并进行了行人检测和跟踪的研究,但是并不是很深入,离实际应用还有一段距离。未 来需要深入研究对行人和综合检测和跟踪,这样才能实际应用到智能交通上面。 (3)实时性还有待提高。虽然ARM处理器和Linux操作系统提供了实时性的保证,但 是嵌入式系统是面向应用的系统,可以优化构建良好的嵌入式Linux系统,剪裁无用的功 能模块,合理组织线程间通信等方面提高实时性。 武汉科技大学硕士学位论文 参考文献 第41页 【1】 滕克难.航空导弹反导作战效能综合评估方法探讨【J】.弹箭与制导学报,2003,12(2): 26-28 【2】 苏林,尚朝轩.基于卡尔曼滤波器的雷达跟踪【J】.微计算机信息,2006,22(9-1):20-22 【3】 蒲丽霞.基于TMS320F2812 DSP实现对轮式移动机器人的运动控制[J】.中国科技信 息,2006,1 1(23):88—91 【4】 1.Kawakami,Ynimura,K.Hamada.Real-time Extension for Window s:N1’/CE Used for Control Systems.Proeeedings of the 39th SICE Annual Conference.USA,2000,USA: SICE,2000,3 1 9-324 【5】 Manabe Y Aoyagi S.A Feasibility Deeision Algorithm for Rate Monotonic Seheduling of eriodic Real-time Tasks.Proeeedings Oll Real—time Technology and Applications Symposium,USA.1995,USA:IEEE Computer Scienee,1995,212·218 【6】 R.ERoch,D.C.Evans.ATRAN terrain sensing guidance-the grand-daddy system【j】. Proc.of the Society of Photo-optical Instrumentation Engineer,V01.238,Image Processing for Missile Guidance,Dan Siego,Califomia,1 950,(7):2-9 [7】 朱朝佩.自动目标识别器的发展现状及应用分析【J】.红外与激光,1992(2) [8】 胡旺,李志蜀,黄奇.基于粗糙集和多向差分图像的去噪方法【J】.小型微型计算机系统, 2006,27(1 2):2341-2345 [9】 万文静,程咏梅,杨阳.一种基于矩特征和特征光流的运动目标跟踪方法[J】.计测技 术,2006,26(15):10-13 Cumain 【1 0】 A,Guiducci A,Grattoni P.Image description of dynamic SCeneS.Pattern Recognition,1991,24(7):66l-673 【11】辛建光等.嵌入式Web视频服务器的设计【J】.兵工自动化,2005,24(1):67—71 【12】何鹏举,陈明等.基于嵌入式Web服务器的远程视频监控系统[J】.测控技术,2004,23 (6):62-63 【13】曹亘亮等.基于ARM9/7产品化研发实践【M】.电子工业出版社,2007 【14】韦东山.嵌入式Linux应用开发完全手册【M】.北京:人民邮电出版社,2008 【1 5】W.Richard Stevens.Advanced Programming in the UNIX Environment.Addison-Wesley, 2002 [1 6】杜春雷.ARM体系结构与编程[M】.北京:清华大学出版社,2003 [17】田泽.嵌入式系统开发与应用[M】.北京:北京航空航天大学出版社,2005,73.74 Logic[J],I础lre 【1 8】John C.Reynolds.An Overview of Separation Notes in Computer Science,Springer Berlin or Heidelberg,2008,4 1 7 1:460-469 [19】Andrew N.Sloss,Dominic Symes,Chris Wright编著,沈建华译.ARM嵌入式系统开发 一软件设计与优化【M】.北京:北京航空航天大学出版社,2005,473,474-476 [20】USER’S MANUAL¥3C2440X 32一Bit RISC Microprocessor.Samsung Electronics [21】魏忠,蔡勇,雷红卫.嵌入式开发详解[M】.北京:电子工业出版社,2003 [22】张腾.嵌入式实时操作系统内核的研究与实现【M】.北京:北京邮电大学,2001 [23】刘铁根.嵌入式图像检测技术[M】.北京:机械工业出版社,2008 第42页 武汉科技大学硕士学位论文 眩 卅 周立功等.ARM嵌入式MiniGUI初步与应用开发范例[M].北京:北京航空航天大学出 版社.2006 杨沙洲.Linux启动过程综述[EB/OL] 毛德操,胡希明.Linux内核源代码情景分析[M】.浙江大学出版社,2001 Bobert&MarieiCesati,understand the Linux Kernel.O’ReillyPtess,2004 Karim Yaghmour.Building Embedded Linux Systems.0’Reilly,2003 JanAxelson.USB大全[M】.北京:中国电力出版社,2005 口口口口口p习印刀跚明川 李振伟,赵有.基于OpenCV的运动目标跟踪及其实现[J】.现代电子技术,2008(20): 128—131 p q 贾小军,喻擎苍.基于开源计算机视觉库OpenCV的图像处理[J】.计算机应用与软件, 2008,25(4):276—278 p 陈磊.计算机视觉类库Opencv在VC中的应用[J].微计算机信息,2007,23(4):209.21 1 p 刁如 王虎帮,钱立志等.Linux平台下目标跟踪算法研究与实现[J】.微计算机信息,2008, 24(2):259-261 p钾 乔传标,王素玉等.智能视觉监控中的目标检测与跟踪技术[J】.测控技术,2008,27(5): 22.24 p 习 周香珍,张顺等.基于DSP的运动目标跟踪系统的实现【J】.微计算机信息,2008,24(8): 189.191 p 叼 张玲,蒋大永等.基于Mean—shift的改进目标跟踪算法[J】.计算机应用,2008,28(12): 3120.3122 p 刀 焦安霞,姜巩.视频序列中运动目标快速跟踪新算法的研究[J】.应用科技,2008, 35(12):7-10 p 研 林宏基,叶政春,欧静.彩色序列图像中实时运动目标跟踪方法【J】.中国图像图形学 报,2008,13(11):2181-2186 p 孵 丁大硼,黄欢等.基于Mean-Shift算法的实时运动目标跟踪[J】.山西电子技术,2008,5: 42—44 M Forsyth,David等.计算机视觉:一种现代方法[M】.北京:电子工业出版社,2004 H Rafael C.Gonzalez,Richard E.Woods.数字图像处理[M】.北京:电子工业出版社 H 叫U刁 杨枝灵等.Visual C++数字图像获取,处理及实践应用[M】.北京:人民邮电出版社, 2003 H 列 Andreas Opelt,Axel Pinz and Andrew Zisserman.Learning an Alphabet of Shape and Apperance for Multi—Class Object Detection[J].International Journal of Computer Vision,2008,80(1):1 6—44 H钾 Hans de Ruiter,Beno Benhabib.Visual·model-based,real-time 3D pose tracking for autonomous navigation:methodology and experiments[J]. Autonomous Robots,2008,25(3):267.286 [45】M.Mozerov,A.Amato,X.Roca and J.Gonzalez.Soling the multi object occlusion problem in a multiple camera tracking system[J].Pattern Recognition and Image Analysis,2009, 19(1):167—171 武汉科技大学硕士学位论文 第43页 研究生期间发表论文 科研论文: Pro删on 1、Pan Lian,Wu Fan,Guo Qi jun.An op缸lization Exp鳅Control Syst锄iIl Foreleg S硫盯 ProccSs.ICEMI’2007(EI收录) 2、吴繁潘炼工业机器人单目双视的应用研究.冶金自动化(已收录) 第44页 武汉科技大学硕士学位论文 致谢 首先感谢我的导师潘炼教授对我三年来的悉心指导和所付出的艰辛劳动。潘炼教授严 谨的工作作风、慎密的治学态度、渊博的学识,及其对学科专业领域孜孜不倦的追求时时 刻刻感染着我。潘老师不仅传授了我钻研学科专业知识,还教导我做人的道理。 感谢实验室的全体成员,正是在这个大集体中,使我各方面都得到了充分的发展。感 谢实验室各位同学的帮助,特此向他们表示衷心的感谢! 学习期间,我的家人为了能让我有个优良学习环境,给了我莫大的关心和支持,在此 向我的家人表示衷心的感谢! 最后,向所有给予我支持和帮助的人表示感谢,谢谢大家! 基于ARM嵌入式平台的目标跟踪系统的研究 作者: 学位授予单位: 吴繁 武汉科技大学 相似文献(10条) 1.学位论文 潘冬 基于Linuz嵌入式平台的视频目标跟踪技术研究 2009 嵌入式系统是当今系统开发的主流。论文以嵌入式系统开发为研究背景,围绕对视频目标跟踪技术的研究和嵌入式视频目标处理平台的搭建而展开 的。论文完成了视频目标跟踪技术的研究,基于达芬奇数字媒体技术平台TMS320DM6446为基础的嵌入式视频目标跟踪系统的设计与搭建,以及跟踪算法 在TMS320DM6446上的实现。 首先,着重研究了目标连续跟踪中的相关跟踪算法、基于Mean-Shift的跟踪算法和最大后验概率指标(PPM)的跟踪算法,在PC机上进行了仿真。根 据对仿真结果的分析,结合系统的软硬件条件、实时性和稳定性的要求,提出了一种基于改进的最大后验概率指标(PPM)的Mean-Shift跟踪算法。 其次,讨论了如何在TMS320DM6446上搭建一个视频目标处理的平台。介绍了TMS320DM6446的结构,突出了其采用的ARM+DSP的双核架构。针对其双核 的特点,讨论了如何进行视频目标处理平台的搭建,主要包括嵌入式操作系统Linux的移植、DSP端软件设计、ARM与DSP通信模块的设计。在此基础上 ,成功地完成了视频目标处理平台的搭建,为实时视频处理应用开发提供了良好的硬件平台。 最后,介绍了TMS320DM6446上软件开发的环境创建以及视频目标跟踪系统的软件设计流程,并在搭建好的嵌入式视频目标处理平台上对研究的跟踪 算法进行了调试,给出了实验结果,实现了视频目标跟踪算法的脱机应用。 实验结果证明,视频目标跟踪算法和嵌入式视频目标处理平台都达到了预期的要求,实现了视频目标跟踪的功能,为进一步研究视频目标处理搭建 了一个良好的软硬件平台。 2.学位论文 熊荣炎 基于MPEG-4的嵌入式监控系统关键问题的研究 2007 视频监控技术是计算机视觉领域一个重要的应用方向和备受关注的前沿课题,是计算机科学,机器视觉,图像工程,模式识别和人工智能等多学科 高技术的结晶。目前,视频监控由于其独特的优势被广泛应用于安全监控、生产过程监控以及住宅小区监控等领域。 嵌入式系统以其本身体积小、实时性高、稳定性好、支持以太网等优点,成为工控领域的新热点,基于嵌入式的多媒体视频监控系统成为监控系统 中越来越重要的组成部分。在目前众多的多媒体标准中,MPEG-4可以以低于MPEG-2的数据量达到DVD的高画质,因此开发出基于MPEG-4的高清晰的、稳定 的嵌入式视频监控系统具有广泛的应用前景。 在本文中,选取AD公司多媒体处理平台ADSP-BF561信号处理器评估板上来实现监控系统的MPEG-4 SP实时解码,重点对MPEG-4视频解码器进行设计与 优化。运动目标检测与跟踪是监控系统最重要的组成部分,基于嵌入式平台的特点,本文提出了一种在静止摄像机的条件下,根据特征值进行图象中运 动目标检测跟踪的方法,实验结果表明速度有了很大提高,能够实现实时处理,具有良好的应用前景。 3.学位论文 吴晓阳 基于OpenCV的运动目标检测与跟踪 2008 计算机视觉和数字图像处理技术可以广泛地应用于工业、医疗保健、航空航天、军事等各个领域,其中针对视频连续图像中运动物体的分析是其中 应用前景最为广泛的一个方向,在机器人导航、智能视觉监控系统、医学图像分析、工业检测、视频图像分析以及军事雷达视频信号的处理上都有占有 重要地位。 其中基于视频图像的运动目标分析也是计算机视觉和数字图像处理技术最为复杂的一个方向。它是一个庞大的工程,既要对视频信号进行采集,又 要对采集的图像进行处理,还要针对具体的应用编写程序进行开发。对于要完成某项应用的工程人员来说,如果所有底层的算法都要自己编码实现,所 有的图像处理函数都要从头编写,既造成时间和精力上的浪费,又难以保证稳定性、实用性和通用性。 OpenCV(Open Source Computer Vision Library)是一种用于数字图像处理和计算机视觉的函数库,由Intel微处理器研究实验室(Intel's MicroprocessorResearch Lab)的视觉交互组(The Visual Interactivity Group)开发。采用的开发语言是C++,可以在Windows系统及Linux系统下使用 ,该函数库是开放源代码的,能够从Intel公司的网站免费下载得到。OpenCV提供了针对各种形式的图像和视频源文件(如:bitmap图像,video文件和实 时摄像机)的帧提取函数和很多标准的图像处理算法,这些函数都可以直接用在具体的视频程序开发项目中。 针对在复杂背景中检测出多批特定运动目标并实施分配批号实行标记跟踪,本文利用OpenCV的运动物体跟踪的数据结构、函数以及基本框架,建立 了一个由人机交互界面模块;运动物体的前景检测模块;运动物体的团块特征检测模块;运动物体的团块跟踪模块轨迹生成模块;轨迹后处理模块组成 的视频图像运动目标分析系统。 在本文的最后阶段,使用此视频图像运动目标分析系统进行了大量实验,并全面分析了实验现象和数据。通过这些现象和数据可以得出结论:本文 基于OpenCV设计的视频图像运动目标分析系统具有良好的实时性,能够正确的进行运动物体的实时检测和跟踪,并具有良好的鲁棒性。由于该系统在 windows下开发,如何将该系统移植到其他的系统或者是嵌入式平台并进一步提高系统的通用性和鲁棒性就成了今后研究工作的重点。 4.学位论文 高晋轩 基于双核DSP的视频目标检测与跟踪 2007 本论文的主要研究内容为视频监控中的关键技术运动目标检测和跟踪算法及其在双核高性能数字信号处理器为核心的嵌入式平台上的优化实时实现 ,将优秀的视频监控算法和高性能数字信号处理器进行了有效结合,达到了良好的效果。 本论文工作主要包含两个部分: 第一部分是系统设计。 硬件系统采用以美国模拟器件公司Blackfin系列处理器中的高性能双核数字信号处理器ADSP-BF561为核心,通过ADSP-BF561系统外部总线接口单元 (EBIU)和并行周边接口(PPI)分别扩展FLASH、SDRAM、视频解码芯片ADV7183、视频编码芯片ADV7179。同时,对硬件的管理使用了嵌入式操作系统 uClinux,并撰写了相关硬件设备驱动程序。采用嵌入式操作系统uClinux对硬件平台资源进行管理,使用ADV7183,ADV7179通过两个并行周边接口同时 采集和输出视频信号,在双核DSP上进行算法实时实现,并且进行了必要的优化工作,实际运行效果良好,达到24X7无故障运行。 第二部分是视频处理算法的研究和改进。 在运动目标检测方面,本文研究了各种主流算法,并重点研究了基于混合高斯模型背景估计的背景减法,同时对算法做出了改进。在运动目标跟踪 方面,本文对常用的跟踪算法进行了研究,并结合本文的具体情况,采用了利于嵌入式平台实时实现的α-β-γ滤波器来对目标的下一个可能位置进行 预测,实现了目标的准确快速跟踪。 5.学位论文 罗强 移动目标的跟踪技术研究 2009 近年来,视频监控系统在各行业得到了广泛的应用,但是这些系统的功能局限于对场景的记录和保存。随着信息化进程的推进和人民生活水平的提 高,人们对智能监控系统的需求越来越迫切。目的是让系统自动的进行物体检测、识别、跟踪和行为理解,它在增强社会安全方面有很大的潜在价值。 基于视频图像的运动目标分析也是计算机视觉和数字图像处理技术最为复杂的一个方向。既要对视频信号进行采集,又要对采集的图像进行处理 ,还要针对具体的应用编写程序进行开发。 本文主要围绕运动目标检测和运动目标跟踪两个方面展开研究,运动目标检测方面,研究了静态背景下常用的运动目标检测算法。运动目标跟踪方 面主要研究了常用的跟踪算法。本文结合运动目标检测跟踪算法的应用,给出了系统设计总体结构,并利用VC++开发工具和OPENCV函数类库,实现了基 于Camshift算法的视频图像动态跟踪,给出了程序代码及实验结果。 OpenCv(Open Soure Computer Vision Library)是一种用于数字图像处理和计算机视觉的函数库,由Intel微处理器研究实验室(Intel's Microprocessor Research Lab)的视觉交互组(The Visual Interactivity Group)开发。采用的开发语言是C++可以在windows系统及Linux系统下使 用,该函数库是开放源代码的,能够从Intel公司的网站免费下载得到。OpenCv提供了针对各种形式的图像和视频源文件的帧提取函数和很多标准的图像 处理算法,这些函数都可以直接用在具体的视频程序开发项目中。 在本文的最后阶段,使用此视频图像运动目标分析系统进行了大量实验,并全面分析了实验现象和数据。通过这些现象和数据可以得出结论。本文 基于OpenCv设计的视频图像运动目标分析系统具有良好的实时性,能够正确的进行运动物体的实时检测和跟踪,并具有良好的鲁棒性。由于该系统在 Windows下开发,如何将该系统移植到其他的系统或者是嵌入式平台并进一步提高系统的通用性和鲁棒性就成了今后研究工作的重点。 6.学位论文 杨洋 嵌入式目标跟踪系统的研究与实现 2007 目标跟踪是机器视觉领域的研究热点。随着理论研究与试验研究的不断进步,该技术也在不断的成熟与完善,并在某些实践领域如机器人足球、电 子宠物等方面有了一些探索性的应用。 实际的目标跟踪系统需要面对千差万别的现实环境,如噪声的影响,环境明暗的突变,干扰物的存在,阴影,遮挡等等,不仅需要解决这些障碍带 来的问题,还需要在不同情况下进行自适应调整。此外,大多数目标跟踪系统的应用都有实时性的要求,或多或少的存在时间下限。基于以上原因,一 个成功的跟踪系统需要在鲁棒性、准确性和快速性三个方面提供保证。另一方面,针对普通应用的跟踪系统,其硬件平台成本的高低直接决定了该系统 的应用与推广,因此产生了对嵌入式系统的要求。但受限的处理器速度与存储器空间也加剧了耗资巨大的图像处理操作与有限的软硬件资源之间的矛盾 。 基于以上的几个方面,本文研究了基于ARM7硬件平台的固定的单摄像机目标跟踪系统,并结合传统跟踪算法在实际环境中的改进提出了一套可行的 嵌入式目标跟踪算法方案,并结合硬件平台与管理软件的设计与开发,建立了完整的嵌入式目标跟踪系统。主要研究内容如下: (1)分析了几种常用的运动目标检测与跟踪算法,并对它们的特点进行评价,以及阐述了它们在实际应用中的价值。 (2)在结合适用于嵌入式系统的背景帧差分与帧间差分法的基础上,针对现实环境中出现的问题,分析并提出了解决方案,并给出了相应的算法和流 程。这些问题包括环境光线的明暗变化、静态背景下存在的固有运动、由摄像机本身引起的固有噪声、监控过程中出现的局部突变以及某些情况下需要 的单目标系统的多目标跟踪模拟问题。 (3)详细讨论了基于ARM(ARM7)嵌入式系统的软件开发技术与要点。 (4)详细讨论了uC/OS-Ⅱ嵌入式实时操作系统(RTOS)在嵌入式平台的移植。 (5)介绍了嵌入式目标跟踪系统的整体设计工作。 7.学位论文 鲁达 基于DM6446平台的智能视频监控关键算法研究与实现 2009 智能视频监控以数字化、网络化技术为基础,代表着目前视频监控的发展方向。不同于以图像的采集、传输与存储为主的传统视频监控,智能视频 监控在对图像采集编码的基础上,能够检测和识别不同的物体,发现监控现场中的异常情况,并及时地进行响应与报警。智能视频监控能够广泛地应用 于安防、交通管理、商业服务等众多领域,具有良好的市场前景。 智能视频监控系统中使用到了很多计算机视觉和数字图像处理技术,本文就其中的一些关键性算法展开了讨论,主要针对目标检测、跟踪技术进行 了深入的研究和实践,结合嵌入式平台的特点进行简单、有效的算法设计。本文提出了基于块的目标检测算法,在背景差法的基础上,采用以块为单位 的处理进行进一步的判决。该方法在提高判决速度的同时,还能有效地消除小幅度噪声的影响。对于目标跟踪,则采用了Mean Shift与卡尔曼滤波相结 合的方案,有效地利用了目标的颜色直方图信息与目标的运动状态信息,可以准确地实现跟踪。在此基础上,结合不同的应用场景提出了相应的异常事 件检测算法,包括非法滞留、非法移位报警,非法入侵报警以及越线检测,具有一定的实用性和推广性。 TI公司的DaVinciTM技术是一组专门为数字视频设计的系统解决方案,而DM6446则是基于该技术的SoC处理器,它具有ARM+DSP的开放式双核架构,是 一款功能强大的数字多媒体处理器,因此我们选择其作为算法实现的平台。我们首先在DSP端对各类算法进行封装并生成底层算法库。为了实现实时的视 频处理,结合硬件平台的特点对算法进行了进一步的优化。同时针对ARM端的开发,设计实现了Linux应用程序。在此基础上,我们搭建了具备视频采集 、处理、编码、传输与解码等整套功能的演示系统,对本文提出的目标检测和跟踪算法进行了验证和评估。实验结果表明,基于DM6446平台实现的算法 具有较好的检测跟踪性能,能够实现对CIF分辨率视频的实时处理。 8.学位论文 叶磊 智能视频监控嵌入式实现及传输保护研究 2008 智能视频监控利用计算机视觉、图像处理等技术,在对图像采集编码的基础上,能够检测和识别特定的人和物体,发现监控现场的异常情况,以最 快和最佳的方式发出警报和提供有用信息,具有良好的市场前景。考虑到监控系统的成本及体积等要求,实际应用中往往采用嵌入式实现。本文主要设 计实现了基于Ti达芬奇平台的智能视频监控系统,并对编码后视频的传输保护方法进行了研究。首先根据智能视频监控系统需要实现的任务,选择了 Ti达芬奇双核(ARM+DSP)平台作为系统的硬件实现平台。然后,对现有的目标检测,目标跟踪,视频压缩算法进行比较,结合嵌入式平台的处理能力和 系统的任务指标,对系统所需算法进行了选取。 在确定了硬件平台和使用算法后,根据数据流向设计出系统框架。通过对系统任务的关联性和顺序性分析,结合达芬奇平台的资源特点,设计了多 任务的软件方案。该方案利用多线程技术,通过两级乒乓缓存及信号量同步,实现了双核并行处理,极大提高了系统的效率。方案中主要包括以下三个 线程:前端处理线程、视频处理线程、和TS 打包发送线程。在前端处理线程的实现中,使用ARM控制片内设备Resizer进行码流格式转换,编写了动态加 载驱动程序,给出了其应用层接口和线程处理的核心程序。对于视频处理线程与TS 流打包线程,本文阐述了其实现方法,并给出了核心参数定义和关键 实现语句。最后,利用标准序列对系统进行测试,证明系统能达到CIF实时处理。在实际的视频分析应用场景中进行测试,验证了系统的有效性。在远程 视频监控中,因为传输网络的时延、带宽波动、拥塞或者信道衰落等原因,造成视频分组的丢失。为了减小丢包带来的图像质量损失,本文对视频包鲁 棒传输中不对等保护(UEP)和灵活片组划分技术(FMO)进行了研究。在以往基于FMO的不对等保护方案的基础上,提出了一种新的加入可变前向纠错的 不对等保护模型。此模型先假定每个宏块都有确定的重要性,然后基于此重要性对图像进行片组划分,再用可变的前向纠错(FEC)对片组进行不对等保护 ,用于视频流在有损信道传输时增强鲁棒性。在对此模型进行数学分析基础上,以通过信道后重要性损失最小为目标,提出了具体实施方案。接着,提 出了基于PSNR的宏块重要性定义。最后,对该方案进行仿真,得到的平均亮度PSNR 与原方案相比有明显提高。 9.学位论文 吴健 移动机器人视觉导航系统的设计与实现 2007 视觉导航作为移动机器人中的一项关键技术,受到了国内外科研工作者的广泛关注。本文在科研项目“移动智能体的运动测控方法研究”的资助下 ,以实验室自制的XKR-1型移动机器人为实验平台,围绕移动机器人视觉导航系统的相关理论基础和技术实现展开了一系列研究。 综合论述了移动机器人、机器视觉以及视觉导航相关领域的背景、意义、发展和现状,指出其关键技术,发展趋势和研究方向。 系统地介绍了实验室自制的XKR-1型四履带移动机器人的体系结构。根据机器人的总体任务要求,分别给出了机构本体、控制平台硬件、软件体系的 设计方案。采用分布式嵌入式系统配合USB摄像头搭建了机器人视觉导航系统的硬件开发平台。出于对系统开放性和稳定性的考虑,采用了适合嵌入式平 台的Linux操作系统作为软件开发平台。设计了基于行为的机器人控制体系,保证机器人工作时的高效性与鲁棒性。 研究了机器人视觉中图象处理领域一些基本方法的原理和实现手段。首先建立了简化的线性摄象机模型,推导了图象坐标系统和世界坐标系统之间 的映射关系。然后提取YUV颜色空间中Y分量灰度图象,用迭代算法找到最佳分割阈值,实现图象的二值化处理。最后运用中值滤波和数学形态学的方法 对图象进行平滑,去噪。 研究了机器人视觉中图象分析方面的一些经典算法,如边缘检测,直线拟合,目标跟踪等。结合XKR-1型移动机器人及其视觉任务的特点,采用了一 种用特征点描述目标的方法,充分运用先验知识,用重心法高效、便捷地实现了对图象中直线的提取。 分析了移动机器人的运动学模型,给出了基于视觉和模糊控制的直线跟踪方法及其简化算法。研究了移动机器人视觉导航的实现方法,着重讨论了 定位、规划、避障这几个问题。通过实验,分析了影响系统性能的内外因素,提出了下一步研究目标。 10.期刊论文 谭塈元.吴成东.周芸.侯俊.王俏俏.TAN Ji-yuan.WU Cheng-dong.ZHOU Yun.HOU Jun.WANG Qiao-qiao 智能图像监控系统异常目标检测算法研究 -机电工程2009,26(3) 为实现智能家居中的实时安全监控,提出了一种基于嵌入式平台和无线通讯的智能视频监控系统方案,并设计了智能视频监控系统中的异常目标检测 算法.以背景差分法为基础,采用自适应阈值、运动目标跟踪及背景更新等方法,克服了背景光线变化、阴影及小目标带来的干扰,提出并实现了动态目标 跟踪检测功能.该系统能够有效地对监控区域目标状态进行监测,并能根据监测结果进行报警等安全操作.实验结果表明,系统具有很高的实时性、可靠性 和实用性. 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1546291.aspx 下载时间:2010年5月25日
更多简介内容

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI 参考设计资源库

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })