Want to make creations as awesome as this one?

Transcript

Ejemplo de uso práctico de k-means: compresión de imágenes

Autor: Diego Rodríguez Copado

Introducción

La compresión de imágenes es una técnica crucial en el procesamiento de imágenes, especialmente en la era digital donde el almacenamiento y la transmisión eficiente de datos son fundamentales. En este texto exploramos cómo se puede utilizar el algoritmo K-means para la compresión de imágenes, para mostrar aplicación práctica del mismo que a priori a lo mejor no resulta del todo obvia.

El fundamento

Ejemplo de uso práctico de k-means: compresión de imágenes - Introducción

Ejemplo de uso práctico de k-means: compresión de imágenes - Introducción

El objetivo de esta lectura de profundización es mostrar al alumno la aplicación práctica del algoritmo, con la esperanza de que sea capaz en el futuro de encontrar otros usos innovadores del mismo.

En la compresión con pérdidas

Hay dos tipos de compresión

Ejemplo de uso práctico de k-means: compresión de imágenes - Introducción

Conceptos básicos de la compresión de imágenes

La compresión de imágenes se refiere al proceso de reducir el tamaño en bytes de una imagen sin degradar su calidad de manera significativa. El objetivo es disminuir el espacio de almacenamiento necesario y optimizar la velocidad de transmisión de las imágenes a través de las redes.

K-means en la compresión de imágenes

Ejemplo de uso práctico de k-means: compresión de imágenes - K-means en la compresión de imágenes

El algoritmo K-means puede utilizarse para la compresión de imágenes con pérdida. Este método se basa en la agrupación de colores similares en una imagen y la representación de estos grupos con un color promedio, reduciendo así la cantidad total de colores utilizados en la imagen.

Selección de K:

Los centroides se recalculan

02

Este proceso se repite

03

El algoritmo

Ejemplo de uso práctico de k-means: compresión de imágenes - K-means en la compresión de imágenes

01

Ejemplo de uso práctico de k-means: compresión de imágenes - Outliers en la compresión de imágenes

Outliers en la compresión de imágenes

K-means

Los outliers en este contexto se refieren a los píxeles en una imagen cuyas propiedades de color son sustancialmente diferentes de la mayoría de los otros píxeles. Estos píxeles atípicos pueden influir notablemente en el resultado de la compresión de imágenes mediante K-means.

Ejemplo de uso práctico de k-means: compresión de imágenes - Outliers en la compresión de imágenes

En presencia de outliers significativos, el algoritmo podría generar clusters adicionales solo para acomodar estos píxeles atípicos. Esto podría resultar en una compresión menos efectiva, pero puede que sea necesario en función de la imagen:

Ejemplo de uso práctico de k-means: compresión de imágenes - Outliers en la compresión de imágenes

En el anterior ejemplo, el color naranja de los peces contrasta con el del resto de la imagen, generando outliers que desplazan el color del resto de los centroides, mientras que el suyo se muestra incorrectamente. Para solucionarlo, debemos configurar un K suficiente para acomodar todos los grupos de colores de la imagen:

Ejemplo de uso práctico de k-means: compresión de imágenes - Outliers en la compresión de imágenes

La elección de K determinará el nivel de compresión de la imagen, a un K mayor, la imagen tendrá mayor calidad a costa de ocupar más espacio, mientras que para un K menor la imagen ocupará menos pero tendrá pérdidas en la calidad.

Ejemplo de uso práctico de k-means: compresión de imágenes - Conclusiones

El algoritmo K-Means puede utilizarse para trabajar con imágenes, por ejemplo, en su compresión. También es conocida su utilización en el reconocimiento de imágenes.

Conclusiones

El uso del algoritmo K-means

Ejemplo de uso práctico de k-means: compresión de imágenes - Conclusiones

Uno de los desafíos en la compresión de imágenes con K-means es el manejo de outliers, es decir, píxeles con colores muy distintos al resto. Estos pueden afectar la precisión de los centroides, llevando a una representación inexacta de los colores en la imagen. Por tanto, es importante considerar la naturaleza de la imagen y ajustar K de manera que se equilibre la necesidad de compresión con la representación precisa de todos los colores importantes en la imagen.

Ejemplo de uso práctico de k-means: compresión de imágenes - Bibliografia utilizada

Image compression using K-means clustering (2023, mayo 29). Charmot, S. (2023, enero 16). Clear, Visual Explanation of K-Means for Image Compression with GIFsBrenda N. (2023, junio 26). K-Means Clustering (Image Compression) Jagajith (2021, octubre 11). Image Compression with K-means Clustering

Bibliografia utilizada

Tema revisado

El algoritmo agrupa los píxeles de la imagen según la similitud de sus colores. Cada píxel se asigna al centroide (color promedio) del cluster más cercano.

El uso del algoritmo K-means en la compresión con pérdidas de imágenes se basa en la agrupación de píxeles según la similitud de sus colores, lo que resulta en una reducción significativa de la cantidad de colores utilizados, y por lo tanto, del espacio necesario para codificar la imagen. Esta técnica reduce el tamaño del archivo mientras mantiene una calidad de imagen aceptable, aprovechando las limitaciones de la percepción humana para eliminar colores casi idénticos. Sin embargo, es crucial encontrar un equilibrio adecuado entre el número de clusters (K) y la calidad de la imagen resultante. Un K demasiado bajo puede degradar la calidad de la imagen, mientras que un K demasiado alto no proporciona una compresión significativa.

Hay dos tipos de compresión de imágenes: compresión con pérdida y compresión sin pérdida. Ambas buscan reducir el tamaño de los ficheros, eliminando o reorganizando información de forma más eficiente. La compresión con pérdida reduce el tamaño del archivo eliminando parte de la información de la imagen, lo que puede afectar a la calidad de la imagen mientras que la compresión sin pérdida reduce el tamaño del archivo sin perder información de la imagen.

Los centroides se recalculan como el promedio de los colores de todos los píxeles en ese cluster.

Este proceso se repite hasta que los centroides no cambian significativamente, lo que indica que los clusters se han estabilizado.

El fundamento de esta técnica es sencillo: Esta técnica segmenta una imagen en un número predefinido de clusters, donde cada cluster representa un color. El proceso comienza con la selección aleatoria de K puntos, conocidos como centroides, que representan los colores iniciales. Luego, cada píxel de la imagen se asigna al centroide más cercano basándose en la distancia euclidiana, lo que significa que cada píxel se etiqueta con uno de los K colores. Después de la asignación inicial, se recalculan los centroides como el promedio de todos los píxeles asignados a cada cluster. Este proceso de asignación y cálculo se repite iterativamente hasta que se alcanza la convergencia, es decir, hasta que los centroides ya no cambian significativamente.

Selección de K: K-means comienza con la selección del número de clusters (K). En el contexto de la compresión de imágenes, cada cluster representa un color diferente. Por lo tanto, K determina el número de colores únicos en la imagen comprimida. Un K muy pequeño reducirá enormemente la calidad de la imagen, mientras que uno muy alto no ofrecerá ganancias significativas en tamaño.

En la compresión con pérdidas, se intenta tener un equilibrio entre la reducción en peso de la imagen y la calidad de la misma, y a menudo se explotan las limitaciones biológicas de nuestra visión para eliminar colores casi idénticos, de forma que con una pérdida inapreciable de la calidad para el ojo humano, conseguimos reducir bastante el peso de una imagen.

K-means determina los centroides (colores representativos) basándose en la media de los colores de los píxeles en cada cluster. Los outliers pueden desplazar significativamente la posición del centroide, llevando a una representación inexacta de los colores mayoritarios en un cluster.