seacluttersuppression
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: pepijn-lens
- License: mit
- Language: Python
- Default Branch: main
- Size: 344 MB
Statistics
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
End-to-End Target Detection in Range-Doppler Maps with Temporal U-Nets
This repository contains the code developed as part of my BSc thesis at Leiden University and internship at TNO, titled:
End-to-End Target Detection in Range-Doppler Maps with Temporal U-Nets: Deep Learning Approaches for Maritime Radar
Overview
The aim of this project is to evaluate and compare the performance of deep learning models in maritime radar target detection, specifically focusing on sea clutter suppression. The pipeline includes:
- Image segmentation via a U-Net-based architecture
- Synthetic radar and sea clutter simulation
This work demonstrates how AI, particularly deep learning, can be applied to real-world signal processing problems in radar technology.
Getting Started
With pip install
- Create a virtual environment and install the required packages:
- python -m venv venv
- source venv/bin/activate # or venv\Scripts\activate on Windows
- pip install -r requirements.txt
With uv sync
- Make sure to have poetry and uv installed on the device
- Do uv sync
Usage
Marimo Notebook usage
This repository includes a Marimo notebook which allows its users to design their own sea cluttered Range Doppler maps, generate a dataset and finally train a Unet on it. Use the following command to run:
bash
marimo run app.py
Interactive evaluation
After training a model on a dataset, there is the option to visualize the performance of the model with an interactive interface. Use the following command:
bash
python -m src.end_to_end_evaluate --model [PATH_TO_UNET_MODEL] --dataset [PATH_TO_DATA] --base-filter-size [NUMBER_OF_BASE_FILTERS] --interactive
Notice that the training data had to be saved in the generation section of the marimo app in order to use this feature. The number of base filters parameters are defined in the training section of the marimo app.
Citation
If you use this work in your research, please cite this repository as described below or see the CITATION.cff file for citation formats:
bibtex
@software{Lens_SeaClutterSuppression_2025,
author = {Pepijn Lens},
title = {Threshold-Tunable U-Net for Small Target Detection in Maritime Radar: An Alternative to CFAR},
url = {https://github.com/pepijn-lens/SeaClutterSuppression},
year = {2025},
note = {BSc thesis at Leiden University and internship at TNO}
}
Acknowledgments
I would like to thank my supervisors:
- Bas Jacobs
- Giuseppe Papari
- Peter van der Putten
- Daan Pelt
Future Work
- Training on real-world radar datasets
License
This project is licensed under the MIT License - see the LICENSE file for details.
Owner
- Name: pepijn-lens
- Login: pepijn-lens
- Kind: user
- Repositories: 1
- Profile: https://github.com/pepijn-lens
Citation (CITATION.cff)
cff-version: 1.2.0
title: "End-to-End Target Detection in Range-Doppler Maps with Temporal U-Nets: Deep Learning Approaches for Maritime Radar"
authors:
- family-names: Lens
given-names: Pepijn
affiliation: "Leiden University and TNO"
year: 2025
message: "If you use this work, please cite this repository."
repository-code: "https://github.com/pepijn-lens/SeaClutterSuppression"
type: software
license: "MIT"
GitHub Events
Total
- Watch event: 3
- Push event: 25
Last Year
- Watch event: 3
- Push event: 25
Dependencies
- Jinja2 ==3.1.6
- Markdown ==3.8
- MarkupSafe ==3.0.2
- PyYAML ==6.0.2
- Pygments ==2.19.1
- anyio ==4.9.0
- click ==8.2.1
- contourpy ==1.3.2
- cycler ==0.12.1
- docutils ==0.21.2
- einops ==0.8.1
- filelock ==3.18.0
- fonttools ==4.58.4
- fsspec ==2025.5.1
- h11 ==0.16.0
- idna ==3.10
- itsdangerous ==2.2.0
- jedi ==0.19.2
- joblib ==1.5.1
- kiwisolver ==1.4.8
- loro ==1.5.1
- marimo ==0.13.15
- matplotlib ==3.10.3
- mergedeep ==1.3.4
- mpmath ==1.3.0
- narwhals ==1.43.0
- networkx ==3.5
- numpy ==2.3.0
- opencv-python ==4.11.0.86
- ordered-set ==4.1.0
- packaging ==25.0
- pandas ==2.3.0
- parso ==0.8.4
- pillow ==11.2.1
- plotly ==6.1.2
- psutil ==7.0.0
- pymap3d ==3.1.0
- pymdown-extensions ==10.15
- pyparsing ==3.2.3
- python-dateutil ==2.9.0.post0
- pytz ==2025.2
- rtree ==1.4.0
- ruamel.yaml ==0.18.14
- ruamel.yaml.clib ==0.2.12
- scikit-learn ==1.7.0
- scipy ==1.15.3
- seaborn ==0.13.2
- setuptools ==80.9.0
- six ==1.17.0
- sniffio ==1.3.1
- starlette ==0.47.0
- stonesoup ==1.6
- sympy ==1.14.0
- threadpoolctl ==3.6.0
- tomlkit ==0.13.3
- torch ==2.7.1
- tqdm ==4.67.1
- typing_extensions ==4.14.0
- tzdata ==2025.2
- utm ==0.8.1
- uvicorn ==0.34.3
- websockets ==15.0.1
- Jinja2 ==3.1.6
- Markdown ==3.8
- MarkupSafe ==3.0.2
- PyYAML ==6.0.2
- Pygments ==2.19.1
- anyio ==4.9.0
- click ==8.2.1
- contourpy ==1.3.2
- cycler ==0.12.1
- docutils ==0.21.2
- einops ==0.8.1
- filelock ==3.18.0
- fonttools ==4.58.4
- fsspec ==2025.5.1
- h11 ==0.16.0
- idna ==3.10
- itsdangerous ==2.2.0
- jedi ==0.19.2
- joblib ==1.5.1
- kiwisolver ==1.4.8
- loro ==1.5.1
- marimo ==0.13.15
- matplotlib ==3.10.3
- mergedeep ==1.3.4
- mpmath ==1.3.0
- narwhals ==1.43.0
- networkx ==3.5
- numpy ==2.3.0
- opencv-python ==4.11.0.86
- ordered-set ==4.1.0
- packaging ==25.0
- pandas ==2.3.0
- parso ==0.8.4
- pillow ==11.2.1
- plotly ==6.1.2
- psutil ==7.0.0
- pymap3d ==3.1.0
- pymdown-extensions ==10.15
- pyparsing ==3.2.3
- python-dateutil ==2.9.0.post0
- pytz ==2025.2
- rtree ==1.4.0
- ruamel.yaml ==0.18.14
- ruamel.yaml.clib ==0.2.12
- scikit-learn ==1.7.0
- scipy ==1.15.3
- seaborn ==0.13.2
- setuptools ==80.9.0
- six ==1.17.0
- sniffio ==1.3.1
- starlette ==0.47.0
- stonesoup ==1.6
- sympy ==1.14.0
- threadpoolctl ==3.6.0
- tomlkit ==0.13.3
- torch ==2.7.1
- tqdm ==4.67.1
- typing_extensions ==4.14.0
- tzdata ==2025.2
- utm ==0.8.1
- uvicorn ==0.34.3
- websockets ==15.0.1
- anyio 4.9.0
- click 8.2.1
- colorama 0.4.6
- contourpy 1.3.2
- cycler 0.12.1
- docutils 0.21.2
- einops 0.8.1
- filelock 3.18.0
- fonttools 4.58.4
- fsspec 2025.5.1
- h11 0.16.0
- idna 3.10
- itsdangerous 2.2.0
- jedi 0.19.2
- jinja2 3.1.6
- joblib 1.5.1
- kiwisolver 1.4.8
- loro 1.5.1
- marimo 0.13.15
- markdown 3.8
- markupsafe 3.0.2
- matplotlib 3.10.3
- mergedeep 1.3.4
- mpmath 1.3.0
- narwhals 1.43.0
- networkx 3.5
- numpy 2.3.0
- nvidia-cublas-cu12 12.6.4.1
- nvidia-cuda-cupti-cu12 12.6.80
- nvidia-cuda-nvrtc-cu12 12.6.77
- nvidia-cuda-runtime-cu12 12.6.77
- nvidia-cudnn-cu12 9.5.1.17
- nvidia-cufft-cu12 11.3.0.4
- nvidia-cufile-cu12 1.11.1.6
- nvidia-curand-cu12 10.3.7.77
- nvidia-cusolver-cu12 11.7.1.2
- nvidia-cusparse-cu12 12.5.4.2
- nvidia-cusparselt-cu12 0.6.3
- nvidia-nccl-cu12 2.26.2
- nvidia-nvjitlink-cu12 12.6.85
- nvidia-nvtx-cu12 12.6.77
- opencv-python 4.11.0.86
- ordered-set 4.1.0
- packaging 25.0
- pandas 2.3.0
- parso 0.8.4
- pillow 11.2.1
- plotly 6.1.2
- psutil 7.0.0
- pygments 2.19.1
- pymap3d 3.1.0
- pymdown-extensions 10.15
- pyparsing 3.2.3
- python-dateutil 2.9.0.post0
- pytz 2025.2
- pyyaml 6.0.2
- rtree 1.4.0
- ruamel-yaml 0.18.14
- ruamel-yaml-clib 0.2.12
- scikit-learn 1.7.0
- scipy 1.15.3
- sea-clutter-suppression 0.1.0
- seaborn 0.13.2
- setuptools 80.9.0
- six 1.17.0
- sniffio 1.3.1
- starlette 0.47.0
- stonesoup 1.6
- sympy 1.14.0
- threadpoolctl 3.6.0
- tomlkit 0.13.3
- torch 2.7.1
- tqdm 4.67.1
- triton 3.3.1
- typing-extensions 4.14.0
- tzdata 2025.2
- utm 0.8.1
- uvicorn 0.34.3
- websockets 15.0.1