تخطي إلى المحتوى

عرض VisionEye لرسم خرائط الكائنات باستخدام Ultralytics YOLO11 🚀

ما هو تخطيط الكائنات VisionEye؟

Ultralytics YOLO11 توفر VisionEye القدرة لأجهزة الكمبيوتر على تحديد الأجسام وتحديدها بدقة، مما يحاكي دقة الملاحظة التي تتمتع بها العين البشرية. تُمكِّن هذه الوظيفة أجهزة الكمبيوتر من تمييز أجسام معينة والتركيز عليها، تماماً مثل الطريقة التي تراقب بها العين البشرية التفاصيل من وجهة نظر معينة.

تخطيط كائن عرض VisionEye مع تتبع الكائنات باستخدام Ultralytics YOLO11

رسم خرائط VisionEye باستخدام Ultralytics YOLO

# Monitor objects position with visioneye
yolo solutions visioneye show=True

# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

VisionEye الحجج

إليك الجدول الذي يحتوي على VisionEye الحجج

الجدال النوع افتراضي الوصف
model str None المسار إلى ملف نموذج Ultralytics YOLO Model File.
vision_point tuple[int, int] (50, 50) النقطة التي ستقوم فيها الرؤية بتتبع الأجسام ورسم المسارات باستخدام حل VisionEye.

يمكنك أيضًا استخدام العديد من track الحجج ضمن VisionEye الحل:

الجدال النوع افتراضي الوصف
tracker str 'botsort.yaml' يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال, bytetrack.yaml أو botsort.yaml.
conf float 0.3 تعيين عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية كاذبة.
iou float 0.5 يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classes list None تصفية النتائج حسب فهرس الفئة. على سبيل المثال, classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verbose bool True يتحكم في عرض نتائج التتبع، مما يوفر إخراجًا مرئيًا للأجسام المتعقبة.
device str None يحدد جهاز الاستدلال (على سبيل المثال, cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU ، أو جهاز GPU معين، أو أجهزة حوسبة أخرى لتنفيذ النموذج.

علاوة على ذلك، يتم دعم بعض الحجج التصورية، كما هو مذكور أدناه:

الجدال النوع افتراضي الوصف
show bool False إذا كان Trueيعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للتعليقات المرئية الفورية أثناء التطوير أو الاختبار.
line_width None or int None يحدد عرض خط المربعات المحدودة. إذا كان None، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.

كيف تعمل VisionEye

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

إن process في صنف VisionEye تنفيذ العديد من العمليات الرئيسية:

  1. استخراج المسارات (المربعات المحدودة والفئات والأقنعة) من صورة الإدخال
  2. ينشئ شارحًا لرسم المربعات المحدودة والتسميات
  3. لكل كائن تم اكتشافه، يرسم علامة مربع وينشئ خط رؤية من نقطة الرؤية
  4. إرجاع الصورة المشروحة مع إحصائيات التتبع

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

تطبيقات VisionEye

تمتلك تقنية VisionEye لرسم خرائط الأجسام VisionEye العديد من التطبيقات العملية في مختلف الصناعات:

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

من خلال الجمع بين VisionEye وحلول Ultralytics الأخرى مثل حساب المسافة أو تقدير السرعة، يمكنك بناء أنظمة شاملة لا تقتصر على تتبع الأجسام فحسب، بل تفهم أيضًا علاقاتها المكانية وسلوكياتها.

ملاحظة

لأية استفسارات، لا تتردد في نشر أسئلتك في قسم المشكلاتUltralytics أو قسم المناقشة المذكور أدناه.

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

كيف يمكنني البدء في استخدام VisionEye Object Mapping مع Ultralytics YOLO11 ؟

للبدء في استخدام VisionEye Object Mapping مع Ultralytics YOLO11 ، ستحتاج أولاً إلى تثبيت الحزمة Ultralytics YOLO عبر pip. بعد ذلك، يمكنك استخدام نموذج التعليمات البرمجية المتوفرة في الوثائق لإعداد اكتشاف الكائنات باستخدام VisionEye. إليك مثال بسيط لتبدأ:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

لماذا يجب استخدام Ultralytics YOLO11 لتعيين الكائنات وتتبعها؟

Ultralytics YOLO11 يشتهر بالسرعة والدقة وسهولة التكامل، مما يجعله الخيار الأفضل لتعيين الأجسام وتتبعها. تشمل المزايا الرئيسية ما يلي:

  1. أداء متطور للغاية: يوفر دقة عالية في اكتشاف الأجسام في الوقت الحقيقي.
  2. المرونة: يدعم مهام مختلفة مثل الكشف والتتبع وحساب المسافة.
  3. المجتمع والدعم: وثائق موسعة ومجتمع GitHub نشط لاستكشاف الأخطاء وإصلاحها والتحسينات.
  4. سهولة الاستخدام: تعمل واجهة برمجة التطبيقات البديهية على تبسيط المهام المعقدة، مما يسمح بالنشر والتكرار السريع.

للمزيد من المعلومات حول التطبيقات والمزايا، اطلع على وثائقUltralytics YOLO11 .

كيف يمكنني دمج VisionEye مع أدوات التعلم الآلي الأخرى مثل Comet أو ClearML ؟

Ultralytics YOLO11 يمكن أن تتكامل بسلاسة مع العديد من أدوات التعلم الآلي مثل Comet و ClearML ، مما يعزز تتبع التجارب والتعاون وقابلية التكرار. اتبع الأدلة التفصيلية حول كيفية استخدام YOLOv5 مع Comet ودمج YOLO11 مع ClearML للبدء.

لمزيد من الاستكشاف وأمثلة التكامل، راجع دليل التكاملUltralytics .

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 5 أيام

التعليقات