cd Net_train/[task_type]
# Stage 1: Train the network with offset prediction module
bash train_stage1.sh
# Evaluate the Stage 1 model and collect predicted offsets from LSS
python eval_offset.py
# Stage 2: Train the network with fixed offset
bash train_stage2.sh
# (Optional) Evaluate the Stage 2 model
python eval.pypython net2LUT.pyThis script converts a trained CNN model into a set of LUTs for efficient inference.
cd LUT_test/[task_type]
python eval_LUT.pyThis runs the final evaluation using the converted LUTs.
🔁 Replace
[task_type]with one of:sr,denoising, ordeblocking.
ShiftLUT/
├── Net_train/
│ ├── sr/ # Super-resolution training code
│ ├── denoising/ # Denoising training code
│ └── deblocking/ # Deblocking training code
│
├── models/ # Trained CNN models
├── net2LUT.py # Convert trained network to LUT
│
├── LUT_test/
│ ├── sr/ # Super-resolution LUT evaluation
│ ├── denoising/ # Denoising LUT evaluation
│ └── deblocking/ # Deblocking LUT evaluation
If you find our work useful in your research, please consider citing:
@inproceedings{zeng2026shiftlut,
title={ShiftLUT: Spatial Shift Enhanced Look-Up Tables for Efficient Image Restoration},
author={Zeng, Xiaolong and Yu, Yitong and Xiong, Shiyao and Hao, Jinhua and Sun, Ming and Zhou, Chao and Wang, Bin},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2026},
url={https://arxiv.org/abs/2603.00906}
}This work is based on the following works, thank the authors a lot.