Back

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.03 down to 0.38 over 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:

  • 6 channels of static and dynamic radar heatmaps
  • 1 semantic label map
  • 50 range bins
  • 181 angular bins spanning the radar field of view

The visualization below shows how a single radar sample is inspected before training.

In [10]
Output visualization
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.

In [13]

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.

In [19]

Training Configuration

Training used AdamW, cosine annealing, and class-aware weighting to counter the strong imbalance between background and target pixels.

In [20]
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