Giter Club home page Giter Club logo

holy-edge's Introduction

Holistically-Nested Edge Detection

The code is also hosted at https://github.com/harsimrat-eyeem/holy-edge - Harsimrat Sandhawalia

Input image Final fused Edge maps Edge maps from side layers
  • Final fused edge maps generated at 100, 500, 1k, 1.5k, 2k, 2.5k, 3k, 3.5k, 4k, 4.5k iterations.
  • Edge maps form side layers generated at 5k iterations.

This repository contains tensorflow implementation of the HED model. Details of hyper-paramters are available in the paper

@InProceedings{xie15hed,
  author = {"Xie, Saining and Tu, Zhuowen"},
  Title = {Holistically-Nested Edge Detection},
  Booktitle = "Proceedings of IEEE International Conference on Computer Vision",
  Year  = {2015},
}

Get this repo

git clone https://github.com/harsimrat-eyeem/holy-edge.git

Installing requirements

Its recommended to install the requirements in a conda virtual environment

cd holy-edge
pip install -r requirements.txt
export OMP_NUM_THREADS=1

Setting up

Edit the config file located at hed/configs/hed.yaml. Set the paths below. Make sure the directories exist and you have read/write permissions on them. The HED model is trained on augmented training set created by the authors.

# location where training data : http://vcl.ucsd.edu/hed/HED-BSDS.tar would be downloaded and decompressed
download_path: '<path>'
# location of snapshot and tensorbaord summary events
save_dir: '<path>'
# location where to put the generated edgemaps during testing
test_output: '<path>'

Training data & Models

You can train the model or you can fetch a pre-trained HED snapshot provided in the repo to simply generate edgemaps.

Fetch VGG-16 models weights trained on ImageNet via git-lfs

git lfs fetch && git lfs pull
md5sum hed/models/vgg16.npy

19ff134af12b6ea0c0ff35664b031ba5 hed/models/vgg16.npy

This downloads the augmented training set created by authors of HED. Augmentation strategies include rotation to 16 predefined angles and cropping largest rectangle from the image. Details in section (4.1). To download training data run

python run-hed.py --download-data --config-file hed/configs/hed.yaml

VGG-16 base model

VGG base model available here is used for producing multi-level features. The model is modified according with Section (3.) of the paper. Deconvolution layers are set with tf.nn.conv2d_transpose. The model uses single deconvolution layer in each side layers. Another implementation uses stacked bilinear deconvolution layers. In this implementation the upsampling parameters are learned while finetuning of the model. Pre-trained weights for VGG-16 are hosted with git-lfs in this repo.

Training

If you want to run predictions on pre-trained HED model, skip this and go to Testing with pre-trained model

Launch training

CUDA_VISIBLE_DEVICES=0 python run-hed.py --train --config-file hed/configs/hed.yaml

Launch tensorboard

tensorboard --logdir=<save_dir>

Testing

Edit the snapshot you want to use for testing in hed/configs/hed.yaml

test_snapshot: <snapshot number>
CUDA_VISIBLE_DEVICES=1 python run-hed.py --test --config-file hed/configs/hed.yaml --gpu-limit 0.4
feh <test_output>

Testing with pre-trained model

Edit your config file located at hed/configs/hed.yaml to change the location of the pre-trained HED model

save_dir: <path_to_repo_on_disk>/hed
test_snapshot: 5000
# location where to put the generated edgemaps during testing
test_output: '<path>'

Run predictions

CUDA_VISIBLE_DEVICES=1 python run-hed.py --test --config-file hed/configs/hed.yaml --gpu-limit 0.4
feh <test_output>

holy-edge's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.