xray-report-gen-eval
EMRRG: Efficient Fine-Tuning Pre-trained X-ray Mamba Networks for Radiology Report Generation — Zhang et al. (2025) (arXiv:2510.16776, 2025)
What this evaluates
Evaluates the capability of vision-language models to generate accurate and clinically relevant radiology reports from chest X-ray images. It probes both linguistic fluency and coverage against reference reports, as well as clinical accuracy in identifying pathological findings.
Datasets
- IU X-ray — total 7470; splits: train (-1), test (-1), val (-1)
- MIMIC-CXR — total 227835; splits: train (270790), val (2130), test (3858)
- CheXpert Plus — total 187711; splits: train (40463), val (5780), test (11562)
Metrics
BLEU-1 — range: [0, 1]
- 1-gram overlap between generated and reference reports, averaged over the test set.
BLEU-2 — range: [0, 1]
- 2-gram overlap between generated and reference reports, averaged over the test set.
BLEU-3 — range: [0, 1]
- 3-gram overlap between generated and reference reports, averaged over the test set.
BLEU-4 — range: [0, 1]
- 4-gram overlap between generated and reference reports, averaged over the test set.
ROUGE-L (primary) — range: [0, 1]
- Longest common subsequence recall and precision between generated and reference reports, averaged over the test set.
METEOR — range: [0, 1]
- Harmonic mean of precision and recall with synonym/stem matching, averaged over the test set.
CIDEr — range: [0, 1]
- TF-IDF weighted n-gram similarity between generated and reference reports, averaged over the test set.
Precision — range: [0, 1]
- Clinical metric: TP/(TP+FP), where TP/FP are correctly/incorrectly identified pathological findings.
Recall — range: [0, 1]
- Clinical metric: TP/(TP+FN), where TP/FN are correctly identified/missed pathological findings.
F1 — range: [0, 1]
- Clinical metric: 2×P×R/(P+R), harmonic mean of Precision and Recall for pathological findings.
Input / output format
Input: Chest X-ray images (frontal and/or lateral views) paired with patient demographic/contextual metadata.
Output: Free-text radiology report, typically structured into sections such as Findings, Impression, Indication, and Comparison.
Scoring recipe
def score(predictions, references):
nlg = {'BLEU-4': 0, 'ROUGE-L': 0, 'METEOR': 0, 'CIDEr': 0}
tp, fp, fn = 0, 0, 0
for pred, ref in zip(predictions, references):
for m in ['BLEU-4', 'ROUGE-L', 'METEOR', 'CIDEr']:
nlg[m] += compute_metric(m, pred, ref)
pred_set, ref_set = extract_diseases(pred), extract_diseases(ref)
tp += len(pred_set & ref_set)
fp += len(pred_set - ref_set)
fn += len(ref_set - pred_set)
n = len(predictions)
nlg = {k: v/n for k, v in nlg.items()}
p = tp/(tp+fp) if (tp+fp)>0 else 0
r = tp/(tp+fn) if (tp+fn)>0 else 0
f1 = 2*p*r/(p+r) if (p+r)>0 else 0
return {**nlg, 'Precision': p, 'Recall': r, 'F1': f1}
Common pitfalls
- Ground truth selection varies across baselines; this protocol uses the 'Findings' section, whereas some competitors use 'Impression' or concatenated sections, making direct score comparison invalid without alignment.
- Dataset splits are not standardized; this work follows R2GenGPT/R2GenCSR partition protocols rather than official dataset splits, requiring exact match of train/val/test indices for fair comparison.
- Clinical metrics (Precision/Recall/F1) depend on the specific disease annotation scheme (e.g., RadGraph vs. CheXpert labels), which is not explicitly detailed in the metric definition section.
Evidence (verbatim from paper)
For evaluation metrics, we adopt natural language metrics and clinical metrics to evaluate our generated X-ray reports. For the natural language metrics, we choose BLEU, ROUGE-L, METEOR, and CIDEr. For the clinical metrics, i.e., Precision, Recall, and F1-measure, the formula can be formally defined as: Precision = TP/(TP+FP), Recall = TP/(TP+FN), F1 = 2×P×R/(P+R) where TP (True Positive) refers to instances that are correctly identified as positive, FP (False Positive) denotes cases incorrectly labeled as positive when they are actually negative (also known as a Type I error), and FN (False Negative) represents instances incorrectly classified as negative despite being positive (referred to as a Type II error).
Citation
@misc{zhang2025emrrg,
title={EMRRG: Efficient Fine-Tuning Pre-trained X-ray Mamba Networks for Radiology Report Generation},
author={Zhang et al. (2025)},
year={2025},
note={arXiv:2510.16776}
}
1---2name: xray-report-gen-eval3description: Evaluates the capability of vision-language models to generate accurate and clinically relevant radiology reports from chest X-ray images. It probes both linguistic fluency and coverage against reference reports, as well as clinical accuracy in identifying pathological findings. Use when the user wants to benchmark on IU X-ray, MIMIC-CXR, CheXpert Plus, or asks about evaluating this task. Reports ROUGE-L.4---56# xray-report-gen-eval78> EMRRG: Efficient Fine-Tuning Pre-trained X-ray Mamba Networks for Radiology Report Generation — Zhang et al. (2025) (arXiv:2510.16776, 2025)910## What this evaluates1112Evaluates the capability of vision-language models to generate accurate and clinically relevant radiology reports from chest X-ray images. It probes both linguistic fluency and coverage against reference reports, as well as clinical accuracy in identifying pathological findings.1314## Datasets1516- **IU X-ray** — total 7470; splits: train (-1), test (-1), val (-1)17- **MIMIC-CXR** — total 227835; splits: train (270790), val (2130), test (3858)18- **CheXpert Plus** — total 187711; splits: train (40463), val (5780), test (11562)1920## Metrics2122- `BLEU-1` — range: [0, 1]23 - 1-gram overlap between generated and reference reports, averaged over the test set.24- `BLEU-2` — range: [0, 1]25 - 2-gram overlap between generated and reference reports, averaged over the test set.26- `BLEU-3` — range: [0, 1]27 - 3-gram overlap between generated and reference reports, averaged over the test set.28- `BLEU-4` — range: [0, 1]29 - 4-gram overlap between generated and reference reports, averaged over the test set.30- `ROUGE-L` **(primary)** — range: [0, 1]31 - Longest common subsequence recall and precision between generated and reference reports, averaged over the test set.32- `METEOR` — range: [0, 1]33 - Harmonic mean of precision and recall with synonym/stem matching, averaged over the test set.34- `CIDEr` — range: [0, 1]35 - TF-IDF weighted n-gram similarity between generated and reference reports, averaged over the test set.36- `Precision` — range: [0, 1]37 - Clinical metric: TP/(TP+FP), where TP/FP are correctly/incorrectly identified pathological findings.38- `Recall` — range: [0, 1]39 - Clinical metric: TP/(TP+FN), where TP/FN are correctly identified/missed pathological findings.40- `F1` — range: [0, 1]41 - Clinical metric: 2×P×R/(P+R), harmonic mean of Precision and Recall for pathological findings.4243## Input / output format4445**Input**: Chest X-ray images (frontal and/or lateral views) paired with patient demographic/contextual metadata.4647**Output**: Free-text radiology report, typically structured into sections such as Findings, Impression, Indication, and Comparison.4849## Scoring recipe5051```python52def score(predictions, references):53 nlg = {'BLEU-4': 0, 'ROUGE-L': 0, 'METEOR': 0, 'CIDEr': 0}54 tp, fp, fn = 0, 0, 055 for pred, ref in zip(predictions, references):56 for m in ['BLEU-4', 'ROUGE-L', 'METEOR', 'CIDEr']:57 nlg[m] += compute_metric(m, pred, ref)58 pred_set, ref_set = extract_diseases(pred), extract_diseases(ref)59 tp += len(pred_set & ref_set)60 fp += len(pred_set - ref_set)61 fn += len(ref_set - pred_set)62 n = len(predictions)63 nlg = {k: v/n for k, v in nlg.items()}64 p = tp/(tp+fp) if (tp+fp)>0 else 065 r = tp/(tp+fn) if (tp+fn)>0 else 066 f1 = 2*p*r/(p+r) if (p+r)>0 else 067 return {**nlg, 'Precision': p, 'Recall': r, 'F1': f1}68```6970## Common pitfalls7172- Ground truth selection varies across baselines; this protocol uses the 'Findings' section, whereas some competitors use 'Impression' or concatenated sections, making direct score comparison invalid without alignment.73- Dataset splits are not standardized; this work follows R2GenGPT/R2GenCSR partition protocols rather than official dataset splits, requiring exact match of train/val/test indices for fair comparison.74- Clinical metrics (Precision/Recall/F1) depend on the specific disease annotation scheme (e.g., RadGraph vs. CheXpert labels), which is not explicitly detailed in the metric definition section.7576## Evidence (verbatim from paper)7778> For evaluation metrics, we adopt natural language metrics and clinical metrics to evaluate our generated X-ray reports. For the natural language metrics, we choose BLEU, ROUGE-L, METEOR, and CIDEr. For the clinical metrics, i.e., Precision, Recall, and F1-measure, the formula can be formally defined as: Precision = TP/(TP+FP), Recall = TP/(TP+FN), F1 = 2×P×R/(P+R) where TP (True Positive) refers to instances that are correctly identified as positive, FP (False Positive) denotes cases incorrectly labeled as positive when they are actually negative (also known as a Type I error), and FN (False Negative) represents instances incorrectly classified as negative despite being positive (referred to as a Type II error).7980## Citation8182```bibtex83@misc{zhang2025emrrg,84 title={EMRRG: Efficient Fine-Tuning Pre-trained X-ray Mamba Networks for Radiology Report Generation},85 author={Zhang et al. (2025)},86 year={2025},87 note={arXiv:2510.16776}88}89```9091- arXiv: 2510.16776