Escolar Documentos
Profissional Documentos
Cultura Documentos
CENTRO TECNOLÓGICO
DEPARTAMENTO DE ENGENHARIA ELÉTRICA E ELETRÔNICA
TÉCNICAS DE APRENDIZADO DE
MÁQUINA PARA DETECÇÃO DE
PESSOAS EM AMBIENTE INDUSTRIAL
Trabalho de Conclusão de Curso
submetido ao curso de Engenharia
Elétrica da Universidade Federal de
Santa Catarina como requisito para
aprovação da disciplina EEL7890
- Trabalho de conclusão de Curso
(TCC).
Orientador: Danilo Silva.
FLORIANÓPOLIS
2016
Ficha de identificação da obra elaborada pelo autor,
através do Programa de Geração Automática da Biblioteca Universitária da UFSC.
Inclui referências
Banca examinadora:
v
RESUMO
vii
ABSTRACT
ix
Lista de Figuras
xiii
Sumário
1 Introdução 1
1.1 Aprendizado de máquina . . . . . . . . . . . . . . . . . . 2
1.2 Métodos clássicos de detecção de objetos . . . . . . . . . 3
1.3 Aprendizado profundo . . . . . . . . . . . . . . . . . . . . 5
1.3.1 Perceptron multicamadas (MLP) . . . . . . . . . . 6
1.3.2 Redes convolucionais . . . . . . . . . . . . . . . . 7
1.4 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . 8
3.3 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1 Função custo . . . . . . . . . . . . . . . . . . . . 27
3.3.2 Stochastic Gradient Descent . . . . . . . . . . . . 28
3.3.3 Backpropagation . . . . . . . . . . . . . . . . . . 29
3.4 Redes convolucionais . . . . . . . . . . . . . . . . . . . . 30
3.5 Implementação . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Resultados 35
4.1 Medidas de avaliação . . . . . . . . . . . . . . . . . . . . 35
4.2 Desempenho dos Classificadores . . . . . . . . . . . . . . 38
4.2.1 SVM . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2 MLP . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.3 CNN . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.4 Discussão . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Sistema completo . . . . . . . . . . . . . . . . . . . . . . 43
5 Conclusão 49
Referências bibliográficas 53
CAPÍTULO 1
Introdução
11
12 CAPÍTULO 2. DETECÇÃO UTILIZANDO MÉTODOS TRADICIONAIS
quadro.
Aplica-se o método de máximos locais: a imagem é dividida em
quadrados de áreas iguais. Para cada quadrado percorre-se os pixels
e seleciona-se o maior deles, se este pixel for único no conjunto ele é
considerado um ponto candidato à cabeça. Esse processo resulta num
conjunto de pontos que determinam candidados à cabeças.
O tamanho dos quadrados que dividem a imagem é fundamental
nessa etapa: se forem muito grandes há alta probabilidade de se perder
cabeças visto que na cena existem máquinas altas. Por outro lado,
se forem muito pequenos, existirão muitos candidatos e o processo se
torna lento. Esse tamanho é calculado [11] utilizando a equação
f
sw = · sr (2.1)
d
onde f é a distância focal da câmera, d a distância média entre a câmera
e as pessoas e sr o tamanho padrão de cabeças.
Em seguida, é necessário determinar um quadrado que delimite a
cabeça de forma centralizada. Para obter o tamanho do quadrado,
novamente utiliza-se a equação (2.1), porém dessa vez utilizando o valor
do pixel encontrado para aquele candidato como altura. Tem-se então
um quadrado de tamanho apropriado com o pixel máximo no centro,
porém em poucos casos esse quadrado centraliza a cabeça.
Utiliza-se um processo de centralização baseado em mean shift, que
permite iterativamente localizar o máximo de uma função probabili-
dade dado uma máscara. Nesse caso, uma interpretação do procedi-
mento é mover o quadrado mantendo suas dimensões fixas para o cen-
tróide dos pixels que estão em seu interior. Intuitivamente, percebe-se
que os pixels de valor mais elevado terão maior peso, portanto, espera-
se que o quadrado seja centralizado sob parte central da cabeça.
Atualiza-se o centro do retângulo
∑
p ∈S(p) I(pi )pi
m(p) = ∑i (2.2)
pi ∈S(p) I(pi )
2.3 Descritores
Tendo a lista de candidatos é necessário obter uma descrição para
cada um deles. No trabalho de referência [11] se destacam dois des-
critores: grades simples e grades circulares. Um terceiro descritor é
proposto no presente trabalho para substituir o de grades circulares.
Observa-se que para todos os descritores a característica importante de
representação está nos desníveis da cabeça em relação ao resto do corpo,
que se dá de maneira aproximadamente circular. Portanto, objetiva-se
encontrar uma maneira de evidenciar quando e em que grau esse tipo
de padrão ocorre.
O primeiro descritor, grades simples, divide o candidato em blocos,
com uma quantidade ímpar em cada dimensão, como ilustrado na Fi-
gura 2.3. Para esse descritor em específico, fixou-se a quantidade de
blocos em 7 para cada dimensão com 49 blocos no total, pois avaliou-
se que para o tamanho dos candidatos esta foi a representação mais
adequada. Então calcula-se a média dos pixels em cada um dos blocos,
gerando uma matriz de médias 7x7. Em seguida, subtrai-se dessa ma-
triz o valor da média do bloco central. Por fim, gera-se um histograma
da matriz resultante com número de intervalos igual a 32. Esse vetor
de histograma é considerado o vetor de descrição (feature vector), cuja
soma é 49.
Já o segundo método, grades circulares, apresentado em [11], propõe
que uma série de blocos quadrados seja disposta circularmente sobre a
2.3. DESCRITORES 15
2.4 Classificação
onde a função
H1 (z) = max(0, 1 − z)
é utilizada para dar um peso negativo quanto maior for o erro do clas-
sificador (quando yi f (xi ) < 0).
O primeiro termo da equação (2.4) está associado à maximização da
margem e o segundo à minimização dos erros de treinamento, quando
uma amostra é classificada erroneamente. O parâmetro C controla
quanto se penaliza os erros de classificação diante da maximização da
margem, visto existir uma relação ideal entre eles.
O modelo de SVM apresentado até aqui é conhecido como linear.
Mesmo com o método de penalização de erros de classificação, datasets
complexos podem não ter um desempenho satisfatório. Dessa maneira,
é introduzido um modelo não linear para o classificador: transforma-se
as amostras xi em um novo espaço obtendo amostras Φ(xi ) que são, no
caso ideal, linearmente separáveis, como mostrado na Figura 2.6.
18 CAPÍTULO 2. DETECÇÃO UTILIZANDO MÉTODOS TRADICIONAIS
f (x) = wT Φ(x) + b.
∑
N
w= αi Φ(xi ) (2.5)
i=1
∑
N
f (x) = αi Φ(xi )Φ(x) + b. (2.6)
i=1
2.6 Implementação
l
Convenciona-se wjk como o peso da conexão entre o nó j da camada
l e o nó k da camada (l − 1), como ilustrado na Figura 3.1. De maneira
semelhante, blj e alj indicam o bias e a ativação (saída) do nó j da
camada l dados por
∑
alj = ϕ(zjl ) = ϕ l
wjk al−1
k + blj (3.1)
k
f (x, θ) = aL
0 (x, θ). (3.2)
1.0
0.8
0.6
0.4
0.2
0.0
10 5 0 5 10
3.2.1 Sigmóide
1
σ(z) = . (3.3)
1 + e−z
10
0
10 5 0 5 10
3.2.2 RELU
Observa-se que para valores positivos essa função tem uma deri-
vada constante e igual a um, proporcionando um gradiente considerável
sempre que o nó estiver ativo. Por outro lado, para valores negativos
considera-se o nó inativo e os pesos não são atualizados. Essas carac-
terísticas garantem boa propagação do gradiente, portanto essa função
de ativação é usualmente utilizada para as camadas intermediárias da
rede, mantendo, ainda, a ativação sigmóide para a camada de saída.
3.3. TREINAMENTO 27
3.3 Treinamento
Uma maneira de avaliar o desempenho de uma rede é através da
avaliação da chamada função custo. O processo de treinamento de
uma rede neural é justamente o problema de otimização dessa função.
Porém, diferentemente do caso do SVM, trata-se de uma otimização
não convexa, isto é, existem múltiplos mínimos locais para essa função
e diversas soluções podem ser encontradas, dependendo dos valores
iniciais dos parâmetros. Esse fato advém do caráter não linear das
funções de ativação nas diferentes camadas da rede.
Durante o treinamento otimiza-se os parâmetros θ de forma que
yi ≈ f (xi , θ) para o conjunto de treinamento {(xi , yi )|i = 1, . . . , N }.
Isso é feito através da minimização de uma função custo C(θ) por um
algoritmo de otimização chamado SGD (Stocastic Gradient Descent)
utilizando o gradiente de C obtido por um algoritmo de propagação
reversa de erros. Todos esses passos são descritos a seguir.
∑
N
C(θ) = Ci (θ) (3.5)
i
1 ∑[ ]
N
C(θ) = − yi ln f (xi , θ) + (1 − yi ) ln(1 − f (xi , θ)) (3.6)
N i
6 6
5 5
4 4
3 3
2 2
1 1
0 0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
f(xi , θ) f(xi , θ)
∆C ≈ ∇C · ∆θ (3.7)
3.3.3 Backpropagation
O método de otimização visto na Seção 3.3.2 faz uso do gradiente
de função custo ∇C, porém não mostra como calcular essa quantidade.
Para isso é necessário encontrar as derivadas da função custo em relação
aos parâmetros individuais de cada elemento da rede, w e b. De fato,
utilizar as ferramentas do cálculo se mostra um desafio na prática, visto
a complexidade da função custo em termos da função da rede f (x, θ)
que combina todas as não linearidades encadeadas nas camadas.
Para contornar esse problema, uma solução foi o algoritmo de pro-
pagação reversa de erros (backpropagation), já existente na década de
1979 porém proposto mais recentemente em [6]. Esse algoritmo for-
nece um método eficiente de calcular as derivadas da função custo em
relação a quaisquer parâmetros w e b da rede.
Primeiramente define-se uma grandeza intermediária chamada de
erro da camada l, δ l , interpretada como a contribuição da camada l
30 CAPÍTULO 3. CLASSIFICAÇÃO UTILIZANDO APRENDIZADO PROFUNDO
δ L = (aL − y) ⊙ ϕ′ (z L ) (3.10)
′
l
δ = ((w l+1 T l+1
) δ ) ⊙ ϕ (z )
l
(3.11)
∂C
∂blj
= δjl (3.12)
∂C
l
∂wjk
= al−1
k δj
l
(3.13)
a1 = ϕ(w ∗ a0 + b) (3.14)
32 CAPÍTULO 3. CLASSIFICAÇÃO UTILIZANDO APRENDIZADO PROFUNDO
3.5 Implementação
Resultados
Classificado
0 1
0 TN FP
Real
1 FN TP
FP
TFP = . (4.2)
TN + FP
Dessa forma, o classificador ideal indicaria uma TVP unitária com TFP
nula, o que caracteriza o ponto (0, 1).
A princípio cada classificador avaliado em um conjunto de dados
corresponde a um ponto no espaço ROC. Entretanto existem classifi-
cadores cuja saída é a probabilidade da amostra ser positiva. Nesses
casos é possível escolher um limiar de probabilidade T acima do qual
se considera uma amostra como positiva. Cada escolha desse limiar
corresponderá a um ponto no espaço ROC e variando esse parâmetro
é possível obter uma curva nesse espaço. Para facilitar a distinção en-
tre diferentes classificadores um subconjunto de pontos dessa curva são
destacados com marcadores.
Comparar diferentes classificadores não é trivial pois é uma tarefa
multiobjetivo que envolve simultaneamente maximizar a TVP e mini-
mizar TFP. Portanto só é possível afirmar que um classificador é melhor
do que outro sse sua TVP é maior e sua TFP é menor que a do outro,
nesse caso diz-se que o primeiro domina o segundo. Na prática, entre-
tanto, pode-se utilizar a métrica Area Under Curve, AUC, que mede a
área sob a curva ROC, para facilitar essa comparação, especialmente
quando a região de operação não é especificada.
Um requerimento específico para a aplicação em questão é que a
linha de produção se mantenha em funcionamento o maior tempo pos-
sível, para tanto deve-se minimizar a quantidade de falsos positivos FP,
que significam cabeças incorretamente identificadas que interrompam
a produção sem necessidade. Assim, demanda-se uma TFP menor que
38 CAPÍTULO 4. RESULTADOS
0 1 0 1
0 76.357 2.099 0 77.035 1.421
1 5.975 15.568 1 3.585 17.959
Tabela 4.4: Anéis concêntricos, 18
dimensões, conjunto de treinamento
reduzido
0 1
0 77.842 0.614
1 1.938 19.606
4.2.1 SVM
0.8
True Positive Rate
0.6
0.4
Tabela 4.5: Anéis concêntricos com Tabela 4.6: Anéis concêntricos com
18 dimensões, conjunto treinamento 18 dimensões, conjunto teste
0 1 0 1
0 88.971 0.036 0 86.243 5.853
1 0.711 10.282 1 5.314 2.590
4.2.2 MLP
Na estrutura MLP foram realizados testes com duas e três camadas
intermediárias, com ativação RELU e um único perceptron de saída
com ativação sigmoide indicando a probabilidade da amostra ser uma
cabeça. Na configuração de duas camadas foram utilizados 512 e 256
4.2. DESEMPENHO DOS CLASSIFICADORES 41
Tabela 4.7: Grades simples, conjunto Tabela 4.8: Grades simples, conjunto
treinamento teste
0 1 0 1
0 88.890 0.117 0 82.240 9.855
1 0.324 10.669 1 6.088 1.816
Tabela 4.9: MLP, conjunto treina- Tabela 4.10: MLP, conjunto treina-
mento extendido T = 0.5 mento extendido T = 0.9
0 1 0 1
0 86.004 2.562 0 87.549 1.018
1 0.615 10.818 1 1.491 9.942
Tabela 4.11: MLP, conjunto teste Tabela 4.12: MLP, conjunto teste
T = 0.5 T = 0.9
0 1 0 1
0 83.720 8.375 0 88.631 3.465
1 0.336 7.568 1 0.841 7.064
4.2.3 CNN
Tabela 4.13: CNN, T = 0.5, con- Tabela 4.14: CNN, T = 0.9, con-
junto treinamento extendido junto treinamento extendido
0 1 0 1
0 88.377 0.189 0 88.472 0.095
1 0.136 11.297 1 0.669 10.765
Tabela 4.15: CNN, T = 0.5, con- Tabela 4.16: CNN, T = 0.9, con-
junto de teste junto de teste
0 1 0 1
0 88.643 3.094 0 90.515 1.581
1 0.563 7.700 1 1.144 6.761
4.2.4 Discussão
Verifica-se as curvas ROC dos classificadores correspondentes ava-
liados no conjunto de teste na Figura 4.3. Observando a região de
interesse (TFP menor que 10%) fica claro que os métodos profundos,
com CNN e MLP, dominam os superficiais. Em mais detalhes, MLP
domina entre TFP de 0.1% a 1.3%, a partir de onde CNN passa a do-
minar. Para especificar qual o melhor classificador entre os profundos
é necessário saber exatamente a região de operação em que se deseja
atuar.
Observa-se que muitos classificadores obtiveram um desempenho
elevado no conjunto de treinamento, em especial as redes convolucionais
que obtiveram acurácia quase unitária (sob dataset balanceado) con-
forme tabelas 4.13 e 4.13, demonstrando a alta capacidade do modelo.
Nota-se, entretanto, que há grande discrepância entre o desempenho
dos classificadores no conjunto de treinamento e de teste nos métodos
superficiais, o que caracteriza overfitting, como apontam as tabelas 4.5
e 4.6.
Para esclarecer a presença de overfitting, utiliza-se uma curva de
validação da Figura 4.2, que mostra como o desempenho do conjunto
4.3. SISTEMA COMPLETO 43
0.8 0.8
True Positive Rate
0.4 0.4
∏
n
P [y = 1] = 1 − (1 − pi ) (4.4)
i
P [y = 1] = max{p1 , . . . , pn }. (4.5)
0.8 0.8
True Positive Rate
0.4 0.4
(a) (b)
ROC fullsystem comparison
1.0
0.8
True Positive Rate
0.6
0.4
(c)
Conclusão
Trabalhos futuros
[3] Kevin Murphy, Antonio Torralba, Daniel Eaton, and William Fre-
eman. Object Detection and Localization Using Local and Global
Features, pages 382–400. Springer Berlin Heidelberg, Berlin, Hei-
delberg, 2006.
[4] B Smith and R Gosine. Support vector machines for object recog-
nition, 2001.
[7] Ian Goodfellow Yoshua Bengio and Aaron Courville. Deep lear-
ning. Book in preparation for MIT Press, 2016.
[8] Vinod Nair and Geoffrey E Hinton. Rectified linear units im-
prove restricted boltzmann machines. In Proceedings of the 27th
International Conference on Machine Learning (ICML-10), pages
807–814, 2010.
[16] Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haffner.
Gradient-based learning applied to document recognition. Proce-
edings of the IEEE, 86(11):2278–2324, 1998.
[19] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic
optimization. arXiv preprint arXiv:1412.6980, 2014.