YOLO Vision 2026:

Integração com o Labelbox#

A Ultralytics Platform lê diretamente as exportações NDJSON do Labelbox. Não há nenhuma chave para colar, nenhuma ligação para manter ativa e nenhum script de conversão para manter — exporta a partir do Labelbox, carrega o ficheiro e as tuas etiquetas chegam como um dataset normal da Platform.

Importar do Labelbox#

  1. Exporta a partir do Labelbox. Abre o projeto de anotação ou catálogo que queres importar e vai para o separador Data Rows. Seleciona All, clica em Export data, escolhe os campos a incluir e confirma. Estás a exportar a partir do Catalog em vez de um projeto? Ativa Export labels from project e seleciona o projeto; caso contrário, o ficheiro chega sem quaisquer anotações.
  2. Transfere o ficheiro. O Labelbox executa a exportação como uma tarefa em segundo plano. Procura-a em Notifications e clica em Download quando terminar para guardares o ficheiro .ndjson.
  3. Carrega para a Platform. Cria um novo dataset e carrega o ficheiro .ndjson ou cola uma ligação direta para o mesmo. Também podes começar em Settings > Integrations > Labelbox.
  4. Treina. Quando o processamento terminar, edita as anotações e treina exatamente como farias com qualquer outro dataset da Platform.

Importação de dataset do Labelbox na Ultralytics Platform

Ao contrário do CVAT e do Label Studio, não há nenhum formato para escolher — a exportação própria do Labelbox é a suportada.

Exportar com o SDK#

O Labelbox também disponibiliza a tarefa de exportação no seu SDK de Python, que é a opção mais simples para um pipeline repetível. Transmite a tarefa e escreve um objeto JSON por linha:

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()  # streaming a task that isn't COMPLETE raises

with open("dataset.ndjson", "w") as f:
    f.writelines(json.dumps(data_row.json) + "\n" for data_row in export_task.get_buffered_stream())
Escreve NDJSON, não um array JSON

NDJSON consiste num objeto JSON por linha. json.dump(list_of_rows, f) escreve um único array, e a Platform ignora qualquer linha que não seja um objeto JSON — a importação não encontra nenhuma linha de dados. Usa o ciclo acima ou "\n".join(json.dumps(r) for r in rows).

O que é importado#

A Platform reconhece automaticamente o formato do Labelbox e mapeia caixas delimitadoras e polígonos para o tipo de tarefa YOLO correspondente:

Anotação do LabelboxImportado
Caixa delimitadoraDetetar
PolígonoSegmentar
Máscara de segmentação, ponto, polilinha, relação, classificaçãoAinda não

O name de cada objeto torna-se o nome da classe — por isso uma anotação "name": "Dog" é importada como a classe Dog, e não como o seu value em minúsculas — e as coordenadas dos píxeis são normalizadas em relação às dimensões media_attributes na exportação. Cada imagem recebe o nome do seu data_row.external_id, usando como alternativa o nome do ficheiro no URL assinado quando a exportação não contém um ID externo. Uma exportação de catálogo sem anotações é importada como um dataset de imagens sem etiquetas, pronto para ser anotado no editor de anotações da Platform.

Uma única linha de dados tem este aspeto, limitada aos campos lidos pela 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 }
                            }
                        ]
                    }
                }
            ]
        }
    }
}

Tudo o resto na exportação — embeddings, metadata_fields, attachments, project_details — é ignorado. Vale a pena não selecionar os embeddings ao exportar: numa exportação de exemplo, representavam cerca de quatro quintos do ficheiro, contra um quinto para os campos que a Platform realmente lê.

Projetos de máscaras e pontos são importados sem anotações

Atualmente, apenas são lidas caixas delimitadoras e polígonos, e apenas a partir de uma anotação de objeto — as classificações ao nível da imagem encontram-se noutra parte da exportação e são ignoradas. Um projeto anotado inteiramente com a ferramenta de máscara de segmentação (pincel), pontos, polilinhas ou classificações importa as imagens, mas não as anotações, e nenhum erro é gerado. Podes verificar isso na página do dataset: um dataset importado que manteve as etiquetas mostra uma contagem de etiquetas e de anotações junto à contagem de imagens, enquanto um que as perdeu não mostra nenhuma das duas.

Carrega a exportação enquanto as ligações ainda estão válidas

Uma exportação do Labelbox referencia cada imagem por um URL assinado, em vez de incorporar os píxeis, e essas assinaturas expiram. A Platform descarrega as imagens a partir desses URLs, testando uma amostra antes de começar, por isso uma exportação cujas ligações já expiraram falha imediatamente e explica o motivo — faz uma nova exportação a partir do Labelbox e carrega o novo ficheiro. Uma exportação parcialmente expirada importa as imagens que ainda consegue alcançar e ignora as restantes, por isso carrega-a pouco depois de a exportares.

Numa exportação mista, as caixas são descartadas

Uma exportação que contenha caixas delimitadoras e polígonos é importada como um dataset de segmentação, e um dataset de segmentação contém apenas a geometria dos polígonos — as anotações das caixas não são utilizadas no treino nem incluídas nas exportações de versões. Exporta as caixas e os polígonos como projetos do Labelbox separados se precisares de ambos. Os polígonos também precisam de ter pelo menos três pontos para serem lidos.

Contribuidores

Comentários