tardal

CVPR 2022 | Target-aware Dual Adversarial Learning and a Multi-scenario Multi-Modality Benchmark to Fuse Infrared and Visible for Object Detection.

https://github.com/jinyuanliu-cv/tardal

Science Score: 36.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, ieee.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.8%) to scientific vocabulary

Keywords

cvpr2022 deep-learning image-fusion object-detection pytorch
Last synced: 9 months ago · JSON representation

Repository

CVPR 2022 | Target-aware Dual Adversarial Learning and a Multi-scenario Multi-Modality Benchmark to Fuse Infrared and Visible for Object Detection.

Basic Info
  • Host: GitHub
  • Owner: JinyuanLiu-CV
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 28 MB
Statistics
  • Stars: 244
  • Watchers: 2
  • Forks: 46
  • Open Issues: 1
  • Releases: 1
Topics
cvpr2022 deep-learning image-fusion object-detection pytorch
Created about 4 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

TarDAL

Open In Colab visitors

Jinyuan Liu, Xin Fan, Zhangbo Huang, Guanyao Wu, Risheng Liu , Wei Zhong, Zhongxuan Luo,Target-aware Dual Adversarial Learning and a Multi-scenario Multi-Modality Benchmark to Fuse Infrared and Visible for Object Detection, IEEE/CVF Conference on Computer Vision and Pattern Recognition *(CVPR), 2022. **(Oral)


Abstract


M3FD Dataset

Preview

The preview of our dataset is as follows.


preview gif


Details

  • Sensor: A synchronized system containing one binocular optical camera and one binocular infrared sensor. More details are available in the paper.

  • Main scene:

    • Campus of Dalian University of Technology.
    • State Tourism Holiday Resort at the Golden Stone Beach in Dalian, China.
    • Main roads in Jinzhou District, Dalian, China.
  • Total number of images:

    • 8400 (for fusion, detection and fused-based detection)
    • 600 (independent scene for fusion)
  • Total number of image pairs:

    • 4200 (for fusion, detection and fused-based detection)
    • 300 (independent scene for fusion)
  • Format of images:

    • [Infrared] 24-bit grayscale bitmap
    • [Visible] 24-bit color bitmap
  • Image size: 1024 x 768 pixels (mostly)

  • Registration: All image pairs are registered. The visible images are calibrated by using the internal parameters of our synchronized system, and the infrared images are artificially distorted by homography matrix.

  • Labeling: 34407 labels have been manually labeled, containing 6 kinds of targets: {People, Car, Bus, Motorcycle, Lamp, Truck}. (Limited by manpower, some targets may be mismarked or missed. We would appreciate if you would point out wrong or missing labels to help us improve the dataset)

Download

If you have any question or suggestion about the dataset, please email to Guanyao Wu or Jinyuan Liu.

TarDAL Fusion

Baselines

In the experiment process, we used the following outstanding work as our baseline.

Note: Sorted alphabetically

Quick Start

Under normal circumstances, you may just be curious about the results of the fusion task, so we have prepared an online demonstration.

Our online preview (free) in Colab.

Set Up on Your Own Machine

When you want to dive deeper or apply it on a larger scale, you can configure our TarDAL on your computer following the steps below.

Virtual Environment

We strongly recommend that you use Conda as a package manager.

```shell

create virtual environment

conda create -n tardal python=3.10 conda activate tardal

select pytorch version yourself

install tardal requirements

pip install -r requirements.txt

install yolov5 requirements

pip install -r module/detect/requirements.txt ```

Data Preparation

You should put the data in the correct place in the following form.

TarDAL ROOT data | m3fd | | ir # infrared images | | vi # visible images | | labels # labels in txt format (yolo format) | | meta # meta data, includes: pred.txt, train.txt, val.txt | tno | | ir # infrared images | | vi # visible images | | meta # meta data, includes: pred.txt, train.txt, val.txt | roadscene | ...

You can directly download the TNO and RoadScene datasets organized in this format from here.

Fuse or Eval

In this section, we will guide you to generate fusion images using our pre-trained model.

As we mentioned in our paper, we provide three pre-trained models.

| Name | Description | |-----------|-----------------------------------------------------------------| | TarDAL-DT | Optimized for human vision. (Default) | | TarDAL-TT | Optimized for object detection. | | TarDAL-CT | Optimal solution for joint human vision and detection accuracy. |

You can find their corresponding configuration file path in configs.

Some settings you should pay attention to:

  • config.yaml
    • strategy: save images (fuse) or save images & labels (fuse & detect)
    • dataset: name & root
    • inference: each item in inference
  • infer.py
    • --cfg: config file path, such as configs/official/tardal-dt.yaml
    • --save_dir: result save folder

Under normal circumstances, you don't need to manually download the model parameters, our program will do it for you.

```shell

TarDAL-DT

use official tardal-dt infer config and save images to runs/tardal-dt

python infer.py --cfg configs/official/tardal-dt.yaml --save_dir runs/tardal-dt

TarDAL-TT

use official tardal-tt infer config and save images to runs/tardal-tt

python infer.py --cfg configs/official/tardal-tt.yaml --save_dir runs/tardal-tt

TarDAL-CT

use official tardal-ct infer config and save images to runs/tardal-ct

python infer.py --cfg configs/official/tardal-ct.yaml --save_dir runs/tardal-ct ```

Train

We provide some training script for you to train your own model.

Please note: The training code is only intended to assist in understanding the paper and is not recommended for direct application in production environments.

Unlike previous code versions, you don't need to preprocess the data, we will automatically calculate the IQA weights and mask.

```shell

TarDAL-DT

python train.py --cfg configs/official/tardal-dt.yaml --auth $YOURWANDBKEY

TarDAL-TT

python train.py --cfg configs/official/tardal-tt.yaml --auth $YOURWANDBKEY

TarDAL-CT

python train.py --cfg configs/official/tardal-ct.yaml --auth $YOURWANDBKEY ```

If you want to base your approach on ours and extend it to a production environment, here are some additional suggestions for you.

Suggestion: A better train process for everyone.

Any Question

If you have any other questions about the code, please email Zhanbo Huang.

Due to job changes, the previous link zbhuang@mail.dlut.edu.cn is no longer available.

Citation

If this work has been helpful to you, please feel free to cite our paper!

@inproceedings{liu2022target, title={Target-aware Dual Adversarial Learning and a Multi-scenario Multi-Modality Benchmark to Fuse Infrared and Visible for Object Detection}, author={Liu, Jinyuan and Fan, Xin and Huang, Zhanbo and Wu, Guanyao and Liu, Risheng and Zhong, Wei and Luo, Zhongxuan}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, pages={5802--5811}, year={2022} }

Owner

  • Name: Jinyuan Liu
  • Login: JinyuanLiu-CV
  • Kind: user

GitHub Events

Total
  • Watch event: 79
  • Pull request event: 1
  • Fork event: 4
Last Year
  • Watch event: 79
  • Pull request event: 1
  • Fork event: 4

Dependencies

requirements.txt pypi
  • kornia *
  • numpy *
  • opencv_contrib_python *
  • torch *
  • torchvision *
  • tqdm *
  • wandb *
.github/workflows/sync.yml actions
module/detect/utils/docker/Dockerfile docker
  • nvcr.io/nvidia/pytorch 22.06-py3 build
module/detect/utils/google_app_engine/Dockerfile docker
  • gcr.io/google-appengine/python latest build
module/detect/requirements.txt pypi
  • Pillow >=7.1.2
  • PyYAML >=5.3.1
  • ipython *
  • matplotlib >=3.2.2
  • numpy >=1.18.5
  • opencv-python >=4.1.1
  • pandas >=1.1.4
  • psutil *
  • requests >=2.23.0
  • scipy >=1.4.1
  • seaborn >=0.11.0
  • tensorboard >=2.4.1
  • thop >=0.1.1
  • torch >=1.7.0
  • torchvision >=0.8.1
  • tqdm >=4.64.0
module/detect/utils/google_app_engine/additional_requirements.txt pypi
  • Flask ==1.0.2
  • gunicorn ==19.9.0
  • pip ==21.1