资料课件讲义信号报告_第1页
资料课件讲义信号报告_第2页
资料课件讲义信号报告_第3页
资料课件讲义信号报告_第4页
资料课件讲义信号报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于 FPGA 的视觉目标跟踪模型设计陈荣林 14721100;王姝慧 14721101;裴栋彬 147211141 引言视觉目标跟踪是计算机视觉的一项核心技术,涉及图像处理、模式识别、人工智能等不同领域,广泛应用于军事、交通、安全等领域。军事方面,精确制导系统应用精确跟踪技术获得目标的位置信息。交通方面,智 能交通系统根据车辆的检测跟踪,实现车流量统计与车辆的异常检测。安全方面,智能监控系统将摄像机捕捉 到的图像进行实时的分析处理,一旦出现意外情况,及时报警,预防意外事故与犯罪的发生。 目标跟踪理论由 WAX 于 1955 年首先提出。由于其广泛的实用价值,成为了国内外学者研究的热门课题之

2、一。现在最常用的目标跟踪算法有 CamShift 算法与粒子滤波算法,因其在实时性与鲁棒性方面的优异性能,而受到越来越多的关注并应用于各种跟踪技术中。 Bradski 以 MeanShift 算法为基础提出了 CamShift 算法。CamShift 以颜色直方图为目标特征,对每一帧的颜色特征进行动态的概率统计,并根据概率统计结果自适应地调整搜索框的位置,实现目标跟踪功能,因此,CamShift 又称为连续自适应的 MeanShift 算法。 粒子滤波通过非参数化的蒙特卡洛模拟方法来实现递推贝叶斯滤波,适合于任何能用状态空间模型表示的非线性系统,以及传统 Kalman 滤波无法表示的非线性系统

3、,精度可以逼近最优估计。 在计算机上实现 CamShift 算法与粒子滤波算法已经十分成熟。PC 系统和 PLC 系统性能高,但体积大,成本高,功耗大。嵌入式系统相较于 PC 系统,在存储空间、计算能力等略显逊色,但嵌入式系统软硬件可裁剪, 具有适用性强,可靠性高,成本、体积、功耗空间。 优点。因此,基于嵌入式系统的目标跟踪具有更广阔的发展 PC、ARM 和 DSP 是一个串行运行的过程,而 FPGA 最大的特点是并行操作。例如实现粒子滤波算法,要对 100 个粒子计算处理时,PC 由于串行处理要花费很长的时间,而 FPGA 对 100 个粒子进行并行处理,大大节省了运算时长。因此,相较于 P

4、C、ARM 和 DSP,FPGA 具有更强大的数据处理能力。 DE2-115 教育开发板所提供的 Cyclone IV 拥有丰富的逻辑单元与乘法器以及众多外围设备满足多媒体电路的设计要求。本设计围绕 DE2-115 平台,结合 FPGA 并行操作的优点,搭建了基于 CamShift 与粒子滤波算法的嵌入式视觉目标跟踪系统。 2 视觉目标跟踪算法2.1 CamShift 算法原理CamShift 算法是基于连续图像颜色动态变化的概率分布获得的一种有效的目标跟踪算法,具有鲁棒性强、 实时性好等特点。其算法流程图如图 1 所示。 是否收敛 是图 1 CamShift 算法流程1) 人工选择窗口;确定

5、目标物体和搜索框;程序初始化。 2) 计算目标框色调的概率分布,形成色调直方图。由于 RGB 颜色空间对光的亮度敏感度较高,而 HSV 色彩空间由色调(H)、饱和度(S)和亮度(V)组成,提取 H 分量进行色调直方图统计,能大大减少光照对跟踪效果的影响。 3) 根据色调直方图,将色调出现的概率反投影到图像上。经过色调直方图反投影后,目标颜色值较大,非目标颜色值较小。 4) 计算搜索窗口的零阶矩和一阶矩,确定搜索框的质心位置。设(x, y) 为搜索窗口中的像素位置, I (x, y) 是 反投影图中(x, y) 处的像素值。定义搜索窗口的零阶矩 M 00 和一阶矩 M 01 、 M 10 分别如

6、下: M 00 = xyI (x, y)M 01 = xyyI (x,y)M10 = xyxI (x,y)搜索窗口内的质心位置如下:(x , y ) = M10 M,01 kk MM0000 调整窗口到质心位置 输出质心位置用于调整目标框和搜索框 计算搜索框质心位置 反投影到图像 确定目标框及搜索框 (搜索框略大于目标框) 计算目标框色调直方图 选择初始窗口 5) 调整窗口到质心位置,判断是否收敛。收敛则输出质心位置,调整目标框和搜索框,进行下一帧的跟踪。 2.2 粒子滤波跟踪算法原理粒子滤波算法是一种基于蒙特卡洛和贝叶斯估计理论的最优算法,它以递归的方式对测量数据进行序贯处理,故无须对以前的

7、测量数据存储和再处理,节省大量的存储空间。其算法流程图如图 2 所示。 粒子滤波实现的基本步骤如下: 1) 初始化步骤: t = 0(i)i = 1,2,., N。, 从先验分布 p(x ) 中采集状态粒子 x00当t 1,则t - 1时后验分布的粒子集为x (i) , w (i) N 。 2)t-1t-1 i=1观测值计算目标直方图粒子采样 图 2 粒子滤波算法流程重要性采样: (i ) (i)(i) , y| x(i) , y )从重要性分布 I (x | x) 中采样粒子: xt I (xtt -1ttt -1t (i )y由这一时刻的 t ,计算粒子xtN的权值:i=1 (i) (i)

8、 (i)p( yt | xt ) p(xt | xt -1 )w(i) = w(i)t -1t (i) (i)I (xt | xt -1 , yt )粒子权值的归一化: (i )wtw(i )t =Ni=1( j )wt3)重采样:2 (i)NN eff= (wti=1)输出权值最大的样本作为结果 粒子更新 对样本重采样 用观测模型计算权值 初始化 若 N eff Nth ,则重采样粒子:1(i)Nxt ,i=1N若 N eff Nth ,则重采样粒子: (i ) (i)= xt , wtx(i) ,w(i) NNtti=1i=14) 输出粒子集x (i) : i = 1,2,., N0:t后

9、验概率:N= 1Nd x( i ) (dx0:t)p(x 0:t | y1):t = p(xo:t | y1:t)0:ti=1状态估计值: (i )Nx = wtx(i )tti=1根据大数定理,函数 gt (x0:t ) 的期望:N) 1 E(g (x ) =g (x ) p(x| y(x (i ) )gt0:tt0:t0:t1:tt0:tNi =1 (i)当t - 1 时,目标状态变量的用近似粒子集合xt-1 : i = 1,2,.,N 来表示后验概率分布 p(xt -1| y1:t -2 ) ,粒子 (i ) (i )全值呈均匀分布,为 1/N。计算粒子 xt -1 的权值 wt -1

10、,准确度高的粒子的权值较大,误差大的粒子的权值较小, (i) (i)得到粒子集合xt -1 , wt -1N。权值大的粒子衍生出较多的粒子,权值小的粒子衍生出较少的粒子,衍生出的粒 i=1 (i) (i),1/ NN 。子也设为均匀分布,得到粒子集合xt -1 ,1/ NN ,从而预测粒子集合xti=1i=13 视觉目标跟踪算法的嵌入式硬件结构设计本设计以 Altera 提供的 DE2-115 平台为核心,增加了摄像头、VGA 显示器与红外遥控器等外设,提出了基于 FPGA 的视觉目标跟踪算法。 3.1 CamShift 算法的硬件设计根据 CamShift 算法介绍并结合 FPGA 特点,其

11、模块划分如图 3 所示。算法主要包括 RGB 转 HSV 模块、中值滤波模块以及 CamShift 算法实现模块。其中,CamShift 算法实现模块包括确定目标初始位置模块、颜色直方图统计模块、反投影模块、计算零阶矩一阶矩模块、输出质心移动位置模块、显示跟踪框模块。CamShift 无复杂运算步骤及时序问题,其 FPGA 实现简单易行。基于 FPGA 的 CamShift 算法的跟踪效果良一章。 能分析见下 图 3 CamShift 算法模块划分3.1.1 RGB 转 HSV 模块计算R/G/B中最大值与最小值 最大值是否与R相等 是否最大值是否与G相等 否图 4 RGB 转 H 分量流程根

12、据上一章的介绍,HSV 色彩空间模型具有对光照不敏感的特点,为方便运算,提取 HSV 中的 H 分量进行直方图统计。如图 4 所示,RGB 转 H 分量需要用到除法操作。单片机可以用 C 语言直接进行除法 ,而 FPGA 不支持直接的除法操作,需通过 Quartus II 自带的除法器进行除法运算,而每一个除法操作要占用一个像素以上的时钟周期,从而导致 FPGA 的时序问题。因此,采用流水线操作解决这一问题,即输出端延迟两个时钟后,每 个时钟节拍依次送出 H 分量的计算结果。 H=256+128*(B-R)/(MAX-MIN)H=512+128*(R-G)/(MAX-MIN)H=128*(G-

13、B)/(MAX-MIN)是 S=(MAX-MIN)/MAXV=MAX显示跟踪框 输出质心移动位置 计算零阶矩和一阶矩 反投影 颜色直方图概率统计 确定目标初始位置 中值滤波 RGB转HSV 3.1.2 中值滤波模块输入图像转为色调图像后,经过中值滤波模块,平滑去噪,输出进行下一级的 CamShift 算法实现模块。 3.1.3 CamShift 算法实现模块该模块由初始化、颜色直方图概率统计、反投影、计算零阶矩与一阶矩、计算质心移动位置和显示跟踪框 组成。初始化:确定目标,将目标置于目标框内。 颜色直方图概率统计:第一帧图像的颜色概率统计结果存于 RAM 中。将每一帧的视频图像像素通过查询第一

14、帧目标颜色概率直方图,可以得到该像素为目标像素的概率。 反投影:目标颜色值较大,非目标颜色值较小。用反投影图确定目标位置。计算零阶矩与一阶矩:根据上一章 CamShift 原理中零阶矩与一阶矩计算公式进行计算。由于 FPGA 不支持直接的乘法计算,因此,本设计使用 Quartus II 自带的乘法器进行乘法运算。 输出质心移动位置:根据上一章 CamShift 原理中搜索窗口的质心位置公式计算。FPGA 同样不支持除法运算,需要使用 Quartus II 自带除法器进行除法运算。 显示跟踪框:将质心作为跟踪框的几何中心,根据质心移动位置,确定跟踪框位置。 本设计采用状态机来实现各子模块的控制与

15、状态转移。状态机克服了纯硬件数字系统顺序控制不灵活的缺 点,使模块之间的时序逻辑更加准确,由于其结构清晰,便于排错修改。 CamShift 原理简单,无复杂的运算过程,硬件移植容易,实验表明在复杂背景下其跟踪性能良好,下一章分析实验结果。 3.2 粒子滤波算法的硬件结构设计根据上一章粒子滤波算法的介绍和 FPGA 编程的特点,本设计将粒子滤波算法的硬件实现如图 5 所示,主要包括初始化模块、目标选择模块、目标直方图获取模块、各粒子直方图获取模块、粒子权重计算模块、目标捕获模块、重采样模块和 RAM 存储模块。其初始化模块对本设计中的 RAM 模块进行清空操作,以做好存储准备;目标选择模块进行目

16、标大小、位置的设定;图像显示模块将运算得到的目标信息与输入的原始图像进 行综合显示。 StartThe fist frame?NN End tracking?YEnd图 5 粒子滤波跟踪算法的 FPGA 实现模块图3.2.1 粒子滤波特征模型本设计中粒子滤波设计采用 HSV 颜色空间中的 H 分量直方图作为特征模型进行跟踪,同样采用本设计 CamShift 设计中的 RGB 颜色空间转 H 分量的方法,如图 5 所示。 3.2.2 目标直方图获取模块当判断为视频输入第一帧时,系统对该帧图像中的相应位置目标统计色调直方图。该直方图为跟踪系统运 行中进行权重计算做出必需的准备。本设计采用的直方图获

17、取方法为以 H 分量的数值作为地址对 RAM 进行读、写操作,写入的数据为读出的数 据加 1。经过上述的步骤从而统计得到目标的色调直方图。 3.2.3 各粒子直方图获取Resample Target capture Display the imageCompute the particle weightColor histogram of each particlesSelect a targetInitializeRAMYcolor histogram of 1st frame 粒子滤波是利用一组随机粒子计算目标状态变量的后验概率分布,本设计中采用如图 6 所示的方法产生随机 的粒子(x,y

18、)坐标。 X_inX_outY_inY_out图 6 粒子坐标产生模块图 在得知各个粒子坐标的情况下,利用和上一节同样的方法得到各个粒子的色调统计直方图。3.2.4 粒子权重计算模块粒子权重计算是粒子滤波算法的核心,涉及到大量的的乘法、除法、开方、叠加运算。虽然在 FPGA 中可以采用并行运算对每个粒子的权重进行同时运算。考虑到本设计中要保证较好的效果必须有较多的粒子(本设计中采用了 128 个粒子),所以上述的方造成大量的硬件资源消耗。综合考虑视频中每一帧图像中时间空 余,本设计中采用了计算单元分时复用的方法进行权重的计算。如图 7 所示: Moment 8 Moment 1Moment 2

19、图 7 权重计算模块图3.2.5 目标捕获模块该模块重要包含一个排序算法,在得到各个粒子的权重之后排序得到权重最大的粒子(可能为粒子目标的 概率最大的粒子)。选取上述粒子的坐标为目标的坐标,既捕获目标,基本完成粒子滤波算法。3.2.6 粒子重采样模块粒子滤波中粒子为随机分布,必有权重较小里粒子出现,而这些粒子对整个算法实现贡献较小,并且会形 成严重的粒子服了粒子现象。重采样模块对权重较小的粒子进行删除操作,并将其用权重较大的粒子代替,有效克 现象。3.2.6 RAM 存储模块The weight of No.1-16particlesThe weight of No.17-32particle

20、s Output the weightThe weight of No.113-128particlesRandom number generator+Random number generator+ 利用 FPG上 RAM 存储,为目标和各粒子的色调直方图提供存储载体。4 实验结果与分析图 8 基于 DE2-115 平台的视觉目标跟踪系统如图 8 所示,本设计根据 DE2-115 平台提供的多媒体电路设计资源,搭建了基于 FPGA 的视觉目标跟踪系统。图中 1 号为摄像机,采集视频信号; 2 号为 DE2-115 平台,利用模数转换、Cyclone IV、SDRAM 等板内资源进行视频信号处

21、理,实现 CamShift 算法与粒子滤波算法; 3 号为显示器,视频信号经处理后输出到显示器上。此图及后文图中左半部分均为 CamShift 算法跟踪效果图,右半部分均为粒子滤波算法跟踪效果图。 4.1 目标跟踪的定性实验结果4.1.1 简单场景下的目标跟踪效果CamShiftParticle FilterCamShiftParticle Filter目标选择第111帧CamShiftParticle FilterCamShiftParticle Filter第188帧第272帧图 9 简单场景下的目标跟踪效果 简单场景下,以人脸为目标,进行目标跟踪,跟踪效果如图 9 所示。首先,确定目标,

22、初始化程序,开始跟踪。第 111 帧、第 188 帧及第 272 帧,两种算法均能实验目标跟踪功能,其硬件移植正确。观察第 188 帧与第 272 帧可得,CamShift 算法虽能跟住物体,但跟踪框已出现部分偏移,而粒子滤波偏移程度较小。 4.1.2 复杂场景下的跟踪效果在色彩丰富的复杂场景下,CamShift 算法与粒子滤波算法的跟踪效果如图 10 所示。两种算法均以目标的色调空间作为统计特征,色彩丰富的背景会对目标跟踪产生干扰。实验结果表明,CamShift 算法与粒子滤波算法 在复杂场景下仍能有效跟踪目标,CamShift 算法跟踪目标时的偏移程度大于粒子滤波算法。 目C标选择amSh

23、ift CamShiftParticle FilterCamShiftParticle Filter第88帧 目标选择CamShiftParticle Filter第228帧CamShiftParticle Filter第368帧图 10 复杂场景下的目标跟踪效果4.1.3 复杂目标的跟踪效果CamShiftParticle FilterCamShiftParticle Filter第123帧目标选择CamShiftParticle Filter第272帧图 11 复杂目标的跟踪效果CamShiftParticle Filter第340帧 如图 11 所示,手持两个玩偶作为跟踪目标,比较 Ca

24、mShift 算法与粒子滤波算法的跟踪效果。第 123 帧、第 272 帧及第 340 帧, CamShift 算法完全跟丢目标,而粒子滤波算法仍能跟住目标,跟踪准确度也较高。CamShift 算法跟踪单色目标时,表现出优良的跟踪性能,但目标包含的颜色信息较为复杂时,其跟踪效果极差。粒子滤 波算法,在复杂场景下,跟踪复杂目标,仍保持优良的跟踪性能。 4.1.4 昏暗场景下的跟踪效果 光照是影响图像处理效果的一个重要因素,图 12 给出了昏暗场景下目标跟踪效果。CamShift 算法在第 72 帧时,跟丢目标。后数帧均处于跟丢的状态,直到目标移动到跟踪框附近时,继续跟踪目标,但如第 130 帧所

25、示, 偏移程度严重,随之再次跟丢。然而,粒子滤波算法即使在昏暗场景下依然有效。实验结果表明,光照对 CamShift 算法存在很大影响,而粒子滤波具有抗光照的优异性能。 CamShiftParticle FilterCamShiftParticle Filter第72帧 目标选择CamShiftParticle FilterCamShiftParticle Filter第130帧第263帧图 12 昏暗场景下的目标跟踪效果4.1.5 有遮挡物时的跟踪效果比较CamShiftParticle FilterCamShiftParticle Filter第198帧目标选择CamShiftPartic

26、le Filter第253帧CamShiftParticle Filter第296帧图 13 遮挡物对跟踪效果的影响 实际应用中,假设汽车在红灯前等待时,岔路口行人正在过马路,镜头中行人与汽车产生部分重叠,若要继续跟踪汽车,那就需要跟踪算法抗遮挡的特性。如图 13 所示,第 296 帧 CamShift 算法跟丢目标,而粒子滤波算法一直表现出良好的跟踪性能。 4.1.6 目标运动速度对跟踪效果的影响CamShiftParticle FilterCamShiftParticle Filter目标选择第128帧CamShiftParticle FilterCamShiftParticle Filt

27、er第238帧第332帧CamShiftParticle FilterCamShiftParticle Filter第458帧第470帧CamShiftParticle FilterCamShiftParticle Filter第483帧第492帧图 14 目标运动速度对跟踪效果的影响实际应用中,目标往往会出现突变运动,抗突变运动是衡量算法性能的另一指标。如图 14 所示,第 128帧、第 238 帧及第 332 帧,目标约以每帧 20 像素的速度慢速运动时,CamShift 算法与粒子滤波算法均能跟住目标。第 458 帧、第 470 帧、第 483 帧及第 492 帧,目标约以每帧 40 像

28、素的速度快速运动时,CamShift 算法出现跟丢现象,粒子滤波仍能实现跟踪功能。从第 458 帧到第 470 帧,CamShift 算法的跟踪框向目标移动的方向略有移动。目标在快速移动时,经过跟踪框附近区域,算法再次有效。从第 483 帧到第 492 帧时,CamShift 算法的跟踪框仍停留在原处。分析得出,CamShift 算法更新速度慢,粒子滤波算法的跟踪灵敏度高且实时性很好。 4.1.7 粒子个数对粒子滤波跟踪效果的影响目标选择第140帧第775帧第823帧(a) 16 个粒子的跟踪效果目标选择第93帧第175帧第442帧(b) 64 个粒子的跟踪效果 图 15 粒子个数对粒子滤波跟

29、踪效果的影响如图 15 所示,(a)的第 775 帧及第 823 帧,16 个粒子的粒子滤波算法跟踪效果很差,经常出现跟丢的情况。若把粒子滤波算法中粒子数提高如(b)中的 64 个时,跟踪精度明显提高,跟踪效果稳定。实验结果表明,粒子数目对粒子滤波算法跟踪效果有较大影响,粒子数越多,跟踪效果越好。 4.2 目标跟踪的定量实验结果4.2.1 粒子数对运算时间的影响 表 1 给出了在 PC 与 FPGA 上,实现粒子滤波算法时,不同粒子数完成一帧图像运算的时长。粒子数越多时,PC 运算时间越长,而 FPGA 运算时间不变。由于在粒子数不断增加的过程中,PC 要对每个粒子逐一进行运算。而 FPGA 具有并行计算的优势,在同一时刻,对所有粒子进行运算。实验结果表明,相比 PC 系统,基于 FPGA 的并行粒子滤波算法大大节省了运算时长。在粒子数庞大的情况下,FPGA 的优势更加明显。 表 1 PC 与 FPGA 实现粒子滤波算法的运算时长粒子数PC 运算时长(s)FPGA 运算时长(s)80.01910.0167160.03420.01

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论