Gazing at Rewards: Eye Movements as a Lens into Human and AI Decision-Making in Hybrid Visual Foraging
Authors: Bo Wang, Dingwei Tan, Yen-Ling Kuo, Zhaowei Sun, Jeremy M. Wolfe, Tat-Jen Cham, Mengmi Zhang
This repository contains the official implementation of our CVPR 2025 paper:
"Gazing at Rewards: Eye Movements as a Lens into Human and AI Decision-Making in Hybrid Visual Foraging"
Imagine searching a collection of coins for quarters (
An example of scanpath is shown below:
![]() |
![]() |
![]() |
| Target combination | Human fixations | Model fixations |
conda create -f environment.yml
We acknowledge Brady, et al. for using their stimulus: http://olivalab.mit.edu/MM/uniqueObjects.html.
If you want to use the exactly the same stimulus we choose, please download them from https://drive.google.com/drive/folders/1OoaAXTsjB_PIhKMw3SuBBG4POq2ReCro?usp=share_link and put them into env1 and env2
Download pretrained model from https://drive.google.com/drive/folders/1JMXkr1bNewBRpggOIRc8nfRi0grh76OB?usp=share_link and replace the folder data.
For human data downloading, see the instruction in README.
To train the model:
- Run the first training stage
cd first-training-stage
python train.py
- Run the second training stage
cd second-training-stage
./runSecondStageTrain.sh
To test the model:
cd second-training-stage
./test_full_vf.sh
After testing the model, use npy2csv to convert .npy results to .csv files.
To plot Norm.Score: run matlab code plot_cumulativeScore.m.
To plot saccade size: run matlab code plot_saccade.m.
To plot Spider of OOD performance: run matlab code plot_spyder.m.
To plot Click Bias Ratio: run matlab code plot_ClickBiasRatio.m
If you use this code, please cite our paper:
@article{wang2024gazing,
title={Gazing at Rewards: Eye Movements as a Lens into Human and AI Decision-Making in Hybrid Visual Foraging},
author={Wang, Bo and Tan, Dingwei and Kuo, Yen-Ling and Sun, Zhaowei and Wolfe, Jeremy M and Cham, Tat-Jen and Zhang, Mengmi},
journal={arXiv preprint arXiv:2411.09176},
year={2024}
}








