All Projects → MingboHong → SSPNet

MingboHong / SSPNet

Licence: other
SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images.

Programming Languages

python
139335 projects - #7 most used programming language

SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images (IEEE GRSL 2021)

News

We have released the full version code of SSPNet. Code (based on mmdetection) for SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images. [PDF].

Illustrations of FPN (a) and our SSPNet (b), where the blue boxes indicate that the object that can not be matched at the current layer will be regarded as a negative sample, and the opposite is a positive sample. The SSM will filter the features flowing from deep layers to the next layer, where those objects that can be both matched at adjacent layers will be reserved, and others (i.e., background, objects that can not be both matched at adjacent layers) will be weakened.

Performance

model Anchor AP50 Params Flops Speed Download
faster_rcnn_r50_sspnet 60.87 - - - Google Drive
Baidu Drive (Passwd:l25j)
fovea_r50_sspnet - 58.49 - - - Google Drive
Baidu Drive (Passwd:ikit)

Visualization of CAM

Qualitative results

Requirements

pytorch = 1.10.0
python = 3.7.10
cuda = 10.2
numpy = 1.21.2
mmcv-full = 1.3.18 
mmdet = 2.19.0

You can also use this command

pip install -r requirements.txt

How to use?

  1. Download the TinyPerson Dataset
  2. Install mmdetection
  3. Download our customized label (Google Drive, Baidu Drive passwd:x433)
  4. Edit the data_root, ann_file, img_prefix in ./configs/_base_/datasets/coco_detection.py

👇 Core File 👇

Config file

config/sspnet/faster_rcnn_r50_sspnet_1x_coco.py (Anchor-based).
config/sspnet/fovea_r50_sspnet_4x4_1x_coco.py (Anchor-free).

Scale Selection Pyramid Network

mmdet/models/necks/ssfpn.py

Weight Sampler

mmdet/core/bbox/samplers/ic_neg_sampler.py

How to train?

Multiple GPUs:

./dist_train.sh ../config/sspnet/faster_rcnn_r50_sspnet_1x_coco.py 2

Single GPU:

python train.py ../config/sspnet/faster_rcnn_r50_sspnet_1x_coco.py 

How to test?

Multiple GPUs:

./dist_test.sh ../config/sspnet/faster_rcnn_r50_sspnet_1x_coco.py ../{your_checkpoint_path} 2 --eval bbox 

Single GPU:

python test.py ../config/sspnet/faster_rcnn_r50_sspnet_1x_coco.py ../{your_checkpoint_path} --eval bbox 

TOD

  • Swin-Transformer + SSFPN + label assignment for tiny object.

Citation

If you use this code or ideas from the paper for your research, please cite our paper:

@article{hong2021sspnet,
  title={SSPNet: Scale Selection Pyramid Network for Tiny Person Detection From UAV Images},
  author={Hong, Mingbo and Li, Shuiwang and Yang, Yuchao and Zhu, Feiyu and Zhao, Qijun and Lu, Li},
  journal={IEEE Geoscience and Remote Sensing Letters},
  year={2021},
  publisher={IEEE}
}

Reference

[1] Chen, Kai, et al. "MMDetection: Open mmlab detection toolbox and benchmark." arXiv preprint arXiv:1906.07155 (2019).

[2] Yu, Xuehui, et al. "Scale match for tiny person detection." Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2020.

Contact

[email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].