公式演变

在算法的实际应用中,样本观测量不再是固定值,而是随着时间递增,观测量增加,都要重新估计高斯混合模型参数,同时随着样本的环境变化,其统计特性也随时间变化,因此,在使用高斯混合模型进行背景建模或前景分割时,如果每时刻都根据得到的样本观测值采用EM算法进行参数估计,计算量将会很大导致算法难以进行实时更新。

针对样本数量 NN 逐渐变大,进行如下分析:

αkt=1Ni=1Np(kxi,Θt1)αkt+1=1N+1i=1N+1p(kxi,Θt)=1N+1[i=1Np(kxi,Θt)+p(kxN+1,Θt)]=(11N+1)1Ni=1Np(kxi,Θt)+1N+1p(kxN+1,Θt)=(11N+1)αkt+1N+1p(kxN+1,Θt)\begin{aligned} \alpha_k^t &= \frac{1}{N} \sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^{t-1}) \\ \alpha_k^{t+1} &= \frac{1}{N+1} \sum\limits_{i=1}^{N+1} p(k \mid x_i, \Theta^t) \\ &= \frac{1}{N+1} \left[ \sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^t) + p(k \mid x_{N+1}, \Theta^t) \right] \\ &= \left(1 - \frac{1}{N+1} \right) \cdot \frac{1}{N} \sum\limits_{i=1}^{N} p(k \mid x_i, \Theta^t) + \frac{1}{N+1} p(k \mid x_{N+1}, \Theta^t) \\ &= \left(1 - \frac{1}{N+1} \right) \alpha_k^t + \frac{1}{N+1} p(k \mid x_{N+1}, \Theta^t) \end{aligned}

因为 NN 持续增大,数据越多,新数据对参数的影响就越小。为了计算简便,上式改写成:

αkt+1=(1τ)αkt+τp(kxN+1,Θt)(1.14)\alpha_k^{t+1} = (1 - \tau) \alpha_k^t + \tau \, p(k \mid x_{N+1}, \Theta^t) \qquad (1.14)

其中,τ\tau 为学习率,大部分任务下该参数是一个较小的数值。

同理,可以推出其他参数 μkt\mu_k^t(σkt)2{(\sigma_k^t)}^2 的更新估计为:

μkt+1=(1ρkt+1)μkt+ρkt+1xN+1(1.15)\mu_k^{t+1} = (1 - \rho_k^{t+1}) \mu_k^t + \rho_k^{t+1} x_{N+1} \qquad (1.15)

(σkt+1)2=(1ρkt+1)(σkt)2+ρkt+1[(xN+1μkt+1)(xN+1μkt+1)T](1.16)(\sigma_k^{t+1})^2 = (1 - \rho_k^{t+1}) (\sigma_k^t)^2 + \rho_k^{t+1} \left[ (x_{N+1} - \mu_k^{t+1})(x_{N+1} - \mu_k^{t+1})^T \right] \qquad (1.16)

ρkt+1=τp(kxN+1,Θt)αkt+1(1.17)\rho_k^{t+1} = \frac{\tau \, p(k \mid x_{N+1}, \Theta^t)}{\alpha_k^{t+1}} \qquad (1.17)

利用上述公式可以对高斯混合模型的参数进行在线迭代更新,当获得新数据时,采用公式中用处理之前数据所得的参数估计作为当前的参数,从而完成对参数的更新。

克里斯·斯托弗和格里姆森采用了一种近似K-means的方法对 p(kxN+1,Θt)p(k \mid x_{N+1}, \Theta^t) 进行优化,如果像素的灰度值与高斯混合模型中某个高斯分布均值之差的绝对值小于2.5倍的标准差,则认为该像素值与此高斯分布匹配。如下公式:

δ=xN+1μkt\delta = \left| x_{N+1} - \mu_k^t \right|

p(kxN+1,Θt){1if δ<λσkt0if δ>λσktp(k \mid x_{N+1}, \Theta^t) \approx \left\{ \begin{aligned} &1 &&\text{if } \delta < \lambda \sigma_k^t \\ &0 &&\text{if } \delta > \lambda \sigma_k^t \end{aligned} \right.

代入式(1.17)可得:

ρkt+1{ταkt+1if δ<λσkt0if δ>λσkt(1.18)\rho_k^{t+1} \approx \left\{ \begin{aligned} &\frac{\tau}{\alpha_k^{t+1}} &&\text{if } \delta < \lambda \sigma_k^t \\ &0 &&\text{if } \delta > \lambda \sigma_k^t \end{aligned} \right. \qquad (1.18)

其中,λ\lambda 取 2.5~3。之所以能将 p(kxN+1,Θt)p(k \mid x_{N+1}, \Theta^t) 近似为 0 或 1,是因为在 MM 个高斯分布中,某像素值一般只与其中一个高斯分布进行匹配。当环境中出现运动目标像素值时,不与任何高斯分布匹配,那么 αkt/σkt{\alpha_k^t}/{\sigma_k^t} 最小的高斯分布会被替换。这种参数更新机制使得环境内新出现的静止目标有机会被吸收成为背景的一部分,如果新出现的像素值是短暂的,则此像素值对应高斯分布的权重会慢慢减弱,最后被另一个新出现的运动目标像素值所代替。因此,在高斯混合模型的 MM 个高斯分布中区分描述环境背景与运动前景的分布时,至少需要用一个高斯分布来对运动前景进行建模。