RANSAC ( abreviado como RANdom SAmple Consensus ) es un método estable para estimar los parámetros del modelo basado en muestras aleatorias . El esquema RANSAC es resistente a datos de entrada ruidosos. El método fue propuesto en 1981 por Fischler y Bolles.
A menudo hay una tarea de procesamiento de datos en la que es necesario determinar los parámetros del modelo, que deben satisfacer los datos iniciales. Todos los datos iniciales se pueden dividir en dos tipos: puntos buenos que satisfacen el modelo, “non-outliers” o “inlayers” ( inglés inlier ) y puntos falsos, los ruidos son inclusiones aleatorias en los datos originales, “outliers” o “outlayers” ( Inglés ) .outlier
Considere el ejemplo más simple de cómo funciona el algoritmo: inscribir una línea recta en un punto 2D . Suponiendo que hay valores atípicos en los datos, la estimación de parámetros de forma estándar, como los mínimos cuadrados , dará como resultado que se calcule un modelo incorrecto, ya que el modelo se construye a partir de todos los puntos. El método RANSAC toma como base solo dos puntos necesarios para construir una línea recta y construye un modelo con su ayuda, después de lo cual verifica cuántos puntos corresponden al modelo utilizando una función de estimación con un umbral dado.
El conjunto de datos en el que se ajusta la línea. las emisiones son abundantes.
Recta propuesta por el algoritmo RANSAC. los valores atípicos no afectan el resultado.
La entrada del algoritmo es:
Todo el algoritmo consta de un ciclo, cada iteración del cual se puede dividir lógicamente en dos etapas.
Al final del ciclo, queda la última mejor hipótesis.
Los resultados del método son:
El valor del parámetro debe determinarse según los requisitos específicos según los datos, en la mayoría de los casos, solo después de evaluaciones experimentales. El número de iteraciones se puede determinar antes de ejecutar el algoritmo mediante estimación teórica. Sea la probabilidad de que el algoritmo RANSAC en alguna iteración , eligiendo los puntos en los que se basa el modelo, tome solo capas internas del conjunto de datos inicial para los cálculos. En tal situación, es probable que el modelo construido a partir de estos puntos sea bastante preciso. Con base en esto, podemos usar la probabilidad p para estimar la precisión del algoritmo. Sea la probabilidad de elegir una capa interna del número total de puntos, es decir , donde es el número de capas internas y es el número total de puntos. En la mayoría de los casos, el porcentaje de capas internas no se conoce antes de que comience el algoritmo, pero casi siempre se puede hacer una estimación aproximada. La probabilidad de una elección independiente de n capas internas de los datos iniciales, en este caso, es , y la probabilidad de que al menos un punto del conjunto sea un valor atípico, es decir, que se construya un modelo incorrecto, es . La probabilidad de que durante las iteraciones el algoritmo nunca seleccione las capas internas es , esta situación significa que no se construirá el modelo exacto y la probabilidad de este evento es . De este modo
Expresemos el número de iteraciones que necesitamos k
La ventaja del algoritmo RANSAC es su capacidad para brindar una estimación confiable de los parámetros del modelo, es decir, la capacidad de estimar los parámetros del modelo con alta precisión, incluso si hay una cantidad significativa de valores atípicos en el conjunto de datos original.
Una de las desventajas del método RANSAC es la ausencia de un límite superior en el tiempo requerido para calcular los parámetros del modelo. Si usamos el número máximo de iteraciones como límite de tiempo, la solución resultante puede no ser óptima, y también hay una probabilidad muy pequeña de que ningún modelo coincida con los datos originales. Se puede determinar un modelo exacto con una cierta probabilidad que aumenta cuantas más iteraciones se utilicen. Otra desventaja del método RANSAC es que es necesario establecer un valor de umbral específico para ejecutar el algoritmo. Finalmente, el método RANSAC puede determinar solo un modelo para un conjunto de datos en particular. Al igual que con cualquier enfoque de modelo único, existe un problema: cuando dos (o más) modelos están presentes en los datos de entrada, es posible que RANSAC no encuentre ninguno.
El algoritmo RANSAC se usa a menudo en visión por computadora , por ejemplo, para resolver el problema de la coincidencia de imágenes y la estimación de matriz fundamental para determinar los parámetros de posición de la cámara.