Artigos
Recepção: 01 Junho 2020
Aprovação: 27 Outubro 2020
Resumo: o reconhecimento facial. Essa área destina-se ao reconhecimento de faces e imagens através de câmeras localizadas estrategicamente dentro de um ambiente e, além disso, podendo ser usado no reconhecimento de imagens no ambiente virtual. Nosso objetivo é utilizar o reconhecimento de faces para melhorar o sistema de presença de alunos nas instituições de ensino do Brasil. Automatizando o antigo sistema de “chamada” dos alunos, armazenando todas as informações em banco de dados – ao invés do papel - e a aumentando a segurança dos alunos. Para a construção desse sistema foi pensado a utilização da linguagem de programação Python com a biblioteca OpenCV. Além de usar a IDE da Jetbrains PyCharm e a ferramenta de controle de versão GitHub. Também analisamos dados obtidos através de outros artigos acadêmicos, a fim de demonstrar a eficiência de algoritmos de reconhecimento facial. O projeto mostrou-se promissor e esperamos futuramente desenvolvê-lo e dar continuidade.
Palavras-chave: Inteligência Artificial, Educação, Python, OpenCV, Reconhecimento Facial.
Abstract: facial recognition. This area is intended for the recognition of faces and images through cameras strategically located within an environment and, in addition, can be used in the recognition of images in the virtual environment. Our goal is to use face recognition to improve the system of student presence in educational institutions in Brazil. Automating students' old "call" system, storing all information in databases – rather than paper – and increasing student safety. For the construction of this system was thought to use the Python programming language with the OpenCV library. In addition using the Jetbrains PyCharm IDE and the GitHub version control tool. We also analyzed data obtained through other academic articles in order to demonstrate the efficiency of facial recognition algorithms. The project proved promising and we hope to develop it and continue in the future.
Keywords: Artificial Intelligence, Education, Python, OpenCV, Facial Recognition.
Abstract: La informática ha evolucionado rápida y gradualmente desde sus inicios. Las nuevas tecnologías aparecen cada día a medida que aumentan nuestrasnecesidades. Entre estas diversas innovaciones, encontramos inteligencia artificial. Apareció oficialmente en la década de 1950, cuando los científicos discutieron en una conferencia sobre el futuro de las computadoras y su importancia en diversas áreas del conocimiento. Actualmente, esta tecnología está en aumento, siendo utilizada por varias empresas y en diversas modalidades, desde el entretenimiento hasta el análisis de gran información. La inteligencia artificial se subdivide en varias áreas, una de las cuales es objeto de estudio de esta obra: el reconocimiento facial. Esta área está destinada al reconocimiento de caras e imágenes a través de cámaras ubicadas estratégicamente dentro de un entorno y, además, se puede utilizar en el reconocimiento de imágenes en el entorno virtual. Nuestro objetivo es utilizar el reconocimiento facial para mejorar el sistema de presencia de estudiantes en instituciones educativas en Brasil. Automatizar el antiguo sistema de "llamada" de los estudiantes, almacenar toda la información enuna base de datos, en lugar de papel, y aumentar la seguridad de los estudiantes. Para la construcción de este sistema se pensó que utilizar ellenguaje de programación Python con la biblioteca OpenCV. Además de usar el IDEde PyCharm de Jetbrainsy la herramienta de control de versiones de GitHub. También analizamos los datos obtenidos a través de otros artículos académicos con el fin de demostrar la eficiencia de los algoritmos de reconocimiento facial. El proyecto fue prometedor y esperamos desarrollarlo en el futuro y continuar.
Keywords: Artificial Intelligence, Education, Python, OpenCV, Facial Recognition.
Palabras clave: Inteligencia Artificial, Educación, Python, OpenCV, Reconocimiento Facial
1. INTRODUÇÃO
Vivemos em um mundo tecnológico, isso é uma verdade inegável. Todos os dias novas tecnologias surgem, algumas com o intuito de melhorar nossa vida – como o uso do reconhecimento de imagens para detectar sinais do COVID-19 – ou simplesmente para nossa diversão – como a grande evolução cinematográfica atual. E a inteligência artificial vem assumindo uma posição de destaque em diversas áreas de conhecimento. Como mostra Miranda (2018), diversas escolas do Brasil implementaram um sistema de reconhecimento facial com o intuito de agilizar o sistema de presença dos alunos, além de aproximar os pais da escola.
Para toda nova tecnologia existe uma evolução e isso não é diferente para a inteligência artificial. Porém, sua evolução vem desde os primeiros estudos sobre a inteligência humana com filósofos conhecidos por seus estudos sobre a inteligência humana, teorizando sobre como o ser humano pode ser único e nenhuma máquina poderia reproduzi-lo. E mais tarde, em um determinado momento da história onde não havia computadores tão avançados, cientistas se reuniam para discutir os rumos da inteligência artificial. Hoje, destaque no mundo da tecnologia, ela é utilizada em diversas áreas como suporte, ajudando médicos a diagnosticar enfermidades mais eficientemente e com maior eficácia. Às vezes age como substituta, como por exemplo: máquinas realizando tarefas antes feitas pelo humano (muito comum em indústrias automobilísticas).
A inteligência artificial é uma área muito complexa, dividindo-se em muitas áreas de especialização – sendo uma delas o reconhecimento de imagens e faces. Escolhemos essa área como objeto de estudo pois percebemos a grande eficiência de seu uso para a substituição do sistema de presença de alunos, com aulas sendo aproveitadas ao máximo, além da proteção sobre os alunos e aproximação dos pais às escolas.
Para a programação do reconhecimento de imagens e faces pode ser utilizada dois tipos de linguagem: Python; linguagem mais popular entre os programadores; E R, mais conhecida entre analistas e cientistas de dados, por ter funções especificas sobre essas determinadas áreas. Iremos focar no Python por ser uma linguagem mais acessível e atender aos requisitos do sistema que será discutido ao longo desse trabalho. Além disso, iremos abordar a biblioteca responsável por ter todo algoritmo para o reconhecimento de imagens e faces, o OpenCV. E como ferramenta de programação, preferimos tratar sobre a IDE da Jetbrains, o Py Charm Community.
Por sua importância no meio acadêmico, será interessante para a comunidade um sistema de código aberto. Pois trará benefício para a educação brasileira como um todo e, com a ajuda da comunidade, podemos aprimorar o nosso objeto de estudo. Pensando nisso, iremos fazer um estudo sobre Git e GitHub; ferramenta muito utilizada entre programadores com o intuito de mostrar seu código para outras pessoas.
Enfim, iremos demonstrar a importância do uso da inteligência artificial na educação, da básica à universitária. Primeiro contextualizando a inteligência artificial como peça chave da atual evolução humana e suas diversas especializações, sendo uma delas o reconhecimento facial. E, além disso, fazer um estudo sobre as diferentes ferramentas utilizadas para a criação de algoritmos relacionados ao assunto.
2. REFERENCIAL TEÓRICO
2.1. História da Inteligência Artificial
A inteligência artificial assume sua primeira forma quando Charles Babbage (1989) criou uma máquina capaz de fazer raciocínios matemáticos sem produzir falhas tipicamente humanas. Sua invenção, chamada de Máquina Diferencial, pode ser considerada um dos primeiros computadores já construídos. A intenção de Babbage ao fazer tal máquina era automatizar e facilitar cálculos feitos por humanos. De nossa perspectiva podemos concluir que àquela época imaginava-se uma máquina com um poder de processamento igual à dos humanos e livre dos erros, ou seja, uma máquina poderia simular a mente humana. Porém, Babbage (1989) não conseguiu terminar esse projeto por falta de financiamento. Mais tarde, em 1837, ele desenvolveu a ideia do primeiro computador programável, entretanto foi mais um projeto não acabado (ROJAS, 2015).
Esse pensamento é contrário às teorias de diversos filósofos sobre a capacidade da mente humana, na qual uma máquina não poderia representá-la por não prover de sentimentos e adaptabilidade inerentes. E essa mesma linha de raciocínio foi confirmada por Turing (SAYGIN et. al, 2000) através de um teste, que leva seu nome, para identificar se realmente uma máquina poderia simular um humano. Nesse teste, uma pessoa deveria fazer uma série de perguntas pré-formuladas afim de identificar se uma máquina poderia simular o humano (GONZALEZ, 2011).
A natureza polivalente e flexível de uma máquina programada é o que serve de base para afirmar que é inteligente, uma questão intimamente ligada à Máquina de Turing (MT de agora em diante). Essa é a idealização matemática de um dispositivo mecânico que opera com base em quintuplos (Turing, 1936: 231-5) e está ligado ao senso intuitivo de computação (1936: 250-3). A computação envolve um número finito de estados discretos, ou a execução de um algoritmo, cujos passos, também finitos, são calculáveis a lápis e papel e sem a participação da consciência. O termo do procedimento algorítmico é alcançado quando a solução para um problema é encontrada. Precisamente, um “computador humano” – usa lápis e papel - pode ser definido em termos de uma MT, ou o Cálculo Lambda, que estabelece operações de abstração e generalização que podem ser realizadas pela referida máquina até que uma solução seja alcançada (GONZALEZ,2011).
Com o teste de Turing podemos definir a possibilidade de uma máquina ter a capacidade de simular a mente humana, porém não inteiramente. Voltando a teoria de Descartes, uma máquina não poderia simular emoções e o grande processamento da mente humana. Entretanto, teria o poder de realizar ações mais “mecânicas” como seria o ato de calcular uma expressão matemática, sabendo-se de sua fórmula e tudo relacionado àquela expressão.
Na mesma década, mais precisamente em 1956, um cientista chamado John McCarthy, juntamente com mais alguns colegas, realizou um congresso nos EUA sobre a importância da inteligência artificial e suas projeções. Esse evento foi marcado pelo surgimento dessa área de forma oficial. Nele foi proposta a possibilidade de uma máquina simular ações humanas e, ainda no congresso, McCarthy conseguiu distinguir várias especializações da inteligência artificial, como por exemplo as redes neurais (MCCARTHY, 1955).
A inteligência pode ser dividida de acordo com a melhor aptidão da pessoa em questão, como: linguística, musical, lógica matemática etc. Todas elas estão conectadas quanto ao entendimento, atitudes, competências e funções especificas. Porém, na inteligência artificial podemos dividir em duas: clássica e computacional. A primeira é utilizada baseando-se em dados existentes e a inteligência artificial computacional se refere a dados e ações não concretas (ROJAS, 2015).
A inteligência artificial como fala Rojas (2015), vem sendo utilizada em diversos campos da computação por permitir uma maior velocidade de processamento e ainda contribuir de forma significativa de acordo com a lógica utilizada.
Os diversos usos para a inteligência artificial nos dão uma gama de soluções para diversos tipos de problemas. Da Gama Viganó (2017), fala sobre a possibilidade de prevenção de queimadas utilizando redes neurais artificiais. Atualmente, a descoberta de queimadas existentes depende de vários fatores e de quais as intenções em relação a essas informações. Pois as queimadas podem ter duas origens: florestal (de forma natural ou negligência humana) ou controlado. Esse último muito utilizado pela agricultura. Focando no maior problema, incêndios florestais, foram feitos estudos para a melhor utilização das informações coletadas. O uso das redes neurais artificiais para a prevenção de incêndios é fruto da evolução de um sistema já presente, o modelo auto-regressivo de médias móveis integradas – nesse sistema era necessário o uso de grandes quantidades de dados, fazendo com que houvessem muitos erros.
AsprincipaisvantagensdasRNAsnamodelagemdequeimadaseincêndiosflorestaissão:nãorequereremconhecimentodosprocessosfísicoscausadores do fenômeno; podem ser aplicadas em sistemas sem soluções específicas;possibilitamotreinamentocontínuodarede;nãoamplificam os erros de medição; permitem uma otimização entre os dados de entrada e saída. As RNAs permitem modelar processos que envolvem séries temporais de sinais de entrada e saída (DA GAMA VIGANÓ, 2017).
Essa técnica não é somente usada para a detecção de incêndios florestais. Existem diversos programas, nacionais e internacionais, do uso de redes neurais artificiais para predições meteorológicas e de tempestades. A maior vantagem de seu uso seria ter resultados positivos apesar do pouco conhecimento dos processos (DA GAMA VIGANÓ, 2017).
Uma outra utilização para o reconhecimento facial é vista atualmente na China, mais precisamente na província Xinjiang. O governo implementou um sistema de identificação dos residentes através de câmeras de vigilâncias instaladas em diversos pontos das cidades. As empresas responsáveis pelo sistema alegam um total de aproximadamente 99% de acerto em relação ao reconhecimento, precisando somente o indivíduoestar presente no banco de dados (ZMOGINSKI, 2019).
Apesar de parecer uma intrusão a vida cotidiana dos moradores, porém80% da população concorda com a utilização do reconhecimento facial como forma de segurança(segundo pesquisas realizadas). E esse sistema mostrou-se bem efetivo em relação a segurança, pois o número de homicídios da China está mais baixo do que países da Europa Ocidental (ZMOGINSKI, 2019).
Esse sistema é utilizado tanto para maiores infrações, como a captura de um assassino, tanto para as menores – cidadãos que jogam lixo no chão ou outras infrações parecidas. As punições para as pequenas infrações são proporcionais a elas; podendo ser exposto em um telão que são distribuídos nos pontos mais movimentados da cidade ou pelo envio de carta para a família ou colegas de trabalho (ZMOGINSKI, 2019).
Essa vigilância abriu precedentes para novas tecnologias de avaliação de usuários. Aproveitando a oportunidade, o grupo Alibaba criou o Sesame Credit – sistema de pontuação de usuários com adesão voluntária com o objetivo de premiar cidadãos exemplares. Esse sistema funciona de acordo com as compras feitas pelo usuário, como por exemplo: comprar itens relacionados a bebês seria positivo, enquanto relacionados a games seriam negativos por serem considerados inúteis (ZMOGINSKI, 2019).
O governo chinês pretende aumentar o alcance desse sistema ainda no ano de 2020, premiando o cidadão com pontuação alta com descontos de passagem aérea, por exemplo. E punindo aqueles com pontuação baixa fazendo com que só andem de ônibus. Do nosso ponto de vista, essa vigilância pode ser considerada uma intrusão em nossas vidas e privação da liberdade. Porém, a população da China tem orgulho de ter o reconhecimento facial como tecnologia para identificação, pois pensam como o país é desenvolvido tecnologicamente e possui uma ótima segurança. Em contrapartida, se pensarmos na aplicação dessa tecnologia em um país diferente da China, poderíamos ter uma resistência da população nesse quesito por causa da interferência do Estado quanto sua liberdade e privacidade. Dessa forma, para aplicação dessa nova tecnologia em países com culturas diferentes, seria necessário um estudo mais aprofundado sobre a recepção da população e, ainda, um cuidado para a proteção das informações fornecidas por esta população (ZMOGINSKI, 2019).
Essas diversas aplicações da inteligência artificial fazem parte de subdivisões da mesma, como podemos ver na figura 1. Cada uma delas tem sua característica principal e funções correlatas. Observando essa teoria, definimos a área de aplicação de interfaces naturais, dentro da inteligência artificial, como sendo a melhor definição para o uso do reconhecimento de imagens e faces.
2.2. Reconhecimento de Imagens e Faces
Segundo Andrade (2013), as expressões faciais fazem parte de um sistema muito importante para o ser humano. Sendo capaz de influenciar encontros sociais e, consequentemente, relações ligadas a reprodução. Levando isso em consideração, podemos perceber a possibilidade de utilizar a face como uma característica única de cada ser humano. Com isso, o reconhecimento facial torna-se possível e, dentro de nossas expectativas, úteis para a identificação de alunos de uma determinada instituição.
O ser humano é capaz de produzir uma quantidade enorme de expressões faciais, sendo cada uma ligada a um diferente estímulo e emoção (ANDRADE, 2013). Quando pensamos em levar essa hipótese ao ambiente virtual, podemos perceber a limitação das máquinas em, não somente produzir, como identificar cada reação feita por uma determinada emoção em cada indivíduo. A complexidade humana ainda é um desafio a ser enfrentado pela inteligência artificial. E isso não é diferente quando falamos sobre o reconhecimento de imagens e faces, com a segunda em destaque por representar nosso objeto de estudo.
O funcionamento do reconhecimento de faces através da inteligência artificial é baseado como no ser humano. De forma simples, identifica-se cada traço único em um indivíduo para separá-los e, após uma análise, reconhecê-los. Os seres humanos fazem isso de forma natural, sem ao menos perceber a velocidade do processamento dessas imagens. Portanto, para levarmos isso ao ambiente artificial, enfrentamos uma dificuldade de simular essas ações perfeitamente. Porém, com a tecnologia, podemos reproduzir o máximo de ações naturais humana com o intuito de identificar faces da maneira mais natural possível (SILVEIRA, 2018).
Para utilizar o reconhecimento facial como ferramenta de identificação de pessoas, ou em nosso caso como identificação de alunos para fins de controle, é necessário o uso de uma linguagem de programação – iremos utilizar o Python –, a biblioteca OpenCV e a escolha do melhor algoritmo para o que propõe esse trabalho. Esses algoritmos fazem parte do OpenCV, são eles: Eigenface, Fisherface e o Local Binary Pattern Operator. O processo de reconhecimento é feito através de um banco de dados de imagens de diferentes pessoas, incluindo o público alvo, e com diferentes expressões. Dessa forma, o algoritmo tem uma base para realizar as comparações em tempo real e, de acordo com a programação feita, identificar cada indivíduo separadamente (SILVEIRA, 2018).
2.3. Python I
Inventado por Guido van Rossum em 1989, Pythonestá entre as linguagens de programação mais utilizadas ao redor do mundo. Desde sua estreia no mercado em 1991, ela vem se destacando e evoluindo de acordo com seu tempo. Essa linguagem possui tipagem forte e dinâmica como sua principal característica. Deixando o código mais limpo e eficiente (YEDA, 2018).
OPython é muito conhecido por sua consistência e transparência. Segundo Piotrowski (2016), essa linguagem é interpretada, todavia programadores podem utilizá-la como script. Suporta os mais comuns paradigmas, como orientação a objetos, até aqueles pouco utilizados, como a funcional. Com uma variedade de bibliotecas e uma comunidade opensource sempre ativa, o Python se mostra uma linguagem muito popular e de fácil acesso, além de ser uma das poucas a ter suporte ao reconhecimento de imagens e faces através da biblioteca OpenCV.
2.4.OpenCV
OpenCV é uma bibliotecaopen source criada em 1999 pela Intel com a liderança de Gary Bradski, com o intuito de otimizar algoritmos para analisar imagens e vídeos com o uso da visão computacional. Durante sua história, o OpenCV sofreu várias mudanças, sendo lançadas diversas versões. Até que em 2006 surgiu sua primeira versão oficial. Nos anos seguintes houve mais algumas grandes mudanças até chegar na atual versão 4.3, lançada em abril de 2020 (LAGANIÈRE, 2014).
Desde sua versão 2.2, o OpenCV é divido em diversos módulos, cada um com sua função, sendo eles: opencv_core, opencv_imgproc, opencv_highgui, opencv_features2d, opencv_calib3d, opencv_video e opencv_objdetect. Sendo esse último o módulo que iremos utilizar, pois ele contém todas as funções necessárias para a realização do reconhecimento de imagens e faces (LAGANIÈRE, 2014).
2.5.Eigenface
Sendo o algoritmo mais antigo a ser feito, o Eigenface utiliza um sistema chamado Análise de Componentes Principais (PCA). Responsável por separar as imagens selecionadas em pequenas partes, as eigenfaces, e selecionar as características mais importantes.
O método PCA é uma análise estatística equivalente à covariância dos autovetores e autovalores da matriz de covariância de dados. Essa análise gera um grupo pequeno de componentes que sintetizam os dados originais, minimizando a dimensionalidade desses, preservando os componentes importantes. Assim, nessa técnica há a eliminação de componentes desnecessários, mantendo-se somente as informações relevantes em um espaço multidimensional, resultando na redução da dimensionalidade dos dados originais (SILVEIRA, 2018).
Esse método utiliza-se de um subespaço com o objetivo de trocar vetores correlatados de dimensões maiores com outros vetores de dimensões menores. Com isso, esse algoritmo tem como maior característica a velocidade de processamento e uma taxa de acerto mais aceitável em comparação aos outros algoritmos, por ter uma redução de ruídos pelo uso de imagens na escala de cinza (ÇARIKÇI, ÖZEN, 2012).
O fator iluminação é muito importante para que esse algoritmo faça o melhor retorno possível de identificação do sujeito. A etapa ao qual o ambiente deve estar em sua melhor condição será a da captura de imagens, pois são essas imagens que irão servir como base para a construção das eigenfaces, assim como sua comparação com a face média obtida através do algoritmo. A base de dados então deverá servir como uma base para o cálculo de distância entre a imagem capturada e as eigenfaces. Deverá ser passado um limite para ter-se um padrão do que será considerado um face ou não. Desse modo, o número alcançado deverá ser o menor possível.
2.6.Fisherface
A maior vantagem do Eigenface é o uso da projeção linear para a redução dos problemas de dimensão do reconhecimento facial. Tendo o ambiente em suas perfeitas condições, se sobressai em relação aos outros algoritmos. Em contrapartida seria possível ter melhores resultados utilizando métodos lineares de classes específicos. Esse é o objetivo do Fisherface através da Análise Discriminante (BELHUMEUR, 1997).
O discriminante de Fisher [6] é a referência para a discriminação linear entre duas classes no espaço multidimensional. Isto é extremamente rápido de calcular, pois é baseado apenas no primeiro e no segundo momento de cada distribuição. Além disso, pode ser mostrado para maximizar uma medida da separação que não é específica para um tipo de distribuição específico. Isso torna o discriminante Fisher extremamente robusto. Entretanto, não é ideal, pois o discriminante não pode dar o erro mínimo de classificação, a menos que as duas classes sejam gaussianas com covariância igual (COOKE, 2002).
O Fisherface é uma combinação dos dois métodos: Análise de Componentes Principais e Análise Discriminante. Essa junção tinha como objetivo ter um melhor desempenho em relação ao reconhecimento facial, como o Fisherface surgisse como um sucessor do Eigenface. Porém, foi constatado durante seu desenvolvimento o surgimento de outros problemas, como: o grande processamento requerido por ser um algoritmo complexo e a iluminação, variações de expressões e posições da imagem escolhida para o teste do algoritmo (ANGGO, 2018).
2.7. Local Binary Pattern Operator
Esse algoritmo é considerado o melhor em termos de performance e precisão de reconhecimento de imagens e faces. De uma forma simples, Local Binary Pattern Operator separa os pixels da imagem em blocos, parecidos com matrizes 3x3, os valores obtidos em decimais são subtraídos do valor da célula central. Os valores resultantes negativos se transformam no código binário 0, enquanto os outros viram 1.E ao final de sua operação, com os valores transformados em números binários, é feito seu histogram. Utilizando-o para a identificação de texturas, assim realizando o reconhecimento de imagens e faces (AHONEN, PIETIKAINEN,2006).
Para corrigir uma falha, por ser pequeno o valor da matriz para a realização de identificação de imagens com escalas maiores, foi desenvolvido posteriormente uma forma de aumentar o número de vizinhos e, assim, melhorar a performance do algoritmo. Os vizinhos são definidos por um círculo em volta do ponto central pré-determinado, onde aqueles que não estiverem dentro serão adicionados por interpolação bi linear (HUANG et al, 2011).
2.8. Git e GitHub
Em trabalhos futuros, pretendemos disponibilizar o código usando uma ferramenta de versionamento muito popular entre os programadores, o Git. Com diversas funções, o Git é mais utilizado por pesquisadores com intuito de compartilhar seus projetos. Com a principal característica de ser descentralizado, seu maior atributo é funcionar como servidor ou cliente. Analisando esses pontos, programadores tem total liberdade, dependendo de seu nível de acesso, de fazer alterações de forma simultânea sem a ocorrência de erros e remotamente (RAM, 2013).
Por ser uma ferramenta com diferentes usabilidades, o Gitmostra-se como uma melhor opção para facilitar a colaboração. Com o controle de commits, o autor do projeto no qual está sendo trabalhado tem fácil acesso a todas as alterações feitas por outros colaboradores interessados em participar desse determinado projeto, podendo ser desde a criação de aplicativos para celular até grandes sistemas de análises de dados. Dessa forma, caso haja alguma alteração contrária ao ideal perseguido pelo autor, pode-se localizar esse commit e analisá-lo junto com o colaborador, a fim de chegar a um ponto de interesse entre os dois (RAM, 2013).
Como plataforma de codificação, utilizaremos o GitHub – site colaborativo especializado em guardar códigos fontes e é baseado no sistema Git. Semelhante a uma rede social, essa plataforma tem opções para “seguir” e acompanharprojetos, além de adicionar a sua rede de amizades, colaboradores alinhados ao tema de seu trabalho. Ajudando a criar uma ligação mais forte com o projeto em desenvolvimento e ter maior visibilidade para futuras colaborações (KALLIAMVAKOU et. al., 2014).
5. METODOLOGIA
Este trabalho utilizou de pesquisas em diversos meios acadêmicos a fim de encontrar - em artigos científicos, teses e dissertações -as informações necessárias para o seu desenvolvimento. Dessa forma, preparamoso trabalho apresentado para um futuro desenvolvimento e real aplicação.Além disso, foi analisado o uso do Pythone de outras ferramentas disponibilizadas na web, com o objetivo de exemplificar a utilização da biblioteca OpenCV para o reconhecimento facial.
Visando o enriquecimento de informações em relação a área de inteligência artificial e – especificamente - do reconhecimento facial, este trabalho foi desenvolvido levando em consideração todos os resultados obtidos através de vários testes de três diferentes algoritmos obtidos através de outro projeto envolvendo o reconhecimento facial.
6. RESULTADOS E DISCUSSÃO
Esse trabalho visa um estudo de viabilização do reconhecimento facial dirigido à educação no Brasil de um modo geral. Para tanto iremos demonstrar sua eficiência através de um estudo dirigido por Monteiro (2019). Onde fez o uso de todos os algoritmos relacionados ao reconhecimento facial e fez uma comparação entre eles. Esse estudo foi feito utilizando uma base de dados pré-existente na internet chamado de Yale Face Database. Com um total de 165 imagens em escala de cinza com diferentes rostos e expressões, esse banco de dados é largamente utilizado como teste para o algoritmo produzido.
O algoritmo foi feito em Python utilizando a biblioteca OpenCV, os dois objetos de estudo deste trabalho. Para a concepção do sistema de reconhecimento facial proposto pelo atual trabalho, deverá ser necessário a criação de três classes diferentes: uma voltada para a captura de imagens com intuito de formar uma base de dados, a segunda classe objetivando o treinamento dessas imagens e, por fim, a classe principal relacionada ao reconhecimento facial em si.
A classe de captura armazena as imagens no local definido pelo programador através de um comando no algoritmo – podendo nesse mesmo comando renomear as imagens capturadas. Essas imagens quando capturadas são transformadas em escalas de preto e cinza, por isso a necessidade de uma boa iluminação.
A iluminação é muito importante nessa fase do reconhecimento, pois existe um padrão para uma melhor qualidade e precisão quando o algoritmo de reconhecimento de faces for utilizado. Levando isso em consideração, foi realizado um teste, onde foi definido uma média de iluminação do ambiente. Essa média foi desenvolvida usando um pacote para computação cientifica, o numpy. Foi criado um laço de repetição que comparava a média das imagens obtidas pela câmera com o valor determinado como aceitável para a iluminação. Nesse caso, 110.
Também existe um padrão para a quantidade de imagens que devem ser capturadas. Para uma melhor precisão no reconhecimento facial, deve-se no mínimo capturar 40 fotos diferentes com duas ou mais pessoas. Também é necessário a utilização de pelo menos duas pessoas como objeto de estudo, dessa forma o algoritmo terá uma maior base para comparação. Quanto maior a variedade de pessoas, expressões e posições, melhor a qualidade de reconhecimento de faces.
A segunda classe é responsável pelo treinamento das imagens obtidas anteriormente. Nessa classe constará os algoritmos referentes ao reconhecimento facial de imagens no qual falamos em capítulos anteriores - Eigenface, Fisherface e Local Binary Pattern Operator. Sendo a fase de maior processamento, essa classe quando executada irá gerar um arquivo contendo as características de cada algoritmo. Levando em consideração a exclusividade de cada algoritmo, a classe deverá ser executada três vezes. Dessa forma, três diferentes arquivos serão gerado e poderão ser usados na próxima fase do reconhecimento facial.
Finalizando o processo, temos a última classe desenvolvida nesse sistema, referente ao reconhecimento facial em si. O código desenvolvido tem a capacidade de reconhecer as duas pessoas participantes. Porém, podemos perceber a capacidade desse algoritmo para o reconhecimento de diversas pessoas e, ainda, com a identificação de seus nomes em vídeo real.
Nessa etapa é escolhido qual algoritmo irá ser utilizado para fazer o reconhecimento facial. Feito isso, o algoritmo irá acessar a base de imagens e fazer uma comparação em tempo real das imagens capturadas pela câmera. Deve-se ter um cuidado na escolha do tamanho da área de reconhecimento, ou seja, a quantidade de pixels que irão ser analisados. Quanto maior este tamanho, mais difícil será o reconhecimento.
O algoritmo produzido foi testado cinco vezes e em cada uma delas foi alterado os parâmetros relacionados com o Eigenface, Fisherface e Local Binary Pattern Operator. Os valores repassados são de escolha do próprio programador, variando de acordo coma necessidade, assimcomoobserva-se na coluna “Parâmetros” das tabelas 1, 2 e 3. Além disso, é feito uma análise dos valores de proximidade de reconhecimento retornados das imagens, pois valores iguais a zero indicam um erro no banco de dados das imagens (podendo apresentar imagens repetidas quando for utilizado a comparação das imagens testes com as imagens que foram treinadas).
Como podemos ver através das tabelas, ainda não é possível atingir 100% de acerto. Foi utilizada o total de 30 imagens diferentes para o teste de reconhecimento facial. O algoritmo que mostrou o maior número de acerto foi o Fisherfaces, com 80%. Porém essa taxa foi somente alcançada com uma média de confiança um pouco alta, 1.297,31. Sendo a mais baixa de 509,08. Lembrando-se que quanto menor a média de confiança, melhor o reconhecimento. É o quanto a imagem capturada está próxima a localizada no banco de dados. Apesar da média aproximada estar alta, foi escolhido o algoritmo Fisherfaces por ter alcançado a maior porcentagem de acerto. Em contrapartida, vemos na tabela 3 a melhor média de confiança obtida. A escolha entre os dois foi baseada na porcentagem de acertos por ser a melhor opção para a proposta do trabalho em questão.
Ainda hoje, a maior parte das instituições de ensino utilizam listas de papel para o controle da frequência de alunos em sala de aula. Algumas instituições utilizam lista de presença onde o professor deve efetuar a “chamada” para identificar os alunos que estão presentes, outras utilizam listas de assinaturas. Com isso o docente perde tempo realizando a chamada, uma vez que tem que identificar cada discente e registrar em seu diário. Os gestores destacam que, em média, o processo convencional de checagem de presença consome 15 minutos do tempo de aula.
A produção das informações físicas geradas, seja em diários ou em listas de presenças, deverá ser imputada no sistema de gerenciamento da instituição e estas tarefas exigem um retrabalho para digitação ou digitação dos dados coletados, o que decorrerá longos intervalos de tempo até a apuração total dos dados e disponibilização para consulta ou processamento.
O reconhecimento facial vai muito além da validação da presença. As informações coletadas pelo sistema podem ser repassadas aos responsáveis durante a preparação da merenda escolar para que possam, com base no número de alunos, calcular a quantidade de alimentos necessários no preparo das refeições, evitando o desperdício de alimento. Além de um controle no preparo das refeições, o sistema disponibiliza um relatório diário que é enviado aos pais com os horários de entrada e saída dos alunos, além de um alerta por mensagem em caso de ausência deles. Com essa tecnologia, espera-se criar também uma aproximação com os pais e responsáveis pelos alunos.
Esse sistema pode ser integrado ao Conselho Tutelar, no qual ele poderá ter acesso a presença dos alunos e que possam tomar providências para que evite a evasão escolar.
A instalação do sistema de reconhecimento facial visa garantir também a segurança de alunos, professores e o corpo técnico das instituições. Além disso, tem como finalidade identificar a presença de outras pessoas estranhas às atividades escolares.
7. CONCLUSÃO
A implementação de um sistema de reconhecimento facial na área da educação no Brasil pode enfrentar diversos problemas e, ainda, diferentes dependendo do nível do ensino. O obstáculo mais comum seria a aceitação dos alunos e pais em relação a troca de um sistema atualmente funcional por um sistema em fase de testes. Porém, é nosso dever apresentar um projeto para avançar nossas educaçõestecnológicas e demonstrar sua importância no meio acadêmico. Além disso, mostrar a capacidade de aprimorar e agilizar métodos que ao passar do tempo vão tornando-se obsoletos.
Outro obstáculo a ser vencido é referente às máquinas necessárias para a implementação do sistema. Pois, para ter-se a utilização de um sistema de reconhecimento facial para a conferência da presença do aluno nos recintos escolares eacadêmicos, precisaria de acesso a: câmeras, computadores com poder de processamento de bom a ótimo e ambientes bem iluminados. Essas condições são difíceis de serematingidasatualmente, porém sabemos de várias escolas que conseguiram a implementação de um sistema parecido.
Cada instituição tem uma realidade e uma solução diferente para os problemas enfrentados. Neste trabalho, mostramos como a tecnologia evoluiu e o quanto ainda pode evoluir.O reconhecimento facial é um sistema promissor sendo utilizado nas condições certas, assim como vimos nos testes feitos durante esse trabalho.
Em síntese, a troca do atual sistema defasado de presença dos alunos poderia melhorar a qualidade das aulas – pois com o ganho do tempo perdido em “chamadas”, os professores poderiam focar mais no aprendizado do aluno. Além disso, a segurança poderia ser aumentada, visto que a presença dos alunos seriaarmazenada em um banco de dados e monitoradas pela administração da instituição ou responsáveis.Com a implementação do reconhecimento facial teríamos muitas vantagens.
REFERÊNCIAS
AHONEN, Timo; HADID, Abdenour; PIETIKAINEN, Matti. Descrição de rosto com padrões binários locais: Aplicativo para reconhecimento de rosto . Transações IEEE em análise de padrões e inteligência de máquina, v. 28, n. 12, pág. 2037-2041, 2006.
ANDRADE, Nara Côrtes et al. Reconhecimento de expressões faciais de emoções: padronização de imagens do teste de conhecimento emocional. Psico, v. 44, n. 3, p. 382-390, 2013. Disponível em:https://revistaseletronicas.pucrs.br/ojs/index.php/revistapsico/article/view/15825/10413
ANGGO, Mustamin; ARAPU, La. Face recognition using fisherface method. In: Journal of Physics: Conference Series. IOP Publishing, 2018. p. 012119. Disponível em:<https://iopscience.iop.org/article/10.1088/1742-6596/1028/1/012119
BABBAGE, Charles. Science and reform: selected works of Charles Babbage. Cambridge University Press, 1989.
BELHUMEUR, Peter N.. ; HESPANHA, João P.; KRIEGMAN, David J.. . Eigenfaces vs. fisherfaces: Recognition using class specific linear projection. IEEE Transactions on pattern analysis and machine intelligence, v. 19, n. 7, p. 711-720, 1997. Disponível em:https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=34
ÇARIKÇI, Müge; ÖZEN, Figen. A face recognition system based on eigenfaces method. Procedia Technology, v. 1, p. 118-123, 2012. Disponívem em: https://www.sciencedirect.com/journal/procedia-technology/vol/20/suppl/C
COOKE, Tristrom. Two variations on Fisher's linear discriminant for pattern recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 24, n. 2, p. 268-273, 2002. Disponível em: https://ieeexplore.ieee.org/document/982904
DA GAMA VIGANÓ, Hevelyne Henn et al. Redes Neurais Artificiais na Previsão de Queimadas e Incêndios no Pantanal. Revista Brasileira de Geografia Física, v. 10, n. 05, p. 1355-1367, 2017.
GONZALEZ, Rodrigo. Descartes: the modal intuitions and the Classical Al. Alpha, Osorno , n. 32, p. 181-198, July 2011 . Available from . access on 07 Apr. 2020. http://dx.doi.org/10.4067/S0718-22012011000100014.
Referências
HUANG, Di et al. Local binary patterns and its application to facial image analysis: a survey. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), v. 41, n. 6, p. 765-781, 2011. Disponível em: https://ieeexplore.ieee.org/document/5739539
Referências
KALLIAMVAKOU, Eirini et al. The promises and perils of mining GitHub. In: Proceedings of the 11th working conference on mining software repositories. 2014. p. 92-101. Disponível em: https://kblincoe.github.io/publications/2014_MSR_Promises_Perils.pdf
Referências
LAGANIÈRE, R. (2014). OpenCV Computer Vision Application Programming Cookbook Second Edition. Packt Publishing Ltd.
MCCARTHY, John et al. A proposal for the dartmouth summer research project on artificial intelligence, august 31, 1955. AI magazine, v. 27, n. 4, p. 12-12, 2006. Disponível em: https://www.pega.com/artificial-intelligence-business?&utm_source=google&utm_medium=cpc&utm_campaign=Global_NonBrand_Broad&utm_term=%2Bartificial%20%2Bintelligence&gloc=21232&utm_content=pcrid%7c391257410785%7cpkw%7ckwd-297351945584%7cpmt%7cb%7cpdv%7cc%7c&gclid=CjwKCAjw8-78BRA0EiwAFUw8LAjK-HjumQyi0QkoRWs3ouNQIxcyMbvYVloM85zBGhkoaqjHZR4E1hoCOmUQAvD_BwE&gclsrc=aw.ds
Referências
MIRANDA, James. Escolas de nova Venécia usam reconhecimento facial para controlar frequência e desperdício de merenda. Tecnologia está sendo testada em cinco escolas municipais. outro objetivo é ter uma aproximação com as famílias, que vão receber a frequência dos filhos por sms. 2018. Disponível em: http://reconhecimentofacial.com.br/2018/04/06/escolas-de-nova-venecia-usam-reconhecimento-facial-para-controlar-frequencia-e-desperdicio-de-merenda/. Acesso em: 27 abr. 2020.
Referências
MONTEIRO, Luiz Augusto Ferreira. A Inteligência Artificial no Ambiente Acadêmico: uso do reconhecimento facial para a verificação de presença do discente. 2019. 61 f. TCC (Graduação) - Curso de Sistemas de Informação, Instituto de Educação Superior da Paraíba, Cabdelo, 2019.
Referências
PIOTROWSKI, Andrzej. An Analysis of the use of the Python Language in Robot Applications. Applied Computer Science, v. 12, n. 2, 2016. Disponível em: https://cloud.google.com/run/docs/quickstarts/build-and-deploy?gclid=CjwKCAjw8-78BRA0EiwAFUw8LJTIEekwna_yYwrzwngpQPbsVZUjgQsU47nw43Rhz9KolWhi2pjZ7BoCIb8QAvD_BwE&gclsrc=aw.ds#python?utm_source=google&utm_medium=cpc&utm_campaign=latam-BR-all-pt-dr-SKWS-all-all-trial-b-dr-1009133-LUAC0009046&utm_content=text-ad-none-any-DEV_c-CRE_423672515962-ADGP_SKWS+%7C+Multi+~+Developers+%7C+Python-KWID_43700042069969726-kwd-20962313848&utm_term=KW_+python-ST_+Python
Referências
RAM, Karthik. Git can facilitate greater reproducibility and increased transparency in science. Source code for biology and medicine, v. 8, n. 1, p. 7, 2013.
Referências
ROJAS, Michael Estid Alvarado. Una Mirada a la Inteligencia Artificial. Revista Ingeniería, Matemáticas y Ciencias de la Información, v. 2, n. 3, 2015.
Referências
SAYGIN, Ayse Pinar; CICEKLI, Ilyas; AKMAN, Varol. Turing test: 50 years later. Minds and machines, v. 10, n. 4, p. 463-518, 2000.
Referências
SILVEIRA, Jheime Santos; DE SÁ, Angela Abreu Rosa. Reconhecimento Facial utilizando o algoritmo Eigenface da biblioteca Open CV. Revista Eletrônica Argentina-Brasil de Tecnologias da Informação e da Comunicação, v. 1, n. 9, 2018.
Referências
YEDA, Lian; BING, Zhang; RENQIANG, Wu. Application of Python language in UOE molding simulation of pipeline steel. In: MATEC Web of Conferences. EDP Sciences, 2018. p. 01018.
Referências
ZMOGINSKI, Felipe. A Sociedade Mais Vigiada do Mundo: como a china usa a inteligência artificial. 2019. Disponível em: https://www.uol.com.br/tilt/noticias/redacao/2019/01/19/a-sociedade-mais-vigiada-do-mundo-como-a-china-usa-o-reconhecimento-facial.htm. Acesso em: 13 maio 2020.
Referências
TURING, A. M. On computable numbers, with an application to the Entscheidungsproblem, Virginia, 1936.