تقسيم المثيلات وتتبعها باستخدام Ultralytics YOLO26#
ما تقسيم المثيلات؟#
تقسيم المثيلات مهمة في الرؤية الحاسوبية تتضمن تحديد الكائنات الفردية في الصورة ورسم حدودها على مستوى البكسل. وعلى خلاف التقسيم الدلالي، الذي يصنّف وحدات البكسل حسب الفئة فقط، يعيّن تقسيم المثيلات تسمية فريدة لكل مثيل كائن ويحدد حدوده بدقة، مما يجعله ضروريًا للتطبيقات التي تتطلب فهمًا مكانيًا مفصلًا، مثل التصوير الطبي والقيادة الذاتية والأتمتة الصناعية.
يوفر Ultralytics YOLO26 قدرات قوية لتقسيم المثيلات، تتيح اكتشاف حدود الكائنات بدقة مع الحفاظ على السرعة والكفاءة اللتين تشتهر بهما نماذج YOLO.
يتوفر نوعان من تتبّع تقسيم المثيلات في حزمة Ultralytics:
-
تقسيم المثيلات باستخدام كائنات الفئات: يُخصَّص لون فريد لكل كائن فئة لتمييزه بصريًا بوضوح.
-
تقسيم المثيلات باستخدام مسارات الكائنات: يُمثَّل كل مسار بلون مميز، مما يسهّل تحديد الكائنات وتتبعها عبر إطارات الفيديو.
شاهد: تقسيم المثيلات مع تتبع الكائنات باستخدام Ultralytics YOLO26
العينات#
| تقسيم المثيلات | تقسيم المثيلات + تتبّع الكائنات |
|---|---|
![]() | ![]() |
| تقسيم المثيلات في Ultralytics 😍 | تقسيم المثيلات وتتبع الكائنات في Ultralytics 🔥 |
قسّم الكائنات وتتبعها باستخدام YOLO26#
يشغّل حل InstanceSegmentation نموذج تقسيم YOLO26 على كل إطار، ويرسم أقنعة لكل كائن، ويلوّن كل مثيل بلون منفصل لتتمكن من متابعة الكائنات الفردية عبر الفيديو. حمّل نموذج -seg، ثم شغّله على المصدر باستخدام واجهة Python البرمجية أو CLI.
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"وسيطات InstanceSegmentation#
إليك جدولًا بمعاملات InstanceSegmentation:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
model | str | None | مسار ملف نموذج Ultralytics YOLO. |
line_width | int | 2 | سماكة الخط للصناديق والنقاط المفتاحية والعدادات التي يرسمها الحل. |
verbose | bool | True | يفعّل سجل الحل لكل إطار، ويشمل شكل المدخل وعدد الفئات وسرعة المعالجة. يظل استدعاء التتبع نفسه صامتًا دائمًا. |
يمكنك أيضًا الاستفادة من وسيطات track ضمن حل InstanceSegmentation:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
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 | يعرض تسميات كل اكتشاف في المخرجات المرئية، ما يتيح فهم الكائنات المكتشفة فورًا. |
show_boxes | bool | True | يرسم صناديق إحاطة حول الكائنات المكتشفة. ويُعد ذلك ضروريًا للتعرف بصريًا على الكائنات وتحديد مواقعها في الصور أو إطارات الفيديو. |
تطبيقات تقسيم المثيلات#
لتقسيم المثيلات باستخدام YOLO26 تطبيقات عديدة في العالم الحقيقي عبر قطاعات مختلفة:
إدارة النفايات وإعادة التدوير#
يمكن استخدام YOLO26 في منشآت إدارة النفايات لتحديد أنواع المواد المختلفة وفرزها. يستطيع النموذج تقسيم النفايات البلاستيكية والكرتون والمعادن وغيرها من المواد القابلة لإعادة التدوير بدقة عالية، مما يتيح لأنظمة الفرز الآلي معالجة النفايات بكفاءة أكبر. وتكتسب هذه الإمكانية أهمية خاصة لأن نحو 10% فقط من أصل 7 مليارات طن من النفايات البلاستيكية المتولدة عالميًا يُعاد تدويرها.
المركبات ذاتية القيادة#
في السيارات ذاتية القيادة، يساعد تقسيم المثيلات على تحديد المشاة والمركبات وإشارات المرور وعناصر الطريق الأخرى وتتبعها على مستوى البكسل. ويُعد هذا الفهم الدقيق للبيئة ضروريًا لاتخاذ قرارات الملاحة والسلامة. ويجعل الأداء الآني لـ YOLO26 النموذج مثاليًا لهذه التطبيقات الحساسة للوقت.
التصوير الطبي#
يمكن لتقسيم المثيلات تحديد الأورام أو الأعضاء أو البنى الخلوية ورسم حدودها في الصور الطبية. وتجعل قدرة YOLO26 على ترسيم حدود الكائنات بدقة منه أداة قيّمة في التشخيص الطبي وتخطيط العلاج.
مراقبة مواقع الإنشاء#
في مواقع الإنشاء، يمكن لتقسيم المثيلات تتبّع الآلات الثقيلة والعاملين والمواد. ويساعد ذلك على ضمان السلامة عبر مراقبة مواقع المعدات واكتشاف دخول العاملين إلى المناطق الخطرة، إلى جانب تحسين سير العمل وتوزيع الموارد.
الأسئلة الشائعة#
لتنفيذ تقسيم المثيلات باستخدام Ultralytics YOLO26، هيّئ نموذج YOLO باستخدام إصدار تقسيم من YOLO26، ثم عالج إطارات الفيديو من خلاله. إليك مثالًا مبسطًا للتعليمات البرمجية:
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("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # تهيئة InstanceSegmentation isegment = solutions.InstanceSegmentation( show=True, # # اعرض الناتج model="yolo26n-seg.pt", # model="yolo26n-seg.pt" لتقسيم الكائنات باستخدام YOLO26. ) # معالجة الفيديو while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = isegment(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()تعرّف على المزيد حول تقسيم المثيلات في دليل Ultralytics YOLO26.
يحدد تقسيم المثيلات الكائنات الفردية داخل الصورة ويرسم حدودها، مع إسناد تسمية وقناع فريدين إلى كل كائن. ويضيف تتبّع الكائنات إلى ذلك إسناد معرّفات ثابتة للكائنات عبر إطارات الفيديو، مما يسهّل تتبّع الكائنات نفسها باستمرار بمرور الوقت. وعند الجمع بينهما، كما في تنفيذ YOLO26، تحصل على قدرات قوية لتحليل حركة الكائنات وسلوكها في مقاطع الفيديو مع الحفاظ على معلومات دقيقة عن الحدود.
يوفر Ultralytics YOLO26 أداءً آنيًا ودقة فائقة وسهولة في الاستخدام مقارنةً بنماذج أخرى مثل Mask R-CNN أو Faster R-CNN. يعالج YOLO26 الصور في تمريرة واحدة (اكتشاف أحادي المرحلة)، مما يجعله أسرع بكثير مع الحفاظ على دقة عالية. كما يوفر تكاملًا سلسًا مع منصة Ultralytics، ما يتيح للمستخدمين إدارة النماذج ومجموعات البيانات ومسارات التدريب بكفاءة. ويوفر YOLO26 توازنًا مثاليًا للتطبيقات التي تتطلب السرعة والدقة معًا.
نعم، توفر Ultralytics عدة مجموعات بيانات مناسبة لتدريب نماذج YOLO26 على تقسيم المثيلات، منها COCO-Seg وCOCO8-Seg (مجموعة فرعية أصغر للاختبار السريع) وPackage-Seg وCrack-Seg. تتضمن مجموعات البيانات هذه تعليقات توضيحية على مستوى البكسل، وهي ضرورية لمهام تقسيم المثيلات. وللتطبيقات الأكثر تخصصًا، يمكنك أيضًا إنشاء مجموعات بيانات مخصصة وفق تنسيق Ultralytics. تتوفر معلومات مجموعات البيانات الكاملة وتعليمات استخدامها في وثائق مجموعات بيانات Ultralytics.

