Mark superseded by muybridge-video-v4_4
Browse files
README.md
CHANGED
|
@@ -1,145 +1,7 @@
|
|
| 1 |
---
|
| 2 |
-
language:
|
| 3 |
-
- en
|
| 4 |
license: apache-2.0
|
| 5 |
-
library_name: dotcheck
|
| 6 |
-
pipeline_tag: image-classification
|
| 7 |
-
tags:
|
| 8 |
-
- image-classification
|
| 9 |
-
- video
|
| 10 |
-
- ai-detection
|
| 11 |
-
- synthetic-media
|
| 12 |
-
- siglip2
|
| 13 |
-
- apache-2.0
|
| 14 |
-
- dotcheck
|
| 15 |
-
- muybridge
|
| 16 |
-
base_model: google/siglip2-base-patch16-224
|
| 17 |
-
base_model_relation: adapter
|
| 18 |
-
model-index:
|
| 19 |
-
- name: Muybridge (inhouse-video@2)
|
| 20 |
-
results:
|
| 21 |
-
- task:
|
| 22 |
-
type: image-classification
|
| 23 |
-
name: binary AI detection (video bag p90)
|
| 24 |
-
dataset:
|
| 25 |
-
name: DotCheck video holdout (bag p90; Wan2.2 AI)
|
| 26 |
-
type: other
|
| 27 |
-
split: holdout
|
| 28 |
-
metrics:
|
| 29 |
-
- name: mean_P_AI_real_bag_p90
|
| 30 |
-
type: mean_score_real_bag_p90
|
| 31 |
-
value: 0.004
|
| 32 |
-
- name: mean_P_AI_ai_bag_p90
|
| 33 |
-
type: mean_score_ai_bag_p90
|
| 34 |
-
value: 0.940
|
| 35 |
-
- name: balanced_accuracy_bag_p90
|
| 36 |
-
type: balanced_accuracy
|
| 37 |
-
value: 0.985
|
| 38 |
-
source:
|
| 39 |
-
name: video_gates_video_v2 / Data.json
|
| 40 |
-
url: https://dotcheck.ai/docs
|
| 41 |
---
|
| 42 |
|
| 43 |
-
#
|
| 44 |
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
This repo is the frame head only. Product clip scores that fuse frames with audio use a private seating path (Covenant: Muybridge + Helmholtz). Do not read the bag-p90 table as a fused eyes-and-ears claim.
|
| 48 |
-
|
| 49 |
-
| Field | Value |
|
| 50 |
-
|-------|--------|
|
| 51 |
-
| Hub id | `DotCheck/muybridge-video-v2` |
|
| 52 |
-
| Wire id | `inhouse-video@2` |
|
| 53 |
-
| Label | Muybridge |
|
| 54 |
-
| Artifact | `siglip2_base_patch16_224_linear_head_video_v2.npz` |
|
| 55 |
-
| Backbone | [`google/siglip2-base-patch16-224`](https://huggingface.co/google/siglip2-base-patch16-224) (Apache-2.0) |
|
| 56 |
-
| Profile | `video` (same tower family as Vermeer; **distinct** head) |
|
| 57 |
-
| Frame contract | **VS1** holdout / product **VS3** densify: edge-aware frames |
|
| 58 |
-
| Aggregate | **bag p90** of frame scores (public claim for this head) |
|
| 59 |
-
| Output (frame) | `p ∈ [0,1]` |
|
| 60 |
-
| Serve | CPU FastAPI image path with `profile=video`; Express samples frames |
|
| 61 |
-
|
| 62 |
-
## Model description
|
| 63 |
-
|
| 64 |
-
Frozen SigLIP2-base plus a video-trained linear head. Not a spatiotemporal video transformer. Audio is a separate open head ([Helmholtz](https://huggingface.co/DotCheck/helmholtz-audio-v3)).
|
| 65 |
-
|
| 66 |
-
**In this repo:** `README.md`, `LICENSE`, `NOTICE`, `CITATION.cff`, and the `.npz` head.
|
| 67 |
-
|
| 68 |
-
## Architecture
|
| 69 |
-
|
| 70 |
-
```text
|
| 71 |
-
video container
|
| 72 |
-
→ sample 3 frames (VS1 timestamps)
|
| 73 |
-
→ per-frame: resize ≤256 → SigLIP2 224 → frozen emb → video head
|
| 74 |
-
→ bag aggregate: p90({p_frame})
|
| 75 |
-
```
|
| 76 |
-
|
| 77 |
-
Missing video head at serve → `profile=video` returns **503** (no silent image-head fallback).
|
| 78 |
-
|
| 79 |
-
## Inference
|
| 80 |
-
|
| 81 |
-
Open weights: the live `.npz` head (Apache-2.0) with the frozen backbone above. Not `AutoModel.from_pretrained("DotCheck/…")`.
|
| 82 |
-
|
| 83 |
-
Product scoring: [Check](https://dotcheck.ai/check) or [Pro API](https://dotcheck.ai/api).
|
| 84 |
-
|
| 85 |
-
```bash
|
| 86 |
-
curl -sS -X POST "https://dotcheck-server-c221c1f32c68.herokuapp.com/analyze-video" \
|
| 87 |
-
-H "Authorization: Bearer dc_YOUR_KEY" \
|
| 88 |
-
-F "file=@clip.mp4"
|
| 89 |
-
```
|
| 90 |
-
|
| 91 |
-
## Training data
|
| 92 |
-
|
| 93 |
-
| Split | Content |
|
| 94 |
-
|-------|---------|
|
| 95 |
-
| Fit AI | CogVideoX-2b + Wan2.1 (Apache-2.0), VS1 3-frame bags |
|
| 96 |
-
| Holdout AI | **Wan2.2-TI2V-5B Diffusers** only (`FIT_MIX_HOLDOUT=0`) |
|
| 97 |
-
| Real | Commons VS1 ffmpeg + ~20% thumb surface + still mix (`STILL_FRAC=0.20`) |
|
| 98 |
-
|
| 99 |
-
Evidence: `video_gates_video_v2.json` · `VIDEO_GATES_OK`. Prior `@1` bag bal **0.716** on the same bags (archived).
|
| 100 |
-
|
| 101 |
-
## Evaluation
|
| 102 |
-
|
| 103 |
-
### Bag p90 (public claim SSOT)
|
| 104 |
-
|
| 105 |
-
| Metric | Target | Measured |
|
| 106 |
-
|--------|--------|---------:|
|
| 107 |
-
| mean P(AI) \| real | ≤ 0.12 | **0.004** |
|
| 108 |
-
| mean P(AI) \| AI | ≥ 0.85 | **0.940** |
|
| 109 |
-
| bal_acc @ thr | ≥ 0.90 | **0.985** |
|
| 110 |
-
| vs `@1` bal (same bags) | ≥ baseline | **0.985 ≥ 0.716** |
|
| 111 |
-
|
| 112 |
-
### Secondary single-frame floors (not the public headline)
|
| 113 |
-
|
| 114 |
-
| Metric | Target | Measured |
|
| 115 |
-
|--------|--------|---------:|
|
| 116 |
-
| mean P(AI) \| real | ≤ 0.15 | 0.004 |
|
| 117 |
-
| mean P(AI) \| AI | ≥ 0.80 | 0.906 |
|
| 118 |
-
| separation | ≥ 0.45 | 0.902 |
|
| 119 |
-
| bal_acc | ≥ 0.88 | 0.955 |
|
| 120 |
-
|
| 121 |
-
## Intended use
|
| 122 |
-
|
| 123 |
-
- Frame-bag AI detection for short clips in DotCheck inference.
|
| 124 |
-
- Citation of the bag-p90 table.
|
| 125 |
-
|
| 126 |
-
### Out of scope
|
| 127 |
-
|
| 128 |
-
- Product SLA or Covenant seating recipe via Hub download
|
| 129 |
-
- Full temporal models; standalone audio forensics (see Helmholtz)
|
| 130 |
-
- Publishing Covenant as Apache weights
|
| 131 |
-
- Legal determinations
|
| 132 |
-
|
| 133 |
-
## Limitations
|
| 134 |
-
|
| 135 |
-
- Aggregation is unordered frame p90; no explicit motion model.
|
| 136 |
-
- Codec, compression, and unseen generators can shift scores.
|
| 137 |
-
- Silent clips: frames only. When a soundtrack is present, product Covenant fuse with Helmholtz is separate from this artifact’s bag-p90 table.
|
| 138 |
-
|
| 139 |
-
## License
|
| 140 |
-
|
| 141 |
-
[`LICENSE`](LICENSE) — Apache License 2.0 for DotCheck heads in this repo. Upstream: [`NOTICE`](NOTICE).
|
| 142 |
-
|
| 143 |
-
## Citation
|
| 144 |
-
|
| 145 |
-
[`CITATION.cff`](CITATION.cff) · wire `inhouse-video@2` / Muybridge@2 · https://dotcheck.ai/docs
|
|
|
|
| 1 |
---
|
|
|
|
|
|
|
| 2 |
license: apache-2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
| 4 |
|
| 5 |
+
# Superseded
|
| 6 |
|
| 7 |
+
This repository is an archive. Live weights and card are at [`DotCheck/muybridge-video-v4_4`](https://huggingface.co/DotCheck/muybridge-video-v4_4).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|