- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我读了一些关于用于 CV 对象跟踪的卡尔曼滤波器的著作,但我找不到关于选择的一些引用:1)过程噪声协方差 Q; 2)测量噪声协方差R。到目前为止,我已经意识到该模型是运动方程(有人使用加速度作为状态变量,其他人仅使用位置和速度)但没有人清楚Q和R的选择,包括mathworks的这个例子:http://www.mathworks.it/it/help/vision/examples/using-kalman-filter-for-object-tracking.html最近我发现这个页面: http://blog.cordiner.net/2011/05/03/object-tracking-using-a-kalman-filter-matlab/但 Q 和 R 分配不明确。请知道的人帮助我吗?
最佳答案
R 是测量噪声的协方差矩阵,假定为高斯矩阵。在视频中跟踪对象的上下文中,这意味着您的检测错误。假设您正在使用人脸检测器来检测人脸,然后您想使用卡尔曼滤波器来跟踪它们。你运行检测器,你得到每张脸的边界框,然后你使用卡尔曼滤波器来跟踪每个框的质心。 R 矩阵必须描述您对质心位置的不确定性。所以在这种情况下,对于 x,y 坐标,R 的相应对角线值应该是几个像素。如果您的状态包括速度,那么您需要猜测速度测量的不确定性,并将单位考虑在内。如果您的位置以像素为单位,速度以每帧像素为单位,那么 R 的对角线条目必须反射(reflect)这一点。
Q 是过程噪声的协方差。简单地说,Q 指定了对象的实际运动与您假定的运动模型的偏差程度。如果您在道路上跟踪汽车,那么恒速模型应该相当不错,并且 Q 的条目应该很小。如果您要跟踪人脸,他们不太可能以恒定速度移动,因此您需要调高 Q。同样,您需要了解表示状态变量的单位。
这就是直觉。在实践中,您从 R 和 Q 的一些合理初始猜测开始,然后通过实验调整它们。所以设置 R 和 Q 是一门艺术。此外,在大多数情况下,对 R 和 Q 使用对角矩阵就足够了。
这是一个 example在 Matalb 中使用 vision.KalmanFilter
来跟踪多人。
关于matlab - 计算机视觉中的卡尔曼滤波器 : the choice of Q and R noise covariances,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245167/
来自 here : bool shouldReclip(covariant CustomClipper oldClipper); AFAIK,关键字covariant 用于重写一个方法,明确告诉分析器
假设我有这两个类 class BaseClass { protected HashSet container; } class DerivedClass : BaseClass { D
问题 我想实现一些算法,这些算法在图上运行并返回节点对的分数,指示这些节点是否相似。这些算法应该适用于单个节点对和所有可能的节点对。在后一种情况下,应返回一个集合/矩阵。 我的方法 算法源自 clas
我刚刚遇到一个关于泛型和协变的有趣问题,长话短说,我花了 30 分钟尝试声明一个类型,直到我放弃。 为了清楚起见:我已经有了解决方法,目前不需要我的项目帮助。我之所以问这个问题是因为我是异常复杂的泛型
我有这样一个类: public class MyClass{ private MyTape data; private List someOtherdata; } 我正在尝试在 And
今天,我深入探讨了Liskov的替代原理和协方差/协方差。 而且我陷入了两者之间的差异: T = TypeVar("T", bound=Union[A, B]) T = TypeVar("T", A,
我正在尝试使用Ceres编写BA优化器,并希望为优化结果计算协方差。但是该程序停留在covariance.Compute(covariance_blocks, &problem)上,似乎永远不会停止计
我正在编写一个名为 Factory 的通用工厂类 //abstract factory template class Factory{ public: virtual C*
当我们有两个结构,并且一个可以隐式转换为另一个时,它看起来像 System.Nullable<>两者的版本也可以隐式转换。就像,如果结构 A隐式转换为 struct B , 然后 A?转换为 B? 这
我正在阅读 Jon Skeet 的《深入了解 C#》。虽然我已经理解了 CoVariance 和 ContraVariance 的概念,但是我无法理解这一行: Well, covariance is
我正在读《深入Scala》第一节,第一节中有两句话是关于“协方差”和“逆变”的: Covariance (+T or ? extends T) is when a type can be coerce
我正在尝试创建一个二叉树类 Tree和二叉搜索树类 BST它继承自 Tree ,以及 iterator每个嵌套类,其中 BST::iterator继承自 Tree::iterator . 现在,问题是
我通过继承创建了两个简单的类,并在子类中添加了一个虚函数和覆盖。 class Parent { public: virtual Parent foo(); }; class Child : p
我有一个非常复杂的类层次结构,其中的类是相互依赖的交叉类:有两个抽象类 A 和 C,它们分别包含一个返回 C 和 A 实例的方法。在他们继承的类中,我想使用协变类型,在这种情况下这是一个问题,因为我不
我试图写一个不可变的 Matrix[A]类(class)。我希望该类在 A 上是协变的但是当我把 +前面A编译器开始提示类中的某些操作。 以下是我的 Matrix 的相关子集类(实际类比以下子集大 5
我读了一些关于用于 CV 对象跟踪的卡尔曼滤波器的著作,但我找不到关于选择的一些引用:1)过程噪声协方差 Q; 2)测量噪声协方差R。到目前为止,我已经意识到该模型是运动方程(有人使用加速度作为状态变
我有以下表示数值数组的类 class Array { protected : double *data; // this will hold the data of the array
我有以下情况: 我指定一个纯虚函数: 虚拟 PredictedMatch PredictMatch(const Match &match) const = 0; 我还有: 类 ImpactPredic
我试图从网上的几篇文章和 StackOverflow 上的问题中找出 Covariance 和 Contravariance 这两个词的确切含义,据我所知,这只是多态性的另一种说法。 我上面的说法正确
新 Guava 10 Optional 状态是自然协变的,因此可以强制转换。 如果我尝试,它看起来有点难看: Optional opti = Optional.of(42); Optional op
我是一名优秀的程序员,十分优秀!