Uploaded by Robert Maia

TCC UNIVESP AI

advertisement
UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO
Carlos Aldiran Ferreira Menezes – RA 1711295
Magnovaldo Oliveira Carneiro – RA 1713790
Robert Marques Maia – RA 1704055
Inteligência Artificial para detecção de máscara facial
Vídeo de Apresentação
São Paulo - SP
2021
UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO
Inteligência Artificial para detecção de máscara facial
Monografia apresentada na disciplina Trabalho
de Conclusão de Curso para Engenharia da
Computação da Universidade Virtual do Estado
de São Paulo (UNIVESP).
Orientador: Lucas Exposto Soares
São Paulo - SP
2021
FICHA DE AVALIAÇÃO DA BANCA
Identificação dos alunos:
Nome: Carlos Aldiran Ferreira Menezes
Nome: Magnovaldo Oliveira Carneiro
Nome: Robert Marques Maia
RA: 1711295
RA: 1713790
RA: 1704055
Curso: Graduação em Engenharia de Computação
Turma: 5 butantã
Nome da Monografia: Inteligência Artificial para Detecção de Máscara Facial
Principais objetivos, que descrevem brevemente a Monografia:
BANCA:
Prof. ______________________________________
_____________________
Prof. ______________________________________
_____________________
Orientador: Dr. Lucas Exposto Soares
___________________
Data: São Paulo, ________________________
Ficha catalográfica
MENEZES, Carlos A. F.; CARNEIRO, Magnovaldo O.;
MAIA, Robert M
Inteligência Artificial para detecção de máscara facial /
Carlos Aldiran Menezes; Magnovaldo Oliveira Carneiro;
Robert Marques Maia 2021. XXp.(Número de páginas da monografia)
Monografia (Graduação) - Universidade Virtual do Estado
de São Paulo - UNIVESP, 2021.
Orientador: Lucas Exposto Soares.
1. Inteligência Artificial 2. Reconhecimento Facial 3. Rede
Neural Artificial 4. Aprendizado de Máquina
DEDICATÓRIA
Escrever uma dedicatória para cada um, ordenado alfabeticamente por autor.
AGRADECIMENTOS
Escrever um agradecimento para cada um, ordenado alfabeticamente por autor ou
um único em conjunto.
RESUMO
O mundo tem lutado contra a pandemia, e os governos vem adotando diversas
medidas para reduzir os níveis de contaminação e mortes. Neste momento,
enquanto a vacinação não está acessível a toda população as únicas formas de
combate e prevenção são distanciamento social, higiene constante e uso contínuo
de máscara facial. O objetivo deste trabalho é oferecer uma solução utilizando
Inteligência Artificial e Aprendizado de Máquina fazendo uso da visão computacional
na forma de detecção de máscara facial ajudando a monitorar seu uso em diversos
locais como condomínios, escolas, hospitais, bancos, aeroportos, etc. A técnica de
detectar os rostos das pessoas e separá-los em duas classes, ou seja, pessoas com
máscaras e pessoas sem máscaras, é feita com a ajuda de rede neural artificial.
PALAVRAS-CHAVE: Covid-19; Inteligência Artificial; Aprendizado de Máquina;
Processamento de Imagem;
ABSTRACT
The world has been fighting the pandemic, and governments have been taking
several actions to reduce levels of infection and deaths. Currently, while vaccination
is not accessible to the entire population, the only ways to combat and prevent it are
social distance, constant hygiene, and continuous wearing face mask. The objective
of this project is to offer a solution using Artificial Intelligence and Machine Learning
using computer vision in the form of face mask detection helping to monitor its use in
different places such as condominiums, schools, hospitals, banks, airports, etc. The
technique of detecting people's faces and segregating them into two classes, namely
people with masks and people without masks, is done with the help of image
processing and machine learning. (Consertar a tradução do resumo)
KEYWORDS: Covid-19; Artificial Intelligence; Machine Learning; Image processing.
ÍNDICE DE FIGURAS
Nenhuma entrada de índice de ilustrações foi encontrada.
LISTA DE ABREVIATURA E SIGLAS
AM
Aprendizado de Máquina
AP
Aprendizagem Profunda
EPI
Equipamento de Proteção Individual
IA
Inteligência Artificial
OMS
Organização Mundial da Saúde
PFF
Peça Facial Filtrante
RI
Reconhecimento de Imagem
RNA
Rede Neural Artificial
RNC
Rede Neural Convolucional
E AÍ VAI...
SUMÁRIO
1 INTRODUÇÃO................................................................................................................... 12
1.1 Objetivos..............................................................................................................13
1.1.1 OBJETIVO GERAL ..................................................................................................................... 13
1.1.2 OBJETIVO ESPECÍFICO............................................................................................................. 13
1.2 Justificativa..........................................................................................................13
1.3 Métodos e Instrumentos de Pesquisa ............................................................14
2 REFERENCIAL TEÓRICO .............................................................................................. 15
3 Apresentação do ESTUDO ............................................................................................. 25
3.1 Estudo inicial .......................................................................................................25
3.1.1 FLUXO DE TRABALHO NO TEACHABLE MACHINE .................................................................... 25
3.2
3.3
3.4
3.5
Estudo com ferramenta local ...........................................................................26
Testes práticos....................................................................................................29
Marcos faciais .....................................................................................................30
Imagem de Fundo (Background).....................................................................33
4 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS ........................................... 34
5 ANEXO I ............................................................................................................................. 35
6 REFERÊNCIAS BIBLIOGRÁFICAS............................................................................... 36
1 INTRODUÇÃO
De acordo com (OMS, 2021), a doença SARS-Cov2, conhecida popularmente como
COVID-19 ou coronavírus, já infectou globalmente, até o momento do relatório,
166.352.007 pessoas globalmente, causando 3.449.189 óbitos pelo vírus. Conforme
amplamente mostrado pela imprensa, indivíduos que contraíram COVID-19 tiveram
uma ampla gama de sintomas – indo de manifestações respiratórias suaves a
graves.
O impacto gerado por todos esses casos deixou o mundo muito próximo de um
colapso nos diversos sistemas de saúde, o que contribuiu com o estabelecimento de
muitas tentativas – vale ressaltar que todas controversas e carecendo de muito
debate científico – de conter e diminuir o impacto da doença. Uma dessas tentativas
é o uso de máscaras por indivíduos que necessitam transitar por locais que tenham
fluxo de pessoas. A despeito dessa medida ser correta ou não, o que não é objetivo
deste trabalho esse questionamento, muitos governos nacionais e locais
determinaram regras que obrigam o uso de máscaras em ambientes que tendem a
gerar aglomeração de pessoas.
Como objetivo secundário, resultado do investimento na pesquisa e aprofundamento
no tema, busca-se o desenvolvimento dos membros da equipe deste projeto na área
de Inteligência Artificial, Aprendizado de Máquina e Aprendizagem Profunda, entre
outras, à medida que há necessidade de buscar conhecimento e aculturamento
nestas soluções que estão sendo utilizadas cada vez mais no apoio a sociedade e
organizações.
É esperado que ao final deste trabalho tenha sido desenvolvido competências nas
áreas de IA que possibilitem a aquisição de novos conhecimentos relacionados ao
tema proposto.
1.1 Objetivos
Um trabalho acadêmico deve se pautar pela identificação de um problema e, de
forma subsequente, pela busca de uma resposta satisfatória à questão levantada.
Conforme (KANT, 2021), em tradução livre, “pensamentos sem conteúdo são vazios,
instituições sem conceito são cegas”. Com esta premissa em foco, temos como
objetivo de qualquer trabalho que se proponha o desenvolvimento do conhecimento
humano.
Além de objetivar a contribuição para o desenvolvimento das disciplinas
relacionadas com inteligência artificial e de apresentar uma visão sobre o assunto, é
objetivo deste trabalho proporcionar aos seus integrantes qualificação nos assuntos
abordados, não sendo, no entanto, pretensão deste ser um ponto final sobre o
assunto, mas pelo contrário, ser um ponto inicial.
1.1.1 Objetivo geral
Demonstrar a aplicação de um sistema de reconhecimento facial para verificação
com o uso de máscaras baseado em inteligência artificial.
1.1.2 Objetivo específico
Testar em diversas configurações um sistema leve de reconhecimento facial,
experimentar os datasets disponibilizados com a ferramenta utilizada e sugerir
formas de qualificar o dataset fornecido para que se possa melhorar a precisão e
tornar mais eficiente o reconhecimento de máscaras.
1.2 Justificativa
O momento atual de pandemia em que estamos inseridos nos traz diversos desafios
relativos ao relacionamento humano a que estamos acostumados, e que nos é
natural, em contraponto a um comportamento que não nos é natural, trazendo um
novo paradigma na forma como a humanidade se relaciona.
Também é verdade que vivemos uma época de rápidas transformações
tecnológicas, onde nos últimos 20 anos, ou melhor, nestes 20 anos iniciais do século
XXI, ocorreram mais transformações da forma como nos relacionamos por causa da
tecnologia que em comparação com todo o século XX.
Baseado nessas mudanças e em consonância com os dados de (OMS, 2021), o
Brasil possui, no momento do relatório, 15.970.949 casos de infecções e 446.309
mortes por COVID-19. Pelas políticas estabelecidas no intuito de diminuir a curva de
infectados, das dificuldades de fiscalização por parte das autoridades e da falta de
conscientização da população, pensou-se, para a execução deste trabalho, na
utilização de reconhecimento facial para facilitar a verificação do correto uso do EPI.
1.3 Métodos e Instrumentos de Pesquisa
A abordagem metodológica utilizada neste trabalho é a de pesquisa exploratória.
Conforme (GIL, 2001):
Estas pesquisas têm como objetivo proporcionar maior familiaridade com o
problema, com vistas a torná-lo mais explícito ou a constituir hipóteses.
Pode-se dizer que estas pesquisas têm como objetivo principal o
aprimoramento de idéias ou a descoberta de intuições. Seu planejamento é,
portanto, bastante flexível, de modo que possibilite a consideração dos mais
variados aspectos relativos ao fato estudado. Na maioria dos casos, essas
pesquisas envolvem: (a) levantamento bibliográfico; (b) entrevistas com
pessoas que tiveram experiências práticas com o problema pesquisado; e
(c) análise de exemplos que "estimulem a compreensão" (Selltiz et al., 1967,
p. 63).
Embora o planejamento da pesquisa exploratória seja bastante flexível, na
maioria dos casos assume a forma de pesquisa bibliográfica ou de estudo
de caso [...].
Além da consulta em vários materiais para compreender os assuntos dos quais
versam esta produção, utilizou-se como base uma visita à bibliografia que trata
sobre os assuntos de IA, RNA, AM e RI. Juntamente a essa revisão bibliográfica,
foram realizadas experimentações para compreender melhor sobre o tema,
utilizando plataformas já estabelecidas para a realização dos testes.
Após a definição da metodologia a ser utilizada, procurou-se obter um entendimento
inicial sobre as tecnologias envolvidas através de experiências com plataforma já
estabelecida, objetivando a aquisição de parâmetros para a realização de
experimentos com outros recursos, que serão apresentados no decorrer deste
trabalho.
2 REFERENCIAL TEÓRICO
Inteligência
Conceituar inteligência é uma tarefa complexa. O conceito tem sido estudado há
séculos por filósofos e pesquisadores. De forma bastante simplificada, pode-se dizer
que inteligência é uma característica humana, que pressupõe que, a partir de
experiências anteriores, conhecimentos transferidos, ou desenvolvimento de novos
conhecimentos derivados de reflexões, o ser inteligente pode resolver questões do
cotidiano que lhe são impostas no decurso da vida.
O conceito de inteligência é, por muitas vezes, confundido - ou mesmo misturado - a
outros conceitos, como o de sabedoria ou capacidade de raciocínio, o que torna seu
entendimento ainda mais complexo e confuso. Mas se for levado em consideração a
descrição dada por um dicionário, como no dicionário online Michaelis, que diz que a
"Inteligência é a capacidade de resolver situações novas com rapidez e êxito,
adaptando-se a elas por meio do conhecimento adquirido".
Baseado nesta definição dada pelo dicionário, e que serve de forma satisfatória para
fins deste estudo, podemos inferir que quanto mais situações ou informações a que
um ser inteligente for submetido, maior o arcabouço de exemplos que ele disporá
para resolver os desafios a ele apresentados, tornando sua inteligência mais
desenvolvida.
Define-se, portanto, para fins deste trabalho, inteligência como a capacidade de criar
respostas a partir de experiências adquiridas pelo próprio ser ou pela transmissão de
conhecimento a partir de outro ser de igual ou maior inteligência.
Inteligência artificial
Existem muitas controvérsias acerca da definição do termo inteligência artificial.
Mesmo grandes nomes na área como Alan Turing, quando propõe a questão, em
seu trabalho intitulado Computing Machinery and Intelligence, “As máquinas podem
pensar?” (tradução livre), ou John McCarthy, referenciado como o criador do termo
Inteligência Artificial em 1956, quando afirma que a ideia de uma máquina inteligente
é antiga logo no início de seu trabalho Some Philosophical Problems From The
Standpoint Of Artificial Intelligent", além de inúmeros outros autores, não oferecem
um conceito definitivo sobre o que é IA.
Mas, a despeito das muitas controvérsias, uma definição válida para o termo e
adequada aos propósitos deste trabalho é dada por (COPIN, 2013), "Inteligência
Artificial envolve utilizar métodos baseados no comportamento inteligente de
humanos e outros animais para solucionar problemas complexos".
Ainda de acordo com (COPIN, 2013), temos uma diferença entre dois tipos de IAs,
as IAs fortes e as IAs fracas. A diferença fundamental entre elas é que a visão de
uma IA forte pressupõe que, com capacidade computacional adequada, é possível
que uma IA se torne consciente e tenha capacidade de pensar da mesma forma que
um ser humano, o que, ainda de acordo com o autor, muitos filósofos e
pesquisadores consideram essa visão como sendo absurda ou infundada, relegada
a obras de ficção científica, e que raramente se considera em pesquisas a
possibilidade de se desenvolver máquinas com capacidade de consciência e de
possuir emoções.
Conforme descrito por (COPIN, 2013) em seu livro:
Por outro lado, IA fraca é simplesmente a visão de que comportamento
inteligente pode ser modelado e utilizado por computadores para solucionar
problemas complexos. Este ponto de vista defende que apenas o fato de
um
computador
agir
inteligentemente
não
prova
que
ele
seja
verdadeiramente inteligente no sentido humano.
Levando em consideração que não se tem, ainda, condições para a criação de
máquinas que possam expressar de forma espontânea sentimentos ou emoções e
de serem conscientes, uma vez que a própria natureza humana possui muitas
controvérsias em suas ações, pode-se inferir que o tipo de conceito mais adequado
à inteligência artificial é exatamente o descrito por IA fraca.
Cabe levar em consideração ainda que (COPIN, 2013) diferencia IA forte de IA fraca
e afirma que o conceito não se mistura ao de método forte e método fraco:
Discutimos as diferenças entre as alegações da IA fraca e da IA forte. Essa
diferença não deve ser confundida com a diferença entre métodos
fortes e métodos fracos.
Os métodos fracos da Inteligência Artificial usam sistemas tais como lógica,
raciocínio automatizado e outras estruturas gerais que podem ser aplicadas
a uma ampla gama de problemas, mas que não necessariamente
incorporam qualquer conhecimento genuíno sobre o mundo do problema
que está sendo solucionado.
Por outro lado, solucionar problemas por métodos fortes depende de um
sistema dispor de sólidos conhecimentos sobre o seu mundo e sobre os
problemas que ele deve encontrar. Solucionar problemas por métodos fortes
depende dos métodos fracos, pois um sistema com conhecimento, sem
alguma metodologia para lidar com este conhecimento, é inútil.
Assim sendo, podemos nos utilizar também do conceito de método fraco para fins de
embasamento deste trabalho. Ainda cabe ressaltar, conforme (ROSA, 2011) que a
Inteligência Artificial trabalha basicamente com duas abordagens: a abordagem
simbólica, baseada na lógica, e a abordagem conexionista, baseada nas redes
neurais artificiais, ou seja, simulação do cérebro humano.
Aprendizado de máquina
Dentro do campo de estudo da inteligência artificial encontramos uma das disciplinas
que vem ganhando mais importância, chamada de aprendizado de máquina, ou
mais comumente conhecida pelo seu nome em inglês, machine learning.
Aprendizado de máquina pressupõe que as máquinas possam aprender - ou
desenvolver sua inteligência - a partir de exemplos adquiridos e experimentações de
forma autônoma. Conforme (LOPES, 2014),
Algoritmos de Aprendizado de Máquina têm como objetivo descobrir o
relacionamento entre as variáveis de um sistema (entrada/saída) a partir de
dados amostrados. Estes algoritmos se originam de muitas áreas de
aplicações: Estatística, Física, Engenharia, Computação etc.
Quando os relacionamentos entre todas as variáveis do problema
(entrada/saída) não são completamente compreendidos, os Algoritmos de
Aprendizagem de Máquina são necessários; este é o caso de muitos dos
problemas reais com os quais nos defrontamos no cotidiano.
Ainda de acordo com (LOPES, 2014), o aprendizado de máquina pode ser
classificado como supervisionado, não supervisionado ou por reforço.
Aprendizado de máquina supervisionado
Aprendizado de máquina supervisionado é um modelo que fornece um resultado a
partir de exemplos pré-determinados fornecidos à máquina. De longe, este é o mais
utilizado dos modelos no AM, onde os problemas a serem resolvidos, em sua
maioria, são conhecidos. Assim, são apresentados ao algoritmo dados de entrada e
suas saídas, possibilitado que ele compreenda os padrões.
Dentro deste modelo encontra-se ainda a divisão entre modelo supervisionado de
regressão e modelo supervisionado de classificação. No modelo de regressão,
avalia-se o comportamento de uma saída de acordo com as variações de entrada e
tem uma abordagem numérica, como nas regressões lineares. Já no modelo de
classificação, busca-se organizar a saída dentro de determinados requisitos,
classificando o resultado de acordo com uma abordagem comparativa e geralmente
binária, como nas regressões logísticas.
Aprendizado de máquina não supervisionado
O aprendizado de máquina não supervisionado busca identificar uma estrutura que
demonstre os possíveis caminhos para que se possa atingir um resultado, onde são
oferecidas ao algoritmo um conjunto de entradas e é deixado a cargo deste
determinar os possíveis caminhos para se chegar a saídas prováveis. É um modelo
pouco utilizado se comparado ao AM supervisionado, mas é de grande importância
quando se avaliam resultados que não possuem uma ordenação definida.
Aprendizado de máquina por reforço
O modelo de AM por reforço permite que a máquina aprenda por tentativas,
contabilizando os erros e acertos e buscando maximizar a quantidade de sucessos.
Se comparado aos modelos supervisionado e não supervisionado, este modelo está
mais próximo de como funciona o aprendizado humano, pois busca obter o maior
valor de acertos possíveis, que são traduzidos em recompensas.
Entretanto ele tem alguns fatores que não o torna tão versátil, como possuir uma
rigidez em relação ao problema tratado necessitando ser modelado para cada
aplicação a que se destina, ou seja, quando se muda o objeto, as mudanças
realizadas no modelo são mais profundas que nos supervisionados e não
supervisionados.
A autonomia deste modelo é alta em comparação com os modelos anteriores, pois a
intervenção humana se dá somente no ajuste do algoritmo ao ambiente e do sistema
de recompensas e penalidades, ou acertos e erros, deixando a cargo dele aprender
por conta própria como chegar num resultado satisfatório.
Rede neural artificial
Durante o desenvolvimento dos estudos sobre RNA, as pesquisas esbarraram em
muitas dificuldades, sobretudo com relação ao tipo de máquina disponível. As
máquinas seguiam – e ainda seguem em sua maioria, mas não mais exclusivamente
– a arquitetura de Von Newman. É uma arquitetura que tem como premissa o
processamento serial em contraposição ao processamento paralelo.
A Arquitetura de Von Newman não pressupõe que a máquina tenha capacidade de
aprendizado, generalização, adaptabilidade e tolerância a falhas. Entretanto, com o
alvorecer do século XXI, a tecnologia de hardware evoluiu muito no sentido de
permitir paralelização e tolerância a falhas, e os algoritmos foram sendo aprimorados
para aproveitar essa capacidade de análise paralela e criar simulações do
comportamento do cérebro humano.
Ainda no século XX, sobretudo a partir do pós-guerra da segunda guerra mundial,
muitos trabalhos foram realizados em busca de máquinas que pudessem realizar
trabalhos de forma análoga a que humanos realizariam.
Ainda durante a segunda guerra, em 1943, trabalhos de McCulloch e Pitts já
tratavam sobre a neuro computação. Quando Donald Hebb escreve seu livro The
Organization of Behavior, apesar de suas ideias não serem inéditas, foi quem
descreveu como o aprendizado ocorria a partir da conexão e do fortalecimento
dessas conexões entre os neurônios.
No ano de 1951, Marvin Minky construiu o primeiro neuro computador, chamado de
Snark, que conseguia realizar seus ajustes de peso automaticamente, mas nunca foi
utilizado para nenhum tipo de processamento útil. Em 1956 surgiu a diferenciação
entre IA simbólica e IA conexionista. Conforme (FURTADO, 2019):
Inteligência Artificial Simbólica tenta simular o comportamento inteligente
humano desconsiderando os mecanismos responsáveis por tal, ou seja, não
possui uma inspiração biológica. A Inteligência Artificial Conexionista
acredita que construindo um sistema que simule a estrutura do cérebro,
este sistema apresentará inteligência, será capaz de aprender, assimilar,
errar e aprender com seus erros.
Em 1958, Frank Rosenblatt realizou um trabalho chamado Project PARA, sigla para
Perceiving And Recognizing Automaton, que definiu o elemento inicial para uma rede
neural artificial, que é o Perceptron, que pode-se chamar de neurônio eletrônico.
Conforme o estudo desenvolvido por (ROSENBLATT, 2021):
Estudos teóricos recentes deste autor indicam que deve ser viável construir
um sistema eletrônico ou eletromecânico que aprenderá a reconhecer
semelhanças ou identidades entre padrões de informação ótica, elétrica ou
tonal, de uma maneira que pode ser intimamente análogo aos processos
perceptivos de um cérebro biológico. O sistema proposto depende de
princípios probabilísticos ao invés de determinísticos para sua operação, e
ganha sua confiabilidade a partir das propriedades de medidas estatísticas
obtidas de grandes populações de elementos. Um sistema que opera de
acordo com esses princípios será chamado de perceptron.
Nota-se no trabalho de Rosenblatt que o perceptron é uma inteligência de um
neurônio, ou seja, de uma só camada. Quando esses perceptrons são combinados
com outros, eles passam a formar uma rede neural artificial.
Uma rede neural artificial é um complexo conjunto de elementos computacionais
organizados e interconectados para se comportarem de forma análoga ao
comportamento de uma rede de neurônios de seres inteligentes. Conforme
(FURTADO, 2019):
Uma Rede Neural Artificial consiste em uma estrutura conexionista, na qual
o processamento é distribuído por um grande número de pequenas
unidades densamente interligadas. Este paradigma procura entender e
emular as propriedades decorrentes do alto grau de paralelismo e
conectividade dos sistemas biológicos.
Uma RNA deve ser capaz de aprender a partir de seu ambiente, ou seja, a partir das
entradas que ela recebe, testar os caminhos de resolução de problemas de forma
iterativa, ajustando seus parâmetros de acordo com os pesos definidos, até obter um
resultado que seja adequado a uma classe de problema. Quando a rede atinge um
nível de maturidade ótimo de acordo com os pesos atribuídos. Este é o momento em
que a rede aprende.
Aprendizagem profunda
Aprendizagem profunda, rede neural profunda, rede profunda ou deep learning, é
uma das disciplinas dentro do campo de inteligência artificial, que visa dar condições
a máquinas de realizar tarefas complexas do ponto de vista computacional e forma
análoga ao que acontece com os seres humanos, como reconhecer a fala, identificar
imagens e até fornecer previsões sobre algum assunto ou mesmo articular diálogos
e sobretudo de aprender com suas próprias experiências.
Algoritmos de AP pressupõem que determinados parâmetros básicos sejam
configurados e, a partir das entradas, o computador possa aprender sozinho através
de detecção de padrões, em algumas – ou em muitas – camadas de
processamento, realizando autoajuste dos parâmetros. Este é um processo iterativo,
onde a máquina realiza várias operações com objetivo de aperfeiçoar e atingir um
nível ótimo de acerto.
Da mesma forma que nas RNAs, no AP temos as mesmas dificuldades com relação
a tecnologia de computadores, ainda fortemente baseados na máquina de Von
Newman, mas essas dificuldades vêm sendo transpostas com uma evolução gradual
e consistente de máquinas de processamento paralelo, sobretudo com o uso de
GPUs. De acordo com (CETAX, 2021):
O que difere uma Rede Neural Artificial de uma Rede Neural Profunda é a
quantidade de neurônios e de conexões, sendo significativamente maior no
segundo caso. Uma Rede Neural simples possui até 5 camadas, já uma
Rede Profunda possui mais de 5 camadas. Um computador de mesa
comum já não tem capacidade de processamento suficiente para treinar
redes profundas, dependendo da arquitetura de rede utilizada, o que gera a
necessidade de avanço de técnicas de processamento paralelo e em GPU
(Graphic Processing Unit, Unidade de Processamento Gráfico).
Estes processadores GPU permitem que sejam realizadas mais tarefas simples de
forma simultânea, proporcionando um ganho de desempenho no processamento
dessas redes que permite que se desenvolvam algoritmos com mais perceptrons e
mais camadas e que sejam executados de forma simultânea com mais rapidez e
com menor custo de troca de contexto que em processadores com poucas unidades
computacionais.
Rede neural convolucional
Rede neural convolucional é um tipo de algoritmo de inteligência artificial baseado
no processo de reconhecimento visual do ser humano, utilizado principalmente no
reconhecimento de imagens. Mas alguns outros usos podem ser dados, por
exemplo, quando se analisam espectrogramas, que são representações gráficas de
um fonograma, ou áudio.
Os algoritmos trabalham em um pequeno subconjunto da imagem, reconhecendo
elementos em camadas especializadas. Como na visão humana, a entrada
corresponde aos olhos, que são compostos de sensores que captam e transmite ao
cérebro os impulsos elétricos gerados pela excitação de células nervosas. As
camadas que processam podem ser comparadas ao córtex visual, que possui
campos que identificam contornos, luminosidade, cores, profundidade, e outros
componentes da imagem.
Numa rede convolucional existem camadas especializadas em determinados
conjuntos de características, ela decompõe um trecho da imagem em certas
características, processa e une essas características para entregar a uma rede de
perceptrons de múltiplas camadas e, ao final, na saída, apresentar o resultado da
análise da rede.
Reconhecimento de imagens
O reconhecimento de imagens por computador é a aplicação da inteligência artificial
que visa reconhecer, classificar e identificar uma imagem a partir da realização de
mapeamento de características e comparação com padrões aprendidos por uma IA.
Através dessa técnica, é possível criar modelos para serem reconhecidos com
precisão em muitos casos acima de 99,9%. Em todos os casos, existe uma
dependência de como a IA foi ensinada e qual o conjunto de padrões que ela
conseguiu desenvolver para realizar suas classificações. É através dessa técnica
que uma IA pode reconhecer elementos numa imagem, como objetos ou pessoas.
Em conjunto com esta técnica, além de reconhecer elementos em imagens
estáticas, recursos como visão computacional, que é o recurso que permite a
máquina enxergar o ambiente por si mesma, permitem que seja empregada a
técnica de reconhecimento de imagens em tempo real, possibilitando o uso em
veículos autônomos, processos de fabricação, entre outros usos que requeiram a
aquisição de imagens e sua classificação de modo rápido.
3 APRESENTAÇÃO DO ESTUDO
3.1 Estudo inicial
Inicialmente foram feitas pesquisas sobre o tema e a partir os resultados obtidos
chegamos a uma ferramenta chamada Teachable Machine, ou “máquina ensinável”
disponibilizada pelo Google no endereço https://teachablemachine.withgoogle.com/.
O recurso foi utilizado para compreensão do funcionamento de reconhecimento de
imagem, mais especificamente com o objetivo de fazer reconhecimento facial.
No primeiro teste seguiu-se as instruções dadas pelo site para a criação das
classes, e em seguida foram tiradas algumas fotos através da própria ferramenta
para compor um dataset básico de aprendizado, possibilitando o teste de
reconhecimento de uso de máscara.
No site disponibilizado pelo Google, ficou explícito o que é classe. A classificação de
acordo com o uso ou não de máscaras foi feito juntamente com uma terceira
hipótese de situações que não correspondem ao objetivo da identificação.
3.1.1 Fluxo de trabalho no Teachable Machine
1 – Criação de registros para a Classe 1 e Classe 2, cada qual com conjuntos que
correspondem a situações com máscara e sem máscara.
Representação esquemática da ferramenta Teachable Machine.
Interface de criação das classes do Teachable Machine.
A Equipe do Google sugere que se altere o plano de fundo das imagens que irão
compor cada classe para aumentar a diversificação do dataset dentro do Teachable
Machine, pois isso contribui na geração do dataset a partir da comparação das
imagens fornecidas e do banco de imagem do próprio Google.
2 – A estrutura do Google suporta a ferramenta Teachable Machine, que se utiliza da
capacidade computacional da empresa para possibilitar sua utilização. Esse site
gera automaticamente as linhas de código para utilização com o Keras e um dataset
inicial.
Esquema do conteúdo do Google para geração de aprendizado de máquina.
3.2 Estudo com ferramenta local
A sequência do estudo foi realizada utilizando os códigos desenvolvidos por Balaji
Srinivasan, após a experimentação de outras redes, a qual se mostrou mais
adequada a este estudo. O material oferecido pelo desenvolvedor através do
repositório
GitHub
no
endereço
https://github.com/balajisrinivas/Face-Mask-
Detection contém os códigos para o treinamento e execução do modelo e um
conjunto de fotografias separadas por categorias de pessoas com e sem máscaras.
O dataset fornecido junto com a solução contém 1915 imagens de pessoas com
máscaras e 1918 sem máscaras. É perceptível que a maioria das imagens são de
pessoas de origem asiática, o que trouxe à equipe a discussão sobre a influência da
etnia no sucesso da análise e na precisão do reconhecimento.
A discussão se deu baseada no documentário da Netflix, Coded Bias, que investiga
o viés racista e machista da IA por trás dos algoritmos de reconhecimento facial. De
acordo com o documentário, a pesquisadora do Instituto de Tecnologia de
Massachusetts, Joy Buolamwini, apresenta as falhas que descobriu nessa
tecnologia na pesquisa que dá tom da produção. Entretanto, a equipe não conseguiu
reproduzir o problema relatado, mesmo sendo todos os componentes de etnia
diferente daquelas apresentadas no dataset fornecido, não considerando, portanto,
este como um fator importante para o desenvolvimento com os estudos em curso.
Foi realizado um teste com o dataset fornecido, e se identificou que por vezes
ocorriam erros na identificação de utilização correta da máscara. Através da análise
do resultado deste primeiro teste, levantou-se a hipótese de que o fato de não
apresentar uma taxa de acerto adequada estava ligada à qualidade da escolha das
imagens de treino da máquina. Para validar esta suposição, foi sugerido que a
quantidade de imagens de treino fosse reduzida, mas que fossem selecionadas as
imagens que com certeza absoluta atendiam aos requisitos dos grupos com e sem
máscara.
Sequência de refinamento do teste
Para tanto, decidiu-se pelo uso do algoritmo Pycharm 2021.1 e foi estabelecida uma
sequência de testes, em máquinas diferentes, com o objetivo de se apurar os
resultados
para
comparação
de
tempo
de
treinamento
e
precisão
no
reconhecimento.
Máquina
Treinamento
Com Máscaras
Sem Máscaras
Total de Imagens
Máquina 1
Treinamento 1
1915
1915
3830
Máquina 1
Treinamento 2
1713
1713
3426
Máquina 1
Treinamento 3
638
638
1276
Máquina 1
Treinamento 4
500
500
1000
Máquina 2
Treinamento 5
638
638
1276
Máquina 2
Treinamento 6
1713
1713
3426
Máquina 2
Treinamento 7
6930
6930
13860
Tabela 1: Sequência de teste e seus parâmetros
Após esta ação, verificou-se que houve uma melhora na detecção, entretanto ainda
havia uma questão a ser desenvolvida, que são os casos dúbios de identificação,
onde a pessoa utiliza a máscara de forma incorreta. Para contornar o problema foi
selecionado um novo conjunto de imagens que dispunham de uso incorreto e
agregado ao grupo sem máscara. Este novo grupo foi adicionado ao conjunto sem
máscara, e realizado um novo treinamento para que o modelo passasse a identificar
Treinamento 1
Treinamento 2
Treinamento 3
Treinamento 4
Treinamento 5
Treinamento 6
Treinamento 7
de forma mais eficaz todos os casos diferentes dos com máscara.
Imagens
Com Máscaras
1915
1713
638
500
638
1713
6930
Imagens
Sem Máscaras
1915
1713
638
500
638
1713
6930
Total de Imagem
3830
3426
1276
1000
1276
3426
13860
Tempo de
Processamento
do treinamento
2053
1909
779
609
425
1158
4001
Perda Inicial
0,4262
0,4103
0,6024
0,6145
0,6753
0,4706
0,2014
Perda Final
0,0269
0,0277
0,0298
0,0297
0,2540
0,1472
0,044
Acurácia Inicial
0,8384
0,8482
0,7399
0,6923
0,6923
0,8188
0,9344
Acurácia Final
0,9911
0,993
0,9929
0,9018
0,9018
0,952
0,9858
Tabela 2: Resultados dos treinamentos
Os testes dos dataset foram realizados em computadores para entender o
treinamento de máquina, e ao mesmo tempo, obter um parâmetro de desempenho.
Notou-se que mesmo em configurações mais modestas, o impacto no processo foi
pequeno, quando não insignificante, o que contribui para uma implantação em
plataformas de porte menor ou até mesmo com a possibilidade de se considerar o
uso em SoC, como o Raspberry.
3.3 Testes práticos
A partir dos resultados de perdas e acurácia foi feito o teste prático, e ficou
evidenciado que o modelo precisa ser treinado com imagens que se adaptem a
situação que for instalado.
Caso sem máscara na Imagem
Caso com máscara na Imagem e uso correto
Caso com máscara na Imagem e uso incorreto e o modelo aponta que está de
máscara, esse caso serviu para tirarmos a primeira conclusão do trabalho, do
treinamento correto.
Outras incoscistências foram surgindo e começamos a entender que o modelo
testado tinham imagens sem esse detalhe do uso correto da máscara, no exemplo
ao lado a máscara cobre a boca mas mostra o queixo.
3.4 Marcos faciais
Para melhoria do dataset, a forma matemática de resolver é criar marcos faciais e no
exemplo abaixo entre a boa e o nariz sendo criado duas elipses. o que estiver entre
uma elipse e outra como marcação de máscara estaria usando a de forma errada.
Nos marcos faciais tangenciando o queixo na parte inferior do rosto não deve conter
nenhum marco facial porque assim seria também o uso errado da máscara.
Para o desenvolvimento desse trabalho não foi criado marcos faciais, contudo esse
passo seria determinante para a qualificação do dataset em reconhecimento do uso
correto de máscaras.
O detector de referência facial pré-treinado dentro da biblioteca dlib é usado para
estimar a localização de 68 (x, y)-coordenadas que mapeiam para estruturas faciais
no rosto.
3.4.1 Posicionamento da Câmera para criação do dataset
Nos exemplos a seguir serviu para chegar na segunda conclusão sobre
posicionamento da câmera, no dataset treinado a câmera foi predominantemente
posicionada frontalmente a pessoa, mesmo que a pessoa esteja de lado o modelo
constata o não uso de máscara.
Predominância
Vista Frontal
e vista lateral
Nos exemplos abaixo as máscaras estão posicionadas de forma incorreta abaixo do
nariz, e devido o treinamento não ter contemplado essa situação, ora é mostrado o
uso de máscara e ora é mostrado que não tem máscara, dai a observação é que
dependendo da aplicação, é importante treinar o modelo conforme é solicitado, se a
câmera for posicionada na parte superior as pessoas, deveria se ter imagens para
que a acurácia do modelo não gere erros.
Para melhoria do dataset é importante entender onde será posicionado a câmera, e
treinar o modelo nas condições que será aplicado.
3.5 Imagem de Fundo (Background)
A partir das pesquisas feitas diversos pesquisadores sugerem uma diversificação na
imagem de fundo, e isso depende da aplicação. Nas imagens abaixo mostramos
mapeamentos móveis que o background teria uma influência na quantidade de
informação vai se coletar.
Para câmeras fixas a alteração da imagem de fundo será a quantidade de pessoas,
de acordo onde a câmera será aplicada.
A Terceira conclusão sobre o modelo testado surgiu depois das pesquisas de artigos
que fala sobre o background, que o modelo com a maior quantidade possível de
possibilidades maior acurácia o mesmo terá, e da mesma forma da segunda
conclusão isso irá variar de acordo com a aplicação. O uso em um local de muita
circulação de passagens com a câmera fixa por cima, o background será quando
não tiver ninguém circulando e quando estiver lotado.
4 CONSIDERAÇÕES FINAIS
O trabalho foi desenvolvido entendendo que serão capturados dados de pessoas
com máscaras e pessoas sem máscaras, sabemos que dados são amplamente
capturados por todos os lados, mas trabalhos com esses dados precisarão ser
melhor classificados qualitativamente, os tratamento de dados é de suma
importância para que os treinamentos de dados sejam bem executados.
Para esse trabalho foi visto que apesar de toda divulgação na internet é necessário
que se faça uma Melhoria do dataset; descrevemos abaixo 3 melhorias sobre os
datasets coletados.
1 – Limpeza do dataset de imagens que possam gerar dubiedade.
2 – Posicionamento das câmeras nos modelos devem ser de acordo com o
treinamento do modelo e a aplicação.
3 – Conforme o uso é importante ter a maior quantidade de imagens de fundo.
5 ANEXO I
Lista de Bibliotecas do Phycharm
Nome do Pacote
Versão do Teste
Nome do Pacote
Versão do Teste
Keras
Keras-Preprocessing
Markdown
Pillow
PyYAML
Werkzeug
absl-py
astunparse
cachetools
certifi
chardet
cycler
flatbuffers
gast
google-auth
google-auth-oauthlib
google-pasta
grpcio
h5py
idna
imutils
joblib
keras-nightly
kiwisolver
matplotlib
numpy
oauthlib
2.4.3
1.1.2
3.3.4
8.2.0
5.4.1
2.0.1
0.12.0
1.6.3
4.2.2
2021.5.30
4.0.0
0.10.0
2.0
0.4.0
1.30.1
0.4.4
0.2.0
1.38.0
3.2.1
3.2
0.5.4
1.0.1
2.5.0.dev2021032900
1.3.1
3.4.2
1.20.3
3.1.0
opencv-python
opt-einsum
pip
protobuf
pyasn1
pyasn1-modules
pyparsing
python-dateutil
requests
requests-oauthlib
rsa
scikit-learn
scipy
setuptools
six
tensorboard
tensorboard-data-server
tensorboard-plugin-wit
tensorflow
tensorflow-estimator
termcolor
threadpoolctl
typing-extensions
urllib3
wheel
wrapt
4.5.2.52
3.3.0
21.1.2
3.17.1
0.4.8
0.2.8
2.4.7
2.8.1
2.25.1
1.3.0
4.7.2
0.24.2
1.6.3
57.0.0
1.16.0
2.5.0
0.6.1
1.8.0
2.5.0
2.5.0
1.1.0
2.1.0
3.10.0.0
1.26.5
0.36.2
1.12.1
6 ANEXO II
Valores Teste 1
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
98
98
102
100
101
103
111
113
106
104
103
108
100
99
99
98
101
104
101
104
Perda
0,4262
0,1607
0,1078
0,0845
0,0726
0,0574
0,0532
0,0474
0,0490
0,0405
0,0400
0,0354
0,0403
0,0370
0,0338
0,0284
0,0289
0,0298
0,0279
0,0269
Acurácia
0,8384
0,9614
0,9673
0,9766
0,9776
0,9868
0,9832
0,9848
0,9848
0,9888
0,9871
0,9888
0,9878
0,9888
0,9888
0,9931
0,9914
0,9921
0,9904
0,9911
Valor da Perda
0,1712
0,0874
0,0643
0,0553
0,0443
0,0443
0,0421
0,0386
0,0399
0,0371
0,0380
0,0421
0,0374
0,0353
0,0323
0,0315
0,0306
0,0299
0,0298
0,0272
Valor da Acurácia
0,9804
0,9856
0,9869
0,9843
0,9883
0,9869
0,9856
0,9883
0,9869
0,9869
0,9869
0,9856
0,9869
0,9856
0,9896
0,9883
0,9883
0,9896
0,9896
0,9909
Valores Teste 2
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
92
97
93
94
93
93
95
95
96
96
95
96
96
95
97
99
99
95
96
97
Perda
0,4103
0,1467
0,0948
0,0671
0,0609
0,0538
0,0520
0,0466
0,0463
0,0366
0,0390
0,0370
0,0344
0,0404
0,0342
0,0304
0,0289
0,0310
0,0218
0,0277
Acurácia
0,8482
0,9634
0,9801
0,9867
0,9849
0,9863
0,9867
0,9878
0,9863
0,9908
0,9889
0,9904
0,9908
0,9874
0,9908
0,9922
0,9937
0,9922
0,9948
0,9930
Valor da Perda
0,1759
0,1036
0,0772
0,0686
0,0610
0,0573
0,0566
0,0541
0,0503
0,0484
0,0573
0,0464
0,0438
0,0426
0,0438
0,0438
0,0409
0,0409
0,0405
0,0398
Valor da Acurácia
0,9621
0,9723
0,9810
0,9825
0,9825
0,9840
0,9810
0,9854
0,9854
0,9869
0,9796
0,9883
0,9898
0,9883
0,9898
0,9898
0,9898
0,9898
0,9883
0,9898
Valores Teste 3
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
40
35
39
39
44
40
48
39
41
41
41
41
39
36
36
36
36
36
36
36
Perda
0,6024
0,2937
0,1823
0,1302
0,1020
0,0797
0,0714
0,0661
0,0477
0,0532
0,0500
0,0363
0,0491
0,0402
0,0373
0,0369
0,0280
0,0379
0,0322
0,0298
Acurácia
0,7399
0,9453
0,9646
0,9737
0,9808
0,9848
0,9818
0,9828
0,9919
0,9858
0,9909
0,9919
0,9868
0,9909
0,9889
0,9868
0,9960
0,9899
0,9909
0,9929
Valor da Perda
0,3324
0,1843
0,1232
0,0927
0,0761
0,0641
0,0560
0,0488
0,0451
0,0455
0,0391
0,0399
0,0340
0,0367
0,0303
0,0301
0,0292
0,0255
0,0250
0,0242
Valor da Acurácia
0,9648
0,9844
0,9883
0,9883
0,9883
0,9922
0,9883
0,9922
0,9922
0,9922
0,9922
0,9922
0,9922
0,9922
0,9961
0,9922
0,9922
0,9961
0,9961
0,9961
Valores Teste 4
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
33
27
27
27
27
27
31
30
30
32
33
33
32
34
33
31
31
31
30
30
Perda
0,6145
0,2902
0,1955
0,1474
0,1214
0,0894
0,0751
0,0616
0,0620
0,0501
0,0420
0,0407
0,0334
0,0339
0,0365
0,0365
0,0274
0,0404
0,0281
0,0297
Acurácia
0,7163
0,9375
0,965
0,9737
0,9775
0,9862
0,9837
0,9925
0,9900
0,9887
0,9912
0,9925
0,9975
0,9962
0,9887
0,9875
0,9962
0,9887
0,9925
0,9912
Valor da Perda
0,3825
0,2214
0,1605
0,1273
0,1076
0,0964
0,0811
0,0789
0,0663
0,0663
0,0675
0,0637
0,0548
0,0606
0,0581
0,0616
0,0521
0,0481
0,0564
0,0536
Valor da Acurácia
0,9500
0,9700
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9800
0,9850
0,9800
0,9800
Valores Teste 5
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
26
23
23
24
22
22
23
21
22
20
20
20
20
20
19
21
21
20
19
19
Perda
0,6753
0,4966
0,3929
0,3747
0,3231
0,3083
0,2962
0,3144
0,2913
0,2920
0,2831
0,2653
0,2741
0,2690
0,2606
0,2561
0,2532
0,2582
0,2421
0,2540
Acurácia
0,6923
0,8168
0,8563
0,8502
0,8897
0,8917
0,8937
0,8816
0,8968
0,8846
0,8927
0,9079
0,8978
0,8978
0,8947
0,8988
0,9079
0,9069
0,9130
0,9018
Valor da Perda
0,5274
0,4380
0,3967
0,3718
0,3694
0,3548
0,3514
0,3483
0,3432
0,3357
0,3339
0,3243
0,3310
0,3162
0,3243
0,3120
0,3185
0,3158
0,3186
0,3135
Valor da Acurácia
0,8281
0,8398
0,8438
0,8516
0,8594
0,8555
0,8594
0,8633
0,8594
0,8633
0,8633
0,8711
0,8711
0,8711
0,8672
0,8750
0,8711
0,8711
0,8711
0,8750
Valores Teste 6
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
57
53
53
54
56
53
54
57
57
55
57
56
54
65
62
63
65
63
61
63
Perda
0,4706
0,2629
0,2358
0,2181
0,2054
0,1935
0,1843
0,1832
0,1710
0,1675
0,1595
0,1613
0,1644
0,1513
0,1520
0,1450
0,1513
0,1438
0,1338
0,1472
Acurácia
0,8188
0,9203
0,9273
0,9254
0,9321
0,9347
0,9384
0,9347
0,9432
0,9406
0,9420
0,9439
0,9413
0,9454
0,9483
0,9502
0,9435
0,9465
0,9513
0,9520
Valor da Perda
0,2946
0,2385
0,2226
0,2112
0,2065
0,2057
0,1976
0,1946
0,1935
0,1966
0,1928
0,1856
0,1834
0,1825
0,1827
0,1822
0,1772
0,1779
0,1814
0,1826
Valor da Acurácia
0,9227
0,9198
0,9257
0,9271
0,9359
0,9388
0,9300
0,9286
0,9271
0,9373
0,9329
0,9315
0,9315
0,9315
0,9300
0,9344
0,9300
0,9344
0,9300
0,9359
Valores Teste 7
Época
1/20
2/20
3/20
4/20
5/20
6/20
7/20
8/20
9/20
10/20
11/20
12/20
13/20
14/20
15/20
16/20
17/20
18/20
19/20
20/20
Tempo (S)
286
230
197
196
288
191
187
187
193
184
181
181
185
178
179
179
193
190
200
196
Perda
0,2014
0,0977
0,0810
0,0716
0,0720
0,0674
0,0599
0,0611
0,0625
0,0579
0,0505
0,0533
0,0504
0,0524
0,0471
0,0487
0,0465
0,0451
0,0465
0,0440
Acurácia
0,9344
0,9754
0,9793
0,9802
0,9805
0,9826
0,9829
0,9819
0,9836
0,9834
0,9848
0,9845
0,9851
0,9839
0,9854
0,9854
0,9854
0,9857
0,9860
0,9858
Valor da Perda
0,0897
Valor da Acurácia
0,9769
7 REFERÊNCIAS BIBLIOGRÁFICAS
CETAX.
Deep
Learning:
O
que
é,
conceitos
e
definições.
https://www.cetax.com.br/blog/o-que-e-deep-learning/. Acessado em 10 jun. 2021.
Disponível
em:
COPIN, Ben. Inteligência Artificial. 1. ed. Rio de Janeiro: LTC, 2013.
FURTADO, Maria I. V. Redes neurais artificiais: uma abordagem para sala de aula. 1. ed. Ponta
Grossa: Atena, 2019.
GIL, Antônio Carlos. Como elaborar projetos de pesquisa. 4. ed. São Paulo: Atlas, 2002.
KANT,
Immanuel.
Kritik
der
reinen
Vernunft.
Disponível
em
http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&co_obra=36450.
Acessado em: 19 abr. 2021.
LOPES, Isaia L.; Santos, Flávia A. O.; Pinheiro, Carlos A. M. Inteligência Artificial. 1. ed. Rio de
Janeiro: Elsevier, 2014.
OMS.
COVID-19
Weekly
Epidemiological
Update.
Disponível
https://apps.who.int/iris/bitstream/handle/10665/341525/CoV-weekly-sitrep25May21-eng.pdf.
Acessado em: 10 jun. 2021.
em:
ROSA, João L. Garcia. Fundamentos da Inteligência Artificial. 1. ed. Rio de Janeiro: LTC, 2011.
ROSENBLATT, Frank. THE PERCEPTRON: A PERCEIVING AND RECOGNITION AUTOMATON.
Disponível em: https://blogs.umass.edu/brain-wars/files/2016/03/rosenblatt-1957.pdf. Acessado em:
10 jun. 2021.
8
BIBLIOGRAFIA DE APOIO
PYIMAGESEARCH. Facial landmarks with dlib, OpenCV and Python. Disponível em:
https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/. Acessado em 9
jun. 2021.
SRINIVASAN, Balaji. Face Mask Detection using Python, Keras, OpenCV and MobileNet | Detect
masks real-time video streams. Disponível em: https://www.youtube.com/watch?v=Ax6P93r32KU
MICHAELIS.
Dicionário
Brasileiro
da
Língua
Portuguesa.
Disponível
em:
https://michaelis.uol.com.br/busca?r=0&f=0&t=0&palavra=intelig%C3%AAncia. Acessado em 07 jun.
2021
Download