>백엔드 개발 >파이썬 튜토리얼 >Google Colab에서 사무라이를 실행하는 방법

Google Colab에서 사무라이를 실행하는 방법

Barbara Streisand
Barbara Streisand원래의
2024-11-28 14:16:13216검색

How to Run Samurai on Google Colab

내 원본 글
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/

사무라이 란 무엇입니까?

SAMURAI: 모션 인식 메모리를 사용한 제로샷 시각적 추적을 위한 Segment Anything 모델 적용

요구사항

  • Google Colab용 Google 계정
  • 페이스 계정을 허깅하여 데이터 다운로드

Google Colab에서 사무라이를 실행하는 방법

0단계. Hugging Face 토큰을 가져와서 환경 변수에 추가하세요.

데이터를 다운로드하려면 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입니다

이 경우에는 고양이 데이터세트를 다운로드할 예정이므로, 다른 데이터세트를 사용해보고 싶으시면 그에 맞게 코드를 변경하시면 됩니다.

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에서 사무라이를 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.