yeliudev / CATNet

๐Ÿ›ฐ๏ธ Learning to Aggregate Multi-Scale Context for Instance Segmentation in Remote Sensing Images (TNNLS 2024)
https://arxiv.org/abs/2111.11057
GNU General Public License v3.0
65 stars 8 forks source link
instance-segmentation object-detection

Context Aggregation Network

arXiv License

This repository maintains the official implementation of the paper Learning to Aggregate Multi-Scale Context for Instance Segmentation in Remote Sensing Images by Ye Liu, Huifang Li, Chao Hu, Shuang Luo, Yan Luo, and Chang Wen Chen, which has been accepted by TNNLS.

Installation

Please refer to the following environmental settings that we use. You may install these packages by yourself if you meet any problem during automatic installation.

Install from source

  1. Clone the repository from GitHub.
git clone https://github.com/yeliudev/CATNet.git
cd CATNet
  1. Install dependencies.
pip install -r requirements.txt
  1. Set environment variable
export PYTHONPATH=$PWD:$PYTHONPATH

Getting Started

Download and prepare the datasets

  1. Download the pre-processed datasets.
  1. Prepare the files in the following structure.
CATNet
โ”œโ”€โ”€ configs
โ”œโ”€โ”€ datasets
โ”œโ”€โ”€ models
โ”œโ”€โ”€ tools
โ”œโ”€โ”€ data
โ”‚   โ”œโ”€โ”€ dior
โ”‚   โ”‚   โ”œโ”€โ”€ Annotations
โ”‚   โ”‚   โ”œโ”€โ”€ ImageSets
โ”‚   โ”‚   โ””โ”€โ”€ JPEGImages
โ”‚   โ”œโ”€โ”€ hrsid
โ”‚   โ”‚   โ”œโ”€โ”€ annotations
โ”‚   โ”‚   โ””โ”€โ”€ images
โ”‚   โ”œโ”€โ”€ isaid
โ”‚   โ”‚   โ”œโ”€โ”€ train
โ”‚   โ”‚   โ”œโ”€โ”€ val
โ”‚   โ”‚   โ””โ”€โ”€ test
โ”‚   โ””โ”€โ”€ vhr
โ”‚       โ”œโ”€โ”€ annotations
โ”‚       โ””โ”€โ”€ images
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ setup.cfg
โ””โ”€โ”€ ยทยทยท

Train a model

Run the following command to train a model using a specified config.

mim train mmdet <path-to-config> --gpus 4 --launcher pytorch

If an out-of-memory error occurs on iSAID dataset, please uncomment L22-L24 in the dataset code and try again. This will filter out a few images with more than 1,000 objects, largely reducing the memory cost.

Test a model and evaluate results

Run the following command to test a model and evaluate results.

mim test mmdet <path-to-config> --checkpoint <path-to-checkpoint> --gpus 4 --launcher pytorch

Model Zoo

We provide multiple pre-trained models here. All the models are trained using 4 NVIDIA A100 GPUs and are evaluated using the default metrics of the datasets.

Dataset Model Backbone Schd Aug Performance Download
BBox AP Mask AP
iSAID CAT Mask R-CNN ResNet-50 3x 45.1 37.2 model | metrics
CAT Mask R-CNN ResNet-50 3x 47.7 39.2 model | metrics
DIOR CATNet ResNet-50 3x 74.0 โ€” model | metrics
CATNet ResNet-50 3x 78.2 โ€” model | metrics
CAT R-CNN ResNet-50 3x 75.8 โ€” model | metrics
CAT R-CNN ResNet-50 3x 80.6 โ€” model | metrics
NWPU
VHR-10
CAT Mask R-CNN ResNet-50 6x 71.0 69.3 model | metrics
CAT Mask R-CNN ResNet-50 6x 72.4 70.7 model | metrics
HRSID CAT Mask R-CNN ResNet-50 6x 70.9 57.6 model | metrics
CAT Mask R-CNN ResNet-50 6x 72.0 59.6 model | metrics

Citation

If you find this project useful for your research, please kindly cite our paper.

@article{liu2024learning,
  title={Learning to Aggregate Multi-Scale Context for Instance Segmentation in Remote Sensing Images},
  author={Liu, Ye and Li, Huifang and Hu, Chao and Luo, Shuang and Luo, Yan and Chen, Chang Wen},
  journal={IEEE Transactions on Neural Networks and Learning Systems},
  year={2024}
}