Ottimizzazione ELABORAZIONE DI SEGNALI E IMMAGINI MEDIANTE TECNICHE DI CALCOLO EVOLUTIVO Stefano Cagnoni L approccio a problemi pratici per i quali non esistono (o sono solo parzialmente note) soluzioni dirette può essere riformulato in termini di ottimizzazione di una funzione obiettivo che rappresenta il costo o la qualità della soluzione. La soluzione, in questi casi, può essere definita in modo generale, con molti parametri. totalmente sconosciuta Spesso è l unica metodologia di progetto possibile! Ottimizzazione e Apprendimento Automatico Tipicamente la funzione da ottimizzare: rappresenta le specifiche di un problema da risolvere viene ottimizzata attraverso procedure automatiche sulla base delle prestazioni ottenute su un certo numero di esempi rappresentativi del problema, o comunque emulando un comportamento desiderato Si realizza quindi un processo di apprendimento induttivo Problema Soluzione incognita Funz. costo f(p 1 p n ) Esempi Metodo di ottimizzazione Soluzione Il problema della progettazione si sposta dalla definizione di una soluzione esatta e giustificata da una teoria alla Un diverso approccio alla progettazione ricerca di una soluzione che funziona bene, attraverso: definizione di un criterio per valutare la bontà (costo) della soluzione cercata scelta del metodo da utilizzare per massimizzarlo (minimizzarlo). 1
Quando ricorrere all ottimizzazione? Ottimizzazione e calcolo evolutivo assenza di soluzioni dirette specifiche del problema esprimibili solamente in modo qualitativo. comportamenti o fenomeni descrivibili o misurabili in modo impreciso (es. segnali affetti da rumore) scarsa conoscenza a priori sul problema da affrontare necessità di integrare moduli per i quali singolarmente valgono le precedenti condizioni Il calcolo evolutivo comprende metodi utili nei casi in cui: la soluzione è del tutto sconosciuta - l algoritmo evolutivo definisce forma e parametri della soluzione (ad es. Programmazione Genetica) la soluzione è definita a priori in forma parametrica - l algoritmo evolutivo ottimizza la funzione qualità (costo) agendo sui valori dei parametri che definiscono il comportamento della soluzione (ad es. Algoritmi Genetici, Strategie Evolutive, ecc.) Application frameworks Optimization of parameters of specific objective (fitness) functions related with a well-defined task. Optimization of parameters of specific objective (fitness) functions for a whole system. Optimization of qualitative performances based on comparisons between solutions (tournaments). Generation of solutions from scratch. Applications to signal and image processing and pattern recognition Optimization of filter/detector AND algorithm parameters for event detection and image segmentation. Qualitative optimization of image processing algorithms. Design of implicitly parallel binary classifiers and image operators.
Applications Optimization of a QRS detector of ECG signals. Optimization of the 3D segmentation of tomographic images based on an elastic contour model. GP optimization of color palettes for color processing of MR images. Low-level image processing and low-resolution character recognition. OTTIMIZZAZIONE DI FILTRI Typical problems: event detection image segmentation Basic structure of a detection / segmentation algorithm Filter => signal (contrast) enhancement Detector => event (feature) detection SIGNAL PROCESSING Signal Enhancement and Event Detection Linear filter: DESIGN OF QRS DETECTORS THROUGH PARAMETER OPTIMIZATION Given: Filter/detector layout Training set Fitness function Optimize: Filter coefficients Detector threshold Other parameters regulating the adaptive behaviour of the detector 3
FILTER LAYOUT ALTRI PARAMETRI DELLA SOLUZIONE Linear: Linear with selected samples: Quadratic with selected samples: EXPERIMENTAL SETUP TRAINING SET 10 10-second tracts of the ECG from each of the 48 30-minute records of the MIT-BIH Arrhythmia Database (5981 beats out of about 110,000). FITNESS FUNCTION f = f max - (FP + FN ), f max such that f>0 RESULTS 99.5% average sensitivity (100% on most normal recordings) Much faster detection with respect to published algorithms yielding comparable results FP = False Positives, FN = False Negatives 4
IMAGE SEGMENTATION Region based RATIONALE Pre-defined routines seldom work, so: Contour based GA optimisation of a specific edge detector, via interactive specification of a few training contours, followed by extraction of the contours of the structure of interest from the whole data set The problem can be reduced to 1D contour detection. CONTOUR EXTRACTION c 0, c k c k,l FILTER = filter coefficients of 0th, 1st, and nd order terms. d k = offsets along the scan line 5
DETECTOR possible detection schemes: Thresholding of filter output O(x i ) = 0 if o(x i )>T 1 otherwise where T = threshold Detection of the threshold-crossings of the filter output where Z= threshold O (x i ) = 1 if (o(x i ) - Z) ( o(xi-1) Z ) < 0 0 otherwise T and Z are also optimised by the GA SEGMENTATION Definition of a starting contour Iterate: Application of the GA-designed filter to the next contour Elastic contour model-based interpolation (also optimised by the GA) of the edge points extracted by the filter RESULTS TRAINING SET One slice following the one which is used to seed the iterative segmentation process FITNESS FUNCTION d yk = distance, along scan line L h, between the actual edge point and the one detected, K = constant 6
Evoluzione interattiva di tavole di lookup Scopo: date due immagini I 1 (x,y) e I (x,y), ottenere, evolvendola tramite GP, una immagine a colori I C (x,y) = F (I 1 (x,y), I (x,y) ) interessante dal punto di vista di una specifica applicazione. Fitness implicitamente definita dall utente che è l arbitro del torneo (di dimensione ) utilizzato nella fase di selezione. Dim. popolazione: 15 N. generazioni : 10-15 Perc. Crossover: 0.7 No Mutazione: Risultati di 3 diversi esperimenti Sub-machine code Genetic Programming Sub-machine code Genetic Programming Variante di GP: si evolvono programmi che usano operatori logici bit a bit che operano su una codifica impacchettata di più dati binari. Programmi eseguibili su calcolatori sequenziali: realizzano implicitamente un paradigma SIMD (Single Instruction Multiple Data) Realizzazione software delle estensioni multimediali degli attuali processori (es. MMX, 3DNow). Tipicamente si usano variabili di tipo unsigned long (a 3 o 64 bit a seconda del compilatore o delle architetture su cui si lavora) per contenere la codifica della stringa di bit di input. La stringa può contenere la codifica di campioni consecutivi di una sequenza temporale, oppure una riga o una finestra di un immagine, ecc. Con una singola operazione binaria bit a bit si opera su un intero blocco di dati. 7
Sub-machine code Genetic Programming Vantaggi operare in parallelo su più dati e quindi rendere più efficiente la valutazione della funzione di fitness, valutare, con una singola sequenza di operazioni, la fitness su più casi contemporaneamente. Limiti Non è possibile applicare operazioni diverse (o pesi diversi) a dati appartenenti ad uno stesso blocco: il long int è visto come un array di dati indipendenti su cui viene applicata la stessa operazione. Aims of the application To test SmcGP effectiveness on a real-world problem (car license plate recognition) To compare results achieved by the SmcGP-evolved programs with the corresponding algorithms used in the APACHE license-plate recognition system Experimental test bed (APACHE plate-recognition system) Pre-processing Main task: car licenseplate recognition Data: 130 images of running cars Low-level tasks: plate extraction and character recognition Input image Grey-level image H.gradient image The horizontal-gradient image is then thresholded to obtain a binary image showing only the strongest edges. 8
Plate Extraction Character recognition Characters are extracted from the plate and an LVQ neural net is used to recognize them The plate region is the region where the horizontal edge density is highest Riconoscimento di caratteri Criteri di qualità per un classificatore binario Riconoscimento di cifre rappresentate da pattern binari bidimensionali: 10 classificatori binari che hanno in ingresso il pattern bidimensionale e in uscita: 1 se il pattern appartiene alla classe corrispondente al classificatore 0 se il pattern appartiene ad un altra classe Veri Positivi: output 1, risposta corretta 1 Veri Negativi: output 0, risposta corretta 0 Falsi Positivi: output 1, risposta corretta 0 Falsi Negativi: output 0, risposta corretta 1 Sensibilità: VP/(VP+FN) * 100 percentuale dei casi con output=1 in presenza del target Specificità: VN/(VN+FP) * 100 percentuale dei casi con output=0 in assenza del target Predittività positiva: VP/(VP+FP) * 100 percentuale dei casi in cui il target è presente in corrispondenza di output =1 9
Classificazione con classificatori indipendenti Vantaggi Ogni classificatore è specializzato e quindi ha prestazioni generalmente molto elevate. realizzazione particolarmente compatta, non richiede di tenere conto, in un unica funzione, delle caratteristiche di più classi. Svantaggi Casi limite (indecidibili): - tutti i classificatori rispondono 0 - più di un classificatore risponde 1. E necessario un meccanismo di disambiguazione. Codifica degli ingressi Pattern di ingresso: caratteri binari di dimensione 13x8 104 bit possono essere rappresentati su 4 (3x4=18) unsigned long. 7 bit del pattern sono impacchettati nei 4 bit meno significativi dei primi 3 long I restanti 3 sono impacchettati nel quarto long. Operatori utilizzati Operatori binari bitwise: AND OR NOT XOR Shift circolari : SHR, SHR, SHR4, SHL, SHL, SHL4 Funzione di fitness funzioni di fitness sperimentate FIT1 = numero di classificazioni corrette (VP + VN) FIT = sqrt ( Sensibilità + Specificità ) NB Se il training set è caratterizzato da una distribuzione uniforme degli esempi nelle 10 classi, allora i casi negativi per ogni classificatore sono 9 volte maggiori dei positivi. Costanti effimere (ERC) unsigned long su 3 bit => FIT1 privilegia la specificità FIT mantiene equilibrio fra le due proprietà 10
Parametri evoluzione Dati a disposizione Popolazione : 1000 Perc. Sopravvivenza : 17 % Perc. Crossover : 80% Perc. Mutazione : 3% Selezione tramite torneo con dimensione del torneo = 7 Database Soc. Autostrade circa 11000 caratteri 13x8 estratti da targhe reali binarizzati con soglia = 0.5 (0 = nero; 1 = bianco) 604 per il training set 5010 per il test set Da 300 a 000 iterazioni Singolo classificatore Metodo di classificazione Ingresso : unsigned long pattern[4] Uscita : unsigned long out Si considera come uscita del classificatore binario il bit di out che massimizza la fitness sul training set. Classificazione: si applicano i 10 classificatori e si guardano le risposte. Se la risposta è ambigua si applica un classificatore di emergenza (il classificatore LVQ attualmente in uso nel sistema APACHE). In caso di risposta nulla unica possibilità, in caso di più classi riconosciute è possibile specializzare altri classificatori nello spareggio fra classi. Scelta della fitness Con la strategia utilizzata, è stata scelta FIT1. Specificità molto elevata => quando il classificatore risponde 1, sbaglia molto raramente. I casi in cui non ci sono risposte sono meno del 5% I casi ambigui meno dell 1 % Circa il 95% dei caratteri può essere classificato direttamente (accuratezza train 99.98%, test 98.7%). Il restante 5% viene classificato tramite il classificatore LVQ. 11
Training set Risultati 99.65% di classificazioni corrette (99.98% sul 99% dei casi classificato direttamente) Test Set 97.43% di classificazioni corrette (98.7% sul 95.3% dei casi classificato direttamente) Circa 0.5 microsecondi per classificatore (.5 microsecondi per pattern) su un Pentium III 600MHz compilando i programmi genetici risultanti. Implementazione: notazione prefissa (AND (AND (NOT (SHR (OR PAT3 PAT))) (SHL4 (SHL4 (NOR (SHR PAT) (AND PAT3 (SHL4 (SHL4 (NOR (SHL (SHL4 PAT3)) (NOR (SHR4 (SHL PAT1)) PAT1)))))) (OR (OR (SHR PAT3) (AND (NOR PAT (AND (SHR PAT) (SHL PAT3)) (SHR (SHR4 (NOT (SHR PAT3)))))) (SHR (SHR4 PAT3))))))) Notazione infissa e listato C ( ( ( NOT ( SHR ( ( PAT3 ) OR ( PAT ) ) ) ) AND ( SHL4 ( SHL4 ( NOT ( ( SHR ( PAT ) ) OR (( PAT3 ) AND ( NOT ( ( SHR4 ( SHL ( PAT1 ) ) ) OR ( PAT1 ) ) ) ) ) ) ) ) ) AND ( SHL4 ( SHL4 ( NOT ( (SHL ( SHL4 ( PAT3 ) ) ) OR ( ( ( SHR ( PAT3 ) ) OR ( ( NOT ( ( PAT ) OR ( SHL ( PAT3 ) ) ) ) AND ( SHR ( SHR4 ( NOT ( SHR ( PAT3 ) ) ) ) ) ) ) OR ( ( SHR ( PAT ) ) AND ( SHR ( SHR4 ( PAT3 ) ) ) ) ) ) ) ) ) ) unsigned long class0 (unsigned long p1, unsigned long p, unsigned long p3, unsigned long p4) { return ( ( ( ~ ( SHR ( ( p3 ) ( p ) ) ) ) & ( SHL4 ( SHL4 ( ~ ( ( SHR ( p ) ) ( ( p3 ) & ( ~ ( ( SHR4 ( SHL ( p1 ) ) ) ( p1 ) ) ) ) ) ) ) ) ) & ( SHL4 ( SHL4 ( ~ ( ( SHL ( SHL4 ( p3 ) ) ) ( ( ( SHR ( p3 ) ) ( ( ~ ( ( p ) ( SHL ( p3 ) ) ) ) & ( SHR ( SHR4 ( ~ ( SHR ( p3 ) ) ) ) ) ) ) ( ( SHR ( p ) ) & ( SHR ( SHR4 ( p3 ) ) ) ) ) ) ) ) ) ); } SmcGP-based plate extraction Input data: 4 unsigned long words encoding a window, of size 3x4 pixels, from the binarized gradient image Desired SmcGP-evolved binary classifier output: 1 if the window belongs to the plate 0 otherwise 1
Training set Parametri dell evoluzione 80/130 images Input data: gradient image 100 samples/image: 60 from the plate area, 30 from around the plate, 10 from anywhere else in the image 366 negative + 484 positive = 5190 training samples Empty samples (that can be found both inside and outside the plate) have been purged. Popolazione = 1000 individui Selezione tramite torneo di dimensione 7 80% crossover 17% sopravvivenza 3% mutazione Fitness F' = ( nneg FP) ( n + nneg Pos FN ) n Pos = F'' = Dim _ Programma /10000000 F = F' + F'' Specificità + Sensibilità Results (training set) Typical results Performance of the best program: Specificity = 33/366 (88.5%) Sensitivity = 4045/484 (83.85%) Program size : 1087 Fitness: 0.1496 The same algorithm that APACHE directly applies to the gradient image can be applied to this image to improve plate localization 13
Results When several edges are present outside the plate, the basic algorithm may fail. Filling the gaps in the plate increases robustness The evolved algorithm produces a 10-fold increase in the density of detected pixels within the plate. Sample cases (comparison with APACHE) Both algorithms detect the plate correctly GRADIENT (%) GENETIC (%) PLATE PIXELS AVERAGE 367 (6.48%) 3513 (6.05%) 5661 The increase in the number of false detections is limited and mostly harmless. GRADIENT (%) GENETIC (%) BACKGROUND PIXELS AVERAGE 470 (0.1%) 8157 (.00%) 407758 Sample cases (comparison with APACHE) Apache fails, the genetic program detects the plate Quasi-ideal results Other results 14
Other results The plate is detected, despite a lot of noise Other results No edges are detected in the plate region: failure Sommario dei risultati Conclusioni Riconoscimento di caratteri: Prestazioni analoghe ad un classificatore LVQ con una riduzione del carico computazionale di circa 10 volte Individuazione della targa: Miglioramento in termini di accuratezza con limitato decremento dell efficienza computazionale L efficienza computazionale dei classificatori evoluti con SmcGP limita l overhead introdotto dal modulo aggiuntivo Nei molti casi in cui un problema di elaborazione/analisi di segnali/immagini è riconducibile ad un problema di ottimizzazione, gli algoritmi evolutivi forniscono strumenti potenti ed efficaci per la ricerca di buone soluzioni ai problemi da risolvere. PROVARE PER CREDERE!!! 15
BIBLIOGRAFIA Poli R., Cagnoni S., Valli G., ``Genetic design of optimum linear and non-linear QRS detectors'', IEEE Trans. on Biomedical Engineering, 4(11):1137-41,1995. Poli R., Cagnoni S. ``Genetic programming with user-driven selection: experiments on the evolution of algorithms for image enhancement'', in Koza J.R., Deb K., Dorigo M., Fogel D.B., Garzon M., Iba H., and Riolo R.L. (editors), Genetic Programming 1997: Proceedings of the Second Annual Conference, July 13-16, 1997, Stanford University. San Francisco, CA: Morgan Kaufmann, pp. 69-77, 1997. Cagnoni S., Dobrzeniecki A.B., Poli R., Yanch J.C. ``Genetic-algorithm-based interactive segmentation of 3D medical images'', Image and Vision Computing Journal, 17(1):881-896, 1999. Cagnoni S., Bergenti F., Mordonini M., Adorni G., "Evolving binary classifiers through parallel computation of multiple fitness cases". IEEE Transactions on Systems, Man and Cybernetics Part B-Cybernetics, 35(3):548-555, 005. 16