JSON, ou JavaScript Object Notation, é um formato de dados leve e legível por humanos, amplamente utilizado para o intercâmbio de dados, especialmente em aplicações Web e sistemas orientados por dados. A sua simplicidade e facilidade de análise por máquinas tornaram-no numa pedra angular da programação moderna, incluindo no domínio da Inteligência Artificial (IA) e da Aprendizagem Automática (AM). O JSON facilita a troca de dados sem problemas, a configuração de modelos e aplicações eficientes em tempo real, tornando-o uma ferramenta indispensável para programadores e investigadores. Fornece uma forma normalizada de estruturar dados que tanto os humanos como os computadores podem compreender facilmente, tal como definido pela norma oficial ECMA-404 JSON Data Interchange Standard. Mais informações podem ser encontradas em JSON.org.
Caraterísticas principais
A estrutura do JSON assenta em dois elementos fundamentais:
- Pares de chave-valor: Colecções de pares nome/valor, muitas vezes referidas como objectos, dicionários ou arrays associativos em diferentes linguagens de programação. A chave é sempre uma cadeia de caracteres e o valor pode ser uma cadeia de caracteres, um número, um booleano, uma matriz ou outro objeto JSON.
- Listas ordenadas: Sequências ordenadas de valores, conhecidas como arrays ou listas. Os valores numa matriz podem ser de qualquer tipo de dados JSON válido.
Esta estrutura simples torna os ficheiros JSON fáceis de criar, ler e modificar. É independente da linguagem, o que significa que pode ser utilizado em diferentes linguagens de programação, como Python e plataformas sem problemas de compatibilidade, tornando-o altamente versátil para sistemas distribuídos e microsserviços.
Aplicações em IA e ML
O JSON desempenha um papel crucial em vários aspectos dos fluxos de trabalho de IA e ML:
- Configuração do modelo: Embora o YAML seja frequentemente preferido para configurações complexas devido à sua melhor legibilidade, o JSON é frequentemente utilizado em chamadas de API para especificar parâmetros de configuração ou em ficheiros de configuração mais simples.
- Anotação de dados e conjuntos de dados: Na visão computacional (CV), o JSON é um formato comum para armazenar anotações para tarefas como deteção de objetos e segmentação de imagens. Os ficheiros de anotação contêm frequentemente listas de objectos, cada um com etiquetas de classe, coordenadas de caixa delimitadora ou polígonos de segmentação representados no formato JSON. Muitos conjuntos de dados padrão , como o COCO, utilizam JSON para a sua estrutura de anotação.
- Comunicação API: O JSON é o padrão de facto para a troca de dados em APIs da Web, incluindo as utilizadas em serviços de IA e ML. Ao interagir com modelos de IA alojados através de plataformas de computação em nuvem ou pontos de extremidade dedicados utilizando protocolos como REST, os dados de entrada (por exemplo, URLs de imagens, texto) são frequentemente enviados como uma carga JSON e as previsões do modelo (por exemplo, objectos detectados, probabilidades de classe, pontuações de confiança) são devolvidas no formato JSON. AAPI de inferência Ultralytics utiliza JSON para a formatação de pedidos e respostas.
- Armazenamento de resultados do modelo: Os resultados da inferência ou avaliação do modelo, como classes previstas, caixas delimitadoras ou métricas de desempenho como a precisão média (mAP), podem ser convenientemente armazenados em arquivos JSON. Esse formato estruturado facilita a análise dos resultados, a análise ou a integração em pipelines de MLOps maiores.
Exemplos do mundo real
Eis alguns exemplos que ilustram as aplicações práticas do JSON em IA e ML:
- Veículos autónomos: Os dados de sensores de câmaras, lidar e radar em carros autónomos precisam frequentemente de ser processados e comunicados entre diferentes componentes do sistema. O JSON pode ser utilizado para estruturar estes dados, representando objectos detectados com os seus tipos, posições, velocidades e níveis de confiança, antes de os alimentar com algoritmos de tomada de decisão, muitas vezes alimentados por modelos de aprendizagem profunda. Empresas como a Waymo dependem de formatos de dados robustos para os seus sistemas complexos.
- Ultralytics HUB: Ao interagir com o Ultralytics HUB programaticamente através da sua API, os pedidos para iniciar trabalhos de formação, carregar conjuntos de dados ou recuperar métricas de desempenho do modelo envolvem frequentemente o envio e a receção de dados formatados como JSON. Isso permite a integração perfeita dos recursos do HUB em fluxos de trabalho e aplicativos personalizados.