ربط كائنات عرض VisionEye باستخدام Ultralytics YOLO26#
ما المقصود برسم خرائط الكائنات باستخدام VisionEye؟#
يوفّر Ultralytics YOLO26 VisionEye إمكانية تمكين أجهزة الكمبيوتر من تحديد الكائنات وتعيين مواقعها بدقة، بما يحاكي دقة العين البشرية في الملاحظة. تتيح هذه الوظيفة لأجهزة الكمبيوتر تمييز كائنات محددة والتركيز عليها، على نحو يشبه ملاحظة العين البشرية للتفاصيل من منظور معين.
رسم خرائط الكائنات باستخدام YOLO26#
يثبّت VisionEye نقطة ملاحظة واحدة في الإطار ويرسم شعاعًا منها إلى كل كائن تتم متابعته، بحيث يمكنك تصور شكل المشهد من منظور واحد. عيّن vision_point إلى الإحداثيات البكسلية للمراقب، ثم شغّل الحل على الفيديو باستخدام Python API أو 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 | 'botsort.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" # 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="yolo26n.pt", # use any model that Ultralytics supports, e.g., yolo26s.pt 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 YOLO26 بسرعته ودقته وسهولة دمجه، ما يجعله خيارًا رائدًا لرسم خرائط الكائنات وتتبّعها. وتشمل المزايا الرئيسية ما يلي:
- أداء متطور: يوفّر دقة عالية في اكتشاف الكائنات في الوقت الفعلي.
- المرونة: يدعم الاكتشاف والتتبّع وحساب المسافة ضمن مسار معالجة واحد.
- المجتمع والدعم: وثائق شاملة ومجتمع نشط على GitHub لاستكشاف الأخطاء وإصلاحها وإجراء التحسينات.
- سهولة الاستخدام: تعمل واجهة API البديهية على تبسيط المهام المعقدة، مما يتيح النشر والتكرار بسرعة.
لمزيد من المعلومات حول التطبيقات والفوائد، راجع وثائق Ultralytics YOLO26.
يمكن دمج Ultralytics YOLO26 بسلاسة مع أدوات متنوعة للتعلّم الآلي مثل Comet وClearML، مما يعزز تتبّع التجارب والتعاون وقابلية إعادة الإنتاج. اتبع الأدلة التفصيلية حول كيفية استخدام YOLOv5 مع Comet ودمج YOLO26 مع ClearML للبدء.
لمزيد من الاستكشاف وأمثلة الدمج، راجع دليل تكاملات Ultralytics.