chess-corners-ml 0.6.0

ONNX-based ML refiner inference for chess-corners
Documentation

chess-corners-ml

ONNX-based ML refiner inference for the chess-corners pipeline.

This crate provides a small wrapper around tract-onnx that loads the refiner model and runs batched inference on normalized intensity patches. It is a low-level utility crate; most users should use the high-level API in the chess-corners crate instead.

Features:

  • embed-model (default) – embed the shipped ONNX model and metadata directly in the crate.

Basic usage:

use chess_corners_ml::{MlModel, ModelSource};

fn main() -> anyhow::Result<()> {
    let model = MlModel::load(ModelSource::EmbeddedDefault)?;
    let patch_size = model.patch_size();
    let patch_area = patch_size * patch_size;
    let patches = vec![0.0f32; patch_area]; // batch = 1
    let preds = model.infer_batch(&patches, 1)?;
    println!("pred = {:?}", preds[0]); // [dx, dy, conf_logit]
    Ok(())
}

Loading a custom model:

use chess_corners_ml::{MlModel, ModelSource};
use std::path::PathBuf;

let model = MlModel::load(ModelSource::Path(PathBuf::from("refiner.onnx")))?;

When loading from a path, the crate looks for a fixtures/meta.json file next to the ONNX model to determine the patch size (falls back to 21 if missing).

For the full detector pipeline, ML patch extraction, and configuration, see the chess-corners crate.