Upload configs/rtdetr_r50vd_open_soccer_ball_simple.yml with huggingface_hub
Browse files
configs/rtdetr_r50vd_open_soccer_ball_simple.yml
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# RF-DETR Configuration for Ball-Only Detection on Open Soccer Ball Dataset
|
| 2 |
+
# Based on rtdetr_r50vd_ball.yml, adapted for Open Soccer Ball Dataset
|
| 3 |
+
# Dataset: Pascal VOC XML format (robot's fisheye perspective)
|
| 4 |
+
|
| 5 |
+
# Model Architecture
|
| 6 |
+
model:
|
| 7 |
+
architecture: "rfdetr" # RF-DETR from Roboflow
|
| 8 |
+
backbone: "resnet50vd" # ResNet50-VD backbone
|
| 9 |
+
rfdetr_size: "base" # RF-DETR Base model (29M parameters)
|
| 10 |
+
num_classes: 1 # Ball only (class ID 0)
|
| 11 |
+
remap_mscoco_category: false # Using custom data, not COCO
|
| 12 |
+
pretrained: true # Use pre-trained weights
|
| 13 |
+
|
| 14 |
+
# Dataset Configuration
|
| 15 |
+
dataset:
|
| 16 |
+
# Source dataset in Pascal VOC XML format (will be converted to COCO)
|
| 17 |
+
voc_train_path: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/training/training"
|
| 18 |
+
voc_train_annotations: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/training/training/annotations"
|
| 19 |
+
voc_train_images: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/training/training/images"
|
| 20 |
+
voc_val_path: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/test/ball"
|
| 21 |
+
voc_val_annotations: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/test/ball/annotations"
|
| 22 |
+
voc_val_images: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/test/ball/img"
|
| 23 |
+
# Output COCO format dataset (created during conversion)
|
| 24 |
+
coco_train_path: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/training/training_coco"
|
| 25 |
+
coco_val_path: "/workspace/soccer_coach_cv/data/raw/Open Soccer Ball Dataset/test/ball_coco"
|
| 26 |
+
# COCO category name
|
| 27 |
+
category_name: "ball"
|
| 28 |
+
category_id: 0 # Single class, use ID 0
|
| 29 |
+
|
| 30 |
+
# Training Hyperparameters - Fresh Start with Augmentation (avoiding resume issues)
|
| 31 |
+
training:
|
| 32 |
+
epochs: 7 # Train for 7 epochs with enhanced augmentations
|
| 33 |
+
# Removed resume parameter to avoid RF-DETR resume bugs
|
| 34 |
+
batch_size: 2 # Reduced for memory constraints (high resolution images)
|
| 35 |
+
learning_rate: 0.0002 # 2e-4 - slightly higher for small objects
|
| 36 |
+
grad_accum_steps: 16 # Increased gradient accumulation to maintain effective batch size (2*16=32)
|
| 37 |
+
weight_decay: 0.0001 # 1e-4
|
| 38 |
+
warmup_epochs: 1 # Short warmup for stability
|
| 39 |
+
# RF-DETR specific training parameters
|
| 40 |
+
lr_encoder: null # Use default encoder learning rate
|
| 41 |
+
resolution: 1288 # High resolution to preserve tiny balls (1288=23*56, divisible by 56, close to 1280)
|
| 42 |
+
device: "cuda" # Use GPU for training
|
| 43 |
+
num_workers: 2 # Reduced data loading workers to save memory
|
| 44 |
+
|
| 45 |
+
# Simple Data Augmentation - Basic working setup
|
| 46 |
+
augmentation:
|
| 47 |
+
# Basic resize
|
| 48 |
+
resize:
|
| 49 |
+
min_size: 1288
|
| 50 |
+
max_size: 1288
|
| 51 |
+
scale_range: [1.0, 1.0]
|
| 52 |
+
|
| 53 |
+
# Basic augmentations only
|
| 54 |
+
random_crop:
|
| 55 |
+
enabled: false
|
| 56 |
+
|
| 57 |
+
mosaic:
|
| 58 |
+
enabled: false # Disable mosaic for testing
|
| 59 |
+
prob: 0.5
|
| 60 |
+
min_bbox_size: 5
|
| 61 |
+
border_margin: 10
|
| 62 |
+
|
| 63 |
+
horizontal_flip:
|
| 64 |
+
enabled: true
|
| 65 |
+
prob: 0.5
|
| 66 |
+
|
| 67 |
+
color_jitter:
|
| 68 |
+
enabled: true
|
| 69 |
+
brightness: 0.1
|
| 70 |
+
contrast: 0.1
|
| 71 |
+
saturation: 0.1
|
| 72 |
+
hue: 0.05
|
| 73 |
+
|
| 74 |
+
motion_blur:
|
| 75 |
+
enabled: false
|
| 76 |
+
|
| 77 |
+
multi_scale:
|
| 78 |
+
enabled: false
|
| 79 |
+
|
| 80 |
+
# Output Configuration
|
| 81 |
+
output:
|
| 82 |
+
output_dir: "models/ball_detection_open_soccer_ball" # Directory for checkpoints and training artifacts
|
| 83 |
+
save_frequency: 5 # Save checkpoint every N epochs
|
| 84 |
+
save_best: true # Save best model based on validation mAP
|
| 85 |
+
metric: "mAP" # Use mAP for model selection
|
| 86 |
+
|
| 87 |
+
# Evaluation Configuration
|
| 88 |
+
evaluation:
|
| 89 |
+
iou_thresholds: [0.5, 0.75] # IoU thresholds for mAP calculation
|
| 90 |
+
max_detections: 100 # Maximum detections per image
|
| 91 |
+
eval_frequency: 1 # Evaluate every N epochs (1 = every epoch)
|
| 92 |
+
test_video_path: "data/raw/real_data/F9D97C58-4877-4905-9A9F-6590FCC758FF.mp4" # First 100 frames test set
|
| 93 |
+
num_test_frames: 100 # Number of frames to evaluate
|
| 94 |
+
|
| 95 |
+
# Logging
|
| 96 |
+
logging:
|
| 97 |
+
log_dir: "logs/ball_detection_open_soccer_ball"
|
| 98 |
+
tensorboard: true
|
| 99 |
+
mlflow: true # Enable MLflow tracking
|
| 100 |
+
mlflow_tracking_uri: "file:./mlruns" # Local file-based tracking
|
| 101 |
+
mlflow_experiment_name: "ball_detection_open_soccer_ball" # MLflow experiment name
|
| 102 |
+
print_frequency: 20 # Print training stats every N iterations
|