ホームページ > バックエンド開発 > Python チュートリアル > Google Colab で Samurai を実行する方法

Google Colab で Samurai を実行する方法

Barbara Streisand
リリース: 2024-11-28 14:16:13
オリジナル
215 人が閲覧しました

How to Run Samurai on Google Colab

私の元の投稿
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/

サムライとは何ですか?

SAMURAI: モーションアウェアメモリによるゼロショット視覚追跡のためのセグメントエニシングモデルの適応

要件

  • Google Colab の Google アカウント
  • Face アカウントをハグしてデータをダウンロード

Google Colab で Samurai を実行する方法

ステップ 0. ハグフェイス トークンを取得し、環境変数に追加します。

データをダウンロードするには、Hugging Face にアクセスする必要があります。

ハグフェイストークンの入手方法がわからない場合は、このページを参照してください。
また、Hugging Face トークンを環境変数に追加する方法がわからない場合は、この投稿を確認してください。

ステップ 1. デフォルトのランタイムを変更する

Google Colab で Samurai を実行するには、デフォルトのランタイムを GPU に変更する必要があります。
T4 (無料層 GPU) を使用する必要があります。

ステップ 2. パッケージをインストールする

!pip install matplotlib==3.7 tikzplotlib jpeg4py opencv-python lmdb pandas scipy loguru
ログイン後にコピー

ステップ 3. Samurai リポジトリのクローンを作成する

!git clone https://github.com/yangchris11/samurai.git
ログイン後にコピー

ステップ 4. Sam2 をインストールする

%cd samurai/sam2
!pip install -e .
!pip install -e ".[notebooks]"
ログイン後にコピー

ステップ 5. チェックポイントをダウンロードする

%cd /content/samurai/sam2/checkpoints
!./download_ckpts.sh && \
%cd ..
ログイン後にコピー

ステップ6.Hugging Faceからデータをダウンロードする

このパートでは、Python スクリプトを使用して、サムライ リポジトリがデータ準備セクションで言及したデータをセットアップします。
https://github.com/yangchris11/samurai?tab=readme-ov-file#data-preparation

使用するデータは l-lt/LaSOT です

この場合、猫のデータセットをダウンロードするので、他のデータセットを試したい場合は、それに応じてコードを変更できます。

import os

# Define the data directory
data_directory = '/content/samurai/data/LaSOT'

# Create the data directory if it does not exist
try:
    os.makedirs(data_directory, exist_ok=True)
    print(f"Directory '{data_directory}' created successfully or already exists.")
except OSError as error:
    print(f"Error creating directory '{data_directory}': {error}")

# Define the content to be written to the file
content = '''cat-1
cat-20'''

# Define the file path
file_path = os.path.join(data_directory, 'testing_set.txt')

# Write the content to the file
try:
    with open(file_path, 'w') as f:
        f.write(content)
    print(f"Content written to file '{file_path}' successfully.")
except IOError as error:
    print(f"Error writing to file '{file_path}': {error}")

# Print the file path
print(f'File path: {file_path}')
ログイン後にコピー
import os
from huggingface_hub import hf_hub_download
import zipfile
import shutil

def download_and_extract(base_dir="/content/samurai/data"):
    try:
        # Create LaSOT and cat directories
        lasot_dir = os.path.join(base_dir, "LaSOT")
        cat_dir = os.path.join(lasot_dir, "cat")
        os.makedirs(cat_dir, exist_ok=True)

        # Create directory to save the ZIP file
        zip_dir = os.path.join(base_dir, "zips")
        os.makedirs(zip_dir, exist_ok=True)

        print("Downloading dataset...")
        zip_path = hf_hub_download(
            repo_id="l-lt/LaSOT",
            filename="cat.zip",
            repo_type="dataset",
            local_dir=zip_dir
        )
        print(f"Downloaded to: {zip_path}")

        # Extract ZIP file to cat directory
        print("Extracting ZIP file to cat directory...")
        with zipfile.ZipFile(zip_path, 'r') as zip_ref:
            zip_ref.extractall(cat_dir)

        print("\nCreated directory structure:")
        print("LaSOT/")
        print("└── cat/")
        # Display the first few cat folders
        for item in sorted(os.listdir(cat_dir))[:6]:
            print(f"    ├── {item}/")
        print("    └── ...")

        return lasot_dir

    except Exception as e:
        print(f"An error occurred: {str(e)}")
        return None

if __name__ == "__main__":
    extract_path = download_and_extract()
    if extract_path:
        print("\nDownload and extraction completed successfully!")
    else:
        print("\nDownload and extraction failed.")
ログイン後にコピー

ステップ 7. 推論

最後のステップは、侍の推論を実行することです。
推論にはしばらく時間がかかります。

%cd /content/samurai
!python scripts/main_inference.py
ログイン後にコピー

すべてがうまくいけば、次の出力が表示されるはずです。

すべてのコードは、この GitHub リポジトリで入手できます。

この投稿が気に入ったら、GitHub でスターを付けてください。

以上がGoogle Colab で Samurai を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート