Update card to modular Coq library + add extracted certifier
Browse files
README.md
CHANGED
|
@@ -40,9 +40,11 @@ holds on its dense output. Under that invariant, greedy NMS is
|
|
| 40 |
provably equivalent to a sort + threshold filter on the score axis.
|
| 41 |
The deployment graph can drop NMS at zero AP cost.
|
| 42 |
|
| 43 |
-
##
|
| 44 |
|
| 45 |
-
The companion Rocq library
|
|
|
|
|
|
|
| 46 |
|
| 47 |
```
|
| 48 |
Theorem nms_collapse_onepeak :
|
|
@@ -52,8 +54,32 @@ Theorem nms_collapse_onepeak :
|
|
| 52 |
```
|
| 53 |
|
| 54 |
instantiated for box-NMS, soft-NMS, mask-NMS, heatmap local-NMS, and
|
| 55 |
-
DETR-style filtering.
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
## COCO val2017 mAP
|
| 59 |
|
|
@@ -146,9 +172,34 @@ python experiments/coco_eval.py \
|
|
| 146 |
|
| 147 |
Reports both standard and NMS-free AP on COCO val2017.
|
| 148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
## Files
|
| 150 |
|
| 151 |
- `fcos_certified.safetensors` — model weights (FCOS-ResNet50-FPN, 319 tensors).
|
|
|
|
|
|
|
| 152 |
- `README.md` — this card.
|
| 153 |
|
| 154 |
## Citation
|
|
|
|
| 40 |
provably equivalent to a sort + threshold filter on the score axis.
|
| 41 |
The deployment graph can drop NMS at zero AP cost.
|
| 42 |
|
| 43 |
+
## Theorems
|
| 44 |
|
| 45 |
+
The companion Rocq library is structured into four modules
|
| 46 |
+
(`Core.v`, `Bridge.v`, `Probability.v`, `Pipeline.v`). The keystone
|
| 47 |
+
collapse theorem in `Core.v` is
|
| 48 |
|
| 49 |
```
|
| 50 |
Theorem nms_collapse_onepeak :
|
|
|
|
| 54 |
```
|
| 55 |
|
| 56 |
instantiated for box-NMS, soft-NMS, mask-NMS, heatmap local-NMS, and
|
| 57 |
+
DETR-style filtering.
|
| 58 |
+
|
| 59 |
+
The bridge from a Lipschitz score head to `Separated` is in `Bridge.v`
|
| 60 |
+
(`lipschitz_bridge_substantive`, `SepRespectingHead`). Architectural
|
| 61 |
+
discharges of the bridge precondition appear in `Pipeline.v`:
|
| 62 |
+
|
| 63 |
+
```
|
| 64 |
+
Theorem detr_equilibrium_yields_separated (* DETR / set-prediction *)
|
| 65 |
+
Theorem anchor_stride_yields_separated (* FCOS / RetinaNet / ATSS *)
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
The training-side chain from SGD to the Separated locus is closed end
|
| 69 |
+
to end in `Pipeline.v`:
|
| 70 |
+
|
| 71 |
+
```
|
| 72 |
+
Theorem squared_hinge_sgd_pl_convergence
|
| 73 |
+
Theorem L_separated_sq_zero_iff_separated_general
|
| 74 |
+
Theorem real_training_to_collapse
|
| 75 |
+
```
|
| 76 |
+
|
| 77 |
+
PAC generalization from a finite training sample is in `Probability.v`
|
| 78 |
+
via Hoeffding's lemma (`hoeffding_lemma_symmetric`,
|
| 79 |
+
`hoeffding_iid_finite_class_one_sided`).
|
| 80 |
+
|
| 81 |
+
All proofs closed in Rocq 9 with no admits and no axioms beyond
|
| 82 |
+
Stdlib's standard `R` foundations.
|
| 83 |
|
| 84 |
## COCO val2017 mAP
|
| 85 |
|
|
|
|
| 172 |
|
| 173 |
Reports both standard and NMS-free AP on COCO val2017.
|
| 174 |
|
| 175 |
+
## Certification
|
| 176 |
+
|
| 177 |
+
`nms_cert.ml` is the OCaml extraction of the decidable certifier
|
| 178 |
+
(`Separated_check`, `Separated_dec`, `sep_certify_finite`) from the
|
| 179 |
+
Rocq library. `nms_cert_main.ml` is a small CLI driver: detections in,
|
| 180 |
+
`CERTIFIED <slack>` or `REJECTED` out. Build:
|
| 181 |
+
|
| 182 |
+
```
|
| 183 |
+
ocamlfind ocamlopt nms_cert.ml nms_cert_main.ml -o nms_cert
|
| 184 |
+
```
|
| 185 |
+
|
| 186 |
+
Usage:
|
| 187 |
+
|
| 188 |
+
```
|
| 189 |
+
./nms_cert TAU THETA SLACK < detections.txt
|
| 190 |
+
```
|
| 191 |
+
|
| 192 |
+
Each input line is whitespace-separated `score x1 y1 x2 y2` with
|
| 193 |
+
integer scores and integer bounding-box pixels. `CERTIFIED` means
|
| 194 |
+
the corresponding `Separated` predicate holds on the input list at
|
| 195 |
+
that slack — by `nms_collapse_onepeak`, NMS is then equivalent to a
|
| 196 |
+
threshold filter on the same list.
|
| 197 |
+
|
| 198 |
## Files
|
| 199 |
|
| 200 |
- `fcos_certified.safetensors` — model weights (FCOS-ResNet50-FPN, 319 tensors).
|
| 201 |
+
- `nms_cert.ml` — extracted certifier (Separated_check, Separated_dec, sep_certify_finite).
|
| 202 |
+
- `nms_cert_main.ml` — CLI driver around the extracted certifier.
|
| 203 |
- `README.md` — this card.
|
| 204 |
|
| 205 |
## Citation
|