随机抽样一致算法(Random sample consensus,RANSAC)

       

     RANSAC代表随机样本共识。正如我们之前看到的,这里有你可以尝试拟合的不同类型的模型,我们仅仅去拟合一个平面模型,在这里,我们将研究试图拟合线条的情况。在这种情况下:我们有数据并且我们知道这有一条线。但是数据也有很多异常值。

但是数据也有很多离群值,那么您如何确定那条线在哪里呢?好吧,如果您只是想做线性回归之类的事情,那将取所有点的平均值,并取没有意义的离群值的平均值。他会给你个很差的线,它不会代表你所有的真实的点。因此,当数据中包含这些异常值时,RANSAC实际上是一种用于查找此模型的方法。

         普通最小二乘是保守派:在现有数据下,如何实现最优。是从一个整体误差最小的角度去考虑,尽量谁也不得罪。

RANSAC是改革派:首先假设数据具有某种特性(目的),为了达到目的,适当割舍一些现有的数据。

随机抽样一致算法(Random sample consensus,RANSAC)_第1张图片

         RANSAC简化版的思路就是:参考了https://www.cnblogs.com/xingshansi/p/6763668.html

         第一步:假定模型(如直线方程),并随机抽取Nums个(以2个为例)样本点,对模型进行拟合:

 

随机抽样一致算法(Random sample consensus,RANSAC)_第2张图片

 

第二步:由于不是严格线性,数据点都有一定波动,假设容差范围为:sigma,找出距离拟合曲线容差范围内的点,并统计点的个数:

随机抽样一致算法(Random sample consensus,RANSAC)_第3张图片

 

第三步:重新随机选取Nums个点,重复第一步~第二步的操作,直到结束迭代

随机抽样一致算法(Random sample consensus,RANSAC)_第4张图片

 

第四步:每一次拟合后,容差范围内都有对应的数据点数,找出数据点个数最多的情况,就是最终的拟合结果

 

随机抽样一致算法(Random sample consensus,RANSAC)_第5张图片

  所以,其实就是概率性去寻找最符合的线,以O的大小为优化函数(越大越好),简而言之,RANSAC代表随机样本共识,是一种检测数据中异常值的方法。 RANSAC运行最大迭代次数,并以最佳拟合返回模型。 每次迭代都随机选择数据的子样本,并通过它拟合模型,例如直线或平面。 然后,将具有最大数量的内部值或最低噪声的迭代用作最佳模型。

  就工程而言有两个问题:

 一是迭代次数该怎么选,意味着你随机尝试多少次。

  二是,\delta值该怎么设。

附:


RANSAC overview

One type of RANSAC version selects the smallest possible subset of points to fit. For a line, that would be two points, and for a plane three points. Then the number of inliers are counted, by iterating through every remaining point and calculating its distance to the model. The points that are within a certain distance to the model are counted as inliers. The iteration that has the highest number of inliers is then the best model. This will be the version that you will implement in this quiz.
Other methods of RANSAC could sample some percentage of the model points, for example 20% of the total points, and then fit a line to that. Then the error of that line is calculated, and the iteration with the lowest error is the best model. This method might have some advantages since not every point at each iteration needs to be considered. It’s good to experiment with different approaches and time results to see what works best.
 

 

                                                                                                                                                                                      20200728

 

你可能感兴趣的:(自动驾驶算法,算法)