التجزئة وتتبع المثيلات باستخدام Ultralytics YOLO26#
ما التقسيم المُثيلي؟#
التقسيم المُثيلي هو مهمة في الرؤية الحاسوبية تتضمن تحديد الكائنات الفردية في الصورة ورسم حدودها على مستوى البكسل. وعلى خلاف التقسيم الدلالي، الذي يصنّف وحدات البكسل حسب الفئة فقط، يضع التقسيم المُثيلي تسمية فريدة لكل مثيل من الكائنات ويحدد حدوده بدقة، ما يجعله أساسيًا للتطبيقات التي تتطلب فهمًا مكانيًا تفصيليًا، مثل التصوير الطبي والقيادة الذاتية والأتمتة الصناعية.
يوفر Ultralytics YOLO26 إمكانات قوية للتقسيم المُثيلي، تتيح الكشف الدقيق عن حدود الكائنات مع الحفاظ على السرعة والكفاءة اللتين تشتهر بهما نماذج YOLO.
يتوفر في حزمة Ultralytics نوعان من تتبع التقسيم المُثيلي:
-
التقسيم المُثيلي باستخدام كائنات الفئات: يُعيَّن لون فريد لكل كائن من كائنات الفئات لتحقيق فصل مرئي واضح.
-
التقسيم المُثيلي باستخدام مسارات الكائنات: يُمثَّل كل مسار بلون مميز، ما يسهّل التعرف على الكائنات وتتبعها عبر إطارات الفيديو.
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
العينات#
| التقسيم المُثيلي | التقسيم المُثيلي + تتبع الكائنات |
|---|---|
![]() | ![]() |
| التقسيم المُثيلي من Ultralytics 😍 | التقسيم المُثيلي من Ultralytics مع تتبع الكائنات 🔥 |
قسّم وتتبع باستخدام YOLO26#
يشغّل حل InstanceSegmentation نموذج تقسيم YOLO26 على كل إطار، ويرسم أقنعة لكل كائن، ويلون كل مثيل على نحو منفصل، حتى تتمكن من متابعة الكائنات الفردية عبر الفيديو. حمّل نموذج -seg، ثم شغّله على مصدرك باستخدام Python API أو 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 | '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 | يعرض تسميات كل كشف في المخرجات المرئية. ويوفر فهمًا فوريًا للكائنات المكتشفة. |
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" # 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("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Init InstanceSegmentation isegment = solutions.InstanceSegmentation( show=True, # display the output model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26. ) # Process video 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.

