Fork me on GitHub

Introduction

Updated on January 21st, 2016 by Sergey Kosov

DGM is a C++ library implementing various tasks in probabilistic graphical models with pairwise dependencies. The library aims to be used for the Markov and Conditional Random Fields (MRF / CRF), Markov Chains, Bayesian Networks, etc. Specifically, it includes a variety of methods for the following tasks:

  • Learning: Training of unary and pairwise potentials
  • Inference / Decoding: Computing the conditional probabilities and the most likely configuration
  • Parameter Estimation: Computing maximum likelihood (or MAP) estimates of the parameters
  • Evaluation / Visualization: Evaluation and visualization of the classification results
  • Data Analysis: Extraction, analysis and visualization of valuable knowlage from training data
  • Feature Extraction: Extraction of various descriptors from images, which are useful for classification

These tasks are optimized for speed, i.e. high-efficient calculations. The code is written in optimized C++11, compiled with Microsoft Visual Studio and can take advantage of multi-core processing. DGM is released under a BSD license and hence it is free for both academic and commercial use.

What's New

Updated on September 15th, 2016 by Sergey Kosov

The DGM library v.1.5.0 is now available with lots of improvements. First of all, in the new version the physical project structure of the library was deeply revised: now CMake is needed to build the project (in the same way as the OpenCV library). Moreover, new visualization module VIS is added:

  • VIS module
    VIS module provides with a variety of tools for visualizing and analyzing used data as well as intermediate and final results. For user interaction capacity, there are functions, which allow for handling the mouse clicks over the figures. Please see our tutorial Demo Visualization for more details.
  • DGM module

Application Examples

Updated on May 13th, 2015 by Sergey Kosov

First example compares 3 different classificators, based on Bayesian network, MRF and CRF respectively. The input here is a colour-infra-red image with resolution of 800x800 pixels. Its ground-truth is given by manually labelled map of the same resolution. The corresponding graphical model consists of 160x160 nodes, thus each node corresponds to a small image patch with size of 5x5 pixels. 3 resulting label maps were compared with the ground-truth and the overall classification accuracies (OA) are reported:

Please read this publication for more details.

Second example demonstrates the application to the segmentation problem. The input here is an RGB-colour image of a human eye. The DGM-based segmenter has been trained using 22 similar images, segmented manually. First, the segmentation was performed using Random Forest (RF) approach only, after that it was supported with the CRF technique:

Four different colours represent skin (yellow), sclera (red), iris (blue) and pupil (gray).

If you have applied the DGM library in your work and achieved some interesting results, please send them to me via sergey.kosov@project-10.de, so I could allocate them at this web-page. This will help us to spread and improve the library. We thank you in advance for your support.

DGM in Publications

Updated on July 18th, 2016 by Sergey Kosov

Selected main publications:

See also more publications, where the DGM library was used:

To reference DGM in a publication, please include the library name and a link to this website [BibTeX]. You may also want to include the library version, since we currently update the software.