Mengqi-Lei/count-anything

Code and implementation guidelines for the paper ✨Counting Anything. Project Page: https://mengqi-lei.github.io/count-anything-projectpage/

📊 Count Anything – 文本引导的对象计数

是什么 – 一种研究级的视觉-语言模型,给定一张图像和一个自然语言查询(例如 "飞机" 或 "有细胞核的细胞"),返回所有匹配查询的对象的精确位置。返回的点数即为计数结果。它可在多个不同领域中工作,如日常场景、卫星图像、医学显微镜、农业和微生物学。

为何重要 – 传统计数方法要么输出密度图(难以解释),要么仅限于固定类别集合。Count Anything 统一了类别条件计数与空间定位,并在 CLOC(跨域大规模对象计数)基准上进行训练(约 22 万张图像,619 个类别,1500 万实例)。论文表明,它在所有六个领域上均优于最近的开放世界模型(如 LocateAnything-3B)。


核心思想

组件 功能
区域级稀疏计数器(RSC) 检测并锚定大型、稀疏分布的对象(例如飞机、树木)。
像素级密集计数器(PDC) 预测微小或密集对象(例如细胞、谷物)的密集点云。
互补计数融合(CCF) 无需额外参数即可融合 RSC 和 PDC 的输出,去除重复点,同时保留互补检测结果。
以点为中心的监督 所有训练标注(框、掩码、多边形等)均转换为每个实例一个点,简化学习信号。

快速开始(只想运行模型的用户)

  1. 创建环境
    conda create -n countanything python=3.12 -y
    conda activate countanything
    pip install -r requirements.txt   # 最小依赖;如需请安装匹配的 CUDA 版本 PyTorch
    
  2. 下载模型检查点
    • 访问 README 中链接的 Hugging Face 仓库,下载 count_anything.pt
    • 将其放置在 checkpoints/count_anything.pt
  3. 对单张图像运行推理
    from count_anything import CountAnything
    
    model = CountAnything("checkpoints/count_anything.pt")
    results = model("path/to/image.jpg", "airplanes")
    print("Count:", results[0].count)
    results[0].save()   # 保存叠加图像和包含点的 JSON
    
    输出文件夹为 exp/count_anything_inference/<image>__<query>__<timestamp>/

训练 / 评估(研究用途)

  • 数据 – 仓库期望使用 CLOC 数据集。仅提供标注文件;您必须自行下载原始图像(受许可证限制)。data/README.md 中的辅助脚本说明了如何组装完整数据集,或向作者申请现成副本。
  • 权重 – 训练从公开的 SAM3 主干网络开始。请从官方 SAM3 Hugging Face 页面下载 sam3.pt,并放入 pretrained/ 目录。
  • 脚本
    • train.sh – 启动多 GPU 训练(默认配置 config/count_anything_train_cloc.yaml)。
    • val.sh – 在 CLOC 验证集上运行验证。
    • test.sh – 在 CLOC 测试集上评估并生成 predictions.json
  • 配置 – 所有路径、批量大小、学习率调度等均在 config/ 目录下的三个 YAML 文件中。若更改数据集布局或硬件,请相应调整这些文件。

数据集 – CLOC

  • 范围 – 6 个视觉领域(通用场景、遥感、组织病理学、细胞显微镜、农业、微生物学)。
  • 规模 – 约 22 万张图像,619 个文本类别,1500 万标注对象实例。
  • 标注格式 – JSON 文件列出 image_path、文本查询以及目标类别的点(或可选框)标注。
  • 版本 1.1 – 2026 年 7 月发布,包含对噪声标签的手动清理;请参阅 data/README.md 获取下载链接。

更多信息


TL;DR

Count Anything 是一个跨域、文本驱动的对象计数模型,输出明确的点位置,基于大规模多域基准(CLOC)训练。仓库提供模型检查点、训练脚本以及清晰的推理、训练和数据集准备说明。这是一个真正的 AI 研究项目,而非简单演示或精选列表。

相关

  • 项目
  • 项目
  • Dispatch
  • Dispatch
  • Dispatch