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
Last synced: 6 months ago · JSON representation ·

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
Created 10 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

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

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

pyproject.toml pypi
  • 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
requirements.txt pypi
  • 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
uv.lock pypi
  • 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