Ameya729's picture
Update config.py
3d21b4a verified
"""
Configuration file for Automated Tablet Defect Detection System
"""
import os
from pathlib import Path
# ===================== PATH CONFIGURATION =====================
PROJECT_ROOT = Path(__file__).parent
DATA_DIR = PROJECT_ROOT / "capsule"
TRAIN_DIR = DATA_DIR / "train" / "good"
TEST_DIR = DATA_DIR / "test"
GROUND_TRUTH_DIR = DATA_DIR / "ground_truth"
MODEL_DIR = PROJECT_ROOT / "models"
RESULTS_DIR = PROJECT_ROOT / "results"
# Create directories if they don't exist
MODEL_DIR.mkdir(exist_ok=True)
RESULTS_DIR.mkdir(exist_ok=True)
# ===================== MODEL CONFIGURATION =====================
# Backbone architecture (ResNet18 for balance between speed and accuracy)
BACKBONE = "resnet18"
FEATURE_LAYERS = ["layer1", "layer2", "layer3"] # Multi-scale features
# Image preprocessing
IMAGE_SIZE = (224, 224) # Standard ImageNet size
MEAN = [0.485, 0.456, 0.406] # ImageNet normalization
STD = [0.229, 0.224, 0.225]
# PaDiM parameters
REDUCE_DIM = 100 # Dimensionality reduction via random projection
EPSILON = 1e-5 # Numerical stability for covariance matrix
# ===================== INFERENCE CONFIGURATION =====================
ANOMALY_THRESHOLD = 15.0 # Decision threshold for Mahalanobis distance (tunable)
HEATMAP_COLORMAP = "jet" # Colormap for visualization
HEATMAP_ALPHA = 0.4 # Overlay transparency
# ===================== TRAINING CONFIGURATION =====================
BATCH_SIZE = 32
NUM_WORKERS = 4 # Dataloader workers (set to 0 for Windows compatibility)
# ===================== EVALUATION CONFIGURATION =====================
DEFECT_TYPES = ["crack", "faulty_imprint", "poke", "scratch", "squeeze"]