PicoSAM3
PicoSAM3 adalah CNN ringkas yang didistilasi dari SAM 2.1 dan SAM 3, dibuat untuk segmentasi region of interest dengan prompt kotak pada sensor seperti Sony IMX500. LibreYOLO mendukungnya melalui factory LibreSAM khusus, terpisah dari factory detektor LibreYOLO(), dan hanya dengan prompt kotak.
- Task
- instance segmentation
- Ukuran
- pico at 96 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
PicoSAM3 memerlukan komponen tambahan sam: pengunduhan bobot milik LibreYOLO tetap
melalui alat Hugging Face dari transformers, meskipun inferensi berjalan pada CNN
native yang tidak memakai transformers.
pip install "libreyolo[sam]"Prediksi
LibreSAM(...) (atau LibrePicoSAM3(...) 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. Tidak ada perintah CLI libreyolo predict untuk family ini; gunakan API Python.
from libreyolo import LibreSAM, SAMPLE_IMAGE # PicoSAM3 hanya memiliki satu ukuran, "pico", jadi alias lain tidak diperlukan.model = LibreSAM("picosam3") # bboxes= adalah satu-satunya prompt yang didukung: [x1, y1, x2, y2] atau daftar# kotak, satu mask per kotak. Setiap kotak diperluas 10%, dibuat persegi,# dipotong sesuai gambar, dan diubah ukurannya menjadi 96x96 sebelum CNN berjalan.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])print(result.masks.xy) # poligon per maskprint(result.boxes.xyxy) # kotak rapat yang diturunkan dari maskfrom libreyolo import LibrePicoSAM3, SAMPLE_IMAGE model = LibrePicoSAM3() # set_image() menyimpan gambar sumber dalam cache; PicoSAM3 menjalankan satu# forward CNN penuh per kotak, sehingga ini menghemat pemuatan/dekode gambar,# bukan tahap encoder seperti pada family SAM lain.model.set_image(SAMPLE_IMAGE)a = model.predict(bboxes=[300, 200, 900, 700])b = model.predict(bboxes=[100, 100, 400, 400])model.reset_image()PicoSAM3 hanya menerima bboxes=; meneruskan points=, labels=, masks=,
text=, multimask=True, atau menghilangkan kotak untuk menyegmentasikan semuanya
akan memunculkan ValueError yang jelas karena mode tersebut tidak ada di model
upstream. conf memfilter berdasarkan kualitas mask yang diprediksi (IoU), bukan
confidence deteksi, dan harus berada di antara 0.0 dan 1.0. Setiap mask memiliki id kelas
0 dengan nama "object". train(), val(), dan track() memunculkan
NotImplementedError; gunakan LibreSAM2 atau LibreSAM3 untuk prompt titik, teks, mask,
atau segment-everything. Lihat prediksi untuk jenis sumber.
Varian
Satu ukuran, pico, dengan input ROI tetap 96 px: PicoSAM3 menjalankan satu forward CNN penuh per kotak, bukan mengenkode seluruh gambar satu kali.
Ekspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Instance segmentation | Instance segmentation to ONNX: didukung | Instance segmentation to TorchScript: tidak didukung | Instance segmentation to ExecuTorch: tidak didukung | Instance segmentation to TensorRT: tidak didukung | Instance segmentation to OpenVINO: tidak didukung | Instance segmentation to Paddle: tidak didukung | Instance segmentation to MNN: tidak didukung | Instance segmentation to RKNN: tidak didukung | Instance segmentation to ncnn: tidak didukung | Instance segmentation to TFLite: tidak didukung | Instance segmentation to CoreML: tidak didukung | Instance segmentation to Core AI: tidak didukung |
PicoSAM3 adalah satu-satunya family dalam tier SAM yang dapat diekspor: model ini
mengirim CNN ROI 96x96 mentahnya ke ONNX, roi_image -> mask_logits, tanpa NMS atau
pascapemrosesan mask yang tertanam. Family SAM lain memunculkan NotImplementedError
pada export() karena pemisahan encoder/decoder mereka belum memiliki kontrak ekspor
runtime yang ditentukan. Graph PicoSAM3 hasil ekspor tidak dimuat kembali melalui
LibreYOLO(); jalankan langsung dengan runtime seperti onnxruntime, sambil menerapkan
prapemrosesan ROI persegi dengan padding 10% yang sama seperti ditunjukkan di atas.
from libreyolo import LibrePicoSAM3 model = LibrePicoSAM3()model.export(format="onnx", output_path="LibrePicoSAM3pico.onnx") # opset (default 13) dan dynamic (default True, hanya sumbu batch) adalah# satu-satunya argumen ekspor yang diterima family ini.import numpy as npimport onnxruntime as ort # PicoSAM3 mengekspor CNN ROI 96x96 mentahnya: roi_image -> mask_logits.# Tidak ada prapemrosesan/pascapemrosesan dari LibreYOLO untuk digunakan kembali,# karena export() tidak dirutekan kembali melalui LibreYOLO() seperti checkpoint detektor.session = ort.InferenceSession("LibrePicoSAM3pico.onnx")name = session.get_inputs()[0].nameoutputs = session.run(None, {name: np.zeros((1, 3, 96, 96), dtype=np.float32)}) for meta, array in zip(session.get_outputs(), outputs): print(meta.name, array.shape)Checkpoint
Setiap berkas bobot yang dipublikasikan untuk family ini.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Instance segmentation | ||
| LibrePicoSAM3.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
- PicoSAM3, ETH Zurich
- Lisensi upstream
- Apache-2.0
- Sumber upstream
- github.com/pbonazzi/picosam3
- 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 compact ROI CNN rather than vendoring upstream files unmodified, and downloads LibrePicoSAM3pico.pt from the LibreYOLO Hugging Face org, converted with unchanged tensor values from the pinned pietrobonazzi/picosam3 revision af49e4322b6b7cf448499fee5c073d4576f59444 and tagged Apache-2.0 there. PicoSAM3 is distilled from SAM 2.1 and SAM 3 as teacher models; LibreYOLO does not vendor or redistribute either teacher's code or weights in this family.
PicoSAM3 didistilasi dari SAM 2.1 dan SAM 3 sebagai model teacher. LibreYOLO tidak menyertakan atau mendistribusikan ulang kode maupun bobot kedua teacher dalam family ini; hanya CNN student yang ringkas dan checkpoint hasil konversinya yang disediakan.
Sitasi
@article{picosam3_2026,
title={PicoSAM3: Real-Time In-Sensor Region-of-Interest Segmentation},
author={Pietro Bonazzi and Nicola Farronato and Stefan Zihlmann and Haotong Qin and Michele Magno},
journal={IEEE Sensors Journal},
year={2026}
}Disalin dari blok sitasi penulis di github.com/pbonazzi/picosam3#readme.