PicoSAM3

O PicoSAM3 é uma CNN compacta destilada do SAM 2.1 e do SAM 3, feita para segmentação de regiões de interesse guiada por caixas em sensores como o Sony IMX500. O LibreYOLO dá suporte a ele por uma factory LibreSAM dedicada, separada da factory de detectores LibreYOLO(), e só com prompts de caixa.

Tarefas
instance segmentation
Tamanhos
pico at 96 px
Instalação
pip install libreyolo
Nível de suporte
Nível irmão, desde a v. Uma superfície de produto separada, com sua própria fábrica e seu próprio contrato.
Origem
PicoSAM3 por ETH Zurich, Apache-2.0. Artigo, código-fonte
Licenças
Código Apache-2.0, pesos Apache-2.0. Uso comercial

Instalação

O PicoSAM3 precisa do extra sam: o download de pesos do próprio LibreYOLO ainda passa pelo ferramental do Hugging Face que vem com transformers, mesmo que a inferência rode sobre uma CNN nativa, sem transformers.

bash
pip install "libreyolo[sam]"

Predição

LibreSAM(...) (ou o LibrePicoSAM3(...) específico da família) é um ponto de entrada separado de LibreYOLO(...): ele devolve um segmentador guiado por prompts em vez de um detector, porque aqui um forward pass não significa nada sem um prompt. Não existe comando de CLI libreyolo predict para esta família; use a API Python.

Prompt de caixa
from libreyolo import LibreSAM, SAMPLE_IMAGE # O PicoSAM3 tem um único tamanho, "pico", então não há outro alias.model = LibreSAM("picosam3") # bboxes= é o único prompt suportado: [x1, y1, x2, y2] ou uma lista de# caixas, uma máscara por caixa. Cada caixa é expandida em 10%, virada# quadrada, recortada à imagem e redimensionada para 96x96 antes da CNN.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])print(result.masks.xy)      # um polígono por máscaraprint(result.boxes.xyxy)    # caixa justa derivada da máscara
Codifique uma vez, envie vários prompts
from libreyolo import LibrePicoSAM3, SAMPLE_IMAGE model = LibrePicoSAM3() # set_image() guarda a imagem de origem em cache; o PicoSAM3 roda um# forward completo da CNN por caixa, então isso economiza a carga e o# decode da imagem, não um passo de encoder como nas outras famílias 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()

O PicoSAM3 aceita apenas bboxes=; passar points=, labels=, masks=, text=, multimask=True ou omitir a caixa para segmentar tudo levanta um ValueError claro em todos os casos, já que nenhum desses modos existe no modelo original. conf filtra pela qualidade de máscara predita (IoU), não por uma confiança de detecção, e precisa estar entre 0.0 e 1.0. Toda máscara carrega o id de classe 0, com nome "object". train(), val() e track() levantam NotImplementedError; use o LibreSAM2 ou o LibreSAM3 para prompts de ponto, texto, máscara ou de segmentar tudo. Veja predição para os tipos de fonte.

Variantes

Um único tamanho, pico, com entrada de ROI fixa de 96 px: o PicoSAM3 roda um forward completo da CNN por caixa em vez de codificar a imagem inteira uma vez só.

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Instance segmentationInstance segmentation to ONNX: compatívelInstance segmentation to TorchScript: incompatívelInstance segmentation to ExecuTorch: incompatívelInstance segmentation to TensorRT: incompatívelInstance segmentation to OpenVINO: incompatívelInstance segmentation to Paddle: incompatívelInstance segmentation to MNN: incompatívelInstance segmentation to RKNN: incompatívelInstance segmentation to ncnn: incompatívelInstance segmentation to TFLite: incompatívelInstance segmentation to CoreML: incompatívelInstance segmentation to Core AI: incompatível

O PicoSAM3 é a única família do nível SAM que exporta: ele leva sua CNN de ROI 96x96 crua para ONNX, roi_image -> mask_logits, sem NMS nem pós-processamento de máscara embutidos. As outras famílias SAM levantam NotImplementedError no export(), já que a separação entre encoder e decoder delas ainda não tem um contrato de exportação definido para runtime. Um grafo PicoSAM3 exportado não carrega de volta por LibreYOLO(); rode ele direto com um runtime como o onnxruntime, aplicando o mesmo pré-processamento de ROI quadrada com 10% de folga mostrado acima.

Python
from libreyolo import LibrePicoSAM3 model = LibrePicoSAM3()model.export(format="onnx", output_path="LibrePicoSAM3pico.onnx") # opset (13 por padrão) e dynamic (True por padrão, só o eixo de batch)# são os únicos argumentos de exportação que esta família aceita.
Usar o arquivo exportado
import numpy as npimport onnxruntime as ort # O PicoSAM3 exporta sua CNN de ROI 96x96 crua: roi_image -> mask_logits.# Aqui não há pré/pós-processamento do lado do LibreYOLO para reaproveitar,# porque export() não é roteado de volta por LibreYOLO() como acontece# com o checkpoint de um detector.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)

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
Instance segmentation
LibrePicoSAM3.ptapache-2.0

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
PicoSAM3, ETH Zurich
Licença original
Apache-2.0
Código-fonte original
github.com/pbonazzi/picosam3
Código do LibreYOLO
MIT
Pesos
Apache-2.0, republicado em huggingface.co/LibreYOLO
Interpretação
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.

O PicoSAM3 é destilado do SAM 2.1 e do SAM 3, usados como modelos professores. O LibreYOLO não incorpora nem redistribui o código ou os pesos de nenhum dos dois professores nesta família; só a CNN estudante compacta e seu checkpoint convertido são distribuídos.

Citação

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

Copiado do bloco de citação dos autores em github.com/pbonazzi/picosam3#readme.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.