Pytorch implementation of "Wang, Y., Ji, S., Lu, M., & Zhang, Y. (2020). Attention boosted bilinear pooling for remote sensing image retrieval. International Journal of Remote Sensing, 41(7), 2704-2724." All models are trained on a single NVIDIA GeForce GTX 1060 GPU with 6 GB RAM.
We introduce a second-order pooling named compact bilinear pooling (CBP) into convolutional neural networks (CNNs) for remote sensing image retrieval.
The retrieval algorithm has three stages, pretraining, fine-tuning and retrieval.
Two classic CNN structures, VGG16 and ResNet34, are pretrained respectively with the ImageNet consisting of close-range images. A CBP layer is introduced to replace the fully connected layers in the two networks. To extract globally consistent representations, a channel and spatial integrated attention mechanism is proposed to refine features from the last convolution layer and the features are used as the input of the CBP.
The new network is fine-tuned on a remote sensing dataset to train discriminable features.
The network, with fully connected layers being replaced by a PCA (principal component analysis) module, is applied to new remote sensing datasets.
python cbp_vgg16.py python cbp_resnet34.py python ATT_CBP_resnet34.py