SAM 2.1
لقد قمنا للتو بدعم النموذج SAM2.1 الأكثر دقة. يرجى تجربته!
SAM 2: نموذج قطاع أي شيء 2
SAM 2، وهو خليفة نموذج Segment Anything Model (SAM) من Meta، هو أداة متطورة مصممة لتجزئة الكائنات الشاملة في كل من الصور ومقاطع الفيديو. وهي تتفوق في التعامل مع البيانات المرئية المعقدة من خلال بنية نموذجية موحدة وقابلة للتوجيه تدعم المعالجة في الوقت الفعلي والتعميم بدون لقطة.
الميزات الرئيسية
شاهد: كيفية تشغيل الاستدلال باستخدام ميتا SAM2 باستخدام Ultralytics | دليل خطوة بخطوة 🎉
بنية النموذج الموحد
SAM 2 يجمع بين إمكانيات تجزئة الصور والفيديو في نموذج واحد. يعمل هذا التوحيد على تبسيط النشر ويسمح بأداء متسق عبر أنواع الوسائط المختلفة. يستفيد من واجهة مرنة قائمة على المطالبة، مما يتيح للمستخدمين تحديد الكائنات ذات الأهمية من خلال أنواع مختلفة من المطالبات، مثل النقاط أو المربعات المحدودة أو الأقنعة.
الأداء في الوقت الحقيقي
يحقق النموذج سرعات استدلال في الوقت الحقيقي، حيث يعالج حوالي 44 إطارًا في الثانية. وهذا ما يجعل SAM 2 مناسبًا للتطبيقات التي تتطلب ردود فعل فورية، مثل تحرير الفيديو والواقع المعزز.
تعميم اللقطة الصفرية
SAM 2 يمكنه تقسيم الأشياء التي لم يصادفها من قبل، مما يدل على تعميم قوي من دون أي لقطة. هذا مفيد بشكل خاص في المجالات المرئية المتنوعة أو المتطورة حيث قد لا تغطي الفئات المحددة مسبقًا جميع الكائنات الممكنة.
التنقيح التفاعلي
يمكن للمستخدمين تحسين نتائج التجزئة بشكل متكرر من خلال توفير مطالبات إضافية، مما يسمح بالتحكم الدقيق في المخرجات. هذا التفاعل ضروري لضبط النتائج بدقة في تطبيقات مثل التعليقات التوضيحية للفيديو أو التصوير الطبي.
التعامل المتقدم مع التحديات البصرية
SAM 2 يتضمن آليات لإدارة تحديات تجزئة الفيديو الشائعة، مثل انسداد الأجسام وظهورها مرة أخرى. ويستخدم آلية ذاكرة متطورة لتتبع الكائنات عبر الإطارات، مما يضمن الاستمرارية حتى عندما تكون الكائنات محجوبة مؤقتًا أو عند خروجها من المشهد ودخولها مرة أخرى.
للاطلاع على فهم أعمق لبنية SAM 2 وقدراته، اطلع على الورقة البحثيةSAM 2.
الأداء والتفاصيل الفنية
SAM 2 يضع معيارًا جديدًا في هذا المجال، حيث يتفوق على النماذج السابقة في مقاييس مختلفة:
متري | SAM 2 | السابق SOTA |
---|---|---|
تجزئة الفيديو التفاعلي | الأفضل | - |
التفاعلات البشرية المطلوبة | أقل ب 3 أضعاف | خط الأساس |
دقة تجزئة الصور | محسّنة | SAM |
سرعة الاستدلال | أسرع 6 مرات | SAM |
الهندسة المعمارية النموذجية
المكونات الأساسية
- مشفر الصور والفيديو: يستخدم بنية قائمة على المحولات لاستخراج ميزات عالية المستوى من كل من الصور وإطارات الفيديو. هذا المكون مسؤول عن فهم المحتوى المرئي في كل خطوة زمنية.
- أداة تشفير الموجه: يعالج المطالبات المقدمة من المستخدم (النقاط، والمربعات، والأقنعة) لتوجيه مهمة التجزئة. يتيح ذلك ل SAM 2 التكيف مع مدخلات المستخدم واستهداف كائنات محددة داخل المشهد.
- آلية الذاكرة: تتضمن مشفر ذاكرة، وبنك ذاكرة، ووحدة انتباه الذاكرة. تخزن هذه المكونات مجتمعةً المعلومات من الإطارات السابقة وتستخدمها، مما يمكّن النموذج من الحفاظ على تتبع متسق للأجسام مع مرور الوقت.
- أداة فك ترميز القناع: ينشئ أقنعة التجزئة النهائية بناءً على ميزات الصورة المشفرة والمطالبات. في الفيديو، يستخدم أيضًا سياق الذاكرة لضمان التتبع الدقيق عبر الإطارات.
آلية الذاكرة ومعالجة الانسداد
تتيح آلية الذاكرة SAM 2 التعامل مع التبعيات الزمنية والانسدادات في بيانات الفيديو. أثناء تحرك الأجسام وتفاعلها، يسجل SAM 2 ميزاتها في بنك الذاكرة. عندما يصبح كائن ما محجوبًا، يمكن للنموذج الاعتماد على هذه الذاكرة للتنبؤ بموضعه ومظهره عند ظهوره مرة أخرى. يتعامل رأس الانسداد على وجه التحديد مع السيناريوهات التي تكون فيها الأجسام غير مرئية، ويتنبأ باحتمالية انسداد الجسم.
حل الغموض متعدد الأقنعة
في المواقف التي يكتنفها الغموض (على سبيل المثال، الأجسام المتداخلة)، يمكن أن يولد SAM 2 تنبؤات متعددة للأقنعة. تعد هذه الميزة ضرورية لتمثيل المشاهد المعقدة بدقة حيث قد لا يصف قناع واحد الفروق الدقيقة في المشهد بشكل كافٍ.
مجموعة بيانات SA-V
تُعد مجموعة بيانات SA-V، التي تم تطويرها لتدريب SAM 2، واحدة من أكبر مجموعات بيانات تجزئة الفيديو المتاحة وأكثرها تنوعًا. وهي تشمل:
- أكثر من 51,000 مقطع فيديو: تم التقاطها في 47 دولة، مما يوفر مجموعة واسعة من السيناريوهات الواقعية.
- أكثر من 600,000 شرح قناع: التعليقات التوضيحية التفصيلية للقناع المكاني والزماني، التي يُشار إليها باسم "الأقنعة"، والتي تغطي كائنات وأجزاء كاملة.
- مقياس مجموعة البيانات: تضم مقاطع فيديو أكثر بـ 4.5 أضعاف عدد مقاطع الفيديو و53 ضعف عدد التعليقات التوضيحية مقارنةً بأكبر مجموعات البيانات السابقة، مما يوفر تنوعاً وتعقيداً غير مسبوقين.
المعايير
تجزئة كائن الفيديو
SAM 2 أداءً فائقًا عبر معايير تجزئة الفيديو الرئيسية:
مجموعة البيانات | J&F | J | F |
---|---|---|---|
دافيس 2017 | 82.5 | 79.8 | 85.2 |
يوتيوب-فوس | 81.2 | 78.9 | 83.5 |
التقسيم التفاعلي
في مهام التجزئة التفاعلية، يُظهر SAM 2 كفاءة ودقة كبيرتين في مهام التجزئة التفاعلية:
مجموعة البيانات | نوك@90 | الجامعة الأمريكية بالقاهرة |
---|---|---|
دافيس التفاعلية | 1.54 | 0.872 |
التركيب
لتثبيت SAM 2، استخدم الأمر التالي. سيتم تنزيل جميع طرازات SAM 2 تلقائيًا عند الاستخدام الأول.
كيفية الاستخدام SAM 2: تعدد الاستخدامات في تجزئة الصور والفيديو
يوضح الجدول التالي تفاصيل نماذج SAM 2 المتاحة، وأوزانها المدربة مسبقًا، والمهام المدعومة، وتوافقها مع أوضاع التشغيل المختلفة مثل الاستدلال والتحقق من الصحة والتدريب والتصدير.
نوع الموديل | الأوزان المدربة مسبقاً | المهام المدعومة | الاستدلال | التحقق من الصحة | التدريب | التصدير |
---|---|---|---|---|---|---|
SAM 2 صغير | sam2_t.pt | تجزئة المثيل | ✅ | ❌ | ❌ | ❌ |
SAM 2 صغيران | sam2_s.pt | تجزئة المثيل | ✅ | ❌ | ❌ | ❌ |
SAM 2 قاعدة 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 القاعدة 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.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 / نقاط / علامات).
SAM 2 المقارنة بين YOLOv8
نقارن هنا نموذج ميتا الأصغر SAM 2، SAM2-t، مع نموذج التجزئة الأصغر Ultralytics YOLOv8n -seg:
الطراز | الحجم (ميغابايت) |
المعلمات (م) |
السرعة (CPU) (م/م) (م/م) |
---|---|---|---|
ميتا SAM-ب | 375 | 93.7 | 161440 |
ميتا SAM2-ب | 162 | 80.8 | 121923 |
ميتا SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s مع YOLOv8 العمود الفقري | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-سيج | 6.7 (11.7 مرة أقل) | 3.4 (11.4 مرة أقل) | 79.5 (1071 مرة أسرع) |
توضح هذه المقارنة الفروق الكبيرة في أحجام النماذج والسرعات بين النماذج. في حين أن SAM يقدم قدرات فريدة للتجزئة التلقائية، فإنه ليس منافسًا مباشرًا لنماذج التجزئة YOLOv8 ، التي هي أصغر وأسرع وأكثر كفاءة.
أُجريت الاختبارات على جهاز Apple M2 Macbook 2023 مزود بذاكرة وصول عشوائي سعة 16 جيجابايت باستخدام torch==2.3.1
و ultralytics==8.3.82
. لإعادة إنتاج هذا الاختبار:
مثال على ذلك
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 YOLOv8n-seg
model = YOLO("yolov8n-seg.pt")
model.info()
model(ASSETS)
التعليق التلقائي: إنشاء مجموعة بيانات فعالة
يُعد التعليل التلقائي ميزة قوية في SAM 2، مما يتيح للمستخدمين إنشاء مجموعات بيانات التجزئة بسرعة ودقة من خلال الاستفادة من النماذج المدربة مسبقًا. هذه الإمكانية مفيدة بشكل خاص لإنشاء مجموعات بيانات كبيرة وعالية الجودة دون بذل جهد يدوي مكثف.
كيفية التعليق التلقائي باستخدام SAM 2
شاهد: التعليق التوضيحي التلقائي باستخدام نموذج Meta's Segment's Anything 2 باستخدام Ultralytics | تسمية البيانات
للتعليل التلقائي لمجموعة البيانات الخاصة بك باستخدام SAM 2، اتبع هذا المثال:
مثال على التعليق التلقائي
الجدال | النوع | الوصف | افتراضي |
---|---|---|---|
data |
str |
المسار إلى مجلد يحتوي على الصور المراد وضع تعليقات توضيحية عليها. | |
det_model |
str ، اختياري |
نموذج الكشف YOLO المدرب مسبقًا . افتراضي إلى 'yolo11x.pt'. | 'yolo11x.pt' |
sam_model |
str ، اختياري |
نموذج التجزئة SAM 2 المدرب مسبقًا. افتراضي إلى 'sam2_b.pt'. | 'sam2_b.pt' |
device |
str ، اختياري |
جهاز لتشغيل النماذج عليه. يُفترض أن يكون افتراضيًا إلى سلسلة فارغة (CPU أو GPU ، إذا كان متاحًا). | |
conf |
float ، اختياري |
عتبة الثقة لنموذج الكشف؛ الافتراضي هو 0.25. | 0.25 |
iou |
float ، اختياري |
عتبة IoU لتصفية المربعات المتداخلة في نتائج الكشف؛ الافتراضي هو 0.45. | 0.45 |
imgsz |
int ، اختياري |
إدخال بُعد تغيير حجم الصورة؛ الافتراضي هو 640. | 640 |
max_det |
int ، اختياري |
يحد من عمليات الكشف لكل صورة للتحكم في المخرجات في المشاهد الكثيفة. | 300 |
classes |
list ، اختياري |
تصفية التوقعات إلى معرّفات الفئات المحددة، وإرجاع الاكتشافات ذات الصلة فقط. | None |
output_dir |
str , None ، اختياري |
دليل لحفظ النتائج المشروحة. يتم تعيينه افتراضيًا إلى مجلد "التسميات" في نفس دليل "البيانات". | None |
تعمل هذه الوظيفة على تسهيل الإنشاء السريع لمجموعات بيانات تجزئة عالية الجودة، وهي مثالية للباحثين والمطورين الذين يهدفون إلى تسريع مشاريعهم.
القيود
على الرغم من نقاط قوته، فإن 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، وهو خليفة نموذج Segment Anything Model (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 شرح قناع: التعليقات التوضيحية التفصيلية للقناع المكاني والزماني، التي يُشار إليها باسم "الأقنعة"، والتي تغطي كائنات وأجزاء كاملة.
- مقياس مجموعة البيانات: تتميز بمقاطع فيديو أكثر بـ 4.5 أضعاف عدد مقاطع الفيديو و53 ضعف عدد التعليقات التوضيحية مقارنةً بأكبر مجموعات البيانات السابقة، مما يوفر تنوعاً وتعقيداً غير مسبوقين.
تسمح مجموعة البيانات الشاملة هذه لـ SAM 2 بتحقيق أداء متفوق عبر معايير تجزئة الفيديو الرئيسية وتعزز قدرات التعميم من دون لقطة. لمزيد من المعلومات، راجع قسم مجموعة بيانات SA-V Dataset.
كيف يتعامل SAM 2 مع حالات الانسداد وظهور الكائنات في تجزئة الفيديو؟
SAM 2 يتضمن آلية ذاكرة متطورة لإدارة التبعيات الزمنية والانسدادات في بيانات الفيديو. تتكون آلية الذاكرة من:
- مشفر الذاكرة وبنك الذاكرة: يخزن الميزات من الإطارات السابقة.
- وحدة انتباه الذاكرة: تستخدم المعلومات المخزنة للحفاظ على تتبع الكائنات بشكل متسق مع مرور الوقت.
- رأس الانسداد: يتعامل بشكل خاص مع السيناريوهات التي تكون فيها الأجسام غير مرئية، ويتنبأ باحتمالية انسداد جسم ما.
تضمن هذه الآلية الاستمرارية حتى عندما تكون الأجسام محجوبة مؤقتًا أو عند الخروج من المشهد والدخول إليه مرة أخرى. لمزيد من التفاصيل، راجع قسم آلية الذاكرة ومعالجة الانسداد.
كيف يمكن مقارنة SAM 2 بنماذج التجزئة الأخرى مثل YOLOv8 ؟
SAM 2 و Ultralytics YOLOv8 تخدم أغراضًا مختلفة وتتفوق في مجالات مختلفة. بينما تم تصميم SAM 2 لتجزئة الكائنات بشكل شامل مع ميزات متقدمة مثل التعميم الصفري والأداء في الوقت الحقيقي، تم تحسين YOLOv8 للسرعة والكفاءة في مهام اكتشاف الكائنات وتجزئتها. إليك مقارنة
الطراز | الحجم (ميغابايت) |
المعلمات (م) |
السرعة (CPU) (م/م) (م/م) |
---|---|---|---|
ميتا SAM-ب | 375 | 93.7 | 161440 |
ميتا SAM2-ب | 162 | 80.8 | 121923 |
ميتا SAM2-t | 78.1 | 38.9 | 85155 |
MobileSAM | 40.7 | 10.1 | 98543 |
FastSAM-s مع YOLOv8 العمود الفقري | 23.7 | 11.8 | 140 |
Ultralytics YOLOv8n-سيج | 6.7 (11.7 مرة أقل) | 3.4 (11.4 مرة أقل) | 79.5 (1071 مرة أسرع) |
لمزيد من التفاصيل، راجع قسم المقارنة بينSAM 2 و YOLOv8.