# CATNet
**Repository Path**: lqhg/CATNet
## Basic Information
- **Project Name**: CATNet
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-21
- **Last Updated**: 2024-10-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Context Aggregation Network
[](https://arxiv.org/abs/2111.11057)
[](https://github.com/yeliudev/CATNet/blob/main/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](https://yeliu.dev/), [Huifang Li](https://faculty.whu.edu.cn/show.jsp?n=Huifang%20Li), [Chao Hu](https://orcid.org/0000-0001-6183-9051), [Shuang Luo](https://www.researchgate.net/profile/shuang-luo-6), [Yan Luo](https://www.researchgate.net/profile/Yan_Luo65), and [Chang Wen Chen](https://web.comp.polyu.edu.hk/chencw/), which has been accepted by [TNNLS](https://cis.ieee.org/publications/t-neural-networks-and-learning-systems).

## 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.
- CUDA 11.8
- CUDNN 8.7.0.84
- Python 3.11.3
- PyTorch 2.0.1
- [MMEngine](https://github.com/open-mmlab/mmengine) 0.7.4
- [MMCV](https://github.com/open-mmlab/mmcv) 2.0.0
- [MMDetection](https://github.com/open-mmlab/mmdetection) 3.0.0
- [NNCore](https://github.com/yeliudev/nncore) 0.3.6
### Install from source
1. Clone the repository from GitHub.
```
git clone https://github.com/yeliudev/CATNet.git
cd CATNet
```
2. Install dependencies.
```
pip install -r requirements.txt
```
3. Set environment variable
```
export PYTHONPATH=$PWD:$PYTHONPATH
```
## Getting Started
### Download and prepare the datasets
1. Download the pre-processed datasets.
- [iSAID](https://huggingface.co/yeliudev/CATNet/resolve/main/datasets/isaid-9d62d4ad.zip)
- [DIOR](https://huggingface.co/yeliudev/CATNet/resolve/main/datasets/dior-b162132d.zip)
- [NWPU VHR-10](https://huggingface.co/yeliudev/CATNet/resolve/main/datasets/vhr-79ccc9f3.zip)
- [HRSID](https://huggingface.co/yeliudev/CATNet/resolve/main/datasets/hrsid-4e02052e.zip)
2. 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 --gpus 4 --launcher pytorch
```
> If an `out-of-memory` error occurs on iSAID dataset, please uncomment [L22-L24](https://github.com/yeliudev/CATNet/blob/main/datasets/isaid.py#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 --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.
## Citation
If you find this project useful for your research, please kindly cite our paper.
```bibtex
@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}
}
```