Spaces:
Running
Running
🔒️ [Update] Dataset, can output data without label
Browse files- yolo/tools/data_loader.py +8 -8
- yolo/utils/dataset_utils.py +3 -1
yolo/tools/data_loader.py
CHANGED
|
@@ -32,8 +32,7 @@ from yolo.utils.dataset_utils import (
|
|
| 32 |
class YoloDataset(Dataset):
|
| 33 |
def __init__(self, config: TrainConfig, phase: str = "train2017", image_size: int = 640):
|
| 34 |
augment_cfg = config.data.data_augment
|
| 35 |
-
|
| 36 |
-
phase_name = config.dataset.auto_download.get(phase, phase)
|
| 37 |
self.image_size = image_size
|
| 38 |
|
| 39 |
transforms = [eval(aug)(prob) for aug, prob in augment_cfg.items()]
|
|
@@ -102,13 +101,14 @@ class YoloDataset(Dataset):
|
|
| 102 |
continue
|
| 103 |
with open(label_path, "r") as file:
|
| 104 |
image_seg_annotations = [list(map(float, line.strip().split())) for line in file]
|
|
|
|
|
|
|
| 105 |
|
| 106 |
labels = self.load_valid_labels(image_id, image_seg_annotations)
|
| 107 |
-
if labels is not None:
|
| 108 |
-
img_path = path.join(images_path, image_name)
|
| 109 |
-
data.append((img_path, labels))
|
| 110 |
-
valid_inputs += 1
|
| 111 |
|
|
|
|
|
|
|
|
|
|
| 112 |
logger.info("Recorded {}/{} valid inputs", valid_inputs, len(images_list))
|
| 113 |
return data
|
| 114 |
|
|
@@ -135,7 +135,7 @@ class YoloDataset(Dataset):
|
|
| 135 |
return torch.stack(bboxes)
|
| 136 |
else:
|
| 137 |
logger.warning("No valid BBox in {}", label_path)
|
| 138 |
-
return
|
| 139 |
|
| 140 |
def get_data(self, idx):
|
| 141 |
img_path, bboxes = self.data[idx]
|
|
@@ -161,7 +161,7 @@ class YoloDataLoader(DataLoader):
|
|
| 161 |
def __init__(self, config: Config):
|
| 162 |
"""Initializes the YoloDataLoader with hydra-config files."""
|
| 163 |
data_cfg = config.task.data
|
| 164 |
-
dataset = YoloDataset(config.task)
|
| 165 |
|
| 166 |
super().__init__(
|
| 167 |
dataset,
|
|
|
|
| 32 |
class YoloDataset(Dataset):
|
| 33 |
def __init__(self, config: TrainConfig, phase: str = "train2017", image_size: int = 640):
|
| 34 |
augment_cfg = config.data.data_augment
|
| 35 |
+
phase_name = config.dataset.get(phase, phase)
|
|
|
|
| 36 |
self.image_size = image_size
|
| 37 |
|
| 38 |
transforms = [eval(aug)(prob) for aug, prob in augment_cfg.items()]
|
|
|
|
| 101 |
continue
|
| 102 |
with open(label_path, "r") as file:
|
| 103 |
image_seg_annotations = [list(map(float, line.strip().split())) for line in file]
|
| 104 |
+
else:
|
| 105 |
+
image_seg_annotations = []
|
| 106 |
|
| 107 |
labels = self.load_valid_labels(image_id, image_seg_annotations)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
|
| 109 |
+
img_path = path.join(images_path, image_name)
|
| 110 |
+
data.append((img_path, labels))
|
| 111 |
+
valid_inputs += 1
|
| 112 |
logger.info("Recorded {}/{} valid inputs", valid_inputs, len(images_list))
|
| 113 |
return data
|
| 114 |
|
|
|
|
| 135 |
return torch.stack(bboxes)
|
| 136 |
else:
|
| 137 |
logger.warning("No valid BBox in {}", label_path)
|
| 138 |
+
return torch.zeros((0, 5))
|
| 139 |
|
| 140 |
def get_data(self, idx):
|
| 141 |
img_path, bboxes = self.data[idx]
|
|
|
|
| 161 |
def __init__(self, config: Config):
|
| 162 |
"""Initializes the YoloDataLoader with hydra-config files."""
|
| 163 |
data_cfg = config.task.data
|
| 164 |
+
dataset = YoloDataset(config.task, config.task.task)
|
| 165 |
|
| 166 |
super().__init__(
|
| 167 |
dataset,
|
yolo/utils/dataset_utils.py
CHANGED
|
@@ -5,6 +5,7 @@ from os import path
|
|
| 5 |
from typing import Any, Dict, List, Optional, Tuple
|
| 6 |
|
| 7 |
import numpy as np
|
|
|
|
| 8 |
|
| 9 |
from yolo.tools.data_conversion import discretize_categories
|
| 10 |
|
|
@@ -32,7 +33,8 @@ def locate_label_paths(dataset_path: str, phase_name: str):
|
|
| 32 |
if txt_files:
|
| 33 |
return txt_labels_path, "txt"
|
| 34 |
|
| 35 |
-
|
|
|
|
| 36 |
|
| 37 |
|
| 38 |
def create_image_metadata(labels_path: str) -> Tuple[Dict[str, List], Dict[str, Dict]]:
|
|
|
|
| 5 |
from typing import Any, Dict, List, Optional, Tuple
|
| 6 |
|
| 7 |
import numpy as np
|
| 8 |
+
from loguru import logger
|
| 9 |
|
| 10 |
from yolo.tools.data_conversion import discretize_categories
|
| 11 |
|
|
|
|
| 33 |
if txt_files:
|
| 34 |
return txt_labels_path, "txt"
|
| 35 |
|
| 36 |
+
logger.warning("No labels found in the specified dataset path and phase name.")
|
| 37 |
+
return [], None
|
| 38 |
|
| 39 |
|
| 40 |
def create_image_metadata(labels_path: str) -> Tuple[Dict[str, List], Dict[str, Dict]]:
|