Ultralytics YOLO27:
Get Started

رؤية VisionEye ورسم خرائط الأجسام باستخدام Ultralytics YOLO26#

ما المقصود برسم خرائط الأجسام باستخدام VisionEye؟#

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

VisionEye object mapping with YOLO tracking

ارسم خرائط للأجسام باستخدام YOLO26#

يثبّت VisionEye نقطة رصد واحدة في الإطار، ويرسم شعاعاً منها إلى كل جسم متتبَّع، لتتمكن من تصور المشهد من منظور واحد. عيّن vision_point إلى إحداثيات موقع الراصد بالبكسل، ثم شغّل الحل على الفيديو باستخدام واجهة Python البرمجية أو CLI.

رسم الخرائط باستخدام 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]"

وسيطات VisionEye#

إليك جدولًا بمعاملات VisionEye:

المعاملالنوعالافتراضيالوصف
modelstrNoneمسار ملف نموذج Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)النقطة التي ستتتبع منها الرؤية الأجسام وترسم المسارات باستخدام حل VisionEye.
line_widthint2سماكة الخط للصناديق والنقاط المفتاحية والعدادات التي يرسمها الحل.
verboseboolTrueيفعّل سجل الحل لكل إطار، ويشمل شكل المدخل وعدد الفئات وسرعة المعالجة. يظل استدعاء التتبع نفسه صامتًا دائمًا.

يمكنك أيضاً استخدام وسائط track المختلفة ضمن حل VisionEye:

المعاملالنوعالافتراضيالوصف
trackerstr'tracktrack.yaml'يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المضمنة: botsort.yaml، bytetrack.yaml، ocsort.yaml، deepocsort.yaml، fasttrack.yaml، tracktrack.yaml.
conffloat0.25يضبط عتبة الثقة للكشوفات؛ إذ تسمح القيم الأقل بتتبع مزيد من الكائنات، لكنها قد تتضمن إيجابيات كاذبة.
ioufloat0.7يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الكشوفات المتداخلة.
classeslistNoneيصفّي النتائج حسب فهرس الفئة. على سبيل المثال، لا يتتبع classes=[0, 2, 3] إلا الفئات المحددة.
devicestrNoneيحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محددة أو أجهزة حوسبة أخرى لتنفيذ النموذج.
imgszint or tuple640حجم صورة الاستدلال المستهدف: عدد صحيح لصورة مربعة، أو زوج (height, width). تُعدّل الأبعاد وفقًا لخطوة النموذج.
max_detint300الحد الأقصى لعدد الكشوفات التي يُحتفظ بها لكل إطار قبل التتبع، ما يحد من عدد الكائنات التي يعالجها الحل في المشاهد الكثيفة.
quantizeint or strNoneدقة الاستدلال: 16 (FP16) أو 32/غير محدد (FP32) لنماذج PyTorch وTorchScript؛ أما التنسيقات الأخرى فتحسب بالدقة التي يحددها الملف الاصطناعي وبيئة التشغيل. يحل هذا الوسيط محل العلامة half التي أُهمل استخدامها.

بالإضافة إلى ذلك، تتوفر بعض وسائط التصور، كما هو موضح أدناه:

المعاملالنوعالافتراضيالوصف
showboolFalseإذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. يفيد ذلك في الحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار.
show_confboolTrueيعرض درجة الثقة لكل اكتشاف بجوار التسمية، ما يوضح مدى يقين النموذج بشأن كل اكتشاف.
show_labelsboolTrueيعرض تسميات كل اكتشاف في المخرجات المرئية، ما يتيح فهم الكائنات المكتشفة فورًا.

آلية عمل VisionEye#

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

تنفّذ الطريقة process في فئة VisionEye عدة عمليات أساسية:

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

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

تطبيقات VisionEye#

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

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

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

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

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

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    assert cap.isOpened(), "Error reading video file"
    
    # ⁨كاتب الفيديو⁩
    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))
    
    # ⁨تهيئة كائن VisionEye⁩
    visioneye = solutions.VisionEye(
        show=True,  # ⁨# اعرض الناتج⁩
        model="yolo26n.pt",  # ⁨استخدم أي نموذج تدعمه Ultralytics، مثل yolo26s.pt⁩
        classes=[0, 2],  # ⁨إنشاء عرض VisionEye لفئات محددة⁩
    )
    
    # ⁨معالجة الفيديو⁩
    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)  # ⁨الوصول إلى المخرجات⁩
    
        video_writer.write(results.plot_im)  # ⁨كتابة ملف الفيديو⁩
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # ⁨إغلاق جميع النوافذ المفتوحة⁩
  • يشتهر Ultralytics YOLO26 بسرعته ودقته وسهولة دمجه، ما يجعله خياراً رائداً لرسم خرائط الأجسام وتتبعها. وتشمل أبرز مزاياه:

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

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

  • يمكن دمج Ultralytics YOLO26 بسلاسة مع أدوات متنوعة للتعلّم الآلي مثل Comet وClearML، ما يعزز تتبّع التجارب والتعاون وقابلية إعادة إنتاج النتائج. ابدأ باتّباع الأدلة التفصيلية حول دمج YOLO26 مع Comet ودمج YOLO26 مع ClearML.

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

التعليقات