---
license: apache-2.0
language:
- en
metrics:
- accuracy
- pearsonr
base_model:
- openai/clip-vit-base-patch16
tags:
- IQA
---
Fine-grained Image Quality Assessment for Perceptual Image Restoration
1School of Artificial Intelligence, Xidian University
*Equal contribution. #Corresponding author.
📰 News
-
[2025-11-19] The model is now available on the HuggingFace Hub. A live demo is also available on HuggingFace Spaces for you to try it out directly in your browser.
-
[2025-11-08] 🎉🎉🎉Our paper, "Fine-grained Image Quality Assessment for Perceptual Image Restoration", has been accepted to appear at AAAI 2026!
-
[2025-08-20] Code and pre-trained models for FGResQ released.
## Quick Start
This guide will help you get started with the FGResQ inference code.
### 1. Installation
First, clone the repository and install the required dependencies.
```bash
git clone https://github.com/sxfly99/FGResQ.git
cd FGResQ
pip install -r requirements.txt
```
### 2. Download Pre-trained Weights
You can download the pre-trained model weights from the following link:
[**Download Weights (Google Drive)**](https://drive.google.com/drive/folders/10MVnAoEIDZ08Rek4qkStGDY0qLiWUahJ?usp=drive_link), [**(Baidu Netdisk)**](https://pan.baidu.com/s/1a2IZbr_PrgZYCbUbjKLykA?pwd=9ivu) or [**(HuggingFace)**](https://huggingface.co/orpheus0429/FGResQ)
Place the downloaded files in the `weights` directory.
- `FGResQ.pth`: The main model for quality scoring and ranking.
- `Degradation.pth`: The weights for the degradation-aware task branch.
Create the `weights` directory if it doesn't exist and place the files inside.
```
FGRestore/
|-- weights/
| |-- FGResQ.pth
| |-- Degradation.pth
|-- model/
| |-- FGResQ.py
|-- requirements.txt
|-- README.md
```
## Usage
The `FGResQ` provides two main functionalities: scoring a single image and comparing a pair of images.
### Initialize the Scorer
First, import and initialize the `FGResQ`.
```python
from model.FGResQ import FGResQ
# Path to the main model weights
model_path = "weights/FGResQ.pth"
# or use HuggingFace Model
# from huggingface_hub import hf_hub_download
# model_path = hf_hub_download(
# repo_id="orpheus0429/FGResQ",
# filename="weights/FGResQ.pth"
# )
# Initialize the inference engine
model = FGResQ(model_path=model_path)
```
### 1. Single Image Input Mode: Quality Scoring
You can get a quality score for a single image. The score typically ranges from 0 to 1, where a higher score indicates better quality.
```python
image_path = "path/to/your/image.jpg"
quality_score = model.predict_single(image_path)
print(f"The quality score for the image is: {quality_score:.4f}")
```
### 2. Pairwise Image Input Mode: Quality Ranking
You can also compare two images to determine which one has better quality.
```python
image_path1 = "path/to/image1.jpg"
image_path2 = "path/to/image2.jpg"
comparison_result = model.predict_pair(image_path1, image_path2)
# The result includes a human-readable comparison and raw probabilities
print(f"Comparison: {comparison_result['comparison']}")
# Example output: "Comparison: Image 1 is better"
print(f"Raw output probabilities: {comparison_result['comparison_raw']}")
# Example output: "[0.8, 0.1, 0.1]" (Probabilities for Image1 > Image2, Image2 > Image1, Image1 ≈ Image2)
```
## Citation
If you find this work is useful, pleaes cite our paper!
```bibtex
@article{sheng2025fgresq,
title={Fine-grained Image Quality Assessment for Perceptual Image Restoration},
author={Sheng, Xiangfei and Pan, Xiaofeng and Yang, Zhichao and Chen, Pengfei and Li, Leida},
journal={arXiv preprint arXiv:2508.14475},
year={2025}
}