HFCNet: Heterogeneous Feature Collaboration Network for Salient Object Detection in Optical Remote Sensing Images
Official PyTorch implementation of the IEEE TGRS 2024 paper "Heterogeneous Feature Collaboration Network for Salient Object Detection in Optical Remote Sensing Images".
Yutong Liu1, Mingzhu Xu1*, Tianxiang Xiao1, Haoyu Tang1, Yupeng Hu1, Liqiang Nie2
1 Shandong University
2 Harbin Institute of Technology (Shen Zhen)
* Corresponding author
- Paper:
IEEE Xplore - Code Repository:
GitHub
- Introduction
- Highlights
- Project Structure
- Installation
- Checkpoints / Models
- Dataset / Benchmark
- Usage
- Citation
- License
This project is the official implementation of the paper "Heterogeneous Feature Collaboration Network for Salient Object Detection in Optical Remote Sensing Images".
This work focuses on the task of Salient Object Detection (SOD) in optical remote sensing images, and proposes a Heterogeneous Feature Collaboration Network (HFCNet):
- Problem Addressed: Effectively collaborate heterogeneous features from different backbone networks to handle challenges such as multi-scale objects and complex backgrounds in remote sensing images.
- Core Idea: Leverage a heterogeneous feature collaboration mechanism to fully exploit the global modeling capability of Swin Transformer and the local detail extraction capability of VGG.
- This Repository Provides: Complete training and testing code, pretrained weight interfaces, and configurations for ORSSD, EORSSD, and ORSI-SOD datasets.
We present HFCNet, a framework for Salient Object Detection in Optical Remote Sensing Images.
Our method addresses feature heterogeneity by introducing a collaboration network that fuses multi-scale spatial and semantic info.
This repository provides the official implementation, trained checkpoints, and evaluation scripts.
- Supports heterogeneous feature fusion (Swin Transformer & VGG).
- Provides complete training and testing pipelines on three benchmark datasets (ORSSD, EORSSD, ORSI-SOD).
- Includes an efficient feature collaboration module to improve boundary detection accuracy.
.
├── config/ # Dataset configuration files (dataset_o, dataset_e, dataset_orsi)
├── pretrained/ # Stores pretrained classification weights (.pth)
├── main.py # Main entry script
├── README.md
└── requirements.txt
git clone [https://github.com/iLearn-Lab/HFCNet.git](https://github.com/iLearn-Lab/HFCNet.git)
cd HFCNetpython -m venv .venv
source .venv/bin/activate # Linux / Macpip install -r requirements.txtPlease download the following pretrained classification weights and place them in the ./pretrained directory:
- Swin Transformer:
swin_base_patch4_window12_384_22k.pth - VGG:
vgg16-397923af.pth
- HFCNet Weights: Baidu Drive Download (Password:
hfcn)
Please download the datasets and generate the corresponding path list files (.txt).
- ORSSD
- EORSSD
- ORSI-SOD
Use nohup to start training in the background:
# ORSSD
nohup python -u main.py --flag train --model_id HFCNet --config config/dataset_o.yaml --device cuda:0 > train_ORSSD.log &
# EORSSD
nohup python -u main.py --flag train --model_id HFCNet --config config/dataset_e.yaml --device cuda:0 > train_EORSSD.log &
# ORSI-SOD
nohup python -u main.py --flag train --model_id HFCNet --config config/dataset_orsi.yaml --device cuda:0 > train_ORSI.log &Download the trained weights, create directories, and run testing:
# ORSSD
mkdir ./modelPTH-ORSSD
python main.py --flag test --model_id HFCNet --config config/dataset_o.yaml
# EORSSD
mkdir ./modelPTH-EORSSD
python main.py --flag test --model_id HFCNet --config config/dataset_e.yaml
# ORSI-SOD
mkdir ./modelPTH-ORSI
python main.py --flag test --model_id HFCNet --config config/dataset_orsi.yamlIf you use this work in your research, please cite:
@ARTICLE{HFCNet2024TGRS,
author={Liu, Yutong and Xu, Mingzhu and Xiao, Tianxiang and Tang, Haoyu and Hu, Yupeng and Nie, Liqiang},
journal={IEEE Transactions on Geoscience and Remote Sensing},
title={Heterogeneous Feature Collaboration Network for Salient Object Detection in Optical Remote Sensing Images},
year={2024},
volume={62},
number={},
pages={1-14},
doi={10.1109/TGRS.2024.3351234}}This project is released under the Apache License 2.0.