انتقل إلى المحتوى

نموذج أي شيء للقطاع (SAM)

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

مقدمة إلى SAMنموذج أي شيء للقطاع:

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

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

صورة عينة مجموعة البيانات SA-1B مثال على الصور. صور مجموعة البيانات متراكبة على أقنعة من مجموعة بيانات SA-1B التي تم تقديمها حديثا. يحتوي SA-1B على 11 مليون صورة متنوعة وعالية الدقة ومرخصة وحماية الخصوصية وأقنعة تجزئة عالية الجودة 1.1B. تم تعليق هذه الأقنعة تلقائيا بالكامل بواسطة SAM، وكما تم التحقق منها من خلال التقييمات البشرية والعديد من التجارب ، فهي ذات جودة عالية وتنوع. يتم تجميع الصور حسب عدد الأقنعة لكل صورة للتصور (يوجد ∼100 قناع لكل صورة في المتوسط).

الميزات الرئيسية لنموذج أي شيء للجزء (SAM)

  • مهمة تجزئة سريعة: SAM تم تصميمه مع وضع مهمة تجزئة سريعة في الاعتبار ، مما يسمح له بإنشاء أقنعة تجزئة صالحة من أي مطالبة معينة ، مثل القرائن المكانية أو النصية التي تحدد كائنا.
  • الهندسة المعمارية المتقدمة: يستخدم نموذج Segment Anything Model برنامج تشفير صور قويا ومشفرا سريعا ووحدة فك ترميز قناع خفيفة الوزن. تتيح هذه البنية الفريدة المطالبة المرنة وحساب القناع في الوقت الفعلي والوعي بالغموض في مهام التجزئة.
  • مجموعة بيانات SA-1B: تم تقديم مجموعة بيانات SA-1B من قبل مشروع Segment Anything ، وتضم أكثر من مليار قناع على 11 مليون صورة. باعتبارها أكبر مجموعة بيانات تجزئة حتى الآن ، فإنها توفر SAM مع مصدر بيانات تدريب متنوع وواسع النطاق.
  • أداء صفر طلقة: SAM يعرض أداء متميزا بدون طلقة عبر مهام تجزئة مختلفة ، مما يجعله أداة جاهزة للاستخدام للتطبيقات المتنوعة مع الحد الأدنى من الحاجة إلى الهندسة السريعة.

لإلقاء نظرة متعمقة على نموذج Segment Anything ومجموعة بيانات SA-1B ، يرجى زيارة موقع Segment Anything على الويب وتحقق من ورقة البحث Segment Anything.

الطرز المتوفرة والمهام المدعومة وأوضاع التشغيل

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

نوع الموديل الأوزان المدربة مسبقا المهام المدعومة استدلال التحقق تدريب تصدير
SAM قاعدة sam_b.pt تجزئة المثيل
SAM كبير sam_l.pt تجزئة المثيل

كيفية الاستخدام SAMبراعة وقوة في تجزئة الصورة:

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

SAM مثال على التنبؤ

التقسيم مع المطالبات

صورة المقطع مع مطالبات معينة.

from ultralytics import SAM

# Load a model
model = SAM('sam_b.pt')

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

# Run inference with bboxes prompt
model('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])

# Run inference with points prompt
model('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])

تقسيم كل شيء

قسم الصورة بأكملها.

from ultralytics import SAM

# Load a model
model = SAM('sam_b.pt')

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

# Run inference
model('path/to/image.jpg')
# Run inference with a SAM model
yolo predict model=sam_b.pt source=path/to/image.jpg
  • المنطق هنا هو تقسيم الصورة بأكملها إذا لم تقم بتمرير أي مطالبات (bboxes / points / masks).

مثال SAMPredictor

بهذه الطريقة يمكنك تعيين الصورة مرة واحدة وتشغيل الاستدلال بالمطالبات عدة مرات دون تشغيل برنامج تشفير الصور عدة مرات.

from ultralytics.models.sam import Predictor as SAMPredictor

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

# Set image
predictor.set_image("ultralytics/assets/zidane.jpg")  # set with image file
predictor.set_image(cv2.imread("ultralytics/assets/zidane.jpg"))  # set with np.ndarray
results = predictor(bboxes=[439, 437, 524, 709])
results = predictor(points=[900, 370], labels=[1])

# Reset image
predictor.reset_image()

قسم كل شيء باستخدام args إضافية.

from ultralytics.models.sam import Predictor as SAMPredictor

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

# Segment with additional args
results = predictor(source="ultralytics/assets/zidane.jpg", crop_n_layers=1, points_stride=64)

SAM المقارنة مقابل YOLOv8

هنا نقارن أصغر ميتا SAM نموذج SAM-ب ، مع Ultralytics أصغر نموذج تجزئة ، YOLOv8n-سيج:

نموذج حجم البارامترات السرعة (وحدة المعالجة المركزية)
ميتا SAM-ب 358 ميغابايت 94.7 M 51096 مللي ثانية / الدردشة
MobileSAM 40.7 ميغابايت 10.1 M 46122 مللي ثانية / الدردشة
FastSAM-ق مع YOLOv8 عمود فقري 23.7 ميغابايت 11.8 M 115 مللي ثانية / رسالة
Ultralytics YOLOv8n-ثواني 6.7 ميجابايت (أصغر 53.4 مرة) 3.4 م (أقل بمقدار 27.9 مرة) 59 مللي ثانية / رسالة فورية (أسرع 866 مرة)

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

يتم إجراء الاختبارات على جهاز Apple M2 Macbook 2023 مع ذاكرة وصول عشوائي (RAM) بسعة 16 جيجابايت. لإعادة إنتاج هذا الاختبار:

مثل

from ultralytics import FastSAM, SAM, YOLO

# Profile SAM-b
model = SAM('sam_b.pt')
model.info()
model('ultralytics/assets')

# Profile MobileSAM
model = SAM('mobile_sam.pt')
model.info()
model('ultralytics/assets')

# Profile FastSAM-s
model = FastSAM('FastSAM-s.pt')
model.info()
model('ultralytics/assets')

# Profile YOLOv8n-seg
model = YOLO('yolov8n-seg.pt')
model.info()
model('ultralytics/assets')

التعليق التوضيحي التلقائي: مسار سريع إلى مجموعات بيانات التجزئة

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

إنشاء مجموعة بيانات التجزئة الخاصة بك باستخدام نموذج الكشف

لإضافة تعليق توضيحي تلقائي إلى مجموعة البيانات باستخدام Ultralytics إطار العمل ، استخدم ملف auto_annotate وظيفة كما هو موضح أدناه:

مثل

from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')
جدال نوع وصف افتراضي
بيانات شارع المسار إلى مجلد يحتوي على صور ليتم التعليق عليها.
det_model STR ، اختياري تدريب مسبق YOLO نموذج الكشف. الإعدادات الافتراضية ل 'yolov8x.pt'. 'yolov8x.pt'
sam_نموذج STR ، اختياري تدريب مسبق SAM نموذج التجزئة. الإعدادات الافتراضية ل 'sam_b.pt'. 'sam_b.pt'
جهاز STR ، اختياري جهاز لتشغيل النماذج على. الإعدادات الافتراضية لسلسلة فارغة (وحدة المعالجة المركزية أو وحدة معالجة الرسومات، إذا كانت متوفرة).
output_dir شارع ، لا شيء ، اختياري دليل لحفظ النتائج المشروحة. الإعدادات الافتراضية لمجلد "التسميات" في الدليل نفسه مثل "البيانات". اي

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

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

الاستشهادات والشكر

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

@misc{kirillov2023segment,
      title={Segment Anything},
      author={Alexander Kirillov and Eric Mintun and Nikhila Ravi and Hanzi Mao and Chloe Rolland and Laura Gustafson and Tete Xiao and Spencer Whitehead and Alexander C. Berg and Wan-Yen Lo and Piotr Dollár and Ross Girshick},
      year={2023},
      eprint={2304.02643},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

نود أن نعرب عن امتناننا لشركة Meta الذكاء الاصطناعي لإنشاء هذا المورد القيم وصيانته لمجتمع رؤية الكمبيوتر.

الكلمات الدالة: قسم أي شيء ، نموذج تقسيم أي شيء ، SAMميتا SAM، تجزئة الصورة ، التجزئة السريعة ، أداء اللقطة الصفرية ، مجموعة بيانات SA-1B ، البنية المتقدمة ، التعليقات التوضيحية التلقائية ، Ultralytics، نماذج مدربة مسبقا ، SAM قاعدة SAM كبير ، تجزئة مثيل ، رؤية الكمبيوتر ، الذكاء الاصطناعي ، الذكاء الاصطناعي ، التعلم الآلي ، التعليقات التوضيحية للبيانات ، أقنعة التجزئة ، نموذج الكشف ، YOLO نموذج الكشف ، bibtex ، ميتا الذكاء الاصطناعي.



تم إنشاء 2023-11-12, اخر تحديث 2024-04-17
المؤلفون: جلين جوشر (10) ، تشاونينغ تشانغ (1) ، يضحك س (1)

التعليقات