use ndarray::array;
use warden_vision::core::Detections;
fn main() {
let predictions = array![
[100.0, 100.0, 80.0, 80.0, 0.91, 0.05],
[104.0, 98.0, 78.0, 82.0, 0.83, 0.04],
[400.0, 220.0, 60.0, 60.0, 0.10, 0.31],
];
let detections = Detections::from_ultralytics_onnx(predictions.view(), 0.25);
println!("after confidence filtering: {} boxes", detections.len());
let detections = detections.non_max_suppression(0.5, false);
println!("after NMS: {} boxes", detections.len());
let (model_size, original_width, original_height) = (640.0, 1280.0, 960.0);
let scaled = detections.scale(original_width / model_size, original_height / model_size);
for detection in scaled.iter() {
println!(
"class_id={} confidence={:.2} bbox={:?}",
detection.class_id, detection.confidence, detection.bbox
);
}
}