Include entire sam3 package instead of just sam3 and sam3.model (#327)
Summary: there are several imports within the `sam3.model` package that reference other packages within `sam3` other than `sam3` and `sam3.model` (for example [here](https://github.com/facebookresearch/sam3/blob/main/sam3/model/sam3_tracker_base.py#L15)). This fixes the package structure so that you can `pip install` the package and `import sam3` Pull Request resolved: https://github.com/facebookresearch/sam3/pull/327 Reviewed By: haithamkhedr Differential Revision: D88950127 Pulled By: lematt1991 fbshipit-source-id: 3554512d304ccdf679a9af8606bbfe1f7f2a1cfb
This commit is contained in:
committed by
meta-codesync[bot]
parent
757bbb0206
commit
b26a5f330e
@@ -89,7 +89,7 @@
|
|||||||
"from sam3 import build_sam3_image_model\n",
|
"from sam3 import build_sam3_image_model\n",
|
||||||
"from sam3.model.sam3_image_processor import Sam3Processor\n",
|
"from sam3.model.sam3_image_processor import Sam3Processor\n",
|
||||||
"\n",
|
"\n",
|
||||||
"sam3_root = os.path.join(os.path.dirname(sam3.__file__), \"..\")\n",
|
"sam3_root = os.path.dirname(sam3.__file__)\n",
|
||||||
"bpe_path = f\"{sam3_root}/assets/bpe_simple_vocab_16e6.txt.gz\"\n",
|
"bpe_path = f\"{sam3_root}/assets/bpe_simple_vocab_16e6.txt.gz\"\n",
|
||||||
"model = build_sam3_image_model(bpe_path=bpe_path)\n",
|
"model = build_sam3_image_model(bpe_path=bpe_path)\n",
|
||||||
"processor = Sam3Processor(model, confidence_threshold=0.5)"
|
"processor = Sam3Processor(model, confidence_threshold=0.5)"
|
||||||
@@ -238,5 +238,5 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
"nbformat_minor": 4
|
"nbformat_minor": 2
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,8 +82,12 @@ train = [
|
|||||||
"Homepage" = "https://github.com/facebookresearch/sam3"
|
"Homepage" = "https://github.com/facebookresearch/sam3"
|
||||||
"Bug Tracker" = "https://github.com/facebookresearch/sam3/issues"
|
"Bug Tracker" = "https://github.com/facebookresearch/sam3/issues"
|
||||||
|
|
||||||
[tool.setuptools]
|
[tool.setuptools.packages.find]
|
||||||
packages = ["sam3", "sam3.model"]
|
include = ["sam3*"]
|
||||||
|
exclude = ["build*", "scripts*", "examples*"]
|
||||||
|
|
||||||
|
[tool.setuptools.package-data]
|
||||||
|
sam3 = ["assets/*.txt.gz"]
|
||||||
|
|
||||||
[tool.setuptools.dynamic]
|
[tool.setuptools.dynamic]
|
||||||
version = {attr = "sam3.__version__"}
|
version = {attr = "sam3.__version__"}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
import os
|
import os
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
import pkg_resources
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
import torch.nn as nn
|
import torch.nn as nn
|
||||||
from huggingface_hub import hf_hub_download
|
from huggingface_hub import hf_hub_download
|
||||||
@@ -580,9 +582,10 @@ def build_sam3_image_model(
|
|||||||
A SAM3 image model
|
A SAM3 image model
|
||||||
"""
|
"""
|
||||||
if bpe_path is None:
|
if bpe_path is None:
|
||||||
bpe_path = os.path.join(
|
bpe_path = pkg_resources.resource_filename(
|
||||||
os.path.dirname(__file__), "..", "assets", "bpe_simple_vocab_16e6.txt.gz"
|
"sam3", "assets/bpe_simple_vocab_16e6.txt.gz"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create visual components
|
# Create visual components
|
||||||
compile_mode = "default" if compile else None
|
compile_mode = "default" if compile else None
|
||||||
vision_encoder = _create_vision_backbone(
|
vision_encoder = _create_vision_backbone(
|
||||||
@@ -668,8 +671,8 @@ def build_sam3_video_model(
|
|||||||
Sam3VideoInferenceWithInstanceInteractivity: The instantiated dense tracking model
|
Sam3VideoInferenceWithInstanceInteractivity: The instantiated dense tracking model
|
||||||
"""
|
"""
|
||||||
if bpe_path is None:
|
if bpe_path is None:
|
||||||
bpe_path = os.path.join(
|
bpe_path = pkg_resources.resource_filename(
|
||||||
os.path.dirname(__file__), "..", "assets", "bpe_simple_vocab_16e6.txt.gz"
|
"sam3", "assets/bpe_simple_vocab_16e6.txt.gz"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Build Tracker module
|
# Build Tracker module
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ paths:
|
|||||||
# path to the SA-Co/silver images
|
# path to the SA-Co/silver images
|
||||||
silver_img_path: <YOUR_SILVER_IMG_DIR>
|
silver_img_path: <YOUR_SILVER_IMG_DIR>
|
||||||
|
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
odinw_data_root: <YOUR_DATA_DIR>
|
odinw_data_root: <YOUR_DATA_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
||||||
# Validation transforms pipeline
|
# Validation transforms pipeline
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
odinw_data_root: <YOUR_DATA_DIR>
|
odinw_data_root: <YOUR_DATA_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
|
|
||||||
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
odinw_data_root: <YOUR_DATA_DIR>
|
odinw_data_root: <YOUR_DATA_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
|
|
||||||
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
odinw_data_root: <YOUR_DATA_DIR>
|
odinw_data_root: <YOUR_DATA_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
|
|
||||||
odinw_train:
|
odinw_train:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
odinw_data_root: <YOUR_DATA_DIR>
|
odinw_data_root: <YOUR_DATA_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
|
|
||||||
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
supercategory_tuple: ${all_odinw_supercategories.${string:${submitit.job_array.task_index}}}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
roboflow_vl_100_root: <YOUR_DATASET_DIR>
|
roboflow_vl_100_root: <YOUR_DATASET_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
# Roboflow dataset configuration
|
# Roboflow dataset configuration
|
||||||
roboflow_train:
|
roboflow_train:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ defaults:
|
|||||||
paths:
|
paths:
|
||||||
roboflow_vl_100_root: <YOUR_DATASET_DIR>
|
roboflow_vl_100_root: <YOUR_DATASET_DIR>
|
||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
|
|
||||||
# Roboflow dataset configuration
|
# Roboflow dataset configuration
|
||||||
roboflow_train:
|
roboflow_train:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_sav_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_smartglasses_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_test.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_test.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ paths:
|
|||||||
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
experiment_log_dir: <YOUR EXPERIMENET LOG_DIR>
|
||||||
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_val.json
|
ytvis_json: <YOUR_GT_PATH>/saco_veval_yt1b_val.json
|
||||||
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
ytvis_dir : <YOUR_VIDEO_JPG_DIR>
|
||||||
bpe_path: <BPE_PATH> # This should be under assets/bpe_simple_vocab_16e6.txt.gz
|
bpe_path: <BPE_PATH> # This should be under sam3/assets/bpe_simple_vocab_16e6.txt.gz
|
||||||
num_videos: null
|
num_videos: null
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user