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_coneoutscores every one of the 80 original classes on this checkpoint β the next best arebear(76.6),stop sign(75.3), andfire 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
train2017plus a labeled traffic-cone dataset, trained jointly so the original 80 classes stay in the mix during adaptation - Eval: COCO
val2017plus 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}
}