Upload src\config.py with huggingface_hub
Browse files- src//config.py +39 -0
src//config.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Конфигурация проекта детекции дефектов окраски кузова."""
|
| 2 |
+
import os
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
ROOT = Path(__file__).resolve().parent.parent
|
| 6 |
+
DATA_RAW = ROOT / "data" / "raw" # raw/defect/*.jpg, raw/clean/*.jpg
|
| 7 |
+
DATA_PATCHES = ROOT / "data" / "patches" # patches/train|val/{defect,clean}
|
| 8 |
+
CHECKPOINTS = ROOT / "checkpoints"
|
| 9 |
+
RUNS = ROOT / "runs"
|
| 10 |
+
|
| 11 |
+
# Источник исходного датасета (АвтоВАЗ ТЗ)
|
| 12 |
+
SOURCE_DATASET = ROOT.parent / "3_Дефекты_окраски_кузова(детали)" / "3_Дефекты_окраски_кузова(детали)"
|
| 13 |
+
SRC_DEFECT = SOURCE_DATASET / "Фото с дефектами"
|
| 14 |
+
SRC_CLEAN = SOURCE_DATASET / "Фото без дефектов"
|
| 15 |
+
|
| 16 |
+
# Архитектура
|
| 17 |
+
BACKBONE = os.getenv("PDD_BACKBONE", "tf_efficientnetv2_s.in21k_ft_in1k") # сильный backbone из timm
|
| 18 |
+
NUM_CLASSES = 2 # defect / clean
|
| 19 |
+
IMG_SIZE = 384 # размер патча на входе модели
|
| 20 |
+
PATCH_SIZE = 512 # размер вырезаемого патча из 4000x1846
|
| 21 |
+
PATCH_STRIDE = 256 # шаг при инференсе (50% overlap)
|
| 22 |
+
PANEL_CROP = True # автоматически вырезать панель из фона
|
| 23 |
+
|
| 24 |
+
# Тренировка
|
| 25 |
+
BATCH_SIZE = int(os.getenv("PDD_BATCH_SIZE", 16))
|
| 26 |
+
EPOCHS = int(os.getenv("PDD_EPOCHS", 40))
|
| 27 |
+
LR = float(os.getenv("PDD_LR", 3e-4))
|
| 28 |
+
WEIGHT_DECAY = 1e-4
|
| 29 |
+
LABEL_SMOOTH = 0.05
|
| 30 |
+
NUM_WORKERS = 2
|
| 31 |
+
SEED = 42
|
| 32 |
+
|
| 33 |
+
# Инференс / порог принятия решения
|
| 34 |
+
DEFECT_THRESHOLD = 0.55 # вероятность для отнесения патча к "дефект"
|
| 35 |
+
PANEL_DEFECT_RATIO = 0.005 # доля дефектных пикселей, чтобы пометить деталь как дефектную
|
| 36 |
+
|
| 37 |
+
# REST API
|
| 38 |
+
API_HOST = "0.0.0.0"
|
| 39 |
+
API_PORT = 8080
|