Skip to content

NUST-Machine-Intelligence-Laboratory/PKINet

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Poly Kernel Inception Networks for Remote Sensing Detection

Introduction πŸ‘‹

This repository contains the implementations of PKINet (CVPR2024) and PKINet-v2 (ECCV2026) for remote sensing object detection.

  • PKINet is the original poly-kernel backbone for remote sensing detection.
  • PKINet-v2 further improves both detection accuracy and inference efficiency over PKINet.

PKINet pipeline

Pipeline of PKINet.

PKINet-v2 pipeline

Pipeline of PKINet-v2.


Papers πŸ“„

PKINet (CVPR 2024)

  • Poly Kernel Inception Network for Remote Sensing Detection: arXiv

PKINet-v2 (ECCV 2026)

  • PKINet-v2: Towards Powerful and Efficient Poly-Kernel Remote Sensing Object Detection: arXiv

Model Zoo πŸ“¦

PKINet-v2

Pretrained Models

  • PKINet-v2-T backbone(ImageNet, 300 epochs): Download
  • PKINet-v2-S backbone(ImageNet, 300 epochs): Download

DOTA-v1.0

Model Detector mAP Angle Config Dev-Config Weights
PKINet-v2-S-Sqrt5 Oriented R-CNN 80.75 le90 config develop model

The following models are the standard PKINet-v2 model zoo results.

Model Detector mAP Angle Config Dev-Config Weights
PKINet-v2-T Oriented R-CNN 79.36 le90 config - model
PKINet-v2-S Oriented R-CNN 80.46 le90 config develop model
PKINet-v2-S Rotated Faster R-CNN 79.02 le90 config develop model
PKINet-v2-S Rotated FCOS 77.13 le90 config develop model
PKINet-v2-S R3Det 77.64 oc config develop model
PKINet-v2-S RoI Transformer 79.87 le90 config develop model
PKINet-v2-S S2ANet 79.68 le135 config develop model

DOTA-v1.5

Model Detector mAP Angle Config Weights
PKINet-v2-S Oriented R-CNN 73.57 le90 config model

PKINet

Pretrained Models

  • PKINet-T backbone (ImageNet, 300 epochs): Download
  • PKINet-S backbone (ImageNet, 300 epochs): Download

DOTA-v1.0

Model mAP Angle Config Weights
PKINet-T (1024,1024,200) 77.87 le90 pkinet-t_fpn_o-rcnn_dotav1-ss_le90 model
PKINet-S (1024,1024,200) 78.39 le90 pkinet-s_fpn_o-rcnn_dotav1-ss_le90 model

DOTA-v1.5

Model mAP Angle Config Weights
PKINet-S (1024,1024,200) 71.47 le90 pkinet-s_fpn_o-rcnn_dotav15-ss_le90 model

Setup πŸ› οΈ

MMRotate-PKINet depends on PyTorch, MMCV, MMDetection, and MMEngine.

For more details, please refer to the MMRotate installation guide.

conda create --name pkinet python=3.8 -y
conda activate pkinet
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
pip install yapf==0.40.1
pip install -U openmim
mim install mmcv-full
mim install mmdet
mim install mmengine
git clone https://github.com/NUST-Machine-Intelligence-Laboratory/PKINet.git
cd PKINet
mim install -v -e .

Training and Testing πŸš€

Please see get_started.md for the basic usage of MMRotate.

We also provide tutorials for:

PKINet-v2 (taking pkinet-v2-s_fpn_o-rcnn as an example)

1. Download ImageNet pretrained backbone and place it into pretrain/

  • PKINet-v2-S backbone(ImageNet, 300 epochs): Download

2. Train PKINet-v2

bash ./tools/dist_train.sh configs/pkinet-v2/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90.py 4

3. Convert a trained PKINet-v2 checkpoint to the deploy version

python tools/pkinet/convert_pkinet_to_deploy.py \
  configs/pkinet-v2/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90.py \
  work_dirs/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90/latest.pth \
  work_dirs/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90/pkinet-v2-s-deploy.pth

4. Test the deploy model

bash ./tools/dist_test.sh \
  configs/pkinet-v2/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90_deploy.py \
  work_dirs/pkinet-v2-s_fpn_o-rcnn_3x_dotav1-ss_le90/pkinet-v2-s-deploy.pth \
  4 \
  --format-only \
  --eval-options submission_dir=work_dirs/results/pkinet-v2-dota

5. Submit the result to DOTA-v1.0 server

Important

If you care more about inference speed, we strongly recommend PyTorch 2.4.1 + CUDA 11.8, which is more efficient for large-kernel inference for inference. However, the training stability of this version has not been thoroughly verified, so we do not recommend using it for training.

conda create --name pkinet-dev python=3.10 -y
conda activate pkinet-dev
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118
pip install yapf==0.40.1
pip install -U openmim
mim install mmcv-full
mim install mmdet
mim install mmengine
git clone https://github.com/NUST-Machine-Intelligence-Laboratory/PKINet.git
cd PKINet
mim install -v -e .

PKINet

1. Train PKINet

bash ./tools/dist_train.sh configs/pkinet/pkinet-s_fpn_o-rcnn_dotav1-ss_le90.py 4

License πŸ“œ

This project is released under the Apache 2.0 license.


Citation πŸ“š

If you find this repository useful, please consider citing:

@inproceedings{cai2024poly,
    author    = {Cai, Xinhao and Lai, Qiuxia and Wang, Yuwei and Wang, Wenguan and Sun, Zeren and Yao, Yazhou},
    title     = {Poly Kernel Inception Network for Remote Sensing Detection},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2024},
    pages     = {27706-27716}
}
@article{cai2026pkinetv2,
  title={PKINet-v2: Towards Powerful and Efficient Poly-Kernel Remote Sensing Object Detection},
  author={Cai, Xinhao and Liulei Li and Gensheng Pei and Zeren Sun and Yazhou Yao and Wenguan Wang},
  journal={arXiv preprint arXiv:2603.16341},
  year={2026}
}

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.6%
  • Other 0.4%