php中文网

如何在 Google Colab 上运行 Samurai

php中文网

我的原始帖子
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/

什么是武士?

samurai:采用运动感知内存的零镜头视觉跟踪的分段任意模型

要求

  • google colab 的 google 帐户
  • 抱脸账号下载数据

如何在 google colab 上运行 samurai

步骤 0. 获取 hugging face 令牌并将其添加到您的环境变量中

我们需要访问 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 脚本来设置 samurai repo 在数据准备部分中提到的数据。
https://github.com/yangchris11/samurai?tab=readme-ov-file#data-preparation

我们将使用的数据是l-lt/lasot

在本例中,我们将下载 cat 数据集,因此如果您想尝试其他数据集,可以相应地更改代码。

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("
created 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("
download and extraction completed successfully!")
    else:
        print("
download and extraction failed.")

步骤 7. 推理

最后一步是运行 samurai 推理。
推理需要一段时间。

%cd /content/samurai
!python scripts/main_inference.py

如果一切顺利,您应该看到以下输出:

所有代码都可以在此 github 存储库中获取。

如果您喜欢这篇文章,请在 github 上给它一个星。

以上就是如何在 Google Colab 上运行 Samurai的详细内容,更多请关注php中文网其它相关文章!