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(Cross-domain Large-scale Object Counting) 벤치마크(약 22만 장의 이미지, 619개 카테고리, 1,500만 개 인스턴스)에서 학습되었습니다. 논문에서는 최근 오픈월드 모델인 LocateAnything-3B를 모든 6개 도메인에서 모두 능가함을 보여줍니다.
핵심 아이디어
| 구성 요소 | 기능 |
|---|---|
| 영역 수준 스파스 카운터 (RSC) | 큰 크기의 희박하게 분포된 객체(예: 비행기, 나무)를 탐지하고 고정합니다. |
| 픽셀 수준 디펜스 카운터 (PDC) | 작거나 밀집된 객체(예: 세포, 곡물)에 대해 밀집된 포인트 클라우드를 예측합니다. |
| 보완적 카운트 융합 (CCF) | RSC와 PDC의 출력을 추가 파라미터 없이 융합하여 중복 포인트를 제거하면서 보완적인 탐지를 유지합니다. |
| 포인트 중심의 감독 | 모든 학습 어노테이션(박스, 마스크, 다각형 등)이 인스턴스당 하나의 점으로 변환되어 학습 신호를 단순화합니다. |
빠른 시작 (모델만 실행하고 싶은 사용자용)
- 환경 생성
conda create -n countanything python=3.12 -y conda activate countanything pip install -r requirements.txt # 최소 종속성; 필요 시 일치하는 CUDA 빌드의 PyTorch 설치 - 모델 체크포인트 다운로드
- README에 링크된 Hugging Face 리포지토리로 이동하여
count_anything.pt를 다운로드합니다. checkpoints/count_anything.pt에 위치시킵니다.
- README에 링크된 Hugging Face 리포지토리로 이동하여
- 단일 이미지에 대한 추론 실행
출력 폴더는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개의 텍스트 카테고리, 1,500만 개의 어노테이션된 객체 인스턴스
- 어노테이션 형식 – JSON 파일은
image_path, 텍스트 질의, 타겟 카테고리의 포인트(또는 선택적 박스) 어노테이션을 나열합니다. - 버전 1.1 – 2026년 7월에 출시되었으며, 노이즈 있는 레이블을 수동으로 정리함. 다운로드 링크는
data/README.md참조.
더 알아보기
- 프로젝트 페이지 – https://mengqi-lei.github.io/count-anything-projectpage/
- 논문 (arXiv) – https://arxiv.org/abs/2605.30846 (README에 PDF 링크 있음)
- Hugging Face 모델 및 데모 –
- 인용 – 이 작업을 인용할 때는 제공된 BibTeX 항목을 사용하세요.
TL;DR
Count Anything은 대규모 다도메인 벤치마크(CLOC)에서 학습된 크로스도메인, 텍스트 기반 객체 카운팅 모델로, 명시적인 포인트 위치를 출력합니다. 리포지토리는 모델 체크포인트, 트레이닝 스크립트, 추론, 트레이닝, 데이터셋 준비를 위한 명확한 지침을 제공합니다. 이것은 단순한 데모나 컬렉션 목록이 아니라 진정한 AI 연구 프로젝트입니다.
관련
- 프로젝트
- 프로젝트
- Dispatch
- Dispatch
- Dispatch