YOLOX-Pylon-S
A YOLOX-S detector extended with one additional class, traffic cones (traffic_cone), on top of
the 80 COCO classes, for 81 classes total. We train the adaptation so the original COCO capabilities
are kept, not traded away. In practice the retained COCO score lands above the official
YOLOX-S baseline, while the added cone class scores higher than every one of the 80 original
classes.
Cones are our public demo class. The same adaptation recipe adds arbitrary custom classes such as defects, parts, or PPE to a proven detector without losing what it already knows.
Part of the YOLOX-Pylon family, S · M · L · XL. This is the fastest checkpoint in the family.
Built by Empirisch Tech GmbH (Vienna, Austria) under our Chaperone AI brand. See About Empirisch Tech below.
Results
We evaluate 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) | 42.0 |
| mAP 50:95, original 80 COCO classes only | 41.6 |
| AP50 / AP75 | 60.2 / 45.8 |
| AP small / medium / large | 24.5 / 46.1 / 53.5 |
| AR@100 | 56.3 |
| traffic_cone AP / AR | 74.5 / 77.7 |
| Inference (forward + NMS, batch 1, A100) | 1.72 ms |
Two things stand out.
- Retention is better than free. The official YOLOX-S
val2017baseline is 40.5 mAP on COCO. After adding the cone class, this checkpoint scores 41.6 on the same 80 classes, which is 1.1 points above the base we started from. We attribute that to the additional training schedule. - The added class is the best class. At 74.5 AP,
traffic_coneoutscores all 80 original classes on this checkpoint. The next best arestop sign(71.8),giraffe(69.5), andbear(69.3).
Full per-class AP (81 classes)
| class | AP | class | AP | class | AP |
|---|---|---|---|---|---|
| person | 55.632 | bicycle | 30.285 | car | 51.554 |
| motorcycle | 44.826 | airplane | 65.935 | bus | 69.032 |
| train | 61.938 | truck | 46.615 | boat | 26.122 |
| traffic light | 38.914 | fire hydrant | 69.017 | stop sign | 71.756 |
| parking meter | 47.091 | bench | 29.711 | bird | 35.062 |
| cat | 62.883 | dog | 58.504 | horse | 59.151 |
| sheep | 49.890 | cow | 54.719 | elephant | 65.400 |
| bear | 69.281 | zebra | 66.671 | giraffe | 69.549 |
| backpack | 17.542 | umbrella | 39.401 | handbag | 13.586 |
| tie | 30.176 | suitcase | 41.589 | frisbee | 62.697 |
| skis | 24.562 | snowboard | 32.899 | sports ball | 46.214 |
| kite | 44.614 | baseball bat | 28.172 | baseball glove | 38.296 |
| skateboard | 50.527 | surfboard | 36.032 | tennis racket | 45.279 |
| bottle | 38.133 | wine glass | 33.070 | cup | 39.283 |
| fork | 33.245 | knife | 16.844 | spoon | 15.319 |
| bowl | 42.512 | banana | 25.952 | apple | 18.219 |
| sandwich | 30.984 | orange | 29.727 | broccoli | 22.596 |
| carrot | 23.408 | hot dog | 32.177 | pizza | 52.505 |
| donut | 47.748 | cake | 39.168 | chair | 32.042 |
| couch | 44.568 | potted plant | 27.697 | bed | 42.693 |
| dining table | 30.536 | toilet | 65.092 | tv | 56.373 |
| laptop | 60.517 | mouse | 59.313 | remote | 23.742 |
| keyboard | 50.499 | cell phone | 33.708 | microwave | 53.325 |
| oven | 33.296 | toaster | 39.092 | sink | 39.782 |
| refrigerator | 54.511 | book | 13.306 | clock | 49.399 |
| vase | 36.430 | scissors | 28.823 | teddy bear | 44.074 |
| hair drier | 1.065 | toothbrush | 18.352 | traffic_cone | 74.516 |
Comparison with the base model
The comparison that matters is against the checkpoint we adapted from, with the same architecture,
the same parameter count, the same FLOPs, and one extra class. Baseline figures are the official
COCO val2017 numbers from the YOLOX model table.
| Model | COCO mAP 50:95 | Params | FLOPs | Custom classes | License |
|---|---|---|---|---|---|
| yolox_pylon_s (this model) | 41.6 kept + traffic_cone 74.5 |
9.0M | 26.8G | cone added, COCO kept | Apache-2.0 |
| YOLOX-S (base) | 40.5 | 9.0M | 26.8G | COCO only | Apache-2.0 |
Reading that table, the adaptation costs us nothing on the original 80 classes. The retained score comes out 1.1 points above the base, and we get an entire new class at 74.5 AP on top of that. Nothing else about the model changes. Parameters, FLOPs, and inference cost are the same as stock YOLOX-S, and Apache-2.0 carries over from the base, so the weights can be deployed commercially with no per-deployment license and no obligation to open-source derivative work.
Siblings for scale, same recipe and 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_xl | 50.4 | 50.0 | 78.8 | 6.0 ms |
We measure inference as forward plus NMS on an A100. Those times are not comparable to the V100 figures published in the official YOLOX table.
Usage
The checkpoint loads with the official YOLOX
codebase. The only change from stock YOLOX-S 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-s exp, patched to 81 classes
exp = get_exp(exp_name="yolox-s")
exp.num_classes = 81
model = exp.get_model()
ckpt = torch.load("yolox_pylon_s.pth", map_location="cpu")
model.load_state_dict(ckpt["model"])
model.eval().cuda()
# img is a 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_s.py \
-c yolox_pylon_s.pth \
--path your_image.jpg --conf 0.25 --nms 0.45 --tsize 640 --device gpu
# patch exps/default/yolox_s.py with self.num_classes = 81 first
Training
- Base. YOLOX-S (9.0M params), initialized from COCO-pretrained weights
- Data. 147k images across 81 classes, COCO
train2017plus roughly 30k traffic-cone images, 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
We built this for roadside and infrastructure perception where traffic cones matter, such as work zones, lane closures, and autonomous driving research, and as a template for class-extension on YOLOX. The S size is the fastest in the family and targets embedded boards and edge cameras.
The model detects boxes for 81 classes. It does not segment, track, or estimate distance. Accuracy on small objects is 24.5 AP, which follows the usual small-model pattern. Where small or distant cones dominate the footage, yolox_pylon_m or yolox_pylon_l is the better choice. As with any detector, we recommend validating on the target cameras before production use.
About Empirisch Tech
We are Empirisch Tech GmbH, a Vienna-based AI company, and we publish YOLOX-Pylon under our Chaperone AI brand. We run one recipe across three domains. We 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
These models power our production platforms, including NumericalAI (GPU physics simulation) and Simvera (industrial perception trained in simulation, deployed on real cameras). We self-host everything in our own Vienna datacenter and use no third- party model APIs. We are a member of the NVIDIA Inception and Microsoft for Startups programs, and our open checkpoints have passed 30,000 downloads on Hugging Face.
Custom builds. The cone class took one adaptation run. For other 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}
}