terça-feira, 26 de março de 2013

Lane Departure Warning System" para OpenCV

Migração da demo do Matlab "Lane Departure Warning System" para OpenCV.
video
Detecções feitas por este algoritmo:
  • Tipo de linha (tracejado/continua).
  • Cor da linha (Amarela/branca).
  • Detecção de mudança de faixa de rodagem.
  • Detecção de saida de estrada.

2ª Semana
Implementação da biblioteca Eigen, para faciclitar o uso de matrizes. Visto que no Matlab o tamanho das matrizes é dinamico, e em C++ é necessário alocar o tamanho das matrizes a usar.
Esta biblioteca facilita o uso das matrizes visto não ser necessário alocar o espaço das matrizes.

3ª Semana
Inicialmente foram usados vectores de vectores e vectores, para replicar as matrizes de tamanho dinamico do Matlab. Visto estas não serem compativeis com a biblioteca usada teve-se de adaptar o código para que fosse possivel estes dois tipos de vectores coexistirem. 

4ª Semana
Neste algoritmo são usadas Hough lines para fazer a detecção das linhas que limitam as faixas de rodagem. Para tornar a detecção das linhas mais eficiente são guardados os valores dos angulos e da distancia do melhor par de Hough lines encontrados nos ultimos sete frames. Este processo é feito no matlab por uma função chamada "videolanematching", contudo em OpenCV não existe a necessidade para tal, pois este processo é feito automaticamente pelas linhas de Hough Probabilisticas. Para usar este método é dado o tamanho e o espaçamento entre as linhas e a confiança que queremos que seja detectada a linha. Sendo devolvido por esta função as coordenadas dos pontos extremos da recta detectada. 
Como é possivel observar na figura acima a braco encontram-se as linhas detectadas pela transformade Hough, e a cheio as linhas devolvidas pelo HoughP. (A detecção das linhas ainda não é feita a 100% ainda falta ajustar alguns parâmetros)

A descoberta desta função substitui grande parte do trabalho realizado nas semanas anteriores



Semana de 11 - 15 de Março


Migração da demo do Matlab "Chroma Based Road Tracking" para OpenCV. 

video

video

  • Uso das funções de OpenCV em C++.
  • Publicação/subscrição de mensagens e ROS.

Como é possivel ver nos videos este algoritmo foi convertido para OpenCV com sucesso. Contudo este algoritmo não é aplicavel ao caso do AtlasCar. Pois este algoritmo como o nome indica baseia-se na segmentação por cor. Segmentação essa que é feita de uma maneira muito riguida, não sendo assim aplicável ao nosso caso. Pois as condições de luz, e a cor da estrada estão sempre a variar.