SAM 2

SAM 2 memperluas SAM dengan arsitektur memori streaming yang dibuat untuk video, serta mengubah klik titik atau kotak menjadi mask objek. LibreYOLO mendukung jalur segmentasi gambarnya melalui factory LibreSAM khusus yang terpisah dari factory detektor LibreYOLO().

Task
instance segmentation
Ukuran
Instalasi
pip install libreyolo
Tier dukungan
Tier sejajar, sejak v. Permukaan produk terpisah dengan factory dan kontraknya sendiri.
Proyek upstream
SAM 2 oleh Meta FAIR, Apache-2.0. Makalah, sumber
Lisensi
Kode MIT, bobot Apache-2.0. Penggunaan komersial

Instalasi

SAM 2 memerlukan komponen tambahan sam, yang memasang transformers dan timm.

bash
pip install "libreyolo[sam]"

Prediksi

LibreSAM(...) (atau LibreSAM2(...) yang khusus untuk family ini) adalah entry point terpisah dari LibreYOLO(...): hasilnya merupakan segmenter yang dapat diberi prompt, bukan detektor, karena forward pass di sini tidak bermakna tanpa prompt spasial. Tidak ada perintah CLI libreyolo predict untuk family ini; gunakan API Python. Hanya segmentasi gambar yang didukung; pelacakan dengan memori video SAM 2 berada di luar cakupan.

Prompt titik dan kotak
from libreyolo import LibreSAM, SAMPLE_IMAGE # Alias ukuran: "sam2-tiny", "sam2-small", "sam2-base-plus",# "sam2-large" (juga bentuk pendek "sam2-t"/"sam2-s"/"sam2-bp"/"sam2-l").model = LibreSAM("sam2-large") # 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)    # kotak rapat yang diturunkan dari mask # Prompt kotak sebagai pengganti titik.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700]) # Tanpa prompt akan menyegmentasikan seluruh gambar (generator mask otomatis# yang disederhanakan, bukan versi referensi lengkap).result = model.predict(SAMPLE_IMAGE)
Enkode sekali, gunakan banyak prompt
from libreyolo import LibreSAM2, SAMPLE_IMAGE # Kelas khusus family menerima ukuran tanpa prefiks "sam2-".model = LibreSAM2("large") # Encoder gambar adalah bagian yang mahal. set_image() menjalankannya sekali;# setiap pemanggilan predict() setelahnya menggunakan kembali embedding dari 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), dengan default semuanya foreground. Prompt kotak menerima [x1, y1, x2, y2] atau daftar kotak, satu mask per kotak. Menghilangkan kedua prompt akan menyegmentasikan seluruh gambar dengan memberi prompt pada grid padat dan mempertahankan mask yang meyakinkan serta tidak tumpang tindih; mode "segment everything" ini disederhanakan dibandingkan generator mask otomatis referensi dan dapat kurang menyegmentasikan adegan padat, sehingga prompt titik atau kotak yang nyata menjadi jalur presisi. conf memfilter berdasarkan kualitas mask yang diprediksi (IoU), bukan confidence deteksi: berikan 0.0 untuk mempertahankan setiap kandidat. multimask=True mengembalikan ketiga mask ambiguitas keseluruhan-lawan-bagian milik SAM per prompt, bukan hanya mask terbaik. device= memindahkan model dan, jika sesi set_image() aktif, embedding dari cache. Setiap mask memiliki id kelas 0 dengan nama "object", karena mask berbasis prompt tidak memiliki kumpulan kelas tetap. train(), val(), export(), dan track() semuanya memunculkan NotImplementedError untuk family ini: LibreYOLO hanya mendukung inferensi gambar di sini. Lihat prediksi untuk jenis sumber.

Varian

Empat ukuran backbone Hiera: tiny, small, base-plus, dan large, semuanya pada resolusi input yang sama. Belum ada benchmark akurasi atau latensi yang dipublikasikan untuk family ini, sehingga pemilihan ukuran menukar bobot encoder dengan kualitas mask secara langsung: tiny paling cepat untuk enkode, sedangkan large paling berat.

Checkpoint

Setiap berkas bobot yang dipublikasikan untuk family ini.

BerkasInput (piksel)Lisensi bobot
Instance segmentation
LibreSAM2tiny.ptapache-2.0
LibreSAM2small.ptapache-2.0
LibreSAM2base-plus.ptapache-2.0
LibreSAM2large.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
SAM 2, Meta FAIR
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 loads SAM 2 through the Apache-2.0 Transformers implementation and republishes Transformers-compatible snapshots of the tiny, small, base-plus and large checkpoints on its own Hugging Face org, tagged Apache-2.0 there as well. LibreYOLO ships image inference only; SAM 2's video-memory tracking is out of scope for this family.

Sitasi

@article{ravi2024sam2,
  title={SAM 2: Segment Anything in Images and Videos},
  author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
  journal={arXiv preprint arXiv:2408.00714},
  url={https://arxiv.org/abs/2408.00714},
  year={2024}
}

Disalin dari blok sitasi penulis di github.com/facebookresearch/sam2#citing-sam-2.

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.