mudler commited on
Commit
375b643
·
verified ·
1 Parent(s): 6137e1f

Add/update model card for seg-medium

Browse files
Files changed (1) hide show
  1. README.md +80 -0
README.md ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: rfdetr.cpp
4
+ tags:
5
+ - object-detection
6
+ - rfdetr
7
+ - gguf
8
+ - ggml
9
+ - cpp-inference
10
+ - image-segmentation
11
+ - instance-segmentation
12
+ pipeline_tag: image-segmentation
13
+ base_model: roboflow/rfdetr
14
+ ---
15
+
16
+ # RF-DETR Seg-Medium — GGUF for rfdetr.cpp
17
+
18
+ GGUF-format weights of [Roboflow RF-DETR Seg-Medium](https://github.com/roboflow/rf-detr) (segmentation variant) for use with [rfdetr.cpp](https://github.com/mudler/rf-detr.cpp), a C++/ggml implementation that matches the upstream PyTorch model on CPU.
19
+
20
+ This repo contains all four standard quantizations of this variant. **F16 is the recommended default** — same accuracy as F32, 1.85× smaller, and typically the fastest on modern CPUs thanks to ggml's F32×F16 matmul fast path.
21
+
22
+ ## Available files
23
+
24
+ | File | Quant | Size (MB) | Recall @ IoU 0.5 | Recall @ IoU 0.95 | Mean mask IoU | Pixel agreement | Latency (median ms, T=8) |
25
+ |---|---|---:|---:|---:|---:|---:|---:|
26
+ | `rfdetr-seg-medium-f32.gguf` | F32 | 133.7 | 0.9711 | 0.9582 | 0.9807 | 0.9996 | 199.5 |
27
+ | `rfdetr-seg-medium-f16.gguf` ← **recommended** | F16 | 71.5 | 1.0000 | 0.9870 | 0.9813 | 0.9996 | 208.5 |
28
+ | `rfdetr-seg-medium-q8_0.gguf` | Q8_0 | 42.4 | 0.9870 | 0.9536 | 0.9810 | 0.9996 | 218.5 |
29
+ | `rfdetr-seg-medium-q4_K.gguf` | Q4_K | 33.6 | 0.9426 | 0.6468 | 0.9658 | 0.9989 | 244.2 |
30
+
31
+ All accuracy numbers are computed against the upstream PyTorch reference (`rfdetr 1.7.0`) on 7 COCO val2017 images at threshold 0.5. Latency is measured with `rfdetr-cli bench` (8 iters + 3 warmup) at T=8 threads on a single AMD Ryzen 9 9950X3D image (`coco_kitchen.jpg`, 640x427).
32
+
33
+ ## Architecture
34
+
35
+ - Backbone: DINOv2-small
36
+ - Input resolution: 432×432
37
+ - Patch size: 12
38
+ - Decoder layers: 5
39
+ - Object queries: 200
40
+ - Task: instance segmentation (boxes + per-query masks)
41
+ - Mask resolution: 108×108 per query (image_size / 4)
42
+
43
+ ## Quantization notes
44
+
45
+ - **F32** — full-precision reference, ~120 MB. Bit-exact PyTorch parity.
46
+ - **F16** — matmul-multiplicand weights only; LayerNorms, conv kernels, embeddings, biases, and layer-scale gammas stay F32. Lossless on this model and consistently the fastest variant on CPU.
47
+ - **Q8_0** — best size/accuracy tradeoff under F16; ~3× smaller than F32 with effectively identical detections.
48
+ - **Q4_K** — smallest practical quant. Rows with `ne[0] % 256 != 0` (the decoder's 128-dim MLP halves, 60 tensors) silently fall back to Q8_0 per ggml's quantizer logic — net compression is still ~3.8× over F32. Use only when the size budget is tight; expect a measurable Recall@0.95 drop relative to F16/Q8_0 (see file table above).
49
+
50
+ ## Usage
51
+
52
+ ```bash
53
+ # 1. Clone + build rfdetr.cpp
54
+ git clone https://github.com/mudler/rf-detr.cpp
55
+ cd rt-detr.cpp
56
+ cmake -B build -DRFDETR_BUILD_CLI=ON && cmake --build build -j
57
+
58
+ # 2. Download a quant (F16 recommended)
59
+ hf download mudler/rfdetr-cpp-seg-medium rfdetr-seg-medium-f16.gguf --local-dir models/
60
+
61
+ # 3. Run segmentation (writes per-detection PNG masks to /tmp/seg_masks/)
62
+ build/bin/rfdetr-cli detect \
63
+ --model models/rfdetr-seg-medium-f16.gguf \
64
+ --input my_image.jpg \
65
+ --threshold 0.5 --threads 8 \
66
+ --masks /tmp/seg_masks \
67
+ --output detections.json
68
+ ```
69
+
70
+ ## Accuracy methodology
71
+
72
+ All accuracy metrics are computed against the upstream PyTorch reference (rfdetr 1.7.0) on 7 COCO val2017 images at threshold 0.5. Each detection match uses greedy Hungarian-style assignment by IoU (≥ 0.5 lenient, ≥ 0.95 strict) with class equality required.
73
+
74
+ Mask metrics are pixel-wise IoU between binary masks at the **original** image resolution (not the network's working resolution), after sigmoid + bicubic upsample of the per-query mask logits. **Pixel agreement** is the fraction of pixels where the C++ and PyTorch binary masks match.
75
+
76
+ See [BENCHMARK.md](https://github.com/mudler/rf-detr.cpp/blob/main/BENCHMARK.md) and [`benchmarks/results/accuracy_sweep.json`](https://github.com/mudler/rf-detr.cpp/blob/main/benchmarks/results/accuracy_sweep.json) for the full sweep across all 32 (variant × quant) cells.
77
+
78
+ ## License
79
+
80
+ Apache-2.0 — matches the upstream [rfdetr](https://github.com/roboflow/rf-detr) license.