رؤية YOLO لعام 2026:

تصدير التعليقات التوضيحية من LabelMe إلى YOLO وUltralytics Platform#

إن LabelMe أداة غير متصلة بالإنترنت للتعليق التوضيحي على الصور، وتتضمن تطبيق Python مفتوح المصدر. لا يوجد اتصال مباشر بـ LabelMe أو مفتاح API لتهيئته في Ultralytics Platform. التكامل الكامل عبارة عن سير عمل محلي: أجرِ التعليقات التوضيحية في LabelMe، وحوّل تعليقات LabelMe التوضيحية بصيغة JSON إلى تنسيق YOLO باستخدام LabelMe Toolkit، ثم ارفع ملف ZIP الناتج باعتباره مجموعة بيانات في Platform.

1. إضافة التعليقات التوضيحية إلى الصور في LabelMe#

ثبّت LabelMe باستخدام تطبيق سطح المكتب أو حزمة Python مفتوحة المصدر، ثم افتح الدليل الذي يحتوي على صورك. يحفظ LabelMe التعليقات التوضيحية لكل صورة في ملف JSON مطابق.

في سير عمل اكتشاف YOLO الموضح في هذا الدليل، ارسم مستطيلات حول كل كائن وعيّن اسم فئة. يشرح دليل البدء الخاص بـ LabelMe كيفية فتح الصور ورسم الأشكال وحفظ التعليقات التوضيحية، بينما يشرح دليل مجموعة بيانات LabelMe كيفية مراجعة مجموعة بيانات كاملة مشروحة توضيحيًا وإعدادها.

يجب أن يحتوي الدليل المصدر على الصور وملفات JSON الخاصة بـ LabelMe:

your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json

2. تثبيت LabelMe Toolkit#

ثبّت LabelMe Toolkit باتباع دليل تثبيت مجموعة الأدوات الخاص بـ LabelMe. تعمل مجموعة الأدوات وعمليات التصدير الخاصة بها محليًا.

يلزم LabelMe Pro لإجراء التصدير

يُعد export-to-yolo جزءًا من LabelMe Pro Toolkit، ويتطلب تنزيل مُثبّته تسجيل الدخول إلى LabelMe. هذا متطلب خاص بمنتج LabelMe؛ ويمكن رفع ملف ZIP الناتج باستخدام أي خطة من خطط Platform.

تحقق من التثبيت، ثم اعرض كل تسمية موجودة في مجموعة البيانات المصدر:

labelmetk --version
labelmetk list-labels your_dataset/

راجع الناتج قبل التصدير. تُتخطى التسميات المحذوفة من --class-names، ويصبح الترتيب الذي تقدمه ترتيب معرّفات فئات YOLO.

3. التصدير إلى تنسيق YOLO#

شغّل export-to-yolo باستخدام الدليل المصدر وقائمة أسماء الفئات المفصولة بفواصل:

labelmetk export-to-yolo your_dataset/ --class-names crack,normal

استبدل crack,normal بالتسميات التي يعرضها list-labels. يكتب LabelMe النتيجة في your_dataset.export/:

your_dataset.export/
├── classes.txt
├── images/
│   ├── image_001.jpg
│   └── image_002.jpg
└── labels/
    ├── image_001.txt
    └── image_002.txt

يحافظ classes.txt على أسماء الفئات بالترتيب نفسه المستخدم في ملفات تسميات YOLO. أبقه في جذر عملية التصدير.

ينشئ سير العمل هذا مجموعة بيانات للاكتشاف

يُصدّر LabelMe Toolkit المستطيلات على هيئة مربعات إحاطة بتنسيق YOLO. كما يختزل المضلعات والأقنعة إلى مربعات إحاطة محاذية للمحاور، لذلك لا يحافظ export-to-yolo على هندسة التجزئة. ارسم مستطيلات عند إعداد مجموعة بيانات للاكتشاف باستخدام سير العمل هذا.

4. إنشاء أرشيف ZIP#

اضغط المحتويات الموجودة في your_dataset.export/، وليس الدليل الذي يحتوي عليها. على macOS أو Linux:

cd your_dataset.export
zip -r ../your_dataset.zip classes.txt images labels

على Windows PowerShell:

Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zip

افتح ملف ZIP قبل رفعه وتحقق من وجود classes.txt وimages/ وlabels/ في جذره. يؤدي وجود غلاف إضافي باسم your_dataset.export/ إلى منع Platform من العثور على قائمة الفئات الجذرية.

5. الرفع إلى Ultralytics Platform#

  1. افتح Settings > Integrations > LabelMe.
  2. انقر على Upload export.
  3. ارفع your_dataset.zip وأكمل إنشاء مجموعة البيانات.
  4. انتظر حتى تكتمل المعالجة، ثم راجع الصور والفئات والتعليقات التوضيحية.
  5. حرّر التعليقات التوضيحية، ودرّب نموذجًا، وانشره من مساحة العمل نفسها.

استيراد مجموعة بيانات LabelMe إلى Ultralytics Platform

يبقى كل من LabelMe وتصدير YOLO غير متصلين بالإنترنت بالكامل. لا يُرسل إلى Platform سوى ملف ZIP الذي تحدده في مربع حوار الرفع.

استكشاف الأخطاء وإصلاحها#

  • تُسمّى الفئات class0 وclass1 وما إلى ذلك: تحقق من وجود classes.txt في جذر ملف ZIP.
  • بعض التعليقات التوضيحية مفقودة: شغّل labelmetk list-labels your_dataset/ مرة أخرى وأدرج كل تسمية مطلوبة في --class-names.
  • تحولت المضلعات إلى مربعات: هذا هو السلوك الموثق في export-to-yolo الخاص بـ LabelMe؛ إذ يحوّل الأشكال غير المستطيلة إلى مربعات إحاطة.
  • لا تحتوي مجموعة البيانات على صور: تأكد من تضمين دليل images/ المُصدّر في ملف ZIP.
  • لا يستطيع Platform العثور على الفئات: أزل أي دليل خارجي من الأرشيف بحيث تكون classes.txt وimages/ وlabels/ هي الإدخالات ذات المستوى الأعلى.

للاطلاع على سير العمل المحلي الكامل، راجع دليل تدريب YOLO الخاص بـ LabelMe ومرجع export-to-yolo.

الأسئلة الشائعة#

  • لا. تعمل LabelMe وعملية التصدير محلياً، ويتم إرسال ملف ZIP الذي تقوم بتحميله فقط إلى المنصة. أمر export-to-yolo يعد جزءاً من LabelMe Pro Toolkit، وهو متطلب من متطلبات LabelMe، ولكن ملف ZIP الناتج يتم تحميله على أي خطة من خطط المنصة.

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

  • تقرأ المنصة أسماء الفئات من classes.txt في المجلد الجذر لملف ZIP. قم بضغط محتويات مجلد التصدير وليس المجلد نفسه، بحيث تكون classes.txt و images/ و labels/ هي العناصر الموجودة في المستوى الأعلى.

  • فقط التسميات التي يتم تمريرها إلى --class-names، وبالترتيب الذي تدرجها به. قم بتشغيل labelmetk list-labels أولاً وتضمن كل تسمية تريد الاحتفاظ بها.

المساهمون

التعليقات