Przejdź do głównej zawartości

Kiedy CT i segmentacja rzeczywiście współdzielą przestrzeń

Masz obraz CT i segmentację guza. Chcesz nałożyć maskę na obraz i mieć pewność, że znajduje się ona na guzie. Kiedy jest to bezpieczne? Poznane dotąd narzędzia — przekształcenie afiniczne, normalna do przekroju, kontrole siatki — stają się tutaj rozstrzygające, ponieważ odpowiedzi nie da się odczytać z pojedynczego tagu. FrameOfReferenceUID daje pozwolenie na sprawdzenie geometrii, ale nie dowodzi, że geometrie są zgodne. Decyzję zawsze podejmuje się na podstawie rzeczywistych współrzędnych.

Zgodne FoR, a mimo to błędne nałożenie

SEG wyprowadzony bezpośrednio — taki, którego źródłowe SOP UID wskazują CT — jest przestrzennie powiązany z CT, ale nie musi współdzielić jego siatki wokseli. DICOM jawnie dopuszcza, aby SEG różnił się od źródła rozmiarem i rozdzielczością oraz zawierał własne położenia poszczególnych klatek. SEG mógł zostać poddany zmianie próbkowania, zapisany na wolumenie z ponownie wyznaczonymi przekrojami albo zawierać położenia poszczególnych klatek różniące się od położeń przekrojów CT. Przy naiwnym nakładaniu indeks po indeksie maska trafia wtedy o jeden przekrój obok guza; przeglądarka lub narzędzie zmiany próbkowania uwzględniające geometrię powinno respektować rzeczywiste położenia SEG i albo umieścić maskę prawidłowo, albo ujawnić niezgodność. Zgodny FrameOfReferenceUID tego nie wykryje — pozwala na to porównanie rzeczywistej geometrii.

Co oznacza FrameOfReferenceUID

FrameOfReferenceUID (0020,0052) identyfikuje przestrzenny układ współrzędnych. Jest deklaracją, w którym układzie pacjenta wyrażono współrzędne obiektu, a nie dowodem zgodności na poziomie wokseli:

  • Zgodne FoR → obiekty deklarują ten sam układ pacjenta. Daje to pozwolenie na bezpośrednie porównanie geometrii, ale nie dowodzi identyczności siatek (początek układu, odstępy i kierunek nadal mogą się różnić).
  • Różne FoR → nie nakładaj obiektów bez sprawdzenia. Nadal mogą być powiązane przestrzennie, ale wyłącznie przez jawną rejestrację, która odwzorowuje jeden układ na drugi.
same FoR ≠ same voxel grid (still verify origin/spacing/direction)
different FoR ≠ impossible to relate (an explicit registration can map them)
different FoR ⇒ do NOT overlay without an explicit spatial relationship

FoR jest niezbędnym kontekstem; rozstrzyga geometria

Nawet przy zgodnym FoR o wyrównaniu decyduje rzeczywista geometria, a nie UID. Dwa obiekty w tym samym układzie mogą nadal mieć różne początki, odstępy lub orientacje — SEG poddano zmianie próbkowania albo wolumen z ponownie wyznaczonymi przekrojami zapisano z powrotem w tym samym układzie. Porównuje się więc geometrię (początek układu, odstępy, kierunek), a nie identyfikatory.

Zgodny UID ustanawia wspólny układ współrzędnych: współrzędne obiektów można porównywać w jednym układzie odniesienia. Nie ustanawia równości siatek — o niej decyduje geometria płaszczyzny obrazu. Jeśli FoR nie istnieje lub się różni, obiekty nie mają zadeklarowanego powiązania przestrzennego: przed nałożeniem trzeba ustanowić jawną, udokumentowaną relację przestrzenną.

Reguła praktyczna: traktuj FoR jako kontekst — zgodność pozwala przejść do bezpośredniego sprawdzenia geometrii; niezgodność oznacza, że przed jakimkolwiek nałożeniem potrzebna jest jawna rejestracja. O tym, czy dwie siatki się pokrywają, zawsze rozstrzyga geometria.

Procedura decyzyjna

Dla CT i SEG ustal, czy maska znajduje się już na siatce CT:

  1. Ustal źródło. Dopasuj ReferencedSeriesSequence SEG oraz źródłowe SOPInstanceUID poszczególnych klatek do serii i przekrojów CT. Poprawne odwołania ustanawiają relację możliwą do odczytania maszynowego między SEG a tym CT. Jeżeli odwołań nie ma albo nie wskazują tego CT, wyprowadzenie z tego CT nie jest ustanowione przez te pola — DICOM dopuszcza zapisy SEG, które opierają się na geometrii Frame of Reference i pomijają odwołania do wyprowadzenia w poszczególnych klatkach — dlatego zbadaj inne odwołania i dowody pochodzenia; nie wnioskuj o braku wyprowadzenia wyłącznie z braku tych pól.
  2. Sprawdź FoR. Zgodność pozwala przejść dalej; niezgodność oznacza, że przed porównaniem potrzebna jest jawna rejestracja.
  3. Porównaj rzeczywistą geometrię, z tolerancją określoną z góry dla każdej wielkości — w jej jednostkach fizycznych i odpowiednio do precyzji kodowania; nie istnieje jedna uniwersalna tolerancja:
    • równoważne wymiary i zasięg? (zgodny kształt siatki i liczba klatek)
    • równoważny początek układu i położenia? (zgodne wartości ImagePositionPatient poszczególnych klatek)
    • równoważne odstępy? (PixelSpacing oraz odstępy między przekrojami wynikające z położeń klatek)
    • równoważny kierunek? (zgodne cosinusy ImageOrientationPatient)
    • zgodność klatek? (każda klatka SEG odpowiada zamierzonemu przekrojowi CT)
    • spójność źródła i odwołań? (odwołania z kroku 1 wskazują to CT i jego instancje)
  4. Sklasyfikuj parę — są to etykiety tego rozdziału używane w tej decyzji, a nie wartości wyliczeniowe DICOM:
    • EXACT_GRID — geometria jest zgodna; użyj maski bezpośrednio, bez zmiany próbkowania.
    • RESAMPLING_REQUIRED — wspólny układ lub zamierzone powiązanie, ale inna siatka; zmień próbkowanie maski do siatki CT (sekcja o zmianie próbkowania).
    • INCOMPATIBLE — bez dodatkowych informacji nie można bezpiecznie powiązać obiektów.

Trzy porównania siatek CT i SEG przedstawiają przypadki EXACT_GRID, RESAMPLING_REQUIRED i INCOMPATIBLE z uwzględnieniem Frame of Reference i rzeczywistej geometrii siatki.

FoR stanowi kontekst; o tym, czy siatki się pokrywają, decydują rzeczywiste pozycje, odstępy i kierunek.

TRACE-CT rejestruje te kontrole w zatwierdzonym kodzie, choć żadna pojedyncza funkcja nie zwraca trzech powyższych etykiet; kontrola wstępna w tym projekcie posługuje się bogatszym wewnętrznym słownikiem stanów, zapisanym w mapie nauki. FoR jest sprawdzany, lecz decyzja zapada na podstawie rzeczywistej geometrii.

Procedura okazuje się niezbędna przy awarii, która wymyka się każdej tańszej kontroli. Załóżmy, że SEG i CT mają ten sam FrameOfReferenceUID, SEG wskazuje UID serii CT, a kształty ich tablic są zgodne — mimo to maska trafia o jeden przekrój obok guza. Przyczyną jest niezgodność położenia poszczególnych klatek: klatki SEG zapisano w położeniach, które nie pokrywają się ze środkami przekrojów CT, na przykład dlatego, że SEG utworzono na wersji CT z ponownie wyznaczonymi przekrojami lub zmienionym próbkowaniem, a następnie zapisano z powrotem z tym samym FoR i kształtem. To samo FoR, ten sam kształt, te same odwołania — ale wartości ImagePositionPatient poszczególnych klatek się różnią, więc naiwne nakładanie indeks po indeksie umieszcza maskę na niewłaściwych fizycznych przekrojach. Nakładanie uwzględniające geometrię respektuje położenia i albo umieszcza maskę prawidłowo, albo ujawnia przesunięcie. Wykrywa je porównanie położeń, a także pełne porównanie afiniczne siatek lub bezpośrednia kontrola wzrokowa. Równość kształtów nie mówi nic o geometrii; równość FoR oznacza tylko wspólny układ; rozstrzyga równość geometrii.

Rejestracja: powiązanie obiektów w różnych układach

Gdy dwa obiekty znajdują się w różnych układach odniesienia — MRI przed podaniem kontrastu i MRI po podaniu kontrastu albo CT i MRI — nie są „nieprawidłowo dopasowane”, lecz niepowiązane, dopóki nie zostaną powiązane. Jawna rejestracja jest przekształceniem przestrzennym (sztywnym, afinicznym lub odkształcalnym), które odwzorowuje współrzędne z jednego układu na drugi. Gdy jest dostępne, można zmienić próbkowanie jednego obiektu do układu drugiego, a następnie zastosować opisaną wyżej logikę EXACT_GRID/RESAMPLING_REQUIRED.

Jakość rejestracji sama jest zmienną: nieznacznie błędne przekształcenie nakłada niewłaściwą anatomię równie czysto jak prawidłowe. W 3D Slicer moduły registration, takie jak General Registration, obliczają te przekształcenia, natomiast moduł Transforms je wizualizuje, edytuje i stosuje. Wzrokowa ocena wyniku — przewijanie nałożenia w wielu orientacjach — jest koniecznym, uzupełniającym elementem kontroli jakości. Dlatego studium przypadku kontroli wzrokowej na końcu tego rozdziału (studium przypadku) nie jest opcjonalne; jednak sama zgodność wzrokowa nie dowodzi dokładności rejestracji.

Wiedza, że dwa obiekty współdzielą przestrzeń, pozostawia jeszcze pytanie o reprezentację: czym właściwie jest dopasowana segmentacja? Tablica maski, DICOM SEG i RTSTRUCT przechowują ten sam guz w różny sposób, a następna sekcja pokazuje, co każda postać zachowuje, a co po cichu odrzuca.

Źródła

  • DICOM PS3.3, Frame of Reference Module (C.7.4), w tym FrameOfReferenceUID (0020,0052): wspólny układ ustanawia relację przestrzenną, a nie identyczność siatek. (bieżące wydanie)
  • DICOM PS3.3, Image Plane Module (C.7.6.2): semantyka ImagePositionPatient, ImageOrientationPatient i PixelSpacing. (bieżące wydanie)
  • DICOM PS3.3, Segmentation Image Module (C.8.20.2) i Segmentation Functional Groups (A.51.5): SEG może różnić się od źródła rozmiarem i rozdzielczością oraz zawierać własne położenia i odwołania do wyprowadzenia dla poszczególnych klatek. (C.8.20.2, A.51.5)
  • DICOM PS3.3, Common Instance Reference Module (C.12.2): ReferencedSeriesSequence i odwołania do instancji. (bieżące wydanie)
  • Dokumentacja 3D Slicer — moduły rejestracji (obliczanie przekształceń) i moduł Transforms (wizualizacja, edycja i stosowanie przekształceń). (podręcznik użytkownika)
  • TRACE-CT w commicie 7aaf308c76ed2718fd0b364d1cde856969711b72 — ograniczona implementacja studium przypadku: funkcje geometrii w scripts/seg_decode_resample.py, w tym classify_transfer_pair(), stany geometrii w scripts/rider_preflight.py oraz ustalony słownik geometrii w scripts/rider_qualification_matrix.py. (commit)

© 2026 Adrian Tkacz · BioMedical-IT
Oryginalne teksty i ilustracje są udostępniane na licencji Creative Commons Uznanie autorstwa–Użycie niekomercyjne 4.0 Międzynarodowe (CC BY-NC 4.0), o ile nie zaznaczono inaczej. Przy ponownym wykorzystaniu proszę podać Adrian Tkacz / BioMedical-IT jako autora i zamieścić odnośnik do oryginalnego źródła. Materiały osób trzecich zachowują własne prawa i warunki licencyjne.