VIAME is a processing framework designed to integrate image and video processing algorithms in a flexible processing framework. The core infrastructure connecting different system components is currently supplied by the KWIVER library by the Vital algorithm framework and the sprokit pipeline framework.
VIAME is an SDK intended to be an integration platform for assembling analytical tools composed of modules from a wide variety of sources. Using the sprokit data flow approach, data sources, image processing, detectors, and analyzers can be easily integrated from different organizations.
Algorithms and processes can be developed independently as stand-alone modules (libraries) that are discovered and loaded at run time. This dynamic approach reduces coupling between customer code bases and facilitates easy sharing of these modules without requiring each user to rebuild them from the original source.
Getting the software
VIAME itself can be built either as a super-build, which builds all of its dependencies alongside itself, or standalone. By default it is a superbuild so all major dependencies are built into the VIAME project. To build ViAME:
git clone https://github.com/Kitware/VIAME.git
The build instructions can be found in the documentation directory: VIAME/doc/install_guide.rst
There are currently several cmake options to VIAME, such as “VIAME_ENABLE_MATLAB”, “VIAME_ENABLE_OPENCV”, “VIAME_ENABLE_VXL”, and “VIAME_ENABLE_CAFFE” to turn on support for different components. It is generally a good idea to enable most all of these options to assure that all KIWVER based components are available. If a package based option is not enabled, then the functionality that depends on that package will not be available from KWIVER or for your project.
The options can be set on the cmake command line or interactively selected using the ccmake program.
Using the VIAME toolkit
The VIAME toolkit provides an environment to support data processing algorithms such as image filters and detectors. There is a introductory tutorial on how to create an object detector in the file “VIAME/doc/detector-introduction.rst”. This tutorial steps through creating a basic detector algorithm and then wraps that detector in a sprokit process.
With the VIAME toolkit, you should be able to wrap existing image processing and detection algorithms so they can be easily assembled and reconfigured to solve existing and new image based problems.
In addition to the tutorial, there is a wrapped SCALLOP-TK detector to serve as an example of how an external package are added to VIAME and how they can be wrapped. This also serves as an example for how inputs and outputs are converted.
The current VIAME toolkit contains some basic support for running Matlab code as a detector and image filter. Matlab support will evolve to meet the needs of the community.