Skip to content

slckl/candle_rf_detr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

candle_rf_detr

An example implementation of RF-DETR object detection and instance segmentation using the Candle ML framework in Rust.

Code has been ported based on a minimal fork of original rf-detr code, found at py/rfdetr.

Original implementation commit history available at candle_xps.

AI Disclosure

Roughly equal amounts of work done by Opus 4.5 and human hands, but everything has been read by a human at least once and deemed... good enough.

Results have been manually and automatically verified (by AP comparisons on COCO).

Quick start

Run predictions on an image using a pretrained checkpoint:

cargo run -r -p candle_rf_detr -- --which nano predict assets/sample_traffic.jpg

Run instance segmentation using a pretrained checkpoint:

cargo run -r -p candle_rf_detr -- --which seg-2-x-large predict assets/sample_traffic.jpg

Run a built-in configuration, but with custom weights:

cargo run -r -p candle_rf_detr -- --which medium --model ../py/rfdetr/export/rfdetr-seg-medium.safetensors predict assets/sample_traffic.jpg

Run on cpu:

cargo run -r -p candle_rf_detr -- --which seg-nano --cpu predict assets/coco_dinner.jpg

Python code vs rust code comparison:

# python
cd py/rfdetr && uv run predict_study.py -d output -m seg-nano -i ../../assets/coco_dinner.jpg

# rust
cargo run -r -p candle_rf_detr -- --which seg-nano predict assets/coco_dinner.jpg

Available models

The available --which cli strings are described in the comment column:

pub enum Which {
    Nano,               // nano
    Small,              // small
    Medium,             // medium
    Base,               // base
    Large,              // large
    LargeDeprecated,    // large-deprecated
    SegPreview,         // seg-preview
    SegNano,            // seg-nano
    SegSmall,           // seg-small
    SegMedium,          // seg-medium
    SegLarge,           // seg-large
    SegXLarge,          // seg-x-large
    Seg2XLarge,         // seg2-x-large
}

Comparison images

Rust first, python second.

cargo run -r -p candle_rf_detr -- --which seg-nano predict assets/coco_dinner.jpg

coco_dinner rust

cd py/rfdetr && uv run predict_study.py -d output -m seg-nano -i ../../assets/coco_dinner.jpg

coco_dinner python

cargo run -r -p candle_rf_detr -- --which large-deprecated  predict assets/sample_bike.jpg

sample_bike rust

uv run predict_study.py -d output -m large-deprecated -i ../../assets/sample_bike.jpg

sample_bike python

cargo run -r -p candle_rf_detr -- --which small predict assets/sample_traffic.jpg

sample_traffic rust

uv run predict_study.py -d output -m small -i ../../assets/sample_traffic.jpg

sample_traffic python

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors