- 收藏
- 加入书签
基于FPGA的实时目标跟踪系统研究
摘要:本文研究了基于 FPGA 的实时目标跟踪系统,融合Canny 边缘检测、SIFT 算法和卡尔曼滤波算法,针对FPGA 硬件平台的特性进行专门的适配性优化。在Matlab 平台上进行系统功能的仿真验证,并将 算法部署到硬件上测试,通过改进特征点检测、匹配点提纯和卡尔曼滤波等环节,提升了跟踪精度和实时性。系统使用OV5640 图像传感器进行图像采集,FPGA 实现视频处理模块,包括DOG 检测、Canny 边缘 检测、特征描述、匹配和CALMAN 滤波等,通过VGA 最终输出目标追踪结果,并进行实时标注关键词:FPGA;Canny 边缘检测;SIFT 算法;卡尔曼滤波;特征点
0 引言
信息技术的高速发展推动了计算机视觉技术模拟生物视觉功能的研究进程,这一领域已成为学界关注的热点。在现行视频目标跟踪系统中,基于图像序列的处理方法因高精度、经济性与强抗干扰性而广受青睐,已成为主流技术方案。然而,由于算法需从海量视频数据中精准提取目标信息并进行动态分析,导致运算负荷较高、架构复杂度显著,使得系统在跟踪精度与实时响应能力之间难以实现最佳平衡。
随着 DSP(Digital Signal Processor)、ARM(Advanced RISC Machine)、FPGA(Field ProgrammableGate Array)等嵌入式平台的快速发展,开发兼具鲁棒性、高精度和低延迟特性的嵌入式跟踪系统已成为行业迫切需求。各类嵌入式平台在固有特性上存在差异,相较之下,FPGA 凭借其可重构逻辑单元、分布式存储资源和并行计算机制,能够借助流水线处理和硬件并行显著提升算法执行效率,因此成为实时视频处理的主要选择。
现存跟踪系统大多对尺度、旋转变化的目标存在跟踪精度差、实时性差的弊端,本文以 FPGA 为核心,设计了一种高效的目标追踪系统,该系统整合了canny 边缘检测,SIFT 算法和卡尔曼滤波算法,并针对FPGA 进行定制优化,通过Matlab 平台进行仿真实验,并在硬件上实现。
1 目标跟踪算法实现
本研究构建的系统基于特征点和卡尔曼滤波的融合算法,通过DoG 算子从目标视频序列中提取关键特征点,运用Canny 边缘检测优化边缘响应并抑制噪声干扰,接着使用 SIFT 描述子描述与匹配特征点,定位当前帧目标。引入卡尔曼滤波器预测目标在后续帧中的运动轨迹,确定搜索窗口,在该区域内进行下一帧的特征点提取与匹配。
本章讨论了 Canny 边缘检测、SIFT 算法及卡尔曼滤波的原理,依据 FPGA 的特点进行优化设计,同时利用Matlab 平台完成功能仿真验证。
1.1Canny 边缘检测
Canny 算法是边缘检测领域中被广泛应用的标准算法之一,虽然 Canny 算法出现时间较早,但它是边缘检测的一种标准算法,至今仍在众多研究中被广泛使用。
1.1.1 图像降噪
图像去噪在边缘检测预处理环节发挥着关键作用,Canny 边缘检测运用了高斯滤波对图像进行平滑去噪,减少了边缘识别过程中的噪声影响。
一般去噪卷积核中心点的值由周围点像素均值决定,以 3×3 卷积核为例,其中心点坐标取值依赖与自身与周边8 个像素的算术平均值。然而这种基于均值的方法存在一个缺陷,即所有参与计算的像素被赋予相等的权,当卷积核变大时,离中心点最远的点与最近的点占有相同权重,与实际需求明显不符,这时则需要引入高斯核。
二维高斯分布公式如下:

图像平滑性通过σ值衡量,σ值较小时定位错误率低,但信噪比小;较大则定位错误率高,信噪比大。
1.1.2 计算图像的梯度 本文运用Sobel算子对Canny边缘检测进行优化,计算得出梯度幅值和方向。其公式如下所示,其中I 为输入图像,*为卷积运算:


1.2 SIFT 算法 Scale-Invariant Feature Transform(SIFT,尺度不变特征变换)通过提取图像中局部关键点,生成具有尺度和旋转不变性的描述子。SIFT 特征对于旋转和尺度变化的鲁棒性显著,在噪声存在、观测角度和光照条件变化时依然维持较高的稳定性,因此可以在复杂视觉场景下快速可靠地匹配。
1.2.1 提取特征点
(1)构建尺度空间 尺度空间用于描述图像在不同尺度(即不同模糊程度或分辨率)下的表示,通过对图像进行多尺度分析,识别图像中大小不同的结构特征。
一个图像的尺度空间L(x,y,σ)定义为一个变化尺度的高斯函数G(x,y,σ)与原图像的卷积[1]。
L(x,y, σ)=G(x,y, σ)*I(x,y)(1-5)
其中,(x,y)代表图像像素的位置,为尺度空间因子,值越小表示图像被平滑的越少,相应的尺度就越小。(2)检测图像局部极值点 在 DOG 空间内进行局部极值检测时,对每个采样点与其对应图像中的26 个邻近像素比较,判断该点是否为极值,如是,则认为该点为在该尺度下图像的一个关键点。(3)关键点定位 DoG 算子边缘响应显著,因此需运用二阶偏导数矩阵(Hessian 矩阵)的特征值去除边缘响应点,提取稳定的极值点。
Hessian 矩阵:

(4) 确定关键点主方向 利用图像局部的梯度方向,给各关键点位置分配一个或多个方向,使得特征点获得旋转不变性。在关键点邻域内,逐一计算像素的梯度幅值和方向:


得出了尺度、位置、方向的极值点则为SIFT 的特征点。
1.2.2 特征描述子的生成 每一个关键点不仅拥有位置,还拥有尺度和方向。特征描述子以一组特定向量表示该点,此向量对所有平移、缩放及旋转操作保持不变。
1.2.3 特征匹配 完成关键点提取后,将欧式距离作为特征点相似性的度量,关联不同图像。欧式距离的定义式:

1.3 算法改进及其优化 本文设计了一种基于特征点和卡尔曼滤波的跟踪算法。在特征提取的阶段,采用DoG 算子和Canny 算子进行特征点检测,实现关键点的精确定位。在特征匹配环节,通过方向约束与位移距离众数统计分析提纯匹配点,消除错误对应关系。
(1)特征点检测改进。针对视频序列的帧间尺度变换幅度有限的特点,本研究提出了一种改进型SIFT算法,采用单组四层架构,该结构只对 256×256 输入图像施加四种不同尺度的离散高斯卷积核,利用差分运算生成三组 DoG 响应图来进行极值检测。为克服 DoG 算子较强的边缘性响应[3],本研究利用Canny 算子优异的边缘检测性能,去除落在 Canny 边缘上的 DoG 极值点,减少边缘响应。
(2)匹配点提纯改进,本文融合方向约束和寻找偏移距离众数这两种方式提纯匹配点。视频图像中目标主运动方向和特征点运动方向相同,因此匹配点对的主方向差近似 137[4],本系统利用这一特点,对匹配点对的主方向差进行统计,将峰值的匹配点对作为误配点剔除。
(3)卡尔曼滤波改进,因视频中图像仅限二维空间内运动[5],故本系统仅用 x,y 方向的卡尔曼滤波器匹配特征点位置及对其偏移距离分别滤波,而下一帧的目标预测值则为两个方向滤波结果的结合。
1.5 算法仿真结果 本章节利用Matlab 平台,对SIFT 算法及其改进算法、卡尔曼滤波算法进行特征点的检测与仿真的匹配,收集了相应的实验数据。下图是采用改进算法进行特征点匹配的结果,该表列出了图中特征点及匹配点数目。

2 基于FPGA 的硬件系统实现
2.1 Vivado 开发环境 Vivado 开发环境是由 Xilinx 推出的集成化 FPGA/SoC 设计套件,专注于针对基于 FPGA、Zynq SoC 以及 Versal ACAP 硬件平台的架构设计。其核心功能涵盖逻辑设计、综合、仿真、布局布线、调试与比特流生成,支持从RTL(寄存器传输级)到硬件部署的全流程开发。Vivado集成了高层次综合(HLS)工具,可将 C/C++代码直接转换为硬件描述语言(HDL),并内置IP Integrator模块化设计平台,支持快速集成Xilinx IP 核及自定义 IP。开发环境提供硬件调试工具(如ILA 逻辑分析仪)和功耗分析功能,适配复杂时序约束与跨时钟域设计。该技术作为定制化硬件开发的优选方案,常被用于通信、AI 加速、图像处理与嵌入式系统,尤其适合需要高性能、低延迟的定制化硬件开发。
2.2 系统实现
2.2.1 图像采集模块 图像采集模块采用 OV5640 图像传感器,OV5640 是 OmniVision 推出的 500万像素 CMOS 图像传感器,采用 1/4 英寸光学格式和 1.4um 大像素设计,支持 2592×1944 分辨率及1080p@30fps、720p(@1-610)fps 视频输出,通过 MIPI CSI-2/DVP 接口兼容多种主控平台,支持输出的图像格式为 RGB565 等。
在使用OV5640 时,需要将其上电初始化,而后使用 I2C 总线对寄存器参数进行配置初始化,当经过两步初始化后就可以进行图像采集工作。I2C 总线作为一种双向二进制串行通信协议,仅需通过 SDA数据线与 SCL 时钟线即可高效地实现设备间总线数据交换。
2.2.2 视频处理模块 本研究旨在将目标跟踪算法高效部署于 FPGA 硬件平台,整个算法的硬件逻辑实现包括 DoG 极值点检测、Canny 边缘检测、特征描述、特征匹配、卡尔曼滤波等模块。
1.多尺度DoG 检测模块。采用四级高斯金字塔结构实现跨尺度特征提取,每级配置独立双口 BRAM存储滤波系数。通过对称系数分布特性优化存储结构,将 5×5 高斯核分解为水平/垂直双路卷积,复用乘法器资源达 65% 。极值检测单元创新设计三维滑动窗口比较器,在相邻尺度间建立跨层数据通道,支持同时比较26 邻域。
2.三维梯度 Canny 模块。构建像素-梯度-方向三维处理流水线,其中梯度计算单元集成改进型Sobel算子,通过预计算梯度模板实现零乘法器设计。边缘细化阶段采用形态学滤波辅助非极大值抑制,设计8 向角度判决电路实现亚像素级边缘定位。
3.特征描述模块。特征描述子生成器采用分块并行处理策略。方向估计单元集成两级CORDIC 处理器,首级计算特征点主方向,次级实现局部坐标系旋转。强度比较单元部署256 组可配置点对。通过比较路径复用将BRAM 访问次数降低 40% 。为增强旋转不变性,在描述子生成阶段嵌入空间金字塔结构,将 32×32 区域划分为4 个16×16 子块分别编码。
4.特征匹配模块。特征描述子计算完毕后,需要借助匹配技术获得最优匹配点对的偏移距离。特征匹配过程可划分为三个阶段:初始特征匹配、匹配点对优化以及最佳匹配对筛选。其中,特征点匹配是采用距离作为相似性度量;特征点匹配可能出现误差,造成误配,本文使用方向一致性约束消除误配点;选择最优匹配点对时,根据偏移距离的出现频率,选择偏移距离的众数(即出现次数最多的偏移距离)输入卡尔曼滤波模块进行处理。
5. 卡尔曼滤波模块。卡尔曼滤波模块根据匹配模块输出的最优匹配点对坐标以及最优偏移距离,计算出当前帧中跟踪窗口的中心坐标,基于这些数据对 口中心位置进行预测,从而缩小搜索范围,减小运算量。分析卡尔曼滤波的过程可知, 包括状态预测模块、误差协方差预测模块、卡尔曼增益计算模块、状态修正模块、误差协方差修正模块。对于卡尔曼滤波而言,滤波过程对数据的精度要求较高,本文系统采用单精度浮点数进行卡尔曼滤波,因此在输入输出时,还要进行浮点定点的转换。
2.2.3 视频输出模块 本模块实现 VGA 时序控制与目标实时标注功能。通过硬件加速流水线,将目标跟踪算法生成的位置坐标与原始视频流融合,实现像素级精准叠加。模块采用双缓冲机制,在垂直消隐期同步更新目标坐标,避免画面撕裂;通过并行坐标检测电路,实时比对当前像素位置与目标边界范围,以可配置颜色红色标记目标轮廓,边界框精度达±1 像素。
2.3 结果分析 实验图像表明,融合特征点检测与卡尔曼滤波的复合跟踪算法对快速移动的目标人物保持良好的跟踪效果,证实其在动态目标跟踪场景下具备显著的环境适应能力和抗干扰鲁棒性。

3 总结
本文旨在解决传统目标跟踪系统在处理高速运动目标时精度与实时性不足的问题。系统采用 Canny边缘检测算法筛选特征点,融合SIFT 算法进行特征描述与匹配,并引入卡尔曼滤波器预测目标运动轨迹。针对FPGA 特性,对算法进行并行化优化设计,显著提升了系统整体的处理效率。实验中,通过Matlab 仿真验证了改进算法的有效性,并在硬件平台上完成演示。结果表明,改进后的系统在特征点检测精度、匹配稳定性以及实时性方面均有显著提升,能够有效应对尺度变化、旋转变化等复杂场景。
参考文献
[1] Koenderink JJ.The structure of images[J].Biological cybernetics,1984,50(5):363-370.
[2] 王建东,王亚飞,张晶.基于卡尔曼滤波器的运动目标跟踪算法[J].数字通信,2009,06:53-57.
[3] 李根.基于局部特征和进化算法的人脸识别[D].吉林大学,2014.
[4] 曾峦,王元钦,谭久彬.改进的 SIFT 特征提取和匹配算法[J].光学精密工程,2011,06:1391-1397
[5] 冯安祥,肖阳辉,王玉良,粟霄峰.基于 FPGA 的目标运动预测实时 kalman 滤波器设计[J].电子技术用,2008,07:49-51.
基金资助:江苏省大学生创新创业训练计划项目,项目编号:202413984029Y
作者简介:许馨文(2004-),女,江苏省南通市人。学生,大学本科在读。
通讯作者:陆平(1991-),男,江苏省苏州市人,硕士,工学院讲师,研究方向为集成电路和图像处理;
京公网安备 11011302003690号