Consenso de muestra aleatoria: Estimación robusta en visión por computadora
Por Fouad Sabry
()
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.
Relacionado con Consenso de muestra aleatoria
Títulos en esta serie (100)
Visión por computador: Explorando las profundidades de la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesDifusión anisotrópica: Mejora del análisis de imágenes mediante difusión anisotrópica Calificación: 0 de 5 estrellas0 calificacionesModelo del sistema visual humano: Comprender la percepción y el procesamiento Calificación: 0 de 5 estrellas0 calificacionesReducción de ruido: Mejora de la claridad, técnicas avanzadas para la reducción del ruido en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesCompresión de imagen: Técnicas eficientes para la optimización de datos visuales Calificación: 0 de 5 estrellas0 calificacionesSistema de gestión de color: Optimización de la percepción visual en entornos digitales Calificación: 0 de 5 estrellas0 calificacionesVisión por computadora submarina: Explorando las profundidades de la visión por computadora debajo de las olas Calificación: 0 de 5 estrellas0 calificacionesTransformación de Hadamard: Revelando el poder de la transformación de Hadamard en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesHomografía: Homografía: Transformaciones en Visión por Computador Calificación: 0 de 5 estrellas0 calificacionesMapeo de tonos: Mapeo de tonos: perspectivas iluminadoras en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesEn Pintura: Cerrar brechas en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesVisión estéreo por computadora: Explorando la percepción de profundidad en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesTransformación de radón: Revelando patrones ocultos en datos visuales Calificación: 0 de 5 estrellas0 calificacionesTransformación dura: Revelando la magia de Hough Transform en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesEcualización de histograma: Mejora del contraste de la imagen para mejorar la percepción visual Calificación: 0 de 5 estrellas0 calificacionesHistograma de imagen: Revelando conocimientos visuales, explorando las profundidades de los histogramas de imágenes en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesRetinax: Revelando los secretos de la visión computacional con Retinex Calificación: 0 de 5 estrellas0 calificacionesModelo de cámara estenopeica: Comprender la perspectiva a través de la óptica computacional Calificación: 0 de 5 estrellas0 calificacionesBanco de filtros: Información sobre las técnicas del banco de filtros de Computer Vision Calificación: 0 de 5 estrellas0 calificacionesTransformacion afin: Desbloqueo de perspectivas visuales: exploración de la transformación afín en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesJoint Photographic Experts Group: Liberando el poder de los datos visuales con el estándar JPEG Calificación: 0 de 5 estrellas0 calificacionesFiltro adaptativo: Mejora de la visión por computadora mediante filtrado adaptativo Calificación: 0 de 5 estrellas0 calificacionesPercepción visual: Información sobre el procesamiento visual computacional Calificación: 0 de 5 estrellas0 calificacionesFunción de combinación de colores: Comprensión de la sensibilidad espectral en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesEspacio de color: Explorando el espectro de la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesCorrección gamma: Mejora de la claridad visual en la visión por computadora: la técnica de corrección gamma Calificación: 0 de 5 estrellas0 calificacionesDetección de contorno: Revelando el arte de la percepción visual en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesImágenes multiespectrales: Liberando el espectro: avances en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesGeometría epipolar: Desbloqueo de la percepción de profundidad en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesSegmentación de imagen: Desbloqueo de información a través de Pixel Precision Calificación: 0 de 5 estrellas0 calificaciones
Libros electrónicos relacionados
Clasificación de imágenes contextuales: Comprensión de los datos visuales para una clasificación eficaz Calificación: 0 de 5 estrellas0 calificacionesAjuste del paquete: Optimización de datos visuales para una reconstrucción precisa Calificación: 0 de 5 estrellas0 calificacionesHashing geométrico: Algoritmos eficientes para el reconocimiento y la comparación de imágenes Calificación: 0 de 5 estrellas0 calificacionesMosaico de documentos: Desbloqueo de información visual a través del mosaico de documentos Calificación: 0 de 5 estrellas0 calificacionesAnálisis y diseño de algoritmos: Un enfoque práctico Calificación: 0 de 5 estrellas0 calificacionesReconstrucción tridimensional multivista: Técnicas avanzadas de percepción espacial en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesModelado y simulación de redes. Aplicación de QoS con opnet modeler Calificación: 0 de 5 estrellas0 calificacionesModelo de apariencia activa: Liberando el poder de los modelos de apariencia activa en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesSegmentación de imagen: Desbloqueo de información a través de Pixel Precision Calificación: 0 de 5 estrellas0 calificacionesCortes de gráficos de visión por computadora: Explorando cortes de gráficos en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesAnálisis de datos con Power Bi, R-Rstudio y Knime Calificación: 0 de 5 estrellas0 calificacionesIntroducción al Machine Learning con MATLAB Calificación: 0 de 5 estrellas0 calificacionesIntroducción al análisis estadístico multivariado aplicado: Experiencia y casos en el Caribe colombiano Calificación: 5 de 5 estrellas5/5Machine Learning y Deep Learning Calificación: 0 de 5 estrellas0 calificacionesAlgoritmo de la línea de Bresenham: Representación eficiente de líneas con píxeles perfectos para visión por computadora Calificación: 0 de 5 estrellas0 calificacionesGráficos rasterizados: Comprender los fundamentos de los gráficos rasterizados en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesTensor trifocal: Explorando la profundidad, el movimiento y la estructura en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesGráfico de trama digital: Revelando el poder de los gráficos rasterizados digitales en la visión por computadora Calificación: 0 de 5 estrellas0 calificacionesAlgoritmo de dibujo lineal: Dominar técnicas para la representación de imágenes de precisión Calificación: 0 de 5 estrellas0 calificacionesReconocimiento automático de objetivos: Avances en técnicas de visión por computadora para el reconocimiento de objetivos Calificación: 0 de 5 estrellas0 calificacionesEditora de gráficos ráster: Transformando realidades visuales: dominio de los editores de gráficos rasterizados en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesTransformación lineal directa: Aplicaciones prácticas y técnicas en visión por computadora. Calificación: 0 de 5 estrellas0 calificacionesTablas dinámicas y Gráficas para Excel: Una guía visual paso a paso Calificación: 0 de 5 estrellas0 calificacionesAprende a Programar en MATLAB Calificación: 4 de 5 estrellas4/5Ver síntesis: Explorando perspectivas en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesEjercicios de Análisis Numérico Calificación: 0 de 5 estrellas0 calificacionesGráficos vectoriales: Dominar los gráficos vectoriales en visión por computadora Calificación: 0 de 5 estrellas0 calificacionesDiseño y construcción de algoritmos Calificación: 4 de 5 estrellas4/5
Inteligencia (IA) y semántica para usted
Fundamentos de Programación: Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java Calificación: 0 de 5 estrellas0 calificacionesInteligencia Artificial Calificación: 4 de 5 estrellas4/5Cómo Ganar Dinero por Internet con Inteligencia Artificial Emprende tu negocio digital con ChatGPT, Escríbelo.ia, Playground AI, You.com, Canva, Midjourney, Dall-E 2, Amazon... Calificación: 0 de 5 estrellas0 calificacionesEl mito de la inteligencia artificial: Por qué las máquinas no pueden pensar como nosotros lo hacemos Calificación: 5 de 5 estrellas5/5Dominando ChatGPT: Desbloquea el poder de la IA para mejorar la comunicación y las relaciones: Spanish Calificación: 3 de 5 estrellas3/5Metodología de la programación Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la ingeniería Calificación: 0 de 5 estrellas0 calificacionesResumen CHAT GPT IA Revolución en 2023: Guía de la Tecnología CHAT GPT y su Impacto Social: Resumen Tecnológico, #1 Calificación: 0 de 5 estrellas0 calificacionesMáquinas predictivas: La sencilla economía de la inteligencia artificial Calificación: 5 de 5 estrellas5/5Klara y el Sol Calificación: 5 de 5 estrellas5/5Chat GPT-4 para Principiantes: Chat GPT, #1 Calificación: 0 de 5 estrellas0 calificacionesInteligencia artificial: Una exploración filosófica sobre el futuro de la mente y la conciencia Calificación: 4 de 5 estrellas4/5Cómo usar Chatgpt para tu negocio Calificación: 0 de 5 estrellas0 calificacionesEscritura Creativa en la Era de la IA: Dominando la Colaboración con ChatGPT para Crear Libros Impactantes Calificación: 4 de 5 estrellas4/5El poder de las imagenes, la palabra no tiene poder Calificación: 0 de 5 estrellas0 calificacionesCalidad en el desarrollo de software Calificación: 0 de 5 estrellas0 calificacionesANDROID: Aprende desde cero a crear aplicaciones Calificación: 0 de 5 estrellas0 calificacionesGuíaBurros: Inteligencia Artificial: Su lado oscuro y el fin del principio Calificación: 0 de 5 estrellas0 calificacionesSobreviviendo a la IA Calificación: 3 de 5 estrellas3/5Mecatrónica Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la Ingeniería Industrial Calificación: 0 de 5 estrellas0 calificacionesMonetización de ChatGPT: aproveche el poder de AI: Spanish Calificación: 1 de 5 estrellas1/5Cómo triunfar en Instagram usando ChatGPT: La guía definitiva para crear contenido impactante con ChatGPT Calificación: 0 de 5 estrellas0 calificacionesCiencias de la Computación en la escuela: Guía para enseñar mucho más que a programar Calificación: 5 de 5 estrellas5/5Historia y evolución de la Inteligencia Artificial Calificación: 3 de 5 estrellas3/5Business Intelligence: Técnicas herramientas y aplicaciones Calificación: 0 de 5 estrellas0 calificacionesBig data: La revolución de los datos masivos Calificación: 4 de 5 estrellas4/5UML: Modelado de Software para Profesionales Calificación: 0 de 5 estrellas0 calificaciones
Comentarios para Consenso de muestra aleatoria
0 clasificaciones0 comentarios
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, _