OpenIMAJ is a set of libraries and tools for multimedia content analysis and content generation. OpenIMAJ is very broad and contains everything from state-of-the-art computer vision (e.g. SIFT descriptors, salient region detection, face detection, etc.) and advanced data clustering, through to software that performs analysis on the content, layout and structure of webpages.
OpenIMAJ is primarily written in pure Java and, as such, is completely platform independent. The video capture and hardware libraries contain some native code but Linux (x86, x86_64 and ARM CPUs are supported), OSX and Windows are supported out of the box (under both 32 and 64 bit JVMs). It is possible to write programs that use the libraries in any JVM language that supports Java interoperability, such as Groovy, Jython, JRuby or Scala. OpenIMAJ can even be run on Android phones and tablets.
The OpenIMAJ software is structured into a number of modules. The modules can be used independently, so if, for instance, you were developing data clustering software using OpenIMAJ you wouldn’t need to acquire the modules related to images or text. The list on the following page illustrates the modules and summarises the functionality in each component.
This tutorial aims to instruct the reader on how to get up and running writing code using OpenIMAJ. Currently the tutorial covers the following areas:
Getting started with OpenIMAJ using Maven
Processing your first image
Introduction to clustering, segmentation and connected components
Processing video
Finding faces
Global image features
SIFT and feature matching
In the future we hope to add more content to the tutorial covering the following:
Basic text analysis
Image and video indexing using ImageTerrier
Compiling OpenIMAJ from source
Tracking features in video
Audio processing
Speech recognition
Hardware interfaces
Advanced local features
Scalable processing with OpenIMAJ/Hadoop
Machine learning
Building a bibliography of the techniques used in your code.