You are on page 1of 31

ESCOLA POLITCNICA DA USP

PMR2560 - Robtica
Deteco de linhas

Prof. Eduardo L. L. Cabral

ESCOLA
POLITCNICA DA USP

Objetivos


Processamento de imagens:

Deteco de linhas;

Transformada de Hough;

Deteco de cantos.

ESCOLA
POLITCNICA DA USP

Deteco de linhas



Linhas so caractersticas importantes pois definem


os contornos de objetos em uma imagem.
Exemplos:

Faixa no cho;
Linha de parede;
Abertura de portas;
Escadas.

Algoritmos para extrair linhas


iniciam com a deteco
de bordas na imagem.

ESCOLA
POLITCNICA DA USP

Deteco de linhas


Como detectar linhas?

Dada uma imagem de bordas deseja-se agrupar


grupos de pixels de bordas para identificar as linhas
presentes na imagem.

Uma forma de realizar essa operao correspondncia


com padres na imagem de bordas:

Exige a gerao de padres de linhas e a sua convoluo com a


imagem;
Exige um grande nmero de padres para localizar todos os tipos
de linhas com preciso computacionalmente muito intensivo.

Outra forma realizar uma transformao onde os pixels


de bordas votam por linhas:

Esse mtodo reduz o problema a um processo de limiarizao;


Transformada de Hough.

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Idia bsica da Transformada de Hough:


1.

Uma linha i na imagem pode ser parametrizada por duas


variveis:

y = ai x + bi
2.

Cada pixel de borda (x, y) pode corresponder a uma famlia


de linhas L(x, y) = {l1,,ln};

3.

Cada pixel de broda (x, y) vota para uma linha li da famlia


L(x, y);

4.

Cada pixel de borda que forma uma linha gera um voto para
uma determinada linha i;

5.

Linhas que de fato esto presentes na imagem recebero


mais votos do que as linhas que no existem.

ESCOLA
POLITCNICA DA USP

Transformada de Hough



Cada pixel de borda (x, y) corresponde a uma famlia


de linhas L(x, y) = {l1,,ln}.
Cada pixel de borda (x, y) vota para uma linha li de
L(x, y).

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Cada pixel de borda que forma uma linha gera um


voto para essa linha entre muitas outras linhas.

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Linhas que de fato esto presentes na imagem


recebem mais votos do que as linhas que no
existem.

ESCOLA
POLITCNICA DA USP

Transformada de Hough


O problema de deteco de linhas se transforma em


um problema de deteco de picos necessrio
somente detectar as linhas com mais votos.
Problema representao de uma linha:
y = aix + bi,
onde: ai [, +]

bi [, +]
Como representar ai e bi?


Soluo usar representao polar da reta.

ESCOLA
POLITCNICA DA USP

Transformada de Hough


No lugar da representao cartesiana da reta pode-se


usar a representao polar de uma reta:

= xcos + ysin
onde a distncia normal de um ponto reta (em geral
a origem do sistema de coordenadas) e o ngulo de
inclinao da reta com a horizontal.
x

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Esses parmetros so limitados por:

0, L2x + L2y

[0, 180o ]
que podem ser discretizados com a resoluo desejada.


Os parmetros e podem ser estimados mais


precisamente usando-se uma discretizao fina.

Quanto mais fina for a discretizao maior as


exigncias de espao de memria e tempo de
processamento.

Para uma maior tolerncia a rudos uma discretizao


grosseira melhor.

ESCOLA
POLITCNICA DA USP

Transformada de Hough

= -xisin + yisin

x


Quanto mais grosseira a discretizao dos parmetros


maior a probabilidade de cada ponto votar na mesma clula
e .

ESCOLA
POLITCNICA DA USP

Transformada de Hough


O Algoritmo:
1.

Dada uma imagem de bordas B(i,j);

2.

Definir uma resoluo e para e respectivamente;


Construir uma matriz A(m,n) para acumular os votos das linhas,
onde:
1
180o
m=
max n =

3.

4.

Para cada pixel de borda (i, j) fazer:

Para = ::180o;
= i*cos() + j*sin();
Se 0 < < max, ento:
Arredondar para o inteiro mais prximo;
A(,) = A(,) + 1;
Fim.
5.

Limiarizar a matriz A(i,j) para achar as linhas principais.

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Exemplo:
Imagem de bodas
B(i,j)

Matriz de votao
A(,)

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Exemplo:
Imagem
original

Imagem
de bordas

Matriz de
votao

Linhas
detectadas

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Exemplo:

Imagem
original

Imagem
de bordas

Matriz de
votao

Linhas
detectadas

ESCOLA
POLITCNICA DA USP

Transformada de Hough


Observaes:

Pelo fato de ser um processo de votao, a


Transformada de Hough (TH) robusta a rudos e
pode detectar linhas quebradas, desconectadas ou
parcialmente oclusas.

A TH tambm pode ser utilizada para detectar linhas


mais complexas, tais como, crculos, elipses etc.

A complexidade do algoritmo aumenta


exponencialmente com o tipo de curva a ser
detectada por isso a TH mais utilizada para
detectar curvas simples como as retas.

ESCOLA
POLITCNICA DA USP

Deteco de cantos



Cantos correspondem a pontos que existem tanto no


mundo real como na imagem.
Na robtica mvel localizar pontos em imagens
consecutivas uma forma de estimar a localizao e
orientao do rob.
O que so cantos?

Pontos caractersticos da imagem;


Ponto de interseco entre duas linhas;
Onde o gradiente da imagem tem gradiente com altas
componentes em ambas as direes x e y.

Os cantos podem ser detectados por meio de:

Interseco de linhas;
Gradiente da imagem

ESCOLA
POLITCNICA DA USP

Deteco de cantos


Operador de Moravec:
1.

Dada uma imagem em tons de cinza: I(x,y);

2.

Para cada pixel (i, j) da imagem I, calcular:

1 i +1 j +1
M(i, j ) = I(k,l ) I(i, j )
8 k =i 1 l = j 1
3.

Limiarizar a nova imagem M(i,j) para isolar os cantos


da imagem.

ESCOLA
POLITCNICA DA USP

Deteco de cantos


Caractersticas do Operador de Movarec:

Tem valor mximo nos pixels com alto contraste;

Apresenta implementao muito simples;

computacionalmente eficiente pode ser utilizado


em aplicaes de tempo real;

No muito eficiente na deteco existem


detectores melhores na teoria e na prtica.

ESCOLA
POLITCNICA DA USP

Deteco de cantos


Exemplo:

Imagem
original

M(i,j) > 50

Operador de
Movarec

M(i,j) > 65

ESCOLA
POLITCNICA DA USP

Deteco de cantos


Algorithm de Trucco & Verri:


1.

Calcular o gradiente da imagem para cada pixel nas


direes x e y:

I( x, y )
Ix (i, j ) =
;
x
2.

I( x, y )
Iy (i, j ) =
j
y

Definir uma vizinhana como sendo uma rea de


interesse em torno de cada pixel:
10 11 12 12 10
11 11 10 10 10

Vizinhana
13 13 50 55 55
3x3 (m = 1)
13 15 53 55 58
18 19 53 60 61

ESCOLA
POLITCNICA DA USP

Deteco de cantos
3.

Para cada pixel da imagem construir a seguinte matriz


usando a vizinhana m definida no passo 2:
c11 (i, j ) c12 (i, j )
C(i, j ) =

c
(
i
,
j
)
c
(
i
,
j
)
22
21

onde: c (i, j ) =
11

i+m

j+m

I (k , l ); c22 (i, j ) =
2
x

k =i m l = j m

j+m

2
I
y (k , l );

k =i m l = j m
i+m

c12 (i, j ) = c21 (i, j ) =

i+m

j+m

(k , l ) I y (k , l );

k =i m l = j m

Exemplo:

10
11
Ix = 13
13
18

11
11
13
15
19

12
10
50
53
53

12
10
55
55
60

10
10
55 c11 (3,3) = 112 + 102 + 102 + 132 + 50 2 + 552 + 152 + 532 + 552
58
61

ESCOLA
POLITCNICA DA USP

Deteco de cantos
4.

Para cada matriz C(i,j) calcular os dois autovalores 1 e


2;

5.

Construir uma imagem de autovalores , onde


(i,j) = min[(i,j)];

4.

Limiarizar a imagem qualquer ponto acima do


limiar considerado um canto.

Problema Os cantos obtidos dependem do valor do


limiar utilizado!

ESCOLA
POLITCNICA DA USP

Deteco de cantos


Exemplo:

Limiar = 25.000

Limiar = 10.000

Limiar = 5.000

ESCOLA
POLITCNICA DA USP

Exerccios
1. Calcule a Transformada de Hough dos objetos abaixo.

2. Detecte as linhas presentes na imagem abaixo dada pela


matriz de bordas da prxima pgina.

ESCOLA
POLITCNICA DA USP

Exerccios
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0

0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0

0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0

0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0

0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0

0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0

0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

ESCOLA
POLITCNICA DA USP

Exerccios
3. Detecte os cantos da imagem abaixo usando:
a) Operador de Movarec (use a matriz de tons de cinza da
imagem dada na prxima pgina);
b) Interseco das linhas detectadas no exerccio 2.

ESCOLA
POLITCNICA DA USP

Exerccios
80
97
97
97
114
131
114
131
131
148
148
165
165
182
165
189
182
189
182
189
182
189
182
189
182
189
182
189
182
189
165
182

80 63
80 97
80 80
97 97
97 97
114 131
131 114
131 131
131 114
131 148
148 131
148 148
148 148
148 165
182 165
182 182
182 165
182 182
182 182
182 189
189 182
182 189
182 182
182 189
189 182
182 189
182 182
182 189
182 165
182 182
182 165
148 182

80
97
97
97
97
97
131
114
131
131
131
148
148
148
182
165
182
165
182
182
182
189
182
182
182
182
182
165
182
148
182
148

80
97
97
114
114
131
114
131
131
148
131
148
148
165
165
182
165
148
148
182
182
189
182
189
182
189
165
182
165
182
165
165

80
80
97
97
97
114
131
114
131
114
131
131
148
148
148
148
148
80
80
80
97
114
148
165
182
165
148
148
148
148
148
148

63
97
97
97
97
114
114
131
114
131
114
148
131
148
165
182
131
80
80
97
63
80
80
97
97
148
165
148
148
148
148
148

80
97
97
97
97
97
97
97
131
97
131
114
131
148
148
148
80
46
80
63
80
63
80
63
80
97
148
148
148
148
148
131

80
97
97
114
114
114
114
131
114
131
114
131
131
148
148
148
63
80
63
80
63
80
63
80
63
131
148
148
131
148
148
131

80
63
80
97
97
97
97
97
97
97
131
114
131
114
131
97
46
46
46
46
46
46
46
46
46
114
131
131
148
131
131
131

63
80
80
97
97
97
97
97
97
114
114
131
114
131
131
80
46
46
46
63
46
63
46
46
63
131
131
148
114
131
114
131

80
80
80
80
80
97
97
97
97
97
97
97
131
97
131
29
29
46
46
46
46
46
46
29
97
114
131
114
131
97
97
97

80
97
80
97
80
97
97
97
97
114
114
131
114
131
97
46
29
46
46
46
29
46
46
63
114
131
114
131
114
131
114
131

80
63
80
80
97
80
80
97
97
97
97
97
97
114
46
29
29
29
29
29
46
29
29
63
97
114
131
97
97
97
97
97

63
80
80
97
63
97
80
97
97
97
97
114
97
114
29
46
29
46
29
46
29
46
29
97
114
131
114
131
114
131
114
114

80
46
80
63
80
80
80
80
80
97
97
97
97
63
29
12
29
29
29
29
29
29
46
97
97
97
97
97
97
97
97
97

63
80
63
80
63
80
80
97
80
97
97
97
114
46
12
29
29
46
12
29
29
29
63
114
114
114
97
97
97
97
97
97

46
63
80
80
29
0
29
46
80
80
80
97
97
12
29
29
29
12
29
29
29
12
80
97
97
97
97
97
97
97
97
97

63
80
63
80
0
29
12
29
12
29
46
80
63
29
12
29
12
29
12
29
12
46
80
97
97
97
80
97
97
97
80
97

46
46
80
29
0
0
0
0
0
0
0
0
29
0
12
12
29
0
12
12
29
46
80
80
80
97
97
80
80
97
80
80

63
80
63
29
12
12
12
29
12
29
12
29
12
29
12
29
12
29
12
29
12
80
80
97
80
97
80
97
80
97
80
80

46
46
46
0
0
0
0
0
0
0
0
0
0
12
12
0
0
12
12
0
0
63
80
80
80
80
80
80
80
63
80
63

63
80
12
0
0
0
12
12
0
12
12
29
12
12
12
29
12
29
12
29
12
29
12
46
63
80
80
97
63
80
63
80

46
46
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
29
46
80
63
80
63

63
46
12
29
12
0
0
12
12
12
0
12
12
29
12
29
12
12
12
29
12
29
12
29
12
12
0
0
63
80
63
80

46
29
29
29
29
12
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
46
63
63
46

46
46
29
46
12
29
12
46
12
29
12
12
0
12
12
29
12
29
12
29
0
12
12
29
0
0
0
29
46
80
63
80

46
46
46
46
29
46
29
29
29
12
29
12
29
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
46
46
46
46

63
63
46
63
63
63
46
46
29
46
29
29
29
46
12
29
12
29
12
29
12
12
12
12
12
12
0
46
63
63
63
80

46
46
46
46
46
46
46
46
46
46
46
46
46
12
29
29
29
12
29
12
0
0
0
0
0
0
0
46
46
46
46
46

46
46
46
46
46
46
63
63
46
63
63
80
46
46
46
46
29
29
29
46
12
29
12
29
0
0
12
46
46
63
63
63

46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
29
29
29
29
29
12
29
0
29
46
46
46
46
46

46
46
46
46
63
63
46
63
63
63
46
80
63
63
46
80
63
63
46
46
29
46
29
29
29
46
46
63
63
63
46
63

ESCOLA
POLITCNICA DA USP

Exerccios
4. Detecte as linhas presentes nas imagens abaixo:

5. Detecte as linhas e os cantos presentes nas imagens:

ESCOLA
POLITCNICA DA USP

Exerccios

You might also like