#[repr(C)]pub struct EfMergeConfig {
pub metric: u32,
pub threshold: f32,
pub class_agnostic: c_int,
pub max_det: usize,
pub score_threshold: f32,
pub mode: u32,
}Expand description
How overlapping detections from neighbouring tiles are merged.
Fields§
§metric: u320 = IoU, 1 = Intersection-over-Smaller.
IoS is the default for a reason: an object split across a tile seam has low IoU with its own fragment but high IoS, so IoU would keep both halves as separate detections.
threshold: f32§class_agnostic: c_intNon-zero to merge across classes.
max_det: usize§score_threshold: f32§mode: u320 = keep-best (default): the highest-scoring box of each matched group is kept and the boxes it matched are dropped. 1 = union: the group becomes its enclosing union carrying the max score.
Keep-best is 0, but note that a zero-initialised struct is still
not the library default: metric defaults to 1 (IoS), so an
all-zero struct selects IoU. Fill with ef_merge_config_default.
The union measured about 0.05 AP50 worse on every frame of the Ocean
Cleanup ADIS 4K validation (TOP2-836), which is why it is opt-in.
Occupies what was this struct’s 4-byte tail pad, so adding it left every other field’s offset and the 32-byte size unchanged.