Downloads · 30 days
0
AnnotateIt/edgecrafter-ecseg-optimization-experiments
edgecrafter-ecseg-optimization-experiments is a image segmentation model from AnnotateIt. Use it for the image segmentation task on the model card, and read the license before you ship it in a product. It is set up for onnxruntime. The card lists the license as apache-2.0.
<p<a href="https://huggingface.co/AnnotateIt"<img src="https://huggingface.co/spaces/AnnotateIt/README/resolve/d399a89b9d5dcf41afbe7cf29bf99c9028bc51e2/assets/annotateit-logo.png" width="48" height="48" alt="AnnotateI…
Downloads · 30 days
0
Access
Public
Updated Sep 18, 2026
Repo size
68.2 MB
Likes
2
Public
Click a slice to open those files.
.onnx62.6 MB · 92%
From the Hugging Face model README
AnnotateIt · Open the app · Models & datasets · Documentation
<!-- annotateit-brand:end -->[!WARNING] The ONNX files in this repository are experimental reproducibility artifacts. They are not recommended for production inference or annotation workflows. AnnotateIt continues to use the original FP32 ECSeg-S and ECSeg-M checkpoints.
None of the tested graph-optimized, FP16, dynamic-INT8, or static-INT8 variants improved size, browser latency, segmentation quality, and runtime stability simultaneously on ONNX Runtime Web 1.24.3 CPU/WASM.
| Model | Decision | Production artifact | FP32 warm p50 |
|---|---|---|---|
| ECSeg-S | REJECT optimized variants | Original FP32 | 1299 ms |
| ECSeg-M | REJECT optimized variants | Original FP32 | 2093 ms |
Measurements were made on an Apple M4 Max using single-thread WASM, the configuration used by the
AnnotateIt Desktop and iOS targets. Chrome was the primary engine and WebKit was used as a cross-browser
check. See results/ for the machine-readable data.
| Variant | Storage result | Browser/runtime result | Quality result |
|---|---|---|---|
| Graph optimization | 1–2% larger | Warm latency unchanged | Bit-identical |
| FP16 | 49–51% smaller | 4–5% slower in Chrome WASM | Mean mask IoU 0.979–0.988, but individual masks reached IoU 0 |
| Dynamic INT8 | 58–59% smaller | Session creation fails with ShapeInferenceError | Not runnable |
| Static INT8 | 68–71% smaller | 12–17% slower | Zero instances at the production threshold |
| Selective static INT8 | 65–68% smaller | 12–15% slower | Zero instances at the production threshold |
The principal incompatibility is the DETR-style deformable-attention segmentation head, including
GridSample, Einsum, dynamic TopK, and GatherElements. The tested graph also failed to initialize on
threaded WASM and WebGPU in this runtime version.
Only the two tested FP16 variants are retained as reproducibility artifacts. Broken INT8 variants and the larger graph-optimized variants are deliberately omitted.
| File | Size | SHA-256 | Status |
|---|---|---|---|
artifacts/ecseg-s.fp16.onnx | 21,565,662 bytes | 508c79e144fa3d9a4691970798529ae03243992aff94b0c28794b4c877c4766c | Experimental; do not deploy |
artifacts/ecseg-m.fp16.onnx | 41,031,365 bytes | e0d8865bc52e0c38f14638ece649a175ccd239dfa200274f6de38efa2e10eb90 | Experimental; do not deploy |
Both retain the production I/O contract:
images, float32 [1,3,640,640]labels int64 [1,300], boxes float32 [1,300,4], scores float32 [1,300],
masks float32 [1,300,160,160]The FP16 conversion keeps public I/O in float32 with boundary casts. The smaller file size does not translate to faster CPU/WASM execution because this target has no native FP16 compute path for the graph.
Average agreement hides the failure tail. On the held-out comparison set:
For an annotation product, occasional fully incorrect masks are more important than the favorable average. The artifacts must not be presented as drop-in optimized replacements.
artifacts/: the exact FP16 binaries used in the reported measurements and SHA256SUMS.results/: CSV and JSON size, latency, and correctness results.images/: qualitative benchmark comparisons, including the FP16 tail and collapsed static-INT8 output.report/ecseg-quantization-report.md: full methodology, limitations, tables, and verdicts.scripts/: reproducible conversion, validation, and browser-benchmark tooling.The source tooling is also maintained in the AnnotateIt repository.
The exact commands are documented in scripts/README.md. In outline:
scripts/requirements.txt.scripts/optimize.py.scripts/correctness.py.scripts/bench/bench_browser.mjs and ONNX Runtime Web 1.24.3.To verify the published binaries:
sha256sum -c artifacts/SHA256SUMS
On macOS, use shasum -a 256 against the values in artifacts/SHA256SUMS.
The ECSeg checkpoints are published under Apache-2.0. These files are numerical conversions of the immutable AnnotateIt ECSeg-S and ECSeg-M ONNX releases; they are not newly trained models. The original model repositories remain the authoritative production artifacts.