opensportslib 0.1.2.dev8__tar.gz → 0.1.2.dev10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {opensportslib-0.1.2.dev8/opensportslib.egg-info → opensportslib-0.1.2.dev10}/PKG-INFO +1 -1
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/classification_dataset.py +8 -10
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10/opensportslib.egg-info}/PKG-INFO +1 -1
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib.egg-info/SOURCES.txt +3 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/pyproject.toml +1 -1
- opensportslib-0.1.2.dev10/tests/test_classification_dataset_paths.py +74 -0
- opensportslib-0.1.2.dev10/tools/convert/build_soccernet_gar.py +1089 -0
- opensportslib-0.1.2.dev10/tools/convert/build_soccernet_gar_action_spotting.py +289 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/LICENSE +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/LICENSE-COMMERCIAL +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/MANIFEST.in +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/README.md +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/examples/quickstart/basic_classification.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/examples/quickstart/basic_localization.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/apis/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/apis/base_task_model.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/apis/classification.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/apis/localization.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/cli.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/classification.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/localization-e2e-ocv.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/localization-json_calf_resnetpca512.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/localization-json_netvlad++_resnetpca512.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/localization.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/sngar-frames.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/config/sngar-tracking.yaml +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/calf.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/ce.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/combine.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/loss/nll.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/optimizer/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/optimizer/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/sampler/weighted_sampler.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/scheduler/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/scheduler/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/trainer/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/trainer/classification_trainer.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/trainer/localization_trainer.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/checkpoint.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/config.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/data.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/ddp.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/default_args.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/lightning.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/load_annotations.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/seed.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/video_processing.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/core/utils/wandb.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/localization_dataset.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/utils/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/datasets/utils/tracking.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/metrics/classification_metric.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/metrics/localization_metric.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/backbones/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/contextaware.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/e2e.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/learnablepooling.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/tracking.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/vars.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/video.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/base/video_mae.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/heads/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/neck/builder.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/common.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/asformer.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/calf.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/gsm.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/gtad.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/impl/tsm.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/litebase.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/modules.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/shift.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/models/utils/utils.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/setup/setup.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/tools/__init__.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/tools/_common.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/tools/hf_transfer.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/tools/osl_json_to_parquet.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib/tools/parquet_to_osl_json.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib.egg-info/dependency_links.txt +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib.egg-info/entry_points.txt +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib.egg-info/requires.txt +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/opensportslib.egg-info/top_level.txt +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/setup.cfg +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/conftest.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_config_utils_smoke.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_conversion_tools.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_hf_transfer_tools.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_package_smoke.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_public_apis_smoke.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_subset_train_infer_integration.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tests/test_task_model_api_contract.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/convert/osl_json_to_parquet_webdataset.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/convert/parquet_webdataset_to_osl_json.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/download/download_hf_repo.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/download/download_osl_hf.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/download/upload_osl_hf.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/training/classification.py +0 -0
- {opensportslib-0.1.2.dev8 → opensportslib-0.1.2.dev10}/tools/training/localization.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opensportslib
|
|
3
|
-
Version: 0.1.2.
|
|
3
|
+
Version: 0.1.2.dev10
|
|
4
4
|
Summary: OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data.
|
|
5
5
|
Author: Jeet Vora
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -73,7 +73,7 @@ class ClassificationDataset(Dataset):
|
|
|
73
73
|
self.config = config
|
|
74
74
|
self.split = split
|
|
75
75
|
self.exclude_labels = ["Unknown", "Dont know"]
|
|
76
|
-
self.
|
|
76
|
+
self.video_path = getattr(config.DATA, split).video_path #config.DATA.data_dir
|
|
77
77
|
self.processor = None
|
|
78
78
|
|
|
79
79
|
# view_type is optional; only MVFoul uses it as of now
|
|
@@ -197,7 +197,7 @@ class VideoDataset(ClassificationDataset):
|
|
|
197
197
|
"""
|
|
198
198
|
|
|
199
199
|
def __init__(self, config, annotations_path, processor, split="train"):
|
|
200
|
-
super().__init__(config, annotations_path, split)
|
|
200
|
+
super().__init__(config, annotations_path, processor, split=split)
|
|
201
201
|
|
|
202
202
|
self.processor = processor
|
|
203
203
|
self.view_type = getattr(config.DATA, "view_type", "single")
|
|
@@ -227,15 +227,13 @@ class VideoDataset(ClassificationDataset):
|
|
|
227
227
|
"""read a video file, temporally sub-sample, and apply transforms.
|
|
228
228
|
|
|
229
229
|
Args:
|
|
230
|
-
path: realtive path (under
|
|
230
|
+
path: realtive path (under video_path) to the video file.
|
|
231
231
|
|
|
232
232
|
Returns:
|
|
233
233
|
numpy.ndarray of shape (T, H, W, C).
|
|
234
234
|
"""
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if full_path.endswith(".npy"):
|
|
238
|
-
frames = np.load(full_path).astype(np.float32) / 255.0
|
|
235
|
+
if path.endswith(".npy"):
|
|
236
|
+
frames = np.load(path).astype(np.float32) / 255.0
|
|
239
237
|
if self.transform is not None:
|
|
240
238
|
frames = self.transform(frames)
|
|
241
239
|
mean = np.array([0.485, 0.456, 0.406], dtype=np.float32)
|
|
@@ -243,7 +241,7 @@ class VideoDataset(ClassificationDataset):
|
|
|
243
241
|
frames = (frames - mean) / std
|
|
244
242
|
return frames
|
|
245
243
|
|
|
246
|
-
v = read_video(os.path.join(self.
|
|
244
|
+
v = read_video(os.path.join(self.video_path, path))
|
|
247
245
|
|
|
248
246
|
v = process_frames(
|
|
249
247
|
v,
|
|
@@ -473,7 +471,7 @@ class TrackingDataset(ClassificationDataset):
|
|
|
473
471
|
"""read a single parquet tracking clip.
|
|
474
472
|
|
|
475
473
|
Args:
|
|
476
|
-
path: Relative path (under ``
|
|
474
|
+
path: Relative path (under ``video_path``) to the parquet
|
|
477
475
|
file.
|
|
478
476
|
|
|
479
477
|
Returns:
|
|
@@ -481,7 +479,7 @@ class TrackingDataset(ClassificationDataset):
|
|
|
481
479
|
"""
|
|
482
480
|
import pandas as pd
|
|
483
481
|
|
|
484
|
-
full_path = os.path.join(self.
|
|
482
|
+
full_path = os.path.join(self.video_path, path)
|
|
485
483
|
return pd.read_parquet(full_path)
|
|
486
484
|
|
|
487
485
|
def __getitem__(self, idx):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: opensportslib
|
|
3
|
-
Version: 0.1.2.
|
|
3
|
+
Version: 0.1.2.dev10
|
|
4
4
|
Summary: OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data.
|
|
5
5
|
Author: Jeet Vora
|
|
6
6
|
Requires-Python: >=3.12
|
|
@@ -87,6 +87,7 @@ opensportslib/tools/hf_transfer.py
|
|
|
87
87
|
opensportslib/tools/osl_json_to_parquet.py
|
|
88
88
|
opensportslib/tools/parquet_to_osl_json.py
|
|
89
89
|
tests/conftest.py
|
|
90
|
+
tests/test_classification_dataset_paths.py
|
|
90
91
|
tests/test_config_utils_smoke.py
|
|
91
92
|
tests/test_conversion_tools.py
|
|
92
93
|
tests/test_hf_transfer_tools.py
|
|
@@ -94,6 +95,8 @@ tests/test_package_smoke.py
|
|
|
94
95
|
tests/test_public_apis_smoke.py
|
|
95
96
|
tests/test_subset_train_infer_integration.py
|
|
96
97
|
tests/test_task_model_api_contract.py
|
|
98
|
+
tools/convert/build_soccernet_gar.py
|
|
99
|
+
tools/convert/build_soccernet_gar_action_spotting.py
|
|
97
100
|
tools/convert/osl_json_to_parquet_webdataset.py
|
|
98
101
|
tools/convert/parquet_webdataset_to_osl_json.py
|
|
99
102
|
tools/download/download_hf_repo.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "opensportslib"
|
|
7
|
-
version = "0.1.2.
|
|
7
|
+
version = "0.1.2.dev10"
|
|
8
8
|
description = "OpenSportsLib is the professional library, designed for advanced video understanding in sports. It provides state-of-the-art tools for action recognition, spotting, retrieval, and captioning, making it ideal for researchers, analysts, and developers working with sports video data."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from types import SimpleNamespace
|
|
4
|
+
|
|
5
|
+
import opensportslib.datasets.classification_dataset as classification_dataset
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _write_classification_annotation(path: Path) -> str:
|
|
9
|
+
payload = {
|
|
10
|
+
"labels": {
|
|
11
|
+
"action": {"labels": ["PASS"]},
|
|
12
|
+
},
|
|
13
|
+
"data": [
|
|
14
|
+
{
|
|
15
|
+
"id": "sample_00000",
|
|
16
|
+
"inputs": [
|
|
17
|
+
{
|
|
18
|
+
"type": "video",
|
|
19
|
+
"path": "clips/video_00000.mp4",
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"labels": {
|
|
23
|
+
"action": {"label": "PASS"},
|
|
24
|
+
},
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
}
|
|
28
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
29
|
+
path.write_text(json.dumps(payload), encoding="utf-8")
|
|
30
|
+
return str(path)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _make_config(data_dir: Path, valid_video_root: Path) -> SimpleNamespace:
|
|
34
|
+
return SimpleNamespace(
|
|
35
|
+
DATA=SimpleNamespace(
|
|
36
|
+
data_dir=str(data_dir),
|
|
37
|
+
data_modality="video",
|
|
38
|
+
view_type="single",
|
|
39
|
+
num_frames=16,
|
|
40
|
+
input_fps=25,
|
|
41
|
+
target_fps=17,
|
|
42
|
+
start_frame=0,
|
|
43
|
+
end_frame=15,
|
|
44
|
+
train=SimpleNamespace(video_path=str(data_dir / "train_root")),
|
|
45
|
+
valid=SimpleNamespace(video_path=str(valid_video_root)),
|
|
46
|
+
test=SimpleNamespace(video_path=str(data_dir / "test_root")),
|
|
47
|
+
),
|
|
48
|
+
MODEL=SimpleNamespace(type="custom"),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def test_video_dataset_resolves_relative_paths_from_selected_split_root(
|
|
53
|
+
tmp_path,
|
|
54
|
+
monkeypatch,
|
|
55
|
+
):
|
|
56
|
+
annotation_path = _write_classification_annotation(tmp_path / "annotations" / "valid.json")
|
|
57
|
+
data_dir = tmp_path / "dataset_root"
|
|
58
|
+
valid_video_root = tmp_path / "separate_valid_root"
|
|
59
|
+
config = _make_config(data_dir, valid_video_root)
|
|
60
|
+
|
|
61
|
+
monkeypatch.setattr(classification_dataset, "build_transform", lambda config, mode: None)
|
|
62
|
+
|
|
63
|
+
dataset = classification_dataset.VideoDataset(
|
|
64
|
+
config,
|
|
65
|
+
annotation_path,
|
|
66
|
+
processor=None,
|
|
67
|
+
split="valid",
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
resolved_path = Path(dataset.samples[0]["video_paths"][0])
|
|
71
|
+
|
|
72
|
+
assert dataset.split == "valid"
|
|
73
|
+
assert resolved_path.is_absolute()
|
|
74
|
+
assert resolved_path == valid_video_root / "clips" / "video_00000.mp4"
|