pub struct PerClassTable {Show 13 fields
pub category_id: Vec<i64>,
pub category_name: Vec<String>,
pub ap: Vec<Option<f64>>,
pub ap50: Vec<Option<f64>>,
pub ap75: Vec<Option<f64>>,
pub ap_s: Vec<Option<f64>>,
pub ap_m: Vec<Option<f64>>,
pub ap_l: Vec<Option<f64>>,
pub ar_max_1: Vec<Option<f64>>,
pub ar_max_10: Vec<Option<f64>>,
pub ar_max_100: Vec<Option<f64>>,
pub n_gt: Vec<u32>,
pub n_dt: Vec<u32>,
}Expand description
One row per category — mirrors summarize_detection’s 12-stat
layout, plus support counts and labels.
Numeric columns are Option<f64>; the -1.0 sentinel (quirk
C5) maps to None here so any non-Arrow consumer sees an
honest type. Schema is pinned (see Arrow golden in
tests/python/tables/schemas/per_class.json).
Fields§
§category_id: Vec<i64>COCO category id, or COLLAPSED_CATEGORY_SENTINEL if the
upstream evaluator ran with use_cats=false.
category_name: Vec<String>Human-readable category name from
crate::dataset::CategoryMeta::name. The single-row collapsed
case carries "(all categories)".
ap: Vec<Option<f64>>AP@.50:.95, area=all, maxDets=largest. None for cells with no
data (quirk C5).
ap50: Vec<Option<f64>>AP@.50, area=all, maxDets=largest.
ap75: Vec<Option<f64>>AP@.75, area=all, maxDets=largest.
ap_s: Vec<Option<f64>>AP@.50:.95, area=small, maxDets=largest.
ap_m: Vec<Option<f64>>AP@.50:.95, area=medium, maxDets=largest.
ap_l: Vec<Option<f64>>AP@.50:.95, area=large, maxDets=largest.
ar_max_1: Vec<Option<f64>>AR@.50:.95, area=all, maxDets=1.
ar_max_10: Vec<Option<f64>>AR@.50:.95, area=all, maxDets=10.
ar_max_100: Vec<Option<f64>>AR@.50:.95, area=all, maxDets=100.
n_gt: Vec<u32>Non-ignore GT count for this category, summed across images at
area=all. Inferred from Accumulated’s K-axis size and the
dataset’s annotation list.
n_dt: Vec<u32>DT count for this category, summed across images at area=all. Inferred from the dataset’s detection list (when threaded through) or from upstream EvalGrid cells (when called from streaming).
Implementations§
Trait Implementations§
Source§impl Clone for PerClassTable
impl Clone for PerClassTable
Source§fn clone(&self) -> PerClassTable
fn clone(&self) -> PerClassTable
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PerClassTable
impl RefUnwindSafe for PerClassTable
impl Send for PerClassTable
impl Sync for PerClassTable
impl Unpin for PerClassTable
impl UnsafeUnpin for PerClassTable
impl UnwindSafe for PerClassTable
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.