JSON, o Notación de Objetos JavaScript, es un formato de datos ligero y legible por humanos muy utilizado para el intercambio de datos, especialmente en aplicaciones web y sistemas basados en datos. Su simplicidad y facilidad de análisis por parte de las máquinas lo han convertido en una piedra angular de la programación moderna, incluso en el ámbito de la Inteligencia Artificial (IA) y el Aprendizaje Automático (AM). JSON facilita el intercambio fluido de datos, la configuración de modelos y la eficacia de las aplicaciones en tiempo real, lo que lo convierte en una herramienta indispensable para desarrolladores e investigadores. Proporciona una forma estandarizada de estructurar los datos que tanto los humanos como los ordenadores pueden entender fácilmente, tal y como se define en el estándar oficial de intercambio de datos JSON ECMA-404. También puedes encontrar más información en JSON.org.
Características principales
La estructura de JSON se basa en dos elementos fundamentales:
- Pares clave-valor: Colecciones de pares nombre/valor, a menudo denominadas objetos, diccionarios o matrices asociativas en distintos lenguajes de programación. La clave siempre es una cadena, y el valor puede ser una cadena, un número, un booleano, una matriz u otro objeto JSON.
- Listas ordenadas: Secuencias ordenadas de valores, conocidas como matrices o listas. Los valores de una matriz pueden ser de cualquier tipo de datos JSON válido.
Esta estructura sencilla hace que los archivos JSON sean fáciles de crear, leer y modificar. Es agnóstico al lenguaje, lo que significa que puede utilizarse en diferentes lenguajes de programación como Python y plataformas sin problemas de compatibilidad, lo que lo hace muy versátil para sistemas distribuidos y microservicios.
Aplicaciones en IA y ML
JSON desempeña un papel crucial en varios aspectos de los flujos de trabajo de IA y ML:
- Configuración de modelos: Aunque a menudo se prefiere YAML para configuraciones complejas debido a su mayor legibilidad, JSON se utiliza con frecuencia en las llamadas a la API para especificar parámetros de configuración o dentro de archivos de configuración más sencillos.
- Anotación de datos y conjuntos de datos: En visión por ordenador (VC), JSON es un formato habitual para almacenar anotaciones para tareas como la detección de objetos y la segmentación de imágenes. Los archivos de anotación suelen contener listas de objetos, cada uno con etiquetas de clase, coordenadas de caja delimitadora o polígonos de segmentación representados en formato JSON. Muchos conjuntos de datos estándar como COCO utilizan JSON para su estructura de anotación.
- Comunicación API: JSON es la norma de facto para el intercambio de datos en las API web, incluidas las utilizadas en los servicios de IA y ML. Cuando se interactúa con modelos de IA alojados en plataformas de computación en nube o puntos finales dedicados que utilizan protocolos como REST, los datos de entrada (por ejemplo, URL de imágenes, texto) suelen enviarse como carga útil JSON, y las predicciones del modelo (por ejemplo, objetos detectados, probabilidades de clase, puntuaciones de confianza) se devuelven en formato JSON.La API de Inferencia Ultralytics utiliza JSON para el formato de solicitud y respuesta.
- Almacenamiento de los resultados del modelo: Los resultados de la inferencia o evaluación del modelo, como las clases predichas, los cuadros delimitadores o las métricas de rendimiento como la Precisión Media (mAP), pueden almacenarse cómodamente en archivos JSON. Este formato estructurado facilita el análisis sintáctico, el análisis o la integración de los resultados en procesos MLOps más amplios.
Ejemplos reales
He aquí un par de ejemplos que ilustran las aplicaciones prácticas de JSON en IA y ML:
- Vehículos autónomos: Los datos de los sensores de las cámaras, el lidar y el radar de los coches autónomos a menudo deben procesarse y comunicarse entre los distintos componentes del sistema. JSON puede utilizarse para estructurar estos datos, representando los objetos detectados con sus tipos, posiciones, velocidades y niveles de confianza, antes de introducirlos en los algoritmos de toma de decisiones, a menudo impulsados por modelos de aprendizaje profundo. Empresas como Waymo confían en formatos de datos robustos para sus complejos sistemas.
- Ultralytics HUB: Al interactuar con Ultralytics HUB mediante programación a través de su API, las solicitudes para iniciar trabajos de entrenamiento, cargar conjuntos de datos o recuperar métricas de rendimiento de modelos suelen implicar el envío y la recepción de datos formateados como JSON. Esto permite una integración perfecta de las capacidades del HUB en flujos de trabajo y aplicaciones personalizados.