| """ | |
| Konfigurasi terpusat pipeline computer vision deteksi mutu kesegaran daging sapi. | |
| Ubah nilai di sini sesuai kebutuhan; jangan ubah logika di dalam modul src/. | |
| """ | |
| import os | |
| # --------------------------------------------------------------------------- | |
| # PATH DIREKTORI | |
| # --------------------------------------------------------------------------- | |
| PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) | |
| RAW_DATA_DIR = os.path.join(PROJECT_ROOT, "data", "dataset_root") | |
| 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 = [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) | |
| # --------------------------------------------------------------------------- | |
| # Rentang angka yang akan 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] |