Implementation for paper "The Label Imitation Game: Turing Test Network for Zero-Shot Pseudo-Label Pruning"
Zero-Shot Pseudo-Label Pruning: A single Turing Test Network (TTN) trained strictly on image classification (bottom) finds and rejects systemic VLM hallucinations across diverse detection datasets and pseudo-label architectures (top) while accepting accurate labels (middle). TTN rejects labels for spatial inaccuracy (A), semantic inconsistency (B), or both (C). Visualizations generated using FiftyOne.
Input: YOLOv5-formatted dataset and pseudo-labels.
Output: Reference embeddings, pseudo-label embeddings, and filelist.
FiftyOne dependency to generate paper embeddings (pip install fiftyone).
Paper detection datasets are formatted as YOLOv5 (see example ./dataset/voc.yaml).
Download example dataset and pseudo-labels, unzip to ./data, and run:
python embed/generate_label_embedings.py --data_dir ./data --dataset voc --pseudo_label_source yoloe-11l-seg-conf30
Output label patch embeddings and corresponding filelist for TTN pruning will be located in ./data/embed.
For custom dataset and pseudo-labels, replicate process or provide own float16 CLIP ViT-L-14 label patch embeddings for subsequent TTN Pruning.
Input: Reference labels, pseudo-labels, preprocessed embeddings, and filelist.
Output: TTN prune logits.
PyTorch dependency to run TTN model.
Download TTN models and example reference labels, pseudo-labels, preprocessed embeddings, and filelist, unzip to ./data, and run:
python ttn/generate_ttn_logits.py --data_dir ./data --dataset voc --pseudo_label_source yoloe-11l-seg-conf30 --prune_model ttn --config ./config/ttn_logit.yaml --device cpu
Recommend setting --device to "mps" or "cuda".
Can also use paper's detection fine-tuned pruning model using --prune_model ttnd.
Output TTN pruning logits will be located in ./data/model/logits.
Paper implementation pruned all pseudo-labels with logit score > 0. Raising the threshold increases recall but lowers precision (e.g., > 0.1).
Input: Preprocessed image embeddings and labels.
Output: TTN model weights.
PyTorch dependency to train TTN model.
Download preprocessed image classification dataset embeddings and labels, unzip to ./data, and run:
python ttn/cl_ttn_class_model_train.py --data_dir ./data --set 1 2 3 4 5 6 7 8 --config ./config/ttn_class_model.yaml --trial 1 --device cpu
Recommend setting --device to "mps" or "cuda".
Output TTN training weights and logs will be located in ./data/model/weights/ttn-clip-1.
If you find this code useful, please consider citing our paper:
@inproceedings{griffin26eccv,
author={Griffin, Brent A. and Corso, Jason J.},
title={The Label Imitation Game: Turing Test Network for Zero-Shot Pseudo-Label Pruning},
booktitle={The European Conference on Computer Vision (ECCV)},
year={2026}
}The paper's full TTN benchmark framework is quite extensive. If there is a feature missing that you would like to implement, please create a request (as an issue is fine) and we will address when able. Cheers!