YOLOX-Pylon-M

A YOLOX-M detector extended with one additional class β€” traffic cones (traffic_cone) β€” on top of the 80 COCO classes, for 81 classes total. The adaptation is trained so the original COCO capabilities are kept, not traded away: on this checkpoint the retention cost is 0.1 mAP against the official YOLOX-M baseline, while the added cone class comes in as the single highest-scoring class of all 81.

Cones are the public demo class. The same adaptation recipe adds arbitrary custom classes (defects, parts, PPE, and similar) to a proven detector without losing what it already knows.

Part of the YOLOX-Pylon family: S Β· M Β· L Β· X (in training).

Built by Empirisch Tech GmbH (Vienna, Austria) under the Chaperone AI brand β€” see About Empirisch Tech below.

Results

Evaluated on COCO val2017 plus a held-out traffic-cone split, 81 classes in a single pass, 640Γ—640 input, IoU 0.50:0.95 unless noted.

Metric Value
mAP 50:95 (81 classes) 47.2
mAP 50:95, original 80 COCO classes only 46.8
AP50 / AP75 64.9 / 51.3
AP small / medium / large 29.0 / 51.7 / 61.4
AR@100 60.2
traffic_cone AP / AR 77.5 / 80.4
Inference (forward + NMS, batch 1, fp16) 2.56 ms

Two things worth noting:

  • Retention is essentially free. The official YOLOX-M baseline is 46.9 mAP on COCO. After adding the cone class, this checkpoint keeps 46.8 on the same 80 classes β€” a 0.1-point cost for an entire new class.
  • The added class is the best class. At 77.5 AP, traffic_cone outscores every one of the 80 original classes on this checkpoint β€” the next best are bear (76.6), stop sign (75.3), and fire hydrant (74.2).
Full per-class AP (81 classes)
class AP class AP class AP
person 59.995 bicycle 35.488 car 56.375
motorcycle 48.854 airplane 70.677 bus 73.185
train 70.605 truck 51.140 boat 31.545
traffic light 41.793 fire hydrant 74.168 stop sign 75.333
parking meter 49.909 bench 33.664 bird 40.498
cat 70.232 dog 64.979 horse 66.330
sheep 56.374 cow 60.443 elephant 70.077
bear 76.568 zebra 73.018 giraffe 72.611
backpack 19.293 umbrella 46.162 handbag 18.271
tie 38.489 suitcase 45.225 frisbee 69.493
skis 30.339 snowboard 42.471 sports ball 48.027
kite 47.608 baseball bat 34.778 baseball glove 40.530
skateboard 59.871 surfboard 42.286 tennis racket 55.113
bottle 42.121 wine glass 38.985 cup 45.900
fork 43.635 knife 24.711 spoon 23.156
bowl 45.258 banana 28.749 apple 22.998
sandwich 35.454 orange 28.775 broccoli 24.286
carrot 26.312 hot dog 43.187 pizza 56.291
donut 51.690 cake 41.412 chair 37.081
couch 50.049 potted plant 31.895 bed 47.375
dining table 33.759 toilet 65.277 tv 61.131
laptop 64.677 mouse 61.303 remote 35.245
keyboard 53.938 cell phone 38.263 microwave 66.421
oven 40.868 toaster 41.509 sink 39.656
refrigerator 61.356 book 15.539 clock 50.358
vase 40.381 scissors 37.710 teddy bear 49.235
hair drier 9.187 toothbrush 31.041 traffic_cone 77.503

Comparison with other detectors

Medium-tier detectors, published COCO val2017 figures from the official YOLOX and Ultralytics model tables.

Model COCO mAP 50:95 Params Custom classes License
yolox-pylon-m (this model) 46.8 kept + traffic_cone 77.5 25.3M yours added, COCO kept Apache-2.0
YOLOX-M (base) 46.9 25.3M COCO only Apache-2.0
YOLO11m 51.5 20.1M COCO only AGPL-3.0 / commercial
YOLO26m 53.1 20.4M COCO only AGPL-3.0 / commercial

How to read this honestly: the newest Ultralytics releases post higher raw COCO scores β€” several years of architecture progress at similar parameter counts. This model optimizes for a different job: extending a commercially permissive base with new classes while retaining its original capabilities. The relevant scores are the retention delta (0.1 against its own baseline) and the added-class AP (77.5), not the raw COCO leaderboard. The Apache-2.0 license also means the weights can be deployed commercially without a per-deployment license or an obligation to open-source derivative work, which AGPL-3.0 models require.

Siblings for scale (same recipe, same eval protocol):

Family member mAP (81 cls) COCO kept Cone AP Inference
yolox-pylon-s 42.0 41.6 74.5 1.7 ms
yolox-pylon-m 47.2 46.8 77.5 2.6 ms
yolox-pylon-l 48.9 48.5 78.6 3.7 ms
yolox-pylon-x in training β€” β€” β€”

Usage

The checkpoint loads with the official YOLOX codebase. The only change from stock YOLOX-M is num_classes = 81, with traffic_cone as class index 80.

import torch
from yolox.exp import get_exp
from yolox.utils import postprocess

# stock yolox-m exp, patched to 81 classes
exp = get_exp(exp_name="yolox-m")
exp.num_classes = 81

model = exp.get_model()
ckpt = torch.load("yolox-pylon-m.pth", map_location="cpu")
model.load_state_dict(ckpt["model"])
model.eval().cuda()

# img: float32 tensor [1, 3, 640, 640], preprocessed YOLOX-style
with torch.no_grad():
    outputs = model(img)
outputs = postprocess(outputs, num_classes=81, conf_thre=0.25, nms_thre=0.45)

COCO_CLASSES = [...]                        # standard 80-class list
CLASSES = COCO_CLASSES + ["traffic_cone"]   # index 80

Or with the repo's demo tool:

git clone https://github.com/Megvii-BaseDetection/YOLOX && cd YOLOX
python tools/demo.py image \
    -f exps/default/yolox_m.py \
    -c yolox-pylon-m.pth \
    --path your_image.jpg --conf 0.25 --nms 0.45 --tsize 640 --device gpu
# patch exps/default/yolox_m.py with self.num_classes = 81 first

Training

  • Base: YOLOX-M (25.3M params), initialized from COCO-pretrained weights
  • Data: COCO train2017 plus a labeled traffic-cone dataset, trained jointly so the original 80 classes stay in the mix during adaptation
  • Eval: COCO val2017 plus a held-out cone split, single 81-class evaluation pass
  • Input: 640Γ—640

Intended use and limitations

Intended for roadside and infrastructure perception where traffic cones matter (work zones, lane closures, autonomous driving research) and as a template for class-extension on YOLOX. The M size is the accuracy/speed sweet spot for most fixed-camera deployments. The model detects boxes for 81 classes; it does not segment, track, or estimate distance. If small or distant objects dominate your footage (29.0 AP on the small bucket), consider yolox-pylon-l; for embedded and edge boards, yolox-pylon-s runs in 1.7 ms. As with any detector, validate on your own cameras before production use.

About Empirisch Tech

YOLOX-Pylon is built by Empirisch Tech GmbH, a Vienna-based AI company, under its Chaperone AI brand. The company runs one recipe across three domains β€” adapt a proven foundation model to a specific domain, keep what the base already knows, and ship the checkpoint together with the data it was trained on:

  • Language β€” Thinking-LQ-1.0 (84% MedQA, within 4 points of GPT-4o at ~20GB) and Coder-LQ-1.0
  • Physics β€” Chaperone-Flow-1.0 (Poseidon-B extended to new CFD regimes, 1.8% wake error) and Palace-LoRA (electromagnetics solver configs)
  • Vision β€” the YOLOX-Pylon family and a road-scene anomaly segmentation pipeline

The models power the company's production platforms, including NumericalAI (GPU physics simulation) and Simvera (industrial perception trained in simulation, deployed on real cameras). Everything is self-hosted in the company's own Vienna datacenter β€” no third-party model APIs. Empirisch Tech is a member of the NVIDIA Inception and Microsoft for Startups programs, and its open checkpoints have passed 30,000 downloads on Hugging Face.

Custom builds: the cone class took one adaptation run. For your own classes, cameras, or datasets, reach out via chaperoneai.com/contact.

License

Apache-2.0, matching the YOLOX base.

Citation

@article{yolox2021,
  title={YOLOX: Exceeding YOLO Series in 2021},
  author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
  journal={arXiv preprint arXiv:2107.08430},
  year={2021}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train empirischtech/yolox-pylon-m

Paper for empirischtech/yolox-pylon-m