metadata
license: apache-2.0
tags:
- diffusion
- counting
- hallucination
- multi-target regression
- resnet
CountHallu — SimObject Counting Model
Counting model from Counting Hallucinations in Diffusion Models (arXiv:2510.13080). It scores images generated by a diffusion model trained on SimObject to decide whether each sample is counting-correct or a counting hallucination.
Architecture & checkpoint
- ResNet-50 (torchvision, ImageNet-1k V2 init) with the final layer replaced by a 3-output regression head — one predicted instance count per object class.
- Ships a single
model.pth(a plainstate_dict). - Decision rule: round the 3 predictions; a sample is a hallucination if any class ≥ 2 or all classes are 0 (valid SimObject images have at most one instance per class and at least one object).
Usage
Inputs are RGB images normalised to [-1, 1] (ToTensor + Normalize([0.5]*3, [0.5]*3)).
import torch
from huggingface_hub import hf_hub_download
from counthallu.models.counting import CountingRegressor
ckpt = hf_hub_download("ShyFoo/CountHallu-counting_model-SimObject", "model.pth")
model = CountingRegressor(num_classes=3)
model.load_state_dict(torch.load(ckpt, map_location="cpu"))
model.eval()
Or let the evaluation protocol fetch it for you:
from counthallu.utils import load_counting_model
model, model_type, _, _ = load_counting_model(
"simobject", use_hub_model=True,
repo_id="ShyFoo/CountHallu-counting_model-SimObject"
)
See the CountHallu repository for the full evaluation protocol.
Citation
@article{fu2025counting,
title={Counting Hallucinations in Diffusion Models},
author={Fu, Shuai and Zhou, Jian and Chen, Qi and Jing, Huang and Nguyen, Huy Anh and Liu, Xiaohan and Zeng, Zhixiong and Ma, Lin and Zhang, Quanshi and Wu, Qi},
journal={arXiv preprint arXiv:2510.13080},
year={2025}
}