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.
- 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.
Actual inference results generated by the model on unseen test data:
(Red boxes indicate detected vessels with confidence scores)
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
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`- 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.
- Training Train the model from scratch (supports NVIDIA CUDA acceleration). The pipeline handles resizing and box scaling automatically.
python train_model.py- Evaluation & Inference Calculate loss metrics on the unseen Test Set:
python evaluate_model.pyRun visual inference on random samples to generate results in the results/ folder:
python predict.pyDeep Learning: PyTorch, Torchvision
Computer Vision: OpenCV, NumPy
Visualization: Matplotlib
Architecture: ResNet50 + FPN (Feature Pyramid Network)
Hardware: CUDA Optimized for NVIDIA GPUs
This project is licensed under the MIT License - see the LICENSE file for details.
Jakub Czupik LinkedIn Profile