segunda-feira, 20 de maio de 2013

Real time Detection of Lane Markers in Urban Streets


Breve descrição

Como o nome indica este algoritmo tem como objectivo a detecção de marcadores de faixa em ambiente urbano.
Este algoritmo encontra-se dividido em várias partes:

1. Perspectiva Invertida

O uso da perspectiva invertida tem como objectivo eliminar o efeito de perspectiva das linhas, ou seja, estas deixam de parecer que convergem para um ponto passando a estar paralelas ente si. O uso desta técnica permite focar a atenção do algoritmo numa dada região da imagem, reduzindo assim os tempos de processamento da mesma.
Para utilizar esta técnica sáo necessários alguns dados, como por exemplo, a transformação entre o referencial do mundo e o da camera, entre outros.

2.  Filtragem

A imagem inverdita é então filtrada usado um filtro gaussiano. Na direcção vertical é usado um filtro de suavisação, e na direcção horizontal a segunda derivada, que é ajustado de acordo com a largura esperada para as linhas das faixas.
Estes filtros estão especialmente ajustados para linhas brancas em fundo preto, linhas estas que são assumidas como sendo os separadores das faixas de rodagem. 

3.  Detecção das linhas

Para a detecção das linhas são usadas duas tecnicas, uma versão simplificadas da Transfomada de Hough para contar o numero de linhas na imagem, seguido de uma iteração usando o método se RANSAC (RANdom SAmple Consensus).
  • A transformada de Hough devolve o valor da soma de cada coluna da imagen filtrada, soma esta que é usada para encontrar o local dos máximos, que será a o mesmo local das linhas na imagem. Estes pontos são usados para representar uma parábola com as posições das linhas. São ainda agrupadas linhas muito próximas, para evitar a multipla deteção das mesmas.
  • Seguidamente obtem-se uma melhor correspondencia usando RANSAC. Cada linha detectada é isolada e volta a ser processada usando novamente RANSAC.

4.  RANSAC - aproximação de curvas

O passo anterior devolve as linhas candidatas, que são depois refinadas por este processo. 
Para cada linha é criada uma janela que envolve a mesma, onde é feita a aproximação da linha encontrada a uma parábola de 3º grau. Para cada processo de aproximação novo são usados os valores da ultima iteração, tentando assim acelerar este processo.

O processo de aproximação está dividido em 3 fases :
  • Obter uma amostra aleatória dos pontos que se encontram dentro da região de interesse. Pontos esses que são obtidos usando uma amostragem ponderada, com pesos proporcionais aos valores dos pixeis da imagem. Isto ajuda a escolher os pixeis mais relevantes, pontos com uma maior probabilidade de pertencerem á linha.
  •  Seguidamente é feita a aproximação da curva, para isso é usado o método dos quadrados minimos. Obtendo-se assim uma amostra de n pontos, atribuindo-lhes um valor de 0 a 1 individualmente, valor este que é proporcional à soma comulativa das distancias euclidianos ao 1º ponto.
  • Num RANSAC normal estariamos interessados em calcular as distancias normais em cada ponto a uma curva de 3º grau , para obter o nivel de correspondencia. Contudo isto implicava resolver uma equação de 5º grau para cada ponto. Em vez disso usou-se um método mais eficiente, calculando o nivel de correspondencia da curva por tetativas sucessivas, usando um processo iterativo eficiente. Contando de se seguida o valor dos pixeis pertencen-tes à curva, onde e tido em conta a lineridade e o comprimento da mesma, penalizando as mais curtas e as mais curvas.

5. Pós-processamento

Neste processo tenta-se obter uma localização mais acertiva da curva e extender a mesma.
Isto é feito tanto na imagem de perspectiva invertida como na imagem original. Depois de feita a projecção invertida das linhas encontradas na perspectiva invertida para a imagem original são realizados 3 passos:
  • Localização: Começa-se por obter pontos pertencentes à curva inicial, onde é traçada outra curva. Pontos estes que são normais á direcçao tangente da nurva neste ponto. Então obtem-se o perfil da escala de cinza esta curva, calculando-se assim o local dos pixeis onde esta linha passa. Pretende-se assim obter uma melhor localização dos pontos pertencentes a curva que melhor tradiz a linha da estrada. É ainda feita a verificação da mudança de angulo feita por este ponto, este novo ponto é rejeitado caso a sua localização seja muito distante da localização prevista para este. Finalmente é feita uma nova aproximação da curva com estes novos pontos esncontrados.
  • Extensão:  Depois da posição da curva ter sido melhorada, é feita a extensão desta nas imagens para se obter uma melhor aproximação á curva. Isto é feito semelhantemente olhando para a frente e para trás a partir dos pontos finais da curva ao longo da direcção tangente, são criados segmentos de linha através da direcção normal, onde são encontrados os pontos de convolução da escala de cinza desses segmentos.
  • Verificação de geometria: Depois dos passos anteriores, é feita uma verificação de geometria nas novas curvas encontradas, para ter a certeza de que estas não são muito curvas ou muito curtas.


Créditos

Este algoritmo dá se pelo nome de "Real time Detection of Lane Markers in Urban Streets" , criado por  Mohamed Aly em parceria com o Computational Vision Lab da California Institute of Technology.

Sem comentários:

Enviar um comentário