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.
Proyek upstream
MobileSAM oleh Kyung Hee University, Apache-2.0. Makalah, sumber
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.

bash
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.

Prompt titik dan box
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)
Encode sekali, gunakan banyak prompt
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.

BerkasInput (piksel)Lisensi bobot
Instance segmentation
LibreMobileSAM.ptapache-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
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.

Diverifikasi dengan LibreYOLO v1.5.0. Tabel dukungan, checkpoint, dan angka benchmark di halaman ini dihasilkan dari library yang telah dirilis dan bobot yang dipublikasikan, bukan ditulis manual.