You are on page 1of 41

1

UNOPAR-PR - CENTRO DE CINCIAS EXATAS E TECNOLGICAS ENGENHARIA DA COMPUTAO RODRIGO FARIAS REZINO

CONTAGEM DE PESSOAS EM TEMPO REAL UTILIZANDO TCNICAS DE COMPUTAO GRFICA

LONDRINA 2011

RODRIGO FARIAS REZINO

CONTAGEM DE PESSOAS EM TEMPO REAL UTILIZANDO TCNICAS DE COMPUTAO GRFICA

Trabalho de Concluso de Curso apresentado Universidade Norte do Paran - UNOPAR, como requisito parcial para a obteno do ttulo de Engenheiro em Engenharia Da Computao. Orientador: Ms. Rodrigo Lankaites Pinheiro

Londrina 2011

RODRIGO FARIAS REZINO

CONTAGEM DE PESSOAS EM TEMPO REAL UTILIZANDO TCNICAS DE COMPUTAO GRFICA

Trabalho de Concluso de Curso aprovado, apresentado UNOPAR Universidade Norte do Paran, no Centro de Cincias Empresariais e Sociais Aplicadas, como requisito parcial para a obteno do ttulo de Bacharel em Nome do Curso, com nota final igual a _______, conferida pela Banca Examinadora formada pelos professores:

Prof. Orientador Universidade Norte do Paran

Prof. Membro 2 Universidade Norte do Paran

Prof. Membro 3 Universidade Norte do Paran Londrina, 10 de junho de 2011.

4 AGRADECIMENTOS Ao Prof. Rodrigo Lankaites Pinheiro, meu orientador que acreditou no meu trabalho e me ajudou a desenvolver um trabalho de qualidade. Ao Prof. Fernando Accorsi pelas aulas de Computao Grfica que foram utilizadas em vrios pontos do desenvolvimento do projeto. Ao Prof. Jacques Facon, por me expor a uma nova rea da Computao Visual, a Morfologia Matemtica que e expandiu em muitos aspectos as possibilidades de resolues de problemas. Aos demais professores da Universidade Norte do Paran, que contriburam para meu desenvolvimento tcnico e pessoal. Aos meus amigos de faculdade por tornarem a jornada da graduao mais divertida. A empresa em que trabalho Veltec Solues Tecnolgicas, por me fornecer os materiais necessrios para auxiliar no desenvolvimento do projeto. Aos meus companheiros de trabalho em geral, por criarem sempre situaes desafiadoras em minha vida profissional que foram fundamentais para adquirir o conhecimento necessrio para desenvolver o projeto. E especialmente, muito especialmente aos meus amigos que influenciaram e influenciam minha vida, tornando-a muito prazerosa e muito interessante. A alguns irmos de vida, que no poderia deixar de enfatizar, Acleilton Lucio Ganzert Filho, Alisson Avancini, Victor Eduardo Cobo, Cleberson Farias, Roberto Emanuel de Souza Santos. Aos meus tios, tias, primos, primas, por sempre me darem fora e me darem o prazer de fazer parte de uma famlia doida, porm, a melhor possvel. A minha famlia que tanto amo, minha me Solange Farias Rezino, meu pai Irineu dos Santos Rezino, minha irm Larissa Farias Rezino e minha v Aurora da Silva Camargo. A Deus, por me ajudar, me guiar sempre e por ter me enviado um anjo da guarda to porreta.

"I've got a very poor sense of direction. I keep forgetting which way is forwards." Geoffrey Parfitt

6 REZINO, Rodrigo. Contagem de pessoas em tempo real utilizando tcnicas de Computao Grfica. 2011. Nmero total de folhas. Trabalho de Concluso de Engenharia da Computao Centro de Cincias Exatas e Tecnolgicas, Universidade Norte do Paran, Londrina, 2011.

RESUMO

A contagem de FP (fluxo de pessoas) tem sido utilizada em vrias reas para identificar inmeros comportamento e levantar dados que podem ser aplicados em inmeros seguimentos. Em sistemas que utilizam a computao grfica como ferramenta principal de contagem que o caso do sistema desenvolvido no trabalho so dispostas cmeras em lugares estratgicos do ambiente que deve ser monitorado a fim de ter um posicionamento que fornea imagens relevantes ao processamento do algoritmo de FP. Para esse processo diversas bibliotecas tm sido especializadas ao longo dos anos, uma que tem grande destaque em processos de manipulao de imagens a OpenCV (Open Source Computer Vision). Essa biblioteca tem sua implementao feita em C/C++ e tem foco na otimizao dos processos de computao grfica, essa preocupao em otimizao das funes disponibilizadas pela biblioteca devido a preocupao da mesma em atender os sistemas que tem a necessidade de processamento em tempo real das imagens, que o caso do tema do TCC.

Palavras-chave: Computao Grfica, OpenCV, C/C++, Fluxo de Pessoas

7 REZINO, Rodrigo. Real time people couting using Computing Graphics. 2011.Trabalho de Trabalho de Concluso de Engenharia da Computao Centro de Cincias Exatas e Tecnolgicas, Universidade Norte do Paran, Londrina, 2011.

ABSTRACT

The FP has been used in different areas to identify a lot of behaviors and extract informations from image data that can be applied in many segments. In computer systems that uses computer graphics as the main tool of people counting that is the propose of this paper, cameras are arranged in strategic places in the environment that should be monitored in order to take a position that will provide relevant images to FP processing algorithm. For this process, techniques and algorithms have been specialized over the years, in this area a library that has great emphasis on image processing is the OpenCV(Open Source Computer Vision). This library has it implementation developed in C/C++ and has as main focus the optimization of the process, this concern in the functions optimizations gives it users the possibility to create applications that need real time images processing.

Key-words: Graphic Computing, OpenCV, C/C++, Flow of People

8 LISTA DE FIGURAS Figura 1 - reas da Computao Grfica ................................................................. 15 Figura 2 Exemplo de Imagem Vetorial e Matricial ................................................. 16 Figura 3 Canais de Cores RGB ............................................................................. 16 Figura 4 Exemplos de Elementos Estruturantes .................................................. 17 Figura 5 Imagens resultantes de operaes morfolgicas .................................... 17 Figura 6 Convex Hull aplicado para definir menor fronteira de conjunto de pontos ................................................................................................................................. 18 Figura 7 Operao Flood-Fill Four Directions ....................................................... 18 Figura 8 Operao Flood-Fill Eight Directions ...................................................... 19 Figura 9 Imagem do posicionamento correto da cmera ...................................... 21 Figura 10 Tela principal do prottipo ..................................................................... 22 Figura 11 Imagem de entrada para o processo com o filtro Gaussiano ................ 25 Figura 12 Imagem resultante processada com filtro Gaussiano............................ 25 Figura 13 Imagem de entrada e resultando do processo de reduo ................... 26 Figura 14 RGB utilizado como XYZ ....................................................................... 27 Figura 15 Imagem de entrada e resultando do processo de deteco de movimentos .............................................................................................................. 28 Figura 16 Pseudocdigo do processo distino dos nveis dos pixels .................. 29 Figura 17 Imagem de entrada e resultando do processo distino dos nveis dos pixels ........................................................................................................................ 29 Figura 18 Imagem de entrada do processo de identificao de objetos ............... 30 Figura 19 Imagem resultante do processo de identificao de objetos ................. 30 Figura 20 Imagem de entrada do processo de unio de objeto ............................ 31 Figura 21 Situao 1 de problema encontrado para soluo no algoritmo de unio de objetos ................................................................................................................. 32 Figura 22 Situao 2 de problema encontrado para soluo no algoritmo de unio de objetos ................................................................................................................. 32 Figura 23 Situao 3 de problema encontrado para soluo no algoritmo de unio de objetos e resultado da unio dos objetos ............................................................ 33 Figura 24 Imagem de entrada para o algoritmo de unio de objetos .................... 33 Figura 25 Imagem do processamento intermedirio do algoritmo que visa identificar as regies de abrangncia dos objetos.................................................... 34

9 Figura 26 Imagem resultante do algoritmo de unio de objetos ............................ 34 Figura 27 Imagem de entrada para o algoritmo de remoo de objetos ............... 35 Figura 28 Imagem resultante do algoritmo de remoo de objetos....................... 35 Figura 29 Imagem de entrada para o algoritmo de deteco de possveis positivos ................................................................................................................................. 36 Figura 30 Imagem de resultante do algoritmo de deteco de possveis positivos ................................................................................................................................. 36 Figura 31 Imagem das regies de entrada e sada ............................................... 37 Figura 32 Imagem resultando do processo de contagem do fluxo de pessoas ..... 38 Figura 33 Pseudocdigo do algoritmo do projeto .................................................. 39

10 LISTA DE TABELAS Tabela 1 - Valores de configurao do projeto............................................... 23

11 LISTA DE ABREVIATURAS E SIGLAS ABNT UNOPAR FP OpenCV FG BG RGB Associao Brasileira de Normas Tcnicas Universidade Norte do Paran Fluxo de Pessoas Open Source Computer Vision Foreground Background Red, Blue,Green

12 SUMRIO 1 2 Introduo................................................................ Erro! Indicador no definido. Fundamentao terica ................................................................................... 15

2.1 Computao Grfica ................................................................................... 15 2.2 Morfologia Matemtica ................................................................................ 16 2.3 Convex Hull ................................................................................................. 17 2.4 Flood-Fill ..................................................................................................... 18 3 Objetivo do trabalho ........................................................................................ 20 4 Configuraes e Testes Operacionais ........................................................... 21

4.1 Configuraes e posicionamento da Cmera ............................................. 21 4.2 Apresentao do sistema............................................................................ 21 4.3 Configuraes do Sistema .......................................................................... 22 5 Desenvolvimento ............................................................................................. 24 5.1 Inicializao do Sistema .............................................................................. 24 5.2 Captura da Imagem .................................................................................... 24 5.3 Filtro de Gauss para remoo de rudos e suavizao da imagem ............ 25 5.4 Reduo da Imagem ................................................................................... 26 5.5 Deteco de Movimento ............................................................................. 27 5.6 Distino dos nveis dos pixels por COR .................................................... 28 5.7 Identificao de objetos por nvel de cor e rea de conexo ...................... 29 5.8 Unio de objetos com reas correlatas ....................................................... 30 5.9 Remoo de objetos com tamanho irrelevantes ......................................... 34 5.10 Deteco de possveis positivos ................................................................. 35 5.11 Controle de possveis positivos e positivos ................................................. 36 5.11.1 Regio de validao de possveis positivos ......................................... 36 5.11.2 Associando possveis positivos a positivos .......................................... 37 5.11.3 Removendo Positivos .......................................................................... 38 5.12 Pseudocdigo do algoritmo ......................................................................... 39 6 Concluso ......................................................................................................... 40

13 1 INTRODUO Atualmente as empresas se encontram um cenrio de alta competitividade comercial, no qual todos e quaisquer esforos para atrair, manter e agradar os clientes so minuciosamente estudados, afim de que os mtodos aplicados tragam retornos positivos para a mesma. Esses mtodos visam melhoria na prestao de servio, satisfao do cliente, reduo de custos operacionais e fortalecimento de argumentos comerciais para elevar a taxa de sucesso em negociaes. Uma informao que tem se mostrado muito relevante para auxiliar todos os pontos citados acima o fluxo de pessoas (FP). Atravs dessa vrios segmentos conseguiram justificar custos, melhorar seus servios, detectar necessidades operacionais, dividir melhor os recursos etc. Podemos exemplificar suas aplicabilidades em vrios segmentos: Marketing: Justificar preos de outdoors em diferentes pontos das

cidades, relacionando o FP que trafega diariamente pela rua. Comprovar a eficcia de uma campanha publicitria

atravs do aumento de FP em uma loja, shopping, casa noturna. Imobilirio: ao FP. Segurana: Identificar horrios e pontos de maior FP nas cidades Justificar o preo ou aluguel de imveis comerciais devido

para aumento do efetivo policial afim de uma maior eficcia. Controle de super lotao em ambientes fechados como

bares, casas noturnas e shows. Comercial: cartazes etc. Entre tantas outras abrangncias. Existem vrias formas para obter a informao de FP, tais tcnicas se utilizam Melhor distribuio da escala de horrio de funcionrio

considerando os horrios e dias de maior FP. Identificar melhores lugares para exposio de produtos,

14 de recursos como infravermelho, sensores de movimento, contagem manual, processamento de imagens entre outras. Para este trabalho de concluso de curso ser abordado vertente referente a processamento de imagens sequnciais ou filmagens. O processamento de imagens uma rea da computao que se baseia na manipulao, criao e levantamento de informaes a partir de uma imagem, quadro de vdeo ou dados relevantes para tal processamento. A proposta para a realizao desse trabalho o desenvolvimento de um algoritmo capaz de identificar pessoas em uma imagem, imagem esta que ser obtida atravs de uma cmera que devera ser instalada em um local que possibilite a viso area do ambiente no qual se deseja extrair a informao de FP, est cmera estar conectada a uma unidade de processamento (embarcado, computador etc.) que devera processar a imagem e gerar os dados desejados. As informaes sero processadas em tempo real e deveram abranger os seguintes resultado, quantas pessoas esto no interior do ambiente, quantas entraram e quantas saram.

15 2 FUNDAMENTAO TERICA

Este captulo apresenta os conceitos bsicos das linhas de pesquisas estudas para o desenvolvimento deste trabalho, tais como: Computao Grfica, Morfologia Matemtica e algoritmos relacionados. 2.1 COMPUTAO GRFICA

Computao grfica a rea da computao da qual estuda a gerao, manipulao e interpretao de imagens atravs de computadores. Seguindo essa definio, a computao grfica subdivida em trs reas, que so elas sntese de imagens, processamento de imagens e anlise de imagens. (PERSIANO, 1989) 1. Sntese de Imagens: Ocupa-se da produo de representaes

visuais a partir das especificaes geomtricas e visuais dos dados da imagem. 2. Processamento de Imagens: Diz respeito de tcnicas para

transformar a imagem de entrada em outra imagem ou melhorar caractersticas visuais da imagem, como ajustar contraste, foco, remover rudos etc. 3. Anlise de Imagens: Busca isolar e identificar os componentes

de interesse de uma imagem a fim de abstrair informaes importantes para determinado processo.

Figura 1 - reas da Computao Grfica

A imagem digital uma representao de uma imagem em uma regio discreta especificada por valores que a descrevem. Esses valores podem ser referentes a dois tipos de descries, matriciais ou vetoriais.

16 Uma imagem de descrio vetorial tem suas especificidades representadas por formas geomtricas, diferente de uma imagem matricial que tem suas caractersticas representadas em mapa de pixel. O pixel o menor ponto que forma uma imagem digital.

Figura 2 Exemplo de Imagem Vetorial e Matricial

Em uma imagem matricial colorida, cada pixel tem sua cor descrita mais comumente no modelo de cor RGB. RGB a abreviao dos canais que compem esse modelo no caso o canal Red (vermelho), Green (verde), Blue (azul), esses canais so combinados com diferentes valores com o intuito de obter as demais cores.

Figura 3 Canais de Cores RGB

2.2

MORFOLOGIA MATEMTICA

uma rea de processamento de imagens no linear, com objetivos de realce, segmentao, deteco de bordas, esqueletizao, afinamento, anlise de formas, compresso etc.

17 A sua grande potencialidade se d a utilizao de um elemento estruturante e combinaes de duas funes, dilatao e eroso de imagens. O elemento estruturante um conjunto, de forma e tamanho completamente conhecido que comparado, a partir de uma transformao ao conjunto desconhecido de uma imagem matricial.

Figura 4 Exemplos de Elementos Estruturantes

A operao de eroso afina uma imagem enquanto a dilatao engorda a imagem segundo o elemento estruturante.

Figura 5 Imagens resultantes de operaes morfolgicas

2.3

CONVEX HULL

Esse algoritmo tem o intuito de calcular a menor fronteira possvel para determinada estrutura, vastamente utilizada para delimitar fronteiras entre objetos, verificar regies de sobreposio, invaso etc.

18

Figura 6 Convex Hull aplicado para definir menor fronteira de conjunto de pontos

2.4

FLOOD-FILL

Esse algoritmo que tem a funo de determinar reas conectadas dadas uma estrutura multidimensional. Essa abordagem bastante utilizada em ferramentas de pintura para preencher estruturas. As estruturas comumente utilizadas tm quatro ou oito direes e a utilizao dessas estruturas em conjunto com esse algoritmo so chamados de flood-fill four directions e flood-fill eight directions respectivamente.

Figura 7 Operao Flood-Fill Four Directions

Acima o exemplo do algoritmo de Flood-Fill Four Directions utilizado para encontrar conectividade em estrutura.

19

Figura 8 Operao Flood-Fill Eight Directions

Acima o exemplo do algoritmo de Flood-Fill Eight Directions utilizado para encontrar conectividade em estrutura.

20 3 OBJETIVO DO TRABALHO

Desenvolver um algoritmo que efetue a contagem de pessoas em uma determinada regio monitorada por uma cmera. Essa contagem deve ser realizada em tempo computacional aceitvel, pois a execuo do algoritmo contnua. Alm disso, o algoritmo ser implantado em hardware integrado, o que compromete a capacidade computacional e de memria disponvel, tornando crtica a preocupao com desempenho.

21 4 CONFIGURAES E TESTES OPERACIONAIS

4.1

CONFIGURAES E POSICIONAMENTO DA CMERA

A cmera para o desenvolvimento do prottipo foi uma webcam com as seguintes configuraes: 1300K Pixels (1.3 Mega Pixels interpolados) Captura de imagem 2000k pixels 640X480 (VGA) Auto ajuste de cor desligado Auto ajuste de brilho desligado

O posicionamento da cmera deve ser feito de modo que as imagens sejam a vista area do local a ser monitorado, onde a extremidades sul e norte da imagem corresponde ao local de entra e sada das pessoas. No caso desse prottipo, a cmera foi instalada no teto, numa altura de 2.5m.

Figura 9 Imagem do posicionamento correto da cmera

4.2

APRESENTAO DO SISTEMA

O sistema de prottipo foi desenvolvido na linguagem Object Pascal na I DE Delphi 2007. Para auxiliar no desenvolvimento do prottipo, foi utilizada a biblioteca grfica

22 OpenCV 2.0 (Open Source Computer Vision). Essa biblioteca constitui mais de 500 algoritmos destinados computao visual. Alm disso os algoritmos so otimizados para aplicaes em tempo real. O modelo de cor utilizado na implementao do prottipo o RGB. Alm disso, o prottipo possui as seguintes opes: Interleave); recebidas; e visualizao do resultado do processamento, quantidade de visualizao dos filtros aplicados para o tratamento das imagens iniciar captura de vdeo a partir de uma webcam; iniciar captura de vdeo a partir de um arquivo AVI (Audio Video

pessoas que passaram pelo local, hora e sentido.

Figura 10 Tela principal do prottipo

4.3

CONFIGURAES DO SISTEMA

A complexidade inerente ao problema gera vrios parmetros que devem ser

23 configurados para que o algoritmo possa fazer a anlise das imagens da forma esperada. Devido s caractersticas do problema em questo, a configurao dos parmetros se deu empiricamente, sendo estes gradualmente ajustados at a obteno de um resultado satisfatrio. A tabela 1 apresenta os parmetros que sero utilizados no projeto. Parmetro limiar de movimentao limiar inferior de possvel positivo limiar superior de possvel positivo limiar de distncia mnima entre componentes
Tabela 1 - Valores de configurao do projeto

Valor 60 49 121 110

24 5 DESENVOLVIMENTO

Desenvolver um algoritmo que simula um comportamento humano apresenta algumas dificuldades inerentes. Para que um ser humano possa distinguir o que um circulo do que um quadrado ou um retngulo, ele deve ter conhecimento prvio das caractersticas desses elementos. A quantidade de conhecimento sobre o assunto influencia diretamente na soluo do problema. Caso a base de conhecimento se restrinja dizer que o quadrado tem quatro lados, essa informao vai ajudar a distinguir o quadrado do circulo, porm, no resolver o problema da distino entre o quadro e o retngulo. Porm, se afirmarmos que o quadrado, alm de possuir quatro lados, cada lado possui o mesmo comprimento, possvel distinguir o quadrado do retngulo. A necessidade de conhecimento prvio das caractersticas dos elementos importante para algoritmos de computao visual. Sendo assim, uma etapa muito importante no projeto do algoritmo proposto a configurao correta dos parmetros aplicados para identificar os objetos desejados. No caso deste trabalho, o objeto desejado uma pessoa. Portanto, os filtros desenvolvidos foram desenvolvidos com o propsito de que o sistema seja capaz de reconhecer pessoas e cont-las.

5.1

INICIALIZAO DO SISTEMA

O sistema deve ser iniciado com o ambiente vazio, sem pessoas transitando. A primeira imagem recebida pelo sistema vai ser a imagem de plano de fundo padro, denominada imagem base. A imagem mais recente recebida denominada imagem em processamento. 5.2 CAPTURA DA IMAGEM

A captura de imagem constitui o primeiro passo para o algoritmo proposto. Como o algoritmo trabalha sobre sucessivas imagens, o processo de adquir-las de extrema importncia. Para esse fim, utilizou-se uma funo de aquisio de imagens da biblioteca OpenCV chamada cvQueryFrame que tem como parmetro a origem da captura que pode ser um hardware de aquisio de imagens ou um arquivo de

25 imagem conhecido. 5.3 DA IMAGEM Dada uma imagem obtida, denominamos rudo todo e qualquer pixel obtido que no corresponda com a imagem original. Rudos acontecem com frequncia quando se utiliza webcams e outros dispositivos de menos fidelidade grfica. evidente que o rudo pode afetar o desempenho das etapas subsequentes do algoritmo, portanto necessrio a utilizao de um filtro para a minimizao dos rudos. A escolha do mtodo de Gauss se deu por constituir uma tcnica consolidada que atende s necessidades do algoritmo. O uso desse filtro causa um efeito de blur (borramento) na imagem, o que faz com que a imagem perca informaes importantes sobre as bordas dos objetos. Porm, como o algoritmo no faz uso dessas bordas, essa caracterstica no um problema. A implementao do filtro de Gauss escolhida convolui cada pixel da imagem para um Kernel (funo matemtica) de Gauss 3x3. FILTRO DE GAUSS PARA REMOO DE RUDOS E SUAVIZAO

Kernel Gauss 3x3 =

Figura 11 Imagem de entrada para o processo com o filtro Gaussiano

26

Figura 12 Imagem resultante processada com filtro Gaussiano

5.4

REDUO DA IMAGEM

Aps a eliminao de rudos, o algoritmo obtm uma imagem limpa. Entretanto, a restrio de hardware imposta gera outra preocupao: o tamanho da imagem. O processamento em imagens grandes consome tempo demais, especialmente em aplicaes em tempo real que novas imagens so geradas periodicamente, portanto um processo de reduo na imagem gerada se mostra necessrio. Desenvolveu-se um algoritmo simples que funciona da seguinte forma: blocos de 16x16 pixels so processados de modo que gerem apenas um pixel resultante. Um novo pixel criado no qual seus valores RGB constituem a somatria dos canais correspondentes dos pixels na regio em anlise, dividido pela quantidade de pixels da regio. Esse processo resulta um valor mdio para os canais.

Figura 13 Imagem de entrada e resultando do processo de reduo

trivial observar que esse algoritmo de reduo de imagem possui complexidade de tempo de O(n), onde n o nmero de pixels de entrada da imagem, pois ele percorre cada bloco de 16x16 pixels, somando uma nica vez cada pixel.

27 Todos os processos posteriores utilizam-se da imagem resultado desse processo de reduo. 5.5 DETECO DE MOVIMENTO

Um dos pontos de maior importncia no algoritmo a deteco de movimento em imagens sucessivas. Informaes imprecisas nesse estgio interferem diretamente nos processos posteriores. Como, no problema estudado, a iluminao do ambiente controlada e possui um plano de fundo que no se move, no foi necessrio o desenvolvimento de remoo de plano de fundo adaptativo ou inteligente. Essa medida visa tambm minimizar o custo de processamento. Para identificar quais pixels devem ser considerados pixels que tem movimento, comparamos os pixels da imagem base com seus relativos da imagem em processamento levando em considerao sua composio RGB. Os pixels que passarem de um resultado limiar nessa comparao sero considerados pixel com movimento. Para a comparao desses pixels, seus valores RGB so interpretados como XYZ respectivamente e inseridos em um plano cartesiano 3D, onde a distncia euclidiana entre os pontos em comparao o valor resultante.

Figura 14 RGB utilizado como XYZ

Onde esse resultado for maior que o limiar aceitvel de distncia entre os pontos, chamado de limiar de movimentao, o pixel da imagem de processamento

28 ser considerado um pixel em movimento.

Figura 15 Imagem de entrada e resultando do processo de deteco de movimentos

Caso no seja identificado nenhum pixel em movimento na imagem em processamento, a imagem em processamento se torna a imagem base. Isso foi feito para ajuste fino de variaes de cor oriundos da prpria cmera. Nos processos posteriores apenas os pixels em movimento sero utilizados para processamento. Denominamos os pixels em movimento de pixels relevantes. trivial demonstrar que o processo de comparao entre os pixels da imagem em processamento com a imagem base acontecem em tempo constante. Portanto, o algoritmo de deteco de movimento possui complexidade de tempo de O( n) onde n o nmero de pixels das imagens, pois ele far a comparao uma nica vez, para cada pixel. 5.6 DISTINO DOS NVEIS DOS PIXELS POR COR

O filtro de distino dos nveis dos pxels por nvel foi desenvolvido para diferenciar os pixels relevantes por nveis de cor. Dessa forma, um pixel vermelho ter nvel diferente de um pixel azul e assim ser possvel diferenciar peas de roupas, tnis, dentre outros itens, da imagem da cabea da pessoa, que o objetivo de identificao no sistema. Esse algoritmo tem o seguinte funcionamento: identificado o pixel relevante com a menor somatria dos canais RGB. Esse pixel ser o pixel base. Todos os outros pixels relevantes so ordenados em relao sua distncia euclidiana at o pixel base utilizando o algoritmo de ordenao quicksort. A distncia euclidiana aqui utilizada a mesma soluo proposta no filtro de deteco de movimento .

29 Aps a ordenao dos pixels, os mesmos so percorridos, e para cada pixel atual, feita a comparao com o pixel anterior. Enquanto a diferena da distncia desses pixels at o pixel base for maior que o limiar de diferena de distncia at o pixel base, o nvel incrementado, e ento o pixel atual recebe o valor do nvel atual.

Figura 16 Pseudocdigo do processo distino dos nveis dos pixels

Figura 17 Imagem de entrada e resultando do processo distino dos nveis dos pixels

5.7 CONEXO

IDENTIFICAO DE OBJETOS POR NVEL DE COR E REA DE

Aps gerada a imagem de pixeis por nvel, necessrio distinguir os objetos. Objetos so estruturas compostas por vrios pixels relevantes do mesmo nvel de cor. Porm, os objetos no podem ser criados apenas levando em considerao o

30 filtro de nvel, pois a nivelao com base em cor pode gerar regies de pessoas diferentes que compartilham o mesmo nvel de cor. Como no exemplo abaixo.

Figura 18 Imagem de entrada do processo de identificao de objetos

Uma alternativa verificar quais regies com mesmo nvel de cor tem ligao entre si, caso no tenham, os objetos gerados sero distintos. O processo de detectara continuidade das regies funciona da seguinte forma: utilizando o flood-fill four directions para cada regio de conexo que utiliza como comparao o nvel do pixel um valor identificado de objeto atribudo de forma incremental.

Figura 19 Imagem resultante do processo de identificao de objetos

5.8

UNIO DE OBJETOS COM REAS CORRELATAS

Outro possvel problema que em vrias situaes, a regio da cabea de uma pessoa poderia gerar vrios objetos.

31

Figura 20 Imagem de entrada do processo de unio de objeto

Essa caracterstica resultaria em dificuldades na identificao de cabeas posteriormente e para resolver esse problema foi desenvolvido o filtro de unio de objetos com reas correlatas. Em computao visual comum, esse tipo de problema geralmente resolvido com os operadores de dilatao e eroso oriundos da morfologia matemtica. Porm, devido s restries de hardware, a rea de amostragem utilizada neste trabalho muito pequena e uma simples operao poderia causar vrias situaes indesejveis, alm de que as imagens deveriam sofrer binarizao nesse estgio, gerando maior custo computacional e inutilizando alguns dos filtros aplicados at o momento. Assim, outras abordagens foram consideradas, como por exemplo a gerao do convex hull de cada objeto e depois assumir como verdade que qualquer polgono gerado que estivesse inteiramente dentro de outro polgono pertenceria a este. Assim, temos uma soluo plausvel sem degradar as fronteiras dos nossos objetos. Inspirado na ideia acima foi desenvolvido um algoritmo mais simples, com menor custo computacional e que tambm resolve esse problema. O algoritmo funciona da seguinte forma, para cada objeto identificado seu limite de abrangncia que para cada limite de abrangncia do objeto x, caso este for inteiramente coberto por qualquer limite de abrangncia de outro objeto y, o objeto x unido ao objeto y. O limite de abrangncia de um objeto definido pela posio do pixel mais a esquerda superior at o pixel mais a direita inferior pertencente ao objeto. Explicando de forma mais entendvel, segue as demonstraes das situaes encontradas na execuo do algoritmo e qual a ao tomada:

32

Legenda: rea de abrangncia do objeto 1 Pixel relevante do objeto 1 rea de abrangncia do objeto 2 Pixel relevante do objeto 2

Figura 21 Situao 1 de problema encontrado para soluo no algoritmo de unio de objetos

Situao 1: Quando os objetos no tem rea de abrangncia que tem convergncia os objetos no so unificados.

Figura 22 Situao 2 de problema encontrado para soluo no algoritmo de unio de objetos

33

Situao 2: Os objetos tem rea de abrangncia convergentes porm o a rea do objeto 2 no est inteiramente dentro da objeto 1 e vice-versa.

Figura 23 Situao 3 de problema encontrado para soluo no algoritmo de unio de objetos e resultado da unio dos objetos

Situao 3: A rea de abrangncia do objeto 2 est inteiramente coberta pela rea de abrangncia do objeto 1, ento o objeto de menor rea unificado ao objeto de maior rea. Demonstrao dos estgios do algoritmo:

Figura 24 Imagem de entrada para o algoritmo de unio de objetos

34

Figura 25 Imagem do processamento intermedirio do algoritmo que visa identificar as regies de abrangncia dos objetos.

Figura 26 Imagem resultante do algoritmo de unio de objetos

Como pode ser visualizado nas imagens acima, todas as regies que tem sua extenso completamente coberta por outra regio foram unidas. 5.9 REMOO DE OBJETOS COM TAMANHO IRRELEVANTES

Aps detectado os objetos, j se tem informaes suficientes para localizar as cabeas das pessoas. Portanto, o prximo passo filtrar os objetos que so interessantes para o processo. Uma maneira de classificao de objetos relevantes o seu tamanho. Desse modo todos os objetos que tiverem sua rea de abrangncia menor que o limiar de tamanho mnimo de abrangncia sero removidos.

35 A varivel correspondente ao tamanho mnimo de abrangncia de um objeto denominada limiar inferior de possvel positivo e a varivel correspondente a maior rea de abrangncia de um objeto denominada limiar superior de possvel positivo.

Figura 27 Imagem de entrada para o algoritmo de remoo de objetos

Figura 28 Imagem resultante do algoritmo de remoo de objetos

5.10

DETECO DE POSSVEIS POSITIVOS

Aps restarem apenas os grandes objetos no-correlatos, necessrio procurar todos os objetos na imagem com o potencial para ser uma cabea. Esses objetos so denominados possveis positivos. Para que um objeto seja considerado um possvel positivo, ele deve ter uma rea completamente preenchida entre os limiares inferior e superior de possvel positivo.

36

Figura 29 Imagem de entrada para o algoritmo de deteco de possveis positivos

Figura 30 Imagem de resultante do algoritmo de deteco de possveis positivos

5.11

CONTROLE DE POSSVEIS POSITIVOS E POSITIVOS

A prxima etapa se utiliza e armazenar informaes sobre as imagens capturadas. Essas informaes constituem da posio e do tamanho dos possveis positivos. Essas informaes servem para validao de possveis positivos em positivos, associao de possveis positivos com positivos, remoo de possveis positivos e positivos etc. 5.11.1 Regio de validao de possveis positivos Para que um possvel positivo possa ser identificado como um positivo, ele precisa corresponder uma condio: a apario inicial do possvel positivo na imagem deve ser dentro da regio de entrada e sada.

37

Figura 31 Imagem das regies de entrada e sada

As reas em vermelho delimitam as regies de apario de possveis positivo. Caso algum possvel positivo aparecer fora dessas regies e no for associado a nenhum positivo ele vai ser removido. Nesse caso, quando no existe nenhum positivo e um possvel positivo identificado em uma das regies de entrada, ele se torna um positivo. trivial demonstrar que essa verificao pode ser feita com complexidade de tempo constante, pois basta verificar algum pixel prximo ao centro da possvel positivo quanto ao seu posicionamento. 5.11.2 Associando possveis positivos a positivos Um dos problemas que deve ser resolvido para associar possveis positivos a positivos a necessidade seguir um objeto em uma sequencia de imagens. Na literatura, um mtodo muito mencionado para tal finalidade o filtro de Kalman para situaes de movimentos lineares e Unscented Kalman para movimentos no lineares. (William F. Leven & Aaron D. Lanterman, 2005) Esses filtros apresentam algoritmos complexos que se comportam muito bem para imagens maiores e complexas. Devido s caractersticas do problema aqui estudado, e s limitaes de hardware, desenvolveu-se um filtro mais simples e menos genricos, mais voltados ao problema. O algoritmo desse filtro funciona da seguinte forma: se for identificado um possvel positivo na imagem, e j existir positivos na imagem anterior, ento inicialmente identifica-se qual o positivo mais prximo. A distncia calculada entre os pontos centrais do possvel positivo e do positivo, utilizando distncia euclidiana.

38 Caso essa distncia for menor que um valor limiar chamado de limiar de distncia mnima entre componentes, ento o possvel positivo vinculado ao positivo. Todos os possveis positivos que aps esse processo no forem vinculados a nenhum positivo e no estiverem nas regies de entrada e sada so removidos. 5.11.3 Removendo Positivos Para considerar que um positivo saiu da regio de monitoramento, esse positivo deve passar por dois ciclos de processo e no ser associado a nenhum possvel positivo. Assim, quando esse processo ocorre, identificado que deve ocorrer o processo de contagem de pessoa e identificao de sentido. Para identificar o sentido em que a pessoa passou, comparada a primeira posio e a ultima posio do positivo no processo. Dessa forma, possvel identificar se a pessoa passou pelo local controlado no sentido norte/sul ou sul/norte. Caso, uma pessoa tenha entrado e sado pela mesma direo, o algoritmo no ir cont-la. A inteno contar quantas pessoas passaram pelo local, no quantas pessoas chegaram at o local.

Figura 32 Imagem resultando do processo de contagem do fluxo de pessoas

39 5.12 PSEUDOCDIGO DO ALGORITMO

Figura 33 Pseudocdigo do algoritmo do projeto

40 6 CONCLUSO

visvel o crescimento das aplicaes que utilizam a Computao Grfica como base para a resoluo de problemas foram desenvolvidos vrios algoritmos, abordagens e ideias, essas podem ser encontradas massificadas na literatura. Porm, os algoritmos frequentemente so desenvolvidos parar resolver problemas de caso geral, o que ocasiona o desenvolvimento de vrias protees, correes etc no algoritmo que no so necessrios para certas situaes, o que acaba aumentando o custo computacional dos algoritmos. Com o desenvolvimento desse projeto e testes empricos foi possvel comprovar que possvel utilizar algoritmos menos complexos e que resolvem problemas pontuais para solucionar problemas complexos. Isso impacta fortemente na complexidade algortmica e consequentemente no custo computacional da soluo. O problema a ser resolvido, apresentado no objetivo do projeto foi atendido com sucesso utilizando a juno de vrias tcnicas no descritas atualmente na literatura com algumas outras bastante conhecidas e simples. O que deixa claro que os problemas Computao Grfica podem ter mais de um tipo de soluo, soluo essa que malevel dependo da criatividade e conhecimento do desenvolvedor.

41 REFERNCIAS AZEVEDO, Eduardo; CONCI, Aura. Computao grfica. Rio de Janeiro: Elsevier, 2003. FACON, Jacques; Morfologia Matemtica: Teoria e Exemplos. Curitiba: Editora Universitria Champagnat da Pontfica Universidade Catlica do Paran, 1996

PERSIANO, Ronaldo Csar Marinho. Introduo computao grfica. Rio de Janeiro: LTC, 1989.

Arajo, A. de A.; Guimares, S.J.F. Recuperao de informao visual com base no contedo em imagens e vdeos digitais. Edio Especial em Computao Grfica e Processamento de Imagens, Revista de Informtica Terica e Aplicada RITA, UFRGS, Porto Alegre-RS, vol. 7, no. 2, 2000, p. 43-72.

Marques Filho, Og; Vieira Filho, Hugo. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999.

GOMES, Jonas; VELHO, Luiz. Computao grfica. Rio de Janeiro: IMPA, 1998.

HEARN, Donald; BAKER, M. Pauline. Computer Graphics. Prentice Hall, 1997.

GONZALEZ, R. C.; WOODS R. E. Digital Image Processing. Addison-Wesley Publishing Company, 1993.

UNIVERSIDADE FEDERAL DO PARAN. Biblioteca Central. Normas para apresentao de trabalhos. 2. ed. Curitiba: UFPR, 1992. v. 2.

You might also like