Netanel Y. Tamir*
Shobhita Sundaram
Tali Dekel
Abstract
With rapid advancements in virtual reality (VR) headsets, effectively measuring Stereoscopic Quality of Experience (SQoE) has become essential for delivering immersive and comfortable 3D experiences. However, most existing stereo metrics focus on isolated aspects of the viewing experience such as visual discomfort or image quality, and have traditionally faced modeling and data limitations. To address these gaps, we present SCOPE (Stereoscopic COntent Preference Evaluation), a new dataset comprised of real and synthetic stereoscopic images featuring a wide range of common perceptual distortions and artifacts. The dataset is labeled with preference annotations collected from
When running on MPS, run the following command first:
export PYTORCH_ENABLE_MPS_FALLBACK="1"
Clone the repo and install dependencies. This is necessary for running our training/evaluation scripts.
python3 -m venv isqoe_env
source isqoe_env/bin/activate
pip install -r requirements.txt
export PYTHONPATH="$PYTHONPATH:$(realpath ./isqoe)"
To install with conda (recommended):
conda create -n isqoe_env python=3.10
conda activate isqoe_env
conda install pip # verify with the `which pip` command
pip install -r requirements.txt
export PYTHONPATH="$PYTHONPATH:$(realpath ./isqoe)"
Our model measures the quality of experience of a stereoscopic image.
A higher score means a worse experience, lower means better experience.
Download the pretrained checkpoint into ./checkpoint
:
chmod +x ./evaluation/download_checkpoint.sh
./evaluation/download_checkpoint.sh
Run on a stereo .heic
image or directory:
python main.py -i <heic_file_or_directory>
Run on left & right images or directories:
python main.py --left <left_image_or_directory> --right <right_image_or_directory>
iSQoE is trained by fine-tuning on the SCOPE dataset. The unzipped dataset size is 1.49 GB.
Dowload and unzip the dataset into ./dataset/scope
:
chmod +x ./dataset/download_dataset.sh
./dataset/download_dataset.sh
The stereo images are available in ./dataset/scope/stereo_images/
and named as <sample_id>_<index>.heic
.
In each .heic
file, the first image is the left image and the second image is the right image.
To train a model on the SCOPE dataset, run ./training/train.py
. For example:
python ./training/train.py
See python ./training/train.py -h
for a full list of command line arguments.
To evaluate a trained model on the SCOPE dataset, run ./evaluation/evaluate.py
. For example:
python ./evaluation/evaluate.py
Using the provided pretrained checkpoint yields:
Total test accuracy: 0.73
Total weighted test accuracy: 0.79
3/2 data accuracy: 0.62
4/1 data accuracy: 0.66
5/0 data accuracy: 0.90
See python ./evaluation/evaluate.py -h
for a full list of command line arguments.
Our code takes inspiration from the DreamSim repository for code structure.
This software and accompanying data and models have been released under the following licenses:
- Code: Apple Sample Code License
- Model, Dataset, Checkpoints: Apple ML Research Model Terms of Usage
If you find our work or any of our materials useful, please cite our papers:
@article{tamir2025makesgoodstereoscopicimage,
title={What Makes for a Good Stereoscopic Image?},
author={Netanel Y. Tamir and Shir Amir and Ranel Itzhaky and Noam Atia and Shobhita Sundaram and Stephanie Fu and Ron Sokolovsky and Phillip Isola and Tali Dekel and Richard Zhang and Miriam Farber},
journal={arXiv preprint arXiv:2412.21127},
year={2025}
}