Spaces:
Sleeping
Sleeping
| import albumentations as A | |
| import cv2 | |
| import torch | |
| from albumentations.pytorch import ToTensorV2 | |
| from utils.utils import seed_everything | |
| DATASET = "PASCAL_VOC" | |
| DEVICE = "cuda" if torch.cuda.is_available() else "cpu" | |
| # seed_everything() # If you want deterministic behavior | |
| DEVICE_COUNT = torch.cuda.device_count() | |
| NUM_WORKERS = 0 | |
| BATCH_SIZE = 128 | |
| SHUFFLE = True | |
| IMAGE_SIZE = 416 | |
| NUM_CLASSES = 20 | |
| LEARNING_RATE = 1e-3 | |
| WEIGHT_DECAY = 1e-4 | |
| NUM_EPOCHS = 40 | |
| CONF_THRESHOLD = 0.05 | |
| MAP_IOU_THRESH = 0.5 | |
| NMS_IOU_THRESH = 0.45 | |
| S = [IMAGE_SIZE // 32, IMAGE_SIZE // 16, IMAGE_SIZE // 8] | |
| PIN_MEMORY = True | |
| LOAD_MODEL = False | |
| SAVE_MODEL = True | |
| CHECKPOINT_FILE = "checkpoint.pth.tar" | |
| IMG_DIR = DATASET + "/images/" | |
| LABEL_DIR = DATASET + "/labels/" | |
| P_MOSAIC = 0.5 | |
| ANCHORS = [ | |
| [(0.28, 0.22), (0.38, 0.48), (0.9, 0.78)], | |
| [(0.07, 0.15), (0.15, 0.11), (0.14, 0.29)], | |
| [(0.02, 0.03), (0.04, 0.07), (0.08, 0.06)], | |
| ] # Note these have been rescaled to be between [0, 1] | |
| means = [0.485, 0.456, 0.406] | |
| scale = 1.1 | |
| train_transforms = A.Compose( | |
| [ | |
| A.LongestMaxSize(max_size=int(IMAGE_SIZE * scale)), | |
| A.PadIfNeeded( | |
| min_height=int(IMAGE_SIZE * scale), | |
| min_width=int(IMAGE_SIZE * scale), | |
| border_mode=cv2.BORDER_CONSTANT, | |
| ), | |
| A.Rotate(limit=10, interpolation=1, border_mode=4), | |
| A.RandomCrop(width=IMAGE_SIZE, height=IMAGE_SIZE), | |
| A.ColorJitter(brightness=0.6, contrast=0.6, saturation=0.6, hue=0.6, p=0.4), | |
| A.OneOf( | |
| [ | |
| A.ShiftScaleRotate( | |
| rotate_limit=20, p=0.5, border_mode=cv2.BORDER_CONSTANT | |
| ), | |
| # A.Affine(shear=15, p=0.5, mode="constant"), | |
| ], | |
| p=1.0, | |
| ), | |
| A.HorizontalFlip(p=0.5), | |
| A.Blur(p=0.1), | |
| A.CLAHE(p=0.1), | |
| A.Posterize(p=0.1), | |
| A.ToGray(p=0.1), | |
| A.ChannelShuffle(p=0.05), | |
| A.Normalize( | |
| mean=[0, 0, 0], | |
| std=[1, 1, 1], | |
| max_pixel_value=255, | |
| ), | |
| ToTensorV2(), | |
| ], | |
| bbox_params=A.BboxParams( | |
| format="yolo", | |
| min_visibility=0.4, | |
| label_fields=[], | |
| ), | |
| ) | |
| test_transforms = A.Compose( | |
| [ | |
| A.LongestMaxSize(max_size=IMAGE_SIZE), | |
| A.PadIfNeeded( | |
| min_height=IMAGE_SIZE, min_width=IMAGE_SIZE, border_mode=cv2.BORDER_CONSTANT | |
| ), | |
| A.Normalize( | |
| mean=[0, 0, 0], | |
| std=[1, 1, 1], | |
| max_pixel_value=255, | |
| ), | |
| ToTensorV2(), | |
| ], | |
| bbox_params=A.BboxParams(format="yolo", min_visibility=0.4, label_fields=[]), | |
| ) | |
| PASCAL_CLASSES = [ | |
| "aeroplane", | |
| "bicycle", | |
| "bird", | |
| "boat", | |
| "bottle", | |
| "bus", | |
| "car", | |
| "cat", | |
| "chair", | |
| "cow", | |
| "diningtable", | |
| "dog", | |
| "horse", | |
| "motorbike", | |
| "person", | |
| "pottedplant", | |
| "sheep", | |
| "sofa", | |
| "train", | |
| "tvmonitor", | |
| ] | |
| COCO_LABELS = [ | |
| "person", | |
| "bicycle", | |
| "car", | |
| "motorcycle", | |
| "airplane", | |
| "bus", | |
| "train", | |
| "truck", | |
| "boat", | |
| "traffic light", | |
| "fire hydrant", | |
| "stop sign", | |
| "parking meter", | |
| "bench", | |
| "bird", | |
| "cat", | |
| "dog", | |
| "horse", | |
| "sheep", | |
| "cow", | |
| "elephant", | |
| "bear", | |
| "zebra", | |
| "giraffe", | |
| "backpack", | |
| "umbrella", | |
| "handbag", | |
| "tie", | |
| "suitcase", | |
| "frisbee", | |
| "skis", | |
| "snowboard", | |
| "sports ball", | |
| "kite", | |
| "baseball bat", | |
| "baseball glove", | |
| "skateboard", | |
| "surfboard", | |
| "tennis racket", | |
| "bottle", | |
| "wine glass", | |
| "cup", | |
| "fork", | |
| "knife", | |
| "spoon", | |
| "bowl", | |
| "banana", | |
| "apple", | |
| "sandwich", | |
| "orange", | |
| "broccoli", | |
| "carrot", | |
| "hot dog", | |
| "pizza", | |
| "donut", | |
| "cake", | |
| "chair", | |
| "couch", | |
| "potted plant", | |
| "bed", | |
| "dining table", | |
| "toilet", | |
| "tv", | |
| "laptop", | |
| "mouse", | |
| "remote", | |
| "keyboard", | |
| "cell phone", | |
| "microwave", | |
| "oven", | |
| "toaster", | |
| "sink", | |
| "refrigerator", | |
| "book", | |
| "clock", | |
| "vase", | |
| "scissors", | |
| "teddy bear", | |
| "hair drier", | |
| "toothbrush", | |
| ] | |