export AM_I_DOCKER=False
export BUILD_WITH_CUDA=True
export CUDA_HOME=/usr/local/cuda-12.1/
python -m pip install -e segment_anything
pip install --no-build-isolation -e GroundingDINO
pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel
cd checkpoints
bash download_ckpts.sh
cd gdino_checkpoints
bash download_ckpts.sh
pip3 install torch torchvision torchaudio
(가장 추천하는 방법)CUDA environment variables
have been set correctly Grounding DINO Installation
for more details). environment variable
manually as follows export CUDA_HOME=/usr/local/cuda-12.1/
pip install -e .
pip install --no-build-isolation -e grounding_dino
Grounding DINO
가 이미 Huggingface를 통해 지원됩니다.Grounded SAM 2
model을 돌리기 위해 2가지 선택지를 제공합니다.simple and clear
)python grounded_sam2_hf_model_demo.py
[!NOTE]
🚨 If you encounter network issues while using theHuggingFace
model, you can resolve them by setting the appropriate mirror source asexport HF_ENDPOINT=https://hf-mirror.com
local pretrained Grounding DINO checkpoint
and inference with Grounding DINO original API
python grounded_sam2_local_demo.py
API token
first and run Grounded SAM 2 with Grounding DINO 1.5 as follows:pip install dds-cloudapi-sdk
python grounded_sam2_gd1.5_demo.py
Based on the strong tracking capability of SAM 2, we can combined it with Grounding DINO for open-set object segmentation and tracking. You can run the following scripts to get the tracking results with Grounded SAM 2:
python grounded_sam2_tracking_demo.py
./tracking_results
children_tracking_demo_video.mp4
We've supported different types of prompt for Grounded SAM 2 tracking demo:
assets/hippopotamus.mp4
)을 업로드하고, python grounded_sam2_tracking_demo_custom_video_input_gd1.5.py
OUTPUT_VIDEO_PATH
에 자동으로 저장됩니다.VIDEO_PATH = "./assets/hippopotamus.mp4" # 사용자 비디오 파일 경로
TEXT_PROMPT = "hippopotamus." # 추적할 객체에 대한 텍스트 프롬프트
OUTPUT_VIDEO_PATH = "./hippopotamus_tracking_demo.mp4" # 출력 비디오 경로
API_TOKEN_FOR_GD1_5 = "Your API token" # Grounding DINO 1.5용 API 토큰
PROMPT_TYPE_FOR_VIDEO = "mask" # SAM 2 마스크 예측을 비디오 예측자의 프롬프트로 사용
ann_frame_idx
를 직접 수정할 수 있습니다.특정 프레임에서만 Grounded SAM 2를 프롬프트로 사용
이 기능은 아직 개발 중이며 현재는 완전히 안정적이지 않습니다.
python grounded_sam2_tracking_demo_with_continuous_id.py
python grounded_sam2_tracking_demo_with_continuous_id_gd1.5.py
python grounded_sam2_tracking_demo_with_continuous_id_plus.py
작업 | 작업 프롬프트 | 텍스트 입력 | 작업 설명 |
---|---|---|---|
객체 감지 | <OD> | ✘ | 단일 카테고리 이름으로 주요 객체 감지 |
밀집 영역 캡션 | <DENSE_REGION_CAPTION> | ✘ | 짧은 설명으로 주요 객체 감지 |
영역 제안 | <REGION_PROPOSAL> | ✘ | 카테고리 이름 없이 제안 생성 |
구문 연결 | <CAPTION_TO_PHRASE_GROUNDING> | ✔ | 캡션에 언급된 이미지 내 주요 객체 연결 |
참조 표현 세분화 | <REFERRING_EXPRESSION_SEGMENTATION> | ✔ | 텍스트 입력과 가장 관련 있는 객체 연결 |
오픈 보케블러리 감지 및 세분화 | <OPEN_VOCABULARY_DETECTION> | ✔ | 텍스트 입력으로 모든 객체 연결 |
HF_ENDPOINT=https://hf-mirror.com
설정을 통해 해결할 수 있습니다.python grounded_sam2_florence2_image_demo.py \
--pipeline object_detection_segmentation \
--image_path ./notebooks/images/cars.jpg
python grounded_sam2_florence2_image_demo.py \
--pipeline dense_region_caption_segmentation \
--image_path ./notebooks/images/cars.jpg
python grounded_sam2_florence2_image_demo.py \
--pipeline region_proposal_segmentation \
--image_path ./notebooks/images/cars.jpg
python grounded_sam2_florence2_image_demo.py \
--pipeline phrase_grounding_segmentation \
--image_path ./notebooks/images/cars.jpg \
--text_input "The image shows two vintage Chevrolet cars parked side by side, with one being a red convertible and the other a pink sedan, \
set against the backdrop of an urban area with a multi-story building and trees. \
The cars have Cuban license plates, indicating a location likely in Cuba."
python grounded_sam2_florence2_image_demo.py \
--pipeline referring_expression_segmentation \
--image_path ./notebooks/images/cars.jpg \
--text_input "The left red car."
python grounded_sam2_florence2_image_demo.py \
--pipeline open_vocabulary_detection_segmentation \
--image_path ./notebooks/images/cars.jpg \
--text_input "car <and> building"
참고: 여러 객체를 감지하려면 입력 텍스트에서 <and>
로 객체를 구분해야 합니다.
작업 | 작업 프롬프트 | 텍스트 입력 |
---|---|---|
캡션 + 구문 연결 | <CAPTION> + <CAPTION_TO_PHRASE_GROUNDING> | ✘ |
상세 캡션 + 구문 연결 | <DETAILED_CAPTION> + <CAPTION_TO_PHRASE_GROUNDING> | ✘ |
더 상세한 캡션 + 구문 연결 | <MORE_DETAILED_CAPTION> + <CAPTION_TO_PHRASE_GROUNDING> | ✘ |
다음 스크립트를 사용하여 이러한 데모를 실행할 수 있습니다:
python grounded_sam2_florence2_autolabel_pipeline.py \
--image_path ./notebooks/images/groceries.jpg \
--pipeline caption_to_phrase_grounding \
--caption_type caption
참고: 캡션의 세분화 수준을 제어하려면 caption_type
을 지정할 수 있습니다. 더 상세한 캡션을 원할 경우, --caption_type detailed_caption
또는 --caption_type more_detailed_caption
을 시도해보세요.