Jussi T. Lindgren, PhD - Inria

20
1 J. T. Lindgren / OpenViBE 1 Introduction to OpenViBE Jussi T. Lindgren, PhD [email protected] HYBRID / Inria Rennes

Transcript of Jussi T. Lindgren, PhD - Inria

Page 1: Jussi T. Lindgren, PhD - Inria

1

J. T. Lindgren / OpenViBE 1

Introduction to

OpenViBE

Jussi T. Lindgren, PhD [email protected]

HYBRID / Inria Rennes

Page 2: Jussi T. Lindgren, PhD - Inria

2

J. T. Lindgren / OpenViBE 2 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 2

Part I

What is OpenViBE?

Page 3: Jussi T. Lindgren, PhD - Inria

3

J. T. Lindgren / OpenViBE 3 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 3

An open source software platform for BCI

Enjoyed by research labs, clinicians, teachers,

game developers and hobbyists worldwide

Page 4: Jussi T. Lindgren, PhD - Inria

4

J. T. Lindgren / OpenViBE 4 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 4

OpenViBE Team 2013

Coordination at Inria (group HYBRID @ Rennes, France)

• http://team.inria.fr/hybrid/

• Primary research area: Virtual Reality

• Project leader: Anatole Lécuyer

• OpenViBE lead engineers: Jozef Legény & Jussi T. Lindgren

Landscape at Inria:

• Involved teams : HYBRID (Rennes), ATHENA (Sophia),

POTIOC (Bordeaux), NEUROSYS (Nancy)

• Involved personnel: 5 researchers & 5 developers

Industry:

• Earlier OpenViBE developers Yann Renard & Laurent Bonnet

now work at a related startup

Page 5: Jussi T. Lindgren, PhD - Inria

5

J. T. Lindgren / OpenViBE 5 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 5

• Data acquisition from various biosignal devices

• Graphical design of signal processing chains

• Plugins for DSP, classification, visualization and more

• Online and offline data processing

• Core in C++. Interfaces with script languages and various

file formats.

Key features of OpenViBE

Page 6: Jussi T. Lindgren, PhD - Inria

6

J. T. Lindgren / OpenViBE 6 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 6

Client (”Designer”)

Server

Architecture

ACME

Driver

TCP/IP

Network

acquisition

Classifier

Filter

Display

VRPN

server

ACME

Amplifier

• Boxes are plugins

• Solid arrows denote EBML-

encoded streams of different

types (signal, stimulation, ...)

Arbitrary DAG designs are possible

(Shown chain is for illustration only)

Computer A

Computer A or B

Page 7: Jussi T. Lindgren, PhD - Inria

7

J. T. Lindgren / OpenViBE 7 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 7

Server: Its mostly about drivers

+ more unstable, unsupported & beta drivers

+ drift correction, software tagging, …

Vendor Devices

BrainMaster Atlantis, Discovery

Brain Products actiCHamp, BrainAmp, ...

Emotiv EPOC

g.Tec gUSBamp, gMobilab+

MicroMed SD LTM

MindMedia NeXus32B

NeuroSky MindSet (MindWave in SVN)

OpenEEG MonolithEEG, Modular EEG P2

TMSi Porti32

Page 8: Jussi T. Lindgren, PhD - Inria

8

J. T. Lindgren / OpenViBE 8 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 8

“Designer” Client

No programming skills required

Make your own DSP chains

Page 9: Jussi T. Lindgren, PhD - Inria

9

J. T. Lindgren / OpenViBE 9 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 9

Client plugins include

DSP

Basic math, detrending, epoching, spatial and temporal filters, spectral

analysis, signal generators, statistics, FastICA, windowing, ...

Visualizations

Signal, Power Spectrum, Graz, Matrix, Topographic Maps: 2D & 3D,

Cue Image, Voxel Display, ...

Classifiers

SVM, LDA

Other

Script language interfaces, file I/O, etc ...

Page 10: Jussi T. Lindgren, PhD - Inria

10

J. T. Lindgren / OpenViBE 10 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 10

Client: Various real-time displays

Page 11: Jussi T. Lindgren, PhD - Inria

11

J. T. Lindgren / OpenViBE 11 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 11

Some approaches implemented on OpenViBE

P300

SSVEP Motor Imagery

Neurofeedback

Page 12: Jussi T. Lindgren, PhD - Inria

12

J. T. Lindgren / OpenViBE 12 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 12

OS’es & dev-tools supported

Windows: binary available

or compile with MSVC

In SVN: Visual Studio IDE support

(release in June-July 2013)

Ubuntu: LTS & latest. Fedora: 2 latest

Windows XP & Windows 7

Linux: source only

GNU C++ build environment

required

Page 13: Jussi T. Lindgren, PhD - Inria

13

J. T. Lindgren / OpenViBE 13 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 13

Software requirements

• Mandatory dependencies

• Server: Cmake, Boost, GTK

• Client: Cmake, Boost, Ogre, OIS, CEGUI, GTK, Expat

• Strong recommendations

• Client: VRPN, ITPP

• Optional

• Client: ALUT, Eigen3, Lua, Matlab, Python27, Vorbis

• On Linux, most dependencies are used from distribution

packages or downloaded by the installer

• On Windows, the installer downloads the deps

Page 14: Jussi T. Lindgren, PhD - Inria

14

J. T. Lindgren / OpenViBE 14 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 14

License

v0.15.0 and before:

Codebase mostly under LGPL 2

Some plugins under GPL2

Near future:

The whole codebase will likely switch to

Want to see your code in the OpenViBE distribution?

• New stuff : New plugins, drivers, scenarios and applications

can be freely contributed. You keep your rights.

• Changes to core components: Rights transfer to Inria required

Page 15: Jussi T. Lindgren, PhD - Inria

15

J. T. Lindgren / OpenViBE 15 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 15

• Past development effort: ≈ 22 man-years at Inria (and various

multi-partner projects since 2005)

• On-going support (2013-2015): 4 Inria engineers with 100%

allocation to OpenViBE

• Inria startup: Mensia Technologies (launched in Nov 2012)

can support commercial users of OpenViBE

More information at

http://openvibe.inria.fr

Commitment to OpenViBE

Page 16: Jussi T. Lindgren, PhD - Inria

16

J. T. Lindgren / OpenViBE 16 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 16

Part II

Interoperability

Page 17: Jussi T. Lindgren, PhD - Inria

17

J. T. Lindgren / OpenViBE 17 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 17

Format Read Write

BCI2000 X

BCI comp. IIIb ASCII

Brainamp X

CSV X X

EDF X

GDF X X

OV (≈ EBML) X X

Raw X

Type Read Write

Lua Stim Stim

Matlab X X

Python X X

TCP/IP EBML

VRPN X X

Direct I/O File I/O

Current I/O plugins in OpenViBE

Page 18: Jussi T. Lindgren, PhD - Inria

18

J. T. Lindgren / OpenViBE 18 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 18

Well-defined kernel interfaces and stream specifications exist

Good to know…

• OpenViBE uses 32:32 fixed point simulated time, in seconds

• OpenViBE .ov files are catenated EBML chunks w/o headers

• There is no SDK: build against the OpenViBE source tarball

User and developer documentation gets you started

http://openvibe.inria.fr/documentation-index/

Understanding OpenViBE

Page 19: Jussi T. Lindgren, PhD - Inria

19

J. T. Lindgren / OpenViBE 19 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 19

Making OpenViBE understand ‘XYZ’

Plugin contributions are very welcome

E.g.

• Readers/writers for new file formats

• Language plugins (like Matlab & Python boxes)

• Boxes to pass data to/from external software

• Drivers that actually read from another application

• TiA plugin already exists as an extension from Gipsa-Lab

Page 20: Jussi T. Lindgren, PhD - Inria

20

J. T. Lindgren / OpenViBE 20 J.T. Lindgren: Introduction to OpenViBE BCI Meeting 2013 / M-5 20

We’re happy to collaborate on developments

Catch us by email, forum, or IRC

http://openvibe.inria.fr/contact/