Awesome
IORN: An Effective Remote Sensing Image Scene Classification Framework
Introduction
Improved orientated response network (IORN) is descriped in a IEEE Geoscience and Remote Sensing Letters paper.
Remote sensing images captured by satellites, however, usually show varied orientations because of the earth’s rotation and camera angles. This variation increases the difficulties of recognizing the class of a scene.
Based on orientated response network (ORN), we design Improved orientated response network (IORN). We use the VGG16 model as our fundamental network. Then, we upgrade the original VGG16 with 3x3x4 A-ARFs and S-ORAlign to create the IOR4-VGG16 model.
<img src='pic/arch.png' width='400'>Experimental result
IOR4-VGG16 are mainly tested on NWPU-RESISC45 and UCM. <img src='pic/result.png' width='850'>
Prerequisites
- Linux(Ubuntu 16.04), cuda 8.0, cudnn 7.0, pytorch 0.3.1
- install dependencies
pip install -r requirements.txt
- install tensorboardX
pip install tensorflow tensorboardX
- install IORN
cd ImprovedORN/IORN_install/install/ bash install.sh
Train IOR4-VGG16 on UCM
- download pre-trained IOR4-VGG16 (90 epoches on Imagenet) from OneDrive or BaiduYun. Then move the pre-trained moedl to ImprovedORN/pretrained_model/
- download UCM, and make sure it looks like this:
.../ImprovedORN/datasets/UCMerced_LandUse/Images/
- train IOR4-VGG16 on UCM
python main_vgg16_0.5.py
- you can find the confusion matrix file(csv), Visualizing file for tensorboard and model checkpoint in timestamp folder.