Skip to content

YuChuang1205/PAL

Repository files navigation

The official complete code for paper "From Easy to Hard: Progressive Active Learning Framework for Infrared Small Target Detection with Single Point Supervision" [Paper/arXiv]

In this project demo, we have integrated multiple SIRST detection networks (ACM, ALC, MLCL-Net, ALCL-Net, DNANet, GGL-Net, UIUNet, MSDA-Net), label forms (Full supervision, Coarse single-point supervision, Centroid single-point supervision), and datasets (SIRST, NUDT-SIRST, IRSTD-1k and SIRST3). At the same time, more networks and functions can be integrated into the project later. We hope we can contribute to the development of this field.

Main results

Comparison of different methods on the SIRST3 dataset. CNN Full, CNN Coarse, and CNN Centroid denote CNN-based methods under full supervision, coarse and centroid point supervision.

Overview

We consider that an excellent learning process should be from easy to hard and take into account the learning ability of the current learner (model) rather than directly treating all tasks (samples) equally. Inspired by organisms gradually adapting to the environment and continuously accumulating knowledge, we first propose an innovative progressive active learning idea, which emphasizes that the network progressively and actively recognizes and learns more hard samples to achieve continuous performance enhancement. For details, please see [Paper/arXiv].

PAL framework

Datasets

  1. Original datasets
  1. The labels are processed according to the "coarse_anno.m" and "centroid_anno.m" files in the "tools" folder to produce coarse point labels and centroid point labels. (You can also skip this step and use the complete dataset in step 3 directly.)

  2. The datasets we created from original datasets (can be used directly in our demo)

How to use our code

  1. Download the dataset

        Click download datasets

        Unzip the downloaded compressed package to the root directory of the project.

  1. Creat a Anaconda Virtual Environment

    conda create -n PAL python=3.8 
    conda activate PAL 
    
  2. Configure the running environment

     pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
     pip install segmentation_models_pytorch -i https://pypi.tuna.tsinghua.edu.cn/simple
     pip install PyWavelets -i https://pypi.tuna.tsinghua.edu.cn/simple
     pip install scikit-image -i https://pypi.tuna.tsinghua.edu.cn/simple
     pip install albumentations==1.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
     pip install scikit-learn matplotlib thop h5py SimpleITK scikit-image medpy yacs torchinfo
    
  3. Training the model

    The default model, dataset and label forms are MSDA-Net, SIRST3, and coarse point labels. If you need to train others, please modify the corresponding setting in "train_model.py". Just change the settings to your choice. It's very simple. For details, please see the beginning of the code of "train_model.py".

    python train_model.py
    
  4. Testing the Model

    The default model, dataset and label forms are MSDA-Net, SIRST3, and coarse point labels. If you need to test others, please modify the corresponding setting in "test_model.py". Notably, in the "test_model.py" file, you also need to assign the name of the folder where the weight file is located to the "test_dir_name" variable so that the program can find the corresponding model weights. For details, please see the beginning of the code of "test_model.py".

    python test_model.py
    
  5. Performance Evaluation Use "cal_mIoU_and_nIoU.py" and "cal_PD_and_Fa.py" for performance evaluation. Notably, the corresponding folder path should be replaced. default:SIRST3.

    python cal_mIoU_and_nIoU.py
    python cal_PD_and_Fa.py
    

Results

  • Quantative Results on the SIRST3 dataset with Coarse point labels:

Results on the SIRST3 with coarse point label

  • Quantative Results on the three individual datasets with Coarse point labels:

Results on the three separate dataset with coarse point label

  • Quantative Results on the SIRST3 dataset with Centroid point labels:

Results on the SIRST3 with centroid point label

  • Quantative Results on the three individual datasets with Centroid point labels:

Results on the three separate dataset with centroid point label

  • Qualitative results on the SIRST3 dataset with Coarse point labels: (Red denotes the correct detections, blue denotes the false detections, and yellow denotes the missed detections.)

Visualization on the SIRST3 with coarse point label

  • Qualitative results on the SIRST3 dataset with Centroid point labels: (Red denotes the correct detections, blue denotes the false detections, and yellow denotes the missed detections.)

Visualization on the SIRST3 with centroid point label

Citation

If you find this repo helpful, please give us a 🤩star🤩. Please consider citing the PAL if it benefits your project.

BibTeX reference is as follows.

@misc{yu2024easyhardprogressiveactive,
      title={From Easy to Hard: Progressive Active Learning Framework for Infrared Small Target Detection with Single Point Supervision}, 
      author={Chuang Yu and Jinmiao Zhao and Yunpeng Liu and Sicheng Zhao and Xiangyu Yue},
      year={2024},
      eprint={2412.11154},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2412.11154}, 
}

word reference is as follows.

Chuang Yu, Jinmiao Zhao, Yunpeng Liu, Sicheng Zhao, Xiangyu Yue. From Easy to Hard: Progressive Active Learning Framework for Infrared Small Target Detection with Single Point Supervision. arXiv preprint arXiv:2412.11154, 2024.

Other link

  1. My homepage: [YuChuang]
  2. "MSDA-Net" demo: [Link]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published