SAM 2: نموذج تقسيم أي شيء 2#
يُعد SAM 2، خليفة نموذج تقسيم أي شيء (SAM) من Meta، أداة متقدمة مصممة لتقسيم الكائنات بشكل شامل في الصور ومقاطع الفيديو. ويتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحّدة قابلة للتوجيه، تدعم المعالجة في الوقت الفعلي والتعميم دون تدريب مسبق.
تُشغّل نماذج SAM 2.1 ميزة التعليق التوضيحي الذكي على منصة Ultralytics، مما يتيح تقسيم الكائنات بالنقر لتسريع وسم مجموعات البيانات. راجع دليل التعليق التوضيحي لمزيد من التفاصيل.

الميزات الرئيسية#
Watch: How to Run Inference with Meta's SAM2 using Ultralytics | Step-by-Step Guide 🎉
بنية نموذج موحّدة#
يجمع SAM 2 إمكانات تقسيم الصور والفيديو في نموذج واحد. ويبسّط هذا التوحيد عملية النشر، كما يتيح أداءً متسقًا عبر أنواع الوسائط المختلفة. ويستفيد من واجهة مرنة قائمة على المطالبات، تتيح للمستخدمين تحديد الكائنات محل الاهتمام من خلال أنواع مختلفة من المطالبات، مثل النقاط أو المربعات المحيطة أو الأقنعة.
الأداء في الوقت الفعلي#
يحقق النموذج سرعات استدلال في الوقت الفعلي، إذ يعالج نحو 44 إطارًا في الثانية. وهذا يجعل SAM 2 مناسبًا للتطبيقات التي تتطلب استجابة فورية، مثل تحرير الفيديو والواقع المعزز.
التعميم دون تدريب مسبق#
يمكن لـ SAM 2 تقسيم كائنات لم يسبق له مواجهتها، مما يبرهن على قدرته القوية على التعميم دون تدريب مسبق. ويفيد ذلك خصوصًا في المجالات المرئية المتنوعة أو المتغيرة، حيث قد لا تغطي الفئات المحددة مسبقًا جميع الكائنات المحتملة.
التحسين التفاعلي#
يمكن للمستخدمين تحسين نتائج التقسيم تكراريًا من خلال تقديم مطالبات إضافية، مما يتيح تحكمًا دقيقًا في المخرجات. ويُعد هذا التفاعل ضروريًا لضبط النتائج بدقة في تطبيقات مثل التعليق التوضيحي على الفيديو أو التصوير الطبي.
التعامل المتقدم مع التحديات المرئية#
يتضمن SAM 2 آليات للتعامل مع تحديات تقسيم الفيديو الشائعة، مثل حجب الكائنات وظهورها مجددًا. ويستخدم آلية ذاكرة متقدمة لتتبع الكائنات عبر الإطارات، مما يضمن الاستمرارية حتى عندما تُحجب الكائنات مؤقتًا أو تخرج من المشهد ثم تعود إليه.
لفهم أعمق لبنية SAM 2 وقدراته، استكشف البحث العلمي حول SAM 2.
الأداء والتفاصيل التقنية#
يضع SAM 2 معيارًا جديدًا في هذا المجال، متفوقًا على النماذج السابقة في مقاييس مختلفة:
| المقياس | SAM 2 | SOTA السابق |
|---|---|---|
| تقسيم الفيديو التفاعلي | الأفضل | - |
| التفاعلات البشرية المطلوبة | أقل بثلاث مرات | خط الأساس |
| دقة تقسيم الصور | مُحسّنة | SAM |
| سرعة الاستدلال | أسرع 6 مرات | SAM |
بنية النموذج#
المكوّنات الأساسية#
- مُرمّز الصور والفيديو: يستخدم بنية قائمة على Transformer لاستخراج السمات عالية المستوى من الصور وإطارات الفيديو. ويتولى هذا المكوّن فهم المحتوى المرئي في كل خطوة زمنية.
- مُرمّز المطالبات: يعالج المطالبات التي يحددها المستخدم (النقاط والمربعات والأقنعة) لتوجيه مهمة التقسيم. ويتيح ذلك لـ SAM 2 التكيف مع إدخال المستخدم واستهداف كائنات محددة داخل المشهد.
- آلية الذاكرة: تتضمن مُرمّز ذاكرة وبنك ذاكرة ووحدة انتباه للذاكرة. وتخزّن هذه المكوّنات المعلومات من الإطارات السابقة وتستخدمها، مما يمكّن النموذج من الحفاظ على تتبع الكائنات باستمرار بمرور الوقت.
- فكّ ترميز القناع: ينشئ أقنعة التقسيم النهائية استنادًا إلى سمات الصورة والمطالبات المرمّزة. وفي الفيديو، يستخدم أيضًا سياق الذاكرة لضمان دقة التتبع عبر الإطارات.

آلية الذاكرة والتعامل مع الحجب#
تتيح آلية الذاكرة لـ SAM 2 التعامل مع التبعيات الزمنية وحجب الكائنات في بيانات الفيديو. ومع تحرك الكائنات وتفاعلها، يسجل SAM 2 سماتها في بنك ذاكرة. وعندما يُحجب كائن ما، يمكن للنموذج الاعتماد على هذه الذاكرة للتنبؤ بموضعه ومظهره عند ظهوره مجددًا. ويتولى رأس الحجب تحديدًا التعامل مع الحالات التي لا تكون فيها الكائنات مرئية، متنبئًا باحتمالية حجب الكائن.
حل الغموض بين الأقنعة المتعددة#
في الحالات التي ينشأ فيها غموض (مثل الكائنات المتداخلة)، يستطيع SAM 2 إنشاء تنبؤات متعددة للأقنعة. وتُعد هذه الميزة بالغة الأهمية لتمثيل المشاهد المعقدة بدقة، إذ قد لا يصف قناع واحد تفاصيل المشهد وصفًا كافيًا.
مجموعة بيانات SA-V#
تُعد مجموعة بيانات SA-V، التي طُوّرت لتدريب SAM 2، إحدى أكبر مجموعات بيانات تقسيم الفيديو وأكثرها تنوعًا والمتاحة. وتشمل:
- أكثر من 51,000 فيديو: جرى التقاطها في 47 دولة، مما يوفر نطاقًا واسعًا من السيناريوهات الواقعية.
- أكثر من 600,000 تعليق توضيحي للقناع: تعليقات توضيحية مكانية-زمنية مفصلة للأقنعة، يُشار إليها باسم "masklets"، وتغطي الكائنات الكاملة وأجزاءها.
- حجم مجموعة البيانات: تضم 4.5 أضعاف عدد الفيديوهات و53 ضعفًا من التعليقات التوضيحية مقارنة بأكبر مجموعات البيانات السابقة، مما يوفر تنوعًا وتعقيدًا غير مسبوقين.
المعايير المرجعية#
تقسيم الكائنات في الفيديو#
أظهر SAM 2 أداءً متفوقًا عبر المعايير المرجعية الرئيسية لتقسيم الفيديو:
| مجموعة البيانات | J&F | J | F |
|---|---|---|---|
| DAVIS 2017 | 82.5 | 79.8 | 85.2 |
| YouTube-VOS | 81.2 | 78.9 | 83.5 |
التقسيم التفاعلي#
في مهام التقسيم التفاعلي، يُظهر SAM 2 كفاءة ودقة ملحوظتين:
| مجموعة البيانات | NoC@90 | AUC |
|---|---|---|
| DAVIS Interactive | 1.54 | 0.872 |
التثبيت#
لتثبيت SAM 2، استخدم الأمر التالي. ستُنزّل جميع نماذج SAM 2 تلقائيًا عند الاستخدام الأول.
pip install ultralyticsكيفية استخدام SAM 2: تعدد الاستخدامات في تقسيم الصور والفيديو#
يوضح الجدول التالي نماذج SAM 2 المتاحة، وأوزانها المدربة مسبقًا، والمهام المدعومة، وتوافقها مع أوضاع التشغيل المختلفة مثل الاستدلال والتحقق والتدريب والتصدير.
| نوع النموذج | الأوزان المدرّبة مسبقًا | المهام المدعومة | التدريب | التحقق | الاستدلال | التصدير |
|---|---|---|---|---|---|---|
| SAM 2 الصغير جدًا | sam2_t.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2 الصغير | sam2_s.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2 الأساسي | sam2_b.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2 الكبير | sam2_l.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2.1 الصغير جدًا | sam2.1_t.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2.1 الصغير | sam2.1_s.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2.1 الأساسي | sam2.1_b.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
| SAM 2.1 الكبير | sam2.1_l.pt | تقسيم الكائنات | ❌ | ❌ | ✅ | ❌ |
أمثلة على تنبؤات SAM 2#
يمكن استخدام SAM 2 في مجموعة واسعة من المهام، بما في ذلك تحرير الفيديو في الوقت الفعلي والتصوير الطبي والأنظمة الذاتية. وتجعل قدرته على تقسيم البيانات المرئية الثابتة والديناميكية منه أداة متعددة الاستخدامات للباحثين والمطورين.
التقسيم باستخدام المطالبات#
استخدم المطالبات لتقسيم كائنات محددة في الصور أو مقاطع الفيديو.
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]])تقسيم كل شيء#
قسّم محتوى الصورة أو الفيديو بالكامل من دون مطالبات محددة.
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")تقسيم الفيديو وتتبع الكائنات#
قسّم محتوى الفيديو بالكامل باستخدام مطالبات محددة وتتبع الكائنات.
from ultralytics.models.sam import SAM2VideoPredictor
# Create SAM2VideoPredictor
overrides = {"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/points/masks).
التقسيم والتتبع التفاعلي الديناميكي#
SAM2DynamicInteractivePredictor هو امتداد متقدم لا يتطلب تدريباً لـ SAM 2 والذي يتيح التفاعل الديناميكي مع إطارات متعددة وقدرات التعلم المستمر. يدعم هذا المتنبئ تحديثات التوجيه في الوقت الفعلي وإدارة الذاكرة لتحسين أداء التتبع عبر تسلسل من الصور. مقارنةً بـ SAM 2 الأصلي، يعيد SAM2DynamicInteractivePredictor بناء تدفق الاستدلال للاستفادة القصوى من نماذج SAM 2 المدربة مسبقاً دون الحاجة إلى تدريب إضافي.

الميزات الرئيسية#
يوفر ثلاثة تحسينات مهمة:
- التفاعل الديناميكي: إضافة مطالبات لدمج الحالات الجديدة أو غير المتتبعة في الإطارات اللاحقة في أي وقت أثناء معالجة الفيديو
- التعلم المستمر: إضافة مطالبات للحالات الموجودة لتحسين أداء النموذج بمرور الوقت
- دعم الصور المتعددة المستقلة: معالجة صور مستقلة متعددة (ليست بالضرورة من تسلسل فيديو) مع مشاركة الذاكرة وتتبع الكائنات عبر الصور
القدرات الأساسية#
- مرونة المطالبات: يقبل المربعات المحيطة والنقاط والأقنعة بوصفها مطالبات
- إدارة بنك الذاكرة: يحافظ على بنك ذاكرة ديناميكي لتخزين حالات الكائنات عبر الإطارات
- تتبع كائنات متعددة: يدعم تتبع عدة كائنات في الوقت نفسه باستخدام معرّفات كائنات فردية
- التحديثات في الوقت الفعلي: يتيح إضافة مطالبات جديدة أثناء الاستدلال من دون إعادة معالجة الإطارات السابقة
- معالجة الصور المستقلة: معالجة الصور المستقلة مع مشاركة سياق الذاكرة للحفاظ على اتساق الكائنات بين الصور
from ultralytics.models.sam import SAM2DynamicInteractivePredictor
# Create SAM2DynamicInteractivePredictor
overrides = {"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 للعمل مع نماذج SAM 2، وهو يدعم إضافة وتحسين الفئات مع جميع box, point, and mask prompts التي يدعمها SAM 2 بشكل أصلي. إنه مفيد بشكل خاص السيناريوهات حيث تظهر الكائنات أو تتغير ب مرور الوقت، مثل في مهام تعليق الفيديو أو التحرير التفاعلي.
الوسائط#
| الاسم | القيمة الافتراضية | نوع البيانات | الوصف |
|---|---|---|---|
max_obj_num | 3 | int | الحد الأقصى المحدد مسبقًا لعدد الفئات |
update_memory | False | bool | ما إذا كان يجب تحديث الذاكرة بالمطالبات الجديدة |
obj_ids | None | List[int] | قائمة بمعرّفات الكائنات المطابقة للمطالبات |
حالات الاستخدام#
يُعد SAM2DynamicInteractivePredictor مثاليًا من أجل:
- سير عمل إضافة التعليقات التوضيحية إلى الفيديو حيث تظهر كائنات جديدة أثناء التسلسل
- تحرير الفيديو التفاعلي الذي يتطلب إضافة الكائنات وتحسينها في الوقت الفعلي
- تطبيقات المراقبة التي تتطلب تتبعًا ديناميكيًا للكائنات
- التصوير الطبي لتتبع البنى التشريحية عبر سلاسل زمنية
- الأنظمة المستقلة التي تتطلب اكتشاف الكائنات وتتبعها بشكل متكيف
- مجموعات البيانات متعددة الصور لتقسيم الكائنات باستمرار عبر الصور المستقلة
- تحليل مجموعات الصور حيث يلزم تتبع الكائنات عبر مشاهد مختلفة
- التقسيم عبر المجالات بالاستفادة من الذاكرة المستمدة من سياقات صور متنوعة
- إضافة التعليقات التوضيحية شبه التلقائية لإنشاء مجموعات البيانات بكفاءة مع الحد الأدنى من التدخل اليدوي
مقارنة SAM مع YOLO#
نقارن هنا نماذج SAM 2 من Meta، بما في ذلك أصغر إصدار SAM2-t، مع نماذج التقسيم من Ultralytics، بما في ذلك YOLO26n-seg:
| النموذج | الحجم (ميغابايت) | المعلمات (مليون) | السرعة (CPU) (مللي ثانية/صورة) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 41703 |
| Meta SAM2-b | 162 | 80.8 | 28867 |
| Meta SAM2-t | 78.1 | 38.9 | 23430 |
| MobileSAM | 40.7 | 10.1 | 23802 |
| FastSAM-s مع النموذج الأساسي لـ YOLOv8 | 23.9 | 11.8 | 58.0 |
| YOLOv8n-seg من Ultralytics | 7.1 (أصغر بـ 11.0x) | 3.4 (أقل بـ 11.4x) | 24.8 (أسرع بـ 945x) |
| YOLO11n-seg من Ultralytics | 6.2 (أصغر بمقدار 12.6 مرة) | 2.9 (أقل بـ 13.4x) | 24.3 (أسرع بمقدار 964 مرة) |
| YOLO26n-seg من Ultralytics | 6.7 (أصغر بـ 11.7x) | 2.7 (معلمات أقل بمقدار 14.4 مرة) | 25.2 (أسرع بـ 930x) |
توضح هذه المقارنة الفروق الكبيرة في أحجام النماذج وسرعاتها بين متغيرات SAM ونماذج تقسيم YOLO. وعلى الرغم من أن SAM يوفر إمكانات فريدة للتقسيم التلقائي، فإن نماذج YOLO، ولا سيما YOLOv8n-seg وYOLO11n-seg وYOLO26n-seg، أصغر وأسرع وأكثر كفاءة حسابية بدرجة كبيرة.
قيسَت سرعات SAM باستخدام PyTorch، وقيسَت سرعات YOLO باستخدام ONNX Runtime. أُجريت الاختبارات على جهاز Apple M4 Air لعام 2025 مزود بذاكرة RAM سعتها 16GB، باستخدام 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, nms=False) # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11
model = YOLO(onnx_path)
model(ASSETS)إضافة التعليقات التوضيحية تلقائيًا: إنشاء مجموعات البيانات بكفاءة#
تُعد إضافة التعليقات التوضيحية تلقائيًا ميزة قوية في SAM 2، إذ تتيح للمستخدمين إنشاء مجموعات بيانات التقسيم بسرعة ودقة بالاستفادة من النماذج المُدرَّبة مسبقًا. وتفيد هذه الإمكانية بوجه خاص في إنشاء مجموعات بيانات كبيرة وعالية الجودة من دون جهد يدوي واسع.
كيفية إضافة التعليقات التوضيحية تلقائيًا باستخدام 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")| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
data | str | مطلوب | مسار الدليل الذي يحتوي على الصور المستهدفة لإضافة التعليقات التوضيحية أو التقسيم. |
det_model | str | 'yolo26x.pt' | مسار نموذج اكتشاف YOLO لاكتشاف الكائنات مبدئيًا. |
sam_model | str | 'sam_b.pt' | مسار نموذج SAM للتقسيم (يدعم أوزان SAM وSAM 2 وMobileSAM وSAM 3). |
device | str | '' | جهاز الحساب (مثل 'cuda:0' أو 'cpu' أو '' لاكتشاف الجهاز تلقائيًا). |
conf | float | 0.25 | عتبة الثقة لاكتشاف YOLO لتصفية الاكتشافات الضعيفة. |
iou | float | 0.45 | عتبة IoU الخاصة بـ Non-Maximum Suppression لتصفية المربعات المتداخلة. |
imgsz | int | 640 | حجم الإدخال لتغيير حجم الصور (يجب أن يكون من مضاعفات 32). |
max_det | int | 300 | الحد الأقصى لعدد الاكتشافات لكل صورة لتحسين كفاءة الذاكرة. |
classes | list[int] | None | قائمة فهارس الفئات المراد اكتشافها (مثل [0, 1] للشخص والدراجة). |
output_dir | str | None | دليل حفظ التعليقات التوضيحية (الافتراضي: الدليل الشقيق لـ <data>_auto_annotate_labels). |
تسهّل هذه الدالة الإنشاء السريع لمجموعات بيانات تقسيم عالية الجودة، وهي مثالية للباحثين والمطورين الذين يهدفون إلى تسريع مشاريعهم.
القيود#
على الرغم من نقاط قوته، يفرض SAM 2 بعض القيود:
- استقرار التتبع: قد يفقد SAM 2 تتبع الكائنات أثناء التسلسلات الممتدة أو التغيرات الكبيرة في زاوية الرؤية.
- الالتباس بين الكائنات: قد يخلط النموذج أحيانًا بين الكائنات المتشابهة في المظهر، ولا سيما في المشاهد المزدحمة.
- الكفاءة مع الكائنات المتعددة: تنخفض كفاءة التقسيم عند معالجة عدة كائنات في الوقت نفسه بسبب عدم وجود تواصل بين الكائنات.
- دقة التفاصيل: قد يفوّت النموذج التفاصيل الدقيقة، ولا سيما مع الكائنات سريعة الحركة. ويمكن للمطالبات الإضافية معالجة هذه المشكلة جزئيًا، لكن لا يوجد ضمان للسلاسة الزمنية.
الاقتباسات والشكر والتقدير#
إذا كان 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 لمساهماتها في مجتمع الذكاء الاصطناعي من خلال هذا النموذج ومجموعة البيانات الرائدين.
الأسئلة الشائعة#
SAM 2، خليفة نموذج تقسيم أي شيء (SAM) من Meta، أداة متطورة مصممة لتقسيم الكائنات بصورة شاملة في كل من الصور ومقاطع الفيديو. ويتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحدة قابلة للتوجيه بالمطالبات، تدعم المعالجة في الوقت الفعلي والتعميم من دون تدريب مسبق على الأمثلة. يقدم SAM 2 تحسينات عديدة مقارنةً بـ SAM الأصلي، منها:
- بنية النموذج الموحدة: تجمع إمكانات تقسيم الصور ومقاطع الفيديو في نموذج واحد.
- الأداء في الوقت الفعلي: يعالج نحو 44 إطارًا في الثانية، ما يجعله مناسبًا للتطبيقات التي تتطلب استجابة فورية.
- التعميم من دون تدريب مسبق على الأمثلة: يقسم كائنات لم يسبق له مواجهتها، ما يفيده في المجالات المرئية المتنوعة.
- التحسين التفاعلي: يتيح للمستخدمين تحسين نتائج التقسيم تكراريًا من خلال تقديم مطالبات إضافية.
- التعامل المتقدم مع التحديات المرئية: يعالج تحديات تقسيم الفيديو الشائعة، مثل حجب الكائنات وظهورها مجددًا.
لمزيد من التفاصيل حول بنية SAM 2 وإمكاناته، اطّلع على الورقة البحثية حول 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.
يُدرَّب SAM 2 على مجموعة بيانات SA-V، وهي إحدى أكبر مجموعات بيانات تقسيم الفيديو وأكثرها تنوعًا والمتاحة. تتضمن مجموعة بيانات SA-V ما يلي:
- أكثر من 51,000 فيديو: جرى التقاطها في 47 دولة، مما يوفر نطاقًا واسعًا من السيناريوهات الواقعية.
- أكثر من 600,000 تعليق توضيحي للقناع: تعليقات توضيحية مكانية-زمنية مفصلة للأقنعة، يُشار إليها باسم "masklets"، وتغطي الكائنات الكاملة وأجزاءها.
- حجم مجموعة البيانات: تضم 4.5 أضعاف عدد مقاطع الفيديو و53 ضعفًا لعدد التعليقات التوضيحية مقارنةً بأكبر مجموعات البيانات السابقة، ما يوفر تنوعًا وتعقيدًا غير مسبوقين.
تتيح مجموعة البيانات الشاملة هذه لـ SAM 2 تحقيق أداء متفوق عبر المعايير الرئيسية لتقسيم الفيديو، وتعزز إمكانات التعميم من دون تدريب مسبق على الأمثلة. لمزيد من المعلومات، راجع قسم مجموعة بيانات SA-V.
يتضمن SAM 2 آلية ذاكرة متطورة لإدارة التبعيات الزمنية وحجب الكائنات في بيانات الفيديو. وتتكون آلية الذاكرة من:
- مشفّر الذاكرة وبنك الذاكرة: يخزّنان الميزات من الإطارات السابقة.
- وحدة انتباه الذاكرة: تستخدم المعلومات المخزنة للحفاظ على اتساق تتبع الكائنات بمرور الوقت.
- رأس حجب الكائنات: يتعامل تحديدًا مع السيناريوهات التي لا تكون فيها الكائنات مرئية، ويتنبأ باحتمال حجب الكائن.
تضمن هذه الآلية الاستمرارية حتى عندما تُحجب الكائنات مؤقتًا أو تغادر المشهد ثم تعود إليه. لمزيد من التفاصيل، راجع قسم آلية الذاكرة والتعامل مع حجب الكائنات.
توفر نماذج SAM 2، مثل SAM2-t وSAM2-b من Meta، إمكانات قوية للتقسيم من دون تدريب مسبق على الأمثلة، لكنها أكبر وأبطأ بكثير مقارنةً بنماذج YOLO. فعلى سبيل المثال، يُعد YOLO26n-seg أصغر بنحو 24 مرة وأسرع بأكثر من 1145 مرة من SAM2-b على CPU. وبينما يتفوق SAM 2 في سيناريوهات التقسيم المتنوعة والقائمة على المطالبات ومن دون تدريب مسبق على الأمثلة، فإن YOLO26 مُحسّن للسرعة والكفاءة والتطبيقات في الوقت الفعلي، مع استدلال شامل من البداية إلى النهاية ومن دون NMS، ما يجعله أنسب للنشر في البيئات محدودة الموارد.