رؤية YOLO لعام 2026:

تكامل Labelbox#

Ultralytics Platform reads Labelbox NDJSON exports directly. There is no key to paste, no connection to keep alive, and no conversion script to maintain — export from Labelbox, upload the file, and your labels arrive as a normal Platform dataset.

الاستيراد من Labelbox#

  1. Export from Labelbox. Open the labeling project or catalog you want to bring over and go to the Data Rows tab. Select All, click Export data, choose the fields to include, and confirm. Exporting from Catalog rather than a project? Enable Export labels from project and pick the project, or the file arrives with no annotations at all.
  2. Download the file. Labelbox runs the export as a background job. Watch for it in Notifications and click Download when it finishes to save the .ndjson file.
  3. Upload to Platform. Create a new dataset and upload the .ndjson file, or paste a direct link to it. You can also start from Settings > Integrations > Labelbox.
  4. Train. Once processing finishes, edit the annotations and train exactly like any other Platform dataset.

Ultralytics Platform Labelbox Dataset Import

Unlike CVAT and Label Studio, there is no format to choose — Labelbox's own export is the supported one.

التصدير باستخدام حزمة SDK#

توفر Labelbox أيضاً مهمة التصدير في حزمة Python SDK الخاصة بها، وهي الطريقة الأسهل لخط管道 قابل للتكرار. قم ببث المهمة واكتب كائن JSON واحداً لكل سطر:

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())
اكتب بصيغة NDJSON، وليس كصفيف JSON

NDJSON is one JSON object per line. json.dump(list_of_rows, f) writes a single array instead, and Platform skips any line that is not a JSON object — the import finds no data rows at all. Use the loop above, or "\n".join(json.dumps(r) for r in rows).

ما يتم استيراده#

Platform recognizes the Labelbox format on its own and maps bounding boxes and polygons to the matching YOLO task type:

تعليق Labelboxتم الاستيراد
مربع التحديدDetect
مضلعSegment
قناع التجزيء، النقطة، الخط المتعدد، العلاقة، التصنيفليس بعد

يصبح كل name الخاص بالعنصر اسم الفئة — لذا فإن تعليق "name": "Dog" يتم استيراده كفئة Dog، وليس بحروفه الصغيرة value — ويتم تسوية إحداثيات البكسل مقابل أبعاد media_attributes في التصدير. تتم تسمية كل صورة باسم data_row.external_id الخاص بها، مع التراجع إلى اسم الملف في عنوان URL الموقّع عندما لا يحمل التصدير أي معرف خارجي. يتم استيراد تصدير الكتالوج الذي لا يحتوي على تعليقات توضيحية كـ مجموعة بيانات صور غير مسماة، جاهزة للتسمية في محرر التعليقات التوضيحية الخاص بـ 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 }
                            }
                        ]
                    }
                }
            ]
        }
    }
}

Everything else in the export — embeddings, metadata_fields, attachments, project_details — is ignored. The embeddings are worth deselecting when you export: in a sample export they were around four-fifths of the file, against a fifth for the fields Platform actually reads.

مشاريع الأقنعة والنقاط تُستورد بدون تعليقات توضيحية

تتم قراءة مربعات التحديد والمضلعات فقط اليوم، وفقط من تعليقات الكائنات — فتصنيفات مستوى الصورة توجد في مكان آخر من التصدير ويتم تخطيها. المشروع المُسمى بالكامل بأداة قناع التجزيء (الفرشاة)، أو النقاط، أو الخطوط المتعددة، أو التصنيفات، يُستورد صوره ولكن بدون تعليقات توضيحية، ولا يتم رفع أي خطأ. يمكنك ملاحظة ذلك على صفحة مجموعة البيانات: مجموعة البيانات المستوردة التي احتفظت بتسمياتها تعرض عدداً مسجلاً وتعليقاً بجوار عدد الصور، وتلك التي فقدتها لا تعرض أياً منهما.

ارفع التصدير بينما تكون روابطه طازجة

يشير تصدير Labelbox إلى كل صورة بواسطة عنوان URL موقع بدلاً من تضمين وحدات البكسل، وتنتهي صلاحية تلك التواقيع. تقوم المنصة بتنزيل الصور من تلك الروابط، وتفحص عينة قبل أن تبدأ، لذا يفشل التصدير الذي انتهت صلاحية جميع روابطه فوراً ويخبرك بالسبب — أعد التصدير من Labelbox وارفع الملف الجديد. التصدير الذي انتهت صلاحيته جزئياً فقط يستورد الصور التي لا يزال بإمكانه الوصول إليها ويتخطي الباقي، لذا ارفع الملف قريباً من وقت التصدير.

في التصدير المختلط، يتم إسقاط المربعات

يتم استيراد التصدير الذي يحتوي على كل من مربعات التحديد والمضلعات كمجموعة بيانات قطاعية، ومجموعة البيانات القطاعية تحمل هندسة مضلعات فقط — ولا تُستخدم تعليقات المربعات للتدريب أو تضمن في صادرات الإصدارات. قم بتصدير المربعات والمضلعات كمشاريع Labelbox منفصلة إذا كنت بحاجة إلى كليهما. تتطلب المضلعات أيضاً ثلاثة نقاط على الأقل لتتم قراءتها.

المساهمون

التعليقات