Instructions to use RicePasteM/MeowID-Base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- TensorRT
How to use RicePasteM/MeowID-Base with TensorRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
MeowID: A Dual-Expert Retrieval System for Individual Cat Identification
TL;DR: MeowID prioritizes fine-grained facial evidence, augments it with whole-cat context, and falls back to whole-cat retrieval when a usable face is unavailable.
2 School of Intelligent Software Engineering, Hefei University of Technology
3 School of Software Engineering, Sun Yat-sen University
4 School of Computer Science, Northwestern Polytechnical University
5 College of Biological Sciences and Technology, Beijing Forestry University
* Equal contribution โ Project leader
Model overview
MeowID is a face-priority, dual-expert retrieval system for identifying individual cats in unconstrained photographs. It combines separately parameterized face and whole-cat encoders while keeping their embedding galleries route-specific.
- When a usable aligned face is available, the face expert produces the primary representation and receives a gated whole-cat correction.
- When facial evidence is unavailable, the system falls back to the whole-cat expert.
- New identities can be enrolled through embedding extraction and gallery insertion without retraining the recognition models.
- All retrieval embeddings are L2-normalized, 512-dimensional vectors.
Method pipeline
The whole-cat expert produces an embedding for every image. A valid ECPose detection activates PetFace-style face alignment, the face expert, and validation-guided whole-cat hint fusion. Queries are compared only with the gallery associated with their selected route.
Repository contents
| Path | Contents | Intended use |
|---|---|---|
artifacts/MeowID-Base/ |
MeowID-Base and ECPose weights in PyTorch, ONNX, and TensorRT formats | End-to-end identification and deployment |
artifacts/ECSeg/ |
ECSeg-X segmentation weights | Whole-cat instance extraction and cropping |
artifacts/training_init/ |
Whole-cat and face expert initialization checkpoints | Training and reproduction |
artifacts/**/SHA256SUMS |
Published SHA256 checksums | Artifact integrity verification |
The TensorRT engines were built for the reference RTX 3090 environment. Rebuild them from the ONNX artifacts when the GPU architecture, TensorRT version, or batch profile changes.
Inference capabilities
| Capability | Details |
|---|---|
| Face localization | ECPose with 9 cat-face landmarks |
| Face alignment | PetFace-style three-point similarity alignment with a landmark-crop fallback |
| Recognition | Separate DINOv3-based face and whole-cat experts |
| Fusion | Validation-guided, gated whole-cat residual for the face route |
| Retrieval | Route-specific galleries with normalized inner-product similarity |
| Backends | PyTorch, ONNX Runtime CPU/CUDA, and TensorRT FP16/FP32 |
| Whole-cat cropping | ECSeg-X instance segmentation with masks, boxes, and padded crops |
Minimal Python usage
from cat_recognition import MeowID
model = MeowID(
"artifacts/MeowID-Base",
backend="tensorrt",
device="cuda:0",
registry="registries/demo",
)
model.register(
"cat_001",
["images/cat_001_a.jpg", "images/cat_001_b.jpg"],
)
prediction = model.search("images/query.jpg", top_k=5)[0]
print("route:", prediction.embedding.route)
for match in prediction.matches:
print(match.cat_id, match.score)
The package accepts file paths, directories, glob patterns, PIL images, RGB NumPy arrays, and iterables of supported inputs.
Reference results
Offline retrieval on the ICW test set:
| Route | Top-1 | mAP |
|---|---|---|
| Whole-cat expert | 51.34% | 59.00% |
| Cat-face expert | 78.80% | 83.32% |
| MeowID-Base hard routing | 75.93% | 80.45% |
End-to-end batch-1 measurements on one RTX 3090 over 2,846 ICW test images include image decoding, preprocessing, ECPose, alignment, embedding extraction, and routing:
| Backend | Mean latency | Throughput |
|---|---|---|
| PyTorch FP32 | 94.23 ms | 10.61 images/s |
| ONNX Runtime CPU | 478.67 ms | 2.09 images/s |
| ONNX Runtime CUDA | 79.88 ms | 12.51 images/s |
| TensorRT FP16 | 60.00 ms | 16.66 images/s |
These results describe the reference evaluation environment and do not guarantee production performance.
Model mirrors
Limitations
- Face and whole-cat embeddings occupy different spaces and must not be compared or merged directly.
- Open-set acceptance thresholds must be calibrated for the target cameras, lighting, gallery size, and operating conditions.
- Whole-cat fallback remains sensitive to severe occlusion and visually similar coat patterns.
- TensorRT engines are environment-specific and should be rebuilt for other deployment targets.
- ECSeg-X cropping currently uses the PyTorch backend.
Citation
@misc{hu2026meowid,
title = {MeowID: A Dual-Expert Retrieval System for Individual Cat Identification},
author = {Zhangchi Hu and Yi Shang and Haocheng Yang and Qiwei Hu and Yuzheng Li},
year = {2026}
}
- Downloads last month
- 12