انتقل إلى المحتوى

YOLO-نموذج العالم

ال YOLO-نموذج العالم يقدم متقدمة، في الوقت الحقيقي Ultralytics YOLOv8نهج قائم على مهام الكشف عن المفردات المفتوحة. يتيح هذا الابتكار اكتشاف أي كائن داخل الصورة بناء على نصوص وصفية. من خلال خفض المتطلبات الحسابية بشكل كبير مع الحفاظ على الأداء التنافسي ، YOLO- يبرز العالم كأداة متعددة الاستخدامات للعديد من التطبيقات القائمة على الرؤية.

YOLO-نظرة عامة على بنية النموذج العالمي



شاهد: YOLO سير عمل التدريب العالمي على مجموعة بيانات مخصصة

نظره عامه

YOLO-يعالج World التحديات التي تواجهها نماذج الكشف عن المفردات المفتوحة التقليدية ، والتي غالبا ما تعتمد على نماذج المحولات المرهقة التي تتطلب موارد حسابية واسعة النطاق. اعتماد هذه النماذج على فئات الكائنات المحددة مسبقا يحد أيضا من فائدتها في السيناريوهات الديناميكية. YOLO-العالم ينعش YOLOv8 إطار عمل مع قدرات الكشف عن المفردات المفتوحة ، واستخدام نمذجة لغة الرؤية والتدريب المسبق على مجموعات البيانات الموسعة للتفوق في تحديد مجموعة واسعة من الكائنات في سيناريوهات صفرية اللقطة بكفاءة لا مثيل لها.

الميزات الرئيسية

  1. الحل في الوقت الحقيقي: تسخير السرعة الحسابية لشبكات CNN ، YOLOتقدم -World حلا سريعا للكشف عن المفردات المفتوحة ، يلبي احتياجات الصناعات التي تحتاج إلى نتائج فورية.

  2. الكفاءة والأداء: YOLO- يخفض العالم المتطلبات الحسابية والموارد دون التضحية بالأداء ، مما يوفر بديلا قويا لنماذج مثل SAM ولكن بجزء بسيط من التكلفة الحسابية ، مما يتيح التطبيقات في الوقت الفعلي.

  3. الاستدلال مع المفردات غير المتصلة بالإنترنت: YOLO-يقدم World استراتيجية "السرعة ثم الكشف" ، باستخدام مفردات غير متصلة بالإنترنت لتعزيز الكفاءة بشكل أكبر. يتيح هذا النهج استخدام المطالبات المخصصة المحسوبة مسبقا ، بما في ذلك التسميات التوضيحية أو الفئات ، ليتم ترميزها وتخزينها كتضمين مفردات غير متصلة بالإنترنت ، مما يبسط عملية الكشف.

  4. يعمل بواسطة YOLOv8 مبني على:Ultralytics YOLOv8, YOLO-World تستفيد من أحدث التطورات في الكشف عن الأشياء في الوقت الفعلي لتسهيل اكتشاف المفردات المفتوحة بدقة وسرعة لا مثيل لها.

  5. معيار التميز: YOLO- يتفوق العالم على أجهزة الكشف عن المفردات المفتوحة الحالية ، بما في ذلك سلسلة MDETR و GLIP ، من حيث السرعة والكفاءة على المعايير القياسية ، وعرض YOLOv8على وحدة معالجة رسومات NVIDIA V100 واحدة.

  6. تطبيقات متعددة الاستخدامات: YOLO- يفتح النهج المبتكر في العالم إمكانيات جديدة للعديد من مهام الرؤية ، مما يوفر تحسينات في السرعة بأوامر من حيث الحجم مقارنة بالأساليب الحالية.

الطرز المتوفرة والمهام المدعومة وأوضاع التشغيل

يوضح هذا القسم تفاصيل النماذج المتوفرة مع أوزانها المحددة المدربة مسبقا، والمهام التي تدعمها، وتوافقها مع أوضاع التشغيل المختلفة مثل الاستدلال والتحقق من الصحة والتدريب والتصدير، المشار إليها ✅ بالأوضاع المدعومة والأوضاع ❌ غير المدعومة.

ملاحظه

كل ال YOLOv8- تم ترحيل الأوزان العالمية مباشرة من المسؤول YOLO- مستودع العالم ، مع تسليط الضوء على مساهماتهم الممتازة.

نوع الموديل الأوزان المدربة مسبقا المهام المدعومة استدلال التحقق تدريب تصدير
YOLOv8s-عالم yolov8s-world.pt كشف الكائن
YOLOv8s-وورلد في 2 yolov8s-worldv2.pt كشف الكائن
YOLOv8m-عالم yolov8m-world.pt كشف الكائن
YOLOv8m-وورلد في 2 yolov8m-worldv2.pt كشف الكائن
YOLOv8l-عالم yolov8l-world.pt كشف الكائن
YOLOv8l-وورلد في 2 yolov8l-worldv2.pt كشف الكائن
YOLOv8x-عالم yolov8x-world.pt كشف الكائن
YOLOv8x-وورلد في 2 yolov8x-worldv2.pt كشف الكائن

نقل طلقة صفرية على مجموعة بيانات COCO

نوع الموديل خريطة mAP50 mAP75
yolov8s-عالم 37.4 52.0 40.6
yolov8s-وورلد في 2 37.7 52.2 41.0
yolov8m-عالم 42.0 57.0 45.6
yolov8m-وورلد في 2 43.0 58.4 46.8
yolov8l-عالم 45.7 61.3 49.8
yolov8l-وورلد في 2 45.8 61.3 49.8
yolov8x-عالم 47.0 63.0 51.2
yolov8x-وورلد في 2 47.1 62.8 51.4

أمثلة الاستخدام

ال YOLO-نماذج العالم من السهل دمجها في الخاص بك Python التطبيقات. Ultralytics يوفر سهل الاستخدام Python واجهة برمجة التطبيقات و CLI أوامر لتبسيط التطوير.

استخدام القطار

بقشيش

نوصي بشدة باستخدام yolov8-worldv2 نموذج للتدريب المخصص ، لأنه يدعم التدريب الحتمي ويسهل أيضا تصدير تنسيقات أخرى ، أي onnx/tensorrt.

اكتشاف الكائن واضح ومباشر مع train الطريقة ، كما هو موضح أدناه:

مثل

PyTorch التدريب المسبق *.pt النماذج وكذلك التكوين *.yaml يمكن تمرير الملفات إلى ملف YOLOWorld() فئة لإنشاء مثيل نموذج في python:

from ultralytics import YOLOWorld

# Load a pretrained YOLOv8s-worldv2 model
model = YOLOWorld('yolov8s-worldv2.pt')

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv8n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')
# Load a pretrained YOLOv8s-worldv2 model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8s-worldv2.yaml data=coco8.yaml epochs=100 imgsz=640

توقع الاستخدام

اكتشاف الكائن واضح ومباشر مع predict الطريقة ، كما هو موضح أدناه:

مثل

from ultralytics import YOLOWorld

# Initialize a YOLO-World model
model = YOLOWorld('yolov8s-world.pt')  # or select yolov8m/l-world.pt for different sizes

# Execute inference with the YOLOv8s-world model on the specified image
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()
# Perform object detection using a YOLO-World model
yolo predict model=yolov8s-world.pt source=path/to/image.jpg imgsz=640

يوضح هذا المقتطف بساطة تحميل نموذج مدرب مسبقا وتشغيل تنبؤ على صورة.

استخدام فال

يتم تبسيط التحقق من صحة النموذج على مجموعة البيانات على النحو التالي:

مثل

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or select yolov8m/l-world.pt for different sizes

# Conduct model validation on the COCO8 example dataset
metrics = model.val(data='coco8.yaml')
# Validate a YOLO-World model on the COCO8 dataset with a specified image size
yolo val model=yolov8s-world.pt data=coco8.yaml imgsz=640

استخدام المسار

يتم تبسيط تتبع الكائنات باستخدام YOLO-نموذج العالم على فيديو/صور على النحو التالي:

مثل

from ultralytics import YOLO

# Create a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or select yolov8m/l-world.pt for different sizes

# Track with a YOLO-World model on a video
results = model.track(source="path/to/video.mp4")
# Track with a YOLO-World model on the video with a specified image size
yolo track model=yolov8s-world.pt imgsz=640 source="path/to/video/file.mp4"

ملاحظه

ال YOLO-نماذج عالمية مقدمة من Ultralytics تأتي مهيأة مسبقا مع فئات مجموعة بيانات COCO كجزء من مفرداتها غير المتصلة بالإنترنت ، مما يعزز الكفاءة للتطبيق الفوري. يسمح هذا التكامل ل YOLOv8- نماذج العالم للتعرف مباشرة على الفئات القياسية ال 80 المحددة في مجموعة بيانات COCO والتنبؤ بها دون الحاجة إلى إعداد أو تخصيص إضافي.

تعيين المطالبات

YOLO-نظرة عامة على أسماء الفئات المطالبة العالمية

ال YOLO-يسمح إطار العمل العالمي بالمواصفات الديناميكية للفصول من خلال مطالبات مخصصة ، مما يمكن المستخدمين من تخصيص النموذج وفقا لاحتياجاتهم الخاصة دون إعادة التدريب. هذه الميزة مفيدة بشكل خاص لتكييف النموذج مع المجالات الجديدة أو المهام المحددة التي لم تكن في الأصل جزءا من بيانات التدريب. من خلال تعيين مطالبات مخصصة ، يمكن للمستخدمين توجيه تركيز النموذج بشكل أساسي نحو الأشياء ذات الاهتمام ، مما يعزز ملاءمة ودقة نتائج الكشف.

على سبيل المثال ، إذا كان تطبيقك يتطلب فقط اكتشاف كائنات "شخص" و "ناقل" ، فيمكنك تحديد هذه الفئات مباشرة:

مثل

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or choose yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction for specified categories on an image
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()

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

مثل

أول تحميل أ YOLO-نموذج العالم ، تعيين فئات مخصصة له وحفظه:

from ultralytics import YOLO

# Initialize a YOLO-World model
model = YOLO('yolov8s-world.pt')  # or select yolov8m/l-world.pt

# Define custom classes
model.set_classes(["person", "bus"])

# Save the model with the defined offline vocabulary
model.save("custom_yolov8s.pt")

بعد الحفظ ، يتصرف نموذج custom_yolov8s.pt مثل أي نموذج آخر تم تدريبه مسبقا YOLOv8 نموذج ولكن مع اختلاف رئيسي: تم تحسينه الآن لاكتشاف الفئات التي حددتها فقط. يمكن أن يؤدي هذا التخصيص إلى تحسين أداء الكشف وكفاءته بشكل كبير لسيناريوهات التطبيق الخاصة بك.

from ultralytics import YOLO

# Load your custom model
model = YOLO('custom_yolov8s.pt')

# Run inference to detect your custom classes
results = model.predict('path/to/image.jpg')

# Show results
results[0].show()

فوائد الادخار باستخدام المفردات المخصصة

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

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

إعادة إنتاج النتائج الرسمية من الصفر (تجريبي)

إعداد مجموعات البيانات

  • بيانات القطار
مجموعة البيانات نوع العينات مربعات ملفات التعليقات التوضيحية
الكائنات365v1 الكشف 609k 9621k objects365_train.json
جي كيو كيو اسس 621k 3681k final_mixed_train_no_coco.json
فليكر 30 كيلو اسس 149k 641k final_flickr_separateGT_train.json
  • بيانات Val
مجموعة البيانات نوع ملفات التعليقات التوضيحية
LVIS مينيفال الكشف minival.txt

إطلاق التدريب من الصفر

ملاحظه

WorldTrainerFromScratch مخصص للغاية للسماح بالتدريب yolo-نماذج عالمية على كل من مجموعات بيانات الكشف ومجموعات بيانات التأريض في وقت واحد. مزيد من التفاصيل يرجى الخروج ultralytics.نموذج.yolo.world.train_world.py.

مثل

from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch
from ultralytics import YOLOWorld

data = dict(
    train=dict(
        yolo_data=["Objects365.yaml"],
        grounding_data=[
            dict(
                img_path="../datasets/flickr30k/images",
                json_file="../datasets/flickr30k/final_flickr_separateGT_train.json",
            ),
            dict(
                img_path="../datasets/GQA/images",
                json_file="../datasets/GQA/final_mixed_train_no_coco.json",
            ),
        ],
    ),
    val=dict(yolo_data=["lvis.yaml"]),
)
model = YOLOWorld("yolov8s-worldv2.yaml")
model.train(data=data, batch=128, epochs=100, trainer=WorldTrainerFromScratch)

الاستشهادات والشكر

نعرب عن امتناننا لمركز رؤية الكمبيوتر Tencent AILab لعملهم الرائد في اكتشاف كائنات المفردات المفتوحة في الوقت الفعلي باستخدام YOLO-عالم:

@article{cheng2024yolow,
title={YOLO-World: Real-Time Open-Vocabulary Object Detection},
author={Cheng, Tianheng and Song, Lin and Ge, Yixiao and Liu, Wenyu and Wang, Xinggang and Shan, Ying},
journal={arXiv preprint arXiv:2401.17270},
year={2024}
}

لمزيد من القراءة ، الأصل YOLO-ورقة العالم متاح على arXiv. يمكن الوصول إلى الكود المصدري للمشروع والموارد الإضافية عبر مستودع GitHub الخاص بهم. نحن نقدر التزامهم بتطوير المجال ومشاركة رؤاهم القيمة مع المجتمع.



تم الإنشاء 2024-02-14، تم التحديث 2024-05-02
المؤلفون: RizwanMunawar (2)، Glenn-jocher (3)، Burhan-Q (1)، Laughing-q (4)

التعليقات