wikillm

Paper · 2026-03-24 · cs.CV

Dual Contrastive Network for Few-Shot Remote Sensing Image Scene Classification

Dual Contrastive Network pre-trains a ResNet-12 with cross-entropy plus two auxiliary supervised contrastive losses: one on a Condenser Network's context vector, one on a Smelter Network's detail maps. At test time the auxiliary parts are dropped and prototype classification runs on the encoder. Author-reported 5-way 5-shot: 91.67 (WHU-RS19), 76.61 (UC Merced), 89.22 (NWPU-RESISC45), 88.25 (AID).

Few-shot learningContrastive learningTransfer learningPrototype learningfew-shot-learningremote-sensingcontrastive-learningscene-classification

arXivPDFMarkdown13 min read

AI-compiled by claude-haiku-5-5 on 2026-11-06, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

In plain words

The task is remote sensing scene classification: deciding which scene category an aerial or satellite image belongs to, when each new category has only a few labelled images. The method first trains an image encoder on classes that have many labels, then reuses it for the new classes.

The paper adds two extra training signals to that first stage. Both push images of the same class closer together and images of different classes further apart. One signal works on a summary of the whole scene, to separate classes that look alike. The other works on small local details, to make a class recognisable even when its images vary a lot. Both signals are used only during training. At test time the encoder is kept, each new class is represented by the average of its few examples, and a query image goes to the closest class.

TL;DR

  • Transfer-based few-shot method: pre-train an encoder on base classes, then classify novel classes by prototypes.
  • Training adds a context branch (Condenser Network) and a detail branch (Smelter Network), each with a supervised contrastive loss.
  • Auxiliary heads and contrastive modules are discarded at meta-test time §III-E.
  • Author-reported gains over the baselines in their tables, on four remote sensing benchmarks tab. 1 tab. 2. Not every 1-shot result is best: IDLN is higher on NWPU-RESISC45 1-shot tab. 2.

Problem

Few-shot scene classification with a base set (classes with many labels) and a novel set (disjoint classes, few labels each). The paper follows the transfer pipeline: supervised pre-training of an encoder on the base set, then meta-test on novel tasks with a support set of C classes and K samples per class, and a query set of Q samples per class §III-A. Motivation: remote sensing scenes have small differences between classes and large variation within a class §I fig. 1. The number of query samples Q is not given numerically for the test tasks §III-A; see the Pitfalls.

Method

The encoder is a ResNet-12 feature extractor f_\theta §IV-B. Its output feature maps are Z \in \mathbb{R}^{h \times w \times c} §III-B1. Two branches read these maps during pre-training. Both are supervised contrastive learning tasks, and both also feed a classifier §III-D.

Context branch (CCL)

Condenser Network §III-B1 fig. 3. Steps, in order:

  1. Squeeze the channels with a 1×1 convolution to a single spatial map Z_s eq. 2.
  2. Map Z_s to weights in 0–1 with softmax and multiply them into Z eq. 3. The paper says "each pixel" is mapped to 0–1; the softmax axis is not stated.
  3. Squeeze again, apply layer normalisation and ReLU, then expand back to c channels with a 1×1 convolution §III-B1.
  4. Add the result to the input Z eq. 4.
  5. Global average pooling of \tilde{Z} gives the context vector Z_c \in \mathbb{R}^{c} §III-B1.

Z_{s} = f_{sq}(Z) \qquad \text{[eq. 2]}

Z_{g} = \mathrm{softmax}(Z_{s}) \times Z \qquad \text{[eq. 3]}

\tilde{Z} = f_{ex}\big(\mathrm{ReLU}(\mathrm{LN}(f_{sq}(Z_{g})))\big) + Z \qquad \text{[eq. 4]}

Contrastive learning on context §III-B2. Each training image gets two augmentations, giving 2N samples per batch. The context vectors go through a non-linear projection and L2 normalisation:

F = f_{pc}(Z_{c}) \qquad \text{[eq. 5]}

The CCL loss is a supervised contrastive loss. The positives of anchor i are the other samples with the same label. d is a normalised dot product, that is cosine similarity §III-B2:

L_{CCL} = -\sum_{i=1}^{2N} \frac{1}{P_i} \sum_{\substack{j=1 \\ j \ne i,\; y_i = y_j}}^{2N} \log \frac{\exp\big(d(F_i, F_j)/\tau\big)} {\sum_{n=1,\, n \ne i}^{2N} \exp\big(d(F_i, F_n)/\tau\big)} \qquad \text{[eq. 6]}

Here P_i is the number of positives for i and \tau is a temperature §III-B2.

Detail branch (DCL)

Smelter Network §III-C1 fig. 4. It builds two attention maps and gates the input with them:

  1. Channel squeeze: average over channels, giving Z_{cs} \in \mathbb{R}^{h \times w \times 1} eq. 7.
  2. Spatial squeeze: average over positions, giving Z_{ss} \in \mathbb{R}^{1 \times 1 \times c} eq. 8.
  3. Spatial attention: a 3×3 convolution, an upsampling layer and a 1×1 convolution on Z_{cs} eq. 9.
  4. Channel attention: two 1×1 convolutions on Z_{ss} eq. 10.
  5. Multiply the two maps, apply a 1×1 convolution, pass through a sigmoid, multiply with Z, and add Z back eq. 11.

Z_{cs} = f_{c}(Z) \qquad \text{[eq. 7]}

Z_{ss} = f_{s}(Z) \qquad \text{[eq. 8]}

Z_{sp} = \mathrm{conv}_{1\times1}\big(\mathrm{up}(\mathrm{conv}_{3\times3}(Z_{cs}))\big) \qquad \text{[eq. 9]}

Z_{ch} = \mathrm{conv}_{1\times1}\big(\mathrm{conv}_{1\times1}(Z_{ss})\big) \qquad \text{[eq. 10]}

Z_{d} = \varepsilon\big(\mathrm{conv}_{1\times1}(Z_{sp} \times Z_{ch})\big) \times Z + Z \qquad \text{[eq. 11]}

Self-attention alignment §III-C2. The detail maps Z_d go through a projection f_{pf} to give one tensor used as query, key and value, each of shape hw \times \bar{c} eq. 12. For a pair (x_i, x_j), the value of each sample is re-expressed through the other sample's query and key eq. 13 eq. 14. The pair distance is the mean of two cosine similarities eq. 15.

Q = K = V = f_{pf}(Z_{d}) \qquad \text{[eq. 12]}

V_{i \mid j} = \mathrm{softmax}\!\Big(\frac{Q_{j} K_{i}^{\top}}{\sqrt{\bar{c}}}\Big) \times V_{i} \qquad \text{[eq. 13]}

V_{j \mid i} = \mathrm{softmax}\!\Big(\frac{Q_{i} K_{j}^{\top}}{\sqrt{\bar{c}}}\Big) \times V_{j} \qquad \text{[eq. 14]}

d(V_{i}, V_{j}) = \tfrac{1}{2}\big(\cos(V_{i}, V_{j \mid i}) + \cos(V_{j}, V_{i \mid j})\big) \qquad \text{[eq. 15]}

The DCL loss has the same form as eq. 6, with d(V_i, V_j) and temperature \bar{\tau} eq. 16:

L_{DCL} = -\sum_{i=1}^{2N} \frac{1}{P_i} \sum_{\substack{j=1 \\ j \ne i,\; y_i = y_j}}^{2N} \log \frac{\exp\big(d(V_i, V_j)/\bar{\tau}\big)} {\sum_{n=1,\, n \ne i}^{2N} \exp\big(d(V_i, V_n)/\bar{\tau}\big)} \qquad \text{[eq. 16]}

Total loss

Contrastive loss is the sum of the two branches, weighted by \alpha eq. 17. The cross-entropy term applies one classifier to each branch, and \beta weights the detail branch eq. 18. The full objective weights the contrastive part by \gamma eq. 19.

L_{CL} = L_{CCL} + \alpha L_{DCL} \qquad \text{[eq. 17]}

L_{CE} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log \frac{\exp(o_{ic})}{\sum_{j=1}^{C} \exp(o_{jc})} - \beta \frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log \frac{\exp(\tilde{o}_{ic})}{\sum_{j=1}^{C} \exp(\tilde{o}_{jc})} \qquad \text{[eq. 18]}

L_{total} = L_{CE} + \gamma L_{CL} \qquad \text{[eq. 19]}

Here o and \tilde{o} are the logits from the last layer of the Condenser and Smelter Networks §III-D. C is the number of base classes §III-D.

Meta-test

The encoder, Condenser and Smelter are frozen. Both contrastive modules are dropped §III-E. Each novel class has a prototype from the K support samples, once from context vectors and once from the averaged detail maps eq. 20:

w_{c} = \frac{1}{K} \sum_{i=1}^{K} Z_{i}^{c}, \qquad \tilde{w}_{c} = \frac{1}{K} \sum_{i=1}^{K} \mathrm{avg}(\tilde{Z}_{i}^{c}) \qquad \text{[eq. 20]}

A query gets the average of two softmax scores over the classes eq. 21:

P(y = c \mid x_q) = \tfrac{1}{2}\Big( \mathrm{softmax}\big(\langle Z_q, w_c \rangle\big) + \mathrm{softmax}\big(\langle \mathrm{avg}(\tilde{Z}_q), \tilde{w}_c \rangle\big) \Big) \qquad \text{[eq. 21]}

The paper gives the prototype-classifier probability in eq. 1 as well: P(y=c \mid x) = \mathrm{softmax}(\langle f_\theta(x), w_c \rangle) eq. 1. The paper calls \langle\cdot,\cdot\rangle a distance function; the softmax form only makes sense if larger values mean more similar §III-A.

Pre-training step

The pseudocode below follows the equations above. It is not a copy of the paper's algorithm, because the paper gives no algorithm block. Values that the paper does not give are marked not stated.

Pseudocode
# DCN pre-training loss for one batch  [§III-B] [§III-C] [§III-D]
# Input:  images (N, 3, 84, 84); labels (N,)
# Output: total loss (scalar)  [eq. 19]

def dcn_loss(images, labels):
    # Two augmented views per image, so 2N samples  [§III-B2]
    # Augmentation recipe: not stated (cites SimCLR-style work [22])
    views, view_labels = augment_twice(images, labels)
    # Feature encoder, ResNet-12  [§IV-B]
    maps = encoder(views)                           # Z: (2N, h, w, c)
    # Condenser: squeeze, softmax weights, squeeze, LN, ReLU, expand  [eq. 2-4]
    context_maps = condenser(maps)                  # Z~: (2N, h, w, c)
    # Global average pooling gives the context vector  [§III-B1]
    context = mean_over_positions(context_maps)     # Z_c: (2N, c)
    # Projection and L2 normalisation  [eq. 5]
    context_emb = l2_normalise(proj_context(context))  # F: (2N, 128)
    # Context contrastive loss  [eq. 6]
    # Temperature tau: not stated
    loss_ccl = supcon(context_emb, view_labels, tau)
    # Smelter: two squeezes, two attention maps, sigmoid gate  [eq. 7-11]
    detail_maps = smelter(maps)                     # Z_d: (2N, h, w, c)
    # Self-attention alignment, pairwise similarity  [eq. 12-15]
    # Projection output size c_bar: not stated
    sim_detail = aligned_similarity(proj_detail(detail_maps))  # (2N, 2N)
    # Detail contrastive loss  [eq. 16]
    # Temperature tau_bar: not stated
    loss_dcl = supcon_from_similarity(sim_detail, view_labels, tau_bar)
    # Total contrastive loss  [eq. 17]
    loss_cl = loss_ccl + alpha * loss_dcl           # alpha = 1  [§IV-B]
    # Cross-entropy on both branches; which views are used: not stated  [eq. 18]
    logits_context = head_context(context)          # head shape: not stated
    logits_detail = head_detail(mean_over_positions(detail_maps))
    loss_ce = cross_entropy(logits_context, labels)
    # beta = 0.1  [§IV-B]
    loss_ce = loss_ce + beta * cross_entropy(logits_detail, labels)
    # Total loss  [eq. 19]
    return loss_ce + gamma * loss_cl                # gamma = 1  [§IV-B]
Pseudocode
# Meta-test: prototype classification  [§III-E] [eq. 20-21]
# Input:  support (C*K, 3, 84, 84) with labels; query (Q, 3, 84, 84)
# Output: predicted class per query

def predict(support, support_labels, query):
    # Encoder, Condenser, Smelter frozen; contrastive heads dropped  [§III-E]
    support_context, support_detail = frozen_branches(support)
    query_context, query_detail = frozen_branches(query)
    # Prototypes from the K support samples per class  [eq. 20]
    proto_context = class_means(support_context, support_labels)
    proto_detail = class_means(support_detail, support_labels)
    # Average the two softmax scores over classes  [eq. 21]
    score_context = softmax(similarity(query_context, proto_context))
    score_detail = softmax(similarity(query_detail, proto_detail))
    return argmax(score_context + score_detail)

Hyperparameters

NameValueWhereNotes
BackboneResNet-12§IV-BSame for all four datasets
Input size84 × 84§IV-BImages cropped to a fixed size
OptimiserMomentum SGD§IV-B
Learning rate0.05§IV-BSchedule: not stated
Momentum0.9§IV-B
Weight decay0.0005§IV-B
α (DCL weight in L_{CL})1§IV-B eq. 17Sweep in fig. 8
β (detail CE weight)0.1§IV-B eq. 18Sweep in fig. 9
γ (contrastive weight in total)1§IV-B eq. 19Sweep in fig. 10
τ (CCL temperature)not stated§III-B2 eq. 6
τ̄ (DCL temperature)not stated§III-C2 eq. 16
Batch size Nnot stated
Pre-training epochs150 (WHU-RS19, UC Merced, AID); 200 (NWPU-RESISC45)tab. 5
Augmentationstwo random augmentations, type not stated§III-B2Cites [22]
Projection f_{pc} / f_{pf}not stated which MLP§III-B2 §III-C2Setup text names f_{pg} and f_{pl}, see Pitfalls
Projection f_{pg}MLP, hidden 640, ReLU, output 128§IV-B
Projection f_{pl}single layer 128 with ReLU§IV-B
Attention projection dim \bar{c}not statedeq. 13 eq. 14
Smelter 3×3 conv channels, upsampling modenot statedeq. 9
Channel reduction ratio (Smelter, Condenser)not statedeq. 4 eq. 10
Meta-test tasks600 random tasks, 95% confidence interval§IV-B
Query samples per class Qnot stated§III-A
HardwareNVIDIA GeForce RTX 2080, PyTorch§IV-B

Results

Author-reported. Setup: four public remote sensing datasets, ResNet-12 backbone, 5-way classification with 1 or 5 shots, 600 test tasks, 95% confidence intervals §IV-B. Baselines: some numbers are borrowed from the cited papers, the rest were re-implemented by the authors, so the protocols are not fully matched §IV-C.

Table 1 tab. 1: WHU-RS19 and UC Merced, accuracy (%)

TypeMethodBackboneWHU 1-shotWHU 5-shotUC 1-shotUC 5-shot
OptimizationLLSR [55]Conv57.1070.6539.4757.40
OptimizationMAML [17]ResNet-1259.19±0.9272.34±0.7550.23±0.9862.02±0.72
MetricDLA-MatchNet [52]Conv68.27±1.8379.89±0.3353.76±0.6263.01±0.51
MetricSCL-MLNet [53]Conv––51.37±0.7968.09±0.92
MetricMatchingNet [69]ResNet-1275.99±0.6382.96±0.4050.99±0.6957.14±0.59
MetricProtoNet [19]ResNet-1265.53±0.9985.53±0.7353.15±0.8071.54±0.52
MetricRelationNet [20]ResNet-1265.36±0.7580.02±0.6449.18±0.7863.64±0.54
MetricdeepEMD [66]ResNet-1267.37±0.6285.43±0.4352.11±0.4169.82±0.36
MetricFRN [67]ResNet-1263.75±0.1983.18±0.1251.14±0.2265.46±0.15
MetricPSM [83]ResNet-1267.72±0.9586.21±0.7054.35±0.8271.86±0.54
MetricIDLN [9]ResNet-1273.89±0.8883.12±0.56––
MetricSPNet [10]ResNet-1881.06±0.6088.04±0.2857.64±0.7373.52±0.51
TransferS2M2 [11]ResNet-1269.00±0.4182.14±0.2152.16±0.4667.38±0.25
TransferDeepDBC [12]ResNet-1268.23±0.3985.90±0.3154.20±0.3571.94±0.26
TransferDCN (this paper)ResNet-1281.74±0.5591.67±0.2558.64±0.7176.61±0.49

Table 2 tab. 2: NWPU-RESISC45 and AID, accuracy (%)

TypeMethodBackboneNWPU 1-shotNWPU 5-shotAID 1-shotAID 5-shot
OptimizationLLSR [55]Conv51.4372.9045.1861.76
OptimizationMAML [17]ResNet-1256.01±0.8772.94±0.6362.54±0.7973.12±0.85
MetricDLA-MatchNet [52]Conv68.80±0.7081.63±0.4657.21±0.8273.45±0.61
MetricSCL-MLNet [53]Conv62.21±1.1280.86±0.7659.46±0.9676.31±0.68
MetricMatchingNet [69]ResNet-1261.57±0.4976.02±0.3464.30±0.4674.49±0.35
MetricProtoNet [19]ResNet-1264.52±0.4881.95±0.3067.08±0.4782.44±0.29
MetricRelationNet [20]ResNet-1265.52±0.8578.38±0.3168.56±0.4979.21±0.35
MetricdeepEMD [66]ResNet-1267.50±0.7480.54±0.5163.78±0.6880.26±0.41
MetricFRN [67]ResNet-1266.31±0.2079.67±0.1566.97±0.2378.82±0.16
MetricPSM [83]ResNet-1266.17±0.5183.03±0.3468.89±0.4683.75±0.33
MetricIDLN [9]ResNet-1275.25±0.7584.67±0.23––
MetricSPNet [10]ResNet-1867.84±0.8783.94±0.50––
TransferS2M2 [11]ResNet-1263.24±0.4783.23±0.2866.22±0.4582.87±0.29
TransferDeepDBC [12]ResNet-1268.84±0.4484.12±0.2966.56±0.4384.15±0.25
TransferCSDL [cited as 41 in the table]ResNet-1271.28±0.7285.66±0.47––
TransferDCN (this paper)ResNet-1274.40±0.7889.22±0.4173.38±0.7788.25±0.44

The CSDL row is cited in the table as [41], which is a different entry in the bibliography. The text cites CSDL as [2] §I §IV-C. See Pitfalls.

Headline claims in the text (author-reported):

  • WHU-RS19 1-shot: 81.74, at least 0.68 above the next best (SPNet, 81.06) §IV-C1.
  • UC Merced 1-shot: 58.64, at least 1 above the next best (SPNet, 57.64) §IV-C1.
  • 5-shot against SPNet: +3.63 (WHU-RS19), +3.09 (UC Merced) §IV-C1.
  • NWPU-RESISC45 5-shot: +3.56 over CSDL (85.66) §IV-C2.
  • AID 5-shot: +4.1 over DeepDBC (84.15) §IV-C2.
  • NWPU-RESISC45 1-shot: 0.85 below IDLN (75.25) §IV-C2.

Ablation tab. 3 (WHU-RS19 and UC Merced) and tab. 4 (NWPU-RESISC45 and AID). The baseline is cross-entropy-only pre-training, following [14] §IV-D.

Table 3: ablation, WHU-RS19 and UC Merced, accuracy (%)

MethodWHU 1-shotWHU 5-shotUC 1-shotUC 5-shot
Backbone (baseline)67.65±0.7483.17±0.3651.87±0.7068.90±0.55
CCL (w/o CL)68.17±0.7284.08±0.3852.52±0.7270.02±0.52
CCL (w/o CN)67.13±0.6683.80±0.3754.37±0.7572.40±0.48
CCL69.03±0.6785.22±0.4054.93±0.6872.86±0.50
DCL (w/o CL)67.61±0.6983.11±0.3652.10±0.6569.57±0.58
DCL (w/o SN)74.29±0.7089.16±0.4355.49±0.6673.33±0.45
DCL75.58±0.6289.75±0.3556.52±0.7274.29±0.52
DCN81.74±0.5591.67±0.2558.64±0.7176.61±0.49

Table 4: ablation, NWPU-RESISC45 and AID, accuracy (%)

MethodNWPU 1-shotNWPU 5-shotAID 1-shotAID 5-shot
Backbone (baseline)71.26±0.8686.19±0.4769.22±0.7983.48±0.45
CCL (w/o CL)71.66±0.8586.31±0.4869.35±0.8483.07±0.49
CCL (w/o CN)72.01±0.8287.20±0.4469.18±0.7984.46±0.45
CCL72.55±0.7187.92±0.4170.91±0.8085.66±0.44
DCL (w/o CL)71.91±0.7586.53±0.4769.65±0.8284.10±0.51
DCL (w/o SN)72.59±0.7187.47±0.4571.12±0.7986.27±0.46
DCL73.50±0.7688.37±0.4772.16±0.7786.97±0.48
DCN74.40±0.7889.22±0.4173.38±0.7788.25±0.44

Training time and size tab. 5 tab. 6:

WHU-RS19UC MercedNWPU-RESISC45AID
Epochs150150200150
Time (s)403.50883.5021010.004778.25
ResNet-12DCN
Parameters12.43M12.90M
FLOPs (multiply-adds)3523.03M3533.42M

The paper states the maximum training time is under 6 hours §IV-G. The parameter overhead is small in tab. 6. The runtime and parameter counts do not include the batch size, so they cannot be reproduced exactly.

Qualitative analyses (no numbers): Grad-CAM shows the Condenser focusing on scene-relevant regions fig. 6; the Smelter's gated maps focus on local parts fig. 7; a feature-space variance comparison on NWPU-RESISC45 shows larger inter-class and smaller intra-class variance for the respective branch fig. 5.

Sensitivity on NWPU-RESISC45 only §IV-F:

  • α peaks at 1 for both shot settings fig. 8 §IV-F1.
  • β peaks at 0.1; β = 0 gives a small drop fig. 9 §IV-F2.
  • γ peaks at 1 fig. 10 §IV-F3.

Paper vs code

No official code.

Searched: the paper text and the arXiv abstract page for links (none), and GitHub repository search for dual contrastive network remote sensing, few-shot remote sensing scene classification, Condenser Smelter contrastive, Zhong Ji Tianjin few-shot and dual contrastive few-shot. None of the results belong to the authors or their lab. No repository was cloned, and no hyperparameter could be checked against code.

Pitfalls

  • The loss scale is not defined. L_{CCL} and L_{DCL} in eq. 6 and eq. 16 sum over the anchors i without averaging, while L_{CE} in eq. 18 averages over N. The relative weight of the contrastive and cross-entropy terms depends on the batch size, and the paper does not say whether the sum is intended. The temperatures \tau and \bar{\tau} are not stated.
  • Sign and direction of d. Eq. 6 and eq. 16 put d in the numerator with a plus sign, so d must be a similarity: larger means same class. The paper calls d a distance in the text, and the eq. 1 and eq. 21 scores have the same wording. Implement as cosine similarity, not as a distance.
  • Softmax axes. The Condenser's softmax (eq. 3) is not said to run over the h \times w positions. If it does, the weights sum to 1 over hw positions, so Z_g is much smaller than Z. The axis of the softmax in eq. 13 and eq. 14 is also not stated.
  • Q = K = V from one projection (eq. 12). The paper writes all three as the same f_{pf}(Z_d). Separate projections for query, key and value are not mentioned. Implement as written, and expect that the official code may differ, since there is none.
  • Projection names do not match. The method uses f_{pc} and f_{pf}, and the setup section describes f_{pg} (640 hidden, 128 out) and f_{pl} (single 128 layer) §IV-B. The mapping from these names to the method's projections is not stated. Note also that \bar c is not given.
  • Classifier heads for eq. 18. The paper says the logits come from "the last layer" of the Condenser and Smelter Networks, but does not say whether these are separate linear layers on Z_c and on the averaged \tilde Z. The sizes are not given.
  • Views in the CE term. The paper's N is the batch size, and the contrastive terms use 2N views. It is not stated whether the cross-entropy uses the original images, one augmented view, or both.
  • Test-time prototype features. Eq. 20 defines prototypes from Z_i^c, and eq. 21 uses Z_q for the query. Whether Z_q is the pooled context vector or the map before pooling is not stated, though the prototypes are built from pooled vectors.
  • Ambiguous sensitivity sweeps. The α, β and γ sweeps are shown on NWPU-RESISC45 only §IV-F. The paper does not say whether they use the validation or the test split. If the test split was used, the chosen values were selected on test data.
  • Mismatched numbers in the introduction. The introduction says DCN beats the state of the art by at least 5.38% on AID 5-shot §I. Table 2 and §IV-C2 give 4.1 (88.25 against 84.15). The NWPU 5-shot figure of 3.56 agrees with the table.
  • CSDL citation. Table 2 cites CSDL as [41], which the bibliography titles "A Baseline for Few-Shot Image Classification". The text cites CSDL as [2]. The CSDL row's citation should be read as unreliable.
  • Dataset description. The UC Merced text says "100 images of 21 classes". This can be read as 100 images per class or 100 in total. The paper does not say which. WHU-RS19 says "at least 50 images" per class §IV-A.
  • Mixed baseline protocols. MAML and RelationNet numbers are borrowed from [2] and [12]. The other baselines are re-implemented following [3] and [29] §IV-C. SPNet uses ResNet-18 tab. 1 tab. 2, not ResNet-12. Comparisons across rows are therefore not fully controlled.
  • Augmentation recipe. The two augmentations are not named. Only the citation to [22] is given.
  • Cost of the detail branch. Each pair in eq. 13–15 needs an hw \times hw attention, and the batch contains 2N views. The feature-map size h \times w is not stated, so the cost cannot be computed from the paper. The training time in tab. 5 is the only cost figure.
  • Encoder frozen at test. At meta-test, the encoder, Condenser and Smelter are frozen, and no fine-tuning on the support set is described §III-E.

Lineage

  • Builds on: CSDL, a transfer-based few-shot approach for remote sensing with a mirror-based feature extractor §I [2]. Also the supervised-pretraining baseline following [14] §IV-D and contrastive learning with augmentations [22].
  • Compared against: Optimization methods (LLSR [55], MAML [17]), metric methods (ProtoNet [19], MatchingNet [69], RelationNet [20], deepEMD [66], FRN [67], PSM [83], DLA-MatchNet [52], SCL-MLNet [53], IDLN [9], SPNet [10]) and transfer methods (S2M2 [11], DeepDBC [12], CSDL [2]) tab. 1 tab. 2.
  • Superseded by: not known from content in this wiki.

Source and license

Adapted from “Dual Contrastive Network for Few-Shot Remote Sensing Image Scene Classification” by Zhong Ji, Liyuan Hou, Xuan Wang, Gang Wang, Yanwei Pang (arXiv:2603.23161), 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.