par brain-bzh
Open source · 26k downloads · 7 likes
Le modèle REVE Positions est une interface conçue pour fournir les positions des électrodes nécessaires à l'utilisation du modèle REVE EEG Foundation. Il permet de récupérer les coordonnées spatiales des électrodes par leur nom, facilitant ainsi l'inférence avec le modèle REVE, qui est spécialement entraîné pour généraliser sur divers signaux EEG grâce à un encodage positionnel 4D innovant. Ce wrapper prend en charge les configurations d'électrodes courantes comme les systèmes 10-20, 10-10, 10-05 ou EGI 256, ainsi que des montages spécifiques comme Biosemi-128. Son principal atout réside dans sa capacité à s'adapter à des arrangements d'électrodes et des longueurs de signaux variables, offrant ainsi une flexibilité accrue pour les applications en neurosciences computationnelles.
Wrapper to provide electrode positions to use the REVE EEG Foundation Model.
REVE (Representation for EEG with Versatile Embeddings) is a pretrained model explicitly designed to generalize across diverse EEG signals. REVE introduces a novel 4D positional encoding scheme that enables it to process signals of arbitrary length and electrode arrangement.
This position bank repository can be used to fetch electrode positions by name, in order to perform inference with the REVE modeL.
Example script to fetch electrode positions and extract embeddings with REVE.
from transformers import AutoModel
pos_bank = AutoModel.from_pretrained("brain-bzh/reve-positions", trust_remote_code=True)
eeg_data = ... # EEG data (batch_size, channels, time_points), must be sampled at 200 Hz
electrode_names = [...] # List of electrode names corresponding to the channels in eeg_data
positions = pos_bank(electrode_names) # Get positions (channels, 3)
model = AutoModel.from_pretrained("brain-bzh/reve-base", trust_remote_code=True)
## Expand the positions vector to match the batch size
positions = positions.expand(eeg_data.size(0), -1, -1) # (batch_size, channels, 3)
output = model(eeg_data, positions)
Available electrodes names can be printed using the method
pos_bank.get_all_positions(), and can be visualized here.
Most common electrode setups are available (10-20, 10-10, 10-05, EGI 256). For Biosemi-128, use the prefix biosemi128_ before the electrode names (e.g., biosemi128_C13).