title | tags | authors | affiliations | date | bibliography | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
multimatch-gaze: The MultiMatch algorithm for gaze path comparison in Python |
|
|
|
17 May 2019 |
paper.bib |
multimatch-gaze
is a Python package for computing the
similarity of eye-movement sequences, so called scan paths.
Scan paths are the trace of eye-movements in space and time,
usually captured with eye tracking devices.
Scan path similarity is a measure that is used
in a variety of disciplines ranging from cognitive psychology,
medicine, and marketing to human-machine interfaces.
In addition to quantifying position and order of a series of
eye-movements, comparing their temporo-spatial sequence adds an insightful
dimension to the traditional analysis of eye tracking data.
It reveals commonalities and differences of
viewing behavior within and between observers, and is used
to study how people explore visual information.
For example, scan path comparisons are used to study
analogy-making [@french], visual exploration and imagery
[@Johansson], habituation in repetitive visual search [@burmester],
or spatial attention allocation in dynamic scenes [@mital].
The method is applied within individuals as a measure of
change [@burmester], or across samples to study group
differences [@french].
Therefore, in recent years, interest in the study of eye movement sequences has sparked the development of novel methodologies and algorithms to perform scan path comparisons. However, many of the contemporary scan path comparison algorithms are implemented in closed-source, non-free software such as Matlab.
multimatch-gaze
is a Python-based
reimplementation of the MultiMatch toolbox for scan path
comparison, originally developed by @Jarodzka and
implemented by @Dewhurst in Matlab.
This algorithm represents scan paths as geometrical
vectors in a two-dimensional space: Any scan path is built
up of a coordinate vector sequence in which the start and end position
of vectors represent fixations, and the vectors represent
saccades. Two such vector sequences
are, after optional simplification based on angular relations
and amplitudes of saccades,
compared on the five dimensions “vector shape”, “vector
length (amplitude)”, “vector position”, “vector direction”,
and “fixation duration” for a multidimensional similarity
evaluation.
This reimplementation in Python aims at providing an
accessible, documented, and tested open
source alternative to the existing MultiMatch toolbox. The algorithm
is an established tool for scan path comparison [@anderson],
and improved availability aids adoption
in a broader research community. multimatch-gaze
is available from its Github repository
and as the Python package multimatch-gaze
via pip install multimatch-gaze
.
The module contains the same functionality as the original
Matlab toolbox, that is, scan path comparison with optional
simplification according to user-defined thresholds, and it
provides this functionality via a command line interface or
a Python API.
Data for scan path comparison can be supplied as nx3
fixation vectors with columns corresponding to x-coordinates,
y-coordinates, and duration of the fixation in seconds (as for
the original Matlab toolbox).
Alternatively, multimatch-gaze
can natively read in event detection
output produced by REMoDNaV [@remodnav], a velocity-based eye movement
classification algorithm written in Python.
For REMoDNaV-based input,
users can additionally specify whether smooth pursuit events
in the data should be kept in the scan path or
discarded.
We thank Dr. Richard Dewhurst for kindly and swiftly providing the original Matlab code for the MultiMatch toolbox via e-mail and being supportive of an open source implementation.