【要約】 CoTrackerは、動画内の長期間追跡とオクルージョンでの精度向上を目指すポイント・トラッキング手法です。Windows上でのインストールには管理者権限のコマンドプロンプトを使用し、必要なライブラリを導入し学習済みモデルをダウンロードします。CoTrackerの利用には指定のコマンドを実行し、処理結果を動画ファイルに保存できます。
元ファイル
動画ファイル: humanpose.mp4
処理結果のファイル
動画ファイル: video_pred_track.mp4
【目次】
CoTracker は、動画のポイントトラッキングの一手法である。 この手法は、長期間の追跡やオクルージョン(遮蔽)の取り扱いの難しさに対処するために開発された。 CoTracker では、ポイントをグループとして追跡する方法、つまりグループベースのアプローチを採用しており、ポイント間の相互関係を活用する。さらに、時間的なスライディングウィンドウメカニズムを使用して、長期間にわたる追跡を行う。実験結果からは、co-trackingが既存の手法に比べて、オクルージョンや長期間のビデオに対する追跡の安定性が向上したことが示されている。
【文献】
Nikita Karaev, Ignacio Rocco, Benjamin Graham, Natalia Neverova, Andrea Vedaldi, Christian Rupprecht, CoTracker: It is Better to Track Together, arXiv:2307.07635v1, 2023.
https://arxiv.org/pdf/2307.07635v1.pdf
【関連する外部ページ】
https://huggingface.co/spaces/facebook/cotracker
【インストールの判断】 Build Tools for Visual Studio は,開発ツールセットである. Visual Studio は統合開発環境であり,いくつかの種類があり,Build Tools for Visual Studioの機能を含むか連携して使用するものである.インストールは以下の基準で判断してください:
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」を選択することで, Build Tools for Visual Studio 2022 の機能も一緒にインストールされる.
不明な点がある場合は,Visual Studio 全体をインストール を行う方が良い.
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Build Tools for Visual Studio 2022と VC2015 再配布可能パッケージをインストールするものである.
起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Visual Studio Community 2022と VC2015 再配布可能パッケージをインストールするものである.
起動方法: スタートメニューの「Visual Studio Installer」を選ぶ.
Pythonは,プログラミング言語の1つ. Gitは,分散型のバージョン管理システム.
【手順】
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Python ランチャーとPython 3.10とGitをインストールし,Gitにパスを通すものである.
次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.
winget install --scope machine Python.Launcher winget install --scope machine Python.Python.3.10 winget install --scope machine Git.Git powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
【サイト内の関連ページ】
【関連項目】 Python, Git バージョン管理システム, Git の利用
【サイト内の関連ページ】 NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う.
【関連する外部ページ】
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行することにより, PyTorch 2.3 (NVIDIA CUDA 11.8 用)がインストールされる. 但し,Anaconda3を使いたい場合には別手順になる.
事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).
PyTorch で,GPU が動作している場合には,「torch.cuda.is_available()」により,True が表示される.
python -m pip install -U --ignore-installed pip python -m pip uninstall -y torch torchvision torchaudio torchtext xformers python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu118 python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
Anaconda3を使いたい場合には, Anaconda プロンプト (Anaconda Prompt) を管理者として実行し, 次のコマンドを実行する. (PyTorch と NVIDIA CUDA との連携がうまくいかない可能性があるため,Anaconda3を使わないことも検討して欲しい).
conda install -y pytorch torchvision torchaudio pytorch-cuda=11.8 cudnn -c pytorch -c nvidia py -c "import torch; print(torch.__version__, torch.cuda.is_available())"
【サイト内の関連ページ】
【関連する外部ページ】
コマンドプロンプトを管理者として実行: 別ページ »で説明
cd /d c:%HOMEPATH% rmdir /s /q co-tracker git clone https://github.com/facebookresearch/co-tracker cd co-tracker python -m pip install -e . python -m pip install opencv-python einops timm matplotlib moviepy flow_vis mkdir checkpoints cd checkpoints curl -O https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_4_wind_8.pth curl -O https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_4_wind_12.pth curl -O https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_8_wind_16.pth
ポイント・トラッキングを実行.
結果が動画ファイルに保存される.
python demo.py --grid_size 10 --video_path
元ファイル
動画ファイル: humanpose.mp4
処理結果のファイル
動画ファイル: video_pred_track.mp4
cd /d c:%HOMEPATH%\co-tracker notepad cotracker.py
このプログラムは, 公式の GitHub のレポジトリで公開されていたものを使用している.
import os import torch from base64 import b64encode from cotracker.utils.visualizer import Visualizer, read_video_from_path video = read_video_from_path('./assets/apple.mp4') video = torch.from_numpy(video).permute(0, 3, 1, 2)[None].float() from cotracker.predictor import CoTrackerPredictor model = CoTrackerPredictor( checkpoint=os.path.join( './checkpoints/cotracker_stride_4_wind_8.pth' ) ) if torch.cuda.is_available(): model = model.cuda() video = video.cuda() pred_tracks, pred_visibility = model(video, grid_size=30) vis = Visualizer(save_dir='./videos', pad_value=100) vis.visualize(video=video, tracks=pred_tracks, visibility=pred_visibility, filename='teaser'); exit()
Python プログラムの実行
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
プログラムを cotracker.pyのようなファイル名で保存したので, 「python cotracker.py」のようなコマンドで行う.
python cotracker.py
cd /d c:%HOMEPATH%\co-tracker notepad cotracker2.py
このプログラムは, 公式の GitHub のレポジトリで公開されていたものを使用している.
import os import torch import tkinter as tk from tkinter import filedialog from base64 import b64encode from cotracker.utils.visualizer import Visualizer, read_video_from_path from cotracker.predictor import CoTrackerPredictor def load_model(): checkpoint_path = os.path.join('./checkpoints/cotracker_stride_4_wind_8.pth') model = CoTrackerPredictor(checkpoint=checkpoint_path) if torch.cuda.is_available(): model = model.cuda() return model def select_file(): root = tk.Tk() root.withdraw() fpath = filedialog.askopenfilename() return fpath def point_tracking(fpath, model): video = read_video_from_path(fpath) video = torch.from_numpy(video).permute(0, 3, 1, 2)[None].float() if torch.cuda.is_available(): video = video.cuda() pred_tracks, pred_visibility = model(video, grid_size=30) vis = Visualizer(save_dir='.', pad_value=100) vis.visualize(video=video, tracks=pred_tracks, visibility=pred_visibility, filename='teaser') return pred_tracks, pred_visibility if __name__ == "__main__": model = load_model() fpath = select_file() print("file name: ", fpath) pred_tracks, pred_visibility = point_tracking(fpath, model) print(pred_tracks) exit()
Python プログラムの実行
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
プログラムを cotracker2.pyのようなファイル名で保存したので, 「python cotracker2.py」のようなコマンドで行う.
python cotracker2.py
ポイント・トラッキングの結果が表示される.