Contagem de Pessoas em Tempo REAL
Contagem de Pessoas em Tempo REAL
Contagem de Pessoas em Tempo REAL
Coordenador:
Flávio Luis Cardeal Pádua
Orientandos:
Marco Aurélio Buono Carone
Renato Ferreira Lima e Correa Pereira
Belo Horizonte/MG
Dezembro de 2012
Resumo
Este trabalho aborda o projeto e desenvolvimento de um sistema de software para contagem au-
tomática de pessoas em tempo real, baseado em técnicas de processamento e análise de imagens
capturadas por dispositivos móveis. Diferentemente da grande maioria dos sistemas encontrados
na literatura e em aplicações comerciais, os quais frequentemente se baseiam no uso de sensores
fotoelétricos ou sensores de pressão, o presente trabalho propõe uma metodologia baseada exclu-
sivamente na análise das imagens obtidas por câmeras de vídeo instaladas na cena de interesse.
Especificamente, o sistema projetado neste trabalho foi concebido para operar de forma distribuída
e embarcada em plataformas móveis ou nós sensores, tais como smartphones, configurando ao sis-
tema características inovadoras que potencializam sua aplicação em diversos cenários. Cada nó
sensor é responsável por monitorar o campo de visão por ele coberto, aplicando algoritmos de Visão
Computacional para detectar, segmentar e contar objetos móveis que representem eventualmente
pessoas. As informações estimadas pelo sistema, por sua vez, são enviadas via rede a um servidor,
o qual pode utilizar os dados para geração de relatórios estratégicos e cálculos de indicadores. O
sistema projetado neste trabalho prevê que os serviços associados ao mesmo sejam acessíveis pela
Internet, provendo a seus usuários uma série de benefícios devido a este fato. No que se refere às
técnicas de processamento e análise de imagens aplicadas, o sistema baseia-se em: (1) um método
de detecção de objetos móveis que utiliza a operação de subtração do plano de fundo da cena
(modelo adaptativo) e modelos bidimensionais de pessoas, (2) um método estatístico para remo-
ção de sombras e ruídos, que confere ao sistema maior robustez sobretudo quanto a variações de
luminosidade na cena e (3) um método estatístico para realizar a estimativa de sentido de objetos
móveis. O sistema desenvolvido foi validado com sucesso em cenários desafiadores, tais como cenas
com várias pessoas e cenas com variação de luminosidade, atingindo uma taxa média de acerto de
94,10%.
Lista de Figuras vi
1 Introdução 1
1.1 Caracterização do Problema de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Relevância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Organização do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Embasamento Teórico 8
2.1 Representação de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Segmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Limiarização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Detecção de objetos em movimento . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Subtração simples de imagens . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Correlação-Cruzada Normalizada . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Filtragem de Ruído . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1 Filtragem Espacial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Atributos Humanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.1 Dimensões corporais humanas . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.2 Velocidade dos Humanos . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3 Revisão Bibliográfica 22
3.1 Métodos Baseados em Visão Estéreo . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Métodos que Utilizam Rastreamento . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Métodos que Não Utilizam Rastreamento . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Métodos Baseados em Análise de Imagens de Vigilância . . . . . . . . . . . . . . . 26
3.5 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
iii
4.1 Visão geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Detecção de Novos Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.1 Obtenção da sequência de imagens . . . . . . . . . . . . . . . . . . . . . . 31
4.2.2 Subtração de imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2.3 Subtração Adaptativa de Plano de Fundo . . . . . . . . . . . . . . . . . . . 38
4.2.4 Segmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.5 Algoritmo de segmentação . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Contagem de Pessoas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.1 Cálculo da largura humana em pixels . . . . . . . . . . . . . . . . . . . . . 45
4.3.2 Algoritmo de Contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Estimativa de Sentidos de Movimentação . . . . . . . . . . . . . . . . . . . . . . . 50
4.4.1 Algoritmo de Estimativa de Sentidos de Movimentação . . . . . . . . . . . . 51
4.5 Agregação de Dados de Contagem . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5.1 Algoritmo de agregação de dados de contagem . . . . . . . . . . . . . . . . 55
4.6 Arquitetura e outras características do sistema . . . . . . . . . . . . . . . . . . . . 59
4.6.1 Considerações sobre os algoritmos utilizados . . . . . . . . . . . . . . . . . 59
4.6.2 Controle da operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.6.3 Arquitetura do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7 Contagem de pessoas em portas largas . . . . . . . . . . . . . . . . . . . . . . . . 61
4.8 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Resultados Experimentais 63
5.1 O Protótipo Desenvolvido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1.1 Características do protótipo desenvolvido . . . . . . . . . . . . . . . . . . . 64
5.1.2 Portando o código existente para outra plataforma . . . . . . . . . . . . . . 65
5.2 Servidor de acompanhamento dos dispositivos . . . . . . . . . . . . . . . . . . . . 67
5.3 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3.1 Calibrando o Algoritmo Desenvolvido . . . . . . . . . . . . . . . . . . . . . 68
5.3.2 Captura dos vídeos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.4 Criação do Gabarito da Contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5 Experimentos e Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . 75
5.5.1 Vídeo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.5.2 Vídeo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.5.3 Vídeo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.6 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
iv
6 Conclusões e Trabalhos Futuros 82
6.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7 Referências Bibliográficas 84
A Especificação de requisitos 87
v
Lista de Figuras
vi
4.14 Diagrama que ilustra a funcionalidade do algoritmo de agregação dos dados de con-
tagem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.15 Diagrama que ilustra quando os dados devem ser enviados para o servidor. . . . . . 60
4.16 Arquitetura da solução de comunicação. . . . . . . . . . . . . . . . . . . . . . . . 60
vii
Lista de Tabelas
viii
1 | Introdução
O presente trabalho aborda o problema de se estimar fluxos de pessoas, utilizando técnicas de pro-
cessamento e análise de sequências de imagens. O sistema de contagem de pessoas projetado para
tratar esse problema tem aplicabilidade em diversos cenários, como os ilustrados na Figura 1.1,
os quais são caracterizados por problemas bastante desafiadores. Grande parte dos trabalhos re-
lacionados pesquisados na literatura se baseiam em técnicas de subtração do plano de fundo da
cena para detecção de movimento de pessoas, utilizando limiarização de imagens (Bhuvaneshwar e
Mirchandani, 2004; Kim et al., 2002; Masoud e Papanikolopoulos, 2001; Kettnaker e Zabih, 1999);
metodologias estatísticas que possibilitam distinguir entre pixels em movimento e pixels estacionários
em uma sequência de imagens, para segmentação do plano de fundo e dos objetos em movimento
(Teixeira e Savvides, 2007; Jeon e Rybski, 2006; Lu e Tan, 2001; Haritaoglu et al., 1998); rastrea-
mento de pessoas utilizando o filtro preditivo de Kalman para estimar novas posições (Silva et al.,
2009; Beymer e Konolige, 1999); monitoramento de pedestres utilizando scanners a laser (Zhao e
Shibasaki, 2005); estimação dos movimentos de pedestres por meio do cálculo de campos de Fluxo
Figura 1.1: Cenários desafiadores para utilização do sistema: (a) casais; (b) pessoas com necessidades
especiais; (c) pais acompanhados de crianças; (d) pessoas com carrinhos de compras; (e) pessoas portando
acessórios; (f) forte influência da iluminação externa; (g) reflexos e sombras e (h) mudanças no plano de
fundo e na iluminação da cena.
1
2
Ótico (Pádua et al., 2003) e, finalmente, identificação das pessoas presentes na cena a partir do
uso de modelos de suas formas, juntamente com técnicas de análise de movimentos e classificadores
neurais (Kong et al., 2005; Schofield et al., 1997).
Neste cenário, buscando-se avançar nesta direção, o sistema projetado neste trabalho, diferentemente
daquele proposto em Silva (2009), foi concebido para operar de forma distribuída e embarcada em
plataformas móveis ou nós sensores, tais como smartphones, configurando ao sistema características
1.1. CARACTERIZAÇÃO DO PROBLEMA DE PESQUISA 3
inovadoras que aumentam sua aplicabilidade, escalabilidade e eficácia. Essas características puderam
ser alcançadas principalmente devido (i) às praticidade de instalação desses dispositivos, devido a
suas pequenas dimensões e baixo consumo de energia; (ii) às possibilidades de comunicação providas
por eles; e (iii) devido ao poder de processamento oferecido por eles atualmente, adequado para
realizar os algoritmos propostos. Cada nó sensor é responsável por monitorar o campo de visão por
ele coberto, aplicando algoritmos de Visão Computacional para detectar, segmentar e contar objetos
móveis que representem eventualmente pessoas.
O sistema projetado neste trabalho prevê que os serviços associados ao mesmo - como, por exemplo,
o acesso aos relatórios gerados à partir da análise da contagem de pessoas - serão acessíveis pela
Internet. No que se refere às técnicas de processamento e análise de imagens aplicadas, o sistema
baseia-se em: (1) um método de detecção de objetos móveis que utiliza a operação de subtração do
plano de fundo da cena (modelo adaptativo) e modelos bidimensionais de pessoas, (2) um método
estatístico para remoção de sombras e ruídos, que confere ao sistema maior robustez sobretudo
quanto a variações de luminosidade na cena e (3) um método estatístico para estimativa de sentido
de objetos móveis.
Mediante a implementação das técnicas mencionadas, espera-se que este trabalho contribua com
uma metodologia eficaz, capaz de ser utilizada com eficiência em aplicações relacionadas ao estudo
de fluxo e comportamento de pessoas. Tais aplicações podem incluir, por exemplo, monitoramento
de múltiplos pontos de interesse em um ambiente; geração de relatórios estratégicos; e cálculos de
indicadores, tais como, taxa de conversão e hot zones.
além de realizar o monitoramento da cena, permitirá identificar pessoas na cena, contá-las e estimar
o sentido de movimentação delas. No que se refere às cenas de interesse, nas quais as pessoas
executarão suas trajetórias, este trabalho impõe a elas as seguintes restrições:
• Deverão sempre consistir de ambientes internos, sem influência forte de iluminação natural.
• Não deverão possuir solos cujas superfícies sejam especulares ou qualquer outra superfície
lisa que apresente reflexos das pessoas que passam. A superfície do solo deve ser fosca, sem
reflexos.
• Não deverão possuir outros objetos que se movam com frequência, como vitrines, caixas,
portas deslizantes ou de abertura “em L”, entre outros.
• Deverão ser inteiramente representadas nas imagens produzidas pelos dispositivos responsáveis
pela captura da cena, minimizando-se possíveis efeitos de oclusão de pessoas.
• Não deverão consistir em locais de passagem de multidões (mais de uma pessoa a cada 2m2
- dois metros quadrados).
O sistema deverá ser concebido para contar pessoas que se movimentem em velocidades comuns
em áreas urbanas, como será descrito na Seção 2.5.2 deste trabalho. Pessoas paradas, movendo-se
lentamente ou correndo na cena de interesse podem não ser contadas e reduzirão a exatidão do
sistema.
Como o sistema deste trabalho prevê que os serviços associados ao mesmo sejam acessíveis pela
Internet, assume-se, portanto, que, se os dispositivos forem instalados, haverá conexão adequada ao
funcionamento da solução, em termos de disponibilidade e de largura de banda.
Para que se minimizem os efeitos de oclusão entre pessoas distintas que se movem na cena, sobretudo
em cenas com grande número de pessoas, o sistema de contagem proposto neste trabalho é projetado
prevendo-se que os dispositivos que capturam as imagens da cena serão instalados no teto dos
locais onde estiverem, em posições ortogonais ao solo, obtendo-se uma visão zenital da cena. Os
1.2. RELEVÂNCIA 5
1
dispositivos poderão ser instalados somente em locais onde o pé direito seja maior que 2m (dois
metros) e menor que 5m (cinco metros).
Finalmente, o sistema desenvolvido neste trabalho foi projetado para atender aos seguintes requisitos:
• Baixo custo computacional, o qual é alcançado por meio da utilização de algoritmos eficientes,
garantindo-se a aplicação do sistema em tempo real em dispositivos móveis.
• Tolerância a variações nas condições ambientais, tais como pequenas variações de luminosi-
dade, pequenas vibrações mecânicas e outros ruídos nas câmeras utilizadas.
1.2 Relevância
Em situações nas quais o fluxo de pessoas ocorre em regiões limitadas, a contagem de pessoas tem
sido feita por meio de roletas mecânicas, sensores infravermelhos ou fotoelétricos e placas sensíveis
1
Pé-direito é uma expressão frequentemente utilizada em arquitetura, engenharia e em construções em geral, e
indica a distância do pavimento ao teto.
1.3. OBJETIVOS 6
ao peso. Uma série de limitações, porém, podem ser apontadas para esses métodos: pessoas que
passam simultaneamente em sensores fotoelétricos ou infravermelhos podem ser contadas apenas
como uma única pessoa. Roletas mecânicas podem inibir a entrada de pessoas em estabelecimentos.
Placas sensíveis a peso podem contabilizar outros objetos que as atravessem e podem ignorar pessoas
passando simultaneamente, como crianças acompanhadas de pais ou duas crianças.
No caso de ambientes externos, como, por exemplo, uma avenida no centro de uma cidade, tais
métodos são ainda mais ineficientes, não sendo capazes de medir a Seção transversal real do objeto
que se move, bem como sua direção de movimento, o que algumas vezes é importante para o
monitoramento do fluxo de entrada versus o fluxo de saída de indivíduos em um dado sistema.
Neste contexto, a análise de sequências de imagens surge como uma alternativa interessante na
correta discriminação e contabilização de indivíduos que estejam caminhando em uma determinada
área.
1.3 Objetivos
O objetivo principal deste trabalho consiste em projetar e desenvolver um sistema automático baseado
em Visão Computacional que seja capaz de contar em tempo real pessoas que circulem em regiões
de interesse existentes em estabelecimentos comerciais.
Por meio deste trabalho, objetiva-se gerar os seguintes resultados finais: (i) uma metodologia de con-
tagem que possa ser utilizada em aplicações comerciais ligadas ao estudo de fluxo e comportamento
de pessoas e (ii) disseminação de novos conhecimentos para a sociedade.
4. Realizar experimentos em tempo real com diversos tipos de cenas: por meio destes
experimentos, serão avaliadas a eficácia e a escalabilidade do sistema de contagem de pessoas.
1.4. ORGANIZAÇÃO DO TEXTO 8
• No Capítulo 2 é feito o embasamento teórico das técnicas utilizadas pelo sistema proposto,
como as de segmentação e de modelo de plano de fundo adaptativo, além de apresentar
fundamentações dos valores adotados como parâmetros ao longo do texto, como as dimensões
humanas.
• No Apêndice B mostra-se como foi obtido o conjunto ótimo de valores para os parâmetros
utilizados no metodologia proposta.
Com o advento dos sistemas de visão, o processamento e análise de imagens passaram apresentar
grande relevância em aplicações científicas. A visão computacional visa a decifrar o conteúdo físico
de uma imagem ou de uma sequência de imagens através de seu processamento. O processamento
das imagens é uma forma de processamento de sinal, para o qual a entrada é uma imagem – ou, em
outras palavras, um sinal bidimensional ou multidimensional – e a saída é um conjunto de parâmetros
ou características relacionadas a ela. Dessa forma, há uma série de métodos matemáticos existentes
para extrair dados de imagens, como medidas de superfície, comprimentos e posição de objetos
das imagens. Para a análise, é interessante assegurar a qualidade das imagens, eliminado prováveis
ruídos. Isso é possível através do uso de filtros.
Neste Capítulo, conceitos básicos relacionados a este trabalho são apresentados. Tais conceitos
envolvem os métodos matemáticos necessários para processar as imagens, como as técnicas de
remoção de sombras, segmentação de imagem e redução de ruído. Além disso, são apresentados
fundamentos de fatores humanos, como dimensões corporais médias e velocidade média de pessoas,
usados comumente na engenharia de transportes para o desenvolvimento de sistemas que interagem
com o ser humano.
Segundo Gonzalez e Woods (2008), uma imagem digital monocromática (tons de cinza), refere-se
a uma função matemática bidimensional de intensidade de luz f (x, y), onde x e y representam
as coordenas espaciais e o valor de f é proporcional ao brilho, ou seja, ao nível de cinza naquele
ponto da imagem pode ser definida como uma função de duas dimensões, f (x, y), onde x e y são
coordenadas espaciais (do plano) e a amplitude de f num par de coordenadas (x, y) é chamada de
intensidade ou nível de cinza do ponto na imagem. Cada ponto (x, y) na imagem digital é chamado
de pixel.
9
2.1. REPRESENTAÇÃO DE IMAGENS 10
31 26 26 26 31
13 0 0 0 13
19 7 0 7 19
31 26 19 13 7 0
26 19 7 19 2
31 26 19 26 31
Figura 2.1: Representação de resolução de 5 bits para o nível de intensidade luminosa de uma imagem
monocromática.
A Figura 2.1 ilustra a resolução de nível de intensidade luminosa de 5 bits em uma imagem mono-
cromática. Uma imagem de resolução de 8 bits para o nível de intensidade luminosa ou, em outras
palavras, de 256 tons de cinza, pode ter intensidades que variam desde preto (valor 0) até branco
(valor 255) em cada pixel.
Diversos sistemas foram criados para representar imagens coloridas, como RGB, XYZ, HSV e outros.
Todos eles possuem características próprias e apresentam as informações de cor de forma particular
que os torna mais ou menos convenientes, dependendo da aplicação.
As imagens de câmeras coloridas no formato RGB – as quais foram usadas neste trabalho – são
compostas por três componentes básicas: vermelha, verde e azul. A partir da combinação destas
cores é possível obter as demais cores do espectro visível. Nestas câmeras, a informação luminosa
passa pela lente e é projetada sobre um arranjo de prismas antes de atingir os sensores, como
mostrado na Figura 2.2. Ao entrar em contato com os prismas, a luz é dividida em três componentes,
e direcionada para os três sensores respectivamente. Desta forma, o resultado é a aquisição e o
armazenamento de três imagens em áreas diferentes na memória do computador, que combinadas,
formam a imagem colorida. Para distinguir objetos em uma imagem, é necessário que haja diferença
de intensidade luminosa entre eles.
2.2. SEGMENTAÇÃO 11
Sensor de verde
Prisma 3
Camada de filtro
de vermelho Camada de
filtro de azul
Prisma
2
Sensor de Sensor
Vermelho
Pri
de azul
sm
1 a
Objetiva
Luz
(a)
(b)
Figura 2.2: Técnicas de separação de cores por prismas. (a) Técnica de divisão de feixes luminosos em 3
componentes coloridos; (b) Gráfico das componentes RGB.
2.2 Segmentação
Segundo Gonzalez e Woods (2008), as técnicas empregadas pelos algoritmos de segmentação são
geralmente baseadas em duas propriedades básicas: descontinuidade e similaridade. Na descontinui-
dade, a abordagem consiste em particionar uma imagem tomando por base as mudanças abruptas
2.2. SEGMENTAÇÃO 12
da intensidade do ponto (pixel). As principais áreas de interesse desta categoria são: detecção de
pontos isolados, de linhas e de bordas da imagem. Na similaridade, a abordagem é baseada em
limiarização e crescimento de regiões (Gonzalez e Woods, 2008).
2.2.1 Limiarização
A limiarização (thresholding) é uma das mais importantes técnicas para a segmentação de imagens.
No caso de imagens em tons de cinza, analisa-se a similaridade dos níveis de cinza da imagem
extraindo os objetos de interesse por meio da seleção de um limiar T que separa os agrupamentos
de níveis de cinza (Gonzalez e Woods, 2008).
Uma imagem limiarizada g(x, y) é uma imagem binária (com dois níveis de intensidade de cor)
definida como: (
1, se f (x, y) > T
g(x, y) = . (2.1)
0, se f (x, y) T
Em que f (x, y) corresponde ao nível de cinza do pixel, T é um valor de tom de cinza predefinido
denominado limiar. Os pixels rotulados com 1 correspondem aos objetos e os pixels rotulados com 0
correspondem ao fundo (Gonzalez e Woods, 2008). O resultado desse método depende da escolha
do limiar, como pode ser observado nas Figuras 2.3 (a) e (b).
Figura 2.3: Resultados da aplicação do método de limiarização. (a) Imagem original, representada em 256
tons de cinza. (b) Imagem limiarizada: T = 128. (c) Imagem limiarizada: T = 190.
2.3. DETECÇÃO DE OBJETOS EM MOVIMENTO 13
Em uma sequência de imagens, para se conhecer novos objetos ou para se detectar objetos em
movimento, é fundamental que o plano de fundo seja bem conhecido. Os objetos que se deslocam
na cena serão conhecidos através de comparações entre a imagem atual da sequência e a imagem
que representa o plano de fundo.
A subtração simples de imagens consiste em uma das formas de realizar a comparação entre o plano
de fundo e imagem atual da cena. Ela caracteriza-se por subtrair a intensidade luminosa entre os
pixels das duas imagens. O resultado será uma imagem contendo os objetos que não possuem a
mesma intensidade de cor do plano de fundo e, em geral, representará os objetos em movimento.
Essa técnica no entanto, requer que o plano de fundo seja sempre atualizado. Para tanto, com a
cena estática, sem qualquer objeto em movimento, pode ser adquirida a imagem da sequência e
utilizá-la como modelo do plano de fundo nesse método de subtração, como feito em Masoud e
Papanikolopoulos (2001), Kim et al. (2002) e Bhuvaneshwar e Mirchandani (2004).
Grest et al. (2003) sugerem uma técnica robusta capaz de remover a sombra dos objetos em primeiro
plano na cena, preservando a silhueta desses objetos. Primeiramente, a limiarização é utilizada para
se segmentar os objetos do primeiro plano, o qual é capaz de lidar com mudanças rápidas de brilho
na imagem. Em seguida, utilizando um espaço de cor adequado, é verificada a similaridade na
crominância dos pixels.
Para distinguir as sombras dos objetos na imagem segmentada, Grest et al. (2003) consideram as
seguintes condições: “um pixel de sombra é mais escuro que um pixel corresponde na imagem de
plano de fundo e a textura de sombra é correlacionada com a textura correspondente da imagem
2.3. DETECÇÃO DE OBJETOS EM MOVIMENTO 14
(d) (e)
(f ) (g) (h)
Figura 2.4: Subtração simples de imagens implementadas utilizando um Smartphone. (a) Imagem inicial
capturada, utilizada como plano de fundo. (b) e (c) Subtração com imagens capturadas poucos instantes
depois, sem nenhuma alteração na cena. (d) e (e) Subtração após a incorporação de um objeto à cena. (f)
Mesma cena sem iluminação artificial. (g) Mesma cena com iluminação artificial novamente. (h) Subtração
após o dispositivo ter sido exposto a pequena vibração mecânica.
de plano de fundo”. Na imagem analisada, para cada pixel mais escuro que o pixel correspondente
na imagem de plano de fundo, Grest et al. (2003) sugerem calcular o parâmetro NCC - Correlação
Cruzada Normalizada.
ER (i, j)
PN CC (i, j) = . (2.2)
EB (i, j)ET ij
Onde:
N
X N
X
ER (i, j) = B(i + n, j + m)Tij (n, m), (2.3)
n= N m= N
v
u N N
uX X
EB (i, j) = t B(i + n, j + m)2 , (2.4)
n= N m= N
N
X N
X
ET ij (i, j) = Tij (n, m)2 . (2.5)
n= N m= N
Para cada pixel de sombra, o PN CC possui valor próximo de 1 (um). Assim, serão eliminados os
pixels escuros na imagem segmentada, se o PN CC do pixel na imagem corrente e o pixel na imagem
de referência (plano de fundo) for maior que o limiar definido para o NCC, lN CC .
O valor obtido após essa operação é, assim, chamado de PN CC e calculado como na equação 2.6:
(
PN CC (i, j), se PN CC (i, j) lN CC
PN CC (i, j) = . (2.6)
0, se PN CC (i, j) < lN CC
Jacques et al. (2005) propõem um método de remoção de sombra baseado na técnica apresentada
em Grest et al. (2003), onde o parâmetro NCC é utilizado para detectar pixels candidatos a sombra.
A técnica apresentada por Jacques et al. (2005) utiliza o NCC como um patamar inicial para detectar
sombra, e refina o processo usando estatísticas locais da razão dos pixels.
2.4. FILTRAGEM DE RUÍDO 16
A saída dos algoritmos de segmentação de imagens em geral apresenta resultados ruidosos: grupos
de pixels espalhados e isolados, buracos e contornos serrilhados (Gonzalez e Woods, 2008). Para
aumentar a qualidade desses resultados, gerando uma saída condizente com aquela esperada pelo
algoritmo, utilizam-se transformações feitas pixel a pixel, chamadas de filtros. Os filtros não consi-
deram apenas a intensidade de um único pixel, mas de uma janela que compõe ele e sua vizinhança.
Nesta Seção, as técnicas de filtragem abordadas as do domínio espacial – lineares e não lineares.
Filtros Lineares
Filtros espaciais lineares usam máscaras que realizam somas ponderadas das intensidades de pixels
ao longo da imagem. Em geral, são utilizados para suavizar ou realçar detalhes de uma imagem.
Filtros de suavização causam um efeito de “borramento” na imagem original, fazendo com que a
imagem perca detalhes e contraste. Esses filtros substituem o pixel em questão pela média de uma
máscara. Quanto maior a máscara, maior o efeito de suavização. A Figura 2.5 mostra exemplos de
máscaras de suavização.
5x5
3x3 1 1 1 1 1
1 1 1 1 1 1 1 1
1 x 1 x
1 1 1 1 1 1 1 1
9 25
1 1 1 1 1 1 1 1
1 1 1 1 1
Figura 2.6: Exemplos de suavização com máscara n x n. (a) Imagem original; (b) Resultado com máscara
3x3; (c) Resultado com máscara 5x5 ; (d) Resultado com máscara 7x7. Fonte: Gonzalez e Woods (2008).
A Figura 2.6 ilustra a aplicação dessa técnica. Esses filtros também são chamados de filtros passa-
baixas, uma vez que as informações de alta frequência, que representam os detalhes dos contornos
da imagem ou ruídos, são descartados.
Filtros de realce são, por sua vez, aqueles que preservam as características dos contornos da imagem
e atenuam ou eliminam as baixas frequências, realçando as altas frequências. Esses filtros destacam
características como bordas, linhas, curvas e manchas e tornam mais nítidas as transições entre
regiões diferentes (como os contornos), realçando o contraste. Um exemplo de filtro de realce é o
Sobel.
O filtro Sobel calcula o gradiente da intensidade da imagem em cada ponto, dando a direção da
maior variação de claro para escuro e a quantidade de variação nessa direção.
Assim, obtém-se uma noção de como varia a luminosidade em cada ponto, de forma mais suave
ou abrupta. Com isto consegue-se estimar a presença de uma transição claro-escuro e de qual sua
(a) (b)
Figura 2.7: Exemplo de aplicação do filtro Sobel. (a) Imagem original; (b) Resultado da aplicação do filtro
Sobel.
2.4. FILTRAGEM DE RUÍDO 18
orientação. Como as variações claro-escuro intensas correspondem a fronteiras bem definidas entre
objetos, obtém-se a detecção de contornos. As máscaras que devem ser aplicadas na imagem original
para aplicar o filtro Sobel são, na forma matricial:
2 3 2 3
1 2 1 1 0 1
6 7 6 7
Zh = 6
40 0 075 Zn = 6
4 2 0 2 7.
5
1 2 1 1 0 1
Filtros Não-Lineares
Filtro não-linear é um filtro que não pode ser representado como uma soma ponderada de pixels
(Gonzalez e Woods, 2008). Filtros não-lineares mais comuns são os de mediana. Dentro dos filtros
não lineares, destacam-se também algumas transformações, como a dilatação e a erosão. Em geral,
eles são aplicados para corrigir e diminuir ao máximo os erros de segmentação e ruídos na morfologia
do objeto, completando pequenos buracos e eliminando regiões isoladas. Por isso, são chamados de
filtros morfológicos. Ambos atuam nas bordas internas e externas dos objetos e utilizam um elemento
estruturante, como mostrado na Figura 2.8 que percorre a imagem para realizar a operação.
Filtros morfológicos utilizam elementos estruturantes, uma imagem binária pequena, ou seja, uma
matriz de pixels pequenos, cada um com um valor de zero e possuem as seguintes propriedades: (i)
as dimensões da matriz especificam o tamanho do elemento de estruturação; (ii) o padrão de uns
e zeros especifica a forma do elemento de estruturação; (iii) a origem do elemento de estruturação
é geralmente um dos seus pixels, embora geralmente a origem possa estar fora do elemento de
estruturação (Gonzalez e Woods, 2008).
N4 N8
(a) (b)
Figura 2.8: Principais formas de elementos estruturantes na morfologia matemática. (a) Vizinhança 4 (N4 );
(b) Vizinhança 8 (N8 ).
2.4. FILTRAGEM DE RUÍDO 19
Figura 2.9: Exemplo de aplicação de filtros morfológicos. (a) Dilatação; (b) Erosão; (c) Abertura; (d)
Dilatação. Fonte: Gonzalez e Woods (2008).
Considerando uma imagem binária, a dilatação insere informações à vizinhança de um ponto através
de um elemento estruturante de forma concêntrica, que se desloca sobre um conjunto de pontos,
dilatando sua vizinhança numa proporção que varia conforme suas dimensões.
Na dilatação, se um ponto de referência faz parte do fundo e tem um vizinho que faz parte do objeto,
então este também passa a fazer parte do objeto, como ilustrado na Figura 2.9a. Esta operação
é utilizada principalmente para preencher intervalos e lacunas indesejáveis na imagem (Gonzalez e
Woods, 2008).
A sequência de aplicação dos filtros de dilatação e de erosão determina uma operação de abertura
ou de fechamento:
• A abertura aplica uma erosão seguida de uma dilatação na imagem. Esta sequência de
operações visa eliminar pequenos ruídos na imagem e abrir lacunas em regiões de fraca conexão
entre objetos, através da erosão, e posteriormente tenta restaurar as dimensões reais de objetos
2.5. ATRIBUTOS HUMANOS 20
da imagem através da dilatação. Os ruídos e fracas conexões eliminados com a erosão não
retornam à imagem após a dilatação, como pode ser observado na Figura 2.9c (Gonzalez e
Woods, 2008).
O problema de contar pessoas em uma imagem é uma instância de um problema mais geral, o de
contar objetos (Pádua, 2002). Para tanto, o ideal seria criar um modelo robusto para pessoas em
movimento, o que tornaria mais fácil a identificação e o rastreamento delas ao longo da imagem.
Pessoas, no entanto, constituem objetos complexos que se apresentam em dimensões variadas e que
se deformam aos se deslocarem: a forma de uma pessoa na imagem muda constantemente devido
ao movimento com as pernas, braços e cabeça. Esses fatores tornam difícil criar um modelo para
representar pessoas.
Para minimizar os problemas causados pelas dificuldades apontadas, nesta Seção definem-se quatro
características de pessoas, quais sejam:
• Altura média.
• Velocidade média.
2.5. ATRIBUTOS HUMANOS 21
Para que se obtenha um modelo simplificado do humano médio, é necessário definir suas dimensões,
assim como é feito na engenharia, arquitetura e no desenho industrial.
Informações obtidas do HCManual (2000) sugerem o uso de 0,60m para largura entre ombros de
um homem adulto e de 0,50m para profundidade do tórax, como uma elipse envolvendo o corpo
humano.
Como a altura média humana varia muito com o país, adotou-se a altura média de um homem adulto
no Brasil como sendo 1,70m, baseando-se em senso realizado entre 2008 e 2009 (IBGE, 2008).
A velocidade com que os humanos caminham em áreas urbanas sofre influência de diversos fatores,
como: a carga que carregam, sua idade e gênero, o ambiente por onde caminham, o calçado utilizado
e também a quantidade de pessoas que transitam no mesmo local.
0,5m 0,6m
1,70m 1,70m
Estudos (HCManual, 2000) sugerem 1,219 m/s como velocidade normal para pessoas em áreas
urbanas. Pesquisas também apontam que humanos mais velhos caminham mais lentamente que
os mais jovens e que mulheres, em geral caminham com velocidade inferior à do homem, entre
0,762m/s e 0,991m/s. Existem diversos outros fatores além dos apresentados que influenciam na
velocidade de uma pessoa, devendo ser feita uma análise mais bem elaborada do movimento em
locais específicos.
3 | Revisão Bibliográfica
A literatura sobre técnicas de contagem de pessoas abrange diversos tipos de soluções, tais como
aquelas baseadas no uso de câmera de vídeo, sensores fotoelétricos e sensores de pressão (Pádua
et al., 2003), como ilustrado na Figura 3.1. Entretanto, tem-se observado a crescente proposição
de abordagens baseadas em técnicas de análise de imagens da cena onde se deseja estimar o fluxo
de pessoas, sobretudo porque essas abordagens tem se mostrado mais eficientes que os sistemas
baseados em técnicas que utilizam somente sensor fotoelétrico ou de pressão (Kim et al., 2002). Tais
abordagens fazem uso de conceitos e ferramentas computacionais comumente associadas à área de
pesquisa conhecida como Visão Computacional. O presente trabalho propõe uma abordagem para
contagem de pessoas que se enquadra no conjunto que utiliza câmeras de vídeo para capturar as
imagens da área que se deseja estimar o fluxo de pessoas.
A seguir, será feita uma breve revisão crítica de alguns dos principais trabalhos encontrados na
literatura que se enquadram especificamente no grupo que se baseia em câmeras de vídeo.
4*45&."41&426*4"%041"3"$0/5"(&.%&1&440"4
Figura 3.1: Principais grupos de técnicas aplicadas ao problema de contagem de pessoas. Fonte: Pádua
et al. (2003).
23
3.1. MÉTODOS BASEADOS EM VISÃO ESTÉREO 24
Filipov et al. (2012) apresentam um método rápido e preciso para detecção de cabeças de humanos
em imagens de profundidade (range images), obtidas por uma câmera estéreo que monitora cena
vista de cima (zenital). Os autores mostram, também, como um grid estático de pontos medidos
(chamados por eles de Pylon Grid) pode superar técnica a técnica de busca local da Subida da encosta
(Hill Climbing) e como um filtro de medianas rápido pode ser utilizado para pré-processamento
efetivo dos dados de profundidade. O algoritmo Pylon Grid detecta todos os mínimos locais na
imagem de profundidade e possui complexidade linear em relação ao número de pontos medidos.
Um pré-requisito importante para aplicação do algoritmo Pylon Grid para se detectar as cabeças é que
haja relação um-para-um entre as cabeças na cena e os mínimos locais na imagem de profundidade, o
que é alcançado em uma fase de pré-processamento das imagens, em que uma projeção ortográfica,
uma convexação e uma filtragem de ruído são feitas sobre os dados de profundidade. Os testes
foram feitos com cenas movimentadas, onde vários grupos densos de até seis pessoas moviam-
se em direções aleatórias e realizavam contato físico. Desencontros entre cabeças das pessoas e
mínimos locais ocorreram em 8% das situações, levando a detecções incorretas. Tais erros, em
geral, ocorreram em situações em que pessoas levantaram as mãos ou os braços ou estavam com
mochilas e acessórios muito grandes.
van Oosterhout et al. (2011) propõem um método de detecção de cabeças, usando dados providos
por uma câmera estéreo. Para possibilitar o uso de câmeras estéreo, a técnica proposta é feita (1)
para ser aplicada em dados de profundidade, e (2) para ser robusta no que diz respeito ao ruído e
variação em configurações do ambiente. O método consiste na seleção de primeiro plano, detecção
de cabeças, separação de blobs (contorno ao redor cada objeto detectado) e, para melhorar os
resultados no caso de erros de detecção, incorpora um mecanismo para o rastreamento de pessoas.
Os resultados mostram que o método proposto tem um bom desempenho em testes de precisão e
revocação, atingindo taxas de acerto de 96%, fornecendo uma base sólida para a detecção de cabeça
em aplicações que utilizam câmeras estéreo.
Em Beymer e Konolige (1999), é apresentada uma abordagem baseada em Visão Estéreo para
rastrear e contar pessoas, podendo determinar o volume de objetos no primeiro plano da cena. A
técnica se baseia em detectar, na imagem, volumes que correspondam à cabeça e tronco de uma
pessoa adulta e rastreá-los através da região monitorada, utilizando um modelo de filtro de Gauss
e filtro de Kalman. A utilização de chapéu, mochila, ou qualquer outro acessório pode afetar a
3.2. MÉTODOS QUE UTILIZAM RASTREAMENTO 25
Em Antic et al. (2009), apresenta-se uma abordagem eficiente e confiável para segmentação au-
tomática de pessoas, rastreamento e contagem, projetado para um sistema montado com a cena
vista de cima (zenital). Após a subtração do fundo da cena, o método de clusterização K-Means
é utilizado para permitir a segmentação de pessoas sozinhas no cenário. O número de pessoas na
cena é aproximado pelo número máximo de clusters que pertencem a um limite com separação entre
clusters. Resultados experimentais sugerem que o método proposto é capaz de alcançar resultados
aceitáveis em termos de precisão de contagem e velocidade de execução.
gerado envolvendo um objeto detectado. Informações sobre tamanho e coordenadas de cada com-
ponente são utilizadas para computar o número de pessoas na cena. O sistema mostrou eficiência
no monitoramento do fluxo de pedestres e veículos em cruzamentos e aplicações em prevenção de
acidentes de trânsito.
Em Kim et al. (2002), descreve-se um sistema para contagem de pessoas que seguem fluxos unidi-
recionais, usando uma única câmera fixa a uma porta de um edifício. A câmera de vídeo é colocada
ortogonalmente ao piso para minimizar o problema de oclusão. O método consiste em detectar
objetos na área monitorada pela subtração do plano de fundo da cena, binarização da imagem-
diferença e aplicação de filtros de erosão e dilatação, para eliminar ruído. Utiliza a técnica Convex
Hull Approximation para analisar uma área de fronteira retangular, em torno da imagem de cada
pessoa na cena atual. Estima a imagem na área do retângulo na próxima cena e verifica se a pessoa
está na área analisada, permitindo rastrear pessoas mesmo quando suas imagens são parcialmente
sobrepostas. A atualização dinâmica do plano de fundo, quando não há objeto movendo-se na cena,
minimiza problemas de variação de iluminação. Experimentos mostram que o sistema é eficiente no
rastreamento e na contagem de pessoas, obtendo acerto de 96% a uma taxa de amostragem de 10
quadros por segundo.
Em Jeon e Rybski (2006) propõe-se um sistema de contagem de pessoas presentes em uma sala.
Em um dado intervalo de tempo as posições das faces de pessoas são localizadas, por um detector
de face, que baseado em dados estatísticos determina o número de pessoas presentes. Experimentos
mostraram que a presença de ruído na detecção das faces resulta em falsas faces, e mesmo uma
imagem de face real com características diferentes pode ser confundida com um ruído, o que torna
as análises das imagens muito difíceis.
3.4. MÉTODOS BASEADOS EM ANÁLISE DE IMAGENS DE VIGILÂNCIA 27
Em Pádua et al. (2003) é proposto um sistema de visão baseado no cálculo de campos de Fluxo
Ótico para se estimar os movimentos de pedestres presentes na cena monitorada e pela comparação
de suas dimensões corporais, tais como distância entre ombros e profundidade do tórax, com os
correspondentes valores médios usados por engenheiros de transporte. O sistema proposto é bastante
susceptível às variações de luminosidade da cena, é incapaz de rastrear os movimentos das pessoas
e possui sua aplicação restrita a fluxos unidirecionais.
Hou e Pang (2011) desenvolvem um método eficaz para estimar o número de pessoas e localizar
cada indivíduo em imagens de baixa resolução, obtidas através de vídeos de vigilância, com cenas
complexas. O método inclui etapas de subtração de fundo e um método de Maximização da
Expectativa (EM) para localizar pessoas em uma cena de baixa resolução. Os métodos desenvolvidos
foram validados com base em um vídeo de quatro horas, com o número de pessoas na cena variando
de 36 a 222. O melhor resultado resultado obtido apresentou erro médio de 10% na estimativa do
número de pessoas ao longo de 51 casos de teste.
Em Zeng e Ma (2010), propõe-se um método robusto para detecção de cabeça e ombros visando
a contagem de pessoas. Esse método combina o HOG (Histogramas de Gradientes Orientados)
com LBP (Padrão Local Binário) como um conjunto de características para aumentar a robustez
da detecção da cabeça e dos ombros. Para melhorar o desempenho da detecção, foi utilizado PCA
(Principal Components Analysis) para reduzir o conjunto de características HOG-LBP. Para estimar
o fluxo de pessoas, o detector também foi incorporado em um filtro de partículas de rastreamento, o
que aumentou a precisão do método, detectando e rastreando com sucesso 95% dos alvos. Além de
necessitar realizar um treinamento para conseguir detectar as cabeças e ombros, o método necessita
de muito poder computacional e consegue uma taxa relativamente baixa de quadros: 12 quadros/s.
Em Kong et al. (2005) é apresentado um sistema que utiliza redes neurais artificiais para contar
pedestres em uma multidão utilizando uma única câmera. O método é baseado na subtração do plano
de fundo, em seguida detecção do contorno dos objetos e histogramas com o tamanho dos blobs. O
sistema é treinado antes de entrar em operação num campo de visão fixa, para detectar e estimar o
número de pedestres, na área delimitada pelo campo de visão da câmera. Experimentos preparados
em diferentes locais e com câmeras diferentes demonstraram resultados corretos compatíveis com a
3.5. CONSIDERAÇÕES FINAIS 28
Este trabalho teve sua metodologia baseada nos conceitos apresentados em Silva (2009), que apre-
sentou desempenho comparável aos demais da bibliografia e que foi desenvolvido na mesma institui-
ção em que este trabalho foi desenvolvido. A escolha foi feita devido ao fato de que nesse trabalho
se lê:
O sistema projetado neste trabalho, diferentemente daquele proposto em Silva (2009), foi concebido
para operar de forma distribuída e embarcada em plataformas móveis ou nós sensores, tais como
smartphones, configurando ao sistema características inovadoras que aumentam sua aplicabilidade,
3.5. CONSIDERAÇÕES FINAIS 29
escalabilidade e eficácia. Além disso, as duas primeiras direções futuras sugeridas por Silva (2009)
foram devidamente implementadas neste trabalho.
4 | Sistema de Contagem de Pessoas
em Tempo Real
Câmera
rta
Po
t1
t2
t3
do to
e r ior men
i
Int elec
t ab
Es
30
4.1. VISÃO GERAL DO SISTEMA 31
Para o funcionamento correto do sistema de contagem é necessário que as pessoas sejam detectadas
em uma cena de interesse, representada por uma sequência de imagens obtidas através de uma
câmera de vídeo. A Figura 4.1 mostra uma visão geral da configuração da cena de interesse. O
sistema desenvolvido foi concebido para operar em ambientes internos, fechados e nos quais o fluxo
de pessoas ocorre em uma direção predominante. Assim, as imagens dessa sequência devem ser
obtidas internamente ao estabelecimento, de forma que a câmera que realiza a captura esteja após
sua porta, instalada em seu teto ortogonalmente à cena, e de modo que as pessoas que entram no
estabelecimento realizem o movimento verticalmente na sequência, da base para o topo da imagem
e que pessoas que o deixam realizem o movimento no sentido contrário.
Nas imagens obtidas, a detecção das pessoas é feita relacionando características físicas humanas
previamente definidas no sistema com as características das formas de objetos segmentados na
imagem da cena. Para efetuar essa relação, é necessário converter as dimensões dessas características
físicas humanas para unidades comparáveis às dos objetos segmentados, i.e. pixels. Isso é feito
configurando no sistema o ângulo do campo de visão da câmera e a altura na qual ela se encontra
instalada.
Variações bruscas na iluminação da cena de interesse, bem como a presença de superfícies espe-
culares, reflexos e sombras representam ruídos no sistema e afetam diretamente a identificação de
objetos da cena, uma vez que influenciam na segmentação da imagem. Tais ruídos podem ser
minimizados utilizando filtros sobre a imagem.
De forma geral, a metodologia proposta neste trabalho para contagem de pessoas segue quatro
etapas: (i) detecção de novos objetos; (ii) contagem de pessoas; (iii) estimativa de sentidos de
movimentação e (iv) agregação de dados de contagem, sendo que tais etapas são estruturadas sob
a forma de diferentes algoritmos. Esse processo encontra-se descrito na Figura 4.2.
Basicamente, o sistema proposto inicia o processo de contagem a partir da captura da imagem atual
obtida pela câmera. Esta imagem se torna o plano de fundo da cena, havendo ou não pessoas
na mesma. Para os demais quadros capturados, aplica-se o algoritmo de Subtração Adaptativa de
Plano de Fundo proposto na Seção 4.2.3, que utiliza os fundamentos do NCC, como descrito na
Seção 2.3.2. Os resultados deste algoritmo, por sua vez, apoiam dois algoritmos específicos: um
algoritmo para subtração adaptativa do plano de fundo da cena e um algoritmo de segmentação de
objetos na imagem.
4.1. VISÃO GERAL DO SISTEMA 32
Por meio do algoritmo de Subtração Adaptativa de Plano de Fundo (ABS - Adaptive Background
Subtraction) da cena, atualiza-se o modelo de plano de fundo gradativamente com os valores dos
Buffer de plano de
Subtração
fundo
Buffer de primeiro
ABS
plano
Segmentação
Imagem segmentada
ii iii
Estimativa
Contagem
de Sentido
iv
Agregação
Registro de
resultados
Figura 4.2: Etapas do processo de contagem de pessoas. Retângulos denotam dados (entrada ou saída) e
losangos, operações. Legenda: (i) Detecção de novos objetos; (ii) contagem de pessoas; (iii) estimativa de
sentidos de movimentação e (iv) agregação de dados de contagem.
4.2. DETECÇÃO DE NOVOS OBJETOS 33
pixels dos quadros a cada instante de tempo. Os pixels do quadro atual mais bem-correlacionados
com o plano de fundo são atualizados mais rapidamente no plano de fundo. Assim, pequenas
variações luminosas que não produzam alteração significativa no valor do pixel são consideradas
mais rapidamente como parte do plano de fundo.
O algoritmo para segmentação de objetos na imagem percorre todas as linhas da matriz gerada pelo
algoritmo de Subtração Adaptativa de Plano de Fundo transformando em pulsos os valores de pixels
não correlacionados ao plano de fundo. Em seguida, um algoritmo específico para a realização da
contagem de pessoas é aplicado, verificando se os pulsos presentes nas linhas correspondem a uma
ou mais pessoas, tomando por base a largura média entre os ombros de um humano.
Nas Seções a seguir, são descritas de forma detalhada as etapas ilustradas na Figura 4.2, que
compõem a metodologia proposta neste trabalho para contagem de pessoas.
O processo de contagem de pessoas se inicia com a captura de imagens pela câmera utilizada. Como
o sistema parte do pressuposto que o algoritmo de contagem está sendo executado em dispositivos
móveis, tais como smartphones, a fonte de imagens é obtida diretamente da câmera de vídeo digital
presente nesses aparelhos.
Esses dispositivos móveis são instalados ortogonalmente à cena de interesse, capturando a imagem
sobre as pessoas. O posicionamento da câmera na posição ortogonal minimiza o problema da
oclusão de pessoas na cena. A Figura 4.1, apresentada na página 28, mostra como a câmera deve
ser instalada na cena de interesse.
4.2. DETECÇÃO DE NOVOS OBJETOS 34
É importante que a câmera instalada não sofra trepidações nem se desloque ao longo do tempo. O
algoritmo é robusto suficiente para permitir que a câmera ajuste automaticamente sua exposição e
foco, minimizando as alterações que tais ajustes possam trazer à imagem nas próximas etapas do
algoritmo.
Obtidos os quadros que representam a cena de interesse, a próxima etapa do algoritmo consiste em
encontrar quais pixels do quadro atual são diferentes do plano de fundo. Para tanto, o procedi-
mento adotado neste trabalho para a subtração de imagens se baseia na utilização do algoritmo de
Correlação Cruzada Normalizada (NCC) combinado com um Fator de Similaridade. O NCC, como
descrito em Grest et al. (2003) e aprimorado em Jacques et al. (2005), é uma técnica que apresenta
bons resultados com custo computacional relativamente baixo (Silva, 2009). Sua fundamentação
teórica foi apresentada na Seção 2.3.2 deste texto.
A técnica de subtração de imagens utilizada neste trabalho presume que há um plano de fundo
na memória e que tal plano é atualizado automaticamente à medida que itens são incorporados ou
descartados permanentemente na cena. O procedimento realizado para se atualizar o plano de fundo
é descrito na Seção 4.2.3.
A sequência de operações realizada neste passo se encontra esquematizada na Figura 4.3. Armazena-
se em um buffer de entrada a imagem capturada. O buffer de plano de fundo, de mesmas dimensões
do buffer de entrada, é constantemente atualizado com o plano de fundo da cena de interesse.
Cada pixel do buffer de entrada é comparado com seu correspondente no buffer de plano de fundo
utilizando o algoritmo de subtração de imagens. A saída desse algoritmo é um número entre 0 e 1,
em que: 0 indica que os pixels comparados são completamente diferentes e 1 indica que os pixels
são idênticos. Após o processamento de todos os pixels do buffer de entrada, obtém se um buffer
de saída, chamado buffer de primeiro plano, contendo todas as saídas obtidas.
Buffer de plano de
Subtração
fundo
Buffer de primeiro
ABS
plano
Segmentação
NCC
Com tais parâmetros definidos, calcula-se o parâmetro PN CC do pixel (i, j), como descrito na
Seção 2.3.2:
ER (i, j)
PN CC (i, j) = ,
EB (i, j)ET ij
onde
N
X N
X
ER (i, j) = B(i + n, j + m)Tij (n, m),
n= N m= N
v
u N N
uX X
EB (i, j) = t B(i + n, j + m)2 ,
n= N m= N
N
X N
X
ET ij (i, j) = Tij (n, m)2 .
n= N m= N
4.2. DETECÇÃO DE NOVOS OBJETOS 36
(
PN CC (i, j), se PN CC (i, j) lN CC
PN CC (i, j) = .
0, se PN CC (i, j) < lN CC
Dessa forma, na saída da função PN CC (i, j), a correlação entre os pixels de It e B calculada
em PN CC (i, j) será levada em conta apenas se for maior que um limiar lN CC . Isso faz com que
pixels de It que possuem seu PN CC (i, j) com valores de 0 até um certo limiar lN CC sejam sempre
considerados totalmente não correlacionados ao seu pixel correspondente no plano de fundo. Se
esse limiar lN CC for muito baixo, qualquer pequena variação de iluminação da cena vai gerar ruídos
nas demais fases do algoritmo. Analogamente, caso lN CC seja muito alto, apenas variações muito
fortes entre as imagens serão consideradas, podendo fazer com que alguns objetos em movimento
não sejam detectados.
Uma grande vantagem do uso do NCC para se calcular a subtração de imagens é que as sombras
dos objetos que se movem são removidas automaticamente, pelo fato de os pixels correspondentes
às sombras na imagem It representarem apenas uma variação na luminância do pixel correspondente
na imagem B, como descrito na Seção 2.3.2.
Outra característica importante do NCC é que sua saída é sempre um número entre 0 e 1, pelo fato
de o algoritmo realizar uma normalização em suas operações. Portanto, se a apenas o parâmetro
NCC for considerado na subtração da imagem, dependendo da qualidade e das configurações da
câmera utilizada para a captura, situações de escuridão ou claridade intensas podem gerar muitos
ruídos na saída.
Suponha uma cena escura. Considere duas imagens It e B em tons de cinza nas Figuras 4.4a
e 4.4b. Essas imagens representam, respectivamente, a imagem capturada pela câmera em um
dado momento t e o plano de fundo dessa cena de interesse. Essas imagens são muito semelhantes,
pois não há iluminação alguma na cena. Em teoria, ambas deveriam ser equivalentes, porém,
devido aos ruídos causados pela câmera e, também, à variação de sua exposição em situações de
escuridão intensa em busca da obtenção de mais luz, há pequenas variações nos tons de preto da
imagem obtida a cada instante, e, portanto as imagens It são sempre semelhantes, porém não são
equivalentes.
Considere agora uma representação alternativa de ambas as imagens, em que os tons de cinza
representados por elas são normalizados na escala de 0 a 255, como mostrados nas Figuras 4.4c
4.2. DETECÇÃO DE NOVOS OBJETOS 37
e 4.4d. Verifica-se que as imagens possuem diversas diferenças, apesar de as imagens originais serem
muito semelhantes.
Considere, ainda, uma representação em forma de gráfico, em que o eixo das abcissas representa os
índices dos 50 primeiros pixels de cada imagem, enquanto o eixo das ordenadas representa o valor
de intensidade desses pixels. A Figura 4.4e retrata essa representação.
(a) (b)
(c) (d)
(e) (f)
Figura 4.4: Problema no uso do NCC. (a) Imagem de entrada It . (b) Imagem do plano de fundo B. (c)
Imagem de entrada com cores normalizadas. (d) Imagem do plano de fundo com cores normalizadas. (e)
50 primeiros pixels de ambas as imagens representados em 8 bits. (f) Gráfico da Figura (e) com escala
adequada para visualização da diferença entre os pixels.
4.2. DETECÇÃO DE NOVOS OBJETOS 38
Na escala das 256 possibilidades de valores de intensidade que tais pixels podem assumir, esses valores
de intensidade continuam muito semelhantes. Porém, como todos esses valores de intensidade não
passam de 5, ampliando esse gráfico, como é feito na Figura 4.4f, é possível observar que, na verdade,
há uma grande diferença entre os valores de intensidade em um pequeno espaço de valores. Dessa
forma, ao calcular o NCC com as imagens It e B, obtém-se que as imagens não são semelhantes,
enquanto, na realidade, elas são semelhantes. Essa característica foi apontada para imagens muito
escuras, com intensidade média dos pixels próxima de 0, mas ela ocorre também em outras situações,
como, por exemplo, em cenas em que a luminosidade é intensa.
Fator de similaridade
Apesar de uma das condições iniciais ser a garantia da iluminação suficiente na cena durante o
funcionamento do sistema, alguns mecanismos foram criados para procurar manter sua robustez em
casos que fogem a tais condições. Um desses mecanismos é o Fator de Similaridade, criado para
minimizar o problema descrito ao final da última sessão, em que duas imagens semelhantes eram
classificadas como não semelhantes.
O Fator de Similaridade consiste em uma técnica proposta neste trabalho para gerar um segundo
parâmetro de semelhança para cada pixel, com o objetivo de compará-lo ao NCC ao final do processo
de subtração de imagens.
Considere as matrizes It e B, como descrito na Seção 2.3.2. Considere associadas a cada pixel
(i, j) dessas matrizes, duas matrizes ISij e BSij , de dimensões (2N + 1) ⇥ (2N + 1), tal que
ISij (n, m) = It (i + n, j + m) e BSij (n, m) = B(i + n, j + m), para N n N, N m N .
Ou seja, ISij corresponde a uma vizinhança do pixel (i, j) na imagem capturada e BSij corresponde
a uma vizinhança do pixel (i, j) no plano de fundo da cena. O Fator de Similaridade FS proposto é
calculado da seguinte forma:
em que:
sendo:
(
FS (i, j), se FS (i, j) LF S
FS (i, j) = . (4.3)
0, se FS (i, j) < LFS
Dessa forma, na saída da função FS (i, j) a nota atribuída à similaridade entre os pixels de It e B
calculada em FS (i, j) será levada em conta apenas se for maior que um limiar LFS .
Lembrando que, na matriz S, estão representados como mais próximos de 1 os pixels mais similares
ao plano de fundo (objetos já existentes) e como mais próximos de 0 aqueles que são considerados
partes de objetos novos na cena. Como nas próximas etapas deseja-se obter a representação do que
há de novo na cena, uma operação simbólica é feita na matriz S para efeito de padronização:
A matriz S finalmente é copiada para o buffer de primeiro plano, que será utilizado nos próximos
passos do algoritmo.
4.2. DETECÇÃO DE NOVOS OBJETOS 40
Para que o sistema não tenha sua robustez enfraquecida por esses fatores, criou-se um algoritmo
de atualização automática de plano de fundo, aqui chamado de Subtração Adaptativa de Plano de
Fundo – ABS. A técnica consiste em sobrescrever no buffer de plano de fundo mais rapidamente os
valores de intensidade dos pixels da imagem capturada que são similares aos do plano de fundo e
mais lentamente os menos semelhantes. Dessa forma, um objeto removido da cena de interesse vai
se esmaecendo no buffer de plano de fundo ao longo do tempo. Analogamente, objetos incorporados
à cena de interesse são gradativamente adicionados a este buffer.
sendo ⌧ um número real entre 0 e 1 que representa a velocidade de adaptação da imagem capturada
ao plano de fundo. Se ⌧ for muito próximo de 0, a imagem do plano de fundo será alterada muito
lentamente, fazendo com que objetos incorporados sejam considerados como ruído durante um
t1 t2 t3
t4 t5 t6
intervalo de tempo maior, por exemplo. Se ⌧ for muito próximo de 1, objetos móveis necessários nas
próximas etapas do algoritmo serão considerados parte do plano de fundo e não serão detectados.
4.2.4 Segmentação
Após a subtração de imagens, obtém-se uma representação daquilo que há de novo na cena em
forma de matriz, aqui chamada de buffer de primeiro plano . Ao passarem pela cena de interesse, os
objetos móveis deixam picos nas linhas do buffer de primeiro plano, que podem denotar a presença
Captura
Primeira
Imagem
Captura
Próxima
Imagem
Buffer de Entrada
Calcula* Novo
Plano de Fundo
de uma pessoa. Uma linha típica dessa matriz em um determinado instante encontra-se representada
na Figura 4.8a.
(a)
Ts
(b)
Figura 4.8: Aspecto do sinal desejado ao final do algoritmo de segmentação. Suponha os valores das
intensidades de uma linha do buffer de primeiro plano como aqueles representados em (a). Se a média de
um pulso for maior que um limiar Ts , o pulso deve ser possuir o aspecto da figura (b) na saída do algoritmo
de segmentação.
O objetivo dessa etapa é criar uma representação alternativa ao buffer de primeiro plano, classificando
os pixels, e criando, portanto, uma espécie de grupo de pixels que possuam a mesma característica
– a não similaridade ao plano de fundo, no caso – a qual será utilizada nos próximos passos do
algoritmo para determinar se o objeto detectado corresponde a uma pessoa ou não. Na literatura,
esse processo é comumente chamado de segmentação.
No caso deste trabalho, atribui-se nível lógico alto a cada um dos pixels que constituam um novo
objeto e nível lógico baixo a cada pixel que for considerado parte do plano de fundo, fazendo com
que o sinal da Figura 4.8a se transforme no sinal da Figura 4.8b.
4.2. DETECÇÃO DE NOVOS OBJETOS 44
Como foi definido que os objetos os quais se quer contar – no caso, as pessoas – sempre “cruzarão”
a imagem capturada na direção vertical, se deslocando do topo para a base ou da base para o topo,
em suas próximas fases, para estimar a quantidade total de pessoas na cena, o algoritmo verifica as
informações de contagem presentes em cada uma das linhas da imagem segmentada. Dessa forma,
a saída da etapa atual do algoritmo consiste em um vetor de linhas segmentadas.
A segmentação proposta é composta por duas etapas: correção do sinal e filtragem de ruído. A etapa
de correção do sinal é necessária para que flutuações no valor do sinal, como as que ocorrem nos
picos mais à esquerda e mais à direita da Figura 4.8, não influenciem no resultado da segmentação.
O algoritmo de segmentação criado é composto por quatro passos, sendo os dois primeiros passos
referentes à correção do sinal e os dois últimos correspondentes à filtragem de ruído:
Passo 1 – Caminhar do índice menor ao índice maior de cada linha, calculando-se o módulo da
diferença entre o valor da coluna atual do buffer de primeiro plano e a média de valores das colunas
anteriores desse buffer. O valor calculado é atribuído à linha e coluna correspondente na imagem
segmentada, caso ele seja maior que a variável que representa o Limiar de segmentação.
Passo 2 – Caminhar do índice maior ao índice menor de cada linha, calculando-se o módulo da
diferença entre o valor da coluna atual do buffer de primeiro plano e a média de valores das colunas
anteriores desse buffer. Caso o valor calculado seja maior que o Limiar de segmentação e menor que o
valor calculado no Passo 1 para aquela posição, este valor é atribuído à linha e coluna correspondente
na imagem segmentada. Ao final deste passo, o sinal tem o aspecto da Figura 4.9.
Passo 4 – Realizar uma operação de fechamento sobre a imagem representada pela matriz O,
conforme descrito na Seção 2.4.1 (Filtros Não-Lineares).
// Passo 3
28 imagemSegmentadaDiscretizada teto(imagemSegmentada);
// Passo 4
29 realizarFechamento(imagemSegmentadaDiscretizada);
4.3. CONTAGEM DE PESSOAS 47
Feita a segmentação da imagem, a etapa atual do algoritmo consiste em contar, para cada uma de
suas linhas, quantos pulsos detectados num determinado instante correspondem a pessoas. Ao fim
desta etapa, obtém-se um vetor contendo a contagem das possíveis pessoas presentes na cena atual
por linha e um segundo vetor contendo a contagem acumulada de pessoas por linha desde o início
da execução do algoritmo.
Este trabalho visa a contar pessoas na sequência de imagens capturadas, procurando descartar outros
objetos que eventualmente se movam na cena. Assim como definido na Seção 2.5, consideram-se
pessoas como objetos rígidos que possuem 4 características bem definidas:
• Altura média.
• Velocidade média.
De posse dos valores do ângulo correspondente ao campo de visão da câmera (Field of View - fov),
representado pela variável ✓, da altura h em metros na qual ela se encontra afixada, é possível
calcular sua janela de visualização ! em metros:
! = 2h tan(✓/2). (4.8)
A largura média humana em pixels m é calculada a partir da largura média lm em metros entre os
ombros humanos, da janela de visualização ! e da largura do quadro capturado w em pixels:
wlm
m = . (4.9)
!
4.3. CONTAGEM DE PESSOAS 48
hm
Passo 1 – determina-se o valor em pixels da largura média entre os ombros de um humano, conforme
calculado na Seção 4.3.1.
Passo 2 – obtém-se o somatório da largura dos pulsos de cada linha e estima-se quantos humanos
devem estar presentes em cada uma delas.
Passo 3 - compara-se a contagem de pessoas obtida em cada linha da cena atual com a da cena
anterior. Caso tenha ocorrido a mudança desse valor, significa que a pessoa que estava naquela
linha no quadro anterior se moveu e, desta forma, o valor da diferença de contagem entre os dois
quadros é acumulado em um vetor que concentra as contagens de todas as linhas desde o início do
algoritmo.
4.3. CONTAGEM DE PESSOAS 49
• fator: fator de detecção mínima de uma pessoa. A multiplicação deste fator pela largura
média humana em pixels fornece a largura mínima em pixels que o pulso de uma linha deve
possuir, para que ele seja considerado como a presença de uma pessoa.
// Passo 3
18 se contadorLinha < vetorContagemAtual[linhaAtual] então
19 vetorContagemAcumulado[linhaAtual]
vetorContagemAcumulado[linhaAtual] + vetorContagemAtual[linhaAtual]
contadorLinha;
20 vetorContagemAtual[linhaAtual] contadorLinha;
4.3. CONTAGEM DE PESSOAS 51
Transformação
Sinal com Orificios Geométrica do Espaço do
Preenchidos Mundo para o Espaço da Linha
Filtro de
Limiar
Métricas no Sistema
de Coordenadas da
Linha
Sinal Binarizado
(Média µt(L) e desvio padrão σt(L))
Medição
de Segmentos Segmentos Menores
Contíguos no Sinal que
µt(L) - 2σ(L)
Comparação
dos Comprimentos com as Descarte
Comprimentos Métricas
dos Segmentos de
Linha
{ ℓ1, ℓ2, ℓ3 }
Segmentos Maiores que
Segmentação µt(L) + 2σ(L)
Segmentos Entre
Divisão em ℓn / µt(L)
µt(L) - 2σ(L)
Segmentos
e
µt(L) + 2σ(L)
Acúmulo da
Contagem da Linha Contagem
Figura 4.11: Diagrama que resume as funcionalidades da segmentação das imagens e da contagem por
linha.
4.4. ESTIMATIVA DE SENTIDOS DE MOVIMENTAÇÃO 52
Até a etapa atual do algoritmo, foram contabilizadas quantas prováveis pessoas existem atualmente
ou já existiram no quadro, mas não o valor da proporção dessa contagem que representa pessoas
que entraram ou saíram da cena (subiram ou desceram, na imagem capturada). A presente etapa
consiste em um mecanismo para possibilitar o cálculo dessa proporção após um intervalo de tempo.
O método descrito nesta etapa não utiliza o conceito de rastreamento e considera que as pessoas que
se movimentam na cena de interesse o fazem predominantemente em uma direção. Essa decisão,
que simplifica consideravelmente o problema de contagem, restringe o tipo de ambiente no qual
o sistema de contagem pode ser instalado: apenas ambientes internos e fechados. Dessa forma,
para atender a esta restrição, é recomendado que a cena de interesse compreenda a entrada de
um estabelecimento, por exemplo, em que, geralmente, o fluxo de pessoas ocorre apenas em uma
direção, mas em ambos os sentidos (entrando ou saindo pela porta).
Ao fim de um intervalo de tempo, o somatório de massa de pixels que se deslocou para cada sentido
será proporcional ao número de pessoas que entrou ou saiu da cena.
(a) (b)
(c) (d)
Figura 4.12: Deslocamento das massas de pixel. As áreas verdes das figuras (c) e (d) representam pessoas
que se deslocam para cima nas figuras (a) e (b), respectivamente; a massa vermelha, pessoas que se
deslocam para baixo.
O procedimento que realiza a Estimativa de Sentidos de Movimentação é feito para cada linha da
imagem e é composto de cinco passos:
Passo 1 – Obtêm-se os vetores da linha atual, da linha logo acima e da linha logo abaixo à atual na
imagem segmentada do quadro atual.
Passo 3 – Armazenam-se, em um vetor, os novos pixels da linha atual, detectados por meio da
aplicação de uma função “E” (conjunção lógica) entre cada elemento do vetor da linha atual do
quadro atual e do quadro anterior.
4.4. ESTIMATIVA DE SENTIDOS DE MOVIMENTAÇÃO 54
Passo 4 – Os pixels considerados como aqueles associados a objetos que desceram na sequência de
imagens (ou que saíram da cena de interesse) são considerados os novos pixels da linha atual que
estão presentes na linha acima e não estão presentes na linha abaixo. Essa quantidade de pixels é
somada à posição da linha atual em um vetor que acumula pixels que se deslocaram para baixo.
Passo 5 – Os pixels considerados como aqueles associados a objetos que subiram na imagem (ou que
entraram na cena de interesse) são considerados os novos pixels da linha atual que estão presentes
na linha abaixo e não estão presentes na linha acima. Essa quantidade de pixels é somada à posição
da linha atual em um vetor que acumula pixels que se deslocaram para cima.
Detecção de novos
pontos
desde o instante anterior
Novos pontos
na linha
Contagem
dos Pontos
Figura 4.13: Diagrama que ilustra a funcionalidade do algoritmo de estimativa do sentido de movimentação
por linha.
Passo 2 – Calcula-se a média dos valores de contagem presentes em cada linha, excluindo-se aquelas
que possuem valores discrepantes em relação às demais. O número de linhas a se desconsiderar é
um dos parâmetros da função de agregação.
Passo 3 – Calcula-se a proporção dos pixels associados aos objetos que subiram e aos objetos que
desceram na imagem em relação à massa total de pixels, representando, respectivamente, os objetos
que entraram e que saíram da cena ao longo do intervalo de tempo aferido.
Passo 4 – Somam-se os valores de contagem do quadro atual. O valor obtido é dividido pela profun-
didade média do corpo humano em pixels, obtida através de cálculos análogos aos da Seção 4.3.1.
Esse valor é uma estimativa de quantas pessoas estão presentes na cena atualmente.
Passo 5 – Um registro contendo os cálculos realizados nessa etapa é preenchido e retornado pela
função. A estrutura desse registro é apresentada no Algoritmo 4.
... ...
Ordenação
dos Valores
Média
Agregados
no Tempo
Lista Ordenada de
Valores de Contagem
Agregados no Tempo
Valores
Maiores Filtragem de
Proporção de Movimento
Descarte Valores
Para Baixo / Para Cima Discrepantes
Agregado no Tempo e no Espaço Valores
da Imagem Menores
Lista Ordenada de
Valores de Contagem
Agregados no Tempo,
Com Outliers Removidos
Valor de Contagem
Agregado no Tempo e
Multiplicação no Espaço da Imagem
das Porções
Média
Para Cima / Para
Baixo
Contagem de Contagem de
Pedestres Pedestres
Para Cima Para Baixo
Figura 4.14: Diagrama que ilustra a funcionalidade do algoritmo de agregação dos dados de contagem.
4.6. ARQUITETURA E OUTRAS CARACTERÍSTICAS DO SISTEMA 61
Todos os algoritmos utilizados neste trabalho foram projetados levando-se em consideração que
seriam executados em dispositivos móveis, que, em sua grande maioria, não dispõem de poder de
processamento elevado.
Como a complexidade computacional do sistema o torna adequado para ser utilizado em dispositivos
móveis, é interessante que a contagem de pessoas possa ser acompanhada em tempo real. Para que
isso possa ocorrer, o sistema deve enviar os resultados da contagem de pessoas para um servidor,
onde os dados ficarão gravados em um banco de dados para, por exemplo, acompanhamento do
fluxo de pessoas em um estabelecimento ou para a geração de relatórios estratégicos.
Uma possível estratégia de envio desses resultados seria remetê-los ao servidor sempre que o quadro
atual não apresentar pessoas (e isso é possível verificar através do campo contagemQuadroAtual
do registroResultado, obtido após a fase de agregação) e se houver dados acumulados não-nulos
disponíveis para envio. Após o envio para o servidor, o algoritmo pode zerar os valores acumulados
das variáveis e reiniciar a contagem. Esse ciclo é descrito na figura 4.15.
Considerando, mais uma vez, que o sistema será executado em dispositivos móveis, assume-se que
sua comunicação com o servidor se dará através de comunicação sem fio. Uma possível solução
de arquitetura que possibilitará funcionamento do sistema é sugerida na Figura 4.16. No bloco
(i) dessa Figura, dispositivos móveis realizam a contagem e se conectam com um roteador Wi-Fi,
que provê comunicação com um servidor na Web. No bloco (ii) dessa mesma Figura, um servidor
4.6. ARQUITETURA E OUTRAS CARACTERÍSTICAS DO SISTEMA 62
Realiza ciclo de
contagem de pessoas
Não Quadro
atual está
vazio?
Sim
Figura 4.15: Diagrama que ilustra quando os dados devem ser enviados para o servidor.
ii iii
Web
na Web provê um meio de comunicação com os dispositivos móveis e disponibiliza interface para
4.7. CONTAGEM DE PESSOAS EM PORTAS LARGAS 63
acessar relatórios gerados através dos resultados de contagem armazenados em seu banco de dados.
No bloco (iii), computadores com acesso à Web acessam os relatórios através de um navegador de
internet.
Os procedimentos descritos até a presente Seção são válidos para funcionamento em um único ponto
de contagem, em que as portas nas quais as pessoas passam possuem dimensão compatível com o
campo de visão da câmera do dispositivo móvel.
Em situações em que as portas onde os dispositivos estão instalados tem largura inferior à do campo
de visão de suas câmeras, o sistema funciona como esperado, desde que as condições impostas na
Seção 1.1 sejam satisfeitas.
Para casos em que o dispositivo esteja instalado em portas de largura superior a seu campo de visão,
propõe-se o seguinte método para agrupamento dos dados de contagem:
Passo 1 – Define-se a altura e a largura ⇡ da porta em que o dispositivo será instalado (observando
a restrição de que a altura não seja inferior a 2 metros e superior a 5 metros).
Passo 2 – Calcula-se o campo de visão da câmera em metros ⇢, dada a altura em que será realizada
a instalação.
Passo 3 – A quantidade de dispositivos que devem ser instalados sobre a porta será o número /⇡
arredondado para cima.
Passo 4 – A contagem reportada pelos dispositivos ao longo de um período é dividida pelo número
/⇡.
Para que o método proposto funcione conforme esperado, ao instalar os dispositivos sobre a porta, é
fundamental que eles estejam igualmente espaçados, mesmo que haja uma área de interseção entre
seus campos de visão.
4.8. CONSIDERAÇÕES FINAIS 64
Com a restrição da direção do fluxo de pessoas na cena, várias facilidades foram obtidas e os algo-
ritmos utilizados foram desenvolvidos com ordem de complexidade relativamente baixa, tornando-os
utilizáveis em dispositivos móveis. O sistema desenvolvido apresenta robustez em diversas situações,
como: pequenas variações na iluminação; transporte de objetos pelas pessoas; casais ou grupos de
pessoas se deslocando na cena.
5 | Resultados Experimentais
Para testar a metodologia proposta, um protótipo inicial foi desenvolvido para o sistema operacional
iOS 5, da empresa Apple, e instalado em um iPod Touch de Quarta Geração. Essa plataforma foi
escolhida devido ao ferramental de qualidade oferecido pela empresa para apoiar o desenvolvimento
de aplicativos e pelo fato de não haver, na época da escolha, um dispositivo que oferecesse o mesmo
poder computacional e especificações por um preço similar.
Visando a que o algoritmo de contagem de pessoas proposto fosse compatível com outros sistemas e
dispositivos, optou-se por utilizar a linguagem C (ANSI C) em seu desenvolvimento. Essa linguagem
é compatível com a Objective-C, necessária para se escrever aplicativos para iOS. Além disso, a
linguagem C é universalmente adotada, sendo compatível com uma gama de outros dispositivos,
sistemas e arquiteturas, tornando o algoritmo de contagem portável e minimizando recursos de
desenvolvimento, caso outro hardware ou sistema para realizar a contagem seja adotado.
O desenvolvimento por meio dessa linguagem, contudo, requer conhecer minuciosamente o ciclo de
vida das rotinas implementadas, pois todo o gerenciamento de memória passa a ficar a cargo do
desenvolvedor. Isso não acontece na linguagem Objective-C, uma vez que ela oferece mecanismos
como a Contagem Automática de Referências, que realiza todo o gerenciamento de apontadores e
desalocação de memória para o desenvolvedor. Dessa forma, para detectar eventuais vazamentos de
memória durante o desenvolvimento com a linguagem C, foram utilizadas ferramentas de profiling
disponíveis entre o conjunto de ferramentas oferecidas na plataforma de desenvolvimento da Apple.
Escrito na linguagem C, após ser testado e validado para dispositivos da plataforma Apple, o sistema
pode ser portado para outros dispositivos de custo mais baixo existentes no mercado.
65
5.1. O PROTÓTIPO DESENVOLVIDO 66
Para que seja possível testar um aplicativo em um dispositivo da plataforma iOS durante seu desen-
volvimento, é necessário obter uma licença de desenvolvedor em um dos programas disponíveis. A
empresa disponibiliza três programas para que a comunidade possa se ingressar: (i) como desenvol-
vedor individual; (ii) como universidade; (iii) como empresa. Empresas e desenvolvedores individuais
devem pagar uma taxa para se inscreverem no programa. No caso de universidades, aplicativos
podem ser desenvolvidos apenas para fins acadêmicos – em cursos ou em atividades de pesquisa –
e a licença é gratuita. O CEFET-MG se ingressou no programa de desenvolvedor Apple como uma
universidade a fim de suprir a demanda deste trabalho e atualmente possui uma conta que pode ser
utilizada por estudantes.
A Tabela 5.1 reúne as especificações técnicas do iPod Touch de Quarta Geração, dispositivo para o
qual o protótipo foi construído.
Clock 800MHz
Memória 256MB
Capacidade 8GB
Conexão de dados 802.11b/g/n (WiFi)
Resolução da câmera 640x480 px
Resolução da tela 960x640 px
Campo de visão ⇡ 53,3
Temperatura de operação -2 C a 45 C
Carga elétrica da bateria 930mAh
Assim, o aplicativo de contagem instalado no dispositivo foi mantido ligado ininterruptamente du-
rante três meses. Durante esse período, o aplicativo desenvolvido não foi encerrado sozinho, mini-
mizando suspeitas de vazamento de memória. Vazamentos de memória devem ser sempre evitados,
pois, em geral, representam bugs de um sistema e podem causar encerramento inesperado em
softwares.
5.1. O PROTÓTIPO DESENVOLVIDO 67
Além disso, foi verificado que, mesmo utilizando massivamente as unidades central e gráfica de
processamento e o barramento de entrada e saída – com a câmera, a comunicação e com a atuali-
zação da tela – o dispositivo encontrou-se dentro de sua faixa operacional de temperatura a todo
momento: a temperatura manteve-se suficientemente baixa, uma vez que o sistema operacional
não exibiu alertas de temperatura, nem suspendeu o processo do aplicativo devido a problemas com
temperatura.
No entanto, ao se desligar por qualquer motivo (falta de energia, por exemplo), devido às restrições
impostas ao lançamento dos aplicativos pela Apple, o iPod é incapaz de inicializar automaticamente
o software que rodava antes de se desligar. Sendo necessário intervir no dispositivo para que o
aplicativo volte a funcionar. Isso é possível através de intervenção humana ou através de um
procedimento conhecido como Jailbreak.
O Jailbreak é um procedimento não suportado pela fabricante, que, após realizado, garante ao usuário
direitos de administrador sobre o dispositivo. Com esses direitos, o usuário é capaz, por exemplo,
de executar serviços e processos que garantam que o aplicativo será iniciado automaticamente após
o reinício do aplicativo.
Por ser não suportado pela fabricante, a dependência desse procedimento torna o uso do iPod
uma alternativa não interessante comercialmente, uma vez que a venda da solução para um cliente
pode ser comprometida, caso uma ferramenta para realizar o Jailbreak de determinada versão do
dispositivo não esteja disponível.
Sendo assim, decidiu-se por portar todo código para um nova plataforma móvel que permitisse
explorar mais recursos do aparelho e que pudesse oferecer dispositivos que já garantiriam direitos de
administrador ao desenvolvedor, sem que para consegui-los fosse necessário utilizar ferramentas não
suportadas pela fabricante.
A nova plataforma utilizada foi a Android, um outro sistema operacional para dispositivos móveis
baseado no núcleo do Linux. Diferentemente do iOS, da fabricante Apple, o Android é utilizado em
uma gama muito maior de aparelhos, envolvendo grandes fabricantes da atualidade - como HTC,
Samsung, Sony, Motorola, LG - o que abre ainda mais o leque de possibilidades de dispositivos
capazes de rodar o sistema. Além disso, o Android possui código aberto. Caso seja necessário
5.1. O PROTÓTIPO DESENVOLVIDO 68
Definida a plataforma, escolheu-se o dispositivo Galaxy S WiFi 5.0 (YP-G70), da Samsung, como
substituto do iPod Touch Quarta Geração. Vale enfatizar que um aplicativo desenvolvido para
um dispositivo Android não necessariamente funcionará em qualquer dispositivo Android. Cada
dispositivo Android no mercado possui sua própria implementação ou versão do Sistema Operacional
(oGalaxy S WiFi 5.0 (YP-G70), por exemplo, possui o Android GingerBread customizado pela
Samsung). É necessário realizar testes antes de se adotar outro dispositivo Android, mas ainda
que haja algum problema, resolvê-lo será naturalmente menos custoso que rescrever o sistema por
completo.
Clock 1GHz
Memória 512MB
Capacidade 8GB
Conexão de dados 802.11b/g/n (WiFi)
Resolução da câmera 640x480 px
Resolução da tela 800x480 px
Campo de visão ⇡ 49,0
Carga elétrica da bateria 2500mAh
A Figura 5.1 ilustra em um diagrama a divisão de responsabilidades dos módulos do primeiro pro-
tótipo desenvolvido para dispositivos móveis.
É interessante ressaltar que o algoritmo de contagem de pessoas não representa todo o sistema, mas
consiste no núcleo do processo de contagem de pessoas, não incluindo, por exemplo, a lógica de
comunicação com o servidor, de obtenção das imagens da câmera, nem a interface com o usuário
que envolvem as APIs Nativas da plataforma.
5.2. SERVIDOR DE ACOMPANHAMENTO DOS DISPOSITIVOS 69
Camada
Contagem
Multiplataforma
(ANSI C)
Buffer de Imagem
Configurações Subtração Segmentação Agregação
primeiro plano segmentada
Buffer de plano
de fundo Estimativa
de Sentido
Buffer de Registro de
ABS
Entrada resultados
Camada
de Ponte
Inicial. do Envio ao
Inicialização Captura servidor
OpenGL
APIs
Nativas
Registro API da API de API de
do sistema câmera gráficos rede
Figura 5.1: Diagrama com a divisão de responsabilidades dos módulos do protótipo desenvolvido para
dispositivos móveis. Retângulos denotam dados (entrada ou saída), losangos, operações e formas ovais re-
presentam serviços ou APIs (Application Programming Interfaces) disponibilizadas pelo Sistema Operacional
do dispositivo em questão.
Foi desenvolvido, também, um servidor para abrigar os dados de contagem enviados pelos dispositivos
e para acompanhá-los em tempo real. Os dados de contagem e os eventuais logs são enviados via
protocolo HTTP (método POST) pelo dispositivo. A comunicação com o servidor é feita para
concentrar os dados de contagem enviados pelos dispositivos, conforme discutido na Seção 4.6.3.
A especificação das funcionalidades do servidor web encontram-se no Anexo A. A figura 5.2 mostra
uma captura de tela de sua interface.
5.3. EXPERIMENTOS 70
Figura 5.2: Captura de tela do servidor Web criado para acompanhar os dispositivos de contagem.
No servidor foram incluídas funcionalidades para cadastrar vários dispositivos para realizar contagem
em portas largas, conforme descrito na Seção 4.7. A Figura 5.3 mostra a interface criada para
cadastrar vários dispositivos para uma porta.
5.3 Experimentos
Conforme discutido ao longo do Capítulo 4, o algoritmo depende de uma série de parâmetros que
devem ser definidos para seu funcionamento. A mudança de tais parâmetros influenciam direta-
mente a contagem de pessoas, uma vez que modificam as imagens que serão utilizadas nas últimas
etapas do processo de contagem, fazendo com que mais ou menos pessoas possam ser detectadas
e devidamente contabilizadas.
Os parâmetros relacionados às dimensões humanas foram definidos com base na Seção 2.5.1 deste
trabalho. Os valores adotados foram: 1,70m para a altura média humana; 0,50m para a profundidade
5.3. EXPERIMENTOS 71
média do tórax humano e 0,60m para a distância média entre os ombros humanos. A Tabela 5.3
reúne os demais parâmetros citados no Capítulo 4.
(a)
(b)
(c)
Figura 5.3: Captura de tela da interface para cadastrar dispositivos em portas largas. (a)Porta sem dis-
positivos. (b)Porta com quantidade insuficiente de dispositivos. (c)Porta com quantidade adequada de
dispositivos.
5.3. EXPERIMENTOS 72
A calibração pixel/mm foi feita medindo-se, em pixel, objetos de tamanhos conhecidos a priori na
imagem de entrada, com o dispositivo afixado em alturas conhecidas.
Os parâmetros das etapas de segmentação e contagem, no entanto, são subjetivos demais para serem
definidos sem um estudo mais aprofundado de suas mudanças, já que o algoritmo de contagem
é ainda mais sensível a esses parâmetros e não é possível determinar se o valor escolhido é o
ótimo apenas através de imagens. Dessa forma, para determinar esses valores de forma mais bem
fundamentada, foi necessário realizar experimentos controlados. O Anexo B mostra como esses
valores foram determinados. Seus valores foram:
• Limiar de segmentação: 0,31, levando em conta que, como definido na Seção 4.2.3, os valores
que os elementos da matriz B, resultante da subtração do plano de fundo, podem assumir
estão entre 0 e 1.
• Fator de detecção mínima de uma pessoa: 70% do valor da largura média entre os ombros.
Os experimentos controlados são fundamentais para que a taxa de acerto geral do sistema seja
determinada, dado um conjunto de parâmetros ótimos. Para realizá-los, é fundamental que a mesma
5.3. EXPERIMENTOS 73
sequência de imagens seja processada. Para tanto, decidiu-se por utilizar sequências de imagens de
arquivos de vídeos, gravados pelos mesmos dispositivos que executam o protótipo desenvolvido,
garantindo que tais sequências estariam submetidas às mesmas condições das imagens obtidas em
tempo real, uma vez que o mesmo sensor é utilizado.
O protótipo construído, no entanto, era capaz de processar imagens em tempo real obtidas apenas
através da câmera. Além disso, os vídeos, para apresentarem quantidade suficiente de amostra,
seriam longos demais em comprimento (cada duas horas e meia de vídeo correspondem a um arquivo
de aproximadamente 4GB de dados). O dispositivo utilizado no desenvolvimento do protótipo não
dispõe de poder computacional adequado para ler arquivos tão grandes e realizar, ao mesmo tempo,
o processamento das imagens, o que comprometeria a realização dos experimentos controlados.
Decidiu-se, portanto, por criar um novo protótipo capaz de utilizar as sequências de vídeo gravadas
como entrada de forma eficiente.
Devido à facilidade de se portar o código para o Mac OS X, um sistema operacional também criado
pela Apple, destinado exclusivamente a computadores Macintosh e que dispõe de ferramentas para
compilar códigos na linguagem C e Objective-C, optou-se por também rescrever o código para esse
sistema operacional. Com os recursos computacionais presentes em computadores Macintosh, o
algoritmo de contagem de pessoas iria processar facilmente grandes arquivos de vídeo, tornando a
realização dos experimentos controlados mais rápida.
Com a organização realizada na fase de desenvolvimento do primeiro protótipo, foi possível portar o
código para Mac OS X sem realizar nenhuma alteração no código responsável pelo processamento
das imagens, uma vez que somente as camadas de de ponte e as interações com as APIs Nativas
(conjunto funcionalidades oferecidas nativamente pelo sistema operacional) necessitavam de serem
rescritas para a nova plataforma.
A Figura 5.4 mostra a interface do protótipo desenvolvido para Mac OS X ao processar um ví-
deo. Com o protótipo capaz de processar vídeos construído, procedeu-se com o planejamento dos
experimentos.
• Vídeos 2 e 3: gravados durante a manhã e tarde, respectivamente, na porta do prédio 17, onde
se localiza o Departamento de Computação (DECOM) do CEFET-MG. A cena recebe forte
influência da iluminação natural uma vez que o dispositivo foi instalado na porta do prédio.
Em todas as cenas, os dispositivos foram instalados no teto, em ângulo ortogonal ao chão, de modo
que a câmera frontal ficasse responsável por realizar a captura e a imagem obtida representasse uma
vista em planta da cena. A Figura 5.5 mostra como os dispositivos foram instalados.
5.4. CRIAÇÃO DO GABARITO DA CONTAGEM 75
Os vídeos gravados foram analisados, visando a obter o instante aproximado em que cada evento
de contagem ocorria ao longo da sequência. Um evento de contagem ocorre no momento em que
uma pessoa atravessa completamente a cena, entrando ou saindo dela.
O algoritmo de contagem foi desenvolvido de forma a operar melhor no caso em que uma única pessoa
passa pela cena em uma velocidade considerada normal para humanos em áreas urbanas, como visto
na Seção 2.5.2. Em todos os vídeos, porém, houve cenários desafiadores, envolvendo situações tais
como: mudanças no plano de fundo; presença de casais, pessoas abraçadas ou portando acessórios
grandes; várias pessoas passando em fila; forte iluminação externa, formando sombras na cena.
(a) (b)
(c) (d)
Figura 5.5: Instalação do dispositivo: (a) e (b) na cena do vídeo 1; (c) e (d) na cena dos vídeos 2 e 3.
5.4. CRIAÇÃO DO GABARITO DA CONTAGEM 76
Assim, para cada evento, classificaram-se as pessoas envolvidas de acordo com sua forma vista no
vídeo. Além de possibilitar testar a sensibilidade do algoritmo proposto à ocorrência de eventos
com características ligadas à forma das pessoas vista de cima, essa classificação foi feita para tornar
possível uma posterior análise estatística. Em caso de problemas detectados, a análise seria feita
para auxiliar na descoberta do tipo de evento associado ao erro. A Tabela 5.4 reúne as classificações
realizadas empiricamente para as pessoas vistas em cada evento.
Tabela 5.4: Classificação das pessoas quanto à forma (considerando vista em planta)
Ao analisar os vídeos, foram identificadas outras classificações possíveis para as pessoas (como duas
crianças juntas, ou duas pessoas com acessórios abraçadas), mas elas não ocorreram em quantidade
suficiente para se tornarem relevantes para análise.
À medida que eram identificados, os eventos eram registrados em um banco de dados, aqui denomi-
nado de Gabarito, em uma tupla contendo o nome do vídeo, o número do quadro em que o evento
ocorreu, o tipo de evento (entrada ou saída de pessoas) e a quantidade referente a cada uma das
classificações possíveis para as pessoas, como enumerado na Tabela 5.4.
5.5. EXPERIMENTOS E ANÁLISE DOS RESULTADOS 77
A Figura 5.6 mostra a interface do sistema construído para auxiliar a criação do Gabarito.
Finalmente, após a criação do Gabarito, os vídeos gravados foram processados pelo protótipo cons-
truído para Mac OS X.
5.5.1 Vídeo 1
Neste vídeo, 48% das pessoas que passaram pela cena foram classificadas (de acordo com a Ta-
bela 5.4) como comuns; 20%, como pessoas com acessórios pequenos; e 15%, como casais. A
Figura 5.7 apresenta alguns dos quadros desse vídeo.
A tabela abaixo resume os dados da contagem obtidos do processamento do vídeo 1 para as confi-
gurações estabelecidas.
Na cena representada pelo vídeo 1, por se tratar de um estabelecimento comercial, houve diversas
vezes em que seguranças ou vigias permaneceram parados na imagem. Como esses eventos não
5.5. EXPERIMENTOS E ANÁLISE DOS RESULTADOS 78
90,00%!
80,00%!
70,00%!
Taxa de acerto!
60,00%!
50,00%!
40,00%!
30,00%!
20,00%!
10,00%!
0,00%!
0" 20" 40" 60" 80" 100" 120" 140"
Tempo (min)!
A taxa de acerto geral para este vídeo leva em conta a evolução da taxa de acerto ao longo do
tempo, como pode ser visto na Figura 5.8. Nessa Figura é possível notar que, ao longo do tempo,
a taxa de acerto do sistema se torna maior e mais estável. Quanto maior o intervalo da agregação
feita (seção 4.5), menos erros de arredondamento são produzidos. Dessa forma, quanto mais curto
for o intervalo de agregação dos dados, o método sugerido neste trabalho pode cometer um erro
maior, sendo importante, portanto, que a agregação seja feita em tempo suficiente para que um
fluxo suficiente de pessoas seja atingido e o arredondamento não gere ruído grande na saída. Para
todos os vídeos, o intervalo de agregação foi fixado em um minuto.
Em relação aos demais vídeos gravados, neste foi registrada uma taxa relativamente alta de pessoas
passando pela cena, o que também não influenciou o resultado final.
5.5.2 Vídeo 2
Neste vídeo, 71% das pessoas que passaram pela cena foram classificadas como pessoas com aces-
sórios pequenos e 24%, como pessoas comuns. A Figura 5.9 apresenta alguns dos quadros desse
vídeo.
A Tabela 5.6 resume os dados da contagem obtidos do processamento do vídeo 2 para as configu-
rações estabelecidas.
Na cena registrada no vídeo 2, foi possível verificar que a maior parte das pessoas que passaram pela
cena portavam acessórios, o que é compreensível, uma vez que no local de gravação havia vários
estudantes com mochilas e bolsas.
90,00%!
80,00%!
70,00%!
Taxa de acerto!
60,00%!
50,00%!
40,00%!
30,00%!
20,00%!
10,00%!
0,00%!
0! 20! 40! 60! 80! 100! 120! 140!
Tempo (min)!
A maior parte dos erros, porém, ocorreu: nas situações em que as pessoas realizaram movimentos
muito sinuosos ao atravessar a cena; nas que muitas pessoas passaram juntas e com objetos grandes;
e nas que pessoas passaram numa região em que a câmera não as capturava inteiramente como
mostram os quadros da Figura 5.11.
Neste vídeo, a estabilização observada próximo aos 30 minutos do vídeo 1 começa a ocorrer aos 80
minutos do vídeo 2. Isso ocorre pois no vídeo 2 há um fluxo muito menor de pessoas (comparado ao
Figura 5.11: Situações desafiadoras no vídeo 2: (a) e (b) - pessoas passando fora do campo de visão da
câmera. (c) e (d) - pessoas portando objetos muito grandes.
5.5. EXPERIMENTOS E ANÁLISE DOS RESULTADOS 81
vídeo 1), o que faz com que o erro de arredondamento seja minimizado somente após um intervalo
de tempo maior.
A forma das pessoas vistas de cima também influenciou pouco no resultado final.
5.5.3 Vídeo 3
Neste vídeo, 64% das pessoas que passaram pela cena foram classificadas como pessoas com aces-
sórios pequenos; e 34%, como pessoas comuns. A Figura 5.12 apresenta alguns dos quadros desse
vídeo.
A tabela 5.7 resume os dados da contagem obtidos do processamento do vídeo 3 para as configu-
rações estabelecidas.
Tabela 5.7: Resultados obtidos no vídeo 3.
Na primeira hora da cena registrada no vídeo 3, houve grande influência da luz externa. Com isso,
em grande parte do vídeo foi possível verificar sombras e reflexos. Além disso, como o vídeo foi
gravado no mesmo local do vídeo 2, a maior parte das pessoas que passaram pela cena portavam
acessórios e várias delas e, também, várias pessoas passaram numa região em que a câmera não
as capturava inteiramente. Os vários erros cometidos ao longo da contagem estão ligados a esses
fatores. No entanto, como foi previsto na Seção 1.1 ( Caracterização do Problema de Pesquisa),
situações em que há reflexos e pessoas que não aparecem inteiramente na cena não compreendem
situações que devem ser cobertas pelo método desenvolvido. As fortes variações na iluminação,
5.6. CONSIDERAÇÕES FINAIS 82
contudo, não produziram erro na contagem, mostrando a eficácia do método criado para se adaptar
a tais situações.
Assim como no vídeo 2, foi registrada uma taxa baixa de pessoas que passaram pela cena no vídeo
3. Assim, a estabilidade na taxa de acerto observada nos outros vídeos pode não ter sido alcançada
até o fim deste vídeo.
O método desenvolvido se mostrou eficiente e robusto, atingindo uma taxa média de 94,10% de
acerto. Situações desafiadoras, como pessoas com acessórios, casais, variações na iluminação, forma-
ção de sombras e incorporação de objetos à cena são toleradas com sucesso no sistema desenvolvido,
possibilitando que seu uso seja feito nos mais diversos locais em que tais situações ocorrem, tais
como: estabelecimentos e centros comerciais diversos; universidades e escolas; órgãos governamen-
tais; prédios residenciais e comerciais; etc. Uma grande vantagem do método proposto é que ele
não impõe restrição de fluxo, como faixas, cancelas e catracas, e realiza a contagem sem que haja
90,00%!
80,00%!
70,00%!
Taxa de acerto!
60,00%!
50,00%!
40,00%!
30,00%!
20,00%!
10,00%!
0,00%!
0! 20! 40! 60! 80! 100! 120! 140!
Tempo (min)!
problemas de oclusão entre as pessoas, uma vez que as imagens são obtidas da vista em planta da
cena.
6 | Conclusões e Trabalhos Futuros
Neste trabalho, foi desenvolvida uma metodologia capaz de contar pessoas em uma cena que se
deslocam em uma direção predominante, como indicado na Seção 1.1. Dois protótipos foram criados
com a metodologia proposta, ambos possuindo o mesmo código que realiza o processo de contar
pessoas: (i) o primeiro, desenvolvido para operar em dispositivos móveis, tais como smartphones,
capaz de realizar a contagem em tempo real, utilizando uma câmera integrada para realizar a
captura; e (ii) o segundo, capaz de ser executado em estações de trabalho com sequências de vídeo.
A metodologia proposta obteve uma taxa média de acerto de 94,10%, demonstrando robustez a
variações no plano de fundo da cena e na iluminação; a sombras; e a eventuais acessórios portados
pelas pessoas, atingindo os objetivos e resultados esperados.
Estimar o fluxo de pessoas que passam por um local de interesse constitui uma tarefa de grande
relevância para diversos processos decisórios. A utilização de dispositivos móveis com capacidade
de capturar imagens, munidos de poder computacional e que oferecem capacidade de comunicação
representa a tendência atual. Esses dispositivos podem apresentar baixo custo oferecem várias
facilidades na instalação, sobretudo devido a seu tamanho reduzido.
Comparada a outras propostas da literatura, a metodologia deste trabalho se revela como uma
atraente alternativa, visto que é capaz de ser executada em equipamentos de baixo custo e grande
facilidade de instalação, não necessitando restringir as áreas por onde as pessoas passam.
Finalizado este trabalho, espera-se que futuramente sejam desenvolvidas mais funcionalidades, tais
como:
• Evolução da técnica de segmentação utilizada, facilitando a separação dos objetos não relaci-
onados com o plano de fundo.
84
6.1. TRABALHOS FUTUROS 85
• Utilização de técnicas e dispositivos de visão estéreo, para criar uma estrutura 3D da cena,
aumentando a precisão de contagem e detecção.
• Ampliação da aplicação do sistema, para que ele possa ser utilizado, por exemplo, em ônibus
e nas ruas.
B. Antic, D. Letic, D. Culibrk, e V. Crnojevic. K-means based segmentation for real-time zenithal
people counting. ICIP, 2009 16th IEEE International Conference on Image Processing, pages
2565–2568, 11 2009.
D. Beymer e K. Konolige. Real-Time Tracking of Multiple People Using Stereo. In IEEE Frame
Rate Workshop, 1999.
Rusi Antonov Filipov, Flávio Luis Cardeal Pádua, e Marco Aurélio Buono Carone. Pylon grid: A
fast method for human head detection in range images. Neurocomputing, (0):–, 2012. ISSN
0925-2312. doi: 10.1016/j.neucom.2011.12.040.
David Forsyth. Computer vision: a modern approach. Prentice Hall, Upper Saddle River, N.J.
London, 2003. ISBN 0130851981.
R. C. Gonzalez e R. E. Woods. Digital Image Processing. Prentice Hall, third edition, 2008.
Daniel Grest, Jan michael Frahm, e Reinhard Koch. A color similarity measure for robust shadow
removal in real time. In In Vision, Modeling and Visualization, pages 253–260, 2003.
I. Haritaoglu, D. Harwood, e L. Davis. Ghost: A Human Body Part Labeling System Using Silhou-
ettes. In International Conference on Pattern Recognition, pages 77–82, 1998.
Ya-Li Hou e Grantham K. H. Pang. People Counting and Human Detection in a Challenging
Situation. IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans,
41(1):24–33, 1 2011.
IBGE. Dados amostrais e estimativas populacionais das medianas de altura e peso, por si-
tuação do domicílio e sexo, segundo a idade e os grupos de idade. Brasil - período 2008-
86
87
2009. http://www.ibge.gov.br/home/estatistica/populacao/condicaodevida/pof/
2008_2009_encaa/tabelas_pdf/tab1_1.pdf, 2008. [Online; Acesado em maio de 2012].
Julio Cezar Silveira Jacques, Cláudio Rosito Jung, e Soraia Raupp Musse. Background subtraction
and shadow detection in grayscale video sequences. In SIBGRAPI, pages 189–196. IEEE Computer
Society, 2005. URL http://dblp.uni-trier.de/db/conf/sibgrapi/sibgrapi2005.html#
JacquesJM05.
J. W. Kim, K. S. Choi, B. D. Choi, e S. J. Ko. Real-Time Vision-based People Counting System for
the Security Door. Technical report, Korea Unversity, Seoul, Korea, 2002.
D. Kong, D. Gray, e H. Tao. Counting Pedestrians in Crowds Using Viewpoint Invariant Training.
In British Machine Vision conference, 2005.
W. Lu e Y. Tan. A Color Histogram Based People Tracking System. In IEEE International Symposium
on Circuits and Systems, pages 137–140, 2001.
F. L. C. Pádua. Real-time Pedestrian Counting Based on Computer Vision. Master’s thesis, De-
partamento de Ciência da Computação (DCC) da Univerdade Federal de Minas Gerais (UFMG),
Belo Horizonte, MG, Brasil, 2002.
N. Siebel. Design and Implementation of People Tracking Algorithms for Visual Surveillance Appli-
cations. PhD thesis, Department of Computer Science, The University of Reading, Reading, UK,
2003.
88
T. Teixeira e A. Savvides. Lightweight People Counting and Localizing in Indoor Spaces Using
Camera Sensor Nodes. In ACM/IEEE International Conference on Distributed Smart Cameras,
pages 36–43, 2007.
Tim van Oosterhout, Sander Bakkes, e Ben J. A. Kröse. Head detection in stereo data for people
counting and segmentation. In Leonid Mestetskiy e José Braz, editors, VISAPP, pages 620–
625. SciTePress, 2011. ISBN 978-989-8425-47-8. URL http://dblp.uni-trier.de/db/conf/
visapp/visapp2011.html#OosterhoutBK11.
Chengbin Zeng e Huadong Ma. Robust Head-Shoulder Detection by PCA-Based Multilevel HOG-
LBP Detector for People Counting. ICPR, 2010 20th International Conference on Image Proces-
sing, pages 2069 – 2072, 8 2010.
H. Zhao e R. Shibasaki. A Novel System for Tracking Pedestrians Using Multiple Single-row Laser
Range Scanners. IEEE Transactions on Systems, Man and Cybernetics, 35(2):283–291, 2005.
A | Especificação de requisitos
89
ESPECIFICAÇÃO
E ANÁLISE DE
REQUISITOS
CEFET-MG/PIIM-LAB
ABRIL/2012
página 2
1 Introdução
Este documento tem como objetivo listar os requisitos do sistema de contagem de pessoas
desenvolvido pelo Laboratório de Pesquisas Interdisciplinares em Informação Multimídica (Piim-Lab) do
CEFET-MG em parceria com a empresa J2M, que o utilizará comercialmente. O conteúdo deste
documento pretende estabelecer um melhor alinhamento das expectativas com a proposta de
desenvolvimento. Ao longo do tempo de desenvolvimento, havendo a percepção de requisitos a
serem adicionados, removidos ou alterados, o presente documento poderá sofrer alterações, desde
que haja conformidade entre as partes envolvidas quanto às consequências inerentes à mudança,
como o aumento do tempo de desenvolvimento ou do custo total do sistema final, entre diversas
outras possibilidades.
Esse sistema deve realizar a contagem automática de pessoas que passam pela porta de um
estabelecimento em tempo real, baseado em técnicas de processamento e análise de imagens,
obtidas por câmeras de vídeo. O sistema também deve ser capaz de criar uma espécie de mapa de
calor do estabelecimento, caso essas câmeras cubram a imagem de seu interior. Nesse mapa, regiões
representadas como mais quentes sofreram, em um determinado período de tempo, maior visita de
pessoas. Especificamente, o sistema projetado deve ser concebido para operar de forma distribuída e
embarcada em dispositivos móveis, tais como smartphones, configurando ao sistema características
inovadoras que potencializam sua aplicação em diversos cenários.
Cada dispositivo é responsável por monitorar o campo de visão por ele coberto, aplicando algoritmos
de Visão Computacional para detectar e contar objetos móveis que representem eventualmente
pessoas. As informações estimadas pelo sistema, por sua vez, são enviadas via rede para um servidor
central, o qual se responsabiliza pela geração de relatórios estratégicos e cálculos de indicadores.
Dessa forma o sistema completo pode ser dividido basicamente em dois subsistemas:
O que é executado no dispositivo, podendo este ser um dispositivo que realiza contagens
(instalados nas portas dos estabelecimentos) ou que contribui para a construção do mapa de
calor dos estabelecimentos (espalhados por toda a área dos estabelecimentos).
O que é executado em um servidor, que armazena as informações de contagem, fornecendo
uma forma de visualizá-las além de possibilitar a configuração de cada dispositivo e a
verificação de seu estado.
Pessoa (na cena de interesse): qualquer objeto na cena de interesse que possua as dimensões médias
de um ser humano adulto.
Mapa de calor: Planta do estabelecimento contendo regiões coloridas que representam áreas
quentes e áreas frias. No caso, regiões representadas como mais quentes sofreram, em um
página 3
Dispositivo móvel elegível: equipamento que possui câmera, capacidade de executar aplicativos,
poder de processamento gráfico e capacidade de se comunicar à internet via Wi-Fi.
Aplicativo de contagem: aplicativo que realiza a contagem de pessoas em uma determinada cena
de interesse.
Aplicativo sensor de calor: aplicativo que processa dados para a construção do mapa de calor em
uma determinada cena de interesse.
Dispositivo sensor de calor: Dispositivo móvel elegível que possui o aplicativo sensor de calor
devidamente instalado.
Sistema de contagem: conjunto composto por todos os dispositivos de contagem e pelo aplicativo
presente no servidor para fazer interface com os usuários.
Sistema sensor de calor: conjunto composto por todos os dispositivos sensores de calor e pelo
aplicativo presente no servidor para fazer interface com os usuários.
Infraestrutura de rede: Conjunto de elementos que fornecem acesso à Internet através de conexão Wi-
Fi.
Poderão ser instalados vários dispositivos em um mesmo ambiente com o objetivo de (i)
preencher toda a área que compreende uma porta, no caso do dispositivo de contagem, e (ii)
preencher toda a área interior ao estabelecimento, no caso dos dispositivos sensores de calor.
página 4
Nestes casos, deverão ser utilizadas ferramentas que auxiliem na determinação dos
espaçamentos mais adequados, que permitam um melhor aproveitamento dos equipamentos,
tomando por base suas características e especificações técnicas. Pode ser necessária a
utilização de suportes, caixas ou estojos especiais, criação de furos nas paredes entre outros
detalhes para a instalação de cada dispositivo. Maiores detalhes da instalação deverão ser
estudados para cada cliente e fogem do escopo deste projeto.
O sistema deste trabalho prevê que os serviços associados ao mesmo sejam acessíveis pela
Internet. Assume-se, portanto, que nos estabelecimentos onde os dispositivos forem instalados
haverá conexão Wi-Fi adequada ao funcionamento da solução, em termos de disponibilidade
e de largura de banda. Assume-se, também, que as configurações da rede Wi-Fi presente nos
estabelecimentos irão sempre atender aos requisitos dos dispositivos utilizados,
independentemente se a infraestrutura de rede do local será provida pelo estabelecimento ou
pelo fornecedor do sistema.
Os dispositivos poderão ser instaladas em locais onde o pé direito seja maior que 2m (dois
metros) e menor que 5m (cinco metros).
A superfície do solo da cena de interesse deve ser fosca, sem reflexos. A presença de
superfícies especulares na cena de interesse ou qualquer outra superfície lisa que apresente
reflexos das pessoas que passam reduzirão a exatidão dos dispositivos de contagem.
Na cena capturada pela câmera não deve haver outros objetos que se movam com
frequência, como vitrines, caixas, portas deslizantes ou de abertura “em L”, entre outros.
Objetos móveis com dimensões próximas às de um humano podem ser contados como
pessoas e reduzirão a exatidão do sistema.
O sistema deverá ser concebido para contar pessoas que se movem em velocidades normais
(próximas a 5km/h). Pessoas paradas ou correndo na cena de interesse podem não ser
contadas e reduzirão a exatidão do sistema.
Para o sistema de contagem, o ato de contar deve ser realizado pelo dispositivo quando uma
pessoa cruzar verticalmente (ou em uma direção predominantemente vertical) a cena de
interesse.
O dispositivo deve ser capaz de registrar quantas pessoas entram e quantas pessoas saem do
estabelecimento em um determinado intervalo de tempo.
página 5
Não está no escopo do sistema identificar quais pessoas passam pela cena. Apenas a
informação de quantas pessoas passam será computada.
As duas extremidades verticais da cena capturada pelo dispositivo de contagem devem ser
bem conhecidas e identificadas no dispositivo de contagem como entrada ou saída do
estabelecimento.
O dispositivo de contagem deve ser utilizado somente nas portas do estabelecimento.
O sistema de mapa de calor deve ter seus dispositivos instalados somente no interior do
estabelecimento.
No caso dos dispositivos que cobrem o estabelecimento para realizar o que se chama de
mapa de calor, o sistema deve gerar, sobre a planta de um estabelecimento, um mapa de
calor que corresponde aos diversos trajetos dos clientes. A área se torna mais quente quanto
maior for o número de pessoas que por ali passam.
O sistema deve ter seus dispositivos operando (coletando dados) por tempo indeterminado.
Os detalhes de instalação dos dispositivos (suportes ideais, alimentação, sistema de ventilação
necessários) serão definidos de acordo com o estabelecimento e com as características
técnicas dos mesmos, como suas dimensões, temperatura máxima, alimentação, protocolo de
comunicação disponível, entre outros detalhes.
2 Elicitação de requisitos
2.1 Requisitos Funcionais
Os requisitos funcionais foram agrupados em dois grupos de requisitos: o primeiro, com requisitos
ligados aos dispositivos de contagem móveis e o segundo, com requisitos do portal/servidor.
Banco de dados de O servidor deve fornecer uma interface para envio dos relatórios de
2.1
contagem contagem para um banco de dados.
- Dispositivos;
- Modelos de dispositivos;
- Estabelecimentos.
Recepção de logs dos O servidor deve permitir receber logs dos dispositivos, quando estes
2.3
dispositivos enviarem.
Mudança de
O sistema deve permitir realizar, quando necessário, ações sobre
2.4 parâmetros do
determinado dispositivo: reiniciar, atualização direcionada, script shell.
dispositivo
página 8
Listagem de dispositivos
2.7 O portal deve possibilitar listar os dispositivos por estabelecimento.
por estabelecimento
Localização de
2.8 dispositivos por número O portal deve permitir a listagem de dispositivos por número de série.
de série
Comunicação Deve ser feito armazenamento local de pacotes, caso não haja
2
confiável conexão com a internet disponível, para posterior envio.
5 Esboço da interface
Para demonstrar o comportamento do sistema, foram criadas imagens que ilustram as principais telas
que irão compor a interface.
As telas apresentadas aqui refletem apenas em um esboço do que foi definido como requisitos. O
sistema real poderá trazer mudanças na organização dos itens presentes nas telas.
B | Determinação do Conjunto Ótimo
de Parâmetros do Sistema
Assim como foi discutido no Capítulo 4, há um determinado número de parâmetros que devem
ser definidos para o funcionamento do sistema. Como discutido na Seção 5.3.1, a mudança desses
parâmetros influenciam diretamente a contagem de pessoas, fazendo com que mais ou menos pessoas
sejam contabilizadas. Os parâmetros que foram citados no Capítulo 4 foram resumidas abaixo, na
tabela B.1:
Na Seção 5.3.1 também foi discutido como os parâmetros Tamanho da Matriz do NCC, Limiar NCC;
Tamanho da Janela do Algoritmo de Similaridade; Limiar de Similaridade; e Fator de Adaptação
foram determinados, assim como os das dimensões humanas.
Os valores dos parâmetros das etapas de segmentação e contagem, no entanto, foram muito mais
subjetivos de serem determinados que os demais e necessitaram de um estudo mais aprofundado
para tanto: a realização de experimentos controlados. Como descrito na Seção 5.3.2, os vídeos
utilizados nos experimentos controlados foram gravados e seus gabaritos criados conforme indicado
na Seção 5.4.
O parâmetro Limiar de Segmentação, como definido na Seção 4.2.3, deve ser definido numa faixa
de valores que varia entre 0 e 1, uma vez que este é o domínio dos elementos da matriz B, também
definida naquela Seção. Para determinar os valores elegíveis para este parâmetro, foram analisados os
valores produzidos pelo sistema à medida que as pessoas passavam nas imagens dos vídeos gravados.
Suponha o gráfico da Figura B.1, em que o eixo das abcissas representa o índice do pixel e, o das
ordenadas, o valor da não-similaridade do pixel com o plano de fundo. Considerando o sinal tratado,
107
B.1. ANÁLISE DOS PARÂMETROS 108
o limiar de segmentação deve ser escolhido de modo que os pulsos tratados tenham valores próximos
ao valor em pixel da largura dos ombros humanos, caso representem, de fato, pessoas passando na
cena.
Assim, para determinar os valores elegíveis do limiar de segmentação, à medida que as pessoas
passavam nos vídeos de teste, identificaram-se os valores típicos que produziam boas imagens seg-
mentadas. Os valores que produziram bons resultados variavam em torno de 0, 31 e 0, 47.
Utilizar um valor muito baixo para esse parâmetro fará com que ruídos possam vir a ser contabilizados
como pessoas, ao passo que um valor muito alto poderá fazer com que algumas pessoas deixem de
ser contabilizadas.
O fator de detecção mínima de uma pessoa determina qual o valor mínimo da largura entre os
ombros de um humano será considerado no sistema. Em outras palavras, este valor, multiplicado
pelo valor médio da largura entre os ombros de um humano fornece qual tamanho mínimo do pulso
obtido da etapa de segmentação será considerado o de um provável humano.
De forma similar ao limiar de segmentação, utilizar um valor muito baixo para esse parâmetro fará
com que pequenos objetos ou ruídos possam vir a ser contabilizados como pessoas, ao passo que
um valor muito alto fará com que pessoas comuns possam deixar de ser contabilizadas.
Através de testes feitos empiricamente, concluiu-se que os valores típicos de largura entre ombros
pequenos estavam entre 70% e 80% do valor médio estabelecido.
Foram definidas 6 configurações elegíveis para os parâmetros do sistema, baseando-se nos limites
observados e na análise feita para cada um, conforme resumido na Tabela B.2.
Dessa forma, cada vídeo foi executado pelo sistema utilizando cada configuração estabelecida e, em
seguida, seus resultados foram confrontados com aqueles obtidos pelo gabarito de contagem. Os
valores de entrada e saída obtidos pelo gabarito de contagem para cada vídeo estão resumidos na
Tabela B.3.
B.2. ANÁLISE DAS CONFIGURAÇÕES 110
Para cada vídeo, foram confrontados os valores reportados pelo sistema desenvolvido com aqueles
obtidos pelo gabarito, tanto para os eventos de entrada de pessoas, quanto para os de saída de
pessoas, obtendo a acurácia para cada tipo de evento. Além disso, obteve-se a acurácia geral
ponderada por configuração e por vídeo, considerando-se as devidas proporções de entrada e saída
de pessoas obtidas pelo gabarito em cada vídeo, como resume a Tabela B.4
Tabela B.4: Proporção do número de pessoas que entraram e saíram sobre o total de pessoas contadas em
cada vídeo.
B.2.1 Vídeo 1
Dessa forma, para o vídeo 1, a melhor configuração obtida foi a 3, com uma taxa de acurácia
(ponderada de acordo com a representatividade do número de pessoas que saíram e entraram) de
94,50%.
B.2.2 Vídeo 2
Dessa forma, para o vídeo 2, a melhor configuração obtida também foi a 3, com uma taxa de acurácia
(ponderada de acordo com a representatividade do número de pessoas que saíram e entraram) de
91,87%.
B.2.3 Vídeo 3
Dessa forma, também para o vídeo 3, a melhor configuração obtida foi a 3, com uma taxa de acurácia
(ponderada de acordo com a representatividade do número de pessoas que saíram e entraram) de
94,12%.
Considerando que cada vídeo possui uma quantidade diferente de eventos de contagem (tanto de
entrada, quanto de saída), para se determinar a acurácia geral do sistema, obteve-se a represen-
B.2. ANÁLISE DAS CONFIGURAÇÕES 113
tatividade de cada conjunto de amostras dos vídeos sobre o total de amostras, como aponta a
Tabela B.11.
Tabela B.11: Representatividade do número de pessoas que passaram no vídeo sobre o total.
Finalmente, considerando a distribuição de pessoas para cada vídeo, obteve-se a acurácia média
geral (ponderada) obtida por configuração, como mostra a Tabela B.12.
95%!
Configuração 3!
Configuração 6!
Acurácia Geral
90%! Configuração 1!
Fator em 70%!
Fator em 80%!
Configuração 4!
85%!
Configuração 2!
Configuração 5!
80%!
0,25! 0,3! 0,35! 0,4! 0,45! 0,5! 0,55! 0,6!
Limiar de segmentação
O gráfico da Figura B.2 mostra os valores de acurácia obtidos por configuração, detalhando os
valores fixados para o Fator de Detecção Mínima de uma Pessoa e para o Limiar de Segmentação.
115
People Counter
Versão para dispositivos Android
Manual de Instalação
Pré-Requisitos para Instalação
! Dispositivo
Galaxy S WiFi 5.0 com o
Firmware 2.3.5.
A versão atual do Firmware do dispositivo pode ser
verificada através do aplicativo Configurações, no
menu Sobre o Dispositivo > Versão de firmware.
2
Passos da Instalação
Configurando a rede WiFi
- Em seguida, clique
em Avançado
- Configure o IP
3
Passos da Instalação
Configurando a fonte de instalação
4
Passos da Instalação
Carregando e instalando o aplicativo (1)
5
Passos da Instalação
Carregando e instalando o aplicativo (2)
6
Passos da Instalação
Instalando o dispositivo
7
Passos da Instalação
Configurando os parâmetros do aplicativo