一种基于FPGA的实时目标追踪系统和方法与流程

文档序号:14942976发布日期:2018-07-13 21:32阅读:173来源:国知局

本发明涉及视觉应用领域,特别是一种基于fpga的实时目标追踪系统和方法。



背景技术:

实时目标跟踪系统广泛应用于人机交互、安全监控、增强现实等领域,为了获得良好的追踪性能和对复杂的外界环境有较强的鲁棒性,跟踪系统需要进行复杂的处理过程和巨大的计算成本,而某些特定的平台对于系统功耗要求较高,难以实现实时追踪。

目前现有的目标跟踪方案,虽然对跟踪算法和特定的架构进行了联合优化,但是由于处理速度较慢,跟踪性能仍未达到实时,因此迫切需要一种高性能和高能量效率的系统,实现实时的目标跟踪和高能量效率。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种基于fpga的实时目标追踪系统和方法,使得系统处理数据速度更迅速,硬件开销更小,在实时性、准确度、功耗等多方面达到一个较好的平衡。

本发明解决其问题所采用的技术方案是:

一种基于fpga的实时目标追踪系统,包括fpga芯片,所述fpga芯片内包括:

均值滤波器,用于对动态摄像头的视频数据进行均值处理并得到动态摄像头的视频数据均值,以及对静态摄像头的视频数据进行均值处理并得到静态摄像头的视频数据均值;

运动补偿器,用于对动态摄像头的视频数据均值进行补偿并得到运动矢量补偿的视频帧;

动态块检测模块,用于对静态摄像头的视频数据均值以及运动矢量补偿的视频帧进行处理并得到高可能性图像块;

建议框搜索模块,用于对高可能性图像块进行优化;

目标匹配模块,用于对优化后的高可能性图像块进行匹配并得到目标对象位置和大小;

所述均值滤波器分别和运动补偿器、动态块检测模块连接,所述运动补偿器和动态块检测模块连接,所述动态块检测模块、建议框搜索模块以及目标匹配模块三者数据连接。

进一步,还包括用于缓存数据的第一数据缓存器、第二数据缓存器,所述均值滤波器通过第一数据缓存器分别与运动补偿器、动态块检测模块连接,所述第二数据缓存器分别与动态块检测模块、建议框搜索模块以及目标匹配模块连接,所述目标匹配模块与第一数据缓存器连接,所述目标匹配模块将输出的匹配结果存储到第一数据缓存器中,所述第二数据缓存器存储动态块检测模块生成的高可能性图像块,所述目标匹配模块读取第二数据缓存器中优化后的高可能性图像块并进行处理。采用第一数据缓存器、第二数据缓存器对中间数据进行存储,可以减少数据从片外到片内带来的额外功耗和通信的带宽需求。

进一步,所述第一数据缓存器、第二数据缓存器采用用于缓存中间数据的分布式片上缓存方式。

进一步,所述均值滤波器包括用于处理视频数据的并行连接的处理单元,所述处理单元并行处理视频数据。均值滤波器采用多个处理单元对视频数据进行并行处理,可以提高计算任务的处理速度,同时降低时延,减少资源消耗。

一种基于fpga的实时目标追踪方法,包括以下步骤:

a、均值滤波器将视频数据划分成图像块并对每一个图像块进行均值计算;

b、运动补偿器接收均值滤波器经过计算后的动态摄像头的视频数据均值,在经过计算后传输到动态块检测模块,同时均值滤波器将计算后的静态摄像头的视频数据均值传输到动态块检测模块;

c、动态块检测模块对视频数据均值进行计算后得到高可能性图像块;

d、建议框搜索模块对高可能性图像块进行调整优化;

e、目标匹配模块根据目标对象模型匹配每一个优化后的高可能性图像块后确定出目标对象的位置和大小。

进一步,所述步骤a中均值滤波器将视频数据划分成图像块并对每一个图像块进行均值计算,均值滤波器模块将视频数据中的每一帧图像均分成大小为s*s的图像块,每一个图像块与相邻的图像块之间都有25%的重叠,并计算每一个图像块的均值,然后根据摄像头类型将视频数据均值选择性的传输到动态块检测模块以及运动补偿器中,其中图像块的大小s*s根据跟踪对象大小进行设置。分成多个图像块有利于后续的检测和匹配。

进一步,所述步骤b中运动补偿器接收均值滤波器经过计算后的动态摄像头的视频数据均值,在经过计算后传输到动态块检测模块,运动补偿器利用arps算法计算运动矢量补偿的视频帧,然后运动补偿器将运动矢量补偿的视频帧传输到动态块检测模块。对于静态摄像头和动态摄像头而言,其数据的流向是不同的,动态摄像头的视频数据均值在传输到动态块检测模块之间需要进行补偿,以便后续能更加准确的分析得到目标对象。

进一步,所述步骤c中动态块检测模块对视频数据均值进行计算并得到高可能性图像块,其中,当动态块检测模块接收到的是静态摄像头的视频数据均值时,把静态摄像头的视频数据均值信息与前一帧的均值信息进行比较后得到高可能性图像块;当动态块检测模块接收到的是运动补偿器传输来的运动矢量补偿的视频帧时,根据前后帧间的图像块的均值的差与预先设定的阀值进行比较后得到高可能性图像块。动态块检测模块处理视频数据后会得到一些高可能性图像块,以便于目标匹配模块进行最后的匹配计算。

进一步,所述步骤d中建议框搜索模块对高可能性图像块进行调整优化,具体步骤为:通过对每个高可能性图像块的对比,对高可能性图像块的大小进行迭代调整,从而优化高可能性图像块的大小。通过建议框搜索模块对高可能性图像块进行优化,以便后续的匹配计算。

进一步,所述步骤e中目标匹配模块根据目标对象模型匹配每一个优化后的高可能性图像块后确定出目标对象的位置和大小,具体步骤为:对高可能性图像块以及目标对象进行建模,计算目标图像模型与所有高可能性图像块的模型之间的l1距离,选出l1距离最小的高可能性图像块,将其作为跟踪对象输出,得到目标对象的位置和大小。由于目标匹配模块是通过建模的方式来得到最终的目标对象的,所以计算的过程相对准确,计算速度快,得到的目标对象也较为准确。

本发明的有益效果是:本发明采用的一种基于fpga的实时目标追踪系统,通过均值滤波器对视频数据进行处理后得到图像块并计算图像块的均值,然后由运动补偿器以及动态块检测模块对视频数据均值进行处理得到高可能性图像块,经建议框搜索模块优化后送入到目标匹配模块中,最后由目标匹配模块进行分析计算后得到最终的目标对象,本发明的系统经过优化,对目标的跟踪计算速度较快,能够快速的得到目标对象;

本发明的一种基于fpga的实时目标追踪方法,首先是均值滤波器将视频数据分成多个图像块,并对每一个图像块进行均值处理,然后根据摄像头的类型将视频数据均值送到不同的模块中,对于动态摄像头的视频数据均值,将其送入到运动补偿器中进行运动矢量补偿的视频帧的计算,然后再将计算得到的运动矢量补偿的视频帧传输到动态块检测模块中进行检测,得到高可能性图像块;而对于静态摄像头,则直接将视频数据均值传输到动态块检测模块进行识别得到高可能性图像块,动态块检测模块将所有的高可能性图像块传输到建议框搜索模块中进行优化,最后由目标匹配模块对优化后的高可能性图像块进行匹配计算即可得到最终的目标对象,本方法优化了整个计算过程,计算的速度较快,对目标的跟踪可以达到实时的效果。

附图说明

下面结合附图和实例对本发明作进一步说明。

图1是本发明一种基于fpga的实时目标追踪系统的结构框图;

图2是本发明一种基于fpga的实时目标追踪系统的硬件架构图;

图3是划分图像块的示意图;

图4是均值滤波器的结构示意图;

图5是本发明的系统应用于目标跟踪时的示意图;

图6是本发明一种基于fpga的实时目标追踪方法的流程框图;

图7为本发明一种基于fpga的实时目标追踪系统的系统架构图。

具体实施方式

参照图1-图5,本发明的一种基于fpga的实时目标追踪系统,均值滤波器1对视频数据中的每一帧进行处理,得到每一帧视频图像的均值,然后将所有帧的视频数据均值存储到第一数据缓存器6中,运动补偿器2读取第一数据缓存器6中的动态摄像头的视频数据均值,对其进行处理后将其传输到动态块检测模块3中,动态块检测模块3也同时读取第一数据缓存器6中的静态摄像头的视频数据均值,动态块检测模块3处理静态摄像头的视频数据均值以及经运动补偿器2处理后的动态摄像头的视频数据,在经过计算以后可以得到高可能性图像块,然后动态块检测模块3将这些高可能性图像块存储到第二数据缓存器7当中,建议框搜索模块4读取第二数据缓存器7当中的数据,对高可能性图像块进行优化处理后将优化后的高可能性图像块存储到第二数据缓存器7中,最后目标匹配模块5读取第二数据缓存器7的数据,对优化后的高可能性图像块建模,将优化后的高可能性图像块的模型与目标对象的模型进行比较计算,从而可以得到目标对象。

均值滤波器1在进行划分操作以及均值计算之前,首先需要平滑图像,可以消除大部分的噪声,从而提高跟踪的成功率,图3为划分图像块的示意图,均值滤波器1将每一帧图像划分成多个大小为s*s图像块,相邻的图像块之间存在25%的重叠,本发明中的均值滤波器1不仅需要滤波器的整体均值,而且需要计算划分的每一个图像块的均值,处理得到的均值将用于动态块检测模块3的检测,用于判定图像块中是否包含目标对象,而图像块大小s将会根据跟踪对象大小l更新,l是从对象匹配过程中获得的。

本发明中的均值滤波器1用于计算图像平滑和图像块的均值,如图4所示为均值滤波器1的结构示意图,均值滤波器1采用4*4的内核计算平均值,因此均值滤波器1有16个相邻的移位寄存器在计算单元中的像素复用,只需要每次加载4个像素;均值滤波器1中的加法树对移位寄存器中的16个值作加法,并将输出和第一均值单元作加法;第二均值单元用于计算图像块均值,可以复用第一均值单元的输出来计算图像块中像素的平均值,然后图像块计算器将控制第二均值单元根据目标大小捕捉第一均值单元的正确输出。

均值滤波器1计算的平均值为16个像素,相比于常规的分频器,这种设计需要的硬件要少,均值滤波器4*4的内核相当于包含了4个处理单元,每一个处理单元都能处理图像块的均值,视频数据传入均值滤波器1中,由均值滤波器1中的4个处理单元并行的处理图像帧处理能提高计算任务的处理速度,降低时延。

本发明中运动补偿器2是用于保证实时跟踪系统能支持动态的摄像头,根据arps算法来计算场景运动的结果,通过运动矢量补偿视频的前一帧,以确保两个连续帧具有相同的场景背景,对于移动摄像头,同样使用了静态摄像头相同的跟踪解决方案。

第一数据缓存器6和第二数据缓存器7为分布式片上缓存,用于缓存目标跟踪算法计算任务的中间结果,本发明中均值滤波器1处理视频数据中的图像帧后,产生的均值数据全部存储到分布式片上缓存中,等待着进入下一处理过程;动态块检测模块3将高可能性图像块存储到片上分布式缓存中,等待下一处理过程的使用,通过分布式片上缓存存储目标跟踪方法计算过程中的中间值,减少了数据从片外到片内带来的额外功耗和通信的带宽需求。

本发明的系统架构设计了高并行性的计算框架和分布式的缓存存储目标跟踪算法计算过程中的中间值,优化了整个计算过程,同时应用了多种并行机制处理跟踪算法内部的不同计算任务,提高计算的效率,减小时延,并且采用分布式片上缓存对中间数据进行存储以降低系统的功耗。

图5为本发明的实时目标跟踪系统应用于目标跟踪时的示意图,包括可编程逻辑门阵列xilinxzc706fpga和上位机,fpga和上位机之间通过接口来连接。

而上位机,包括显示器和外部存储器;外部存储器中存储了视频数据;显示器用于实时显示视频中跟踪的对象。

可编程逻辑门阵列fpga,包括载入控制器和跟踪系统模块;载入控制器用于配置fpga接口与跟踪系统之间的通信,控制fpga接口与跟踪系统之间的通信,控制视频流数据从接口传输到fpga中的跟踪系统模块的传输;跟踪系统模块用于对所述视频图像序列的每一帧图像,提取潜在图像目标区域,对上述区域进行目标匹配,将匹配的目标区域结果送入上位机进行显示;该实时跟踪系统实现的目标跟踪方法的具体步骤为:通过载入控制器的控制指令将视频数据载入实时跟踪系统中;实时跟踪系统先对视频数据中的每一帧进行跟踪处理,即确定目标对象的位置和大小;实时跟踪系统的跟踪结果通过总线传到上位机,并且在上位机中的显示器进行实时显示跟踪结果。

参照图6所示的本发明的一种基于fpga的实时目标跟踪方法,均值滤波器1将视频数据的每一帧分成多个图像块,并计算每一个图像块的均值,然后根据摄像头的类型不同,由运动补偿器2对动态摄像头的视频数据均值进行处理后传输到动态块检测模块3,动态块检测模块3同时也能直接从均值滤波器1中得到静态摄像头的视频数据均值,动态块检测模块3对所接收到的数据进行处理后可得到高可能性图像块,然后由建议框搜索模块4对高可能性图像块进行优化,目标匹配模块5对优化后的高可能性图像块进行最终的匹配计算后可得到目标对象。

在均值计算的时候采用多个处理单元并行计算,整个计算过程中的一些中间数据由分布式片上缓存进行存储,可以降低系统的功耗,同时也可以提高系统的处理速度,最终可达到实时跟踪的目的。

动态块检测模块3可以检测得到高可能性图像块,而动态块检测模块3的检测过程要分成两部分,第一部分是对于静态摄像头的视频数据而言,动态块检测模块3根据均值滤波器1计算出的均值信息与前一帧的均值信息进行比较即可找到高可能性图像块,对于静态摄像头而言,当前帧的均值信息与前一帧的均值信息相差在80%以内时,即可认为当前帧的图像块为目标可能性较高的图像块,即为高可能性图像块;

而对于动态摄像头的视频数据而言,首先由运动补偿器2对视频数据均值进行计算,运动补偿器2根据arps算法计算运动矢量补偿的视频帧,并将计算出的运动矢量补偿的视频帧送入动态块检测模块3,动态块检测模块3根据当前帧各个区域的均值和前一帧各个区域的均值,计算相邻帧各个区域的均值的绝对差值,根据均值的绝对差值,与预先设定的阈值tdiff进行比较,超出阈值的区域,被认为存在目标可能性高的图像块,即得到高可能性图像块;小于阈值的区域,被认为存在目标可能性低的图像块,通过动态块检测模块3的检测可以筛选掉一些目标可能性较低的图像块,减少后续的计算量,在动态块检测模块3检测到高可能性图像块后,将高可能性图像块存储到分布式片上缓存中,等待下一步的处理;

对于预设的阈值tdiff,其计算公式为:

其中,表示第n帧与第n-1帧比较的结果,表示第n帧的第i个图像块,表示第n-1帧的第i个图像块。

本发明设计了专用的目标检测硬件,可以减少一定的计算成本,同时优化了hog算法,优化的hog算法将梯度优化的值计算简化为下式:

g(x,y)=abs(h(x+1,y)–h(x-1,y))+abs(h(x,y+1)–h(x,y-1));实施的方法是:将0°-180°分成6个区域,并对6个区域的线性梯度进行投票,相比于9个区域的方法来说,只会损失很小的精度。

参照图7所示的本发明的一种基于fpga的实时目标追踪系统的系统架构图,跟踪系统中hog的梯度是计算[-1,0,1]的滤波器,每一个梯度滤波器的优化都需要4个像素:h(x+1,y),h(x-1,y),h(x,y+1)和h(x,y-1);该4个像素值可以在三个相邻的图像行来解决的,同时这意味着每一个图像行需要均值滤波器1处理三次。

本发明中采用了数据复用的方式,为了得到最好的数据复用方式,将三行移位寄存器连接成一个全局链,并带有一个串行输入端口,以确保图像的每一行只被读取一次。

如图7所述,四个左侧的移位寄存器r12,r32,r21和r23输出右边的四计算单元的寄存器ry+1,rx-1,ry-1,rx+1,并每个周期移除四个像素。

hog处理单元计算梯度方向直方图数据,生成图像块的hog特征,然后通过计算与目标对象hog模型的l1距离来匹配hog特征,计算后,将l1距离最小的高可能性图像块作为跟踪对象输出,实施目标检测方法的步骤如下:根据目标对象的特征,建立目标对象的hog模型;hog处理单元计算梯度方向直方图数据,生成图像块的hog特征;根据之前建立好的目标模型,计算出两个模型的l1距离;在众多高可能性图像块中,选择出l1距离最小的高可能性图像块,将其作为跟踪对象输出。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1