CoolFace
Datasetpublic

RicePasteM/ICW

Individual Cats in the Wild (ICW) ICW is an identity-disjoint benchmark for individual cat identification in unconstrained images. It contains 82,791 JPEG images of 19,877 individual cats, collected from six public adoption and rescue platforms and curated for fine-grained recognition and image retrieval research. ICW accompanies the MeowID project: MeowID: A Dual-Expert Retrieval System for Individual Cat Identification Zhangchi Hu, Yi Shang, Haocheng Yang, Qiwei Hu, and… See the full description on the dataset page: https://huggingface.co/datasets/RicePasteM/ICW.

sourceHugging Faceotherupdated 1mo agoView on Hugging Face
0likes115downloads
Dataset Card

Individual Cats in the Wild (ICW)

ICW is an identity-disjoint benchmark for individual cat identification in unconstrained images. It contains 82,791 JPEG images of 19,877 individual cats, collected from six public adoption and rescue platforms and curated for fine-grained recognition and image retrieval research.

ICW accompanies the MeowID project:

MeowID: A Dual-Expert Retrieval System for Individual Cat Identification Zhangchi Hu, Yi Shang, Haocheng Yang, Qiwei Hu, and Yuzheng Li (2026)
  • —Project repository: https://github.com/RicePasteM/MeowID
  • —Model weights: https://huggingface.co/RicePasteM/MeowID-Base

Dataset structure

The release uses identity-preserving WebDataset TAR shards. Shards target approximately 1 GiB, and all images of one identity remain in the same shard.

text
ICW/
├── data/
│   ├── train-00000.tar
│   ├── ...
│   ├── train-00023.tar
│   ├── validation-00000.tar
│   └── test-00000.tar
├── cats.csv
├── metadata.csv
├── splits.csv
├── manifest.json
├── verify_webdataset.py
└── extract_to_imagefolder.py
SplitIdentitiesImagesShardsImages per identity
Train18,87777,094243–19 (mean 4.08)
Validation5002,85115–14 (mean 5.70)
Test5002,84615–17 (mean 5.69)
Total19,87782,791263–19 (mean 4.17)

Identity sets are strictly disjoint across the three splits.

Sample format

Each WebDataset example contains adjacent members with the same key:

text
00001234_000001.jpg
00001234_000001.json

The JSON member contains the identity, split, original path, normalized crop box, source provenance, and the corresponding row from metadata.csv. identity_id is the benchmark label; image_id identifies an observation of that individual.

Loading

Install the vision dependencies:

bash
pip install "datasets[vision]"

The dataset card defines all three splits, so it can be streamed directly:

python
from datasets import load_dataset

dataset = load_dataset("RicePasteM/ICW", streaming=True)
sample = next(iter(dataset["train"]))

image = sample["jpg"]
metadata = sample["json"]
identity_id = metadata["identity_id"]

An explicit WebDataset configuration is also possible:

python
from datasets import load_dataset

files = {
    "train": "hf://datasets/RicePasteM/ICW/data/train-*.tar",
    "validation": "hf://datasets/RicePasteM/ICW/data/validation-*.tar",
    "test": "hf://datasets/RicePasteM/ICW/data/test-*.tar",
}
dataset = load_dataset("webdataset", data_files=files, streaming=True)

To restore the conventional image-folder layout:

bash
python extract_to_imagefolder.py /path/to/ICW /path/to/icw_imagefolder

This produces train/<identity>/<image>.jpg, validation/<identity>/<image>.jpg, and test/<identity>/<image>.jpg.

Metadata

All tables are UTF-8 encoded. The original cats.csv and metadata.csv use a UTF-8 byte-order mark, so pass encoding="utf-8-sig" when reading them.

cats.csv

One row per identity. It includes the eight-digit cat_folder label, source platform, source-side animal identifier, source-reported attributes, profile URL, and preserved source metadata.

metadata.csv

One row per image. It includes cat_folder, image_filename, source provenance, source-reported attributes, original URLs, normalized crop box, curation assignment, and preserved source metadata.

splits.csv

One row per identity with its split, image count, and containing shard. This table is the fastest way to map an identity to a TAR file without scanning the archives.

manifest.json

The release manifest records sample and identity counts, byte sizes, SHA-256 checksums, and key ranges for every shard. Run the included verifier after a download:

bash
python verify_webdataset.py /path/to/ICW

Source-reported fields may be incomplete, outdated, or inaccurate and should not be treated as verified biological labels.

Construction

The release was built through the following stages:

  1. 1.Public adoption and rescue profiles were collected from six platforms.
  2. 2.Automatic filtering retained cat images and profiles with sufficient views.
  3. 3.Cats were segmented, the exterior background was masked, and crops were tightened around the subject.
  4. 4.Near-duplicate observations and low-quality samples were removed through automated comparison and manual review.
  5. 5.Identities were assigned to mutually exclusive train, validation, and test splits.
SourceIdentities
PetFinder 202616,785
PetRescue2,881
汪汪喵呜孤儿院115
RSPCA Animals47
BC SPCA41
Verhuisdieren8

Source names describe provenance, not endorsement of this dataset or its authors.

Intended uses

ICW is intended for non-commercial research and evaluation involving individual animal identification, fine-grained image retrieval, route-aware face and whole-animal recognition, and representation learning under changes in pose, viewpoint, lighting, background, camera, and occlusion.

The dataset is not intended for identifying people, inferring pet ownership, contacting source organizations or individuals, making automated animal-welfare decisions, or commercial deployment.

Limitations and responsible use

  • —The dataset is drawn from adoption and rescue platforms rather than a random sample of the global cat population.
  • —Geographic, platform, breed, age, health, photographic, and curation biases may affect model behavior.
  • —Listings and URLs can become outdated after collection.
  • —Free-text source metadata can contain contact details or other incidental information. Do not use it to identify, profile, or contact people.
  • —Image availability on a public webpage does not by itself imply that the image is freely relicensable.

Users are responsible for evaluating legal, ethical, privacy, and source-site requirements in their jurisdiction and application.

Data quality

The release was validated on 17 August 2026:

  • —19,877 identities and 82,791 paired JPEG/JSON examples;
  • —no identity overlap between train, validation, and test;
  • —no identity split across multiple shards;
  • —deterministic member ordering and valid sidecar JSON;
  • —byte sizes and SHA-256 checksums verified for all 26 shards;
  • —all original metadata rows matched to exactly one image.

Licensing and source rights

The dataset-specific selection, identity organization, split assignments, curation annotations, and original documentation contributed by the MeowID authors are licensed under the Creative Commons Attribution-NonCommercial 4.0 International license (CC BY-NC 4.0). See `LICENSE`.

This license applies only to material for which the MeowID authors hold the necessary rights. Third-party photographs, source listing text, trademarks, and linked content are excluded from that license and remain subject to their respective copyright holders' rights and source-platform terms. No endorsement by any source platform is implied.

To request removal of an identity, image, source record, or stale contact information, open an issue in the MeowID repository and include only the minimum path or source identifier needed to locate the record.

Citation

bibtex
@article{hu2026meowid,
  title  = {MeowID: A Dual-Expert Retrieval System for Individual Cat Identification},
  author = {Hu, Zhangchi and Shang, Yi and Yang, Haocheng and Hu, Qiwei and Li, Yuzheng},
  year   = {2026}
}