Detecção de avanço de semáforo vermelho utilizando câmera embarcada em veículos automotores Rafael H. Brasil , Alexei M. C. Machado (Orientador) Programa de Pós-graduação em Engenharia Elétrica Pontifícia Universidade Católica de Minas Gerais (PUC-MG) [email protected], [email protected] Resumo – Com a dificuldade de se implantar detectores de avanço em todos os semáforos em uma cidade, há necessidade de se proporem novas formas de detectar esses avanços. Este trabalho propõe o monitoramento do veículo diante de semáforos a partir de uma câmera embutida no próprio veículo. O método proposto para o problema converte as imagens da câmera para o espaço HSV e busca cores existentes nas luzes dos semáforos. Identificado e confirmado o semáforo vermelho, ele é rastreado na imagem até que desapareça. O método é testado em um vídeo de benchmark. Palavras-chave: trânsito, semáforo, avanço de semáforo. 1. Introdução A indústria automotiva tem investido em sistemas de transporte mais inteligentes com o objetivo de auxiliar o condutor a pensar em tempo hábil, tomar decisões e, por conseguinte, ajudar a poupar vidas e recursos. Assim, um sistema capaz de detectar a sinalização pode, de alguma forma, melhorar diretamente a segurança desses condutores. A ideia principal é dar ao veículo capacidade de percepção, de modo que ele possa interpretar o que há à sua volta. A detecção de sinalização de trânsito e tráfego ganhou mais importância com o intuito de garantir mais segurança na condução de veículos motorizados, através do suporte ao condutor, e no desenvolvimento de veículos autônomos. Este trabalho propõe como problema a detecção e reconhecimento de avanço de semáforo vermelho com imagens capturadas por uma câmera embarcada no próprio veículo. Propõe também um método de realizar a detecção de avanço baseada no deslocamento dos semáforos dentro da imagem capturada. Na próxima seção, algumas técnicas de detecção e reconhecimento de sinalização de trânsito são apresentadas. A seção 3 detalha o método proposto, seguido de experimentos e conclusão. 2. Trabalhos Relacionados Duas formas muito comuns para se detectar e reconhecer sinais de trânsito através de imagens são a segmentação com base na cor e a segmentação com base em bordas. As técnicas que utilizam cores tendem a ter melhor controle sobre a iluminação. Um exemplo utilizando o espaço de cores HSV é descrito por Fleyeh [4]. Os trabalhos de Fairfield e Urmson, Shen et al. e Levinson et al. [3, 8, 6] tratam da detecção e reconhecimento de semáforos de trânsito. Fairfield e Urmson extraem, de uma imagem de 5 megapixels, uma região de 2040 x 1080, resolução esta suficiente para permitir detecção a 150m do veículo. Esta distância é considerada razoável para se parar o veículo a uma velocidade de 90 km/h. Partindo do pressuposto de que semáforos costumam ser localizados em cruzamentos, Fairfield e Urmson e Levinson et al. utilizam consultas geoespaciais, através da API do Google Maps, para descartar imagens distantes de cruzamentos. Todavia, essa regra não se aplica no Brasil, onde, em vários lugares, é comum se encontrarem semáforos em uma simples travessia de pedestres. Além disso, o sistema se tornaria altamente dependente da conexão com o GPS. Os resultados dessa abordagem, no entanto, chegam a apresentar uma precisão superior a 99% para alguns vídeos. Diferentemente dos trabalhos de Fairfield e Urmson e Shen et al., em que a câmera está localizada no veículo, um método de detecção de avanço de sinal vermelho é proposto por Yung e Lai [10] e por Luo et al. [7], com a câmera localizada em um ponto fixo da via onde são visíveis o semáforo, a faixa de retenção e os carros de passagem. O método de Yung e Lai identifica o semáforo mais próximo (o maior na imagem) e o utiliza no processamento. A detecção é feita com base na cor: branca para faixa de retenção e vermelha, amarela e verde para o semáforo. Os resultados dos testes alcançaram 100% de acerto nos testes. Luo et al. realiza os testes em uma interseção com direita livre, ou seja, onde o semáforo não é válido para convergência à direita (somente para os veículos que convergem à esquerda ou seguem em frente). Os resultados apresentam precisão um pouco inferior ao de Fairfield e Urmson, em torno dos 90%. O rastreamento do semáforo é tratado como foco principal por Gong et al. [5] e por Yelal et al. [9]. Gong et al. utiliza um método já existente chamado Camshift [1], enquanto Yelal et al. propõe um novo método. Gong et al. e Fleyeh utilizam espaço de cores HSV para buscar possíveis semáforos, aplicam erosão e dilatação para reduzir ruídos e fazem o reconhecimento com algoritmo baseado em aprendizado de máquina. Por fim, o semáforo reconhecido é rastreado na imagem usando Camshift. O método proposto por Yelal et al. utiliza detecção das bordas da rodovia para estimar as possíveis posições de um semáforo, considerando a haste que o segura. O semáforo é detectado e rastreado sem se preocupar com a cor da luz acesa no momento. 3. Metodologia Sistemas de detecção de avanço de semáforo vermelho baseados em visão computacional usualmente utilizam câmeras fixadas em pontos estratégicos da via, tornando-se parte do sistema de controle do trânsito naquele local. O problema proposto neste trabalho parte do princípio de que a câmera esteja embarcada no veículo, transformando o sistema em um modo de monitoramento do veículo e do condutor, não mais da via. Um sistema de detecção de semáforos deve ser robusto o suficiente para não se enganar com luzes vermelhas originadas de fontes diversas, como lanternas de veículos, outdoors, luzes na calçada, etc. Além disso, o desaparecimento de um semáforo, independentemente de qual luz encontra-se acesa, não indica necessariamente que o veículo passou por ele. Pode ser apenas uma oclusão momentânea. É indispensável a capacidade de se rastrear um semáforo já detectado para evitar falsos positivos casos de oclusão momentânea. câmera. O processo de segmentação converte a imagem para o espaço HSV, por ser este menos sensível à luminosidade ambiente, e busca por elementos vermelhos, amarelos e verdes, de forma aproximadamente arredondada. Como a iluminação de semáforos segue um padrão de cor (aproximadamente os mesmos tons de vermelho, amarelo e verde), é possível concluir que os semáforos utilizam uma faixa estreita do espectro. Assim, assume-se que um vídeo consiste de imagens coloridas It, onde t é o tempo, definidas como ft,H (x, y) It = ft (x, y) = ft,S (x, y) ft,V (x, y) (1) onde (x, y) denota as coordenadas de um pixel e ft,H (x, y), ft,S (x, y) e ft,V (x, y) os valores de matiz, saturação e brilho, respectivamente. As regiões vermelhas RR,K , amarelas RY,K e verdes RG,K são definidas como ( ) ft (x, y) : |ft,H (x, y)| < th e RR,k = ft,V (x, y) > tv ( ) ft (x, y) : ft,H (x, y) − π3 < th e RY,k = ft,V (x, y) > tv ( RG,k = ft (x, y) : ft,H (x, y) − 2π 3 < th ft,V (x, y) > tv e ) (2) onde th, ts e tv são valores de tolerância definidos durante os testes. Essa tolerância permite pequenas variações na cor devido a condições adversas que modifiquem a percepção da cor. As fontes de luz identificadas neste passo são consideradas como áreas de interesse. A Figura 1 mostra um exemplo de imagem onde a cor é extraída corretamente como informação relevante. A técnica aplicada para a resolução do problema é dividida em três fases: Segmentação, Detecção e reconhecimento e Rastreamento. 3.1. Segmentação Uma câmera captura as imagens numa resolução mínima de 640x480, resolução considerada suficiente para se detectar um semáforo próximo da Figure 1. Extração da cor verde como região de interesse. É comum surgirem pequenas distorções na cor que poderiam confundir o processo de segmentação. Assim, um passo de erosão seguido de dilatação reduzem pequenos ruídos, de modo que regiões de interesse que não tenham uma área mínima (dependendo do tamanho da imagem) serão facilmente eliminados. 3.2. Detecção e reconhecimento As regiões de interesse definidas passam por uma série de filtros de validação, incluindo tamanho mínimo (5x5 pixels), altura mínima (parte superior da imagem) e forma (aproximadamente arredondada). Os parâmetros de validação foram definidos com base em testes. Nos casos em que mais de um semáforo seja detectado, como na Figura 2, o mais alto é tido como mais próximo, desprezando-se os demais. Figure 2. Via com múltiplos semáforos. 3.3. Rastreamento Um semáforo detectado passa a ser controlado a cada imagem It subsequente. Ele deve, preferencialmente, deslocar-se para posições superiores da imagem. A partir do deslocamento vertical do semáforo, é possível se estimar a continuidade da sua trajetória e, assim, inferir se o semáforo desapareceu da imagem ou se sofreu uma oclusão, seja ela parcial ou total. O rastreamento é realizado usando Camshift, a mesma técnica adotada por Bradski [1]. O algoritmo Camshift é aplicado nas proximidades da última detecção a procura da posição da luz, independentemente da cor. Se encontrada nova posição, reposiciona a região de interesse com base na nova posição da luz. Caso contrário, é necessário aguardar alguns quadros pelo retorno do semáforo. Se o semáforo não retornar, considera-se que já saiu do alcance da câmera, caracterizando um possível avanço de semáforo caso a luz presente seja vermelha no momento do desaparecimento. O simples fato de a luz vermelha desaparecer não indica um avanço do sinal vermelho. A fase de rastreamento é responsável por definir se o semáforo saiu da área da imagem ou se desapareceu dentro dos limites da imagem. 4. Experimentos O problema proposto, bem como a proposta de solução, foram avaliados com base e um vídeo cedido por Charette [2], com 25 quadros por segundo, em resolução 640x480 pixels, 8 bits por pixel. O vídeo possui um total de 11.179 quadros. A taxa de atualização foi reduzida para 5 quadros por segundo, reduzindo-se o volume total para 2235 quadros. Os testes foram realizados em um computador Core i3 2.3 GHz, com 6GB de RAM e executando Ubuntu 14.04. O código foi implementado em C++ com uso da bibliteca OpenCV. O veículo portador da câmera passa, ao longo do video, por 8 semáforos vermelhos, mas não avança nenhum. Os semáforos vermelhos são detectados, mas há um grande número de falsos positivos, totalizando 72 avanços de semáforo (3% dos quadros processados). O processamento do vídeo, de 8 minutos e 49 segundos, levou cerca de 2 minutos e 17 segundos. A Figura 2 exemplifica um caso onde a câmera se aproxima do veículo da frente e, com isso, o semáforo vermelho desaparece verticalmente, caracterizando um falso positivo. 5. Conclusão Este trabalho propôs uma solução para o problema de detecção de avanço de semáforo vermelho com câmera embarcada no veículo. Regiões candidatas são avaliadas com base na cor e o semáforo encontrado é rastreado. Não foi possivel determinar o acerto da detecção de avanço de semáforo, mas os falsos positivos puderam ser verificados em 3% dos quadros processados. Como trabalhos futuros, espera-se a realização de testes de campo com a câmera melhor posicionada (maior inclinação vertical) para evitar falsos positivos apenas pela proximidade com o semáforo. Serão realizados testes simulando avanços de semáforos através da alteração do posicionamento da câmera e testes comparativos com outras técnicas de detecção de avanço de semáforo vermelho. References [1] Gary R Bradski. Computer vision face tracking for use in a perceptual user interface. Intel Technology Journal Q2 ’98, 1998. [2] Raoul de Charette. Traffic lights recognition (tlr) public benchmarks, October 2013. URL http://www. lara.prd.fr/benchmarks/ trafficlightsrecognition. [3] N. Fairfield and C. Urmson. Traffic light mapping and detection. In Robotics and Automation (ICRA), 2011 IEEE International Conference on, pages 5421–5426, 2011. doi: 10. 1109/ICRA.2011.5980164. [4] H. Fleyeh. Shadow and highlight invariant colour segmentation algorithm for traffic signs. In Cybernetics and Intelligent Systems, 2006 IEEE Conference on, pages 1–7, 2006. doi: 10.1109/ICCIS.2006.252225. [5] Jianwei Gong, Yanhua Jiang, Guangming Xiong, Chaohua Guan, Gang Tao, and Huiyan Chen. The recognition and tracking of traffic lights based on color segmentation and camshift for intelligent vehicles. In Intelligent Vehicles Symposium (IV), 2010 IEEE, pages 431–435, June 2010. doi: 10.1109/IVS.2010. 5548083. [6] J. Levinson, J. Askeland, J. Dolson, and S. Thrun. Traffic light mapping, localization, and state detection for autonomous vehicles. In Robotics and Automation (ICRA), 2011 IEEE International Conference on, pages 5784–5791, 2011. doi: 10.1109/ICRA.2011. 5979714. [7] Di Luo, Xiangnian Huang, and Li Qin. The research of red light runners video detection based on analysis of tracks of vehicles. In Computer Science and Information Technology, 2008. ICCSIT ’08. International Conference on, pages 734–738, 2008. doi: 10.1109/ ICCSIT.2008.83. [8] Yehu Shen, U. Ozguner, K. Redmill, and Jilin Liu. A robust video based traffic light detection algorithm for intelligent vehicles. In Intelligent Vehicles Symposium, 2009 IEEE, pages 521–526, 2009. doi: 10.1109/IVS.2009. 5164332. [9] Mahipal Reddy Yelal, Sreela Sasi, Glenn R Shaffer, and Ajith K Kumar. Color-based signal light tracking in real-time video. In Video and Signal Based Surveillance, 2006. AVSS’06. IEEE International Conference on, pages 67–67. IEEE, 2006. [10] N. H C Yung and A. H S Lai. An effective video analysis method for detecting red light runners. Vehicular Technology, IEEE Transactions on, 50(4):1074–1084, 2001. ISSN 00189545. doi: 10.1109/25.938581.