¿Cuáles son los algoritmos más comunes para el umbral adaptativo?

38

El umbral adaptativo se ha discutido en algunas preguntas anteriormente:

Umbral adaptativo para la segmentación del hígado con Matlab

¿Cuáles son los mejores algoritmos para el umbral de la imagen del documento en este ejemplo?

Por supuesto, hay muchos algoritmos para el umbral adaptativo. Quiero saber cuáles has encontrado más efectivas y útiles.

Qué algoritmos adaptativos ha utilizado más y para qué aplicación; ¿Cómo se llega a elegir este algoritmo?

Dipan Mehta
fuente

Respuestas:

24

No creo que la mía sea una respuesta completa, pero ofreceré lo que sé y dado que este es un sitio editado por la comunidad, espero que alguien dé una respuesta complementaria pronto :)

Los métodos de umbral adaptativo son aquellos que no usan el mismo umbral en toda la imagen .

Pero, para algunos usos más simples, a veces es suficiente elegir un umbral con un método más inteligente que el método iterativo más simple . El método de Otsu es un método de umbral popular que supone que la imagen contiene dos clases de píxeles: primer plano y fondo , y tiene un histograma bimodal . Luego intenta minimizar su propagación combinada (varianza intraclase).

Los algoritmos más simples que pueden considerarse métodos de umbral verdaderamente adaptativos serían los que dividen la imagen en una cuadrícula de celdas y luego aplican un método de umbral simple (por ejemplo, iterativo o el método de Otsu) en cada celda tratándola como una imagen separada (y suponiendo un histograma bimodal). Si una subimagen no se puede trillar bien, se puede usar el umbral de una de las celdas vecinas.

El enfoque alternativo para encontrar el umbral local es examinar estadísticamente los valores de intensidad de la vecindad local de cada píxel . El umbral es diferente para cada píxel y se calcula a partir de su vecindario local (es posible una mediana, un promedio y otras opciones). Hay una implementación de este tipo de métodos incluidos en la biblioteca OpenCV en la cv::adaptiveThresholdingfunción.

Encontré otro método similar llamado Bradley Local Thresholding . También examina la vecindad de cada píxel, configurando los brillos en negro si el brillo de los píxeles es t por ciento más bajo que el brillo promedio de los píxeles circundantes. El documento correspondiente se puede encontrar aquí .

Esta respuesta de stackoverflow menciona un método de umbral local (adaptativo) llamado Niblack, pero no he oído hablar de él antes.

Por último, hay un método que he usado en uno de mis proyectos más pequeños anteriores, llamado Umbral de imagen por optimización de Minimax variacional . Es un método iterativo, basado en la optimización de una función de energía que es una combinación no lineal de dos componentes. Un componente tiene como objetivo calcular el umbral en función de la posición de los cambios de intensidad más fuertes en la imagen. El otro componente tiene como objetivo suavizar el umbral en las áreas de borde (objeto). Ha demostrado ser bastante bueno en imágenes de instrumentos analógicos (varios sombreados y reflejos del vidrio / plástico presente), pero requiere una elección cuidadosa del número de iteraciones.

Edición tardía : inspirada en el comentario de esta respuesta . Hay una forma más que conozco para evitar condiciones de iluminación desiguales. Escribiré aquí sobre objetos brillantes sobre un fondo oscuro, pero se puede aplicar el mismo razonamiento si la situación es inversa. Umbral la transformación de sombrero blanco de la imagen con un umbral constante en lugar de la imagen original . Un sombrero de copa blanco de una imagen no es más que una diferencia entre la imagen y se está abriendo . Como explicación adicional, permítanme ofrecer una cita de P. Soille: Análisis de imagen morfológica :Fγ(F)

Una apertura de la imagen original con un SE cuadrado grande elimina todas las estructuras de imagen relevantes pero conserva la función de iluminación. El sombrero de copa blanco de la imagen original o la resta de la función de iluminación de la imagen original genera una imagen con una iluminación homogénea.

penelope
fuente
14

Puede encontrar un documento que contiene una comparación de varios métodos de umbral aquí:

  • M. Sezgin, B. Sankur - Encuesta sobre técnicas de umbral de imagen y evaluación cuantitativa del rendimiento, Journal of Electronic Imaging, 2004 - pdf

Aquí hay otro artículo que evalúa los métodos de binarización:

  • P. Stathis, E. Kavallieratou y N. Papamarkos - Una técnica de evaluación para algoritmos de binarización, Journal of Universal Computer Science, 2008, - pdf

El método de binarización adaptativa que utilicé en mi último proyecto utiliza imágenes integrales para el cálculo rápido de la función de umbral utilizada por el método Sauvola. El método Sauvola se describe en:

  • J. Sauvola y M. Pietikainen, Binarización adaptativa de imágenes de documentos, Pattern Recognition 33, 2000. - pdf

En este documento se describe la modificación que utiliza imágenes integrales que proporcionan una aceleración de 20 veces (según el documento):

  • F. Shafait, D. Keysers y TM Breuel, Implementación eficiente de técnicas locales de umbral adaptativo utilizando imágenes integrales, Reconocimiento y recuperación de documentos XV, 2008 - pdf

Estos son solo los documentos que utilicé al elegir el método de binarización para mi proyecto (para encontrar texto en imágenes). No soy un experto, así que no puedo decir qué método es el mejor para cada aplicación.

ppalasek
fuente
6

Esta pregunta ha sido respondida muy bien desde diferentes perspectivas, y solo quiero resumir mi experiencia y también enfatizar algunos problemas relacionados con la binarización adaptativa.

La binarización adaptativa se puede dividir en tres categorías:

1) Método global: con este método se estima primero el fondo de la imagen; después de eso, se genera una imagen normalizada con la ayuda de la información de fondo. Entonces se emplea el método de binarización global.

2) Método basado en parche: como su nombre indica, el método basado en parche realizará la binarización parche por parche. En cada parche, se estima una binarización con un método de binarización global. Después de eso, se realiza un procesamiento posterior para demandar que el umbral de binarización en parches vecinos tenga una transición suave.

3) Método de ventana móvil: con este método, la binarización se realiza píxel por píxel. Se configura una ventana móvil para calcular las estadísticas de píxeles dentro de la ventana y, en función de las estadísticas, se calcula el umbral para el píxel central dentro de la ventana.

Es muy difícil saber qué método es el mejor, ya que depende de la aplicación. Cuando piense en una binarización adaptativa, no olvide considerar las siguientes preguntas:

1) configuración de parámetros: ¿el método tiene un procedimiento de configuración automática de parámetros? ¿Cómo podemos establecer los parámetros muy bien para que pueda funcionar en la mayoría de los casos?

2) ¿Cuál es el criterio para justificar una buena binarización adaptativa? En muchos casos, la diferencia entre los diferentes métodos de binarización es realmente pequeña. Sin embargo, la pequeña diferencia puede conducir a una gran diferencia al final.

3) ¿puede la binarización funcionar en algunas situaciones particulares? Por ejemplo, supongamos que el objetivo de la binarización adaptativa es extraer mientras los objetos del fondo negro, ¿puede la binarización adaptarse automáticamente a esta situación? O vice visa.

4) los métodos adaptativos tienen la tendencia de enfocarse solo en las configuraciones locales, por lo tanto, el resultado binario no está optimizado. Por ejemplo, el famoso método Sauvola generará un objeto hueco si el objeto a optimizar es mucho más grande que la ventana en movimiento. ¿Puede su método adaptativo conquistar esta limitación?

5) preprocesamiento. Una buena binarización también debe incluir información privilegiada de procesamiento de imágenes. Si la imagen está demasiado borrosa, puede ajustar automáticamente los parámetros del algoritmo o invocar algún preprocesamiento para evitar una mala binarización.

sentirse libre
fuente