Runs a bound Ultralytics YOLO-OBB checkpoint over each Image with rotated NMS. Projects the per-frame rotated boxes as [OrientedBoundingBox] (default), [Rectangle<Double>], [DetectedClass], a UInt64 count, or the annotated Image.
Typical backends
Aerial / overhead detection where targets sit at arbitrary angles, drawn back onto the frame.
Crop the axis-aligned region of each rotated detection from a still image for a downstream per-object stage.
Caveats
- Hard constraintThe bound weights directory must contain exactly one checkpoint and it must be an oriented-detection (OBB) head; zero or multiple files, or any non-OBB head (axis-aligned detection, segmentation, pose, classification), aborts startup.
- AccuracyThe square inference resolution should match the training-time input size (the default YOLO11-OBB weights train at 1024); a mismatch silently degrades accuracy.
- I/O contractEvery output shape is a projection of the same per-frame rotated-box set — the rotated box, its enclosing axis-aligned rectangle, the class only, the count, or the frame with rotated boxes drawn — so they agree detection-for-detection; the rectangle and count shapes carry no class or orientation.
- CompatibilityThe default DOTAv1 checkpoint exposes 15 classes (ids 0..14); a different checkpoint changes the class id mapping and the class catalogue must be updated to match.
- State lifetimeAll configuration keys and the loaded weights are captured once at startup; runtime changes have no effect and require a redeploy, and a `cuda` device silently falls back to CPU when CUDA is unavailable.