Anno Accademico 2011-2012                  UNIVERSITÀ DEGLI STUDI DI TRIESTE                       FACOLTÀ DI INGEGNERIA  ...
Sommario        2                                                 Ai miei amici,                           a tutti coloro ...
Sommario                  3SommarioSOMMARIO .................................................................................
Sommario                  4        4.2.3.       Classificatore non lineare ..................................................
Sommario                  5     6.5.         LIBRERIE .......................................................................
Sommario                 6        A.7.3 CUDA ................................................................................
Indice delle figure                    7Indice delle figureFIGURA 1 IMMAGINE CAMPIONE DI MICROSCOPIA A FLUORESCENZA .........
Indice delle figure                    8FIGURA 44 OPS PER CLOCK PER LE ISTRUZIONI ESEGUIBILI DA UNO SM ......................
Ringraziamenti     9RingraziamentiUno speciale ringraziamento ad Felice Andrea Pellegrino e Walter Vanzella che mi hannoco...
Introduzione       10   1. Introduzione   1.1.    Obbiettivi del progettoIl progetto di questa tesi è stato sviluppato pre...
Introduzione       11       dell’algoritmo in addestramento/classificazione. Successivamente si descrive       l’approccio...
Introduzione     12fosforescenza. D’ora in poi si considera soltanto il caso in cui si vogliono evidenziare i nucleicellul...
Introduzione   13                          Figura 2 Classificazione manuale da parte di un esperto                   Figur...
Regioni d’interesse      14   2. Regioni d’interesse   2.1.    IntroduzioneL’estrazione delle regioni d’interesse presenti...
Regioni d’interesse   15                                  Figura 5 Rappresentazione a colorisi ottiene                    ...
Regioni d’interesse      16                                      Figura 7 Immagine flattedDa questa si nota in dettaglio l...
Regioni d’interesse   17             Figura 8 Normalizzazione che sfrutta la mediana su immagine con luminosità uniformeCo...
Regioni d’interesse      18    2.3.    Estrazione dei punti d’interesseDopo aver normalizzato l’immagine e aver eliminato ...
Regioni d’interesse   19                      Figura 9 Funzione gaussiana monodimensionale con media nullaNel caso bidimen...
Regioni d’interesse     20                          Figura 10 Funzione gaussiana bidimensionale centrataTornando al filtro...
Regioni d’interesse   21dove < sono rispettivamente le deviazioni standard della prima e seconda gaussiana.La DOG quindi c...
Regioni d’interesse      22                                 Figura 12 Ricerca dei massimi localiSi può notare che in quest...
Regioni d’interesse       23      Gli effetti della luminosità non uniforme sono stati eliminati durante la       normali...
Regioni d’interesse     24invece per la classeLa media cumulativa di livello k è pari amentre la media sull’immagine èPer ...
Regioni d’interesse   25conservativo e quindi di considerare più blob. Questa procedura sfrutta il metodo di Otsuper calco...
Regioni d’interesse   26                         Figura 14 Sogliatura di Otsu e di Ridler Calvard su DOGDa sopra si nota c...
Regioni d’interesse      27       Nel caso in cui le regioni indesiderate non fossero scartate dopo l’estrazione delle   ...
Regioni d’interesse   28             Figura 15 Correzione nella generazione dei punti d’interesse in condizioni non ottima...
Regioni d’interesse      29   5) Si riparte dal passo uno fino a esaurire tutte le coppie di deviazioni standard a      di...
Regioni d’interesse   30applicare la procedura watershed (descritta successivamente) e l’impostazione dei pixel azero in c...
Regioni d’interesse   31        Figura 18 Bacini watershedFigura 19 Blob generati dai bacini watershed
Regioni d’interesse   32                          Figura 20 Blob che contengono un punto d’interesseL’utente deve impostar...
Regioni d’interesse   33Dove            è la matrice che deve essere moltiplicata elemento per elemento con i pixeldella R...
Feature      34   3. Feature   3.1.    IntroduzioneDopo aver descritto come si estraggono le regioni d’interesse, ora è ne...
Feature      35      Ruotare i vettori di supporto della SVM;      Rendere direttamente le ROI invarianti per rotazione....
Feature      36dove          sono le coordinate del centro della ROI e quindi anche delle matrici            e        . Sf...
Feature      37La condizione di sopra garantisce che tutte le ROI abbiano orientazione zero; calcolando lefeature sulle RO...
Feature      38dove rappresenta la quantizzazione del livello d’intensità                         e      è ilpixel conside...
Feature      39dove rappresenta il numero totale dei pixel nella finestra di misura e   il numero dioccorrenze per       =...
Feature      40Le funzioni di Zernike sono calcolate come il prodotto tra i polinomi di Zernike e le funzionitrigonometric...
Feature   41I coefficienti     (detti momenti di Zernike) possono essere calcolati dall’inversionedell’equazione precedent...
Feature      42elaborazione richiesto è eccessivo dato che ci sono tantissime feature da calcolare(quattrocentonovantasei)...
Feature      43Per                           , dove è l’angolo di rotazione e il fattore di scala rispetto a , si ha che i...
Feature       44tipicamente si procede in modo empirico. Di seguito si descrivono le due approssimazionipossibili consider...
Feature      45conLa seconda approssimazione possibile consiste nel cambiare la variabile d’integrazione da r aq = ln(r), ...
Feature      46La trasformata inversa                                       è data da   3.6.    Trasformata DCTLa trasform...
Feature   47                                     Figura 27 Energia della DCTSi riporta un esempio di ricostruzione della R...
Macchina a vettori di supporto       48   4. Macchina a vettori di supporto   4.1.    IntroduzioneDopo aver rappresentato ...
Macchina a vettori di supporto       49che dopo l’addestramento sono in grado di generalizzare. Una SVM è un classificator...
Macchina a vettori di supporto   50La teoria della convergenza uniforme in probabilità sviluppata da Vapnik e Chervonenkis...
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza
Upcoming SlideShare
Loading in …5
×

Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza

624 views
529 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
624
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Valutazione di descrittori per il rilevamento automatico di nuclei cellulari in immagini di microscopia a fluorescenza

  1. 1. Anno Accademico 2011-2012 UNIVERSITÀ DEGLI STUDI DI TRIESTE FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA Tesi di laurea "VALUTAZIONE DI DESCRITTORI PER IL RILEVAMENTO AUTOMATICO DI NUCLEI CELLULARI IN IMMAGINI DI MICROSCOPIA A FLUORESCENZA"Laureando: Relatore:Paolo Fabris Felice Andrea Pellegrino Correlatore: Walter Vanzella
  2. 2. Sommario 2 Ai miei amici, a tutti coloro che mi vogliono benea tutti quelli che mi hanno supportato per tutto questo tempo ai miei carissimi genitori che mi sono sempre stati vicino
  3. 3. Sommario 3SommarioSOMMARIO ..................................................................................................................................................... 3INDICE DELLE FIGURE ....................................................................................................................................... 7RINGRAZIAMENTI ............................................................................................................................................ 91. INTRODUZIONE .................................................................................................................................... 10 1.1. OBBIETTIVI DEL PROGETTO ....................................................................................................................... 10 1.2. L’ALGORITMO ........................................................................................................................................ 11 1.3. MICROSCOPIA A FLUORESCENZA ................................................................................................................ 112. REGIONI D’INTERESSE ........................................................................................................................... 14 2.1. INTRODUZIONE....................................................................................................................................... 14 2.2. NORMALIZZAZIONE DELLE IMMAGINI .......................................................................................................... 14 2.3. ESTRAZIONE DEI PUNTI D’INTERESSE ........................................................................................................... 18 2.4. RICERCA DEI PARAMETRI PER IL FILTRO DOG ................................................................................................ 28 2.5. ESTRAZIONE DELLE REGIONI D’INTERESSE ..................................................................................................... 29 2.6. ASSEGNAZIONE DELLE ROI ALLA CLASSE DI APPARTENENZA ............................................................................. 333. FEATURE ............................................................................................................................................... 34 3.1. INTRODUZIONE....................................................................................................................................... 34 3.2. PROPRIETÀ DELLE FEATURE ....................................................................................................................... 34 3.3. SHAPEINTENSITY..................................................................................................................................... 37 3.4. ZERNIKE ................................................................................................................................................ 39 3.5. TRASFORMATA DI FOURIER-MELLIN, AFMT, DAFMT E FAFMT .................................................................... 42 3.6. TRASFORMATA DCT................................................................................................................................ 464. MACCHINA A VETTORI DI SUPPORTO ................................................................................................... 48 4.1. INTRODUZIONE....................................................................................................................................... 48 4.2. LA MACCHINA ........................................................................................................................................ 48 4.2.1. Classificatore lineare su dati linearmente separabili .................................................................... 50 4.2.2. Classificatore lineare su dati non linearmente separabili ............................................................. 53
  4. 4. Sommario 4 4.2.3. Classificatore non lineare .............................................................................................................. 54 4.2.4. Cross-validation ............................................................................................................................ 555. RECEIVER OPERATING CHARACTERISTIC ............................................................................................... 57 5.1. INTRODUZIONE....................................................................................................................................... 57 5.2. SPAZIO ROC.......................................................................................................................................... 57 5.3. GENERAZIONE EFFICIENTE DEI PUNTI DI UNA CURVA ROC ............................................................................... 60 5.4. AUC .................................................................................................................................................... 626. NVIDIA CUDA, ARCHITETTURA E MODELLO DI PROGRAMMAZIONE ..................................................... 63 6.1. INTRODUZIONE....................................................................................................................................... 63 6.2. GPU COME COMPUTER PARALLELO ............................................................................................................ 65 6.3. ARCHITETTURA NVIDIA FERMI GF110 ...................................................................................................... 69 6.3.1. Host Interface ............................................................................................................................... 70 6.3.2. Memory Controller ........................................................................................................................ 70 6.3.3. Gerarchia memoria ....................................................................................................................... 71 6.3.4. GDDR5........................................................................................................................................... 72 6.3.5. GigaThread Engine ........................................................................................................................ 72 6.3.6. Streaming Multiprocessor ............................................................................................................. 73 6.3.7. Instruction cache ........................................................................................................................... 74 6.3.8. Dual warp scheduler e dispatch unit ............................................................................................. 74 6.3.9. Register file ................................................................................................................................... 76 6.3.10. LD/ST ........................................................................................................................................ 76 6.3.11. SFU ........................................................................................................................................... 76 6.3.12. Texture Unit ............................................................................................................................. 76 6.3.13. CUDA Core ................................................................................................................................ 77 6.4. INTERFACCIA CUDA................................................................................................................................ 79 6.4.1. Architettura................................................................................................................................... 79 6.4.2. SIMT .............................................................................................................................................. 82 6.4.3. Organizzazione thread .................................................................................................................. 82 6.4.4. Organizzazione della memoria ..................................................................................................... 84
  5. 5. Sommario 5 6.5. LIBRERIE ............................................................................................................................................... 85 6.6. VELOCITÀ DI ELABORAZIONE...................................................................................................................... 867. BENCHMARK ........................................................................................................................................ 87 7.1. INTRODUZIONE....................................................................................................................................... 87 7.2. HARDWARE E SOFTWARE IMPIEGATI ........................................................................................................... 88 7.3. VALUTAZIONE DELLE CLASSIFICAZIONI MANUALI EFFETTUATE DAGLI ESPERTI........................................................ 90 7.4. VALUTAZIONE DEI PARAMETRI DELLA DOG .................................................................................................. 91 7.5. VALUTAZIONE DELLE PRESTAZIONI IN FASE DI ADDESTRAMENTO ....................................................................... 92 7.6. VALUTAZIONE DELLE PRESTAZIONI IN CLASSIFICAZIONE ................................................................................... 98 7.7. VALUTAZIONE DELLA VELOCITÀ DI ELABORAZIONE .......................................................................................... 998. CONCLUSIONI ..................................................................................................................................... 101BIBLIOGRAFIA .............................................................................................................................................. 104APPENDICE A ............................................................................................................................................... 105 A.1. DIRECTX 11 SU HARDWARE DIRECTX 10 E DIRECTX 9.0C .................................................................................... 105 A.1. SHADER MODEL 5 ........................................................................................................................................ 105 A.2. VERTEX E INDEX BUFFER ................................................................................................................................ 106 A.3. PRIMITIVE .................................................................................................................................................. 106 A.4. INPUT ASSEMBLER ........................................................................................................................................ 108 A.4. RASTERIZATION ........................................................................................................................................... 108 A.5. PIPELINE GRAFICA DIRECTX 11 ....................................................................................................................... 108 A.5.1. Architettura shader model unificata ............................................................................................... 108 A.5.2. Tessellation ..................................................................................................................................... 109 A.5.3. Schema logico della pipeline grafica DirectX 11 ............................................................................. 112 A.6. SPAZI IN UNA SCENA 3D ................................................................................................................................ 115 A.6.1. OBJECT E WORLD SPACE ............................................................................................................................. 115 A.6.2. VIEW E CLIP SPACE .................................................................................................................................... 116 A.6.3. SCREEN SPACE E HSR ................................................................................................................................ 117 A.7. NVIDIA APPROFONDIMENTI .......................................................................................................................... 118 A.7.1. ROP ................................................................................................................................................. 118 A.7.2. Tessellation ..................................................................................................................................... 118
  6. 6. Sommario 6 A.7.3 CUDA ................................................................................................................................................ 119APPENDICE B ............................................................................................................................................... 121 B.1. SVILUPPARE MEX IN VISUAL STUDIO 2010 PROFESSIONAL ................................................................................... 121 B.2. SVILUPPARE CUDA KERNEL IN VISUAL STUDIO 2010 PROFESSIONAL..................................................................... 121APPENDICE C ............................................................................................................................................... 122 C.1. LIBSVM ...................................................................................................................................................... 122
  7. 7. Indice delle figure 7Indice delle figureFIGURA 1 IMMAGINE CAMPIONE DI MICROSCOPIA A FLUORESCENZA .................................................................................... 12FIGURA 2 CLASSIFICAZIONE MANUALE DA PARTE DI UN ESPERTO ......................................................................................... 13FIGURA 3 ZOOM IN UNA REGIONE CLASSIFICATA MANUALMENTE DA UN ESPERTO ................................................................... 13FIGURA 4 IMMAGINE NORMALIZZATA ............................................................................................................................ 14FIGURA 5 RAPPRESENTAZIONE A COLORI ........................................................................................................................ 15FIGURA 6 VARIAZIONE DI LUMINOSITÀ A COLORI .............................................................................................................. 15FIGURA 7 IMMAGINE FLATTED...................................................................................................................................... 16FIGURA 8 NORMALIZZAZIONE CHE SFRUTTA LA MEDIANA SU IMMAGINE CON LUMINOSITÀ UNIFORME ........................................ 17FIGURA 9 FUNZIONE GAUSSIANA MONODIMENSIONALE CON MEDIA NULLA ........................................................................... 19FIGURA 10 FUNZIONE GAUSSIANA BIDIMENSIONALE CENTRATA .......................................................................................... 20FIGURA 11 FILTRAGGIO DOG ...................................................................................................................................... 21FIGURA 12 RICERCA DEI MASSIMI LOCALI ....................................................................................................................... 22FIGURA 13 SOGLIATURA DI OTSU E RIDLER CALVARD........................................................................................................ 25FIGURA 14 SOGLIATURA DI OTSU E DI RIDLER CALVARD SU DOG........................................................................................ 26FIGURA 15 CORREZIONE NELLA GENERAZIONE DEI PUNTI D’INTERESSE IN CONDIZIONI NON OTTIMALI ......................................... 28FIGURA 16 IMMAGINE BINARIA DALLA DOG ................................................................................................................... 29FIGURA 17 FILTRAGGIO DOG AL NEGATIVO CON IMPOSTAZIONE DEI PUNTI DINTERESSE A ZERO ............................................... 30FIGURA 18 BACINI WATERSHED .................................................................................................................................... 31FIGURA 19 BLOB GENERATI DAI BACINI WATERSHED ......................................................................................................... 31FIGURA 20 BLOB CHE CONTENGONO UN PUNTO D’INTERESSE ............................................................................................. 32FIGURA 21 ESTRAZIONE ROI CON TRASLAZIONE DEL CENTRO DI MASSA ................................................................................ 32FIGURA 22 FILTRAGGIO DELLA ROI CON FUNZIONE SIGMOIDALE ......................................................................................... 33FIGURA 23 PIANO CARTESIANO .................................................................................................................................... 36FIGURA 25 RICOSTRUZIONI DELLA ROI CON DIVERSI GRADI PER ZERNIKE .............................................................................. 41FIGURA 26 CAMPIONAMENTO CON COORDINATE POLARI .................................................................................................. 44FIGURA 27 CAMPIONAMENTO CON COORDINATE LOG-POLAR............................................................................................. 45FIGURA 28 ENERGIA DELLA DCT .................................................................................................................................. 47FIGURA 29 RICOSTRUZIONE DI UNA ROI DAI COEFFICIENTI DCT ......................................................................................... 47FIGURA 30 CLASSIFICATORE LINEARE ............................................................................................................................. 50FIGURA 31 DIFFERENZA FRA MARGINI SVM ................................................................................................................... 51FIGURA 32 DATI NON LINEARMENTE SEPARABILI .............................................................................................................. 53FIGURA 33 SPAIO D’INPUT E DELLE FEATURE ................................................................................................................... 54FIGURA 34 CUT-OFF .................................................................................................................................................. 58FIGURA 35 GENERAZIONE ROC ................................................................................................................................... 61FIGURA 36 GPU VS CPU FLOATING-POINT..................................................................................................................... 66FIGURA 37 GPU VS CPU BANDA DI MEMORIA ................................................................................................................ 67FIGURA 38 ARCHITETTURA GF110 ............................................................................................................................... 69FIGURA 39 GERARCHIA MEMORIA ................................................................................................................................ 71FIGURA 40 CACHE L2 UNIFICATA .................................................................................................................................. 72FIGURA 41 STREAMING PROCESSOR.............................................................................................................................. 73FIGURA 42 ESECUZIONE KERNEL SU G80/GT200 E GF110 .............................................................................................. 74FIGURA 43 GESTIONE THREAD NELLE ARCHITETTURE CUDA............................................................................................... 75
  8. 8. Indice delle figure 8FIGURA 44 OPS PER CLOCK PER LE ISTRUZIONI ESEGUIBILI DA UNO SM ................................................................................. 75FIGURA 45 DISTRIBUZIONE DELLE ISTRUZIONI ALLINTERNO DI UNO SM................................................................................ 76FIGURA 46 CUDA CORE ............................................................................................................................................. 77FIGURA 47 FMA VS MAD .......................................................................................................................................... 78FIGURA 48 ARCHITETTURA MODELLO DI PROGRAMMAZIONE CUDA.................................................................................... 79FIGURA 49 CAPACITÀ DI CALCOLO CUDA....................................................................................................................... 81FIGURA 50 COMPUTE CAPABILITY FEATURE CUDA........................................................................................................... 81FIGURA 51 BLOCCHI DI THREAD .................................................................................................................................... 83FIGURA 52 GERARCHIA MEMORIA ................................................................................................................................ 84FIGURA 53 CALIBRATURA DOG ................................................................................................................................... 92FIGURA 54 PERCENTUALE DI REGIONI DINTERESSE SCARTATE NELLA FASE DI ADDESTRAMENTO DELLA MACCHINA A VETTORI DI SUPPORTO ....................................................................................................................................................... 93FIGURA 55 NUMERO DI COEFFICIENTI SELEZIONATI PER LA DCT .......................................................................................... 93FIGURA 56 KERNEL POLINOMIALE ................................................................................................................................. 94FIGURA 57 CURVA ROC KERNEL POLINOMIALE CON SHAPEINTENSITY .................................................................................. 95FIGURA 58 KERNEL RBF ............................................................................................................................................. 95FIGURA 59 CURVA ROC PER KERNEL RBF CON FEATURE FAFMT ....................................................................................... 96FIGURA 60 KERNEL SIGMOIDALE ................................................................................................................................... 97FIGURA 61 CURVA ROC PER KERNEL SIGMOIDALE CON SHAPEINTENSITY .............................................................................. 97FIGURA 62 MIGLIORI FEATURE E KERNEL ........................................................................................................................ 98FIGURA 63 VALUTAZIONE DEL CONTEGGIO ..................................................................................................................... 98FIGURA 64 INCREMENTO PRESTAZIONALE SU GPU......................................................................................................... 100FIGURA 65 QUADRATO INDICIZZATO ........................................................................................................................... 106FIGURA 66 VERTEX INDEX BUFFER .............................................................................................................................. 106FIGURA 67 PRIMITIVE .............................................................................................................................................. 107FIGURA 68 PRIMITIVA PATCH ..................................................................................................................................... 107FIGURA 69 PIPELINE GRAFICA DIRECTX 9.0C ................................................................................................................ 108FIGURA 70 WORKLOAD DEGLI SHADER DEDICATI............................................................................................................ 108FIGURA 71 PIPELINE GRAFICA DIRECTX 10 ................................................................................................................... 109FIGURA 72 PATCH PER LA TESSELLATOR UNIT ................................................................................................................ 110FIGURA 73 TESSELLATION REGOLARE ........................................................................................................................... 111FIGURA 74 TESSELLATION SEMI-REGOLARE ................................................................................................................... 111FIGURA 75 FIGURA INIZIALE PER LEDGE FACTOR DELLA TESSELLATION ................................................................................ 111FIGURA 76 RISULTATO DELLEDGE FACTOR PER LA TESSELLATION ....................................................................................... 111FIGURA 77 PIPELINE GRAFICA DIRECTX 11 ................................................................................................................... 112FIGURA 78 SCHEMA A BLOCCHI INPUT ASSEMBLER, VERTEX SHADER, HULL SHADER, TESSELLATOR ......................................... 113FIGURA 79 SECONDO PARTE DELLA PIPELINE GPU CON TESSELLATOR................................................................................. 114FIGURA 80 SPAZI IN UNA SCENA 3D ............................................................................................................................ 115FIGURA 81 COORDINATE NEL WORLD SPACE................................................................................................................. 116FIGURA 82 VIEW FRUSTRUM ..................................................................................................................................... 116FIGURA 83 PROIEZIONE DEGLI OGGETTI DAL CLIPPING SPACE AL CUBO ................................................................................ 117FIGURA 84 POLYMORPH ENGINE ............................................................................................................................... 118FIGURA 85 RASTER ENGINE ....................................................................................................................................... 119
  9. 9. Ringraziamenti 9RingraziamentiUno speciale ringraziamento ad Felice Andrea Pellegrino e Walter Vanzella che mi hannoconsigliato e guidato durante il periodo di tirocinio e tesi presso la Glance VisionTechnologies Srl; mi hanno fatto apprezzare il ramo informatico dedicato all’imageprocessing.Un grande grazie a Jack.Ultimo, ma non per questo meno importante, un sentito ringraziamento agli amici e aiparenti che mi hanno dato sostegno quando ne ho avuto bisogno.
  10. 10. Introduzione 10 1. Introduzione 1.1. Obbiettivi del progettoIl progetto di questa tesi è stato sviluppato presso la Glance Vision Technologies Srlhttp://www.gvt.it/; questo lavoro deriva dall’osservazione che presso la SISSA (ScuolaInternazionale Superiore Di Studi Avanzati di Trieste) gli esperti di classificazione cellularesvolgevano in modo manuale la ricerca dei nuclei di neuroni in immagini di microscopia afluorescenza. L’obbiettivo che ci si prefigge è quello di automatizzare tale analisi conconseguente raggiungimento dei seguenti benefici:  Riduzione del tempo richiesto per portare a termine le indagini;  L’esperto può concentrarsi esclusivamente sull’analisi dei risultati forniti dall’algoritmo senza dover selezionare manualmente le regioni d’interesse valide (i set d’immagini possono avere da 500 a 5000 regioni d’interesse valide);  L’algoritmo genera automaticamente le regioni d’interesse classificate che possono essere usate successivamente per eseguire altre analisi (tipicamente in ambito statistico);  Oggettività dei criteri e la conseguente ripetibilità dei risultati che non dipende da chi svolge l’analisi.Tutte le immagini da esaminare sono ottenute tramite la microscopia a fluorescenza cheriveste un ruolo fondamentale nell’analisi di culture cellulari. Infatti, è in grado di mettere inrisalto aspetti salienti delle cellule come la localizzazione di DNA, RNA, mitocondri e nuclei.Le analisi di questo tipo d’immagini sono fondamentali per studiare patologie, verificarel’evoluzione nel tempo di una malattia, analisi statistiche sulla popolazione cellulare ecc.La strategia di fondo seguita nell’algoritmo è:  Eseguire un’analisi preliminare delle immagini per eliminare l’illuminazione non uniforme;  Individuare le regioni d’interesse (ROI);  Rappresentare ogni ROI con opportuni descrittori (detti feature);  Usare un algoritmo d’apprendimento per affrontare il problema di addestramento/classificazione delle ROI (rappresentate dalle corrispondenti feature).Nei seguenti capitoli si affrontano diverse tematiche che riguardano la classificazione binariadelle ROI, in particolare:  Nel secondo capitolo si descrive la procedura seguita per rendere le immagini più robuste alla luminosità non uniforme la quale può compromettere le prestazioni
  11. 11. Introduzione 11 dell’algoritmo in addestramento/classificazione. Successivamente si descrive l’approccio seguito per l’estrazione delle regioni d’interesse;  Il terzo è dedicato alla rappresentazione delle ROI tramite opportuni descrittori detti feature e si descrivono le tecniche per garantire l’invarianza per rotazione, invarianza per traslazione e varianza per scala;  Il quarto descrive l’algoritmo d’apprendimento ossia la macchina a vettori di supporto;  Nel quinto capitolo si presenta la descrizione delle curve ROC (Receiver Operating Characteristic) per la caratterizzazione statistica dei risultati in classificazione binaria. La scelta dei parametri dell’algoritmo e la valutazione delle prestazioni del medesimo sono effettuate in base all’analisi delle curve ROC;  Il sesto tratta l’architettura NVIDIA CUDA impiegata per accelerare alcune elaborazioni su GPU;  Il settimo presenta i risultati ottenuti;  L’ottavo riguarda le conclusioni;  Infine, l’appendice A descrive argomenti supplementari riguardanti l’elaborazione su GPU, B illustra quali sono i passi da seguire per sviluppare in Visual Studio 2010 le mex e i CUDA Kernel, C descrive i parametri della libreria libsvm. 1.2. L’algoritmoPer sviluppare l’algoritmo si è scelto di usare l’ambiente MATLAB dato che mette adisposizione una serie di strumenti che semplificano l’implementazione e quindi riducono iltempo di sviluppo; il linguaggio MATLAB è interpretato e questo comporta lo svantaggio chela velocità di elaborazione non è elevata. Per superare parzialmente questo inconveniente,che influenza notevolmente il tempo totale di elaborazione, si è deciso di riscrivere unaparte della macchina a vettori di supporto con OpenMP in C/C++ (accelera l’elaborazione suCPU multicore) e una parte degli script MATLAB in CUDA C sfruttando la programmazioneibrida (CPU/GPU). E’ importante osservare che il wrapping fatto tramite le mex per eseguirel’elaborazione in CUDA introduce overhead non eliminabile; in particolare la velocità ditrasferimento dei dati tra CPU e GPU è dimezzata rispetto a quanto sarebbe stato possibileottenere dato che le variabili nello spazio di lavoro MATLAB non sono memorizzate nellapinned memory. Le mex sono funzioni richiamabile dall’ambiente MATLAB sviluppate inlinguaggio C/C++.L’intero algoritmo è strutturato in modo che l’utente debba inserire solo un numero ridottodi parametri. 1.3. Microscopia a fluorescenzaL’intero lavoro si basa sull’elaborazione d’immagini di microscopia a fluorescenza; questesono ottenute impiegando un microscopio a fluorescenza tipicamente usato nei laboratoridi biologia per analizzare campioni organici sfruttando i fenomeni della fluorescenza e
  12. 12. Introduzione 12fosforescenza. D’ora in poi si considera soltanto il caso in cui si vogliono evidenziare i nucleicellulari di neuroni che è la situazione trattata in questo progetto.Le procedure per ottenere le immagini consistono nel marcare i campioni d’interesse conmolecole fluorescenti, ossia il fluorocromo, e successivamente il tutto è illuminato con unfascio di luce a una specifica lunghezza d’onda; il fascio luminoso è assorbito dalfluorocromo che provoca l’emissione di luce a lunghezza d’onda maggiore e questopermette di generare un colore diverso da quello della luce assorbita. Tramite un filtro siseparano i due tipi di luce e si considera soltanto quella generata dal fluorocromo; una tipicaimmagine ottenuta con questa tecnica è riportata di seguito. Figura 1 Immagine campione di microscopia a fluorescenzaSu immagini come quella di sopra, gli esperti di classificazione eseguono delle analisi perseparare i nuclei delle cellule da altri corpi estranei; di seguito si riporta una tipicaclassificazione manuale.
  13. 13. Introduzione 13 Figura 2 Classificazione manuale da parte di un esperto Figura 3 Zoom in una regione classificata manualmente da un espertoI punti d’interesse inseriti dall’esperto marcano le regioni d’interesse valide, le ROI nonsegnate sono da considerarsi come non valide.
  14. 14. Regioni d’interesse 14 2. Regioni d’interesse 2.1. IntroduzioneL’estrazione delle regioni d’interesse presenti in un’immagine è il primo problema daaffrontare; le regioni d’interesse (ROI) sono porzioni rilevanti dell’immagine che possonocontenere i nuclei cellulari da identificare. Lo scopo è di generare una ROI per ogni oggettoche può rappresentare un nucleo cellulare. 2.2. Normalizzazione delle immaginiPrima di poter elaborare un’immagine di microscopia a fluorescenza è necessario eseguireuna normalizzazione della stessa per renderla visibile a un operatore umano e al tempostesso ridurre l’influenza della variazione di luminosità che può compromettere l’estrazionedelle regioni d’interesse.La luminosità non uniforme ha i seguenti effetti indesiderati:  C’è la possibilità che una porzione dello sfondo sia estratta come ROI quando in realtà questa non dà alcun contributo informativo per individuare i nuclei delle cellule;  Compromette la reale distribuzione dell’intensità del potenziale nucleo.Il primo passo quindi consiste nell’eseguire la normalizzazione dell’immagine da elaboraretra zero e uno. Il risultato è riportato in figura. Figura 4 Immagine normalizzataDall’immagine in tonalità di grigio non si riesce ad apprezzare completamente la variazionedi luminosità; se si usa una rappresentazione in cui l’intensità segue il seguente schema dicolori (dove l’intensità più bassa è posta a sinistra e quella più alta a destra)
  15. 15. Regioni d’interesse 15 Figura 5 Rappresentazione a colorisi ottiene Figura 6 Variazione di luminosità a coloriDa questa è possibile notare che la luminosità non è uniforme nell’immagine ed ha latendenza a essere più intensa nell’angolo in basso a destra. Per rendere l’immagine aluminosità uniforme si dovrebbe avere a disposizione un’immagine con solo sfondo(ottenuta nelle stesse condizioni di quella da analizzare) e combinarla con quella avente lecellule tramite la seguente formuladove è l’immagine con le cellule, è l’immagine con solo sfondo (chiamataanche immagine flatted) e è l’immagine con luminosità uniforme. Il problema è che non è disponibile direttamente e quindi è necessario ricavarla dall’immagine inizialeestraendo solo lo sfondo; per fare questo si è deciso di sfruttare un filtro che fa la mediadato che è semplice da implementare e se la finestra di applicazione del filtro non è troppoampia si eseguono i calcoli velocemente. Si è scelta come dimensione della finestra difiltraggio una abbastanza ampia da cancellare le cellule dall’immagine e allo stesso tempoabbastanza ridotta da fare i calcoli velocemente; il risultato dell’estrazione dell’immagine da nell’esempio considerato è
  16. 16. Regioni d’interesse 16 Figura 7 Immagine flattedDa questa si nota in dettaglio la distribuzione della luminosità. Da osservare che primadell’applicazione del filtro si applica del padding verticale e orizzontale in modo da evitare inprossimità dei bordi dell’immagine che la media sia fatta con dei pixel zero (che stanno fuoridai bordi); successivamente si esegue un ritaglio in modo da estrarre la parte senza padding.A questo punto si ha a disposizione un’immagine con distribuzione uniforme dellaluminosità; si può inoltre notare che in tutte le immagini a disposizione, il 50% + 1 dei pixel èsfondo, quindi è possibile sfruttare la mediana per cancellare quasi completamente ilrumore presente sullo sfondo con le seguenti operazioni eseguite in sequenza:dove è la mediana di e è l’immagine normalizzata a luminositàuniforme dopo la sottrazione con la mediana.Il risultato finale è riportato di seguito, da cui si può notare che l’effetto della luminosità èstato completamente cancellato.
  17. 17. Regioni d’interesse 17 Figura 8 Normalizzazione che sfrutta la mediana su immagine con luminosità uniformeCon questa procedura si ha che le immagini sono sempre rappresentate tra zero e uno e ipixel risentono meno l’influenza della luminosità non uniforme che può essere diversa tra leimmagini; in questo modo le ROI e quindi le feature possono essere calcolate in condizionipressoché identiche tra un’immagine e l’altra.Altra osservazione da fare è che nelle immagini spesso si presenta la situazione in cui alcuniblob, gli agglomerati di pixel che formano un oggetto da analizzare, sono a contatto con ibordi dell’immagine e risultano “tagliati”; per evitare di compromettere il comportamentodell’algoritmo d’apprendimento si è deciso di non considerare i blob vicini ai bordi, il che èanche una strategia tipica utilizzata nella classificazione manuale delle cellule.
  18. 18. Regioni d’interesse 18 2.3. Estrazione dei punti d’interesseDopo aver normalizzato l’immagine e aver eliminato gli effetti della luminosità non uniformeè necessario procedere all’individuazione delle regioni d’interesse; si può notare che glioggetti presenti nelle immagini sono per lo più ovali e tipicamente l’intensità è concentrataal centro dei medesimi, per questo motivo si è fatta la scelta di sfruttare una tecnica basatasul Laplaciano per individuare i punti in cui si hanno le maggiori variazioni d’intensità. Danotare che in questo modo, oltre a mettere in risalto i centri dei potenziali nuclei, simettono in risalto anche i bordi degli oggetti che devono essere cancellati. Una volta che ipunti d’interesse sono a disposizione, l’algoritmo li sfrutta come seme per costruire leregioni d’interesse.Di solito nell’ambito dell’image processing, per applicare il Laplaciano a un’immagine, si usauna delle due seguenti tecniche:  LOG (Laplacian of Gaussian);  DOG (Difference of Gaussian).La tecnica impiegata per applicare il laplaciano in questo lavoro si basa sulla DOG dato chedal punto di vista computazionale è più veloce e semplice da implementare rispetto alla LOGdi cui è una buona approssimazione. Come si vedrà successivamente, entrambe le tecnicherichiedono l’uso di filtri gaussiani; prima di procedere con la trattazione è necessariodescrivere quest’ultimo filtro.Un filtro gaussiano monodimensionale con deviazione standard e media nulla si ottienedalla seguente funzioneSiccome questa non si annulla con in , il supporto del filtro è teoricamenteinfinito. Però per valori di fuori da , la funzione può essere considerata nulladato che il 99.7% dell’area sottesa della gaussiana risiede nell’intervallo suddetto.Di seguito si riporta il profilo del filtro con .
  19. 19. Regioni d’interesse 19 Figura 9 Funzione gaussiana monodimensionale con media nullaNel caso bidimensionale si ha che il kernel del filtro con deviazione standard èdove e rappresentano le coordinate; come nel caso precedente si ha che il 99.7% delcontributo è dato per e nell’intervallo . La finestra del kernel gaussianobidimensionale può quindi essere approssimata tramite una finestra quadrata di dimensioni x ; questo filtro è di tipo passa basso. Di seguito si rappresenta la distribuzione nello spazio con e media nulla:
  20. 20. Regioni d’interesse 20 Figura 10 Funzione gaussiana bidimensionale centrataTornando al filtro LOG si ha chedove con s’indica la funzione che rappresenta un’immagine continua, il laplacianoe il risultato del filtraggio che si può calcolare tramite la convoluzione; poichél’immagine è rappresentata da un insieme discreto di pixel, è necessario individuare unkernel che approssimi la derivata seconda nella definizione del laplaciano. Due tipici kernel approssimati sono riportati di seguito (il primo per intorni 4-connessi e il secondo per 8-connessi):L’inconveniente nell’usare la convoluzione dell’immagine con uno di questi due filtriapprossimati consiste nel fatto che sono molto sensibili al rumore (alte frequenze); perattenuarlo, si filtra l’immagine con un filtro gaussiano. L’operazione di convoluzione èassociativa, quindi è possibile costruire prima un filtro ibrido dato dalla combinazione diquello gaussiano con quello laplaciano e successivamente convolvere questo conl’immagine. Tutto ciò porta a due vantaggi:  Siccome i kernel del filtro gaussiano e laplaciano sono molto più piccoli dell’immagine da considerare, questo metodo richiede poche operazioni aritmetiche;  Si può precalcolare il kernel e quindi fare solo la convoluzione durante l’elaborazione.La funzione 2-D LOG centrata nello zero con deviazione standard della gaussiana è data daIl secondo filtro che si presenta sfrutta il kernel della DOG che è dato da
  21. 21. Regioni d’interesse 21dove < sono rispettivamente le deviazioni standard della prima e seconda gaussiana.La DOG quindi consiste nel fare la differenza tra due immagini ottenute dal filtraggiogaussiano delle medesima ma con deviazioni standard differenti; il filtro gaussiano condeviazione standard maggiore ha un effetto di filtraggio più accentuato.I vantaggi del filtraggio DOG su quello di tipo LOG sono:  Semplicità d’implementazione;  Velocità di computazione maggiore (il kernel del filtro gaussiano 2D è separabile, quindi il kernel della DOG può essere calcolato come il contributo di due kernel gaussiani separabili);  Buona approssimazione della LOG con .Per i vantaggi elencati, si è deciso di impiegare il filtro DOG in luogo di LOG.L’algoritmo, una volta a disposizione l’immagine normalizzata con luminosità non uniformecancellata, applica la DOG; a questo punto si passa alla ricerca dei massimi locali. Siriportano il risultato del filtraggio e relativa ricerca dei massimi. Figura 11 Filtraggio DOG
  22. 22. Regioni d’interesse 22 Figura 12 Ricerca dei massimi localiSi può notare che in questo caso ci sono tanti punti d’interesse vicini generati incorrispondenza delle zone poche “stabili”, cioè lì dove ci sono delle continue variazionid’intensità (anche se d’entità molto ridotta) causa rumore residuo. Siccome ci sono dellezone in cui i punti d’interesse sono molto vicini fra loro (le aree nere), queste vanno acompromettere l’estrazione delle ROI (si rischia di generare tantissime ROI vuote causa ilfiltraggio circolare che sarà descritto durante la fase di estrazione delle medesime) oltre chea ridurre di molto la velocità di elaborazione complessiva delle successive fasi. Per evitarequesti effetti indesiderati si può quindi applicare all’immagine filtrata con la DOG unasogliatura globale in modo da cancellare queste zone. Per sogliatura globale s’intendel’individuazione di un valore d’intensità in modo tale che tutti i pixel sotto a questo sianoconsiderati sfondo (e quindi è possibile porli a zero). Esistono diverse tecniche di sogliaturain letteratura, molte delle quali si basano sull’analisi dell’istogramma di un’immagine; ivantaggi principali di questi approcci consistono nella semplicità d’implementazionedell’algoritmo ed efficienza computazionale. Ci sono però degli svantaggi da tenere inconsiderazione che sono dovuti al fatto che il valore di soglia dipende da:  Distanza tra i picchi nell’istogramma;  Rumore nell’immagine;  Dimensione dei blob rispetto allo sfondo;  Luminosità nell’immagine.Da notare che queste dipendenze sono notevolmente ridotte in questa fase di ricerca deimassimi locali, infatti:  Il rumore è ridotto notevolmente grazie all’impiego del filtraggio DOG (che funge da filtro passa banda);
  23. 23. Regioni d’interesse 23  Gli effetti della luminosità non uniforme sono stati eliminati durante la normalizzazione dell’immagine;  Il 50% + 1 dei pixel sono sfondo quindi nell’istogramma è garantito che ci siano due picchi distanti (uno relativo allo sfondo e uno all’intensità delle cellule che in questa fase, dopo il filtraggio con DOG, hanno intensità pressoché identica e uniforme).Da tutto ciò si deduce che la sogliatura globale in questo contesto è un buon approccio perridurre la generazione di punti d’interesse indesiderati.Ci sono molti ricercatori nell’ambito dell’elaborazione digitale d’immagini ad aver propostodiverse procedure per eseguire la sogliatura, una delle più usate prende il nome disogliatura di Otsu.La sogliatura di Otsu si basa sul metodo del discriminante; i pixel dell’immagine sonoassociati a due classi differenti: e ; doverappresenta il livello di sogliatura, valore in tonalità di grigio e il numero di livelli di grigionell’immagine considerata. L’algoritmo valuta le varianze delle due classi e quella totale, lasoglia ottima è scelta massimizzando la varianza inter-classe. Per utilizzare questa tecnica inmodo efficiente è necessario che sia soddisfatta l’ipotesi in cui l’istogramma contiene duemode dominanti; in questo caso il valore di soglia è quello che separa le due mode.Si consideri un’immagine di dimensioni con livelli d’intensità in tonalità di grigio econ il numero totale di pixel di livello i-esimo, allora l’istogramma normalizzato ha comecomponentiSi seleziona una soglia con e si definiscono due classi:  con tutti i pixel d’intensità tra e ;  con tutti i pixel d’intensità tra e .La probabilità di assegnamento di un pixel alla classe è pari amentre per la classeIl valore medio d’intensità dei pixel che appartengono a è
  24. 24. Regioni d’interesse 24invece per la classeLa media cumulativa di livello k è pari amentre la media sull’immagine èPer valutare la bontà della soglia si sfrutta la seguente formuladove rappresenta la varianza globale dei pixel dell’immaginee la varianza inter-classePiù distanti sono le due medie e più la varianza inter-classe è elevata, la soglia è quellache massimizza questa varianza; si haL’inconveniente di questo sogliatura è che ha la tendenza a generare una soglia troppoaggressiva, nel senso che la soglia è in genere troppo alta in questo contesto e ciò comportala cancellazione di pixel che invece potrebbero dare un contributo informativo per lagenerazione di punti d’interesse in prossimità di oggetti che potrebbero essere nucleicellulari. Per risolvere questo inconveniente è possibile usare un’altra sogliatura globaleossia quella proposta da Ridler e Calvard che permette di calcolare un valore di soglia più
  25. 25. Regioni d’interesse 25conservativo e quindi di considerare più blob. Questa procedura sfrutta il metodo di Otsuper calcolare una soglia iniziale e successivamente in modo iterativo individua la mediasopra e sotto tale soglia; la nuova soglia è individuata come la media delle due mediecalcolate precedentemente. Il procedimento continua fino a quando la differenza tra lanuova soglia e quella al passo precedente è inferiore a un valore prestabilito.Di seguito si riporta il confronto tra i risultati della ricerca dei massimi locali dopol’applicazione della soglia di Otsu e Ridler Calvard. Figura 13 Sogliatura di Otsu e Ridler Calvard
  26. 26. Regioni d’interesse 26 Figura 14 Sogliatura di Otsu e di Ridler Calvard su DOGDa sopra si nota che conviene sfruttare la procedura di Ridler Calvard che garantisce unasoglia più conservativa rispetto a quella di Otsu e ciò comporta in genere risultati piùaccurati, anche se questo ha l’inconveniente di non cancellare tutte le regioni indesiderateafflitte da rumore. Da notare comunque che le zone affette da rumore non cancellate dopola sogliatura di Ridler Calvard sono in genere molto poche e quindi non compromettono laricerca dei nuclei cellulari infatti:  Molto probabilmente le regioni indesiderate saranno cancellate dall’algoritmo durante la fase di estrazione delle ROI per garantire l’invarianza per rotazione (come sarà chiarito in seguito);
  27. 27. Regioni d’interesse 27  Nel caso in cui le regioni indesiderate non fossero scartate dopo l’estrazione delle ROI, queste sarebbero comunque marcate come non valide durante l’addestramento della macchina a vettori di supporto senza compromettere la ricerca dei nuclei cellulari.Per ottenere i punti d’interesse correttamente è necessario impostare opportunamente iparametri della DOG; questi parametri sono fissi per ogni immagine, quello che puòaccadere è che questi non vanno bene in certe situazioni e si può avere uno dei seguentiscenari:  I punti d’interesse generati sono troppo pochi;  I punti d’interesse generati sono molti e sono troppo vicini fra loro (se sono troppo vicini, allora questo può compromettere l’estrazione delle ROI perché rischiano di essere vuote).Per il primo caso, l’unico modo per risolvere il problema è di impostare altri valori per iparametri della DOG in modo da aumentare il numero di punti d’interesse; questo non èattuabile perché non è possibile sapere a priori quali siano i parametri ottimali senza aver adisposizione la classificazione fatta da un esperto (non si può sfruttare una proceduraautomatizzata). Per il secondo problema si è scelto di usare un algoritmo in grado dilocalizzare le situazioni in cui i punti d’interesse sono troppo vicini; i parametri da impostaresono raggio massimo e minimo che un intorno associato a un punto d’interesse può avere: 1) Si associa a ogni punto d’interesse un intorno il cui raggio è la metà della distanza dal punto d’interesse più vicino, se viene superato il raggio massima allora è impostato a quest’ultimo valore; 2) Per tutti gli intorni con raggio inferiore a quello minimo consentito, si procede come di seguito: a. Si seleziona l’intorno con raggio più piccolo e lo si marca come analizzato; b. I punti d’interesse che distano dal centro dell’intorno selezionato di un valore inferiore al doppio del raggio minimo consentito sono cancellati assieme ai relativi intorni associati; c. Si riparte da a. fino a quando tutti gli intorni sono stati analizzati.Il raggio dell’intorno associato a ogni punto d’interesse è impiegato per rilevare la situazionein cui i seed sono troppo vicini. Da notare che questa situazione indesiderata si verifica dirado; questa procedura è in grado di migliorare un po’ l’estrazione delle ROI nellacondizione suddetta. Ad esempio, forzando l’algoritmo a operare con parametri che siscostano da quelli ottimali (per simulare la situazione descritta sopra), si ottiene (a sinistrasenza l’ottimizzazione e a destra con l’algoritmo descritto):
  28. 28. Regioni d’interesse 28 Figura 15 Correzione nella generazione dei punti d’interesse in condizioni non ottimali 2.4. Ricerca dei parametri per il filtro DOGUno degli aspetti più importanti per usare correttamente la DOG riguarda l’impostazione deiparametri del filtro DOG ossia le deviazioni standard delle due gaussianeun’impostazione errata può compromettere drasticamente l’estrazione delle regionid’interesse. La procedura seguita fa riferimento a com’è stata fatta la classificazionemanuale da parte di un esperto: 1) Imposta una coppia di deviazioni standard da un insieme prestabilito in modo che ; 2) Genera i punti d’interesse per tutte le immagini classificate manualmente dall’esperto; 3) In ogni immagine classificata manualmente dall’esperto ci sono dei marcatori che rappresentano i centri dei nuclei, questi sono usati per costruire un intorno in modo che il diametro massimo sia pari a quello impostato dall’utente (scelto a priori). Nel caso di sovrapposizioni tra intorni si ha che il diametro di questi è pari alla distanza dal centro dell’intorno più vicino (si può osservare che i nuclei sono ovali, quindi risulta ragionevole considerare intorni di forma circolare); 4) Per ogni intorno costruito si verifica quanti punti d’interesse generati dalla DOG sono situati all’interno di questo. Si calcolano tre quantità che saranno usate successivamente per stabilire quali sono i parametri migliori: a. Validi. Numero di marcatori che hanno nell’intorno un solo punto d’interesse generato dalla DOG; b. Sovrannumero. Numero di marcatori che hanno nell’intorno più di un punto d’interesse; c. Sovra raggio. Numero di marcatori che inizialmente avevano un intorno senza punti d’interesse ma aumentando il raggio del doppio c’è almeno un punto d’interesse nell’intorno (è ragionevole procedere in questo modo perché i marcatori inseriti dall’esperto possono essere posizionati anche sui bordi dei nuclei e quindi la distanza tra centro dell’intorno e punto d’interesse può essere maggiore del raggio dell’intorno iniziale);
  29. 29. Regioni d’interesse 29 5) Si riparte dal passo uno fino a esaurire tutte le coppie di deviazioni standard a disposizione.La coppia di deviazioni standard ottima è quella che massimizza la quantità data dallasomma dei marcatori validi con quelli in sovra raggio, questa è un indice che descrivequanto l’algoritmo si “avvicina” nella generazione dei punti d’interesse ai marcatoridell’esperto. Non si prende in considerazione il sovrannumero nella ricerca dei parametrimigliori perché se la DOG generasse molti punti d’interesse, allora ci sarebbero tantimarcatori individuati per sovrannumero (quindi non è un valore discriminante nella sceltadei parametri). 2.5. Estrazione delle regioni d’interesseI punti d’interesse generati servono come seme per la costruzione delle regioni d’interesse(dette ROI, Region of Interest); queste sono tutte quelle porzioni dell’immagine in analisi chepotrebbero contenere uno o più nuclei cellulari. Lo scopo è quindi di creare delle regioni chedescrivono i dettagli degli oggetti senza compromettere il contenuto informativo (bordi,distribuzione d’intensità ecc.).La soluzione proposta si basa sulla segmentazione dell’immagine sfruttando i puntid’interesse generati dalla DOG e successivamente si applica un filtraggio per cancellare glioggetti indesiderati all’interno delle ROI; si è fatta questa scelta perché porta il notevolevantaggio di non compromettere il contenuto informativo e di sfruttare delle tecnicheampiamente usate e testate nell’ambito dell’image processing.Si converte l’immagine filtrata dalla DOG in binario. Figura 16 Immagine binaria dalla DOGOra è necessario calcolare il negativo dell’immagine filtrata mediante la DOG e ogni pixelassociato a un punto d’interesse si pone a valore zero. La conversione al negativo serve per
  30. 30. Regioni d’interesse 30applicare la procedura watershed (descritta successivamente) e l’impostazione dei pixel azero in corrispondenza dei punti d’interesse serve invece a garantire che i blob che sarannogenerati saranno strettamente legati ai punti d’interesse. Figura 17 Filtraggio DOG al negativo con impostazione dei punti dinteresse a zeroA questo punto è possibile applicare la procedura watershed sull’immagine generata dalpasso precedente che è basata sul digital elevation model: i valori di un blocco di dati sonointerpretati come altitudini. Ai minimi locali si associano gli elementi dell’intorno che sonocollegati a essi da un percorso in discesa; s’individuano così i catchment basin separati dalinee chiamate watershed. Si simula il riempimento con acqua dei bacini catchment; lacrescita delle regioni nelle varie direzioni è arrestata quando più bacini si fondono. Per dareuna forma ai blob che seguono il profilo degli oggetti, è necessario moltiplicare il risultatoche si ottiene da questa procedura con l’immagine binaria calcolata in precedenza; a questopunto si procede con l’assegnamento delle etichette ai blob ottenuti, si cancellano i blob inprossimità dei bordi dell’immagine (dato che non devono essere consideratinell’elaborazione) e quelli che non contengono nessun punto d’interesse.Da notare che a ogni punto d’interesse è associato un blob grazie all’impostazione deirelativi pixel a zero nell’immagine al negativo.
  31. 31. Regioni d’interesse 31 Figura 18 Bacini watershedFigura 19 Blob generati dai bacini watershed
  32. 32. Regioni d’interesse 32 Figura 20 Blob che contengono un punto d’interesseL’utente deve impostare come parametro d’ingresso dell’algoritmo il diametro massimo cheuna cellula può avere; questo è usato per estrarre regioni d’interesse quadrate centrate neirelativi punti d’interesse, la ROI ha come lunghezza dei propri lati il diametro impostato. Iblob calcolati in precedenza servono per individuare i relativi centri di massa che sonosfruttati per traslare il blob da analizzare nel centro della ROI. Questo passo serve perrafforzare l’invarianza per traslazione durante il calcolo delle feature che è una dellecondizioni fondamentali da garantire per rappresentare opportunamente una ROI (ildiscorso è ripreso nel capitolo relativo ai descrittori delle ROI). Figura 21 Estrazione ROI con traslazione del centro di massaOra si cancellano eventuali oggetti indesiderati all’interno della ROI che possonocompromettere la fase di addestramento della macchina a vettori di supporto dato che si èinteressati ad analizzare un oggetto per volta; questa situazione si può presentare quando cisono oggetti vicini che hanno blob di diametro inferiore a quello impostato dall’utente. Lastrategia impiegata consiste nel calcolare una matrice che ha le medesime dimensioni dellaROI che deve essere moltiplicata elemento per elemento con quest’ultima; questa matrice siottiene sfruttando la funzione sigmoidale come riportato di seguito:
  33. 33. Regioni d’interesse 33Dove è la matrice che deve essere moltiplicata elemento per elemento con i pixeldella ROI, è il raggio del blob associato alla ROI (si calcola come la metà dell’asse maggioredell’elisse che contiene il blob) e è la distanza dal centro della ROI. Figura 22 Filtraggio della ROI con funzione sigmoidaleE’ importante notare che in questo modo gran parte degli oggetti indesiderati all’internodella ROI sono cancellati; non conviene sfruttare direttamente i blob individuatiprecedentemente perché si rischia di compromettere la forma degli oggetti da analizzare. Ilprincipale svantaggio però è legato al fatto che in questo modo non sempre è possibilecancellare con accuratezza i blob indesiderati, quindi la macchina a vettori di supporto dovràgestire le situazioni in cui le ROI contengono anche parti di oggetti indesiderati e non soloquello effettivamente da analizzare. 2.6. Assegnazione delle ROI alla classe di appartenenzaPer l’addestramento della macchina a vettori di supporto è necessario stabilire quali ROIdevono essere considerate come positive e quali negative; è indispensabile avere adisposizione il risultato di classificazione manuale di un esperto. Per stabilire la classe diappartenenza di una ROI si sfruttano i blob associati a ogni regione e si verifica se il blobcontiene almeno un marcatore inserito dall’esperto di classificazione; nel caso sia presenteun marcatore, allora la ROI dovrà essere considerata come positiva, altrimenti negativa.L’approccio considerato è migliore rispetto a quello basato sulla ricerca di marcatoriall’interno di un intorno centrato nei punti d’interesse perché ci sono varie situazioni in cuiquesti punti sono molto distanti dai marcatori inseriti dagli esperti (ciò andrebbe acompromettere l’associazione della ROI alla corretta classe di appartenenza). Invece, conl’approccio basato sui blob, si prende in considerazione la forma degli oggetti e quindi siaumenta la probabilità di individuare i marcatori inseriti dall’esperto; lo svantaggio è che sel’esperto ha inserito i marcatori in prossimità dei bordi delle cellule allora questa soluzionepotrebbe non rilevare tali marcatori (di solito i marcatori sono posti nel centro delle cellule,quindi il problema è quasi sempre trascurabile).
  34. 34. Feature 34 3. Feature 3.1. IntroduzioneDopo aver descritto come si estraggono le regioni d’interesse, ora è necessario stabilirecome rappresentarle prima di inoltrarle all’algoritmo d’apprendimento Support VectorMachine (SVM); la rappresentazione fa riferimento a dei descrittori che prendono il nome difeature. Il problema da affrontare consiste quindi nell’individuare delle feature in grado didescrivere in modo efficiente le regioni d’interesse; per efficienza s’intende che con unnumero ridotto di descrittori si è in grado di rappresentare le caratteristiche salienti deglioggetti. Si può osservare che spesso gli oggetti che rappresentano nuclei cellulari sono diforma ovale oppure hanno forme meno regolari e le texture degli oggetti non validi sonoabbastanza simili fra loro (dato che spesso rappresentano rumore o porzioni di cellule aintensità pressoché uniforme); quindi, conviene usare dei descrittori in grado di mettere inrisalto le forme degli oggetti ma anche la loro texture interna.Per costruire della feature con alto contenuto informativo per la SVM, cioè affinché questasia in grado di discriminare correttamente gli oggetti presenti nelle immagini, è necessariogarantire tre proprietà:  Invarianza per traslazione, ossia la posizione dell’oggetto da analizzare all’interno di un’immagine non deve influenzare il calcolo delle feature;  Invarianza per rotazione, cioè due oggetti uguali ma ruotati devono generare le medesime feature;  Varianza per scala, le feature devono essere strettamente legate alla scala dell’oggetto.Garantire le caratteristiche suddette è uno dei principali problemi da affrontare prima delcalcolo delle feature e dell’addestramento dell’algoritmo di apprendimento.In questo lavoro si presentano come tipologie di feature ShapeIntensity, Zernike, DCT, FMT(distinte in FAFMT e DAFMT). 3.2. Proprietà delle featureL’invarianza per traslazione è garantita dalla fase di traslazione del centro di massa del blobd’interesse nel centro della ROI come descritto nel capitolo precedente.La varianza per scala dipende unicamente dal tipo di feature, quindi queste devono esserescelte in modo da renderle dipendenti dalla scala degli oggetti da analizzare.L’invarianza per rotazione la si può ottenere in quattro modi diversi:  Ruotare le ROI e per ogni rotazione calcolare le feature da passare alla SVM;  Agire direttamente sulle feature in modo che sia garantita questa proprietà;
  35. 35. Feature 35  Ruotare i vettori di supporto della SVM;  Rendere direttamente le ROI invarianti per rotazione.La prima soluzione richiede di ruotare (per un numero finito di volte) tutte le ROI, calcolareper ogni rotazione le relative feature e passarle alla SVM; l’inconveniente è che deve esserela SVM ad “apprendere” che le ROI sono ruotate in base a quanto descritto dalle feature, ciònon garantisce l’invarianza per rotazione in tutti le possibili situazioni (la macchina a vettoridi supporto può sbagliare nella classificazione). Altro inconveniente è che il tempo dielaborazione richiesto è elevato dato che sono coinvolte molte operazioni.La seconda soluzione non sempre è attuabile dato che dipende dalle formule impiegate percalcolare le feature.La soluzione basata sulla rotazione dei vettori di supporto ha l’inconveniente di complicarel’elaborazione perché è necessario mantenere l’associazione tra vettori di supporto ecorrispondenti regioni d’interesse; altro svantaggio sta nel fatto che è necessario ruotare leROI e poi ricalcolare le feature, ma le rotazioni non possono essere continue (altrimenti siavrebbero infiniti vettori di supporto che su calcolatore non è possibile rappresentare). Altrosvantaggio è che è necessario stabilire in modo empirico il numero di rotazioni daimpiegare.La quarta soluzione è migliore rispetto alle altre perché rende direttamente le ROI invariantiper rotazione; la soluzione che si propone si basa su una tecnica che sfrutta il gradiente sulleregioni d’interesse da analizzare. In questo caso, prima di procedere al calcolodell’orientazione delle ROI, si applica un filtro gaussiano sulle ROI per ridurre il rumore. SulleROI così ottenute si procede con il calcolo del gradientedove è il gradiente della ROI , è il versore lungo l’asse , è il versorelungo l’asse , è la componente del gradiente lungo la direzione e lungol’asse .Per risalire all’orientazione della ROI si calcola il gradiente in corrispondenza del centrodell’oggetto in analisi; per fare questo, s’individuano i valori dei centri di e .
  36. 36. Feature 36dove sono le coordinate del centro della ROI e quindi anche delle matrici e . Sfruttando la funzione arcotangente si risale all’orientazione del centro della ROI equindi della ROI medesimaOra facendo riferimento al piano cartesiano Figura 23 Piano cartesianoe ai segni di è possibile risalire alla posizione del vettore in uno dei quattroquadranti; le possibili situazioni sono (gli angoli sono in gradi):  e allora ;  e allora ;  e allora ;  e allora ;  e allora ;  e allora .Nella fase di classificazione basta calcolare l’orientazione come descritto in precedenza eruotare la ROI in modo che l’angolo di rotazione sia
  37. 37. Feature 37La condizione di sopra garantisce che tutte le ROI abbiano orientazione zero; calcolando lefeature sulle ROI così ottenute, si ha che queste sono invarianti per rotazione dato che leROI sono sempre a orientazione zero (due ROI iniziali uguali ma con orientazioni diverseassumono la medesima orientazione dopo l’applicazione della procedura descritta sopra,quindi le feature calcolate sono uguali).Nel caso in cui le ROI debbano essere impiegate nella fase di addestramento della macchinaa vettori di supporto, conviene procedere in un altro modo ossia ridurre le ROI sulle qualicalcolare le feature. Infatti alcune feature non portano contenuto informativo che permettadi definire al meglio il modello della SVM; queste ROI sono poco robuste alla rotazione causarumore o forme non regolari (oggetti piccoli dello sfondo), quindi si possono nonconsiderare nella definizione del modello della SVM (in fase di addestramento) e ciò porta aiseguenti vantaggi:  Migliore definizione del modello della macchina a vettori di supporto dato che si considerano esclusivamente feature molto robuste all’invarianza per rotazione;  Si aumenta la velocità di addestramento della SVM dato che si elaborano meno ROI e quindi meno feature.Una ROI poco robusta è individuata ruotandola di trentacinque volte di dieci gradi, per ognirotazione si verifica lo scostamento dell’orientazione da quella attesa; se lo scostamentosupera i cinque gradi allora la ROI viene scartata. Si è deciso di rendere molto ridotto ilmargine per garantire una definizione accurata del modello della macchina a vettori disupporto. Se la ROI risulta robusta allora si procede come descritto in precedenza, ossia siesegue una rotazione della regione d’interesse in modo che l’orientazione sia di zero gradiprima di calcolare le feature. 3.3. ShapeIntensityLa prima tipologia di feature che si presenta in questo lavoro serve per descrivere la formadei blob, la distribuzione dell’intensità e le informazioni sul profilo dell’istogramma; questidescrittori non possono essere impiegati per ricostruire gli oggetti analizzati. La scelta ditestare questa tipologia di descrittore deriva dal fatto che permette di descrivere in modonaturale le caratteristiche degli oggetti da analizzare.Le feature che si calcolano per ogni oggetto da analizzare sono: area, asse maggiore, asseminore, rapporto tra gli assi, intensità massima, intensità media, varianza, entropia, energia,contrasto, correlazione, omogeneità, skewness e curtosi; quasi tutte le feature menzionateappartengono ai descrittori di forma dell’istogramma del primo e secondo ordine. Oltre aqueste se ne sono aggiunte altre per migliorare le informazioni relative alla forma deglioggetti (area, asse maggiore, asse minore, rapporto tra gli assi).La distribuzione di probabilità del primo ordine di un’immagine quantizzata può esseredescritta da
  38. 38. Feature 38dove rappresenta la quantizzazione del livello d’intensità e è ilpixel considerato nell’immagine F di coordinate . La stima di dell’istogramma delprimo ordine èdove rappresenta il numero totale di pixel nella finestra centrata nel punto d’interesse e il numero di pixel d’ampiezza .Occorre osservare che la forma dell’istogramma permette di descrivere moltecaratteristiche e in questo caso le feature prendono il nome di descrittori quantitativi diforma dell’istogramma del primo ordine:Le feature dell’istogramma del secondo ordine sono basate sulla definizione delladistribuzione di probabilità congiunta di una coppia di pixel. Si considerano due pixele di coordinate rispettivamente e posti a distanza con angolorispetto all’asse orizzontale; quindi la distribuzione congiunta è data dadove sono le ampiezze quantizzate. La stima della distribuzione del secondo ordinedell’istogramma è data da
  39. 39. Feature 39dove rappresenta il numero totale dei pixel nella finestra di misura e il numero dioccorrenze per = e = . I descrittori di forma dell’istogramma delsecondo ordine sono:DoveOltre a queste se ne sono aggiunte altre per migliorare le prestazioni di riconoscimento deinuclei cellulari, ossia il valore massimo d’intensità della cellula, asse maggiore e minoredell’ellisse che contiene il blob considerato e il loro rapporto, area del blob ottenuta tramitela segmentazione basata sulla sogliatura di Otsu. 3.4. ZernikeLa trasformata di Zernike tipicamente si usa per l’analisi di oggetti di forma circolare di uncerto raggio, quindi in questo lavoro si presta bene alla generazione di descrittori.L’inconveniente principale è che è necessario usare un numero molto elevato di feature(molti coefficienti) per non perdere troppe informazioni riguardanti l’oggetto da descrivere;ciò significa che è necessario presentare alla macchina a vettori di supporto vettori conmolti elementi (le feature) ma questo non implica necessariamente una migliore definizionedel modello della SVM.
  40. 40. Feature 40Le funzioni di Zernike sono calcolate come il prodotto tra i polinomi di Zernike e le funzionitrigonometriche coseno e seno:Dove rappresenta il raggio e ө l’angolo, l’indice è chiamato grado dellafunzione o del polinomio di Zernike, mentre con pari ed è chiamatoordine di Zernike. I polinomi sono espressi come:Di seguito si riportano le prime dieci funzioni di Zernike tipiche che si utilizzano nelleapplicazioni pratiche:Queste funzioni sono un’utile base per la decomposizione di funzioni complesse perchésono ortogonali sul cerchio di raggio unitario. Utilizzando tale ortogonalità, una qualsiasifunzione definita sul cerchio, può essere espressa come somma delle mode diZernike (come nel caso delle funzioni coseno e seno nella trasformata di Fourier)Se si rappresentano i dati in questo modo, è possibile descrivere deformazioni complesse intermini di un numero ridotto di coefficienti associati alle mode dominanti di Zernike.
  41. 41. Feature 41I coefficienti (detti momenti di Zernike) possono essere calcolati dall’inversionedell’equazione precedente se è nota la funzione :Il numero di coefficienti dipende dal grado del polinomio di Zernike e più questo è elevatomigliore è la rappresentazione dell’oggetto in analisi. Da notare che Zernike si può calcolaresolo all’interno di un cerchio, quindi l’oggetto da analizzare deve risiedere completamentenel cerchio inscritto nella ROI di diametro pari alla lunghezza di un lato della ROI. Occorreosservare che non si può aumentare il grado a un valore arbitrario dato che la velocità dicalcolo diminuisce notevolmente già da grado dieci in poi.Di seguito si riporta un esempio di oggetto sul quale si calcola un certo numero dicoefficienti di Zernike e poi la relativa ricostruzione; rispettivamente i gradi del polinomiosono dodici (novantuno feature), venti (duecento trentuno feature) e poi trenta(quattrocento novantasei feature). Figura 24 Ricostruzioni della ROI con diversi gradi per ZernikeDalle immagini di sopra si può immediatamente notare che per rappresentare con dettaglioelevato le caratteristiche dell’oggetto in questione sono necessari molti coefficienti; ilpassaggio da grado dodici a venti non produce un miglioramento descrittivo significativo,mentre con grado trenta si ha una buona descrizione ma il problema è che il tempo di
  42. 42. Feature 42elaborazione richiesto è eccessivo dato che ci sono tantissime feature da calcolare(quattrocentonovantasei). 3.5. Trasformata di Fourier-Mellin, AFMT, DAFMT e FAFMTUn altro tipo di feature considerato in questo lavoro di tesi si basa sulla trasformata diFourier-Mellin (FMT); i principali problemi della FMT classica sono legati nell’accuratezza edefficienza della sua approssimazione numerica, il vantaggio è che è possibile avere unarappresentazione accurata dell’oggetto anche con pochi coefficienti.La trasformata di Fourier–Mellin di una funzione continua è data dae deve valeredove è la rappresentazione dell’immagine nel piano polare ( è il raggio el’angolo); questa è una trasformata globale che si applica su ogni pixel dell’immagine. Perpoterla calcolare è necessario definire il centro delle coordinate; l’inconveniente principale èlegato al calcolo dell’integrale nell’espressione di cui sopra, la FMT esiste per funzioni chesono equivalenti a nelle vicinanze dell’origine per costante e . Occorreosservare che la funzione di rappresentazione dell’immagine non necessariamente soddisfatale condizione dato che nelle vicinanze del centro dell’immagine (tipicamente corrispondeal centro di “massa” dell’oggetto considerato) non assume valore zero; come conseguenza non è sommabile e l’integrale per il calcolo di diverge. Altra osservazione da fareè che la FMT è invariante per rotazione e scala di (cioè scala di ROI no dell’oggetto daanalizzare).A causa della singolarità nell’origine delle coordinate, Ghorbel [17] ha proposto di calcolarela FMT classica sulla funzione in luogo di dove è fissato edeve essere un numero reale strettamente positivo; in questo caso esiste sempre latrasformata FMT e prende il nome di trasformata di Fourier–Mellin Analitica (AFMT) di . Diseguito si riporta l’AFMTdove . L’anti trasformata IAFMT è data da:
  43. 43. Feature 43Per , dove è l’angolo di rotazione e il fattore di scala rispetto a , si ha che i due oggetti e hanno la stessa forma quindi sono simili. L’AFMT di g è datadache si può anche riscrivere comeSi può osservare che l’AFMT può essere utilizzata per calcolare feature invarianti perrotazione (basta considerare il modulo dell’AFMT); da notare che in questo lavoro ècostante dato che le feature sono calcolate sempre su finestre (ROI) della stessadimensione (nel caso in cui la finestra cambiasse dimensione allora la trasformatadipenderebbe anche dal fattore ).Ora che si è definita l’AFMT e IAFMT per funzioni reali è necessario passare allarappresentazione discreta. Questa, però, non esiste direttamente e per ricavarla ènecessario stimare la trasformata diretta e inversa. L’invarianza in rotazione degli oggetti ègià gestita mediante la tecnica basata sul gradiente descritta all’inizio di questo capitolo, maè possibile rafforzare questa condizione considerando il modulo della trasformata;l’inconveniente è che in questo modo si perde l’informazione sulla fase e di conseguenzanon è più possibile ricostruire l’oggetto iniziale a partire dalle feature (questo non è unproblema perché non è necessario fare la ricostruzione).Per l’approssimazione discreta della trasformata AFMT si considera conun’immagine discreta definita su una griglia rettangolare finita; non esiste fuori dal piano2D, la sua AFMT non è a banda limitata e richiede un numero infinito di armoniche perdescrivere l’oggetto in questione. Su calcolatore è possibile rappresentare un numero finitodi armoniche e quindi si perde una parte dell’informazione iniziale. L’AFMT discreta aestensione finita è calcolata per e ; nel lavoro di Goh[18] si suggerisce di utilizzare . Per funzioni reali l’AFMT è simmetrica, quindiindicando con la linea il complesso coniugato si ha:D’ora in poi con si denota la ricostruzione di da un numero finito diarmoniche Fourier–Mellin; per la scelta di e non ci sono delle regole predefinite,
  44. 44. Feature 44tipicamente si procede in modo empirico. Di seguito si descrivono le due approssimazionipossibili considerate.La prima approssimazione che si considera è quella diretta di AFMT (DAFMT) e consiste nelcampionare nel piano discreto polare e stimare gli integrali di Fourier–Mellin. Lagriglia polare di campionamento si costruisce dalle intersezioni tra cerchi concentrici diraggi incrementati di un valore fissato e linee radiali generate dal centro dell’immagine. Ipassi di campionamento angolari e radiali sono rispettivamentedove rappresenta il raggio minimo del disco che è in grado di contenere l’oggetto. I puntidi campionamento quando non corrispondono alla griglia dei pixel dell’immagine sonocalcolati per interpolazione; la rappresentazione polare dell’immagine è una matrice icui valori corrispondono adove e sono rispettivamente il raggio d’indice e cerchio d’indice .Un esempio di campionamento in coordinate polari è riportato di seguito. Figura 25 Campionamento con coordinate polariLa trasformata diretta DAFMT èconLa trasformata inversa della DAFMT è data da
  45. 45. Feature 45conLa seconda approssimazione possibile consiste nel cambiare la variabile d’integrazione da r aq = ln(r), quindi si può riscrivere il tutto come la trasformata di Fourier dell’oggettodeformato . Questa trasformata prende il nome di trasformata veloce FMT(FAFMT) ed è data daconLa FAFMT consiste nel campionare la nel piano log-polar e stimare Fourier-Mellin; laconversione numerica da coordinate cartesiane in log-polar avviene come nel casoprecedente eccetto che i cerchi in questo caso sono separati esponenzialmente.Un esempio di campionamento con log-polar è riportato di seguito. Figura 26 Campionamento con coordinate log-polarPer calcolare l’AFMT con questo tipo d’approssimazione si utilizza la trasformata discreta 2Dcon coordinate log–polar :
  46. 46. Feature 46La trasformata inversa è data da 3.6. Trasformata DCTLa trasformata DCT (Discrete Cosine Transform) è tipicamente utilizzata nelle elaborazionidelle immagini e video; la procedura di calcolo delle feature basata sulla DCT consiste nelcalcolare la DCT direttamente sulla ROI da analizzare e poi selezionare i coefficienti (lefeature) da considerare.Se con s’indica il valore in posizione del pixel nell’immagine di dimensione e con il coefficiente DCT della matrice delle frequenze allora sia ha:Per l’anti trasformata:La DCT permette di passare da una rappresentazione nel dominio spaziale a quello dellafrequenza. L’elemento è il valore massimo presente nel blocco trasformato (è lacomponente continua), gli altri elementi dicono quanto potere spettrale è presente. Lecomponenti a bassa frequenza rendono conto dell’andamento generale della luminositànell’immagine, mentre quelle ad alta frequenza codificano i dettagli e il rumore.Per stabilire il numero di coefficienti da usare come feature è conveniente fare un’analisipreliminare di tutte le ROI in cui si calcolano le energie dei singoli coefficienti della DCT; aquesto punto è possibile individuare l’energia media complessiva delle ROI e selezionare ilnumero di coefficienti in modo che la somma delle energie di questi dia come valore quellopiù vicino (per eccesso) a una soglia prestabilita dall’utente.Di seguito si riporta un esempio dell’andamento dell’energia di una ROI, si può notare che laDCT ha la tendenza a concentrare l’energia nei coefficienti in alto a sinistra.
  47. 47. Feature 47 Figura 27 Energia della DCTSi riporta un esempio di ricostruzione della ROI con una finestra dodici(centoquarantaquattro feature), quindici (duecentoventi cinque feature), venti(quattrocento feature) e trenta (novecento feature). Si può notare che dopo una finestraquindici, il miglioramento nella ricostruzione della ROI è minimo. Figura 28 Ricostruzione di una ROI dai coefficienti DCT
  48. 48. Macchina a vettori di supporto 48 4. Macchina a vettori di supporto 4.1. IntroduzioneDopo aver rappresentato opportunamente le ROI tramite le feature, è necessario procedecon la classificazione delle medesime; per far questo si usa un opportuno algoritmod’apprendimento che dopo l’addestramento sia in grado di eseguire nel miglior modopossibile tale classificazione. Gli algoritmi d’apprendimento stanno rivestendo un ruolosempre più importante in tutti quei campi in cui è necessario risolvere un problema diclassificazione:  Binario, ossia ci sono solo due possibili risposte;  Multi-classe cioè l’algoritmo è in grado di fornire più di due risposte.Allo stato attuale esistono vari classificatori binari ma si è deciso di impiegare la macchina avettori di supporto (questa è implementata dalla libreria open source libsvm); si è deciso disfruttare la SVM (Support Vector Machine) per i seguenti motivi:  Possibilità di risolvere problemi di classificazione generali con tecniche di programmazione quadratica o lineare ben note;  Costo computazionale ridotto e nessun problema di convergenza. Le reti neurali a singolo strato sono molto efficienti ma si possono impiegare nel caso in cui i dati sono linearmente separabili. Le reti multistrato possono rappresentare funzioni non lineari ma l’addestramento è complesso, inoltre le tecniche più diffuse permettono di ottenere i pesi della rete tramite la risoluzione a un problema di ottimizzazione che però presenta un numero indeterminato di minimi locali;  Compatta l’informazione contenuta nel data set d’input tramite i vettori di supporto;  Gestisce dati con molte caratteristiche descrittive;  La complessità del classificatore è legata ai vettori di supporto e non alla dimensione dello spazio delle feature. Questo comporta ridotto overfitting, ossia dopo che la macchina è stata addestrata sul training set e l’errore minimizzato, questa tende ad associare ai nuovi dati in ingresso un errore ridotto ossia è addestrata anche per generalizzare le nuove situazioni che a essa si presentano.Ultima osservazione è che la SVM è adatta per risolvere problemi binari, quindi in unproblema di classificazione multi-classe è necessario costruire una rete di macchine cherichiede una gestione dell’intera struttura; nel problema che questo lavoro si prefigge dirisolvere è possibile impiegare una singola macchina dato che la classificazione cellulare inquesto caso è binaria. 4.2. La macchinaL’algoritmo della SVM fa riferimento alla teoria di apprendimento statistico di Vapnik-Chervonenkis (VC); questa teoria caratterizza le proprietà degli algoritmi di apprendimento
  49. 49. Macchina a vettori di supporto 49che dopo l’addestramento sono in grado di generalizzare. Una SVM è un classificatorebinario che apprende il confine tra esempi appartenenti a due classi diverse. Gli esempid’input sono proiettati in uno spazio multidimensionale e l’algoritmo individua un iperpianodi separazione in questo spazio in modo tale da massimizzare la distanza dagli esempi ditraining più vicini (questa distanza prende il nome di margine).Per descrivere il processo d’apprendimento è necessario introdurre un insieme di funzioni disogliadove è un insieme di parametri reali che definiscono la macchina, le funzioni sichiamano ipotesi e l’insieme è lo spazio delle ipotesi . Ora si considera uninsieme di esempi già classificati presi da una distribuzione sconosciuta :La macchina deve trovare un’ipotesi che minimizzi il rischio, questo è in funzione di :L’errore teorico rappresenta la misura della bontà dell’ipotesi nel predire la classe delpunto . L’insieme genera una SVM in grado di risolvere un particolare problema diclassificazione binaria; la distribuzione di probabilità non è nota quindi non è possibilecalcolare direttamente l’errore teorico ma è necessario procedere in modo diverso perindividuare .L’errore empirico è dato dadove è il numero delle osservazioni a disposizione; per si ha che l’errore empiricoconverge in probabilità all’errore teorico.Prima di procedere con la descrizione della classificazione mediante macchina a vettori disupporto è necessario introdurre il concetto di dimensione VC dello spazio delle ipotesi ;questo è un numero naturale che rappresenta il più grande numero di punti che possonoessere separati in tutti i modi possibili dall’insieme delle ipotesi . La dimensione VC è unamisura della complessità dell’insieme e in generale per un insieme d’iperpiani separatoridi dimensione è .
  50. 50. Macchina a vettori di supporto 50La teoria della convergenza uniforme in probabilità sviluppata da Vapnik e Chervonenkisfornisce un limite alla deviazione dell’errore empirico da quello teorico; fissato con si ha:Dove è la dimensione VC di ; da questa espressione si ha che per ottenere l’erroreteorico minimo è necessario minimizzare la somma dell’errore empirico e della confidenza.L’algoritmo SVM risolve efficientemente il problema di classificazione binaria minimizzandocontemporaneamente sia la dimensione VC sia il numero di errori sul training set. 4.2.1. Classificatore lineare su dati linearmente separabiliIn questo caso specifico si ha che l’insieme dei dati d’ingresso, quindi le osservazioni, sonolinearmente separabili. La macchina d’apprendimento deve individuare il miglior iperpianoche li separa in questa situazione.Un insieme di osservazioni è linearmente separabile se esiste una coppia tale che con conLe seguenti funzioni quindi rappresentano lo spazio delle ipotesicon s’indica il discriminatore binario.Un esempio di separazione lineare è riportato di seguito: Figura 29 Classificatore linearePer quanto riguarda la notazione che sarà utilizzata d’ora in poi, si ha che: lo spazio d’input èindicato con , lo spazio d’output , ipotesi o , training set ed errore su un dato di test .La distanza dell’iperpiano associato alla coppia dal generico punto è

×