Software packages
The scripts below need the natural image statistics toobox natter, which can be cloned from
http://kyb.mpg.de/bethge/git/natter.git. To obtain the correct commit use:
git clone http://kyb.mpg.de/bethge/git/natter.git
cd natter
git checkout 12cdba0f1dcbed6a98089daf493c1469dac7aab0
Due to their size we currently cannot provide the data and precomputed files (largedata.tar.gz and data.tar.gz). Please write me an email if you want to obtain it. Apart from the data, you need
python scripts (described in a bit more detail below) and
additional scripts. Put them all in the directory where you cloned the natter to and issue:
tar -xzf data.tar.gz
tar -xzf python.tar.gz
tar -xzf largedata.tar.gz
tar -xzf fabee.tar.gz
paths
In your working directory, please create the following paths
mkdir figs
mkdir figs/MI
mkdir figs/temporalSigma
For sampling simulated eye movements, you will also need the
van Hateren database. You need to download the .iml images, put it into a directory of your choice and adapt the path in sampleEyeMovementData.py accordingly. We used a cleaned up version of the images in which ignored all images that contained zeros.
python scripts
The dependencies of the python scripts are described below. Some of the files which are computed by the scripts are already contained in data so you should have no problem running any of the scripts below. Note that training models takes a lot of time and memory.
trainDynamicModels.py
needs:
The files
- run2_model_1.pydat
- LpPsource.pickle
in data/.
The simulated eye movement data
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation100.00_SampleHz50.00_*_*.pickle
in largedata/.
yields:
evaluateDynamicModels.py
needs:
- dynamicModel_*.pickle
- run2_model_1.pydat
- LpPsource.pickle
in data/. The simulated eye movement data
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation100.00_SampleHz50.00_*_*.pickle
in largedata/.
yields:
- bar plot for Figure 3b
- histogram for Figure 3a
CVPlot.py
needs:
- run2_model_1.pydat
- LpPsource.pickle
- dynamicModel_*.pickle
in data/.
The data sets
- FixationWithBrownianMotionSigma17x17_5.00.pickle
- uniformlySampled17x17.pickle
- hateren17x17_train_No_*.dat
in largedata/.
yields:
trainStaticModels.py
needs:
The files
- run2_model_1.pydat,
- LpPsource.pickle
in data/.
The datasets
- hateren17x17_train_No_*.dat
- hateren17x17_test_No_*.dat
in largedata/.
yields:
trainStaticModels2.py
needs:
The files
- run2_model_1.pydat,
- LpPsource.pickle
in data/.
The datasets
- hateren17x17_train_No_*.dat
- hateren17x17_test_No_*.dat
in largedata/.
yields:
multiinformation.py
needs:
The files
- run2_model_1.pydat
- staticModel_1.pickle
- staticModel2_1.pickle
in data/.
The datasets
- hateren17x17_train_No_1
- hateren17x17_test_No_1
in largedata/.
yields:
- Figure 1b
- bow tie plots for Figure 1a
sampleEyeMovementData.py
needs:
The van Hateren dataset (need to adapt the path in the script).
yields:
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation100.00_SampleHz50.00_*_*.pickle
radialDistribution.py
needs:
The files
- run2_model_1.pydat
- LpPsource.pickle
in data/. The datasets
- hateren17x17_train_No_1.dat
- hateren17x17_test_No_1.dat
in largedata/.
yields:
temporalSigmaAdaptation2.py
needs:
The files
- run2_model_1.pydat
- NRdistribution.pickle
in data/. The datasets
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation0.20_SampleHz50.00.pickle
in largedata/.
yields:
sigmaDynamic.py
needs:
The files
- run2_model_1.pydat
- LpPsource.pickle
- dynamicModel_*.pickle
in data/. The datasets
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation0.20_SampleHz50.00_train_*.pickle
- EyeMovement_SaccadesPerImage10_BrownianSigma30.00_patchSize17_MeanFixation0.20_SampleHz50.00_test_*.pickle
in largedata/.
yields:
dynamicPlot.py
needs:
The files
in data/.
yields: