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.
Proyek upstream
PicoSAM3 oleh ETH Zurich, Apache-2.0. Makalah, sumber
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.

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

Prompt kotak
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 mask
Enkode sekali, gunakan banyak prompt
from 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

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Instance segmentationInstance segmentation to ONNX: didukungInstance segmentation to TorchScript: tidak didukungInstance segmentation to ExecuTorch: tidak didukungInstance segmentation to TensorRT: tidak didukungInstance segmentation to OpenVINO: tidak didukungInstance segmentation to Paddle: tidak didukungInstance segmentation to MNN: tidak didukungInstance segmentation to RKNN: tidak didukungInstance segmentation to ncnn: tidak didukungInstance segmentation to TFLite: tidak didukungInstance segmentation to CoreML: tidak didukungInstance 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.

Python
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.
Gunakan berkas hasil ekspor
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.

BerkasInput (piksel)Lisensi bobot
Instance segmentation
LibrePicoSAM3.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
PicoSAM3, ETH Zurich
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 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.

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.