Ultralytics YOLO27:

التجزئة وتتبع المثيلات باستخدام Ultralytics YOLO26#

ما التقسيم المُثيلي؟#

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

يوفر Ultralytics YOLO26 إمكانات قوية للتقسيم المُثيلي، تتيح الكشف الدقيق عن حدود الكائنات مع الحفاظ على السرعة والكفاءة اللتين تشتهر بهما نماذج YOLO.

يتوفر في حزمة Ultralytics نوعان من تتبع التقسيم المُثيلي:

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

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



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

العينات#

التقسيم المُثيليالتقسيم المُثيلي + تتبع الكائنات
التقسيم المُثيلي من Ultralyticsالتقسيم المُثيلي من Ultralytics مع تتبع الكائنات
التقسيم المُثيلي من Ultralytics 😍التقسيم المُثيلي من Ultralytics مع تتبع الكائنات 🔥

قسّم وتتبع باستخدام YOLO26#

يشغّل حل InstanceSegmentation نموذج تقسيم YOLO26 على كل إطار، ويرسم أقنعة لكل كائن، ويلون كل مثيل على نحو منفصل، حتى تتمكن من متابعة الكائنات الفردية عبر الفيديو. حمّل نموذج -seg، ثم شغّله على مصدرك باستخدام Python API أو CLI.

التقسيم المُثيلي باستخدام 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]"

وسيطات InstanceSegmentation#

إليك جدولًا بوسيطات InstanceSegmentation:

الوسيطةالنوعالافتراضيالوصف
modelstrNoneالمسار إلى ملف نموذج Ultralytics YOLO.
line_widthint2سُمك الخط للصناديق والنقاط الرئيسية والأعداد التي يرسمها الحل.
verboseboolTrueيمكّن سجل الحل لكل إطار، والذي يتضمن شكل الإدخال وأعداد الفئات وسرعة المعالجة. ويظل استدعاء التتبع نفسه صامتًا دائمًا.

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

الوسيطةالنوعالافتراضيالوصف
trackerstr'botsort.yaml'يحدد خوارزمية التتبع المراد استخدامها. الخيارات المضمنة: botsort.yaml وbytetrack.yaml وocsort.yaml وdeepocsort.yaml وfasttrack.yaml وtracktrack.yaml.
conffloat0.25يضبط عتبة الثقة للاكتشافات؛ إذ تتيح القيم الأقل تتبع مزيد من الكائنات، لكنها قد تتضمن إيجابيات كاذبة.
ioufloat0.7يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classeslistNoneيصفّي النتائج حسب فهرس الفئة. على سبيل المثال، لا يتتبع classes=[0, 2, 3] سوى الفئات المحددة.
devicestrNoneيحدد الجهاز المستخدم للاستدلال (مثل cpu أو cuda:0 أو 0). ويتيح للمستخدمين الاختيار بين CPU أو GPU محدد أو أجهزة حوسبة أخرى لتنفيذ النموذج.
imgszint or tuple640حجم صورة الاستدلال المستهدفة: عدد صحيح لشكل مربع أو زوج (height, width). يتم ضبط الأشكال لتتناسب مع خطوة النموذج.
max_detint300الحد الأقصى لعدد الاكتشافات المحتفظ بها لكل إطار قبل التتبع، مما يحد من الكائنات التي يعالجها الحل في المشاهد المزدحمة.
quantizeint or strNoneدقة الاستدلال: 16 (FP16) أو 32/غير محدد (FP32) لنموذجي PyTorch وTorchScript؛ بينما تحسب التنسيقات الأخرى بالدقة التي تحددها ملفاتها ومحيط تشغيلها. يحل محل علامة half المهملة.

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

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

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

للتقسيم المُثيلي باستخدام 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.

التعليقات