• Nenhum resultado encontrado

Neste capítulo discutimos os experimentos realizados e resultados obtidos a partir do método proposto nesta dissertação.

Nas Seções 4.1 e 4.2 são discutidos os experimentos de segmentação e detecção e ras- treamento, assim como uma análise sobre os resultados obtidos. Na Seção 4.3 discutimos a criação da aplicação gerada a partir dos estudos deste projeto de dissertação.

4.1

Segmentação

Para os testes de segmentação, utilizamos uma breve comparação entre os méto- dos elencados na Subseção 2.4.1 em comparação com um modelo de segmentação ideal (ground-truth). Partindo do princípio de que apenas uma parte da área capturada no vídeo é de interesse do usuário, no caso específico de captura de dados do tráfego ape- nas a malha viária, as vias onde trafegam os carros e não calçadas, canteiros ou demais áreas, a segmentação ocorre dentro de uma região de interesse previamente delimitada pelo usuário, culminando em uma economia de tempo de processamento despendida pelos métodos de segmentação, uma vez que estes são baseados em pixels, e demais processos da aplicação.

A primeira comparação, com relação ao tempo de processamento de cada método é apresentada na Tabela 4.1. A medida utilizada é o FPS , número de frames que podem ser processados por segundo. A aplicação trabalha com a resolução de 640 × 480 para visualização e a mesma imagem com escala reduzida em 0, 5 para processamento, utiliza- mos a imagem de processamento como entrada nos processos da aplicação que envolvem maior custo computacional para evitar perdas de FPS.

O tempo de processamento é uma métrica importante para a proposta desta disserta- ção, visto que precisamos de processamento em tempo quase real. O PBAS foi o algoritmo mais lento dentre os demais, o motivo fora explicado na Subseção 2.4.1 no tópico PBAS.

Método FPS (≈) Diferença Absoluta entre Frames 84

MoG de KaewTraKulPong-Bowden 68

MoG de Zivkovi 65

GMG 50

PBAS 40

Apesar de atingir taxas elevadas, acima da tolerância de 20 FPS que foi estimada para o escopo desta aplicação, seu uso foi descartado nos experimentos seguintes. O motivo pelo desencorajamento de seu uso se deve ao fato de que o mesmo é protegido por patentes, o que torna seu uso inviável para uma futura aplicação comercial.

No entanto, somente a métrica de tempo não é suficiente visto que a qualidade de segmentação do método é de suma importância. Comparamos então a qualidade das máscaras de foreground geradas por cada método, conforme Figura 4.1.

O PBAS é o que mais se aproxima do ground-truth ou estado da arte, porém descarta- mos seu uso devido a problemas mencionados no parágrafo anterior. Utilizamos a medida de recall – ou revocação – como métrica de qualidade de segmentação. Conhecida como taxa de verdadeiros positivos, denota o quão sensível o método é, com relação ao número de amostras positivas encontradas, e pode ser expressa pela relação:

rec = T P

T P + F N, (4.1)

onde o valor de T P denota o número de veículos detectados corretamente pelo método e F N denota o número de veículos que o método não conseguiu detectar. A Tabela 4.1 apresenta a taxa de recall de cada método no que diz respeito à Equação (4.1). Para a realização dos testes, utilizamos a versão final da aplicação alternando os algoritmos de segmentação e delimitamos, também, uma sub-região do vídeo para captura de apenas uma faixa da via. O valor de T P foi estimado pela função de contagem volumétrica do método, já o valor de T P +F N foi estimado pela contagem manual dos veículos nos vídeos de testes. Como entrada utilizamos três vídeos de testes capturados pela mesma câmera em horários diferentes (manhã, entardecer e noite), cada video tem duração média de 1, 5 minuto.

Durante os testes, configuramos os parâmetros para cada algoritmo de segmentação na seguinte ordem: (i) para MoG de KaewTraKulPong-Bowden utilizamos o valor de k = 5,

Figura 4.1: Aplicação dos métodos de segmentação, (a) Ground-Truth, (b) Diferença Ab- soluta entre Frames, (c) MoG de KaewTraKulPong-Bowden, (d) MoG de Zivkovi, (e) GMG, (f) Pixel Based Adaptive Segmenter.

valor recomendado pelo autor. Testamos k com outros valores porém não obtivemos tanto êxito, com k = 5 aumentamos nosso espaço de modelagem para 5 gaussianas ao custo de maior custo computacional que, de acordo com os testes de tempo realizados, se mostrou indiferente; (ii) para MoG de Zivkovi não precisamos configurar o valor k visto que este é configurado de forma automática pelo algoritmo; (iii) o GMG precisa de alguns frames para a etapa de treinamento, reservamos então os 60 primeiros frames para esta etapa, o

Manhã

Método TP Real TP FN Recall

MoG de KaewTraKulPong-Bowden

71

69 2 0, 97

GMG 52 19 0, 73

MoG de Zivkovi 43 28 0, 60

Diferença Absoluta entre Frames 31 42 0, 43 Entardecer

Método TP Real TP FN Recall

MoG de KaewTraKulPong-Bowden

68

54 14 0, 79

MoG de Zivkovi 46 12 0, 67

GMG 46 12 0, 67

Diferença Absoluta entre Frames 32 36 0, 47 Noite

Método TP Real TP FN Recall

GMG

53

42 11 0, 79 MoG de KaewTraKulPong-Bowden 36 17 0, 67 Diferença Absoluta entre Frames 34 19 0, 64

MoG de Zivkovi 28 25 0, 52

que equivale a 2 segundos para cada vídeo, obviamente que, se aumentarmos o número de frames para treinamento, aumentamos também a capacidade de segmentação inicial deste algoritmo; (iv) para a diferença absoluta entre frames, configuramos o valor de θ = 10 por demonstrar maior eficiência quando comparado com outros valores.

Observamos através dos experimentos que o algoritmo de KaewTraKulPong-Bowden obteve melhores resultados nos períodos diurno, enquanto que o algoritmo de Goldberg et al no período noturno. O fato do GMG necessitar de treinamento para adaptar o mo- delo de background demonstra que o mesmo pode precisar de mais tempo para melhorar seu aproveitamento. Uma estratégia que pode ser montada a partir destes resultados é o uso alternado do modelo de misturas de gaussiana de KaewTraKulPong-Bowden e o GMG. Porém, vale salientar que os resultados com GMG não podem ser considerados ótimos, e em situações de não haver iluminação pública na via teríamos resultados ainda mais críticos, neste caso pensar em outra estratégia tal como no trabalho de O’Malley (O’MALLEY; JONES; GLAVIN, 2010), que se baseia na detecção de veículos em ambi- entes noturnos através das lanternas traseiras e dianteiras, pode preencher esta lacuna. Os resultados da Tabela 4.1 são apresentados no gráfico da Figura 4.2.

O uso alternado do algoritmo de KaewTraKulPong-Bowden e de Goldberg et al em horários adequados para cada, inicialmente aparenta ser uma boa solução, o fato pelo qual

Figura 4.2: Gráfico para dados da tabela 4.1.

decidimos adotar tal estratégia.

4.2

Detecção e Rastreamento

Para os experimentos, focamos inicialmente na detecção e classificação de duas clas- ses genéricas de veículos: motocicletas e carros de passeio. Montamos então um dataset contendo 200 amostras positivas para cada categoria – cada amostra com dimensão de 24 × 24 – que foram retiradas de vídeos de vigilância do trânsito na cidade brasileira do Natal - Rio Grande do Norte. Submetemos então todas as amostras positivas ao processo de tratamento de oclusão, descrito na Subseção 3.1.3, a Figura 4.3 apresenta algumas dessas amostras. Por fim criamos 1800 amostras negativas com dimensão de 96 × 96 que foram coletas na Web , estas não podem conter nenhum dos elementos à serem detectados, alguns exemplos de amostras negativas podem ser vistos na Figura 4.4.

Ambas amostras positivas e negativas são submetidas à conversão para escala de cinza antes da fase de treinamento, visto que utilizamos apenas um canal.

Tanto a fase de treinamento como a de testes foram realizadas em um computador com configuração mediana equipado com um Intel i5 (4a geração) com um clock de 1.7GHz e

4GB de memória RAM. Uma vez que somente pequenas áreas do frame serão processadas – a área em movimento –, não precisaremos utilizar a resolução do vídeo completa, o que nos garante menos custo computacional para as etapas de detecção, classificação e

Figura 4.3: Exemplos de amostras positivas para as classes (a) carros de passeio e (b) motocicletas.

tratamento de oclusão.

Depois da fase de treinamento, processamos três vídeos para realização dos testes, estes vídeos foram separados para este fim, cada um contém imagens disjuntas dos datasets. Cada vídeo foi coletado utilizando a mesma câmera porém em horários diferentes, como nos experimentos realizados no primeiro módulo cujos resultados podem ser vistos na Seção 4.1.

Para quantificar a eficácia do nosso modelo, executamos a versão final da aplicação a fim de obtermos a taxa de recall e a taxa de oclusões resolvidas. Fizemos uso da estratégia adotada como resultado dos experimentos da Seção 4.1, utilizamos o algoritmo de seg-

Figura 4.4: Exemplos de amostras negativas extraídas da Web.

mentação de KaewTraKulPong-Bowden para os vídeos diurnos e o de Goldberg et al para o vídeo noturno. Os resultados podem ser conferidos na Tabela 4.2, consideramos nesta tabela a taxa total de detecção de objetos das duas categorias (veículos leves e motos).

Tabela 4.3: Resultados da aplicação em sua versão final.

Método TP Real Recall Tx Oclusões FPS min (≈) FPS max (≈)

Manhã 71 0, 97 0, 94 40 60

Entardecer 68 0, 79 0, 87 42 60

Noite 53 0, 79 0, 88 37 58

As taxas de FPS mínimo e máximo resultam da quantidade de áreas a serem proces- sadas, em situações de bastante movimentação é natural que haja uma decaída na taxa de FPS, porém os valores de mínimo obtidos são mais do que suficiente para o escopo da aplicação. As taxas de falsos negativos que geram o recall, assim como algumas peque- nas falhas no tratamento de oclusão, são oriundas de falhas na segmentação dos objetos, uma vez que esses processos são dependentes desta. Essas falhas ocorrem quando surgem holes nas máscaras binárias, este fenômeno ocorre devido o próprio método de segmenta- ção tratar áreas do objeto em movimento como se do background fossem. A semelhança de textura e cores é um fator determinante no surgimento deste fenômeno. Pesquisas de melhorias na segmentação serão temas de trabalhos futuros.

A Figura 4.5 apresenta alguns casos de oclusões resolvidas, através do método de tratamento de oclusões proposto neste trabalho, em diversos vídeos de vigilância. Cada caixa delimitadora envolve um objeto detectado e submetido ao processo de rastreamento.

Figura 4.5: Casos de oclusões resolvidos em diversos vídeos de vigilância no trânsito.

A Figura 4.6 apresenta casos de oclusões que, se não resolvidas, podem gerar in- formações equivocadas uma vez que quando há oclusão, o sistema é capaz de detectar vários objetos considerando-os como apenas um, por este motivo o uso do tratamento de oclusões é de fundamental importância. Neste caso, observa-se a caixa delimitadora envolvendo mais de um veículo, afetando diretamente o processo de rastreamento e, con- sequentemente, a extração correta de dados.

Figura 4.6: Situações geradas a partir do não tratamento de oclusões .

4.3

Aplicação

Como resultado dos estudos levantados a partir do projeto desta dissertação, foi pos- sível o desenvolvimento da aplicação-componente Detecção de Veículos e Obtenção de Dados. Obtivemos êxito nos experimentos que foram discutidos juntamente com os resul- tados nas Seções 4.1 e 4.2 para os módulos de Segmentação e Detecção e Rastreamento respectivamente, módulos que compõe esta aplicação. As Figuras 4.7, 4.8 e 4.9 apresentam telas da versão final da aplicação para uma mesma perspectiva de captura de vídeos em horários alternados.

Tomemos como base a Figura 4.7 para discussão sobre as informações exibidas na tela da aplicação. A etiqueta superior de cada caixa delimitadora mostra a categoria a qual o veículo pertence, conclusão obtida a partir do processo de detecção e classificação, outra maneira de diferenciar as categorias é pela cor de cada objeto, utilizamos a cor

Figura 4.7: Aplicação em execução para um vídeo capturado pela manhã.

vermelha para veículos leves e azul para motocicletas. A área contornada em branco é a região de interesse processada, o restante da imagem é descartado. A linha contínua verde, etiquetada do lado esquerdo, é a linha divisória responsável por disparar o evento de captura dos dados: direção, velocidade média estimada e; contagem volumétrica.

Os dados advindos da aplicação são armazenados em uma pasta local que contém: (i) um arquivo de texto com os dados dos veículos detectados em que, cada registro (ou linha) representa um veículo. A Figura 4.10 mostra um fragmento do conteúdo deste arquivo, cada coluna é responsável por armazenar um tipo de informação, são elas, respectivamente, arquivo de imagem, categoria do veículo, velocidade média estimada, data e hora da captura, coordenadas x e y do objeto na imagem; (ii) arquivos de imagens do momento da captura do veículo, estes são indexados junto ao arquivo de texto.

Utilizamos a linguagem C++ orientada a objetos e a biblioteca OpenCV para o desen- volvimento da aplicação. Decidimos por utilizar o paradigma orientado a objetos devido seu poder de abstração no intuito de deixar a aplicação extensível – ou aberta – a novas implementações para métodos de segmentação, detecção e rastreamento de tal forma que é possível alternar entre vários métodos com extrema facilidade, utilizando o conceito de

Figura 4.8: Aplicação em execução para um vídeo capturado ao entardecer.

polimorfismo. A Figura 4.11 apresenta na parte superior a arquitetura de sistema mon- tada para a aplicação, na parte inferior encontra-se o diagrama de classes da aplicação, as cores enfatizam à qual módulo o conjunto de classes pertence, a chave de todo o processo está na colaboração destas classes.

A classe Area delimita a região de interesse dentro do frame e consequentemente a área de processamento da imagem. As classes Processing e Segmenter são responsáveis pelo pré-processamento e segmentação, respectivamente (Capítulo 2). A classe Tracking utiliza um Tracker que é responsável pelo rastreamento, estamos utilizando Senior para este tra- balho. Observe que a classe Tracker utiliza um Classifier que, para o caso desta aplicação, optamos pelo classificador e detector Cascade (Capítulo 3). Os elementos textuais pre- sentes no diagrama representados por reticências (...) indicam pontos de extensão, dessa forma é possível implementar novas técnicas de segmentação, rastreamento ou detecção para a aplicação sem que haja modificações massivas no código.

O desenvolvimento desta aplicação é parte de um sistema maior como visto no Capí- tulo 1, por este motivo denominamos essa como aplicação-componente. O seu uso pode ser de forma independente da segunda aplicação-componente de forma tal que pode ser

Figura 4.9: Aplicação em execução para um vídeo capturado à noite.

Figura 4.10: Fragmento do arquivo de texto com os dados dos veículos detectados.

Documentos relacionados