PicoSAM3
PicoSAM3 là CNN nhỏ gọn được chưng cất từ SAM 2.1 và SAM 3, xây dựng để phân đoạn vùng quan tâm bằng prompt box trên các cảm biến như Sony IMX500. LibreYOLO hỗ trợ mô hình qua factory LibreSAM chuyên dụng, tách biệt với factory detector LibreYOLO(), và chỉ dùng prompt box.
- Tác vụ
- instance segmentation
- Kích thước
- pico at 96 px
- Cài đặt
pip install libreyolo- Bậc hỗ trợ
- Bậc song hành, từ v. Một bề mặt sản phẩm riêng với factory và contract riêng.
- Giấy phép
- Mã nguồn Apache-2.0, trọng số Apache-2.0. Sử dụng thương mại
Cài đặt
PicoSAM3 cần extra sam: thao tác tải trọng số của LibreYOLO vẫn đi qua công
cụ Hugging Face của transformers, dù suy luận chạy trên CNN native không dùng
transformers.
pip install "libreyolo[sam]"Dự đoán
LibreSAM(...) (hoặc LibrePicoSAM3(...) dành riêng cho họ) là một điểm vào
riêng, khác với LibreYOLO(...): nó trả về mô hình phân đoạn dùng prompt thay
vì detector, vì forward pass ở đây không có ý nghĩa nếu thiếu prompt. Không có
lệnh CLI libreyolo predict cho họ này; hãy dùng Python API.
from libreyolo import LibreSAM, SAMPLE_IMAGE # PicoSAM3 chỉ có một kích thước "pico", nên không cần bí danh khác.model = LibreSAM("picosam3") # bboxes= là prompt duy nhất được hỗ trợ: [x1, y1, x2, y2] hoặc danh sách# các box, mỗi box cho một mask. Mỗi box được nới rộng 10%, đưa về hình# vuông, cắt theo ảnh và đổi kích thước thành 96x96 trước khi CNN chạy.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])print(result.masks.xy) # đa giác cho mỗi maskprint(result.boxes.xyxy) # box khít suy ra từ maskfrom libreyolo import LibrePicoSAM3, SAMPLE_IMAGE model = LibrePicoSAM3() # set_image() lưu ảnh nguồn vào bộ nhớ đệm; PicoSAM3 chạy một forward# đầy đủ của CNN cho mỗi box, nên thao tác này tiết kiệm việc tải/giải mã# ảnh chứ không phải lượt chạy bộ mã hóa như với các họ SAM khác.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 chỉ chấp nhận bboxes=; truyền points=, labels=, masks=, text=,
multimask=True hoặc bỏ box để phân đoạn mọi thứ đều phát sinh ValueError rõ
ràng vì các chế độ đó không tồn tại trong mô hình thượng nguồn. conf lọc theo
chất lượng mask dự đoán (IoU), không phải độ tin cậy phát hiện, và phải nằm trong
khoảng 0.0 đến 1.0. Mọi mask mang class id 0, tên "object". train(),
val() và track() phát sinh NotImplementedError; hãy dùng LibreSAM2 hoặc
LibreSAM3 cho prompt điểm, văn bản, mask hoặc phân đoạn mọi thứ. Xem
dự đoán để biết các loại nguồn.
Các biến thể
Có một kích thước là pico với đầu vào ROI cố định 96 px: PicoSAM3 chạy một forward CNN đầy đủ cho mỗi box thay vì mã hóa toàn bộ ảnh một lần.
Xuất
| Tác vụ | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Instance segmentation | Instance segmentation to ONNX: được hỗ trợ | Instance segmentation to TorchScript: không được hỗ trợ | Instance segmentation to ExecuTorch: không được hỗ trợ | Instance segmentation to TensorRT: không được hỗ trợ | Instance segmentation to OpenVINO: không được hỗ trợ | Instance segmentation to Paddle: không được hỗ trợ | Instance segmentation to MNN: không được hỗ trợ | Instance segmentation to RKNN: không được hỗ trợ | Instance segmentation to ncnn: không được hỗ trợ | Instance segmentation to TFLite: không được hỗ trợ | Instance segmentation to CoreML: không được hỗ trợ | Instance segmentation to Core AI: không được hỗ trợ |
PicoSAM3 là họ duy nhất trong tầng SAM hỗ trợ xuất: mô hình đưa CNN ROI 96x96 thô
sang ONNX, roi_image -> mask_logits, không nhúng NMS hay hậu xử lý mask. Các họ
SAM khác phát sinh NotImplementedError trên export() vì phần tách
encoder/decoder của chúng chưa có giao diện xuất runtime được định nghĩa. Đồ thị
PicoSAM3 đã xuất không tải lại qua LibreYOLO(); hãy chạy trực tiếp bằng runtime
như onnxruntime, áp dụng cùng bước tiền xử lý ROI vuông có padding 10% nêu trên.
from libreyolo import LibrePicoSAM3 model = LibrePicoSAM3()model.export(format="onnx", output_path="LibrePicoSAM3pico.onnx") # opset (mặc định 13) và dynamic (mặc định True, chỉ trục batch) là# các đối số xuất duy nhất họ này chấp nhận.import numpy as npimport onnxruntime as ort # PicoSAM3 xuất CNN ROI 96x96 thô: roi_image -> mask_logits.# Không có bước tiền/hậu xử lý phía LibreYOLO để dùng lại ở đây vì# export() không được định tuyến trở lại qua LibreYOLO() như một# checkpoint 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)Checkpoint
Mọi tệp trọng số đã công bố cho họ này.
| Tệp | Đầu vào (px) | Giấy phép trọng số |
|---|---|---|
| Instance segmentation | ||
| LibrePicoSAM3.pt | apache-2.0 | |
Mọi tệp ở trên hiện đều có trong tổ chức LibreYOLO và được tải xuống trong lần sử dụng đầu tiên.
Giấy phép
Hãy kiểm tra giấy phép trong repo Hugging Face của trọng số cụ thể mà bạn tải xuống. Mỗi checkpoint trong tổ chức LibreYOLO đều có giấy phép riêng và giấy phép có thể khác nhau trong cùng một họ. Repo đó là nguồn có thẩm quyền; phần tóm tắt dưới đây mô tả các điều khoản áp dụng khi trang này được kiểm chứng lần gần nhất.
Đây là phần mô tả các giấy phép liên quan, không phải tư vấn pháp lý. Nếu câu trả lời có ý nghĩa về mặt thương mại, hãy tự đọc các giấy phép và tham khảo cố vấn của riêng bạn.
- Công trình gốc
- PicoSAM3, ETH Zurich
- Giấy phép thượng nguồn
- Apache-2.0
- Nguồn thượng nguồn
- github.com/pbonazzi/picosam3
- Mã nguồn LibreYOLO
- MIT
- Trọng số
- Apache-2.0, được phát hành lại tại huggingface.co/LibreYOLO
- Diễn giải
- 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 được chưng cất từ SAM 2.1 và SAM 3 đóng vai trò mô hình giáo viên. LibreYOLO không đóng gói hay phân phối lại mã hoặc trọng số của hai mô hình giáo viên trong họ này; chỉ CNN học sinh nhỏ gọn và checkpoint đã chuyển đổi được phân phối.
Trích dẫn
@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}
}Được sao chép từ khối trích dẫn của tác giả tại github.com/pbonazzi/picosam3#readme.