Hagyományosan az orvosok mágneses rezonancia képalkotást (MRI) használnak a különféle egészségügyi állapotok, például a rák diagnosztizálására. Bizonyos esetekben azonban nem lehet pusztán a képek alapján pontos diagnózist felállítani. Például a glioblasztóma, az agyrák leggyakoribb formája olyan elemzési eljárással rendelkezik, amely magában foglalja a szövetminta eltávolítását a páciensből műtéten keresztül. Ráadásul a daganat jellemzése hetekig is eltarthat. Üdvözlünk tehát egy számítógéppel támogatott megoldást, amely nem csak pontosabb diagnózis felállításában, hanem gyorsabb felállításában is segíti az orvosokat.

A mélytanulás sikeres volt a számítógépes látásproblémák megoldásában. Ezt a módszert kiterjesztették az orvostudományra is. Ebben a cikkben megmutatom, hogyan lehet olyan osztályozót felépíteni, amely az MRI-vizsgálatokból előre jelzi a daganat jelenlétét. A Kaggle által szervezett RSNA-MICCAI Brain Tumor Radiogenomic Classification verseny adatait fogom használni. A megvalósításhoz a verseny legjobb megoldására fogok hivatkozni, amely ebben a „tárházban” található.

Az adatok értelmezése

Kapunk egy képzési adatkészletet a következő mappaszerkezettel:

train
|---00000
    |---FLAIR
        |Image-1.dcm
        |Image-1.dcm
        |...
    |---T1w
    |---T1wCE
    |---T2w
|---00001
|---00002
|---...

Ez azt jelenti, hogy minden betegazonosítóhoz (például „00000”) 4 különböző esetet vagy különböző impulzusszekvenciákból származó szkennelést kapunk. Mindegyik esetben vannak olyan DICOM-fájlok, amelyek formátuma .dcm . A rendelkezésünkre bocsátott további CSV-fájlból minden egyes betegazonosító egy bináris értékre van leképezve, amely az agydaganat jelenlétét jelzi.

DICOM fájlokat

A DICOM a „digitális képalkotás és kommunikáció az orvostudományban” rövidítése. Ez egy szabványos, nemzetközileg elfogadott formátum az orvosi képek megtekintésére, tárolására, visszakeresésére és megosztására. Általában egy speciális orvosi DICOM-nézegetőt kell telepíteni a DICOM-fájlok eléréséhez. Szerencsére használhatjuk a PyDicom csomagot, amely lehetővé teszi a fájlok Pythonban történő olvasását. Ezt a read_file függvény segítségével tehetjük meg:

dicom = pydicom.read_file(path)

Ha kinyomtatjuk a dicom objectet, akkor megjelennek a metaadatok. A metaadatok egyes elemei hasznosak az általunk kezelt adatok megértéséhez. Vizsgáljuk meg őket.

Metaadatok

Sorok és oszlopok: Ezek a paraméterek határozzák meg a kép méretét. Mindkét érték 512. Tehát minden képméret 512 x 512 pixel.

Minták képpontonként: Meghatározza a színcsatornák számát. Az 1 érték itt azt jelenti, hogy a kép szürkeárnyalatos.

Fotometrikus értelmezés: Az érték „MONOCHROME2”, ami azt jelenti, hogy a kép szürkeárnyalatos, a 0 pixelérték pedig fekete képpontot jelöl. Ez a „MONOCHROME1” ellentéte, ahol a 0 pixelérték fehér képpontot jelöl. Ezért fontos, hogy ismerjük ezeknek a metaadatoknak az értékét, különben hatással lesz képfeldolgozásunkra.

Pixeltávolság: Az egyes képpontok középpontjai közötti fizikai távolságot jelzi mm-ben. A megjelenített érték [0,5, 0,5], ami azt jelenti, hogy az egyes pixelek közötti fizikai távolságok x és y irányban egyaránt 0,5 mm.

Alkalmazzuk ezt az információt az egyik agyszeletre. A fenti ábrára hivatkozva a maximális hossza az agyszeleten körülbelül 200 pixel, ami 200 x 0,5 mm = 100 mm = 10 cm. A 10 cm-es hossz normális agymérethez érthető.

Sorozatleírás: Minden pácienshez 4 különböző DICOM-fájl mappát biztosítunk, nevezetesen „FLAIR”, „T1w”, „T1wCE” és „T2W”. Ezek különböző MRIimpulzusszekvenciák segítségével készült szkennelések. Az MRI impulzussorozat változó mágneses gradiensek programozott halmaza. Minden szekvenciát több paraméter határoz meg, például a visszhangig eltelt idő (TE), az ismétlési idő (TR), az inverziós impulzus és a diffúziós súlyozás. E paraméterek különböző kombinációi befolyásolják a szöveti kontrasztot és a térbeli felbontást. Ezt az információt felhasználhatjuk annak eldöntésére, hogy mit tegyünk az adatokkal. Dönthetünk úgy, hogy minden impulzussorozatot egyetlen adatkészletbe foglalunk, vagy a modellt külön-külön tanítjuk különböző impulzussorozatokra.

Lefoglalt bitek: Meghatározza az egyes mintákhoz lefoglalt terület mennyiségét bitben. Nem minden lefoglalt bitet használnak fel a pixelérték meghatározására. Ezért a tárolt bitek (0028,0101) kevesebbek lehetnek, mint a lefoglalt bitek. Esetünkben mindkettő 16 bites. Ez azt jelenti, hogy pixeltartománya 2¹⁶ = 65536. Az általunk jellemzően használt 8 bites monitor azonban csak a szürke 256 árnyalatát képes megjeleníteni. A radiológusok általában ablakozást tesznek. Az ablakozás lehetővé teszi, hogy megtekintsük az agy azon részét, amely relevánsabb a diagnózis szempontjából. Az ablak középpontjának és szélességének nevezett két paraméter beállításával az agy különböző összetevőinek, például csontoknak, lágyszöveteknek, víznek, zsírnak, tüdőnek és levegőnek a megjelenését tudjuk kiemelni.

Ablak közepe és ablak szélessége: Ez az ablakozás célja. Például, ha az ablak közepe és szélessége 71, illetve 142, akkor:

  • A legkisebb látható pixelérték = 71 -(142/2) = 0
  • A legnagyobb látható pixelérték = 71-(142/2) =142

A 0 és 142 közötti pixelértékek a jelenlegi állapotukban jelennek meg. A 0 alatti pixelértékek feketén, míg a 142 feletti pixelértékek fehérként jelennek meg.

Páciens orientáció: minden fájlnál [1, 0, 0, 0, 0, -1]. Két különálló vektorként kell értelmezni: [1, 0, 0] és [0, 0, -1], amelyek rendre az x-tengelyt, illetve a negatív z-tengelyt jelentik. A koordinátarendszert és az XYZ tengelyek irányait az alábbi ábra szemlélteti.

Hasonlítsuk össze a „00000” azonosítójú páciens első és utolsó DICOM-fájljának képpozícióját.

Az első DICOM-fájl képpozíciója: [-125.094, 90.3865, 127.74]

Az utolsó DICOM-fájl képpozíciója: [-125.094, -137.013, 127.74]

Az y-koordináta értéke csökken, míg a másik két koordináta ugyanaz marad. A DICOM által meghatározott koordinátarendszer szerint ez azt jelenti, hogy a szkenneléseket az y tengely mentén végezték a fej hátsó részétől a fej elejéig. Ennek további megerősítésére elemezzük az egyes DICOM-képek tájolását.

A fenti koordinátarendszerből arra következtethetünk, hogy az agyi képet a páciens elölről nézzük, homlokkal magunk felé.

A legfontosabb dolog, amit szem előtt kell tartania a modell felépítése és üzembe helyezése során? A végcélod megértése. "További információért olvassa el interjúnkat a Stanford, a Google és a HuggingFace ML szakértőivel."

Adatfeldolgozás

Most már megértjük a kapott adatokat. Minden egyes beteg esetében minden egyes DICOM-fájl az agy keresztmetszetének képét tartalmazza a hátsótól az elülső felé. Ezeket a képeket kombinálhatjuk egy 3-dimenziós tömbstruktúrába, amely egy agyat ábrázol, mielőtt elküldi a modellnek, hogy bináris előrejelzést adjon arról, hogy létezik-e a daganat.

Olvasson egy DICOM-fájlt, és bontsa ki a képtömböt. Ezután kiválaszthatjuk, hogy az ablakozást a PyDicom csomagban található apply_voi_lut függvény segítségével alkalmazzuk.

Nézzünk meg néhány képet. Amit itt látunk, azok az agy keresztmetszete (szeletei).

Ezután létrehozunk egy PyTorch Dataset.

Most van egy kis probléma a kép 3-dimenziós ábrázolásának létrehozásával. Először is, az egyes DICOM-képekhez tartozó szeletek száma eltérő. Emellett a számítási költségek miatt előfordulhat, hogy korlátoznunk kell a modellhez küldött szeletek számát.

Az egyik intuitív és egyszerű megoldás a középső n számú szelet kiválasztása. Ez azonban nem feltétlenül az ideális megoldás. Ennek az az oka, hogy a középső szelet nem feltétlenül az agy középpontja. A megoldás szerzője jobb megoldást kínált: szerezzük meg a legnagyobb agyterülettel rendelkező szeletet, majd ragadjuk meg az előtte és utána lévő (n-1)/2 szeletet. Ez a megoldás feltételezi, hogy a legnagyobb agyterülettel rendelkező szelet az agy központja. A megoldás szerzője szerint ez segített neki jobb teljesítményt elérni.

Modell

A 2D képekhez kétdimenziós konvolúciós neurális hálózatot használunk mélytanulási modellként. Ez esetünkben már nem alkalmazható, mivel képeink immár 3 térbeli dimenzióban jelennek meg. Ehelyett egy 3-dimenziós konvolúciós neurális hálózatot (3D CNN) használunk. A koncepció hasonló a 2D CNN-ekhez, csak annyi, hogy a kernelszűrő 3 dimenzióban csúszik 2 helyett.

A 3D CNN létrehozásához a MONAI keretrendszert fogjuk használni. A MONAI egy ingyenesen elérhető, közösség által támogatott PyTorch-alapú keretrendszer az egészségügyi képalkotás mélyreható tanulásához. Számos modult és segédprogramot támogat erre a célra. Használhatunk egy előre betanított modellt, például a ResNet-10-et egyetlen kódsor használatával:

model = monai.networks.nets.resnet10(
    spatial_dims=3, n_input_channels=1, n_classes=1
)

A modellt hasonlóan képezik ki, mint a 2D CNN-eknél. Mivel bináris osztályozási problémánk van, használhatjuk a bináris keresztentrópia veszteséget. Az edzéshurok hasonló ahhoz, amit általában használunk. A megoldás szerzője Ádámot használta optimalizálóként 1e-4 tanulási sebességgel. Az ütemező MultiStepLR , amely gamma-el csökkenti az egyes paramétercsoportok tanulási sebességét, amint az epochák száma eléri a milestones egyikét.

Ezzel a megközelítéssel a megoldás szerzője a ranglista élére került, 0,62174 AUROC-pontszámmal. A megoldás szerzője azonban elismeri, hogy a ranglista meglehetősen zajos, és a viszonylag alacsony AUROC pontszámból ítélve (csak kicsivel 0,5 felett), úgy gondolom, hogy több adat segít a teljesítmény javításában.

Következtetés

Ebben a cikkben megismerkedtünk az orvosi képek DICOM-fájljaival és a metaadatok értelmezésével. Ezáltal megértjük az adatok beszerzésének módját, és így megalapozott döntéseket tudunk hozni az adatok ábrázolásának módjáról. Ezen túlmenően megismertük a 3 dimenziós agyi struktúra ábrázolását 2D képsorozat segítségével. Ezeket a technikákat kombinálva minden bizonnyal legalább egy jó alapmodellt kaphatunk egy osztályozási feladathoz MRI-alapú orvosi adatokon.

Ez azonban semmiképpen sem helyettesíti a tényleges orvosokat, mert a mély tanulási modellek nem értelmezhetők, bármennyire is jók. Gondoljunk csak bele, ha egy számítógép agyrákot diagnosztizál önnél anélkül, hogy elmondaná, hogyan jön létre ez a jóslat, mennyire fog bízni az ítéletében? Biztosan szkeptikus lennék! Ezért bölcs dolog lehet, ha a számítógépes látás az orvosok diagnosztizálásának további segítő eszköze lehet, ahelyett, hogy teljes mértékben helyettesítené őket.

A szerkesztő megjegyzése: A „Heartbeat” egy közreműködők által vezérelt online kiadvány és közösség, amelynek célja, hogy kiemelkedő oktatási forrásokat biztosítson az adattudomány, a gépi tanulás és a mély tanulással foglalkozó szakemberek számára. Elkötelezettek vagyunk amellett, hogy támogassuk és inspiráljuk a fejlesztőket és mérnököket az élet minden területéről.

A Heartbeat szerkesztői függetlenségét a Comet támogatja és adja ki, egy MLOps platform, amely lehetővé teszi az adattudósok és az ML csapatok számára kísérleteik nyomon követését, összehasonlítását, magyarázatát és optimalizálását. Közreműködőinket fizetjük, és nem adunk el hirdetéseket.

Ha hozzá szeretne járulni, látogasson el a "közreműködői felhívásunkra". Feliratkozhat heti hírleveleinkre ("Deep Learning Weekly" és "Comet Newsletter"), csatlakozhat hozzánk a ""Slack" oldalon, és kövesse a Cometet a "Twitter"-en és a "LinkedIn"-en forrásokért, eseményekért és sokkal több, ami segít jobb ML-modellek felépítésében, gyorsabban.