You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

6.1 KiB

comments description keywords
true Erfahren Sie mehr über MobileSAM, dessen Implementierung, den Vergleich mit dem Original-SAM und wie Sie es im Ultralytics-Framework herunterladen und testen können. Verbessern Sie Ihre mobilen Anwendungen heute. MobileSAM, Ultralytics, SAM, mobile Anwendungen, Arxiv, GPU, API, Bildencoder, Maskendekoder, Modell-Download, Testmethode

MobileSAM Logo

Mobile Segment Anything (MobileSAM)

Das MobileSAM-Paper ist jetzt auf arXiv verfügbar.

Eine Demonstration von MobileSAM, das auf einer CPU ausgeführt wird, finden Sie unter diesem Demo-Link. Die Leistung auf einer Mac i5 CPU beträgt etwa 3 Sekunden. Auf der Hugging Face-Demo führt die Benutzeroberfläche und CPUs mit niedrigerer Leistung zu einer langsameren Reaktion, aber die Funktion bleibt effektiv.

MobileSAM ist in verschiedenen Projekten implementiert, darunter Grounding-SAM, AnyLabeling und Segment Anything in 3D.

MobileSAM wird mit einem einzigen GPU und einem 100K-Datensatz (1% der Originalbilder) in weniger als einem Tag trainiert. Der Code für dieses Training wird in Zukunft verfügbar gemacht.

Verfügbarkeit von Modellen, unterstützte Aufgaben und Betriebsarten

Die folgende Tabelle zeigt die verfügbaren Modelle mit ihren spezifischen vortrainierten Gewichten, die unterstützten Aufgaben und ihre Kompatibilität mit unterschiedlichen Betriebsarten wie Inferenz, Validierung, Training und Export. Unterstützte Betriebsarten werden mit -Emojis und nicht unterstützte Betriebsarten mit -Emojis angezeigt.

Modelltyp Vortrainierte Gewichte Unterstützte Aufgaben Inferenz Validierung Training Export
MobileSAM mobile_sam.pt Instanzsegmentierung

Anpassung von SAM zu MobileSAM

Da MobileSAM die gleiche Pipeline wie das Original-SAM beibehält, haben wir das ursprüngliche Preprocessing, Postprocessing und alle anderen Schnittstellen eingebunden. Personen, die derzeit das ursprüngliche SAM verwenden, können daher mit minimalem Aufwand zu MobileSAM wechseln.

MobileSAM bietet vergleichbare Leistungen wie das ursprüngliche SAM und behält dieselbe Pipeline, mit Ausnahme eines Wechsels des Bildencoders. Konkret ersetzen wir den ursprünglichen, leistungsstarken ViT-H-Encoder (632M) durch einen kleineren Tiny-ViT-Encoder (5M). Auf einem einzelnen GPU arbeitet MobileSAM in etwa 12 ms pro Bild: 8 ms auf dem Bildencoder und 4 ms auf dem Maskendekoder.

Die folgende Tabelle bietet einen Vergleich der Bildencoder, die auf ViT basieren:

Bildencoder Original-SAM MobileSAM
Parameter 611M 5M
Geschwindigkeit 452ms 8ms

Sowohl das ursprüngliche SAM als auch MobileSAM verwenden denselben promptgeführten Maskendekoder:

Maskendekoder Original-SAM MobileSAM
Parameter 3.876M 3.876M
Geschwindigkeit 4ms 4ms

Hier ist ein Vergleich der gesamten Pipeline:

Gesamte Pipeline (Enc+Dec) Original-SAM MobileSAM
Parameter 615M 9.66M
Geschwindigkeit 456ms 12ms

Die Leistung von MobileSAM und des ursprünglichen SAM werden sowohl mit einem Punkt als auch mit einem Kasten als Prompt demonstriert.

Bild mit Punkt als Prompt

Bild mit Kasten als Prompt

Mit seiner überlegenen Leistung ist MobileSAM etwa 5-mal kleiner und 7-mal schneller als das aktuelle FastSAM. Weitere Details finden Sie auf der MobileSAM-Projektseite.

Testen von MobileSAM in Ultralytics

Wie beim ursprünglichen SAM bieten wir eine unkomplizierte Testmethode in Ultralytics an, einschließlich Modi für Punkt- und Kasten-Prompts.

Modell-Download

Sie können das Modell hier herunterladen.

Punkt-Prompt

!!! Example "Beispiel"

=== "Python"
    ```python
    from ultralytics import SAM

    # Laden Sie das Modell
    model = SAM('mobile_sam.pt')

    # Vorhersage einer Segmentierung basierend auf einem Punkt-Prompt
    model.predict('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])
    ```

Kasten-Prompt

!!! Example "Beispiel"

=== "Python"
    ```python
    from ultralytics import SAM

    # Laden Sie das Modell
    model = SAM('mobile_sam.pt')

    # Vorhersage einer Segmentierung basierend auf einem Kasten-Prompt
    model.predict('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])
    ```

Wir haben MobileSAM und SAM mit derselben API implementiert. Für weitere Verwendungsinformationen sehen Sie bitte die SAM-Seite.

Zitate und Danksagungen

Wenn Sie MobileSAM in Ihrer Forschungs- oder Entwicklungsarbeit nützlich finden, zitieren Sie bitte unser Paper:

!!! Quote ""

=== "BibTeX"

    ```bibtex
    @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}
    }