Skip to content

Repository files navigation

DeepSAR: Maritime Ship Detection System 🛰️

Python PyTorch License Status

📋 Project Overview

DeepSAR is an industrial-grade deep learning pipeline designed for Automatic Target Recognition (ATR) in Synthetic Aperture Radar (SAR) imagery. The system detects maritime vessels in challenging conditions (speckle noise, varying sea states, clutter) using a modified Faster R-CNN architecture with a ResNet50-FPN backbone.

This project simulates a real-world Earth Observation (EO) ground segment workflow, focusing on modularity, scalability, and data engineering best practices.

🎯 Key Performance Metrics

  • Final Test Set Loss: 0.1420 (Excellent generalization capability).
  • Detection Confidence: High confidence (>95%) on metallic structures.
  • Robustness: Successfully handles SAR speckle noise without false positives on open water.

📊 Visual Demo

Actual inference results generated by the model on unseen test data:

SAR Detection Demo (Red boxes indicate detected vessels with confidence scores)

🛠️ Project Structure

The project follows a modular engineering structure:

DeepSAR/
├── data/               # Raw SAR imagery (Not included in repo due to size)
├── src/                # Source code modules
│   ├── models/         # Faster R-CNN architecture & Custom Dataset class
│   └── utils/          # Helper scripts (visualization, hardware checks)
├── notebooks/          # Jupyter Notebooks for presentation/demo
├── train_model.py      # Main training entry point
├── evaluate_model.py   # Metrics and testing script
├── predict.py          # Inference pipeline
└── requirements.txt    # Project dependencies 

🚀 How to Run

1. Installation

Clone the repository and install dependencies:

git clone [https://github.com/KubaCzupik/DeepSAR-Ship-Detection.git](https://github.com/KubaCzupik/DeepSAR-Ship-Detection.git)
cd DeepSAR-Ship-Detection
pip install -r requirements.txt`
  1. Data Preparation This project supports standard SAR datasets (e.g., SARScope, SSDD) in COCO format.

Download the dataset.

Place it in data/raw.

Expected structure: data/raw/train/_annotations.coco.json.

  1. Training Train the model from scratch (supports NVIDIA CUDA acceleration). The pipeline handles resizing and box scaling automatically.
python train_model.py
  1. Evaluation & Inference Calculate loss metrics on the unseen Test Set:
python evaluate_model.py

Run visual inference on random samples to generate results in the results/ folder:

python predict.py

🧠 Technologies

Deep Learning: PyTorch, Torchvision

Computer Vision: OpenCV, NumPy

Visualization: Matplotlib

Architecture: ResNet50 + FPN (Feature Pyramid Network)

Hardware: CUDA Optimized for NVIDIA GPUs

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📬 Contact

Jakub Czupik LinkedIn Profile

Releases

Packages

Contributors

Languages