Ir para o conteúdo
ModelListadosExterno
Browse files

OrangIdentifier

Individual facial recognition for Bornean orangutans, from raw photographs to an offline Android deployment.

TipoOtherVersãoRevision 6a815cbBnota

Fonte do modelo

Tipo
Other
Tamanho do arquivo
5,95–105 MB
Versão
vRevision 6a815cb
Atualizado
10 de out. de 2026
Downloads
4
Fonte
Hugging Face

Descrição da fonte

OrangIdentifier

Individual facial recognition for Bornean orangutans, from raw photographs to an offline Android deployment.

Overview

This project trains a face detector and an individual identification model from labeled photographs, then exports the result as a lightweight gallery JSON for an Android app that runs entirely offline. The gallery holds one embedding vector per individual. Adding a new individual requires 10 to 20 photos, takes under a minute, and requires no retraining.

Inference pipeline

Raw photo -> YOLO v2 face detection (mAP@50 = 99.4%)
          -> 224x224 crop
          -> MegaDescriptor-T-224 (Swin Transformer, 768-dim embedding)
          -> cosine similarity vs gallery
          -> Known individual (sim >= threshold) or Unknown (sim < threshold)

Android app assets

This repository also hosts the exported models and the gallery database required to run the offline Android app. To build the app, download these three files from the main branch and place them in app/src/main/assets/ of the Android project:

  • gallery.json : the identity database (embedding prototypes).
  • yolo_v2_detector.tflite : the YOLO face detector.
  • megadesc_v6_backbone.tflite : the V6 MegaDescriptor-T embedding backbone (112 MB).

Models

FileVersionSizeDescription
yolo_v1_nano_mAP92.ptV16 MBYOLO nano, mAP@50 = 91.98%
yolo_v2_medium_mAP99.ptV1 to V685 MBYOLO medium, mAP@50 = 99.39%
resnet50_classifier_10classes_acc96.ptV190 MBClosed-set classifier
resnet50_backbone_2048dim.ptV290 MBEmbedding backbone, 2048-dim
megadesc_T_arcface_final_epoch21_acc99.ptV3105 MBArcFace, 10 individuals
megadesc_T_arcface_v4_40individuals_acc99.ptV4105 MBArcFace, 40 individuals
megadesc_T_arcface_v5_invariance_acc99.ptV5105 MBArcFace + invariance, 40 individuals
megadesc_T_arcface_v6_15ind_acc98.ptV6 (production)105 MBZoo only, 15 individuals, deployed
megadesc_v6_backbone.tfliteV6 (app)112 MBV6 backbone for the Android app
yolo_v2_detector.tfliteapp22 MBYOLO detector for the Android app
gallery.jsonapp6.3 MBIdentity database for the Android app

Performance

The versions were compared with a single fair evaluation: same session-level train/test split, galleries rebuilt identically, and each version scored for open-set rejection only on identities it never saw during training. Numbers below are on the 10 zoo individuals common to every version.

V1V2V3V4V5V6
BackboneResNet50ResNet50MegaDescriptor-TMegaDescriptor-TMegaDescriptor-TMegaDescriptor-T
Supervised individuals101010404015
Clean identification96.5%96.5%99.2%99.2%99.7%99.2%
Separability gap0.230.230.850.860.910.88
Unknown rejection (ROC AUC)0.830.830.9980.990.990.999
Identification under moderate blur77%77%11%11%95%93%

Notes. A version is only scored for rejection on individuals it never learned: V1, V2, V3 and V6 against the rescue-center (BOS) animals, V4 and V5 against the 5 new zoo individuals (they were trained on the BOS animals, so a BOS rejection figure would be data leakage). Clean identification on good zoo crops saturates from V3 onward; the real separation between versions appears under degradation, where the invariance training introduced in V5 keeps V5 and V6 above 90% while V3 and V4 fall to chance. V6 is the deployed production model.

Dataset

SourceIndividualsCropsRole
Captive collection (zoo)152,127 + 865Training (known)
Field rescue center (BOS)301,622Supervised in V4/V5, unknown test set for V3/V6
Internet (iNaturalist, GBIF, web)unlabeled5,429Background class

Images are not included.

Download

from huggingface_hub import hf_hub_download

path = hf_hub_download(
    repo_id="tit0000/OrangIdentifier",
    filename="megadesc_T_arcface_v6_15ind_acc98.pt",
)

Or via the pipeline:

python models/download_models.py --version all

Security note

These .pt files are standard PyTorch and Ultralytics checkpoints. The pickle imports flagged by Hugging Face come from trusted libraries (torch, ultralytics, collections) and contain no malicious code.

References

  • Čermák et al. (2024). WildlifeDatasets. WACV 2024.
  • Deng et al. (2019). ArcFace. CVPR 2019.
  • Deng et al. (2020). Sub-center ArcFace. ECCV 2020.
  • Liu et al. (2021). Swin Transformer. ICCV 2021.
  • Jocher et al. (2023). Ultralytics YOLO.

Fontes

1 fonte
Hugging FacePrimárioVersão 6a815cb2e5c8f596be4a765a2f6ce2ede8e9e50c
huggingface.co/tit0000/OrangIdentifier/tree/6a815cb2e5c8f596be4a765a2f6ce2ede8e9e50c

Verificado 10 de out.

Download files

Artefatos de modelo

8 artefatos

megadesc_T_arcface_final_epoch21_acc99.pt

pt · 105 MB · SHA-256 6f6081ce7fa8…5268 · Hugging Face

Download file

megadesc_T_arcface_v4_40individuals_acc99.pt

pt · 105 MB · SHA-256 6caa7e0bb436…3029 · Hugging Face

Download file

megadesc_T_arcface_v5_invariance_acc99.pt

pt · 105 MB · SHA-256 4380d5ebb8df…98a2 · Hugging Face

Download file

megadesc_T_arcface_v6_15ind_acc98.pt

pt · 105 MB · SHA-256 3ebb1e04993a…23ea · Hugging Face

Download file

resnet50_backbone_2048dim.pt

pt · 90,0 MB · SHA-256 f530ba499572…19b9 · Hugging Face

Download file

resnet50_classifier_10classes_acc96.pt

pt · 90,1 MB · SHA-256 f58e120ccf99…792f · Hugging Face

Download file

yolo_v1_nano_mAP92.pt

pt · 5,95 MB · SHA-256 4c9f5251759c…4f78 · Hugging Face

Download file

yolo_v2_medium_mAP99.pt

pt · 85,4 MB · SHA-256 b731202bda17…f8bf · Hugging Face

Download file

Trechos de fonte

3 trechos

--- license: mit tags: - image-feature-extraction - LiteRT - wildlife - animal-re-identification - face-recognition - arcface - megadescriptor - orangutan - open-set pipeline_tag: image-feature-extraction --- # OrangIdentifier Individual facial recognition for Bornean orangutans, from raw photographs to an offline Android deployment. - Source code (ML pipeline): https://github.com/tit-exe/OrangIdentifier - Source code (Android app): https://github.com/tit-exe/OrangIdentifier_AndroidApp ## Overview This project trains a face detector and an individual identification model from labeled photographs, then exports the result as a lightweight gallery JSON for an Android app that runs entirely offline. The gallery holds one embedding vector per individual. Adding a new individual requires 10 to 20 photos, takes under a minute, and requires no retraining. ## Inference pipeline ``` Raw photo -> YOLO v2 face detection (mAP@50 = 99.4%) -> 224x224 crop -> MegaDescriptor-T-224 (Swin Transformer, 768-dim embedding) -> cosine similarity vs gallery -> Known individual (sim >= threshold) or Unknown (sim < threshold) ``` ## Android app assets This repository also hosts the exported models and the gallery database required to run the offline Android app. To build the app, download these three files from the `main` branch and place them in `app/src/main/assets/` of the Android project: - `gallery.json` : the identity database (embedding prototypes). - `yolo_v2_detector.tflite` : the YOLO face detector. - `megadesc_v6_backbone.tflite` : the V6 MegaDescriptor-T embedding backbone (112 MB). ## Models | File | Version | Size | Description | |------|---------|------|-------------| | `yolo_v1_nano_mAP92.pt` | V1 | 6 MB | YOLO nano, mAP@50 = 91.98% | | `yolo_v2_medium_mAP99.pt` | V1 to V6 | 85 MB | YOLO medium, mAP@50 = 99.39% | | `resnet50_classifier_10classes_acc96.pt` | V1 | 90 MB | Closed-set classifier | | `resnet50_backbone_2048dim.pt` | V2 | 90 MB | Embedding backbone, 2048-dim | | `megadesc_T_arcface_final_epoch21_acc99.pt` | V3 | 105 MB | ArcFace, 10 individuals | | `megadesc_T_arcface_v4_40individuals_acc99.pt` | V4 | 105 MB | ArcFace, 40 individuals | | `megadesc_T_arcface_v5_invariance_acc99.pt` | V5 | 105 MB | ArcFace + invariance, 40 individuals | | `megadesc_T_arcface_v6_15ind_acc98.pt` | **V6 (production)** | 105 MB | Zoo only, 15 individual...

Source context: 4 downloads · 1 likes · Pipeline image-feature-extraction · Repo tit0000/OrangIdentifier

Source context: 12 downloads · 1 likes · Pipeline image-feature-extraction · Repo tit0000/OrangIdentifier