New Version of KWIVER Refactors Toolkit

August 2, 2016

KWIVER_logoKitware is pleased to announce it’s newest release of the Kitware Image and Video Exploitation and Retrieval (KWIVER) open-source toolkit.  This toolkit is a collection of software tools designed to address challenging problems related to image and video analytics as an effort to transition technology developed over multiple years to the open-source domain.

The new version of KWIVER is the result of hard work and dedication by many Kitware engineers, who performed a major refactoring effort. They combined and integrated several existing software components into a single toolkit. The new layout of KWIVER integrates three previously separate projects—known as Vital, Sprokit, and Arrows—into a single repository.

  • Vital provides support for configuration file management, logging, core data structures, abstract algorithm application programming interfaces (APIs), and some generally useful utilities.
  • Arrows provides a collection of plug-ins that implements the APIs defined in Vital, often using external projects (OpenCV, VXL, Caffe, etc.) as part of the implementation.
  • Sprokit provides the stream processing architecture for combining those components into a pipeline for processing video or other streaming data.

These projects were merged into one repository to benefit from an integrated set of features and to simplify the process of building applications against these packages. Now, there is a single integrated repository rather than three or more that need to be coordinated. This eliminates the problems associated with finding compatible versions of separate repositories, simplifying and saving time that can be redirected to further research, collaboration, and product development.

For those actively using KWIVER, Vital, Arrows, and/or Sprokit, there will be a few changes that must be noted:

  • Those projects that directly used Vital and Sprokit will be transitioned, and the new KWIVER will be used.
  • All new development on MAP-Tk algorithms will be done in the Arrows component of KWIVER. Arrows is a subset of the MAP-Tk project within KWIVER that consists of implementations of algorithms defined in Vital. Vital is being removed from MAP-Tk and relocated into KWIVER directly.
  • Future development work will clean up the remaining integration issues.

Kwiver is already being used for some exciting projects such as classifying and counting marine organisms.  The development team would appreciate input on what others have accomplished with KWIVER! To ask questions or to share information on projects or problem sets where KWIVER has proven helpful, please contact

Leave a Reply