PicoSAM3

PicoSAM3 to kompaktowa sieć CNN destylowana z SAM 2.1 i SAM 3, zbudowana do segmentacji obszaru zainteresowania sterowanej ramką na czujnikach takich jak Sony IMX500. LibreYOLO obsługuje ją przez osobną fabrykę LibreSAM, niezależną od fabryki detektorów LibreYOLO(), wyłącznie z promptami ramkowymi.

Zadania
instance segmentation
Rozmiary
pico at 96 px
Instalacja
pip install libreyolo
Poziom obsługi
Poziom siostrzany, od wersji v. Osobna część produktu z własną fabryką i kontraktem.
Projekt źródłowy
PicoSAM3, autorzy: ETH Zurich, licencja: Apache-2.0. Publikacja, kod źródłowy
Licencje
Kod: Apache-2.0, wagi: Apache-2.0. Użycie komercyjne

Instalacja

PicoSAM3 wymaga dodatku sam. Własne pobieranie wag LibreYOLO nadal korzysta z narzędzi Hugging Face w transformers, mimo że inferencja działa na natywnej sieci CNN niezależnej od transformers.

bash
pip install "libreyolo[sam]"

Predykcja

LibreSAM(...) (lub właściwy dla tej rodziny LibrePicoSAM3(...)) jest osobnym punktem wejścia niż LibreYOLO(...). Zwraca segmenter sterowany promptami, a nie detektor, ponieważ przebieg w przód nie ma tu znaczenia bez promptu. Dla tej rodziny nie istnieje polecenie CLI libreyolo predict. Należy użyć API Pythona.

Prompt ramkowy
from libreyolo import LibreSAM, SAMPLE_IMAGE # PicoSAM3 ma jeden rozmiar, "pico", dlatego nie jest potrzebny inny alias.model = LibreSAM("picosam3") # bboxes= jest jedynym obsługiwanym promptem: [x1, y1, x2, y2] lub lista# ramek, jedna maska na ramkę. Każda ramka jest rozszerzana o 10%, zamieniana# na kwadrat, przycinana do obrazu i skalowana do 96x96 przed uruchomieniem CNN.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])print(result.masks.xy)      # wielokąt dla każdej maskiprint(result.boxes.xyxy)    # ciasna ramka wyznaczona z maski
Jedno kodowanie, wiele promptów
from libreyolo import LibrePicoSAM3, SAMPLE_IMAGE model = LibrePicoSAM3() # set_image() zapisuje obraz źródłowy w pamięci podręcznej. PicoSAM3 wykonuje pełny# przebieg CNN dla każdej ramki, więc oszczędza to wczytywanie/dekodowanie obrazu,# a nie przebieg enkodera jak w pozostałych rodzinach SAM.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 przyjmuje wyłącznie bboxes=. Przekazanie points=, labels=, masks=, text=, multimask=True albo pominięcie ramki, aby segmentować wszystko, zgłasza czytelny ValueError, ponieważ żaden z tych trybów nie istnieje w modelu źródłowym. conf filtruje według przewidywanej jakości maski (IoU), a nie pewności detekcji, i musi mieścić się między 0.0 a 1.0. Każda maska ma identyfikator klasy 0 o nazwie "object". Wywołania train(), val() i track() zgłaszają NotImplementedError. Do promptów punktowych, tekstowych, maskowych lub segmentujących wszystko należy użyć LibreSAM2 albo LibreSAM3. Informacje o typach źródeł zawiera strona predykcji.

Warianty

Dostępny jest jeden rozmiar, pico, ze stałym wejściem ROI 96 px. PicoSAM3 wykonuje jeden pełny przebieg CNN dla każdej ramki zamiast jednorazowo kodować cały obraz.

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Instance segmentationInstance segmentation to ONNX: obsługiwaneInstance segmentation to TorchScript: brak obsługiInstance segmentation to ExecuTorch: brak obsługiInstance segmentation to TensorRT: brak obsługiInstance segmentation to OpenVINO: brak obsługiInstance segmentation to Paddle: brak obsługiInstance segmentation to MNN: brak obsługiInstance segmentation to RKNN: brak obsługiInstance segmentation to ncnn: brak obsługiInstance segmentation to TFLite: brak obsługiInstance segmentation to CoreML: brak obsługiInstance segmentation to Core AI: brak obsługi

PicoSAM3 jest jedyną rodziną poziomu SAM, którą można eksportować. Udostępnia surową sieć CNN ROI 96x96 w ONNX, roi_image -> mask_logits, bez NMS ani przetwarzania końcowego maski wbudowanego w graf. Pozostałe rodziny SAM zgłaszają NotImplementedError dla export(), ponieważ ich podział na enkoder i dekoder nie ma jeszcze zdefiniowanego kontraktu eksportu środowiska uruchomieniowego. Wyeksportowany graf PicoSAM3 nie jest ponownie wczytywany przez LibreYOLO(). Należy uruchomić go bezpośrednio w środowisku takim jak onnxruntime, stosując to samo przetwarzanie wstępne kwadratowego ROI z dopełnieniem 10%, które pokazano powyżej.

Python
from libreyolo import LibrePicoSAM3 model = LibrePicoSAM3()model.export(format="onnx", output_path="LibrePicoSAM3pico.onnx") # opset (domyślnie 13) i dynamic (domyślnie True, tylko oś batcha) są# jedynymi argumentami eksportu przyjmowanymi przez tę rodzinę.
Użycie wyeksportowanego pliku
import numpy as npimport onnxruntime as ort # PicoSAM3 eksportuje surową sieć CNN ROI 96x96: roi_image -> mask_logits.# Nie ma tu przetwarzania wstępnego/końcowego LibreYOLO do ponownego użycia,# ponieważ export() nie kieruje wyniku z powrotem przez LibreYOLO() tak jak# checkpoint detektora.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)

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
Instance segmentation
LibrePicoSAM3.ptapache-2.0

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
PicoSAM3, ETH Zurich
Licencja projektu źródłowego
Apache-2.0
Kod źródłowy projektu
github.com/pbonazzi/picosam3
Kod LibreYOLO
MIT
Wagi
Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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 jest destylowany z modeli nauczycieli SAM 2.1 i SAM 3. LibreYOLO nie dołącza ani nie redystrybuuje kodu lub wag żadnego z nauczycieli w tej rodzinie. Udostępniana jest tylko kompaktowa sieć CNN ucznia i jej przekonwertowany checkpoint.

Cytowanie

@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}
}

Skopiowano z bloku cytowania autorów w github.com/pbonazzi/picosam3#readme.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.