Skip to content

FitzroyWangzj/SPCNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPCNet

Introduction

Serial Pyramid Convolutional Network (SPCNet) is a deep convolutional network designed for remote sensing object detection tasks. Our network employs serial small-kernel convolutions to achieve multi-scale feature extraction, effectively maintaining receptive field coverage while reducing computational complexity. In this repository, the model is referred to as MSCNet to match the pre-trained weights. This documentation provides detailed instructions for installation, training, and testing procedures, along with locations of model weights and related configuration files.

Installation

conda create --name openmmlab python=3.8 -y
conda activate openmmlab
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install yapf==0.40.1

pip install mmcv-full==1.7.2 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html

pip install -U openmim
mim install mmdet
mim install mmengine
git clone 
cd SPCNet
mim install -v -e .
cd mmpretrain
pip install -v -e .
cd ..

If you encounter version mismatch issues with mim installation, you may download mmdetection-2.28.2 and mmengine-0.10.4 offline from the following URLs:

mmdetection-2.28.2

mmengine-0.10.4

Model

Model Dataset Checkpoint Config
MSCNet DOTA v1 daotav1 checkpoint configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ss_le90.py
MSCNet DOTA v1.5 daotav15 checkpoint configs/mscnet/mscnet-s_fpn_o-rcnn-dotav15-ss_le90.py

Pre-trained Models

  1. Download the ImageNet-1K dataset

ImageNet dataset download link: ImageNet

Please save the dataset in the mmpretrain/data folder and name it imagenet.

  1. Pre-training
cd mmpretrain

# Single GPU Pre-training
python tools/train.py configs/mscnet/mscnet_8xb32_in1k.py --work-dir work_dirs/mscnet_8xb32_in1k

# Multi-GPU Pre-training
chmod +x ./tools/dist_train.sh
./tools/dist_train.sh configs/mscnet/mscnet_8xb32_in1k.py ${GPU_NUM}

Training

  1. Download the DOTA-v1.0 dataset:

DOTA-v1.0 dataset download link: DOTA-v1.0

Please save the dataset in the data folder and name it DOTA.

  1. Dataset Cropping

cd ..

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ss_trainval.json

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ss_val.json

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ss_test.json

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ms_trainval.json

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ms_val.json

python tools/data/dota/split/img_split.py --base-json \
  tools/data/dota/split/split_configs/ms_test.json
  1. Training
# single-scale

# Single GPU Training
python tools/train.py configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ss_le90.py --work-dir work_dirs/mscnet-s_fpn_o-rcnn-dotav1-ss_le90

# Multi-GPU Training
./tools/dist_train.sh configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ss_le90.py 8

# mmulti-scale

CUDA_VISIBLE_DEVICES=0 python tools/train.py configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ms_le90.py --work-dir work_dirs/mscnet-s_fpn_o-rcnn-dotav1-ms_le90_1

./tools/dist_train.sh configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ms_le90.py 8

Test

# Single GPU Test
python tools/test.py configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ms_le90.py checkpoint/mAP_best_epoch_60.pth --format-only

# Multi-GPU Test
./tools/dist_test.sh \
configs/mscnet/mscnet-s_fpn_o-rcnn-dotav1-ms_le90.py \
checkpoint/mAP_best_epoch_60.pth \
${GPU_NUM} \
--format-only

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published