Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMA DE DETECÇÃO DE PASSAGEIROS UTILIZANDO TÉCNICAS DE TRATAMENTO DE IMAGEM Felipe da Rocha Moraes Projeto de Graduação apresentado ao Curso de Engenharia Eletrônica e de Computação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do t́ıtulo de Enge- nheiro. Orientador: Miguel Elias Mitre Campista Rio de Janeiro Fevereiro de 2017 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Politécnica - Departamento de Eletrônica e de Computação Centro de Tecnologia, bloco H, sala H-217, Cidade Universitária Rio de Janeiro - RJ CEP 21949-900 Este exemplar é de propriedade da Universidade Federal do Rio de Janeiro, que poderá inclúı-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibli- otecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es). iv DEDICATÓRIA Aos meus pais. Aos meus avós (in memoriam). v AGRADECIMENTO Agradeço aos meus pais Laurindo e Lúcia por sempre me apoiarem em todas as minhas decisões e por sempre me incentivarem a estudar. Agradeço ao meu irmão Thiago por sempre me aturar desde os meus primeiros dias de vida. Aos meus falecidos avós Gil e Lygia, que sempre estiveram juntos em vida e eu não poderia separá-los aqui, por tudo de bom que me ensinaram durante suas vidas. Agradeço à minha avó Jandyra, que já se foi, mas que sempre estará presente. Também sou grato aos meus tios: Kalil, Leopoldo, Lúcio, Nauro, Reinaldo, Aurélia, Lygia, Maria, Mercedes, Rosely, Suely e Telma, por sempre cuidarem de mim como se eu fosse um filho. E aos meus falecidos tios Antonio, João, Juca e José. Agradeço aos meus irmãos, que as pessoas chamam de primos, por sempre me apoiarem, em ordem alfabética: Bianca, Carlos Eduardo, Claudia, Gabriel, Gil, Júlia, Kauan, Ĺıvia, Lucas, Luciana, Marcio, Maria, Maria Eduarda, Mirna, Murilo, Nauro, Paulo Ricardo, Pedro, Pedro Miguel, Rafael, Reinaldo, Roseli e Tadeu. Agradeço aos amigos e colegas da UFRJ, por tornarem esses anos mais agradáveis, em especial a: Ana Tarrise, Bianca Bellas, Douglas Poubel, Erick Ri- gon, Evelyn, Felipe Menezes, Fernanda Oliveira, Gabriel Alboretti, Heitor Bellas, Henrique, Hugo Coqueijo, Lais Bernardo, Léa, Leonardo Souza, Lucas Camun, Lu- cas Manoel, Lucas Neves, Mariana Massote, Pedro Brito, Pedro Dagola, Rafaela Berberick, Vinicius Bellas, Vinicius Ferrão e Vitor Antunes. Sou muito grato aos professores Luiz Wagner e Miguel Campista, por me orientarem durante a graduação e por nunca desistirem de mim. Agradeço também aos professores Carlos Teodósio, Wallace Martins, Carlos José, Ricardo Rhomberg, Joarez, Mauros, Ari Sauer e Ginette, pelos ensinamentos e conselhos que sempre me foram úteis. Agradeço aos técnicos Isáıas e Márcio, por sempre me ajudarem no laboratório. Agradeço aos colegas da Embratel, por me ensinarem muito durante o estágio: Walderson Vidal, José Silva, Anderson, Adriano, Aldair Freire, Mauro Gomes, Mar- celo Gomes, Pedro Ângelo, Genilson e Fábio Big. vi Agradeço aos funcionários do Burguesão, dentre os quais destaco a Carmen, Ivanilda, Aurilene, Cleide, Rosa, Neide, Patricia, Jamile e Maria, por sempre me tratarem com muito carinho. Aos meus amigos de Sacra Famı́lia, que sempre estiveram comigo durante toda a minha vida: Eduardo, Guilherme, Humberto, Leandro, Leonardo e Marcus Pelosi. Sei que a lista ficou grande, mas não poderia encerrar esse ciclo da minha vida sem agradecer a cada um de vocês, por todo apoio recebido. vii RESUMO A visão computacional vem sendo extensivamente aplicada nas mais diversas áreas. A grande vantagem da sua utilização é que uma câmera pode ser usada como uma rede de sensores, além é claro de filmar o ambiente. Exemplos de aplicação da visão computacional já são encontradas no dia a dia, como nos sistemas de detecção de colisão de véıculos e sistema de reconhecimento facial em câmeras e nas redes sociais. Este trabalho apresenta um estudo das principais técnicas utilizadas na visão computacional e faz uma comparação entre elas, a fim de identificar qual a mais adequada para detectar o fluxo de pessoas que passam por um ambiente. Por fim, a visão computacional é aplicada em um sistema capaz de contar quantas pessoas entram e saem de um véıculo de transporte público. Os resultados mostraram que o sistema consegue contabilizar a entrada e sáıda de pessoas, desde que não entrem abraçadas ou encostando uma na outra. O sistema proposto funcionou e apresentou uma pequena taxa de erro. Palavras-Chave: Raspberry Pi, OpenCV, Visão Computacional, Subtração de Imagens, Mistura de Gaussianas, Histograma de Gradientes Orientados, Rastrea- mento de Pessoas. viii ABSTRACT Computer vision has been extensively applied in several different fields. Its greatest advantage is that a camera can be used as a network of sensors, in addition to filming the surroundings. Examples of application of computer vision are already found in everyday life, in vehicle collision detection systems and face recognition systems in cameras and social networks. This work presents a study and compares the main techniques used in com- puter vision, aiming to identify which is better to detect the flow of people passing through the surroundings. Finally, computer vision is applied in a system that counts how many people enter and leave a public transportation vehicle. The results showed that the system can count the entrance and exit of people, as long as they do not enter walk in arms or touching each other. The proposed system worked and presented a small error rate. Key-words: Raspberry Pi, OpenCV, Computer Vision, Image Subtraction, Mix- ture of Gaussians, Histogram of Oriented Gradients, People Tracking. ix SIGLAS UFRJ - Universidade Federal do Rio de Janeiro HOG - Histograma de Gradientes Orientados MOG - Mixture of Gaussians CPU - Central Processing Unit RAM - Random Access Memory SSD - Solid State Drive GB - Gigabyte GPS - Global Positioning System x Sumário 1 Introdução 1 1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Técnicas de tratamento de imagem para detecção de objetos 5 2.1 Subtração de imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Subtração de fundo . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Subtração de quadros consecutivos . . . . . . . . . . . . . . . 6 2.1.3 Subtração de fundo estimado pela média . . . . . . . . . . . . 7 2.1.4 Mistura de gaussianas . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Caracteŕısticas Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Histograma de gradientes orientados . . . . . . . . . . . . . . . . . . 11 2.4 Segmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.1 Limiarização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.2 Suavização gaussiana . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.3 Detector de borda . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Morfologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Avaliação das técnicas de detecção 203.1 Vı́deos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.1 Subtração de fundo . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.2 Subtração de quadros consecutivos . . . . . . . . . . . . . . . 23 xi 3.1.3 Subtração de fundo estimado pela média . . . . . . . . . . . . 25 3.1.4 Mistura de gaussianas . . . . . . . . . . . . . . . . . . . . . . 26 3.1.5 Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.6 Histograma de gradientes orientados . . . . . . . . . . . . . . 29 3.1.7 Comparação entre as técnicas . . . . . . . . . . . . . . . . . . 30 4 Solução proposta e resultados 32 4.1 Configurações testadas . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.1 Primeira configuração . . . . . . . . . . . . . . . . . . . . . . 33 4.1.2 Segunda configuração . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.3 Terceira configuração . . . . . . . . . . . . . . . . . . . . . . . 34 4.2 Solução proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5 Conclusões e trabalhos futuros 45 Bibliografia 46 xii Lista de Figuras 1.1 Fluxograma de funcionamento do algoritmo. . . . . . . . . . . . . . . . . 3 2.1 Etapa do processamento de imagem. . . . . . . . . . . . . . . . . . . . . 5 2.2 Fluxograma da técnica de subtração de fundo. . . . . . . . . . . . . . . . 6 2.3 Sub-região ABCD em uma matriz de pixel. . . . . . . . . . . . . . . . . 9 2.4 Exemplos de caracteŕısticas Haar. (Adaptado do site do OpenCV [1]). . . 10 2.5 Representação visual da cascata de classificadores. . . . . . . . . . . . . . 12 2.6 HOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7 Processo de limiarização. (Adaptado do site do OpenCV [1]). . . . . . 15 2.8 Comparativo dos métodos de limiarização. (Adaptado do site [2]). . . 15 2.9 Exemplo de utilização da suavização gaussiana. (Adaptado do site [3]). 16 2.10 Processo de supressão máxima. (Adaptado do site do OpenCV [1]). . 17 2.11 Limiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.12 Exemplo de aplicação das técnicas de erosão e dilatação. . . . . . . . 18 2.13 Exemplo de aplicação das técnicas de abertura e fechamento. . . . . . 19 3.1 Etapa de identificação das pessoas. . . . . . . . . . . . . . . . . . . . . . 20 3.2 Imagens dos três v́ıdeos analisados. . . . . . . . . . . . . . . . . . . . 22 3.3 Subtração de fundo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.4 Subtração de quadros consecutivos. . . . . . . . . . . . . . . . . . . . 24 3.5 Subtração de fundo estimado pela média. . . . . . . . . . . . . . . . . 26 3.6 Subtração utilizando a técnica MOG. . . . . . . . . . . . . . . . . . . 27 3.7 Detecção usando a técnica Haar. . . . . . . . . . . . . . . . . . . . . . . 29 3.8 Detecção usando a técnica HOG. . . . . . . . . . . . . . . . . . . . . 30 3.9 Gráfico com a taxa de acerto de cada técnica nas três posições de captura. 31 4.1 Etapa de identificação, rastreamento e contabilização das pessoas. . . . . . 32 xiii 4.2 Imagem obtida com a câmera na visão lateral da estação do Maglev Cobra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3 Imagem captada com visão superior em 45◦. . . . . . . . . . . . . . . 34 4.4 Imagem captada no interior do Maglev Cobra, com visão superior em 90◦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5 Teste dos algoritmos de subtração de imagens com um v́ıdeo filmado dentro do Maglev Cobra com a câmera posicionada em 90◦. . . . . . . 36 4.6 Porta por onde passam os passageiros do Maglev Cobra. . . . . . . . . . 37 4.7 Imagens do suporte posicionado sobre a porta da estação. . . . . . . . 37 4.9 Imagem processada e segmentada. . . . . . . . . . . . . . . . . . . . . 37 4.8 Fluxograma do algoritmo de rastreamento simplificado. . . . . . . . . . . 38 4.10 Fluxograma do algoritmo de contabilização. . . . . . . . . . . . . . . . . 40 4.11 Algoritmo em execução no Raspberry Pi. . . . . . . . . . . . . . . . . 41 4.12 Pessoa se deslocando na região de contabilização. . . . . . . . . . . . 42 4.13 Exemplos de caso em que o sistema não funcionou. . . . . . . . . . . 43 4.14 Gráfico com a taxa de acerto do sistema em uma situação real. . . . . . . 44 xiv Lista de Tabelas 3.1 Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de fundo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2 Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de quadros consecutivos. . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de fundo estimado pela média. . . . . . . . . . . . . . . . . . . . . . . 26 3.4 Comparativo dos v́ıdeos analisados utilizando a técnica MOG com 3 gaussianas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5 Comparativo dos v́ıdeos analisados utilizando a técnica de carac- teŕısticas Haar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.6 Comparativo dos v́ıdeos analisados utilizando a técnica HOG. . . . . 30 xv Caṕıtulo 1 Introdução 1.1 Tema Com a evolução do processamento digital de imagens, o reconhecimento de objetos passou a ser extensivamente pesquisado na área de visão computacional [4, 5, 6, 7]. O uso dessas técnicas já é realidade em diversas soluções comercias como por exemplo detectar se um motorista está com sono [8], detectar obstáculos na trajetória de um véıculo [9], auxiliar o motorista na frenagem ao detectar que o carro da frente diminuiu a velocidade [10], detectar se um pedestre está na trajetória do véıculo [11], auxiliar os vigilantes ao detectar que algum objeto foi deixado em repouso por muito tempo [12] e também no controle de fluxo de pessoas e sistemas de contagem [13]. A grande vantagem de utilizar a imagem capturada pela câmera como um sensor para detectar objetos é que a solução pode ser implementada sem ter que instalar um novo sensor para isso, um exemplo é a detecção de objetos deixados em repouso por muito tempo, na qual o sistema é implementado utilizando a câmera de vigilância que já existe no local. Para realizar a detecção de objetos ou pessoas, a imagem captada pela câmera é tratada por uma técnica de processamento de imagem capaz de distinguir o objeto, o gesto ou a alteração do cenário onde a câmera está localizada. A detecção de pedestres se apresenta como um desafio dentro da visão com- putacional, pois os pedestres possuem tamanhos e formas diferentes, as roupas apre- sentam cores que podem se confundir com o cenário das imagens, ou então podem apresentar uma única cor que encubra quase todo o corpo da pessoa, como a burca. 1 Outro fator que prejudica a detecção são os acessórios (mochilas, bolsas, malas, chapéus, etc) utilizados pelos pedestres. Soma-se a essa dificuldade na detecção dos pedestres, as condições do ambiente onde as imagens são captadas, por exemplo no trânsito e estações de trem ou ônibus existe uma grande variação da iluminação no ambiente, sem contar o enorme fluxo de pessoas e a grande quantidade de objetos que podem causar a obstrução do local que se deseja monitorar. Este trabalho consiste na implementação prática de um sistema para de- tecção de entrada e sáıda de passageiros em um véıculo. As técnicas utilizadas neste trabalho estão dispońıveis no pacote de software para visão computacional e pro- cessamento de imagens, denominado OPENCV. Estes métodos são frequentemente utilizados na literatura a fim de rastrear e identificar pessoas. 1.2 Justificativa É comum encontrar em diversas cidades, principalmentena Europa, sistemas de transporte que não possuem um funcionário responsável pela cobrança do bilhete do passageiro, esse sistema de cobrança é baseado na confiança de que o passageiro valide o seu bilhete ao entrar no véıculo. Para coibir o não pagamento ou validação do bilhete, funcionários da empresa de transporte fazem fiscalizações em horários e lugares aleatórios, sem que o passageiro saiba onde e quando será a próxima fiscalização. Caso o passageiro seja pego em um véıculo sem ter o bilhete validado, ele recebe uma multa. Visto que os sistemas de transporte não possuem um funcionário responsável para efetuar a cobrança do bilhete fica dif́ıcil monitorar em qual trecho e horário de operação do véıculo o fluxo de passageiros é maior. Também é dif́ıcil monitorar onde a taxa de passageiros que viajam sem validar o bilhete é maior. Dessa forma, as fiscalizações feitas pelos funcionários da empresa de transporte podem encontrar o véıculo vazio ou com todos os passageiros com o bilhete validado, o que não justifica a fiscalização. Por outro lado, o véıculo pode transitar cheio e com nenhum passageiro que validou o bilhete, e sem nenhuma fiscalização dos funcionários. Tendo a visão computacional como ferramenta, pode-se tentar organizar me- lhor o local e horário dessas fiscalizações. Por exemplo, se a empresa souber quantas 2 pessoas estão dentro do véıculo, é posśıvel comparar esses dados com o sistema de bilhetagem e descobrir quantas pessoas validaram o seu bilhete. 1.3 Objetivos O objetivo deste trabalho é identificar quantas pessoas entram e saem do Maglev Cobra, que é um véıculo de levitação magnética operando em fase de teste dentro do campus da ilha do Fundão, da UFRJ. A contabilização do número de pessoas que entram e saem serve para monitorar o fluxo de passageiros que utilizam o véıculo ao londo do dia, já que o único controle de passageiros é feito por um livro na estação, o qual o passageiro deve assinar na estação antes de embarcar. Além disso, sabendo quantas pessoas estão no véıculo é posśıvel estimar o seu peso e passar essa informação para o sistema de frenagem automática e avisar na próxima estação quantos lugares dispońıveis têm no véıculo. 1.4 Metodologia O primeiro passo para a realização deste projeto é a aquisição do v́ıdeo a ser analisado. Após a imagem ter sido captada, este trabalho investiga diversas técnicas de processamento de imagens, a fim de descobrir qual se adapta melhor as condições da estação do Maglev Cobra. Para um melhor funcionamento do sistema, são empregadas técnicas de segmentação de imagem a fim de destacar as pessoas nas imagens analisadas. Com as pessoas identificadas, é aplicado um algoritmo de rastreamento da sua trajetória a fim de saber qual caminho ela percorreu. Por fim, sabendo o caminho percorrido pela pessoa, o algoritmo proposto é capaz de dizer se a pessoa entrou ou saiu do Maglev Cobra. A Figura 1.1 apresenta um fluxo descrevendo as etapas do projeto. Figura 1.1: Fluxograma de funcionamento do algoritmo proposto. 3 1.5 Descrição No caṕıtulo 2 é feito o estudo teórico de todas as técnicas de segmentação e processamento de imagens utilizadas neste trabalho. O caṕıtulo 3 apresenta a comparação do desempenho das técnicas estudadas no caṕıtulo anterior aplicadas aos v́ıdeos gravados em situações de teste. No caṕıtulo 4 é discutida a utilização das técnicas que apresentam melhor desempenho no cenário onde fica localizado o Maglev Cobra. Por fim o caṕıtulo 5 apresenta a conclusão baseada nos resultados obtidos nos caṕıtulos 3 e 4. 4 Caṕıtulo 2 Técnicas de tratamento de imagem para detecção de objetos Este caṕıtulo apresenta um estudo teórico sobre os principais métodos de detecção de objetos e tratamento de imagens. A Figura 2.1 ilustra em qual etapa do projeto essas técnicas são aplicadas. Figura 2.1: Fluxo demonstrando que o projeto se encontra na etapa de processamento e segmentação da imagem. Dentre as técnicas para detecção de objetos, destacam-se as técnicas de sub- tração de imagens, a mistura de gaussianas, a caracteŕıstica Haar e a técnica de histogramas de gradientes orientados. Estas técnicas são as mais utilizadas na lite- ratura e apresentam um desempenho satisfatório em diferentes cenários [5]. 2.1 Subtração de imagens A técnica de subtração de imagens, ilustrada na Figura 2.2 é muito utilizada para detectar objetos filmados por uma câmera fixa. Essa técnica consiste em se- parar o fundo da imagem, background, do objeto em primeiro plano, foreground. A subtração é feita pixel a pixel e o resultado é a diferença absoluta entre as duas imagens. 5 Figura 2.2: Fluxograma da técnica de subtração de fundo. 2.1.1 Subtração de fundo Esta técnica utiliza um quadro de referência para ser comparado com todos os outros quadros do v́ıdeo. A técnica pode ser descrita através da equação 2.1. ∆Q = |Q(x, y, t)−Qref (x, y)|, (2.1) onde ∆Q é o quadro resultante da diferença entre o quadro atual Q e o quadro de referência Qref , x e y são as coordenadas do pixel no quadro e t é o instante de tempo no qual o quadro foi capturado. Esta técnica de subtração de fundo é muito instável para pequenas variações no ambiente, pois como é feita a diferença absoluta entre o quadro atual e o quadro de referência, caso tenha uma pequena variação na luz do ambiente ou mudança da posição de objetos, essa diferença gera um rúıdo na sáıda [14]. Uma forma de diminuir o impacto das variações de luz do ambiente é atualizar de forma constante o quadro de referência. Porém, é necessário garantir que nenhum objeto de interesse esteja nesse novo quadro de referência. 2.1.2 Subtração de quadros consecutivos Esta técnica consiste na análise da imagem obtida através da subtração ab- soluta de um quadro pelo quadro imediatamente anterior a ele. Dessa forma, a imagem resultante contém apenas os pixels que são diferentes entre os dois quadros. Essa técnica pode ser modelada pela Equação 2.2. ∆Q = |Q(x, y, t+ 1)−Qref (x, y, t)|. (2.2) 6 Como o quadro de referência é atualizado constantemente, esta técnica con- segue se adaptar muito bem às mudanças de luz [15] e de objetos na região a ser observada. Entretanto, se o objeto a ser detectado ficar parado entre um quadro e o quadro posterior, este objeto é suprimido do quadro resultante e não é posśıvel fazer a sua detecção. 2.1.3 Subtração de fundo estimado pela média Esta técnica é muito parecida com as duas últimas apresentadas e consiste na utilização da média dos N primeiros quadros para criar uma estimativa do quadro de referência. A Equação 2.3 descreve esse processo, onde Ntotal é o número de quadros do v́ıdeo analisado e 1 ≤ N ≤ Ntotal Qref = 1 N N∑ i=1 Qi(x, y, t). (2.3) Como esta técnica é uma combinação das duas últimas técnicas analisadas, o problema está em encontrar o valor ideal para N, para que os problemas encontrados anteriormente sejam mitigados. Caso o valor de N seja muito baixo, esta técnica se assemelha à subtração de quadros consecutivos. Porém, se o valor escolhido for muito alto, o resultado torna-se similar à subtração utilizando um quadro de referência. 2.1.4 Mistura de gaussianas No método de Misturas de Gaussianas (Mixture of Gaussians - MOG) cada pixel é representado por uma soma de Gaussianas parametrizadas. Dessa forma, cada vez que um quadro é analisado, os valores dos parâmetros das gaussianas são alterados, podendo assim estimar a probabilidade do valor de cada pixel. A Equação 2.4 descreve a probabilidade de um determinado pixel possuir um valor Xi num determinado instante t. P (Xt) = K∑ i=1 ωi,tη(Xt, µi,t,Σi,t), (2.4) onde, K é o número de distribuições Gaussianas utilizadas, ωi,t é o peso da i-ésimadistribuição Gaussiana, no instante t, µi,t é a média da i-ésima mistura de Gaussiana, 7 no instante t, Σi,t é a matriz de covariância da i-ésima mistura de Gaussiana, no instante t e η é a função de densidade de probabilidade Gaussiana. A técnica de mistura de gaussianas é adaptativa, visto que ela permite a atualização dos objetos no cenário a ser analisado. A adaptação do cenário está associada ao número de gaussianas utilizadas no cálculo, dessa forma, quanto menos gaussianas forem utilizadas, mais rápida e menos precisa é a diferença de objetos incorporada ao fundo [16]. Em contrapartida, ao aumentar o número de gaussianas para ter um fundo mais preciso e com menos rúıdo, o tempo de execução é maior e a capacidade de adaptação do sistema ao cenário é prejudicada, pois se torna menos suscet́ıvel a variações. Para saber se um pixel corresponde ao background ou foreground, é utilizada a razão ω/σ, pois um pixel que pertença ao background apresenta baixa variância (σ) e alta persistência (ω). Isso ocorre porque um pixel de background apresenta pequenas variações do seu valor e um número elevado de observações. Para pertencer ao foreground, o pixel apresenta alta variância (σ) e baixa persistência (ω), devido ao grande número de variações do seu valor e um baixo número de observações. Dessa forma, caso o valor da razão ω/σ seja elevado, o pixel pertence ao background ; e se o valor da razão for baixo, o pixel pertence ao foreground. 2.2 Caracteŕısticas Haar Em 1909 Alfred Haar propôs a Transformada de Haar, que é uma transfor- mada discreta utilizada para análise de sinais [17]. Baseado nesse trabalho, Paul Viola e Michael Jones propuseram o conceito da caracteŕıstica Haar, que é a di- ferença de intensidade entre regiões retangulares de uma mesma imagem [6]. A relação entre diferentes regiões são expressas como restrições sobre os valores dos coeficientes. O método para detecção de objetos proposto por Viola e Jones [6] é baseado em três conceitos: treinamento de classificadores usando boosting, classificadores em cascata e a integral da imagem. Para calcular a integral da imagem, é utilizado um algoritmo proposto em 1984 por Frank Crow [18], que avalia de forma eficiente a soma de intensidade dos 8 Figura 2.3: Sub-região ABCD em uma matriz de pixel. ńıveis de cinza de cada pixel de uma determinada área retangular pertencente a uma sub-região da imagem a ser analisada. A Equação 2.5 mostra como é feito o cálculo da integral da imagem em uma determinada coordenada (x, y). ii(x, y) = ∑ x′≤x y′≤y i(x′, y′), (2.5) onde, ii(x, y) é a integral da imagem na coordenada (x, y) e i(x′, y′) é a sub-região da imagem. A Equação 2.5 mostra que o cálculo da integral na coordenada (x,y) é igual ao somatório da intensidade de todos os pixels acima e a esquerda do ponto (x,y) mais a intensidade no ponto (x,y). Desta maneira, os coeficientes da imagem são calculados com uma simples varredura na imagem original. A partir disso, nota-se que a integral da sub-região ABCD da Figura 2.3 pode ser calculada de acordo com a Equação 2.6. ∑ (x,y)∈ABCD i(x, y) = ii(D) + ii(A)− (ii(B) + ii(C)) (2.6) Feito o cálculo da integral, pode-se identificar o padrão utilizando a carac- teŕıstica Haar-like, que são máscaras retangulares oriundas dos valores da intensi- dade dos pixels de uma dada região subtráıdos dos valores de intensidade dos pixels de uma região vizinha. A Figura 2.4 apresenta posśıveis tipos de caracteŕısticas-base 9 que podem ser utilizadas. Para utilizar essas caracteŕısticas, é feita a subtração en- tre a soma da intensidade dos pixels da região branca e a soma da intensidade dos pixels da região preta. (a) (b) (c) Figura 2.4: Exemplos de caracteŕısticas Haar. (Adaptado do site do OpenCV [1]). (a) ca- racteŕıstica utilizada quando a imagem apresenta diferença de intensidade entre duas regiões horizontalmente. (b) caracteŕıstica utilizada quando a imagem apresenta dife- rença de intensidade entre duas regiões verticalmente. (c) caracteŕıstica utilizada quando a imagem apresenta diferença de intensidade entre três regiões horizontalmente. Existem mais de cem mil caracteŕısticas Haar-like diferentes, que são utili- zadas para o reconhecimento de padrões. A caracteŕıstica da Figura 2.4(b) permite a detecção de faces, pois a região dos olhos é mais escura que a região dos lábios e bochechas. Dessa forma, qualquer imagem que apresente uma diferença de in- tensidade entre as partes superior e inferior de uma sub-região pode utilizar essa caracteŕıstica para reconhecer o seu padrão. De forma semelhante, pode-se utilizar a caracteŕıstica da Figura 2.4(c) para detectar faces, pois a região do nariz tende a ter uma intensidade diferente da região dos olhos. É fácil notar que a combinação dessas caracteŕısticas permite reconhecer diversos padrões. A segunda parte da técnica é o treinamento dos classificadores com imagens positivas (objeto que deseja ser detectado) e imagens negativas (qualquer imagem que não tenha o objeto que deseja ser detectado). Para efetuar o treinamento é utilizado um algoritmo que faz uso do método Boosting, esse método gera um clas- sificador de alta precisão após combinar diversos classificadores de média precisão. Cada um dos classificadores de média precisão possui uma taxa de acerto superior a 51%. Neste trabalho foi utilizado um classificador pronto e não foi feito o processo de treinamento, pois o número de amostras positivas e negativas para criar o classi- 10 ficador é muito alto. O classificador utilizado usa o algoritmo AdaBoost (Adaptative Boosting). A Equação 2.7 representa o funcionamento desse algoritmo. f(x) = T∑ t=1 αtht(x), (2.7) onde, a função ht(x) representa os classificadores de baixa precisão e pode assumir os valores 0 ou 1, para exemplos negativos ou positivos, respectivamente; o parâmetro x representa o tamanho da janela, tipicamente é utilizada uma janela de 24x24 e (αt) é o peso do classificador. A Equação 2.8 representa um classificador de baixa precisão que pode ser expresso em função da caracteŕıstica (f), de um limiar (θ) e da polaridade (p). h(x, f, θ, p) = 1, se pf(x) < pθ0, caso contrário (2.8) O Classificador de alta precisão (H(x)), é representado através da Equação 2.9, em função do peso (αt) de cada classificador de baixa precisão. H(x) = 1, f(x) ≥ 12 ∑ αt 0, caso contrário (2.9) Dessa forma o algoritmo AdaBoost é utilizado tanto para escolher quais ca- racteŕısticas Haar-like serão utilizadas para detectar o objeto, quanto para treinar os classificadores para trabalhar com essas caracteŕısticas. Por fim, existem os classificadores em cascata, que é a combinação dos classi- ficadores de alta precisão a fim de processar de forma eficiente as regiões da imagem com o objetivo de buscar um padrão. Na Figura 2.5 nota-se o funcionamento do classificador em cascata, onde cada estágio aplica um classificador mais preciso e complexo que o anterior. Dessa forma, o algoritmo rejeita de forma rápida e com baixo custo computacional as regiões que apresentam caracteŕısticas distintas as do objeto procurado, sem prosseguir para o próximo estágio do classificador. 2.3 Histograma de gradientes orientados Toda imagem possui propriedades que podem ser mensuradas tais como forma, cor e textura. Essas propriedades quando mensuradas, normalmente são agrupadas em 11 Figura 2.5: Representação visual da cascata de classificadores. um vetor de escalares, denominado descritor de imagem. Sendo assim, cada objeto é representado por um ponto no espaço Rn, onde n é o número de propriedades da imagem. A técnica HOG [19], é um descritor que calcula o histograma da orientação dos gradientes na imagem e tem como sáıda um descritor final que é um vetor dehistogramas. O prinćıpio desta técnica se baseia no fato de que a aparência e forma de um determinado objeto pode ser descrito pela intensidade dos gradientes ou pela direção das bordas, sem conhecer inicialmente a posição dessas bordas. A técnica HOG é muito eficiente para detectar e seguir múltiplos objetos na mesma imagem[20]. A Figura 2.6 descreve o processo para realizar o cálculo do descritor final. Primeiro a imagem é convertida para escala de cinza e depois normalizada, para que a influência da iluminação seja atenuada. Feito isso é a vez de computar os gradi- entes. Essa computação é feita aplicando o operador de Sobel [21] para detecção de bordas. A sáıda desse estágio são as magnitudes e orientação dos gradientes Gx e Gy. Após esse processo, a imagem é dividida em pequenas regiões espaciais denomi- nadas células. Cada célula tem o seu histograma local computado e normalizado. A normalização do histograma da célula é feita através dos valores computados para os histogramas vizinhos. Feito isso, é criada uma região denominada bloco, composta por algumas células, e o valor do histograma das células é acumulado e utilizado para normalizar todas as células do mesmo bloco. A última etapa do processo é coletar uma janela de detecção sobre os his- togramas gerados. De acordo com a orientação dos gradientes, o descritor HOG descreve a imagem, essa descrição é invariante à posição dos gradientes. 12 Figura 2.6: Ilustração da criação do vetor de histograma de gradiente orien- tado. (Adaptado [19]). 13 2.4 Segmentação As técnicas de segmentação da imagem consistem em subdividir a imagem a ser analisada em diversas regiões ou objetos. A aplicação dessas técnicas visa enfatizar a região ou objeto de interesse em relação ao restante da imagem. Este trabalho aplica essas técnicas para destacar as pessoas nos quadros. As técnicas de segmentação da imagem são aplicadas para diminuir os rúıdos no quadro analisado. Essas técnicas são combinadas com as técnicas de processa- mento da imagem para aumentar a taxa de detecção de um determinado objeto. 2.4.1 Limiarização A limiarização é a técnica mais simples de segmentação e consiste na diferença do ńıvel de cinza da imagem. A partir de um limiar pré-estabelecido, a imagem é segmentada em duas partes, todos os pixels abaixo do limiar adotam o mesmo valor mı́nimo. De maneira análoga todos os pixels com valores acima do limiar adotam o valor máximo. A Equação 2.10 expressa esse procedimento. g(x, y) = 1, se f(x, y) > T0, se f(x, y) ≤ T , (2.10) onde, g(x, y) é o quadro resultante da aplicação da técnica de limiarização, f(x, y) é o valor da intensidade do pixel analisado; x e y são as coordenadas do pixel. A Figura 2.7 exemplifica o processo de limiarização de uma imagem. Para estabelecer o limiar é utilizado um valor arbitrário. Considerando uma imagem bimodal, esse valor pode ser obtido analisando o histograma da imagem e escolhendo o valor médio entre os dois picos. Uma forma de fazer isso automaticamente é utilizando o algoritmo de Binarização Otsu [22]. Outra maneira de fazer a limiarização da imagem, é utilizar o método de limiarização adaptativa, no qual em vez de utilizar um limiar absoluto é utilizado um limiar para pequenas regiões do quadro, obtendo um limiar diferente para cada região. Como consequência, a limiarização adaptativa resulta melhoras em imagens com iluminação não uniforme. Este limiar adaptativo pode ser feito utilizando um valor médio ou uma gaussiana. A Figura 2.8 compara o resultado para esses diferentes métodos. A Figura 2.8(a) é a imagem original em escala de cinza. A 14 Figura 2.8(b) é a imagem binarizada após se aplicar um limiar com valor T = 127, esse valor é escolhido de forma arbitrária. Usualmente é calculado o histograma para saber qual o valor do limiar é o recomendado para cada imagem. A Figura 2.8(c) é o resultado da aplicação da técnica Otsu. Note que o resultado é semelhante ao encontrado na Figura 2.8(b), porém nenhum valor de limiar precisou ser calculado. Ao analisar o resultado das Figuras 2.8(d) e 2.8(e), percebe-se que a técnica de limiarização adaptativa apresentou uma sensibilidade maior na região de sobra da imagem original. (a) Imagem Original. (b) Imagem Binarizada. Figura 2.7: Processo de limiarização. (Adaptado do site do OpenCV [1]). (a) Imagem Original. (b) Limiar Global com valor 127. (c) Limiar usando a técnica Otsu. (d) Limiar usando média adaptativa. (e) Limiar usando gaussiana adaptativa. Figura 2.8: Comparativo dos métodos de limiarização. (Adaptado do site [2]). 15 2.4.2 Suavização gaussiana Esta técnica é obtida através de uma aproximação digital da função Gaus- siana. A Equação 2.11 descreve o filtro gaussiano aplicado. Utiliza-se essa técnica para suavizar a imagem e remover os rúıdos causados pela iluminação do ambiente. A Figura 2.9 mostra um exemplo de uso desta técnica. É posśıvel notar que os de- talhes do Cristo na Figura 2.9(a) foram suprimidos na Figura 2.9(b), mas o Cristo continua se destacando do resto da imagem. G(x) = 1 σ √ 2π e −x2 2σ2 (2.11) (a) Imagem original. (b) Imagem com suavização gaussiana. Figura 2.9: Exemplo de utilização da suavização gaussiana. (Adaptado do site [3]). 2.4.3 Detector de borda O algoritmo de detecção de borda desenvolvido por John F. Canny é bastante popular na literatura [23]. Ele consiste de vários estágios. Primeiro é aplicado um filtro gaussiano na imagem, para remover o rúıdo, depois é calculado o gradiente de borda e direção para cada pixel. No segundo passo ocorre a supressão não máxima da imagem, que consiste em percorrê-la pixel por pixel verificando se pixel atual é um valor máximo local na direção do gradiente. A Figura 2.10 exemplifica esse processo, o ponto A está sobre a borda e os seus vizinhos B e C estão na mesma direção do gradiente. É verificado se o ponto A é o máximo local, comparando com B e C. Se ele for um máximo local, seu valor é armazenado para a próxima fase, caso contrário seu valor é suprimido. O resultado obtido é uma imagem com bordas finas. Por fim, é feito o limiar de histerese que decide quais arestas fazem parte da 16 região de interesse e quais não fazem. Para isso, é preciso definir arbitrariamente um valor máximo e um mı́nimo. Toda aresta com valor de intensidade do gradiente maior que o valor máximo, será considerada parte da borda e de forma análoga toda aresta com intensidade de gradiente menor que o valor mı́nimo, não fazem parte da borda. Valores intermediários serão considerados como parte da borda se estiverem conectados a algum pixel que certamente faz parte da borda. A Figura 2.11 exemplifica este processo, onde os pixels próximos a A fazem parte da borda por possui um valor de intensidade maior que o valor máximo. Os pixels próximos a C também fazem parte da borda, pois estão conectados aos pixels que possuem o valor de intensidade maior que o valor máximo. Os pixels próximos a B não fazem parte da borda pois o valor de intensidade desses pixels é menor que o valor máximo e eles não estão conectados a nenhum pixel que possui o valor de itensidade superior ao valor máximo. (a) Imagem com a borda original. (b) Imagem com a borda afinada. Figura 2.10: Processo de supressão máxima. (Adaptado do site do OpenCV [1]). Figura 2.11: Ilustração do processo de limiarização de histerese. (Adaptado do site OpenCV [1]). 17 2.5 Morfologia Operações morfológicas são usualmente aplicadas para remover rúıdos após o processo de segmentação. A morfologia matemática tem como base um elemento estruturante, elemento esse que é estabelecido como uma configuração de pixels na qual sua origem é definida. Quando ocorre o alinhamento da origem do elementoestruturante com um determinado pixel da imagem a ser tratada, a interseção desses dois pontos define o grupo de pixels que sofrem a operação morfológica. O elemento estruturante pode assumir diversas formas, mas usualmente é utilizada uma forma simples, como um quadrado, ćırculo ou uma cruz com sua origem no centro. As operações morfológicas utilizadas neste trabalho são a erosão, que consiste em subs- tituir o valor atual do pixel por um valor mı́nimo pré-definido e a dilatação que é a operação complementar à erosão, ou seja, substitui o valor do pixel por um va- lor máximo pré-definido. Neste trabalho aplica-se a operação morfológica em uma imagem limiarizada, dessa forma tem-se o background com o valor mı́nimo, preto, e o foreground com o valor máximo, branco. A Figura 2.12 ilustra o resultado da aplicação dessas duas técnicas de forma independente. (a) Imagem Original. (b) Erosão. (c) Dilatação. Figura 2.12: Exemplo de aplicação das técnicas de erosão e dilatação. Usualmente essas operações morfológicas são aplicadas em conjunto, a fim de obter um melhor resultado. Define-se fechamento, a operação de erodir uma imagem dilatada, já a abertura é a operação de dilatação de uma imagem erodida. Ao aplicar o filtro de abertura, os objetos pequenos demais para contar o elemento 18 estruturante são eliminados da imagem. Dessa forma, as interferências ruidosas da imagem são atenuadas. Por outro lado, quando se aplica o filtro de fechamento, os objetos adjacentes são conectados. Dessa maneira, partes fragmentadas de forma errada do objeto são reconectadas. A Figura 2.13 mostra um exemplo da aplicação desses dois filtros. (a) Imagem antes da aplicação da técnica de abertura. (b) Imagem após aplicação da técnica de abertura. (c) Imagem antes da aplicação da técnica de fechamento. (d) Imagem após aplicação da técnica de fe- chamento. Figura 2.13: Exemplo de aplicação das técnicas de abertura e fechamento. 19 Caṕıtulo 3 Avaliação das técnicas de detecção Esta seção aborda os pontos cŕıticos do sistema, tais como a escolha das técnicas de processamento e segmentação da imagem e a posição da câmera. Para isso, analisa-se o desempenho de todas as técnicas citadas no caṕıtulo anterior em v́ıdeos previamente gravados em três ângulos diferentes e com a taxa de 30 quadros por segundo. O objetivo deste caṕıtulo ainda não é a implementação de um sistema que conte automaticamente o número de passageiros, mas sim analisar a capacidade de reconhecimento de pessoas de cada técnica e o seu desempenho computacional. Assim é posśıvel descobrir a técnica mais aconselhável para dar prosseguimento ao projeto. A Figura 4.1 ilustra em qual etapa do processo estas técnicas serão avaliadas. Figura 3.1: Fluxo demonstrando que o projeto se encontra na etapa de identificação da pessoa. Todas as técnicas executadas neste caṕıtulo se encontram na versão 3.1 da biblioteca de visão computacional OpenCV. As técnicas foram executadas utilizando o mesmo computador, que possui o seguinte hardware: • Processador: Intel Core i5-2520M @ 2.50GHz • Memória RAM: 4GB DDR 3 @ 1333MHz 20 • Armazenamento: SSD 240GB Kingston SUV400S37240G • Sistema Operacional: Ubuntu 16.04 LTS O tempo de execução do programa responsável por cada técnica e a porcen- tagem de utilização do processador foram verificados com a utilização da função time presente no sistema operacional citado. Note que como o processador apre- senta quatro núcleos, o maior valor posśıvel para a sua utilização é de 400%, o que significa que os quatro núcleos operaram com 100% da sua capacidade durante toda a execução do programa. 3.1 Vı́deos O primeiro v́ıdeo foi gravado na sáıda dos elevadores do bloco A do Centro de Tecnologia da UFRJ e possui uma visão em 90◦ em relação as pessoas. Esse v́ıdeo possui uma duração de 18 segundos e conta com 5 pessoas se movimentando. A Figura 3.2(a) apresenta a visão da câmera. Esse cenário foi escolhido por ser um ambiente interno que apresenta um grande fluxo de pessoas se dirigindo em linha reta para entrar nos elevadores. O segundo v́ıdeo foi gravado no bloco A do Centro de Tecnologia da UFRJ e captura as pessoas com uma visão superior e lateral. A região de interesse desse v́ıdeo é a área entre as pilastras. Esse v́ıdeo possui uma duração de 22 segundos e 15 pessoas passam pela região. A Figura 3.2(b) apresenta a visão da câmera. Esse cenário foi escolhido por se tratar de um ambiente interno com pouca influência da mudança de luz natural e devido à distância que a câmera pode filmar as pessoas. Dessa forma, as pessoas representam uma pequena área no quadro. A Figura 3.2(c) mostra o terceiro v́ıdeo analisado, que foi gravado no segundo andar do bloco H do Centro de Tecnologia da UFRJ e apresenta a visão superior em 45◦ da região externa do prédio. Esse v́ıdeo possui uma duração de 15 segundos e ao todo 13 pessoas passaram pela região observada. A escolha desse cenário deve-se à possibilidade de captar a imagens em um ambiente externo, com influência direta da variação de luz natural. 21 (a) Ambiente interno com visão superior. (b) Ambiente interno com visão lateral. (c) Ambiente externo com visão superior. Figura 3.2: Imagens dos três v́ıdeos analisados. 3.1.1 Subtração de fundo Como essa técnica utiliza o primeiro quadro do v́ıdeo como sendo o quadro de referência, se neste quadro de referência o v́ıdeo possuir uma pessoa ou qualquer outro objeto que se movimente, as imagens futuras apresentarão falso-positivos pois o quadro atual vai ser diferente do quadro de referência, mesmo que não tenha nenhum objeto no local. A Figura 3.3(a) exemplifica essa situação, como ela é o primeiro quadro do v́ıdeo, ela foi escolhida para ser o quadro de referência. A Figura 3.3(b) mostra que quando o v́ıdeo continua a sua execução, são identificados falso-positivos onde as pessoas do quadro de referência estavam. A Figura 3.3(c) apresenta o caso em que a técnica identifica com precisão duas pessoas andando muito próximas. A Tabela 3.1 apresenta os resultados obtidos com essa técnica. Apesar de apresentar os falso-positivos visto na Figura 3.3(b), esta técnica se mostrou muito eficiente para detectar as pessoas na visão lateral. A baixa taxa de acerto na imagem 22 obtida com a câmera em 90◦, deve-se ao fato de três pessoas terem sido identificadas como uma só, pois estavam andando em grupo e muito próximos. A taxa de acerto no v́ıdeo com imagens externas deve-se ao fato da variação da iluminação atrapalhar a detecção das pessoas. A utilização do processador não foi um fator cŕıtico nessa técnica. (a) Quadro de referência do segundo v́ıdeo. (b) Falso-positivos detectados no segundo v́ıdeo devido ao deslocamento das pessoas. (c) Duas pessoas identificadas com precisão. Figura 3.3: Subtração de fundo. 3.1.2 Subtração de quadros consecutivos A técnica de subtração de quadros consecutivos mostrou-se eficiente, porém apresenta o mesmo problema da técnica anterior, quando duas pessoas andam juntas ou abraçadas, identificando-as como uma única pessoa. Além disso a Figura 3.4(a) mostra que essa técnica não identifica a pessoa que fica parada no meio da escada, falando ao telefone. Outro caso que faz essa técnica errar na contagem de pessoas é quando duas pessoas se locomovem no sentido oposto e próximas uma da outra, como 23 Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 3 60,0% 12,07 119 Lateral 15 14 93,3% 17,89 113 45◦ 13 10 76,9% 29,90 117 Tabela 3.1: Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de fundo. (a) Pessoa parada na escada não é detectada. (b) Pessoas andando são detectadas. (c) Pessoas andando muito próximas são in- terpretadascomo uma só. Figura 3.4: Subtração de quadros consecutivos. pode-se observar nas Figuras 3.4(b) e 3.4(c), na qual a técnica que detectava duas pessoas identifica apenas uma. Os resultados obtidos com esse algoritmo podem ser observados na Tabela 3.2. Em todos os v́ıdeos essa técnica apresentou um resultado igual ou pior que a técnica anterior, até mesmo no v́ıdeo captado com imagens externas, quando era esperado que essa técnica apresentasse um resultado superior, pois ela se adapta melhor a variação de iluminação. 24 Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 2 40,0% 10,49 123 Lateral 15 13 86,6% 15,05 118 45◦ 13 10 76,9% 32,86 110 Tabela 3.2: Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de quadros consecutivos. 3.1.3 Subtração de fundo estimado pela média Essa técnica foi utilizada calculando a média dos últimos 2 quadros. Dessa forma, se o objeto ficar parado por pouco tempo ou se houver uma sobreposição de pessoas se locomovendo no sentido oposto, o algoritmo consegue detectar as pessoas, pois leva em consideração a média dos últimos quadros, isso pode ser observado na Figura 3.5(a) e Figura 3.5(b), que foram analisadas no mesmo instante de tempo da técnica anterior. Quando a pessoa se movimenta muito pouco ou fica parada por um bom tempo, como observado na Figura 3.5(c), a técnica não consegue detectá-la. A Tabela 3.3 apresenta o comparativo dos resultados obtidos com esse algoritmo. Nota-se um desempenho superior à técnica de subtração de fundo, quando o v́ıdeo externo foi analisado. Este resultado superior deve-se ao fato da técnica de subtração de fundo estimado pela média ser menos senśıvel às variações de iluminação. 25 (a) Pessoas andando são detectadas. (b) Pessoas andando próximas são detecta- das corretamente. (c) Pessoa parada na escada não é detectada. Figura 3.5: Subtração de fundo estimado pela média. Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 3 60,0% 10,87 123 Lateral 15 12 80,0% 21,22 105 45◦ 13 12 92,3% 26,84 120 Tabela 3.3: Comparativo dos v́ıdeos analisados utilizando a técnica de subtração de fundo estimado pela média. 3.1.4 Mistura de gaussianas Um parâmetro importante a ser escolhido para o uso dessa técnica, é quantas gaussianas são utilizadas para o cálculo da imagem resultante. Neste trabalho foi utilizada a recomendação de [24], que aconselha utilizar de 3 a 5 gaussianas. As figuras analisadas foram capturadas no mesmo instante das duas últimas técnicas. 26 Essa técnica consegue detectar quando uma pessoa fica parada por alguns quadros, conforme se observa na Figura 3.6(a). Porém, quando as pessoas se locomovem muito próximas, a técnica não consegue distingui-los. As Figuras 3.6(b) e 3.6(c) apresentam essas situações. Os resultados obtidos com esse algoritmo podem ser observados na Tabela 3.4. Percebe-se que essa técnica não obteve sucesso na detecção de pessoas no v́ıdeo obtido com a câmera em 90◦. Apesar de conseguir detectar as pessoas paradas por um curto peŕıodo de tempo, essa técnica foi menos eficiente que as técnicas anteriormente apresentadas em todas as situações testadas. (a) Pessoa parada na escada é detectada. (b) Pessoas andando sem estar próximas são interpretadas como uma só. (c) Pessoas andando muito próximas são in- terpretadas como uma só. Figura 3.6: Subtração utilizando a técnica MOG. 27 Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 0 0,0% 12,16 164 Lateral 15 13 86,6% 16,45 154 45◦ 13 10 76,9% 30,27 178 Tabela 3.4: Comparativo dos v́ıdeos analisados utilizando a técnica MOG com 3 gaussianas. 3.1.5 Haar Foram utilizadas quatro bibliotecas previamente treinadas para avaliar essa técnica, sendo duas delas para a parte superior do corpo [25, 7]. Elas são acon- selháveis, pois o objetivo final do projeto é detectar os passageiros entrando no Maglev Cobra. Também foram utilizadas duas bibliotecas de corpo inteiro [5, 26]. Essa técnica não se mostrou eficiente nas condições testadas. Para aumentar sua eficiência, deve-se criar uma biblioteca própria ou usar a biblioteca pronta e treinar por diversas horas na situação de uso. Como é preciso mais de mil amostras positi- vas e negativas para que a biblioteca se torne eficiente, foi decidido não treinar uma biblioteca para essa técnica. A Figura 3.7 apresenta a detecção de uma pessoa parada porém pode ser observado que duas pessoas, que estão na região de interesse, não foram detectadas na imagem. A Tabela 3.5 apresenta os resultados obtidos com essa técnica. Como essa técnica precisa calcular o somatório de intensidade dos pixels para diversas sub-regiões da imagem, foi detectado o aumento de processamento e do tempo de execução do programa. 28 Figura 3.7: Detecção usando a técnica de caracteŕısticas Haar. Os retângulos em vermelho e verde são das bibliotecas de detecção da parte superior do corpo. Os retângulos em azul escuro e azul claro são das bibliotecas de detecção de corpo inteiro. Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 1 20,0% 497,40 337 Lateral 15 8 53,3% 951,07 333 45◦ 13 11 84,6% 1534,94 359 Tabela 3.5: Comparativo dos v́ıdeos analisados utilizando a técnica de caracteŕısticas Haar. 3.1.6 Histograma de gradientes orientados A técnica HOG foi a única capaz de identificar duas pessoas abraçadas, como pode ser visto na Figura 3.8(a). A Figura 3.8(b) mostra que o algoritmo também ob- teve êxito ao distinguir pessoas andando próximas na imagem gravada com o ângulo de 90◦. O problema dessa técnica foi o tempo de execução. O comparativo dos resul- tados obtidos pode ser visto na Tabela 3.6. Apesar de ter utilizado os classificadores padrão que vêm na biblioteca do OpenCV, os resultados foram satisfatórios. Caso se queira melhorar a taxa de acerto dessa técnica, basta treinar os classificadores com a situação de uso onde o projeto será implementado. Essa técnica exigiu um grande esforço da CPU, pois precisa calcular a orientação dos gradientes para todos os pixels de cada quadro analisado no v́ıdeo. 29 (a) Duas pessoas abraçadas foram detecta- das corretamente. (b) Três pessoas andando próximas foram detectadas corretamente. Figura 3.8: Detecção usando a técnica HOG. Posicionamento No de pessoas Identificadas Taxa de Tempo (s) % CPU da câmera acerto 90◦ 5 3 60,0% 272,39 367 Lateral 15 5 33,3% 353,16 363 45◦ 13 10 76,9% 786,16 323 Tabela 3.6: Comparativo dos v́ıdeos analisados utilizando a técnica HOG. 3.1.7 Comparação entre as técnicas Após ser feita a análise dos resultados obtidos, pode-se descartar as técnicas HOG e Haar, pois apresentam um alto custo computacional e como a técnica esco- lhida será utilizada em um microcomputador de baixa potência, estas técnicas são inviáveis para o projeto. Com a câmera posicionada com a visão lateral, foi obtido a maior taxa de acerto, utilizando a técnica de subtração de fundo, enquanto os demais métodos de subtração obtiveram um desempenho semelhante, conforme podemos notar na Figura 4.14. Com a câmera posicionada em 45◦, o algoritmo de subtração de fundo esti- mado pela média teve o desempenho notoriamente superior aos seus concorrentes. Este fato deve-se a variação de iluminação no v́ıdeo visto que a captação das imagens foi feita em ambiente externo. Ao comparar os resultados obtidos pelas técnicas de subtração de imagens 30 no v́ıdeo com a câmera posicionada em 90◦, nota-se que os resultados foram bem parecidos exceto no método MOG, que não conseguiu identificar nenhuma pessoa. As técnicas concorrentes, por outro lado, obtiveram resultados satisfatórios. De acordo com os resultados obtidos,o projeto utilizará como primeira opção a câmera com visão lateral. A segunda opção é a visão superior em 45◦ e, por fim, a última escolha é a câmera posicionada em 90◦. Figura 3.9: Gráfico com a taxa de acerto de cada técnica nas três posições de captura. 31 Caṕıtulo 4 Solução proposta e resultados Este caṕıtulo aborda o ponto cŕıtico do projeto: identificar o objeto, distingui- lo dos outros identificados e contar o número objetos que entram e saem de um véıculo. Neste projeto os objetos são pessoas. A Figura 4.1 apresenta o fluxo de trabalho do sistema, os três primeiros passos foram vistos nos dois Caṕıtulos 2 e 3 deste trabalho. Figura 4.1: Fluxo demonstrando que o projeto se encontra na etapa de identificação, rastreamento e contabilização das pessoas. O sistema proposto é executado em um microcomputador do modelo Rasp- berry Pi 2, que possui um processador de quatro núcleos e opera com frequência máxima de 900 MHz. O microcomputador possui 1 GB de memória RAM e está conectado a uma câmera do modelo Raspberry Pi Camera v1.3. Este microcomputa- dor foi escolhido pois apresenta baixo consumo de energia e devido ao seu tamanho, permitindo assim a sua instalação em campo utilizando apenas uma bateria para o seu funcionamento. A primeira etapa deste caṕıtulo é identificar o que é uma pessoa na imagem e o que deve ser desconsiderado na imagem. Feito isso, o sistema deve seguir essa pessoa e não confundir com outra no mesmo quadro. Por fim, o sistema vai contabilizar quantas pessoas entraram ou sáıram do véıculo. 32 Como os resultados comparados na Seção 3.1.7 sofreram muita influência da iluminação do ambiente, as técnicas de melhor resultado são testadas no ambiente de implementação do sistema. 4.1 Configurações testadas Nesta seção são apresentadas todas as configurações da posição da câmera avaliadas no caṕıtulo anterior, utilizando a técnica que obteve o melhor desempenho para cada configuração. O objetivo é avaliar se a melhor solução encontrada no Caṕıtulo 3 se aplica ao local onde o sistema vai funcionar. 4.1.1 Primeira configuração A primeira configuração utiliza a câmera com a visão lateral do fluxo de pessoas que entra e sai do véıculo, como visto na Figura 4.2(a). Devido a limitação da infraestrutura local, a câmera não pode ficar na mesma distância que foi utilizada no Caṕıtulo 3. Dessa forma, nota-se que facilmente um objeto pode obstruir a visão. A Figura 4.2(b) ilustra a situação em que uma pessoa obstrui a visão do fluxo de pessoas que entra ou sai do véıculo. Desta forma, mesmo com a taxa de 93,3% de acerto obtido no Caṕıtulo 3, utilizando a técnica de subtração de fundo, foi decidido não utilizar essa configuração no projeto, pois ela só é adequada quando as pessoas estão a uma grande distância da câmera e de forma que nenhum objeto possa obstruir a captura de imagens. (a) Imagem lateral do fluxo de pessoas. (b) Imagem obstrúıda do fluxo de pessoas. Figura 4.2: Imagem obtida com a câmera na visão lateral da estação do Maglev Cobra. 33 4.1.2 Segunda configuração A segunda configuração consiste em colocar a câmera posicionada dentro do Maglev Cobra, do lado oposto à porta. Dessa forma, todas as pessoas que entram no véıculo são filmadas com um ângulo de 45◦ pela câmera, como podemos observar na Figura 4.3(a). Visto que a estrutura do véıculo não pode ser modificada, foi observado o mesmo problema de obstrução da visão que a câmera lateral apresentou. Esse problema pode ser visto na Figura 4.3(b), quando um passageiro fica parado em frente à porta. (a) Passageiros entrando no véıculo. (b) Passageiro obstruindo a visão da câmera. Figura 4.3: Imagem captada com visão superior em 45◦. 4.1.3 Terceira configuração A terceira configuração consiste em prender a câmera no teto do Maglev Cobra com uma fita adesiva, de forma que a estrutura não seja modificada e a câmera fique posicionada em 90◦ com a porta do véıculo. Dessa forma, evita-se a obstrução da imagem por qualquer objeto ou pessoa. A Figura 4.4(a) apresenta a imagem que a câmera capturou e a Figura 4.4(b) mostra um passageiro entrando no véıculo. Agora que a imagem capturada não possui nenhuma obstrução, pode-se seguir para o segundo passo do sistema que é a segmentação da imagem para posterior processamento e identificação das pessoas. Com a câmera posicionada em 90◦, foi capturado um v́ıdeo e todas as técnicas de segmentação foram testadas. Como a câmera se encontra muito próxima do fluxo 34 (a) Imagem da entrada de passageiros. (b) Passageiro entrando no véıculo. Figura 4.4: Imagem captada no interior do Maglev Cobra, com visão superior em 90◦ . de pessoas que entra e sai do véıculo, nenhum algoritmo de segmentação conse- guiu obter um resultado satisfatório, como pode ser visto na Figura 4.5. Todas as técnicas interpretaram que o quadro inteiro foi modificado, com exceção da técnica de subtração de fundo estimado pela média, porém esta técnica identificou muitos falso-positivos. Dessa forma, o sistema não pode dar continuidade para a fase de identificação das pessoas e rastreamento da sua trajetória. 4.2 Solução proposta Como as duas primeiras configurações apresentaram o problema de obstrução da câmera e a terceira configuração não possui uma distância suficiente do fluxo de pessoas, a solução proposta é posicionar a câmera de forma que não haja obstrução do seu ângulo de visão e que a distância seja suficiente para identificar as pessoas. Portanto, a câmera foi posicionada sobre a porta de vidro localizada na estação e que serve para evitar o contato dos passageiros da estação com o “trilho” do Maglev Cobra. Como todas as pessoas que entram e saem do véıculo precisam necessariamente passar por essa porta, esse local é adequado para a captação das imagens. A Figura 4.6 mostra a porta na qual foi instalado o suporte. Para evitar o problema com a pouca distância da câmera para a pessoa, como foi observado na terceira configuração, foi adaptado um suporte para que a câmera ficasse o mais alto posśıvel. A Figura 4.7 mostra o suporte feito para que a câmera fique o mais distante posśıvel das pessoas que passam sob o seu ângulo de visão. 35 (a) Algoritmo de subtração de fundo. (b) Algoritmo de subtração de quadros con- secutivos. (c) Algoritmo de subtração de fundo esti- mado pela média. (d) Algoritmo usando a técnica MOG. Figura 4.5: Teste dos algoritmos de subtração de imagens com um v́ıdeo filmado dentro do Maglev Cobra com a câmera posicionada em 90◦. Com o suporte instalado, foi iniciado o processo de captação de imagens. Dessa vez as imagens capturadas puderam ser segmentadas e depois foram proces- sadas para destacar a região de interesse, que nesse caso são as pessoas que passam pela porta. A Figura 4.9 mostra a imagem antes e depois de ser tratada. Para tratar a imagem, primeiro foi utilizado a técnica de subtração de fundo, depois a imagem foi segmentada utilizando as técnicas de limiarização global, suavização gaussiana, abertura, fechamento e detecção de contornos. Com a imagem tratada, as pessoas foram identificados e o sistema pode seguir adiante. 36 Figura 4.6: Porta por onde passam os passageiros do Maglev Cobra. (a) Suporte posicio- nado sobre a porta. (b) Detalhe da fixação do suporte. Figura 4.7: Imagens do suporte posicionado sobre a porta da estação. (a) Imagem captada pela câmera, utilizando algoritmo de subtração de fundo. (b) Imagem captada pela câmera, utilizando algoritmo de subtração de fundo, após a seg- mentação. Figura 4.9: Imagem processada e segmentada. 37 Figura 4.8: Fluxograma do algoritmo de rastreamento simplificado. O próximo passo é o rastreamento da rota que a pessoa faz para entrar ou sair do véıculo, essepasso é importante para que o sistema saiba que a pessoa identifi- cada em um determinado quadro é a mesma pessoa identificada no quadro anterior e não uma nova pessoa que está se deslocando. Como o sistema foi projetado para ser executado em um microcomputador de baixo desempenho, optou-se pelo desenvolvi- mento de um algoritmo de rastreamento simples. A Figura 4.8 contém o fluxograma que descreve passo a passo como o algoritmo de rastreamento foi implementado. O Algoritmo 1 apresenta o algoritmo utilizado para fazer o rastreamento das pessoas. 38 Algoritmo 1: Algoritmo de rastreamento simplificado. 1 ińıcio 2 Recebe a Coordenada X e Y do objeto 3 novo = Verdade 4 se (Limite Inferior < Coordenada Y < Limite Superior) então 5 para (p = 0 ate Numero de Pessoas) faça 6 se (Coordenada X - posicao x de p) ≤ Largura) & (Coordenada Y - posicao y de p) ≤ Altura) então 7 novo = Falso 8 atualiza as coordenadas de p 9 fim 10 fim 11 se (novo = Verdade) então 12 Vetor Pessoas = (Coordenada X, Coordenada Y ) 13 Numero de Pessoas += 1 14 fim 15 fim 16 fim Agora que o sistema já consegue rastrear a trajetória das pessoas que passam sob a porta, é preciso observar qual a trajetória que essas pessoas seguem e contabi- lizar o número de pessoas que entram e saem do véıculo. Para isso, foi desenvolvido um algoritmo capaz de identificar a trajetória e contabilizar quantas pessoas entram e saem. Esse algoritmo estabelece algumas linhas como limites para comparar com a trajetória da pessoa que está sendo rastreada. A Figura 4.10 apresenta o fluxograma detalhado do algoritmo de contabilização de passageiros que foi implementado. O Algoritmo 2 é utilizado para contabilização dos passageiros, a variável status é usada para não contar a mesma pessoa duas vezes. 39 Figura 4.10: Fluxograma do algoritmo de contabilização. Algoritmo 2: Algoritmo de contabilização de pessoas. 1 ińıcio 2 Recebe a Coordenada Y do objeto 3 se (status 6= 1) então 4 se (Última Coordenada Y ≤ Linha de Contabilização) & (Penúltima Coordenada Y > Linha de contabilização) então 5 status = 1 6 Contador Entrou +=1 7 fim 8 se (Última Coordenada Y ≥ Linha de Contabilização) & (Penúltima Coordenada Y < Linha de contabilização) então 9 status = 1 10 Contador Saiu +=1 11 fim 12 fim 13 fim 40 4.3 Resultados Agora que o sistema está completo, falta avaliar o seu desempenho. O sistema apresentou um desempenho excelente quando as pessoas caminham normalmente para entrar ou sair do véıculo, como podemos notar na Figura 4.11 onde o sistema apresentou uma taxa de acerto de 100%. (a) Pessoa se deslocando em direção a estação. (b) Algoritmo contabilizando a pessoa após ela cruzar a linha de entrada/sáıda. Figura 4.11: Algoritmo em execução no Raspberry Pi. O sistema se mostrou robusto quando há pessoas paradas próximo à região de contabilização. A Figura 4.12 ilustra essa situação, quando um passageiro fica se movimentando na área de contabilização e o sistema consegue detectar de forma eficiente quando ele atravessa a linha em direção ao véıculo e quando ele retorna pra estação. Caso as pessoas entrem de mãos dadas ou abraçadas, o sistema não conseguiu detectar de forma eficiente e interpreta como se as duas pessoas fossem uma pessoa só ou como se fosse uma nova pessoa, devido ao aumento significativo da área rastreada. A Figura 4.13 apresenta essa situação. Dessa forma o sistema proposto funciona de forma satisfatória para a conta- bilização das pessoas que entram e saem do Maglev Cobra. A Figura 4.14 mostra que os testes realizados em oito situações reais de uso, apresentou uma taxa de acerto superior a 85%, o que significa que o sistema proposto soluciona o problema de contagem de passageiros. Mesmo que o sistema apresente falhas quando as pes- soas entram de mãos dadas ou abraçadas, são poucas as pessoas que entram assim, portanto o sistema apresenta um valor de contabilização próximo ao valor real. 41 (a) Pessoa parada antes da linha de en- trada/sáıda. (b) Pessoa se desloca em direção ao véıculo e é contabilizada como se tivesse entrado. (c) Pessoa para próximo a porta. (d) Pessoa retorna para a estação e é conta- bilizada como se tivesse sáıdo. Figura 4.12: Pessoa se deslocando na região de contabilização. Caso a entrada de passageiros seja controlada, o sistema atende as especificações e contabiliza o número real de passageiros que estão dentro do véıculo. 42 (a) Pessoas andando de mãos dadas. (b) Duas pessoas se deslocam abraçadas para o véıculo. (c) Quando a pessoa da esquerda da um passo a frente, a área das duas pessoas au- menta significativamente e o algoritmo inter- preta como se fosse uma nova pessoa. Figura 4.13: Exemplos de caso em que o sistema não funcionou. 43 Figura 4.14: Gráfico com a taxa de acerto do sistema em uma situação real. 44 Caṕıtulo 5 Conclusões e trabalhos futuros Neste trabalho foi desenvolvido um algoritmo para rastreamento e contabi- lização de passageiros. A técnica para processamento da imagem utilizada foi a subtração de fundos e para segmentar a imagem foram utilizadas as técnicas de li- miarização global, suavização gaussiana, abertura, fechamento e detecção de bordas. Essa técnica foi escolhida pois foi a que apresentou o melhor desempenho nos testes realizados no Caṕıtulo 3. Os resultados apresentados comprovam que a contagem de pessoas pode ser feita de forma simples e eficiente por um microcomputador de baixo desempenho. O número de falso-positivos pode ser mitigado com a instalação de um suporte fixo no teto da estação do Maglev Cobra, dessa forma o ângulo de visão será mais amplo e a câmera sempre ficará posicionada no mesmo lugar, facilitando futuros ajustes na segmentação das imagens processadas. Outro fator que pode melhorar os resultados obtidos é a instalação de uma câmera com uma lente maior, facilitando a captação de luz e diminuindo os rúıdos na segmentação. Uma forma de melhorar o desempenho do sistema é após a fixação da câmera, treinar uma rede neural para reconhecer os passageiros que entram no Maglev Cobra. Outra futura implementação interessante é integrar a sáıda do sistema com o número de passageiros que entrou no véıculo a uma rede de Internet das coisas, de forma que a estação possa informar quantos lugares estão dispońıveis no véıculo, se o véıculo excedeu sua capacidade de passageiros e informar ao módulo de frenagem de GPS o peso estimado do véıculo. 45 Referências Bibliográficas [1] “OpenCV”, http://www.opencv.org/, 2016, (Acesso em 17 Novembro 2016). [2] “Imagem do escudo do Fluminense Football Club”, http://mantosdofutebol.com.br/2016/03/camisas-fluminense-2016-dryworld/, 2017, (Acesso em 10 Janeiro 2017). [3] “Imagem do Cristo Redentor”, http://www.djibnet.com/photo/preto/cristo- redentor-575763325.html, 2017, (Acesso em 10 Janeiro 2017). [4] BELONGIE, S., MALIK, J., PUZICHA, J., “Shape matching and object re- cognition using shape contexts”, IEEE transactions on pattern analysis and machine intelligence, v. 24, n. 4, pp. 509–522, 2002. [5] DOLLÁR, P., WOJEK, C., SCHIELE, B., et al., “Pedestrian detection: A benchmark”. In: Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on, pp. 304–311, IEEE, 2009. [6] VIOLA, P., JONES, M., “Robust real-time object detection”, International Journal of Computer Vision, v. 4, n. 34–47, 2001. [7] CASTRILLÓN, M., DÉNIZ, O., GUERRA, C., et al., “ENCARA2: Real-time detection of multiple faces at different resolutions in video streams”, Journal of Visual Communication and Image Representation, v. 18, n. 2, pp. 130–140, 2007. [8] CLARKE SR, J. R., CLARKE, P. M., “Sleep detection and driver alert appa- ratus”, Nov. 18 1997, US Patent 5,689,241. 46 [9] LEFAIX, G., MARCHAND, T., BOUTHEMY, P., “Motion-basedobstacle de- tection and tracking for car driving assistance”. In: Pattern Recognition, 2002. Proceedings. 16th International Conference on, v. 4, pp. 74–77, IEEE, 2002. [10] COELINGH, E., LIND, H., BIRK, W., et al., “Collision warning with auto brake”. In: FISITA 2006 World Automotive Congress: 22/10/2006- 27/10/2006, JSAE, 2006. [11] GERONIMO, D., LOPEZ, A. M., SAPPA, A. D., et al., “Survey of pedestrian detection for advanced driver assistance systems”, IEEE transactions on pattern analysis and machine intelligence, v. 32, n. 7, pp. 1239–1258, 2010. [12] GULER, S., FARROW, M. K., “Abandoned object detection in crowded pla- ces”. In: Proc. of PETS, pp. 18–23, Citeseer, 2006. [13] YANG, D. B., GONZÁLEZ-BAÑOS, H. H., GUIBAS, L. J., “Counting People in Crowds with a Real-Time Network of Simple Image Sensors.” In: ICCV, pp. 122–129, 2003. [14] GAO, X., BOULT, T. E., COETZEE, F., et al., “Error analysis of background adaption”. In: Computer Vision and Pattern Recognition, 2000. Proceedings. IEEE Conference on, v. 1, pp. 503–510, IEEE, 2000. [15] WANG, Y., MENTORS PIETRO, P., CLAUDIO, F., “Foreground-Background Segmentation of Video Sequences”, Mentors: Pietro Perona, Claudio Fanti, , 2008. [16] STAUFFER, C., GRIMSON, W. E. L., “Adaptive background mixture models for real-time tracking”. In: Computer Vision and Pattern Recognition, 1999. IEEE Computer Society Conference on., v. 2, pp. 246–252, IEEE, 1999. [17] PHANG, C., PHANG, P., “Modified fast and exact algorithm for fast haar transform”, International Journal of Computer Science and Engineering, v. 2, n. 2, pp. 55–58, 2008. [18] CROW, F. C., “Summed-area tables for texture mapping”, ACM SIGGRAPH computer graphics, v. 18, n. 3, pp. 207–212, 1984. 47 [19] DALAL, N., TRIGGS, B., “Histograms of oriented gradients for human detec- tion”. In: Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, v. 1, pp. 886–893, IEEE, 2005. [20] BENFOLD, B., REID, I., “Stable multi-target tracking in real-time surveillance video”. In: Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, pp. 3457–3464, IEEE, 2011. [21] SAID, Y., ATRI, M., TOURKI, R., “Human detection based on integral his- tograms of oriented gradients and svm”. In: Communications, Computing and Control Applications (CCCA), 2011 International Conference on, pp. 1–5, IEEE, 2011. [22] OTSU, N., “A threshold selection method from gray-level histograms”, Auto- matica, v. 11, n. 285-296, pp. 23–27, 1975. [23] CANNY, J., “A computational approach to edge detection”, IEEE Transactions on pattern analysis and machine intelligence, , n. 6, pp. 679–698, 1986. [24] PICCARDI, M., “Background subtraction techniques: a review”. In: Systems, man and cybernetics, 2004 IEEE international conference on, v. 4, pp. 3099– 3104, IEEE, 2004. [25] HANNES KRUPPA, M. C.-S., SCHIELE, B., “Fast and Robust Face Finding via Local Context.” [26] OVERETT, G., PETERSSON, L., BREWER, N., et al., “A new pedestrian da- taset for supervised learning”. In: Intelligent Vehicles Symposium, 2008 IEEE, pp. 373–378, IEEE, 2008. 48 Capa Banca RespItalico ProjetoFundo
Compartilhar