Home

Awesome

JL-DCF-pytorch

Pytorch implementation for JL-DCF: Joint Learning and Densely-Cooperative Fusion Framework for RGB-D Salient Object Detection (CVPR2020) [PDF][中文版], Siamese Network for RGB-D Salient Object Detection and Beyond (TPAMI2021) [PDF][中文版]

Requirements

Usage

This is the Pytorch implementation of JL-DCF. It has been trained and tested on Windows (Win10 + Cuda 10 + Python 3.6 + Pytorch 1.5), and it should also work on Linux but we didn't try.

To Train

python main.py --mode=train --arch=resnet --network=resnet101 --train_root=xx/dataset/RGBDcollection --train_list=xx/dataset/RGBDcollection/train.lst 

The converged loss value is around 7000.

To Test

python main.py --mode=test --arch=resnet --network=resnet101 --model=xx/JLDCF_resnet101.pth --sal_mode=LFSD  --test_folder=test/LFSD  

Be careful that model and network should match.

Learning curve

The training log is saved in the 'log' folder. If you want to see the learning curve, you can get it by using: tensorboard --logdir your-log-path

Pre-trained ImageNet model for training

densenet161<br> resnet101<br> resnet50<br> vgg16<br> vgg_conv1, password: rllb<br>

Trained model for testing

Resnet101:

Baidu Pan: resnet101, password: jdpb<br> Google Drive: https://drive.google.com/open?id=12u37yz-031unDPJoKaZ0goK8BtPP-6Cj<br>

Resnet50:

Baidu Pan: resnet50, password: ve9z

vgg16:

Baidu Pan: vgg16, password: 4yv6

Densenet161:

Baidu Pan: densenet161, password: qza4

JL-DCF-pytorch saliency maps

Resnet101 (NJU2K, NLPR, STERE, RGBD135, LFSD, SIP, DUT-RGBD):

Baidu Pan: resnet101, password: v144<br> Google Drive: https://drive.google.com/file/d/1GoqDlLrN_INNldsbOEAxyyu1QB_urHr0/view?usp=sharing<br>

Resnet101 (SSD):

Baidu Pan: resnet101, password: wmon

Resnet50 (NJU2K, NLPR, STERE, RGBD135, LFSD, SIP, DUT-RGBD):

Baidu Pan: resnet50, password: zen9

vgg16 (NJU2K, NLPR, STERE, RGBD135, LFSD, SIP, DUT-RGBD):

Baidu Pan: vgg16, password: cuui

Densenet161 (NJU2K, NLPR, STERE, RGBD135, LFSD, SIP, DUT-RGBD):

Baidu Pan: densenet161, password: ovuc

Important Tips!

Note that our JL-DCF model was trained on depth maps which satisfy the rule that closer objects present lower depth values (are "black"), while further objects have higher depth values (are "white"). such a rule is enforced in order to meet physical common sense. We observed that the model performance would somewhat degrade when using reversed maps (e.g., disparity maps) during testing. <strong>So be aware of the following issues when testing the models: </strong>

  1. Depth maps are min-max normalized into [0, 1] or [0, 255].
  2. Closer objects present lower depth values (are "black"). alt text

Dataset

Baidu Pan:<br> Training dataset (with horizontal flip), password: i4mi<br> Testing datadet, password: 1ju8<br> Google Drive:<br> Training dataset (with horizontal flip)<br> Testing datadet<br>

Performance

Below is the performance of JL-DCF-pyotrch (Pytorch implementation). Generally, the performance of Pytorch implementation is comparable to, and even slightly better than the previous Caffe implementation reported in the paper. This is probably due to the differences between deep learning platforms. Also, due to the randomness in the training process, the obtained results will fluctuate slightly.

DatasetsMetricsPytorch ResNet101Pytorch ResNet50Pytorch VGG16Pytorch DenseNet161
NJU2KS-measure0.9170.9130.9100.917
maxF0.9190.9150.9120.917
maxE0.9500.9510.9490.952
MAE0.0370.0390.0380.037
NLPRS-measure0.9310.9310.9260.934
maxF0.9200.9180.9150.924
maxE0.9640.9650.9630.967
MAE0.0220.0220.0240.020
STERES-measure0.9060.9000.9000.909
maxF0.9030.8950.8980.905
maxE0.9460.9420.9420.947
MAE0.0400.0440.0420.039
RGBD135S-measure0.9340.9280.9250.934
maxF0.9280.9180.9180.926
maxE0.9670.9570.9600.964
MAE0.0200.0210.0210.020
LFSDS-measure0.8620.8500.8330.863
maxF0.8610.8550.8390.868
maxE0.8940.8870.8790.900
MAE0.0740.0810.0840.073
SIPS-measure0.8790.8850.8870.894
maxF0.8890.8940.8960.903
maxE0.9250.9310.9310.934
MAE0.0500.0490.0470.044
DUT-RGBDS-measure0.9050.8940.8810.914
maxF0.9030.8920.8780.916
maxE0.9370.9280.9210.945
MAE0.0420.0480.0540.040

Citation

Please cite our paper if you find the work useful:

@inproceedings{Fu2020JLDCF,
title={JL-DCF: Joint Learning and Densely-Cooperative Fusion Framework for RGB-D Salient Object Detection},
author={Fu, Keren and Fan, Deng-Ping and Ji, Ge-Peng and Zhao, Qijun},
booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
pages={3052--3062},
year={2020}
}
    
@article{Fu2021siamese,
title={Siamese Network for RGB-D Salient Object Detection and Beyond},
author={Fu, Keren and Fan, Deng-Ping and Ji, Ge-Peng and Zhao, Qijun and Shen, Jianbing and Zhu, Ce},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)},
year={2021}
}

Benchmark RGB-D SOD

The complete RGB-D SOD benchmark can be found in this page
http://dpfan.net/d3netbenchmark/