lsknet

(IJCV2024 & ICCV2023) LSKNet: A Foundation Lightweight Backbone for Remote Sensing

https://github.com/zcablii/lsknet

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, springer.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (1.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

(IJCV2024 & ICCV2023) LSKNet: A Foundation Lightweight Backbone for Remote Sensing

Basic Info
  • Host: GitHub
  • Owner: zcablii
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 10.4 MB
Statistics
  • Stars: 557
  • Watchers: 5
  • Forks: 46
  • Open Issues: 1
  • Releases: 0
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Citation

README.md

lsk_arch

PWC PWC PWC PWC PWC PWC PWC PWC PWC PWC PWC


Jittor implementation at github.com/NK-JittorCV/nk-remote


Update[8/1/2025] Supports Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection. Official code is available at YXB-NKU/Strip-R-CNN

We have added the config for our latest work, Strip-R-CNN arxiv. In this paper ,we have reached 82.75% mAP on DOTA1.0 dataset, setting a new state-of-the-art record.

PWC image

This repository is the official implementation of IJCV (accepted in 2024) "LSKNet: A Foundation Lightweight Backbone for Remote Sensing" at: IJCV or arxiv

Our conference version: ICCV 2023 "Large Selective Kernel Network for Remote Sensing Object Detection" at: ICCV Open Access

Abstract

Recent research on remote sensing object detection has largely focused on improving the representation of oriented bounding boxes but has overlooked the unique prior knowledge presented in remote sensing scenarios. Such prior knowledge can be useful because tiny remote sensing objects may be mistakenly detected without referencing a sufficiently long-range context, and the long-range context required by different types of objects can vary. In this paper, we take these priors into account and propose the Large Selective Kernel Network (LSKNet). LSKNet can dynamically adjust its large spatial receptive field to better model the ranging context of various objects in remote sensing scenarios. To the best of our knowledge, this is the first time that large and selective kernel mechanisms have been explored in the field of remote sensing object detection. Without bells and whistles, our lightweight LSKNet sets new state-of-the-art scores on standard remote sensing classification, object detection and semantic segmentation benchmarks. Based on a similar technique, we rank 2nd place in 2022 the Greater Bay Area International Algorithm Competition

Introduction

This repository is the official implementation of IJCV 2024 "LSKNet: A Foundation Lightweight Backbone for Remote Sensing" at: arxiv

The master branch is built on MMRotate which works with PyTorch 1.6+.

LSKNet backbone code is placed under mmrotate/models/backbones/, and the train/test configure files are placed under configs/lsknet/

Results and models

Imagenet 300-epoch pre-trained LSKNet-T backbone: Download

Imagenet 300-epoch pre-trained LSKNet-S backbone: Download

Imagenet 300-epoch pre-trained Strip R-CNN-T backbone: Download

Imagenet 300-epoch pre-trained Strip R-CNN-S backbone: Download

DOTA1.0

| Model | mAP | Angle | lr schd | Batch Size | Configs | Download | note | | :--------------------------------------------------------: | :---: | :---: | :-----: | :--------: | :--------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | :----------: | | RTMDet-l (1024,1024,-) | 81.33 | - | 3x-ema | 8 | - | - | Prev. Best | | LSKNetT (1024,1024,200) + ORCNN | 81.37 | le90 | 1x | 2*8 | lsktfpn1xdota_le90 | model | log | | | LSKNetS (1024,1024,200) + ORCNN | 81.64 | le90 | 1x | 1*8 | lsksfpn1xdota_le90 | model | log | | | LSKNetS* (1024,1024,200) + ORCNN | 81.85 | le90 | 1x | 1*8 | lsksemafpn1xdotale90 | model | log | EMA Finetune | | LSKNetS (1024,1024,200) + RoiTrans | 81.22 | le90 | 1x | 2*8 | lsksroitransfpn1x_dota | model | log | | | LSKNetS (1024,1024,200) + R3Det | 80.08 | oc | 1x | 2*8 | lsksr3detfpn1x_dota | model | log | | | LSKNetS (1024,1024,200) + S2ANet | 81.32 | le135 | 1x | 2*8 | lskss2anetfpn1x_dota | model | log | | | Strip R-CNN-T | 81.40 | le90 | 1x | 1*8 | striprcnntfpn1xdotale90 | model | | | Strip R-CNN-S | 82.28 | le90 | 1x | 1*8 | striprcnnsfpn1xdotale90 | model | | | Strip R-CNN-S* | 82.75 | le90 | 1x | 1*8 | striprcnnsfpn1xdotale90 | model | MoCAE | | StripNet-S + RoiTrans | 81.72 | le90 | 1x | 1*8 | striprcnnsroitransfpn1xdota | model |

FAIR1M-1.0

| Model | mAP | Angle | lr schd | Batch Size | Configs | Download | note | | :----------------------: | :---: | :---: | :-----: | :------: | :------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------: | | O-RCNN (1024,1024,200) | 45.60 | le90 | 1x | 18 | orientedrcnnr50fpn1xfairle90 | - | Prev. Best | | LSKNet_S (1024,1024,200) | 47.87 | le90 | 1x | 18 | lsksfpn1xdota_le90 | model | log | | | Strip R-CNN-S | 48.26 | le90 | 1x | 1*8 | striprcnnsfpn1xdotale90 | model | |

HRSC2016

| Model | mAP(07) | mAP(12) | Angle | lr schd | Batch Size | Configs | Download | note | | :------------------------------------------: | :-----: | :-----: | :---: | :-----: | :--------: | :-------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | :--------: | | RTMDet-l | 90.60 | 97.10 | le90 | 3x | - | - | - | Prev. Best | | ReDet | 90.46 | 97.63 | le90 | 3x | 2*4 | redetre50refpn3xhrsc_le90 | - | Prev. Best | | LSKNet_S | 90.65 | 98.46 | le90 | 3x | 1*8 | lsksfpn3xhrsc_le90 | model | log | | | Strip R-CNN-S | 90.60 | 98.70 | le90 | 3x | 1*8 | striprcnnsfpn3xhrscle90 | model | |

Installation

MMRotate depends on PyTorch, MMCV and MMDetection. Below are quick steps for installation. Please refer to Install Guide for more detailed instruction.

shell conda create --name openmmlab python=3.8 -y conda activate openmmlab conda install pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=10.2 -c pytorch pip install -U openmim mim install mmcv-full mim install mmdet git clone https://github.com/zcablii/Large-Selective-Kernel-Network.git cd Large-Selective-Kernel-Network pip install -v -e .

Get Started

Please see get_started.md for the basic usage of MMRotate. We provide colab tutorial, and other tutorials for:

LSKNet for Remote Sensing Segmentation

We further extend our work to segmentation tasks on the Potsdam, Vaihingen, LoveDA, and UAVid datasets. Please visit LSKNet + GeoSeg. To facilitate easy reproduction and swift initiation for beginners, we offer our prepared remote sensing segmentation datasets here.

-Vaihingen -Potsdam -LoveDA -uavid

Acknowledgement

MMRotate is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new methods.

Citation

If you use this toolbox or benchmark in your research, please cite this project.

```bibtex @article{Li2024IJCV, title={LSKNet: A Foundation Lightweight Backbone for Remote Sensing}, author={Li, Yuxuan and Li, Xiang and Dai, Yimain and Hou, Qibin and Liu, Li and Liu, Yongxiang and Cheng, Ming-Ming and Yang, Jian}, journal={International Journal of Computer Vision}, year={2024}, doi = {https://doi.org/10.1007/s11263-024-02247-9}, publisher={Springer} }

@InProceedings{Li2023ICCV, author = {Li, Yuxuan and Hou, Qibin and Zheng, Zhaohui and Cheng, Ming-Ming and Yang, Jian and Li, Xiang}, title = {Large Selective Kernel Network for Remote Sensing Object Detection}, booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)}, month = {October}, year = {2023}, pages = {16794-16805} }

@article{yuan2025strip, title={Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection}, author={Yuan, Xinbin and Zheng, ZhaoHui and Li, Yuxuan and Liu, Xialei and Liu, Li and Li, Xiang and Hou, Qibin and Cheng, Ming-Ming}, journal={arXiv preprint arXiv:2501.03775}, year={2025} }

```

Star History

Star History Chart

License

Licensed under a Creative Commons Attribution-NonCommercial 4.0 International for Non-commercial use only. Any commercial use should get formal permission first.

Owner

  • Name: Yuxuan Li
  • Login: zcablii
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - name: "MMRotate Contributors"
title: "OpenMMLab rotated object detection toolbox and benchmark"
date-released: 2022-02-18
url: "https://github.com/open-mmlab/mmrotate"
license: Apache-2.0

GitHub Events

Total
  • Issues event: 53
  • Watch event: 143
  • Member event: 1
  • Issue comment event: 113
  • Push event: 17
  • Fork event: 16
Last Year
  • Issues event: 53
  • Watch event: 143
  • Member event: 1
  • Issue comment event: 113
  • Push event: 17
  • Fork event: 16

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 20
  • Total pull requests: 0
  • Average time to close issues: about 1 month
  • Average time to close pull requests: N/A
  • Total issue authors: 17
  • Total pull request authors: 0
  • Average comments per issue: 2.5
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 19
  • Pull requests: 0
  • Average time to close issues: 14 days
  • Average time to close pull requests: N/A
  • Issue authors: 16
  • Pull request authors: 0
  • Average comments per issue: 2.47
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sun0629 (4)
  • xxxyyynnn (3)
  • 11313131 (3)
  • LW091 (3)
  • LeiaJ520 (2)
  • ocrhei (2)
  • ssfkfffddj (2)
  • hias-lcj (2)
  • joannahuadu (2)
  • daihaoma (2)
  • CrazyBrick (2)
  • fancy-girl (2)
  • lixinru77 (1)
  • Yiliud (1)
  • Xingjie-Han (1)
Pull Request Authors
  • niupihhhh (1)
  • wuwuwuxxx (1)
  • quxianjiuguo (1)
  • 921162820 (1)
  • ZhenboZhao77 (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v2 composite
.github/workflows/lint.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/publish-to-pypi.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/test_mim.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.circleci/docker/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
docker/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
docker/serve/Dockerfile docker
  • pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
requirements/build.txt pypi
  • cython *
  • numpy *
requirements/docs.txt pypi
  • docutils ==0.16.0
  • markdown >=3.4.0
  • myst-parser *
  • sphinx ==4.0.2
  • sphinx-copybutton *
  • sphinx_markdown_tables >=0.0.16
  • sphinx_rtd_theme ==0.5.2
requirements/mminstall.txt pypi
  • mmcv-full >=1.5.0
requirements/optional.txt pypi
  • imagecorruptions *
  • scikit-learn *
  • scipy *
requirements/readthedocs.txt pypi
  • e2cnn *
  • mmcv *
  • mmdet >=2.25.1,<3.0.0
  • torch *
  • torchvision *
requirements/runtime.txt pypi
  • matplotlib *
  • mmcv-full *
  • mmdet >=2.25.1,<3.0.0
  • numpy *
  • pycocotools *
  • six *
  • terminaltables *
  • torch *
requirements/tests.txt pypi
  • asynctest * test
  • codecov * test
  • coverage * test
  • cython * test
  • flake8 * test
  • interrogate * test
  • isort ==4.3.21 test
  • kwarray * test
  • matplotlib * test
  • pytest * test
  • scikit-learn * test
  • ubelt * test
  • wheel * test
  • xdoctest >=0.10.0 test
  • yapf * test
requirements.txt pypi
setup.py pypi