People masking
Pick an image and press Mask people. People are found and masked in your browser; the image is never uploaded. The model (RF-DETR Seg Nano, 123 MB) downloads the first time only.
Benchmark results
Run on 30 September 2026 in Chrome 154 on one machine (macOS 26, Apple M1)
(library 0.1.0, ONNX Runtime Web 1.30.0),
with npm run eval:benchmark, at the defaults (threshold 0.3, margin
1%). Accuracy columns are from the WebGPU run;
times are the median per image after the model has loaded. Report:
reports/benchmark/2026-09-30-21-07-chrome.json.
Test set: 50 images from two public datasets. 23 of the 26 sample images above are from this set.
| Source | Images | What's labelled | How they were chosen |
|---|---|---|---|
| COCO 2017 validation set | 35 | A hand-drawn outline of every person: 64 physically in the scene, plus 16 in photos, paintings or on screens (scored separately) | Hotel-like rooms (a bed, couch or TV in view): 10 with small people (under 5% of the image), 11 medium, 11 large, and 3 crowded scenes |
| Open Images V7 validation set | 15 | Boxes around 29 faces and 86 other body parts (heads, hair, arms, hands, legs), used for the "Faces covered" column | At least one face and two other body parts per photo: 5 each with small, medium and large faces |
| Model | People missed | Fully covered | Depicted people missed | Room hidden | Faces covered | WebGPU | WASM |
|---|---|---|---|---|---|---|---|
| RF-DETR Seg Nano (used here) | 1.6% | 89.1% | 93.8% | 6.5% | 96.6% | 145 ms | 1.46 s |
| RF-DETR Seg Nano, mode "boxes" | 1.6% | 95.3% | 56.3% | 29.8% | 96.6% | 147 ms | 1.36 s |
| MediaPipe Selfie (legacy placeholder) | 28.1% | 62.5% | 87.5% | 23.8% | 72.4% | 13 ms | 14 ms |
People missed: under half of the person hidden. Fully covered: at least 95% hidden. Room hidden: share of everything else masked unnecessarily (lost search signal). Faces covered: at least 80% of a face box hidden. Times are the median per image after the model has loaded.
What it misses: the one person Nano misses is barely visible in the dark. It mostly ignores people in photos, paintings and on screens (it missed 15 of 16 in the test set), but not always: in the samples it masks a close-up TV, computer-generated characters and some faces on monitors. The one uncovered face is a tiny person in a restaurant background. When a person is only partly covered, it's usually the edges of hands and arms, which the margin controls (see the margin table below).
| Margin (chosen model) | 0% | 1% (default) | 2% | 3% |
|---|---|---|---|---|
| People fully covered | 60.9% | 89.1% | 92.2% | 96.9% |
| Room hidden | 2.5% | 6.5% | 11.1% | 15.1% |
| Threshold (chosen model) | 0.1 | 0.2 | 0.3 (default) | 0.5 | 0.7 |
|---|---|---|---|---|---|
| People missed | 0% | 1.6% | 1.6% | 20.3% | 25% |
| Depicted people missed | 37.5% | 62.5% | 93.8% | 100% | 100% |
| Room hidden | 13.2% | 7.6% | 6.5% | 4.8% | 3.5% |
Tested browsers and formats
From automated browser tests on one machine (macOS 26, Apple M1), run on 9 October 2026
(library 1.1.1, ONNX Runtime Web 1.30.0).
Browser automation on one machine doesn't show that other GPUs, drivers or
devices work. Report: reports/compatibility/2026-10-09-20-06.json.
| Browser | Status | Backends seen | Checks |
|---|---|---|---|
| Chrome 154, macOS 26, Apple M1 | Tested | WebGPU and WASM | 40 passed |
| Chromium 153, macOS 26, Apple M1 | Tested | WASM | 18 passed |
| Firefox 155, macOS 26, Apple M1 | Tested | WASM | 36 passed |
| WebKit 26, macOS 26, Apple M1 | Tested | WebGPU and WASM | 36 passed |
| Chrome / Edge on Windows or Linux | Untested | – | Expected to work; speed depends on GPU support |
| Safari app, iPhone and iPad | Untested | – | The WebKit engine was tested on macOS, not the app or iOS |
| Phones and tablets generally | Untested | – | About 150 MB download (model and runtime) on first use; likely slower |
| Format | Status | Notes |
|---|---|---|
| JPEG | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| PNG | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| WebP | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| Damaged files | Tested | Passes in Chrome, Chromium, Firefox, WebKit |
| GIF and other formats | Not supported | Rejected with a message in Chrome, Chromium, Firefox, WebKit |
| HEIC / HEIF (iPhone photos) | Not supported | Rejected by file extension with a message; convert to JPEG first |
The golden-output checks require every browser to produce the same person coverage for the same image (mean difference at most 2/255 per pixel), so the benchmark results should carry over; only speed differs.
Photo credits
The sample images are Flickr photos from the COCO 2017 and Open Images V7 datasets, used under the Creative Commons licenses below. None show children. The demo draws a mask over them in your browser; the files themselves are unchanged. Some photos have since been removed from Flickr, and for COCO photos the dataset doesn't record the author.
| Sample | Title | Author | License | Source |
|---|---|---|---|---|
close-face-behind-dog.jpg |
Flickr photo 4534529657 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY-NC-SA 2.0 | COCO 2017 val 251572 |
close-face.jpg |
Joe T. 1925 - 2012 R.I.P. | Jitze Couperus | CC BY 2.0 | Open Images V7 val 39971a0a73316fbe |
close-sleeper-in-bed.jpg |
Flickr photo 2531963343 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY-NC-SA 2.0 | COCO 2017 val 71938 |
covered-faces-lab.jpg |
Dominican Republic | RIGHT TO HEALTH | CC BY 2.0 | Open Images V7 val ce986af9e0e65a9a |
dark-background-figure.jpg |
Me on wii fit | Cat Barrett | CC BY-ND 2.0 | COCO 2017 val 357978 |
depicted-game-characters.jpg |
top-10-xbox-360-rpg-last-remnant-4 | Brandon Motz | CC BY 2.0 | Open Images V7 val af0808fe64664295 |
depicted-people-on-tv.jpg |
HRT (Hrvatska radiotelevizija) | JasonParis | CC BY 2.0 | COCO 2017 val 342367 |
depicted-tv-closeup.jpg |
TV control | anthony kelly | CC BY 2.0 | COCO 2017 val 222735 |
depicted-tv-dim-room.jpg |
John McCain on the Tonight Show | Steve Rhodes | CC BY-NC-SA 2.0 | COCO 2017 val 527616 |
depicted-tv-in-mirror.jpg |
Bathroom Entertainment | Erik Thauvin | CC BY-NC-SA 2.0 | COCO 2017 val 17379 |
depicted-webpage-faces.jpg |
My desk | Rain Rabbit | CC BY-NC 2.0 | COCO 2017 val 149222 |
face-in-dark-night.jpg |
23 // .. | Lisa Omarali | CC BY 2.0 | Open Images V7 val 23282811e70b4df7 |
far-crowd-lobby.jpg |
living room | Colleen McMahon | CC BY 2.0 | COCO 2017 val 546964 |
far-person-in-mirror.jpg |
IMGP3815 | Mandie S | CC BY 2.0 | COCO 2017 val 366884 |
group-of-four-standing.jpg |
Pizza and theatre 030 (License as recorded by COCO; no longer shown on Flickr) | University of the Fraser Valley | CC BY 2.0 | COCO 2017 val 91406 |
hand-at-frame-edge.jpg |
Flickr photo 6215579954 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY-NC-SA 2.0 | COCO 2017 val 180751 |
mannequin-torso.jpg |
Flickr photo 4330409752 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY-NC-SA 2.0 | COCO 2017 val 154431 |
overlapping-faces-party.jpg |
100_1929 | DJ Ghost | CC BY 2.0 | Open Images V7 val e56b89906a82c334 |
person-from-behind.jpg |
1044051259464216 (Removed from Flickr) | Maegan Tintari | CC BY 2.0 | Open Images V7 val 7da379d5080f8140 |
real-and-framed-portrait.jpg |
FB_IMG_1440690077292 (Removed from Flickr) | Rizwan Sagar | CC BY 2.0 | Open Images V7 val 359a19a08916fb41 |
real-and-photo-collage.jpg |
Flickr photo 2759863463 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY-NC-SA 2.0 | COCO 2017 val 218439 |
small-faces-street.jpg |
2009 Infiniti G37 Sedán | Spanish Coches | CC BY 2.0 | Open Images V7 val 18098dc9ee6aad80 |
small-person-night-street.jpg |
the free and the captive | green kozi | CC BY-NC-ND 2.0 | COCO 2017 val 158744 |
typical-person-couch.jpg |
Flickr photo 317343650 (Removed from Flickr; the dataset doesn't record the author) | Unknown | CC BY 2.0 | COCO 2017 val 537991 |
vintage-photo-tiny-faces.jpg |
Mrs Simpson | Donna Barber | CC BY 2.0 | Open Images V7 val d7e219822dbca1f0 |
wide-angle-flare-reader.jpg |
more lighting tom foolery... | Jamie Kronick | CC BY-NC-SA 2.0 | COCO 2017 val 99182 |