SAM
SAM (Segment Anything) mengubah klik titik atau kotak menjadi mask objek. LibreYOLO memuatnya melalui factory LibreSAM khusus yang terpisah dari factory detektor LibreYOLO(), karena model berbasis prompt memerlukan bentuk pemanggilan berbeda.
- Task
- instance segmentation
- Ukuran
- base, large, huge at 1024 px
- Instalasi
pip install libreyolo- Tier dukungan
- Tier sejajar, sejak v. Permukaan produk terpisah dengan factory dan kontraknya sendiri.
- Lisensi
- Kode MIT, bobot Apache-2.0. Penggunaan komersial
Instalasi
SAM memerlukan komponen tambahan sam, yang memasang transformers dan timm.
pip install "libreyolo[sam]"Prediksi
LibreSAM(...) 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.
from libreyolo import LibreSAM, SAMPLE_IMAGE # "base" mengunduh facebook/sam-vit-base secara otomatis saat penggunaan pertama.# Ukuran lain: "large", "huge" (juga "b"/"l"/"h").model = LibreSAM("base") # 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)from libreyolo import LibreSAM, SAMPLE_IMAGE model = LibreSAM("base") # 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: SAM hanya mendukung prediksi di LibreYOLO, sedangkan
pelacakan video berada di luar cakupan. Lihat prediksi untuk jenis sumber.
Varian
Tiga ukuran encoder gambar ViT: base, large, dan huge, semuanya pada input tetap 1024 px. Belum ada benchmark akurasi atau latensi yang dipublikasikan untuk family ini, sehingga pemilihan ukuran menukar bobot encoder dengan kualitas mask secara langsung: base paling cepat untuk enkode, sedangkan huge paling berat.
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 (Segment Anything), Meta AI Research (FAIR)
- Lisensi upstream
- Apache-2.0
- Sumber upstream
- github.com/facebookresearch/segment-anything
- Kode LibreYOLO
- MIT
- Bobot
- Apache-2.0, didistribusikan oleh penulisnya. LibreYOLO tidak menghosting atau mencerminkannya.
- 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 does not mirror SAM-1 weights on its own Hugging Face org: LibreSAM downloads the base, large and huge checkpoints directly from Meta's own facebook/sam-vit-base, facebook/sam-vit-large and facebook/sam-vit-huge repositories, each tagged Apache-2.0 there as well.
LibreYOLO tidak meng-host salinan bobot SAM-1 sendiri. LibreSAM("base"), "large", dan
"huge" mengunduh langsung dari repositori facebook/sam-vit-base,
facebook/sam-vit-large, dan facebook/sam-vit-huge milik Meta di Hugging Face, yang
masing-masing diberi tag Apache-2.0 secara independen dari LibreYOLO.
Sitasi
@article{kirillov2023segany,
title={Segment Anything},
author={Kirillov, Alexander and Mintun, Eric and Ravi, Nikhila and Mao, Hanzi and Rolland, Chloe and Gustafson, Laura and Xiao, Tete and Whitehead, Spencer and Berg, Alexander C. and Lo, Wan-Yen and Doll{\'a}r, Piotr and Girshick, Ross},
journal={arXiv:2304.02643},
year={2023}
}Disalin dari blok sitasi penulis di github.com/facebookresearch/segment-anything#citing-segment-anything.