Un artículo para comprender el algoritmo de binarización de imágenes

La visión artificial tradicional generalmente incluye dos pasos: preprocesamiento y detección de objetos. Y es un puente entre la segmentación de dos imágenes (Segmentación de imágenes ) [. 1]. La segmentación de imágenes hace que la imagen sea más fácil de analizar al simplificar o cambiar la representación de la imagen.

Por ejemplo, se ha importado un nuevo lote de pollos de engorde a una planta de procesamiento de alimentos y desea detectar visualmente su delicia. Después de preprocesar y optimizar la imagen, la máquina debe primero separar el pollo del fondo en la imagen y analizar el área de interés por separado para hacer un juicio rápido y preciso.

Procesamiento visual en plantas procesadoras de alimentos

Sin embargo, la segmentación de imágenes no es fácil para la estúpida IA. Los seres humanos inteligentes pueden ver de un vistazo lo que se puede y no se puede comer en la siguiente imagen. Pero se necesita mucho esfuerzo para que la computadora separe estas cosas.

Imagen original

 

Resultado de la segmentación de imágenes

El método de segmentación de imágenes más simple es la binarización .

La binarización de imágenes es el proceso de establecer el valor de gris de los píxeles de la imagen en 0 o 255, es decir, la imagen completa presenta un efecto obvio en blanco y negro. Cada píxel de una imagen binaria tiene solo dos valores: negro puro o blanco puro.

Comparación de imagen en color, imagen gris e imagen binaria

Debido a que los datos de imágenes binarias son bastante simples, muchos algoritmos de visión se basan en imágenes binarias. A través de la imagen binaria, se puede analizar mejor la forma y el contorno del objeto. La imagen binaria también se usa a menudo como máscara para la imagen original (también conocida como máscara, máscara o Máscara) : es como un papel parcialmente ahuecado, que enmascara las áreas que no nos interesan. Binarizando una variedad de formas, la más común es el uso del método de umbral ( Thresholding ) que se binariza.

En visión por computadora, generalmente se usa una matriz para representar una imagen. En otras palabras, no importa lo deliciosas que se vean sus imágenes, no son más que una matriz para la computadora.

En esta matriz, cada píxel es un elemento de la matriz. En una imagen en color de tres canales, este elemento es una tupla compuesta por tres números.

Imagen en color de tres canales

Para imágenes en escala de grises de un solo canal, este elemento es un número. Este número representa el brillo de la imagen en este punto. Cuanto mayor sea el número, más brillante será el píxel. En un espacio de color común de un solo canal de 8 bits, 0 representa todo negro y 255 representa todo blanco.

Imagen en escala de grises de un solo canal

El método de umbral consiste en seleccionar un número, mayor de lo que se considera completamente blanco y menor de lo que se considera completamente negro. Al igual que un interruptor de luz en un salón de clases, lo presionamos suavemente, y si de repente excede un cierto umbral, la luz se encenderá con un chasquido.

Según los diferentes métodos de selección de umbral, se puede dividir en umbral global y umbral local.

1. Umbral global (método global)

El umbral global se refiere a la selección del mismo umbral para cada píxel en toda la imagen. Podemos experimentar esta operación en Imagen — Ajustar — Umbral de Photoshop:

Umbral en Photoshop

Se puede ver que durante el movimiento del nivel de umbral de 1 a 255, cada vez más áreas de la imagen se vuelven negras. Cuando el número de umbral está dentro de un cierto rango, el contorno de la salchicha de arroz rojo se distingue claramente.

La binarización correcta hace que el contorno de los intestinos de arroz rojo sea claro y reconocible

En el entorno de la línea de producción, se conoce la luz y, a menudo, se establece un número fijo como umbral global. Pero en las competiciones al aire libre o de robots, las condiciones de iluminación suelen ser más complicadas.

El mismo helado de Oreo, durante el día y la noche, la cámara ve que la imagen puede no ser la misma, el umbral constante no puede adaptarse a estas dos situaciones al mismo tiempo.

Diferentes imágenes claras y oscuras.

Para la noche más oscura de la imagen, necesitamos un umbral relativamente bajo, por ejemplo, establecer el umbral en 50, que puede separar claramente los colores blanco y negro por la noche, pero durante el día, será blanco (izquierda); si establecemos El umbral se establece relativamente alto, como 172, que se puede segmentar sin problemas durante el día, pero es completamente negro por la noche (derecha). Necesitamos algoritmos que se puedan adaptar a entornos complejos.

Umbral a la izquierda = 50, umbral a la derecha = 172

De hecho, después de un pequeño análisis, podemos encontrar que la diferencia de color en esta imagen es bastante obvia, y solo hay dos colores, oscuro y claro. Por lo tanto, ya sea de día o de noche, su histograma de gradación de color debe ser dos picos obvios, que representan las áreas oscuras y claras, respectivamente. Es solo que el histograma de gradación se desplazará hacia la derecha durante el día y hacia la izquierda durante la noche.

Histograma de imagen

Si elige el valle entre los dos picos como umbral, puede separar fácilmente los dos tipos de píxeles. Sin embargo, el histograma de la imagen suele ser discontinuo, con muchos picos y fluctuaciones, y es muy difícil encontrar el punto extremo exacto.

El ingeniero japonés Otsu Nobuyuki encontró una expresión matemática adecuada para esta depresión y la publicó en 1979 [2]. Este método de binarización se llama método de Otsu ( método de Otsu ) . El algoritmo de Otsu es similar a la simulación de discretización del análisis discriminante de Fisher unidimensional. Se utiliza un método exhaustivo para encontrar un número de umbral, y estos píxeles se cortan en dos categorías, de modo que la varianza intraclase del brillo de los dos tipos de píxeles es la más pequeña. La variación intraclase se refiere a la suma ponderada de las variaciones de los dos tipos de píxeles, donde el peso se refiere a la relación entre el número de píxeles y el número de píxeles de la imagen completa.

Quizás tu imagen no solo tenga dos masas de colores con grandes diferencias, por ejemplo, este helado tiene tres picos nítidos.

Helado de tres colores (tome el histograma de la parte del helado)

En este momento, solo se puede hacer extendiendo ligeramente el algoritmo de Otsu. La generalización multinivel del algoritmo de Otsu se convierte en el método multi-Otsu ( método multi Otsu ) [3].

2. Método local

El método local también se denomina umbralización adaptativa.

Durante el juego, los focos a menudo brillan en un área específica, creando una escena donde se recibe parte de la luz pero no parte de la luz.

Imagen parcialmente iluminada

Cuando se aplica un umbral global a una imagen parcialmente iluminada, puede resultar embarazoso que "no importa qué parámetro de umbral se establezca, no se puedan cumplir los requisitos de la imagen completa". Por ejemplo, en la imagen de arriba, cuando el umbral global se aplica directamente, cuando todo el sushi de la mitad superior izquierda está expuesto, la mitad inferior derecha sigue siendo negra.

Procesamiento de umbral global de imagen iluminada localmente

En este momento, usaremos el umbral local para tratar. De hecho, el ojo humano también viene con este paso de operación. Determinamos la profundidad de color de un objeto, que a menudo se ve afectada por el color alrededor del objeto, por lo que los dientes negros se ven más blancos.

El método de umbral local asume que la iluminación de la imagen en un área determinada es relativamente cercana. Escanea la imagen con una ventana deslizante y compara el brillo del punto central de la ventana deslizante con el brillo de otras áreas (llamadas área de vecindad ) en la ventana deslizante . Si el brillo del punto central es más alto que el brillo del vecindario , el punto central se marca como blanco; de lo contrario, se marca como negro.

Ventana corredera de umbral local

 

Aquí se menciona el método básico de umbral local. Para otros métodos de umbral local comúnmente utilizados en el uso real, consulte el método de umbral adaptativo de Chow-Kaneko [4].

La aplicación del umbral local es muy extensa, especialmente porque el procesamiento de papel blanco y texto negro es muy eficaz. Muchos algoritmos para el reconocimiento óptico de caracteres (OCR) y el escaneo de códigos QR utilizan operaciones de umbral local.

Por ejemplo, el siguiente código bidimensional es una imagen típica de recepción de luz parcial:

Código QR parcialmente iluminado

 

Si se usa un umbral global para esta imagen (por ejemplo, la imagen de abajo está segmentada usando el algoritmo de Otsu), no se puede segmentar correctamente de todos modos.

El método global no puede procesar la imagen receptora de luz local.

 

El método de umbral local puede segmentar bien la imagen. Se puede observar claramente en la imagen que el método de umbral local es más sensible a los detalles de un área limpia grande, por lo que hay muchas manchas en el papel que no notamos.

Método parcial para segmentar el código QR

En la aplicación real, tenemos que elegir diferentes métodos de binarización según las necesidades, y ningún método es absolutamente perfecto.

Por ejemplo, al identificar robots enemigos, debido a que la barra de luz de la pieza de armadura es un objeto que se ilumina automáticamente, se ve menos afectada por la luz ambiental. Para mejorar la eficiencia del programa, utilizamos un número fijo como umbral global:

Contraataque automático base

En el reconocimiento del órgano energético, dado que el órgano energético tiene solo dos colores, blanco y negro, utilizamos el algoritmo de Otsu y sus múltiples variantes:

Gráfico binario de cada área del órgano de energía grande

Cuando el robot aéreo lee el código QR en el área de la base, se utiliza el método de umbral local:

Base de reconocimiento de robot aéreo

Además de los métodos de segmentación de imágenes basados ​​en umbrales, los métodos de segmentación comúnmente utilizados también pueden basarse en bordes (como el método de umbral adaptativo de Yanowitz-Bruckstein [5]), regiones (como el algoritmo de crecimiento de regiones [6]), etc. utilizado en el procesamiento de imágenes satelitales, sistemas de control de tráfico, monitoreo de producción industrial, imágenes médicas y otros campos juegan un papel muy importante.

Segmentación de la imagen del tejido cerebral

 

La implementación de OpenCV del método de umbral descrito en este artículo, consulte el blog: Experimento de procesamiento de imágenes de Python + OpenCV

Efecto del proyecto

referencias

[1] Spirkovska, L. (1993). Un resumen de las técnicas de segmentación de imágenes.

[2] Nobuyuki Otsu (1979). "Un método de selección de umbral a partir de histogramas de nivel de gris". IEEE Trans. Sys., Man., Cyber9  (1): 62–66.

[3] Ping-Sung Liao y Tse-Sheng Chen y Pau-Choo Chung (2001). "Un algoritmo rápido para umbrales multinivel". J. Inf. Sci. Eng17  (5): 713–727.

[4] Chow, CK; y Kaneko, T .: Detección de límites de imágenes radiográficas mediante un método de umbralización. Frontiers of Pattern Recognition, S. Watanabe, ed., Academic Press, Nueva York, 1972, págs. 61-82.

[5] Yanowitz, SD y Bruckstein, AM (1988, noviembre). Un nuevo método para la segmentación de imágenes. En  Pattern Recognition, 1988., 9th International Conference on  (págs. 270-275). IEEE.

[6] Richardson H W. Teoría del crecimiento regional [M]. Macmillan, 1973.

Supongo que te gusta

Origin blog.csdn.net/m0_38106923/article/details/115206093
Recomendado
Clasificación