{ "name": "fusion-perception-1", "version": "v0.1-preview", "family": "Fusion Perception", "capability": "landmark / place retrieval (global descriptor)", "backbone": "facebook/dinov2-large", "backbone_license": "apache-2.0", "backbone_frozen": true, "patch_size": 14, "descriptor": { "dim": 512, "normalize": true, "dtype_reference": "float16 on CUDA (the precision every reported number was produced at)" }, "preprocess": { "scales": [ 1.0, 1.414, 2.0 ], "base_short_side": 224, "max_long_side": 1022, "snap_multiple": 14, "resample": "bicubic", "mean": [ 0.485, 0.456, 0.406 ], "std": [ 0.229, 0.224, 0.225 ], "note": "per scale: short side = round(224*scale/14)*14, long side scaled by aspect, snapped to /14 and clamped to 1022; CLS token L2-normalized per scale, the three averaged, re-normalized -> 1024-d multi-scale CLS" }, "head": { "architecture": "Linear(1024, 2048) -> GELU -> Linear(2048, 512, bias=False) -> BatchNorm1d(512) -> L2", "trained_params": 3148800, "training_objective": "ArcFace (margin 0.3, scale 32), label smoothing 0.1, class-balanced sqrt sampling, AdamW + cosine, batch 4096, 40 epochs, early stop patience 8", "training_data": "Google Landmarks v2 clean (GLDv2-clean), classes with >= 3 images" }, "heads": { "standard": { "file": "heads/retrieval_head_standard.pt", "train_images": 1570970, "train_classes": 76563, "note": "all GLDv2-clean classes, the same training data published systems use", "safetensors": "model.safetensors", "default": true }, "decon": { "file": "heads/retrieval_head_decon.pt", "train_images": 1568445, "train_classes": 76478, "note": "GLDv2-clean minus the 87 classes our audit matched to ROxford/RParis query landmarks", "safetensors": "model_decon.safetensors" } }, "default_head": "standard", "reranking": { "optional": true, "method": "AMES (Suma et al., ECCV 2024) over frozen DINOv2-B local descriptors, top-1600 shortlist", "ensemble": "score = lambda * global_cosine + (1 - lambda) * sigmoid(temp * ames_logit)", "lambda": 0.55, "temp": 0.3, "script": "rerank.py", "note": "this repo ships the first-stage global descriptor and rerank.py, which runs the second stage. The AMES code (Apache-2.0), checkpoint and local descriptors are the authors', are fetched from them on first use, are used unchanged, and are not redistributed here." }, "license": "cc-by-nc-4.0" }