File size: 1,979 Bytes
78aefa8 7562d38 78aefa8 2ae496b 7562d38 78aefa8 2ae496b 78aefa8 7562d38 78aefa8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | """
Konfigurasi pipeline utama.
"""
import os
# PATH DIREKTORI
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
DATASET_DOMAIN = "DATA-BIMA" # Ubah sesuai domain dataset yang digunakan
RAW_DATA_DIR = os.path.join(PROJECT_ROOT, "data", "dataset_root") #Atur juga data sumber nya
LABELS_CSV = os.path.join(PROJECT_ROOT, "data", "labels.csv")
OUTPUT_DIR = os.path.join(PROJECT_ROOT, "outputs")
INTERIM_DIR = os.path.join(OUTPUT_DIR, "interim")
MASKS_DIR = os.path.join(INTERIM_DIR, "masks")
PROCESSED_DIR = os.path.join(INTERIM_DIR, "processed")
FIGURES_DIR = os.path.join(OUTPUT_DIR, "figures")
TABLES_DIR = os.path.join(OUTPUT_DIR, "tables")
LOGS_DIR = os.path.join(OUTPUT_DIR, "logs")
# Direktori untuk inspeksi visual hasil segmentasi
SEGMENTED_VIEW_DIR = os.path.join(OUTPUT_DIR, "visualized_segments")
IMAGE_EXTENSIONS = (".jpg", ".jpeg", ".JPG", ".JPEG")
FILENAME_REGEX = r"^(DAY-\d+)_([A-Za-z]+)_([A-Za-z]+)_(\d+)\.\w+$"
# PREPROCESSING
RESIZE_MAX_SIDE = 800
DENOISE_H = None
DENOISE_H_COLOR = 7
DENOISE_TEMPLATE_WINDOW = 7
DENOISE_SEARCH_WINDOW = 21
FLOODFILL_TOLERANCE = 12
FLOODFILL_MORPH_KERNEL = 7
MIN_FOREGROUND_AREA_RATIO = 0.05
# EKSTRAKSI FITUR & FUSI
SIFT_N_FEATURES = 0
SURF_HESSIAN_THRESHOLD = 500 # Nilai default optimal dari hasil tuning
MAX_DESCRIPTORS_PER_IMAGE = 800
# Kontrol Fusi Momen Warna HSV
USE_COLOR_FUSION = True
HSV_FUSION_WEIGHT = 3.0 # Nilai default optimal dari hasil tuning
# BAGS OF VISUAL WORDS
CODEBOOK_SIZES = [50, 100, 200]
DEFAULT_CODEBOOK_SIZE = 200 # Nilai default optimal dari hasil tuning
MAX_DESCRIPTORS_FOR_CODEBOOK = 200_000
MINIBATCH_KMEANS_BATCH_SIZE = 2000
# CLUSTERING (K-Means / PCA)
N_CLUSTERS_FINAL = 2
RANDOM_STATE = 42
# LOGGING
LOG_LEVEL = "INFO"
# HYPERPARAMETER TUNING OTOMATIS (NATIVE) diuji secara otomatis saat menjalankan --step tune
TUNING_HESSIAN_THRESHOLDS = [400, 500, 600]
TUNING_HSV_WEIGHTS = [2.0, 2.5, 3.0]
TUNING_CODEBOOK_SIZES = [50, 100, 200] |