DOI: 10.5281/zenodo.17979190
title: Multi-Altitude, Multimodal Maritime Surveillance (MAMMS) Dataset

description: Multi-altitude, Multimodal Maritime Surveillance (MAMMS) Dataset

A multimodal dataset collected using ground-based sensors, low-altitude UAVs, and satellites. It supports research on object detection, object tracking, and geolocation approximation across coastal and maritime scenarios.

⚠️ Important: Dataset Access Requirement

To download the datasets, please fill out the following User Agreement: 

Multi Altitude, Multimodal Maritime Surveillance (MAMMS) Dataset User Agreement

You will receive a download link once the User Agreement has been registered.

Dataset Overview

This dataset contains data collected during simulated real-world scenarios involving people, vessels, vehicles, and artificial oil spills, captured by sensor platforms operating at different altitudes and modalities, as well as real observations in maritime environments. These sensors include:



Ground-based RGB, SWIR, UV, and thermal sensors (mounted on ground platforms).

Low-altitude RGB and thermal UAVs (a customised drone with an RGB camera mounted and a DJI Mavic 3T Enterprise drone with a thermal camera integrated).

Optical RGB satellite (Sentinel-2 RGB bands).


The dataset consists of two subsets:



Ground-based and Low-Altitude Sensors (MAMMS-GL): Contains data from the ground-based RGB, SWIR, UV, and thermal sensors as well as the low-altitude RGB and thermal UAVs, supporting object detection, object tracking, and geolocation approximation tasks.

Optical Satellite (MAMMS-OS): Contains optical (RGB) satellite imagery data, supporting the task of vessel detection.


MAMMS-GL (Ground-based and Low-Altitude Sensors)



Contains images from ground-based RGB (GS-RGB), SWIR (GS-SWIR), UV (GS-UV), and thermal (GS-Therm) sensors as well as low-altitude RGB UAV (UAV-RGB) and thermal UAV (UAV-Therm).

Supports three tasks: object detection, object tracking, and geolocation approximation.

Object detection and tracking tasks



Data were collected in two locations with diverse environmental conditions. Scenarios include people, vessels, vehicles, and artificial oil spills created using a safe substitute material. All actors provided written consent.

Every visible object was annotated with an axis-aligned bounding box and one of four classes: person, vessel, vehicle, or oil spill.

Each bounding box was also annotated with a track ID, maintained throughout the full duration of each sequence, even across occlusions, to enable long-term tracking evaluation.

The dataset was split into training and test sets. The details and statistics of each set are provided below.



Geolocation approximation task



Thirteen thermal UAV image sequences were collected from various scenarios.

Each image contains a bounding box for a target object (person or vessel), the target’s ground-truth GNSS location, and UAV telemetry.

The dataset was split into training and test sets. The details and statistics of each set are provided below.




Training data from the MAMMS-GL dataset for ground-based and low-altitude object detection and tracking.






Scenario
Sensor
#images
#persons
#vessels
#vehicles
#oilspills
#tracks




bg1
GS-RGB
378
3,141
769
76
-
24


 
GS-SWIR
385
2,288
822
-
-
15


 
GS-Therm
386
2,675
778
-
-
25


 
GS-UV
386
2,479
897
-
-
15


bg3
GS-RGB
728
6,791
1,523
-
-
16


 
GS-SWIR
800
6,693
1,846
-
-
14


 
GS-Therm
742
6,183
1,485
-
-
19


 
GS-UV
702
5,117
1,657
-
-
16


 
UAV-RGB
245
2,580
595
29
-
-


bg4
GS-RGB
589
4,148
1,367
162
-
42


 
GS-SWIR
754
6,591
2,091
13
-
32


 
GS-Therm
635
4,145
1,471
-
-
26


 
GS-UV
746
6,669
2,204
17
-
30


 
UAV-RGB
53
545
312
0
-
-


bg5
GS-RGB
486
1,792
676
-
-
17


 
GS-SWIR
583
1,751
1,165
-
-
9


 
GS-Therm
499
450
861
-
-
12


 
GS-UV
530
879
995
-
-
6


bg7
GS-RGB
756
2,758
1,009
69
-
24


 
GS-Therm
810
1,165
1,869
-
-
13


 
UAV-Therm
808
8,801
1,395
408
-
44


 
UAV-RGB
623
4,943
2,328
0
-
-


bg9
GS-RGB
357
1,060
611
14
-
14


 
GS-SWIR
386
581
1,094
-
-
7


 
GS-Therm
391
1,037
685
-
-
8


 
GS-UV
387
600
1,250
-
-
7


bg10
GS-RGB
459
1,798
1,051
144
-
17


 
GS-SWIR
449
1,297
1,559
-
-
9


 
GS-Therm
454
1,192
972
-
-
6


 
GS-UV
387
986
1,340
-
-
11


 
UAV-RGB
381
4,503
1,200
22
-
-


bg11
GS-RGB
391
5,203
1,255
-
-
30


 
GS-SWIR
409
4,085
1,325
-
-
30


 
GS-Therm
406
4,217
1,102
-
-
33


 
GS-UV
410
3,771
1,356
-
-
30


 
UAV-RGB
509
6,700
1,235
178
-
-


bg12
GS-RGB
263
776
958
-
-
9


 
GS-SWIR
300
753
306
-
-
7


 
GS-Therm
297
652
36
-
-
5


 
GS-UV
301
790
416
-
-
7


bg13
UAV-RGB
322
3,453
929
65
-
-


cy1
UAV-RGB
970
2,115
399
-
939
-


 
UAV-Therm
969
1,795
906
-
-
5


cy2
UAV-RGB
1,204
1,569
888
-
1201
-


 
UAV-Therm
1,193
3,962
2,151
-
-
22


Total
 
24,219
135,479
51,139
1,197
2,140
656





Test data from the MAMMS-GL dataset for ground-based and low-altitude object detection and tracking.






Scenario
Sensor
#images
#persons
#vessels
#vehicles
#oil spills
#tracks




bg2
GS-RGB
871
8,233
2,506
-
-
26


 
GS-SWIR
846
6,069
2,197
-
-
14


 
GS-Therm
845
5,679
1,723
-
-
20


 
GS-UV
845
5,131
2,318
-
-
18


 
UAV-Therm
842
6,780
1,947
-
-
17


 
UAV-RGB
802
4,021
3,507
0
0
-


bg6
GS-RGB
628
3,536
1,485
133
-
28


 
GS-SWIR
569
3,531
2,116
-
-
14


 
GS-Therm
565
3,851
1,823
-
-
15


 
GS-UV
571
3,818
2,038
-
-
16


 
UAV-RGB
115
1,004
614
0
0
-


bg8
GS-RGB
1,526
7,434
5,345
-
-
24


 
GS-SWIR
1,515
5,093
4,609
-
-
25


 
GS-Therm
1,515
6,337
4,046
-
-
22


 
UAV-Therm
1,513
9,455
7,426
425
-
47


 
UAV-RGB
1,739
12,754
3,259
0
0
-


cy3
UAV-RGB
1,072
440
1,552
-
799
-


 
UAV-Therm
1,059
1,714
1,840
-
-
9


Total
 
17,438
94,880
50,351
558
799
295





Training data from the MAMMS-GL dataset for the geolocation approximation task on a thermal UAV.






Scenario
#images
#GNSS data points




cy1
969
906


cy2
1,193
1,134


rd1
514
415


rd2
588
527


rd3
1,388
1,388


rd4
322
322


rd5
395
337


rd6
589
529


Total
5,958
5,558





Test data from the MAMMS-GL dataset for the geolocation approximation task on a thermal UAV.






Scenario
#images
#GNSS data points




bg7
808
697


cy4
351
343


cy5
225
225


cy6
201
201


rd7
561
464


Total
2,146
1,930





MAMMS-OS (Optical Satellite):



Contains 111 Sentinel-2 RGB satellite images.

Supports a vessel-detection task.

Data were collected from the Copernicus platform for two regions over a nine-month period.

Every vessel identified in these images was labelled as a "ship".

A total of 3,708 vessels were annotated.


Dataset Structure: MAMMS-GL

MAMMS-GL contains two folders:



detection-and-tracking

geolocation


Below is the structure of each folder.

detection-and-tracking



detection-and-tracking/
  train/
    [scenario]/
      [sensor type]/
        annotations.xml
        images/
  test/
    [scenario]/
      [sensor type]/
        annotations.xml
        images/





Organised by scenario and sensor type.

Each sensor type folder contains:



annotations.xml containing bounding boxes, labels, and track IDs

images/ containing the image frames



Each image is defined by an <image> tag with attributes:



id

name

width, height



Each <image> tag contains multiple <box> tags:



label: person, vessel, or vehicle

xtl, ytl: top-left bounding box corner

xbr, ybr: bottom-right bounding box corner

Each box includes an <attribute> tag specifying the track ID




geolocation



geolocation/
  train/
    [scenario]/
      [sensor type]/
        annotations.xml
        annotations_geo.xml
        images/
        telemetry/
  test/
    [scenario]/
      [sensor type]/
        annotations.xml
        annotations_geo.xml
        images/
        telemetry/





Organised by scenario and sensor type.

Scenarios fall into three groups:



rd: Controlled scenarios designed with known conditions for trials and calibration. The UAV deployment position and the object of interest were at the same altitude, both above sea level.

bg: Real-world scenarios where the UAV deployment position and the object of interest were at the same altitude, both at sea level.

cy: Real-world scenarios where the UAV deployment position and the object of interest were at different altitudes, the UAV deployment position was above sea level, while the object was at sea level.



annotations.xml: bounding boxes for objects of interest

annotations_geo.xml: same as above, with added geolocation coordinates



Each <box> includes an extra <attribute> with coordinates in [longitude, latitude]



images/: sequential frames

telemetry/: JSON telemetry files matching the image sequence


Dataset Structure: MAMMS-OS

The dataset contains two folders:





labels/



Includes .txt files in YOLO format

Each file contains the class code and bounding box coordinates

Class code is always 0 for ships





images/



Contains satellite images in .png format

Each image has a matching .txt annotation file