Ultralytics YOLO27: انضم إلى قائمة الانتظار.
Get Started
أساسيات الرؤية الحاسوبية·اختر مهمة·الدرس 2/10
الدرسمبتدئ

مهام الرؤية السبع

طابق سطر المخرجات مع التصنيف أو الكشف أو تجزئة الكائنات أو التجزئة الدلالية أو تقدير العمق أو تقدير الوضعية أو OBB، واختر أوزان YOLO26 التي تبدأ بها.

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

النتيجة

حدّد المهمة الواحدة وملف أوزان YOLO26 المطابقين لسطر المخرجات لديك، واشرح في سطر واحد لماذا لا تحتاج إلى المهمة التالية الأعلى تكلفة.

المسار السريع
إذا كنت تعرف الأساسيات بالفعل، فإليك النسخة المختصرة.
  1. تسمية واحدة للصورة بأكملها: التصنيف.

  2. ما الشيء وأين يوجد، ويكفي تحديده بمستطيل: الكشف.

  3. حدود دقيقة لكل كائن: تجزئة الكائنات. فئة لكل بكسل: التجزئة الدلالية.

  4. مسافة لكل بكسل: تقدير العمق.

  5. مفاصل أو معالم: تقدير الوضعية. كائنات بزاوية تُرى من الأعلى: OBB.

  6. تُستخدم واجهة YOLO() API نفسها للمهام السبع كلها؛ ولا يتغير سوى ملف الأوزان.

عملي

المهام السبع في لمحة#

مخرجات مهام Ultralytics YOLO السبع: ورقة مصنّفة، وسيارات ومشاة مكتشَفون، وسيارات مجزّأة، وخريطة شارع دلالية، وهيكل عظمي لوضعية عدّاء، ومربعات مدوّرة حول سفن، وخريطة عمق

اقرأ الجدول بالاستناد إلى عمود المخرجات — فهذا ما يجب أن يطابقه سطر المخرجات في مواصفاتك.

المهمةالمخرجاتما الذي تجيب عنهأوزان YOLO26
التصنيفتسمية واحدة لكل صورة، مع احتمال«ما الذي تعرضه هذه الصورة؟»yolo26n-cls.pt
الكشفالفئة والمربع ودرجة الثقة لكل كائن«ما الشيء وأين يوجد؟»yolo26n.pt
تجزئة الكائناتالفئة وقناع البكسلات لكل كائن"ما الشكل الدقيق لكل كائن؟"yolo26n-seg.pt
التجزئة الدلاليةفئة واحدة لكل بكسل"ما نوع المنطقة التي يمثّلها كل بكسل؟"yolo26n-sem.pt
تقدير العمقالمسافة بالأمتار لكل بكسل"ما بُعد كل بكسل؟"yolo26n-depth.pt
تقدير الوضعيةصندوق ونقاط مفتاحية لكل شخص أو كائن"ما وضعية الجسم؟"yolo26n-pose.pt
الصناديق المحيطة الموجّهةصندوق مُدار لكل كائن"ما الكائن الموجود، وأين، وبأي زاوية؟"yolo26n-obb.pt

هناك التباسان يربكان الناس. تجزئة الكائنات مقابل التجزئة الدلالية: تفصل تجزئة الكائنات كل كائن على حدة (ثلاث سيارات، وثلاثة أقنعة)؛ أما التجزئة الدلالية فتُصنّف البكسلات حسب الفئة فقط (منطقة واحدة لـ"سيارة"، بلا عدد). الكشف مقابل OBB: يعيد كلاهما صندوقًا واحدًا لكل كائن، لكن OBB يدور مع الكائن، وهو أمر مهم عندما تكون الكائنات بزاوية في الصور الملتقطة من الأعلى.

واجهة API واحدة، وسبعة أنواع من المخرجات#

لا يعني تبديل المهام تبديل الأدوات. يحدد ملف الأوزان ما ستستعيده، ويملأ كائن Results الخاصية المطابقة:

from ultralytics import YOLO

image = "https://ultralytics.com/images/bus.jpg"
outputs = ["probs", "boxes", "masks", "semantic_mask", "depth", "keypoints", "obb"]

for suffix in ["-cls", "", "-seg", "-sem", "-depth", "-pose", "-obb"]:
    weights = f"yolo26n{suffix}.pt"
    model = YOLO(weights)
    result = model(image, verbose=False)[0]
    filled = [name for name in outputs if getattr(result, name) is not None]
    print(f"{weights:18} task={model.task:9} -> {', '.join(filled)}")
yolo26n-cls.pt     task=classify  -> probs
yolo26n.pt         task=detect    -> boxes
yolo26n-seg.pt     task=segment   -> boxes, masks
yolo26n-sem.pt     task=semantic  -> semantic_mask
yolo26n-depth.pt   task=depth     -> depth
yolo26n-pose.pt    task=pose      -> boxes, keypoints
yolo26n-obb.pt     task=obb       -> obb

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

الاختيار عمليًا#

ابدأ بما يجب أن يصفه كل تنبؤ، ثم اختر أقل المهام كلفةً للإجابة عن سؤال القرار:

  1. تسمية واحدة للصورة بأكملها ← التصنيف.
  2. فئة لكل بكسل، دون الحاجة إلى فصل الكائنات ← التجزئة الدلالية.
  3. مسافة لكل بكسل ← تقدير العمق.
  4. شيء يتعلق بكل كائن:
    • موضعه، لعدّه أو تحديد موقعه أو تصفيته ← الكشف (أضف التتبّع لمعرفة الهوية عبر الإطارات)؛
    • شكله الدقيق أو حدوده أو مساحته ← تجزئة الكائنات؛
    • وضعيته ← تقدير الوضعية؛
    • دورانه في الصور الملتقطة من الأعلى ← OBB.

عندما تلائم مهمتان احتياجك، اختر الأقل كلفةً في الوسم والتشغيل. يُعد الكشف الخيار الافتراضي لمعظم المنتجات: فمن السهل رسم الصناديق ومراجعتها، ومع إضافة التتبّع فإنها تتيح بالفعل العدّ والتنبيهات عند دخول المناطق والتحليلات المرورية، كما في مشهد الطريق السريع هذا:

حركة المرور على الطريق السريع، يتتبّعها Ultralytics YOLO مع معرّف ثابت ومسار حركة لكل سيارة وحافلة وشاحنة

العمق: المهمة التي تجيب عن سؤال «ما المسافة؟»#

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

from ultralytics import YOLO

model = YOLO("yolo26n-depth.pt")
result = model("https://ultralytics.com/images/bus.jpg", verbose=False)[0]

depth = result.depth.data  # meters, one value per pixel
print(f"depth map {tuple(depth.shape)}, nearest {float(depth.min()):.1f} m, farthest {float(depth.max()):.1f} m")
depth map (1080, 810), nearest 2.0 m, farthest 14.9 m

تستنتج الكاميرا الواحدة العمق من مؤشرات متعلّمة مثل المنظور وحجم الكائن، لذا قِس خطأها في مشاهدك قبل استخدامها لتحديد مسافات بالغة الأهمية للسلامة. ويعمل العمق جيدًا مع الكشف: اكشف الكائن، ثم اقرأ خريطة العمق داخل صندوقه.

مواطن الخلل#

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

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

جرّبه

خذ سطر المخرجات من مواصفاتك في الدرس 1، واتبع السُّلّم أعلاه. دوّن المهمة، وملف أوزان YOLO26 الذي ستبدأ به، وسمة Results التي سيقرأها كودك، وسطرًا واحدًا يوضح لماذا لا تحتاج إلى المهمة التالية الأعلى كلفةً. أليس لديك مشروع بعد؟ استخدم مواصفات الرافعة الشوكية.

متى يُعدّ مكتملًا
تكون قد أتممت الدرس عند تحقق جميع الشروط التالية.
  • لقد حدّدت مهمة واحدة وملف أوزان YOLO26 وسمة Results التي يقرأها كودك.

  • كتبت سطرًا واحدًا يشرح لماذا لا تحتاج إلى المهمة التالية الأعلى كلفةً.

  • يمكنك تحديد ما إذا كان مشروعك يحتاج إلى تجزئة الكائنات أو التجزئة الدلالية أو تقدير العمق أو لا يحتاج إلى أي منها — وسبب ذلك.

عرض الحل

بالنسبة إلى مواصفات الرافعة الشوكية، الإجابة هي الكشف باستخدام yolo26n.pt، مع القراءة من result.boxes.

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

ما الخطوة التالية

بعد ذلك، نلقي نظرةً أقرب على الكشف — المهمة الأساسية التي تبدأ بها معظم المنتجات.

سجّل الدخول لحفظ التقدم