Darwin  1.10(beta)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Darwin Documentation

Introduction

This document describes the design and usage of the Darwin framework for machine learning and computer vision research and development. It includes an overview of the various components of the framework, installation instructions, and tutorial. The document assumes that you are familiar with either the Linux or Windows (Microsoft Visual Studio) C/C++ development environments and have a basic understanding of Machine Learning, e.g., as presented in a number of excellent texts:

For computer vision the following texts are recommended:

The Darwin framework is designed to make it easy for researchers to share code that makes use of the Darwin libraries. The basic structure is shown in the figure below where Darwin applications and projects link against the Darwin libraries, which in turn link against a small set of external (third-party) libraries. Individual projects may include full-blown machine learning applications or reference code to replicate results from scientific publications. Individual projects may also link against other external libraries. The Darwin libraries are outlined in more detail below (see Darwin Libraries).

dot_inline_dotgraph_3.png

A number of researchers have contributed to the Darwin project. They are listed here.

Darwin Libraries

The following (clickable) diagram shows the dependencies between Darwin libraries. Dashed external libraries are optional. However, some functionality may not be available without these libraries.

dot_inline_dotgraph_4.png

Applications and Projects

The Darwin framework includes many pre-developed applications for and projects for common machine learning and computer vision problems. For example, one of the projects provides mex interfaces for accessing many components of the library from Matlab; other projects integrate various components of the library through small utility applications and Python scripts. See Applications and Project Descriptions for details.

There is also a short tutorial that you should read if you are new to the library.

Downloading and Installing

Darwin has minimal dependencies on external libraries. Small libraries such as RapidXML and RapidJSON are included in the distribution, but larger libraries, such as Eigen and OpenCV, need to be installed separately. Darwin source code is hosted at http://github.com/sgould/drwn/. The following links provide detailed download and install instructions for Windows, Linux and Mac OS X.

The latest stable release can be downloaded from this link.

Previous stable releases, pre-compiled Windows and Matlab mex binaries, and change logs are also available.

Please report bugs via the issue tracker https://github.com/sgould/drwn/issues or email to steph.nosp@m.en.g.nosp@m.ould@.nosp@m.anu..nosp@m.edu.a.nosp@m.u and include a small example (code and data) that will trigger the bug.

Helper Videos

Miscellaneous Documentation

External Documentation

License

Darwin is distributed under the BSD license. This means that it is free for both academic and commercial use. Note, however, that some projects may use third-party components that may have more stringent restrictions (e.g., academic use only or that certain works be cited in scientific publications).

Note
If you would like to cite Darwin in your scientific work please use the following reference (and include the specific software version number):

  • Stephen Gould, "DARWIN: A Framework for Machine Learning and Computer Vision Research and Development",
    Journal of Machine Learning Research (JMLR), 13(Dec):3533−3537, 2012.

Copyright (c) 2007-2015, Stephen Gould
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of the software's copyright holders nor the
      names of its contributors may be used to endorse or promote
      products derived from this software without specific prior
      written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright © 2007-2015, Stephen Gould steph.nosp@m.en.g.nosp@m.ould@.nosp@m.anu..nosp@m.edu.a.nosp@m.u