Detecção de avanço de semáforo vermelho utilizando câmera

Transcrição

Detecção de avanço de semáforo vermelho utilizando câmera
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.