Paper · 2021-05-17 · cs.CV
BigEarthNet-MM: A Large Scale Multi-Modal Multi-Label Benchmark Archive for Remote Sensing Image Classification and Retrieval
BigEarthNet-MM is a benchmark of 590,326 paired Sentinel-1 and Sentinel-2 patches, each with multi-labels from CORINE Land Cover 2018 regrouped into 19 classes. ResNet50 trained from scratch reaches 78.73% sample-averaged F2 and beats an ImageNet-pretrained late-fusion baseline on every class (author-reported).
Multi-label classificationMultimodal fusionTransfer learningConvolutional neural networkremote-sensingdatasetmulti-label-classificationmulti-modal
AI-compiled by claude-haiku-5-5 on 2026-11-08, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Satellites photograph the same ground with two kinds of sensor: radar (Sentinel-1) and ordinary multi-band optical light (Sentinel-2). BigEarthNet-MM is a collection of about 590,000 matched pairs of these images, one pair per small patch of land in Europe. Each pair carries several land-cover labels at once, because one patch often contains more than one kind of land.
The authors found that some of the original labels are hard to tell apart from a single satellite snapshot, so they regrouped the labels into 19 classes that fit what the images actually show. A network trained from scratch on this collection did better than one that started from a model trained on ordinary photographs, especially on farming and vegetated classes. The archive is useful for anyone who wants to test models that combine radar and optical images, or that search for similar scenes.
TL;DR
- A dataset paper: 590,326 Sentinel-1 + Sentinel-2 patch pairs, multi-labelled with CORINE Land Cover (CLC) 2018 and regrouped into 19 classes §I §II-A.
- Benchmarks VGG16/19 and ResNet50/101/152 on multi-label classification and content-based retrieval; no retrieval metric is reported §III-A §III-B.
- Author-reported: ResNet50 trained from scratch beats an ImageNet-pretrained late-fusion baseline on all 19 classes tab. 2.
- No official training code found; the authors' lab repositories are data-pipeline or general-library code [see Paper vs code].
Problem
Deep models for remote sensing usually start from ImageNet weights, but the authors argue this is a poor fit: Sentinel-2 has 13 spectral bands at lower resolution than photographs, and ImageNet's categories differ from land-cover classes §I. Annotating large remote-sensing archives with multiple labels is slow and costly §I. The earlier BigEarthNet archive contains only Sentinel-2 images, so it cannot support multi-modal learning §I. Some CLC classes, such as dump sites or sports facilities, may not be visible from space, and others, such as non-irrigated arable land, need time series that a single date cannot give §I.
Method
The paper is a dataset and benchmark paper. It has no new model architecture.
Data construction §II
- Select 125 Sentinel-2 tiles with under 1% cloud cover, acquired June 2017 to May 2018. Correct them with sen2cor (Level 2A). The 10th (cirrus) band is then absent §II.
- Cut each tile into non-overlapping patches of 120×120 px (10 m bands), 60×60 px (20 m bands) and 20×20 px (60 m bands). This gives 590,326 patches §II.
- Select 325 Sentinel-1 GRD scenes covering the same tiles. Keep VV and VH. Apply border and thermal noise removal, radiometric calibration, and Range-Doppler terrain correction (SRTM 30 below 60° latitude, ASTER DEM above). Convert to dB. Apply no speckle filter §II.
- For each Sentinel-2 patch, take the Sentinel-1 patch with the closest timestamp. The Sentinel-1 patch inherits the Sentinel-2 labels. Sentinel-1 patches are 10 m §II.
- Labels come from CLC 2018 Level 3. They are regrouped into 19 classes: 10 kept, 22 grouped into 9 new classes, 11 removed. The patches represent 43 CLC classes §II-A.
Training input §III-A
- Stack the VV and VH bands of Sentinel-1 with the Sentinel-2 bands at 10 m and 20 m into one volume per pair. Upsample the 20 m bands with cubic interpolation. Bands 1 and 9 (60 m) are not used. The paper does not state the channel count.
# Build one multi-modal input volume per patch pair [§III-A]
# Input: s1 (2, H, W) VV and VH in dB; s2 Sentinel-2 bands
# Output: x, Sentinel-1 and Sentinel-2 bands stacked on channels
def build_input(s1, s2):
# Keep the 10 m and 20 m Sentinel-2 bands; drop bands 1 and 9 [§III-A]
bands_10_20 = select_bands_10_20(s2)
# Upsample the 20 m bands to 10 m with cubic interpolation [§III-A]
bands_10 = cubic_upsample_20m(bands_10_20)
# Concatenate both sensors along the channel axis [§III-A]
return concatenate_channels(s1, bands_10)Models and training §III-A
- Benchmark VGG16, VGG19, ResNet50, ResNet101 and ResNet152. Replace the output with one fully connected layer of 19 neurons.
- Train from scratch with Adam, initial learning rate 1e-3, sigmoid cross-entropy loss, for 100 epochs. Batch size is 256 for ResNet152 and 500 for the others. All other settings follow the cited VGG, ResNet and BigEarthNet papers (the paper cites these by reference, not by value).
# Train one multi-label model from scratch [§III-A]
# Output: trained model over 19 classes
def train(model, train_set):
# Adam with initial learning rate 1e-3 [§III-A]
optimiser = adam(model.parameters(), lr=1e-3)
# 100 epochs from scratch [§III-A]
for epoch in range(100):
# Batch size 500, or 256 for ResNet152 [§III-A]
for images, labels in batches(train_set):
# One sigmoid output per class [§III-A]
logits = model(images) # (B, 19)
loss = sigmoid_cross_entropy(logits, labels)
optimiser.step(loss)
return modelTransfer-learning baseline §III-A
- Take ImageNet-pretrained models and fine-tune them separately on Sentinel-1 and on Sentinel-2 for 10 epochs each. Combine the two by late fusion of the two models.
Retrieval §III-A
- Extract features from the trained model. Rank archive patches by chi-square distance to the query feature.
# Content-based retrieval with chi-square distance [§III-A]
# Output: indices of the k most similar archive patches
def retrieve(query_feature, archive_features, k):
# Chi-square distance between feature vectors; exact form not stated
distances = chi_square(query_feature, archive_features)
return argsort(distances)[:k]Splits §III-A §II
- Remove 57 pairs with no label after regrouping, and exclude patches fully covered by snow, cloud or cloud shadow (70,987 patches identified in §II). The remaining split is: training 269,695, validation 123,723, test 125,866. The paper gives no rule for splitting.
Equations: the paper contains no numbered equations. The loss is named, not written out §III-A. The metrics (Hamming loss, one-error, recall, F2) are defined by reference to the BigEarthNet paper §III-A.
Figure: fig. 1 shows one query pair and the pairs retrieved by the ImageNet transfer model and by the model trained from scratch. It is qualitative only.
Hyperparameters
Values are the paper's unless marked otherwise. Section numbers follow the IEEE journal style of the source (Roman numerals).
| Name | Value | Where | Notes |
|---|---|---|---|
| Optimiser | Adam | §III-A | betas, weight decay and eps not stated; "same as cited papers" |
| Initial learning rate | 1e-3 | §III-A | learning-rate schedule not stated |
| Loss | sigmoid cross-entropy | §III-A | no class weights or reduction stated |
| Batch size | 500 (256 for ResNet152) | §III-A | |
| Epochs, from scratch | 100 | §III-A | model selection and checkpoint rule not stated |
| Epochs, fine-tuning baseline | 10 per modality | §III-A | |
| Output layer | fully connected, 19 neurons | §III-A | |
| Sentinel-1 input | VV and VH, dB, no speckle filter | §II | |
| Sentinel-2 input | 10 m and 20 m bands; 20 m cubic-upsampled | §III-A | bands 1 and 9 not used; band 10 absent from L2A output §II |
| Patch size | 120 px (10 m), 60 px (20 m), 20 px (60 m) | §II | Sentinel-1 patches are 10 m §II |
| Label set | 19 classes; 1 to 12 labels per pair | §II-A | 96.80% of pairs have at most 5 labels |
| Split, train / val / test | 269,695 / 123,723 / 125,866 | §III-A | 57 unlabelled pairs dropped |
| Retrieval distance | chi-square | §III-A | feature layer and query set not stated |
| Multi-label decision rule | not stated | threshold or top-k needed for HL, R, F2 is not given | |
| Augmentation, normalisation, initialisation | not stated | ||
| Hardware | 4 × NVIDIA Tesla V100 | §III-A |
Results
Author-reported. Setup: 19-class multi-label classification on the BigEarthNet-MM test split; models trained from scratch unless marked. Table numbers follow the order in which the source includes them: the overall results table is tab. 1 and the per-class table is tab. 2.
Overall metrics, tab. 1. HL is Hamming loss, OE is one-error, R is recall, F2 is the F2 score. OE, R and F2 are percentages, sample-averaged §III-B. Values are shown as in the source; HL is typeset to three decimals and the percentages to two.
| Model | HL | OE (%) | R (%) | F2 (%) | Source |
|---|---|---|---|---|---|
| VGG16 | 0.07778614 | 7.3522635 | 76.969254 | 76.182824 | tab. 1 |
| VGG19 | 0.07973057 | 8.1205405 | 76.17114 | 75.348103 | tab. 1 |
| ResNet50 | 0.07409968 | 5.930116 (best) | 80.04607 (best) | 78.731185 (best) | tab. 1 |
| ResNet101 | 0.07393871 | 6.461634 | 78.84641 | 77.8826 | tab. 1 |
| ResNet152 | 0.07277455 (best) | 6.419525 | 78.128016 | 77.45805 | tab. 1 |
The text says ResNet models score highest on all metrics and that ResNet50 has more than 2% higher recall and F2 than the VGG models §III-B. In the table, ResNet50 has the best OE, R and F2; ResNet152 has the best HL. The text says that depth makes little difference §III-B.
Per-class F2 (%), macro-averaged over classes, ResNet50, tab. 2. Values are rounded here to two decimals from the source. "Transfer" is the ImageNet late-fusion baseline. "Scratch" is ResNet50 trained on BigEarthNet-MM.
| Class | Transfer (ImageNet) | Scratch (BigEarthNet-MM) |
|---|---|---|
| Urban fabric | 56.27 | 71.99 |
| Industrial or commercial units | 30.98 | 43.21 |
| Arable land | 80.05 | 83.62 |
| Permanent crops | 4.32 | 55.52 |
| Pastures | 50.98 | 74.77 |
| Complex cultivation patterns | 36.29 | 62.03 |
| Land principally occupied by agriculture, with significant areas of natural vegetation | 30.36 | 60.63 |
| Agro-forestry areas | 2.13 | 71.87 |
| Broad-leaved forest | 42.83 | 75.39 |
| Coniferous forest | 75.47 | 86.32 |
| Mixed forest | 72.19 | 81.31 |
| Natural grassland and sparsely vegetated areas | 14.11 | 43.88 |
| Moors, heathland and sclerophyllous vegetation | 5.29 | 59.91 |
| Transitional woodland-shrub | 41.23 | 64.21 |
| Beaches, dunes, sands | 43.67 | 63.39 |
| Inland wetlands | 8.20 | 57.81 |
| Coastal wetlands | 4.79 | 42.23 |
| Inland waters | 63.23 | 82.10 |
| Marine waters | 93.99 | 97.20 |
| Average | 39.81 | 67.23 |
Scratch training is best on every class in tab. 2. The text cites gains of more than 12 and 25 points for two classes, and more than 54 and 69 points for two others §III-B. These are percentage-point differences of the table values, and they match it. The authors say the gap is largest for complex classes §III-B. The abstract names agriculture and vegetated or natural environments as the strongest cases.
The paper's headline claims are: the archive shows potential for multi-modal multi-label retrieval and classification §IV; and scratch training beats ImageNet transfer, especially for complex classes §III-B. No retrieval metric is reported §III-B.
Paper vs code
No official code.
The paper gives no code link. Searches:
- Paper and arXiv metadata: no code link. The paper says data and "DL models" are published at bigearth.net §I.
- bigearth.net project site: links to the
rsim-tu-berlinGitHub organisation of the authors' lab. Its repositories arebigearthnet-pipeline(creation of the BigEarthNet v2.0 archive, MIT),ConfigILM(a general image-language library, MIT) andrico-hdl(a format converter). None implements the experiments in this paper. The site also says pretrained models for S1, S2 and S1+S2 are on Hugging Face underBIFOLD-BigEarthNetv2-0. These are for v2 and were not checked against this paper. - GitHub search: a repository search for
bigearthnetwithinrsim-tu-berlinreturned onlyBigEarthNet.txt, a project website.bigearthnet-mmreturned nothing in that organisation. - Third-party repositories that mention BigEarthNet were not used.
The experiments described here (19-class multi-label training from scratch, multi-modal stacking, chi-square retrieval) have no matching code in the authors' published repositories that I found. Re-check the bigearth.net site before using this card as a spec for code.
Pitfalls
- Fusion and pretraining are confounded. The scratch model stacks Sentinel-1 and Sentinel-2 channels in one network. The ImageNet baseline fuses two separately fine-tuned models late §III-A. The gap in tab. 2 therefore mixes the effect of pretraining with the effect of the fusion strategy. The paper does not separate them.
- Most training settings are not stated. Optimiser betas, weight decay, learning-rate schedule, augmentation, normalisation, initialisation and the choice of checkpoint are all left to "the same parameter values" as the cited papers §III-A. Implementers must pick their own values and should record them.
- Decision rule missing. The model outputs sigmoid scores, but the paper does not give the threshold or top-k rule that turns scores into labels. HL, R and F2 depend on it. OE depends on the ranking. The metrics are defined only by reference §III-A.
- The split does not add up. Train, validation and test total 519,284 pairs. 590,326 minus the 57 unlabelled pairs is 590,269. The gap is 70,985 patches. The paper says snow, cloud and cloud-shadow patches were excluded, and it identifies 70,987 of them §II §III-A. The two numbers differ by two, and the paper does not reconcile them. The paper gives no rule for the split.
- Retrieval is not measured. Retrieval is shown with one query and Fig. 1 only fig. 1. The chi-square formula, the feature layer, the query set and any retrieval metric are not stated §III-A.
- The 19-class mapping is incomplete in the paper. The paper gives the grouping rules only: 10 kept, 22 grouped into 9, 11 removed §II-A. The footnote points to an external class list §II-A. A complete label map cannot be rebuilt from the paper alone.
- Sentinel-1 handling. No speckle filter is applied. Radio-frequency interference artefacts are acknowledged in some Sentinel-1 patches §IV. The Sentinel-1 patch is matched by closest timestamp, not the same day §II.
- Channel count is not stated. It has to be worked out from the band lists: bands 1 and 9 are dropped and band 10 is absent §II §III-A.
- Percentage-point wording. The text's "more than 12%" and similar phrases mean percentage points of F2, not relative change §III-B.
- Licence scope. The CC BY 4.0 licence covers the paper. The paper does not state the licence of the dataset or of the released models. Check those separately before reuse.
Lineage
- Builds on: BigEarthNet, the single-modality Sentinel-2 archive from the same group, cited as Sumbul et al. 2019 in the paper §I. Uses VGG (Simonyan and Zisserman, 2014), ResNet (He et al., 2016) and Adam (Kingma and Ba, 2014) as models and optimiser.
- Compared against: ImageNet-pretrained ResNet50 with late fusion, fine-tuned per modality §III-A.
- Superseded by: none known in this wiki.
Source and license
Adapted from “BigEarthNet-MM: A Large Scale Multi-Modal Multi-Label Benchmark Archive for Remote Sensing Image Classification and Retrieval” by Gencer Sumbul, Arne de Wall, Tristan Kreuziger, Filipe Marcelino, Hugo Costa, Pedro Benevides, Mário Caetano, Begüm Demir, Volker Markl (arXiv:2105.07921), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.