Você está na página 1de 80

UNIVERSIDADE FEDERAL DO ABC

PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

Daniel Gonçalves da Silva

Autenticação utilizando Atributos Faciais


obtidos por Redes Neurais Convolucionais
em Sistema de Gestão de Aprendizado

Santo André - SP
2021
Daniel Gonçalves da Silva

Autenticação utilizando Atributos Faciais obtidos por


Redes Neurais Convolucionais em Sistema de Gestão
de Aprendizado

Dissertação de Mestrado apresentada


ao Programa de Pós-Graduação em Ciên-
cia da Computação da Universidade Fe-
deral do ABC (UFABC), como parte dos
requisitos necessários para a obtenção do
Título de Mestre em Ciência da Computa-
ção.

Universidade Federal do ABC – UFABC


Programa de Pós-Graduação em Ciência da Computação

Orientador: Francisco de Assis Zampirolli

Santo André - SP
2021
Sistema de Bibliotecas da Universidade Federal do ABC
Elaborada pelo Sistema de Geração de Ficha Catalográfica da UFABC
com os dados fornecidos pelo(a) autor(a).

Silva, Daniel Gonçalves da


Autenticação utilizando Atributos Faciais obtidos por Redes Neurais
Convolucionais em Sistema de Gestão de Aprendizado / Daniel Gonçalves
da Silva. — 2021.

81 fls.

Orientador: Francisco de Assis Zampirolli

Dissertação (Mestrado) — Universidade Federal do ABC, Programa de Pós


Graduação em Ciência da Computação, Santo André, 2021.

1. Redes Neurais Convolucionais. 2. Verificação Facial. 3. Plugin para


Moodle. 4. ResNet. 5. Biometria. I. Assis Zampirolli, Francisco de. II.
Programa de Pós-Graduação em Ciência da Computação, 2021. III. Título.
MINISTÉRIO DA EDUCAÇÃO
Fundação Universidade Federal do ABC
Avenida dos Estados, 5001 Bairro Santa Terezinha Santo André SP
CEP 09210-580 · Fone: (11) 4996-0017

FOLHA DE ASSINATURAS

Assinaturas dos membros da Banca Examinadora que avaliou e aprovou a Defesa de Dissertação
de Mestrado do candidato, DANIEL GONÇALVES DA SILVA realizada em 15 de Dezembro de
2021:

_________________________________
Prof.(a) CARLOS DA SILVA DOS SANTOS
UNIVERSIDADE FEDERAL DO ABC

_________________________________
Prof.(a) EDSON PINHEIRO PIMENTEL
UNIVERSIDADE FEDERAL DO ABC

_________________________________
Prof.(a) JOSE ARTUR QUILICI GONZALEZ
UNIVERSIDADE FEDERAL DO ABC

_________________________________
Prof.(a) JULIANA CRISTINA BRAGA
UNIVERSIDADE FEDERAL DO ABC

_________________________________
Prof.(a) FRANCISCO DE ASSIS ZAMPIROLLI
UNIVERSIDADE FEDERAL DO ABC - Presidente

* Por ausência do membro titular, foi substituído pelo membro suplente descrito acima: nome completo, instituição e assinatura
Agradecimentos

À Deus, por me permitir realizar mais um sonho, por não me deixar desistir
nos momentos mais desgastantes e difíceis deste trabalho. Sou eternamente grato
por Sua graça, bondade e infinito amor.
Ao meu orientador Prof. Dr. Francisco de Assis Zampirolli pelo profissiona-
lismo, dedicação, competência e orientação. Sem dúvidas, sua confiança, paciência e
incentivo foram essenciais, tanto para as as publicações realizadas em congressos e
desenvolvimento técnico deste trabalho, como para meu desenvolvimento acadêmico,
profissional e pessoal.
Aos professores do curso de Ciência da Computação da UFABC, por todo
o conteúdo ensinado com excelência e profissionalismo, e que de alguma forma me
auxiliou no desenvolvimento acadêmico e obtenção do conhecimento, em especial os
professores doutores: Paulo Henrique Pisani, Fabrício Olivetti de França, Carlos da
Silva dos Santos, Carla Negri Lintzmayer, Jesús Mena-Chalco e Edson Pimentel.
À minha mãe, Valcir Camilo, por todo apoio e sempre me incentivar a progredir
seja onde eu esteja. E a minha avó, Francisca Marinho, por seus ensinamentos em
minha vida.
À minha amada, Camila Pal, pelo seu incrível apoio e incentivo. Além de
palavras, você demonstrava que estava do meu lado seja revisando meu texto, seja
assistindo minhas apresentações.
Ao meu amigo Silas Justiniano pelas ajudas e explicações técnicas. Você sem-
pre foi bastante solícito em ajudar ou pesquisar sobre qualquer tema de computação.
Aos amigos e colegas de trabalho que de alguma forma opinaram, incentivaram
e auxiliaram para que este trabalho fosse realizado.
O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoa-
mento de Pessoal de Nível Superior - Brasil (CAPES) - Código de Financiamento
001.
“Não há maior obstáculo ao conhecimento do que o orgulho, e nenhuma condição
mais essencial do que a humildade.”
(John Stott)
Resumo
Avaliações online estão cada vez mais presentes. Isso é ainda mais evidente com
a grande demanda resultante da pandemia de 2020. No entanto, verificar a au-
tenticidade do avaliado é uma tarefa que ainda precisa de novas soluções. Neste
sentido, este trabalho apresenta dois plugins para o Moodle, um Sistema de Gestão
da Aprendizagem amplamente utilizado nos diversos níveis do ensino. O primeiro,
chamado Face Verification Quiz, é para o registro e verificação facial do usuário
no Moodle, em uma atividade de questionário com esse recurso habilitado. O segundo,
chamado Face Verification Report, é para mostrar um relatório de acessos
nesta atividade. Redes Neurais Convolucionais Profunda treinadas foram usadas
para detectar rapidamente o contorno da face através de pixels dos olhos, nariz e
boca. Outra rede foi utilizada para a verificação facial, extraindo um vetor de 128
dimensões de cada face por meio da arquitetura de rede neural ResNet-34. Esses
plugins foram testados com 31 usuários. Os resultados apresentam a viabilidade
de uso, com aprovação média de 75% através de um questionário aplicado em 16
usuários em atividades opcionais online realizadas no Moodle no final de 2020 e início
de 2021. Apesar dos desafios apresentados pela pandemia COVID-19, as soluções
apresentadas poderão ser úteis após esse período de isolamento.

Palavras-chaves: Redes Neurais Convolucionais, Verificação Facial, plugin para


Moodle, ResNet, Biometria.
Abstract
Online assessments are increasingly present. This is even more evident with the great
demand resulting from the 2020 pandemic. However, verifying the authenticity of
the student is a task that still needs new solutions. In this sense, this work presents
two plugins for Moodle, a Learning Management System widely used in different
levels of education. The first, called Face Verification Quiz, is for the user’s
registration and facial verification on Moodle, in a quiz activity with this feature
enabled. The second, called Face Verification Report, is to show a report of
attempted activities. Trained Deep Convolutional Neural Networks were used to
quickly detect the contour of the face through pixels of the eyes, nose and mouth.
Another network was used for face verification, extracting a 128-dimensional vector
from each face using the ResNet-34 neural network architecture. These plugins have
been tested with 31 users. The results show the feasibility of using this plugin with
75% approval through a questionnaire applied to 16 students in optional online
activities carried out in Moodle in late 2020 and early 2021. Despite the challenges
presented by the COVID-19 pandemic, the solutions presented can be useful after
this period of isolation.

Keywords: Convolutional Neural Networks, Face Verification, plugin for Moodle,


ResNet, Biometric.
Lista de ilustrações

Figura 1 – Modelo RGB de Cores . . . . . . . . . . . . . . . . . . . . . . . . 6


Figura 2 – Filtragem espacial . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Figura 3 – Aplicação de filtros de bordas . . . . . . . . . . . . . . . . . . . . 8
Figura 4 – Neurônio biológico. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Figura 5 – Perceptron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Figura 6 – Função Sigmóide. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figura 7 – Função Tangente Hiperbólica. . . . . . . . . . . . . . . . . . . . . 11
Figura 8 – Função ReLU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figura 9 – Classificação do problema XOR . . . . . . . . . . . . . . . . . . . 12
Figura 10 – Perceptron de Múltiplas Camadas . . . . . . . . . . . . . . . . . . 13
Figura 11 – Campos receptivos locais . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 12 – Simulação de uma operação de convolução 1D . . . . . . . . . . . 15
Figura 13 – Operação de Convolução . . . . . . . . . . . . . . . . . . . . . . . 16
Figura 14 – Operação de Convolução com padding . . . . . . . . . . . . . . . 16
Figura 15 – Operação de Convolução com padding e stride . . . . . . . . . . . 17
Figura 16 – Operação de Max-Pooling . . . . . . . . . . . . . . . . . . . . . . 18
Figura 17 – Tarefas de Visão Computacional. . . . . . . . . . . . . . . . . . . 19
Figura 18 – Filtros para detecção de bordas. . . . . . . . . . . . . . . . . . . . 20
Figura 19 – Filtros para detecção de linhas. . . . . . . . . . . . . . . . . . . . 20
Figura 20 – Imagem integral . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 21 – Pipeline da rede MTCNN . . . . . . . . . . . . . . . . . . . . . . 21
Figura 22 – Bloco residual da arquitetura ResNet. . . . . . . . . . . . . . . . 22
Figura 23 – Exemplos de arquitetura de rede para ImageNet. Fonte: He et al.
(2016) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 24 – Função de perda Triplet . . . . . . . . . . . . . . . . . . . . . . . 25
Figura 25 – Caso de Uso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 26 – Diagrama de Classe. . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figura 27 – Diagrama Entidade Relacionamento . . . . . . . . . . . . . . . . 35
Figura 28 – Diagrama de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figura 29 – Resumo do processo utilizado pelo plugin do Moodle, Face Ve-
rification Quiz . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 30 – Arquitetura do sistema . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 31 – Processo de cadastro facia . . . . . . . . . . . . . . . . . . . . . . 39
Figura 32 – Processo de verificação facial . . . . . . . . . . . . . . . . . . . . 40
Figura 33 – Recortes de telas no Moodle no momento de registro de face . . . 40
Figura 34 – Recortes de telas no Moodle no momento de verificação de face . 41
Figura 35 – Recorte de tela para acessar o relatório . . . . . . . . . . . . . . . 42
Figura 36 – Recorte de tela do relatório de tentativas, Face Verification
Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 37 – Recorte de tela da atividade criada no Moodle . . . . . . . . . . . 46
Figura 38 – Recorte de tela da atividade de questionário criada. . . . . . . . . 47
Figura 39 – Termo de Esclarecimentos para responder o questionário . . . . . 47
Figura 40 – Representação tridimensional utilizando ACP (PCA) . . . . . . . 49
Figura 41 – Matriz de confusão com limiar padrão (0.60) . . . . . . . . . . . . 49
Figura 42 – Matriz de confusão com limiar rigoroso (0.55) . . . . . . . . . . . 50
Figura 43 – Estatísticas sobre o navegador utilizado . . . . . . . . . . . . . . . 50
Figura 44 – Estatísticas sobre tempo para habilitar a webcam . . . . . . . . . 51
Figura 45 – Estatísticas sobre tempo para realizar o cadastro/verificação da foto 51
Figura 46 – Estatísticas sobre tempo para habilitar o questionário após a
verificação da foto . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Lista de tabelas

Tabela 1 – Tabela dos métodos utilizados nos trabalhos relacionados . . . . . 31


Tabela 2 – Taxa de Acurácia por método para o dataset LFW . . . . . . . . 31
Tabela 3 – Tabela contendo as notas dos usuários nas questões obrigatórias. 52
Lista de abreviaturas e siglas

BCC Bases Computacionais da Ciência

CNN Rede Neural Convolucional (Convolutional Neural Network)

DCNN Deep Convolutional Neural Network

DML Deep Metric Learning

FVQ Face Verification Quiz

GPL General Public License

MLP Perceptron de Múltiplas Camadas (Multilayer Perceptron)

MTCNN Multi-Task Cascaded Convolutional Neural Network

R-CNN Region Based Convolutional Neural Networks

ReLU Rectified Linear Unit

RNA Rede Neural Artificial

RGB Vermelho, Verde e Azul (Red, Green and Blue)

SDD Single ShotMultibox Detector

SGA Sistema de Gestão de Aprendizagem

TCLE Termo de Consentimento Livre e Esclarecido

TLU Threshold Logic Unit

VPL Virtual Programming lab for Moodle


Lista de símbolos

ϕ Letra grega Varphi

∝ Proporcionalidade

Raiz
P
Somatório
Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Problematização . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Definições: Autenticação, Autorização, Identificação, Verifica-
ção e Reconhecimento Facial . . . . . . . . . . . . . . . . . . . . 1
1.3 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . 4

2 FUNDAMENTOS TEÓRICOS . . . . . . . . . . . . . . . . . . 5
2.1 Imagens Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Redes Neurais Artificiais (RNA) . . . . . . . . . . . . . . . . . . 6
2.2.1 Neurônio Biológico . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Neurônio Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 O Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.4 Funções de Ativação . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.5 Problema XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.6 Perceptron de Múltiplas Camadas . . . . . . . . . . . . . . . . . . . 12
2.2.7 Redes Neurais Convolucionais . . . . . . . . . . . . . . . . . . . . . 13
2.2.8 Extração de Características . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.8.1 Operação de Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Aprendizagem Profunda para Visão Computacional . . . . . . . 18
2.4 Métodos de Detecção de Objetos . . . . . . . . . . . . . . . . . 19
2.4.1 Algoritmo Viola-Jones . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.2 MTCNN (Multi-Task Cascaded Convolutional Neural Network) . . . . 20
2.5 Método de Classificação de Imagem . . . . . . . . . . . . . . . . 21
2.5.1 Residual Network (ResNet) . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 Aprendizado Profundo de Métricas . . . . . . . . . . . . . . . . 24
2.7 Biblioteca Face-api.js . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8 A Plataforma Moodle . . . . . . . . . . . . . . . . . . . . . . . . 25
2.8.1 Módulo Questionário (Quiz) . . . . . . . . . . . . . . . . . . . . . . 26
2.8.2 Componente quiz access rule . . . . . . . . . . . . . . . . . . . . . . 26
2.8.3 Componente quiz report . . . . . . . . . . . . . . . . . . . . . . . . 27
3 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . 29

4 DESENVOLVIMENTO DO PROTÓTIPO . . . . . . . . . . . . 33
4.1 Engenharia de Software . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Modelagem da Solução . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.1 Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.2 Diagrama de Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.3 Diagrama Entidade Relacionamento (DER) . . . . . . . . . . . . . . . . 34
4.1.2.4 Diagrama de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.3 Requisitos Não-Funcionais . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Fluxograma da Solução Proposta . . . . . . . . . . . . . . . . . . . . 37
4.1.5 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Apresentação da Solução . . . . . . . . . . . . . . . . . . . . . . 38
4.2.1 Cadastro Facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 Verificação Facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.3 Funcionalidade de Relatório do Plugin . . . . . . . . . . . . . . . . . 41
4.2.4 Repositório do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 EXPERIMENTOS E DISCUSSÕES . . . . . . . . . . . . . . . 45
5.1 Comitê de Ética . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Contexto dos Experimentos . . . . . . . . . . . . . . . . . . . . . 45
5.2.1 Primeiro Experimento . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2.2 Segundo Experimento . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3 Avaliação da Eficácia . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.1 Representação Tridimensional dos Dados Faciais . . . . . . . . . . . . 48
5.3.2 Acurácia do Método . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4 Avaliação da Usabilidade do FVQ . . . . . . . . . . . . . . . . . 50
5.5 Discussões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.6 Limitações do Trabalho . . . . . . . . . . . . . . . . . . . . . . . 52

6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . 55

Conclusão e Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . 55

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1

1 Introdução

Neste capítulo, apresentamos o problematização, definições, contextualização,


objetivo e justificativa deste trabalho. Logo após, definiremos o problema de interesse
no campo de biometria e verificação facial por meio de imagens digitais.

1.1 Problematização
O cenário atual da pandemia intensificou o problema de autentificação de
usuário (tarefa de verificar a identidade deste). Com isso, avaliações e exames estão
sendo aplicados de forma online de modo que nem sempre é possível garantir que
o aluno não se passou por outro no momento da resolução. Dessa forma, realizar
a verificação da identidade do aluno pode minimizar que uma pessoa se passe por
outra.

1.2 Definições: Autenticação, Autorização, Identificação, Veri-


ficação e Reconhecimento Facial
Afim de fornecer uma compreensão dos cincos termos principais deste trabalho,
iniciamos definindo cada um deles:

• Autenticação: para acessar um conteúdo que não é público, um usuário precisa


autenticar-se para obter o acesso. Adicionalmente, é fornecido um identificador
único para indicar a conta que deseja utilizar junto com as credenciais do login
(WILSON; HINGNIKAR, 2019).

• Autorização: é a credencial que informa quais ações uma entidade ou usuário


pode realizar e acessar, ou quaisquer vantagens a que tem direito (GONZALEZ
et al., 2013).

• Identificação facial: tem como propósito identificar quem a pessoa é, tendo


como correspondência de 1:N (um-para-N). Assim, a entrada é comparada com
todos os registros de cadastrado no banco de dados (VACCA, 2007).

• Verificação facial: é geralmente referido a correspondência de 1:1 (um-para-um).


Neste caso, a entrada é apenas comparada com o registro Moodle de cadastro
do identificador (VACCA, 2007).
2 Capítulo 1. Introdução

• Reconhecimento facial: O reconhecimento facial é um termo amplo, podendo


referenciar a tarefa de identificação ou verificação facial (JAIN; LI, 2011;
HJELMÅS; LOW, 2001).

1.3 Contextualização
A pandemia do Covid-19 veio deixar ainda mais desafiadora essa importante
atividade, tendo agora que ser realizada de forma remota (RAHIM, 2020), pelas
exigências do distanciamento social. Sabemos também que a falta de motivação é um
dos principais fatores de desistência em atividades de ensino a distância (KUOSA
et al., 2016). Além disso, temos que lidar com problemas sócio-econômicos, na qual
estudantes de baixa renda têm dificuldades de acesso ao computador e/ou à internet.
Novas Tecnologias da Informação e Comunicação (TIC) estão sendo criadas
ou aprimoradas, principalmente em avaliações remotas, situação em que o avaliador
e o avaliado estão distantes fisicamente, possibilitando que o avaliado se passe por
outra pessoa. Neste sentido, Sistemas de Gestão da Aprendizagem (SGA), como o
Moodle (<moodle.org>) estão sendo utilizados intensamente, em todos os níveis da
educação. O Moodle é um popular ambiente para auxiliar os professores e estudantes
a manterem contato de forma virtual, disponibilizando material didático, meios de
comunicação e atividades avaliativas (PRESEDO et al., 2015). O Moodle, por ser
de código aberto, permite que várias pessoas possam fazer contribuições no sistema,
como a criação de plugins para melhorar ainda mais os recursos disponíveis.
Atualmente, métodos de verificação de identidade são bastantes comuns no
contexto de aplicação de exames ou provas de seleção no modo presencial. Muitos dos
métodos de verificação, baseiam-se em uma checagem manual da face do indivíduo
com a foto do documento de identificação apresentada por ele. Assim, o objetivo
principal desta verificação é certificar-se que o indivíduo é quem ele diz ser. Desta
forma, temos apenas duas opções para responder a cada verificação: (1) verdade, é
a pessoa quem ela diz ser, ou (2) falso, não é pessoa quem ela diz ser pois não há
similaridade entre o indivíduo e a foto apresentada. Vale lembrar, que o objetivo dos
métodos de verificação de identidade não é identificar o indivíduo mas unicamente
verificar a identidade apresentada. Como exemplo de implementação de um sistema de
verificação online, a verificação facial poderia ser associada a uma consulta ao banco
de dados para recuperar a foto do indivíduo cadastrado previamente, e compará-la
com o indivíduo apresentado de modo que verifique se a pessoa é a mesma ou não.
Já a identificação facial, poderia ser associado a uma consulta as fotos de todos
indivíduos cadastrados previamente de modo que a identidade do indivíduo seja
1.4. Objetivo 3

reconhecida pela similaridade de uma identidade encontrada (KORTLI et al., 2020).


Assim, a tarefa de reconhecimento engloba verificação e identificação, e esta
tem como objetivo retornar quem é a pessoa, consultando-a num banco de dados de
pessoas (SUNDARARAJAN; WOODARD, 2018). Como o objetivo do nosso trabalho
é ter a resposta de um reconhecimento em tempo real, iremos abordar apenas a
tarefa de verificação facial.
A Visão Computacional aliada ao Aprendizagem de Máquina pode combinar
técnicas de aprendizagem com o uso de CNNs e Processamento Digitais de Imagens,
de modo que auxilie diversas tarefas como: (1) segmentação e classificação de imagens,
(2) detecção de objetos, (3) reconhecimento de padrões etc. Principalmente na tarefa
de classificação de imagens, as CNNs têm demonstrado ótimos resultados, e muitas
vezes os melhores desempenhos, entre os diferentes tipos de redes neurais (Guo et
al., 2017). Além disso, se tornou bastante popular na literatura por ser capaz de
lidar com uma quantidade de dados com milhões de faces (Albawi; Mohammed;
Al-Zawi, 2017). As CNNs são o estado da arte para tarefas de reconhecimento e
verificação facial, conseguindo superar a capacidade humana na tarefa de verificação
facial alcançando 99,63% de acurácia (SUNDARARAJAN; WOODARD, 2018).
Nesse sentido, Silva e Zampirolli (2020) apresentou no evento APPS.EDU um
protótipo inicial de um plugin, chamado Face Verification Quiz (FVQ), para a
verificação facial durante uma atividade no Moodle.
De modo que fosse possível avaliar a ferramenta, foram realizados experimentos
que envolveram voluntários, e por isso, foi-se necessário submeter uma consulta sobre
os experimentos ao Comitê de Ética da UFABC (CEP).

1.4 Objetivo
Além de identificar na literatura o estado da arte em verificação facial, o
objetivo principal desta pesquisa é desenvolver uma ferramenta para autentificação
de usuário por meio de verificação facial para o Sistema de Gestão de Aprendizagem
Moodle. Como complemento, a ferramenta deve gerar informações sobre inconsistência
na autenticação de modo que os acessos possam ser analisados.

Objetivos Específicos

• Identificar (na literatura) os métodos de verificação mais adequados para a


solução proposta.
4 Capítulo 1. Introdução

• Validar o método de verificação facial tanto para detecção facial, como para
extração de características faciais.

• Avaliar a usabilidade da ferramenta com os usuários.

• Analisar a acurácia da verificação facial da ferramenta por meio de experimento.

1.5 Justificativa
A verificação facial online é importante em avaliações em geral principalmente
no contexto da pandemia do Covid-19. Este trabalho apresenta uma solução inovadora
para o Sistema de Gestão de Aprendizagem (SGA) do Moodle de forma gratuita,
utilizando o estado da arte no reconhecimento e verificação facial. Este recurso
pode ser utilizado em diferentes instituições que tem como objetivo final avaliar
as competências e habilidades do estudante através de uma plataforma de ensino
digital.

1.6 Organização do Texto


Este trabalho está organizado como segue: no Capítulo 2 apresenta os funda-
mentos de imagens digitais e fundamentos de redes neurais. O Capítulo 3 apresenta
trabalhos correlatos. O Capítulo 4 apresenta materiais e métodos para as realizações
dos experimentos, apresentados no Capítulo 5. Finalmente, o Capítulo 6 apresentamos
as conclusões e trabalhos futuros.
5

2 Fundamentos Teóricos

Neste capítulo será apresentado conceitos fundamentais sobre Imagens Digitais


e Redes Neurais Artificiais (RNA). Estas duas grandes áreas são essenciais na solução
de detecção e verificação facial em imagens digitais. Desta forma, falaremos a seguir,
na Seção 2.1, como uma imagem RGB é constituída digitalmente.

2.1 Imagens Digitais


Modelo RGB de cores
Uma imagem colorida pode ser constituída por três canais de cores os quais
são sensíveis, respectivamente, as cores: vermelho, verde e azul, RGB (GONZALEZ;
WOODS, 2009). Tais canais podem variar entre 0 a 255 o valor de cada pixel na
imagem, onde 0 é intensidade de cor desligada e 255 é a intensidade mais forte do
canal. A Figura 1 exemplifica (a) uma imagem com escala de cinza composta por um
canal de cor, e (b) uma imagem colorida composta pelos três canais de cores (RGB).
Nesta imagem de escala cinza temos 6 pixels de largura por 6 de altura, sendo assim,
temos um total de 36 características ou features (são dados que representam medidas
obtidas da imagem considerando textura, objetos etc). Na Figura (b), temos uma
imagem 3D representada por 3 canais de cores RGB (vermelho, verde e azul) na
imagem colorida onde cada canal de cor possui valores entre 0 a 255 cada pixel. Desta
forma, temos 3 vezes mais features do que na imagem de escala cinza.

Filtragem Espacial
A filtragem espacial é uma ferramenta na área de processamento de imagem
que realiza transformações em uma imagem por meio de um filtro (GONZALEZ;
WOODS, 2009). Os filtros mais conhecidos são de: suavização (blur), nitidez (sharpen)
e detecção de bordas (edge detection). A Figura 2 exemplifica a operação de convolução
por meio de um filtro em uma imagem de entrada.
Basicamente, os filtros (ou kernels ou máscaras) de detecção de bordas
baseiam-se nas variações abruptas de intensidade de pixels locais fazendo com que
eles se realcem caso encontre uma borda na imagem (GONZALEZ; WOODS, 2009).
A Figura 3 mostra a operação de convolução na imagem a fim de detectar bordas
verticais (quadrante 2), detectar bordas horizontais (quadrante 3), e por fim, a
6 Capítulo 2. Fundamentos Teóricos

(a) (b)
Figura 1 – A Figura (a) exemplifica uma imagem 2D com um canal de cor (escala
cinza).

combinação dessas duas convoluções de modo que as bordas sejam destacadas e


extraídas de uma forma mais intensa. Este último, é conhecido como filtro de Sobel.
Na Subseção 2.2.7, Redes Neurais Convolucionais (ou do inglês, Convolutional
Neural Networks - CNNs), trataremos o conceito das CNNs que tem por base a camada
convolucional que é o resultado da operação de convolução dos filtros mencionados
nesta seção.

2.2 Redes Neurais Artificiais (RNA)

2.2.1 Neurônio Biológico

O neurônio é considerado a unidade básica de processamento dos seres vivos


capaz de transmitir informações entre os neurônios conectados e, juntos, formar uma
rede neural biológica (HAYKIN, 2009). Como mostrado na Figura 4, um neurônio
biológico é composto por um corpo celular que possui o núcleo e outros componentes
da célula. O axônio transmite os impulsos elétricos do corpo celular para outro
neurônio que esteja diretamente conectado a ele. A conexão de um neurônio com
outro é feito por meio dos terminais axônicos e dendritos. Essa região de conexão
entre os neurônios é chamada de sinapse. Na sinapse, ocorrem mudanças em resposta
a estímulos externos, e são por meio dessas mudanças que acontece o aprendizado
(AGGARWAL, 2018).
2.2. Redes Neurais Artificiais (RNA) 7

Figura 2 – O funcionamento da filtragem espacial utilizando uma máscara (kernel


ou filtro) de tamanho 3×3. O processo de convolução inicia-se no canto
superior esquerdo da imagem de entrada e avança pixel por pixel em uma
varredura horizontal, uma linha por vez. O resultado de cada pixel na
imagem de saída é a soma da combinação linear da vizinhança selecionada
e a máscara.
Fonte: Gonzalez e Woods (2009)
8 Capítulo 2. Fundamentos Teóricos

Figura 3 – Aplicação de filtros de detecção de bordas verticais, horizontais e ambos


(último quadrante). O segundo quadrante exemplifica a convolução do
filtro (Gx ) na imagem a fim de detectar as bordas verticais. No terceiro
quadrante, temos a convolução do filtro (Gy ) para detectar de bordas hori-
zontais. E no último quadrante, é a convolução dos dois filtros resultando
na acentuação das bordas verticais e horizontais. A imagem original tem
dimensão de 48 x 48.
Fonte: Autor

Figura 4 – Neurônio biológico.


Fonte: Autor
2.2. Redes Neurais Artificiais (RNA) 9

2.2.2 Neurônio Artificial


Inspirado no neurônio biológico, o primeiro modelo de um neurônio artificial
foi proposto por Warren McCullonch (neurofisiologista) e Walter Pitts (matemático)
em 1943. Em seu artigo intitulado A Logical Calculus of Ideas Immanent in Nervous
Activity foi apresentada a arquitetura de uma rede neural artificial mostrando como o
neurônio biológico funciona em cérebros de animais para realizar cálculos complexos
por meio de lógica proposicional, e como ele poderia ser representado artificialmente
(MCCULLOCH; PITTS, 1943).

2.2.3 O Perceptron
Em 1958, Rosenblatt propôs um modelo melhorado do neurônio artificial, o
perceptron. Este novo modelo foi melhorado adicionando pesos sinápticos ajustáveis e
o bias. O termo bias tende a evitar que a saída do perceptron seja nula na ausência de
entradas (GOODFELLOW; BENGIO; COURVILLE, 2016). Este novo melhoramento
possibilitou a classificação de padrões onde as classes são linearmente separáveis
(HAYKIN, 2009). O perceptron é também conhecido como Threshold Logic Unit
(TLU) ou linear threshold unit onde as entradas e saídas pode ser números ao invés
de valores binários (como no modelo do neurônio artificial). Basicamente, é calculada
a soma das entradas x multiplicada pelo seu respectivo peso w, e então aplicada a
função de ativação (definida na Seção 2.2.4) no valor total somado, resultando na
saída do y (GRON, 2017).

Figura 5 – Perceptron.
Fonte: baseado em Rauber (2005)

A Equação 2.1 representa a soma das entradas xi multiplicada pelos pesos


wi , gerando z. Então, como observado na Equação 2.2, se z for maior ou igual a um
10 Capítulo 2. Fundamentos Teóricos

determinado limiar θ, o neurônio é ativado, caso contrário o neurônio não ativa.

z = w1 x1 + w2 + x2 + ... + wn xn = xT w (2.1)


1

Se z ≥ θ
y= (2.2)
 0 caso contrário

De modo que a rede neural resolva problemas não lineares, como exemplicado
na Seção 2.2.5 (Problema XOR), o limiar θ é substituído por uma função de ativação
não linear ϕ. Desta forma, podemos representar um neurônio matematicamente pela
Equação 2.3.

n
X
yk = ϕ( x i w i + bk ) (2.3)
i=1

2.2.4 Funções de Ativação


Existem diversos tipos de funções de ativação que podem ser utilizadas em
redes neurais. Contudo, a finalidade é tornar possível que uma rede neural aprenda
quaisquer funções não lineares, e para isso, é necessário escolher no mínimo uma
função que sejam não linear (AGHDAM; HERAVI, 2017). De modo que, funções ou
problemas não lineares sejam modelados, como exemplo de problema não linear ver
Seção 2.2.5.
Existem diversos tipos de funções de ativações, portanto serão listados as
mais populares.

Função Sigmóide

A função sigmóide é matematicamente representada na Equação 2.4. Como


pode ser visto na Figura 6, o intervalo desta função varia entre 0 e 1.

1
f (x) = (2.4)
1 + e−x

Função Tangente Hiperbólica

Similar a função sigmóide, a função tangente hiperbólica também possui


intervalo em sua saída, porém esta varia de -1 e 1. A Figura 7 ilustra a forma desta
2.2. Redes Neurais Artificiais (RNA) 11

1 y

0.8

0.6

0.4

0.2
x
−10 −5 5 10

Figura 6 – Função Sigmóide.


Fonte: Autor

função.
ex − e−x
f (x) = (2.5)
ex + e−x

1 y

0.5

x
−10 −5 5 10

−0.5

−1

Figura 7 – Função Tangente Hiperbólica.


Fonte: Autor

Função ReLU (Rectified Linear Unit)

Atualmente, a função ReLU tem se tornado a mais popular função de ativação


para redes neurais profundas pelo fato de ter um baixo custo computacional, e por
isso, o treinamento de uma rede utilizando-a ela acaba sendo mais rápido que outras
funções como a sigmóide e tangente hiperbólica (WANI et al., 2020). Basicamente,
a ativação dela é computada por meio do limiar da entrada. Quando a entrada x
for maior que zero então devolve x, caso contrário devolve 0. Matematicamente, a
Equação 2.6 define a função.


x,

se x > 0
f (x) =  (2.6)
0, caso contrário.

2.2.5 Problema XOR


O perceptron de camada única é capaz de separar padrões que são linearmente
separáveis pois aplicando uma função linear podemos separar uma classe de outra
12 Capítulo 2. Fundamentos Teóricos

5 y

1
x
−6 −4 −2 2 4 6

Figura 8 – Função ReLU.


Fonte: Autor

(GOODFELLOW; BENGIO; COURVILLE, 2016). No entanto, quando os padrões


não são linearmente separáveis que é no caso de uma função XOR (OU exclusivo),
não é possível separar as classes utilizando apenas um perceptron. Sendo assim,
este problema é resolvido adicionando outro perceptron na camada oculta da rede
(Perceptron de Múltiplas Camadas), assunto que será tratado na Subseção 2.2.6.
Para exemplificar a classificação de um problema XOR, temos a Figura 9 que
mostra dois pontos (0, 0) e (1,1) os quais pertencem a classe quadrado e outros dois
pontos (1,0) e (0,1) os quais pertencem a classe triângulo. Como visto na Figura
9, não há possibilidade de separarmos as classes com apenas uma função linear
(reta). Sendo assim, o perceptron de múltiplas camadas foi introduzido de modo
que o problema XOR (padrões não linearmente separáveis) fosse assim resolvido
(AGGARWAL, 2018).

Figura 9 – Classificação do problema XOR.


Fonte: Gron (2017, p. 285)

2.2.6 Perceptron de Múltiplas Camadas


Similar ao modelo anterior (perceptron de camada única), o perceptron de
múltiplas camadas (PMC ou MLP - Multi Layer Perceptron), mostrado na Figura
10, é formado por neurônios do tipo perceptron e também por uma ou mais camadas
ocultas. Diferente do perceptron de camada única que apenas resolve problemas
2.2. Redes Neurais Artificiais (RNA) 13

linearmente separáveis, esta arquitetura é capaz de aprender qualquer função não-


linear, inclusive aprender uma função que resolva o problema XOR (GRON, 2017).
Para resolver o problema XOR, não era necessário apenas utilizar uma arquitetura
de múltiplas camadas, mas também, um algoritmo que fosse capaz de atualizar
os pesos de cada neurônio de modo que resolva os problemas mais complexos
(RAUBER, 2005). Sendo assim, Rumelhart, Hinton e Williams (1985) desenvolveram o
algoritmo de retropropagação de erro (conhecido como backpropagation). O algoritmo
backpropagation calcula os gradientes do erro após a passagem direta (feedforward)
pela rede, e ajusta o peso de cada neurônio na passagem reversa (backforward) de
modo a reduzir o erro. Assim, todo o processo é repetido até que a rede convirja
para a solução esperada.

Figura 10 – Perceptron de Múltiplas Camadas - cada neurônio da camada oculta


realiza uma combinação linear do pesos com os dados de entrada (x1 e
x2 ) advindos da camada entrada. Após esta combinação linear, a função
de ativação de cada neurônio propaga o sinal para a próxima camada.
Fonte: Adaptado de Gron (2017, p. 286)

2.2.7 Redes Neurais Convolucionais


Advindo das RNAs, as Redes Neurais Convolucionais (ou do inglês, Convolu-
cional Neural Networks - CNNs) são compostas por neurônios que ajustam seus pesos
14 Capítulo 2. Fundamentos Teóricos

automaticamente por meio do aprendizado (O’SHEA; NASH, 2015). O principal


campo de aplicação das CNNs é o reconhecimento de padrões dentro de imagens
(O’SHEA; NASH, 2015).
Este modelo de rede foi inspirado no estudo de HUBEL e WIESEL (1959)
que aplicou diversos experimentos tanto em gatos como em macacos alguns anos
depois (HUBEL; WIESEL, 1968), mostrou-se que os campos receptivos locais são
compostos por muitos neurônios no córtex visual, concluindo que os estímulos visuais
reagem a uma região limitada do campo visual. Esta região pode ser observada
na Figura 11 onde os círculos tracejados representam os campos receptivos locais.
Esses campos receptivos locais podem se sobrepor e, juntos, eles criam todo o campo
visual. Os autores deste estudo (HUBEL; WIESEL, 1959) descobriram que alguns
neurônios reagem apenas a imagens de linhas horizontais, enquanto outros reagem
apenas a orientações de linhas diferentes (dois neurônios podem ter o mesmo campo
receptivo, mas reagem a orientações de linhas diferentes). Descobriu-se também que
alguns neurônios têm campos receptivos maiores e reagem a padrões mais complexos
(GRON, 2017).

Figura 11 – Campos receptivos locais na qual o córtex analisa uma imagem mais
profundamente. Como visto na imagem, para reconhecer cada tipo de
característica (bordas, linhas, triângulos, quadrados etc) é necessário
um conjunto de neurônios que seja responsável na identificação de cada
um desses padrões.
Fonte: Gron (2017, p. 433)

2.2.8 Extração de Características


Operação de Convolução

De forma simples, convolução é uma operação de duas funções que resulta


em uma terceira função (GOODFELLOW; BENGIO; COURVILLE, 2016). Matema-
2.2. Redes Neurais Artificiais (RNA) 15

ticamente, a operação da convolução é representada pela Equação 2.7, sendo f (x)


operada por g(x) resultando em h(x), sendo x o domínio função, e essa operação
é o somatório entre duas funções sendo uma invertida e deslocada. Na Figura 12
pode ser visto que na convolução 1D (uma dimensão) um dos sinais é invertido no
tempo, e então desliza-se sobre o outro. O resultado é então obtido multiplicando-se
os valores dos dois sinais e somando as multiplicações.

Figura 12 – Simulação de uma operação de convolução 1D. O sinal vermelho é


operado com o sinal azul resultando no sinal verde. Primeiramente, um
dos sinais é invertido no tempo, e se desliza com o outro sinal. Enquanto
desliza sobre o outro, os valores são multiplicados, e depois, os resultados
da multiplicação são somados.
Fonte: Pihlajamäki (2009)

A Figura 13 exemplifica a operação de convolução 2D de uma matriz de


tamanho 5x5. Esta operação é bastante simples. Como pode ser visto na Figura 13,
o kernel (azul escuro) é uma matriz de pesos que desliza sobre a matriz de entrada
(azul claro), multiplicando cada elemento da região selecionada. Por fim, os valores
são somados gerando um valor na matriz de saída, chamada de feature map. Este
processo é repetido, deslizando o kernel sobre toda a imagem representada como
matriz.


X
h(x) = (f ∗ g)(x) = f (u)g(x − u) (2.7)
u=0
16 Capítulo 2. Fundamentos Teóricos

Figura 13 – Operação de Convolução em uma matriz 5x5 (azul claro) e kernel 3x3
(azul escuro), resultando numa matriz 3x3 (verde claro) chamada feature
map.
Fonte: Dumoulin e Visin (2018)

Padding

O padding estende a área da imagem tanto horizontal como vertical adicio-


nando camada de zeros ao redor da imagem. O objetivo é evitar que os pixels da
borda da imagem sejam perdidos. Na Figura 14 pode ser visto o padding (linha
pontilhada) adicionado na imagem.

Figura 14 – Nesta imagem de entrada (azul claro), é adicionado um padding de


tamanho 1 (p = 1) ao redor da imagem de modo que os pixels da borda
fiquem centralizados ao kernel. Deste modo, evita-se que tais pixels sejam
perdidos durante a operação de convolução.
Fonte: Dumoulin e Visin (2018)
2.2. Redes Neurais Artificiais (RNA) 17

Stride

Como mostrado na Figura 15, ao iniciar a operação de convolução, o kernel é


passado no canto superior esquerdo de entrada e desliza para direita e para baixo,
normalmente deslizando com passadas igual a 1 (stride = 1). Porém, às vezes é
necessário melhorar a eficiência computacional ou até mesmo diminuir a resolução da
entrada. Nestes casos, as passadas (stride) são aumentadas para passos maiores que
um (ZHANG et al., 2019). A Figura 15 mostra a operação de convolução utilizando
stride = 2, padding = 1.

Figura 15 – Operação de Convolução com padding = 1 e stride = 2.


Fonte: Dumoulin e Visin (2018)

2.2.8.1 Operação de Pooling

A operação de Pooling agrupa os pixels locais de modo a reduzir o tamanho


espacial da imagem. Este método possui dois principais tipos, podendo existir outros,
os quais são: Max-Pooling (que extrai o valor máximo da área selecionado pelo filtro)
e o Average-Pooling (que calcula a média da área selecionada pelo filtro).
Similarmente a operação de convolução, na operação de Pooling, temos um
filtro (kernel), tamanho da stride e a dimensão do filtro. Na Figura 16 temos um
18 Capítulo 2. Fundamentos Teóricos

exemplo da operação de Max-Pooling transformando uma imagem de tamanho 32x32


para tamanho 16x16.

Figura 16 – Similar a operação de convolução, a operação de pooling possui também


um filtro (kernel), tamanho da stride s = 2 que é o valor do passo, e
a dimensão do filtro d = 2 que é o valor que representa a dimensão do
filtro.
Fonte: baseado em Aghdam e Heravi (2017, p. 96)

2.3 Aprendizagem Profunda para Visão Computacional

Segundo Shanmugamani e Moore (2018), a visão computacional permite ao


computador possuir propriedades de visão humana de modo que imagens captadas
por câmeras, smartphones, drones ou outros sensores, sejam interpretadas pelo
computador. Assim, diversos problemas na área de visão computacional pode ser
resolvidos por meio de técnicas de aprendizagem profunda. Em visão computacional,
etas técnicas de aprendizagem profunda podem ser dividas em quatro tarefas: (1)
classificação, (2) classificação com localização (ou detecção), (3) detecção de objeto e
(4) segmentação, como exemplificado na Figura 17.
Neste presente trabalho, abordamos a tarefa de localização (caixa delimita-
dora) para detecção da face presente na imagem, e classificação para classificar se o
rosto pertence a pessoa quem diz ser.
2.4. Métodos de Detecção de Objetos 19

Figura 17 – Tarefas de Visão Computacional.


Fonte: Shanmugamani e Moore (2018)

2.4 Métodos de Detecção de Objetos


Nesta seção, abordaremos sobre os métodos de detecção de objetos. Eles
importantes pois localizam a região de interesse de modo que esta seja extraída da
imagem. Desta forma, abordaremos os principais métodos que são aplicados para a
detecção facial.

2.4.1 Algoritmo Viola-Jones


O Viola-Jones é um algoritmo utilizado para detecção de objetos. Basicamente,
existem quatro estágios que são consecutivamente executadas neste algoritmo: (1)
criação da imagem integral para o cálculo rápido das características, (2) seleção de ca-
racterísticas Haar-like retangulares, (3) AdaBoost (Adaptative Boosting) para seleção
de recursos e (4) classificação em cascata que desconsidera regiões de desnecessárias
a afim de considerar regiões mais prováveis de conter uma face (WANG, 2014).

Seleção de Características Haar-like

Características de Haar são filtros que são aplicados na imagem pelo algo-
ritmo do Viola-Jones para detecção de padrões de bordas e linhas, como mostrado,
respectivamente, nas Figuras 18 e 19. Esse nome foi dado devido sua similaridade
com as wavelets de Haar o qual foi proposta originalmente por Alfréd Haar. Para
fazer a detecção, é selecionada uma área da imagem e feita operação de convolução
com os filtros para ver se existe uma característica de borda ou de linha presente
na parte selecionada. Essa etapa é seguida até que todas as áreas da imagem sejam
selecionadas. A Figura 18 exemplifica uma detecção de características de linha e
borda em uma face.
20 Capítulo 2. Fundamentos Teóricos

Imagem Integral

A Figura 20 ilustra como uma imagem de entrada de tamanho 3x3 de valor


1 em cada pixel é transformada numa matriz de Imagem Integral. Como vemos, a
cada vez que andamos para direita e para baixo, o valor da célula anterior é somado
no próximo. Dessa forma, a célula da última linha e última coluna carregará a soma
de toda a matriz da imagem de entrada.

Figura 18 – Filtros para detecção de bordas.

Figura 19 – Filtros para detecção de linhas.

Figura 20 – (a) é a imagem de entrada e (b) é a imagem integral resultando da


entrada.
Fonte: baseado em HERNANDEZ, Sarmiento e Solano (2012)

Este método não foi utilizado no protótipo. No entanto, é um método bastante


consolidado na literatura.

2.4.2 MTCNN (Multi-Task Cascaded Convolutional Neural Network)


Apesar do detector facial proposto por Viola e Jones (2001) alcançar ótimos
resultados computacionalmente e em tempo real, não se obteve bons resultados para
2.5. Método de Classificação de Imagem 21

grandes variações de iluminação, pose e expressões faciais (VIOLA; JONES, 2001).


Desta forma, Zhang et al. (2016a) propôs o framework MTCNN que baseia-se na
correlação dos métodos de detecção e alinhamento facial, de maneira conjunta. É
mostrado na Figura 21 os 3 estágios do framework MTCNN que basicamente segue
os seguintes passos: (1) redimensiona a imagem para diferentes escalas, (2) seleciona
possíveis candidatos a ser uma face, e por fim, afina a seleção a cada novo estágio
executado.
Este método foi utilizado no protótipo para realizar a detecção facial na
imagem pois é o método com melhor Precisão Média (Average Precision) quando
comparado com os métodos Viola-Jones e MobileNet-SDD (GUO; WÜNSCHE, 2020).

Figura 21 – Pipeline da rede MTCNN consiste de 3 estágios. Inicialmente a imagem


é redimensionada em diferentes escalas formando uma pirâmide que
servirá de entrada para os três estágios da rede. No primeiro estágio,
são selecionados, de forma rápida, todos os possíveis candidatos a serem
faces por meio da rede P-Net. Após isso, refinamos esses candidatos,
eliminando todas as sobreposições de janelas por meio da R-Net. No
último estágio, a rede O-Net produz a caixa delimitadora final e a posição
dos marcadores faciais (olhos, nariz e boca).
Fonte: baseado em Zhang et al. (2016a)

2.5 Método de Classificação de Imagem


Nesta seção abordaremos a arquitetura de Rede Neural Convolucional utilizada
neste trabalho e o aprendizado profundo de métrica.
22 Capítulo 2. Fundamentos Teóricos

2.5.1 Residual Network (ResNet)


A arquitetura ResNet baseia-se em atalhos de conexão que pulam uma ou
mais camadas. Suas camadas são em forma de blocos os quais são chamados de bloco
residual. Esta arquitetura possui diversas versões mas todas são baseados no mesmo
modelo de blocos residuais, mudando somente a quantidade de camadas presente em
cada modelo.
Como ilustrado na Figura 22, cada bloco possui uma entrada x o qual cada
bloco efetua operação de convolução e ReLU antes de ir para o próximo bloco. Após
processar os dois blocos, o sinal x é somado ao sinal dos dois blocos anteriores f (x),
e transmitido para o próximo bloco. A proposta dessa arquitetura é que as camadas
continuem recebendo os valores resultantes advindo da função de ativação ReLU
(Rectified Linear Unit) f (x), e também receba os valores de entrada x, somando
assim a saída da camada anterior f (x) com a entrada da camada x.

Figura 22 – Bloco residual da arquitetura ResNet.


Fonte: Adaptado de He et al. (2016)

A competição ILSVRC (2015) elegeu a arquitetura ResNet como a campeão


nas tarefas de classificação de imagem, detecção e localização. No mesmo ano, ganhou
a competição Microsoft COCO (2015) nas tarefas de detecção, e segmentação (He et
al., 2016).
Basicamente, o problema principal que a arquitetura ResNets busca resolver
é o gradiente evanescente (vanishing gradient) (WU; SHEN; HENGEL, 2019). Esse
efeito ocorre quando a rede é muito profunda, assim os gradientes de onde a função
de perda é calculada reduzem praticamente a zero, após diversas aplicações de
convolução e max-pooling. Desta forma, o resultado nos pesos não atualiza seus
valores e, portanto, nenhum aprendizado será realizado. No entanto, com as ResNets,
os gradientes podem fluir diretamente pela função de identidade para as outras
camadas resolvendo o problema do gradiente de desaparecimento (He et al., 2016).
A Figura 23 mostra as camadas de cada uma das arquiteturas para a base de
dados do ImageNet.
2.5. Método de Classificação de Imagem 23

Figura 23 – Exemplos de arquitetura de rede para ImageNet.


Fonte: He et al. (2016)
24 Capítulo 2. Fundamentos Teóricos

2.6 Aprendizado Profundo de Métricas


As métricas são utilizadas para julgar a performance do modelo utilizado,
podendo ser do tipo acurácia, probabilidade ou regressão (GULLI; PAL, 2017).
A fim de medir a similaridade entre instâncias de dados, o aprendizado de
métricas (ou do inglês, Metric Learning) aprende as métricas de distância destes
dados gerando um vetor de características (feature vector) para cada uma das
instância de dados (KAYA; BİLGE, 2019). No entanto, os métodos de aprendizado
de métrica geralmente utilizam projeção linear para resolver problemas do mundo
real não-lineares e, por isso, o desempenho é degradado (HUAI et al., 2019).
Devido a grande capacidade que aprendizagem profunda possui para modelar
problemas não-lineares, passou-se a estudar a unificação do aprendizado profundo e
aprendizado de métricas o qual foi chamado de aprendizado profundo de métricas
(ou do inglês Deep Metric Learning - DML) (NI et al., 2017; WANG et al., 2017;
SONG et al., 2016; LAW; URTASUN; ZEMEL, 2017; HUANG; LOY; TANG, 2016).
A ideia do DML é treinar uma rede neural profunda e mapear as amostras
em um novo espaço vetorial de modo que o mapeamento garanta mínima distância
entre amostras de mesma classe e máxima distância entre amostras de diferentes
classes (SOHN, 2016). A Figura 24 ilustra um exemplo de um método de aprendizado
profundo de métricas chamado função de perda Triplet.

2.7 Biblioteca Face-api.js


Face-api.js (<https://github.com/justadudewhohacks/face-api.js/>) é uma
biblioteca Javascript que utiliza o Tensorflow (framework para Deep Learning) para
detecção e reconhecimento facial no próprio navegador. Além de possuir modelos
pré-treinados para detecção e reconhecimento facial, ela também possui outros
modelos para as seguintes tarefas: rastreamento facial, reconhecimento de expressões
e detecção de pontos de referência de face.
Para o reconhecimento e verificação facial, o modelo foi treinado por Davis
King com 3 milhões de imagens faciais e 7.485 identidades. As imagens foram coletadas
de diversos datasets como FaceScrub (<http://vintage.winklerbros.net/facescrub.
html>), VGG (<http://www.robots.ox.ac.uk/~vgg/data/vgg_face/>) e diversas
outras imagens da internet. A arquitetura utilizada no treino é a ResNet-34 que
computa os descritores de vetor de 128 dimensões. Assim, uma vez que duas imagens
são transformadas em descritores de vetor, elas podem ser comparadas computando a
2.8. A Plataforma Moodle 25

Figura 24 – Função de perda Triplet (ou do inglês, Triplet loss). O objetivo desta
função de perda é garantir que a imagem âncora esteja próxima de todas
as imagens de mesma classe (positivas) e longe de todas as imagens de
classes diferentes (negativas). Matematicamente, é utilizada a distância
euclidiana para calcular a distância entre os vetores de características.
Fonte: Autor

distância euclidiana entre os dois vetores. Este modelo alcança acurácia de 99.38% no
banco de imagem Labelled Faces in the Wild para reconhecimento facial (VILLÁN,
2019).
Este trabalho utilizou a biblioteca Face-api.js para detectar e gerar o vetor
da face na plataforma Moodle descrita a seguir.

2.8 A Plataforma Moodle


A plataforma Moodle é um Sistema de Gestão da Aprendizagem (SGA),
ou do inglês, Learning Management System (LMS), de código aberto e livre. A
finalidade dessa plataforma é possibilitar a aprendizagem à distância. Atualmente,
seu desenvolvimento é feito por uma comunidade de centenas de programadores
espalhados pelo mundo seguindo aos termos estabelecidos pela licença GNU GPL.
A instalação pode ser feita nos sistemas operacionais Linux, Windows, Mac OSX
ou Unix, desde que tenha instalado o servidor web Apache, o PHP e um banco
dados, podendo ser: MySQL, PostgreSQL, MariaDB ou Oracle (DOUGIAMAS et al.,
2004). O Moodle (Modular Object Oriented Distance Learning) foi criado por Martin
Dougiamas durante um projeto de pesquisa conduzida pela Curtin Univerisity na
26 Capítulo 2. Fundamentos Teóricos

Austrália, e teve sua primeira versão lançada em 2001 (DOUGIAMAS; TAYLOR,


2003). Como forma de melhorar as funcionalidades da plataforma, o Moodle permite
que usuários e organizações customizem as funcionalidades já existentes no núcleo
da plataforma. Assim, funcionalidades adicionais podem ser adicionadas de modo
que melhore a experiência do aluno durante o uso. Basicamente, qualquer usuário
pode baixar os plugins em <https://moodle.org/plugins/> (site oficial do Moodle ).
Em geral, os plugins são criados para customizar uma parte do módulo presente no
Moodle, ou seja, cada plugin irá customizar uma parte específica da plataforma seja
no módulo de atividades, blocos que podem ser adicionados em determinadas partes,
temas, formato de cursos, plugins de inscrição, autenticação e filtros (MOODLE,
2008a). Atualmente o marketplace do Moodle possui aproximadamente 1900 plugins
prontos para downloads e de código aberto. Nas próximas seções iremos falar sobre
o módulo Questionário (Quiz) e os dois componentes utilizados neste trabalho: (1)
Quiz access rule e o (2)Quiz Report.

2.8.1 Módulo Questionário (Quiz)


O módulo Questionário (Quiz) possibilita que o professor crie grupos de
questões de diversos tipos, como: múltipla escolha, verdadeiro-falso e dissertativa
(respostas curtas). As perguntas são armazenadas no banco de dados e podem ser
reutilizadas futuramente em outros cursos (MOODLE, 2008b). Logo após o aluno
responder o questionário, o professor pode visualizar o relatório das respostas e
formular um feedback caso seja conveniente. Tanto as regras de acesso ao questionário
(Quiz access rule) quanto a criação de um novo relatório (Quiz report), podem
ser customizadas em um plugin de modo que caso a customização não seja mais
necessária, bastando desinstalar ou desativar o plugin e todas as funcionalidades
originais continuarão em funcionamento.

2.8.2 Componente quiz access rule


O componente quiz access rule é instanciado antes de um questionário ser
aberto pelo usuário. Assim, caso tenha algum plugin do tipo quiz access rule, este
será instanciado antes do carregamento do questionário selecionado pelo estudante.
Desta forma, é possível criarmos um plugin contendo regras específicas para uma
determinada organização. Além disso, podemos modelar um tabela no banco de
dados utilizando a própria ferramenta de administração do Moodle. Ela pode ser
acessada em Administração do site > Desenvolvimento > Editor XMLDB.
Este trabalho criou um plugin do componente quiz access rule para ser
2.8. A Plataforma Moodle 27

instanciado antes de um questionário ser carregado, de modo que o usuário tenha


que cadastrar uma face, e após isso, verificar a face cadastrada e então liberar o
questionário caso a verificação facial ocorra corretamente. Para a criação do plugin,
é preciso criar o arquivo version.php (contendo versão, componente e número do
release) e rule.php que será onde faremos toda a implementação da regra de negócio.
O arquivo rule.php será uma classe que estender a classe quiz_access_rule_base e
implementar todos os requisitos funcionais necessários.

2.8.3 Componente quiz report


Similar ao componente anterior, o componente quiz report é instanciado
quando é solicitado os resultados do questionário. Neste componente, criamos um
relatório selecionando os dados de interesse advindos do banco de dados por meio de
uma consulta SQL.
Este trabalho criou um plugin do componente quiz report para ser instanciado
como um tipo de relatório de questionário dentre os já existentes por padrão. Para
criar um plugin para este tipo de componente, temos que criar o arquivo version.php
e o rule.php que estenderá a classe quiz_def ault_report (presente no Moodle).
29

3 Trabalhos relacionados

Nesta seção, são apresentados alguns trabalhos que possuem relação com
verificação e reconhecimento facial de usuários aplicados no contexto de educação a
distância.
Diniz et al. (2013) apresentou um sistema para reconhecimento facial utili-
zando o classificador K-Nearest Neighbors (K-NN), Análise de Componentes Princi-
pais (do inglês, Principal component analysis – PCA) e Eigenfaces no Moodle. A
acurácia do método foi de 92% com imagens de 12×9, com 20 características resultan-
tes do PCA. No entanto, Machidon, Machidon e Ogrutan (2019) mostrou que quando
comparada a acurácia utilizando datasets maiores, como o Labelled Faces in the Wild
(aproximadamente 5700 identidades, totalizando 13 mil imagens), o resultado piorou
significamente, no método Eigenfaces e PCA, performando aproximadamente 77%
de acurácia (MACHIDON; MACHIDON; OGRUTAN, 2019).
Labayen et al. (2014) apresenta o sistema SMOWL1 , para autenticação
contínua na Web por reconhecimento facial. Este trabalho apresentou um resultado
empírico integrado ao Moodle, com 67 estudantes do mestrado em Educação e Novas
Tecnologias da Universidade Aberta de Madri. O Moodle envia a foto e identidade
do estudante para um servidor no registro e, aleatoriamente, durante uma avaliação.
O SMOWL processa esses dados, gerando um relatório que pode ser acessado pela
instituição. Esse serviço é pago e os algoritmos usados no trabalho não estão descritos
no artigo supracitado.
Wagh et al. (2015) desenvolveu um sistema próprio para reconhecimento
facial utilizando técnicas como invariante de iluminação, algoritmo de Viola e Jones,
Análise de Componentes Principais (PCA) para problemas relacionados a intensidade
de luz e postura do rosto. Basicamente, as principais etapas neste sistema são detectar
os rostos e reconhecê-los em seguida. Logo após, a comparação dos rostos detectados
é feita por meio de uma verificação cruzada com o banco de dados de rostos dos
alunos. Este trabalho compara diversos métodos de reconhecimento e a taxa de
acerto de cada método, são eles: Principal Component Analysis (PCA) 79.65%,
Principal Component Analysis + Relevant Component Analysis 92.34%, Independent
Component Analysis 81.35%, Support Vector Machines 85-92.1%, Neural Networks
93.7%, Eigenfaces Method 92%, Eigenfaces with PCA Method 92.30%.

1
<https://smowl.net>.
30 Capítulo 3. Trabalhos relacionados

O trabalho do Lukas et al. (2016) propõe um método para um sistema de


cadastro de presença de aluno em sala de aula por meio de reconhecimento facial
combinando Discrete Wavelet Transforms (DWT) e Discrete Cosine Transform
(DCT) para extrair as características do rosto do aluno que é seguido pela aplicação
da Radial Basis Function (RBF) para classificação dos objetos faciais. A partir dos
experimentos conduzidos envolvendo 16 alunos situados em sala de aula, obteve-se
uma taxa de acerto de 82%.
No trabalho do Samet e Tanriverdi (2017) tem como objetivo propor um
sistema móvel de gestão de assiduidade móvel baseado em reconhecimento facial sem
necessidade de equipamento extra. Para isso, foi desenvolvido um sistema de filtragem
baseado em distâncias euclidianas calculadas por três técnicas de reconhecimento
facial, conhecidas como: Eigenfaces, Fisherfaces e Local Binary Pattern, todas para
o reconhecimento facial. O sistema proposto inclui três aplicativos móveis diferentes
para que professores, alunos e pais sejam instalados em seus smartphones para
gerenciar e realizar o processo de atendimento em tempo real. O sistema proposto
foi testado entre alunos da Universidade de Ancara, e os resultados obtidos tiveram
uma taxa de acerto de 84.8%.
O trabalho do Bhattacharya et al. (2018) apresenta o sistema de gerenciamento
automático de atendimento por conveniência ou confiabilidade dos dados. O sistema
é desenvolvido pela integração de componentes para fazer um dispositivo portátil
para gerenciar a frequência dos alunos usando a tecnologia de reconhecimento facial.
Existem diversos outros trabalhos para reconhecimento facial com aplicações
para a autenticidade no Moodle, porém utilizam algoritmos ultrapassados, ver
Tabela 2, já que redes neurais convolucionais ultrapassam 99% de acurácia (HUANG
et al., 2020). Além disso, maioria destas soluções não disponibilizam o serviço
gratuitamente (ROLIM; BEZERRA, 2008; KUO et al., 2010; GUILLÉN-GÁMEZ;
GARCÍA-MAGARIÑO, 2014; PEER et al., 2013). Existem também diversos plugins
de reconhecimento facial para a autenticidade no Moodle, mas são serviços pagos2,3 .
A Tabela 1 lista os métodos utilizados em cada trabalho relacionado. Na
Tabela 2, temos a acurácia de verificação facial no dataset Labeled Faces in the Wild
(LFW) de cada método utilizado nos trabalhos mencionados nesta seção. Como
pode ser visto na Tabela 2, os métodos utilizados nos trabalhos relacionados para
reconhecimento facial possuem acurácia inferior quando comparado a ResNet-34,
alcançando 99.36% de acurácia no dataset LFW (VALERIANI; POLI, 2019)).

2
<https://moodle.org/plugins/quizaccess_fullface>.
3
<https://www.videofront.com.br/en/face-authentic>.
31

Tabela 1 – Tabela dos métodos utilizados em cada trabalho relacionado.

Trabalho Método Utilizado


Diniz et al. (2013) Eigenfaces + PCA
Labayen et al. (2014) Não revelado
Samet e Tanriverdi (2017) Eigenfaces, Fisherfaces e Local Binary Pat-
tern (LBP)
Bhattacharya et al. (2018) Não revelado
Lukas et al. (2016) Combinação de Discrete Wavelet Transforms
(DCT) e Discrete Cosine Transform (DST)

Tabela 2 – Tabela de acurácia de cada método listados nos trabalhos relacionados


utilizando o dataset LFW.

Método Acurácia Artigo de Referência da Métrica


Eigenfaces + PCA 77% Machidon, Machidon e Ogrutan (2019)
Eigenfaces + LBP 77.50% Shyam e Singh (2015)
Fisherfaces 87.47% Learned-Miller et al. (2016)
Fisherfaces + LBP 82.92% Shyam e Singh (2015)
LBP 85.71% Beli e Guo (2017)
DCT 88.4% Khan, Usman e Riaz (2015)
ResNet-34 (método utilizado) 99.36% Valeriani e Poli (2019)
33

4 Desenvolvimento do Protótipo

Este capítulo tem por objetivo apresentar a solução proposta por meio do
desenvolvimento de dois protótipos do tipo plugin instalável no Moodle. O primeiro
chamado Face Verification Quiz que irá cadastrar e validar o rosto por meio de
imagem digital antes de iniciar o Quiz, e o segundo chamado Face Verification
Report que irá fornecer ao professor o log de acesso da verificação facial de cada
tentativa.

4.1 Engenharia de Software


Nesta seção apresentaremos os requisitos funcionais e não-funcionais de soft-
ware dos dois plugins Face Verification Quiz e Face Verification Report ,
além do fluxograma da solução.

4.1.1 Requisitos Funcionais


Em linhas gerais, os requisitos funcionais são condições imprescindível para
alcançar um objetivo específico (FILHO; MARTINEZ, 2006). Adicionalmente, eles
são descrições e restrições do sistema, e se baseiam naquilo que o cliente necessita
como serviço (SOMMERVILLE, 2010).
Assim, os requisitos funcionais seguem listados abaixo, são eles:

1. O plugin deve ter opção de habilitar/desabilitar o plugin em cada questionário


no Moodle.

2. O registro facial do usuário deve ser feito antes de carregar o questionário.

3. A verificação facial deve ser feita se o usuário já estiver sido cadastrado


previamente.

4. Toda tentativa de verificação facial deve ser registrada.

5. O sistema deve gerar relatório contendo todas tentativas de acesso de cada


questionário.

6. O plugin deve ser facilmente instalado na aba de administração do Moodle.


34 Capítulo 4. Desenvolvimento do Protótipo

4.1.2 Modelagem da Solução


4.1.2.1 Diagrama de Casos de Uso

Os casos de usos são baseados em cenários que identificam as interações de


cada ator no sistema (SOMMERVILLE, 2010). A Figura 25 mostra a modelagem
do caso de uso dos plugins no Ambiente do Moodle, tanto para o estudante realizar
o Quiz como para o professor visualizar os acessos ou habilitar o plugin no Quiz
específico.

Figura 25 – Caso de Uso.


Fonte: Autor

4.1.2.2 Diagrama de Classe

A Figura 26 mostra o diagrama de classe, de todas as classes envolvidas no


plugin desenvolvido. São elas: Usuário, Aluno, Professor, Curso e Quiz. Na classe
Quiz, temos os métodos de registra_face() e valida_face().

4.1.2.3 Diagrama Entidade Relacionamento (DER)

A Figura 27 detalha o diagrama entidade relacionamento criado para armaze-


namento dos dados de registro da face (mdl_fvquiz_registered), validação da face
(mdl_fvquiz_validation) e habilitação do plugin Face Verification Quiz em cada
Quiz.
4.1. Engenharia de Software 35

Figura 26 – Diagrama de Classe.


Fonte: Autor

Figura 27 – Diagrama Entidade Relacionamento.


Fonte: Autor

4.1.2.4 Diagrama de Pacotes

A arquitetura de software do Moodle permite adição de novas funcionalidades


de plugins de terceiros. A Figura 28 apresenta três pacotes para facilitar o entendi-
mento dessa arquitetura. O pacote Usuário descreve os dois perfis de usuários, aluno e
professor (podendo ter outros perfis). O pacote curso apresenta a classe curso. Tanto o
pacote Usuário como Curso são nativas do Moodle. No pacote Questionário, também
do Moodle foi adicionado os subpacotes Face Verification Quiz e Face Verification
Report desenvolvidos neste trabalho.
36 Capítulo 4. Desenvolvimento do Protótipo

Figura 28 – Diagrama de Pacotes. Destacando o pacote do plugin em azul o Face


Verification Quiz e em verde o Face Verification Report .
Fonte: Autor

4.1.3 Requisitos Não-Funcionais


Para que o usuário faça o uso do plugin, será necessário os seguintes requisitos
não-funcionais:

• Webcam instalada e configurada no sistema;

• Firefox, Chrome ou Edge. Além disso, é necessário que o Javascript esteja


habilitado no navegador;

• Computador no mínimo i3 Intel de 3ª geração e 4GB de RAM.

Adicionalmente, alguns requisitos não-funcionais do servidor do Moodle são


necessários para que o plugin funcione corretamente, são eles:

• Versão do Moodle 3.0 ou superior;

• Certificado digital: pelo fato que o plugin capta imagens da webcam do usuário,
é necessário que um certificado digital esteja configurado no servidor do Moodle
pois os browsers atuais exigem este requisito para o acesso a câmera ou webcam
do usuário;

• Criação de um app na plataforma Dropbox1 , no link <https://www.dropbox.


com/developers/apps/create>. Os dados de chave (app key) e chave secreta
(app secret) serão solicitados na instalação do plugin.
1
O Dropbox é um serviço de armazenamento de arquivos em nuvem, possibilitando acesso dos
arquivos por meio de uma API (Application Programming Interface). Assim, para enviar ou
obter os arquivos, basta configurar uma chave de acesso que será utilizada em toda requisição
de acesso aos arquivos.
4.1. Engenharia de Software 37

4.1.4 Fluxograma da Solução Proposta


O plugin de verificação facial foi desenvolvido utilizando a linguagem de
programação JavaScript e a biblioteca face-api.js, introduzida na seção 2.7, baseada
na arquitetura DCNN ResNet-34. Além disso, a linguagem PHP também foi utilizada
para realizar consultas, inserções e atualizações no banco de dados. Não obstante, o
PHP é a linguagem nativa da plataforma Moodle. A Figura 29 resume os dois processos
implementados nesta solução: (1) o cadastro facial do usuário e (2) a verificação facial
do usuário (quando este já possui cadastro da face). Ambos processos vetorizam a
imagem por meio da ResNet-34 a fim de que seja calculada a distância euclidiana
entre os dois vetores de 128 dimensões. Os detalhes serão apresentados nas subseções
seguintes.

Figura 29 – Resumo do processo utilizado pelo plugin do Moodle, Face Verifica-


tion Quiz.
Fonte: Autor

4.1.5 Arquitetura do Sistema


A arquitetura do sistema do Moodle incluíndo o plugin Face Verification
Quiz, mostrada na Figura 30, é dividida em dois blocos: front-end (linguagem
JavaScript) e back-end (linguagem PHP). O primeiro bloco é executado no próprio
navegador, e realiza as seguintes tarefas: detectar face, converter face em vetor e
gerar distância entre dois vetores. O segundo bloco é executado no lado do servidor,
38 Capítulo 4. Desenvolvimento do Protótipo

e realiza a comunicação, por padrão JSON (JavaScript Object Notation), via web
services API para efetivar as consultas, inserções e atualizações no banco de dados
da plataforma Moodle.

Figura 30 – Arquitetura do sistema do Moodle incluíndo o plugin Face Verifica-


tion Quiz, divido em Front-end e Back-end.
Fonte: Autor

4.2 Apresentação da Solução


4.2.1 Cadastro Facial
Antes de iniciar a extração das características de cada face é feita a detecção
e o alinhamento facial utilizando a MTCNN (introduzida na subseção 2.4.2), baseado
em redes profundas, ver a etapa de pré-processamento na Figura 31. Essa MTCNN
detecta a localização da face por meio de 68 pontos de interesse, porém, no plugin
FVQ foram utilizados apenas 5 pontos para localizar os olhos, nariz e boca.
Após o alinhamento e o recorte da imagem na região de interesse (face), a
DCNN ResNet-34 computa o descritor da face selecionada. A ResNet-34 possui 34
camadas, e em cada camada são aplicados filtros para extrair características presente
4.2. Apresentação da Solução 39

Figura 31 – Processo de cadastro facial: Primeiramente, após a captação da imagem


facial, um pré-processamento é feito para detectar os pixels de referência
dos olhos, nariz e borda da boca a fim de alinhar a face por meio de
rotação e translação (caso a face esteja de lado). Feito o alinhamento,
é realizado o recorte na região de interesse e, em seguida, aplicado a
DCNN ResNet-34 na imagem para gerar 128 características da face.
Fonte: Autor

na imagem (para detalhes dos cálculos realizados em cada camada, consultar (Zhang
et al., 2016b)). Ao término do processamento, a ResNet-34 devolve a representação
vetorial da face em 128 dimensões, ou seja, um vetor de 128 valores.
A Figura 31 resume o processo completo de cadastro facial o qual gera um
vetor de 128 posições da face captada. Após a geração, este vetor é gravado no banco
de dados para futuras comparações de similaridades no processo de verificação facial.

4.2.2 Verificação Facial


Concluído o processo de cadastro de face, a segunda etapa é o processo de
verificação facial. Esta etapa é executada quando o usuário seleciona o Questionário
(Quiz) que deseja responder. E, se usuário já possui cadastro de face, então é feita
a verificação. O processo de verificação certifica se o usuário é quem ele afirma
ser, ou seja, uma verificação de 1 para 1 (compara-se a similaridade da foto a
ser verificada com a foto cadastrada no primeiro processo). Assim, se a distância
euclidiana normalizada entre os dois vetores de características com 128 valores cada
for maior que um limiar definido (0,6 por padrão), então é alta a probabilidade da
pessoa verificada não ser a mesma pessoa cadastrada, pois espera-se que a distância
euclidiana entre os dois vetores estejam próximos de zero e abaixo do limiar. A Figura
32 ilustra como é esse processo de verificação.
Após instalado e configurado, o plugin fará o registro da face, caso não exista
nenhum registro facial do usuário. Durante o registro da face, um número de 0 a
40 Capítulo 4. Desenvolvimento do Protótipo

Figura 32 – Processo de verificação facial: Este processo analisa a similaridade entre


as duas imagens, foto de cadastro e foto de verificação. A verificação é
feita através da distância euclidiana normalizada entre os dois vetores
de características gerados pela ResNet-34 a partir das imagens captadas.
Se a distância for menor que o limiar 0,60, é verdade que refere-se a
mesma pessoa.
Fonte: Autor

0.99 é mostrado ao redor da face e, representa o quanto aquilo se parece com uma
face. Assim quanto maior o número, melhor a posição e iluminação da face. Feito
o registro facial, o vetor de 128 valores será inserido no banco de dados, dentro da
tabela fvquiz_registered. A Figura 33 mostra o processo de registro da face.

(a) (b)
Figura 33 – Recortes de telas no Moodle antes da realização de um Quiz: (a) se o
estudante ainda não tem um registro de sua face, deve aguardar aparecer
o retângulo azul (o número 0.98 representa a acurácia de ser uma face,
com valor máximo igual a 1); (b) após o estudante clicar em Registrar
Face, deve aparecer no lado direito inferior da tela um recorte da face,
representando que a face esta registrada, com alteração automática da
imagem do cadastro do estudante.
Fonte: Autor

Em seguida, será requerida a verificação da face, captada de nova foto, gerando


um novo vetor de características da face e, por fim, comparada a similaridade com
o vetor cadastrado na tabela fvquiz_registered. Assim, quando mais próximo de
zero e abaixo do limiar (padrão 0,60), maior a similaridade entre as duas faces. Se a
similaridade for maior que o limiar, menor a similaridade entre as faces comparadas.
Então, se a similaridade for maior que o limiar, o Questionário não é liberado, caso
4.2. Apresentação da Solução 41

contrário, o usuário é automaticamente redirecionado ao Questionário. A Figura 34


exemplifica a etapa de verificação facial.

(a) (b) (c)


Figura 34 – Recortes de telas no Moodle antes da realização do questionário: (a)
assim que o detector de face é carregado, o estudante pode realizar
uma tentativa de verificação facial; (b) quando clicado em Verificar
Face, a distância euclidiana normalizada será calculada; (c) ampliação
da mensagem do item b - neste caso a comparação foi bem sucedida com
uma diferença de 0.14 (diferenças inferiores a 0.6 são bem sucedidas).
Fonte: Autor

4.2.3 Funcionalidade de Relatório do Plugin


O relatório é um recurso que permite ao professor verificar todas as tentativas
de realização do questionário. Esse recurso também armazena as fotos dos estudantes
no Dropbox1 , para que o professor possa verificar possíveis fraudes. Desta forma, ele
verifica as fotos no próprio relatório, detalhado nesta seção. Somente o usuário com
permissão de administrador tem acesso as fotos armazenadas do Dropbox. O FVQ
tem acesso a essas fotos através de uma chave, configurada na instalação do plugin.
A Figura 35 apresenta o acesso ao recurso de relatório do FVQ, após escolher
as configurações de uma atividade de questionário. A Figura 36 apresenta a tela
de relatório do FVQ. Esta figura apresenta o relatório de verificação de apenas
três usuários. A primeira coluna apresenta a foto capturada durante o cadastro. A
segunda coluna apresenta a foto capturada durante a verificação (ao tentar responder
um questionário - observe que neste caso as fotos de cadastro e de verificação
do primeiro usuário foram capturadas em momentos diferentes, visíveis pela cor
da camisa). A terceira coluna é o login do usuário. Essas três primeiras colunas
tiveram os dados omitidos manualmente. A quarta coluna apresenta Score Detecção
de Face, representando uma probabilidade de ser uma face. A quinta coluna é a
1
O Dropbox é um serviço de armazenamento de arquivos em nuvem, possibilitando acesso dos
arquivos por meio de uma API (Application Programming Interface). Assim, para enviar ou
obter os arquivos, basta configurar uma chave de acesso que será utilizada em toda requisição
de acesso aos arquivos.
42 Capítulo 4. Desenvolvimento do Protótipo

Figura 35 – Para acessar o relatório de um questionário, escolher configurações e em


seguida Face Verification Report.
Fonte: Autor

distância euclidiana normalizada, desejável ser menor que 0.6 para liberar o acesso
ao questionário. Finalmente, a última coluna mostra a data e a hora da verificação
realizada.

Figura 36 – Relatório de tentativas de acesso a um questionário, após escolher a


opção Face Verification Report, na Figura 35.
Fonte: Autor

4.2.4 Repositório do Projeto


Este trabalho obteve como resultado dois plugins instaláveis no ambiente
Moodle versão 3.1 ou superior. Adicionalmente, ambos plugins podem ser copiados,
distribuídos e modificados conforme a licença GNU General Public License v3.0.
Para acessá-los, basta abrir os links abaixo:

• Face Verification Quiz:


<https://github.com/danielgoncalvesti/faceverificationquiz>
4.2. Apresentação da Solução 43

• Face Verification Report:


<https://github.com/danielgoncalvesti/faceverificationreport>

Ambos plugins estão sendo preparados para serem enviados ao diretório de


oficial de plugins do Moodle (<https://moodle.org/plugins/>) de modo que facilite
o download a instalação da ferramenta.
45

5 Experimentos e Discussões

Para validar o protótipo apresentado no Capítulo 4, foram realizados dois


experimentos para verificar se o plugin de Verificação Facial, chamado de Face
Verification Quiz (FVQ) tem boa usabilidade e realiza o registro e a verificação da
face corretamente.

5.1 Comitê de Ética


Este projeto de pesquisa foi submetido ao Comitê de Ética da UFABC (CEP) o
qual aprovou no dia 22 de abril de 2020 a realização dos experimentos nos voluntários.
Para realização dos experimentos, cada voluntário assinou digitalmente o Termo de
Consentimento Livre e Esclarecido (TCLE) no Sistema de Gestão de Aprendizagem
Moodle antes de iniciar o questionário da atividade proposta. Durante o experimento,
fotos faciais e os dados dos estudantes foram armazenadas na base de dados em
nuvem para que novos testes pudessem ser replicados. Para mais detalhes, acesse
<https://plataformabrasil.saude.gov.br> utilizando os dados para consulta CAAE:
29224320.3.0000.5594 e Número do Parecer: 3.983.563.

5.2 Contexto dos Experimentos


Foram realizados dois experimentos para testar o plugin FVQ. O primeiro
realizado em 2020 e o segundo em 2021, detalhados a seguir.

5.2.1 Primeiro Experimento


O primeiro experimento de uso do FVQ foi realizado no final de 2020 em várias
turmas da disciplina de Bases Computacionais da Ciência (BCC), da Universidade
Federal do ABC. Esta disciplina tem duas horas semanais, num total de 12 semanas,
e ofertou 43 turmas, com 1448 estudantes matriculados, no final de 2020, de forma
totalmente remota. Esses estudantes são ingressantes do bacharelado interdisciplinar
em Ciência e Tecnologia.
Houve um convite amplo ao grupo de professores do BCC de modo a oferecer
material didático e avaliativo unificado. 16/33 professores em 26 turmas optaram por
usar esses materiais e também foram matriculadas (juntamente com os seus estudan-
46 Capítulo 5. Experimentos e Discussões

tes) em uma única disciplina no Moodle para compartilhar atividades avaliativas.


No total, foram 765 estudantes cadastrados na disciplina unificada do Moodle que
finalizaram o curso (com aprovação de 80%), desconsiderando os 18 estudantes que
optaram por trancar o BCC nessas 26 turmas.
Nesse contexto, para validar o FVQ, foi criada uma atividade opcional no
Moodle oficial da universidade redirecionando para o Moodle de teste do plugin, na
semana 9, com 8 questões de múltipla-escolha, sobre o último tópico da ementa do
BCC, sobre Modelagem e Simulação, como apresentado na Figura 37.

Figura 37 – Recorte de tela da atividade criada no Moodle oficial da universidade.


Fonte: Autor

No Moodle de teste (<vcad-vision.ufabc.edu.br>), foi criada uma atividade de


questionário, apresentada na Figura 38. Observe que para o estudante poder realizar
o questionário, terá antes que aceitar um Termo de Esclarecimentos, apresentado na
Figura 39. Neste questionário do primeiro experimento, 28 usuários testaram o plugin
FVQ antes de iniciar o questionário criado para a atividade (dados faciais e acurácia
do método pode ser visualizados em Subseção 5.3.1 Subseção 5.3.2, respectivamente).
Além disso, 16 usuários responderam um Formulário disponível no Google Form,
resumido na Subseção 5.4.
5.2. Contexto dos Experimentos 47

Figura 38 – Atividade de questionário criada no Moodle de teste.


Fonte: Autor

Figura 39 – Termo de Esclarecimentos que o estudante deverá aceitar antes de


responder o questionário apresentado na Figura 38.
Fonte: Autor

5.2.2 Segundo Experimento


Para o segundo experimento, foram convidados os estudantes do Bacharelado
em Ciência da Computação para que utilizassem o FVQ por meio do questionário
do Moodle e respondessem o Google Form.
Sendo assim, uma nova disciplina no servidor de teste (<vcad-vision.ufabc.
edu.br>) e a mesma atividade de questionário foram criadas, ver Figuras 38 e 39
(porém, agora com apenas 4 questões do mesmo tema de Modelagem e Simulação).
No total, foram 300 usuários cadastrados nesta nova disciplina do Moodle. Porém,
48 Capítulo 5. Experimentos e Discussões

apenas 3 usuários responderam o questionário no Moodle e nenhum respondeu o


Formulário disponível no Google Form, resumido a seguir.

5.3 Avaliação da Eficácia

5.3.1 Representação Tridimensional dos Dados Faciais


O plugin FVQ utilizou uma DCNN para extração de características de cada
face, gerando um vetor de 128 dimensões para cada imagem facial. Com a finalidade
de organizar e agrupar o conjunto de dados, é necessário reduzir a dimensionalidade
do vetor de 128 para 3. Assim, para reduzir a dimensão, é aplicada a técnica chamada
Análise de Componentes Principais (ACP) que analisa a correlação entre as variáveis,
transformando num conjunto substancialmente menor de variáveis (HONGYU; AL.,
2016).
A Figura 40 representa o conjunto de dados do experimento, onde cada ponto
representa uma face e cada cor representa um indivíduo (total de 31 indivíduos).
Podemos observar nessa figura que dois usuários (6 e 11), testaram o plugin várias
vezes (observar esses dois agrupamentos no plano PC1×PC2, próximos às coordenadas
(−0.4, −0.1) e (0.3, 0.1), respectivamente). Em relação ao agrupamento dos dados,
nota-se que a maioria dos pontos da mesma pessoa (ou mesma cor) estão próximos e
agrupados, mostrando que o plugin consegue distinguir bem cada face.

5.3.2 Acurácia do Método


Foi utilizada matriz de confusão para extrair métricas de validação do método
proposto neste artigo. Basicamente, a matriz de confusão é uma tabela comparativa
que possui uma relação de predição por valores reais. Os quatro valores gerados
são ‘Verdadeiro Positivo (VP)’, ‘Verdadeiro Negativo (VN)’, ‘Falso Positivo (FP)’
e ‘Falso Negativo (FN)’. A partir destes valores, é possível calcular a acurácia do
método, que seria a assertividade do plugin na tarefa de verificação de faces.
A Figura 41 é uma matriz de confusão baseada no experimento realizado
com 31 estudantes, onde foram feitas 162 registros de acesso ao quiz por meio do
plugin FVQ. Para gerar esta matriz, foram feitas comparação de todas entradas
(multiplicando 161 por 162), chegando num total de 26.082 comparações. A acurácia
alcançada foi de 98.26% de acertos. No entanto, o número de FP (434) se manteve
alto comparado com o FN (20).
Desta forma, seria possível assumir que em um processo de verificação facial
5.3. Avaliação da Eficácia 49

Figura 40 – Representação do conjunto de dados da face por meio da técnica de


redução de dimensionalidade ACP.
Fonte: Autor

Figura 41 – Matriz de Confusão com limiar padrão 0.60.


Fonte: Autor

(i.e. dada uma face e a identificação do usuário, retornar se o usuário é quem ele
diz ser, utilizando o limiar padrão 0.6 o qual é recomendado pelo autor do modelo
<https://github.com/davisking/dlib-models>), 434 tentativas acessariam o quiz
indevidamente.
Assim, foi gerada a matriz da Figura 42 com limiar um pouco mais rigoroso,
igual a 0.55, com o objetivo de diminuir os valores de FP. Desta forma, foi alcançada
a acurácia de 98.96% de acertos e reduzido os valores de FP igual a 66. Ou seja, 66
representaria o número de usuários que iriam acessar o quiz indevidamente.
50 Capítulo 5. Experimentos e Discussões

Figura 42 – Matriz de Confusão com limiar rigoroso 0.55.


Fonte: Autor

Para gerar um processo de acesso mais rigoroso, bastaria diminuir ainda mais
esse limiar.
Esses valores de acurácia apresentados nestes experimentos para a verifica-
ção facial, igual a 99%, seguem o estado da arte (SCHROFF; KALENICHENKO;
PHILBIN, 2015).

5.4 Avaliação da Usabilidade do FVQ


A fim de verificar o tempo de resposta da FVQ, foi realizado um questionário
(utilizando um formulário do Google Form) para validar o FVQ. Algumas estatísticas
são apresentadas a seguir. A Figura 43 mostra que 68, 8% utilizou o navegador
Chrome. Além disso, 15 usuários utilizaram o Sistema Operacional Windows e apenas
um utilizou o Android.

Figura 43 – Estatísticas sobre o navegador utilizado.


Fonte: Autor

Nas três Figuras 44, 45 e 46, a nota 1 representa: “não reconheceu em mais
5.4. Avaliação da Usabilidade do FVQ 51

de 5 minutos” e a nota 5 representa “reconheceu em menos de 5 segundos”. Além


disso, estas três questões foram as únicas obrigatórios no questionário. Ver detalhes
sobre as respostas na próxima seção. A Figura 44 apresenta as estatísticas de uma
pergunta sobre o tempo para o navegador habilitar a webcam, caso ainda não esteja
habilitada. A Figura 45 apresenta as estatísticas de uma pergunta sobre o tempo

Figura 44 – Estatísticas sobre tempo para habilitar a webcam. Quanto maior a nota,
menor o tempo para habilitar a webcam.
Fonte: Autor

para realizar o cadastro/verificação da foto do usuário. A Figura 46 apresenta as

Figura 45 – Estatísticas sobre tempo para realizar o cadastro/verificação da foto.


Fonte: Autor

estatísticas de uma pergunta sobre o tempo para habilitar o questionário após o


cadastro/verificação da foto do usuário.

Figura 46 – Estatísticas sobre tempo para habilitar o questionário após a verificação


da foto.
Fonte: Autor
52 Capítulo 5. Experimentos e Discussões

5.5 Discussões
A Tabela 3 resume as respostas dos questionário para as 3 questões obrigató-
rias, relacionadas ao tempo de resposta para acessar a webcam, cadastro/verificação
e quiz, respectivamente. Para os usuários 15 e 16, que responderam 1 para as três
questões: o primeiro não tinha webcam e o segundo realizou o experimento utilizando
o Android, relatando: “O sistema não me deixou iniciar o quiz, o primeiro passo de
verificação em relação a primeira foto dava erro de similaridade”. O primeiro caso,
realmente não é possível utilizar o FVQ sem uma webcam. O segundo caso, o usuário
não especificou qual foi o celular utilizado, não sendo possível afirmar que foi um
problema do FVQ ou do usuário utilizar um celular muito antigo. O usuário 14,
relatou “O plugin apresentou inconsistências ao abrir no navegador do meu notebook,
além que teve dificuldades em reconhecer meu rosto eu outras posições da câmera
(diferentes cenários)”, utilizando um notebook antigo (HP-g42-321br).

Tabela 3 – Tabela contendo as notas dos usuários nas questões obrigatórias.


Q 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 M STD
3.1 5 5 5 5 4 5 5 5 5 3 3 3 1 2 1 1 3,71 1,61
3.2 5 5 5 5 5 5 4 4 4 3 3 2 3 2 1 1 3,65 1,46
3.3 5 5 5 5 5 4 5 4 4 3 3 4 4 3 1 1 3,88 1,32

5.6 Limitações do Trabalho


O presente trabalho possui algumas limitações para o contexto atual e que
podem ser objeto de trabalhos futuros. Dentre as limitação, são elas:
• O plugin não faz o monitoramento durante o exame, ele apenas autentica a
pessoa no início.

• O plugin pode ser usado apenas no módulo de Quiz do Moodle.

• É necessário o uso de uma webcam para fazer a autenticação.

• A autenticação não funciona no aplicativo oficial do Moodle em smartphones.

• A ferramenta não verifica ou trata a iluminação em relação a captura da


imagem.

• O algoritmo não verifica se é uma imagem estática ou uma imagem em mo-


vimento, assim seria possível realizar a verificação segurando uma foto na
webcam.
5.6. Limitações do Trabalho 53

• Não é feita a checagem do ângulo do rosto no momento do cadastro ou


verificação facial.
55

6 Conclusões e Trabalhos Futuros

Este trabalho visa contribuir e disponibilizar o plugin Face Verification


Quiz gratuitamente para a comunidade do Moodle, liberando o código fonte para
uso pessoal ou comercial, permitindo modificação, e seguindo os termos da licença
General Public License (GPL).
Sobre os testes de prova de conceito, percebeu-se que o método utilizado teve
acurácia de até 98.96%, como demonstrado na Seção 5.3.2, o que mostra ser aceitável
no contexto de verificação facial (certificando que a pessoa é realmente quem ela
diz ser, ou seja, a face a ser verificada é comparada apenas com a face cadastrada
daquele usuário de modo que a resposta da verificação seja binária). Além disso, os
resultados do questionário aplicado nos dois experimentos apresentaram viabilidade
de uso, com aprovação média da usabilidade do plugin de 75% dos 16 usuários que
responderam o formulário no final de 2020 e início de 2021.
Vale lembrar, que o modelo proposto não visa identificar a pessoa, ou seja,
dizer quem a pessoa realmente é, pois isto aumentaria bastante a complexidade e
processamento da solução proposta a medida que o número de usuários aumenta.
Pretende-se também aplicar esse recurso de verificação facial em turmas com avalia-
ções online a fim de verificar possíveis melhorias.
Em relação as futuras implementações, o próximo passo será disponibilizar ao
administrador e professor do curso os logs de acessos aos Questionários com valores
de similaridade. Além disso, será elaborada uma interface para que o administrador
ou professor possa cadastrar a face dos alunos em lote assegurando que as imagens
de cadastro das faces sejam verídicas.

Publicações
Silva, Daniel Gonçalves da; Zampirolli, Francisco de Assis. Reconhe-
cimento facial para validação de usuário durante um questionário no Moodle. Menção
Honrosa. In: IX CONGRESSO BRASILEIRO DE INFORMÁTICA NA
EDUCAÇÃO (WCBIE), 9. , 2020, Online. Porto Alegre: Sociedade Brasileira de
Computação, 2020. p. 124-131 (SILVA; ZAMPIROLLI, 2020).
Silva, Daniel Gonçalves da; Zampirolli, Francisco de Assis. Face
Verification Experiments on Moodle Quiz. In: 2021 XVI Latin American Con-
56 Capítulo 6. Conclusões e Trabalhos Futuros

ference on Learning Technologies (LACLO), 2021, Online (SILVA; ZAMPI-


ROLLI, 2021).
57

Referências

AGGARWAL, C. C. Neural Networks and Deep Learning: A textbook. Cham:


Springer, 2018. 497 p. ISBN 978-3-319-94462-3. Citado 2 vezes nas páginas 6 e 12.

AGHDAM, H. H.; HERAVI, E. J. Guide to Convolutional Neural Networks: A


Practical Application to Traffic-Sign Detection and Classification. 1st. ed. [S.l.]:
Springer Publishing Company, Incorporated, 2017. ISBN 331957549X. Citado 2
vezes nas páginas 10 e 18.

Albawi, S.; Mohammed, T. A.; Al-Zawi, S. Understanding of a convolutional neural


network. In: 2017 International Conference on Engineering and Technology (ICET).
[S.l.: s.n.], 2017. p. 1–6. Citado na página 3.

BELI, I. L. K.; GUO, C. Enhancing face identification using local binary patterns
and k-nearest neighbors. Journal of Imaging, Multidisciplinary Digital Publishing
Institute, v. 3, n. 3, p. 37, 2017. Citado na página 31.

Bhattacharya, S. et al. Smart attendance monitoring system (sams): A face


recognition based attendance system for classroom environment. In: 2018 IEEE 18th
International Conference on Advanced Learning Technologies (ICALT). [S.l.: s.n.],
2018. p. 358–360. Citado 2 vezes nas páginas 30 e 31.

DINIZ, F. A. et al. Um sistema de reconhecimento facial aplicado a um ambiente


virtual de aprendizagem composto por agentes pedagógicos. In: Proceedings of
VIII International Conference on Engineering and Computer Education, Luanda:
UniPiaget. [S.l.: s.n.], 2013. Citado 2 vezes nas páginas 29 e 31.

DOUGIAMAS, M. et al. Moodle. International Society for Technology in Education,


2004. Citado na página 25.

DOUGIAMAS, M.; TAYLOR, P. Moodle: Using learning communities to create


an open source course management system. In: ASSOCIATION FOR THE
ADVANCEMENT OF COMPUTING IN EDUCATION (AACE). EdMedia+
Innovate Learning. [S.l.], 2003. p. 171–178. Citado na página 26.

DUMOULIN, V.; VISIN, F. A guide to convolution arithmetic for deep learning.


2018. Citado 2 vezes nas páginas 16 e 17.

FILHO, E. M. A.; MARTINEZ, A. L. Requisitos funcionais de um sistema de


informações para gestão de custos no setor público. In: Anais do Congresso Brasileiro
de Custos-ABC. [S.l.: s.n.], 2006. Citado na página 33.

GONZALEZ, N. M. et al. A framework for authentication and authorization


credentials in cloud computing. In: 2013 12th IEEE International Conference on
Trust, Security and Privacy in Computing and Communications. [S.l.: s.n.], 2013. p.
509–516. Citado na página 1.
58 Referências

GONZALEZ, R.; WOODS, R. Processamento Digital De Imagens. ADDISON


WESLEY BRA, 2009. ISBN 9788576054016. Disponível em: <https:
//books.google.com.br/books?id=r5f0RgAACAAJ>. Citado 2 vezes nas páginas 5
e 7.

GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep learning. [S.l.]: MIT


press, 2016. Citado 3 vezes nas páginas 9, 12 e 14.

GRON, A. Hands-On Machine Learning with Scikit-Learn and TensorFlow:


Concepts, Tools, and Techniques to Build Intelligent Systems. 1st. ed. [S.l.]: O’Reilly
Media, Inc., 2017. ISBN 1491962291. Citado 4 vezes nas páginas 9, 12, 13 e 14.

GUILLÉN-GÁMEZ, F. D.; GARCÍA-MAGARIÑO, I. Facial authentication before


and after applying the smowl tool in moodle. In: SPRINGER. Distributed Computing
and Artificial Intelligence, 11th International Conference. [S.l.], 2014. p. 173–180.
Citado na página 30.

GULLI, A.; PAL, S. Deep learning with Keras. [S.l.]: Packt Publishing Ltd, 2017.
Citado na página 24.

Guo, T. et al. Simple convolutional neural network on image classification. In: 2017
IEEE 2nd International Conference on Big Data Analysis (ICBDA). [S.l.: s.n.], 2017.
p. 721–724. Citado na página 3.

GUO, Y.; WÜNSCHE, B. C. Comparison of face detection algorithms on mobile


devices. In: IEEE. 2020 35th International Conference on Image and Vision
Computing New Zealand (IVCNZ). [S.l.], 2020. p. 1–6. Citado na página 21.

HAYKIN, S. Neural Networks and Learning Machines. Prentice Hall, 2009. (Neural
networks and learning machines, v. 10). ISBN 9780131471399. Disponível em:
<https://books.google.com.br/books?id=K7P36lKzI\_QC>. Citado 2 vezes nas
páginas 6 e 9.

He, K. et al. Deep residual learning for image recognition. In: 2016 IEEE Conference
on Computer Vision and Pattern Recognition (CVPR). [S.l.: s.n.], 2016. p. 770–778.
Citado 3 vezes nas páginas 9, 22 e 23.

HERNANDEZ, E. d. T.; SARMIENTO, A. C.; SOLANO, S. S. Implementación


híbrida hardware software del algoritmo de detección de rostros de Viola-Jones sobre
FPGA. Universidad,Ciencia y Tecnología, scielon, v. 16, p. 114 – 124, 06 2012. ISSN
1316-4821. Disponível em: <http://ve.scielo.org/scielo.php?script=sci_arttext&
pid=S1316-48212012000200005&nrm=iso>. Citado na página 20.

HJELMÅS, E.; LOW, B. K. Face detection: A survey. Computer vision and image
understanding, Elsevier, v. 83, n. 3, p. 236–274, 2001. Citado na página 2.

HONGYU, K.; AL. et. Análise de componentes principais: resumo teórico, aplicação
e interpretação. E&S Engineering and science, v. 5, n. 1, p. 83–90, 2016. Citado na
página 48.
Referências 59

HUAI, M. et al. Deep metric learning: The generalization analysis and an


adaptive algorithm. In: Proceedings of the Twenty-Eighth International Joint
Conference on Artificial Intelligence, IJCAI-19. International Joint Conferences
on Artificial Intelligence Organization, 2019. p. 2535–2541. Disponível em:
<https://doi.org/10.24963/ijcai.2019/352>. Citado na página 24.

HUANG, C.; LOY, C. C.; TANG, X. Local similarity-aware deep feature embedding.
arXiv preprint arXiv:1610.08904, 2016. Citado na página 24.

HUANG, Y. et al. More information supervised probabilistic deep face embedding


learning. In: PMLR. International Conference on Machine Learning. [S.l.], 2020. p.
4484–4494. Citado na página 30.

HUBEL, D.; WIESEL, T. Receptive fields of single neurones in the cat’s striate
cortex. The Journal of physiology, v. 148, p. 574—591, October 1959. ISSN
0022-3751. Disponível em: <https://www.ncbi.nlm.nih.gov/pmc/articles/pmid/
14403679/?tool=EBI>. Citado na página 14.

HUBEL, D. H.; WIESEL, T. N. Receptive fields and functional architecture of


monkey striate cortex. Journal of Physiology (London), v. 195, p. 215–243, 1968.
Citado na página 14.

JAIN, A. K.; LI, S. Z. Handbook of face recognition. [S.l.]: Springer, 2011. v. 1.


Citado na página 2.

KAYA, M.; BİLGE, H. Deep metric learning: A survey. Symmetry, v. 11, n. 9, 2019.
ISSN 2073-8994. Disponível em: <https://www.mdpi.com/2073-8994/11/9/1066>.
Citado na página 24.

KHAN, S. A.; USMAN, M.; RIAZ, N. Face recognition via optimized features fusion.
Journal of Intelligent & Fuzzy Systems, IOS Press, v. 28, n. 4, p. 1819–1828, 2015.
Citado na página 31.

KORTLI, Y. et al. Face recognition systems: A survey. Sensors, Multidisciplinary


Digital Publishing Institute, v. 20, n. 2, p. 342, 2020. Citado na página 3.

KUO, L.-H. et al. A study of online asynchronous learning monitored by face


recognition. WSEAS Transactions on Information Science and Applications, World
Scientific and Engineering Academy and Society (WSEAS) Stevens Point . . . , v. 7,
n. 10, p. 1211–1229, 2010. Citado na página 30.

KUOSA, K. et al. Interactive visualization tools to improve learning and teaching in


online learning environments. International journal of distance education technologies
(IJDET), IGI Global, v. 14, n. 1, p. 1–21, 2016. Citado na página 2.

LABAYEN, M. et al. Smowl: a tool for continuous student validation based on face
recognition for online learning. Edulearn14 Proceedings, p. 5354–5359, 2014. Citado
2 vezes nas páginas 29 e 31.
60 Referências

LAW, M. T.; URTASUN, R.; ZEMEL, R. S. Deep spectral clustering learning. In:
PMLR. International conference on machine learning. [S.l.], 2017. p. 1985–1994.
Citado na página 24.

LEARNED-MILLER, E. et al. Labeled faces in the wild: A survey. In: Advances in


face detection and facial image analysis. [S.l.]: Springer, 2016. p. 189–248. Citado
na página 31.

Lukas, S. et al. Student attendance system in classroom using face recognition


technique. In: 2016 International Conference on Information and Communication
Technology Convergence (ICTC). [S.l.: s.n.], 2016. p. 1032–1035. Citado 2 vezes nas
páginas 30 e 31.

MACHIDON, A. L.; MACHIDON, O. M.; OGRUTAN, P. L. Face recognition using


eigenfaces, geometrical PCA approximation and neural networks. In: IEEE. 2019
42nd International Conference on Telecommunications and Signal Processing (TSP).
[S.l.], 2019. p. 80–83. Citado 2 vezes nas páginas 29 e 31.

MCCULLOCH, W. S.; PITTS, W. A logical calculus of the ideas immanent in


nervous activity. The bulletin of mathematical biophysics, Springer, v. 5, n. 4, p.
115–133, 1943. Citado na página 9.

MOODLE. 2008. Acessado: 25 out. 2021. Disponível em: <https://docs.moodle.org/


dev/Main_Page>. Acesso em: 25 out. 2021. Citado na página 26.

MOODLE. 2008. Acessado: 22 out. 2021. Disponível em: <https://docs.moodle.org/


all/pt_br/Modulo_Quiz>. Acesso em: 22 out. 2021. Citado na página 26.

NI, J. et al. Fine-grained patient similarity measuring using deep metric learning.
In: Proceedings of the 2017 ACM on Conference on Information and Knowledge
Management. [S.l.: s.n.], 2017. p. 1189–1198. Citado na página 24.

O’SHEA, K.; NASH, R. An introduction to convolutional neural networks. arXiv


preprint arXiv:1511.08458, 2015. Citado na página 14.

PEER, P. et al. Building cloud-based biometric services. Informatica, v. 37, n. 2,


2013. Citado na página 30.

PIHLAJAMÄKI, T. Multi-resolution short-time fourier transform implementation of


directional audio coding. Helsinki University of Technology, 2009. Citado na página
15.

PRESEDO, C. et al. Calibración de ítems vía expertos utilizando moodle. Revista


Ibero-americana de Educação, v. 69, n. 1, p. 117–132, 2015. Citado na página 2.

RAHIM, A. F. A. Guidelines for online assessment in emergency remote teaching


during the covid-19 pandemic. Education in Medicine Journal, v. 12, n. 3, 2020.
Citado na página 2.

RAUBER, T. W. Redes neurais artificiais. Universidade Federal do Espírito Santo,


v. 29, 2005. Citado 2 vezes nas páginas 9 e 13.
Referências 61

ROLIM, A. L.; BEZERRA, E. P. Um sistema de identificação automática de faces


para um ambiente virtual de ensino e aprendizagem. In: Companion Proceedings
of the XIV Brazilian Symposium on Multimedia and the Web. [S.l.: s.n.], 2008. p.
129–132. Citado na página 30.
RUMELHART, D. E.; HINTON, G. E.; WILLIAMS, R. J. Learning internal
representations by error propagation. [S.l.], 1985. Citado na página 13.
Samet, R.; Tanriverdi, M. Face recognition-based mobile automatic classroom
attendance management system. In: 2017 International Conference on Cyberworlds
(CW). [S.l.: s.n.], 2017. p. 253–256. Citado 2 vezes nas páginas 30 e 31.
SCHROFF, F.; KALENICHENKO, D.; PHILBIN, J. Facenet: A unified embedding
for face recognition and clustering. In: Proceedings of the IEEE conference on
computer vision and pattern recognition. [S.l.: s.n.], 2015. p. 815–823. Citado na
página 50.
SHANMUGAMANI, R.; MOORE, S. Deep Learning for Computer Vision:
Expert Techniques to Train Advanced Neural Networks Using TensorFlow
and Keras. Packt Publishing, 2018. ISBN 9781788295628. Disponível em:
<https://books.google.com.br/books?id=dgdOswEACAAJ>. Citado 2 vezes nas
páginas 18 e 19.
SHYAM, R.; SINGH, Y. N. Identifying individuals using multimodal face recognition
techniques. Procedia Computer Science, Elsevier, v. 48, p. 666–672, 2015. Citado na
página 31.
SILVA, D. G. da; ZAMPIROLLI, F. de A. Reconhecimento facial para validação de
usuário durante um questionário no moodle. In: SBC. Anais dos Workshops do IX
Congresso Brasileiro de Informática na Educação. [S.l.], 2020. p. 124–131. Citado 2
vezes nas páginas 3 e 55.
SILVA, D. G. da; ZAMPIROLLI, F. de A. Face verification experiments on moodle
quiz. In: IEEE. 2021 XVI Latin American Conference on Learning Technologies
(LACLO). [S.l.], 2021. Citado na página 56.
SOHN, K. Improved deep metric learning with multi-class n-pair loss objective. In:
Proceedings of the 30th International Conference on Neural Information Processing
Systems. [S.l.: s.n.], 2016. p. 1857–1865. Citado na página 24.
SOMMERVILLE, I. Software Engineering. 9. ed. Harlow, England: Addison-Wesley,
2010. ISBN 978-0-13-703515-1. Citado 2 vezes nas páginas 33 e 34.
SONG, H. O. et al. Deep metric learning via lifted structured feature embedding. In:
Proceedings of the IEEE conference on computer vision and pattern recognition. [S.l.:
s.n.], 2016. p. 4004–4012. Citado na página 24.
SUNDARARAJAN, K.; WOODARD, D. L. Deep learning for biometrics:
A survey. ACM Comput. Surv., Association for Computing Machinery, New
York, NY, USA, v. 51, n. 3, maio 2018. ISSN 0360-0300. Disponível em:
<https://doi.org/10.1145/3190618>. Citado na página 3.
62 Referências

VACCA, J. R. Biometric technologies and verification systems. [S.l.]: Elsevier, 2007.


Citado na página 1.

VALERIANI, D.; POLI, R. Cyborg groups enhance face recognition in crowded


environments. PloS one, Public Library of Science San Francisco, CA USA, v. 14,
n. 3, p. e0212935, 2019. Citado 2 vezes nas páginas 30 e 31.

VILLÁN, A. Mastering OpenCV 4 with Python: A Practical Guide Covering


Topics from Image Processing, Augmented Reality to Deep Learning with OpenCV
4 and Python 3.7. Packt Publishing, 2019. ISBN 9781789344912. Disponível em:
<https://books.google.com.br/books?id=vZ8ZxAEACAAJ>. Citado na página 25.

VIOLA, P.; JONES, M. Robust real-time face detection. International Journal of


Computer Vision, v. 1, 2001. Citado 2 vezes nas páginas 20 e 21.

Wagh, P. et al. Attendance system based on face recognition using eigen face and
PCA algorithms. In: 2015 International Conference on Green Computing and
Internet of Things (ICGCIoT). [S.l.: s.n.], 2015. p. 303–308. Citado na página 29.

WANG, J. et al. Deep metric learning with angular loss. In: Proceedings of the
IEEE International Conference on Computer Vision. [S.l.: s.n.], 2017. p. 2593–2601.
Citado na página 24.

WANG, Y.-Q. An analysis of the Viola-Jones face detection algorithm. Image


Processing On Line, v. 1, p. 1, 2014. Citado na página 19.

WANI, M. A. et al. Advances in deep learning. [S.l.]: Springer, 2020. Citado na


página 11.

WILSON, Y.; HINGNIKAR, A. Solving Identity Management in Modern


Applications: Demystifying OAuth 2.0, OpenID Connect, and SAML 2.0. [S.l.]:
Apress, 2019. Citado na página 1.

WU, Z.; SHEN, C.; HENGEL, A. V. D. Wider or deeper: Revisiting the resnet
model for visual recognition. Pattern Recognition, Elsevier, v. 90, p. 119–133, 2019.
Citado na página 22.

ZHANG, A. et al. Dive into Deep Learning. [S.l.: s.n.], 2019. <http://www.d2l.ai>.
Citado na página 17.

Zhang, K. et al. Joint face detection and alignment using multitask cascaded
convolutional networks. IEEE Signal Processing Letters, v. 23, n. 10, p. 1499–1503,
2016. Citado na página 21.

Zhang, K. et al. Joint face detection and alignment using multitask cascaded
convolutional networks. IEEE Signal Processing Letters, v. 23, n. 10, p. 1499–1503,
2016. Citado na página 39.

Você também pode gostar