pub struct Segmentation {
pub xmin: f32,
pub ymin: f32,
pub xmax: f32,
pub ymax: f32,
pub segmentation: TensorDyn,
}Expand description
A segmentation result paired with the normalized bounding box that
describes the spatial extent of segmentation.
Segmentation bounds are for rendering masks, and DetectBox.bbox for
IoU evaluation, drawing detection rectangles, etc. The mask region always
encloses the detection bbox.
The xmin/ymin/xmax/ymax fields describe the mask region — the
proto-grid-aligned crop the segmentation tensor was sliced from. They are
quantized to the proto grid step (1/proto_height and 1/proto_width,
typically 1/160), so the region’s origin floors and its extent ceils
relative to the companion DetectBox’s bbox. The detection bbox itself
stays un-snapped (see EDGEAI-1304).
Fields§
§xmin: f32Left-most normalized coordinate of the mask region (proto-grid
floor of the companion DetectBox.bbox.xmin).
ymin: f32Top-most normalized coordinate of the mask region (proto-grid
floor of the companion DetectBox.bbox.ymin).
xmax: f32Right-most normalized coordinate of the mask region (proto-grid
ceil of the companion DetectBox.bbox.xmax).
ymax: f32Bottom-most normalized coordinate of the mask region (proto-grid
ceil of the companion DetectBox.bbox.ymax).
segmentation: TensorDynMask data, shape [H, W, C], dtype U8.
For instance segmentation (e.g. YOLO): C=1 — per-instance mask with
continuous sigmoid confidence values quantized to u8 (0 = background,
255 = full confidence). Renderers typically threshold at 128 (sigmoid
0.5) or use smooth interpolation for anti-aliased edges.
For semantic segmentation (e.g. ModelPack): C=num_classes — per-pixel
class scores where the object class is the argmax index.
A TensorDyn rather than an ndarray::Array3<u8>, matching
ProtoData. That is what keeps this crate free of an ndarray
dependency; callers who want ndarray ergonomics already have
TensorMapTrait::view behind the
existing optional ndarray feature.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Segmentation
impl !UnwindSafe for Segmentation
impl Freeze for Segmentation
impl Send for Segmentation
impl Sync for Segmentation
impl Unpin for Segmentation
impl UnsafeUnpin for Segmentation
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more