资源经验分享SVO 中的深度滤波的推导

SVO 中的深度滤波的推导

2019-11-14 | |  52 |   0

原标题:SVO 中的深度滤波的推导

原文来自:CSDN      原文链接:https://blog.csdn.net/zhiwei121/article/details/103030372


newsimg1108_01.jpg
其中关于两个高斯分布的乘积,可以参考相关公式进行推导。

关于上图中公式(1)的近似,在下图
newsimg1108_02.jpg
有关SVO 中的相关代码

void DepthFilter::updateSeed(const float x, const float tau2, Seed* seed)
{
  // 合成正态分布的标准差
  float norm_scale = sqrt(seed->sigma2 + tau2);
  if(std::isnan(norm_scale))
    return;
  // 正态分布
  boost::math::normal_distribution<float> nd(seed->mu, norm_scale);
  // 1/(s^2) = 1/(sigma2)+ 1/(tau2)
  float s2 = 1./(1./seed->sigma2 + 1./tau2);
  // m = (s^2) * (mu/sigma2 + x/tau2)
  float m = s2*(seed->mu/seed->sigma2 + x/tau2);
  // C1 = a/(a+b) * N(x|mu,sigma2 + tau2) ,pdf()概率密度
  float C1 = seed->a/(seed->a+seed->b) * boost::math::pdf(nd, x);
  // C2 = b/(a+b) * U(x)
  float C2 = seed->b/(seed->a+seed->b) * 1./seed->z_range;
  // 概率密度的归一化, 即C1、C2的归一化
  float normalization_constant = C1 + C2;
  C1 /= normalization_constant;
  C2 /= normalization_constant;
  // 计算 f、e 来进行a、b的更新
  // f = C1*(a+1)/(a+b+1) + C2*(a)/(a+b+1)
  float f = C1*(seed->a+1.)/(seed->a+seed->b+1.) + C2*seed->a/(seed->a+seed->b+1.);
  // e = C1*(a+1)*(a+2)/((a+b+1)*(a+b+2))+ C2*(a)*(a+1)/((a+b+1)*(a+b+2));
  float e = C1*(seed->a+1.)*(seed->a+2.)/((seed->a+seed->b+1.)*(seed->a+seed->b+2.))
          + C2*seed->a*(seed->a+1.0f)/((seed->a+seed->b+1.0f)*(seed->a+seed->b+2.0f));

  // update parameters 参数更新
  // mu = C1*m+C2*mu;
  float mu_new = C1*m+C2*seed->mu;
  //sigma2 = C1*(s2 + m*m) + C2*(sigma2 + mu*mu) - mu_new*mu_new;
  seed->sigma2 = C1*(s2 + m*m) + C2*(seed->sigma2 + seed->mu*seed->mu) - mu_new*mu_new;
  seed->mu = mu_new;
  // a 和 b 的更新
  seed->a = (e-f)/(f-e/f);
  seed->b = seed->a*(1.0f-f)/f;
}

参考以下博客:

https://www.cnblogs.com/luyb/p/5773691.html
https://blog.csdn.net/weixin_43793960/article/details/89359012

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:图像二值化与去噪

下一篇:RC4无损加密和解密图片

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...