Project Overview

Led the development of a hybrid approach to maritime autonomous vehicle object detection at Slalom, transforming a traditional maritime hardware company into a modern software innovator. The solution addresses the unique challenges of maritime navigation, particularly in varied lighting and weather conditions, by implementing a dual-paradigm approach for day and night operations.

The project demonstrates a practical and cost-effective approach using readily available cameras and sensors, being lean and nimble, using Azure edge devices, achieving actionable accuracy in target object detection during static tests.

Solution Architecture

The maritime perception system employs a dual paradigm approach, using different detection methods for daytime and nighttime operation:

Occluded (Nighttime) Paradigm

  • Light Spot Detection and Tracking (LSDT)
  • Laplacian of Gaussian (LOG) filtering
  • Kalman filter tracking
  • Hungarian algorithm for data association

Non-Occluded (Daytime) Paradigm

  • YOLO object detection
  • Monocular Depth Estimation (MDE)
  • Color-coded bounding boxes based on distance
  • License plate detection capability

Technical Implementation

Nighttime Detection System

The Light Spot Detection and Tracking (LSDT) system implements a sophisticated pipeline for identifying and tracking ship navigation lights at night. The idea was to use the lights from the vessels to detect, track, and predict their position.

Following international maritime regulations, the lights must be visible and the colors and their behavior indicate the type of vessel. From the academic paper we started with: "the light spots in the video images are detected through LOG and invalid spots are filtered by the gray threshold. Multiple targets are subsequently tracked by Kalman filtering and light spots are marked to determine properties in order to add and delete spots."

1. Light Spot Detection

The two-dimensional Gaussian kernel function is defined as:

$$ G(x,y) = \frac{1}{2\pi\sigma^2}\exp\left(-\frac{x^2 + y^2}{2\sigma^2}\right) $$

The Laplacian of Gaussian (LoG) operator is then derived as:

$$ \nabla^2G = \frac{\partial^2G}{\partial x^2} + \frac{\partial^2G}{\partial y^2} = \frac{x^2 + y^2 - 2\sigma^2}{\sigma^4}\exp\left(-\frac{x^2 + y^2}{2\sigma^2}\right) $$

Image Preprocessing

  • Input: 1920×1080 video frames
  • Gaussian noise reduction (σ = 1.5)
  • Region of interest cropping

Spot Enhancement

  • LoG filter with 9×9 kernel size
  • Optimal gray threshold: 90
  • Detection range: 7-12 spots per frame

2. Multi-Target Tracking

Kalman Filter State Space Model:

$$ \mathbf{x}_k = \begin{bmatrix} x & y & \dot{x} & \dot{y} \end{bmatrix}^T $$
$$ \mathbf{x}_k = F\mathbf{x}_{k-1} + \mathbf{w}_{k-1} $$
$$ \mathbf{z}_k = H\mathbf{x}_k + \mathbf{v}_k $$

where F is the state transition matrix and H is the measurement matrix.

# Light Spot Detection and Tracking System
LSDT_System {
    ImageProcessing [OpenCV]
    │── PreProcessing
    │   ├── Grayscale Conversion
    │   ├── Gaussian_Filter(σ=1.5)
    │   └── CLAHE_Enhancement
    │── SpotDetection
    │   ├── LOG_Filter(size=9x9)
    │   │   ├── Gaussian_Smoothing
    │   │   └── Laplacian_Operator
    │   ├── ZeroCrossing_Detection
    │   └── Threshold_Application
    └── SpotTracking
        ├── KalmanFilter
        │   ├── State_Vector[x,y,dx,dy]
        │   ├── Prediction_Step
        │   └── Update_Step
        └── DataAssociation
            ├── Hungarian_Algorithm
            ├── Gating(radius=30px)
            └── TrackManagement

Daytime Detection System

The daytime system leverages traditional RGB cameras with a specialized neural network trained on maritime scenes. We built a custom dataset of over 50,000 labeled maritime images to ensure accurate detection in various conditions and environments.

# Object Detection and Depth Estimation System
DaytimeVision {
    ObjectDetection [YOLO]
    │── Models
    │   ├── YOLOv3_MS_COCO
    │   ├── YOLOv4_Road_Obstacle
    │   └── YOLOv4_License_Plate
    │── BoundingBoxProcessing
    │   └── Centroid_Calculation
    └── DepthEstimation
        ├── MiDaS_MDE
        │   ├── Depth_Map_Generation
        │   └── Normalization
        └── Distance_Calculation
            ├── Thin_Lens_Model
            └── Relative_Depth_Mapping
}

Hardware and Deployment

The perception system was deployed on custom hardware designed for the maritime environment.

Cameras

  • Proprietary cameras
  • Cost-effective solution

Edge Computing

  • Microsoft Azure Stack Edge
  • On-ship processing
  • Offline operation support

Interface

  • iPad-based UI
  • Unity gaming engine
  • Real-time visualization

Results and Performance

The collision avoidance system was tested against 250+ historical near-miss incidents from the Northern European shipping lanes, demonstrating a 98.2% success rate in providing correct avoidance recommendations that complied with maritime regulations.

35+
Vessels Deployed
12.7%
Fuel Reduction
42%
Incident Reduction
99.97%
System Uptime

Additional Resources

For more information about the maritime navigation system: