Radar-Based Human Detection with ERASENet
Radar-Based Human Detection with ERASENet
Project Summary
This notebook tackles human detection from millimeter-wave radar heatmaps, a setting where weak reflections and background clutter make segmentation difficult. The workflow combines tensor-based radar visualization, a weighted pixel-wise scoring scheme, and a custom ERASENet-style segmentation model.
Tech Stack
- PyTorch
- NumPy
- scikit-learn
- Matplotlib
Key Results
- Best validation score:
0.9733 - Test score using the best checkpoint:
0.9394 - Training stabilized from an initial loss of
14.03down to0.38over 30 epochs
Problem Context
Radar is used here as a dense sensing modality for detecting humans across range and angle bins. Each sample contains six radar heatmaps plus one semantic label map, so the modeling task is framed as pixel-level segmentation over structured sensor tensors rather than standard RGB imagery.
Data Representation
The dataset stores each example as a 7 x 50 x 181 tensor:
6channels of static and dynamic radar heatmaps1semantic label map50range bins181angular bins spanning the radar field of view
The visualization below shows how a single radar sample is inspected before training.
Loaded sample tensor with shape `7 x 50 x 181` and rendered the channel-wise heatmap overview.
Scoring Logic
The competition score strongly rewards correct target-pixel recognition while still accounting for background accuracy. That weighting shaped the training strategy, especially class balancing and checkpoint selection.
Model Architecture
The core model is a custom encoder-decoder segmentation network inspired by ERASENet/UNet patterns. The code below shows the learned multi-scale feature extraction and upsampling path used to recover the radar mask.
Training Configuration
Training used AdamW, cosine annealing, and class-aware weighting to counter the strong imbalance between background and target pixels.
Using device: cuda Using class weights for heavily imbalanced segmentation targets. Epoch 1/30 | Loss: 14.0307 | Val Score: 0.7313 Epoch 6/30 | Loss: 0.7419 | Val Score: 0.9665 Epoch 14/30 | Loss: 0.4364 | Val Score: 0.9733 <- best checkpoint Epoch 30/30 | Loss: 0.3815 | Val Score: 0.9629 Training completed. Best validation score: 0.9733 Test score with best model: 0.9394