الرؤية الحاسوبية2023متوسط12 دقيقة قراءة

تجزئة أي شيء

Segment Anything

Kirillov, A. · Mintun, E. · Ravi, N. · Mao, H. · Rolland, C. · Gustafson, L. · Xiao, T. · Whitehead, S. · Berg, A. C. · Lo, W.-Y. · Dollár, P. · Girshick, R. — ICCV

المشكلة

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

الإسهام

ثلاث أفكار مترابطة: (1) مهمة — أعطِ النموذج نقطة أو مستطيلاً أو قناعاً أوّلياً أو وصفاً نصياً، فيُعيد لك قناع تجزئة صحيحاً. (2) نموذج SAM نفسه — مرمِّز صور مبني على محوِّل الرؤية يعالج الصورة مرة واحدة، ثم مرمِّز توجيهات وفاكّ ترميز أقنعة خفيفان يُنتجان الأقنعة لحظياً (~50 مللي ثانية على المعالج). النموذج : إن كان التوجيه محتمَل التأويل يُخرج عدة أقنعة بدلاً من واحد. (3) يُنضج النموذج والبيانات معاً عبر ثلاث مراحل (يدوية بمساعدة النموذج ← شبه آلية ← آلية تماماً)، أنتج في نهايته SA-1B: 1.1 مليار قناع على 11 مليون صورة — أي 400 ضعف أكبر مجموعة بيانات سابقة.

الأثر

يُعدّ SAM أول في مجال تجزئة الصور. قدرته على تجزئة أجسام لم يتدرّب عليها قط قلبت الفكرة السائدة بأن كل مهمة تجزئة تحتاج نموذجاً متخصصاً. وسرعان ما نشأت حوله منظومة كاملة: SAM 2 وسّعه إلى الفيديو، وHQ-SAM رفع دقة الحدود، وMedSAM طوّعه للتصوير الطبي، وGrounded-SAM ربطه باللغة الطبيعية. أثبت SAM عملياً أن وصفة النماذج الأساسية — بيانات هائلة ومهمة قابلة للتوجيه وحجم كافٍ — لا تنجح في اللغة فحسب، بل في التنبؤ البصري الكثيف أيضاً.

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

SAM يختلف تماماً: هو أقرب إلى طبيب عام يملك رؤية شاملة. أرِهِ أي مريض (أي صورة)، وأشِر إلى موضع الألم (نقرة أو مستطيل أو وصف نصي)، فيحدّد المنطقة المصابة فوراً () — حتى لو لم يصادف هذه الحالة من قبل. سرّ قدرته أنه «تخرّج» من مشاهدة أكثر من مليار حالة عبر كل تخصص يمكن تصوّره.

المشكلة: كل مجال يبني نموذجه من الصفر

قبل SAM، كانت التجزئة تعمل بمنطق بسيط: تريد تجزئة أورام في صور أشعة مقطعية؟ درِّب نموذجاً على صور الأشعة. تريد تجزئة طرق في صور أقمار اصطناعية؟ درِّب نموذجاً آخر تماماً. كل مجال جديد يحتاج بيانات مُعنوَنة خاصة وتدريباً من الصفر وخبرة مستقلة. لم يكن هناك حقيقي — نموذج متميّز في التصوير الطبي لا يفيد في القيادة الذاتية بشيء.

في المقابل، أثبتت النماذج الأساسية في معالجة اللغة — مثل GPT وBERT — أن نموذجاً واحداً يُدرَّب على بيانات ضخمة يمكنه الانتقال لأي مهمة لاحقة. وفي ، بيّن وCLIP أن قادرة على تعلّم تمثيلات بصرية عامة. لكن مهمة التجزئة تحديداً — رسم حدود كل جسم بدقة البكسل — ظلّت بلا نموذج أساسي.

العقبة الأساسية كانت البيانات. أقنعة التجزئة مكلّفة التوصيف أكثر بكثير من تسميات التصنيف أو : كل قناع يتطلب تتبُّع حدود كل بكسل لكل جسم. أكبر مجموعة بيانات للتجزئة آنذاك لم تتجاوز 2.5 مليون قناع. لبناء نموذج أساسي كان المطلوب أضعافاً مضاعفة من البيانات — وآلية جديدة لجمعها بكفاءة.

افتح في المختبر
شاهد كيف يحتاج كل مجال نموذجاً اختصاصياً في التجزئة التقليدية، بينما SAM يتولاها جميعاً.
تستيقظ التجربة عند وصولك…

المهمة: التجزئة القابلة للتوجيه

الفكرة الأساسية مأخوذة من عالم اللغة: كما يستقبل GPT نصاً ويولّد إكمالاً له، يستقبل SAM توجيهاً للتجزئة ويولّد قناعاً. التوجيه قد يكون:

  • نقطة (نقرة أمامية أو خلفية)
  • مستطيل محيط (يحيط بالجسم المطلوب)
  • قناع تقريبي (مخطط أوّلي خشن يُنقَّح)
  • نص (وصف مثل «السيارة الحمراء»)

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

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

افتح في المختبر
جرِّب أنواع التوجيه المختلفة — انقر نقطة أو ارسم مستطيلاً أو ادمجهما لترى كيف يستجيب SAM.
تستيقظ التجربة عند وصولك…

النموذج: مرمِّز صور + مرمِّز توجيهات + فاكّ ترميز أقنعة

بنية SAM مكوّنة من ثلاث وحدات، لكلٍّ منها دور واضح — تخيّلها كخط تجميع بثلاث محطات:

المحطة 1 — (العمل الثقيل). يقوم على محوِّل رؤية ضخم (ViT-H) دُرِّب مسبقاً بأسلوب (MAE). يأخذ صورة بحجم 1024×1024 ويُنتج شبكة 64×64 من بـ 256 بُعداً — أي كثيفة تلخّص كل ما في الصورة. هذه أبطأ خطوة، لكنها تُنفَّذ مرة واحدة فقط لكل صورة، ويمكن تخزين نتائجها واستخدامها مع أي عدد من التوجيهات لاحقاً.

المحطة 2 — (الوسيط). يحوّل أي توجيه من المستخدم إلى تضمين يفهمه فاكّ الترميز. التوجيهات المتفرقة (نقاط ومستطيلات) تُحوَّل إلى مُضافاً إليها تضمينات نوع مُتعلَّمة. التوجيهات الكثيفة (أقنعة) تمرّ عبر طبقات . أما التوجيهات النصية فتستخدم مرمِّز نص CLIP. هذا المكوِّن خفيف جداً حسابياً.

المحطة 3 — (اللمسة الأخيرة). فاكّ ترميز محوِّل خفيف بطبقتين فقط، يستقبل تضمينات الصورة والتوجيه ويُنتج القناع النهائي. يعتمد في الاتجاهين — التوجيهات تنتبه للصورة والصورة تنتبه للتوجيهات — ثم يرفع الدقة إلى مستوى البكسل. يُخرج ثلاثة أقنعة (لتغطية الغموض) مع درجة ثقة لكل قناع. زمن التنفيذ نحو 50 مللي ثانية على المعالج — وهو ما يتيح الاستخدام التفاعلي في المتصفح مباشرة.

افتح في المختبر
انقر على كل مكوِّن لاستكشاف بنية SAM الثلاثية.
تستيقظ التجربة عند وصولك…

معالجة الغموض: ثلاثة أقنعة لا قناع واحد

النقطة الواحدة غامضة بطبيعتها — قد تقصد بها أصغر جسم تحت المؤشر، أو جسماً أكبر يحتويه، أو المشهد كله. يتعامل SAM مع هذا بأن يتنبأ بـثلاثة أقنعة عند مستويات تفصيل مختلفة (الجسم الكامل، جزء منه، جزء فرعي)، ولكل قناع درجة ثقة . يتعلّم النموذج ترتيبها، ويُختار القناع الأعلى ثقة تلقائياً.

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

تدريب النموذج على هذا الوعي يعتمد حيلة بسيطة: في كل عيّنة، القناع الذي يحقق أقل (أي الأقرب إلى ) هو وحده الذي يتلقى . القناعان الآخران لا يحصلان على أي إشارة تدريب لتلك العيّنة — وهذا يدفع كل «خانة» للتخصص في مستوى تفصيل مختلف تلقائياً.

افتح في المختبر
انقر نقطة على الصورة وشاهد تنبؤات SAM الثلاثة بمستويات تفصيل مختلفة.
تستيقظ التجربة عند وصولك…

محرّك البيانات: النموذج والبيانات ينموان معاً

أقنعة التجزئة لا تتوفر بكثرة على الإنترنت — على عكس النصوص أو حتى تسميات الصور، لا سبيل لجمع مليار قناع من الويب. لذلك ابتكر المؤلفون محرّك بيانات: حلقة تغذية راجعة يساعد فيها النموذج المُوصِّفين على جمع الأقنعة، فتتحسّن البيانات فيتحسّن النموذج، فيُسرّع جمع المزيد. المحرّك يمرّ بثلاث مراحل:

المرحلة 1 — يدوية بمساعدة النموذج. مُوصِّفون محترفون يعملون بأداة متصفح مدعومة بنسخة أوّلية من SAM (دُرِّبت على مجموعات تجزئة عامة). المُوصِّف ينقر على الجسم، وSAM يقترح قناعاً، والمُوصِّف ينقّحه. بعد ست جولات إعادة تدريب، انخفض زمن توصيف القناع من 34 إلى 14 ثانية، وارتفعت الأقنعة لكل صورة من 20 إلى 44. المحصلة: 4.3 مليون قناع من 120 ألف صورة.

المرحلة 2 — شبه آلية. هنا أصبح SAM يكتشف بعض الأجسام من تلقاء نفسه. دور المُوصِّفين انتقل إلى التركيز على ما أغفله النموذج، فزاد التنوع — خصوصاً للأجسام الصغيرة والأقل وضوحاً. المحصلة: 10.2 مليون قناع من 300 ألف صورة.

المرحلة 3 — آلية بالكامل. النموذج نضج بما يكفي للعمل مستقلاً. تُبثّ شبكة نقاط 32×32 على كل صورة، ويتنبأ SAM بأقنعة عند كل نقطة، ثم ترشّحها معالجة لاحقة (عتبات ثقة و وفحوص استقرار) لتبقى نحو 100 قناع عالي الجودة لكل صورة. بتطبيق ذلك على 11 مليون صورة يُنتَج 1.1 مليار قناع — هذه هي مجموعة SA-1B، أكبر بـ 400 مرة من أي مجموعة بيانات تجزئة سابقة.

افتح في المختبر
استكشف مراحل محرّك البيانات الثلاث وشاهد كيف تطوَّر حجم البيانات وجودة النموذج معاً.
تستيقظ التجربة عند وصولك…

داخل فاكّ ترميز الأقنعة

فاكّ ترميز الأقنعة هو النقطة التي يلتقي فيها فهم الصورة بفهم التوجيه. بنيته عبارة عن فاكّ ترميز محوِّل مُعدَّل بطبقتين فقط، وكل طبقة تمرّ بأربع خطوات:

  1. بين الرموز — رموز التوجيه تتبادل المعلومات فيما بينها (مثلاً: نقطة تستفيد من معلومة المستطيل المحيط).
  2. انتباه تبادلي من الرموز إلى الصورة — رموز التوجيه تستعلم تضمين الصورة بحثاً عن المناطق المقصودة. هذه هي الخطوة الجوهرية: الإجابة عن سؤال «أين بالضبط يُشير هذا التوجيه؟».
  3. شبكة MLP لكل رمز — كل رمز يُعالَج باستقلال، بطريقة مشابهة لـ في المحوِّل المعتاد.
  4. انتباه تبادلي من الصورة إلى الرموز — تضمين الصورة ينتبه بدوره لرموز التوجيه، فتتشرّب كل نقطة مكانية معلومات التوجيه.

بعد هاتين الطبقتين، يرفع فاكّ الترميز دقة الخرج بطبقتَي (من 64×64 إلى 256×256)، ثم يُجري بين السمات المكبَّرة ورموز الخرج لتوليد القناع النهائي بدقة البكسل.

M=DotProduct(Upsample(D(FI,EP)),  MLP(tout))M = \text{DotProduct}\Big(\text{Upsample}\big(D(F_I, E_P)\big),\; \text{MLP}(t_{\text{out}})\Big)
تنبؤ قناع SAM — لقاء الصورة بالتوجيهF_I = خرج مرمِّز الصور · E_P = تضمينات التوجيه · D = فاكّ ترميز محوِّل بطبقتين · t_out = رموز الخرج · Upsample = رفع الدقة بالتفاف معكوس من 64×64 إلى 256×256 · M = القناع الثنائي النهائي بدقة البكسل

الفكرة في الكود

التمرير الأمامي لـ SAM — مبسَّطpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def sam_forward(image, prompt_points=None, prompt_box=None):
    """SAM مبسَّط: مرمِّز صور ← مرمِّز توجيهات ← فاكّ ترميز أقنعة."""

    # 1. مرمِّز الصور: ViT-H يعالج الصورة مرة واحدة
    image_embedding = vit_h_encoder(image)      # (64, 64, 256)

    # 2. مرمِّز التوجيهات: حوّل النقرات/المستطيلات إلى تضمينات
    prompt_tokens = []
    if prompt_points is not None:
        for (x, y, is_foreground) in prompt_points:
            pos_emb = positional_encoding(x, y)  # أين؟
            type_emb = FG_EMBEDDING if is_foreground else BG_EMBEDDING
            prompt_tokens.append(pos_emb + type_emb)

    if prompt_box is not None:
        x1, y1, x2, y2 = prompt_box
        prompt_tokens.append(positional_encoding(x1, y1) + TOP_LEFT_EMB)
        prompt_tokens.append(positional_encoding(x2, y2) + BOTTOM_RIGHT_EMB)

    # 3. فاكّ ترميز الأقنعة: محوِّل بطبقتين + تكبير
    tokens = np.stack(prompt_tokens + [output_token])
    for layer in decoder_layers:               # طبقتان
        tokens = self_attention(tokens)         # الرموز تنتبه لبعضها
        tokens = cross_attn(tokens, image_embedding)  # الرموز → الصورة
        tokens = mlp(tokens)
        image_embedding = cross_attn(image_embedding, tokens)  # الصورة → الرموز

    # 4. كبِّر وتنبأ بـ 3 أقنعة + درجات ثقة
    upsampled = transpose_conv(image_embedding)  # (256, 256, 32)
    masks = [dot_product(upsampled, mlp_head_k(tokens[-1])) for k in range(3)]
    iou_scores = iou_head(tokens[-1])           # أي قناع أفضل؟

    return masks, iou_scores

# الفكرة الأساسية: الخطوة 1 تُنفَّذ مرة واحدة فقط. الخطوات 2-4 تعمل لكل توجيه في ~50 مللي ثانية.
# هذا ما يتيح لـ SAM العمل تفاعلياً في المتصفح.

النتائج بدون تدريب مسبق: أداء منافس رغم غياب التخصيص

اختُبر SAM على 23 مجموعة بيانات تجزئة متنوعة لم يُدرَّب على أيٍّ منها (). النتائج أثبتت أن بناء نموذج أساسي للتجزئة ليس ممكناً فحسب، بل يستطيع منافسة النماذج الاختصاصية المُدرَّبة بإشراف:

  • اكتشاف الحواف (BSDS500): بدون أي تدريب على هذه المهمة، أنتج SAM خرائط حواف معقولة. صحيح أنه تنبأ بحواف أكثر مما في التوصيف المرجعي، لكن كثيراً من هذه الحواف الإضافية كانت حدوداً حقيقية أهملها المُوصِّفون الأصليون.
  • (LVIS v1): تفوّق SAM على ViTDet-H المُدرَّب بإشراف في الأجسام المتوسطة والكبيرة وفي الفئات النادرة والشائعة على حدٍّ سواء. الخرج المتعدد الأقنعة كان عاملاً حاسماً — تجربة حذف الوعي بالغموض أظهرت تراجعاً واضحاً في الاستدعاء.
  • (COCO وLVIS): حين زُوِّد SAM بـمستطيلات ViTDet المحيطة، جاءت أقنعته بدون تدريب مسبق بمستوى منافس لأقنعة ViTDet المُدرَّبة بإشراف كامل. ومع توصيفات LVIS الأعلى جودة تقلّصت الفجوة أكثر. بل إن دراسة تقييم بشري صنّفت أقنعة SAM أعلى من أقنعة ViTDet ومن التوصيف المرجعي لـ COCO نفسه.
افتح في المختبر
قارن أداء SAM بدون تدريب مع النماذج المُشرَف عليها عبر المهام المختلفة.
تستيقظ التجربة عند وصولك…

الآفاق التي فتحها SAM

  1. 2023

    SAM — نموذج تجزئة أي شيء

    أول نموذج أساسي لتجزئة الصور. دُرِّب على 1.1 مليار قناع وحقّق نقلاً ناجحاً بدون تدريب مسبق على 23 مجموعة بيانات. النموذج ومجموعة SA-1B أُتيحا بشكل مفتوح.

  2. 2023

    SAM المُرتكز لغوياً

    ربط SAM بكاشف أجسام لغوي (Grounding DINO). المستخدم يصف ما يريد بالنص، والكاشف يحدّد المستطيلات المحيطة، وSAM يُنتج أقنعة التجزئة.

  3. 2023

    HQ-SAM — نموذج تجزئة عالي الجودة

    رفع دقة حدود أقنعة SAM بإضافة رمز خرج إضافي قابل للتعلّم مخصَّص للجودة العالية، وحقّق نتائج متقدّمة في معايير التجزئة الدقيقة.

  4. 2023

    MedSAM — نموذج SAM الطبي

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

  5. 2024

    SAM 2 — تجزئة أي شيء في الصور والفيديو

    مدّ قدرات SAM إلى الفيديو عبر وحدة ذاكرة تتتبّع الأجسام بين الإطارات. اعتمد بنية Hiera الأكفأ حسابياً كمرمِّز صور بدلاً من ViT-H.

الأثر الأهم لـ SAM ليس رقماً في جدول نتائج — بل إثبات عملي أن نهج النماذج الأساسية ينجح في التنبؤ البصري الكثيف أيضاً. GPT أثبت أن نموذج لغة واحداً يكفي لأي مهمة نصية، ومحوِّل الرؤية أثبت أن المحوِّلات تصلح للصور، وSAM أثبت أن نموذج تجزئة واحداً مُدرَّباً على نطاق كافٍ يستطيع رسم حدود أي شيء في أي صورة. أما فكرة محرّك البيانات — حيث ينضج النموذج والبيانات معاً في حلقة تعزيز متبادل — فقد أصبحت وصفة قابلة للتكرار لبناء نماذج أساسية في مجالات تندر فيها البيانات المُعنوَنة.

المرجعKirillov, Mintun, Ravi, Mao, Rolland, Gustafson, Xiao, Whitehead, Berg, Lo, Dollár, Girshick. Segment Anything. ICCV, 2023.

مصطلحات هذه الورقة