رؤية VisionEye ورسم خرائط الأجسام باستخدام Ultralytics YOLO26#
ما المقصود برسم خرائط الأجسام باستخدام VisionEye؟#
يتيح Ultralytics YOLO26 VisionEye للحواسيب القدرة على التعرّف على الأجسام وتحديد مواقعها، محاكياً دقة الرؤية البشرية. تُمكّن هذه الوظيفة الحواسيب من تمييز أجسام معينة والتركيز عليها، تماماً كما ترصد العين البشرية التفاصيل من منظور محدد.
ارسم خرائط للأجسام باستخدام YOLO26#
يثبّت VisionEye نقطة رصد واحدة في الإطار، ويرسم شعاعاً منها إلى كل جسم متتبَّع، لتتمكن من تصور المشهد من منظور واحد. عيّن vision_point إلى إحداثيات موقع الراصد بالبكسل، ثم شغّل الحل على الفيديو باستخدام واجهة Python البرمجية أو CLI.
# 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:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار ملف نموذج Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | النقطة التي ستتتبع منها الرؤية الأجسام وترسم المسارات باستخدام حل VisionEye. |
line_width | int | 2 | سماكة الخط للصناديق والنقاط المفتاحية والعدادات التي يرسمها الحل. |
verbose | bool | True | يفعّل سجل الحل لكل إطار، ويشمل شكل المدخل وعدد الفئات وسرعة المعالجة. يظل استدعاء التتبع نفسه صامتًا دائمًا. |
يمكنك أيضاً استخدام وسائط track المختلفة ضمن حل VisionEye:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | يحدد خوارزمية التتبع المطلوب استخدامها. الخيارات المضمنة: botsort.yaml، bytetrack.yaml، ocsort.yaml، deepocsort.yaml، fasttrack.yaml، tracktrack.yaml. |
conf | float | 0.25 | يضبط عتبة الثقة للكشوفات؛ إذ تسمح القيم الأقل بتتبع مزيد من الكائنات، لكنها قد تتضمن إيجابيات كاذبة. |
iou | float | 0.7 | يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الكشوفات المتداخلة. |
classes | list | None | يصفّي النتائج حسب فهرس الفئة. على سبيل المثال، لا يتتبع classes=[0, 2, 3] إلا الفئات المحددة. |
device | str | None | يحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محددة أو أجهزة حوسبة أخرى لتنفيذ النموذج. |
imgsz | int or tuple | 640 | حجم صورة الاستدلال المستهدف: عدد صحيح لصورة مربعة، أو زوج (height, width). تُعدّل الأبعاد وفقًا لخطوة النموذج. |
max_det | int | 300 | الحد الأقصى لعدد الكشوفات التي يُحتفظ بها لكل إطار قبل التتبع، ما يحد من عدد الكائنات التي يعالجها الحل في المشاهد الكثيفة. |
quantize | int or str | None | دقة الاستدلال: 16 (FP16) أو 32/غير محدد (FP32) لنماذج PyTorch وTorchScript؛ أما التنسيقات الأخرى فتحسب بالدقة التي يحددها الملف الاصطناعي وبيئة التشغيل. يحل هذا الوسيط محل العلامة half التي أُهمل استخدامها. |
بالإضافة إلى ذلك، تتوفر بعض وسائط التصور، كما هو موضح أدناه:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
show | bool | False | إذا كان True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. يفيد ذلك في الحصول على ملاحظات مرئية فورية أثناء التطوير أو الاختبار. |
show_conf | bool | True | يعرض درجة الثقة لكل اكتشاف بجوار التسمية، ما يوضح مدى يقين النموذج بشأن كل اكتشاف. |
show_labels | bool | True | يعرض تسميات كل اكتشاف في المخرجات المرئية، ما يتيح فهم الكائنات المكتشفة فورًا. |
آلية عمل VisionEye#
يعمل VisionEye بتحديد نقطة رؤية ثابتة في الإطار ورسم خطوط منها إلى الأجسام المكتشفة. ويحاكي ذلك كيفية تركيز الرؤية البشرية على أجسام متعددة من منظور واحد. ويستخدم الحل تتبّع الأجسام للحفاظ على اتساق التعرّف على الأجسام عبر الإطارات، وإنشاء تمثيل مرئي للعلاقة المكانية بين الراصد (نقطة الرؤية) والأجسام في المشهد.
تنفّذ الطريقة process في فئة VisionEye عدة عمليات أساسية:
- استخراج المسارات (مربعات الإحاطة والفئات ومعرّفات المسارات) من صورة الإدخال
- إنشاء أداة شرح لرسم مربعات الإحاطة والتسميات
- رسم مربع وتسمية لكل جسم مكتشف، وإنشاء خط رؤية يصل إليه من نقطة الرؤية
- إرجاع الصورة المشروحة مع إحصاءات التتبّع
يفيد هذا النهج على نحو خاص في التطبيقات التي تتطلب إدراكاً مكانياً وتصويراً مرئياً لعلاقات الأجسام، مثل أنظمة المراقبة والملاحة الذاتية والتركيبات التفاعلية.
تطبيقات 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 بسرعته ودقته وسهولة دمجه، ما يجعله خياراً رائداً لرسم خرائط الأجسام وتتبعها. وتشمل أبرز مزاياه:
- أداء متطور: يوفّر دقة عالية في اكتشاف الأجسام آنياً.
- المرونة: يدعم الاكتشاف والتتبّع وحساب المسافة ضمن مسار معالجة واحد.
- المجتمع والدعم: وثائق شاملة ومجتمع نشط على GitHub لاستكشاف المشكلات وإجراء التحسينات.
- سهولة الاستخدام: تبسّط واجهة API البديهية المهام المعقدة، ما يتيح النشر والتطوير التكراري بسرعة.
لمزيد من المعلومات حول التطبيقات والمزايا، اطّلع على وثائق Ultralytics YOLO26.
يمكن دمج Ultralytics YOLO26 بسلاسة مع أدوات متنوعة للتعلّم الآلي مثل Comet وClearML، ما يعزز تتبّع التجارب والتعاون وقابلية إعادة إنتاج النتائج. ابدأ باتّباع الأدلة التفصيلية حول دمج YOLO26 مع Comet ودمج YOLO26 مع ClearML.
لمزيد من الاستكشاف والاطلاع على أمثلة الدمج، راجع دليل تكاملات Ultralytics.