تخطي إلى المحتوى

تجزئة الكائنات (Instance Segmentation) وtrackها باستخدام Ultralytics YOLO26 🚀

ما هو تجزئة المثيل (Instance Segmentation)؟

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

Ultralytics YOLO26 توفر إمكانيات قوية لتجزئة الكائنات (instance segmentation) تتيح اكتشاف حدود الكائنات بدقة مع الحفاظ على السرعة والكفاءة التي تشتهر بها نماذج YOLO.

يتوفر نوعان من تتبع تجزئة المثيل في حزمة Ultralytics:

  • تقسيم المثيلات مع كائنات الفئة: يتم تخصيص لون فريد لكل كائن فئة لفصل بصري واضح.

  • تقسيم المثيلات مع مسارات الكائنات: يتم تمثيل كل مسار بلون مميز، مما يسهل التعرف عليه وتتبعه عبر إطارات الفيديو.



شاهد: تجزئة الكائنات (Instance Segmentation) مع تتبع الكائنات (Object Tracking) باستخدام Ultralytics YOLO26

عينات

تجزئة المثيلتجزئة المثيل + تتبع الكائنات
تقسيم الحالات في Ultralyticsتقسيم الحالات في Ultralytics مع تتبع الكائنات
تقسيم الحالات في Ultralytics 😍تقسيم الحالات في Ultralytics مع تتبع الكائنات 🔥

تجزئة المثيل باستخدام Ultralytics YOLO

# 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]"
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("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
    # classes=[0, 2],  # segment specific classes, e.g., person and car with the pretrained model.
)

# 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 = isegment(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

InstanceSegmentation الوسائط

إليك جدول مع InstanceSegmentation arguments:

الوسيطةالنوعافتراضيالوصف
modelstrNoneمسار إلى ملف نموذج Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'قائمة النقاط التي تحدد منطقة العد.

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

الوسيطةالنوعافتراضيالوصف
trackerstr'botsort.yaml'يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.yaml.
conffloat0.1يحدد عتبة الثقة للكشف؛ القيم الأقل تسمح بتتبع المزيد من الكائنات ولكن قد تتضمن نتائج إيجابية كاذبة.
ioufloat0.7يحدد عتبة التقاطع على الاتحاد (IoU) لتصفية عمليات الكشف المتداخلة.
classeslistNoneيقوم بتصفية النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verboseboolTrueيتحكم في عرض نتائج التتبع، مما يوفر مخرجًا مرئيًا للكائنات التي يتم تتبعها.
devicestrNoneيحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.

علاوة على ذلك، تتوفر وسائط التصور التالية للاستخدام:

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

تطبيقات تقسيم المثيلات

تجزئة الكائنات (Instance segmentation) باستخدام YOLO26 لها العديد من التطبيقات الواقعية عبر مختلف الصناعات:

إدارة النفايات وإعادة التدوير

يمكن استخدام YOLO26 في مرافق إدارة النفايات لتحديد وفرز أنواع مختلفة من المواد. يمكن للنموذج segment النفايات البلاستيكية والورق المقوى والمعادن وغيرها من المواد القابلة لإعادة التدوير بدقة عالية، مما يتيح لأنظمة الفرز الآلي معالجة النفايات بكفاءة أكبر. وهذا ذو قيمة خاصة بالنظر إلى أن حوالي 10% فقط من 7 مليارات طن من النفايات البلاستيكية المنتجة عالمياً يتم إعادة تدويرها.

المركبات ذاتية القيادة

في السيارات ذاتية القيادة، تساعد تجزئة الكائنات (instance segmentation) في تحديد وtrack المشاة والمركبات وإشارات المرور وعناصر الطريق الأخرى على مستوى البكسل. هذا الفهم الدقيق للبيئة أمر بالغ الأهمية لقرارات الملاحة والسلامة. أداء YOLO26 في الوقت الفعلي يجعلها مثالية لهذه التطبيقات الحساسة للوقت.

التصوير الطبي

يمكن لتجزئة الكائنات (instance segmentation) تحديد وتخطيط الأورام أو الأعضاء أو الهياكل الخلوية في الفحوصات الطبية. قدرة YOLO26 على تحديد حدود الكائنات بدقة تجعلها ذات قيمة لـ التشخيصات الطبية وتخطيط العلاج.

مراقبة مواقع البناء

في مواقع البناء، يمكن لتجزئة المثيلات تتبع الآلات الثقيلة والعمال والمواد. يساعد ذلك في ضمان السلامة من خلال مراقبة مواقع المعدات واكتشاف متى يدخل العمال مناطق خطرة، مع تحسين سير العمل وتخصيص الموارد أيضًا.

ملاحظة

لأية استفسارات، لا تتردد في نشر أسئلتك في قسم المشكلات في Ultralytics أو قسم المناقشة المذكور أدناه.

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

كيف أقوم بتجزئة الكائنات (instance segmentation) باستخدام Ultralytics YOLO26؟

لإجراء تجزئة الكائنات (instance segmentation) باستخدام Ultralytics YOLO26، قم بتهيئة نموذج YOLO بإصدار تجزئة (segmentation version) من 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()

تعرف على المزيد حول تجزئة الكائنات (instance segmentation) في دليل Ultralytics YOLO26.

ما الفرق بين تجزئة الكائنات (instance segmentation) وتتبع الكائنات (object tracking) في Ultralytics YOLO26؟

تحدد تجزئة الكائنات (instance segmentation) الكائنات الفردية داخل الصورة وترسم حدودها، مما يمنح كل كائن تسمية وقناعًا فريدًا. يوسع تتبع الكائنات (Object tracking) هذا عن طريق تعيين معرفات متسقة للكائنات عبر إطارات الفيديو، مما يسهل track الكائنات نفسها بشكل مستمر بمرور الوقت. عند دمجها، كما هو الحال في تطبيق YOLO26، تحصل على إمكانيات قوية لتحليل حركة الكائنات وسلوكها في مقاطع الفيديو مع الحفاظ على معلومات حدود دقيقة.

لماذا يجب علي استخدام Ultralytics YOLO26 لتجزئة الكائنات (instance segmentation) وتتبعها بدلاً من نماذج أخرى مثل Mask R-CNN أو Faster R-CNN؟

تقدم Ultralytics YOLO26 أداءً في الوقت الفعلي، ودقة فائقة، وسهولة في الاستخدام مقارنةً بنماذج أخرى مثل Mask R-CNN أو Faster R-CNN. تعالج YOLO26 الصور في تمريرة واحدة (اكتشاف أحادي المرحلة)، مما يجعلها أسرع بكثير مع الحفاظ على دقة عالية. كما توفر تكاملاً سلساً مع منصة Ultralytics، مما يتيح للمستخدمين إدارة النماذج ومجموعات البيانات وخطوط أنابيب التدريب بكفاءة. للتطبيقات التي تتطلب كلاً من السرعة والدقة، توفر YOLO26 توازناً مثالياً.

هل توجد أي مجموعات بيانات مقدمة من Ultralytics مناسبة لتدريب نماذج YOLO26 لتجزئة الكائنات (instance segmentation) وتتبعها؟

نعم، تقدم Ultralytics العديد من مجموعات البيانات المناسبة لتدريب نماذج YOLO26 لتجزئة الكائنات (instance segmentation)، بما في ذلك COCO-Seg، وCOCO8-Seg (مجموعة فرعية أصغر للاختبار السريع)، وPackage-Seg، وCrack-Seg. تأتي مجموعات البيانات هذه مع تعليقات توضيحية على مستوى البكسل مطلوبة لمهام تجزئة الكائنات. للتطبيقات الأكثر تخصصاً، يمكنك أيضاً إنشاء مجموعات بيانات مخصصة باتباع تنسيق Ultralytics. يمكن العثور على معلومات كاملة عن مجموعات البيانات وتعليمات الاستخدام في وثائق مجموعات بيانات Ultralytics.



📅 تم الإنشاء قبل 2 أعوام ✏️ تم التحديث قبل 7 أيام
glenn-jocherRizwanMunawarRizwanMunawarpderrengerleonnilUltralyticsAssistantMatthewNoyceIvorZhu331

تعليقات