Probé la segmentación semántica y esto es lo que aprendí: hacia la IA

Estás leyendo la publicación: Probé la segmentación semántica y esto es lo que aprendí: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Introducción

La segmentación semántica es una tarea de clasificación de píxeles con muchas aplicaciones valiosas, como la detección de objetos y la recuperación de imágenes. A pesar de su utilidad, la segmentación semántica puede ser difícil de lograr buenos resultados. En esta publicación de blog, compartiré mi experiencia al probar la segmentación semántica por primera vez y las lecciones que aprendí de ella.

¿Qué es la segmentación semántica?

La segmentación semántica es un tipo de tecnología de visión artificial que permite identificar objetos dentro de una imagen. Esto se logra asignando a cada píxel de la imagen una etiqueta de clase, que indica qué objetos están presentes en esa ubicación en particular.

Por ejemplo, en una imagen que contiene una persona y un perro, la segmentación semántica identificaría los píxeles correspondientes a la persona pertenecientes a la clase “persona” y los correspondientes al perro como pertenecientes a la clase “perro”.

Hay muchas aplicaciones potenciales para la segmentación semántica. Un ejemplo son los automóviles autónomos, que deben poder identificar con precisión los objetos en la carretera para evitar accidentes. Otro ejemplo son las imágenes médicas, donde la segmentación semántica puede identificar automáticamente diferentes tipos de tejido (p. ej., canceroso frente a no canceroso).

Decidí probar la segmentación semántica porque estaba interesado en explorar sus aplicaciones potenciales en imágenes médicas. Mis objetivos eran aprender a implementar la segmentación semántica mediante el aprendizaje profundo y ver si se podía utilizar para identificar con precisión diferentes tipos de tejido a partir de resonancias magnéticas.

🔥 Recomendado:  Revisión de You.com (características, capacidades y limitaciones)

Por qué decidí probar la segmentación semántica

Decidí probar la segmentación semántica por varias razones:

Quería entender mejor cómo funciona esta técnica y sus posibles aplicaciones.

Tenía curiosidad por ver si podía mejorar los resultados de los métodos tradicionales de segmentación de imágenes.

Quería experimentar con un conjunto de datos diferente al que había usado antes para ver si eso marcaría una diferencia en los resultados.

Para lograr estos objetivos, utilicé el conjunto de datos de CamVid (http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/). Este conjunto de datos contiene imágenes de escenas urbanas, que pensé que sería interesante segmentar. Además, el conjunto de datos de CamVid viene con etiquetas precalculadas para cada imagen, lo que facilitó la evaluación de mis resultados.

Cómo implementé la segmentación semántica.

La segmentación semántica es una técnica de visión artificial que clasifica cada píxel de una imagen en una categoría predefinida. Esto difiere de la clasificación de imágenes tradicional, que solo asigna una etiqueta a una imagen completa. Los modelos tradicionales de clasificación de imágenes están limitados porque no pueden proporcionar información detallada sobre una imagen. La segmentación semántica permite una comprensión más granular de una imagen al etiquetar cada píxel, lo que permite una mejor toma de decisiones y un mejor rendimiento en las tareas de detección de objetos y comprensión de escenas.

Decidí probar la segmentación semántica por dos razones:

Primero, para comprender mejor la técnica y, segundo, para ver si podía mejorar los resultados de mis modelos de detección de objetos. Mi conjunto de datos consistía en imágenes de automóviles, bicicletas y peatones tomadas con una cámara montada en un vehículo. Usé este conjunto de datos porque era lo suficientemente pequeño para ser manejable pero lo suficientemente grande para representar datos del mundo real.

🔥 Recomendado:  Vigilancia: los proveedores de Amazon están vinculados al trabajo forzoso en China

El procesamiento previo de los datos fue relativamente simple; Tuve que cambiar el tamaño de las imágenes y dividirlas en conjuntos de entrenamiento, validación y prueba. Construir el modelo de segmentación semántica fue más complicado; Tuve que decidir qué arquitectura usar (elegí U-Net) y qué función de pérdida sería la más apropiada (elegí la entropía cruzada). Entrenar al modelo también fue un desafío; Tuve que experimentar con diferentes optimizadores y tasas de aprendizaje antes de decidirme por Adam con una tasa de aprendizaje de 0,001.

En general, descubrí que la segmentación semántica no era tan difícil como esperaba. La parte más difícil fue elegir los hiperparámetros correctos, pero incluso eso no fue tan malo una vez que le cogí el truco. Los resultados de mi experimento fueron prometedores; en mi conjunto de validación, mi modelo logró una puntuación de IoU de 0,87, lo cual es bastante bueno teniendo en cuenta que la segmentación semántica es notoriamente complicada.

Resultados de mi experimento de segmentación semántica.

Métricas de evaluación

Después de entrenar el modelo, lo evalué en el conjunto de prueba usando dos métricas: intersección sobre unión media (mIOU) y precisión de píxel. La métrica mIOU mide la superposición promedio entre el mapa de segmentación predicho y el mapa de segmentación real. Por el contrario, la precisión de píxeles mide el porcentaje de píxeles clasificados correctamente.

Resultados cualitativos

En general, estoy satisfecho con los resultados cualitativos de mi experimento de segmentación semántica. En muchos casos, el modelo identificó correctamente objetos en escenas complejas con múltiples entidades.

También hubo algunos casos en los que el modelo tuvo problemas, como cuando hubo una oclusión significativa o cuando el objeto era pequeño en la imagen.

🔥 Recomendado:  MLOps: una inversión hacia un futuro más seguro

Lecciones aprendidas

Una de las principales lecciones que aprendí de este experimento es que la segmentación semántica es un problema complicado y todavía hay mucho margen de mejora. Además, descubrí que incluso pequeños cambios en la arquitectura del modelo o el procedimiento de capacitación pueden afectar significativamente los resultados.

En general, encontré segmentación semántica un problema fascinante y desafiante, y espero seguir explorándolo en el futuro.

Conclusión

En general, encontré que la segmentación semántica es una herramienta valiosa con muchas aplicaciones potenciales. Fue relativamente fácil de implementar y dio buenos resultados. Si tiene un negocio, existen varias empresas como Cogito Tech, Anolytics.AI y otras que brindan servicios de segmentación semántica. Todavía hay algunas áreas para mejorar, pero me alienta lo que he visto.

Espero ver más avances en esta área.


Probé la segmentación semántica y esto es lo que aprendí se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA