Итак, я пытаюсь реализовать упрощенную версию вышеупомянутой бумаги в ноутбуке Kaggle, используя набор данных ADE-20K для обучения и проверки. После тестирования его на примере ввода я получаю несколько хорошую сегментацию. Однако имена классов показаны как класс 1, класс 2 и т. Д. Вместо их реальных имен. Я не могу исправить это < /p>
В файле набора данных есть текстовые файлы с названием ObjectInfo.txt и SceneCategories.txt. В моем коде я загружаю их так. < /P>
# ======================
# 2. Data Loading with Proper Class Mapping
# ======================
def load_ade20k_metadata(data_root):
"""Load class and scene metadata with robust parsing"""
classes = []
scene_map = {}
# 1. Load CLASSES from objectInfo150.txt
class_file = os.path.join(data_root, "annotations", "objectInfo150.txt")
try:
with open(class_file, 'r', encoding='utf-8') as f:
# Skip header line (Idx\tRatio\tTrain\tVal\tName)
next(f)
for line in f:
parts = line.strip().split('\t')
if len(parts) >= 5: # Ensure we have all columns
class_name = parts[4].strip().split(',')[0].strip() # Take first name before comma
classes.append(class_name)
print(f"Successfully loaded {len(classes)} classes")
print("Sample classes:", classes[:10])
except Exception as e:
print(f"Error loading classes: {e}")
classes = [f"class_{i}" for i in range(150)]
# 2. Load SCENES from sceneCategories.txt
scene_file = os.path.join(data_root, "annotations", "sceneCategories.txt")
try:
with open(scene_file, 'r', encoding='utf-8') as f:
for line in f:
if ', ' in line:
img, scene = line.strip().split(', ', 1)
scene_map[img] = scene
scenes = sorted(set(scene_map.values()))
print(f"Loaded {len(scenes)} scene categories")
except Exception as e:
print(f"Error loading scenes: {e}")
scenes = ["scene"]
scene_map = defaultdict(lambda: "scene")
return classes, scenes, scene_map
ADE20K_CLASSES, SCENE_CATEGORIES, SCENE_MAP = load_ade20k_metadata(
"/kaggle/input/ade20k-dataset/ADEChallengeData2016"
)
config.num_classes = len(ADE20K_CLASSES)
config.num_scenes = len(SCENE_CATEGORIES)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ntic-segme
Попытка внедрить CAT-SEG: агрегация затрат на семантическую сегментацию открытого вокалуара ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение