Software Libraries and Reproducibility
Reproducible RF Imaging Research
Reproducibility is the cornerstone of scientific progress. In RF imaging, reproducibility requires sharing: (1) the data or simulation code; (2) the algorithm implementation; (3) the evaluation pipeline; and (4) the exact parameters used.
The community has made significant progress in open-source tools and standardised benchmarks, but challenges remain --- especially for hardware-in-the-loop experiments. This section surveys the key software libraries and provides a recommended pipeline.
Definition: DeepInverse Library
DeepInverse Library
DeepInverse (Tachella et al., 2023) is a PyTorch library for solving imaging inverse problems with deep learning:
- Forward operators: blur, inpainting, compressed sensing, MRI, tomography. Custom operators easily added.
- Reconstruction methods: PnP-ADMM, RED, unrolled networks, diffusion posterior sampling, equivariant imaging.
- Training: supervised, self-supervised (Noise2Noise, SURE, equivariant), and unsupervised (DIP).
- Evaluation: PSNR, SSIM, LPIPS built-in.
- Pretrained denoisers: DnCNN, DRUNet, SwinIR available.
For RF imaging: define the sensing matrix as a
custom LinearPhysics operator and use any built-in
reconstruction algorithm.
Definition: ODL (Operator Discretization Library)
ODL (Operator Discretization Library)
ODL provides an abstract framework for inverse problems based on operator theory:
- Operators: define forward operators as
Operatorobjects withdomain,range, andadjoint. - Spaces: discretised function spaces with inner products.
- Solvers: Landweber, conjugate gradient, ADMM, Douglas-Rachford.
- Integration: interfaces with ASTRA (tomography), PyFFTW, and scikit-image.
ODL's operator abstraction aligns well with the sensing matrix
formalism used throughout this book: define
as an Operator and its adjoint
follows automatically.
Definition: Pyxu and PyVista
Pyxu and PyVista
Pyxu (formerly Pycsou) is a Python library for proximal algorithms:
- Proximal operators for , TV, nuclear norm, etc.
- Splitting algorithms: ADMM, primal-dual, forward-backward.
- GPU support via CuPy.
- Composable operator framework.
PyVista is a 3D visualisation library built on VTK:
- Renders voxel grids, point clouds, and meshes.
- Useful for visualising 3D RF imaging reconstructions.
- Supports isosurface extraction, volume rendering, and comparison of ground truth vs. reconstruction.
Definition: Reproducibility Checklist for RF Imaging
Reproducibility Checklist for RF Imaging
A reproducible RF imaging experiment should provide:
- Data: raw measurements or simulation code with fixed seeds.
- Code: full implementation of the reconstruction algorithm, including pre-processing and post-processing.
- Environment: software versions (Python, PyTorch, CUDA) and hardware specifications (GPU model, RAM).
- Parameters: all hyperparameters (regularisation , step sizes, network architecture, training epochs).
- Metrics: evaluation code that computes all reported metrics.
- Baselines: implementation of comparison methods under identical conditions.
Publishing code on GitHub and data on Zenodo or IEEE DataPort enables independent verification. Many top venues now require code availability for publication.
Recommended End-to-End Evaluation Pipeline
Complexity: where is the slowest algorithm's time.The pipeline should be a single executable script that produces all results from scratch. No manual intervention or cherry-picking.
Software Libraries for RF Imaging
| Library | Focus | Forward Model | Reconstruction | GPU | RF Imaging Ready |
|---|---|---|---|---|---|
| DeepInverse | Deep inverse problems | Custom operators | PnP, unrolling, diffusion | Yes | Needs custom A |
| ODL | Operator framework | Custom operators | Landweber, CG, ADMM | Limited | Needs custom A |
| Pyxu | Proximal algorithms | Custom operators | ADMM, PD, FB | Yes (CuPy) | Needs custom A |
| PyVista | 3D visualisation | N/A | N/A | N/A | Visualisation only |
| SciPy/NumPy | General scientific | Manual | lstsq, fft, optim | No | Full manual setup |
| PyTorch/TF | Deep learning | Custom | Any learned method | Yes | Full manual setup |
Example: Designing a Reproducible CS Imaging Experiment
Design a fully reproducible experiment comparing matched filter, LASSO, and a U-Net for RF image reconstruction. Specify the data, code, and evaluation pipeline.
Data
Use the CommIT simulator to generate 1000 2D scenes ( grid) from ShapeNet silhouettes. Forward model: Born approximation on a grid (avoids inverse crime). Add AWGN at SNR dB. Fix master seed to 42.
Algorithms
MF: (NumPy). LASSO: CVXPY with chosen by 5-fold cross-validation. U-Net: PyTorch, trained on 800 samples, validated on 100, tested on 100. Architecture: 4 encoder/decoder levels, 64 base channels.
Evaluation
Compute PSNR, SSIM, NMSE, at on the 100-sample test set. Report mean 95% CI. Paired -tests for all method pairs. Share all code on GitHub with installation instructions.
CommIT RF Imaging Simulator
The CommIT group has developed a modular Python simulator for RF imaging that implements the Kronecker-structured sensing model with GPU acceleration via CuPy and PyTorch. The simulator supports the full 13-phase pipeline from scene generation through Monte Carlo evaluation, and has been used for all experimental results in this book. The emphasis on geometric consistency in the forward model distinguishes it from standard channel simulators.
Publishing Measurement Data
Sharing raw measurement data enables reproducibility and benchmarking. Best practices:
- Format: HDF5 or MATLAB .mat with structured metadata (antenna positions, frequencies, timestamps, calibration).
- Documentation: include a README with measurement setup, procedure, and known issues.
- Licence: use a permissive licence (CC-BY or MIT) to encourage reuse.
- Repository: archive on Zenodo, IEEE DataPort, or a university data repository for persistent DOI.
- Baseline code: include code that loads the data and produces a basic image (matched filter or backpropagation).
Common Mistake: Unfair Algorithm Comparisons
Mistake:
Comparing a well-tuned deep learning method against an untuned classical baseline (e.g., LASSO with a suboptimal ).
Correction:
Ensure all methods are given their best chance: (1) Tune hyperparameters for each method using the validation set. (2) Use the same training/validation/test split for all methods. (3) Report the tuning procedure and final hyperparameter values. (4) Use established implementations when available (not custom reimplementations that may contain bugs). (5) Report computational cost (time, memory) alongside accuracy.
Historical Note: The Reproducibility Crisis in Science
2010sA 2016 Nature survey found that 70% of researchers had failed to reproduce another scientist's experiments, and over 50% had failed to reproduce their own. Signal processing and machine learning are not immune: a 2019 study found that fewer than 30% of NeurIPS papers provided sufficient code to reproduce results. The RF imaging community is still young enough to establish strong reproducibility norms from the start.
DeepInverse
A PyTorch library for solving imaging inverse problems with deep learning, supporting PnP, unrolling, diffusion, and self-supervised training methods.
ODL (Operator Discretization Library)
A Python framework for inverse problems based on abstract operator theory, providing operator composition, adjoint computation, and iterative solvers.
Quick Check
You want to implement PnP-ADMM for RF imaging with a pretrained DRUNet denoiser. Which library provides this out of the box?
ODL
DeepInverse
Pyxu
RadarSimPy
Correct. DeepInverse provides PnP-ADMM with pretrained DRUNet, DnCNN, and SwinIR.
Key Takeaway
DeepInverse provides ready-made PnP, unrolling, and diffusion reconstruction with pretrained denoisers. ODL and Pyxu offer abstract operator frameworks for classical algorithms. PyVista enables 3D visualisation. Reproducibility requires sharing code, data, seeds, and the complete evaluation pipeline. Fair comparisons demand equal tuning effort for all methods and identical evaluation conditions.