• Nenhum resultado encontrado

Detecção e estimativa de velocidade veicular através de processamento de imagem

N/A
N/A
Protected

Academic year: 2021

Share "Detecção e estimativa de velocidade veicular através de processamento de imagem"

Copied!
56
0
0

Texto

(1)

BACHARELADO EM ENGENHARIA ELÉTRICA

IGOR CARNEIRO STACHESKI OSCAR BROCH JUNIOR

DETECÇÃO E ESTIMATIVA DE VELOCIDADE VEICULAR ATRAVÉS

DE PROCESSAMENTO DE IMAGEM

TRABALHO DE CONCLUSÃO DE CURSO

PONTA GROSSA 2018

(2)

DETECÇÃO E ESTIMATIVA DE VELOCIDADE VEICULAR ATRAVÉS

DE PROCESSAMENTO DE IMAGEM

Trabalho de Conclusão de Curso apresen-tado como requisito parcial à obtenção do título de Bacharel em Engenharia Elétrica, do Departamento Acadêmico de Eletrônica, da Universidade Tecnológica Federal do Paraná.

Orientadora: Profa

¯. Dra. Marcella

Scoczynski Ribeiro Martins

PONTA GROSSA 2018

(3)

Diretoria de Graduação e Educação Profissional Departamento Acadêmico de Eletrônica

Bacharelado em Engenharia Elétrica

TERMO DE APROVAÇÃO

DETECÇÃO E ESTIMATIVA DE VELOCIDADE VEICULAR ATRAVÉS DE PROCESSAMENTO DE IMAGEM

por

IGOR CARNEIRO STACHESKI e

OSCAR BROCH JUNIOR

Este Trabalho de Conclusão de Curso foi apresentado em 27 de novembro de 2018 como requisito parcial para a obtenção do título de Bacharel em Engenharia Elétrica. Os candidatos foram arguidos pela Banca Examinadora composta pelos professo-res abaixo assinados. Após deliberação, a Banca Examinadora considerou o trabalho aprovado.

Profa

¯. Dra. Marcella Scoczynski Ribeiro Martins

Orientadora

Profa

¯. Dra. Virgínia Helena Varotto Baroncini Prof. Dr. Max Mauro Dias Santos

Membro Titular Membro Titular

Prof. Dr. Josmar Ivanqui Prof. Me. Jeferson José Gomes

Responsável pelos TCC Coordenador(a) do Curso

(4)
(5)

Um agradecimento especial aos nossos pais João Antônio Stacheski, Claudia Aparecida Carneiro, Ivone Broch e Oscar Broch, por todo amor, todas as palavras de apoio e conselhos cedidos ao longo de todos os anos na universidade. Eles não mediram esforços para a realização do nosso sonho e sem eles nada disto haveria se tornado realidade.

Aos nosso familiares, pelo carinho, compreensão de nossa ausência e total apoio ao longo da nossa jornada acadêmica. Agradecemos ao nossos amigos e cole-gas que estiveram conosco durante toda a graduação compartilhando as experiências e dificuldades, e sempre fortalecendo um ao outro.

Igor Stacheski agradece em especial a Letícia Smaniotto, pelo incondicional apoio, amor altruísta e enorme complacência nos meses que envolveram o período de sua graduação.

A nossa orientadora Profa

¯. Dra. Marcella Scoczynski Ribeiro Martins, que nos

mostrou os caminhos a serem seguidos e principalmente pela confiança em nós de-positada.

Aos professores da UTFPR de Curitiba, Dr. Rodrigo Minetto, Dr. Bogdan T. Nassu e Me. Diogo C. Luvizon que disponibilizaram a base de dados utilizada neste trabalho.

Enfim, a todos que de algum modo contribuíram para a realização deste tra-balho.

(6)

STACHESKI, Igor Carneiro; BROCH JUNIOR, Oscar.Detecção e estimativa de ve-locidade veicular através de processamento de imagem. 2018. 56 f. Trabalho de Conclusão de Curso (Bacharelado em Engenharia Elétrica) – Universidade Tecnoló-gica Federal do Paraná. Ponta Grossa, 2018.

Técnicas de processamento de imagem estão cada vez mais presentes no monitora-mento de tráfego de veículos. Este trabalho propõe um projeto inicial de um medidor de velocidade veicular utilizando uma câmera fixa e um computador. Inicialmente, fo-ram apresentados as teorias para a formação das imagens e suas propriedades que serão relevantes para o desenvolvimento do presente trabalho. Para a elaboração do algoritmo, foram utilizadas diversas técnicas de processamento de imagem, como a subtração de fundo, operações morfológicas, equalização de contraste e transforma-ção de perspectiva com o objetivo de aumentar as chances de sucesso no rastrea-mento do veículo e realizado o cálculo da velocidade estimada. Os resultados foram comparados com valores de referências obtidos através de medidores indutivos tradi-cionais com o intuito de validar o método desenvolvido. A taxa de detecção de veículos ficou próximo a 95% e a média dos erros da velocidade em ± 2,265 km/h.

Palavras-chave: Medição de Velocidade. Processamento de Imagem. Visão Compu-tacional. Detecção de Veículos.

(7)

STACHESKI, Igor Carneiro; BROCH JUNIOR, Oscar. Detection and vehicle speed estimation using image processing. 2018. 56 p. Final Coursework (Bachelor’s De-gree in Electrical Engineering) – Federal University of Technology – Paraná. Ponta Grossa, 2018.

Image processing techniques are increasingly present in vehicle traffic monitoring. This final paper proposes an initial design of a vehicle speed meter using only a fixed ca-mera and a computer. Firstly, it was introduced the images forming process and images properties that wil be relevant to this final papers. For the algorithm criation, it was used diverses images process techniques, such as background subtraction, morphological operation, contrast equalization and perspective transformation with the objective to increase the vehicle tracking chance and the speed calculation. The obtained results was compared with reference values of inductive traditional meters in order to validate the method. The vehicle detection rate is around 95 % and the average speed error is ± 2,265 km/h.

Keywords: Speed Measurement. Image Processing. Computer Vision. Vehicle Detec-tion.

(8)

Figura 1 – Esquema de instalação dos laços indutivos nas vias públicas. . . 18

Figura 2 – Exemplo de um automóvel se aproximando do radar de efeito Doppler. 20 Figura 3 – Exemplo de um automóvel se afastando do radar de efeito Doppler. 20 Figura 4 – Etapas de um sistema de processamento de imagem. . . 22

Figura 5 – Diferença na qualidade de representação de círculo utilizando uma matriz de 12x12 pixels e outra de 48x48 pixels. . . 24

Figura 6 – Espectro eletromagnético com ênfase na luz visível. . . 26

Figura 7 – Modelo RGB. . . 27

Figura 8 – Modelo HSV. . . 28

Figura 9 – Exemplo de ruído captado pelas câmeras. . . 29

Figura 10 – Fluxograma. . . 30

Figura 11 – Resultado da definição da região de interesse. . . 32

Figura 12 – Diferença entre imagem em escala de cinza e com o ajuste de con-traste aplicado. . . 33

Figura 13 – Exemplo das escolhas dos pontos para a Faixa 1. . . 35

Figura 14 – Resultado da alteração de perspectiva de cada faixa. . . 35

Figura 15 – Resultado das operações morfológicas. . . 38

Figura 16 – Relação entre os componentes detectados (b) e relação entre as bordas detectadas (c). . . 39

Figura 17 – Resultado obtido com a sequência de pontos do contorno. . . 40

Figura 18 – Diferença entre um polígono convexo e não convexo. . . 40

Figura 19 – Resultado obtido com a sequência de pontos da envoltória complexa. 42 Figura 20 – Resultado obtido com a sequência de pontos da envoltória complexa. 43 Figura 21 – Origem da variáveis da Equação 9. . . 44

Figura 22 – Velocidades calculadas durante a passagem na área de medição. . 45

Gráfico 1 – Histograma da imagem em escala de cinza. . . 33

Gráfico 2 – Histograma com o ajuste de contraste. . . 33

Gráfico 3 – Resultado obtido na Faixa 1. . . 48

Gráfico 4 – Resultado obtido na Faixa 2. . . 48

Gráfico 5 – Resultado obtido na Faixa 3. . . 49

(9)

Tabela 1 – Resultados finais obtidos em um resolução de 720p. . . 46 Tabela 2 – Resultados em diferentes resoluções. . . 51

(10)

SIGLAS

AHE Adaptative Histogram Equalization BGS Background Subtractor

CLAHE Contrast Limited Adaptive Histogram Equalization OMS Organização Mundial da Saúde

ACRÔNIMOS

INMETRO Instituto Nacional de Metrologia, Qualidade e Tecnologia LiDAR Light Detection And Ranging

OpenCV Open Source Computer Vision library RADAR Radio Detection And Ranging

(11)

LETRAS LATINAS

𝐵 Valor do byte referente à cor azul

𝐶 Tamanho do pixel [m]

𝑑 Distância percorrida [pixels]

𝐹 Quantidade de quadros

𝐺 Valor do byte referente à cor verde 𝑅 Valor do byte referente à cor vermelha

𝑠 Distância [m]

𝑡 Tempo [s]

𝑉 Velocidade do carro [m/s]

(12)

1 INTRODUÇÃO . . . . 13 1.1 DELIMITAÇÃO DO TEMA . . . 14 1.2 OBJETIVO . . . 15 1.2.1 Objetivos Gerais . . . 15 1.2.2 Objetivos Específicos . . . 15 1.3 JUSTIFICATIVA . . . 15

1.4 VISÃO GERAL DO TRABALHO . . . 16

2 REVISÃO DA LITERATURA . . . . 17

2.1 MEDIDORES DE VELOCIDADE . . . 17

2.1.1 Laços Indutivos . . . 17

2.1.1.1 Desvantagens do método intrusivo - Laços indutivos . . . 19

2.1.2 Medidor de velocidade baseados em tecnologia Laser e Doppler . . 19

2.1.2.1 Baseados em Laser . . . 21

2.1.3 Vantagens do método não-intrusivo - Laser e Doppler . . . 21

2.2 PROCESSAMENTO DE IMAGEM E VISÃO COMPUTACIONAL 21 2.2.1 Processamento de Imagem . . . 22

2.2.2 Modelos de Imagens . . . 24

2.2.3 Fundamentos de cor . . . 25

2.2.4 Modelos de Cores . . . 25

2.2.4.1 Modelo RGB (Red, Green, Blue) . . . 26

2.2.4.2 Modelo HSV . . . 27

2.2.5 Ruídos em Imagens Digitais . . . 28

3 MATERIAL E MÉTODOS . . . . 30

3.1 TRANSFORMAÇÃO EM ESCALA DE CINZA . . . 31

3.2 REGIÃO DE INTERESSE . . . 31 3.3 EQUALIZAÇÃO DE CONTRASTE . . . 32 3.4 TRANSFORMAÇÃO DE PERSPECTIVA . . . 34 3.5 SUPRESSÃO DE FUNDO . . . 35 3.6 OPERAÇÕES MORFOLÓGICAS . . . 37 3.6.1 Erosão . . . 37 3.6.2 Dilatação . . . 38 3.7 DETECÇÃO DE CONTORNOS . . . 38 3.8 ENVOLTÓRIA CONVEXA . . . 40

3.9 RASTREAMENTO DOS VEÍCULOS . . . 42

3.10 CÁLCULO DA VELOCIDADE . . . 43 4 RESULTADOS E DISCUSSÃO . . . . 46 4.1 ANÁLISE DE DESEMPENHO . . . 50 5 CONCLUSÕES E PERSPECTIVAS . . . . 52 5.1 CONCLUSÕES . . . 52 5.2 TRABALHOS FUTUROS . . . 53 REFERÊNCIAS . . . . 54

(13)

1 INTRODUÇÃO

Com o crescimento constante das pequenas e grandes cidades gerado princi-palmente pelo desenvolvimento econômico, uma maior parte da população foi capaz de conquistar um veículo próprio, portanto é natural o aumento do fluxo veicular nas estradas e vias dentro das cidades. Em virtude dessa expansão, métodos de controle de tráfego e velocidades são cada vez mais requisitados, possibilitando uma melhor análise das vias em geral. Esse aumento natural do número de automóveis proporci-ona um aumento significativo nos acidentes causados por alta velocidade. Segundo a Organização Mundial da Saúde (OMS), o número de mortes causadas por acidentes veiculares em 2016 foi de 1,2 milhões, sendo 90% desses acidentes em países de baixa ou média renda apesar de possuírem apenas metade dos veículos do mundo (WHO, 2017).

Ainda sobre os acidentes automotivos, a OMS estima que um aumento de 1 km/h na velocidade média veicular resulta num acréscimo de 4% a 5% na chance da geração de um acidente fatal e de que 40% a 50% dos motoristas trafegam acima da velocidade permitida pelas vias (WHO, 2017). Esse é um dado importante para a conscientização da importância de uma medição e controle da velocidade nas cidades e nas rodovias, onde além do controle e da melhoria no fluxo veicular, o controle de velocidade também pode reduzir muito a chance de um acidente fatal.

Com esse cenário, surge uma grande necessidade de aprimoramento do con-trole de tráfego. Para concon-trole de velocidade na vias, o dispositivo mais difundido trata-se do sensores magnéticos, no entanto, esses instrumentos são capazes ape-nas de realizar a contagem, medição de velocidade e identificar algumas infrações como avanço de semáforo e parada sobre a faixa de pedestre.

O aumento do poder de processamento e o desenvolvimento de algoritmos para processamento de imagens digitais, possibilita uma recente solução para o con-trole de tráfego através de câmeras de monitoramento. Esse tipo de solução é bem mais simplificado em termos de instalação, o que gera um baixo custo em seu inves-timento e manutenção se comparado aos medidores de laço indutivo (ALEXANDRE, 1997). Além disso, através desse novo sistema, pode-se realizar todas as funções que um sistema de medição por laço indutivo já faz. Contudo, a utilização de

(14)

processa-mento de imagem e visão computacional ainda abre a possibilidade de aprimoraprocessa-mento dos algoritmos e adição de novas funções ao longo dos anos, sem a necessidade, na maioria dos casos, de troca de equipamentos.

Segundo Barcellos (2014), “visão computacional é o processo de utilizar um computador para extrair informações de alto nível de uma imagem digital”. Dessa forma, uma câmera capta as imagens em forma de vídeo e os algoritmos de visão computacional realizam o processo de extração de informação necessária, fazendo o processamento de cada quadro do vídeo (frame), aplicando métodos e abordagens matemáticas para realizar a detecção, o rastreamento1 (tracking) e a classificação do veículos.

Ainda assim, existem desvantagens quando se trata da utilização de câme-ras de monitoramento. Muitas, estão sujeitas à vibrações devido ao vento e passa-gem de veículos pesados (BARCELLOS, 2014). Além disso, um dos pontos chaves para implementação desse sistema é a posição da câmera, pois dependendo do ân-gulo da imagem captada, pode ocorrer oclusões na presença de veículos grandes. E quando são utilizadas câmeras de vigilância que já estavam previamente instaladas e a posição não foi escolhida objetivando o uso de visão computacional, aumenta-se a complexidade dos métodos e algoritmos a serem utilizados, a fim de contornar essa questão dos ângulos, iluminações, oclusões, etc.

1.1 DELIMITAÇÃO DO TEMA

Entre as diversas técnicas existentes, escolheu-se como base do trabalho a técnica de supressão de fundos, pois este método tem como resultado a formação de uma imagem binária. Esse tipo de imagem possibilita realizar diversas operações e transformações de forma simplificada se comparado com imagens coloridas ou em escala de cinza.

1 Rastreamento em processamento de vídeo é processo de acompanhar a posição do objeto em

(15)

1.2 OBJETIVO

1.2.1 Objetivos Gerais

Desenvolver uma nova proposta de medição de velocidade para veículos, utilizando-se de processamento de imagens e visão computacional.

1.2.2 Objetivos Específicos

Constituem-se objetivos deste trabalho:

• Revisar a literatura e estado da arte.

• Desenvolver um algoritmo que consiga identificar um veículo, em seguida realizar o tracking do mesmo, e posteriormente realize uma estimativa de sua velocidade.

• Analisar as velocidades obtidas com o método proposto e compará-las com um sistema tradicional de medição de velocidade veicular, a fim de validar o método apresentado neste trabalho.

1.3 JUSTIFICATIVA

Os medidores de velocidade tradicionais (sensores indutivos) apresentam di-versos tipos de dificuldade em sua instalação e manutenção. Problemas como interfe-rências magnéticas, deterioração do pavimento, dificuldade no ajuste de sensibilidade dos laços indutivos, possibilidade de burlar o sistema, entre outros. Porém, muitos des-ses inconvenientes poderiam ser evitados, por meio de um sistema mais simplificado, utilizando-se de apenas uma câmera de vídeo e aplicando técnicas de processamento de imagem e visão computacional.

A estrutura de instalação, na maioria dos casos, já está feita, uma vez que os medidores tradicionais já possuem uma câmera para fazer o reconhecimento das placas dos veículos. Além disso, outra vantagem desse sistema é a possibilidade de aprimoramento nos algoritmos, permitindo não apenas identificar veículos, mas tam-bém realizar o reconhecimento dos mesmos a fim de classificá-los em tipos, modelos, marcas, etc. Tudo que possa ser relevante para ajudar na tomada de decisão do con-trole do fluxo de tráfego de veículos.

(16)

1.4 VISÃO GERAL DO TRABALHO

No presente trabalho, será realizado um algoritmo para detecção e medição de velocidade veicular. O Capítulo 2 apresenta uma breve discussão dos métodos de medição de velocidade tradicionais, explicando os mesmos com o seu funcionamento e as devidas vantagens e desvantagens. Posteriormente, será abordado o processa-mento de imagens e visão computacional, demonstrando estudos com os tópicos re-levantes ao trabalho estudado desde a formação da imagem, fundamentos e modelos de cores.

No Capítulo 3 serão abordados os temas relevantes para o desenvolvimento do algoritmo, com os estudos teóricos que suportam a elaboração do código em cada um dos tópicos necessários para o seu bom funcionamento.

No Capítulo 4 serão demonstrados os resultados obtidos após o uso do algo-ritmo em um estudo de caso, apresentando os pontos positivos e negativos do código no caso real, os comparativos com métodos tradicionais já existentes e verificando se os valores produzidos estão dentro dos erros mínimos necessários para a sua valida-ção.

(17)

2 REVISÃO DA LITERATURA

Neste capítulo são apresentados fundamentos essenciais para o desenvolvi-mento deste trabalho que envolve processadesenvolvi-mento de imagem e visão computacional aplicados para medição de velocidade veicular. Inicialmente será discutido o princí-pio básico de funcionamento dos medidores de velocidades atuais e em seguida será abordado os conceitos relevantes de processamento de imagem e visão computacio-nal relacionados ao problema em questão.

2.1 MEDIDORES DE VELOCIDADE

As maneiras utilizadas para medir a velocidade dos veículos, se baseiam em três métodos que são regulamentados pela Portaria Instituto Nacional de Metrologia, Qualidade e Tecnologia (INMETRO) no544, de 12 de dezembro de 2014.

Nessa portaria define-se como:

• Medidor de velocidade de sensores de superfície: instrumento cujo elemento sensor encontra-se instalado sob ou sobre a superfície da via, propiciando a me-diação da velocidade através da mudança das propriedades físicas deste sensor quando da passagem de um veículo.

• Medidor de velocidade óptico: instrumento que utiliza feixe de luz na região vi-sível ou infravermelho do espectro eletromagnético, propiciando a medição de velocidade através do processamentos de energia refletida no veículo alvo ou pela interrupção dos feixes provocados pela passagem de um veículo.

• Radio Detection And Ranging (RADAR): instrumento que transmite e recebe on-das contínuas na faixa de micro-onon-das, propiciando a medição da velocidade do veículo alvo através do efeito Doppler.

2.1.1 Laços Indutivos

Este é método mais comum para realizar a detecção de veículos e medição de velocidade. Conforme o tipo de aplicação é instalado um arranjo de dois ou mais laços

(18)

indutivos na via por onde passam os veículos. Esses laços indutivos, são bobinas, que serão submetidas à um sinal oscilatório, com uma frequência conhecida. A Figura 1 demonstra de forma simplificada como é feito o posicionamento dos laços indutivos em uma via pública.

Figura 1 – Esquema de instalação dos laços indutivos nas vias públicas. Laço 2 Laço 1 Laço 4 Laço 3 Δs

Fonte: Autoria Própria.

Quando a corrente elétrica imposta pelo circuito oscilador atravessa o fio da bobina, cria-se em torno dos fios um campo magnético. Esse campo terá sua forma alterada quando ocorrer a passagem do veículo em cima do laço indutivo, pois os au-tomóveis possuem uma grande massa metálica, principalmente na dianteira devido ao motor. Essa alteração no campo magnético irá refletir uma mudança na frequência de oscilação da bobinas. Então utiliza-se microcontroladores para realizar a identificação dessa variação de frequência e quando detectada, gera-se um pulso indicando que o veículo está em cima do laço. Como o sistema possui dois laços ou mais, obtêm-se um sequência de pulsos com intervalos de tempo bem definidos (CHEUNG et al., 2005). Portanto, conhecendo o tempo que o veículo demorou para percorrer a distância entre os laços é possível determinar a velocidade do carro pela Equação (1):

𝑉 = ∆𝑠

∆𝑡 (1)

Onde:

• ∆𝑠 : distância entre os laços indutivos.

(19)

2.1.1.1 Desvantagens do método intrusivo - Laços indutivos

• Sistema fixo: pois é necessário embutir os sensores no pavimento.

• Dificuldade de instalação: precisa-se interditar a via para refazer a pavimentação para que os laços indutivos sejam instalados abaixo dela.

• Dificuldade de manutenção: Se o órgão público necessitar recapear o asfalto, ou até mesmo precisar fazer a instalação/manutenção de canos de esgotos, terá que ser feito a reinstalação dos sensores.

• Possibilidade de não detecção de veículos leves: uma motocicleta pequena, de-vido a sua massa metálica menor, causa pouca mudança de frequência, aproxi-madamente 1% a 2% em relação à um automóvel padrão. Assim como, veículos que possuem seu assoalho elevado em relação a superfície da estrada, podem também não serem detectados pelos laços.

2.1.2 Medidor de velocidade baseados em tecnologia Laser e Doppler

O efeito Doppler baseia-se em uma característica encontrada nas ondas ele-tromagnéticas quando estão sendo refletidas ou emitidas por um objeto que está se deslocando em relação ao observador (MAIA; FARIAS, 2007).

O funcionamento deste tipo de radar ocorre da seguinte maneira, o aparelho emite uma onda eletromagnética de frequência conhecida (𝑓′) contínua e constante

na direção do veículo a ser analisado. Se esse veículo estiver se movimentando em direção à fonte, o receptor do radar identifica uma aumento na frequência (𝑓′′). A

(20)

Figura 2 – Exemplo de um automóvel se aproximando do radar de efeito Doppler.

Ondas com frequência f' emitidas pelo radar

V

Ondas com frequência f'' recebidas pelo radar

V #

Fonte: Autoria Própria.

Na outra situação, ou seja, o automóvel esteja se afastando do radar, haverá uma diminuição do valor recebido f” se comparado com o valor emitido f’, como a Figura 3 demonstra abaixo.

Figura 3 – Exemplo de um automóvel se afastando do ra-dar de efeito Doppler.

Ondas com frequência f' emitidas pelo radar

V

Ondas com frequência f'' recebidas pelo radar

V

Fonte: Autoria Própria.

(21)

traduzidas pela unidade de processamento como um valor de velocidade.

2.1.2.1 Baseados em Laser

O funcionamento deste método é semelhante ao de efeito Doppler. Emprega-se a técnica do Light Detection And Ranging (LiDAR), utiliza-Emprega-se a emissão de pulsos de luz por um laser sob uma predeterminada taxa de frequência (BASTOS; FILHO, 2012). Uma pistola LiDAR emite pulsos feixes concentrados de luz invisível ao espec-tro do olho humano, na direção do veículo alvo e então a velocidade do automóvel é calculada observando o tempo de retorno desse feixe ao sensor. Então converte-se o tempo decorrido em distância.

2.1.3 Vantagens do método não-intrusivo - Laser e Doppler

As vantagens deste sistema são:

• Mínima necessidade de interrupção do tráfego durante sua instalação.

• Facilidade de manutenção e reparo.

• Maior durabilidade.

• Baixa suscetibilidade aos fatores ambientais que, reduzem a vida útil dos sen-sores intrusivos. Fatores como, temperatura, infiltrações, deterioração do pavi-mento, etc.

• Possibilidade de mudança do local de operação.

2.2 PROCESSAMENTO DE IMAGEM E VISÃO COMPUTACIONAL

A visão computacional, assim como o processamento de imagem, recebem como entrada (input) um dado visual. O processamento de imagem é considerado uma etapa de baixo nível, onde o objetivo é melhorar a imagem para que aumente a chance de sucesso na interpretação desse dado, onde a etapa de interpretação já passa a ser considerada de alto nível. Na visão computacional, busca-se entregar como saída informações de caráter quantitativo e qualitativo de um dado visual

(22)

ana-lisado. Geralmente, essa tem como objetivo se assemelhar a visão humana, ou seja, sendo capaz de reconhecer padrões, distinguir objetos, classificá-los, ordená-los, etc.

2.2.1 Processamento de Imagem

Em conformidade com Pedrini e Schwartz (2008), um sistema de processa-mento digital de imagens é formado por um conjunto de etapas, que são ilustradas na Figura 4, capazes de produzir um resultado a partir do domínio do problema.

Figura 4 – Etapas de um sistema de processamento de imagem. Aquisição Pré-processamento Segmentação Representação e Descrição Reconhecimento e Interpretação Base de Conhecimento Domínio do Problema Resultado

Fonte: Adaptado de (PEDRINI; SCHWARTZ, 2008).

Na etapa de aquisição é feita a captura da imagem por meio de sensores, que converte-a em uma representação digital do sinal produzido pelo sensor óptico. Alguns dos sensores mais utilizado são as câmeras de vídeos, tomógrafos médicos, satélites e scanners. Essa etapa deve ser realizada com máxima atenção aos detalhes, como

(23)

escolha do tipo de sensor, condições de iluminação, resolução da imagem, etc. Pois com uma boa captura, evita-se grandes esforços na etapa de pré-processamento.

A imagem capturada pode, na maioria dos casos, apresentar imperfeições, então a etapa de pré-processamento visa aprimorar a qualidade da imagem com o objetivo de aumentar as chances para o sucesso dos processos seguintes (GON-ZALEZ; WOODS, 2000). Esse aperfeiçoamento geralmente ocorre mediante a apli-cação de técnicas para atenuação de ruído, correção de contraste ou brilho, isola-mento de regiões e suavização de determinadas propriedades da imagem (PEDRINI; SCHWARTZ, 2008).

A próxima etapa trata-se da segmentação. Nela, executa-se a extração e identificação de áreas de interesse na imagem. Essa etapa baseia-se, em geral, em detectar descontinuidades (bordas) ou similaridades (regiões) na imagem (PEDRINI; SCHWARTZ, 2008). O resultado da saída do estágio de segmentação é formada tipi-camente por dados em forma de pixel (raw pixel data) (GONZALEZ; WOODS, 2000).

A seleção de uma representação é apenas parte da solução para transformar dados iniciais numa forma apropriada para o subsequente processamento computaci-onal. Nessa etapa utiliza-se estruturas de representação para armazenar e manipular os objetos de interesse extraído da imagem, de forma que essas características de interesse sejam enfatizadas. No processo de descrição, também chamado de seleção de características, visa à extração de características ou propriedades que possam ser aproveitadas na discriminação entre classes e objetos (GONZALEZ; WOODS, 2000). Na etapa de reconhecimento acontece a atribuição dos identificadores (clas-ses) aos objetos da imagem, baseado nas características providas pelos seus descri-tores. O processo de interpretação tem como objetivo atribuir um significado ao con-junto de objetos reconhecidos anteriormente. Por exemplo, a interpretação de uma imagem contendo células sanguíneas, poderia ser o diagnóstico de anemia devido a quantidade de células na amostra.

Segundo Pedrini e Schwartz (2008), a base de conhecimento, é dependente da aplicação, cujo tamanho e complexidade podem variar significativamente. Além de guiar a operação de cada módulo de processamento, a base de conhecimento também controla a interação entre os módulos.

(24)

2.2.2 Modelos de Imagens

De acordo com Gonzalez e Woods (2000), uma imagem digital é uma imagem 𝑓 (𝑥,𝑦) discretizada tanto em coordenadas espaciais quanto em brilho. Uma imagem pode ser classificada como sendo uma matriz cujo índices de linhas e de colunas identificam um ponto na imagem. Além dessa posição, uma imagem digital possui um ou mais valores associados à essa mesma posição da matriz que identificam a cor naquele ponto 𝑓 (𝑥,𝑦). Os elementos dessa matriz, recebem o nome de pixel.

Em processamento de imagem considera-se o ponto de origem do sistema como sendo o ponto superior esquerdo da imagem. Portanto, valores do eixo 𝑥 au-mentam no sentido da esquerda para direita e valores de 𝑦 auau-mentam no sentido de cima para baixo.

Figura 5 – Diferença na qualidade de representação de círculo utilizando uma matriz de 12x12 pixels e outra de 48x48 pixels.

12x12 48x48

Baixa

Densidade DensidadeMédia

Fonte: Autoria Própria.

A intensidade de uma cena pode ser modelada fisicamente em termos do produto de dois componentes. A iluminância refere-se a quantidade de luz incidente na cena, e a reflectância, que indica a quantidade de luz refletida pelos objetos presentes na cena. Sendo assim a função 𝑓 (𝑥,𝑦) pode ser definida como:

𝑓 (𝑥,𝑦) = 𝑖(𝑥,𝑦) · 𝑟(𝑥,𝑦) (2)

Para:

(25)

Onde:

• 𝑖(𝑥,𝑦) é a função que representa a iluminância e é medido em lúmen/m² ou lux.

• 𝑟(𝑥,𝑦) representa a reflectância e é medida em valores percentuais entre 0 e 1.

2.2.3 Fundamentos de cor

O método de percepção de cores através de processos psicofisiológicos do cérebro humano, apesar de ainda não ser completamente compreendido, possui um longos e bem fundamentados estudos dos princípios físicos da cor por meio de diver-sos resultados teóricos e experimentais.

A cor é gerada através de uma manifestação da percepção da luz, onde o raio luminoso é formado de partículas, os fótons, onde sua frequência e velocidade são decisivos para o comprimento de onda dos fótons.

Nos processos de geração das cores, dois modos importante podem ser ci-tados: o processo aditivo e o subtrativo. Durante o aditivo, as energias dos fótons envolvidos na formação da cor são somados, enquanto no subtrativo a luz é oriunda de materiais em que a energia luminosa incidente é absorvida e parte é transmitida (PEDRINI; SCHWARTZ, 2008).

Outra informação importante sobre a percepção das cores no cérebro humano é em relação aos comprimentos de ondas, onde esses estão estritamente relacio-nados às diversas cores percebidas. Para a descoberta, Isaac Newton (1642-1727) percebeu que um feixe de luz branca, após atravessar um prisma, era separado em espectros variando do violeta ao vermelho. Esse intervalo de espectros ficou conhe-cido como o “espectro de luz visível”, como pode ser observado na Figura 6.

2.2.4 Modelos de Cores

Os modelos de cores possibilitam a determinação de cores em formatos pa-dronizados para que diferentes tipos de dispositivos sejam capaz de manipular di-versas cores. Os modelos de cores são fundamentalmente uma representação tridi-mensional onde cada cor pode ser estabelecida por um ponto no sistema (PEDRINI; SCHWARTZ, 2008).

(26)

Figura 6 – Espectro eletromagnético com ênfase na luz vi-sível.

Rádio Microondas vermelhoInfra Ultra

violeta Raios X

Raios Gama

Faixa Visível

Vermelho Laranja Amarelo Verde Azul Violeta

Freq. (Hertz)

10⁴ 10⁶ 10⁸ 10¹⁰ 10¹² 10¹⁴ 10¹⁶ 10¹⁸ 10²⁰ 10²⁴

770 622 597 577 492 455 390

Comprimento de Onda (μm)

Fonte: Adaptado de (PEDRINI; SCHWARTZ, 2008)

Pelo fato de um modelo de cor não poder reproduzir todos as diversas cores, diferentes modelos foram criados para determinar as diferentes características das cores. Esse modelos podem ser divididos entre aditivos e subtrativos.

Nos modelos aditivos, as cores são formadas pela combinação de diversas outras, onde a cor branca é gerada pela soma das cores primárias, definidas como vermelho, verde e azul, e a cor preta pela ausência da transmissão de luz.

Já nos modelos subtrativos, a combinação das cores primárias ciano, ma-genta e amarelo formam a cor preta, onde a geração da cor branca é a ausência das mesmas.

2.2.4.1 Modelo RGB (Red, Green, Blue)

O modelo de cores RGB é um modelo aditivo fundamentado em um sistema cartesiano, onde o espaço de cores é baseado na forma geométrica de um cubo. As vértices desse cubo são formadas pelas cores primárias vermelha (R, red ), verde (G, green) e azul (B, blue), as vértices posteriores são compostas das cores primárias complementares ciano, magenta e amarelo. A escala de cinza pode ser determinada por uma diagonal saindo da origem, onde o ponto mais próximo a origem tem a cor preta e a mais distante gera a cor branca. A escala de cinza será melhor discutida na seção 3.1 deste trabalho.

(27)

Figura 7 – Modelo RGB. Amarelo Vermelho Magenta Preto (1,0,0) (0,1,0) Verde Branco Ciano (0,0,1) Escala de Cinzas B G R Azul

Fonte: Adaptado de (PEDRINI; SCHWARTZ, 2008)

2.2.4.2 Modelo HSV

Esse modelo de cores tem seus parâmetros definidos pela matiz (H, hue), saturação (S, saturation) e luminância (V, value).

• Matiz (H) é a componente que seleciona a cor, uma vez que, é controlada pela posição angular de uma reta que percorre de forma circular o plano perpendicu-lar ao eixo V (Figura 8).

• Saturação (S) é a componente que define a pureza da cor representada pela matiz, ou seja, é uma valor percentual (0 a 1). Uma cor considerada pura não pode conter a cor preta nem a branca.

• Luminância (V) determina o brilho da cor definida pela combinação das outras duas componentes (H e S).

Esse modelo possui sua representação tridimensional gráfica através uma pi-râmide hexagonal como pode ser visto na Figura 8 a seguir:

(28)

Figura 8 – Modelo HSV. Vermelho Magenta Azul Branco 1,0 P 0,0 Preto H S Ciano Verde 120° Amarelo V 240° 0°

Fonte: Adaptado de (PEDRINI; SCHWARTZ, 2008)

Os valores de matizes variam na parte superior da pirâmide, com sua satura-ção sendo medida ao longo do eixo horizontal e a sua luminância através do eixo ver-tical. Novamente, cada uma das vértices base possui cada uma das cores primárias e das primárias complementares, variando com um ângulo de 60° entre si (PEDRINI; SCHWARTZ, 2008).

2.2.5 Ruídos em Imagens Digitais

Os ruídos em imagens podem ser definidas como efeitos randômicos indese-jados, normalmente ocasionado por diversos fatores como tipo de câmeras ou lentes, temperatura, intensidade de luz ou movimentos. O resultado de ruídos é, por exemplo, em uma situação onde os pixels possuem o mesmo nível de cinza em uma imagem real (plano real) e após a captação da imagem pela câmera dificilmente possuirá o mesmo nível que representa esses mesmos pixels (PARKER, 2010), a Figura 9 exem-plifica esse caso.

(29)

Figura 9 – Exemplo de ruído captado pelas câmeras. 100 100 100 100 100 100 100 100 100 100 95 96 98 94 100 101 103 99 0 -5 -4 -2 -6 0 +1 +3 -1

No plano real pela câmeraCapturado Ruído (erro)

Fonte: Autoria Própria.

As espécies de ruídos mais frequente de serem modelados são os ruídos impulsivos, Gaussiano, uniforme, Erlang, exponencial, Rayleigh e Poisson. O modela-mento de cada um dos tipos de ruídos considera o mesmo uma variável aleatória onde a função que o descreve é representada por uma função densidade de probabilidade (PEDRINI; SCHWARTZ, 2008).

Para a supressão de ruídos algumas técnicas de filtragens podem ser utiliza-das como o uso de filtros lineares, filtros não-lineares e o uso de filtros morfológicos. O método de supressão de ruídos utilizado no presente trabalho pode ser visto com mais detalhes na seção 3.6.

(30)

3 MATERIAL E MÉTODOS

Neste capítulo será apresentado a metodologia necessária para o desenvolvi-mento do corrente trabalho, a partir do elaboração do algoritmo de detecção e estima-tiva da velocidade veicular.

O funcionamento do algoritmo é o resultado de uma análise frame a frame do vídeo, ou seja, para a cada quadro reproduzido o código realizará todos os procedi-mentos descritos, para assim demonstrar o resultado final. Utilizou-se a linguagem de programação Python e da biblioteca Open Source Computer Vision library (OpenCV) para a implementação do algoritmo proposto.

OpenCV é uma biblioteca criada pela Intel no ano de 1999, com o intuito de ser aplicada para realizar diversos processamentos de imagens e na visão robótica. O OpenCV apresenta inúmeras funções implementadas para processamento de ima-gens em diversas áreas de estudo, como medicina e de segurança (MUMTAZIMAH, 2015).

A escolha pelo uso do OpenCV é dada por promover um ambiente de fácil apli-cação na área de estudo estabelecida e por fornecer as principais funções utilizadas em processamento de imagem, além de ser uma biblioteca Open Source.

O fluxograma que descreve a sequência de operações do algoritmo tendo como entrada um frame do vídeo pode ser visto na Figura 10:

Figura 10 – Fluxograma. Transformação em escala de cinza Região de Interesse Ajuste de Contraste Operações

Morfológicas Supressãode fundo Transformaçãode Perspectiva

Detecção de

Contornos Tracking

Cálculo da Velocidade

Fonte: Autoria Própria.

A partir do fluxograma, será descrito detalhadamente cada um dos processos realizados pelo código para a obtenção do resultado do atual trabalho.

(31)

3.1 TRANSFORMAÇÃO EM ESCALA DE CINZA

Após a captura de frames do vídeo, este em sua maioria apresenta uma infi-nidade de tons coloridos. Por apresentar esta propriedade, os modelos de cores mais comuns já citados nesse trabalho que regem as imagens em cores devem ser conver-tidas para escalas de cinza. Essa transformação facilita o processamento por tornar mais simples a transformação posterior em binária, onde a cor branca possui o valor 255 e a preta com o valor 0.

No presente trabalho, foi realizado primeiramente um redimensionamento do vídeo a ser trabalhado com o intuito de reduzir o tempo de processamento, reduzindo o número de pixels a serem processados. Originalmente, o vídeo possuía uma resolu-ção de 1080p (1920 × 1080 pixels), onde essa foi reduzida para a resoluresolu-ção de 720p (1280 × 720 pixels).

Em seguida, realizou-se a transformação do modelo de cor BGR para a escala em cinza, onde a diferença dos modelos BGR para RGB é simplesmente a posição dos bytes, onde no modelo BGR o primeiro byte por padrão possuirá o valor do azul (Blue).

A conversão utilizada para a obtenção da escala em cinza pode ser encon-trada a partir da seguinte equação, onde R,G e B são valores de 8 bits para as cores azul (B), verde (G) e vermelho (R) de acordo com a Equação 3 (GüNE ¸S; KALKAN; DURMU ¸S, 2015):

Valor de cinza do pixel = 0,299 · 𝑅 + 0,587 · 𝐺 + 0,114 · 𝐵 (3)

3.2 REGIÃO DE INTERESSE

A região de interesse ou Region of interest (ROI) é por definição a delimitação da área em que se busca obter as informações necessárias para o bom funcionamento do código, onde as informações desnecessárias ou sem muita relevância devem ser suprimidas.

Para esse trabalho em específico, informações como faixa e movimentação de pedestres, calçadas e linhas delimitadoras de pistas foram retiradas para não

(32)

exer-cerem processamento desnecessários e nem gerarem erros de detecção durante a rotina do algoritmo.

Para a retirada das informações desnecessárias, foram utilizados polígonos em regiões estratégicas, onde essas formas geométricas ocultam os espaços deseja-dos e mostram apenas a área de interesse do estudo, como pode-se o comparativo na Figura 11:

Figura 11 – Resultado da definição da região de interesse.

(a) Imagem em escala de cinza. (b) Região de interesse aplicada. Fonte: Autoria Própria.

3.3 EQUALIZAÇÃO DE CONTRASTE

A equalização de contraste tem como principal função aperfeiçoar a qualidade da imagem obtida, facilitando o alcance de reconhecimento de padrões através da visão computacional. Em geral, a definição do aperfeiçoamento do contraste para cada aplicação é feita de maneira empírica, onde é comum a utilização de histogramas para a análise de contraste em imagens. Dessa maneira é possível ter uma melhor visualização do comportamento do nível de cinza a cada quadro, relacionando esse com o número de pixels existente na imagem.

No histograma, a análise é possível pela comparação do número de pixels em relação ao nível de cinza, variando este numa escala de 8 bits, gerando 256 valores possíveis. Para cada pixel na imagem, o seu valor pode variar de 0, sendo um pixel totalmente escuro, e 255, gerando esse com o maior tom de cinza possível.

Para a aplicação do código foi utilizado a função Equalização de Histograma Adaptativo Limitada ao Contraste (ou Contrast Limited Adaptive Histogram Equaliza-tion (CLAHE), sigla em inglês). Em termos simples, a CLAHE é uma melhora do mé-todo chamado aprimoramento adaptativo de contraste (Adaptative Histogram

(33)

Equali-zation (AHE)), onde na CLAHE é possível gerar alterações de valores como fator de máximo contraste e altura máxima do histograma pelo usuário (PISANO et al., 1998). Essa função necessita de duas variáveis para seu funcionamento quando apli-cada: o valor do limiar para a limitação do contraste e o tamanho da matriz, que será utilizada para dividir a imagem em retângulos de mesmo tamanho.

Através dessa função foi possível realizar uma análise empírica dos melho-res valomelho-res para a geração de melho-resultado satisfatórios, onde o Gráfico 1 e o Gráfico 2 mostram um exemplo de um quadro do video com o seu histograma original e com o ajuste de contraste, respectivamente.

Gráfico 1 – Histograma da imagem em escala de cinza.

0

50 100 150 200 250

Valor do pixel

0

2000

4000

6000

Quantidade de pixels

Fonte: Autoria Própria.

Gráfico 2 – Histograma com o ajuste de contraste.

0

50 100 150 200 250

Valor do pixel

0

2000

4000

6000

Quantidade de pixels

Fonte: Autoria Própria

Figura 12 – Diferença entre imagem em escala de cinza e com o ajuste de contraste aplicado.

(a) Imagem em escala de cinza. (b) Imagem com o ajuste de contraste aplicado. Fonte: Autoria Própria.

(34)

3.4 TRANSFORMAÇÃO DE PERSPECTIVA

A Transformação de Perspectiva pode ser definida como uma projeção num plano homográfico através de um conjunto de pontos obtidos no plano de referência. Para a determinação do plano homográfico, é necessário o cálculo da matriz homo-gráfica, a partir da função cv2.findHomography(), onde são utilizados pontos do plano referência para o cálculo.

A mudança de plano é dada pela Equação 4:

𝑠𝑖· ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 𝑥′𝑖 𝑦𝑖′ 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ = 𝐻 · ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 𝑥𝑖 𝑦𝑖 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ (4) Onde: • 𝐻: Matriz homográfica • 𝑠𝑖: Fator de escala

• (𝑥′𝑖, 𝑦′𝑖): Ponto no plano homográfico

• (𝑥𝑖, 𝑦𝑖): Ponto no plano referência

A utilização da transformação de perspectiva se faz necessária para posterior-mente simplificar a modelagem matemática da estimativa da velocidade e por facilitar a detecção do veículos. O objetivo dessa transformação é alterar de forma aproximada o ponto de vista da câmera, onde no método proposto optou-se por uma vista de cima da rua. Esse ângulo garante que por toda a passagem do veículo o tamanho que o pixel representa no plano real não se altera.

Para realizar esse processo escolhe-se quatro pontos das extremidades que representam a faixa no quadro original e em seguida define-se a nova posição des-ses quatro pontos, onde para facilitar a aplicação da transformada e obter melhores resultados, foram separadas cada uma das faixas e aplicada a transformação de pers-pectiva separadamente. Dessa forma, os oito pontos por faixa são utilizados como pa-râmetro da função cv2.findHomography() que retorna a matriz homográfica (3×3) utilizada na transformação de linear da Equação 4.

(35)

Figura 13 – Exemplo das escolhas dos pontos para a Faixa 1.

Fonte: Autoria Própria.

O resultado da aplicação da transformação pode ser vista na Figura 14:

Figura 14 – Resultado da alteração de perspectiva de cada faixa.

(a) Faixa 1. (b) Faixa 2. (c) Faixa 3. Fonte: Autoria Própria.

A partir deste ponto, cada faixa tem sua própria imagem e para cada uma delas será feito os procedimentos descritos nas seções a seguir.

3.5 SUPRESSÃO DE FUNDO

A utilização das câmeras estáticas para a detecção e avaliação da velocidade veicular possibilita uma maior facilidade para a supressão de fundos estáticos nas

(36)

imagens obtidas, o que pode ser descrita como Background Subtractor (BGS). Atra-vés dessa técnica é possível a retirada de pixels que não se alteram ou que possuem pouca variação, onde somente objetos que geram modificações acima da limiar (th-reshold ) na imagem são detectadas.

Para o presente trabalho foi utilizado o método de background subtractor ba-seado no modelo estatístico Gaussiano. Esse método elucida que as imagens apre-sentadas frame a frame demonstram comportamentos bem definidos, podendo dessa maneira serem descritos por um modelo estatístico. Quando a sequência de imagens apresentam comportamentos que não se encaixam no modelo estatístico, este são definidos como um objetos intrusos, fazendo assim parte do foreground, ou seja, é um objeto que sofreu alteração de um frame a outro (ZIVKOVIC, 2004).

Para realizar essa análise, é feita a comparação dos valores do pixel da ima-gem de referência (background ) e do pixel da imaima-gem subsequente de mesma posi-ção.

𝑝𝑖𝑥𝑒𝑙_𝑣𝑎𝑙𝑢𝑒 = | (𝑥 , 𝑦)1 − (𝑥 , 𝑦)𝑖−1| (5)

Onde:

• (𝑥 , 𝑦)𝑡−1 : Valor do pixel na posição (𝑥 , 𝑦) da imagem de referência. Valores

entre 0 e 255 devido a imagem estar em escala de cinza.

• (𝑥 , 𝑦)𝑡 : Valor do pixel na posição (𝑥 , 𝑦) do frame seguinte. (Valores entre 0 e

255)

A Equação 5 retorna também um valor entre 0 e 255 e esse valor indica a intensidade da mudança do valor do pixel analisado. Sendo que, valores baixos repre-sentam poucas mudanças e valores altos reprerepre-sentam grandes mudanças. A matriz de pixel formada pelos valores da Equação 5 ainda não é uma imagem binária. Para realizar a conversão de uma imagem em escala de cinza para uma imagem binária, é necessário definir um valor de limiar (threshold ) e aplicar a Equação 6.

𝑏𝑖𝑛𝑎𝑟𝑦_𝑝𝑖𝑥𝑒𝑙 = ⎧ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎩ 0 para 𝑝𝑖𝑥𝑒𝑙_𝑣𝑎𝑙𝑢𝑒 < 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 255 para 𝑝𝑖𝑥𝑒𝑙_𝑣𝑎𝑙𝑢𝑒 > 𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑 (6)

(37)

3.6 OPERAÇÕES MORFOLÓGICAS

As operações morfológicas tem sua origem a partir da morfologia matemática, criada por Georges Matheron e Jean Serra, onde o seu principal escopo era o estudo de estruturas geométricas presente em imagens através de técnicas matemáticas. Essa operação tem como ideia principal a retirada de informações relativas a geo-metria da imagem através de conjuntos estranhos quando comparado ao chamado elemento estruturante (FACON, 2011).

Os elementos estruturantes, também conhecidos como kernels, podem ser definidos como uma imagem binária de prova, de pequeno tamanho se comparado a imagem que sofrerá as operações morfológicas, que terá a função de comparação. Esse elemento estruturante será posicionado em toda a imagem que se deseja realizar a operação, verificando se o elemento está ou não contido. Os kernels podem tomar qualquer forma desejada, como pode-se ver no exemplo a seguir:

𝑟𝑒𝑐𝑡3×3 = ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 1 1 1 1 1 1 1 1 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ 𝑐𝑟𝑜𝑠𝑠3×3 = ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 0 1 0 1 1 1 0 1 0 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ 𝑣𝑒𝑟𝑡3×3= ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 0 1 0 0 1 0 0 1 0 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ (7)

Utilizou-se no algoritmo proposto as operações fundamentais das operações morfológicas binárias, a erosão e a dilatação. A ordem de aplicação das operações foi realizada de maneira que, primeiro fosse utilizado a operação erosão para a reti-rada de ruídos da imagem a ser analisada, para que posteriormente fosse aplicado a operação dilatação, gerando o ampliamento das informações necessárias.

3.6.1 Erosão

Nessa operação, é realizado a comparação do elemento estruturante por toda a imagem a ser verificada, onde deverá ser obtido duas informações, o fundo e os pixels relevantes. A cada pixel da imagem avaliada, a operação compara o pixel ana-lisado com a sua vizinhança. Se o mesmo possuir valor similar aos pixels com set 1 no elemento estruturante, o mesmo é considerado um pixel relevante. Se não houver uma comparação positiva, o mesmo será considerado fundo e será apagado. Para o

(38)

processo de erosão, definiu-se um elemento estruturante de forma quadrada 6 × 6, onde esse tamanho menor é suficiente para retirar todos os ruídos (partículas) gera-dos durante o processo de background subtractor, discutido na seção 3.5.

O resultado da operação de erosão pode ser visualizado na Figura 15b:

3.6.2 Dilatação

Nessa operação, o processo de comparação para a aplicação ou não da di-latação é análogo ao processo de erosão, onde o pixel avaliado é comparado a sua vizinhança através do elemento estruturante. Quando a comparação é positiva, o pixel é definido como relevante e é aplicado o processo de dilatação. Neste caso, definiu-se elemento estruturante de forma retangular com largura de 213 e altura 66 pixels. A largura maior é necessária para garantir que na imagem binária apareça um retân-gulo com suas laterais maiores que os limites da imagem. O resultado do processo de dilatação pode ser visto na Figura 15c:

Figura 15 – Resultado das operações morfológicas.

(a) Resultado do BGS. (b) Resultado da ero-são.

(c) Resultado da dilata-ção.

Fonte: Autoria Própria.

3.7 DETECÇÃO DE CONTORNOS

Segundo Bradski e Kaehler (2008), um contorno pode ser definido como uma sequência de pontos (𝑥,𝑦) que representam uma curva na imagem. A função cv2.findContours() implementada no OpenCV é baseada no método proposto

(39)

por Suzuki e Abe (1985). Este método tem como objetivo fazer uma análise estrutu-ral topológica da imagem binária, conseguindo apenas não só detectar as bordas do objetos, mas também classificá-las como bordas externas e internas. Através dessa classificação, é possível organizar os contornos de forma hierárquica, como pode ser visto no exemplo da Figura 16.

Figura 16 – Relação entre os componentes detectados (b) e relação entre as bordas detectadas (c).

S1 S5 S4 S2 B1 B2 B3 S3 B4 Frame background S1 1-component S2 hole S3 1-component S4 1 component S5 Frame outer border B1 hole border B2 outer border B3 outer border B4 (b) (c) (a)

Fonte: Suzuki e Abe (1985, p. 34).

Como uma das etapas deste trabalho é a detecção do veículo, a informação de contornos internos dos veículos é desnecessária, sendo mais importante o contorno externo principal que envolve todo o veículo. A Figura 17b apresenta a sequência de pontos obtidos pela função cv2.findContours() configurada para retornar apenas o contorno mais externo.

(40)

Figura 17 – Resultado obtido com a sequência de pontos do contorno.

(a) Resultado da dilata-ção. (b) Sequência de pon-tos do contorno. (c) Resultado final da detecção de contor-nos.

Fonte: Autoria Própria.

3.8 ENVOLTÓRIA CONVEXA

Um polígono 𝑃 pode ser classificado como convexo quando é possível posi-cionar dois pontos distintos quaisquer em sua região poligonal e o segmento formado entre esses pontos deve estar inteiramente contido nessa região. Essa definição pode ser vista através da Figura 18.

Figura 18 – Diferença entre um polígono convexo e não convexo.

Convexo Não Convexo

Fonte: Autoria Própria.

Para um dado conjunto de pontos 𝑆, o algoritmo de Envoltória Convexa ou Convex Hull tem como objetivo retornar uma sequência de pontos 𝐶(𝑆) que repre-sentam o menor polígono convexo que deve envolver todo o conjunto de pontos 𝑆 (SKLANSKY, 1982).

(41)

Uma das etapas do algoritmo proposto por Graham (1972) é a verificar se um ponto 𝑃 (𝑥, 𝑦) está a direita ou a esquerda de um segmento de reta formado por 𝑃0(𝑥0, 𝑦0)e 𝑃1(𝑥1, 𝑦1). Para isso calcula-se o determinante da matriz 𝐴 da Equação 8:

|𝐴| = ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ (𝑥1− 𝑥0) (𝑥 − 𝑥0) (𝑦1− 𝑦0) (𝑦 − 𝑦0) ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ ⃒ (8)

Se o valor do determinante for maior que zero implica que 𝑃 (𝑥, 𝑦) está à es-querda do segmento de reta, se |𝐴| for menor que zero então 𝑃 (𝑥, 𝑦) está à direita do segmento de reta e se |𝐴| for igual à zero os três pontos são colineares.

O algoritmo de Graham (1972) calcula a envoltória convexa da seguinte ma-neira:

1. Cria-se três listas: pontos_da_envoltória, pontos_internos e pontos_-indefinidos. Inicialmente todos os pontos do conjunto 𝑆 encontram-se na lista dos pontos_indefinidos.

2. Encontra-se o ponto com o menor valor de coordenada Y, pois este ponto per-tence à lista de pontos_da_envoltória e será o ponto de refêrencia e de partida do algoritmo.

3. Precisa-se ordenar a lista de pontos_indefinidos utilizando o ponto de re-ferência. Esse ponto será a origem de um sistema de coordenadas polares e a partir dele é feita uma varredura de 0o à 180o e associa-se cada ponto com seu

ângulo. Com o valores dos ângulos organiza-se a lista pontos_indefinidos de forma crescente, do menor ângulo para o maior.

4. O ponto de referência é movido para a lista pontos_da_envoltória. Até que a lista de pontos_indefinidos esteja vazia, pega-se o primeiro ponto dessa lista e verifica-se se ele está a direita ou à esquerda do segmento de reta formado pelo primeiro ponto da lista de pontos_da_envoltória e o segundo ponto da lista de pontos_indefinidos. Caso o ponto de esteja à direita ele é movido para a lista de pontos_da_envoltória, caso contrário é movido para a lista de pontos_internos.

(42)

5. Após a etapa 4 finalizada, tem-se como resultado a lista desejada de pontos_-da_envoltóriacom seus pontos organizados em uma sequência anti-horária.

Um exemplo do resultado obtido pode ser visto na Figura 19 a seguir:

Figura 19 – Resultado obtido com a sequência de pontos da envoltória complexa.

(a) Resultado da detec-ção de contornos. (b) Sequência de pon-tos da envoltória convexa. (c) Resultado final da envoltória convexa.

Fonte: Autoria Própria.

3.9 RASTREAMENTO DOS VEÍCULOS

Com a imagem binária da seção 3.8 finalizada, desenha-se um retângulo que envolve todo o veículo utilizando a função cv2.boundingRect(), que recebe como parâmetro a sequência de pontos da envoltória convexa e retorna o ponto de origem (𝑥, 𝑦), altura (ℎ) e largura (𝑤) do retângulo desejado. Com os valores de 𝑥, 𝑦, 𝑤, ℎ de cada quadro, é possível fazer o rastreamento (tracking) dos veículos (STAUFFER; GRIMSON, 1999).

(43)

Figura 20 – Resultado obtido com a sequência de pontos da envoltória complexa.

(a) Sequência de pontos

cen-trais. (b) Resultado do rastreamento.

Fonte: Autoria Própria.

O rastreamento funciona da seguinte maneira: a partir dos valores (𝑥, 𝑦, 𝑤, ℎ) encontra-se o ponto central do retângulo, onde esse é armazenado e continua-se a análise do próximo frame. Com o valor do novo ponto central, traça-se uma linha do ponto anterior ao atual. Esse processo é feito até haver onze pontos centrais consecu-tivos para um mesmo veículo. O traçado desses onze pontos que podem ser vistos na Figura 20, refletem a distância percorrida pelo veículo nesse intervalo. Através dessa informação, é possível realizar o cálculo da velocidade do veículo.

3.10 CÁLCULO DA VELOCIDADE

Para a estimação da velocidade utiliza-se a como base a Equação 1. Com os onze pontos centrais coletados durante o rastreamento, a distância percorrida em pixels é calculada pela Equação 9.

𝑑 = √︁

(𝑥[𝑖] − 𝑥[𝑖 − 10])2+ (𝑦[𝑖] − 𝑦[𝑖 − 10])2 (9)

(44)

• 𝑑: distância percorrida em pixels.

• (𝑥[𝑖], 𝑦[𝑖]): último ponto central armazenado.

• (𝑥[𝑖 − 10], 𝑦[𝑖 − 10]): ponto central do décimo frame anterior.

A Figura 21 mostra como foi definido a distância a ser calculada.

Figura 21 – Origem da variáveis da Equação 9.

d dy

P10(x, y)

P0(x, y)

dx

Fonte: Autoria Própria.

Para a conversão da distância de pixels para metros é necessário ter uma medida em metros no plano real. Essa medida foi estimada utilizando um comprimento conhecido de um carro em metros e medindo a distância representada em pixels do mesmo. Dessa maneira, tamanho em metros de cada pixel (𝐶) é dado pela relação da Equação 10:

𝐶 = distância em metros

distância em pixels (10)

Logo, a distância final percorrida em metros é dada pela multiplicação do ta-manho do pixel (𝐶) pela distância percorrida em pixels (𝑑).

A captura do video foi feita com um framerate de 30.15 quadros por segundo (𝑓 𝑝𝑠), e tendo como premissa de que a captura de cada quadro foi realizada de forma igualmente espaçada no tempo, tem-se que o tempo transcorrido entre cada quadro

(45)

é de aproximadamente 33,17 milissegundos. Portanto, o tempo total é dado pela mul-tiplicação da quantidade de quadros (𝐹 ) por 33,17 milissegundos.

A modelagem final da velocidade é dada pela Equação 11. Onde 3,6 é fator de conversão de 𝑚/𝑠 para 𝑘𝑚/ℎ. 𝑉𝑒= 𝑑 · 𝐶 · 𝑘 𝐹 · 1 𝑓 𝑝𝑠 · 3,6 (11)

O fator de correção (𝑘) é necessário para ajustar os pequenos erros durante a estimação do tamanho do pixel e transformação de perspectiva.

Devido ao tamanho da área de medição, a velocidade é calculada mais de uma vez para cada veículo, pois o rastreamento retorna mais de onze pontos centrais, como pode ser visto no exemplo da Figura 22. Dessa forma, a velocidade final é dada por uma média aritmética das velocidades medidas.

Figura 22 – Velocidades calculadas durante a passagem na área de medição.

Área de

Medição

V

0

V

1

V

2

(46)

4 RESULTADOS E DISCUSSÃO

Com a realização do algoritmo finalizada, foi utilizado o mesmo para a valida-ção da sua aplicavalida-ção em um estudo de caso, onde esse foi empregado para realizar a detecção e estimativa da velocidade de carros reais no centro da cidade. Utilizou-se como referência de velocidade real dos carros analisados as velocidades obtidas atra-vés de um radar indutivo localizado um pouco acima da área de medição do presente trabalho. É importante ressaltar que as velocidades utilizadas como referências tam-bém podem apresentar erros de até ± 3 km/h, por se tratar de um medidor velocidade que também deve respeitar os erros mínimos exigidos pelo INMETRO.

Segundo a Portaria INMETRO no 544, os medidores de velocidade fixos não

podem apresentar, em campo, erros maiores que:

• ± 3 km/h para velocidades menores ou iguais a 100 km/h,

• ± 3% para velocidades maiores que 100 km/h.

No presente trabalho, o erro máximo de medição foi estabelecido como ± 3 km/h, por se tratar de um perímetro urbano onde a velocidade máxima permitida segundo o Código de Trânsito Brasileiro, lei de no 9.503 de 23 de Setembro de 1997

no Artigo no61, é de 60 km/h em vias arteriais.

Para a validação das velocidades e detecções dos veículos, os resultados foram analisados dividindo os valores de erros máximos e número de detecção por faixas, onde foi possível realizar a análise individual de cada um dos resultados.

Os resultados por faixa e total estão dispostos na Tabela 1 a seguir.

Tabela 1 – Resultados finais obtidos em um resolução de 720p.

Faixa 1 Faixa 2 Faixa 3 TOTAL Erro Médio Absoluto [𝑘𝑚/ℎ] ± 3,124 ± 2,198 ± 1,759 ± 2,265

Erro Médio Percentual 6,55% 4,67% 3,79% 4,81%

% de Erros até ± 3,0𝑘𝑚/ℎ 60,00% 66,67% 80,00% 70,13%

% de Erros entre ± 3,0 e ± 5,0𝑘𝑚/ℎ 15,00% 18,51% 13,33% 15,58%

% de Erros Maiores ± 5,0𝑘𝑚/ℎ 20,00% 7,41% 3,33% 9,09%

Veículos Detectados 19 de 20 25 de 27 29 de 30 73 de 77

Taxa de Detecção 95,00% 92,59% 96,67% 94,81%

(47)

Com o resultados apresentados, é possível observar que a média dos erros das medições totais, em quilômetro por hora ficou em ± 2,265 km/h, menor que o erro máximo permitido pela INMETRO.

Na análise da medição de velocidade por faixa, as faixas 2 e 3 também apre-sentaram valores médios menores do que o erro permitido, ± 2,198 km/h e ± 1,759 km/h, enquanto que a faixa 1 apresentou um valor acima do máximo, com ± 3,124 km/h de erro médio.

Apesar das faixas 2 e 3 possuírem valores médios de erros abaixo do permi-tido, a faixa 2 obteve 7 medições acima do permipermi-tido, enquanto que na faixa 3 apre-sentou 5 medições acima.

Já em relação a detecção veicular, os valores de reconhecimento ficaram em 94,81% de detecção total em todas as faixas. A faixa 1 e 3 apresentaram resulta-dos semelhantes, como uma boa taxa de detecção, enquanto na faixa 2 obteve uma detecção inferior de 92,59%.

Dos valores obtidos nas faixas 1 e 2, cerca de 60% estão dentro da faixa de erros até ± 3,0 km/h, valores esses abaixo dos 80% obtidos na faixa 3. Um proposta melhorar essa questão é realizar a captura dos quadros à um taxa de 60 FPS. Com um taxa maior é possível ter mais amostras de velocidades medidas e então a média delas será um valor mais consolidado.

A seguir será apresentado uma sequência de 4 gráficos referentes as faixas 1, 2, 3 e o resultado total. O gráficos apresentam cada medição feita e seu respectivo erro absoluto. As medições estão dispostas em sequência, ou seja, a medição 0 repre-senta o primeiro carro que apareceu no vídeo naquela determinada faixa. O gráficos possuem quatro linhas horizontais que definem os limites de ± 3,0 km/h e ± 5,0 km/h.

(48)

Gráfico 3 – Resultado obtido na Faixa 1.

0

5

10

15

20

Medições

7.5

5.0

2.5

0.0

2.5

5.0

7.5

10.0

12.5

Erro Absoluto (km/h)

Fonte: Autoria Própria.

Gráfico 4 – Resultado obtido na Faixa 2.

0

5

10

15

20

25

Medições

4

2

0

2

4

6

Erro Absoluto (km/h)

(49)

Gráfico 5 – Resultado obtido na Faixa 3.

0

5

10

15

20

25

30

Medições

6

4

2

0

2

4

Erro Absoluto (km/h)

Fonte: Autoria Própria.

Gráfico 6 – Resultado total.

0

10

20

30

40

50

60

70

Medições

7.5

5.0

2.5

0.0

2.5

5.0

7.5

10.0

12.5

Erro Absoluto (km/h)

(50)

4.1 ANÁLISE DE DESEMPENHO

Um dos objetivos quando trata-se de processamento de vídeo é busca pelo processamento em tempo real, ou seja, a máquina deve conseguir executar o algo-ritmo e entregar o resultado dentro do intervalo de tempo de captura da câmera.

Durante os testes utilizou-se uma máquina com um processador AMD FX-8320 (4,0 GHz) e 16 GB de RAM. Essa máquina teve uma média de quadros pro-cessados em torno de 11 FPS na resolução de 720p. Para contornar esse problema, sugere-se três opções:

1. Mudar a linguagem de programação de Python para #C. A linguagem Python utiliza um interpretador durante a execução do algoritmo, onde o interpretador analisa cada linha do código escrito em alto nível, interpreta (traduz para baixo nível) para depois executar o comando. Já a linguagem #C utiliza um compilador, onde esse compilador faz um pré-processamento, ou seja, antes do algoritmo ser executado é feita a ”tradução” do código de alto nível para baixo nível, o que torna essa linguagem mais eficiente quando o fator tempo é uma variável crítica.

2. Diminuir a resolução do vídeo. Um frame com resolução de 720p possui 921.600 pixels e um de 480p possui 409.600 pixels, isso representa uma diminuição de 55% da quantidade de pixels à serem processados. No entanto, quanto menor a escala de resolução menor será o nível de detalhes da imagem, o que gera uma diferença de resultados durante a etapa de detecção.

Sem alterar nenhum parâmetro do algoritmo, realizou-se testes em diferentes re-soluções para efeito de comparação e com os resultados construiu-se a Tabela 2 a seguir:

(51)

Tabela 2 – Resultados em diferentes resoluções. Resolução Erro Médio Absoluto [𝑘𝑚/ℎ] Tempo Médio de Processamento [𝑚𝑠] FPS Tempo Real 1080p ± 3,016 112,53 8,88 Não 720p ± 2,265 90,94 10,99 Não 480p ± 2,718 40,17 24,89 Não 360p ± 3,696 21,50 46,51 Sim 240p ± 3,792 15,79 63,33 Sim 144p ± 6,347 10,72 93,28 Sim

Fonte: Autoria Própria.

O dados da Tabela 2 mostram que é possível fazer um medição em tempo real quando diminui-se a resolução do vídeo e que a medida que a resolução diminuiu o erro médio aumenta.

3. Troca do processador para um mais recente com 8 núcleos físicos/16 núcleos virtuais (threads).

(52)

5 CONCLUSÕES E PERSPECTIVAS

5.1 CONCLUSÕES

A realização do algoritmo no presente trabalho possibilitou desde o estudo teórico envolvido no seu desenvolvimento até o entendimento do uso e aplicação atra-vés do processamento de imagens e visão computacional para a finalidade destinada, a estimativa de velocidade.

A facilidade da aplicação do uso do processamento de imagens para a esti-mativa de velocidade veicular é clara, onde essa necessita apenas do algoritmo para realizar o cálculo de velocidade e da adição de um hardware capaz de processar as informações relacionadas, já que os métodos tradicionais já utilizam câmeras para a captura da placa do automóvel que efetuou a infração. Dessa maneira, esse método possui grande potencial para seu uso em larga escala sem grandes aumentos de cus-tos estruturais.

Os resultados obtidos deixam claros que a utilização do código para usos prá-ticos são viáveis, onde esse apresentou erros, na média, menores que os exigidos pelo INMETRO, apesar de alguns valores de erros ultrapassarem os valores limites. É importante ressaltar que os valores encontrados pelo presente trabalho foram compa-rados com valores de referências obtidos através de um radar indutivo, o qual também pode apresentar um erro de ± 3 km/h, segundo o INMETRO.

Apesar dos resultados, a Portaria INMETRO no 544 cita apenas três tipos de

tecnologias que podem ser aplicadas aos sistemas de medições de velocidade: por sensor de superfície, ótico e radares, sem citar o uso do processamento de imagem para esse tipo de avaliação. Para que fosse possível a utilização desse método de aná-lise, seria necessário a inclusão deste com as devidas regulamentações, exigências e parâmetros mínimos necessários para o seu devido uso.

Já quanto o número de detecção, esse não possui um valor mínimos exigido, porém o resultado de veículos detectados foi considerado satisfatório, sendo próximo aos 95%.

Outro resultado importante que pode ser citado é a taxa de detecção relaci-onado as motocicletas. Radares indutivos, como o usado para valores de referências

(53)

desse trabalho, tem dificuldade de detectar motocicletas pelo fato da calibração da frequência dos osciladores desse tipo de radar ser complexo. Isso é ocasionado pelo fato das motos não possuírem grande massa metálica, necessitando de uma maior sensibilidade na calibração dos radares indutivos, podendo gerar erros de detecção causados por interferência. Por outro lado, o método desenvolvido utilizando proces-samento de imagem elaborado pelo presente trabalho obteve grande sucesso em re-lação as motocicletas, sendo capaz de detectar e estimar a velocidade das mesmas.

Quanto as desvantagens que podem ser citadas, nota-se que o uso de hardwares de maior processamento e uma mão de obra mais especializada para o desenvolvimento do algoritmo ou ajuste de parâmetros do mesmo encarecem a insta-lação e a manutenção desses equipamentos, sendo necessário um cálculo de viabili-dade econômica quanto o seu uso.

Pode-se concluir que o resultado buscado pelo trabalho foi alcançado, elabo-rando um algoritmo que satisfaz, através do erro médio e da taxa de detecção, os valores necessários para a sua implementação na medição de velocidade, como foi confirmado anteriormente nos capítulos anteriores.

5.2 TRABALHOS FUTUROS

Como possíveis trabalhos futuros, pode-se citar:

• O uso do presente trabalho com a utilização de uma nova linguagem de pro-gramação, a fim de comparar o desempenho do tempo de processamento e a melhora no tratamento de vídeos com resoluções acima de 360p.

• O uso do hardware disponível pela Universidade Tecnológica Federal do Paraná Câmpus Ponta Grossa para a execução do algoritmo e avaliação dos resultados alcançados.

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

to values observed in mussels exposed to contaminated seawater (conditions A, B, C) (Figure 426.. 4B,

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

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

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

The objective of this study was to evaluate the effect of low-level laser therapy (LLLT) on radiotherapy- induced morphological changes and caspase-3 immunodetection in parotids

xii) número de alunos matriculados classificados de acordo com a renda per capita familiar. b) encaminhem à Setec/MEC, até o dia 31 de janeiro de cada exercício, para a alimentação de

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for