Skip to content

Issue running SAM 2 Video tracking  #645

@vs-nth

Description

@vs-nth

Hello, I'm trying to run Sam2 with docker compose on my local system for video tracking. However, the upstream repo for Segment anything 2 updated the checkpoints to point to Sam2.1 and as a result the default configuration does not work. Here's the contents of my docker-compose.yml file.

version: "3.8"
services:
  label_studio:
    image: heartexlabs/label-studio:latest
    container_name: label_studio
    ports:
      - 8508:8080
    volumes:
      - ./mydata:/label-studio/data:rw


  segment_anything_2_video:
    container_name: segment_anything_2_video
    image: humansignal/segment_anything_2_video:v0
    build:
      context: .
      args:
        TEST_ENV: ${TEST_ENV}
    environment:
      # specify these parameters if you want to use basic auth for the model server
      - BASIC_AUTH_USER=
      - BASIC_AUTH_PASS=
      # set the log level for the model server
      - LOG_LEVEL=DEBUG
      # any other parameters that you want to pass to the model server
      - ANY=PARAMETER
      # specify the number of workers and threads for the model server
      - WORKERS=1
      - THREADS=8
      # specify the model directory (likely you don't need to change this)
      - MODEL_DIR=/data/models
      # specify device
      - DEVICE=cuda  # or 'cpu' (coming soon)
      # SAM2 model config
      - MODEL_CONFIG=sam2.1_hiera_l.yaml
      # SAM2 checkpoint
      - MODEL_CHECKPOINT=sam2.1_hiera_large.pt

      # Specify the Label Studio URL and API key to access
      # uploaded, local storage and cloud storage files.
      # Do not use 'localhost' as it does not work within Docker containers.
      # Use prefix 'http://' or 'https://' for the URL always.
      # Determine the actual IP using 'ifconfig' (Linux/Mac) or 'ipconfig' (Windows).
      - LABEL_STUDIO_URL=http://label_studio:8080
      - LABEL_STUDIO_API_KEY=
      - CUDA_VISIBLE_DEVICES=0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    ports:
      - "9090:9090"
    volumes:
      - "./data:/data:rw"

volumes:
  mydata:
  data:

I set the checkpoint and the config to Sam2.1 and on running docker compose up, i encounter this error:

segment_anything_2_video  |   File "<frozen importlib._bootstrap_external>", line 883, in exec_module
segment_anything_2_video  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
segment_anything_2_video  |   File "/app/_wsgi.py", line 33, in <module>
segment_anything_2_video  |     from model import NewModel
segment_anything_2_video  |   File "/app/model.py", line 39, in <module>
segment_anything_2_video  |     predictor = build_sam2_video_predictor(MODEL_CONFIG, sam2_checkpoint)
segment_anything_2_video  |   File "/segment-anything-2/sam2/build_sam.py", line 127, in build_sam2_video_predictor
segment_anything_2_video  |     cfg = compose(config_name=config_file, overrides=hydra_overrides)
segment_anything_2_video  |   File "/opt/conda/lib/python3.10/site-packages/hydra/compose.py", line 32, in compose
segment_anything_2_video  |     assert (
segment_anything_2_video  | AssertionError: GlobalHydra is not initialized, use @hydra.main() or call one of the hydra initialization methods first
segment_anything_2_video  | [2024-10-06 21:12:17 +0000] [7] [INFO] Worker exiting (pid: 7)

Anything obvious that i'm doing wrong?

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions