Fully Convolutional Networks for Dense Semantic Labelling of High-Resolution Aerial Imagery

Fully Convolutional Networks for Dense Semantic Labelling of High-Resolution Aerial Imagery

Jamie Sherrah
Defence Science & Technology Group
Edinburgh, South Australia
email: https://au.linkedin.com/jsherrah

The trend towards higher resolution remote sensing imagery facilitates a transition from land-use classification to object-level scene understanding. Rather than relying purely on spectral content, appearance-based image features come into play. In this work, deep convolutional neural networks (CNNs) are applied to semantic labelling of high-resolution remote sensing data. Recent advances in fully convolutional networks (FCNs) are adapted to overhead data and shown to be as effective as in other domains. A full-resolution labelling is inferred using a deep FCN with no downsampling, obviating the need for deconvolution or interpolation. To make better use of image features, a pre-trained CNN is fine-tuned on remote sensing data in a hybrid network context, resulting in superior results compared to a network trained from scratch. The proposed approach is applied to the problem of labelling high-resolution aerial imagery, where fine boundary detail is important. The dense labelling yields state-of-the-art accuracy for the ISPRS Vaihingen and Potsdam benchmark data sets.

1 Introduction

Land use classification has been a long-standing research problem in remote sensing, and has historically been applied to coarse resolution multi-spectral imagery (for example, LANDSAT has 30m x 30m ground sampling distance (GSD), Quickbird 2.2m GSD). More recently, high-resolution aerial imagery has become available with a GSD of 5-10 cm, so that objects such as cars and buildings are distinguishable. Pixel labelling becomes a richer semantic representation, but is more difficult. Now instead of classifying a spectral signature averaged over a large area (one pixel to many objects), individual objects must be segmented (one object to many pixels). Spectral properties alone may not be sufficient to distinguish objects (e.g. grass from trees, road from roof), and discriminative appearance-based features are needed. The fine-grained classification of image pixels is termed semantic labelling.

For such high-resolution imagery, computer vision techniques for object segmentation and semantic labelling are eminently applicable. Recently deep convolutional neural networks (CNNs) have become the dominant method for visual recognition, achieving state-of-the-art results on a number of problems including semantic labelling [16, 3, 17]. CNNs have also been applied to remote sensing data [25], but usually on a patch level. For classification, this involves classifying a cropped out patch of imagery (e.g.airport, forest). In the case of semantic labelling, the aim is usually to classify the pixel at the centre of the patch, and this classification is applied to overlapping patches densely over the image, resulting in a fully labelled output.

In this work we apply the recently-developed fully convolutional network [17] to semantic labelling of aerial imagery, achieving higher accuracy than the patch-based approach. By exploiting the convolutional nature of the CNN, the classifier can be treated like a convolutional filter both during training and classification. The result is improved accuracy and computational efficiency. However the FCN produces output at a significantly lower resolution than the input imagery due to pooling-and-downsampling layers in the network. This is undesirable for complete labelling of remote sensing data because the fine boundary details are important. Here a novel no-downsampling network is presented to maintain the full resolution of the imagery at every layer in the FCN. The no-downsampling approach boosts the effective training sample size and achieves higher accuracy than a downsampling FCN, especially when the downsampling factor of the network is large.

For aerial imagery, a semantic labelling pixel accuracy of around 75% can be achieved simply using the spectral and elevation information at each individual pixel [25]. To achieve higher accuracy on higher resolution images, the scene appearance must be exploited using discriminative texture features. We use pre-trained convolutional features derived from ImageNet data to improve overhead semantic labelling. Pre-trained networks only take 3-band data as input. To make use of elevation data such as a digital surface model (DSM) we propose a hybrid network that combines the pre-trained image features with DSM features that are trained from scratch. The hybrid network improves the labelling accuracy on the highest-resolution imagery.

The novel contributions of this work are:

  1. the use of fully-convolutional networks to semantically label aerial imagery;

  2. a no-downsampling approach to FCNs to preserve output resolution;

  3. a hybrid FCN architecture to combine imagery with elevation data;

  4. the first published results on the ISPRS Potsdam benchmark; and

  5. state-of-the-art semantic labelling accuracy for high-resolution aerial imagery.

The remainder of the paper is arranged as follows. Related work on semantic labelling using CNNs on remote sensing data and FCNs is reviewed in Section 2. The characteristics of high-resolution aerial imagery are discussed in Section 3 and the data sets used for experimentation are introduced. Section 4 explains how FCNs are applied to remote sensing data and compares the approach experimentally to patch-based training. The no-downsampling FCN is introduced in Section 5 and compared with FCNs. Section 6 shows how pre-trained image features can be combined with a custom FCN with DSM input in a hybrid architecture to improve segmentation of the very-high-resolution Potsdam data. The paper concludes with Section 7. Details of the experimental parameters are listed in the Appendix.

2 Related Work

There has been a significant amount of past work on classification and segmentation of remote sensing imagery, for a recent review see [1, 10]. For classification of very high resolution imagery (GSD on the order of 10cm or less) the typical approach is to densely extract features which are passed to a classifier to generate an image of class labels. [26] combined low-level colour and edge features with object-level features in a hierarchical contextual model for scene parsing of aerial imagery. [5] used colour descriptors to label Ikonos satellite imagery (1m GSD). [14] performed unsupervised clustering of super-pixel features and CRF inference to segment buildings in aerial imagery (10cm GSD). [9] applied AdaBoost classification to super-pixel appearance features for dense labelling of aerial images (9cm GSD). [30] used boosting to select appropriate features from a large pool of local differences of primitives for 4-class classification of aerial (20cm GSD) and satellite images. More methods are comprehensively surveyed in the related work section of [2].

Since 2012 [15] deep convolutional neural networks (CNNs) have dominated computer vision due to their relatively high accuracy at image recognition tasks. Moreover it has been found that when trained on very large image sets such as the ImageNet challenge, CNNs learn re-usable image features that are directly applicable to other domains, achieving state-of-the-art accuracy versus hand-crafted solutions to the same problem [27]. CNNs have been previously applied to classification of overhead imagery. [20, 19] trained CNNs to detect roads and buildings from automatically-generated noisy ground truth labels. [8] trained convolutional sparse auto-encoders on unlabelled data to detect specific targets such as planes and dry docks. Both [2] and [18] performed fine-tuning on pre-trained CNNs to classify overhead image tiles (30cm GSD). [24] investigated the generalisation ability of pre-trained CNN features for classification of aerial and satellite image tiles. [31] used pre-trained CNNs on RGB and CIR satellite images (50cm GSD) to detect buildings. [25] trained CNNs from scratch to learn dense features for semantic labelling of aerial CIR imagery and DSM data (9cm GSD). None of these approaches employed fully-convolutional training which is the main topic of this paper.

In the field of computer vision CNNs have achieved the highest accuracy on semantic labelling problems. This has been demonstrated on social media images in the Pascal VOC challenge [7] and on road scenes in the Cityscapes benchmark [4]. More recently the best results have come from the so-called fully convolutional network (FCN) approach [17]. An FCN is trained on all overlapping patches in an image at once by applying it like a convolutional filter. Due to the down-sampling in the CNN the output label map has a lower spatial resolution than the input imagery. To compensate, [17] used bilinear interpolation of the class probabilities and a multi-scale fusion approach named deepJet to restore the output to full resolution. [3] used the hole or atrous method to expand the support of CNN filters and reduce the down-sampling factor of the network. Interpolation was still required to upsample by the now-lesser factor. In this work we take this approach to its extreme and use the atrous method to avoid downsampling altogether. [23] trained a deconvolutional network consisting of deconvolution and unpooling layers to restore the labelling output to full resolution. The pooling locations are copied from the corresponding encoding layers. State-of-the-art results are achieved by [16] using CNNs in both the unary and binary terms of a conditional random fields (CRF). The binary term network allows patch-to-patch context to be learned by a CNN. The output resolution is still degraded and is upsampled using interpolation and a dense CRF.

3 Overhead Imagery and Data Sets

The goal of this work is to take semantic labelling methods from computer vision and apply them to high-resolution geospatial imagery. Processing overhead imagery has some unique challenges compared to the multimedia images commonly encountered in the computer vision literature. These differences are summed up in Table 1. Overhead images are typically much larger, containing tens to hundreds of megapixels. In fact overhead images could be stitched together to cover the entire earth. The implication is that multimedia images tend to have a bounded context, both spatially and in subject matter, whereas overhead images do not. The simple approach taken here is to apply processing to a sliding window which provides spatial context. In most cases this is a valid approach but in some cases a much larger spatial context is required for interpretation, for example very large buildings. In the case of semantic labelling, both “things and stuff” [11] (that is, objects and extended background regions) need to be identified, in contrast with multimedia data such as Pascal VOC that only considers “things” (objects) [7]. Regarding invariances, overhead images do not usually contain significant out-of-plane transformations which simplifies recognition. However scenes can be seen from any azimuth so in-plane rotation invariance is essential, in contrast to multimedia images that usually assume an upright camera with respect to the ground. Overhead imagery tends to be taken at near-nadir angles or ortho-rectified in post-processing so that occlusion does not usually pose a challenge.

Ground-based images Aerial images
Well-defined scene context A potentially-unlimited continuous scene
Objects are upright Objects can appear at any azimuth (in-plane rotation)
Object scale/distance varies considerably Object scale is known
Arbitrary out-of-plane rotation and occlusion Limited occlusion and close-to-nadir viewpoint
Table 1: Major differences between ground-based multimedia images and aerial imagery

The overhead imagery used in this work comes from the ISPRS 2D Semantic Labelling Challenge [12] Vaihingen and Potsdam data sets. Both data sets consist of near infra-red, red, green ortho-rectified imagery (or colour infra-red, CIR) with corresponding digital surface models (DSMs). The Potsdam data set also has the blue channel for imagery. The DSM is an array the same size as the input imagery and provides an elevation value at each pixel. Each training image comes with ground truth labels from the following set: impervious surface, building, tree, low vegetation, car, unknown. The task is to automatically generate labels for the unlabelled test imagery. Statistics on the data sets are shown in Table 2. We have also made used of normalised DSMs made available by the authors of [9]. Contributed results can be seen on the leaderboard at [12].

Property Vaihingen Potsdam
Training images 16 24
Test images 17 14
Total Pixels 168,287,871 1,368,000,000
GSD 9 cm 5 cm
Table 2: Statistics on the ISPRS 2D Semantic Labelling Challenge data sets

In experimentation the labelled training images are broken into two subsets, referred to as the training and validation sets. The images used for these subsets are listed in Table 3. Experimental comparisons are based on the validation set results, and the validation set was not used for training. In some experiments, results are included for the test set, which is the unlabelled data. These accuracies are generated by the challenge website.

Vaihingen Potsdam
Training set 13, 17, 1, 21, 23, 26, 32, 37, 3, 5, 7 2_10, 3_10, 3_11, 3_12, 4_11, 4_12, 5_10, 5_12, 6_10, 6_11, 6_12, 6_8, 6_9, 7_11, 7_12, 7_7, 7_9
Validation set 11, 15, 28, 30, 34 2_11, 2_12, 4_10, 5_11, 6_7, 7_10, 7_8
Table 3: Partition of labelled data into training and validation tests

4 FCN Versus Patch-Based Methods

CNNs became popular when applied to individual multimedia images with a defined spatial context. When CNNs are applied to remote sensing problems with large image extent and ambiguous spatial context, the common approach is to crop out image patches and process these with a pre-trained CNN [22, 18, 21]. The CNN processing is applied in the context of a single image patch, and gives a single classification for that patch. To process a whole image it is divided into patches, which are processed in batches for efficiency, and the CNN outputs are turned back into an image of now lower resolution than the input. When training a patch-based CNN, there are so many candidate patches in the source image that only a subset is typically used.

Patch-based classification is wasteful, since redundant operations are performed on neighbouring patches. It was realised that the CNN could be applied more efficiently to all overlapping patches by interpreting it as an image filter: the first layer convolutions are applied to the entire input image rather than just a patch; the second layer convolutions are applied to the outputs of the first, and so on resulting in a 2D output matrix of class labels rather than a single classification [32, 28]. The convolutional approach was taken one step further in [17] where it was applied also to training of the CNN, making it fully convolutional. Now rather than having to select some patches for training, effectively all overlapping patches are used in a manner that is efficient computationally. Fully convolutional training is also efficient in terms of GPU RAM, since the alternative is to load a batch of overlapping patches that share the same pixels. These efficiencies mean that FCNs can be trained on more data resulting in higher accuracy, as was demonstrated on three public data sets in [17]. Here we show that these benefits extend to remote sensing data, and how FCNs can be applied to large images.

4.1 The CNN as an Image Filter

Initially CNNs were considered as a classifier, generating a single class label given an input image (for example Figure 1(a)). For clarity let us refer to this modus opperandi as a CNN classifier. In the FCN framework the CNN can be interpreted as an image filter, here referred to as a CNN filter. Suppose a CNN classifier is trained on images of fixed size pixels. It can then be applied as a CNN filter on images larger than , and the spatial support of the CNN filter is . This is illustrated in Figure 1(b). To make the CNN a filter, the fully-connected layers must be turned into convolutional layers [17]. If the last convolutional layer of the CNN classifier has spatial extent , then the first fully-connected layer becomes convolutional with filter size . All subsequent fully-connected layers become convolutional with filters.

(a) Example 1-dimensional slice of a CNN classifier with two convolution-and-pooling layers, two fully-connected layers and five output classes.
(b) Example of a CNN filter with a downsampling factor of 4, due to two pooling layers. Therefore the CNN filter stride is pixels.
Figure 1: Diagrams showing the difference between a CNN applied as an image classifier and an image filter.

Using the CNN as a filter introduces design considerations on the network architecture. Typically CNN classifiers are designed with zero padding in some layers in order to arrive at the desired values of at the last convolutional layer (see Figure 2(a)). In the case of CNN filters, padded areas do not contain zeros (except at the image boundaries), rather they contain adjacent features. This could be problematic if the CNN was trained as a classifier and zeros are expected at the filter support boundary. When padding is used in the CNN filter architecture it increases the effective spatial support of the filter (Figure 2(b)). Alternatively if the first fully-connected layer becomes convolutional with a filter smaller than , the effective spatial support of the CNN filter is reduced.

(a) Padding of convolutional layers in a CNN classifier. Zero padded regions (in green) expand the input array to the next layer.
(b) Padding in a CNN filter increases the effective input image size. Instead of zeros, the padding region now contains features computed from the previous layer. This increases the support of the CNN filter.
Figure 2: Diagrams showing the effect padding of convolutional layers has on FCNs.

In general the output of the CNN filter has a lower spatial resolution than the input, which is undesirable for applications like semantic labelling. The downsampling factor from input to output is the product of the strides from all layers. For example if there are 4 max-pooling layers each with a stride of 2 (i.e.downsampling factor of 2), the overall downsampling factor of the CNN filter is . The downsampling factor could be viewed as the stride of the CNN filter, as demonstrated in Figure 1(b). Methods for restoring the output to the same resolution as the input include interpolation, shift-and-stitch, and learned multi-resolution deconvolution (deepJet) [17].

4.2 FCN Training on Tiles

In [17] the FCN was trained on images of modest size using a minibatch size of 20. While such multimedia data fits comfortably into GPU RAM, remote sensing images are typically much larger and the whole image cannot be accommodated on the GPU. In our experiments input images and corresponding target label images are divided into non-overlapping tiles. During training the tiles are treated as separate images and processed in minibatches. During classification each tile is processed separately to generate a tile of predicted class labels. These prediction tiles are mosaiced to form a single output image. To avoid artefacts at tile boundaries they are made to overlap by half the CNN filter support.

FCN training is superior to patch-based training for two reasons. First, it is more memory efficient. The patch-based approach crops out the patches and puts them in a minibatch. Since the patches overlap, the minibatch might contain the same pixel multiple times. With FCN training each pixel only appears in a minibatch once. Second, the FCN effectively trains on more data and so should be more accurate. In the patch-based case not all patches are used for training, rather a random subset is selected. In FCN training all possible overlapping patches are used for training. For a given tile, all overlapping patches form a minibatch and contribute to the weight update. The downside is that in natural imagery neighbouring patches are highly correlated. In patch-based training the samples in a minibatch are randomised and the stochasticity of the weight updates acts as a regulariser. In contrast, care must be taken with FCN training because although the tiles in a minibatch can be shuffled, the patches within the tile cannot and so minibatch samples are not so random. In our experiments it was found that smaller batches of tiles produced better results.

4.3 Experiments

Patch-based training is compared with FCN training on the Vaihingen data set. In the patch-based case the CNN is trained on patches, but applied convolutionally at test time. In both cases the following standard network architecture is: 5x5x32 convolution, Relu, 2x2 max pooling; 5x5x64 convolution, Relu, 2x2 max pooling; 3x3x96 convolution, Relu, 2x2 max pooling; 3x3x128 convolution, Relu, 2x2 max pooling; fully-connected layer as 3x3x128 convolutional layer, Relu, dropout; 1x1x128 convolution, Relu, dropout; 1x1x5 softmax output layer. With 4 pooling layers the downsampling factor is . During training the softmax layer outputs are upsampled by a factor of 16 to full resolution with bilinear interpolation. Further details of the experimental setup are given in Appendix A.

The results are shown in Table 4. The FCN is trained with two versions of the data, one with only 90 degree augmentations of the data, and the other with all 36 ten degree rotations. The 90-degree version was included to make the results comparable with [25]. The improvement from patch-based to fully-convolutional training is quite significant, showing the importance of the increased effective training set size brought about by FCNs. Examples of labelling in the two cases are shown in Figure 3. In the third row it can be seen that increasing the amount of rotation augmentation on the data only produced an incremental improvement to accuracy, indicating that the original data contains a good diversity of structure orientations. Nevertheless the 10-degree rotated data was used in all subsequent experiments.

Imp. surf. Building Low veg. Tree Car Overall F1 Overall Acc.
Patch-based Training [25]
FCN with 4 rotation augmentations
FCN with 36 rotation augmentations
Table 4: FCN semantic labelling results on Vaihingen data set, validation set results.
Figure 3: Example semantic labelling output for Vaihingen data set. From left to right: input CIR image, ground truth labels, patch-based training, FCN training. Classes are impervious surface (white), building (blue), low vegetation (cyan), tree (green), car (yellow).

5 Downsampling and Upsampling in CNNs

Overhead images contain both things and stuff (objects and extended regions), and the accuracy at region boundaries is crucial. Therefore the output labels are required at the same spatial resolution as the input image. As we have seen an FCN can be viewed as an image filter with a stride or downsampling factor that is dictated by the number of pooling layers. The typical solution is to upsample, either with bilinear interpolation or with learned deconvolution [17]. This approach is sub-optimal because the starting point is a sub-sampled function of the input pixels. Intuitively if the FCN is applied to shifted versions of the input, it generates sub-sampled outputs on intervening points on the pixel grid that can be interleaved to produce a full-resolution output. This is the so-called shift-and-stitch approach. Here we show that the same result can be achieved more efficiently by pooling without downsampling. This approach requires the filter size to increase with layer depth. To avoid very large convolutional filters, the atrous method is used to introduce holes in the filters. Another way to address the loss of resolution is to combine features from multiple resolutions, as in [16] and the deepJet method of [17].

5.1 No-Downsampling FCN

If pooling and downsampling reduces resolution, which is undesirable, then why downsample at all? Pooling has been found to be an essential component of CNNs in summarising feature responses and introducing shift tolerance at multiple scales [15]. In our proposed approach we retain pooling, but do not downsample. As layer depth increases, the size of the convolution and pooling filters must increase exponentially (see Figure 4). This would increase the number of parameters in the model severely and cause over-fitting. As suggested in [3] the atrous method is used to interleave the convolutional filter coefficients with zeros so that the number of weights remains the same but the spatial support increases. For the pooling layers holes are not introduced. The architecture of the no-downsampling network used in our experiments is shown in Table 5.

(a) Regular downsampling FCN. The downsampling factor after 2 layers is .
(b) A no-downsampling FCN. The stride at each layer is 1. The output is equivalent to interleaving the responses to shifted versions of the input.
Figure 4: Comparison of convolutional layers with and with out downsampling (1-D slice). In both cases there are two layers of convolution, pooling and downsampling. The bottom-most layer is the input to the CNN.
layer filter size number of filters filter dilation padding
conv1 32 1 2
pool1 - - 1
conv2 96 2 4
pool2 - - 2
conv3 128 4 4
pool3 - - 4
conv4 196 8 8
pool4 - - 8
fc5 1024 16 16
fc6 1024 - -
softmax 5 - -
Table 5: Architecture of the no-downsampling FCN. In all layers the filtering stride is 1 pixel.

At test time, the no-downsampling FCN is equivalent to a downsampling FCN applied with shift-and-stitch, but more computationally efficient since the convolution at each layer is performed only once. In contrast, the downsampling FCN would have to be applied to the image times using the shift-and-stitch approach. At training time, no-downsampling increases the effective training set size, because all shifted-and-interleaved versions of the input image are used in backpropagation. However this comes at a computational cost: now the outputs at each intermediate layer of the network are the same spatial resolution as the input image. Training requires much more GPU memory and computation time. The effective increase in training sample size is expected to be of modest benefit because shifted versions of the input are highly correlated with one another.

5.2 Testing with No Downsampling

An interesting aspect of the no-downsampling approach is that a regular downsampling FCN can be turned into a no-downsampling FCN at test time. The output is equivalent to the shift-and-stitch approach, where shifted versions of the input are processed and the results interleaved into a full resolution output. The advantage is that computation is much more efficient. Suppose there are repetitions of convolution, pooling and downsampling layers in a CNN. The stride of the CNN filter is . Shift-and-stitch would require processing the input times. To give an example, the popular VGG-16 pre-trained network [29] has , requiring the input to be processed 1024 times! In contrast, the no-downsampling network processes the input image only once.

The shift-and-stitch approach uses a downsampling FCN, so there are fewer computations per layer. However this does not compensate for the factor described above. For example in the first layer, the whole input image must be convolved times in comparison to once for the no-downsampling FCN. Let us estimate the reduction in the number of computations required for the convolutional filters of the no-downsampling FCN compared with shift-and-stitch. For simplicity, we assume all convolutional layers have a downsampling factor of 2 in the traditional architecture. Define the following:

number of convolutional layers
dimensions of input image
number of computations for shift-and-stitch
number of computations for no-downsampling

The speed-up ratio is:


Note that although the filters have larger spatial support in higher layers of the no-downsampling FCN, the computational cost is the same due to the holes placed in the filter. Here the computational cost of the pooling operation is ignored because max pooling can be performed in independent of the filter size.

was computed for some popular pre-trained CNNs. For AlexNet [15], . For VGG-16 [29], . Note that these figures are theoretical and deviate from actual values, due to the constant computational costs incurred by GPUs and the pooling layers.

5.3 Experiments

Here the issue of output resolution is addressed experimentally.

Training with No Downsampling

The effect of training with no-downsampling is investigated. The same network architecture was used but adapted to pool but not downsample, so that the output is the same resolution as the input. This network is compared to the pool-and-downsample network on the Vaihingen data set, which uses bilinear interpolation to restore the output to full resolution. The results are shown in Table 6. The overall improvement by training with no-downsampling is 0.53%, but the improvement for the car class is 10.23%. No-downsample training effectively produces finer sampling of the training patches. Since cars constitute about 1% of the data, this class benefits greatly from increased representation in the training sample.

In [25] the labelling results from a patch-based CNN were combined with hand-crafted features and the results smoothed with a CRF, resulting in a 1.9% accuracy improvement on the Vaihingen data. We added this strategy to the no-downsampling FCN, the results are found in Table 6. These complimentary components only improve the accuracy by 0.2%. The improved smoothness and increased effective training size of the no-downsampling FCN has already exploited the benefits that were previously afforded by the hand-crafted features and CRF. Example outputs for these networks are shown in Figure 5.

Imp. surf. Building Low veg. Tree Car Overall Overall
F1 Acc.
FCN trained with downsampling
FCN trained with no-downsampling (DST_1)
FCN trained with no-DS + RF + CRF (DST_2)
Table 6: FCN semantic labelling results on the Vaihingen validation set, trained with no-downsampling. The configurations marked “DST_X” correspond to the leaderboard submissions, see Table 9 for the hold-out test set results.
Figure 5: Example semantic labelling output for Vaihingen data set using networks trained with no-downsampling. From left to right: ground truth labels, downsampling FCN, no-downsampling FCN, no-downsampling FCN with CRF.

The experiment is repeated for the Potsdam data set. The same network architecture is used, but due to its higher resolution the stride of the first convolutional layer is set to 2. Consequently the CNN filter stride of the network is . All five channels of data are fed as input to the network: RGB, infra-red (IR), and DSM. The results are shown in Table 7. The improvement of 1.98% is much more significant than for the Vaihingen data set due to the increased downsampling rate of the network (32 for Potsdam, 16 for Vaihingen); see Section 5.3 for more discussion on this point. The accuracy for cars improved dramatically, by almost 20%. The accuracy on fine structures is most severely effected by downsampling and interpolation. These fine structures benefit the most from the high resolution of the no-downsampling network. A comparison of the labelling outputs is shown in Figure 6.

Imp. surf. Building Low veg. Tree Car Unknown Overall Overall
F1 Acc.
FCN trained with downsampling
FCN trained with no-downsampling
Table 7: FCN semantic labelling results on the Potsdam validation set, trained with no-downsampling.
Figure 6: Example semantic labelling output for Potsdam data set using networks trained with no-downsampling. From left to right: input RGB image, ground truth labels, downsampling FCN, no-downsampling FCN.

To compare the no-downsampling FCN approach to other methods, the network was applied to the unlabelled test images of the Vaihingen data set and the results submitted to the challenge moderator. The network was only trained on the training images listed in Table 3. The result is shown in Table 9 as DST_1, giving a higher overall accuracy than competing methods (at the time of writing) including the work of [25]. Adding the hand-crafted features and CRF steps to improve the labelling (entry DST_2) results in the highest overall accuracy of 89.1%.

training test
data set downsampling no-downsampling downsampling no-downsampling
Vaihingen 1.5 hrs 2 days 14 hours 1.05 s/MPix 3.9 s/MPix
Potsdam 8 hrs 15 min 16 days 16 hours 1.2 s/MPix 4.3 s/MPix
Table 8: The effect of no-downsampling on computation time in CNNs.
Imp. surf. Building Low veg. Tree Car Overall Acc.
Table 9: ISPRS Challenge Vaihingen Leaderboard Results [12]. DST_1 is FCN, DST_2 is FCN+RF+CRF, corresponding to the validation set results in Table 6.

Effect of Downsampling on Accuracy

The effect of CNN filter stride on no-downsample training accuracy is further examined in the following experiment. A series of networks of increasing depth is trained on the Vaihingen data set. The network starts as a single fully-connected layer turned convolutional, and is made deeper and deeper. The 5 architectures examined are shown in Table 10. The second fully-connected layer has 512 neurons. The network is trained as an FCN and the validation set accuracy is shown in the table. The results get progressively better as the network gets deeper, validating the paradigm of deep learning. This also decreases the spatial resolution of the last convolutional layer, making it easier for the fully connected layers to learn spatial feature relationships. Consequently as the network gets deeper, the output downsampling becomes more severe, which negatively impacts the accuracy of semantic labelling. Despite this effect, the accuracy still improved with depth. The output is restored to full resolution using bilinear interpolation.

Config. Convolutional Layers FC Downsample Validation No-DS Diff
Layer 1 factor Accuracy val. acc.
1 n/a 64x64x32 1 79.83 n/a 0.00
2 5x5x32+pool (out=30x30) 30x30x144 2 84.25 83.99 -0.26
3 5x5x32+pool; 3x3x64+pool (out=14x14) 14x14x661 4 86.59 86.75 0.16
4 5x5x32+pool; 3x3x64+pool; 3x3x96+pool (out=6x6) 6x6x3578 8 86.87 87.41 0.54
5 5x5x32+pool; 3x3x64+pool; 3x3x96+pool; 3x3x128+pool (out=2x2) 2x2x31920 16 87.11 (**)87.52 0.41
Table 10: The effect of downsampling on CNN accuracy. Five FCNs with increasing numbers of convolution, pooling and downsampling layers are trained on the Vaihingen data set, with and without the no-downsampling strategy. Columns 5 and 6 show the validation set accuracy with downsampling and with no-downsampling, and the last column shows their difference. As depth increases so does the accuracy, and the downsampling rate (convolutional filter stride). No-downsampling has greater effect for FCNs with more downsampling.

Next each network is trained using the no-downsampling version of the network, which has the same number of parameters. Again, accuracy improves with depth, and is generally more accurate than the version trained with downsampling. We would expect the improvement to be more pronounced for deeper networks where the downsampling factor is higher. This is borne out by the last column of Table 10: although the improvement is not monotonic, it is generally higher for deeper networks. These results indicate that no-downsample training can give significant improvements for deep networks with a high downsample factor (i.e.high FCN filter stride).

6 Pre-Trained CNNs

Pre-trained CNN weights have been found to be effective for a variety of visual tasks [27]. In [24] pre-trained CNNs were applied to classification of aerial imagery patches and found to out-perform hand-crafted features. This is remarkable since the network is trained on multimedia images like dogs and cats, and generalises to overhead imagery. Here we propose to use pre-trained networks for overhead semantic labelling. The first reason is that even though we have a very large number of overlapping image patches for training, they are highly correlated and over-fitting may occur during training. Instead of training from random initialisation, fine-tuning pre-trained features might improve generalisation. The second reason is that randomly initialised networks might focus too much on the spectral scene properties since this information is more readily exploitable. However for good generalisation the network should rely more on appearance-based features and less on spectral content. Using pre-trained networks should encourage the network to make use of texture features.

Fine-tuning pre-trained networks on 3-channel imagery has been performed many times in the literature and is straightforward. However in our experiments we also use a normalised DSM channel, akin to depth information. CNNs have previously been applied to RGB-D data such as that generated by a Kinect sensor for object recognition. In [6] the depth channel is converted to RGB using scene constraints and fed to a second three-channel pre-trained network. The features are combined with the output of an RGB pre-trained network using a late fusion layer. In our case those scene constraints are not relevant. Our proposed approach is a hybrid network: three spectral bands are fed to the convolutional layers of a pre-trained network, whereas the single DSM channel is fed to randomly initialised convolutional layers. These two sets of convolutional features are concatenated and serve as input to two randomly initialised fully-connected layers. The network architecture is illustrated in Figure 7. The architecture of the DSM sub-network is the same as the standard FCN, specified in Section 4.3.

Figure 7: Schematic of the hybrid network architecture, combining pre-trained image features with DSM features trained from scratch.

6.1 Experiments

The VGG-16 pre-trained network [29] is applied to fully-convolutional semantic labelling of the Potsdam data. The VGG net is transformed to a fully-convolutional network using the net surgery approach of [17]. While the convolutional weights are pre-trained, the fully-connected layers are randomly initialised. All pre-trained layers are fine-tuned using a lower learning rate of 0.0001. In the first experiment, the RGB channels are fed as input to the network. The results are shown in the first row of Table 11. When compared with the randomly-initialised network that uses all five input channels there is a considerable improvement to the overall accuracy of almost 1.91% (see Table 7). The value of pre-trained features for analysis of this high-resolution imagery (5cm GSD) is evident. Next the CIR channels are used as input instead of RGB. Row 2 of Table 11 shows a marked increase in accuracy of 1.13%. The 1.82% improvement in accuracy for low vegetation demonstrates the discriminative power of the near infra-red band for plant-life. Examples of the labelling outputs are shown in Figure 8. Comparing columns 2 and 3, the CIR data facilitates improved delineation of vegetation. The worst-classified class is the unknown category (shown in red), which is any pixel not belonging to the other five classes. The training data covers a limited geographic area; a significantly more varied training set would be required to accurately label the unknown class.

In [25] it was shown that adding the DSM data to the CNN input improved the accuracy significantly, by more than 3% on the Potsdam data set. The DSM data is combined with pre-trained features computed from CIR data using the hybrid architecture shown in Figure 7. The results in row 3 of Table 11 show only a small improvement over the CIR-only result, indicating that late fusion does not make the most of the height information. Next a no-downsampling version of the hybrid network is trained. The network is much larger than the standard FCN used in other experiments, and using a stride of 1 pixel in all layers exhausts the GPU’s memory. Therefore the no-downsampling strategy is applied only partially, resulting in a convolutional filter stride of 8 that is followed with bilinear interpolation to produce the output. In row 4 of Table 11 the results show another small improvement in accuracy due to the no-downsampling approach, but a significant improvement for the car class (6.31%). Row 5 shows the result when incorporating all five input channels in a hybrid network. The results are worse than CIR-only again indicating that late fusion is a sub-optimal approach. The last three rows of the table show the previous approaches followed with a CRF for non-linear smoothing of the labels. In each case the CRF improves accuracy. The labelling outputs are exemplified in Figure 9. Comparing columns 1 and 3, the no-downsampling network does a better job of labelling the finely-detailed parts of the scene.

The pre-trained and hybrid networks trained on the Potsdam data were applied to the hold-out data set and the results submitted to the Potsdam labelling challenge. The leaderboard results are shown in Table 12. These are the first externally-contributed results to the Potsdam challenge (at the time of writing). The FCN approach makes a significant improvement over the baseline method, achieving a best accuracy of 90.3%.

Imp. Building Low Tree Car Unknown Overall Overall
surf. veg. F1 Acc.
VGG as FCN, RGB, pre-trained
VGG as FCN, CIR, pre-trained (DST_1)
VGG as FCN, CIR, pre-trained + DSM FCN rand. init. (DST_3)
VGG as FCN, CIR, pre-trained + DSM FCN rand. init., no-DS (DST_5)
VGG as FCN, RGB, pre-trained + IR-DSM FCN rand. init.
DST_1 + CRF (DST_2)
DST_3 + CRF (DST_4)
DST_5 + CRF (DST_6)
Table 11: FCN semantic labelling results on Potsdam data set, fine-tuning of VGG-16 pre-trained model, validation set results. The configurations marked “DST_X” correspond to the leaderboard submissions, see Table 12 for the hold-out test set results.
Figure 8: Comparison of pre-trained VGG FCN on different input channels for Potsdam data. From left to right: ground truth, VGG on RGB, VGG on CIR (DST_1), VGG on CIR + CRF (DST_2).
Figure 9: Results of pre-trained VGG FCN combined with DSM FCN, for Potsdam data set. From left to right: VGG on CIR + DSM FCN (DST_3), DST_3 + CRF (DST_4), VGG on CIR + DSM FCN no-downsampling (DST_5), DST_5 + CRF (DST_6)
Imp. surf. Building Low veg. Tree Car Overall Acc.
Table 12: ISPRS Challenge Potsdam Leaderboard Results. See Table 11 for configurations corresponding to DST_x submissions.

These experiments focus on the Potsdam data due to its higher GSD. Pre-trained features were found to not improve the labelling of the Vaihingen data compared with the standard FCN. The Vaihingen data is lower resolution than the Potsdam data, and does not benefit as much from the textural features. In this case early fusion of the DSM information is more beneficial than the addition of pre-trained features.

7 Conclusion

In this paper the benefits of fully-convolutional networks for semantic labelling have been shown to extend to high-resolution aerial imagery. A novel no-downsampling approach to FCNs was introduced that preserves the full input image resolution at every layer. Training with no downsampling takes considerable computational resources, however for detailed high-resolution imagery the labelling accuracy is significantly improved. The extra computational cost of no-downsampling at test time is modest () when compared with the equivalent shift-and-stitch approach to interpolation (). In [17] the benefits of shift-and-stitch were found to not outweigh the computational cost; perhaps by using a no-downsampling network a different conclusion would be reached. Although the no-downsampling network produces dense outputs, the spatial feature resolution still decreases with layer depth. To improve the detail in the labelling results this work should be extended to combine features from multiple scales, see for example [16].

The same pre-trained CNN features that have been applied successfully to so many other computer vision problems were also found to benefit semantic labelling of the higher-resolution Potsdam aerial imagery. However it is not straightforward to incorporate extra bands of information, namely the DSM. A hybrid network was proposed to combine a pre-trained FCN with a DSM-only FCN trained from scratch using late fusion in the fully-connected layers. Whilst this did improve labelling accuracy somewhat for the higher-resolution Potsdam data, input-level fusion of the DSM without pre-trained features gave a bigger boost to the Vaihingen data set results. Determining how pre-trained features can be fused at a lower level would be a beneficial topic of future work.

The proposed semantic labelling methods have been applied to two publicly-available benchmark data sets and, at the time of writing, achieved state-of-the-art accuracy. In order for this method to work in practice, the key issue is generalisation - extending the labelling to a wider variety of scenes. To achieve this a much larger labelled training set is needed. The labels provided with the challenge data were painstakingly created by hand, and repeating this effort across the globe is not feasible. Automatic generation of labels or pseudo-labels, for instance from OpenStreetmap, is the most promising way forward. Learning would need to take into account noise in these less-accurate labels [19]. Another factor important for generalisation is extension to different input bands, in particular the DSM might not be available in many scenarios. This paper has shown that high accuracy results can be achieved without elevation data, relying on image features only (89.7% on Potsdam). With improved generalisation and a more complete set of class labels, semantic labelling of aerial imagery would provide a semantic image layer that would benefit a great many geospatial application.

8 Acknowledgements

Thanks to Robert Christie for his software development work. Thanks to Markus Gerke and the other organisers of the challenge for the normalised DSMs and support relating to submissions. Thanks to the ISPRS for providing the research community with the wonderful challenge data sets.


  • [1] Lorenzo Bruzzone and Begüm Demir. Land Use and Land Cover Mapping in Europe: Practices & Trends, chapter A Review of Modern Approaches to Classification of Remote Sensing Data, pages 127–143. Springer Netherlands, Dordrecht, 2014.
  • [2] Marco Castelluccio, Giovanni Poggi, Carlo Sansone, and Luisa Verdoliva. Land use classification in remote sensing images by convolutional neural networks. CoRR, abs/1508.00092, 2015.
  • [3] Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, and Alan L Yuille. Semantic image segmentation with deep convolutional nets and fully connected crfs. In International Conference on Learning Representations (ICLR 2015), 2015.
  • [4] Marius Cordts, Mohamed Omran, Sebastian Ramos, Timo Rehfeld, Markus Enzweiler, Rodrigo Benenson, Uwe Franke, Stefan Roth, and Bernt Schiele. The cityscapes dataset for semantic urban scene understanding. In Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
  • [5] Dengxin Dai, Wen Yang, and Tongyuan Zou. Semantic labeling of urban areas in remote sensing imagery using multiple exemplars-based matching. In 2009 Joint Urban Remote Sensing Event, pages 1–6, May 2009.
  • [6] Andreas Eitel, Jost Tobias Springenberg, Luciano Spinello, Martin Riedmiller, and Wolfram Burgard. Multimodal deep learning for robust rgb-d object recognition. In Intelligent Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on, pages 681–687. IEEE, 2015.
  • [7] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The PASCAL Visual Object Classes Challenge 2012 (VOC2012) Results. http://www.pascal-network.org/challenges/VOC/voc2012/workshop/index.html.
  • [8] O. Firat, Gulcan Can, and F.T. Yarman Vural. Representation learning for contextual object and region detection in remote sensing. In Pattern Recognition (ICPR), 2014 22nd International Conference on, pages 3708–3713, Aug 2014.
  • [9] M. Gerke. Use of the stair vision library within the ISPRS 2D semantic labeling benchmark (Vaihingen). Technical report, University of Twente, 2015.
  • [10] P. Ghamisi, M. Dalla Mura, and J.A. Benediktsson. A survey on spectral spatial classification techniques based on attribute profiles. Geoscience and Remote Sensing, IEEE Transactions on, 53(5):2335–2353, May 2015.
  • [11] G. Heitz and D. Koller. Learning spatial context: Using stuff to find things. In European Conference on Computer Vision, 2008.
  • [12] ISPRS WG III/4. ISPRS 2D Semantic Labeling Contest. http://www2.isprs.org/commissions/comm3/wg4/semantic-labeling.html.
  • [13] Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv preprint arXiv:1408.5093, 2014.
  • [14] S Kluckner and H Bischof. Image-based building classification and 3D modeling with super-pixels. In Proc. Int. Soc. for Photogrammetry and Remote Sensing, Photogrammetric Computer Vision and Image Analysis, 2010.
  • [15] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Proc. Adv. Neural Inf. Process. Syst., 2012.
  • [16] Guosheng Lin, Chunhua Shen, Ian Reid, et al. Efficient piecewise training of deep structured models for semantic segmentation. In IEEE Conference on Computer Vision and Pattern Recognition, 2016.
  • [17] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In Computer Vision and Pattern Recognition (CVPR), 2015 IEEE Conference on, pages 3431–3440, June 2015.
  • [18] D. Marmanis, M. Datcu, T. Esch, and U. Stilla. Deep learning earth observation classification using imagenet pretrained networks. Geoscience and Remote Sensing Letters, IEEE, 13(1):105–109, Jan 2016.
  • [19] V. Mnih. Machine Learning for Aerial Image Labeling. PhD thesis, University of Toronto, 2013.
  • [20] V. Mnih and G. Hinton. Learning to detect roads in high-resolution aerial images. In Proc. Eur. Conf. Comp. Vis., 2010.
  • [21] Paolo Napoletano. Visual descriptors for content-based retrieval of remote sensing images. arXiv preprint arXiv:1602.00970, 2016.
  • [22] Keiller Nogueira, Otávio A. B. Penatti, and Jefersson A. dos Santos. Towards better exploiting convolutional neural networks for remote sensing scene classification. arXiv preprint arXiv:1602.01517, 2016.
  • [23] Hyeonwoo Noh, Seunghoon Hong, and Bohyung Han. Learning deconvolution network for semantic segmentation. In Proceedings of the IEEE International Conference on Computer Vision, pages 1520–1528, 2015.
  • [24] K. Nogueira O. Penatti and J. A. Dos Santos. Do deep features generalize from everyday objects to remote sensing and aerial scenes domains? In Proceedings of the IEEE/ISPRS Earthvision Workshop, Looking from above: when earth observation meets vision, June 2015.
  • [25] Sakrapee Paisitkriangkrai, Jamie Sherrah, Pranam Janney, and Anton van den Hengel. Effective semantic pixel labelling with convolutional networks and conditional random fields. In Proceedings of the IEEE/ISPRS Earthvision Workshop, Looking from above: when earth observation meets vision, pages 36–43, June 2015.
  • [26] J. Porway, K. Wang, B. Yao, and Song-Chun Zhu. A hierarchical and contextual model for aerial image understanding. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., pages 1–8, June 2008.
  • [27] A. S. Razavian, H. Azizpour, J. Sullivan, and S. Carlsson. CNN features off-the-shelf: an astounding baseline for recognition. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., 2014.
  • [28] Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, and Yann LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In International Conference on Learning Representations (ICLR 2014). CBLS, April 2014.
  • [29] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
  • [30] P. Tokarczyk, J. D. Wegner, S. Walk, and K. Schindler. Features, color spaces, and boosting: New insights on semantic classification of remote sensing images. IEEE Transactions on Geoscience and Remote Sensing, 53(1):280–295, Jan 2015.
  • [31] M. Vakalopoulou, K. Karantzalos, N. Komodakis, and N. Paragios. Building detection in very high resolution multispectral data with deep learning features. In Geoscience and Remote Sensing Symposium (IGARSS), 2015 IEEE International, pages 1873–1876, July 2015.
  • [32] Will Y. Zou, Xiaoyu Wang, Miao Sun, and Yuanqing Lin. Generic object detection with dense neural patterns and regionlets. In British Machine Vision Conference, BMVC 2014, Nottingham, UK, September 1-5, 2014, 2014.

Appendix A Experimental Setup

In all experiments the FCN filter support is 64x64 pixels for the Vaihingen data, 128x128 pixels for Potsdam, and 224x224 pixels in the case of pre-trained networks. For 64x64 input, non-overlapping tiles of size 128x128 pixels are cropped out of the input images and ground truth labels. It was found that larger tiles give equivalent accuracy. In all other cases the tile size is 256x256 pixels. In general a batch size of 2 tiles is used, with larger batch sizes resulting in poor convergence and over-fitting. For pre-trained nets a larger batch size is beneficial, but due to GPU RAM limitations 6 tiles are used per batch. The input data is augmented by flipping and rotating each input image before tiling. Images are rotated in 10 degree increments, resulting in 72 augmentations per image (36 angles by 2 flips). Only the largest rectangle fitting inside the valid area of the rotated image is used for training. With augmentations the Vaihingen data set has 123,330 tiles and Potsdam has 417,114 tiles.

Unless otherwise stated, the input image for Vaihingen has 4 layers (infra-red, red, green, normalised DSM) and for Potsdam 5 layers (red,green,blue,infra-red,normalised DSM). Each input channel has the training sample mean subtracted. The following standard parameters are used when training the networks: learning rate = 0.001, momentum = 0.9, weight decay = 0.0005, initial weights drawn from a Normal distribution with standard deviation = 0.01. In drop-out layers the ratio is 0.5. Networks are trained with 150,000 iterations (weight updates). The learning rate is decreased by a factor of 10 two-thirds of the way through training.

A modified version of Caffe [13] is used for all experiments, in conjunction with NVIDIA Titan X and Tesla K80 GPUs. Due to the large size of overhead images, the amount of RAM on the GPU is a limiting factor. Each of the graphics cards used has 12 GB of RAM.

Trained FCNs are applied to the large overhead images by tiling the image, applying the FCN to each tile, and assembling the tiled results back into a full-sized image. To avoid boundary artefacts the tiles are overlapped by half of the FCN input size. These tiles are generally 512x512 pixels but sometimes have to be made smaller to fit into GPU RAM, depending on the network. Whenever the output resolution is lower than the input resolution, the class probabilities are bilinearly interpolated to the full resolution and the class with the highest probability used as the output label.

The protocol for accuracy assessment on the Vaihingen and Potsdam data sets is described on the challenge website [12]. Overall accuracy – the percentage of correctly labelled pixels – can be considered the main accuracy measure. F1 scores for each of the classes are also presented. For the Vaihingen data set our classifiers do not produce the “unknown” class due to its scarcity, and the unknown class is not included in validation set metrics. The unknown class is included fully for the Potsdam data set. A three-pixel boundary between ground truth regions with different labels is ignored in the accuracy assessment to allow for human error in the ground truth.

In some experiments a pixel-wise 4-connected conditional random field (CRF) is used to non-linearly smooth the output labels. The CNN output probabilities are used as unary potentials and the binary potentials are based on Canny edges derived from the input data. The method is described in more detail in [25]. In the case of the Potsdam data, the binary edge mask is the combination of CIR, RGB and NDVI edges.

Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Add comment
Loading ...
This is a comment super asjknd jkasnjk adsnkj
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test description