1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! TIDE error bins.
//!
//! The six bins the TIDE paper (Bolya et al., 2020) decomposes ΔmAP
//! into. Bin assignment lives in the Week-2 [`super::rewrite`] layer;
//! this module names the bins only.
//!
//! Bin semantics, summarized for reference (the ADR-0021 oracle is the
//! authoritative definition):
//!
//! - **Cls** — the detection's best-overlapping GT (across *any* class,
//! per ADR-0023) lies in another class with IoU `>= t_f`. A
//! classification mistake on an otherwise well-localized box.
//! - **Loc** — the detection's best same-class GT has IoU in
//! `[t_b, t_f)`. Localization is off but the class is right.
//! - **Both** — same shape as Cls but with cross-class IoU in
//! `[t_b, t_f)`: the detection misses on both class and box.
//! - **Dupe** — the detection would be a TP except a higher-scoring,
//! same-class detection already claimed the GT.
//! - **Bkg** — the detection's best IoU against any GT is `< t_b`. Pure
//! background false positive.
//! - **Missed** — a GT that no detection claims at IoU `>= t_f` and that
//! none of the FP bins above explain. Counted on the GT side; the
//! four FP bins above are counted on the DT side.
/// One of the six TIDE error bins.
///
/// Carries no payload: bin assignment is the rewrite layer's job, and
/// the rewrite output is per-cell mutations rather than a per-detection
/// label. The bin set is closed by the paper; new bins (if any) require
/// an ADR.