v0.3.0: trained on unanimous Albert teacher labels
Browse files- README.md +44 -39
- config.json +19 -19
- model.onnx +1 -1
README.md
CHANGED
|
@@ -15,7 +15,7 @@ Tags **what is visible in an image** with any number of 20 attributes, such as
|
|
| 15 |
people, text, chart, diagram, table, map or aerial view. A small, fast MobileNetV4 model (34 MB ONNX, about 18 ms per image on one CPU thread)
|
| 16 |
for sorting and describing large image collections.
|
| 17 |
|
| 18 |
-
This is **v0.
|
| 19 |
Try it in your browser: [WhatDoWeSee Space](https://huggingface.co/spaces/StephanMeijer/WhatDoWeSee).
|
| 20 |
|
| 21 |
## Attributes
|
|
@@ -51,8 +51,8 @@ Download a fixed version (recommended), so a later release never changes your re
|
|
| 51 |
```python
|
| 52 |
from huggingface_hub import hf_hub_download
|
| 53 |
|
| 54 |
-
model_path = hf_hub_download("StephanMeijer/WhatDoWeSee-MobileNetV4", "model.onnx", revision="v0.
|
| 55 |
-
config_path = hf_hub_download("StephanMeijer/WhatDoWeSee-MobileNetV4", "config.json", revision="v0.
|
| 56 |
```
|
| 57 |
|
| 58 |
Then:
|
|
@@ -82,49 +82,49 @@ its own threshold in `config.json`, tuned on a validation split.
|
|
| 82 |
|
| 83 |
## Evaluation
|
| 84 |
|
| 85 |
-
On
|
| 86 |
-
macro F1 **0.
|
| 87 |
-
|
| 88 |
|
| 89 |
| label | name | positives | AP | F1 |
|
| 90 |
|---|---|---:|---:|---:|
|
| 91 |
-
| `people` | People |
|
| 92 |
-
| `animals` | Animals |
|
| 93 |
-
| `nature` | Plants |
|
| 94 |
-
| `landscape` | Landscape |
|
| 95 |
-
| `buildings` | Buildings / structures |
|
| 96 |
-
| `vehicles` | Vehicles |
|
| 97 |
-
| `food` | Food |
|
| 98 |
-
| `text` | Text |
|
| 99 |
-
| `handwriting` | Handwriting | 5 |
|
| 100 |
-
| `chart` | Chart |
|
| 101 |
-
| `diagram` | Diagram |
|
| 102 |
-
| `table` | Table |
|
| 103 |
-
| `map` | Map |
|
| 104 |
-
| `logo-icon` | Logo / icon |
|
| 105 |
-
| `formula` | Formula |
|
| 106 |
-
| `screen` | Screen / UI |
|
| 107 |
-
| `artwork` | Artwork |
|
| 108 |
-
| `instruments` | Instruments |
|
| 109 |
-
| `furniture` | Furniture |
|
| 110 |
-
| `aerial` | Aerial |
|
| 111 |
|
| 112 |
### How it compares
|
| 113 |
|
| 114 |
-
Against
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
(
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
images: indicative only.
|
| 122 |
|
| 123 |
## Training
|
| 124 |
|
| 125 |
- Backbone: `mobilenetv4_conv_medium.e500_r256_in1k` (ImageNet-pretrained, via timm), with a new
|
| 126 |
20-way sigmoid head; 30 epochs, AdamW, binary cross-entropy per label.
|
| 127 |
-
- Data:
|
| 128 |
- The images come from public collections: photo datasets, document and form scans, charts,
|
| 129 |
diagrams, screenshots, maps, artwork and icons.
|
| 130 |
|
|
@@ -142,8 +142,13 @@ MobileNetV4 backbone they start from. The licence covers the model, not the imag
|
|
| 142 |
|
| 143 |
## Versions
|
| 144 |
|
| 145 |
-
|
|
|
|
| 146 |
|
| 147 |
-
| version | date | mean AP | macro F1 | |
|
| 148 |
-
|---|---|---:|---:|---|
|
| 149 |
-
| **v0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
people, text, chart, diagram, table, map or aerial view. A small, fast MobileNetV4 model (34 MB ONNX, about 18 ms per image on one CPU thread)
|
| 16 |
for sorting and describing large image collections.
|
| 17 |
|
| 18 |
+
This is **v0.3.0** (2026-10-15): trained on 38,386 images where three Albert vision-language models agree (same data as WhatDoWeSee-EfficientNet-B0 v0.3.0).
|
| 19 |
Try it in your browser: [WhatDoWeSee Space](https://huggingface.co/spaces/StephanMeijer/WhatDoWeSee).
|
| 20 |
|
| 21 |
## Attributes
|
|
|
|
| 51 |
```python
|
| 52 |
from huggingface_hub import hf_hub_download
|
| 53 |
|
| 54 |
+
model_path = hf_hub_download("StephanMeijer/WhatDoWeSee-MobileNetV4", "model.onnx", revision="v0.3.0")
|
| 55 |
+
config_path = hf_hub_download("StephanMeijer/WhatDoWeSee-MobileNetV4", "config.json", revision="v0.3.0")
|
| 56 |
```
|
| 57 |
|
| 58 |
Then:
|
|
|
|
| 82 |
|
| 83 |
## Evaluation
|
| 84 |
|
| 85 |
+
On 39 held-out hand-labelled images: mean average precision **0.90**,
|
| 86 |
+
macro F1 **0.83** at the tuned thresholds. The set is small: per-label scores
|
| 87 |
+
are indicative only.
|
| 88 |
|
| 89 |
| label | name | positives | AP | F1 |
|
| 90 |
|---|---|---:|---:|---:|
|
| 91 |
+
| `people` | People | 3 | 1.00 | 0.86 |
|
| 92 |
+
| `animals` | Animals | 4 | 1.00 | 1.00 |
|
| 93 |
+
| `nature` | Plants | 0 | - | 0.00 |
|
| 94 |
+
| `landscape` | Landscape | 1 | 1.00 | 0.67 |
|
| 95 |
+
| `buildings` | Buildings / structures | 0 | - | 0.00 |
|
| 96 |
+
| `vehicles` | Vehicles | 1 | 1.00 | 1.00 |
|
| 97 |
+
| `food` | Food | 1 | 1.00 | 1.00 |
|
| 98 |
+
| `text` | Text | 17 | 1.00 | 0.87 |
|
| 99 |
+
| `handwriting` | Handwriting | 5 | 0.94 | 0.83 |
|
| 100 |
+
| `chart` | Chart | 5 | 1.00 | 0.89 |
|
| 101 |
+
| `diagram` | Diagram | 3 | 1.00 | 0.80 |
|
| 102 |
+
| `table` | Table | 8 | 0.94 | 0.86 |
|
| 103 |
+
| `map` | Map | 2 | 1.00 | 1.00 |
|
| 104 |
+
| `logo-icon` | Logo / icon | 3 | 0.51 | 0.44 |
|
| 105 |
+
| `formula` | Formula | 0 | - | 0.00 |
|
| 106 |
+
| `screen` | Screen / UI | 2 | 0.83 | 0.67 |
|
| 107 |
+
| `artwork` | Artwork | 2 | 0.35 | 0.50 |
|
| 108 |
+
| `instruments` | Instruments | 0 | - | 0.00 |
|
| 109 |
+
| `furniture` | Furniture | 0 | - | 0.00 |
|
| 110 |
+
| `aerial` | Aerial | 1 | 1.00 | 1.00 |
|
| 111 |
|
| 112 |
### How it compares
|
| 113 |
|
| 114 |
+
Against v0.2 on the same 39 independent hand-labelled images: better yes/no decisions (macro
|
| 115 |
+
F1 0.83 against 0.73 at each version's thresholds) and better ranking (mean AP 0.91 against
|
| 116 |
+
0.79). Clearly better on People (AP 1.00 against 0.67), Handwriting (0.94 / 0.69), Table
|
| 117 |
+
(0.94 / 0.58), Diagram (1.00 / 0.71) and Landscape. Weaker on Logo / icon (0.51 against
|
| 118 |
+
0.92). Thresholds are now tuned on 8,104 validation images instead of 95. On an earlier set
|
| 119 |
+
of 95 hand-labelled images it was the best of all v0.3 candidates (mean AP 0.86). Plants,
|
| 120 |
+
Buildings, Formula, Instruments and Furniture have no test image in the 39; per-label scores
|
| 121 |
+
rest on 1 to 17 images: indicative only.
|
| 122 |
|
| 123 |
## Training
|
| 124 |
|
| 125 |
- Backbone: `mobilenetv4_conv_medium.e500_r256_in1k` (ImageNet-pretrained, via timm), with a new
|
| 126 |
20-way sigmoid head; 30 epochs, AdamW, binary cross-entropy per label.
|
| 127 |
+
- Data: Three vision-language models on the Albert API (Gemma 4 31B, Ministral 3 8B, Mistral Small 3.2 24B) answered the attribute question for about 81,000 images; an attribute counts only when all three picked it. Each image counts under its rarest attribute, at most 2,000 per attribute were kept for training (38,386 images); the 645 hand-labelled images are in the pool with their teacher labels like any other. Thresholds are tuned on the 8,104 teacher-labelled validation images. Test: 39 hand-labelled images that neither this version nor v0.2 trained on or tuned thresholds on. Same weights and thresholds as v0.3.0-rc.3.
|
| 128 |
- The images come from public collections: photo datasets, document and form scans, charts,
|
| 129 |
diagrams, screenshots, maps, artwork and icons.
|
| 130 |
|
|
|
|
| 142 |
|
| 143 |
## Versions
|
| 144 |
|
| 145 |
+
Each version on hand-labelled test images it never trained on (mean AP and macro F1). The test sets
|
| 146 |
+
differ between some versions, so compare versions through the notes of each version:
|
| 147 |
|
| 148 |
+
| version | date | test images | mean AP | macro F1 | |
|
| 149 |
+
|---|---|---:|---:|---:|---|
|
| 150 |
+
| **v0.3.0** | 2026-10-15 | 39 | 0.90 | 0.83 | trained on 38,386 images where three Albert vision-language models agree (same data as WhatDoWeSee-EfficientNet-B0 v0.3.0) |
|
| 151 |
+
| **v0.3.0-rc.3** | 2026-10-15 | 95 | 0.86 | 0.71 | release candidate, trained on 38,386 images where all three Albert vision-language models agree (same data as WhatDoWeSee-EfficientNet-B0 v0.3.0-rc.3) |
|
| 152 |
+
| **v0.3.0-rc.2** | 2026-10-15 | 38 | 0.81 | 0.74 | release candidate, v0.3.0-rc.1 with stable thresholds (same data as WhatDoWeSee-EfficientNet-B0 v0.3.0-rc.2) |
|
| 153 |
+
| **v0.3.0-rc.1** | 2026-10-15 | 38 | 0.81 | 0.76 | release candidate (same data as WhatDoWeSee-EfficientNet-B0 v0.3.0-rc.1), trained on 38,710 images labelled by three Albert vision-language models |
|
| 154 |
+
| **v0.2** | 2026-10-14 | 95 | 0.82 | 0.74 | trained on 20,551 images labelled by a SigLIP 2 probe plus the 444 hand labels |
|
config.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
{
|
| 2 |
-
"version": "v0.
|
| 3 |
"task": "multi-label image attributes",
|
| 4 |
"group": "content",
|
| 5 |
"labels": [
|
|
@@ -69,26 +69,26 @@
|
|
| 69 |
"aerial": "the ground seen from high above: aerial or satellite photos, drone shots, bird's-eye views, also through a plane window, straight down or at an angle; clouds without ground don't count; a drawn map is Map"
|
| 70 |
},
|
| 71 |
"thresholds": {
|
| 72 |
-
"people": 0.
|
| 73 |
-
"animals": 0.
|
| 74 |
-
"nature": 0.
|
| 75 |
-
"landscape": 0.
|
| 76 |
-
"buildings": 0.
|
| 77 |
-
"vehicles": 0.
|
| 78 |
-
"food": 0.
|
| 79 |
-
"text": 0.
|
| 80 |
-
"handwriting": 0.
|
| 81 |
"chart": 0.5,
|
| 82 |
-
"diagram": 0.
|
| 83 |
-
"table": 0.
|
| 84 |
"map": 0.5,
|
| 85 |
-
"logo-icon": 0.
|
| 86 |
-
"formula": 0.
|
| 87 |
-
"screen": 0.
|
| 88 |
-
"artwork": 0.
|
| 89 |
-
"instruments": 0.
|
| 90 |
-
"furniture": 0.
|
| 91 |
-
"aerial": 0.
|
| 92 |
},
|
| 93 |
"input": {
|
| 94 |
"name": "pixel_values",
|
|
|
|
| 1 |
{
|
| 2 |
+
"version": "v0.3.0",
|
| 3 |
"task": "multi-label image attributes",
|
| 4 |
"group": "content",
|
| 5 |
"labels": [
|
|
|
|
| 69 |
"aerial": "the ground seen from high above: aerial or satellite photos, drone shots, bird's-eye views, also through a plane window, straight down or at an angle; clouds without ground don't count; a drawn map is Map"
|
| 70 |
},
|
| 71 |
"thresholds": {
|
| 72 |
+
"people": 0.4865,
|
| 73 |
+
"animals": 0.3594,
|
| 74 |
+
"nature": 0.5881,
|
| 75 |
+
"landscape": 0.5811,
|
| 76 |
+
"buildings": 0.7084,
|
| 77 |
+
"vehicles": 0.4425,
|
| 78 |
+
"food": 0.7232,
|
| 79 |
+
"text": 0.7025,
|
| 80 |
+
"handwriting": 0.7569,
|
| 81 |
"chart": 0.5,
|
| 82 |
+
"diagram": 0.8988,
|
| 83 |
+
"table": 0.5682,
|
| 84 |
"map": 0.5,
|
| 85 |
+
"logo-icon": 0.6388,
|
| 86 |
+
"formula": 0.8698,
|
| 87 |
+
"screen": 0.789,
|
| 88 |
+
"artwork": 0.1739,
|
| 89 |
+
"instruments": 0.9685,
|
| 90 |
+
"furniture": 0.8187,
|
| 91 |
+
"aerial": 0.2008
|
| 92 |
},
|
| 93 |
"input": {
|
| 94 |
"name": "pixel_values",
|
model.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 34102699
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:40e58d43ac69b88788e5aa511a31193d15af529ab29e53f4702ce5f8d766607f
|
| 3 |
size 34102699
|