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

الميزات الرئيسية#
شاهد: كيفية تنفيذ الاستدلال باستخدام SAM2 من Meta عبر Ultralytics | دليل خطوة بخطوة 🎉
بنية موحّدة للنموذج#
يجمع SAM 2 قدرات تقسيم الصور ومقاطع الفيديو في نموذج واحد. يبسّط هذا التوحيد النشر ويتيح أداءً متسقًا عبر أنواع الوسائط المختلفة. ويستفيد من واجهة مرنة قائمة على المطالبات، تُمكّن المستخدمين من تحديد الكائنات محل الاهتمام عبر أنواع مختلفة من المطالبات، مثل النقاط أو مربعات الإحاطة أو الأقنعة.
أداء آني#
يحقق النموذج سرعات استدلال آنية، إذ يعالج نحو 44 إطارًا في الثانية. وهذا يجعل SAM 2 مناسبًا للتطبيقات التي تتطلب استجابة فورية، مثل تحرير الفيديو والواقع المعزز.
التعميم دون تدريب مسبق#
يمكن لـ SAM 2 تقسيم الكائنات التي لم يسبق له مصادفتها، ما يُظهر قدرة قوية على التعميم دون أمثلة سابقة. ويُعد ذلك مفيدًا بصفة خاصة في المجالات المرئية المتنوعة أو المتغيرة، حيث قد لا تغطي الفئات المحددة مسبقًا جميع الكائنات المحتملة.
التحسين التفاعلي#
يمكن للمستخدمين تحسين نتائج التقسيم تكراريًا من خلال تقديم مطالبات إضافية، ما يتيح التحكم الدقيق في المخرجات. ويُعد هذا التفاعل ضروريًا لضبط النتائج بدقة في تطبيقات مثل شرح مقاطع الفيديو أو التصوير الطبي.
التعامل المتقدم مع التحديات المرئية#
يتضمن SAM 2 آليات للتعامل مع تحديات تقسيم الفيديو الشائعة، مثل احتجاب الكائنات وظهورها مجددًا. ويستخدم آلية ذاكرة متطورة لتتبّع الكائنات عبر الإطارات، بما يضمن استمراريتها حتى عندما تُحجب مؤقتًا أو تغادر المشهد ثم تعود إليه.
للتعمق في فهم بنية SAM 2 وإمكاناته، اطّلع على ورقة البحث الخاصة بـ SAM 2.
الأداء والتفاصيل التقنية#
يضع SAM 2 معيارًا جديدًا في المجال، متفوقًا على النماذج السابقة وفق مقاييس متعددة:
| المقياس | SAM 2 | أفضل مستوى سابق (SOTA) |
|---|---|---|
| تقسيم الفيديو التفاعلي | الأفضل | - |
| التفاعلات البشرية المطلوبة | أقل بثلاث مرات | خط الأساس |
| دقة تقسيم الصور | مُحسّن | SAM |
| سرعة الاستدلال | أسرع بست مرات | 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 التفاعلي | 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
# تحميل نموذج
model = SAM("sam2.1_b.pt")
# عرض معلومات النموذج (اختياري)
model.info()
# تنفيذ الاستدلال باستخدام مطالبة المربعات المحيطة
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
# تنفيذ الاستدلال باستخدام نقطة واحدة
results = model(points=[900, 370], labels=[1])
# تنفيذ الاستدلال باستخدام نقاط متعددة
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])
# تنفيذ الاستدلال باستخدام مطالبة نقاط متعددة لكل كائن
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])
# تنفيذ الاستدلال باستخدام مطالبة نقاط سلبية
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])تقسيم كل شيء#
قسّم محتوى الصورة أو الفيديو بأكمله دون مطالبات محددة.
from ultralytics import SAM
# تحميل نموذج
model = SAM("sam2.1_b.pt")
# عرض معلومات النموذج (اختياري)
model.info()
# تنفيذ الاستدلال
model("path/to/video.mp4")- يوضح هذا المثال كيفية استخدام SAM 2 لتقسيم محتوى الصورة أو الفيديو بأكمله عند عدم تقديم أي مطالبات (مربعات محيطة/نقاط/أقنعة).
تقسيم الفيديو وتتبع الكائنات#
قسّم محتوى الفيديو بأكمله باستخدام مطالبات محددة وتتبع الكائنات.
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)
# تنفيذ الاستدلال باستخدام نقطة واحدة
results = predictor(source="test.mp4", points=[920, 470], labels=[1])
# تنفيذ الاستدلال باستخدام نقاط متعددة
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])
# تنفيذ الاستدلال باستخدام مطالبة نقاط متعددة لكل كائن
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])
# تنفيذ الاستدلال باستخدام مطالبة نقاط سلبية
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])التقسيم والتتبّع التفاعلي الديناميكي#
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)
# حدّد فئة باستخدام مطالبة مربع
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)
# اكتشف هذا الكائن تحديدًا في صورة جديدة
results = predictor(source="image2.jpg")
# أضف فئة جديدة باستخدام معرّف كائن جديد
results = predictor(
source="image4.jpg",
bboxes=[[300, 300, 400, 400]], # كائن جديد
obj_ids=[1], # معرّف كائن جديد
update_memory=True, # أضف إلى الذاكرة
)
# نفّذ الاستدلال
results = predictor(source="image5.jpg")
# أضف مطالبات التنقيح إلى الفئة نفسها لتحسين الأداء
# يساعد ذلك عندما يتغير مظهر الكائن بدرجة كبيرة
results = predictor(
source="image6.jpg",
points=[[150, 150]], # نقطة تنقيح
labels=[1], # نقطة موجبة
obj_ids=[1], # معرّف الكائن نفسه
update_memory=True, # حدّث الذاكرة بمعلومات جديدة
)
# نفّذ الاستدلال على صورة جديدة
results = predictor(source="image7.jpg")صُمّم SAM2DynamicInteractivePredictor للعمل مع نماذج SAM 2، ويدعم إضافة الفئات وتنقيحها باستخدام جميع مطالبات المربعات والنقاط والأقنعة التي يدعمها 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:
| النموذج | الحجم (MB) | المعلمات (M) | السرعة (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 |
| Ultralytics YOLOv8n-seg | 7.1 (أصغر 11.0 مرة) | 3.4 (أقل 11.4 مرة) | 24.8 (أسرع 945 مرة) |
| Ultralytics YOLO11n-seg | 6.2 (أصغر 12.6 مرة) | 2.9 (أقل 13.4 مرة) | 24.3 (أسرع 964 مرة) |
| Ultralytics YOLO26n-seg | 6.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 سعتها 16GB باستخدام torch==2.10.0 وultralytics==8.4.31 وonnxruntime==1.24.4. لإعادة إجراء هذا الاختبار:
from ultralytics import ASSETS, SAM, YOLO, FastSAM
# تحليل أداء 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)
# أنشئ ملفًا تعريفيًا لـ FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)
# تحليل أداء نماذج YOLO (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) # رأس NMS-free في YOLO26؛ لا إجراء لـ YOLOv8/YOLO11
model = YOLO(onnx_path)
model(ASSETS)الوسم التلقائي: إنشاء مجموعات البيانات بكفاءة#
الوسم التلقائي ميزة قوية في SAM 2، تتيح للمستخدمين إنشاء مجموعات بيانات التجزئة بسرعة ودقة بالاستفادة من النماذج المدرّبة مسبقًا. وتفيد هذه الإمكانية بوجه خاص في إنشاء مجموعات بيانات كبيرة وعالية الجودة دون الحاجة إلى جهد يدوي مكثف.
كيفية إجراء الوسم التلقائي باستخدام SAM 2#
شاهد: التعليق التوضيحي التلقائي باستخدام نموذج Segment Anything 2 من Meta عبر Ultralytics | وسم البيانات
لإجراء الوسم التلقائي لمجموعة بياناتك باستخدام 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 لكبت غير الأقصى لتصفية المربعات المتداخلة. |
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 # تحميل نموذج model = SAM("sam2_b.pt") # عرض معلومات النموذج (اختياري) model.info() # التجزئة باستخدام مطالبة مربع إحاطة results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200]) # التجزئة باستخدام مطالبة نقطة 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، ما يجعله أنسب للنشر في البيئات محدودة الموارد.