Skip to content

A Convolutional Neural Network for Blur Segmentation

Notifications You must be signed in to change notification settings

greenflash1357/blurnet

Repository files navigation

A Convolutional Neural Network for Blur Segmentation

The code under this repository provides an implementation of a neural network for blur segmentation in images. It is written in Julia and uses the Mocha framwork for deep learning.

For more details on the network or the method please refer to the paper.

Dependencies

You will need a working installation of the following Julia packages:

Quick start

Run demo.jl to do a segmentation for the example image image.jpg, using the provided network parameters in snapshot.jld.

The file segmentation.jl provides a function blursegmentation(net, image) that will return the probabilty map and the segmentation, given a network and an image. For convenience create_segmentation_net() will create the required network for you. All you need to do is to load the network parameters from a snapshot of a network with the same topology.

Training

To train the network yourself, you will need trainings data. Please refer to the readme in the dataset folder for further instructions on how to get the required data.

After that you can simply run train.jl. The training process will take some time and the intermediate training state will be saved to a snapshots folder. We highly recommend to use the GPU backend for training. If you want to use other options, you can change the solver parameters.

Evaluation

To evaluate a network, run eval.jl. It will compute segmentations for all images in dataset/evalset and compare them to the ground truth using Intersection-over-union.

About

A Convolutional Neural Network for Blur Segmentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages