59、快速准确跟踪移动物体的启发式算法

快速准确跟踪移动物体的启发式算法

在计算机视觉领域,对移动物体进行快速准确的跟踪是一个重要的研究方向。本文将详细介绍一种用于快速准确跟踪移动物体的启发式算法,包括模板位置更新、启发式搜索算法、模板更新方法以及实验结果等方面。

模板位置更新

当计算出目标的新位置后,需要更新模板以反映其形状的变化。由于模板匹配位置问题主要确定连续帧之间的平移运动,所有非平移变换都被视为物体二维形状的变化。连续帧之间新的二维形状变化通过计算 $G_{max}(T_k)$(表示模板 $T_k$ 经平移 $G_{max}$ 后的点集)与步骤时间 $k$ 时的输入图像 $I_k$ 之间的差异来衡量,误差范围为 $\delta$。新模板 $T_{k+1}$ 由输入图像 $I_k$ 中与 $G_{max}(T_k)$ 中某些点距离在 $\delta$ 范围内的所有点表示,表达式如下:
$$
\sum_{i \in I, |i - G_{max}(T_k)| < \delta} = T_{k+1}
$$

模板位置匹配的启发式搜索算法

在启发式搜索框架下解决问题,采用基于状态空间的表示方法。可能的问题情况被视为一组状态,起始状态对应问题的初始情况,最终状态(目标状态)对应问题的解决方案,状态之间的转换通过操作符实现。以下是问题的各个元素:
- 状态 :每个状态 $n$ 与变换空间 $G(.)$ 的子集 $G_k$ 相关联,由对应于部分变换集中心的变换 $G_c$ 表示。
- 初始状态 :由有界的平移变换集表示,用于匹配当前场景中当前模板的位置。
- 最终状态 :根据 $Q(G)$,是与当前场景中当前模板最佳匹配的变换。变换 $G$ 的匹配质量函数用变换后模板 $T$ 与当前图像 $I$ 之间的部分有向豪斯多夫距离表示:
$$
Q(G) = h_k(G(T), I) < \varepsilon
$$
其中参数 $k$ 表示根据表达式 10 选择的第 $k$ 个四分位数,$\varepsilon$ 表示 $G(T)$ 中的每个点必须与 $I$ 中的某些点距离在 $\varepsilon$ 范围内。
- 操作符 :是将一个状态转换为另一个状态的功能元素。对于每个当前状态 $n$,计算操作符 $A$ 和 $B$:
- 函数 A :通过垂直和水平二分将当前状态划分为四个区域,即四个新状态。
- 函数 B :为生成的每个新状态计算匹配质量函数(方程 4),记为 $h_k(G_c(T), I)$,其中 $G_c(T)$ 表示模板点通过相应状态的中心平移进行的变换。

将每个当前状态划分为四个新状态,使得搜索树呈现四叉树结构,每个节点与一个 $2i \times 2j$ 区域相关联。当四等分过程根据匹配质量函数 $Q(G)$ 计算出平移运动,或者与不同节点相关联的所有区域都被划分为单位大小的单元格时,划分操作结束。使用 A 方法计算每个树级别 $l$ 中从这些单元格扩展的最佳节点,每个状态 $n$ 的对应值定义为:
$$
f(n) = c(n) + h^
(n)
$$
其中 $c(n)$ 是从初始节点 $n_0$ 到当前节点 $n$ 的路径估计成本,$h^*(n)$ 是从节点 $n$ 到目标的路径成本的启发式估计。

启发式评估函数 $h^*(n)$ 和估计成本函数 $c(n)$

启发式值 $h^*(n)$ 通过评估从当前状态 $n$ 可达到的最佳解决方案的质量来估计。最佳状态的期望通过测量分别表征当前状态和目标状态的分布函数 $P$ 和 $Q$ 之间的相似度来估计。这两个函数的定义基于目标变换 $G_{max}$ 的匹配质量函数。由于匹配质量函数由部分有向豪斯多夫距离表示,分布函数 $P$ 可以通过距离直方图 ${H_{Gc}^i} {i=1}^r$ 近似,该直方图包含当当前状态 $n$ 的变换 $G_c$ 应用于模板 $T$ 时,模板点 $T$ 与图像 $I$ 中各点距离为 $d_j$ 的数量。分布函数 $Q$ 可以通过将 ${H {Gc}^i} {i=1}^r$ 近似为指数分布函数 $f(n) = ke^{-an}$ 来建模,当变换 $G {max}$ 对应于变换 $G_c$ 时,该函数表示距离值 $d_j$ 接近零且小于误差范围 $\varepsilon$ 的数量最多。

给定分布函数 $P$ 和 $Q$,设 $R$ 为模板点的数量,两个分布之间的 Kullback-Leibler 距离(KLD)定义为:
$$
D(P || Q) = \sum_{i=1}^R p_i \log \frac{p_i}{q_i}
$$
根据相关理论,$D(P || Q)$ 具有两个重要性质:(1)$D(P || Q) \geq 0$;(2)$D(P || Q) = 0$ 当且仅当 $P = Q$。这表明当模板点与输入图像点不匹配时,KLD 值为非零正数;当模板点与输入图像点匹配时,KLD 值等于或接近零。

为了在启发式函数引导搜索过程走向无前景解决方案时实现回溯过程,将估计成本函数 $c(n)$ 添加到 $f(n)$ 函数中。这个深度项基于从初始状态到当前状态 $n$ 应用的 $A$ 类型操作符的数量。

初始状态计算

通过将 $\alpha - \beta$ 预测滤波融入搜索算法来计算 $G(.)$ 的初始维度 $M \times N$。滤波方法估计的参数由包围目标形状的边界框的二维对角坐标表示,用四维向量 $[\theta_1, \theta_2, \theta_3, \theta_4]^T$ 表示。位置和速度向量联合表示为状态向量 $[x, \dot{\theta}, \theta]^T$。使用恒定速度模型进行状态向量估计的公式为:
$$
\hat{x}(k + 1) = \begin{bmatrix} \hat{x}(k) \ \hat{\dot{\theta}}(k) \end{bmatrix} + \begin{bmatrix} \Delta T & 0 \ 0 & 1 \end{bmatrix} \begin{bmatrix} \alpha v(k) \ \beta v(k) \end{bmatrix}
$$
其中 $v(k)$ 表示时间步 $k - 1$ 时的预测值与当前测量值 $z(k)$ 之间的残差误差。为了计算 $G(.)$ 的维度,设计了一个基于此不确定性测量的决策规则,考虑两个主要标准:
1. 残差因子的小值表示其估计的不确定性较低,因此 $G(.)$ 的尺寸较小。
2. $M \times N$ 的定义必须是 $2^p \times 2^q$ 值,以确保在最后一次四等分操作后,$G(.)$ 的每个终端单元格将包含单个变换。

基于这些要求,$G(.)$ 的维度 $M \times N$ 计算如下:
$$
M = \begin{cases}
M_{min} + 2^{\omega}, & v(k) > \omega \
M_{min} + 2, & v(k) \leq \omega
\end{cases}
$$
$$
N = \begin{cases}
N_{min} + 2^{\omega}, & v(k) > \omega \
N_{min} + 2, & v(k) \leq \omega
\end{cases}
$$
其中 $v(k)$ 表示残差误差,$2_{min}$ 和 $2_{max}$ 表示与 $v(k)$ 最接近的值,$\omega$ 根据表达式 $\omega = \varphi(2_{max} - 2_{min})/2$ 计算,$\varphi$ 权衡 $2_{min}$ 和 $2_{max}$ 之间差异的影响。

以下是计算模板运动的启发式算法流程:

graph TD
    A[输入:G(.), ε, D(P || Q), η] --> B[计算 G(.) 的 MxN 维度]
    B --> C[找到满足 Q(G) < ε 的 Gmax]
    C --> D{Q(G) > ε?}
    D -- 是 --> E[将当前状态 n 拆分为四个新状态]
    E --> F[为每个新状态计算 Q(Gc)]
    F --> G[根据评估函数 f(n) 扩展最佳状态]
    G --> H[计算 h*(n) = D(P || Q)]
    H --> I[更新 c(n) = c(n) - 1 + η]
    I --> D
    D -- 否 --> J[结束]
模板更新方法

新模板仅在目标对象显著演变为新形状时更新。由于启发式搜索仅计算二维运动分量,当前模板 $T$ 与输入图像 $I$ 之间的最佳匹配通过匹配质量函数的误差范围 $\varepsilon$ 表示。较小的误差范围 $\varepsilon$ 表示目标按平移运动,而较大的误差范围 $\varepsilon$ 表示目标对象已演变为新形状。为了检测明显的形状变化,通过分析代表可变形和刚性对象的不同处理序列图像,定义 $\varepsilon$ 的最小和最大边界。设 $\varepsilon_{min}$ 为不表示形状变化的最小距离值,$\varepsilon_{max}$ 为可接受匹配的最大距离值。因此,所有在 $\varepsilon_{min} \leq Q(G) \leq \varepsilon_{max}$ 范围内计算的解决方案值将表示二维形状变化。

同时,在某些情况下,目标可能会显示当前模板未表示的先前视图。通过短期记忆子系统(STMS)恢复先前视图,STMS 中的不同模板应由对象最常见的视图表示。为了最小化冗余,采用动态方法解决存储哪些代表性模板的问题,当视觉记忆容量达到上限且需要插入新模板时,移除最不独特的模板。为了确定每个模板的权重,引入相关性指数,定义如下:
$$
R(k, T_i) = T_p(i) - T_s(i) + 1
$$
其中 $k$ 表示时间步,$i$ 对应模板的识别符号,$T_p(i)$ 表示第 $i$ 个模板的持久参数,即作为当前模板的使用频率,$T_s(i)$ 表示过时参数,即自上次作为当前模板使用以来的时间。当当前模板 $T$ 与输入图像 $I$ 之间的 $Q(G_{max})$ 值在 $\varepsilon_{min}$ 到 $\varepsilon_{max}$ 之间时,将新模板插入 STMS;当模板栈已满且需要添加新模板时,移除相关性指数最小的模板并插入新模板。

模板更新算法

根据 $Q(G_{max})$ 的值,每个模板 $T_k$ 按照以下启发式算法的步骤更新为 $T_{k+1}$:
1. 步骤 1 :如果 $Q(G_{max}) \leq \varepsilon_{max}$,时间步 $k + 1$ 的新模板 $T_{k+1}$ 等同于 $T_k$ 在 $I$ 中的最佳匹配。即输入图像 $I$ 中与最佳匹配 $G_{max}(T_k)$ 的某些边缘点直接重叠的边缘点表示新模板 $T_{k+1}$:
$$
T_{k+1} = {i \in I, |i - G_{max}(T_k)| = 0}
$$
2. 步骤 2 :如果当前模板 $T_k$ 无法以小于或等于 $\varepsilon_{min}$ 的距离值匹配目标对象,而 STMS 中的某个模板计算出最佳匹配($Q(G_{max}) > \varepsilon_{min}$),则选择该 STMS 模板作为新模板 $T_{k+1}$。否则,通过部分有向豪斯多夫距离测量将形状变化纳入当前模板 $T_k$ 进行更新。
3. 步骤 3 :如果使用当前模板 $T_k$ 和 STMS 中的所有模板计算出的最佳匹配都大于误差范围 $\varepsilon_{max}$,则不更新模板:
$$
T_{k+1} = \varnothing, \text{ if } Q(G_{max}, T_k, I) \geq \varepsilon_{max} \text{ and } Q(G_{max}, T_{STMS}^i, I) \geq \varepsilon_{max}
$$

实验与结果

进行了 24 种不同序列的实验,平均每个序列包含 800 帧,涉及可变形和刚性对象,在 P-IV 3.0 GHz 上实现了相同的性能。特别展示了室内和室外视频流,如“People”(855 帧)和“Motorcycle”(414 帧)。每帧的平均大小为 280x200 像素,模板的平均大小为 170x149 像素。第一个参考模板从最初两帧中表现出连贯运动的图像区域计算得出。评估的初始状态包括:
1. 固定搜索区域(A1) :64x64 像素的二维平移集,范围从 (-32, -32) 到 (32, 32)。
2. 带运动预测的固定搜索区域(A2) :从预测目标位置计算得出的 64x64 像素的二维平移集。
3. 可调搜索区域(A3) :每个初始状态的维度根据上述表达式计算。

目标状态定义为平移 $G$,使得 80%(参数 $k = 0.8$)的模板点与 $I$ 的最大距离为 2 像素($\varepsilon = 2.0$)。启发式阈值 $\varepsilon_{min}$、$\varepsilon_{max}$ 和 $\delta$ 分别设置为 2、10 和 8,STMS 的维度设置为 6。

序列 帧数 更新次数 STMS 中存储的不同模板数量 使用的 STMS 模板数量 使用 STMS 找回目标的帧数
People 855 430 84 16 10
Motorcycle 414 196 10 3 5

通过比较不同初始搜索状态计算方法的性能,发现将滤波方法融入搜索算法可显著减少要探索的节点数量和时间成本。同时,与基于连续更新的模板更新方法相比,本文提出的仅在目标演变为新形状时更新模板并使用短期记忆的方法,可最小化所需的更新次数,降低漂移风险。使用通用硬件处理 24 个序列的每帧平均时间为 0.028 秒,低于实时要求。

综上所述,本文提出的用于计算形状运动的启发式搜索比以前的搜索策略平均快三倍,动态更新模板可最小化漂移风险。然而,在目标在时空域中出现消失和重新出现的情况下,可能会出现由稀疏边缘点表示且无法匹配的视图,此时需要使用颜色线索以避免丢失目标。

快速准确跟踪移动物体的启发式算法

实验分析

在实验部分,研究者使用了多种不同的视频序列进行测试,涵盖了可变形和刚性物体,以全面评估算法的性能。以下是对实验结果的详细分析:

初始搜索状态计算性能

为了衡量不同初始搜索状态计算方法的性能,研究者记录了需要探索的节点数量和处理每个序列所需的时间。实验结果如图所示:

Computation of initial search state

从图中可以清晰地看出,将滤波方法融入搜索算法(如可调搜索区域 A3),能够显著减少需要探索的节点数量和时间成本。这是因为滤波方法可以根据目标的运动情况,动态调整搜索区域的大小,从而提高搜索效率。

模板更新算法的鲁棒性

为了评估模板更新算法的鲁棒性,研究者对比了两种方法:一种是本文提出的仅在目标演变为新形状时更新模板并使用短期记忆的方法;另一种是基于连续更新的模板更新方法。实验结果如下表所示:

序列 帧数 更新次数 STMS 中存储的不同模板数量 使用的 STMS 模板数量 使用 STMS 找回目标的帧数
People 855 430 84 16 10
Motorcycle 414 196 10 3 5

从表中可以看出,本文提出的方法显著减少了所需的更新次数,从而降低了漂移风险。在实验中,使用本文方法没有出现目标漂移的情况,而连续更新方法则出现了模板漂移。此外,当当前模板无法反映下一帧中的目标对象时,STMS 中的模板能够发挥作用,帮助找回目标。这对应于当前帧边缘检测过程的不精确误差,以及目标在视频流中消失和重新出现的情况。

平均运行时间

为了评估算法的实时性能,研究者计算了处理每个帧的平均运行时间。使用通用硬件处理 24 个序列的每帧平均时间为 0.028 秒,低于实时要求。这表明该算法在实际应用中具有较好的实时性能。

关键技术点总结
  • 模板位置更新 :通过计算新的二维形状变化,更新模板以反映目标形状的变化。
  • 启发式搜索算法 :采用基于状态空间的表示方法,通过操作符实现状态之间的转换,使用 A* 方法计算最佳节点。
  • 启发式评估函数和估计成本函数 :通过评估最佳解决方案的质量和测量分布函数之间的相似度,估计启发式值和路径成本。
  • 初始状态计算 :使用 $\alpha - \beta$ 预测滤波计算初始搜索区域的维度,根据残差误差动态调整搜索区域的大小。
  • 模板更新方法 :仅在目标显著演变为新形状时更新模板,使用短期记忆子系统恢复先前视图,通过相关性指数确定模板的权重。
操作步骤总结
模板位置匹配的启发式搜索算法操作步骤
  1. 输入初始搜索区域 $G(.)$、距离误差范围 $\varepsilon$、Kullback-Leibler 距离 $D(P || Q)$ 和操作符 $A$ 的应用次数 $\eta$。
  2. 计算 $G(.)$ 的 $M \times N$ 维度。
  3. 找到满足 $Q(G) < \varepsilon$ 的 $G_{max}$。
  4. 如果 $Q(G) > \varepsilon$,执行以下操作:
    • 将当前状态 $n$ 拆分为四个新状态。
    • 为每个新状态计算匹配质量函数 $Q(G_c)$。
    • 根据评估函数 $f(n)$ 扩展最佳状态。
    • 计算启发式值 $h^*(n) = D(P || Q)$。
    • 更新估计成本函数 $c(n) = c(n) - 1 + \eta$。
    • 重复步骤 4。
  5. 如果 $Q(G) \leq \varepsilon$,结束搜索。
模板更新算法操作步骤
  1. 根据 $Q(G_{max})$ 的值,判断是否需要更新模板:
    • 如果 $Q(G_{max}) \leq \varepsilon_{max}$,新模板 $T_{k+1}$ 等同于 $T_k$ 在 $I$ 中的最佳匹配。
    • 如果 $Q(G_{max}) > \varepsilon_{min}$ 且 STMS 中的某个模板计算出最佳匹配,选择该 STMS 模板作为新模板 $T_{k+1}$。
    • 如果 $Q(G_{max}) > \varepsilon_{max}$,不更新模板。
  2. 如果需要更新模板,根据相关性指数移除最不独特的模板,并插入新模板。
总结与展望

本文提出的用于快速准确跟踪移动物体的启发式算法,在实验中表现出了良好的性能。启发式搜索比以前的搜索策略平均快三倍,动态更新模板可最小化漂移风险。然而,该算法仍然存在一些局限性。在目标在时空域中出现消失和重新出现的情况下,可能会出现由稀疏边缘点表示且无法匹配的视图,此时需要使用颜色线索以避免丢失目标。

未来的研究可以进一步探索如何更好地利用颜色线索,提高算法在复杂场景下的鲁棒性。此外,可以考虑将该算法与其他先进的计算机视觉技术相结合,如深度学习方法,以进一步提高跟踪的准确性和效率。

以下是整个算法流程的 mermaid 流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(模板位置更新):::process
    B --> C(模板位置匹配的启发式搜索算法):::process
    C --> D{是否找到最佳匹配?}:::decision
    D -- 是 --> E(模板更新判断):::process
    D -- 否 --> C
    E --> F{是否需要更新模板?}:::decision
    F -- 是 --> G(模板更新操作):::process
    F -- 否 --> H(继续跟踪):::process
    G --> H
    H --> I{是否结束跟踪?}:::decision
    I -- 否 --> B
    I -- 是 --> J([结束]):::startend

这个流程图展示了整个跟踪过程的主要步骤,包括模板位置更新、启发式搜索、模板更新判断和跟踪结束判断等。通过这个流程图,可以更清晰地理解算法的整体工作流程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值