MobileSAM
MobileSAM mengganti encoder gambar ViT-H milik SAM dengan encoder TinyViT yang didistilasi, sehingga alur prompt titik dan box yang sama dapat berjalan pada hardware lebih ringan. LibreYOLO menyediakan port native melalui factory LibreSAM khusus, terpisah dari factory detector LibreYOLO().
- Task
- instance segmentation
- Ukuran
- tiny at 1024 px
- Instalasi
pip install libreyolo- Tier dukungan
- Tier sejajar, sejak v. Permukaan produk terpisah dengan factory dan kontraknya sendiri.
- Lisensi
- Kode Apache-2.0, bobot Apache-2.0. Penggunaan komersial
Instalasi
MobileSAM memerlukan extra sam. Unduhan bobot milik LibreYOLO tetap melalui
tool snapshot Hugging Face dari transformers, meskipun inferensi berjalan pada
decoder native yang tidak berbasis transformers.
pip install "libreyolo[sam]"Prediksi
LibreSAM(...) (atau LibreMobileSAM(...) khusus family) adalah entry point
yang terpisah dari LibreYOLO(...). Fungsi ini mengembalikan segmenter dengan
prompt, bukan detector, karena forward pass tidak bermakna tanpa prompt spasial.
Tidak ada perintah CLI libreyolo predict untuk family ini. Gunakan API Python.
from libreyolo import LibreSAM, SAMPLE_IMAGE # MobileSAM memiliki satu ukuran, "tiny", sehingga tidak memerlukan alias lain.model = LibreSAM("mobilesam") # Prompt titik: [x, y] dalam koordinat piksel, label 1 = foreground.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy) # poligon per maskprint(result.boxes.xyxy) # box rapat yang diturunkan dari mask # Prompt box sebagai pengganti titik.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700]) # Tanpa prompt sama sekali, seluruh gambar disegmentasi (generator mask otomatis# yang disederhanakan, bukan versi referensi yang menyeluruh).result = model.predict(SAMPLE_IMAGE)from libreyolo import LibreMobileSAM, SAMPLE_IMAGE model = LibreMobileSAM() # Encoder gambar adalah bagian yang mahal. set_image() menjalankannya sekali;# setiap panggilan predict() sesudahnya menggunakan kembali embedding dalam cache.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()Prompt titik menerima [x, y] untuk satu objek, [[x, y], ...] untuk beberapa
objek, atau array numpy. labels menandai setiap titik sebagai 1 (foreground)
atau 0 (background) dan default-nya semua foreground. Prompt box menerima
[x1, y1, x2, y2] atau daftar box, satu mask per box. Menghilangkan kedua prompt
akan menyegmentasi seluruh gambar dengan memberi prompt pada grid padat dan
mempertahankan mask ber-confidence tinggi yang tidak tumpang tindih. Mode
"segment everything" ini disederhanakan dibandingkan generator mask otomatis
referensi dan dapat menghasilkan segmentasi yang kurang lengkap pada adegan
padat. Prompt titik atau box nyata adalah jalur yang lebih presisi. conf
memfilter berdasarkan prediksi kualitas mask (IoU), bukan confidence deteksi.
Teruskan 0.0 untuk mempertahankan setiap kandidat. multimask=True
mengembalikan ketiga mask ambiguitas whole-versus-part milik SAM untuk setiap
prompt, bukan hanya mask terbaik. device= memindahkan model dan, jika sesi
set_image() aktif, embedding dalam cache. Setiap mask memakai ID kelas 0
bernama "object" karena mask dengan prompt tidak memiliki set kelas tetap.
train(), val(), export(), dan track() semuanya memunculkan
NotImplementedError untuk family ini. MobileSAM hanya untuk prediksi di
LibreYOLO. Lihat prediksi untuk jenis sumber.
Varian
Ada satu ukuran, tiny, dengan input tetap 1024 px. MobileSAM menyediakan satu encoder TinyViT, bukan jenjang base/large/huge milik SAM-1.
Checkpoint
Semua berkas bobot yang dipublikasikan untuk family ini.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Instance segmentation | ||
| LibreMobileSAM.pt | apache-2.0 | |
Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.
Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- MobileSAM, Kyung Hee University
- Lisensi upstream
- Apache-2.0
- Sumber upstream
- github.com/ChaoningZhang/MobileSAM
- Kode LibreYOLO
- MIT
- Bobot
- Apache-2.0, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- Apache-2.0 is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy you redistribute, and it grants a patent license. LibreYOLO carries a native port of the TinyViT image encoder, prompt encoder, two-way transformer and mask decoder rather than vendoring upstream files unmodified, checked for bit-exact parity against the original Apache-2.0 implementation, with a NOTICE recording that provenance. The converted checkpoint is hosted as LibreMobileSAM.pt on the LibreYOLO Hugging Face org, tagged Apache-2.0 there as well.
Sitasi
@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}
}Disalin dari blok sitasi penulis di github.com/ChaoningZhang/MobileSAM#bibtex-of-our-mobilesam.