Corso di Robotica
Prof. Davide Brugali
Università degli Studi di Bergamo
Elaborazine delle immagini
UNIBG - Corso di Robotica - Prof. Brugali 2
Visione umana
Visione retinica
Pre-elaborazione del segnale
Compressione
Selezione della regione di interesse
Focalizzazione dell’attenzione
Visione corticale
Estrazione delle primitive visuali
(colori, forme, tessiture)
Visione intelligente
Associazione a modelli di conoscenza
Riconoscimento
Ragionamento visuale
Apprendimento
UNIBG - Corso di Robotica - Prof. Brugali 3
Visione artificiale Basso livello :Elaborazione immagini
Operazioni ripetitive sugli elementi base delle immagini.
Utilizzo di algoritmi ben formalizzati.
Filtraggio del rumore
Segmentazione
Medio livello: Analisi di immagini
Estrazione di primitive dalle immagini
Alto livello: Comprensione delle immagini
Riconoscimento forme
Riconoscimento movimenti
Processi cognitivi legati alla semantica delle immagini
Impiego di euristiche, soluzioni approssimate
Image Processing
Pattern Recognition
Artificial Intelligence
Immagini
Immagini
Oggetti
Conoscenza
Processi decisionali
UNIBG - Corso di Robotica - Prof. Brugali 4
Basso livello Obiettivi
Esaltare alcune caratteristiche visuali (image enhancement)
Recuperare le degradazioni dell’immagine dovute, ad esempio, al rumore (image restoration)
Generare una nuova immagine combinando un gruppo di altre immagini (image recostruction)
Effettuare una compressione eliminando le ridondanze (image coding)
Modifica del contenuto informativo (image processing): segmentazione, binarizzazione, filtraggio del movimento.
UNIBG - Corso di Robotica - Prof. Brugali 5
Medio livello
È l’insieme dei processi di estrazione delle informazioni simboliche dalle immagini preelaborate e le tecniche di analisi delle caratteristiche visuali degli oggetti presenti nelle stesse.
Etichettatura di oggetti
Estrazione di primitive visuali
UNIBG - Corso di Robotica - Prof. Brugali 6
Alto livello
Lo scopo di questo livello è quello di arrivare ad una forma di “comprensione” della scena osservata, come può essere il riconoscimento di oggetti e di relazioni spaziali tra gli oggetti.
Classificazione automatica (clustering)
Riconoscimento
Localizzazione
Problemi di interpretazione
Elaborazioni puntuali
UNIBG - Corso di Robotica - Prof. Brugali
Contrasto
Imax e Imin: intensità massima e minima
Più il contrasto è alto, più l’osservatore può notare i dettagli dell’immagine. È solo percezione dell’occhio umano in quanto la quantità di
informazione non cambia.
UNIBG - Corso di Robotica - Prof. Brugali
Contrasto I
max I
min
Imax
Imin
8
Contrasto
UNIBG - Corso di Robotica - Prof. Brugali 9
UNIBG - Corso di Robotica - Prof. Brugali
Operazioni di soglia
L’operazione di soglia serve per binarizzare un’immagine
È molto importante e spesso anche estremamente critica
10
UNIBG - Corso di Robotica - Prof. Brugali
Istogramma
L’ istogramma di un’immagine a livelli di grigio è un
vettore con un numero di elementi pari al numero dei livelli di grigio
Il valore di ciascun elemento è dato dal numero di pixel dell’immagine che assumono quello specifico livello di grigio
11
UNIBG - Corso di Robotica - Prof. Brugali
Esempi di istogrammi
12
UNIBG - Corso di Robotica - Prof. Brugali
Esempi di istogrammi
13
UNIBG - Corso di Robotica - Prof. Brugali
Utilità dell’istogramma L’istogramma fornisce informazioni utili per varie
operazioni, tra cui il miglioramento del contrasto e la binarizzazione tramite soglia
Poiché in generale diversi oggetti hanno livelli di grigio diversi, l’istogramma fornisce un primo semplicissimo metodo di classificazione
14
UNIBG - Corso di Robotica - Prof. Brugali
Contrast Stretching
Espansione dei livelli di grigio
serve per modificare in modo dinamico l’istogramma
15
UNIBG - Corso di Robotica - Prof. Brugali
Contrast Stretching
Esempio di aumento di contrasto
16
UNIBG - Corso di Robotica - Prof. Brugali
Equalizzazione
L’equalizzazione dell’istogramma è l’elaborazione che idealmente produce un’immagine con istogramma uniformemente distribuito su tutti i livelli di grigio.
Aumenta i contrasti vicino ai massimi e li diminuisce vicino ai minimi
17
UNIBG - Corso di Robotica - Prof. Brugali
Equalizzazione
Considera l’istogramma come la distribuzione di probabilità dei livelli di grigio. Procedimento:
1. Si calcola l’istogramma cumulativo
2. Si dividono i valori ottenuti al passo 1 per il numero di pixel
3. Si moltiplicano i valori ottenuti al passo 2 per il massimo livello di grigio e si arrotonda
4. Si mappano i livelli di grigio originali sui valori ottenuti al passo 3 con una corrispondenza 1 a 1
18
UNIBG - Corso di Robotica - Prof. Brugali
Equalizzazione
Esempio di equalizzazione
19
UNIBG - Corso di Robotica - Prof. Brugali
Esempi
Originale Con contrast stretching
Equalizzata
20
Elaborazioni locali
UNIBG - Corso di Robotica - Prof. Brugali
Rumore
Il rumore nelle immagini puo’ essere generato in qualsiasi punto della catena del segnale:
Rumore gaussiano (termico):
Speckle noise (elettrico): il rumore e’ proporzionale (correlato) all’immagine “sottostante”
Rumore “salt&pepper”: pixel “difettosi” nella camera, transienti anomali
immagine originale Gaussiano Speckle Salt & pepper
UNIBG - Corso di Robotica - Prof. Brugali 22
Convoluzione/filtraggio
• E’ possibile applicare i concetti della teoria dei sistemi
(deterministici e stocastici) con i dovuti accorgimenti matematici
• Come per i segnali 1D e’ possibile definire un prodotto di
convoluzione
1
0
1
0
,,,:N
r
M
s
srhsmrnfmnuhf
filtro h = FIR 7x7 immagine f
n
m
r
s
UNIBG - Corso di Robotica - Prof. Brugali 23
Image Convolution
0.5
0.5 0 0
1 0
0 0 0
kernel
8
Modified image data Local image data
6 1 4
1 8 1
5 3 10
* =
UNIBG - Corso di Robotica - Prof. Brugali 24
Linear filters: examples
0 0 0
0 1 0
0 0 0
Original Identical image
Source: D. Lowe
* =
UNIBG - Corso di Robotica - Prof. Brugali 25
Linear filters: examples
0 0 0
0 0 1
0 0 0
Original Shifted left
By 1 pixel
* =
Source: D. Lowe
UNIBG - Corso di Robotica - Prof. Brugali 26
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Smoothing)
Avendo i pesi somma 1, la luminosità globale dell’immagine non cambia
Il filtro uniforma i valori nell’intorno riducendo le variazioni: è un filtro passa-basso
27
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Smoothing)
Avendo i pesi somma 0, si ottiene la soppressione della componente continua dell’immagine.
E’ un filtro passa-alto perché non azzera i punti dove si hanno variazioni (alte frequenze)
28
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Filtraggio del rumore)
Filtro Mediano: un pixel è sostituito dal valore mediano dei pixel nell’intorno
Mediano : il mediano M di un insieme di valori è tale che metà dei valori sono minori di M e metà dei valori sono maggiori di M
29
35
38
40
52
57
107
110
115
29
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Filtraggio del rumore)
L’effetto del filtro mediano è di forzare i pixel ad assumere un valore uguale a quello di uno dei pixel circostanti, eliminando eventuali spike isolati, cioè la forma con cui di solito si manifesta il rumore
30
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Sharpening)
I filtri di sharpening, complementari ai filtri di smoothing, sono utilizzati per aumentare il contrasto locale dell’immagine, in modo da arricchire i dettagli fini o per evidenziare i contorni degli oggetti.
Possono provocare l’aumento del rumore nell’immagine.
31
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Sharpening)
I filtri di sharpening, complementari ai filtri di smoothing, sono utilizzati per aumentare il contrasto locale dell’immagine, in modo da arricchire i dettagli fini o per evidenziare i contorni degli oggetti.
Possono provocare l’aumento del rumore nell’immagine.
Per accrescere le differenze tra pixel vicini, una maschera deve avere il peso centrale di segno opposto a quelli periferici
La somma dei pesi delle maschere è 1, per evitare l’introduzione di bias di intensità
32
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Sharpening)
33
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (Sharpening)
Se la somma dei pesi è 0, anziché 1, viene rimossa la
componente continua.
34
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (High-boost)
E’ un filtro che enfatizza le alte frequenze
Ne risulta un’immagine con un grado di edge crispening che dipende
dal fattore di moltiplicazione A.
w = 9A – 1
A >= 1
35
UNIBG - Corso di Robotica - Prof. Brugali
Convoluzione (High-boost)
36
UNIBG - Corso di Robotica - Prof. Brugali
Complessità computazionale
Applicare una maschera 3 x 3 ad una immagine 512 x 512 richiede
9 moltiplicazioni e
8 addizioni in ogni posizione
per un totale di
2.359.296 moltiplicazioni e
2.097.152 addizioni
La richiesta di potenza computazionale ha portato allo sviluppo di hardware dedicato capace di operare a velocità di video
37
Edge Detection
38 UNIBG - Corso di Robotica - Prof. Brugali
Edge detection
Edges are places in the image with strong intensity contrast.
Since edges often occur at image locations representing object boundaries,
edge detection is extensively used in image segmentation when we want to
divide the image into areas corresponding to different objects.
Since edges consist of mainly high frequencies, we can, in theory, detect edges
by applying a highpass frequency filter in the Fourier domain or by
convolving the image with an appropriate kernel in the spatial domain.
In practice, edge detection is performed in the spatial domain, because it is
computationally less expensive and often yields better results.
UNIBG - Corso di Robotica - Prof. Brugali 39
Three steps to perform edge detection:
1. Noise reduction, where we try to suppress as much noise as possible,
without smoothing away the meaningful edges.
2. Edge enhancement, where we apply some kind of filter that
responds strongly at edges and weakly elsewhere, so that the edges may
be identified as local maxima in the filter’s output .
3. Edge localization, where we decide which of the local maxima
output by the filter are meaningful edges and which are caused by noise
UNIBG - Corso di Robotica - Prof. Brugali 40
Characterizing edges
• An edge is a place of rapid change in the image intensity function
image intensity function
(along horizontal scanline) first derivative
edges correspond to
extrema of derivative
UNIBG - Corso di Robotica - Prof. Brugali 41
Derivative filters
One image can be represented as a surface, with height corresponding to gray
level value. Brightness function depends on two variables co-ordinates in the
image plane
(gray level value z = f ( x,y))
Edges are pixels where brightness function changes abruptly. We can describe
changes of continuous functions using derivatives.
Brightness function depends on two variables co-ordinates in the image plane
and so operators describing edges are expressed using partial derivatives.
UNIBG - Corso di Robotica - Prof. Brugali 42
The gradient points in the direction of most rapid increase
in intensity
Image gradient
The gradient of an image:
The gradient direction is given by • how does this relate to the direction of the edge?
The edge strength is given by the gradient magnitude
Source: Steve Seitz
UNIBG - Corso di Robotica - Prof. Brugali 43
Image gradient
UNIBG - Corso di Robotica - Prof. Brugali 44
Edge Tracking Procedure
for each edge pixel P
classify its pixel type using masks
case
1. isolated point : ignore it
2. start point : make a new segment
3. interior point : add to current segment
4. end point : add to current segment and finish it
5. junction or corner : add to incoming segment
finish incoming segment
make new outgoing segment(s)
junction
corner
UNIBG - Corso di Robotica - Prof. Brugali 45
Hough Transformation
UNIBG - Corso di Robotica - Prof. Brugali
Slides based on “Detecting Shapes in Images using the Hough Transform”,
2007 Texas Instruments Inc.
OpenCV
http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html
The Straight Line
bxmy
bxmy
bxmy
22
11
• For each point (x,y) in the line the following equation applies:
• Therefore:
(x1,y1)
(x2,y2)
bxmy
Multiple Lines over a single point
• Each pair (m,b) defines a distinct straight line containing
the point (x,y)
(x,y)
y=m1x+b1
y=m2x+b2
y=m3x+b3
y=m4x+b4
The Parameter Plane
Each point in the (x,y) space(image plane) is mapped to a straight line in the (m.b) space
(parameter plane).
A straight line in the (x,y) space (image plane) is mapped to the intersection point of the
lines corresponding to its points, in the (m.b) space (parameter plane).
b =-mx1+y1
b =-mx2+y2
(x1,y1)
(x2,y2)
(x3,y3)
b =-mx3+y3
Dealing with digital pictures
A line formed by M (N) pixels in the image space will be mapped to the intersection point of M (N) lines in the parameters space, where each line corresponds to a pixel in the image space.
The number of lines intersecting in a single point in the parameter space represents the length of the original line in the image space.
The Accumulator Concept
The (m.b) space (parameter plane) is subdivided in cells.
Each pixel (x,y) in the original image vote in the (m,b) space for each line passing through it.
The votes are summed in an Accumulator
UNIBG - Corso di Robotica - Prof. Brugali 51
Using Polar Coordinates
52 UNIBG - Corso di Robotica - Prof. Brugali
The Motivation for Polar Coordinates
rx
rrx
00 sincos
x = r
r
Vertical lines cannot be mapped to the
(m,b) space, since:
Vertical lines can be described using
polar coordinates :
?
b
m
UNIBG - Corso di Robotica - Prof. Brugali 53
Hough Transform - The (r,θ) Space
(x1,y1)
(x2,y2)
(x3,y3)
r=x2cosθ+y2sinθ
r=x1cosθ+y1sinθ
r=x3cosθ+y3sinθ
(x4,y4)
r=x4cosθ+y4sinθ
• Hough Transform - Each point in the (x,y) space is mapped to a
sinusoid in the (r,θ) space.
• Sinusoids corresponding to collinear points in the (x,y) space
intersect at a common point in the (r,θ) space.
UNIBG - Corso di Robotica - Prof. Brugali 54
Accumulators in the (r,θ) Plane
55 UNIBG - Corso di Robotica - Prof. Brugali