您的位置:首页 > 编程语言 > Go语言

Google VR开发-Cardboard VR SDK头部追踪实现(隐马尔可夫模型)

2017-08-02 14:01 411 查看
隐马尔可夫模型是理解卡尔曼滤波的基础。这里只单纯记录一下对这个模型的理解,实际这部分只需要看维基百科就可以了。

维基百科:
https://zh.wikipedia.org/wiki/%E9%9A%90%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E6%A8%A1%E5%9E%8B
1.
其中{\displaystyle x(t)}

我们称为隐藏变数(hidden
variable),是观察者无法得知的变数
理解:这里就是说时间t的某个状态是隐藏变数。注意
{\displaystyle x(t)}

是状态
2.
假设隐藏状态的值对应到的空间有{\displaystyle
N}

个元素,也就是说在时间{\displaystyle
t}

时,隐藏状态会有{\displaystyle
N}

种可能
理解:这就是说,{\displaystyle
x(t)}

这个状态收到N个变量的影响。
3.
同样的,{\displaystyle t+1}

也会有{\displaystyle
N}

种可能的值,所以从{\displaystyle
t}

到{\displaystyle
t+1}

间的关系会有{\displaystyle
N^{2}}

种可能
理解:这个好理解,时间t有N种可能,时间t+1也有N中可能,自然t到t+1的关系有
{\displaystyle N^{2}}

种可能
4.
若观察到的{\displaystyle y(t)}

有{\displaystyle
M}

种可能的值,则从{\displaystyle
x(t)}

到{\displaystyle
y(t)}

的输出模型复杂度为{\displaystyle
O(NM)}

。如果{\displaystyle
y(t)}

是一个{\displaystyle
M}

维的向量,则从{\displaystyle
x(t)}

到{\displaystyle
y(t)}

的输出模型复杂度为{\displaystyle
O(NM^{2})}


理解:前一句好理解。后一句的理解是:前一句描述的情况有M中可能,相当于
{\displaystyle y(t)}

是一维的。那么如果它是M维的,即每一个维度都有M种可能,那么自然复杂度要乘以M。不过这里维度一定要和可能性一致吗?

在上面的理解基础上,看总结的马尔可夫模型:

假设观察到的结果为{\displaystyle Y}


{\displaystyle Y=y(0),y(1),...,y(L-1)}


隐藏条件为{\displaystyle X}


{\displaystyle X=x(0),x(1),...,x(L-1)}


长度为{\displaystyle L}

,则马可夫模型的概率可以表达为:

{\displaystyle P(Y)=\sum _{X}P(Y\mid X)P(X)\,}


理解:Y就是一系列观测到的结果,相当于我们已经观测到的一串融合后的传感器数据。
X为隐藏条件,相当于我们观测到的好几个传感器在不同时间的状态。
L就是我们观测的时间
最后一个公式的文字描述可以理解为:
P(X)表示出现X的概率,即观测到好几个传感器的状态序列为X时的概率。
P(Y | X)表示在出现X的情况下出现Y的概率
那么出现Y的概率P(Y)自然就是所有P(Y|X)P(X)的叠加了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: