MMER_Lab

Example processing chain in MMER_Lab
Example processing chain in MMER_Lab

A large part of human-machine interaction focuses on implementation of algorithms for image processing, pattern recognition and classification. These applications can often be modeled as digital signal processing chains, where the signals are numerical values, fragments of audio or images. The scientific software framework MMER_Lab is designed to assist scientists in the modular development of such signal processing software systems.

Pattern recognition tasks are rather complex and it is often necessary to compare results from different approaches to find the best solution for a specific problem. MMER_Lab enables this flexibility by providing a scientist with a means to easily integrate his or her algorithms into a software framework. In this context, the term "algorithm" refers to anything that takes a set of input data, produces a set of output data and can be implemented in a computer system.

Head and eye tracking module illustration
Head and eye tracking module illustration

MMER_Lab demands that algorithms are embedded in so-called modules. Modules have typed input and output ports. The input ports supply the module with all signals necessary to perform its computations and the results of the computations are returned at the output ports of the module. Multiple modules can be combined by linking output ports of one module to input ports of another module. This means that the signal output by the first module is input into the second module for further processing. The whole setup of multiple modules then forms a so-called processing chain.

Once a module is implemented, it can be used in different environments by combining it with different "neighbor modules". Documenting an algorithms embedded in a module is also quite straightforward, as only the meaning of the input/output ports and their influence on the overall computation has to be included. Combining multiple modules makes it easy to evaluate different approaches to a certain problem against each other. As stated above, this is a typical workflow in the development of human-machine interaction methods.

Due to the fact that modules do not depend on each other besides the ports that are linked together, the computations in the modules can run independently of each other. This is why each module is equipped with a thread of its own in MMER_Lab. This makes it possible to make efficient usage of multi-core and multi-processor systems. To conclude, the author of a module can boost the flexibility, reusability and the performance of the respective algorithm by embedding it in a module. However, he or she does not need to be aware of multithreading concepts, because threading is solely handled by the software framework itself and is transparent to the module code as well as to the end user.

MMER_Lab Graphical User Interface on Windows and Linux
MMER_Lab Graphical User Interface on Windows (top) and Linux (bottom)

MMER_Lab’s unique synchronization concept ensures that all data is processed in the correct order. Modules will automatically stop running if there is currently no data available and thus make CPU time free for other modules.

The integrated scripting language of MMER_Lab allows to set up processing chains from batch and provides an interface for setting up parameters for each module. Data may even be generated by script if no explicit data source exists.
This scripting language and a powerful logging concept make the application ideal for evaluation tasks in the scientific domain. Processing chains can be easily set up and fed with input data by sending well-documented commands to the interpreter.

Furthermore, the integration of existing algorithms into modules is not very complicated. Especially if the algorithms are already implemented in C or C++, a programmer may easily extend the existing pallet of modules.

To conclude, MMER_Lab is an easy-to-use and well documented tool for creating and running signal processing chains. Its functional user interface makes it possible to directly use it for demonstration purposes and scientific evaluations.

Did we draw your attention? If you are interested in a collaboration with MMER-Systems, please contact pr::at::mmer-systems.eu.