mein ursprünglicher Beitrag
https://baxin.netlify.app/how-to-run-samurai-on-google-colab/
SAMURAI: Anpassung des Segment-Anything-Modells für visuelles Zero-Shot-Tracking mit bewegungsbewusstem Speicher
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.
Um Samurai auf Google Colab auszuführen, müssen wir die Standardlaufzeit auf GPU ändern.
Wir müssen T4 (Free-Tier-GPU) verwenden.
!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 ..
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}')
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.")
Der letzte Schritt besteht darin, die Samurai-Inferenz auszuführen.
Die Schlussfolgerung wird eine Weile dauern.
%cd /content/samurai !python scripts/main_inference.py
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!