[ Paper
] [ ?HuggingFace Demo
] [ Colab demo
] [ Replicate demo & API
] [ ] [ OpenXLab Demo
Model Zoo
] [ BibTeX
] [ Video Demo
]
نموذج أي شيء للقطاع السريع (FastSAM) هو نموذج لأي شيء لقطاع CNN تم تدريبه باستخدام 2% فقط من مجموعة بيانات SA-1B التي نشرها مؤلفو SAM. يحقق FastSAM أداءً مشابهًا لطريقة SAM بسرعة تشغيل أعلى بمقدار 50× .
؟ التحديثات
2024/6/25
تم تحسين مشكلة Edge jaggies قليلاً #231، كما تمت مزامنة الإستراتيجية أيضًا مع مشروع Ultralytics#13939,#13912. تم تحديث العرض التوضيحي لـ Huggingface.2023/11/28
توصية: Semantic FastSAM، والتي تضيف تسميات الفئة الدلالية إلى FastSAM. شكرًا لـKBH00 على هذه المساهمة القيمة.2023/09/11
إصدار كود التدريب والتحقق من الصحة.2023/08/17
قم بإصدار العرض التوضيحي لـ OpenXLab. شكرًا لفريق OpenXLab للمساعدة.2023/07/06
تمت الإضافة إلى مركز نماذج Ultralytics (YOLOv8). بفضل Ultralytics للمساعدة؟2023/06/29
دعم وضع النص في HuggingFace Space. شكرا جزيلا لgaoxinge للمساعدة؟2023/06/29
أطلق سراح FastSAM_Awesome_TensorRT. شكرًا جزيلاً لـ ChuRuaNh0 على توفير نموذج TensorRT لـ FastSAM؟.2023/06/26
قم بإصدار عرض FastSAM Replicate عبر الإنترنت. شكرًا جزيلاً لـ Chenxi على تقديم هذا العرض التوضيحي الجميل.2023/06/26
وضع نقاط الدعم في HuggingFace Space. سيأتي التفاعل الأفضل والأسرع قريبًا!2023/06/24
شكرًا جزيلاً لشركة Grounding-SAM على الجمع بين Grounding-DINO وFastSAM في Grounded-FastSAM؟. استنساخ المستودع محليًا:
git clone https://github.com/CASIA-IVA-Lab/FastSAM.git
إنشاء كوندا env. يتطلب الكود python>=3.7
وكذلك pytorch>=1.7
و torchvision>=0.8
. برجاء اتباع التعليمات الواردة هنا لتثبيت تبعيات PyTorch وTorchVision. يوصى بشدة بتثبيت كل من PyTorch وTorchVision بدعم CUDA.
conda create -n FastSAM python=3.9
conda activate FastSAM
تثبيت الحزم:
cd FastSAM
pip install -r requirements.txt
تثبيت CLIP (مطلوب إذا كان يتم اختبار موجه النص.):
pip install git+https://github.com/openai/CLIP.git
قم أولاً بتنزيل نقطة تفتيش نموذجية.
بعد ذلك، يمكنك تشغيل البرامج النصية لتجربة وضع كل شيء وثلاثة أوضاع للمطالبة.
# Everything mode
python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg
# Text prompt
python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --text_prompt " the yellow dog "
# Box prompt (xywh)
python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --box_prompt " [[570,200,230,400]] "
# Points prompt
python Inference.py --model_path ./weights/FastSAM.pt --img_path ./images/dogs.jpg --point_prompt " [[520,360],[620,300]] " --point_label " [1,0] "
يمكنك استخدام الكود التالي لإنشاء كافة الأقنعة وتصور النتائج.
from fastsam import FastSAM, FastSAMPrompt
model = FastSAM( ' ./weights/FastSAM.pt ' )
IMAGE_PATH = ' ./images/dogs.jpg '
DEVICE = ' cpu '
everything_results = model(IMAGE_PATH, device=DEVICE, retina_masks=True, imgsz=1024, conf=0.4, iou=0.9,)
prompt_process = FastSAMPrompt(IMAGE_PATH, everything_results, device=DEVICE)
# everything prompt
ann = prompt_process.everything_prompt ()
prompt_process.plot(annotations=ann,output_path= ' ./output/dog.jpg ' ,)
بالنسبة لمطالبات وضع النقطة/المربع/النص، استخدم:
# bbox default shape [0,0,0,0] -> [x1,y1,x2,y2]
ann = prompt_process.box_prompt(bboxes=[[200, 200, 300, 300]])
# text prompt
ann = prompt_process.text_prompt(text='a photo of a dog')
# point prompt
# points default [[0,0]] [[x1,y1],[x2,y2]]
# point_label default [0] [1,0] 0:background, 1:foreground
ann = prompt_process.point_prompt(points=[[620, 360]], pointlabel=[1])
prompt_process.plot(annotations=ann,output_path='./output/dog.jpg',)
نرحب بك أيضًا لتجربة عرض Colab الخاص بنا: FastSAM_example.ipynb.
نحن نقدم خيارات متنوعة لأغراض مختلفة، التفاصيل موجودة في MORE_USAGES.md.
التدريب من الصفر أو التحقق من الصحة: رمز التدريب والتحقق.
# Download the pre-trained model in "./weights/FastSAM.pt"
python app_gradio.py
يتوفر نسختين من الموديل بأحجام مختلفة. انقر فوق الروابط أدناه لتنزيل نقطة التحقق الخاصة بنوع النموذج المقابل.
default
أو FastSAM
: نموذج أي شيء للقطعة المستندة إلى YOLOv8x | بايدو كلاود (pwd: 0000).FastSAM-s
: نموذج أي شيء يعتمد على الجزء YOLOv8s. تم اختبار جميع النتائج على بطاقة NVIDIA GeForce RTX 3090 واحدة.
سرعة التشغيل تحت أرقام موجهة مختلفة (مللي ثانية).
طريقة | المعلمات | 1 | 10 | 100 | ه(16x16) | هـ (32×32*) | ه(64×64) |
---|---|---|---|---|---|---|---|
سام-ح | 0.6 جرام | 446 | 464 | 627 | 852 | 2099 | 6972 |
سام-ب | 136 م | 110 | 125 | 230 | 432 | 1383 | 5417 |
FastSAM | 68 م | 40 | 40 | 40 | 40 | 40 | 40 |
مجموعة البيانات | طريقة | ذاكرة وحدة معالجة الرسومات (ميجابايت) |
---|---|---|
كوكو 2017 | FastSAM | 2608 |
كوكو 2017 | سام-ح | 7060 |
كوكو 2017 | سام-ب | 4670 |
اختبار على مجموعة البيانات BSDB500.
طريقة | سنة | المواد المستنفدة للأوزون | أويس | ا ف ب | 50 راند |
---|---|---|---|---|---|
هيد | 2015 | .788 | .808 | .840 | .923 |
سام | 2023 | .768 | .786 | .794 | .928 |
FastSAM | 2023 | .750 | .790 | .793 | .903 |
طريقة | AR10 | AR100 | AR1000 | الجامعة الأمريكية بالقاهرة |
---|---|---|---|---|
سام-ح E64 | 15.5 | 45.6 | 67.7 | 32.1 |
سام-ح E32 | 18.5 | 49.5 | 62.5 | 33.7 |
سام-بي E32 | 11.4 | 39.6 | 59.1 | 27.3 |
FastSAM | 15.7 | 47.3 | 63.7 | 32.2 |
بي بوكس AR@1000
طريقة | الجميع | صغير | ميد. | كبير |
---|---|---|---|---|
فيت ديت-H | 65.0 | 53.2 | 83.3 | 91.2 |
طرق النقل بدون طلقة | ||||
سام-ح E64 | 52.1 | 36.6 | 75.1 | 88.2 |
سام-ح E32 | 50.3 | 33.1 | 76.2 | 89.8 |
سام-بي E32 | 45.0 | 29.3 | 68.7 | 80.6 |
FastSAM | 57.1 | 44.3 | 77.1 | 85.3 |
طريقة | ا ف ب | وكالة الأنباء الجزائرية | APM | الألغام المضادة للأفراد |
---|---|---|---|---|
فيت ديت-H | .510 | .320 | .543 | .689 |
سام | .465 | .308 | .510 | .617 |
FastSAM | .379 | .239 | .434 | .500 |
عدة نتائج تجزئة:
نتائج العديد من المهام النهائية لإظهار الفعالية.
النموذج مرخص بموجب ترخيص Apache 2.0.
لم يكن مشروعنا ممكنًا بدون مساهمات هؤلاء الأشخاص الرائعين! شكرا لكم جميعا لجعل هذا المشروع أفضل.
إذا وجدت هذا المشروع مفيدًا لبحثك، فيرجى مراعاة الاستشهاد بمدخل BibTeX التالي.
@misc{zhao2023fast,
title={Fast Segment Anything},
author={Xu Zhao and Wenchao Ding and Yongqi An and Yinglong Du and Tao Yu and Min Li and Ming Tang and Jinqiao Wang},
year={2023},
eprint={2306.12156},
archivePrefix={arXiv},
primaryClass={cs.CV}
}