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などの最近のオープンワールドモデルをすべての6ドメインで上回っていることが示されている。


主なアイデア

コンポーネント 機能
領域レベルスパースカウンター(RSC) 大きく、スパースに分布するオブジェクト(例:飛行機、木)を検出し、アンカーを設定する。
ピクセルレベルデュースカウンター(PDC) 小さなまたは密集したオブジェクト(例:細胞、穀物)に対して密集したポイントクラウドを予測する。
補完的カウント統合(CCF) RSCとPDCの出力を追加パラメータなしで統合し、重複ポイントを除去しながら補完的な検出を保持する。
ポイント中心の教師信号 すべてのトレーニングアノテーション(ボックス、マスク、ポリゴンなど)が1インスタンスあたり1点に変換され、学習信号を単純化する。

クイックスタート(モデルを実行したいユーザー向け)

  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/ ディレクトリ下の3つの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