• Nenhum resultado encontrado

Detecção de Infração em faixa de pedestres sem semáforos utilizando visão computacional e redes neurais

N/A
N/A
Protected

Academic year: 2021

Share "Detecção de Infração em faixa de pedestres sem semáforos utilizando visão computacional e redes neurais"

Copied!
5
0
0

Texto

(1)

Detecção de Infração em faixa de pedestres sem semáforos utilizando visão

computacional e redes neurais

Alves, B. G. C.; Lima, A. C. de C.

Departamento de Engenharia Elétrica - Escola Politécnica - UFBA,

R. Aristides Novis 2, CEP 40210-630 - Salvador - Bahia - Brasil

E-mails:brufonte@hotmail.com; acdcl@ufba.br

Resumo

Neste trabalho são associadas às ferramentas de Redes Neurais e processamento de Imagens com o objetivo de identificar corretamente a infração, presença de veículos e pessoas sobre a faixa de pedestres, cometida por veículos em faixas de pedestres que não dispõem de semáforos, através de um software feito no C++ Builder5. Para isso foi feita a utilização de técnicas básicas de detecção de bordas, juntamente com uma solução especifica desenvolvida neste trabalho que melhora o processo de detecção das mesmas, facilitando assim o reconhecimento de veículos na faixa de pedestres por padrões geométricos, deixando só as informações necessárias para que a rede neural utilizada convergisse para um espaço de solução satisfatório para a identificação da presença de pessoas na faixa de pedestres. A utilização de redes neurais para identificação de pessoas na faixa veio da grande dificuldade encontrada com utilização de outros métodos, da sua excelente capacidade de reconhecer padrões em tempo real, mesmo quando o espaço de pontos a ser utilizado é grande. Como resultado, demonstra-se que o algoritmo desenvolvido é bem sucedido, proporcionando a resolução do problema aqui citado com uma taxa de acerto acima de 94%.

1. Introdução

A criação da faixa de pedestres veio com a finalidade de melhorar o andamento do transito de carros e pedestres, permitindo que o deslocamento de ambos pudesse existir de forma harmônica. Os artigos 70 e 71 do Código Nacional de Transito dizem que: os pedestres que estiverem atravessando a via sobre as faixas delimitadas para este fim terão a prioridade de passagem, exceto nos locais com sinalização semafórica, onde deverão ser respeitadas as disposições deste Código. Como diz o código citado acima existem faixas que tem seu controle de preferência feito por semáforos e outras que não. Nas que não tem o seu controle realizado por semáforo, o pedestre tem a prioridade. Assim com base em garantir o cumprimento da lei e a devida punição para aqueles que

venham a descumpri-la, nasceu a idéia de desenvolver um algoritmo e um software que realize o processo de detectar a infração do automóvel para aquela faixa que não possui semáforo. Dentro deste contexto este trabalho tem o objetivo de achar uma solução para o problema de detecção da infração em tempo real.

A detecção da infração foi dividida assim em duas partes. A primeira é a identificação de veículos na faixa de pedestres e a segunda é, uma vez que a presença de veículos foi detectada, verifica-se a existência de pessoa(s) na faixa.

Em cada uma das etapas foi feita uma analise detalhada de quais características podiam ser utilizadas e extraídas para o reconhecimento dos dois padrões desejados, e assim realizar a identificação de infração de forma correta.

2. Materiais e Metodologia

Para a realização deste trabalho foi feita a utilização de uma câmera de filmagem digital da Sony, de um computador com memória RAM de 256MB e um processador celeron 1.3GHz, da ferramenta de simulação e programação Matlab 7.1 e da ferramenta de programação C++ Builder 5.

Em seguida foi feita a gravação de vários arquivos de vídeos no formato MPG e com uma resolução de 480 por 640 pixels com um tamanho de gravação variando entre dois e três minutos, correspondendo a diferentes faixas de pedestre sem semáforo. Inicialmente foi feita a captura de vários frames de cada arquivo de vídeo com o software Breeze 5.4.1 Light, gerando assim uma seqüência de imagens em formato JPG contendo imagens sem a presença de veículos e pessoas, com a presença apenas de veículos, com presença apenas de pessoas e com a presença de ambos. Dois tipos de pastas foram geradas, uma contendo imagens para os teste da presença de veículos e identificação de infração, e outra para o treinamento da rede neural.

O passo seguinte foi então o desenvolvimento de um algoritmo que fosse capaz de segmentar a imagem de forma a deixar apenas as informações de interesse para a identificação do padrão veículo(s), e veiculo(s) e pessoa(s). O padrão comum a todos os veículos é a

(2)

presença da roda. Esta pode ser identificada pela presença da jante ou calota, tendo uma forma geométrica circular.

O padrão circular pode ser facilmente identificado, independente de seu tamanho, com base apenas no seu perímetro e em sua área [1]. Com isso temos:

2

4

P

Area

FC

=

π

(1) 2

r

Area

=

π

(2)

P

=

2

π

r

(3) Essa relação para um objeto com formato de circulo adquire o valor unitário, proporcionando assim uma maneira para a identificação de veiculo(s) na faixa.

Com base na equação 1 foi desenvolvido um algoritmo que fosse capaz de segmentar a imagem deixando-a na melhor maneira para que o calculo de FC pudesse ser realizado.

A presença de pessoas na faixa não revela nenhum padrão básico que possa ser utilizado de forma confiável a poder garantir uma alta taxa de acertos. Existem varias possibilidades quanto a este padrão pessoa(s), como, por exemplo, uma única pessoa, varias pessoas agrupadas ou superpostas, pessoas separadas, pessoas separadas e agrupadas. Junto a tudo isso ainda existem combinações de tamanhos e formas diferentes que as combinações citadas acima podem assumir, devido a fatores como tamanho, peso, tipo de roupa, cor da roupa e variações climáticas. Devido a isso o método que fosse utilizado para realizar esta tarefa teria que ter uma capacidade de reconhecer essas diferentes variações, com uma alta taxa de acerto, acima de 90% e em tempo real. Assim a opção mais simples encontrada foi à utilização de redes neurais.

3. Detecção de veículo (s) na faixa

Para realizar a detecção de veículos na faixa de pedestres foi desenvolvido um algoritmo que fosse capaz de segmentar a imagem de forma a conseguir mostrar a borda das jantes e calotas das rodas, independente da condição climática, das sombras e em tempo real.

Para a realização deste algoritmo o primeiro passo foi realizar a detecção das “edges”. Existem vários métodos para a realização desta tarefa. Os mais comuns e que na maioria das situações apresentam bons resultados são Prewitt [2], Sobel [2] e Canny [3]. Deste três métodos citados apenas Sobel e Canny foram implementados. O argumento para a não utilização de Prewitt é que este apresenta uma maior sensibilidade a ruído do que Sobel. Estes métodos geraram imagens muito suscetíveis a variações de luminosidade, o que implicou na constante alteração de alguns de seus parâmetros para que a taxa de acerto não fosse alterada devido a essa variação. Para Sobel o parâmetro é um valor limite, onde os pixels que tiverem valor acima ou igual a ele assumem o valor 255

enquanto os que estiverem abaixo assumem o valor 0. Para Canny os parâmetros eram o desvio padrão, os limites inferior e superior de supressão.

Essa constante necessidade de mudanças nos parâmetros destes métodos inviabilizava a característica de independência em relação à variação da luminosidade. Para a resolução deste problema foi desenvolvido um algoritmo especifico, que em conjunto com a de detecção de edges, permite quase que total independência em relação à variação de luminosidade, gerando as bordas desejadas de forma correta.

Este algoritmo realiza a criação de uma mascara quadrada, de dimensão impar fornecida pelo usuário. Varrendo a imagem da esquerda para a direita e de cima para baixo, analisando cada pixel

I

(

x

,

y

)

da imagem

I

através da equação 4. 2 2 1 2 1 2 1 2 1

)

,

(

)

,

(

n

j

y

i

x

I

y

x

M

n n i n n j

∑ ∑

− − − = − − − =

+

+

=

(4)

O pixel

I

(

x

,

y

)

em questão é analisado para ver se ele é maior que

M

(

x

,

y

)

ou se ele satisfaz a equação 5.

(

)

T

y

x

M

y

x

M

y

x

I

)

,

(

)

,

(

)

,

(

(5) Onde

T

é um valor percentual limite fornecido pelo usuário, em que o pixel

I

(

x

,

y

)

deve estar abaixo em relação a

M

(

x

,

y

)

. Se o pixel em analise satisfazer esta condição ele assumirá o valor 255, se não seu valor será 0. Este método é chamado de detecção de borda por média.

Com este algoritmo é possível encontrar as bordas das calotas e jantes de forma correta, sem falhas ou descontinuidades. Mesmo contendo dois parâmetros de entrada, estes têm valores que podem ser encontrados facilmente, gerando a imagem desejada e independente da variação de luminosidade.

Uma vez que a imagem é segmentada, resta agora calcular o fator geométrico FC. No entanto com pode ser visto na figura 1, as jantes e calotas produzem círculos com vários buracos e isto impossibilita o uso da equação 1. Assim foi utilizado um algoritmo que busca os objetos presentes e preenche seus espaços vazios(preto) classificando eles como circulo ou não, com base na equação 1. Este algoritmo também faz uma filtragem por área, eliminando objetos com valores de área inferior a uma certa porcentagem da área total, o que deixa só informações pertinentes para serem analisadas tanto na fase de detecção de carro como de

(3)

pessoa.

Assim o algoritmo completo para a detecção de carro é como mostrado abaixo.

1. Inicia a leitura do arquivo 2. Captura o frame

3. Converte de RGB para tons de cinza

4. Faz a suavização da imagem com uma mascara de dimensão 3x3, gerada através de uma função gaussiana de desvio padrão 1. 5. Faz a detecção das edges com uma mascara

obtida através da derivada da função gaussiana.

6. Aplica-se o método de detecção de borda por media.

7. Aplica-se o método de detecção de circulo.

4. Detecção de pessoas

Como justificado na seção 2, a utilização de redes neurais para o reconhecimento de pessoas na faixa de pedestre se mostrou a melhor solução para esta tarefa.

A idéia básica consiste em utilizar uma rede simples e que resolva o problema de detecção com uma alta taxa de acerto. Para isso resolveu-se inicialmente utilizar uma rede de múltiplas camadas alimentada adiante, tendo uma camada de entrada, uma camada oculta composta de quatro neurônios e um neurônio de saída. A utilização de apenas um neurônio se dá pelo fato de que a rede só precisa dar uma resposta positiva ou negativa, indicando assim a presença de pessoa(s) ou não.

Para realizar o treinamento da rede foi escolhido o algoritmo de retropropagação de erro, por este já ter sido aplicado com grande sucesso para resolver diversos problemas de grande dificuldade em conjunto com a rede de múltiplas camadas alimentada adiante [4]. A descrição deste algoritmo, no contexto da busca dos coeficientes para a rede neural aqui proposta, pode ser vista logo abaixo.

1. Um lote contendo m imagens em formato JPG de 480x640 pixels é apresentado à rede, juntamente com a sua indicação de ter presença ou não de pessoa.

2. Cada uma das m imagens é convertida em um vetor linha x[n] e é plicada a camada de entrada.

3. Calcula-se o campo local induzido para os neurônios da camada 1, que é a camada oculta, usando a equação 6.

4. Passa-se a resposta de saída de cada neurônio da camada oculta para a entrada do neurônio da camada de saída.

5. Calcula-se a resposta do neurônio da camada de saída através da equação 6 e calcula-se o sinal de erro através da equação 7.

6. Calcula-se o gradiente do neurônio da camada de saída através da equação 8 e faz-se a

correção dos seus pesos sinapticos através da equação 9.

7. Calcula-se o gradiente de cada neurônio da camada oculta através da equação 10 e faz-se a correção de seus pesos sinapticos através da equação 9.

8. Repete-se os passos de dois a sete ate que a rede chegue ao valor de erro quadrático satisfatório.

O valor satisfatório neste caso foi 0.01 porcento do erro Maximo possível, que é 2,7159. Este valor de erro deu-se devido à utilização de uma função de ativação anti-simétrica mostrada na equação 11. Onde os valores ótimos para a e b são 1,7159 e 2/3 consecutivamente [5].

= −

=

M i l i ji l j l

y

n

w

n

v

0 1

)

(

)

(

(6) Na equação 6

l

é a camada,

M

a quantidade de sinais que estão conectado ao neurônio

j

,

i

o neurônio ou sinal de entrada se a camada

i

for a camada de entrada,

y

o sinal de saída do neurônio

i

ou sinal de entrada se a camada for de entrada e

w

o valor da peso sinaptico que conecta o neurônio

i

ao

j

.

e

Lj

(

n

)

=

d

j

(

n

)

y

Lj

(

n

)

(7)

Na equação 7

L

indica o a ultima camada e a profundidade da rede também e

d

j

(n

)

o valor esperado para a saída do neurônio

j

.

δ

Lj

(

n

)

=

e

Lj

(

n

)

ϕ

'j

(

v

Lj

(

n

))

(8)

Na equação 8

ϕ

'jé a derivada da função de ativação.

w

lji

(

n

+

1

)

=

w

lji

(

n

)

+

η

δ

lj

(

n

)

y

l−1i

(

n

)

(9)

Na equação 9

η

é o parâmetro de taxa de aprendizagem.

=

+

+ k kj l k l j l j j l

n

w

n

n

v

n

)

(

(

))

(

)

(

)

(

ϕ

'

δ

1 1

δ

(10)

Na equação 10

k

é o numero de neurônios da camada a frente conectados ao neurônio da camada anterior

j

.

(4)

ϕ

j

(

n

)

=

a

tanh(

b

v

j

(

n

))

(11) Com estes coeficientes gerados pela rede pode-se então realizar o processo final do algoritmo proposto por este trabalho, que é, depois que a presença de carro foi detectada pelo passo 7 descrito na seção 3, pegar a imagem gerada pelo passo 6, descrita nesta mesma seção e aplicar ela a entrada da rede proposta, tendo como seus coeficientes os valores encontrados no seu processo de treinamento.

5. Resultados

Para os testes e desenvolvimento deste algoritmo foram realizadas três filmagens, sendo que cada uma delas foram feitas em diferentes horários do dia e em três faixas diferentes. Usou-se também um intervalo de 20 frames entre um instante e outro do filme. Partindo então destas

filmagens foram gerados os seguintes resultados. Tabela 1. Resultado do treinamento da rede.

Nome da faixa N° de amostras N° de iterações

Faixa 1 60 300

Faixa 2 110 440

Faixa 3 72 370

A tabela 1 mostra a quantidade de amostras, que neste caso, são as imagens utilizadas para realizar o treinamento da rede e o numero de iterações que rede precisou para convergir ao erro mínimo desejado. Na figura 2 pode-se ver o processo de convergência da rede utilizada na faixa 3. O erro mostrado neste gráfico não está em modulo, por isso pode-se ver valores negativos e positivos.

Figura 2 – Gráfico do erro de saída da rede neural.

Tabela 2. Resultado do teste de detecção de carro.

Nome da faixa N° de amostras Taxa de acerto

Faixa 1 189 94.70%

Faixa 2 292 97.26%

Faixa 3 271 95.20%

A tabela 2 mostra a quantidade de amostras utilizada para cada faixa no teste de detecção de veiculo e a sua

taxa de acerto. Este teste tem a finalidade de avaliar o quão eficiente é o algoritmo aqui proposto na detecção de automóveis na faixa. Na figura 3 e 4 é possível ver o processamento deste teste.

Figure 3 – Imagem da faixa segmentada pelo método proposto seção 3.

Figure 4 – Imagem produzida pelo algoritmo de detecção de veículos.

Tabela 3. Resultados da detecção de infração.

Nome da faixa N° de amostras Taxa de acerto

Faixa 1 142 96.75%

Faixa 2 292 90.00%

Faixa 3 277 96.75%

A tabela 3 mostra a quantidade de amostras utilizadas em cada faixa para o teste de detecção de infração e a taxa de acerto do algoritmo para cada uma delas. Na figura 5 se pode ver a imagem que é entre a rede para o processamento final.

(5)

Figure 5 – Imagem segmentada e filtrada por área.

6. Conclusão

Cada uma das tabelas mostradas na seção anterior nos revela a eficiência do algoritmo em cada uma dos seus três passos principais. Um dos primeiros passos é o treinamento da rede. O treinamento da rede em todas as faixas mostrou uma rápida convergência, principalmente se levarmos em conta o fato de que a situação em analise tem uma grande diversidade de padrões. Com base nesta analise, no número de iterações necessárias para a convergência da rede e nas taxas de acerto na detecção de

infração estarem acima de 90%, pode-se dizer que a escolha de redes neurais para o reconhecimento de pessoas na faixa foi adequada.

O passo dois é identificação de veículos. Olhando os resultados da tabelo 2 pode-se ver a eficiência desta parte, que conseguiu detectar veículos com uma taxa de acerto acima de 94% para a as três faixas. No entanto para veículos do tipo moto, existe uma dificuldade maior em realizar está detecção, pois a roda do mesmo não consegue ser segmentada de forma satisfatória pelo algoritmo aqui proposto e pelos outros que foram utilizados ao longo do seu desenvolvimento. No entanto a detecção para os outros tipos de veículos se dá de forma satisfatória.

A última parte do algoritmo é um trabalho conjunto das duas partes anteriores. Se uma delas falha, a outra também irá falhar. Com os testes feitos e os resultados obtidos percebeu-se que, quanto mais situações diferentes forem

expostas a rede no seu processo de treino, melhor será seu desempenho. Já a detecção de veículos depende do bom posicionamento da câmera que capta as imagens. Se esta estiver posicionada em uma altura acima de 2 metros e centrada para pegar apenas a faixa, implicará então em uma taxa de acerto acima de 94%.

A utilização de apenas três diferentes faixas se deu pelo fato de estas são tem o maior fluxo de pedestres da cidade de Salvador. Assim a quantidade de ocorrência de infração é muito grande e acontecem em intervalos pequenos de tempo. Já as outras faixas têm um fluxo bem menor, o que dificulta conseguir realizar uma filmagem em que ocorra uma quantidade mínima de infrações necessárias para treinar a própria rede.

Com base em tudo o que foi apresentado aqui se pode afirma que o algoritmo aqui proposto consegue realizar a detecção de forma satisfatória, tendo a sua limitação apenas com veículos do tipo motocicleta.

[1] K. Pratt, William, Digital Image Processing: PIKS Inside,.-3. ed, New York : John Wiley & Sons, Inc, 2001, pp. 595.

[2] Gonzalez, Rafael.C, Digital Image Processig/Richard E.Woods, -1.ed, New Jersey : Prentince Hall, 2002, pp. 578.

[3] Canny, J.A, A Computacional approach to edge detection, IEEE Transaction on Pattern Analysis and Machine Intelligence, Publisher, Location, 1986, pp. 679-698.

[4] Haykin, Simon, Redes Neurais: princípios e pratica, trad. Paulo Martins Engel.-2.ed, Porto Alegre : Bookman, 2001, pp. 183.

[5] Haykin, Simon, Redes Neurais: princípios e pratica, trad. Paulo Martins Engel.-2. ed, Porto Alegre : Bookman, 2001, pp. 206.

[6] Haykin, Simon, Redes Neurais: princípios e pratica, trad. Paulo Martins Engel.-2.ed, Porto Alegre : Bookman, 2001, pp. 200.

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Este estudo, assim, aproveitou uma estrutura útil (categorização) para organizar dados o que facilitou a sistematização das conclusões. Em se tratando do alinhamento dos

No 2T18, o segmento apresentou uma pequena redução da receita líquida (desconsiderando receita de longa distância) em relação ao 2T17 e um crescimento de 0,9% na comparação com

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

Mas ele é ( verbo ser, no Presente do Indicativo ) apenas um gato e não tinha tido ( verbo ter, no Pretérito Mais-Que-Perfeito Simples do Indicativo ) tempo de aprender (

a) “O velho dá um passo à frente, três passos atrás, dois passos à frente” _________________. b) O velho estava desorientado

O aluno estudará os princípios básicos do Design e da Decoração de interiores, como desenvolver um projeto, sua apresentação e execução, bem como sua