OpenVX 中的目标跟踪技术详解
1. 跟踪基础与特征处理
在目标跟踪过程中,准确记录边界框的位置和大小至关重要。我们可以通过记录边界框角点的原始位置、质心和扩展范围,来重新计算相对大小和归一化位移。然而,由于遮挡、旋转、噪声或物体移出视野等原因,跟踪的特征可能会消失。当跟踪的特征数量减少时,新计算的边界框位置和大小的值可靠性会降低。
为了应对这种情况,我们需要设定跟踪特征数量的最小绝对值或相对值。当特征数量低于该值,或者在任一维度上扩展范围变为零时,可采取以下措施:
- 再次运行角点检测,使用与初始相同的参数,以纠正因噪声或临时部分遮挡而丢失的点。
- 重新运行原始的目标检测算法,即重启整个跟踪过程。
如果再次运行角点检测,需要将结果与之前跟踪器估计的结果进行比较。若扩展范围或位置差异较大,可能需要再次运行目标检测。同时,用于跟踪的特征(角点)必须定义明确且数量充足。例如,若仅选择四个特征,其中一个因瞬态镜面反射消失,可能会显著影响扩展范围和质心的测量。
2. 处理质心跟踪的用户节点
OpenVX 本身不支持质心跟踪,我们可以在图外处理,也可以定义一个或多个用户节点进行计算。以下是相关的 API 定义:
typedef struct {
vx_rectangle_t bounding_box; // 最后计算的对象边界框
vx_coordinates2df_t bb_centroid; // 原始边界框质心
vx_coordinates2df_t bb_std_dev; // 原始边界框标准差
vx_co
超级会员免费看
订阅专栏 解锁全文
28

被折叠的 条评论
为什么被折叠?



