Code Monkey home page Code Monkey logo

graph-flow's Introduction

๐Ÿ‘‹ Hi there, my name is Daniel

graph-flow's People

Contributors

danoan avatar

Watchers

 avatar  avatar  avatar

graph-flow's Issues

Faster balance coefficient weight computation

Currently a whole disk is intersected for every computation of the balance coefficient.

Contours are a sequence of adjacent pixels, so we can optimize this computation. We need to compute a full intersection of the disk at the very first balance coefficient computation. All the others can be derived from a delta from the previous one. This delta refers to the pixels in the contour of the disk.

This improvement removes the quadratic slow down we observe as the disk size increases.

New optimization strategy

I propose an alternative optimization strategy.

Currently, the optimization band is computed relative to the current contour. Therefore, it changes at every iteration. Instead, the strategy proposed here consists in fixing a (possibly) large optimization band until no improvement is found.

A great advantage of this approach is that the optimization graph is created a single time until the optimization band is changed.

Separate graph coefficients from validation coeficients

Graph coefficients define candidate shapes for energy validation.
Validation coefficients evaluates the quality of the candidate.

By separating graph coefficients from validation ones, we can force the candidate selection to favor the regularization terms while the validation coefficients favors the data terms instead.

Automatic seed selection

A naive implementation could be the following:

  1. Run a contour-detection algorithm (likely one is biased to form closed contours)
  2. Invert the image to obtain the connected digital sets
  3. For each connected digital set, choose some strategy to select seeds in the interior (foreground) and in the outer (background) of the set.
  4. Run the graph-flow for each connected digital set

An alternative to that:

  1. Create an hierarchy (watershed segmentation)
  2. Pick some nodes of the hierarchy to execute graph-flow
  3. Select the best graph-flow result

The data term may be defined like this: For the closed areas, select random seeds and compute a mixed gauss distribution (similar to classical graph cut)

Implement a single length penalty in the capacity function

Currently, the length component is only computed at the validation step. No length component is considered in the computation of the minimum cut.

This improvement aims to implement a very simple length penalization component in the capacity function, by simply adding a constant (weigthed by the length penalization parameter alpha) in the capacity function of each edge.

Ideally, we should use a convergent estimator, such as the one proposed by Boykov.

Implement a multigrid resolution approach

Take advantage of the multigrid estimators and run the algorithm in reduced image scales to obtain approximated solutions. Greater resolutions can also be used to obtain a refined contour correction by the elastica energy.

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.