RefineNet

This repository is an NPU implementation of the "RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation", referring to https://github.com/DrSleep/refinenet-pytorch

Requirements

See requirements.txt

  • PyTorch
  • torchvision
  • Numpy 1.15.1
  • Pillow 9.1.0
  • h5py 2.8.0
  • tqdm 4.28.1
  • h5py 3.4.0
  • opencv-python 3.4.4.19
  • albumentations 0.4.5 Note: pillow recommends installing a newer version. If the corresponding torchvision version cannot be installed directly, you can use the source code to install the corresponding version. The source code reference link: Suggestion the pillow is 9.1.0 and the torchvision is 0.6.0
  • install densetorch as follow:
 git clone https://github.com/DrSleep/DenseTorch
 cd ./DenseTorch
 python setup.py install

Training

The processed VOC dataset can be downloaded from Download with extraction code: vnhb (about 9 G), put it in ./VOC. Or, you can download it by:

bash load_data.sh

The training common:

# 1p train perf
bash test/train_performance_1p.sh 

# 8p train perf
bash test/train_performance_8p.sh

# 8p train full
bash test/train_full_8p.sh

# finetuning
bash test/train_finetune_1p.sh

In the first running, it requires time to downloaded the model pre-trained on ImageNet. Or you can manually download it by:

cd ~
mkdir .torch
mkdir .torch/models
cd .torch/models
wget https://download.pytorch.org/models/resnet101-5d3b4d8f.pth 
mv resnet101-5d3b4d8f.pth 101_imagenet.pth.tar

Log path: ./log/

Saved model path: ./model/

Training result

IOU FPS NPU_nums BS/NPU AMP_type
78.56 25.56 1 16 O2
77.34 159.46 8 8 O2

Citation

RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation
Guosheng Lin, Anton Milan, Chunhua Shen, Ian Reid
In CVPR 2017

Statement

For details about the public address of the code in this repository, you can get from the file public_address_statement.md