Integrazione con Labelbox#
Ultralytics Platform legge direttamente le esportazioni NDJSON di Labelbox. Non devi incollare chiavi, mantenere attiva una connessione né gestire script di conversione: esporta da Labelbox, carica il file e le tue etichette arriveranno come un normale dataset di Platform.
Importare da Labelbox#
- Esporta da Labelbox. Apri il progetto di annotazione o il catalogo che vuoi importare e vai alla scheda Data Rows. Seleziona All, fai clic su Export data, scegli i campi da includere e conferma. Stai esportando dal Catalog anziché da un progetto? Attiva Export labels from project e seleziona il progetto, altrimenti il file arriverà senza annotazioni.
- Scarica il file. Labelbox esegue l'esportazione come processo in background. Controlla le Notifications e fai clic su Download al termine per salvare il file
.ndjson. - Carica su Platform. Crea un nuovo dataset e carica il file
.ndjson, oppure incolla un link diretto. Puoi anche iniziare da Settings > Integrations > Labelbox. - Addestra. Una volta completata l'elaborazione, modifica le annotazioni e addestra il modello esattamente come faresti con qualsiasi altro dataset di Platform.

A differenza di CVAT e Label Studio, non c'è alcun formato da scegliere: è supportata l'esportazione nativa di Labelbox.
Esportare con l'SDK#
Labelbox offre anche l'attività di esportazione nel suo SDK Python, una soluzione più semplice per una pipeline ripetibile. Trasmetti l'attività in streaming e scrivi un oggetto JSON per riga:
import json
import labelbox
client = labelbox.Client(api_key="YOUR_LABELBOX_API_KEY")
export_task = labelbox.ExportTask.get_task(client, "YOUR_EXPORT_TASK_ID")
export_task.wait_till_done() # lo streaming di un'attività che non è COMPLETE genera un errore
with open("dataset.ndjson", "w") as f:
f.writelines(json.dumps(data_row.json) + "\n" for data_row in export_task.get_buffered_stream())NDJSON contiene un oggetto JSON per riga. json.dump(list_of_rows, f) scrive invece un unico array e Platform ignora tutte le righe che non contengono un oggetto JSON: l'importazione non trova alcuna riga di dati. Usa il ciclo qui sopra oppure "\n".join(json.dumps(r) for r in rows).
Cosa viene importato#
Platform riconosce automaticamente il formato Labelbox e associa i riquadri di delimitazione e i poligoni al tipo di attività YOLO corrispondente:
| Annotazione Labelbox | Importato |
|---|---|
| Riquadro di delimitazione | Rilevamento |
| Poligono | Segmentazione |
| Maschera di segmentazione, punto, polilinea, relazione, classificazione | Non ancora |
Il valore name di ogni oggetto diventa il nome della classe: un'annotazione "name": "Dog" viene quindi importata come classe Dog, non come value in minuscolo; le coordinate in pixel vengono normalizzate in base alle dimensioni media_attributes nell'esportazione. Ogni immagine prende il nome dal proprio data_row.external_id; se l'esportazione non contiene un ID esterno, viene usato il nome del file nell'URL firmato. Un'esportazione del catalogo senza annotazioni viene importata come dataset di immagini senza etichette, pronto per l'annotazione nell'editor di annotazioni di Platform.
Ecco una singola riga di dati, ridotta ai campi letti da Platform:
{
"data_row": {
"external_id": "000000000307.jpg",
"row_data": "https://storage.labelbox.com/...?Expires=...&Signature=..."
},
"media_attributes": { "height": 480, "width": 640, "mime_type": "image/jpeg" },
"projects": {
"<project-id>": {
"labels": [
{
"annotations": {
"objects": [
{
"name": "Dog",
"annotation_kind": "ImageBoundingBox",
"bounding_box": { "top": 200.0, "left": 407.0, "height": 172.0, "width": 176.0 }
}
]
}
}
]
}
}
}Tutto il resto dell'esportazione — embeddings, metadata_fields, attachments, project_details — viene ignorato. Quando esporti, conviene deselezionare gli embedding: in un'esportazione di esempio occupavano circa i quattro quinti del file, mentre i campi effettivamente letti da Platform ne occupavano un quinto.
Al momento vengono letti solo i riquadri di delimitazione e i poligoni, e solo dalle annotazioni degli oggetti: le classificazioni a livello di immagine si trovano altrove nell'esportazione e vengono ignorate. Se un progetto è annotato interamente con lo strumento delle maschere di segmentazione (pennello), punti, polilinee o classificazioni, le immagini vengono importate senza annotazioni e non viene generato alcun errore. Puoi verificarlo nella pagina del dataset: un dataset importato che conserva le etichette mostra il conteggio delle etichette e delle annotazioni accanto al conteggio delle immagini; se le perde, non mostra né l'uno né l'altro.
Un'esportazione di Labelbox fa riferimento a ogni immagine tramite un URL firmato anziché includerne i pixel, e le firme scadono. Platform scarica le immagini da questi URL e ne verifica un campione prima di iniziare. Se tutti i link dell'esportazione sono scaduti, l'operazione non riesce subito e ti spiega il motivo: esporta di nuovo da Labelbox e carica il nuovo file. Se invece è scaduta solo una parte dei link, vengono importate le immagini ancora accessibili e le altre vengono ignorate, quindi carica il file poco dopo averlo esportato.
Un'esportazione che contiene sia riquadri di delimitazione sia poligoni viene importata come dataset di segmentazione, che conserva solo la geometria dei poligoni: le annotazioni dei riquadri non vengono usate per l'addestramento né incluse nelle esportazioni delle versioni. Se ti servono entrambi, esporta riquadri e poligoni da progetti Labelbox separati. Per essere letti, i poligoni devono inoltre contenere almeno tre punti.
Domande frequenti#
I riquadri di delimitazione vengono importati come dataset di rilevamento e i poligoni come dataset di segmentazione. Le maschere di segmentazione, i punti, le polilinee, le relazioni e le classificazioni non vengono ancora lette; pertanto, un progetto annotato solo con questi strumenti importa le immagini senza annotazioni.
Platform legge NDJSON, con un oggetto JSON per riga. Un'esportazione salvata come unico array JSON viene ignorata completamente. Usa il ciclo dell'SDK qui sopra oppure il download Export data di Labelbox, che è già in formato NDJSON.
Le esportazioni di Labelbox fanno riferimento alle immagini tramite URL firmati, le cui firme scadono. Esporta di nuovo da Labelbox e carica il nuovo file poco dopo il completamento dell'esportazione.
No. Un'esportazione mista viene importata come dataset di segmentazione e vengono usati solo i poligoni. Se ti servono entrambi, esporta riquadri e poligoni da progetti Labelbox separati.