LingBot-Vision
LingBot-Vision is a family of self-supervised vision transformer backbones trained with boundary-centric masked modeling for dense spatial perception, released by Robbyant. LibreYOLO pairs the backbone with a dense head and supports it for one task, semantic segmentation.
- Tasks
- semantic
- Sizes
- Install
pip install libreyolo- Support tier
- Supported, since v. Supporting trainables: kept green in CI, features land opportunistically.
- Licenses
- Code Apache-2.0, weights Apache-2.0. Commercial use
Install
LingBot-Vision needs no optional extra. Everything it imports is in the base install.
pip install libreyoloPredict
Weights download from Hugging Face on first use and are cached locally.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreLingBotVisions-sem.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape, mask.classes)libreyolo predict model=LibreLingBotVisions-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.semantic_mask carries the dense class map: .data is an (H, W)
tensor of class IDs on the original image size, and .classes lists the class
IDs actually present. result.boxes is None, since there are no
per-instance detections. conf and iou are accepted for API parity but do
not change the output, since the model returns one class per pixel rather than
detections to filter. See prediction for sources, streaming
and result handling.
Variants
Three published sizes, s, b and l, distilled from a 1.1B-parameter ViT-g/16
teacher. The teacher itself, size g, loads and fine-tunes in LibreYOLO but
LibreYOLO does not host a g checkpoint of its own.
| File | Input (px) | Weights license |
|---|---|---|
| semantic | ||
| LibreLingBotVisions-sem.pt | apache-2.0 | |
| LibreLingBotVisionb-sem.pt | apache-2.0 | |
| LibreLingBotVisionl-sem.pt | apache-2.0 | |
Every file above exists in the LibreYOLO org today and downloads on first use.
Train
train() fine-tunes a published checkpoint. The default recipe is the
upstream report's linear probe: the ViT backbone is frozen and only the 1x1
dense head trains, matching how the LibreYOLO-hosted weights above were
produced. Pass freeze_backbone=False to fine-tune the whole network instead,
and expect to lower lr0 accordingly.
from libreyolo import LibreYOLO # Backbone frozen by default, matching the upstream evaluation# protocol: only the 1x1 dense head trains.model = LibreYOLO("LibreLingBotVisions-sem.pt")model.train(data="my-dataset.yaml", epochs=20, imgsz=512, batch=16)libreyolo train model=LibreLingBotVisions-sem.pt data=my-dataset.yaml \ epochs=20 imgsz=512 batch=16from libreyolo import LibreYOLO model = LibreYOLO("LibreLingBotVisions-sem.pt")model.train( data="my-dataset.yaml", epochs=20, imgsz=512, batch=16, freeze_backbone=False,)libreyolo train model=LibreLingBotVisions-sem.pt data=my-dataset.yaml \ epochs=20 device=0,1 batch=32See training for datasets, augmentation, multi-GPU and loggers.
Validate
val() returns a dictionary of metrics/ keys: mIoU and pixel accuracy,
measured against any dataset in the format you trained on.
from libreyolo import LibreYOLO model = LibreYOLO("LibreLingBotVisions-sem.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mIoU"])print(metrics["metrics/pixel_accuracy"])libreyolo val model=LibreLingBotVisions-sem.pt data=my-dataset.yamlExport
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| semantic | semantic to ONNX: supported. | semantic to TorchScript: supported. | semantic to ExecuTorch: supported. | semantic to TensorRT: supported. | semantic to OpenVINO: supported. | semantic to Paddle: not supported | semantic to MNN: not supported | semantic to RKNN: not supported | semantic to ncnn: not supported | semantic to TFLite: not supported | semantic to CoreML: not supported | semantic to Core AI: supported. |
An exported artifact loads back through LibreYOLO() on its file suffix, so a
.onnx or .engine file behaves like a checkpoint and returns the same
Results. Export lists the arguments every format accepts.
from libreyolo import LibreYOLO model = LibreYOLO("LibreLingBotVisions-sem.pt")model.export(format="onnx", imgsz=512)model.export(format="coreai", imgsz=512)libreyolo export model=LibreLingBotVisions-sem.pt format=onnx imgsz=512from libreyolo import LibreYOLO, SAMPLE_IMAGE # The factory routes on the file suffix, so an exported artifact loads# like any checkpoint and returns the same Results object.model = LibreYOLO("LibreLingBotVisions-sem.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)Checkpoints
Every published weight file for this family.
| File | Input (px) | Weights license |
|---|---|---|
| semantic | ||
| LibreLingBotVisions-sem.pt | apache-2.0 | |
| LibreLingBotVisionb-sem.pt | apache-2.0 | |
| LibreLingBotVisionl-sem.pt | apache-2.0 | |
Every file above exists in the LibreYOLO org today and downloads on first use.
Licensing
Check the license on the Hugging Face repository of the specific weights you download. Every checkpoint in the LibreYOLO org carries one, and they are not always the same across a family. That repository is the authoritative source; the summary below describes what applied when this page was last verified.
This is a description of the licenses involved, not legal advice. If the answer matters commercially, read the licenses yourself and take your own counsel.
- Original work
- LingBot-Vision, Robbyant (Ant Group)
- Upstream license
- Apache-2.0
- Upstream source
- github.com/robbyant/lingbot-vision
- LibreYOLO code
- MIT
- Weights
- Apache-2.0, republished at huggingface.co/LibreYOLO
- Interpretation
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. The LibreYOLO-hosted checkpoints combine Robbyant's Apache-2.0 backbone weights with a dense segmentation head LibreYOLO trained itself, so the whole checkpoint file carries the same permissive terms end to end.
The upstream release documents its ViT as built on the DINOv2/DINOv3 architecture published by Meta AI. Robbyant distributes their implementation under Apache-2.0, and this LibreYOLO port was made only from the Robbyant repository, never from Meta's DINOv2 or DINOv3 code.
Citation
@article{lingbot-vision2026,
title={Vision Pretraining for Dense Spatial Perception},
author={Fu, Zelin and Tan, Bin and Sun, Changjiang and Liu, Shaohui and Zheng, Kecheng and Xu, Yinghao and Zhu, Xing and Shen, Yujun and Xue, Nan},
journal={arXiv preprint arXiv:2607.05247},
year={2026}
}Copied from the authors' citation block at github.com/robbyant/lingbot-vision#-citation.