COCO kept (XL)
50.0

mAP on the original 80 classes after adaptation, from a 51.2 baseline

Cone AP (XL)
78.8

The added class outscores every one of the 80 original classes

Retention
98%

1.2 points of COCO traded for the best-scoring class in the model

Inference (XL)
6.0ms

Average forward plus NMS per frame, measured on an A100

Results by size

One evaluation protocol across the family, all four sizes measured. The s checkpoint finishes above the baseline it started from; l and x give up about 1.2 points of COCO to make room for the new class.

Checkpoint mAP 50-95 (81 cls) COCO kept (80 cls) vs YOLOX base AP50 AP75 Cone AP Cone AR Inference
yolox-pylon-s 42.0 41.6 +1.1base 40.5 60.2 45.8 74.5 77.7 1.7 ms
yolox-pylon-m 47.2 46.8 -0.1base 46.9 64.9 51.3 77.5 80.4 2.6 ms
yolox-pylon-l 48.9 48.5 -1.2base 49.7 66.0 52.7 78.6 81.4 3.7 ms
yolox-pylon-xl 50.4 50.0 -1.2base 51.2 67.3 54.4 78.8 6.0 ms

COCO val2017 at 640 input. mAP is IoU 0.50 to 0.95. The 80-class figure removes the cone class from the average to isolate retention, and the delta compares it to the official YOLOX val2017 baseline for the same size. Inference is average forward plus NMS per frame, measured on an A100. Per-class recall was not logged in the x-large run, so its cone AR is left blank rather than estimated.

Small objects (XL)
30.9 AP
The hard bucket for every detector. 24.5 at s, and it plateaus after l at 31.1
Medium objects (XL)
55.1 AP
The bulk of camera-distance targets, up from 46.1 at s
Large objects (XL)
65.4 AP
Near-field detections, strongest bucket, up from 53.5 at s

What each checkpoint sees

Two frames per model, at the same confidence threshold. On the left the added class in a road scene. On the right an untouched COCO val2017 image, because the point of the whole exercise is that the second one still works.

yolox-pylon-s 42.0 mAP · 74.5 cone AP · 1.7 ms
yolox-pylon-s detecting traffic cones in a road scene

Two cones at 0.95 and 0.96 in a wet-road scene, with car still picked up at 0.84 down the street.

yolox-pylon-s detecting original COCO classes on a val2017 image

The originals, untouched: person 0.94 and 0.82, laptop 0.89, keyboard 0.92, mouse 0.85.

yolox-pylon-m 47.2 mAP · 77.5 cone AP · 2.6 ms
yolox-pylon-m detecting traffic cones in a road scene

Cones at 0.95 and 0.96 while six traffic light boxes, a bench and a car hold at the same time.

yolox-pylon-m detecting original COCO classes on a val2017 image

A crowded val2017 frame: seven person boxes plus baseball bat 0.83 and baseball glove 0.86.

yolox-pylon-l 48.9 mAP · 78.6 cone AP · 3.7 ms
yolox-pylon-l detecting traffic cones in a road scene

Five cones from 0.83 to 0.96 across the full depth of the scene, alongside car 0.91 and bench 0.91.

yolox-pylon-l detecting original COCO classes on a val2017 image

Small and cluttered: tennis racket 0.91, sports ball 0.89, and nine chair boxes behind the player.

yolox-pylon-xl 50.4 mAP · 78.8 cone AP · 6.0 ms
yolox-pylon-xl detecting traffic cones in a road scene

The most confident cones in the family, 0.97 and 0.98, with a distant bus at 0.96 through the reflections.

yolox-pylon-xl detecting original COCO classes on a val2017 image

Dense indoor clutter: tv 0.90, two keyboard boxes, laptop 0.95, mouse 0.94, bottle 0.65 and stacked book boxes.

The added class, in context

A new class is only worth adding if it arrives at full strength. On the x-large checkpoint, traffic cones are the single best-scoring class in the model, ahead of all 80 that YOLOX was originally trained on.

traffic_cone
78.8
bear
76.4
cat
76.0
bus
75.9
fire hydrant
75.8
hair drier
22.7
book
17.9

Per-class AP at IoU 0.50 to 0.95, yolox-pylon-xl on COCO val2017 plus the cone split. The highest and lowest scoring classes are shown for scale. The cone class is top of the list on s, m and x; only on l does another class edge it, bear at 79.7 against 78.6.

Against the base, honestly

The only comparison that answers the question is the one against the model we started from. Same architecture, same parameters, same FLOPs, one extra class. So the single number that moves is the COCO score on the original 80 classes, and this is what it did.

YOLOX baseline yolox-pylon, COCO kept
COCO mAP 50-95 retained, yolox-pylon against the YOLOX baseline change 40 42 44 46 48 50 52 COCO mAP 50-95, original 80 classes S | YOLOX base 40.5 | yolox-pylon 41.6 | +1.1 S 40.5 41.6 +1.1 M | YOLOX base 46.9 | yolox-pylon 46.8 | -0.1 M 46.8 46.9 -0.1 L | YOLOX base 49.7 | yolox-pylon 48.5 | -1.2 L 48.5 49.7 -1.2 XL | YOLOX base 51.2 | yolox-pylon 50.0 | -1.2 XL 50.0 51.2 -1.2

Baselines are the official YOLOX val2017 figures. Our value removes the cone class from the average, so both ends of each line describe the same 80 classes. At s the adaptation finishes above the base it started from, which we put down to the longer training schedule. At m the difference is inside the noise. At l and x it costs 1.2 points.

Nothing else about the model moves. Parameters, FLOPs and inference cost are identical to stock YOLOX at every size, because the only architectural change is one extra class in the head, and Apache 2.0 carries over from the base.

Show the numbers
SizeYOLOX baseyolox-pylon, COCO keptChangeCone AP added
yolox-pylon-s40.541.6+1.174.5
yolox-pylon-m46.946.8-0.177.5
yolox-pylon-l49.748.5-1.278.6
yolox-pylon-xl51.250.0-1.278.8

Want this table with your classes in it?

Cones took one adaptation run. Your defect taxonomy, parts, or PPE classes follow the same recipe, and you get the eval report with the weights.

Book a technical call