SAM 2.1
لقد أضفنا للتو دعمًا لنموذج SAM2.1 الأكثر دقة. يرجى تجربته!
SAM 2: نموذج تقسيم أي شيء 2
SAM 2، خليفة نموذج تقسيم أي شيء (SAM) من Meta، هو أداة متطورة مصممة لتقسيم الكائنات الشامل في كل من الصور ومقاطع الفيديو. يتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحدة وقابلة للتوجيه تدعم المعالجة في الوقت الفعلي والتعميم بدون تدريب.
الميزات الرئيسية
شاهد: كيفية تشغيل الاستدلال باستخدام SAM2 الخاص بـ Meta باستخدام Ultralytics | دليل خطوة بخطوة 🎉
هيكلة نموذج موحدة
يجمع SAM 2 بين قدرات تقسيم الصور والفيديو في نموذج واحد. يعمل هذا التوحيد على تبسيط النشر ويسمح بأداء ثابت عبر أنواع الوسائط المختلفة. إنه يستفيد من واجهة مرنة قائمة على المطالبات، مما يتيح للمستخدمين تحديد الكائنات ذات الأهمية من خلال أنواع مطالبات مختلفة، مثل النقاط أو المربعات المحيطة أو الأقنعة.
أداء في الوقت الحقيقي
يحقق النموذج سرعات استدلال في الوقت الفعلي، حيث يعالج ما يقرب من 44 إطارًا في الثانية. وهذا يجعل SAM 2 مناسبًا للتطبيقات التي تتطلب استجابة فورية، مثل تحرير الفيديو والواقع المعزز.
تعميم بدون تلقيم
يمكن لـ SAM 2 تقسيم الكائنات التي لم يسبق له أن واجهها من قبل، مما يدل على تعميم قوي بدون تلقين. وهذا مفيد بشكل خاص في المجالات المرئية المتنوعة أو المتطورة حيث قد لا تغطي الفئات المحددة مسبقًا جميع الكائنات الممكنة.
التحسين التفاعلي
يمكن للمستخدمين تحسين نتائج التقسيم بشكل متكرر من خلال تقديم مطالبات إضافية، مما يسمح بتحكم دقيق في الإخراج. هذه التفاعلية ضرورية لضبط النتائج بدقة في تطبيقات مثل ترميز الفيديو أو التصوير الطبي.
معالجة متقدمة للتحديات البصرية
يتضمن SAM 2 آليات لإدارة تحديات تجزئة الفيديو الشائعة، مثل انسداد الكائنات وإعادة ظهورها. يستخدم آلية ذاكرة متطورة لتتبع الكائنات عبر الإطارات، مما يضمن الاستمرارية حتى عندما يتم حجب الكائنات مؤقتًا أو تخرج ثم تعود إلى المشهد.
لفهم أعمق لهندسة وقدرات SAM 2، استكشف ورقة بحث SAM 2.
الأداء والتفاصيل التقنية
يضع SAM 2 معيارًا جديدًا في هذا المجال، متفوقًا على النماذج السابقة في مختلف المقاييس:
مقياس (Metric) | SAM 2 | SOTA السابق |
---|---|---|
تجزئة الفيديو التفاعلية | الأفضل | - |
التفاعلات البشرية مطلوبة | أقل بـ 3 مرات | خط الأساس |
دقة تجزئة الصور | محسّن | 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")
# Run inference with a SAM 2 model
yolo predict model=sam2.1_b.pt source=path/to/video.mp4
تقسيم الفيديو وتتبع الكائنات
تقسيم الفيديو
تقسيم محتوى الفيديو بأكمله باستخدام مطالبات محددة وتتبع الكائنات.
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 لتقسيم المحتوى الكامل للصورة أو الفيديو إذا لم يتم توفير أي مطالبات (مربعات محيطة / نقاط / أقنعة).
مقارنة SAM 2 مقابل YOLO
نقارن هنا نماذج SAM2 الخاصة بـ Meta، بما في ذلك أصغر متغير SAM2-t، مع أصغر نموذج تجزئة لـ Ultralytics، YOLO11n-seg:
النموذج | الحجم (ميجابايت) |
المعلمات (M) |
السرعة (وحدة المعالجة المركزية (CPU)) (بالمللي ثانية/صورة) |
---|---|---|---|
Meta SAM-b | 375 | 93.7 | 49401 |
Meta SAM2-b | 162 | 80.8 | 31901 |
Meta SAM2-t | 78.1 | 38.9 | 25997 |
MobileSAM | 40.7 | 10.1 | 25381 |
FastSAM-s مع العمود الفقري لـ YOLOv8 | 23.7 | 11.8 | 55.9 |
Ultralytics YOLOv8n-seg | 6.7 (أصغر بـ 11.7 مرة) | 3.4 (أقل بـ 11.4 مرة) | 24.5 (أسرع بـ 1061 مرة) |
Ultralytics YOLO11n-seg | 5.9 (أصغر بـ 13.2 مرة) | 2.9 (أقل بـ 13.4 مرة) | 30.1 (أسرع بـ 864 مرة) |
توضح هذه المقارنة الاختلافات الكبيرة في أحجام النماذج وسرعاتها بين متغيرات SAM ونماذج تجزئة YOLO. بينما يوفر SAM قدرات تجزئة تلقائية فريدة، فإن نماذج YOLO، وخاصة YOLOv8n-seg و YOLO11n-seg، أصغر وأسرع وأكثر كفاءة من الناحية الحسابية.
يتم تشغيل الاختبارات على جهاز 2025 Apple M4 Pro بذاكرة وصول عشوائي (RAM) سعة 24 جيجابايت باستخدام torch==2.6.0
و ultralytics==8.3.90
. لإعادة إنتاج هذا الاختبار:
مثال
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
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt"]:
model = YOLO(file_name)
model.info()
model(ASSETS)
الترميز التلقائي: إنشاء مجموعة بيانات فعالة
الترميز التلقائي هو ميزة قوية في SAM 2، تمكن المستخدمين من إنشاء مجموعات بيانات تجزئة بسرعة ودقة من خلال الاستفادة من النماذج المدربة مسبقًا. هذه الإمكانية مفيدة بشكل خاص لإنشاء مجموعات بيانات كبيرة وعالية الجودة دون جهد يدوي مكثف.
كيفية التعليق التلقائي باستخدام SAM 2
شاهد: الترميز التلقائي باستخدام نموذج تجزئة أي شيء 2 الخاص بـ Meta باستخدام Ultralytics | ترميز البيانات
لترميز البيانات تلقائيًا باستخدام SAM 2، اتبع هذا المثال:
مثال على الترميز التلقائي
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam2_b.pt")
الوسيطة | النوع | افتراضي | الوصف |
---|---|---|---|
data |
str |
مطلوب | مسار الدليل الذي يحتوي على الصور المستهدفة للشرح أو التجزئة. |
det_model |
str |
'yolo11x.pt' |
مسار نموذج الكشف عن YOLO للكشف الأولي عن الكائنات. |
sam_model |
str |
'sam_b.pt' |
مسار نموذج SAM للتجزئة (يدعم متغيرات SAM و SAM2 ونماذج mobile_sam). |
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 |
حفظ الدليل التلقائي للتعليقات التوضيحية (افتراضيا './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)؟
SAM 2، خليفة نموذج تقسيم أي شيء (SAM) من Meta، هو أداة متطورة مصممة لتقسيم الكائنات الشامل في كل من الصور ومقاطع الفيديو. يتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذج موحدة وقابلة للتوجيه تدعم المعالجة في الوقت الفعلي والتعميم بدون تدريب. يقدم SAM 2 العديد من التحسينات على SAM الأصلي، بما في ذلك:
- بنية نموذج موحدة: تجمع بين إمكانات تجزئة الصور والفيديو في نموذج واحد.
- أداء في الوقت الفعلي: يعالج ما يقرب من 44 إطارًا في الثانية، مما يجعله مناسبًا للتطبيقات التي تتطلب ملاحظات فورية.
- تعميم بدون تدريب: يقوم بتقسيم الأجسام التي لم يسبق له رؤيتها، وهو مفيد في المجالات البصرية المتنوعة.
- التحسين التفاعلي: يسمح للمستخدمين بتحسين نتائج التقسيم بشكل متكرر من خلال تقديم مطالبات إضافية.
- معالجة متقدمة للتحديات البصرية: يدير تحديات تجزئة الفيديو الشائعة مثل انسداد الكائن وإعادة ظهوره.
لمزيد من التفاصيل حول بنية وقدرات SAM 2، استكشف ورقة بحث 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، وكيف تعزز أداءه؟
تم تدريب SAM 2 على مجموعة بيانات SA-V، وهي واحدة من أكبر مجموعات بيانات تجزئة الفيديو وأكثرها تنوعًا. تتضمن مجموعة بيانات SA-V:
- أكثر من 51,000 مقطع فيديو: تم التقاطها في 47 دولة، مما يوفر مجموعة واسعة من السيناريوهات الواقعية.
- أكثر من 600,000 ترميز للقناع: ترميزات قناع زمانية مكانية مفصلة، يشار إليها بـ "masklets"، تغطي الكائنات والأجزاء بأكملها.
- حجم مجموعة البيانات: يتميز بـ 4.5 أضعاف مقاطع الفيديو و 53 ضعفًا من التعليقات التوضيحية مقارنة بأكبر مجموعات البيانات السابقة، مما يوفر تنوعًا وتعقيدًا غير مسبوقين.
تسمح مجموعة البيانات الشاملة هذه لـ SAM 2 بتحقيق أداء فائق عبر معايير تجزئة الفيديو الرئيسية وتعزيز قدرات التعميم الخاصة به دون الحاجة إلى تدريب. لمزيد من المعلومات، راجع قسم مجموعة بيانات SA-V.
كيف يتعامل SAM 2 مع الانسدادات وإعادة ظهور الكائنات في تجزئة الفيديو؟
يتضمن SAM 2 آلية ذاكرة متطورة لإدارة التبعيات الزمنية والانسدادات في بيانات الفيديو. تتكون آلية الذاكرة من:
- مشفر الذاكرة وبنك الذاكرة: يخزن ميزات من الإطارات السابقة.
- وحدة انتباه الذاكرة: تستخدم المعلومات المخزنة للحفاظ على تتبع الكائنات المتسق بمرور الوقت.
- Occlusion Head: يعالج على وجه التحديد السيناريوهات التي تكون فيها الكائنات غير مرئية، ويتوقع احتمالية إخفاء الكائن.
تضمن هذه الآلية الاستمرارية حتى عندما يتم حجب الأجسام مؤقتًا أو تخرج ثم تعود إلى المشهد. لمزيد من التفاصيل، راجع قسم آلية الذاكرة والتعامل مع الانسداد.
كيف تتم مقارنة SAM 2 بنماذج التجزئة الأخرى مثل YOLO11؟
توفر نماذج SAM 2، مثل SAM2-t و SAM2-b من Meta، إمكانات تجزئة قوية بدون تدريب مسبق ولكنها أكبر وأبطأ بشكل ملحوظ مقارنة بنماذج YOLO11. على سبيل المثال، YOLO11n-seg أصغر بحوالي 13 مرة وأسرع بأكثر من 860 مرة من SAM2-b. في حين أن SAM 2 يتفوق في سيناريوهات التجزئة متعددة الاستخدامات والقائمة على المطالبات وبدون تدريب مسبق، فإن YOLO11 مُحسَّن للسرعة والكفاءة والتطبيقات في الوقت الفعلي، مما يجعله أكثر ملاءمة للنشر في البيئات محدودة الموارد.