Escolar Documentos
Profissional Documentos
Cultura Documentos
São Carlos
2018
Gustavo Henrique Rigamonti
São Carlos
2018
Este trabalho é dedicado aos meus pais, ao meu irmão e à minha namorada.
AGRADECIMENTOS
Aos meus pais, Paulo e Claudete, ao meu irmão, Rafael, por todo o apoio e suporte
durante minha vida e graduação, sempre me incentivando e acreditando no meu potencial.
À minha namorada e melhor amiga, Bruna, pelo companheirismo e apoio e por ter
me incentivado e acreditado muito em mim nesta etapa final desta fase tão importante da
minha vida.
Ao Professor Doutor Marcelo Andrade da Costa Vieira pelo incentivo e inspiração
passados durantes suas aulas e este período de orientação.
À Técnica Administrativa Jussara Ramos Zoia e à Auxiliar Administrativa Aura
Aparecido Brisolar, pessoas maravilhosas que não mediram esforços para me auxiliar em
todas as questões que precisei durante a minha gradução.
Aos amigos que fiz durante este período da minha graduação.
À Escola de Engenharia de São Carlos, todos os professores e técnicos que contri-
buíram para minha formação.
Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se
arrepende.
Leonardo da Vinci
Este trabalho foi desenvolvido em conjunto com uma empresa privada e, portanto,
alguns dados e informações aqui apresentados são limitados ou não puderam ser incluídos.
RESUMO
A inteligência competitiva é uma questão cada vez mais presente no cotidiano de gestores
e gerente em grandes lojas, além de empresários e pessoas que trabalham em mercados
varejistas. As pesquisas de campo, importantes para a inteligência competitiva, requerem
uma grande quantidade de tempo, experiência e esforço humano para o levantamento de
informações. Dessa maneira, trata-se de um processo não eficiente, perdendo-se muito
tempo, especialmente quando se deve fazer a pesquisa em grandes lojas. Este trabalho
tem como objetivo desenvolver um método baseado em visão computacional para realizar
automaticamente o cálculo e a oferta de índices importantes para ações de otimização em
lojas e de grande contribuição para a inteligência competitiva. A escolha do reconhecimento
facial para o levantamento de índices foi feita pelo fato de se tratar de um método
de biometria menos invasivo, em comparação com outros métodos mais convencionais
(reconhecimento de digitais, íris etc.). As características das faces são obtidas por mapas
de informações gerados por Redes Neurais Convolucionais Profundas e do algoritmo HOG.
Em seguida, é feita uma comparação dos mapas das faces de entrada e saída de uma
loja utilizando a distância L2, ou ainda, distância euclidiana. Os índices levantados pelo
software permitem que sejam feitas análises importantes para a otimização de resultados
e até mesmo a atuação em tempo real. A máquina, utilizando o HOG e um modelo de
DCNN, realiza a identificação da face. Por fim, o uso do método desenvolvido permitiu
mensurar o desempenho das DCNN em conjunto com os descritores HOG em ambientes
não controlados: a maior acurácia dentro dos conjuntos das amostras disponíveis foi de
60,7%; resultado superior ao de outras soluções que podem ser encontradas no mercado.
IC Inteligência Competitiva
IA Inteligência Artificial
ML Machine Learning
DL Deep Learning
GD Gradient Descent
CL Convolutional layer
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . 51
3.1 Método proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2 Imagens capturadas na entrada, saída dos compradores e saída dos
não compradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 Banco de imagens de entrada, saída dos compradores e saída dos
não compradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4 Detecção de faces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4.1 Dlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.5 Pré-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.5.1 Opencv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6 Aplicação da rede neural . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.7 Buffer no fluxo de entrada . . . . . . . . . . . . . . . . . . . . . . . . 55
3.8 Cálculo da distância euclidiana . . . . . . . . . . . . . . . . . . . . . . 56
3.9 Decisão sobre o resultado da distância euclidiana . . . . . . . . . . . 56
3.10 Processamento das informações recebidas . . . . . . . . . . . . . . . 57
4 RESULTADOS E DISCUSSÃO . . . . . . . . . . . . . . . . . . . . . 59
4.1 Auditoria visual da detecção facial . . . . . . . . . . . . . . . . . . . . 59
4.1.1 Acurácia Dlib e HOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.2 Tempo de processamento Dlib e HOG . . . . . . . . . . . . . . . . . . . . 59
4.2 Auditoria visual do reconhecimento facial . . . . . . . . . . . . . . . . 60
4.2.1 Resultados da DCNN modelo ResNet-29 para a obtenção dos matches . . 60
4.2.2 Resultados da DCNN modelo ResNet-29 para o reconhecimento de gênero . 61
5 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . 63
6 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
25
1 INTRODUÇÃO
1.1 Contextualização
1.2 Justificativa
1.3 Objetivos
A técnica que será utilizada neste trabalho é proposta por Vahid Kazemi e Josephine
Sullivan (KAZEMI; SULLIVAN, 2014); ela consiste basicamente na realização de uma série
de regressões em cascata que essencialmente localizam os pontos que compõe a estrutura
de uma face (Figura 1).
• obtenção de descritor.
31
Um ponto importante que deve ser falado sobre a construção das câmeras é sobre
o modo de funcionamento do obturador no momento de captura e o tempo de exposição
da matriz de sensores. Existem disponíveis no mercado duas opções de obturador: rolling
shutter e global shutter e câmeras com o tempo de exposição ajustável.
O obturador global shutter tem a grande vantagem de expor a matriz de sensores
CMOS, responsável pela captura da imagem, de maneira aproximadamente instantânea.
Já o obturador rolling shutter expõe a matriz de sensores CMOS por partes.
Em câmeras com o obturador de modelo rolling shutter ou com configuraçãoes de
tempo de exposição alto, nota-se a ocorrência do efeito rolling-shutter exemplificado pela
Figura 3.
É possível notar que a fotografia da bola, para o obturador rolling shutter, apresenta
uma distorção causada pelo movimento desta enquanto se adquiria a imagem, o resultado
seria semelhante no caso de longos tempos de exposição na captura de frames.
32
Uma vez que o presente trabalho faz uso de DCNN (do inglês Deep Convolutional
Neural Network) deve-se entender alguns conceitos básicos de ML. Parte-se de uma
breve introdução sobre Redes Neurais Artificiais (RNA), apresentando algumas técnicas e
nomes, como por exemplo, regressão logística, a função Softmax, codificação one-hot e
Cross entropy e na sequência serão introduzidos os fundamento teóricos de Aprendizagem
Profunda (do inglês Deep Learning) e Redes Neurais Convolucionais.
(ARTERO, 2009)
• (a) Sinais de entrada Ei : conjunto de dados que servirão de base para o treinamento
da rede;
Além das entradas Ei demonstradas acima, também é prevista a existência de uma entrada
extra (ωv ) chamada de viés (do inglês bias) que é responsável por determinar os graus
de liberdade de modo a permitir uma melhor adaptação da rede. A partir da análise
do diagrama apresentado é direta a obtenção da representação matemática do neurônio
artificial:
n
X
Y = f( Ei .ωi + ωv ) (2.1)
i=1
As funções de ativação é que permitem que pequenas mudanças nos pesos ωi e bias
ωv causem apenas pequenas alterações na saída Y e é este o ponto crucial que permite
que uma RNA aprenda.
34
1
f (x) = (2.2)
1 + e− x
A Função Linear Retificada (do inglês Rectified Linear Unit), Figura 7, é uma
função de ativação que pode ser considerada mais eficiente que as duas citadas acima, uma
vez que não utiliza expoentes. Pode ser denotada pela seguinte função:
exi
f (xi ) = Pk Xj
(2.5)
j=0 e
i = 0, 1, 2, ...k (2.6)
por agrupar somente dados linearmente separáveis. Uma vez que a maioria dos problemas
existentes não são lineramente separáveis, criou-se uma arquitetura mais robusta chamada
de Rede Neural Multicamadas (MLNN, do inglês Multi-layer Neural Network).
As MLNN (Figura 9) nada mais são que a distribuição de neurônios artificiais em
camadas, ou seja, são constituídas por uma ou mais camadas escondidas de neurônios e,
em geral são utilizadas problemas de classificação de padrões, otimização, robótica etc.
(SILVA; SPATTI; FLAUZINO, 2010). Cada Perceptron é apresentado na Figura 9 como
um nó, a primeira camada é a chamada camada de entrada, a última é a camada de saída
e todas as camadas intermediárias são chamadas de camada neural escondida.
É importante ressaltar que toda CNN é formada por uma sequência de camadas e
que cada uma dessas camadas presentes exercem uma função específica na propagação do
sinal de entrada. As camadas convolucionais são encarregadas da extração de atributos dos
volumes da entrada. As camadas de pooling são responsáveis pela redução da dimensão do
volume resultante após as camadas convolucionais atuarem e também são auxiliares no
que se diz respeito a tornar a representação invariante a pequenas translações na entrada.
As camadas totalmente conectadas são as encarregadas da propagação de sinal por meio
de multiplicações ponto a ponto e o uso de uma função de ativação. A saída da CNN
retorna a probabilidade da imagem da entrada pertencer a algumas das classes para qual
39
ou seja:
∞
X
(f1 ∗ f2 )(n) = f1 (τ )f2 (n − τ ) (2.8)
τ =−∞
I 0 (i, j) = (I ∗ B)(i, j) =
XX
I(m, n)B(i − m, j − n) (2.9)
m n
Conforme colocado anteriormente, cada um dos filtros presente nas camadas convo-
lucionais dão origem a uma estrutura que varre toda a extensão do volume de entrada
de maneira sequencial. Esta varredura ocorre em passos, percorrendo cada pixel em uma
imagem ou de posição para posição em matrizes. Quando se toma o passo como sendo
igual a um, a altura e a largura da camada imediatamente depois será igual à entrada. Já
se for considerado um passo igual a dois, a saída, ou seja, a camada imediatamente depois,
terá metade do tamanho da entrada. É evidente que quanto maior o passo definido, menor
o volume resultante, entretanto o uso de passos muito grandes pode comprometer algumas
caracterísiticas importantes.
2.8.2.3 Padding
Em geral, após uma CL, utiliza-se uma camada de pooling. O objetivo principal
dessa camada é realizar a redução progressiva da dimensão espacial do volume de entrada,
o que resulta na diminuição do custo computacional da rede e evita overfitting (LI;
KARPATHY, 2015), ou seja, evita que a rede neural não consiga generalizar muito bem
por considerar detalhes específicos demais das amostras utilizadas para treino. A operação
desta camada consiste na realização de uma subamostragem de cada um dos mapas de
ativação (ou volumes da entrada). A saída desta camada é o mesmo número de volumes
43
(PADARRAY, 2018)
50 10 33 44
1 55 12 31
AM =
0 123 155 177
13 65 57 90
55 44
AM 0 =
123 177
Nota-se pelo exemplo acima que AM’ foi reduzida na metade, ou seja, por um
fator de 2, tornando a entrada mais simples e menor para as próximas camadas da rede
neural. Percebe-se que esta operação faz com que a CNN se torne invariante a pequenas
tranformações ou distorções na imagem. Todavia, existe uma perda de informação que até
certo ponto pode ser benéfica para evitar o overfitting.
44
2.8.4.1 Dropout
As CNN clássicas são conhecidas por sua aplicação em apenas um canal. Ou seja,
supondo uma imagem sendo inserida na entrada na rede, esta imagem será repassada de
forma linear entre as camadas até que a última camada produza a saída.
Uma CNN de N canais se caracteriza por receber múltiplas entradas que são
processadas paralelamente até certo ponto dentro da rede, após, os fluxos de processamento
se encontram para que então se realize o processamento serial. Em geral, o ponto de
concatenação dos processamentos paralelos está localizado antes da primeira camada
fully-connected, em outras palavras, concentra-se entre as camadas de convolução.
2.10.1 AlexNet
Com origem no ano de 2012, a AlexNet foi criada por Krizhevsky e outros pesqui-
sadores (KRIZHEVSKY; SUTSKEVER; HINTON, 2012) que é constituída basicamente
por: cinco camadas convolucionais, camadas de max-pooling e três camadas totalmente
conectadas com dropout.
Esta arquitetura foi desenvolvida para poder classificar imagens em 1.000 possíveis
categorias; em 2012, foi vencedora do desafio de classificação ILSVRC 2012 (ImageNet
Large Scale Visual Recognition Challenge) (DENG et al., 2009).Neste evento regitrou-se
a primeira vez em que uma CNN atingiu o primeiro lugar e com uma diferença bem
significativa em relação ao segundo colocado . Logo, esta rede proposta representou um
avanço em relação às outras abordagens, inclusive porque inspirou uma série de outras
redes convolucionais para o reconhecimento de padrões.
2.10.2 ZF Net
Uma série de artigos foram submetidos à ILSVRC 2013 inspirados pelo sucesso da
AlexNet no evento de 2012. Na ocasião o vencedor foi a rede construída por Zeiler e Fergus
(ZEILER; FERGUS, 2014). A arquitetura desta rede baseou-se na AlexNet com leves
alterações e diminuição dos filtros e do passo na primeira camada. Entretanto, a maior
colaboração de Zeiler e Fergus se deu com o detalhamento e criação da técnica DeConvNet
(Deconvolutional Network). Este algoritmo consistia numa forma de se visualizar os mapas
de características das redes.
O cerne desta técnica desenvolvida é relacionar a cada uma das camadas con-
volucionais presentes na rede a DeConvNet, reponsável por transformar os mapas de
características em uma imagem constituída por pixels. A técnica DeConvNet funciona
com a realização de operações de pooling reversas até que se obtenha o tamanho original
da imagem recebida na entrada. Utilizando essa operação é possível verificar como cada
uma das camadas convolucionais visualiza a imagem de entrada e quais são as porções
da imagem que estão ativando os filtros. Na Figura 14 pode-se visualizar as regiões de
ativação e suas respectivas imagens de entrada.
A CNN VGG (do inglês Visual Geometry Group) foi proposta por Simonyan
e Zisserman (SIMONYAN; ZISSERMAN, 2014) em 2014 e foi a primeira a fazer uso
de filtros pequenos (3x3) em cada uma das camadas convolucionais. A inovação desta
arquitetura está justamente no tamanho dos filtros, uma vez que nas arquiteturas anteriores
46
trabalhava-se com filtros maiores. A colaboração da VGG está na ideia de que uma série
de convoluções 3x3 em sequência podem substituir de forma satisfatória os efeitos de
filtros de máscaras maiores o que resultava em um custo computacional menor. Testou-se
para tanto seis diferentes arquiteturas, elencadas na Figura 14, e o melhor desempenho
foi da arquitetura rotulada por D, constituída de treze camadas convolucionais, cinco
de max-pooling e três Fully-Connected. Na Figura 15 é possível visualizar as 6 diferentes
arquiteturas VGG, resssaltando que a arquitetura representada por D foi a que apresentou
melhor desempenho.
Pela figura 16, identifica-se que alguns blocos da rede eram executados em paralelo.
Esses blocos foram chamados de Inceptions (Figura 17) e nada mais são do que combinações
paralelas de camadas com filtros convolucionais de tamanhos: 1x1, 3x3 e 5x5. Este módulo
tinha como maior vantagem o uso dos filtros 1x1 na convolução, pois reduziam o número
48
A rede Resnet (HE et al., 2016a) nasce no ILSVRC 2015, proposta por pesquisadores
da Microsoft e, na ocasião, foi vencedora do evento. Surpreendentemente o desempenho
desta rede foi superior ao de seres humanos.
A Resnet consistia em 152 camadas e era formada por blocos residuais (do inglês
Residual Blocks), cuja ideia fundamental era fazer com que uma entrada x passasse por
uma série de operações chamadas de convolução-ReLu-Convolução. O resultado desta
operação, F (x), era adicionado à entrada original x, como ilustrado na Figura 18 e na
Equação 2.10 ilustradas abaixo.
e com isso perdiam a capacidade de generalização necessária para uma rede neural ter
bom desempenho, ou seja, boa acurácia no reconhecimento de padrões.
2.10.5.1 Resnet-34
Inspirada na Resnet (item 2.10.5) a Resnet-34 foi proposta em 2016 no paper Deep
Residual Learning for Image Recognition (HE et al., 2016b) e era composta por 34 camadas.
No artigo se diz que quando uma DCNN começa a convergir, surge um grande problema de
degradação. Para a correção deste problema insere-se o bloco residual; solução já exibida
pela Figura 18.
51
3 MATERIAIS E MÉTODOS
Nesta seção são apresentados os trabalhos desenvolvidos durante este projeto; sendo
que em cada uma das subseções serão tratados os assuntos relativos a cada etapa do
método proposto.
3.2 Imagens capturadas na entrada, saída dos compradores e saída dos não com-
pradores
3.3 Banco de imagens de entrada, saída dos compradores e saída dos não compra-
dores
Após a captura das imagens, elas são enviadas para um servidor local, cujas
configurações variavam de loja para loja, por meio de rede interna, já que as câmeras são
câmeras acessáveis por IP. No servidor as imagens são separadas em 3 diferentes pastas que
são acessadas pelo software responsável pelo processamento das imagens e informações.
Rotina executada nas imagens adquiridas na entrada e nas duas saídas, funciona
por meio da utilização de uma função presente na Dlib, biblioteca do Python, que funciona
fazendo o uso do algoritmo HOG.
3.4.1 Dlib
3.5 Pré-processamento
a imagem que passa pelo pré-processamento e a Figura 22 mostra as duas faces pré-
processadas.
3.5.1 Opencv
v
q u n
uX
d(p, q) = d(q, p) = (q1 − p1 )2 + (q2 − p2 )2 + ... + (qn − pn 2
) =t (q i − pi ) 2 (3.1)
i=1
de 128 valores pertencentes àquela pessoa. No caso de um não comprador são enviadas as
mesmas informações, porém para um banco diferente. Ao final desta etapa de escrita no
banco de dados limpa-se o espaço no buffer.
Por fim, em posse de todas as informações, data, hora de entrada, hora de saída,
gênero, idade e número de pessoas, derivam-se uma série de valores importantes para a loja
para medição e otimização dos resultados: tempo de permanência, tempo de permanência
por gênero, média de compradores, média de não compradores, média de compradores por
gênero, média de não compradores por gênero, taxa de conversão média, taxa de conversão
média por gênero e idade.
São levantados também dados indiretos: número de compradores por dia da semana,
número de compradores por hora, melhores dias em taxa de conversão, melhores meses em
taxa de conversão e melhores ações publicitárias etc.
Todos os parâmetros calculados acima são exibidos em televisões na sala dos
gestores para que eles possam realizar interpretações sobre o comportamento e medir o
desempenho da loja, cruzando estas informações obtidas com as vendas efetuadas, podendo
atuar em tempo real na otimização dos resultados.
59
4 RESULTADOS E DISCUSSÃO
O que diferencia cada uma das amostras acima é o ambiente onde as imagens foram
adquiridas; apesar das câmeras, em geral, serem as mesmas em todas as lojas, outros
fatores, inerentes a uma ambiente não controlado: iluminação, distância e ângulo, mudavam.
Portanto, observar que o HOG teve um desempenho semelhante nas três amostras, conferiu
mais confiança ao método.
Foram realizadas uma série de auditorias nos matches até que se ajustasse a
distância euclidiana ideal, relacionando o menor número de falsos positivos com o maior
número de matches verdadeiros. Para amostras com faces retiradas de diversas fontes,
mas perfeitamente frontais e boa iluminação a acurácia do software ficou próxima a 100%.
Entretanto, para ambientes não controlados com variações muito grandes de iluminação,
angulação e qualidade de imagem os resultados são exibidos abaixo.
Os números das acurácias das 3 amostras são, aparentemente baixos, porém foram
feitas uma série de constatações em relação ao ambiente:
• o restante dos erros não apresentaram nenhum padrão que pudesse ser considerado.
Foram feitas uma série de tentativas de correção de pessoas que utilizam óculos;
foram testados o processo de erosão, a aplicação de filtros Sobel e alguns métodos de
equalização de histograma, entretanto nenhum deles surtiu efeito para a melhora da
acurácia do sistema de reconhecimento facial.
61
Além dos matches entra saídas e entrada, o software também fazia o reconhecimento
de gênero por meio da comparação das faces com outras previamente classificadas como
homem ou mulher. A seguir são apresentados os resultados de uma série de auditorias
visuais realizadas para se avaliar o desempenho do software na classificação dos gêneros. A
matriz de confusão leva em consideração 2.546 imagens que geraram o seguinte resultado
Figura 24:
5 TRABALHOS FUTUROS
6 CONCLUSÃO
REFERÊNCIAS
DALAL, N.; TRIGGS, B. Histograms of oriented gradients for human detection. In:
2005 IEEE Computer Society Conference on Computer Vision and Pattern
Recognition (CVPR’05). [S.l.: s.n.], 2005. v. 1, p. 886–893 vol. 1. ISSN 1063-6919.
DENG, J. et al. Imagenet: A large-scale hierarchical image database. In: IEEE. Computer
Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on.
[S.l.], 2009. p. 248–255.
DESHPANDE, A. The 9 deep learning papers you need to know about (understanding
cnns part 3). University of California, Los Angeles (UCLA), 2016.
GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. [S.l.]: MIT Press,
2016. <http://www.deeplearningbook.org>.
HAYKIN, S. Redes neurais: Princípios e prática. 2ª. ed. [S.l.]: Bookman, 2001. ISBN
0132733501.
HE, K. et al. Deep residual learning for image recognition. In: Proceedings of the
IEEE conference on computer vision and pattern recognition. [S.l.: s.n.], 2016.
p. 770–778.
. Deep residual learning for image recognition. In: Proceedings of the IEEE
conference on computer vision and pattern recognition. [S.l.: s.n.], 2016. p.
770–778.
KING, D. High Quality Face Recognition with Deep Metric Learning. 2017.
LI, S. Z.; JAIN, A. K. Handbook of Face Recognition. 2nd. ed. [S.l.]: Springer
Publishing Company, Incorporated, 2011. ISBN 085729931X, 9780857299314.
PUEO, B. et al. High speed cameras for motion analysis in sports science. Universidad de
Alicante. Área de Educación Física y Deporte, 2016.
SIMONYAN, K.; ZISSERMAN, A. Very deep convolutional networks for large-scale image
recognition. arXiv preprint arXiv:1409.1556, 2014.
ZHAO, W. et al. Face recognition: A literature survey. ACM Comput. Surv., ACM,
New York, NY, USA, v. 35, n. 4, p. 399–458, dez. 2003. ISSN 0360-0300. Disponível em:
<http://doi.acm.org/10.1145/954339.954342>.