Boda: A C++ Framework for Efficient Experiments in Computer Vision [WIP]
Created by Matthew W. Moskewicz.
Boda is BSD 2-Clause licensed; refer to the LICENSE file for the full License.
Boda is a one-grad-student, mostly-run-on-one-machine work in progress. However, for the brave, there is now a considerable amount of functionality present. Overall, documentation is still very much lacking. But, in particular, if you're interested in a unified C++ framework from camera/lmdbs/images to generated CUDA/OpenCL for CNNs, this might be an interesting project for you to explore. At this point, I think it's now plausible that others would be interested in and capable of usage of, experimentation with, and contributions to Boda. So, please file issues/PRs if that's the case.
Getting Started / Installation
See the INSTALL.md file.
June 2016 paper
Boda-RTC (to appear WiMob 2016 NYC)
June 2016 poster
January 2016 poster
May 2014 Poster
Mid 2013 Poster
In the above diagram, the middle box is a Boda 'mode' -- a c++ class with a main() function and a set of parameters. this is the boda version of a standard c++ program with a C main() and some command line argument processing such as gflags/getopt/etc. Boda makes it easy to support many modes in a single binary/program, and provides some magic comments / meta-programming to ease the burden of: 1) command line / XML based UI creation for many such modes (with hierarchical sharing of UIs / parameters) 2) testing (including automated regression diffs over outputs) 3) timing / profiling.
The main 'magic' is a NEsted Structure Initialization system (NESI), which uses magic comments, python, code generation, and a steaming pile of down-home-style void pointers and C (or at least C style) functions to initialize c++ structures from nested key/value trees (in turn created from command line arguments and/or xml files), a la JSON or the like.