Git Product home page Git Product logo

nifty's Introduction

Nifty

Installation (Linux):

Via Conda

The easiest way to install this package is via conda (right now only available withour gurobi or cplex ):

conda install -c abailoni nifty
Installation from source
  • git clone https://github.com/abailoni/nifty.git
  • git submodule init
  • git submodule update
  • conda create -n nifty -c conda-forge xtensor-python boost-cpp scikit-image h5py vigra
  • cmake . -DCMAKE_PREFIX_PATH=/path/to/nifty/env -DBUILD_NIFTY_PYTHON=ON (add links to gurobi or cplex if needed)
  • make

Description

Travis (Ubuntu builds)

Master: Build Status master

Appveyor (Windows builds)

Master: Build status Dev: Build status

A nifty library for 2D and 3D image segmentation, graph based segmentation an opt. This library provided building blocks for segmentation algorithms and complex segmentation pipelines. The core is implemented in C++ but the suggested language to use this library from is python.

Documentation:

A very tentative documentation of the nifty python module.

Features (Highlights):

  • Multicut:

    • Multicut-Ilp (Kappes et al. 2011)
      • Multicut-Ilp-Cplex
      • Multicut-Ilp-Gurobi
      • Multicut-Ilp-Glpk
    • Decomposing Solver (Alush and Goldberger 2012)
    • Cut Glue & Cut (Beier et al 2014)
      • Cut Glue & Cut - QPBO
    • Greedy Additive Clustering / Energy based Hierarchical Clustering (Beier et al. 2015)
    • Fusion Moves for Correlation clustering (Beier et al. 2015)
      • Perturbed Random Seed Watershed Proposal Generator
      • Perturbed Greedy Additive Clustering Proposal Generator
    • Kernighan-Lin Algorithm with Joins (Keuper et al 2015)
    • Message Passing for the Minimum Cost Multicut Problem (Swoboda 2016)
  • Lifted Multicut: (Andres et al. 2015, Keuper et al 2015)

    • Kernighan-Lin Algorithm with Joins (Keuper et al 2015)
    • Greedy Additive Clustering (Keuper et al 2015)
    • Lifted-Multicut-Ilp (does not scale to meaningful problems, just for verification)
      • Lifted-Multicut-Ilp-Cplex
      • Lifted-Multicut-Ilp-Gurobi
      • Lifted-Multicut-Ilp-Glpk
    • Fusion Moves for Lifted Multicuts (Beier et al. 2016)
      • Perturbed Random Seed Watershed Proposal Generator
      • Perturbed Greedy Additive Clustering Proposal Generator
    • Message Passing for the Minimum Cost Multicut Problem (Swoboda 2016)
  • Mincut/Maxcut:

    • QPBO
  • Agglomerative Clustering

    • Easy to extend / Custom cluster policies
    • UCM Transform
  • CGP 2D (Cartesian Grid Partitioning)

  • Many Data Structures:

    • Union Find Data Structure
    • Histogram
  • Coming Eventually:

    • MultiwayCut:
    • ModifiedMultiwayCut:
    • LiftedModifiedMultiwayCut:

C++ vs Python:

The Python API is at present the easiest to use. The C++ API is mostly for power users. We recommend to use library from Python. Almost any class / function in the Python API is calling into C++ via pybind11.

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.