ICLR2024
[ウェブサイト] [arxiv] [pdf]

現在のアクション(クラックエッグなど)の後に一般的に何が起こるかを知ることで、俳優の将来の行動(卵を混ぜる)をよりよく予測できますか?俳優の長期的な目標(例えば、卵のフライドライスを作る)も知っているとしたらどうでしょうか?手順のテキストデータ(レシピ、ハウツーなど)で事前に処理されている大規模な言語モデル(LLM)が、両方の観点からLTAを支援する可能性があると仮定しています。可能な次のアクションに関する事前知識を提供し、それぞれ手順の観察された部分を考慮して目標を推測するのに役立ちます。
ANTGPTは、ビデオベースの長期アクション予測でLLMSを活用するために、私たちの論文で提案されているフレームワークです。 ANTGPTは、EGO4D LTA V1およびV2ベンチマーク、Epic-Kitchens-55、およびEgtea Gaze+で出版時までに最先端のパフォーマンスを達成しています。
このリポジトリをクローンします。
git clone [email protected]:brown-palm/AntGPT.git
cd AntGPTPython(3.9)仮想環境をセットアップします。適切なCUDAバージョンでPytorchをインストールします。
python3 -m venv venv/forecasting
source venv/forecasting/bin/activate
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --extra-index-url https://download.pytorch.org/whl/cu117クリップをインストールします。
pip install git+https://github.com/openai/CLIP.git他のパッケージをインストールします。
pip install -r requirements.txt Llama-Recipeパッケージをインストールしてください。
実験では、EGO4D、Epic-Kitchens-55、およびEgtea Gaze+のデータを使用しました。 Epic-Kitchens-55およびEgtea Gaze+の場合、エゴトポのデータアノテーションと分割も使用しました。最初にルートディレクトリからデータフォルダーを起動します。
mkdir dataここからego4dデータセット、注釈、事前処理モデルをダウンロードしてください。
Epic-Kitchens 55データセットと注釈をダウンロードしてください。
ここからegtea gaze+ datasetをダウンロードしてください。
エゴトポからデータアノテーションをダウンロードします。彼らの指示を参照してください。
テキストプロンプト、目標機能などを含む前処理されたファイルをここで見つけることができます。
両方のフォルダーをダウンロードして解凍します。
goal_features dataフォルダーの下に配置します。
datasetフォルダーをLlama2_modelsフォルダーの下に配置します。
Llama2_modelsフォルダーのICLサブフォルダーにシンリンクを作成します。
ln -s {path_to_dataset} AntGPT/Llama2_models/ICLクリップを使用して、これらのデータセットから特徴を抽出しました。 Transformer_Modelsの下の機能抽出ファイルを使用して、機能を抽出できます。
python -m transformer_models.generate_clip_img_embedding以下に示すようなデータフォルダー構造があります。独自のセットアップを自由に使用して、それに応じてパス構成を調整することを忘れないでください。
data
├── ego4d
│ └── annotations
| │ ├── fho_lta_taxonomy.json
| │ ├── fho_test_unannotated.json
│ │ ├── ...
│ │
│ └── clips
│ ├── 0a7a74bf-1564-41dc-a516-f5f1fa7f75d1.mp4
│ ├── 0a975e6e-4b13-426d-be5f-0ef99b123358.mp4
│ ├── ...
│
├── ek
│ └── annotations
| │ ├── EPIC_many_shot_verbs.csv
│ │ ├── ...
│ │
│ └── clips
│ ├── rgb
│ ├── obj
│ └── flow
│
├── gaze
│ └── annotations
| │ ├── action_list_t+v.csv
│ │ ├── ...
│ │
│ └── clips
│ ├── OP01-R01-PastaSalad.mp4
│ ├── ...
│
├── goal_features
│ ├── ego4d_feature_gt_val.pkl
│ ├── ...
│
├── output_CLIP_img_embedding_ego4d
│
...
私たちのコードベースは、変圧器実験、GPT実験、およびLLAMA2実験の3つの部分で構成されています。各モジュールの実装は、それぞれtransformer_modelsフォルダー、 GPT_models 、およびLlama2_modelsフォルダーにあります。
ego4d LTAのモデルチェックポイントと出力ファイルをここで見つけることができます。
両方のフォルダーを解凍します。
Llama2_modelsフォルダーのllama_recipeサブフォルダーの下にckptフォルダーを配置します。
ego4d_outputsフォルダーは、 Llama2_modelsフォルダーのllama_recipeサブフォルダーの下に配置します。
出力ファイルをリーダーボードに送信します。
cd Llama2_models/Finetune/llama-recipesCUDA_VISIBLE_DEVICES=0 python inference/inference_lta.py --model_name {your llama checkpoint path} --peft_model {pretrained model path} --prompt_file ../dataset/test_nseg8_recog_egovlp.jsonl --response_path {output file path}トランスモデルで実験を実行するには、次のコマンドを使用してください
python -m transformer_models.run --cfg transformer_models/configs/ego4d_image_pred_in8.yaml --exp_name ego4d_lta/clip_feature_in8GPT実験を実行するには、ワークフローイラストノートブックの1つを使用してください。
LLAMA2実験を実行するには、そのフォルダーの指示を参照してください。
私たちの論文はArxivで入手できます。あなたが私たちの仕事が役立つと思うなら、私たちを引用することを検討してください。
@article { zhao2023antgpt ,
title = { AntGPT: Can Large Language Models Help Long-term Action Anticipation from Videos? } ,
author = { Qi Zhao and Shijie Wang and Ce Zhang and Changcheng Fu and Minh Quan Do and Nakul Agarwal and Kwonjoon Lee and Chen Sun } ,
journal = { ICLR } ,
year = { 2024 }
}このプロジェクトは、MITライセンスの下でリリースされます。