RFI Detection Model
Inference models for binary segmentation of radio-frequency interference (RFI) in Sentinel-1 SAR data, developed as part of the OpenSAR Insight project. See the organization card for full project background, funding, and consortium details.
- Codebase: https://github.com/ESA-PhiLab/OpenSARInsight
- Project website: https://opensarinsightweb.web.uah.es/
- Training dataset: opensar-insight/rfi-detection-dataset
Model description
This repository contains the inference models for binary segmentation of RFI in range-compressed Sentinel-1 SAR data:
- Teacher model (unrestricted): an unrestricted U-Net model used as the main/teacher model.
- Student model (lightweight): a lightweight UNetSmall model, distilled from the teacher, for faster deployment.
- Additional lightweight variants trained for ablation studies (from-scratch training, and reduced base-channel counts).
All models were trained on opensar-insight/rfi-detection-dataset.
Files
| File | Role |
|---|---|
BS64_lr3e-5_focal0.6_rfi_unrestricted.pth |
Teacher model (U-Net, unrestricted) |
focal_lr1e-4_bs4_kdfeature_rfi_lightweight.pth |
Distilled student model (UNetSmall, feature KD) |
ablation_scratch_rfi_lightweight.pth |
Lightweight model trained from scratch (ablation) |
ablation_basechannel6_rfi_lightweight.pth |
Lightweight model, 6 base channels (ablation) |
ablation_basechannel8_rfi_lightweight.pth |
Lightweight model, 8 base channels (ablation) |
Input and output
Input is a 4-channel SAR tensor built from VV/VH complex range-compressed data:
[VV_I, VV_Q, VH_I, VH_Q]
Output is a single-channel binary mask for the corresponding focused L1 SLC.
Usage
These are PyTorch checkpoints (state dicts). Load them with the U-Net / UNetSmall model definitions from the backend/pipeline/RFI_usecase/ module in the codebase:
import torch
model = UNet(...) # or UNetSmall(...) for the lightweight variant
state_dict = torch.load("BS64_lr3e-5_focal0.6_rfi_unrestricted.pth", map_location="cpu")
model.load_state_dict(state_dict)
model.eval()
For dataset generation, training, and the full processing pipeline (Level-0 to range-compressed to inference), see backend/pipeline/RFI_usecase/ in the OpenSARInsight GitHub repository.
License
These model weights are distributed under the MIT License. The RFI segmentation pipeline (backend/pipeline/RFI_usecase/). See the repository LICENSE for the full breakdown.
Citation
If you use this model, please cite the OpenSAR Insight project:
@misc{opensarinsight,
title = {OpenSAR Insight: ML-ready datasets and models for direct insight generation from raw SAR data},
author = {{Indra Space} and {INTA} and {Universidad de Alcal\'a de Henares}},
howpublished = {\url{https://github.com/ESA-PhiLab/OpenSARInsight}},
note = {Funded by ESA \(\Phi\)-lab}
}