Brain signals communicating directly to a computer is never an easy task, yet it is interesting that it could help humanity in a multitude of ways. In this article, we will discuss OpenViBE software platform for the design, testing, and use of brain-computer interfaces (BCI).
A set of software modules in OpenViBE takes input from the acquisition machine [generally, electro-encephalography (EEG) signals] connected to the head, measuring electrical activity on the scalp that roughly reflects the activity of cortical neuron population.
Communication engineers around the world make use of OpenViBE for real-time processing of brain signals. The software is used to acquire, filter, process, classify and visualize brain signals in real time. This tool finds applications in various fields including medical (assistance to disabled people, real-time biofeedback, neuro-feedback and real-time diagnosis), multimedia (virtual reality, or VR, and video games), robotics and all other application fields related to brain-computer interfaces and real-time neurosciences.
The software works well on Windows and Linux operating systems and is released under GNU Affero general-public license v3.0 (AGPL-3).
Who can make use of OpenViBE?
The software is designed to cater to the needs of mainly four types of users—developers and application developers, who are basically programmers, can make use of the scripting language, while authors and operators, who are basically non-programmers, can make use of the graphical interface.
Developers: There could be two kinds of developers—kernel developers who enhance and develop kernel functionalities and plugin developers who create additional modules. They test their own piece of software in this environment and add new functionalities to it. To that end, OpenViBE is delivered with a complete software development kit (SDK), which allows access to functionalities at different levels depending on the task to realize.
Application developers: Using OpenViBE as a library, developers with good programming skills use SDK to create standalone applications. These could be new tools such as the visual scenario editor or external VR applications that can be used by BCI participants for interaction.
Authors: The author makes use of the visual scenario editor to arrange boxes in order to produce a complete, ready-to-use BCI system. The author should have thorough knowledge of the environment and the BCI system; there is no need to have good programming skills as one is using dedicated tools for the applications.
Operators and users: Operators could be doctors or BCI experts who run prebuilt scenarios of the author. With the help of dedicated visualization components, they monitor the execution of the BCI system. They should have thorough knowledge about neuro-psychological signals and help the user improve control over the BCI system.
Users are provided with brain-activity acquisition hardware in the form of EEG caps that interact with the application by means of their mental activity.
Features of the Software
Let us take a look at the key features that make OpenViBE a favorite BCI software.
Modular and reusable components: OpenViBE is developed as a general-purpose software platform in which users can freely add new modules to adapt the environment to any specific need. Modules, acting as building blocks, can be developed for each specific function and are reusable. Also, this approach helps the developer to easily extend the functionalities and save a fair amount of time.
Multitude of signal-processing techniquesThe package comes with a range of signal-processing algorithms for character extraction of the signal. OpenViBE uses machine learning methods for transforming characteristics into commands. These include linear discriminant analyses (LDA), support vector machines (SVMs) and classifier combinations (one versus the rest).
Users also have access to various signal-processing techniques such as epoching, averaging, linear combinations, spatial and temporal filtering, windowing, and Fourier transformations.
Users can also make use of MATLAB for further signal processing. A box sending input to MATLAB and receiving output from it is readily available for use.
Accommodating various types of users: Users who make use of this tool have to address various types of issues.
Users could be computer engineers, biomedical researchers, doctors, VR developers and gaming experts, to name a few. Among them, some will have really strong programming skills, while others might not be so interested in programming but might have thorough knowledge in concepts of brain.
Taking all these factors into consideration, various tools have been developed to meet their requirements. For example, OpenViBE uses a dedicated graphical language and a simple graphical user interface (GUI) to facilitate non-programming users.
Portability: The software gives a lot of freedom in the choice of hardware and software for BCI. The user can go for different data-acquisition machines [such as an EEG or magnetoencephalography (MEG)], different software platforms (Windows or Linux for both 32-bit and 64-bit architectures using either Visual Studio 2010 or 2008 or GCC), and different visualization techniques.
Bundled software packages: The environment is composed of many free and portable software including Gnome ToolKit (GTK), IT++, GNU Scientific Library (GSL), Virtual Reality Peripheral Network (VRPN), and GNU Compiler Collection (GCC).
GTK software helps the user to have a fine graphical interface. It offers cross-platform compatibility and an easy-to-use application program interface. IT++ is a C++ library of mathematical, signal processing, and communication routines.
GNU Scientific Library is yet another numerical library for C and C++ programmers, while VRPN is a set of classes within a library that helps in implementing an interface between application programs and the set of physical devices used in a VR system. GCC is a compiler that supports a wide range of architectures.
Scripting using Lua language: Lua powers the scripting in this environment. It can be used to script scenarios and control behaviors. A special Lua Interpreter Box is readily available in OpenViBE that can handle stimulations.
Besides this, developers can also make use of Python Scripting. They can leverage the power of SciPy and NumPy libraries using Python.
How is this Package different?
Most BCI software demands some level of programming knowledge from users. The smart graphical interface in this environment eliminates coding literacy from non-programming users. The range of possible designs is limited in most BCI software due to coarser modularity. Obviously, there are exceptions as in the case of BioSig software.
Again, OpenViBE environment is based on free and open-source software. BioSig is completely open source but rtsBCI package needed for online and real-time BCI requires MATLAB/Simulink, which is non-free and proprietary software.
The software makes use of offline analysis for creating online scenarios. Embedded tools for innovative VR displays as well as real-time 3D visualization of brain activities make OpenViBE an ideal choice for any VR application.
Download the latest version of the software: click here
The author is an electronics enthusiast from Kerala