Files
usls/examples/dinov2/README.md
jamjamjon af934086bb Initial
2024-03-29 15:54:24 +08:00

1.5 KiB

This demo showcases how to use DINOv2 to compute image similarity, applicable for image-to-image retrieval tasks.

Quick Start

cargo run -r --example dinov2

Or you can manully

1.Donwload DINOv2 ONNX Model

dinov2-s14 dinov2-s14-dyn dinov2-s14-dyn-f16

dinov2-b14 dinov2-b14-dyn dinov2-b14-dyn-f16

2. Specify the ONNX model path in main.rs

let options = Options::default()
    .with_model("ONNX_PATH")    // <= modify this
    .with_profile(false);

// build index
let options = IndexOptions {
    dimensions: 384, // 768 for vitb; 384 for vits
    metric: MetricKind::L2sq,
    quantization: ScalarKind::F16,
    ..Default::default()
};

3. Then, run

cargo run -r --example dinov2

Results

Top-1 distance: 0.0 => "./examples/dinov2/images/bus.jpg"
Top-2 distance: 1.8332717 => "./examples/dinov2/images/dog.png"
Top-3 distance: 1.9672602 => "./examples/dinov2/images/cat.png"
Top-4 distance: 1.978817 => "./examples/dinov2/images/carrot.jpg"