Heim > Backend-Entwicklung > Python-Tutorial > So führen Sie Samurai auf Google Colab aus

So führen Sie Samurai auf Google Colab aus

Barbara Streisand
Freigeben: 2024-11-28 14:16:13
Original
271 Leute haben es durchsucht

How to Run Samurai on Google Colab

mein ursprünglicher Beitrag
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/

Was ist Samurai?

SAMURAI: Anpassung des Segment-Anything-Modells für visuelles Zero-Shot-Tracking mit bewegungsbewusstem Speicher

Anforderungen

  • Google-Konto für Google Colab
  • Face-Konto umarmen, um Daten herunterzuladen

So führen Sie Samurai auf Google Colab aus

Schritt 0: Holen Sie sich das Hugging Face-Token und fügen Sie es Ihrer Umgebungsvariablen hinzu

Wir benötigen Zugriff auf Hugging Face, um Daten herunterzuladen.

Wenn Sie nicht wissen, wie Sie den Hugging Face-Token erhalten, lesen Sie bitte diese Seite.
Wenn Sie nicht wissen, wie Sie das Hugging Face-Token zu Ihrer Umgebungsvariablen hinzufügen, lesen Sie bitte diesen Beitrag.

Schritt 1: Ändern Sie die Standardlaufzeit

Um Samurai auf Google Colab auszuführen, müssen wir die Standardlaufzeit auf GPU ändern.
Wir müssen T4 (Free-Tier-GPU) verwenden.

Schritt 2. Pakete installieren

!pip install matplotlib==3.7 tikzplotlib jpeg4py opencv-python lmdb pandas scipy loguru
Nach dem Login kopieren

Schritt 3. Klonen Sie das Samurai-Repository

!git clone https://github.com/yangchris11/samurai.git
Nach dem Login kopieren

Schritt 4. Installieren Sie Sam2

%cd samurai/sam2
!pip install -e .
!pip install -e ".[notebooks]"
Nach dem Login kopieren

Schritt 5. Prüfpunkte herunterladen

%cd /content/samurai/sam2/checkpoints
!./download_ckpts.sh && \
%cd ..
Nach dem Login kopieren

Schritt 6. Laden Sie Daten von Hugging Face herunter

In diesem Teil verwenden wir ein Python-Skript, um die Daten einzurichten, die Samurai Repo im Abschnitt zur Datenvorbereitung erwähnt hat.
https://github.com/yangchris11/samurai?tab=readme-ov-file#data-preparation

Die Daten, die wir verwenden werden, sind l-lt/LaSOT

In diesem Fall laden wir den Katzendatensatz herunter. Wenn Sie also andere Datensätze ausprobieren möchten, können Sie den Code entsprechend ändern.

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}')
Nach dem Login kopieren
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.")
Nach dem Login kopieren

Schritt 7. Schlussfolgerung

Der letzte Schritt besteht darin, die Samurai-Inferenz auszuführen.
Die Schlussfolgerung wird eine Weile dauern.

%cd /content/samurai
!python scripts/main_inference.py
Nach dem Login kopieren

Wenn alles gut geht, sollten Sie die folgende Ausgabe sehen:

Der gesamte Code ist in diesem GitHub-Repository verfügbar.

Wenn Ihnen dieser Beitrag gefällt, geben Sie ihm bitte einen Stern auf GitHub.

Das obige ist der detaillierte Inhalt vonSo führen Sie Samurai auf Google Colab aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage