Problem
Whole-body PET/CT shows where an injected tracer accumulates, and most lesions light up. A PSMA patient can carry dozens of bone and nodal lesions. Interactive segmentation models are prompted spatially today, with a click, a box, a lasso or a scribble on the lesion. They are good at outlining a lesion once someone has found it, but finding and choosing the lesions, the slow part, stays with the human.
Clinicians refer to lesions by where they are: “the lesions in the left side of the chest”, “near the left lung upper lobe”. The aim is to ask a scan in those words and get back exactly the lesions meant: all of them, only them, or an empty mask when the region holds none.
Ganzkörper-PET/CT zeigt, wo sich ein injizierter Tracer anreichert, und die meisten Läsionen leuchten auf. Ein PSMA-Patient kann Dutzende Knochen- und Lymphknotenläsionen haben. Interaktive Segmentierungsmodelle werden heute räumlich gepromptet, mit einem Klick, einer Box, einem Lasso oder einem Scribble auf der Läsion. Sie umranden eine Läsion gut, sobald jemand sie gefunden hat, aber das Finden und Auswählen, der langsame Teil, bleibt beim Menschen.
Ärztinnen und Ärzte benennen Läsionen danach, wo sie liegen: „die Läsionen in der linken Brusthälfte“, „nahe dem linken Lungenoberlappen“. Ziel ist, einen Scan in genau diesen Worten zu fragen und genau die gemeinten Läsionen zurückzubekommen: alle, nur diese, oder eine leere Maske, wenn die Region keine enthält.
Idea
Reading the location words is not the hard part: our backbone already does it. Scored against another prompt’s targets, its masks lose 0.62 Dice. What fails is seeing, on small lesions and on normal uptake, and the standard yes/no answer makes that worse. Whenever a prompt does not mean a lesion, a binary target tells the network that the lesion is not a lesion. In 86 % of 529,840 prompt–lesion pairs, it is trained to erase a real lesion.
The usual metric cannot see this. Returning all seven lesions for “the left side of the chest” still scores Dice 0.84, and a model that ignores the words still scores Dice ≥ 0.5 on 37 % of prompts with a target. The project starts from one principle:
A prompt should select the image’s evidence, never create it and never erase it.
Die Ortsangaben zu lesen ist nicht das Schwierige: Unser Backbone kann das bereits. Gegen die Ziele eines anderen Prompts bewertet, verlieren seine Masken 0,62 Dice. Was scheitert, ist das Sehen, bei kleinen Läsionen und bei normaler Anreicherung, und die übliche Ja/Nein-Antwort macht das schlimmer. Immer wenn ein Prompt eine Läsion nicht meint, bringt ein binäres Ziel dem Netz bei, dass diese Läsion keine Läsion ist. In 86 % von 529.840 Prompt-Läsions-Paaren wird es darauf trainiert, eine echte Läsion zu löschen.
Die übliche Metrik sieht das nicht. Wer für „die linke Brusthälfte“ alle sieben Läsionen zurückgibt, erreicht noch Dice 0,84, und ein Modell, das die Worte ignoriert, erreicht bei 37 % der Prompts mit Ziel noch Dice ≥ 0,5. Das Projekt geht von einem Prinzip aus:
Ein Prompt soll die Evidenz im Bild auswählen, sie aber nie erzeugen und nie löschen.
Method
To our knowledge, F6.3 is the first text-prompted whole-body PET/CT model that separates finding lesions from selecting them.
- Find × select. The answer is the product of two channels. The lesion channel asks “is this a lesion?” and is trained on every lesion, for every prompt, whatever the prompt says. The routing channel asks “is this lesion the prompt’s?”. The answer can never contain more than was found, and its losses do not flow back through the lesion channel, so leaving a lesion out of the answer does not teach the network that it is not a lesion.
- Anatomy in the encoder. TotalSegmentator runs once on each CT and gives every voxel an anatomical address: which structures lie at, near and around it, and where it sits in the patient’s own body frame. A gated lookup adds this at every encoder scale, starting from zero, in place of scan coordinates, which mean different body parts in a short and a long scan.
- Anatomy-biased cross-attention. In the prompt’s decoder every voxel reads the words. Each word’s score gets a learned bias from how well it fits the voxel’s anatomy, and a null key lets a voxel take nothing. Because the null key sits a learned distance below the words’ combined content score, the content chooses which words to read and the anatomy bounds how much: a voxel in the pelvis cannot take in “near the left lung upper lobe”, whatever the image looks like there.
- Two passes, one set of weights. A coarse whole-body pass decides whether anything of the prompt is in the scan and tells a full-resolution local pass where in the body it is. The text goes through a frozen Qwen3-Embedding model (0.6 B parameters), so paraphrases stay close to the training templates.
- The check. A description head writes a vector at every voxel in the same space as the prompts, so phrases such as “lesion” or “left chest” can be read off it. Every voxel the answer keeps must read as a lesion and as the prompt.
Nach unserem Wissen ist F6.3 das erste textgesteuerte Ganzkörper-PET/CT-Modell, das das Finden von Läsionen von ihrer Auswahl trennt.
- Finden × Auswählen. Die Antwort ist das Produkt zweier Kanäle. Der Läsionskanal fragt „Ist das eine Läsion?“ und wird auf jeder Läsion trainiert, für jeden Prompt, egal was der Prompt sagt. Der Routing-Kanal fragt „Ist das die Läsion des Prompts?“. Die Antwort kann nie mehr enthalten, als gefunden wurde, und ihre Verluste fließen nicht durch den Läsionskanal zurück. Eine Läsion aus der Antwort wegzulassen bringt dem Netz also nicht bei, dass sie keine Läsion ist.
- Anatomie im Encoder. TotalSegmentator läuft einmal auf jedem CT und gibt jedem Voxel eine anatomische Adresse: welche Strukturen an, nahe und um ihn liegen und wo er im eigenen Körperkoordinatensystem des Patienten sitzt. Ein gegateter Lookup fügt das auf jeder Encoder-Skala hinzu, beginnend bei null, anstelle von Scan-Koordinaten, die in einem kurzen und einem langen Scan verschiedene Körperteile bedeuten.
- Anatomie-gewichtete Cross-Attention. Im Decoder des Prompts liest jeder Voxel die Worte. Der Score jedes Wortes bekommt einen gelernten Bias, wie gut es zur Anatomie des Voxels passt, und ein Null-Key erlaubt einem Voxel, nichts aufzunehmen. Weil der Null-Key einen gelernten Abstand unter dem gemeinsamen Inhalts-Score der Worte liegt, wählt der Inhalt, welche Worte gelesen werden, und die Anatomie begrenzt, wie viel: Ein Voxel im Becken kann „nahe dem linken Lungenoberlappen“ nicht aufnehmen, egal wie das Bild dort aussieht.
- Zwei Durchläufe, dieselben Gewichte. Ein grober Ganzkörper-Durchlauf entscheidet, ob überhaupt etwas vom Prompt im Scan ist, und sagt einem hochaufgelösten lokalen Durchlauf, wo im Körper er sich befindet. Der Text läuft durch ein eingefrorenes Qwen3-Embedding-Modell (0,6 Mrd. Parameter), sodass Umformulierungen nah an den Trainings-Templates bleiben.
- Die Prüfung. Ein Description Head schreibt an jedem Voxel einen Vektor in denselben Raum wie die Prompts, sodass sich Phrasen wie „Läsion“ oder „linke Brust“ daran ablesen lassen. Jeder Voxel, den die Antwort behält, muss sich als Läsion und als der Prompt lesen.
Data
No large dataset pairs whole-body PET/CT lesion masks with clinical language, so the prompts are generated, meaning first and wording second. TotalSegmentator gives every lesion an anatomical address: its vertebral level, its side and its distance to each nearby structure. Rules on that address decide exactly which lesions a query such as “near the left upper lobe” refers to, and only then is the query written out from a template.
Every lesion–prompt pair is a target, a non-target or unknown. When the masks cannot decide, for example a lesion 4.5 mm from the lobe, the lesion is left out of the grading for that prompt, so the model is never trained on a guess. The result is 31,633 training prompts from 1,406 studies (856 FDG, 550 PSMA), 77 % of which denote no lesion at all, with no sentence written by a human. Training uses the three forms a clinician approved: in a region, near a structure, and a direction. Free wording is the next test.
Kein großer Datensatz verbindet Läsionsmasken im Ganzkörper-PET/CT mit klinischer Sprache, also werden die Prompts erzeugt, erst die Bedeutung, dann die Formulierung. TotalSegmentator gibt jeder Läsion eine anatomische Adresse: ihre Wirbelhöhe, ihre Seite und ihren Abstand zu jeder nahen Struktur. Regeln auf dieser Adresse entscheiden genau, welche Läsionen eine Anfrage wie „nahe dem linken Oberlappen“ meint, und erst dann wird die Anfrage aus einem Template ausformuliert.
Jedes Läsions-Prompt-Paar ist Ziel, Nicht-Ziel oder unbekannt. Wenn die Masken es nicht entscheiden können, etwa bei einer Läsion 4,5 mm vom Lappen entfernt, fällt die Läsion für diesen Prompt aus der Bewertung, sodass das Modell nie auf eine Vermutung trainiert wird. Das Ergebnis sind 31.633 Trainings-Prompts aus 1.406 Studien (856 FDG, 550 PSMA), von denen 77 % gar keine Läsion meinen, ohne einen einzigen von Menschen geschriebenen Satz. Trainiert wird mit den drei Formen, die ein Kliniker freigegeben hat: in einer Region, nahe einer Struktur, und eine Richtung. Freie Formulierungen sind der nächste Test.
Try itAusprobieren
Fig. 1 on the home page is the talk’s running example: one public autoPET FDG study (Gatidis et al. 2022, CC BY 4.0) with seven annotated lesions, and four prompts with their exact lesion sets. The last two, group prompts with an excluded lesion, show where the same labels reach next; they are not in the training data yet.
Abb. 1 auf der Startseite ist das laufende Beispiel aus dem Vortrag: eine öffentliche autoPET-FDG-Studie (Gatidis et al. 2022, CC BY 4.0) mit sieben annotierten Läsionen und vier Prompts mit ihren genauen Läsionsmengen. Die letzten beiden, Gruppen-Prompts mit einer ausgeschlossenen Läsion, zeigen, wohin dieselben Labels als Nächstes reichen; im Trainingsdatensatz sind sie noch nicht.
Stack