Skip to content
An unofficial implementation of non-local deep features for salient object detection
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
png
tools
README.md
README.zh.md
dataset.py
demo.py
download.sh
loss.py
main.py
nldf.py
solver.py

README.md

NLDF

中文说明

An unofficial implementation of Non-Local Deep Features for Salient Object Detection.

The official Tensorflow version: NLDF

Some thing difference:

  1. dataset
  2. score with one channel, rather than two channels
  3. Dice IOU: boundary version and area version

Prerequisites

Results

The information of Loss:

Performance:

Dataset max F(paper) MAE(paper) max F(here) MAE(here)
MSRA-B 0.911 0.048 0.9006 0.0592

Note:

  1. only training 200 epoch, larger epoch may nearly the original paper
  2. This reproduction use area IOU, and original paper use boundary IOU
  3. it's unfairness to this compare. (Different training data, I can not find the dataset use in original paper )

Usage

1. Clone the repository

git clone git@github.com:AceCoooool/NLDF-pytorch.git
cd NLDF-pytorch/

2. Download the dataset

Note: the original paper use other datasets.

Download the ECSSD dataset.

bash download.sh

3. Get pre-trained vgg

cd tools/
python extract_vgg.py
cd ..

4. Demo

python demo.py --demo_img='your_picture' --trained_model='pre_trained pth' --cuda=True

Note:

  1. default choose: download and copy the pretrained model to weights directory.
  2. a demo picture is in png/demo.jpg

5. Train

python main.py --mode='train' --train_path='you_data' --label_path='you_label' --batch_size=8 --visdom=True --area=True

Note:

  1. --area=True, --boundary=True area and boundary Dice IOU (default: --area=True --boundary=False)
  2. --val=True add the validation (but your need to add the --val_path and --val_label)
  3. you_data, you_label means your training data root. (connect to the step 2)

6. Test

python main.py --mode='test', --test_path='you_data' --test_label='your_label' --batch_size=1 --model='your_trained_model'

Note:

  1. use the same evaluation (this is a reproduction from original achievement)

Bug

  1. The boundary Dice IOU may cause inf,it is better to use area Dice IOU.

Maybe, it is better to add Batch Normalization.

You can’t perform that action at this time.