Seguridad lista para empresas: Compatible con ISO 27001 + SOC 2 Type I.

Link to this sectionIntegración con Labelbox#

Ultralytics Platform lee directamente las exportaciones en NDJSON de Labelbox. No hay ninguna clave que pegar, ninguna conexión que mantener activa y ningún script de conversión que mantener: exporta desde Labelbox, sube el archivo y tus etiquetas llegan como un conjunto de datos normal de Platform.

Link to this sectionImportar desde Labelbox#

  1. Exporta desde Labelbox. Abre el proyecto de etiquetado o el catálogo que quieras transferir y ve a la pestaña Data Rows. Selecciona All, haz clic en Export data, elige los campos que deseas incluir y confirma. ¿Estás exportando desde Catalog en lugar de desde un proyecto? Habilita Export labels from project y elige el proyecto, o el archivo llegará sin ninguna anotación.
  2. Descarga el archivo. Labelbox ejecuta la exportación como un proceso en segundo plano. Estate atento a Notifications y haz clic en Download cuando termine para guardar el archivo .ndjson.
  3. Sube a Platform. Crea un nuevo conjunto de datos y sube el archivo .ndjson, o pega un enlace directo a este. También puedes empezar desde Settings > Integrations > Labelbox.
  4. Entrena. Una vez que finalice el procesamiento, edita las anotaciones y entrena exactamente igual que con cualquier otro conjunto de datos de Platform.

A diferencia de CVAT y Label Studio, no hay ningún formato que elegir: la propia exportación de Labelbox es la compatible.

Link to this sectionExportar con el SDK#

Labelbox también ofrece la tarea de exportación en su Python SDK, que es la ruta más fácil para una canalización repetible. Transmite la tarea y escribe un objeto JSON por línea:

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())
Escribe NDJSON, no una matriz JSON

NDJSON es un objeto JSON por línea. json.dump(list_of_rows, f) escribe en su lugar una única matriz, y Platform omite cualquier línea que no sea un objeto JSON; la importación no encuentra ningún fila de datos. Utiliza el bucle anterior o "\n".join(json.dumps(r) for r in rows).

Link to this sectionQué se importa#

Platform reconoce por sí misma el formato de Labelbox y asigna los cuadros delimitadores y polígonos al tipo de tarea de YOLO correspondiente:

Anotación de LabelboxImportado
Cuadro delimitadorDetect
PolígonoSegment
Máscara de segmentación, punto, polilínea, relación, clasificaciónTodavía no

El name de cada objeto se convierte en el nombre de clase —por lo que una anotación "name": "Dog" se importa como la clase Dog, no como su value en minúsculas— y las coordenadas de píxeles se normalizan frente a las dimensiones de media_attributes en la exportación. Una exportación de catálogo sin anotaciones se importa como un conjunto de datos de imágenes sin etiquetar, listo para etiquetarlo en el editor de anotaciones de Platform.

Una sola fila de datos tiene este aspecto, recortada a los campos que lee 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 }
                            }
                        ]
                    }
                }
            ]
        }
    }
}

Todo lo demás en la exportación (embeddings, metadata_fields, attachments, project_details) se ignora. Vale la pena deseleccionar los embeddings al exportar: en una exportación de muestra constituían alrededor de cuatro quintos del archivo, frente a un quinto para los campos que Platform lee realmente.

Los proyectos de máscaras y puntos se importan sin anotaciones

Actualmente solo se leen los cuadros delimitadores y los polígonos, y únicamente a partir de una anotación de objeto; las clasificaciones a nivel de imagen se encuentran en otra parte de la exportación y se omiten. Un proyecto etiquetado enteramente con la herramienta de máscara de segmentación (pincel), puntos, polilíneas o clasificaciones importa sus imágenes pero sin anotaciones, y no se genera ningún error. Puedes detectarlo en la página del conjunto de datos: un conjunto de datos importado que conservó sus etiquetas muestra un recuento de etiquetas y anotaciones junto al recuento de imágenes, y uno que las perdió no muestra ninguno.

Sube la exportación mientras sus enlaces estén frescos

Una exportación de Labelbox hace referencia a cada imagen mediante una URL firmada en lugar de incrustar los píxeles, y esas firmas caducan. Platform descarga las imágenes de esas URL, probando una muestra antes de comenzar, por lo que una exportación cuyos enlaces hayan caducado por completo falla inmediatamente y te indica el motivo: vuelve a exportar desde Labelbox y sube el nuevo archivo. Una exportación que solo ha caducado parcialmente importa las imágenes a las que todavía puede acceder y omite el resto, así que súbela poco después de exportar.

En una exportación mixta, los cuadros se eliminan

Una exportación que contiene tanto cuadros delimitadores como polígonos se importa como un conjunto de datos de segmentos, y un conjunto de datos de segmentos incluye únicamente la geometría de los polígonos; las anotaciones de cuadros no se utilizan para el entrenamiento ni se incluyen en las exportaciones de versiones. Exporta los cuadros y los polígonos como proyectos de Labelbox separados si necesitas ambos. Los pol también necesitan al menos tres puntos para ser leídos.

Colaboradores

Comentarios