Glossario

JSON

Scopri come JSON semplifica i flussi di lavoro AI e ML con lo scambio di dati, la configurazione dei modelli e le applicazioni in tempo reale.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

JSON, o JavaScript Object Notation, è un formato di dati leggero e leggibile dall'uomo ampiamente utilizzato per lo scambio di dati, soprattutto nelle applicazioni web e nei sistemi data-driven. La sua semplicità e la facilità di analisi da parte delle macchine lo hanno reso una pietra miliare della programmazione moderna, anche nell'ambito dell'Intelligenza Artificiale (AI) e del Machine Learning (ML). JSON facilita lo scambio di dati, la configurazione dei modelli e l'efficienza delle applicazioni in tempo reale, rendendolo uno strumento indispensabile per sviluppatori e ricercatori. Fornisce un modo standardizzato di strutturare i dati che sia gli esseri umani che i computer possono facilmente comprendere, come definito dallo standard ufficiale ECMA-404 JSON Data Interchange Standard. Maggiori informazioni sono disponibili su JSON.org.

Caratteristiche principali

La struttura di JSON si basa su due elementi fondamentali:

  1. Coppie chiave-valore: Collezioni di coppie nome/valore, spesso chiamate oggetti, dizionari o array associativi in diversi linguaggi di programmazione. La chiave è sempre una stringa e il valore può essere una stringa, un numero, un booleano, un array o un altro oggetto JSON.
  2. Elenchi ordinati: Sequenze ordinate di valori, note come array o liste. I valori di un array possono essere di qualsiasi tipo di dati JSON valido.

Questa struttura semplice rende i file JSON facili da creare, leggere e modificare. È indipendente dai linguaggi, il che significa che può essere utilizzato in diversi linguaggi di programmazione come Python e piattaforme diverse senza problemi di compatibilità, il che lo rende molto versatile per i sistemi distribuiti e i microservizi.

Applicazioni in AI e ML

JSON svolge un ruolo cruciale in vari aspetti dei flussi di lavoro AI e ML:

  • Configurazione del modello: Mentre YAML è spesso preferito per le configurazioni complesse grazie alla sua maggiore leggibilità, JSON è spesso usato nelle chiamate API per specificare i parametri di configurazione o all'interno di file di configurazione più semplici.
  • Annotazione dei dati e dataset: Nella computer vision (CV), JSON è un formato comune per la memorizzazione di annotazioni per attività come il rilevamento di oggetti e la segmentazione di immagini. I file di annotazione spesso contengono elenchi di oggetti, ciascuno con etichette di classe, coordinate del rettangolo di selezione o poligoni di segmentazione rappresentati in formato JSON. Molti set di dati standard come COCO utilizzano JSON per la struttura delle annotazioni.
  • Comunicazione API: JSON è lo standard di fatto per lo scambio di dati nelle API web, comprese quelle utilizzate nei servizi di intelligenza artificiale e ML. Quando si interagisce con i modelli di intelligenza artificiale ospitati tramite piattaforme di cloud computing o endpoint dedicati che utilizzano protocolli come REST, i dati di input (ad esempio, URL di immagini, testo) vengono spesso inviati come payload JSON e le previsioni del modello (ad esempio, oggetti rilevati, probabilità di classe, punteggi di confidenza) vengono restituite in formato JSON. L'API Ultralytics Inference utilizza JSON per la formattazione delle richieste e delle risposte.
  • Memorizzazione dei risultati del modello: I risultati dell'inferenza o della valutazione del modello, come le classi previste, i bounding box o le metriche di performance come la precisione media (mAP), possono essere archiviati comodamente in file JSON. Questo formato strutturato rende i risultati facili da analizzare, analizzare o integrare in pipeline MLOps più ampie.

Esempi del mondo reale

Ecco un paio di esempi che illustrano le applicazioni pratiche di JSON nell'AI e nel ML:

  1. Veicoli autonomi: I dati dei sensori provenienti da telecamere, lidar e radar nelle auto a guida autonoma spesso devono essere elaborati e comunicati tra i diversi componenti del sistema. JSON può essere utilizzato per strutturare questi dati, rappresentando gli oggetti rilevati con i loro tipi, le loro posizioni, le loro velocità e i loro livelli di confidenza, prima di inserirli negli algoritmi decisionali, spesso alimentati da modelli di deep learning. Aziende come Waymo si affidano a formati di dati robusti per i loro sistemi complessi.
  2. Ultralytics HUB: quando si interagisce con Ultralytics HUB in modo programmatico tramite la sua API, le richieste per avviare lavori di formazione, caricare set di dati o recuperare le metriche di performance dei modelli spesso comportano l'invio e la ricezione di dati formattati come JSON. Questo permette di integrare perfettamente le funzionalità dell'HUB nei flussi di lavoro e nelle applicazioni personalizzate.

JSON vs. altri formati di dati

È utile confrontare JSON con altri formati comuni di serializzazione dei dati:

  • YAML (YAML Ain't Markup Language): YAML privilegia la leggibilità umana ed è spesso preferito per i file di configurazione (ad esempio, per definire le architetture dei modelli o i parametri di allenamento). Anche se JSON può essere utilizzato per la configurazione, la sintassi di YAML (che utilizza l'indentazione) è generalmente considerata più pulita e più facile da leggere per le strutture complesse annidate. JSON è in genere preferito per l'interscambio di dati tramite API grazie alle sue regole di parsing più semplici e al supporto diffuso.
  • XML (eXtensible Markup Language): XML è un altro linguaggio di markup utilizzato per codificare i documenti in un formato leggibile sia dall'uomo che dalla macchina. Rispetto a JSON, XML è più prolisso grazie all'uso di tag di chiusura e tende a essere più complesso da analizzare. Sebbene sia ancora utilizzato nei sistemi aziendali e in standard specifici come SOAP, JSON ha largamente sostituito XML nelle applicazioni web e nelle moderne API grazie alla sua semplicità e al minor overhead.

In sintesi, la leggerezza, la leggibilità umana e la facilità di parsing di JSON lo rendono un formato molto efficace e ampiamente adottato per la strutturazione e lo scambio di dati nei sistemi di intelligenza artificiale e ML, in particolare per la comunicazione API e l'archiviazione di risultati strutturati. La sua compatibilità con i diversi linguaggi di programmazione garantisce un'integrazione agevole all'interno di diversi stack tecnologici, dalle fasi di annotazione e pre-elaborazione dei dati fino all'implementazione finale dei modelli con strumenti come Ultralytics YOLO.

Leggi tutto