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.
Upstream
LingBot-Vision by Robbyant (Ant Group), Apache-2.0. Paper, source
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.

bash
pip install libreyolo

Predict

Weights download from Hugging Face on first use and are cached locally.

Python
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)
CLI
libreyolo predict model=LibreLingBotVisions-sem.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

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

FileInput (px)Weights license
semantic
LibreLingBotVisions-sem.ptapache-2.0
LibreLingBotVisionb-sem.ptapache-2.0
LibreLingBotVisionl-sem.ptapache-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.

Python (linear probe)
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)
CLI
libreyolo train model=LibreLingBotVisions-sem.pt data=my-dataset.yaml \  epochs=20 imgsz=512 batch=16
Full fine-tune
from libreyolo import LibreYOLO model = LibreYOLO("LibreLingBotVisions-sem.pt")model.train(    data="my-dataset.yaml", epochs=20, imgsz=512, batch=16,    freeze_backbone=False,)
Multi-GPU
libreyolo train model=LibreLingBotVisions-sem.pt data=my-dataset.yaml \  epochs=20 device=0,1 batch=32

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

Python
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"])
CLI
libreyolo val model=LibreLingBotVisions-sem.pt data=my-dataset.yaml

Export

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: supported. semantic to TorchScript: supported. semantic to ExecuTorch: supported. semantic to TensorRT: supported. semantic to OpenVINO: supported. semantic to Paddle: not supportedsemantic to MNN: not supportedsemantic to RKNN: not supportedsemantic to ncnn: not supportedsemantic to TFLite: not supportedsemantic to CoreML: not supportedsemantic 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreLingBotVisions-sem.pt")model.export(format="onnx", imgsz=512)model.export(format="coreai", imgsz=512)
CLI
libreyolo export model=LibreLingBotVisions-sem.pt format=onnx imgsz=512
Use the exported file
from 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.

FileInput (px)Weights license
semantic
LibreLingBotVisions-sem.ptapache-2.0
LibreLingBotVisionb-sem.ptapache-2.0
LibreLingBotVisionl-sem.ptapache-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
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.

Verified against LibreYOLO v1.5.0. Support tables, checkpoints and benchmark numbers on this page are generated from the released library and the published weights, not written by hand.