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

MobileSAM شعار

قطاع المحمول أي شيء (MobileSAM)

ال MobileSAM الورق متاح الآن على arXiv.

يمكن الوصول إلى عرض توضيحي لـ MobileSAM يعمل على CPU على هذا الرابط التجريبي. يستغرق الأداء على جهاز Mac i5 CPU حوالي 3 ثوانٍ تقريبًا. في العرض التوضيحي على Hugging Face ، تساهم الواجهة ووحدات المعالجة المركزية منخفضة الأداء في إبطاء الاستجابة، لكنها تستمر في العمل بفعالية.



شاهد: How to Run Inference with MobileSAM using Ultralytics | Step-by-Step Guide 🎉

MobileSAM يتم تنفيذه في مشاريع مختلفة بما في ذلك اسس-SAM، AnyLabeling ، وتقسيم أي شيء في 3D.

MobileSAM تم تدريبه على موقع واحد GPU بمجموعة بيانات 100 ألف (1% من الصور الأصلية) في أقل من يوم واحد. سيتم توفير الكود الخاص بهذا التدريب في المستقبل.

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

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

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

التكيف من SAM ل MobileSAM

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

MobileSAM يعمل بشكل مماثل للأصل SAM ويحتفظ بنفس خط الأنابيب باستثناء تغيير في مشفر الصورة. على وجه التحديد، نستبدل مشفر ViT-H الأصلي ثقيل الوزن (632 ميجا) بمشفر Tiny-ViT (5 ميجا) أصغر حجمًا. على جهاز واحد GPU ، MobileSAM يعمل في حوالي 12 مللي ثانية لكل صورة: 8 مللي ثانية على مشفر الصورة و4 مللي ثانية على وحدة فك تشفير القناع.

يوفر الجدول التالي مقارنة بين برامج ترميز الصور المستندة إلى ViT:

برنامج تشفير الصوراللغة الأصلية SAMMobileSAM
البارامترات611M5M
سرعة452 مللي ثانية8 مللي ثانية

كل من الأصلي SAM و MobileSAM استخدم نفس وحدة فك ترميز القناع الموجهة بسرعة:

وحدة فك ترميز القناعاللغة الأصلية SAMMobileSAM
البارامترات3.876M3.876M
سرعة4 مللي ثانية4 مللي ثانية

فيما يلي مقارنة بين خط الأنابيب بأكمله:

خط أنابيب كامل (ENC + ديسمبر)اللغة الأصلية SAMMobileSAM
البارامترات615M9.66M
سرعة456 مللي ثانية12 مللي ثانية

أداء MobileSAM والأصل SAM يتم عرضها باستخدام كل من نقطة ومربع كمطالبات.

صورة مع نقطة كموجه

صورة مع مربع كما يطالب

مع أدائها المتفوق ، MobileSAM أصغر بحوالي 5 مرات وأسرع 7 مرات من التيار FastSAM. مزيد من التفاصيل متوفرة في MobileSAM صفحة المشروع.

اختبار MobileSAM في Ultralytics

تماما مثل الأصل SAM، نحن نقدم طريقة اختبار مباشرة في Ultralytics، بما في ذلك أوضاع كل من مطالبات Point وBox.

نموذج تحميل

يمكنك تنزيل النموذج هنا.

نقطة موجه

مثل

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a single point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

# Predict multiple segments based on multiple points prompt
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Predict a segment based on multiple points prompt per object
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

موجه الصندوق

مثل

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a single point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

# Predict mutiple segments based on multiple points prompt
model.predict("ultralytics/assets/zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Predict a segment based on multiple points prompt per object
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# Predict a segment using both positive and negative prompts.
model.predict("ultralytics/assets/zidane.jpg", points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

لقد قمنا بتنفيذ MobileSAM و SAM باستخدام نفس واجهة برمجة التطبيقات. لمزيد من معلومات الاستخدام، يرجى الاطلاع على SAM صفحة.

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

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

@article{mobile_sam,
  title={Faster Segment Anything: Towards Lightweight SAM for Mobile Applications},
  author={Zhang, Chaoning and Han, Dongshen and Qiao, Yu and Kim, Jung Uk and Bae, Sung Ho and Lee, Seungkyu and Hong, Choong Seon},
  journal={arXiv preprint arXiv:2306.14289},
  year={2023}
}

الأسئلة المتداولة

ما هو MobileSAM وكيف يختلف عن النموذج الأصلي SAM ؟

MobileSAM is a lightweight, fast image segmentation model designed for mobile applications. It retains the same pipeline as the original SAM but replaces the heavyweight ViT-H encoder (632M parameters) with a smaller Tiny-ViT encoder (5M parameters). This change results in MobileSAM being approximately 5 times smaller and 7 times faster than the original SAM. For instance, MobileSAM operates at about 12ms per image, compared to the original SAM's 456ms. You can learn more about the MobileSAM implementation in various projects here.

كيف يمكنني اختبار MobileSAM باستخدام Ultralytics ؟

يمكن إجراء الاختبار MobileSAM في Ultralytics من خلال طرق مباشرة. يمكنك استخدام المطالبات النقطية والمربعة لتوقع المقاطع. إليك مثالاً باستخدام المطالبة النقطية:

from ultralytics import SAM

# Load the model
model = SAM("mobile_sam.pt")

# Predict a segment based on a point prompt
model.predict("ultralytics/assets/zidane.jpg", points=[900, 370], labels=[1])

يمكنك أيضاً الرجوع إلى قسم الاختبار MobileSAM لمزيد من التفاصيل.

لماذا يجب أن أستخدم MobileSAM لتطبيق الهاتف المحمول الخاص بي؟

MobileSAM مثالية لتطبيقات الأجهزة المحمولة نظرًا لبنيتها خفيفة الوزن وسرعة الاستدلال السريعة. ومقارنةً بالنسخة الأصلية SAM ، فإن MobileSAM أصغر بحوالي 5 أضعاف وأسرع بـ 7 أضعاف، مما يجعله مناسبًا للبيئات التي تكون فيها الموارد الحاسوبية محدودة. تضمن هذه الكفاءة أن الأجهزة المحمولة يمكنها إجراء تجزئة للصور في الوقت الفعلي دون تأخير كبير. وبالإضافة إلى ذلك، تم تحسين نماذج MobileSAM ، مثل Inference، لتناسب أداء الأجهزة المحمولة.

كيف تم تدريب MobileSAM ، وهل رمز التدريب متاح؟

MobileSAM تم تدريبه على موقع GPU واحد بمجموعة بيانات 100 ألف، أي 1% من الصور الأصلية، في أقل من يوم واحد. في حين سيتم توفير كود التدريب في المستقبل، يمكنك حاليًا استكشاف جوانب أخرى من MobileSAM في مستودعMobileSAM GitHub. يتضمن هذا المستودع أوزانًا مُدرّبة مسبقًا وتفاصيل التنفيذ لتطبيقات مختلفة.

ما هي حالات الاستخدام الأساسية لـ MobileSAM ؟

MobileSAM مصمم لتجزئة الصور بسرعة وكفاءة في البيئات المتنقلة. تشمل حالات الاستخدام الأساسية ما يلي:

  • Real-time object detection and segmentation for mobile applications.
  • معالجة الصور ذات الكمون المنخفض في الأجهزة ذات الموارد الحاسوبية المحدودة.
  • التكامل في تطبيقات الأجهزة المحمولة التي تعتمد على الذكاء الاصطناعي لمهام مثل الواقع المعزز (AR) والتحليلات في الوقت الفعلي.

لمزيد من حالات الاستخدام التفصيلية ومقارنات الأداء، راجع القسم الخاص بالتكيف من SAM إلى MobileSAM.

📅 Created 11 months ago ✏️ Updated 10 days ago

التعليقات