Corso di Visione Artificiale Filtri – parte I Samuel Rota Bulò Filtri spaziali ● ● ● Un filtro spaziale è caratterizzato da un intorno e un'operazione che deve essere eseguita sui pixels dell'immagine in quell'intorno. Il processo di filtraggio genera una nuova immagine spostando il filtro lungo tutta l'immagine. Se l'operazione eseguita è lineare parliamo di filtri spaziali lineari. Altrimenti parliamo di filtri non lineari. OUTPUT Filtri spaziali lineari W[-1,-1] W[-1,0] W[-1,1] W[0,-1] W[0,0] W[0,1] W[1,-1] W[1,0] W[1,1] I[x-1y,-1] I[x-1,y] I[x-1,y+1] I[x,y-1] I[x,y] I[x,y+1] ● I[x+1,y-1] I[x+1,y] I[x+1,y+1] ● Un filtro lineare è una matrice W di coefficienti Il filtraggio dell'immagine I tramite W produce un'immagine F. Correlazione e convoluzione ● ● ● La correlazione è il processo di muovere il filtro lungo l'immagine e calcolare la somma pesata ad ogni locazione come appena visto. La convoluzione equivale ad una correlazione con il filtro ruotato di 180° W è talvolta chiamato kernel (nucleo) della convoluzione/correlazione. Proprietà della convoluzione ● Commutativa ● Associativa ● Lineare ● Invarianza a traslazione ● ● Convoluzione è l'unico operatore lineare ed invariante a traslazione Differenziazione Esempi di convoluzione Esempi di convoluzione Esempi di convoluzione Cosa fare ai bordi? Filtri di smoothing Filtro medio: Ogni pixel viene rimpiazzato dalla media dei pixels in un suo intorno dimensioni del filtro Filtri di smoothing Filtro gaussiano: ogni pixel viene rimpiazzato dalla media pesata dei pixels in un suo intorno, secondo una funzione Gaussiana. approssimazione discreta Come creare un filtro Gaussiano Vogliamo che il filtro copra circa il 95% di probabilità dimensione del filtro dev. std. Gaussiana Campionamento e quantizzazione Filtri di smoothing e dimensione filtro Rumore ● Il rumore nelle immagini è una fluttuazione delle intensità dei pixel introdotta dal sistema di acquisizione. RUMORE GAUSSIANO (rumore bianco) RUMORE AD IMPULSO (rumore sale e pepe) Filtro di smoothing e rumore ● Il rumore può compromettere alcune elaborazioni dell'immagine. ● Il filtro di smoothing serve principalmente ad attenuare il rumore bianco. CON RUMORE SENZA RUMORE Filtro di smoothing e rumore Filtro di sharpening ● Lo sharpening può essere utilizzato per migliorare i dettagli di un immagine. k è una costante tipicamente 1 Filtro di smoothing e rumore ● In presenza di rumore ad impulso un filtro di smoothing può non essere la scelta migliore CON RUMORE A IMPULSO DOPO LO SMOOTHING Filtro mediano ● Il filtro mediano è un filtro non lineare. ● Ogni pixel viene rimpiazzato con quello mediano rispetto ad un suo intorno. ORDINATI ● ● ● Il filtro mediano rientra in una classe più generale di filtri. L'elemento mediano infatti rappresenta il 50° percentile di un insieme ordinato di numeri. Potremmo per esempio pensare ad un filtro massimo e un filtro minimo che considerano rispettivamente il 100° o il 0° percentile. Filtro mediano e rumore ad impulso CON RUMORE AD IMPULSO DOPO FILTRO MEDIANO Filtro differenziale Derivata asimmetrica Filtro differenziale asimmetrico Useremo spesso la notazione Ix e Iy per rappresentare le derivate rispetto ad x e y dell'immagine I Derivata simmetrica Filtro differenziale simmetrico Filtro differenziale Derivata asimmetrica Derivata simmetrica Filtro differenziale asimmetrico Filtro differenziale simmetrico Filtro differenziale Filtro differenziale ● ● Derivata misura la variazione di una funzione. Proprietà della derivata: ● ● nulla in regioni di intensità costante non nulla in presenza di variazioni di intensità Profilo Filtro differenziale di Robert ● Filtro 2D differenziale ottenuto considerando derivate lungo direzioni diagonali Filtri differenziali di Roberts Derivata e rumore ● ● La derivata accentua il rumore Tipicamente un filtro differenziale viene abbinato ad un filtro di smoothing per ridurre il rumore. Filtro differenziale di Prewitt ● Filtro 2D differenziale ottenuto combinando un filtro 1D differenziale simmetrico 1D e un filtro 1D medio. Filtro differenziale di Sobel ● Filtro 2D differenziale ottenuto combinando un filtro 1D differenziale simmetrico 1D e un filtro 1D gaussiano approssimato. Filtri differenziali diagonali ● ● I filtri differenziali di Sobel e Prewitt sono spesso utilizzati anche nella loro versione diagonale. I filtri di Roberts sono versioni diagonali dei filtri differenziali asimmetrici Filtri diagonali di Prewitt Filtri diagonali di Sobel Filtro differenziale smooth ● ● ● Idea applicare un filtro differenziale dopo aver applicato un filtro di smoothing gaussiano Filtri differenziali di Prewitt e Sobel inglobano questo principio Vediamo ora come derivare un filtro differenziale gaussiano, ovvero con smoothing gaussiano incorporato. Derivata di Gaussiana Filtri differenziali gaussiani orientati ● ● Finora abbiamo sempre considerato filtri differenziali orientati in direzione degli assi principali x e y. Tuttavia è utile poter valutare la risposta di un filtro differenziale lungo specifiche direzioni. Vediamo il caso di filtri differenziali gaussiani. direzione della derivata Filtri differenziali gaussiani orientati Filtri differenziali gaussiani orientati Utilizzando filtri differenziali gaussiani con σ=2 Gradiente di un'immagine ● Il gradiente di un'immagine è un campo vettoriale. Ogni vettore del campo punta nella direzione in cui localmente l'immagine presenta il maggior incremento d'intensità e ha una lunghezza che rappresenta il tasso di variazione ● ● Il vettore gradiente può essere rappresentato in coordinate polari. Lunghezza ed angolo sono ottenute come funzione delle derivate dell'immagine originale rispetto ad x e y. Gradiente di un'immagine Immagine originale Filtro Laplaciano ● Un importante filtro basato sulla derivata seconda è il filtro Laplaciano. ● E' un filtro isotropico, ovvero la risposta è invariante a rotazione. Sharpening con filtro Laplaciano Filtro Sharpening con filtro Laplaciano c è una costante tipicamente 1 Incorporato diagonali Separabilità di filtri ● ● ● Un filtro 2D è separabile se può essere implementato utilizzando 2 filtri 1D. Riduzione della complessità computazionale. Per es. il filtro Gaussiano è separabile filtro orizzontale ● Lo sono anche i filtri di Prewitt e Sobel. filtro verticale Nota su smoothing anisotropico ● ● Una tecnica di smoothing adattivo detto smoothing anisotropico cerca di adottare uno smoothing poco aggressivo nella direzione normale alla direzione di un bordo e più aggressivo nella direzione di un bordo (o dove non abbiamo bordi). Per fare questo si può utilizzare l'informazione del magnitudo del gradiente per discriminare bordi da non-bordi e l'informazione della direzione del gradiente nel caso in cui abbiamo un bordo per decidere la direzione in cui adottare uno smoothing meno aggressivo.