This project is an automated pipeline for detecting, classifying, and analyzing maritime vessels using Synthetic Aperture Radar (SAR) imagery logic. Unlike optical sensors, this system operates on intensity-based data, simulating real-world monitoring capabilities used in the NewSpace sector.
The system processes satellite imagery to provide actionable intelligence: ship location, heading (orientation), estimated physical size, and classification.
- Computer Vision Pipeline: Gaussian noise reduction (despeckling) and Adaptive Thresholding for robust segmentation.
- Pose Estimation: Utilizing
cv2.minAreaRectto determine the precise heading (orientation) of vessels. - Physical Analysis: Implementing Ground Sample Distance (GSD) calibration (2.5m/px) to estimate real-world dimensions.
- Automated Classification: Logic-based categorization of vessels into Small, Medium, and Large classes.
- Reporting: Automatic generation of a mission report (CSV) ready for database integration.
- Python 3.10+
- OpenCV: Image processing and contour analysis.
- NumPy: Matrix operations and geometry calculations.
- Pandas: Data structuring and export.
- Matplotlib: Visualization of tactical maps.
- Preprocessing: Application of Gaussian Blur to mitigate speckle noise inherent in radar data.
- Segmentation: Binary thresholding to isolate high-backscatter targets (ships) from the background.
- Morphological Operations: Dilation to merge disjointed ship parts into coherent objects.
- Analysis: Extraction of geometric properties to calculate length and heading.
- Intelligence Output: Visual overlay with bounding boxes and a structured report.
Here is the output of the classification pipeline. Colors indicate vessel size (Green=Small, Yellow=Medium, Red=Large).
Sample Mission Report Data:
| ID | Category | Length (m) | Heading (deg) |
|---|---|---|---|
| 0 | Small | 77m | 88 |
| 1 | Medium | 87m | 90 |
| 2 | Medium | 100m | 85 |
| 3 | Large | 125m | 89 |
| 4 | Large | 130m | 91 |
| 5 | Large | 136m | 87 |
[Jakub Czupik]
