Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

XGLASS: Radiologist Gaze Tells AI Which Chest CT Slices to Read

Figure 6 of arXiv:2610.26255 by Michael Glöckler and Timo Ropinski (Ulm University): five axial chest CT slices chosen by random selection, by Vote-MI and by XGLASS for consolidation and for pleural abnormality, with green borders on slices inside the ground-truth finding and red borders on misses.

A chest CT reconstructed at 1.25 mm has a few hundred axial slices. Most of the medical vision-language models you can run today are 2D, so if you want one of them to check a CT for a finding, you either feed it every slice and wait, or you guess which slices matter. Michael Glöckler and Timo Ropinski of Ulm University, Germany, propose a third option in arXiv:2610.26255, accepted at WACV 2027. Their method, XGLASS (X-Ray, Gaze and Language Assisted Slice Sequencing), takes where radiologists looked on chest X-rays while dictating a finding and uses it to rank CT slices for that finding. A ViT-B/16 then returns one relevance score for each of 240 axial slices, and the top of that list is what you send to the expensive model.

Why a viewer or AI pipeline team should care

If you ship a CT viewer with an AI assistant, or a pipeline that runs a slice-wise model over chest CT, the slice count is your bill. In the paper, MedGemma 4B needs about 155 s to screen all 240 slices of one CT on an RTX 4080, and Lingshu 7B about 268 s. XGLASS ranks a whole volume for one finding in about 0.025 s. If the slices it puts first are the ones that carry the finding, you can send 30 slices instead of 240 and spend 12.5% of the model calls. The same ranked list also gives a viewer a sensible place to open a study when someone asks “show me the consolidation”.

What the method does

Radiologist eye-tracking exists for chest X-rays, not for most CT. XGLASS records the search pattern on X-rays and moves it onto CT in four steps.

  1. Gaze maps per finding, learned on X-rays. REFLACX pairs chest X-ray reads with eye-tracking and timestamped dictation. The authors find disease mentions in the transcripts with regular expressions, keep the fixations from 2 s before the mention starts until it ends, normalize them to the chest bounding box and smooth them into one heatmap per finding. The result is a map of where radiologists look when they talk about, say, pleural abnormality.
  2. A CT that looks like an X-ray. Each CT is resampled to 1.25 mm isotropic voxels, a fixed block of 240 axial slices is centered on the chest, and the block is collapsed into a coronal average-intensity projection with a wide window. A Beer-Lambert style projection was tested as well; the plain average with a wide window did best on validation.
  3. Blend the two. The gaze map for the queried finding is mixed into the red channel of the projection with a weight of 0.75, inside the chest box only. The other channels keep the CT.
  4. Score slices. A ViT-B/16 with ImageNet-21k AugReg pretraining reads the blended image, and a two-layer MLP with a sigmoid outputs a 240-long vector, one score per axial slice. Training regresses the fraction of each slice covered by the finding, taken from ReXGroundingCT masks. The supplement shows it can also learn from just start and end slices, which is useful if your labels are slice ranges and not masks.

The model never sees a 3D volume. It sees one 2D image per finding, which is why it is cheap: about 86M parameters, 33.7 GFLOPs and 0.34 GB of GPU memory at inference, and a full training run in under 10 minutes on one RTX 4080.

What they found

The data come from ReXGroundingCT, which builds on CT-RATE. Of 3,142 chest CTs, 2,078 met the size and coverage rules, split 80/10/10 into 2,514, 306 and 316 CT and finding pairs. Six findings were used because they are the ones that overlap with the REFLACX gaze labels: atelectasis, consolidation, ground-glass opacity, high lung volume, lung nodule or mass, and pleural abnormality.

  • Finding the first relevant slice. On the 316 test pairs, a relevant slice was among the top 10 in 56.3% of cases for XGLASS. The same model without gaze reached 46.8%, Vote-MI 46.5%, BioMedCLIP retrieval 44.3%, a frozen Merlin encoder with an MLP 39.9%, and a 3D U-Net 36.1%. Random scores reached 49.1%, because large findings span many slices.
  • Misses. Counted as cases with no relevant slice in the top 10, the 3D U-Net missed 202 of 316, Merlin 190 and XGLASS 138. The 3D models were a little better on the single top slice and on global ranking, but less reliable at landing in the right region.
  • By finding. Consolidation was easiest at 75.9% top-10 hits, then ground-glass opacity, pleural abnormality and atelectasis. Lung nodules sat at 44.6% and high lung volume at 41.4%. Small findings are hard to see in a projection.
  • Downstream screening. With the 30 top-ranked slices in place of all 240, F1 for the queried finding rose from 0.288 to 0.414 for MedGemma 4B, from 0.327 to 0.441 for Lingshu 7B and from 0.235 to 0.316 for BioMedCLIP. Precision goes up because the subset holds more positive slices; the authors call this an initial demonstration.
  • Cost. The Merlin and 3D U-Net selectors took 34.8 and 130.8 times longer per finding and used 6.5 and 10.9 times more GPU memory. Training them took about 6 hours and 22 hours on an A100.

The featured image shows two panels from Fig. 6 of the paper. For consolidation and for pleural abnormality, each row holds the five slices one selector picked. Green borders mean the slice falls inside the ground-truth finding, red means it does not. Random and Vote-MI wander to the neck, the lung apex or the upper abdomen; XGLASS stays on the slices that hold the finding.

Is the gaze doing the work?

The supplement answers the obvious objection: maybe the model just learned where findings usually sit. A fixed CT location prior built from training labels gets the best single top slice, but its top-10 hit rate is 45.3% against 56.3% for XGLASS. In the test cases where the finding sat in an unusual place, the location prior fell to 15.1% while XGLASS held 35.8%. The gaze map also does not have to line up exactly. Shifting it by up to 16 pixels, adding noise or flipping it left to right changed the top-10 hit rate by at most 3.5 points. The model treats the map as a broad search prior, not a lesion mask.

What this means for your stack

  1. If you run a 2D VLM over chest CT slice by slice, put a ranker in front of it and test budgets of 30 to 60 slices before paying for 240.
  2. Use the ranking to open a study at the right level. A viewer can jump to the top-ranked slices for a finding the clinician selects, without a segmentation model.
  3. Do not use it as a rule-out. Missing the region in 138 of 316 test cases at a budget of 10 is fine for prioritizing, and not fine for deciding a scan is clear.
  4. Check your geometry. The model expects a 240-slice block at 1.25 mm centered on the chest, so scans with limited coverage or a different field need the same preprocessing or they will not fit.

Where it falls short

  • One dataset, six findings. Only ReXGroundingCT overlaps with the REFLACX gaze labels, so everything is tested on one public chest CT source. There is no external test set.
  • Gaze recorded on X-rays. Radiologists search a CT differently than a radiograph. Against 57 CT reads with eye-tracking from CT-ScanGaze, the superior-inferior gaze profiles correlated at 0.65 to 0.96 across findings, similar, not identical.
  • Small findings. Nodules are the most common finding in the test set (112 of 316) and among the weakest. A projection washes them out.
  • Thin categories. Pleural abnormality has 12 test cases and consolidation 29, so the per-finding numbers carry wide uncertainty.
  • Chest only, fixed size. 1,064 CTs were dropped for not fitting the 240-slice chest block. Other body regions have no gaze priors yet.

Code, weights and license

The code is on GitHub at michaelgloeckler/XGLASS under the MIT license, with an inference notebook, a training notebook and downstream scripts for MedGemma and Lingshu. The README points to the trained checkpoint on Hugging Face as MichaelGlo/XGLASS, but on 26 October 2026 that page returned an access error to us, so check that it is public before you plan around it. The repository also ships gaze heatmaps for 14 findings, of which the paper used six. You still need access to REFLACX, ReXGroundingCT and CT-RATE under their own terms to retrain or evaluate. The paper is released under CC BY 4.0. The work was funded by the German Research Foundation (DFG) through GRK 3012.

Related reading on PYCAD

Sources

  • Michael Glöckler, Timo Ropinski. XGLASS: X-Ray, Gaze and Language Assisted Slice Sequencing for CT Volumes. arXiv:2610.26255, 2026, accepted at WACV 2027. Abstract and PDF.
  • Code: github.com/michaelgloeckler/XGLASS (MIT). Checkpoint listed in the README: huggingface.co/MichaelGlo/XGLASS (not publicly reachable on 26 October 2026).
  • Featured image: Fig. 6 of the paper, rows cropped and resized only.

We build custom medical imaging platforms — advanced DICOM viewers, AI segmentation, and the clinical systems around them.

Get in Touch

Copyright © 2026 PYCAD. All Rights Reserved.