三维重建16:概率图模型 模板类编程

刚刷了一部分网络题,又出了个模板类编程。没人能从面试中得到自己想要的方法,只能得到能看得到的结果!!!

一 概率图模型

     贝叶斯模型,真是推导不出来了!贝叶斯函数貌似也写不出来了!

     参考:斯坦福概率图模型-贝叶斯网络 -https://blog.csdn.net/wishchin/article/details/14136257

     贝叶斯网络,是一个有向无环图的网络,其中节点表示的是随机变量,可以是观测变量、隐性变量或者参数等。

    马尔科夫性,来源于自动化领域随机过程的概念。马尔科夫决策过程(Markov Decision Process),动态规划(Dynamic Programming)的基础都是马尔科夫性质/无后效性。

    简言之,*未来与过去无关,只和现在有关 *
    即: P ( X n + 1 ∣ X 0 , . . . , X n ) = P ( X n + 1 ∣ X n ) P({X_{n+1}|X_0, . . . , X_n}) = P({X_{n+1}|X_n} ) P(Xn+1​∣X0​,...,Xn​)=P(Xn+1​∣Xn​),

     HMM网络,隐马尔科夫网络。是一种结构最简单的动态贝叶斯网的生成模型,为马尔科夫网络添加一个隐层,参考:HMM模型,训练算法有前向,后向,以及著名的维比特算法。

     CRF,条件随机场,是遵循马尔科夫性的概率图网络,是一个典型的有向图网络,CRF是一个判别式模型。

     HMM模型训练最终会收敛到一个稳定的转移矩阵。CRF模型用于图像分割,即(CRF)用于pixel-wise的图像标记。最小化CRF图像标记gIbbs能量得到的势函数,即完成最优分割的过程。

               

     参考:ANN-生成式模型-https://blog.csdn.net/wishchin/article/details/45101251

     参考:Time Analsisy HMM-model :https://blog.csdn.net/wishchin/article/details/51594271

     参考:从感知机到深度网络-https://blog.csdn.net/wishchin/article/details/45067177

     参考:神经网络进行降维--https://blog.csdn.net/wishchin/article/details/45287125

     CRF模型作为经典的传统分割方法,曾得到广泛的应用。在DeepLab中也使用了CRF方法作为精细调整。

     生成式模型是06年深度学习的讨论基础,通过大量数据预训练,学习出波尔兹曼机参数,得到的生成结构,是结构学习的基础。但此后的深度学习并没有在此路径上取得好的成果,指导2012年的Alexnet在CNN上的巨大成功,才引领学习模型从传统方法到深度方法的演进。

 

二  模板类

      PCL算法库几乎完全使用模板库编程,以适应各种类型的点云数据,使用PointT代替PointRGBAX...之类的;

      以RanSac为例,SampleConsensus 貌似是一个抽象类

template <typename PointT>
  class RandomSampleConsensus : public SampleConsensus<PointT>
  {
    typedef typename SampleConsensusModel<PointT>::Ptr SampleConsensusModelPtr;

    public:
      typedef boost::shared_ptr<RandomSampleConsensus> Ptr;
      typedef boost::shared_ptr<const RandomSampleConsensus> ConstPtr;

      using SampleConsensus<PointT>::max_iterations_;
      using SampleConsensus<PointT>::threshold_;
      using SampleConsensus<PointT>::iterations_;
      using SampleConsensus<PointT>::sac_model_;
      using SampleConsensus<PointT>::model_;
      using SampleConsensus<PointT>::model_coefficients_;
      using SampleConsensus<PointT>::inliers_;
      using SampleConsensus<PointT>::probability_;

      /** \brief RANSAC (RAndom SAmple Consensus) main constructor
        * \param[in] model a Sample Consensus model
        */
      RandomSampleConsensus (const SampleConsensusModelPtr &model) 
        : SampleConsensus<PointT> (model)
      {
        // Maximum number of trials before we give up.
        max_iterations_ = 10000;
      }

      /** \brief RANSAC (RAndom SAmple Consensus) main constructor
        * \param[in] model a Sample Consensus model
        * \param[in] threshold distance to model threshold
        */
      RandomSampleConsensus (const SampleConsensusModelPtr &model, double threshold) 
        : SampleConsensus<PointT> (model, threshold)
      {
        // Maximum number of trials before we give up.
        max_iterations_ = 10000;
      }

      /** \brief Compute the actual model and find the inliers
        * \param[in] debug_verbosity_level enable/disable on-screen debug information and set the verbosity level
        */
      bool computeModel (int debug_verbosity_level = 0);
  };
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值