wikillm

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

arXivPDFMarkdown10 min read

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. 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.
Pseudocode
# 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

  1. Benchmark VGG16, VGG19, ResNet50, ResNet101 and ResNet152. Replace the output with one fully connected layer of 19 neurons.
  2. 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).
Pseudocode
# 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 model

Transfer-learning baseline §III-A

  1. 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

  1. Extract features from the trained model. Rank archive patches by chi-square distance to the query feature.
Pseudocode
# 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

  1. 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).

NameValueWhereNotes
OptimiserAdam§III-Abetas, weight decay and eps not stated; "same as cited papers"
Initial learning rate1e-3§III-Alearning-rate schedule not stated
Losssigmoid cross-entropy§III-Ano class weights or reduction stated
Batch size500 (256 for ResNet152)§III-A
Epochs, from scratch100§III-Amodel selection and checkpoint rule not stated
Epochs, fine-tuning baseline10 per modality§III-A
Output layerfully connected, 19 neurons§III-A
Sentinel-1 inputVV and VH, dB, no speckle filter§II
Sentinel-2 input10 m and 20 m bands; 20 m cubic-upsampled§III-Abands 1 and 9 not used; band 10 absent from L2A output §II
Patch size120 px (10 m), 60 px (20 m), 20 px (60 m)§IISentinel-1 patches are 10 m §II
Label set19 classes; 1 to 12 labels per pair§II-A96.80% of pairs have at most 5 labels
Split, train / val / test269,695 / 123,723 / 125,866§III-A57 unlabelled pairs dropped
Retrieval distancechi-square§III-Afeature layer and query set not stated
Multi-label decision rulenot statedthreshold or top-k needed for HL, R, F2 is not given
Augmentation, normalisation, initialisationnot stated
Hardware4 × 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.

ModelHLOE (%)R (%)F2 (%)Source
VGG160.077786147.352263576.96925476.182824tab. 1
VGG190.079730578.120540576.1711475.348103tab. 1
ResNet500.074099685.930116 (best)80.04607 (best)78.731185 (best)tab. 1
ResNet1010.073938716.46163478.8464177.8826tab. 1
ResNet1520.07277455 (best)6.41952578.12801677.45805tab. 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.

ClassTransfer (ImageNet)Scratch (BigEarthNet-MM)
Urban fabric56.2771.99
Industrial or commercial units30.9843.21
Arable land80.0583.62
Permanent crops4.3255.52
Pastures50.9874.77
Complex cultivation patterns36.2962.03
Land principally occupied by agriculture, with significant areas of natural vegetation30.3660.63
Agro-forestry areas2.1371.87
Broad-leaved forest42.8375.39
Coniferous forest75.4786.32
Mixed forest72.1981.31
Natural grassland and sparsely vegetated areas14.1143.88
Moors, heathland and sclerophyllous vegetation5.2959.91
Transitional woodland-shrub41.2364.21
Beaches, dunes, sands43.6763.39
Inland wetlands8.2057.81
Coastal wetlands4.7942.23
Inland waters63.2382.10
Marine waters93.9997.20
Average39.8167.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-berlin GitHub organisation of the authors' lab. Its repositories are bigearthnet-pipeline (creation of the BigEarthNet v2.0 archive, MIT), ConfigILM (a general image-language library, MIT) and rico-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 under BIFOLD-BigEarthNetv2-0. These are for v2 and were not checked against this paper.
  • GitHub search: a repository search for bigearthnet within rsim-tu-berlin returned only BigEarthNet.txt, a project website. bigearthnet-mm returned 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.