Rilevamento della crescita del cancro utilizzando l’intelligenza artificiale e la visione artificiale

Detection of cancer growth using AI and computer vision.

AI per il bene sociale: applicazioni nella diagnostica per immagini

Immagine di copertina da unsplash.com

Introduzione

Il cancro al seno è una delle forme di cancro più mortali nelle donne. Secondo l’Organizzazione Mondiale della Sanità (OMS), nel solo 2020 sono stati diagnosticati circa 2,3 milioni di nuovi casi di cancro al seno invasivo in tutto il mondo, che hanno causato 685.000 morti.

Anche se i paesi in via di sviluppo rappresentano la metà di tutti i casi di cancro al seno, rappresentano il 62% di tutte le morti causate dal cancro al seno. La sopravvivenza al cancro al seno per almeno 5 anni dopo la diagnosi varia dal più del 90% nei paesi ad alto reddito, al 66% in India e al 40% in Sudafrica.

Figura 1: Diverse fasi nella rilevazione delle metastasi del cancro al seno come eseguito dai patologi | In alto a sinistra: immagine dalla sfida Camelyon17 | In alto a destra: immagine da unsplash.com | Centrale: immagine da unsplash.com | In basso a sinistra e a destra: immagini dell'autore

Un passo fondamentale nel determinare in che fase si trova il cancro è l’esame microscopico dei linfonodi adiacenti al seno per capire se il cancro si è metastatizzato (un termine medico che significa diffuso in altri siti del corpo). Questo passaggio non solo è sensibile, richiede molto tempo e lavoro, ma richiede anche patologi medici altamente qualificati. Influisce sulle decisioni relative al trattamento, che includono considerazioni sulla radioterapia, la chemioterapia e la potenziale rimozione chirurgica di altri linfonodi

Con l’avvento e il progresso dell’IA e delle tecniche di visione artificiale, in particolare delle reti neurali convoluzionali (CNN), siamo stati in grado di migliorare l’accuratezza in una vasta gamma di compiti di visione artificiale come il riconoscimento delle immagini, la rilevazione degli oggetti e la segmentazione. Questi sono stati utili nella risoluzione di alcuni dei problemi di assistenza sanitaria più sfidanti, specialmente nelle regioni con accesso limitato a strutture mediche avanzate.

Basandoci su questo, in questo articolo presenterò un framework che sfrutta le CNN all’avanguardia e le tecnologie di visione artificiale per aiutare la rilevazione di metastasi nei linfonodi. Una soluzione di successo promette di ridurre il carico di lavoro dei patologi, riducendo al contempo la soggettività nella diagnosi.

Metodologia e approccio

Dato un’immagine intera di sezioni di linfonodo, il nostro obiettivo è generare una maschera che indica le potenziali regioni cancerose (cellule con tumori) nella sezione. Un esempio è rappresentato nella Figura 2, che mostra un’immagine di un tessuto sulla diapositiva insieme a una maschera in cui la regione gialla indica le aree nel tessuto che sono cancerose.

Figura 2: Sinistra: un'immagine WSI dal dataset | Destra: maschera binaria con regioni gialle che indicano regioni cancerose — Immagini dell'autore

La segmentazione delle immagini è uno dei classici compiti di visione artificiale, in cui l’obiettivo è addestrare una rete neurale per produrre una maschera a livello di pixel dell’immagine (qualcosa di simile alla maschera nella Figura 2). Ci sono diverse tecniche di deep learning disponibili per la segmentazione delle immagini che sono descritte in modo elaborato in questo articolo. TensorFlow di Google ha anche un ottimo tutorial che utilizza un approccio codificatore-decodificatore per la segmentazione delle immagini.

Invece di utilizzare un codificatore-decodificatore che è comunemente utilizzato nei problemi di segmentazione delle immagini, tratteremo questo come un problema di classificazione binaria in cui ogni regione definita personalizzata sulla diapositiva viene classificata come sana o tumorale utilizzando una rete neurale. Queste singole regioni di un’immagine di una diapositiva intera possono essere cucite insieme per ottenere la maschera desiderata.

Utilizzeremo il processo standard di machine learning per la costruzione del modello di visione artificiale: raccolta dati → preprocessing → suddivisione train-test → selezione del modello → messa a punto e formazione → valutazione

Raccolta e Preelaborazione dei Dati

Il dataset è stato acquisito dal CAMELYON16 Challenge che, come indicato sul sito web della sfida, contiene un totale di 400 immagini di interi campioni di linfonodi sentinella (WSI) raccolti presso il Radboud University Medical Center (Nijmegen, Paesi Bassi), e presso l’University Medical Center Utrecht (Utrecht, Paesi Bassi).

Le immagini di interi campioni di linfonodi sentinella sono memorizzate in una struttura piramidale a multi-risoluzione e ogni file immagine contiene diverse versioni ridotte dell’immagine originale. Ogni immagine nella piramide è memorizzata come una serie di tile per facilitare il recupero rapido delle sottoregioni dell’immagine (vedi Figura 3 per l’illustrazione).

Maggiori informazioni sulla Whole Slide Imaging possono essere trovate qui.

La verità fondamentale per le diapositive è fornita come maschere binarie WSI che indicano le regioni nelle diapositive che contengono cellule con tumori (vedi figura 2 sopra come esempio).

Figure 3: Illustration of different magnification levels in whole-slide images (WSI). Image sourced from https://camelyon16.grand-challenge.org/Data/

WSI nel nostro dataset hanno 8 livelli di zoom che ci consentono di ingrandire le immagini da 1x fino a 40x. Il livello 0 è considerato la risoluzione più alta (40x) e il livello 7 è il più basso (1x).

A causa delle loro enormi dimensioni (ogni WSI nel nostro dataset supera ampiamente i 2 GB), gli strumenti di immagine standard non sono in grado di leggerle e comprimerle nella RAM del sistema. Abbiamo utilizzato l’implementazione della libreria OpenSlide in Python per leggere efficientemente le immagini nel nostro dataset e fornire anche un’interfaccia per navigare tra i diversi livelli di zoom.

Figure 4- Images by the Author

L’addestramento di una CNN su un intero dataset di 400 WSI è computazionalmente molto costoso (immaginate di addestrarlo su un dataset di 2 x 400 = 800 GB). Abbiamo avuto accesso alla versione gratuita di Google Collab che ha un supporto GPU limitato disponibile. Pertanto, abbiamo estratto casualmente 22 WSI dal dataset. Inizialmente, un insieme di 22 immagini potrebbe sembrare un dataset piccolo per addestrare accuratamente una rete neurale convoluzionale, ma come ho già menzionato, abbiamo estratto piccoli patch da ciascuno di questi enormi WSI e trattato ciascun patch come un’immagine indipendente che può essere utilizzata per addestrare il nostro modello, come rappresentato in figura 5.

Figure 5: Each WSI is further split into smaller patches to augment the dataset — Images by the Author

Al livello di zoom più alto (livello 0 = 40x zoom), ogni immagine è di circa 62000 x 54000 pixel – l’estrazione di patch di dimensioni 299 x 299 ci darebbe circa 35.000 immagini individuali da ciascun WSI. Abbiamo estratto patch da ogni livello di zoom. All’aumentare del livello di zoom, la risoluzione diminuisce e il numero di patch che possiamo estrarre dal WSI diminuisce anche. Al livello 7, possiamo estrarre meno di 200 patch per immagine.

Inoltre, ogni WSI ha molte aree vuote in cui le cellule del tessuto non sono presenti. Per mantenere la coerenza dei dati, abbiamo evitato le patch che avevano meno del 30% di cellule del tessuto, che è stato calcolato in modo programmato utilizzando l’intensità dell’area grigia.

Il dataset è stato bilanciato per avere circa lo stesso numero di patch che contenevano cellule sane e tumorali. È stata effettuata una divisione di train-test dell’80-20 su questo dataset finale.

Addestramento del Modello

Abbiamo creato diversi modelli di CNN che sono stati addestrati sui patch delle immagini generati utilizzando il meccanismo descritto nella sezione precedente.

Funzione Obiettivo

I nostri obiettivi primari di ottimizzazione erano la sensibilità e la recall, ma abbiamo anche monitorato attentamente l’Area Sotto la Curva (AUC) della Caratteristica di Funzionamento del Ricevitore (ROC) per assicurarci di non produrre un eccessivo numero di falsi positivi.

Nel contesto della rilevazione del cancro, è cruciale minimizzare il numero di falsi negativi, ovvero le istanze in cui il modello classifica erroneamente un campione canceroso come non canceroso. Un elevato numero di falsi negativi potrebbe ritardare la diagnosi e il trattamento per i pazienti che effettivamente hanno il cancro. La sensibilità (o recall) misura la proporzione di veri positivi che vengono identificati correttamente e, ottimizzando per un’alta recall, miriamo a identificare correttamente il maggior numero possibile di casi positivi effettivi.

Tuttavia, concentrarsi solo sulla sensibilità potrebbe portare il modello a prevedere la maggior parte dei campioni come positivi, aumentando così il numero di falsi positivi (caso in cui un campione non canceroso è classificato come canceroso). Questo è indesiderabile in quanto potrebbe portare a interventi medici non necessari e causare ansia ingiustificata ai pazienti. Qui diventa estremamente importante monitorare l’AUC-ROC.

Costruzione del Modello

Abbiamo iniziato costruendo un baseline molto semplice, che comprendeva 2 strati convoluzionali con max pooling e dropout per la regolarizzazione. Per migliorare rispetto alla base, abbiamo elaborato modelli di riconoscimento delle immagini all’avanguardia come VGG16 e Inception v3 sul nostro dataset.

Dato che avevamo immagini disponibili a diverse scale di zoom, abbiamo allenato più modelli, ognuno dei quali utilizzava immagini da una specifica scala di zoom per verificare se la visualizzazione delle immagini a una particolare scala di zoom migliorasse le prestazioni della rete. A causa di un numero limitato di patch estratte disponibili a livelli di zoom inferiori, 3,4,5 immagini in questi livelli di zoom sono state combinate in un singolo set di allenamento. Sono stati costruiti modelli separati per le immagini a 0, 1 e 2 livelli di zoom.

Figura 6: Modello Inception v3 standard con un Global Max Pool Layer e Sigmoid Activation. Immagine Inception v3 tratta da: https://cloud.google.com/tpu/docs/inception-v3-advanced

Curiosamente, il modello che ha ottenuto le migliori prestazioni è stato il modello Inception v3 pre-addestrato sui pesi di ImageNet con un ulteriore strato di Global Max Pooling (vedi figura 6). La funzione di attivazione sigmoidale prende un qualsiasi numero reale e lo comprime in un intervallo tra 0 e 1. Questo è particolarmente utile nei nostri scenari, in cui vogliamo mappare le previsioni alle probabilità di due classi (0 e 1).

Configurazioni del Modello

Abbiamo effettuato una cross-validazione per apprendere i migliori iperparametri per il modello. Di seguito sono riportate le configurazioni finali del nostro ImageNet v3 aumentato, compreso l’ottimizzatore, il tasso di apprendimento, rho, gli epoche e la dimensione del batch utilizzati. Utilizzando i pesi di classe, abbiamo migliorato il focus del modello sulla classe minoritaria (casi tumorali), migliorando la sua capacità di identificare e diagnosticare correttamente i casi di cancro, un requisito essenziale in questo critico contesto sanitario.

Figura 7: Configurazioni e iperparametri del modello - Immagine dell'autore

Valutazione del Modello

A abbiamo esaminato la perdita, l’AUC e la Recall per i run di allenamento con diversi iperparametri e patch di immagini campione a diversi livelli di zoom.

Come già detto, le immagini ai livelli di zoom 3,4,5 sono state combinate in un singolo set di allenamento e sono stati costruiti modelli separati per le immagini a 0, 1 e 2 livelli di zoom. I grafici qui sotto mostrano le prestazioni per diversi livelli di zoom sul set di validazione. Le prestazioni sono state migliori al livello di zoom 1 in termini di AUC e recall, sull’ImageNet v3 modificato.

Figura 8: Configurazioni e prestazioni del modello final fine-tuned - Immagine dell'autore

Inferenza

Una volta che il modello è stato tarato, possiamo utilizzarlo per generare “maschere” per qualsiasi nuova immagine intera. Per farlo, dovremmo prima generare delle patch di risoluzione 299 x 299 (la dimensione di input per l’architettura standard Imagenet v3) dall’immagine al livello di zoom che ci interessa (livello 1 o livello 2).

Le singole immagini vengono poi passate attraverso il modello tarato per classificarle come contenenti cellule tumorali o non tumorali. Le immagini vengono quindi cucite insieme per generare la maschera.

Ecco le uscite e le maschere reali per due immagini intere nel nostro set di test. Come si può vedere, le maschere prodotte dal nostro modello somigliano decentemente alla maschera effettiva.

Figura 9: Risultati del modello su un paio di immagini nel set di test — Immagine dell'autore

Osservazioni conclusive

In questo post, abbiamo esplorato come i modelli di visione artificiale possono essere tarati per rilevare metastasi del cancro su immagini patologiche gigapixel. L’immagine sottostante riassume il flusso di lavoro per la formazione del modello e il processo di inferenza per classificare nuove immagini.

Figura 9: Riepilogo del flusso di lavoro per la formazione e l'inferenza del modello — Immagine dell'autore

Questo modello integrato nel flusso di lavoro esistente dei patologi può agire come strumento assistivo e può essere di elevata rilevanza clinica soprattutto in organizzazioni con limitate capacità di risorse, e può anche essere utilizzato come prima linea di difesa per diagnosticare la malattia sottostante in modo tempestivo.

Ulteriori lavori devono essere effettuati per valutare l’impatto sui flussi di lavoro clinici reali e sui risultati dei pazienti. Tuttavia, manteniamo un atteggiamento positivo che le tecnologie di deep learning meticolosamente verificate, insieme a strumenti clinici attentamente progettati, abbiano il potenziale per migliorare la precisione e l’accessibilità delle diagnosi patologiche a livello globale.

Controlla il codice sorgente sul mio Github: https://github.com/saranggupta94/detecting_cancer_metastasis .

Puoi trovare i risultati finali della competizione CAMELYON qui: https://jamanetwork.com/journals/jama/article-abstract/2665774

Se sei interessato a collaborare su un progetto o vuoi connetterti, non esitare a contattarmi su LinkedIn o a scrivermi un messaggio a [email protected].

Grazie a Niti Jain per il suo contributo a questo articolo.