This paper deals with the problem of the classification of large-scale very high resolution (VHR) remote sensing (RS) images in a semi-supervised scenario, where we have a limited training set (less than ten training samples per class). Typical pixel-based classification methods are unfeasible for large-scale VHR images. Thus, as a practical and efficient solution we propose to subdivide the large image into a grid of tiles, then classify the tiles instead of classifying pixels. Our proposed method uses the power of a pre-trained convolutional neural network (CNN) to first extract descriptive features from each tile. Next a neural network classifier (composed of 2 fully connected layers) is trained in a semi-supervised fashion and used to classify all remaining tiles in the image. This basically presents a coarse classification of the image, which is sufficient for many RS application. The second contribution deals with the employment of the semi-supervised learning to improve the classification accuracy. We present a novel semi-supervised approach which exploits both the spectral and spatial relationships embedded in the remaining unlabeled tiles. In particular, we embed a spectral graph Laplacian in the hidden layer of the neural network. In addition, we apply regularization of the output labels using a spatial graph Laplacian and the Random Walker algorithm. Experimental results obtained by testing the method on two large-scale images acquired by the IKONOS2 sensor, reveal promising capabilities of this method in terms of classification accuracy even with less than ten training samples per class.
The code and datasets used in this paper are available at CodeOcean (click here to access):