La detección de objetos es uno de los problemas más fundamentales y desafiantes de la visión por ordenador. Se centra en identificar y localizar instancias de clases de objetos predefinidas (como barcos, personas o animales) en imágenes digitales.
¿Qué es la detección de objetos?
En comparación con la clasificación de imágenes, la detección de objetos proporciona más información sobre el contenido de una imagen. El siguiente ejemplo lo demuestra.
La clasificación de imágenes se limitaría a responder a la pregunta: “¿Qué objeto hay en la imagen?”. – diría “barco” como respuesta, si el modelo funciona bien. Si el modelo puede predecir varias clases, podría incluso decir “barco” y “objeto lejano”, pero esa es la máxima información que podemos obtener de él.
En comparación, la detección de objetos no sólo respondería a “¿Qué objeto hay en la imagen? “, sino también a “¿Cuántos objetos hay en la imagen?” y “¿Dónde se encuentran las imágenes?”.
Por supuesto, ésta es una respuesta más útil en muchos escenarios del mundo real, como la evitación de colisiones.
Aprendizaje profundo
Estas respuestas, también llamadas predicciones, son generadas por modelos. Hoy en día, los modelos son redes neuronales profundas (DNN).
Tipos de DNN
Existen varios tipos de DNN, pero hay dos que dominan tareas como la detección de objetos. El método de aprendizaje profundo más fundacional para la visión por ordenador utiliza las llamadas redes neuronales convolucionales (CNN).
Los investigadores inventaron la arquitectura de las CNN en 1980. Sin embargo, el gran avance que popularizó las CNN profundas no apareció hasta 2012, con la presentación de AlexNet.
Desde entonces, las CNN han sido un ingrediente fundacional en la visión por ordenador. Hace tan solo unos años, en 2017, los investigadores de Google presentaron los modelos Transformer, que se hicieron muy populares por su gran rendimiento de detección.
Sin embargo, no han sustituido totalmente a las CNN, ya que los Transformers tienden a ser más lentos, requieren más datos para el entrenamiento y más potencia de cálculo.
¿Cómo funcionan las DNN?
Estos modelos constan de varias capas apiladas unas sobre otras.
Cuando se introduce una imagen en el modelo, cada capa la procesa, y cada capa introduce su resultado en la siguiente.
El término “profundo” en el aprendizaje profundo se refiere a la presencia de un gran número de estas capas. La siguiente figura muestra un esquema muy simplificado de cómo se apilan estas capas.
Tenga en cuenta que éste es sólo un ejemplo de juguete; en la práctica, los modelos contienen muchas más capas, distintos tipos de capas y otros tipos de conexiones y operaciones de procesamiento.
En un sentido muy simplificado, se puede pensar en cada capa como un cálculo que utiliza la suma y la multiplicación.
Cada capa consta de varios parámetros, que son esencialmente números simples que utilizan estas operaciones matemáticas.
En cuanto al número total de parámetros por modelo, las DNN de detección de objetos pueden variar mucho: desde 2,4 millones de parámetros (YOLO26 nano, un modelo basado en CNN) hasta 218 millones de parámetros (una versión de DINO que utiliza una columna vertebral SwinL, un modelo basado en transformadores).
La esencia de la formación: los datos
Para obtener un modelo que haga buenas predicciones, hay que entrenarlo. Intuitivamente, durante este proceso, el modelo aprende qué aspecto tienen determinados tipos de objetos y cómo detectarlos correctamente.
En el aprendizaje profundo, los datos dirigen el proceso de entrenamiento. Esto significa que, en lugar de decirle explícitamente al modelo cómo se ven determinados tipos de objetos (algo esencialmente imposible), le proporcionamos grandes cantidades de datos y las predicciones deseadas (lo que se denomina “verdad básica”).
Basándose en estos dos factores, el modelo aprende a generar las mejores predicciones. Aunque esto pueda sonar un poco a magia, en esencia no es más que matemáticas: el modelo aprende los valores óptimos de los parámetros mediante un proceso de optimización matemática.
En efecto, aprende una función matemática no lineal muy compleja que resume mejor los datos dados. No es de extrañar que un conjunto de datos de alta calidad sea esencial para lograr un modelo fiable con resultados de detección correctos.
Normalmente dividimos el conjunto de datos en tres subconjuntos:
- Conjunto de datos de entrenamiento: incluye imágenes anotadas con recuadros delimitadores y etiquetas de clase. Estas anotaciones permiten al modelo aprender a detectar y clasificar objetos.
- Conjunto de datos de validación: incluye imágenes independientes, no vistas durante el entrenamiento, que utilizamos para ajustar las distintas configuraciones del modelo (por ejemplo, cuántas capas quiero utilizar, es decir, qué profundidad debe tener el modelo).
- Conjunto de datos de prueba: incluye imágenes independientes, no vistas durante el entrenamiento y la validación, que utilizamos para evaluar el rendimiento final del modelo.
Esta separación permite medir el rendimiento de forma objetiva y admite mejoras iterativas en aspectos clave como la velocidad de detección, la robustez frente a objetos multiescala (tamaños y distancias variables) y la precisión general.
Para mejorar continuamente el rendimiento del modelo, el conjunto de datos debe ampliarse periódicamente. Los datos se recogen en entornos operativos reales y en condiciones diversas para garantizar la solidez frente a una amplia gama de escenarios.
El proceso completo de recogida de datos se detalla aquí: ¿Cómo recopilamos datos para el entrenamiento de IA?
Especialmente en el caso del uso marítimo, el tamaño de los objetos presenta una dificultad particular. Con frecuencia, los objetos se sitúan relativamente lejos, lo que hace que aparezcan con poco detalle en la imagen.
Considere la siguiente imagen: los objetos existen claramente en cada cultivo, pero ¿a qué categorías corresponden los objetos?
Después de algún tiempo, se puede adivinar que el lado derecho muestra un velero y el izquierdo una boya esférica.
Sin embargo, no se trata de una distinción trivial (misma forma esférica, mismo color en las imágenes LWIR, etc.). Por lo tanto, en estos casos es especialmente importante disponer de un conjunto de datos amplio y de alta calidad para que el modelo pueda aprender a distinguir correctamente. Una vez más, esto demuestra por qué ponemos tanto énfasis en disponer de un buen conjunto de datos.
Comprender la detección de objetos marítimos mediante IA: reflexiones finales
La detección de objetos se centra en localizar (¿dónde?) y clasificar (¿qué?) todos los objetos de una imagen. Para ello, realiza una compleja operación matemática a partir de la imagen.
Aunque las operaciones matemáticas son intrincadas y suelen implicar millones de parámetros, el objetivo es sencillo: detectar con solidez todos los objetos de una imagen.
En nuestro caso, esto sirve de base para evitar con éxito las colisiones en el mar.