Mitsubishi Electric Research Laboratories

Diamond3D Computer Vision Library

Diamond3D is a software library for creating computer vision applications. It has three characteristics (a) it is easy to create new applications, (b) it is easy to reuse high-level vision components between applications, (c) it provides extensive functionality to do with feature and region detection, calibration, recovery of camera pose, image matching, and 3D reconstruction. The library has been used for multiple projects including stereo for surveillance, multi-projector systems, RFIG, and augmented reality.

Background & Objective:  Many computer vision applications utilize low-level components like feature and region detection. In addition, 3D-related applications utilize calibration, recovery of camera pose, image matching, and 3D reconstruction. This library offers reusable components that are easy to include in a new or existing application. The primary value is reduced time to create vision applications, with less time spent on maintenance and debugging because the components are well-tested from previous applications. An additional value is that the library offers easy creation of GUIs and visualization of results, providing a range of standard functionality like reading from a camera, read/write from disk, examining images by zoom or mouse pointing etc.

Technical Discussion:  The library is in C++ and compiles on Windows or Linux. Each vision component is designed as a complete Model-View-Control (MVC) component. All vision components conform to a single standard interface, to aid the developer. Each component provides, in addition to its core computer vision algorithm, (a) extensive checking to prevent and report inappropriate use, (b) ready-to-use view functionality for displaying the results of the algorithm. The goal is allow easy reuse of components, automatic reporting of incorrect use, and easy visualization of the algorithm's behavior. The library currently supports tens of applications using about 50 different vision components, and building on several hundred lower-level C++ classes.

Technology Area:  Computer Vision

Modification Date:  June 13, 2008