Detection recipe catalogue
All inputs are INT8/BF16 with logical trailing HWC and singleton outer axes.
N below means num_classes; every head's tensors must match H/W and dtype.
Head list order is semantic; port numbers may be permuted. Unsupported exports
must fail preparation, not fall through to a different decoder.
| Operation ID | Recipe-derived encoding | Ordered inputs per head and geometry |
|---|---|---|
BoxDecodeYoloV7V1 | YoloV7Raw | Three combined P3/P4/P5 inputs, C=3*(N+5), sigmoid. Same shape/storage limits as YOLOv5, with the YOLOv7 anchors listed below. |
BoxDecodeYoloDflV1 | Dfl16 | Three P3/P4/P5 pairs: 64 regression channels (four 16-bin distributions) and N scores. Shared tensor recipe for compatible YOLOv8/v9/v10 exports; not a universal model-name alias. |
BoxDecodeYoloV6V1 | RawLTRB | One to three box/score pairs, C=4 and N. Same raw-distance representation as YOLO26. |
BoxDecodeYoloXV1 | YoloXRaw | Three P3/P4/P5 heads: C=4 regression, N scores and extra_input with C=1 objectness. Center=(raw+cell)*stride; size=exp(raw)*stride; score combines class and objectness. |
BoxDecodeDecodedV1 | ModelCxCyWH | One to three heads, already-decoded model-pixel centers/sizes. decoded.anchors_per_cell is 1 or 3. Coordinates C=4A; scores C=A*(N+objectness). decoded.split_extents instead uses C=2A centers and C=2*A extents in extra_input. Objectness, if present, precedes each anchor's classes. |
BoxDecodeEfficientDetV1 | EfficientDetDeltas | Five levels at strides 8,16,32,64,128. C=36 regression (nine anchors, dy/dx/dh/dw) and 9*N scores; fixed nine-anchor recipe. N≤113. |
BoxDecodeDetrV1 | NormalizedSigmoidCxCyWH | One pair: C=4 raw box logits and N+1 class logits, last class background. Requires Softmax and Stretch. Box logits receive sigmoid and model dimensions. Not already-normalized DETR boxes. N≤255. No NMS. |
BoxDecodeCenterNetV1 | CenterOffsets | One head: C=2 center offsets, N heatmap scores and C=2 extents in extra_input. Strict 8-neighbor peak, three-cell excluded border; scans all logical classes. Coordinates/extents in heatmap-cell units are projected to model pixels before image resize. No NMS. |
BoxDecodeRcnnProposalsV1 | RcnnDeltas | Five ordered levels 136,68,34,17,9 square; C=12 deltas and C=3 objectness, sigmoid, one class. Fixed anchors and strides 4,8,16,32,60. Publishes bounded proposals plus area levels. |
BoxDecodeSsdV1 | SsdDeltas | Six ordered loc/conf pairs and a required ssd_recipe, described below; Stretch required. |
For DFL/YOLOX/EfficientDet, model dimensions must match every required level
exactly, including divisibility by its stride. DFL decoding uses expected bin
index, then anchor-free cell-center distances. RawLTRB uses the explicit model
width/height divided by each head's width/height. Identity or Sigmoid scores are
admitted unless a recipe mandates Sigmoid or Softmax. No activation is guessed from input values. Fixed-activation recipes resolve
ScoreActivation::Unspecified during preparation; recipes that admit Identity
or Sigmoid require an explicit choice.
Classes are 1–256 except the combined-head, EfficientDet, DETR and SSD limits.
YOLOv7 zero-logit anchor sizes are P3 (12,16), (19,36), (40,28);
P4 (36,75), (76,55), (72,146); P5 (142,110), (192,243), (459,401).
Decoding multiplies four times these sizes by sigmoid².
EfficientDet uses these nine anchor sizes at the first level:
(32,32), (44.8,22.4), (22.4,44.8), (40.32,40.32), (56.45,28.22), (28.22,56.45), (50.8,50.8), (71.12,35.56), (35.56,71.12), scaled by 2^level.
See the common BoxDecode contract for errors, memory, outputs and qualification.
Packed BF16 multi-anchor rejection
For independent multi-anchor score heads such as EfficientDet, a packed BF16 background check inspects sortable high-byte bounds before reconstructing the complete channel vector. Only a bucket strictly below the prepared threshold bucket can reject work. Equal buckets and signed-zero buckets reach the exact reader and original per-anchor reduction. Partial channel tails examine only real channels, never poisoned padding. EfficientDet still requires channel-tile sizes divisible by 16; the optimization does not relax admission.
This is a conservative read-reduction optimization, not a new confidence
formula. Potentially accepted cells retain the same BF16 reconstruction,
activation, first-class tie handling and emitted candidate order. See
multi_anchor_scan.h (A65/boxdecode/detail/multi_anchor_scan.h) and
the boundary fixtures (A65/boxdecode/tests/background_gate_test.inc).
Dense and packed multi-anchor loops are selected once per head. The dense specialization does not carry packed-reader metadata or background-prefilter work in its inner loop; both retain the same score and candidate contracts.