Sistema de visão por computador para prova de condução autónoma Universidade de Trás-os-Montes e Alto Douro Escola de Ciências e Tecnologia Departamento de Engenharias Licenciatura em Tecnologias da Informação e Comunicação Nuno Barbosa / Tiago Moura Leonel Morgado/ Victor Filipe/ António Valente
2) Prova
1) Introdução
5) Técnicas desenvolvidas Após o estudo feito sobre algumas técnicas utilizadas para reconhecimento de imagens (neste caso sinais), surgiram as seguintes ideias: Algoritmo 1 (RGB): • Binarizar a imagem baseada na cor alvo (vermelho ou verde); • Assinalar os dois extremos superiores e inferiores do sinal, na horizontal (transição de cor); • Encontrados os extremos superiores e inferiores, calcular a distância e encontrar o ponto médio superior e inferior (na horizonta); • Calcular a distancia entre os dois pontos médios e achar o centro do sinal (na vertical); • Verificar se o valor do canal vermelho está em superioridade em cada ponto; • Unir os pontos com a cor de interesse para criar a forma aproximada do sinal; • Comparar com a base de dados para descobrir o sinal. Algoritmo 2 (RGB): • Binarizar a imagem baseada na cor alvo (vermelho ou verde); • Definir uma matriz de resolução (variando a precisão de encontrar a forma do sinal); • Procurar nessa matriz os pontos laterais do sinal (na zona de transição de cor), e guardar todos esses pontos dessa lateral, processo que se repete para todas as laterais (superior, lateral esquerda, inferior e lateral direita); • Guardar todos os pontos num único vector filtrado (sem os pontos repetidos), na ordem do relógio e/ou inversa; • Reconstruir o sinal (aproximado); • Comparar na base de dados para descobrir o sinal. Algoritmo 3 (RGB): • De um número pré-definido de linhas horizontais sobre a imagem, procuram-se padrões de cores (vermelho, verde ou amarelo); • Nessas linhas, todos os canais são binarizados, consoante a condição a satisfazer (vermelho, verde ou amarelo); • Somam-se os pontos dos canais e verifica-se qual a que tem maior valor e se esse valor está dentro do limite aceitável; • Se todas as linhas horizontais acusarem o mesmo canal cujo valor está dentro do limite, então, o sinal é identificado com a cor do canal prevalecente; • Se todas as horizontais acusarem um valor fora do limite mas para o mesmo canal, então as linhas na vertical são activadas para procurar o sinal nos extremos da imagem (esquerda e/ou direita); • Se todas as verticais acusarem o mesmo canal dentro do limite aceitável, o sinal é identificado com a cor do canal prevalecente; • Identificado o sinal, a estrutura com a informação é definida para posterior processamento da acção a ser tomada pelo carro.
TEMPLATE DESIGN © 2008
www.PosterPresentations.com
O festival de robótica é composto pelas seguintes competições: • Busca e Salvamento Júnior RoboCup • Dança Júnior RoboCup • Futebol Robótico Júnior RoboCup • Condução Autónoma • Liga INFAIMON Futebol Robótico Médio RoboCup • FreeBots • Robot@Factory • Equipas • Qualificações para o RoboCup Relativamente à condução autónoma, este subdivide-se na classe Challenge e Rookies. Neste caso, iremo-nos centrar nos objectivos da classe Rookies, sendo que: O robô deverá efectuar duas voltas em velocidade (tendo 4 tentativas ou no máximo 10 minutos), a partida é dada pela transição do sinal “X” vermelho para a seta verde de seguir em frente.
Transição
Representação da transição dos sinais (Sinal de partida)
A UTAD possui algum material necessário para este projecto: • Alcatifa com a pista • Sinais verticais • Sinais do painel electrónico • Carro (robô) Vejamos abaixo as componentes do carro:
Legenda: Controlador EPOS 24/5 do motor Baterias (12V cada) Motor MAXON EC Microcontrolador MSP430FG4618 (Texas Instruments) PSP430 USB-Debug-Interface (para programar o microcontrolador) Cameras USB uEye
1) Piccioli • Utilização de uma técnica de segmentação por cor (desconhece-se o modelo de cor utilizado); • Aplicação do algoritmo Canny para fazer uma análise geométrica (com o objectivo de verificar a presença de triângulos ou círculos através da detecção de bordas); • O sinal de STOP é identificado como sendo de forma circular; • O reconhecimento é feito recorrendo ao método de “TemplateMatching”. 2) Michael Shneier • Segmentação por cor (identificar supostos sinais de trânsito presentes nas imagens captadas); • Binarização das imagens segmentadas; • À imagem binarizada são eliminados os pixéis isolados (ruído); • É traçada uma região de interesse em torno destes objectos e procedida de uma análise dessa região; • Caso não cumpram os requisitos pretendidos os objectos são então eliminados (não se tratam de sinais de trânsito); • Redimensionam-se as imagens para o tamanho 48x48 pixéis; • Para proceder ao reconhecimento o autor usa o método de “TemplateMatching”. 3) Ren • •
•
6) Algoritmo da prova
7) Análise do algoritmo da prova
O algoritmo 3, mostrou-se ser mais eficaz em termos de processamento e resposta (identificação dos sinais).
Ao analisar o algoritmo da prova pôde observar-se que este detectava correctamente os sinais pretendidos (cruz vermelha e seta verde). Da análise foi possível observar que o algoritmo acusava falsos positivos, derivado de uma má calibração das cores e ajuste automático da câmara a falta de e/ou excesso de luminosidade. Outra das falhas que foi observada, esta a nível de pensamento algoritmo, foi o facto de todas as linhas terem de ser abrangidas pelas cores de interesse. Por vezes acontecia que o sinal se encontrava na imagem mas não era reconhecido uma vez que a cor de interesse não abrangia todas as linhas. Assim sendo, de 113 imagens capturadas e processadas com um sinal (“X” vermelho e seta verde de seguir em frente), das quais o algoritmo devia ser capaz de identificar, o algoritmo identificou correctamente o sinal em 76 imagens e foi incapaz de o fazer em 37 imagens, perfazendo uma taxa de 67.26% de sucesso na identificação correcta do sinal.
Número de frames
A condução autónoma é uma realidade que se encontra em crescimento, “a Google reuniu uma equipa de experientes engenheiros nesta área e estes têm desenvolvido as tecnologias necessárias para que esta tecnologia digna de livros e filmes de ficção científica passe a fazer parte do nosso quotidiano”. Neste projecto foi desenvolvido um algoritmo de reconhecimento de sinais para a participação da UTAD no festival de robótica (classe Rookies).
4) Algumas técnicas existentes
3) Equipamento que a UTAD possui
Ilustração do funcionamento do algoritmo
•
•
•
•
•
•
Conversão da imagem (do modelo de cor RGB para o modelo HSV); Segmentação por cor (utilização de apenas os dois primeiros dos três elementos do modelo HSV); Detecção de sinais circulares (os autores usam a “HoughCircleTransform”); Para os sinais triangulares, aplicam a “HoughLineTransform” às bordas das zonas vermelhas presentes na imagem para a obtenção de todas as linhas; Aplicação de um algoritmo de detecção de polígonos para identificar os triângulos (não especificado); O tamanho e os ângulos das linhas são analisados (escolha dos candidatos adequados); Os sinais quadrangulares são detectados com a mesma técnica dos sinais triangulares (ângulos formados pelas linhas são de aproximadamente 90 graus); Após a classificação dos sinais quanto à forma, são retirados da imagem principal e redimensionados para o tamanho de 128x128 pixéis; Na etapa do reconhecimento é aplicada a funcionalidade de detecção SIFT (ScaleInvariantFeatureTransform), que vai comparar os sinais detectados com os presentes numa base de dados.
Informações adicionais
10 9 8 7 6 5 4 3 2 1 0
http:/ / robotica2011.ist.utl.pt/
Referências Número de vídeos
http://pt.wikinoticia.com/entretenimento/motor/79380-google-fala-no-ted-no-car http://pplware.sapo.pt/informacao/carros-da-google-sem-condutor-ja-circulam /