REACT++: Efficient Cross-Attention for Real-Time Scene Graph Generation
Paper
• 2603.06386 • Published
This repository contains REACT++ model checkpoints for scene graph generation (SGG) on the VG150 benchmark, across 3 backbone sizes.
REACT++ is a parameter-efficient, attention-augmented relation predictor built on top of a YOLO backbone. It uses:
The models were trained with the SGG-Benchmark framework and described in the REACT++ paper (Neau et al., 2026).
Metrics from end-to-end ONNX evaluation (
tools/eval_onnx_psg.py). E2E Latency = image load + pre-process + ONNX forward.
| Backbone | Params | R@20 | R@50 | R@100 | mR@20 | mR@50 | mR@100 | F1@20 | F1@50 | F1@100 | E2E Lat. (ms) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| yolo12m | ~20.2M | 18.32 | 22.54 | 23.77 | 10.52 | 13.22 | 13.96 | 13.36 | 16.67 | 17.59 | 19.4 |
| yolo26m | ~20.2M | 20.0 | 26.9 | 32.08 | 10.32 | 13.94 | 16.48 | - | - | - | - |
| yolov8m | ~25.9M | 22.78 | 28.73 | 30.84 | 12.05 | 15.42 | 16.51 | 15.76 | 20.07 | 21.51 | 17.8 |
| Variant | Sub-folder | Checkpoint files |
|---|---|---|
| yolo12m | yolo12m/ |
yolo12m/model.onnx (ONNX) · yolo12m/best_model_epoch_19.pth (PyTorch) |
| yolo26m | yolo26m/ |
yolo26m/react_pp_yolo26m.onnx (ONNX) · yolo26m/best_model_epoch_18.pth (PyTorch) |
| yolov8m | yolov8m/ |
yolov8m/model.onnx (ONNX) · yolov8m/best_model_epoch_6.pth (PyTorch) |
from huggingface_hub import hf_hub_download
onnx_path = hf_hub_download(
repo_id="maelic/REACT-pp-VG150",
filename="yolo12m/react_pp_yolo12m.onnx",
repo_type="model",
)
# Run with tools/eval_onnx_psg.py or load directly via onnxruntime
# 1. Clone the repository
# git clone https://github.com/Maelic/SGG-Benchmark
# 2. Install dependencies
# pip install -e .
# 3. Download checkpoint + config
from huggingface_hub import hf_hub_download
ckpt_path = hf_hub_download(
repo_id="maelic/REACT-pp-VG150",
filename="yolo12m/best_model.pth",
repo_type="model",
)
cfg_path = hf_hub_download(
repo_id="maelic/REACT-pp-VG150",
filename="yolo12m/config.yml",
repo_type="model",
)
# 4. Run evaluation
import subprocess
subprocess.run([
"python", "tools/relation_eval_hydra.py",
"--config-path", str(cfg_path),
"--task", "sgdet",
"--eval-only",
"--checkpoint", str(ckpt_path),
])
@article{neau2026reactpp,
title = {REACT++: Efficient Cross-Attention for Real-Time Scene Graph Generation
},
author = {Neau, Maëlic and Falomir, Zoe},
year = {2026},
url = {https://arxiv.org/abs/2603.06386},
}