Downloads · 30 days
17
17% of all-time downloads
Mattysmittttt/camonet
camonet is a image classification model from Mattysmittttt. Use it when you need a label for an image. It is set up for transformers. The card lists the license as apache-2.0.
A fine-grained military camouflage pattern classifier.
Downloads · 30 days
17
17% of all-time downloads
All-time downloads
99
Public
Parameters
22.1M
531 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors88.4 MB · 100%
From the Hugging Face model README
A fine-grained military camouflage pattern classifier.
Given a photo of a uniform, vehicle, or fabric fragment, CamoNet predicts which of 40 historical and contemporary military camouflage patterns it belongs to — along with country of origin, era, and visual family.
Built on a fine-tuned DINOv2 backbone (facebook/dinov2-small), chosen
because its self-supervised ImageNet pre-training learns the kind of dense
texture features that camouflage classification depends on.
from transformers import pipeline
clf = pipeline("image-classification", model="Mattysmittttt/camonet")
clf("path/to/uniform.jpg", top_k=3)
# [{'label': 'us_marpat_woodland', 'score': 0.91},
# {'label': 'ca_cadpat_tw', 'score': 0.04},
# {'label': 'us_aor2', 'score': 0.02}]
For richer output (origin, era, family) use the bundled taxonomy.py:
from huggingface_hub import hf_hub_download
import importlib.util, sys
path = hf_hub_download("Mattysmittttt/camonet", "taxonomy.py")
spec = importlib.util.spec_from_file_location("camonet_tax", path)
tax = importlib.util.module_from_spec(spec); spec.loader.exec_module(tax)
print(tax.PATTERN_BY_ID["us_marpat_woodland"])
# Pattern(id='us_marpat_woodland', name='MARPAT Woodland',
# origin='USMC', era='2002-present', family='digital', notes=...)
| Family | Count | Examples |
|---|---|---|
| digital | 10 | MARPAT, CADPAT, UCP, EMR Digital Flora, Type 07, ROK Granite |
| blob | 8 | Flecktarn, AUSCAM, M90, TAZ 90, JGSDF, TTsKO, M75, Splittertarn |
| desert | 7 | Chocolate Chip, DCU 3-Color, AOR1, DPM Desert, Tropentarn |
| multi-terrain | 6 | MultiCam, OCP Scorpion W2, MTP, AMCU, Partizan, Kryptek Mandrake |
| woodland | 4 | M81 Woodland, ERDL, French CCE, Italian Vegetata |
| brushstroke | 4 | Tiger Stripe, DPM Woodland, KLMK, VSR-93 Flora |
| arid | 1 | A-TACS AU |
Full taxonomy with origin and era for each pattern lives in taxonomy.py.
Composed from public web sources:
Actual scale used for this checkpoint: 3,080 labeled images across 40 patterns (≈77 per pattern average; min 14, max 137), stratified 85/15 train/val (2,635 train / 445 val).
The dataset is not redistributed — only the trained weights are. The scrape pipeline is included in the source repo so the dataset is reproducible.
| Hyperparameter | Value |
|---|---|
| Backbone | facebook/dinov2-small (22M params) |
| Image size | 224×224 |
| Optimizer | AdamW |
| Learning rate | 5e-5, cosine, 10% warmup |
| Weight decay | 0.05 |
| Batch size | 32 |
| Epochs | 8 (best checkpoint by top-1) |
| Augmentation | resize+crop, hflip, ±10° rotation, light blur (no colour jitter — colour matters for camo) |
| Precision | fp32 (Apple Silicon MPS) |
Reported on the held-out 15% validation split (445 images, 40 classes):
| Metric | Score |
|---|---|
| Top-1 | 0.7371 |
| Top-3 | 0.8652 |
Per-class confusion analysis is in eval/confusion.png once you run
scripts/evaluate.py.
CamoNet identifies fabric patterns, not people, faces, vehicles as units, or military formations. Its outputs are about textile design.
Camouflage classification is well-established public knowledge — pattern catalogues like Camopedia have been freely available for over a decade, and the patterns themselves are visible in countless public photographs, parades, news coverage, and museum exhibits. The model does not provide capabilities beyond what an attentive observer with reference material could already do.
That said, downstream use sits in the OSINT space, where claims based on a single image carry real-world consequences. Users should:
@misc{camonet2026,
title = {CamoNet: Fine-Grained Military Camouflage Pattern Classification},
author = {Smith, Matt},
year = {2026},
url = {https://huggingface.co/Mattysmittttt/camonet}
}
Apache-2.0 for the model weights and code.
Built on facebook/dinov2-base (Apache-2.0).