我的原始帖子
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/
SAMURAI:采用运动感知内存的零镜头视觉跟踪的分段任意模型
我们需要访问 Hugging Face 才能下载数据。
如果您不知道如何获取拥抱脸令牌,请参阅此页面。
另外,如果您不知道如何将 Hugging Face 令牌添加到环境变量中,请查看这篇文章。
要在 Google Colab 上运行 Samurai,我们需要将默认运行时更改为 GPU。
我们需要使用 T4(免费 GPU)。
!pip install matplotlib==3.7 tikzplotlib jpeg4py opencv-python lmdb pandas scipy loguru
!git clone https://github.com/yangchris11/samurai.git
%cd samurai/sam2 !pip install -e . !pip install -e ".[notebooks]"
%cd /content/samurai/sam2/checkpoints !./download_ckpts.sh && \ %cd ..
在这一部分中,我们将使用 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("\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.")
最后一步是运行 Samurai 推理。
推理需要一段时间。
%cd /content/samurai !python scripts/main_inference.py
如果一切顺利,您应该看到以下输出:
所有代码都可以在此 GitHub 存储库中获取。
如果您喜欢这篇文章,请在 GitHub 上给它一个星。
以上是如何在 Google Colab 上运行 Samurai的详细内容。更多信息请关注PHP中文网其他相关文章!