Meet YOLO26: next-gen vision AI.

Link to this sectionSAM 2: نموذج Segment Anything Model 2#

تطور SAM

يعتمد SAM 2 على SAM الأصلي مع قدرات تجزئة الفيديو. للحصول على تجزئة المفاهيم القابلة للتوجيه (Promptable Concept Segmentation) باستخدام نصوص وصور كمطالبات توضيحية، راجع SAM 3.

Inference with Segment Anything 2 In Colab

يعد SAM 2، وهو خليفة Segment Anything Model (SAM) من Meta، أداة متطورة مصممة لتجزئة العناصر بشكل شامل في كل من الصور ومقاطع الفيديو. وهو يتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحدة وقابلة للتوجيه تدعم المعالجة في الوقت الفعلي والتعميم دون تدريب مسبق (zero-shot generalization).

SAM 2 على منصة Ultralytics

تعمل نماذج SAM 2.1 على تشغيل ميزة التوسيم الذكي على منصة Ultralytics، مما يتيح التجزئة القائمة على النقرات لتوسيم مجموعات البيانات بسرعة. راجع دليل التوسيم للحصول على التفاصيل.

SAM 2 Example Results

Link to this sectionالميزات الرئيسية#



Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉

Link to this sectionبنية نموذج موحدة#

يجمع SAM 2 بين قدرات تجزئة الصور والفيديو في نموذج واحد. يعمل هذا التوحيد على تبسيط النشر ويسمح بأداء متسق عبر أنواع الوسائط المختلفة. وهو يستفيد من واجهة مرنة قائمة على التوجيه (prompt-based)، مما يتيح للمستخدمين تحديد العناصر ذات الأهمية من خلال أنواع توجيه مختلفة، مثل النقاط، أو مربعات الإحاطة (bounding boxes)، أو الأقنعة (masks).

Link to this sectionالأداء في الوقت الفعلي#

يحقق النموذج سرعات استنتاج في الوقت الفعلي، حيث يعالج حوالي 44 إطاراً في الثانية. وهذا يجعل SAM 2 مناسباً للتطبيقات التي تتطلب استجابة فورية، مثل تحرير الفيديو والواقع المعزز.

Link to this sectionالتعميم دون تدريب مسبق (Zero-Shot Generalization)#

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

Link to this sectionالتنقيح التفاعلي#

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

Link to this sectionالتعامل المتقدم مع التحديات المرئية#

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

لفهم أعمق لبنية SAM 2 وقدراته، استكشف ورقة بحث SAM 2.

Link to this sectionالأداء والتفاصيل التقنية#

يضع SAM 2 معياراً جديداً في هذا المجال، متفوقاً على النماذج السابقة في مقاييس مختلفة:

المقياسSAM 2SOTA السابقة
تجزئة الفيديو التفاعليةالأفضل-
التفاعلات البشرية المطلوبةأقل بـ 3 مراتالأساس (Baseline)
دقة تجزئة الصورمحسنةSAM
سرعة الاستنتاجأسرع بـ 6 مراتSAM

Link to this sectionبنية النموذج#

Link to this sectionالمكونات الأساسية#

  • مشفر الصور والفيديو (Image and Video Encoder): يستخدم بنية قائمة على Transformer لاستخراج الميزات عالية المستوى من كل من الصور وإطارات الفيديو. هذا المكون مسؤول عن فهم المحتوى المرئي في كل خطوة زمنية.
  • مشفر التوجيه (Prompt Encoder): يعالج التوجيهات المقدمة من المستخدم (نقاط، مربعات، أقنعة) لتوجيه مهمة التجزئة. هذا يسمح لـ SAM 2 بالتكيف مع مدخلات المستخدم واستهداف عناصر محددة داخل المشهد.
  • آلية الذاكرة (Memory Mechanism): تتضمن مشفر ذاكرة، وبنك ذاكرة، ووحدة انتباه للذاكرة. تقوم هذه المكونات بشكل جماعي بتخزين واستخدام المعلومات من الإطارات السابقة، مما يتيح للنموذج الحفاظ على تتبع العناصر بشكل متسق بمرور الوقت.
  • فك تشفير القناع (Mask Decoder): يولد أقنعة التجزئة النهائية بناءً على ميزات الصورة المشفرة والتوجيهات. في الفيديو، يستخدم أيضاً سياق الذاكرة لضمان تتبع دقيق عبر الإطارات.

SAM 2 Architecture Diagram

Link to this sectionآلية الذاكرة والتعامل مع الحجب#

تسمح آلية الذاكرة لـ SAM 2 بالتعامل مع التبعيات الزمنية والحجب في بيانات الفيديو. بينما تتحرك العناصر وتتفاعل، يسجل SAM 2 ميزاتها في بنك الذاكرة. عندما يصبح العنصر محجوباً، يمكن للنموذج الاعتماد على هذه الذاكرة للتنبؤ بموقعه ومظهره عند ظهوره مرة أخرى. يتعامل رأس الحجب (occlusion head) تحديداً مع السيناريوهات التي لا تكون فيها العناصر مرئية، ويتنبأ باحتمالية حجب العنصر.

Link to this sectionحل الغموض للأقنعة المتعددة#

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

Link to this sectionمجموعة بيانات SA-V#

تعد مجموعة بيانات SA-V، التي تم تطويرها لتدريب SAM 2، واحدة من أكبر وأكثر مجموعات بيانات تجزئة الفيديو تنوعاً المتاحة. وهي تتضمن:

  • أكثر من 51,000 فيديو: تم التقاطها في 47 دولة، مما يوفر مجموعة واسعة من سيناريوهات العالم الحقيقي.
  • أكثر من 600,000 توسيم للقناع: توسيمات قناع مكانية زمنية مفصلة، تُعرف باسم "masklets"، تغطي العناصر الكاملة وأجزاء منها.
  • حجم مجموعة البيانات: تتميز بـ 4.5 مرة أكثر من الفيديوهات و53 مرة أكثر من التوسيمات مقارنة بأكبر مجموعات البيانات السابقة، مما يوفر تنوعاً وتعقيداً غير مسبوقين.

Link to this sectionالمقاييس المرجعية#

Link to this sectionتجزئة عناصر الفيديو#

أظهر SAM 2 أداءً متفوقاً عبر مقاييس تجزئة الفيديو الرئيسية:

مجموعة البياناتJ&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

Link to this sectionالتجزئة التفاعلية#

في مهام التجزئة التفاعلية، يظهر SAM 2 كفاءة ودقة كبيرتين:

مجموعة البياناتNoC@90AUC
DAVIS Interactive1.540.872

Link to this sectionالتثبيت#

لتثبيت SAM 2، استخدم الأمر التالي. سيتم تنزيل جميع نماذج SAM 2 تلقائياً عند الاستخدام الأول.

pip install ultralytics

Link to this sectionكيفية استخدام SAM 2: التنوع في تجزئة الصور والفيديو#

يوضح الجدول التالي نماذج SAM 2 المتاحة، وأوزانها المدربة مسبقاً، والمهام المدعومة، والتوافق مع أوضاع التشغيل المختلفة مثل الاستنتاج، والتحقق، والتدريب، والتصدير.

نوع النموذجالأوزان المدربة مسبقاًالمهام المدعومةالاستدلال (Inference)التحققالتدريبتصدير
SAM 2 tinysam2_t.ptتجزئة العناصر
SAM 2 smallsam2_s.ptتجزئة العناصر
SAM 2 basesam2_b.ptتجزئة العناصر
SAM 2 largesam2_l.ptتجزئة العناصر
SAM 2.1 tinysam2.1_t.ptتجزئة العناصر
SAM 2.1 smallsam2.1_s.ptتجزئة العناصر
SAM 2.1 basesam2.1_b.ptتجزئة العناصر
SAM 2.1 largesam2.1_l.ptتجزئة العناصر

Link to this sectionأمثلة على تنبؤ SAM 2#

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

Link to this sectionالتقسيم باستخدام المطالبات#

التقسيم باستخدام المطالبات

استخدم المطالبات لتقسيم كائنات محددة في الصور أو مقاطع الفيديو.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference with bboxes prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Run inference with single point
results = model(points=[900, 370], labels=[1])

# Run inference with multiple points
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

Link to this sectionتقسيم كل شيء#

تقسيم كل شيء

قم بتقسيم محتوى الصورة أو الفيديو بالكامل بدون مطالبات محددة.

from ultralytics import SAM

# Load a model
model = SAM("sam2.1_b.pt")

# Display model information (optional)
model.info()

# Run inference
model("path/to/video.mp4")

Link to this sectionتقسيم الفيديو وتتبع الكائنات#

تقسيم الفيديو

قم بتقسيم محتوى الفيديو بالكامل باستخدام مطالبات محددة وتتبع الكائنات.

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model="sam2_b.pt")
predictor = SAM2VideoPredictor(overrides=overrides)

# Run inference with single point
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# Run inference with multiple points
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# Run inference with multiple points prompt per object
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# Run inference with negative points prompt
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])
  • يوضح هذا المثال كيفية استخدام SAM 2 لتقسيم محتوى صورة أو فيديو بالكامل إذا لم يتم توفير أي مطالبات (bboxes/نقاط/أقنعة).

Link to this sectionالتقسيم والتتبع التفاعلي الديناميكي#

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

نتائج مثال SAM 2

Link to this sectionالميزات الرئيسية#

إنه يوفر ثلاث تحسينات كبيرة:

  1. تفاعلي ديناميكي: إضافة مطالبات جديدة لدمج/تتبع حالات جديدة غير متتبعة في الإطارات التالية في أي وقت أثناء معالجة الفيديو
  2. تعلم مستمر: إضافة مطالبات جديدة لحالات موجودة لتحسين أداء النموذج بمرور الوقت
  3. دعم مستقل للصور المتعددة: معالجة صور متعددة مستقلة (ليس بالضرورة من تسلسل فيديو واحد) مع مشاركة الذاكرة وتتبع الكائنات عبر الصور

Link to this sectionالقدرات الأساسية#

  • مرونة المطالبة: يقبل مربعات الإحاطة، والنقاط، والأقنعة كمطالبات
  • إدارة بنك الذاكرة: يحتفظ ببنك ذاكرة ديناميكي لتخزين حالات الكائنات عبر الإطارات
  • تتبع الكائنات المتعددة: يدعم تتبع كائنات متعددة في وقت واحد باستخدام معرفات كائنات فردية
  • تحديثات في الوقت الفعلي: يسمح بإضافة مطالبات جديدة أثناء الاستدلال دون إعادة معالجة الإطارات السابقة
  • معالجة الصور المستقلة: معالجة صور قائمة بذاتها مع سياق ذاكرة مشترك لاتساق الكائنات عبر الصور
إضافة كائن ديناميكي
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = dict(conf=0.01, task="segment", mode="predict", imgsz=1024, model="sam2_t.pt", save=False)
predictor = SAM2DynamicInteractivePredictor(overrides=overrides, max_obj_num=10)

# Define a category by box prompt
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# Detect this particular object in a new image
results = predictor(source="image2.jpg")

# Add new category with a new object ID
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # New object
    obj_ids=[1],  # New object ID
    update_memory=True,  # Add to memory
)
# Perform inference
results = predictor(source="image5.jpg")

# Add refinement prompts to the same category to boost performance
# This helps when object appearance changes significantly
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # Refinement point
    labels=[1],  # Positive point
    obj_ids=[1],  # Same object ID
    update_memory=True,  # Update memory with new information
)
# Perform inference on new image
results = predictor(source="image7.jpg")
ملاحظة

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

Link to this sectionوسيطات#

الاسمالقيمة الافتراضيةنوع البياناتالوصف
max_obj_num3intالحد الأقصى المحدد مسبقاً لعدد الفئات
update_memoryFalseboolسواء كنت تريد تحديث الذاكرة بمطالبات جديدة
obj_idsNoneList[int]قائمة بمعرفات الكائنات المقابلة للمطالبات

Link to this sectionحالات الاستخدام#

يُعد SAM2DynamicInteractivePredictor مثالياً لـ:

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

Link to this sectionمقارنة SAM مقابل YOLO#

هنا نقارن نماذج SAM 2 من Meta، بما في ذلك أصغر متغير SAM2-t، مع نماذج التقسيم من Ultralytics بما في ذلك YOLO26n-seg:

نموذجالحجم
(MB)
المعلمات
(M)
السرعة (CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s مع العمود الفقري YOLOv823.911.858.0
YOLOv8n-seg من Ultralytics7.1 (أصغر بـ 11.0 مرة)3.4 (أقل بـ 11.4 مرة)24.8 (أسرع بـ 945 مرة)
YOLO11n-seg من Ultralytics6.2 (أصغر بـ 12.6 مرة)2.9 (أقل بـ 13.4 مرة)24.3 (أسرع بـ 964 مرة)
YOLO26n-seg من Ultralytics6.7 (أصغر بـ 11.7 مرة)2.7 (أقل بـ 14.4 مرة)25.2 (أسرع بـ 930 مرة)

توضح هذه المقارنة الاختلافات الجوهرية في أحجام النماذج وسرعتها بين متغيرات SAM ونماذج التقسيم YOLO. بينما يوفر SAM قدرات تقسيم تلقائية فريدة، فإن نماذج YOLO، وخاصة YOLOv8n-seg و YOLO11n-seg و YOLO26n-seg، أصغر بكثير وأسرع وأكثر كفاءة من حيث الحوسبة.

تم قياس سرعات SAM باستخدام PyTorch، وتم قياس سرعات YOLO باستخدام ONNX Runtime. تم إجراء الاختبارات على جهاز Apple M4 Air لعام 2025 بذاكرة وصول عشوائي (RAM) سعة 16 جيجابايت باستخدام torch==2.10.0 و ultralytics==8.4.31 و onnxruntime==1.24.4. لإعادة إنتاج هذا الاختبار:

مثال
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models (ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    onnx_path = model.export(format="onnx", dynamic=True)
    model = YOLO(onnx_path)
    model(ASSETS)

Link to this sectionالتعليق التلقائي: إنشاء فعال لمجموعة البيانات#

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

Link to this sectionكيفية التعليق التلقائي باستخدام SAM 2#



Watch: Auto Annotation with Meta's Segment Anything 2 Model using Ultralytics | Data Labeling

للتعليق التلقائي على مجموعة البيانات الخاصة بك باستخدام SAM 2، اتبع هذا المثال:

مثال على التعليق التلقائي
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")
الوسيط (Argument)النوعالافتراضيالوصف
datastrمطلوبمسار الدليل الذي يحتوي على الصور المستهدفة للتعليق أو التقسيم.
det_modelstr'yolo26x.pt'مسار نموذج اكتشاف YOLO للاكتشاف الأولي للكائنات.
sam_modelstr'sam_b.pt'مسار نموذج SAM للتقسيم (يدعم أوزان SAM و SAM 2 و MobileSAM و SAM 3).
devicestr''جهاز الحوسبة (على سبيل المثال، 'cuda:0' أو 'cpu' أو '' للاكتشاف التلقائي للجهاز).
conffloat0.25عتبة ثقة اكتشاف YOLO لتصفية الاكتشافات الضعيفة.
ioufloat0.45عتبة IoU لـ Non-Maximum Suppression لتصفية المربعات المتداخلة.
imgszint640حجم الإدخال لتغيير حجم الصور (يجب أن يكون مضاعفاً للرقم 32).
max_detint300الحد الأقصى لعدد الكائنات المكتشفة في كل صورة لتحسين كفاءة الذاكرة.
classeslist[int]Noneقائمة بفهارس الفئات المراد اكتشافها (على سبيل المثال، [0, 1] للأشخاص والدراجات).
output_dirstrNoneدليل الحفظ للتعليقات التوضيحية (الافتراضي: مجلد شقيق باسم <data>_auto_annotate_labels).

تسهل هذه الوظيفة الإنشاء السريع لمجموعات بيانات التجزئة عالية الجودة، وهي مثالية للباحثين والمطورين الذين يهدفون إلى تسريع مشاريعهم.

Link to this sectionالقيود#

على الرغم من نقاط قوته، إلا أن SAM 2 لديه بعض القيود:

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

Link to this sectionالاقتباسات والشكر#

إذا كان SAM 2 جزءاً جوهرياً من عملك البحثي أو التطويري، فيرجى الاستشهاد به باستخدام المرجع التالي:

اقتباس
@article{ravi2024sam2,
  title={SAM 2: Segment Anything in Images and Videos},
  author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
  journal={arXiv preprint},
  year={2024}
}

نعرب عن امتناننا لـ Meta AI لمساهماتهم في مجتمع الذكاء الاصطناعي من خلال هذا النموذج ومجموعة البيانات الرائدة.

Link to this sectionالأسئلة الشائعة#

Link to this sectionما هو SAM 2 وكيف يتفوق على نموذج Segment Anything Model (SAM) الأصلي؟#

يُعد SAM 2، الخليفة لـ Segment Anything Model (SAM) الخاص بـ Meta، أداة متطورة مصممة لتجزئة الكائنات بشكل شامل في كل من الصور ومقاطع الفيديو. يتفوق النموذج في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحدة وقابلة للتوجيه تدعم المعالجة في الوقت الفعلي والتعميم دون تدريب مسبق (zero-shot). يوفر SAM 2 العديد من التحسينات على SAM الأصلي، بما في ذلك:

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

لمزيد من التفاصيل حول بنية SAM 2 وقدراته، استكشف ورقة بحث SAM 2.

Link to this sectionكيف يمكنني استخدام SAM 2 لتجزئة الفيديو في الوقت الفعلي؟#

يمكن الاستفادة من SAM 2 لتجزئة الفيديو في الوقت الفعلي من خلال واجهته القابلة للتوجيه وقدرات الاستدلال اللحظي. إليك مثال أساسي:

التقسيم باستخدام المطالبات

استخدم المطالبات لتقسيم كائنات محددة في الصور أو مقاطع الفيديو.

from ultralytics import SAM

# Load a model
model = SAM("sam2_b.pt")

# Display model information (optional)
model.info()

# Segment with bounding box prompt
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# Segment with point prompt
results = model("path/to/image.jpg", points=[150, 150], labels=[1])

للحصول على استخدام أكثر شمولاً، راجع قسم كيفية استخدام SAM 2.

Link to this sectionما هي مجموعات البيانات المستخدمة لتدريب SAM 2، وكيف تعزز من أدائه؟#

تم تدريب SAM 2 على مجموعة بيانات SA-V، وهي واحدة من أكبر مجموعات بيانات تجزئة الفيديو وأكثرها تنوعاً المتاحة. تتضمن مجموعة بيانات SA-V ما يلي:

  • أكثر من 51,000 فيديو: تم التقاطها في 47 دولة، مما يوفر مجموعة واسعة من سيناريوهات العالم الحقيقي.
  • أكثر من 600,000 توسيم للقناع: توسيمات قناع مكانية زمنية مفصلة، تُعرف باسم "masklets"، تغطي العناصر الكاملة وأجزاء منها.
  • حجم مجموعة البيانات: تتميز بـ 4.5 أضعاف عدد الفيديوهات و53 ضعف عدد التعليقات التوضيحية مقارنة بأكبر مجموعات البيانات السابقة، مما يوفر تنوعاً وتعقيداً غير مسبوقين.

تسمح مجموعة البيانات الواسعة هذه لـ SAM 2 بتحقيق أداء متفوق عبر مقاييس تجزئة الفيديو الرئيسية وتعزز قدراته في التعميم دون تدريب مسبق. لمزيد من المعلومات، راجع قسم مجموعة بيانات SA-V.

Link to this sectionكيف يتعامل SAM 2 مع حالات الحجب وظهور الكائنات مجدداً في تجزئة الفيديو؟#

يتضمن SAM 2 آلية ذاكرة متطورة لإدارة التبعيات الزمنية وحالات الحجب في بيانات الفيديو. تتكون آلية الذاكرة من:

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

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

Link to this sectionكيف يقارن SAM 2 بنماذج تجزئة أخرى مثل YOLO26؟#

توفر نماذج SAM 2، مثل SAM2-t و SAM2-b من Meta، قدرات قوية في التجزئة دون تدريب مسبق، لكنها أكبر حجماً وأبطأ بشكل ملحوظ مقارنة بنماذج YOLO. على سبيل المثال، YOLO26n-seg أصغر بحوالي 24 مرة وأسرع بأكثر من 1145 مرة من SAM2-b على وحدة المعالجة المركزية (CPU). وبينما يتفوق SAM 2 في سيناريوهات التجزئة متعددة الاستخدامات والقائمة على المطالبات، تم تحسين YOLO26 للسرعة والكفاءة والتطبيقات في الوقت الفعلي مع استدلال متكامل خالٍ من NMS، مما يجعله أكثر ملاءمة للنشر في البيئات محدودة الموارد.

التعليقات