CAPÍTULO 3. LOS PROCESOS DE SEGMENTACIÓN
4.1. PROCESAMIENTO DE LA IMAGEN Y ESTRATEGIAS ADOPTADAS
4.1.1. Detección de regiones de objetos solapados
4.1.1.3. Segmentación combinada RGB-HSV
Vistos los problemas que acarrean uno y otro método de segmentación, se ha optado por probar una combinación de ambos. De modo que inicialmente, se busca detectar los objetos presentes en la imagen haciendo uso de la segmentación RGB vista en el Apartado 4.1.1.1. Y posteriormente, haciendo uso de algunas de las informaciones que proporcionan las componentes del espacio de color HSV de la imagen original, así como del histograma bidimensional V/S, se realiza una post- segmentación de la imagen segmentada mediante RGB. Así, se busca detectar todos los objetos en la imagen incluidos los que carecen de cromaticidad y por otro lado, eliminar en la medida de lo posible los brillos y las sombras, buscando conseguir homogenización de las áreas detectadas. El esquema general seguido es el mostrado en la figura 4-16. El algoritmo para segmentar mediante el método RGB-HSV se divide en varias etapas como se indica en la figura 4-16. Los procedimientos que se implementan en esas etapas se comentan con más detalle en el algoritmo de la tabla 4-1.
Como se puede observar en la figura 4-14, el resultado de combinar ambos espacios de color, garantiza obtener colores más realistas y no tan arificiales como se obtenían en el modelo HSV, cuando la clusterización se llevaba a cabo únicamente con la cromaticidad. En el modelo RGB-HSV la clusterización se lleva a cabo con las tres componentes de color del espacio RGB. De este modo se proporcionan colores menos sintéticos y más parecidos a los colores de la imagen sin segmentar. Por otro lado, el usar componentes del espacio HSV para corregir algunas situaciones de iluminación, brillos de fondo y leves sombreados, permite conseguir segmentaciones más precisas. Además la combinación de ambos espacios permite mejorar el proceso de clusterización, evitando la fusión de
Capítulo 4. Detección de oclusiones
-91-
regiones no-homogeneas que podía ocurrir en la segmentación multinivel RGB (Figuras 4-12.d y 4- 13.d).
(i) Leer imagen RGB
(ii) Descomponer la imagen en sus tres canales o componentes de color. (iii) Obtener imagen HSV de acuerdo a la ecuación (3.32)
(iv) Suavizar cada canal o componente de color con un filtro de mediana para las imágenes RGB y HSV.
(v) Detectar umbrales:
• Para cada canal o componente de color:
a. Inicializar una constante, nu, que identifica el número máximo de umbrales a detectar a un valor entre 0 y 7. Generalmente se inicializa a 3.
b. Calcula el histograma normalizado de acuerdo a la ecuación (3.45). c. Calcula el valor máximo y mínimo del histograma.
d. Desde 0 hasta 255
i. Calcular la media media total μT según la ecuación (3.4)
ii. Calcular la varianza total σ según la ecuación (3.5) 2
iii. Definir límite inferior y superior del histograma Loy Lf
e. Desde 1 hasta nu repetir
i. Recorrer el histograma entre los límites definidos Loy Lf y hacer:
1. Inicializar escogiendo un valor de luminancia del histograma como umbral uk
2. Calcular la evolución de las varianzas para cada una de las dos gaussianas en que ukdivide el histograma de acuerdo a
la ecuación (4.3)
3. Calcular la varianza entre gaussianas σ2 para ese valor
k
u , computando las ecuaciones (4.4), (4.5) y (4.6), y
posteriormente: = ∑
(
−)
= n k 1 k k k k 2 1 0 1 0 2 01 ω ω μ μ σ4. Calcular la varianza total de las dos gaussianas
∑ + = = n k k k k k T 1 2 1 1 2 0 0 2 ω σ ω σ σ 5. Calcular la relación 2 2 01 / T
n=σ σ entre la varianza entre gaussianas y la varianza total. Si la nobtenida es mayor a la calculada en la iteración anterior se actualiza.
ii. Para el valor de uk que hace máxima la varianza entre gaussianas se
almacena la varianza y la media de cada gaussiana.
iii. Para el valor de uk se actualizan los límites definidos para el
Además se actualizan los valores mínimo y máximo del histograma para esos límites y se repite el proceso volviendo al paso (e.i) para cada nuevo uk calculado.
(vi) Colorear la imagen umbralizada RGB codificando cada píxel con un código de acuerdo a la ecuación (4.7).
(vii) Construir histograma V/S a partir de la imagen HSV obtenida en (iii) de acuerdo a la ecuación (3.47).
(viii) Ir al paso (v) y aplicar el cálculo de umbrales para la imagen HSV. (ix) Seleccionar umbrales en el histograma V/S.
a. Situar los umbrales obtenidos para la saturación y la luminancia en el histograma V/S obtenido en (vii).
b. Calcular las distribuciones de píxeles de cada una de las regiones en que queda dividido el histograma V/S al aplicar los umbrales de saturación y luminancia obtenidos en el paso anterior.
c. Reducir el número de umbrales detectados escogiendo únicamente los umbrales de saturación y luminancia que aislan las distribuciones de píxeles que corresponden a valores de saturaciones bajos y a niveles de luminancia muy altos y muy bajos en el histograma V/S.
(x) Colorear la imagen umbralizada HSV codificando cada píxel con un código de acuerdo a la ecuación (4.7) y eliminar las saturaciones e intensidades que están por debajo de los valores escogidos en el paso (ix).
(xi) Clusterizar la imagen HSV agrupando regiones. La agrupación se hace en función de la distancia mínima entre los códigos con los que se ha etiquetado cada píxel en el paso anterior.
(xii) Depurar la imagen RGB obtenida en el paso (vi):
• Identificar los píxeles de fondo calculando el máximo número de veces que se repite un valor por cada componente de la imagen HSV obtenida en el paso (xi).
• Aislar los objetos del fondo en la imagen RGB y colorear los píxeles del fondo con el valor medio de intensidad de cada componente de color.
(xiii) Clusterizar la imagen RGB del paso (xii) agrupando regiones.
a. Un píxel pertenece a una misma clase que otro cuando ambos están etiquetados con el mismo código del paso. El primer paso es obtener las medias de intensidad para cada clase.
b. Calcular la diferencia entre el valor de un píxel y la media de intensidad calculada para cada clase en el paso anterior (xiii.a). Se emplea la distancia Euclídea para calcularla.
c. Calcular las diferencias de medias de intensidad entre todos los píxeles que pertenecen a clases distintas.
d. Calcular la media de todas las distancias obtenidas en el paso (xiii.c) y construir una matriz con las distancias más cortas para cada clase.
e. Fusionar las clases a las que pertenecen las distancias más cortas, asignándoles la misma etiqueta y asegurándose que se cumpla el criterio de máxima varianza entre distancias.
Capítulo 4. Detección de oclusiones
-93-
Figura 4-14: Segmentación combinada RGB-HSV. a) Objetos segmentados. b) Objetos segmentados y clusterizados.
Figura 4-15: Vista tridimensional de las segmentaciones realizadas.
En el anexo B.1.1. se ha llevado a cabo una pequeña evaluación comparativa del coste temporal de ejecución de cada uno de los tres métodos de segmentación implementados, atendiendo al coste computacional de cada una de las fases o etapas de las que consta cada proceso de segmentación.
Figura 4-16: Diagrama de procesos en la segmentación combinada RGB-HSV.