Fast End-to-End Trainable Guided Filter
[Project] [Paper] [arXiv] [Demo] [Home]
Official implementation of Fast End-to-End Trainable Guided Filter.
Faster, Better and Lighter for image processing and dense prediction.
Overview
DeepGuidedFilter is the author's implementation of the deep learning building block for joint upsampling described in:
Fast End-to-End Trainable Guided Filter
Huikai Wu, Shuai Zheng, Junge Zhang, Kaiqi Huang
CVPR 2018
Given a reference image pair in high-resolution and low-resolution, our algorithm generates high-resolution target from the low-resolution input. Through joint training with CNNs, our algorithm achieves the state-of-the-art performance while runs 10-100 times faster.
Contact: Hui-Kai Wu ([email protected])
Try it on an image!
Prepare Environment
- Download source code from GitHub.
git clone https://github.com/wuhuikai/DeepGuidedFilter cd DeepGuidedFilter && git checkout release
- Install dependencies (PyTorch version).
conda install opencv conda install pytorch=0.2.0 cuda80 -c soumith pip install -r requirements.txt
- (Optional) Install dependencies for MonoDepth (Tensorflow version).
cd ComputerVision/MonoDepth pip install -r requirements.txt
Ready to GO !
Image Processing
cd ImageProcessing/DeepGuidedFilteringNetwork
python predict.py --task auto_ps \
--img_path ../../images/auto_ps.jpg \
--save_folder . \
--model deep_guided_filter_advanced \
--low_size 64 \
--gpu 0
See Here or python predict.py -h
for more details.
Semantic Segmentation with Deeplab-Resnet
- Enter the directory.
cd ComputerVision/Deeplab-Resnet
- Download the pretrained model [Google Drive|BaiduYunPan].
- Run it now !
python predict_dgf.py --img_path ../../images/segmentation.jpg --snapshots [MODEL_PATH]
Note:
- Result is in
../../images
. - Run
python predict_dgf.py -h
for more details.
Saliency Detection with DSS
- Enter the directory.
cd ComputerVision/Saliency_DSS
- Download the pretrained model [Google Drive|BaiduYunPan].
- Try it now !
python predict.py --im_path ../../images/saliency.jpg \ --netG [MODEL_PATH] \ --thres 161 \ --dgf --nn_dgf \ --post_sigmoid --cuda
Note:
- Result is in
../../images
. - See Here or
python predict.py -h
for more details.
Monocular Depth Estimation (TensorFlow version)
- Enter the directory.
cd ComputerVision/MonoDepth
- Download and Unzip Pretrained Model [Google Drive|BaiduYunPan]
- Run on an Image !
python monodepth_simple.py --image_path ../../images/depth.jpg --checkpoint_path [MODEL_PATH] --guided_filter
Note:
- Result is in
../../images
. - See Here or
python monodepth_simple.py -h
for more details.
Guided Filtering Layer
Install Released Version
- PyTorch Version
pip install guided-filter-pytorch
- Tensorflow Version
pip install guided-filter-tf
Usage
- PyTorch Version
from guided_filter_pytorch.guided_filter import FastGuidedFilter hr_y = FastGuidedFilter(r, eps)(lr_x, lr_y, hr_x)
from guided_filter_pytorch.guided_filter import GuidedFilter hr_y = GuidedFilter(r, eps)(hr_x, init_hr_y)
- Tensorflow Version
from guided_filter_tf.guided_filter import fast_guided_filter hr_y = fast_guided_filter(lr_x, lr_y, hr_x, r, eps, nhwc)
from guided_filter_tf.guided_filter import guided_filter hr_y = guided_filter(hr_x, init_hr_y, r, eps, nhwc)
Training from scratch
Prepare Training Environment
git checkout master
conda install opencv
conda install pytorch=0.2.0 cuda80 -c soumith
pip install -r requirements.txt
# (Optional) For MonoDepth (TF Version).
pip install -r ComputerVision/MonoDepth/requirements.txt
Start to Train
- Image Processing
- Semantic Segmentation with Deeplab-Resnet
- Saliency Detection with DSS
- Monocular Depth Estimation (TensorFlow version)
Citation
@inproceedings{wu2017fast,
title = {Fast End-to-End Trainable Guided Filter},
author = {Wu, Huikai and Zheng, Shuai and Zhang, Junge and Huang, Kaiqi},
booktitle = {CVPR},
year = {2018}
}