Descubre millones de libros electrónicos, audiolibros y mucho más con una prueba gratuita

Solo $11.99/mes después de la prueba. Puedes cancelar en cualquier momento.

Consenso de muestra aleatoria: Estimación robusta en visión por computadora
Consenso de muestra aleatoria: Estimación robusta en visión por computadora
Consenso de muestra aleatoria: Estimación robusta en visión por computadora
Libro electrónico169 páginas1 hora

Consenso de muestra aleatoria: Estimación robusta en visión por computadora

Calificación: 0 de 5 estrellas

()

Leer la vista previa

Información de este libro electrónico

Qué es el consenso de muestra aleatoria


El consenso de muestra aleatoria, también conocido como RANSAC, es un método iterativo que se utiliza para estimar los parámetros de un modelo matemático basado en una colección. de datos observados que incluyen valores atípicos. Este método se utiliza en situaciones en las que se permite que los valores atípicos no tengan impacto en los valores de las estimaciones. La conclusión es que también es posible verlo como una herramienta para detectar valores atípicos. Se considera que un algoritmo no es determinista si es capaz de generar un resultado adecuado sólo con una cierta probabilidad, y esta probabilidad aumenta a medida que aumenta el número de iteraciones permitidas a través del método. En 1981, Fischler y Bolles, que trabajaban en SRI International, fueron quienes publicaron inicialmente el algoritmo. Para resolver el problema de determinación de ubicación (LDP), que es un problema en el que el objetivo es encontrar los puntos en el espacio que se proyectan en una imagen y luego convertir esos puntos en un conjunto de puntos de referencia con posiciones conocidas, utilizaron RANSAC.


Cómo te beneficiarás


(I) Insights y validaciones sobre los siguientes temas:


Capítulo 1: Consenso de muestra aleatoria


Capítulo 2: Estimador


Capítulo 3: Mínimos cuadrados


Capítulo 4: Valor atípico


Capítulo 5: Validación cruzada (estadísticas)


Capítulo 6: Errores y residuos


Capítulo 7: Modelo de mezcla


Capítulo 8: Estadísticas sólidas


Capítulo 9: Unión de imágenes


Capítulo 10: Remuestreo (estadísticas)


(II) Respondiendo a las principales preguntas del público sobre el consenso de muestras aleatorias.


(III) Ejemplos del mundo real para el uso de consenso de muestras aleatorias en muchos campos.


Para quién es este libro


Profesionales, estudiantes de pregrado y posgrado, entusiastas, aficionados y aquellos que quieran avanzar más allá del conocimiento o información básica para cualquier tipo de Consenso de Muestra Aleatoria.


 


 

IdiomaEspañol
Fecha de lanzamiento30 abr 2024
Consenso de muestra aleatoria: Estimación robusta en visión por computadora

Relacionado con Consenso de muestra aleatoria

Títulos en esta serie (100)

Ver más

Libros electrónicos relacionados

Inteligencia (IA) y semántica para usted

Ver más

Artículos relacionados

Comentarios para Consenso de muestra aleatoria

Calificación: 0 de 5 estrellas
0 calificaciones

0 clasificaciones0 comentarios

¿Qué te pareció?

Toca para calificar

Los comentarios deben tener al menos 10 palabras

    Vista previa del libro

    Consenso de muestra aleatoria - Fouad Sabry

    Capítulo 1: Consenso muestral aleatorio

    Para estimar los parámetros de un modelo matemático a partir de un conjunto de datos observados que incluye valores atípicos, se puede utilizar el proceso iterativo conocido como consenso de muestras aleatorias (RANSAC). Como tal, también puede verse como una técnica para identificar valores atípicos. Este algoritmo no es determinista, ya que solo genera un resultado adecuado con una probabilidad dada, que aumenta con el número de iteraciones permitidas. En 1981, Fischler y Bolles de SRI International lanzaron el algoritmo al público por primera vez. Con RANSAC, pudieron resolver el Problema de Determinación de Ubicación (LDP), que consiste en encontrar los puntos en el espacio que se mapean en una imagen como una colección de puntos de referencia con coordenadas fijas.

    RANSAC es un método que emplea el submuestreo aleatorio muchas veces. Los inliers son datos cuya distribución puede explicarse mediante algún conjunto de parámetros del modelo, aunque con un ruido considerable, mientras que los outliers son datos que no coinciden con el modelo, de acuerdo con una suposición fundamental sobre los datos. Algunos ejemplos de fuentes de valores atípicos son los valores excesivos del ruido, las mediciones defectuosas y los datos interpretados incorrectamente. RANSAC también implica la existencia de un proceso que puede estimar los parámetros de un modelo que explique o ajuste idealmente estos datos, dado un conjunto (a menudo limitado) de inliers.

    El ajuste de líneas bidimensionales es una ilustración directa de este principio. Si esta colección incluye tanto inliers (puntos que se pueden ajustar aproximadamente a una línea) como outliers (puntos que no se pueden ajustar a esta línea), es probable que el método de mínimos cuadrados para ajustar las líneas dé como resultado una línea que no se ajusta bien a los datos. El modelo se adapta de forma óptima a todos los puntos de datos, incluso a los extremos. Sin embargo, RANSAC busca encontrar un modelo lineal que no incluya los valores atípicos y, en su lugar, utilice solo los valores atípicos en sus cálculos. Para lograr esto, se utilizan muchas muestras aleatorias de los datos para ajustar modelos lineales y, a continuación, se devuelve el modelo que proporciona el mayor ajuste a una parte de los datos. Un subconjunto aleatorio que consta completamente de inliers tendrá el mejor ajuste del modelo porque es más probable que los inliers estén conectados linealmente que una mezcla aleatoria de inliers y outliers. La probabilidad de que el algoritmo tenga éxito depende del porcentaje de inliers en los datos y de la selección de numerosos parámetros del algoritmo y, de hecho, no hay garantía de que se elija aleatoriamente un subconjunto de inliers.

    Un conjunto de datos con varios valores atípicos que requiere un análisis de regresión lineal.

    Regresión RANSAC; Los valores atípicos no tienen ningún efecto en la media.

    El algoritmo RANSAC es un método de aprendizaje basado en datos para estimar los parámetros del modelo a partir de muestras observacionales. RANSAC utiliza el método de votación para obtener el resultado que mejor se ajuste a un conjunto de datos determinado cuyos elementos de datos incluyen tanto valores atípicos como inliers. Los puntos de datos del conjunto de datos se utilizan como boletas para uno o más modelos. Esta técnica de votación se implementa bajo dos supuestos: (a) hay suficientes características para acordar un modelo decente, y (b) las características ruidosas no votarán consistentemente por un solo modelo (pocos valores atípicos) (pocos datos faltantes). El algoritmo RANSAC consta principalmente de dos etapas, las cuales se realizan de manera iterativa:

    Se elige un subconjunto aleatorio del conjunto de datos de entrada para que sirva como muestra en la primera fase. Los elementos de esta submuestra se utilizan para calcular un modelo de ajuste con los parámetros del modelo. Los parámetros del modelo se pueden calcular utilizando solo los datos de la cardinalidad de la submuestra.

    La segunda etapa del proceso consiste en verificar qué partes del conjunto de datos completo están de acuerdo con el modelo instanciado por los parámetros estimados del modelo. Si una pieza de información no se ajusta al modelo dentro de un margen de error predeterminado, entonces se clasifica como un valor atípico. (Los puntos de datos fuera de este rango se consideran valores atípicos).

    El grupo de valores atípicos utilizados para calibrar el modelo se conoce como conjunto de consenso. Hasta que se forme un conjunto de consenso con un número suficiente de valores atípicos, el algoritmo RANSAC repetirá iterativamente los dos pasos anteriores.

    Los valores de los datos observados, un modelo que se ajuste a esas observaciones y los parámetros de confianza que indican valores atípicos son las entradas del algoritmo RANSAC. El algoritmo RANSAC logra su objetivo realizando de forma iterativa los siguientes pasos, que se detallan a continuación:

    Elija una muestra de los datos originales al azar. Puedes pensar en este grupo como los valores atípicos ficticios.

    El conjunto de posibles valores atípicos se utiliza como entrada para un procedimiento de modelado.

    A continuación se verifican todos los datos con el modelo ajustado. El conjunto de consenso es el subconjunto de puntos de datos originales que minimiza la función de pérdida para el modelo estimado (es decir, el conjunto de valores inliers para el modelo).

    Si una proporción suficientemente grande de observaciones encaja en el conjunto de consenso, el modelo estimado puede considerarse de calidad adecuada.

    Es posible que la reestimación del modelo con datos de todo el conjunto de consensos arroje mejores resultados. El ajuste del modelo a lo largo del tiempo se realizará con la ayuda de la calidad del ajuste, una medida de qué tan bien se ajusta el modelo al conjunto de consenso (por ejemplo, estableciendo esta medida como el criterio de calidad de ajuste en la siguiente iteración).

    Cada iteración de este proceso da como resultado el rechazo de un modelo porque muy pocos puntos forman parte del conjunto de consenso, o bien un modelo revisado con un tamaño de conjunto de consenso mayor que la iteración anterior. Este proceso se repite hasta que se encuentra un conjunto de parámetros de modelo suficientemente bueno.

    Valores atípicos e inliers en RANSAC. Este ejemplo de ajuste lineal punto por punto incluye 7 valores atípicos (puntos de datos que se ajustan bien al modelo según algunos criterios). Dado que la mayoría de los puntos de datos se agrupan alrededor de una línea lineal, el ajuste es deficiente (es decir, más inliers).

    A continuación, se muestra un pseudocódigo que implementa el algoritmo básico de RANSAC:

    Dado:

    data: un conjunto de observaciones.

    model: un modelo para explicar los puntos de datos observados.

    n – El número mínimo de puntos de datos necesarios para estimar los parámetros del modelo.

    k: el número máximo de iteraciones permitidas en el algoritmo.

    t: un valor de umbral para determinar los puntos de datos que se ajustan bien al modelo (inlier).

    d – El número de puntos de datos cercanos (inliers) necesarios para afirmar que el modelo se ajusta bien a los datos.

    Devolución:

    bestFit: los parámetros del modelo que pueden ajustarse mejor a los datos (o nulo si no se encuentra un modelo bueno).

    iteraciones = 0

    bestFit = null

    bestErr = algo realmente grande // Este parámetro se utiliza para afinar los parámetros del modelo para obtener el mejor ajuste de datos a medida que avanzan las iteraciones.

    mientras que las iteraciones < k lo hacen

    maybeInliers := n valores seleccionados aleatoriamente a partir de datos

    maybeModel := parámetros del modelo ajustados a maybeInliers

    confirmedInliers := conjunto vacío

    para cada punto de los datos ,

    si el punto se ajusta a maybeModel con un error menor que t, entonces

    agregar punto a confirmedInliers

    Finalizar si

    Fin de

    si el número de elementos en confirmedInliers es > d , entonces

    Esto implica que es posible que hayamos encontrado un buen modelo.

    Ahora pruebe qué tan bueno es.

    betterModel := parámetros del modelo ajustados a todos los puntos en confirmedInliers

    thisErr := una medida de lo bien que betterModel se ajusta a estos puntos

    si thisErr < bestErr entonces

    bestFit := betterModel

    bestErr := thisErr

    Finalizar si

    Finalizar si

    Iteraciones de incremento

    Finalizar mientras

    return bestFit

    El pseudocódigo, reflejado en Python. Además, esta definición de LinearRegressor basada en mínimos cuadrados, la aplicación RANSAC y la representación gráfica resultante solucionan un problema de regresión 2D:

    De copiar Importar copiar

    Importar numpy como NP

    de la default_rng de importación numpy.random

    rng = default_rng()

    clase RANSAC:

    def __init__(self, n=10, k=100, t=0.05, d=10, model=None, loss=None, metric=None):

    uno mismo.n = n # 'n': Número mínimo de puntos de datos para estimar los parámetros

    uno mismo.k = k # 'k': Iteraciones máximas permitidas

    uno mismo.t = t # 't': Valor umbral para determinar si los puntos se ajustan bien

    uno mismo.d = d # 'd': Número de puntos de datos cercanos necesarios para afirmar que el modelo se ajusta bien

    uno mismo.model = model # 'model': clase que implementa 'fit' y 'predict'

    uno mismo.loss = loss # 'loss': función de 'y_true' y 'y_pred' que devuelve un vector

    uno mismo.metric = metric # 'metric': función de 'y_true' y 'y_pred' y devuelve un float

    uno mismo.best_fit = Ninguno

    uno mismo.best_error = np.Inf

    def fit(self, X, y):

    for _ in range(self.k):

    ids = rng.permutación(X.shape0])

    maybe_inliers = ids[: self.n

    maybe_model = copiar(self.modelo).fit(Xmaybe_inliers], ymaybe_inliers])

    umbral = (

    uno mismo.loss(yids][self.n :], maybe_model.predict(Xids][self.n :]))

    < yo.t

    )

    inlier_ids = idsself.n :][np.flatdistinto de cero (umbral).aplanar()]

    si inlier_ids.tamaño > sí mismo.d:

    inlier_points = np.hstack([maybe_inliers, inlier_ids])

    better_model = copiar(self.modelo).fit(Xinlier_points], yinlier_points])

    this_error = uno mismo.metric(

    yinlier_points], better_model.predict(Xinlier_points])

    )

    si this_error < yo.best_error:

    uno mismo.best_error = this_error

    uno mismo.best_fit = maybe_model

    Volver a sí mismo

    def predict(self, X):

    Regresa a ti mismo.best_fit.predict(X)

    def square_error_loss(y_true, y_pred):

    Devolución (y_true - y_pred) ** 2

    def mean_square_error(y_true, y_pred):

    Retorno NP.sum(square_error_loss(y_true, y_pred)) / y_true.forma0

    class LinearRegressor:

    def __init__(self):

    uno mismo.params = Ninguno

    def fit(self, X: np.ndarray, y: np.ndarray):

    r, _ = X.forma

    X = np.hstack([np.unos((r, 1)), X])

    uno mismo.params = np.linalg.inv(X.T @ X) @ X.T @ y

    Volver a sí mismo

    def predict(self, X: np.ndarray):

    r, _

    ¿Disfrutas la vista previa?
    Página 1 de 1