Buscar

TCC_EXEMPLO_PESQUISA COM IA (1)

Prévia do material em texto

6
CURSO DE SISTEMA DE INFORMAÇÃO
MARCOS VINITHIUS MELO FILHO
CONTROLE DE FLUXO DE PESSOAS NAS UNIDADES DE PRONTO ATENDIMENTO 24 HORAS COM VISÃO COMPUTACIONAL
FORTALEZA
2020
MARCOS VINITHIUS MELO FILHO
CONTROLE DE FLUXO DE PESSOAS NAS UNIDADES DE PRONTO ATENDIMENTO 24 HORAS COM VISÃO COMPUTACIONAL 
Trabalho de Conclusão apresentado ao curso de Sistema de Informação do Centro Universitário Estácio do Ceará como requisito para a obtenção do grau de bacharel.
Orientador: Prof. Wellington Sousa Aguiar
FORTALEZA
2020
AGRADECIMENTOS
A Deus, por todas as portas que me foram abertas e pelo encaminhamento das pessoas certas na minha vida. 
Aos meus país, Marcos Vinithius Freire Melo e Maria Dalva Andrade de Sá Melo, que mesmo com as dificuldades e os grandes obstáculos que lhes foram impostos em suas vidas, nunca desistiram de me dar o melhor e me mostrar que nada se ganha sem esforço ou suor. 
 	A minha querida irmã, Danielle de Sá Melo, que sempre me servia de inspiração para ter garra e força de vontade visando as conquistas da vida, e que sem ela, eu nunca teria dado o passo inicial para a minha graduação. 
A minha querida esposa, Amanda Kelly Soares Pinheiro, que nessa caminhada foi a minha grande encorajadora para continuar seguindo firme e forte e nunca desistir. Uma das minhas maiores inspirações de determinação e coragem que eu já tive na vida. 
Ao meu orientador, Prof. Wellington Sousa Aguiar, pela sua paciência, orientação e confiança, sendo um grande encorajador, mostrando ao aluno que ele sempre poderá fazer mais do que ele mesmo pensa.
RESUMO
Atualmente não existe um controle de fluxo automatizado de pacientes nas Unidades de Pronto Atendimento 24 horas que consiga descrever as características físicas de cada paciente, levando em consideração a sua média de idade e sexo para auxiliar os profissionais de saúde em suas tomadas de decisões. O objetivo deste trabalho é utilizar a visão computacional com o uso de redes neurais convolucionais no controle de fluxo, captando por imagens cada rosto dos pacientes, e obtendo os dados de sua média de idade, sexo, dia e hora no momento em que o paciente entrou em uma UPA, gerando dados e gráficos estatísticos para tomadas de decisões. A natureza desta pesquisa é de cunho quantitativo, bibliográfico e de pesquisa aplicada, pois faz uso de dados estatísticos que foram coletados por meio do desenvolvimento de um software com o objetivo se ter o conhecimento sobre o tema estudado. Foi utilizado, também, a pesquisa bibliográfica em livros, artigos, teses e sites especializados para se chegar em um denominador comum para a solução do problema. Concluindo, a pesquisa mostra a eficácia do uso da tecnologia de visão computacional para a detecção e reconhecimento facial com o uso de redes neurais convolucionais, com o objetivo de se obter de forma rápida e clara os dados de controle de fluxo nas UPAs, e categorizar as entradas dos pacientes pela hora e o dia, usando-se de suas características faciais, para se obter a média de idade e do sexo. 
Palavras-chave: Visão Computacional; Redes Neurais Convolucionais; Detecção Facial; Reconhecimento Facial
ABSTRACT
Currently, there is no automated flow control of patients in the 24-hour Emergency Unit that can describe the physical characteristics of each patient, taking into account their average age and sex to assist health professionals in their decision-making. The objective of this work is to use computer vision with the use of convolutional neural networks to control the flow, capturing images of each patient's face, and obtaining data on their average age, sex, day and time at the time the patient entered a UPA, generating data and statistical graphs for decision making. The nature of this research is of a quantitative, bibliographic and applied research nature, as it makes use of statistical data that were collected through the development of software with the aim of having knowledge about the studied subject. Bibliographic research was also used in books, articles, theses and specialized websites to arrive at a common denominator for solving the problem. In conclusion, the research shows the effectiveness of using computer vision technology for facial detection and recognition with the use of convolutional neural networks, with the objective of quickly and clearly obtaining the flow control data in the UPAs, and to categorize patient inputs by time and day, using their facial features, to obtain the average age and sex.
Keywords: Computer Vision; Convolutional Neural Networks; Facial detection; Facial recognition
LISTA DE FIGURAS
Figura 1 - Figura digital produzida em 1921	14
Figura 2 - Exemplo de retângulos de características	15
Figura 3 - Exemplo de Rede Neural Convolucional	17
Figura 4 - Exemplo de Convolução	18
Figura 5 – Exemplo de Padding	19
Figura 6 – Exemplo de ReLU	19
Figura 7 - Exemplo de MaxPooling	20
Figura 8 - Exemplo de Flatten	20
Figura 9 - Exemplo de Flatten com Fully connected	21
Figura 10 - Amostra de imagens utilizadas na categoria de mulher jovem.	24
Figura 11 - Frame processado com as informações desenhadas.	26
 
LISTA DE GRÁFICOS
Gráfico 1 - Quantidade de imagens por categoria.	25
Gráfico 2 - Gráfico do total de categorias do vídeo	28
Gráfico 3 - Gráfico em barra da quantidade de pessoas por hora/minuto.	29
Gráfico 4 - Gráfico em linha da quantidade de pessoas por hora/minuto	30
Gráfico 5 - Gráfico em barra da média da probabilidade de cada categoria	31
 
LISTA DE TABELAS 
Tabela 1 - Registro de cada rosto salvo do vídeo.	27
LISTA DE ABREVIATURAS E SIGLAS
API		Application Programming Interface
CSV		Comma Separated Values
RGB 		Red, Green and Blue
SAMU		Serviço de Atendimento Móvel de Urgência
UPA		Unidades de Pronto Atendimento
SUMÁRIO
1 INTRODUÇÃO	11
1.1 JUSTIFICATIVA	12
1.2 OBJETIVOS	13
1.2.1 Objetivo geral	13
1.2.2 Objetivos Específicos	13
2 FUNDAMENTAÇÃO TEÓRICA	13
2.1 Definições importantes	13
2.1.1 Processamento de imagens	13
2.1.2 Visão Computacional	14
2.1.3 Características Haar	15
2.1.4 Reconhecimento facial	16
2.1.5 Redes Neurais	16
2.1.5.1 Redes Neurais Convolucionais	17
2.1.5.2 Convolução	18
2.1.5.3 Padding	18
2.1.5.4 ReLU	19
2.1.5.5 Pooling	20
2.1.5.6 Flatten	20
2.1.5.7 Fully connected	21
2.2 Python	22
2.3 OpenCV	22
2.4 NumPy	22
2.5 Keras	22
2.6 TensorFlow	22
2.6 Matplotlib	22
3 METODOLOGIA	23
4 LEVANTAMENTO DE DADOS	24
4.1 Software	24
4.2 Análise dos dados	27
5 CONCLUSÃO	31
6 PROJETOS FUTUROS	32
REFERÊNCIAS	33
1 INTRODUÇÃO
A Unidade de Pronto Atendimento (UPA 24h) faz parte da Rede de Atenção às Urgências. O objetivo é concentrar os atendimentos de saúde de complexidade intermediária, compondo uma rede organizada em conjunto com a atenção básica, atenção hospitalar, atenção domiciliar e o Serviço de Atendimento Móvel de Urgência - SAMU 192. (Ministério da Saúde, 2020?)
Atualmente as UPAs não têm um controle de entrada e saída de pacientes, impossibilitando um melhor atendimento para a população. Não existe uma maneira eficaz, por exemplo, de saber quantas crianças entraram em um dia específico.
Em 2015, Ariadne, que é usuária da Unidade de Pronto Atendimento, relata um dia em que a UPA de Mendanha, na Zona Oeste do Rio de Janeiro, tinha mais de 50 crianças para um único médico atender (G1, 22 abr 2015).
Ainda não existe estatisticamente uma maneira de provar, por exemplo, que mais pessoas adultas estão indo às UPAs nas quintas-feiras às 18 horas do que aos sábados às 8 horas da manhã, usando-se da visão computacional para garantir um controle de fluxo continuo por reconhecimento e categorização de faces humanas. Será possível gerar esses dados estatísticos rapidamente, agilizando o trabalho no atendimento, pois é muito comum que as medicações para pessoas idosas sejam diferentes das que são prescritas para crianças. 
Visão computacional é um campo da inteligência artificial que treina computadores para interpretar e entender o mundo visual.Usando imagens digitais de câmeras e vídeos, junto a modelos de deep learning, as máquinas podem identificar e classificar objetos corretamente e, então, reagir ao que elas “veem.”
As primeiras experiências em visão computacional aconteceram em 1950, com o uso de algumas das primeiras redes neurais para detectar os limites de um objeto e para classificar objetos simples em categorias como círculos e quadrados. Em 1970, o primeiro uso comercial de visão computacional interpretou textos manuscritos e digitados usando reconhecimento ótico de caracteres. Esse avanço tinha como objetivo interpretar textos escritos para deficientes visuais. (SAS, 2020?a)
Com o uso da visão computacional para gerar estatísticas, podemos antecipar ao profissional de saúde para averiguar se os remédios daqueles pacientes estão em estoque. Com essa previsão, torna-se possível evitar a falta de medicamentos ou a convocação de outros profissionais especializados da área de saúde para o atendimento, por exemplo, um idoso com problemas do coração ou uma criança com uma simples virose.
Para este projeto foi usado a biblioteca Tensorflow, com a linguagem de programação Python, como uma ferramenta para criação e treinamento de redes neurais. O Tensorflow é uma biblioteca open source amplamente usado na comunidade que estuda e trabalha com inteligência artificial.
Este trabalho, portanto, orientar-se-á no sentido de entender como o reconhecimento de imagens para detecção e identificação facial pode ajudar na superação de tais problemas.
1.1 JUSTIFICATIVA
Uma grande demanda de pacientes e uma administração que não tem uma ferramenta adequada de controle de fluxo, pode acarretar muitas horas de espera, alta demanda e poucos médicos, podendo ocorrer, por exemplo, que pacientes, como crianças, não consigam um rápido atendimento com um pediatra, ou um idoso hipertenso que não consiga ser atendido com prioridade. 
A finalidade das UPAs são urgências e emergências para estabilização de casos graves e encaminhamento aos hospitais, seguindo com esses acontecimentos, ocorre a superlotação e o atendimento pode acabar perdendo a qualidade. (OLIVEIRA, 2015)
“não é culpa do paciente, é culpa do sistema, que não consegue acolher esse paciente. Esse cara até tentou ir lá [posto], a gente vê esse registro no prontuário, mas disseram para ele que não tinha médico, ou que não tinha vaga na agenda, ou que ele tinha que marcar (E10); como é difícil o acesso ao posto, eles vêm até a UPA, porque eles sabem que a gente não pode negar atendimento, então acham mais fácil vim aqui, do que ir lá de madrugada, pegar fichinha (T10).” (OLIVEIRA, 2015)
Para auxiliar as UPAs, seria necessário a criação de uma ferramenta que consiga gerar dados estatísticos para que se possa ter uma previsão de quantidade e categoria do público, assim teriam como controlar melhor o fluxo e solicitar médicos específicos para os dias em que a demanda de uma categoria for maior. Por exemplo, se a demanda de atendimento para crianças, em um dia específico, for comprovada estatisticamente, o atendimento médico especializado já estaria de prontidão.
1.2 OBJETIVOS
1.2.1 Objetivo geral
Desenvolver um software que identifique e categorize faces humanas por sexo e média de idade por meio de imagem ou vídeo e crie dados estáticos para geração de gráficos para tomadas de decisão.
1.2.2 Objetivos Específicos
a) Descrever conceitos de visão computacional e inteligência artificial.
b) Mostrar um exemplo prático de Identificação de quais as maiores demandas de pessoas com base em um vídeo.
c) Exibir retorno dos dados e gráficos do exemplo de todo o fluxo do vídeo por sexo e média de idade. 
d) Aplicar técnicas de desenvolvimento de software estudadas na graduação.
2 FUNDAMENTAÇÃO TEÓRICA
2.1 Definições importantes
Para compreensão e desenvolvimento do trabalho, é necessário a definição de alguns termos. Este capítulo, portanto, destina-se a apresentar os conceitos de Processamento de imagens, Visão Computacional, Características Haar, Reconhecimento facial, Redes Neurais, Redes Neurais Convolucionais, Convolução, Padding, Relu, Pooling, Flatten, Fully connected, Python, OpenCV, NumPy, Keras, TensorFlow e Matplotlib.
2.1.1 Processamento de imagens
O primeiro registro de processamento de imagens ocorreu com o intuito para melhorar as imagens digitalizadas para jornais. Essas imagens eram enviadas por cabos submarinos de Londres a Nova York na década de 20. Esse sistema se chamava Bartlane. Dessa maneira foi reduzido de mais de uma semana para três horas no transporte de imagens pelo oceano atlântico, conforme a figura 1, em que é possível ver o resultado dessa transmissão. (GONZALEZ, WOODS, 2000)
Figura 1 - Figura digital produzida em 1921
Fonte: Gonzales e Woods (2000).
A figura 1 foi construída utilizando-se de um equipamento especial de impressão que codificava as imagens para transmissão via cabo, e eram reconstruídas as imagens em um terminal receptor em uma impressora telegráfica que continha caracteres para simular os tons. Esse método foi evoluindo e foi substituído por uma reprodução fotográfica que é feita a partir de fitas perfuradas no terminal receptor telegráfico. Os níveis de brilho foram aumentando de 5 para 15 níveis em meados de 1929, trazendo uma melhora em qualidade tonal e resolução. 
Após 35 anos de evolução, foi combinado o uso de computadores digitais, como foi o caso do programa espacial, em que foi utilizado o emprego de técnicas de melhoramento de imagens que foram produzidas pela sonda espacial “Ranger 7” em 1964, que corrigiam algumas distorções que eram provenientes da lente da câmera de televisão a bordo. (GONZALEZ, WOODS, 2000)
2.1.2 Visão Computacional
A visão computacional ganhou muita ênfase nos últimos anos por causa dos seus grandes avanços, provendo ser uma ferramenta muito eficaz para resolver vários problemas em múltiplas áreas, por exemplo, agronomia, astronomia, biologia, medicina e entre outras, sendo possível aplicar em quase todas as áreas de conhecimento (NEVEZ, VIEIRA NETO, GONZAGA, p.6, 2016).
Podemos definir visão computacional como a área de estudo que tenta repassar para máquinas a incrível capacidade de visão. Quando falamos de visão, não estamos nos referindo apenas ao ato de captar imagens. Apesar de essa capacidade ser impressionante (basta que estudemos um pouco sobre o funcionamento de um olho para constatarmos isso), ela é apenas o início de um processo muito mais vasto e rico. A visão consiste em captar imagens, melhorá-las (por exemplo, com retirada de ruídos, aumento de contraste etc.), separar as regiões ou objetos de interesse de uma cena, extrair várias informações dependendo da imagem analisada, como, por exemplo, forma, cor e textura, e, finalmente, relacionar as imagens com outras vistas previamente. (BACKES, SÁ JUNIOR, p.1, 2016)
A visão computacional consiste simplesmente em trazer a capacidade para uma máquina de manipular e interpretar determinadas imagens conforme o algoritmo que foi aplicado. 
2.1.3 Características Haar
A detecção facial usando as características Haar foi inicialmente explorada por Viola-Jones em seu artigo Robust Real-time Object Detection, em que se tem uma “estrutura de detecção de objetos visuais capaz de processar imagens extremamente rápidas e alcançar altas taxas de detecção” (Paul Viola, Michael Jones, 2001, tradução nossa).
O algoritmo é dividido em três partes. A primeira contribuição é a criação da “imagem integral” que usa um conjunto de recursos que lembram a base Haar, a segunda contribuição é a construção de um classificador que usa o AdaBoost para trazer recursos importantes, pois a quantidade de recursos do tipo Harr é muito grande, e a terceira contribuição é uma estrutura em cascata de classificadores mais complexos que aumentam a velocidade do detector, concentrando recursos em uma área mais promissora e evitando falsos-positivos, conforme definidas por Paul Viola e Michael Jones (2001).
Figura 2 - Exemplo de retângulos de características
Fonte: Viola e Jones (2001).
O item (A) da Figura2 é uma divisão horizontal, (B) é uma divisão vertical, (C) possui 2 divisões horizontais e a (D) é formada por divisões horizontais e verticais. A soma dos pixels que estão dentro dos retângulos brancos é subtraída da soma dos pixels nos retângulos cinza, segundo definido por Paul Viola e Michael Jones (2001). Dessa maneira será o resultado representado pela característica para a região.
2.1.4 Reconhecimento facial
O reconhecimento facial é uma das várias técnicas utilizadas no contexto de biometria, estabelecendo sua identificação por atributos físicos, neste caso, é levado em consideração algumas características, como formato da boca, do rosto, distância dos olhos, entre outras. (Silva, 2015)
Conforme descreve Silva, um ser humano é capaz de reconhecer alguém familiar, mesmo com muitos obstáculos, como distância, sombras ou visão parcial do rosto, porém, uma máquina precisa realizar um conjunto de processos para fazer esse reconhecimento, sendo necessário extrair as características para fazer a rotulação de uma face conhecida ou não.
2.1.5 Redes Neurais
Na computação as redes neurais são como nós interconectados que procuram simular os neurônios humanos, porém, usando-se de algoritmos para suas predições. A primeira citação de um modelo artificial para um neurônio biológico foi em 1943 por Warren McCulloch e Walter Pitts no artigo A logical Calculus of the ideas immanet in nervous activity, em que se explicava como os neurônios deveriam funcionar. Warren e Walter modelaram suas ideias com uma rede neural simples com circuitos elétricos.
As pesquisas de inteligência artificial seguiram crescendo nos anos seguintes, mas o foco inicial era uma rede neural com a capacidade de resolver problemas como um cérebro humano, percebeu-se, porém, que com a eficácia das redes neurais em resolver tarefas específicas, haveria muito mais ganho, não se limitando a uma abordagem totalmente biológica.
No mundo atual, graças a essas mudanças, temos diversas áreas de atuações específicas em que a rede neural soluciona problemas, sendo elas: visão computacional, reconhecimento de fala, diagnósticos médicos e entre outras soluções. (SAS, 2020?b)
2.1.5.1 Redes Neurais Convolucionais
A construção de uma Rede Neural Convolucional é baseada nas redes de Perceptron de Múltiplas Camadas, que, em sua formulação clássica, é um conjunto de neurônios divididos em camadas em que cada neurônio é conectado a todos os outros neurônios da camada anterior. Já em uma Rede Neural Convolucional, apenas um subconjunto de entradas é conectado a cada neurônio, esse processo tem forte inspiração biológica, tendo inspiração no processamento biológico de dados visuais. (VARGAS, PAES, VASCONCELOS, 2016)
O passo inicial para esses estudos ocorreu em 1962 por Hubel e Wiesel, baseado em um experimento em que neurônios eram ativados juntos quando eram expostos a algumas linhas ou curvas, produzindo reconhecimento visual.
A primeira aplicação de uma Rede Neural Convolucional que teve sucesso foi em 1998, por Yann LeGun. Em sua Rede Neural Convolucional foram aplicadas 7 camadas entre convoluções e fully connected. Neste ponto em diante, as Redes Neurais Convolucionais ficaram mais complexas e profundas, transformando-as, como a conhecemos hoje. (ALVES, 2018)
Figura 3 - Exemplo de Rede Neural Convolucional
Fonte: Vargas, Paes e Vasconcelos (2016).
Na figura 3 é possível ver uma Rede Neural Convolucional que se classifica a partir de uma imagem que representa um manuscrito e dizer qual número essa imagem representa.
O item (Entrada) da Figura 3 é uma imagem para o processamento, (Convolução) é a primeira camada da Rede Neural Convolucional que extrai os recursos da imagem de entrada, ela está presente nas outras camadas. (Polling) faz a redução da imagem para diminuir a quantidade de parâmetros para o treinamento. (Completamente conectados), que é mais conhecido como Fully connected, faz parte da camada de classificação e tem uma quantidade específica de neurônios. (VARGAS, PAES, VASCONCELOS, 2016)
2.1.5.2 Convolução
A camada de Convolução funciona como um filtro, sendo composta por diversos neurônios. A imagem é percorrida em um conjunto de pixels, esse percurso é feito por uma operação chamado Stride, que faz o pulo dos pixels entre cada janela. Cada conexão recebe um peso, que passa a camada seguinte, o peso atribuído a cada neurônio é o diferencial, pois permite que criem filtros ainda mais complexos que aproveita as informações dos dados treinados. A figura 4 exemplifica esse processo da convolução que percorrer os pixels da imagem. (VARGAS, PAES, VASCONCELOS, 2016)
Figura 4 - Exemplo de Convolução
Fonte: Alvez (2016).
O item (Input neurons) da Figura 4 é a imagem de entrada com 28x28 pixels, e o filtro cobre 5x5 pixels, (First hidden layer) é o resultado da filtragem.
2.1.5.3 Padding
Antes da convolução também temos o Padding, em que podemos, ou não, adicionar alguns pixels ao redor da imagem. A representação dessa borda é por zeros na matriz, dessa maneira, se evita que a imagem reduza mais rápido do que o necessário no aprendizado, conforme a figura 5. (ALVES, 2018)
Figura 5 – Exemplo de Padding
Fonte: Elaborado pelo autor.
O item (a) da Figura 5 é uma imagem com 4x3 pixels e um filtro, e stride por 2x2 pixels, com o Padding a imagem está com 4x4 pixels. O item (b) é o resultado da imagem com o padding após a execução do MaxPooling.
2.1.5.4 ReLU
ReLU é uma função de ativação, existem várias outras, mas a ReLU se tornou computacionalmente melhor. Essa função torna o sistema em não linear, dessa maneira, a rede consegue aprender qualquer funcionalidade, essa função de ativação pega todos os valores negativos da camada anterior e transforma em zero. Matematicamente, o ReLU seria y=max(0, x), conforme mostrado na figura 6. (ALVES, 2018)
Figura 6 – Exemplo de ReLU
Fonte: Clappis (2019).
2.1.5.5 Pooling
Após o uso da camada de Convolução, é necessário utilizar-se da camada de agrupamento, conhecido como Pooling, essa camada é responsável por reduzir as dimensões. Com o Pooling aplicado, podemos ter mais agilidade no treinamento com o agrupamento de dados, reduzindo a altura e largura de um mapa. (VARGAS, PAES, VASCONCELOS, 2016)
Existem alguns tipos de Pooling, sendo eles o MaxPooling, SumPooling e o AvaragePooling. Atualmente o mais utilizado é o MaxPooling, esse tipo de Pooling percorre uma determinada região, levando em consideração a operação de Stride, e pega o maior elemento daquela região, conforme a figura 7. (CLAPPIS, 2019)
Figura 7 - Exemplo de MaxPooling
Fonte: Clappis (2019).
O item (Single depth slice) da Figura 7 é uma matriz de 4x4 pixels com um Stride de valor 2, o que equivale na matriz a 4 agrupamentos de pixels, cada agrupamento possui 4 valores e o valor maior de cada grupo, respectivamente, é 6, 8, 3 e 4 será o resultado do MaxPooling.
2.1.5.6 Flatten
Após o mapa em Pooling ser obtido, é feito o achatamento da matriz, transformando-a em um array. O Flatten é a entrada da rede neural tradicional, conforme exemplificado na figura 8. (CLAPPIS, 2019)
Figura 8 - Exemplo de Flatten
Fonte: Clappis (2019).
O item (Pooled Feature Map) da Figura 8 é a matriz obtida pela camada de agrupamento Polling, o item (Flattening) é o array obtido pela camada Flatten.
2.1.5.7 Fully connected
O Fully connected faz parte da camada de classificação. Essa camada fica no final do processo, em que a entrada é a saída da camada anterior, e na saída tem uma quantidade específica de neurônios, conforme a figura 9. (ALVES, 2018)
Figura 9 - Exemplo de Flatten com Fully connected
Fonte: Ng et al (2019).
Após a camada de Pooling (Pooling Layers) da figura 9, é feito o achatamento da camada (Flatten) para servir de entrada ao Fully connected (Fully connected Layers), e sua saída faz a classificação (Output Layer). 
2.2 Python
Python é uma linguagem de programação simples e com uma curva de aprendizado muito curta, por isso, a sua popularidade em várias áreas, sendo possível criar aplicações muito complexas de maneira bastante fácil e rápida, por exemplo,no âmbito de aprendizado de máquina, pois existem várias bibliotecas disponíveis pela comunidade. (Data Science Academy, 2020) 
2.3 OpenCV
OpenCV é uma biblioteca para visão computacional e aprendizado de máquina de código aberto. Atualmente possuí mais de 18 milhões de downloads e é bastante utilizada em empresas, grupos de pesquisa e órgãos governamentais.
Ele possui além de uma interface para Python, também para C++, Java e MATLAB, sendo escrito nativamente em C++. (OpenCV, 2020?)
2.4 NumPy
NumPy é uma biblioteca de código aberto desenvolvido em 2005, seu foco é na computação numérica e é mantida por uma comunidade da própria biblioteca e da comunidade científica Python. (NumPy, 2020?)
2.5 Keras
Keras é uma API construída sobre o TensorFlow 2.0, ela possui uma estrutura robusta no setor de aprendizado de máquina profundo, sendo utilizada por muitas comunidades científicas ao redor do mundo. (Keras, 2020?)
2.6 TensorFlow
TensorFlow é uma poderosa ferramenta de aprendizado de máquina de código aberto, sendo possível criar modelos facilmente. O TensorFlow utiliza a API do Keras para fazer a definição e treinar as redes neurais. (TensorFlow, 2020?)
2.6 Matplotlib
Matplotlib é uma biblioteca de criação de gráficos estatísticos para Python, sendo possível ter animações e interatividade. (Matplolib, 2020?)
3 METODOLOGIA
O estudo deste projeto caracteriza-se como uma pesquisa aplicada, em que os conceitos estudados são utilizados em uma aplicação no mundo real para trazer dados estatísticos sobre o tema levantado. Segundo Alegria et al. (2011), a pesquisa aplicada tem como objetivo resolver problemas concretos, tendo um proposito prático e específico para gerar o conhecimento ou o avanço dele.
A natureza desta pesquisa é de cunho quantitativo. Conforme Dalfovo et al. (2008), a metodologia quantitativa é qualquer pesquisa que possa ser mesurada em números, classificada e analisada no estudo. Essa metodologia usa-se de técnicas estatísticas para a elaboração de seus dados, objetivando resultados que não tragam distorções de análise e interpretação, trazendo uma maior margem de segurança.
O estudo utilizou-se da metodologia de pesquisa bibliográfica, usando-se de livros, artigos científicos, matérias jornalísticas, sites oficiais do governo e da área de inteligência artificial. Conforme Lima & Mioto (2007), a pesquisa bibliográfica possibilita um amplo alcance de informações, trazendo uma melhor construção a uma definição do quadro conceitual do estudo proposto, sendo necessário leitura para identificar informações e os dados contidos para se ter uma reflexão pessoal e fundamentar teoricamente o objeto de estudo.
Para a elaboração deste trabalho, foi desenvolvido uma aplicação que se usa nos recursos de redes neurais convolucionais e na visão computacional para gerar e visualizar os dados estatísticos obtidos com o objetivo de controlar o fluxo nas unidades de pronto atendimento 24 horas.
O projeto foi desenvolvido no primeiro semestre de 2020 encontrando-se em um período crítico de pandemia por causa do Corona vírus (COVID-19), e limitou-se por uma questão de segurança ao uso de gravação em vídeo de pessoas em que fosse possível visualizar a parte frontal do rosto para extração dos dados para o projeto.
4 LEVANTAMENTO DE DADOS
O levantamento dos dados desse projeto foi obtido por meio do desenvolvimento de um software, usando-se de ferramentas baseadas em redes neurais convolucionais e visão computacional.
Esse software utilizou-se de um vídeo de exemplo de setenta e oito segundos, em que se contém uma considerável circulação de pessoas, sendo possível a detecção facial frontal das pessoas que se encontram em direção à câmera, dessa maneira, é possível detectar e mapear cada rosto por média de idade e sexo.
4.1 Software
O objetivo do desenvolvimento desse software é mapear o rosto humano em foto ou vídeo, sendo gravado ou capitado em tempo real, e categorizar cada rosto por uma média de idade e sexo. Foram utilizadas, no treinamento da inteligência artificial, imagens de um rosto humano para cada categoria com 48x48 pixels em tons de cinza, conforme a figura 10.
Figura 10 - Amostra de imagens utilizadas na categoria de mulher jovem.
Fonte: Elaborado pelo autor.
Na figura 10 é possível ver o enquadramento do rosto de cada pessoa do sexo feminino. Foi utilizado a técnica de características Haar para o mapeamento do rosto e enquadramento da área de interesse, dessa maneira, o treinamento da rede neural convolucional ficará mais assertiva, pois além das características Haar detectarem o rosto humano e validarem se a imagem usada contém ou não um rosto, também evitará o uso de pixels desnecessários, por exemplo, centralizando o rosto e evitando utilizar o ambiente ao redor.
As características Haar é usada tanto na criação do dataset para o treinamento da rede neural convolucional como no mapeamento das imagens que serão utilizadas para fazer a validação das categorias definidas. No gráfico 1 é possível avaliar de maneira estatística a divisão das imagens utilizadas por cada categoria.
Gráfico 1 - Quantidade de imagens por categoria.
Fonte: Elaborado pelo autor.
No gráfico 1 temos a quantidade de imagens por cada categoria utilizada nesse treinamento, respectivamente, homem velho, homem adulto, homem jovem, mulher velha, mulher adulta e mulher jovem; as suas quantidades respetivamente, 204 imagens para a categoria de homem velho, 431 para homem adulto, 171 para homem jovem, 185 para mulher velha, 452 para mulher adulta e 181 para mulher jovem, dando um total de 1624 imagens para a criação do dataset.
Tanto no treinamento da rede neural convolucional e na validação, ocorre um processamento de imagens utilizando-se de uma biblioteca na linguagem Python, chamado de OpenCV, ele é responsável por manipular as imagens, fazendo os cortes da área de interesse utilizando as características Haar, também convertendo cada imagem para os tons de cinza, dessa maneira o treinamento e as validações ficam mais rápidas, pois a imagem terá apenas uma camada, diferente do RGB que teria três camadas. Também é utilizado outras bibliotecas para auxiliar o OpenCV, por exemplo, a biblioteca NumPY que auxilia na manipulação de arrays e matrizes multidimensionais e tem um grande acervo de funções matemáticas. É possível ver os resultados do processamento do OpenCV na figura 11.
Figura 11 - Frame processado com as informações desenhadas.
Fonte: Elaborado pelo autor.
Conforme a figura 11, é possível ver que o OpenCV também adiciona informações importantes na imagem, como desenhar o quadrado na região do rosto e adicionar textos informativos, por exemplo, o nome da categoria do rosto e a sua porcentagem de acurácia, também é possível ter outras informações, como a velocidade do processamento em tempo real, quantidade de rostos detectados a cada frame do vídeo ou imagem e a quantidade de cada categoria já cadastrada.
A aplicação foi desenvolvida com a linguagem de programação Python na versão 3.6. Essa linguagem é comumente usada em projetos de inteligência artificial por causa das inúmeras bibliotecas disponíveis pela comunidade, como a biblioteca OpenCV que é bastante usada no projeto.
No aprendizado de máquina foi utilizado a biblioteca TensorFlow que é integrada com a biblioteca Keras. Essa biblioteca é responsável pelo treinamento do modelo utilizando-se de redes neurais convolucionais como também é responsável por carregar um modelo já treinado e validar a imagem processada e gerar a predição que determina qual categoria definida pelo dataset pertence aquela imagem.
Para a exibição de todos os dados estatísticos e geração de gráficos complexos, foi utilizada a biblioteca Matplotlib, sua escolha foi definida por já ser bastante utilizada na comunidade cientifica.
O reconhecimento facial também é utilizado neste projeto para evitar a criação de falsos-positivos quando se detecta um rosto a cada frame, também sendo delimitado que o registro do rosto detectado será adicionado somente caso a sua acurácia seja acima de cinquenta por cento,se não, será descartada dando início ao próximo rosto detectado no mesmo frame ou no frame seguinte.
Caso a acurácia do rosto seja acima do cinquenta por cento delimitado no projeto, será feito a validação de reconhecimento facial, havendo uma verificação dos pontos de referência do rosto do frame atual com todos os rostos já cadastrados. Caso o rosto do frame atual já tenha o registro salvo, mesmo sendo acima de cinquenta por cento, não haverá o salvamento, dessa maneira, o projeto só salvará cada registro de um rosto detectado caso seja acima de cinquenta por cento de acurácia, e que não tenha sido salvo nenhum registro daquele rosto atual no projeto, assim, não teremos a geração de falsos-positivos, pois, se não tivesse essa validação, poderíamos repetir o registro de um único rosto várias vezes quando o projeto percorresse cada frame.
4.2 Análise dos dados
Dependendo da quantidade de imagens utilizadas no aprendizado de máquina, é possível ter uma acurácia satisfatória. Neste projeto foi possível chegar a uma acurácia de 64% no treinamento com as 1624 imagens. Com essa porcentagem é possível ter uma boa variação na detecção dos rostos e suas categorias.
O vídeo de setenta e oito segundos foi processado às 20 horas, 25 minutos e 44 segundos do dia 27 de maio de 2020, gerando um arquivo de extensão CSV, conforme a tabela 1.
Tabela 1 - Registro de cada rosto salvo do vídeo.
	Total de faces
	Categoria
	Probabilidade %
	Data
	Hora
	4
	young_female
	56.06
	27/05/2020
	20:25:44
	4
	young_female
	55.14
	27/05/2020
	20:25:44
	2
	young_female
	54.2
	27/05/2020
	20:25:44
	4
	young_female
	54.63
	27/05/2020
	20:25:45
	4
	young_female
	57.23
	27/05/2020
	20:25:45
	4
	young_female
	56.5
	27/05/2020
	20:25:46
	7
	young_female
	53.72
	27/05/2020
	20:25:46
	4
	young_female
	54.99
	27/05/2020
	20:25:48
	4
	adult_female
	77.69
	27/05/2020
	20:25:53
	4
	young_female
	52.78
	27/05/2020
	20:26:02
	4
	adult_female
	93.02
	27/05/2020
	20:26:02
	3
	young_male
	53.35
	27/05/2020
	20:26:08
	2
	young_female
	65.44
	27/05/2020
	20:26:13
	1
	young_female
	54.51
	27/05/2020
	20:26:16
	2
	adult_male
	94.26
	27/05/2020
	20:26:33
	2
	adult_male
	63.5
	27/05/2020
	20:26:36
	1
	adult_male
	64.35
	27/05/2020
	20:26:38
	4
	adult_female
	59.07
	27/05/2020
	20:26:41
	6
	adult_male
	57.2
	27/05/2020
	20:26:43
	5
	adult_male
	94.18
	27/05/2020
	20:26:45
	3
	adult_male
	99.68
	27/05/2020
	20:26:54
	3
	adult_male
	83.72
	27/05/2020
	20:26:54
	2
	adult_male
	77.68
	27/05/2020
	20:26:58
	3
	young_female
	53.06
	27/05/2020
	20:27:02
Fonte: Elaborado pelo autor.
Na tabela 1 é possível averiguar que cada linha é um registro de um rosto que foi detectado, validado e inserido no arquivo CSV.
Na primeira coluna se tem o total de faces que é a quantidade de rostos que tinham sido encontrados no momento em que um deles foi validado e inserido no arquivo CSV, não significando que todo o restante do total de faces da linha tenha sido aprovado na validação.
Na segunda coluna, temos todas as categorias em inglês que foram encontradas no vídeo naquele tempo, também validadas e inseridas no respectivo arquivo de extensão CSV.
É possível avaliar, na terceira coluna, a probabilidade do rosto que foi validado e inserido. Nota-se que nenhum registro se encontra abaixo de 50.00%, sendo o menor deles o de 52.78%.
Na quarta coluna, temos a data em que o rosto apresentado no vídeo foi validado e inserido no arquivo CVS.
E na quinta e última coluna, temos a hora, minuto e segundo em que o rosto apresentado no vídeo foi validado e inserido no arquivo CVS. Nota-se que o tempo entre o primeiro registro (20:25:44) e o último (20:27:02) é estimado em setenta e oito segundos.
Gráfico 2 - Gráfico do total de categorias do vídeo
Fonte: Elaborado pelo autor.
É possível avaliar no gráfico 2, que foi gerado a partir do arquivo CVS, conforme a tabela 1, que das 6 categorias disponíveis para validação, conforme disponível o gráfico 1, só obtivemos nesse vídeo de setenta e oito segundos apenas 4 categorias cadastradas, isso mostra que o software comprova que temos no vídeo, somente 1 macho jovem, 8 machos adultos, 12 fêmeas jovens e 3 fêmeas adultas.
Dessa maneira, é possível estimar que o vídeo contém mais mulheres jovens, sendo elas 50% de todos os registros das 4 categorias que foram detectadas.
Gráfico 3 - Gráfico em barra da quantidade de pessoas por hora/minuto.
Fonte: Elaborado pelo autor.
No gráfico 3, temos um gráfico em múltiplas barras que exibe o histórico da quantidade de rostos por categoria cadastrada por hora e minuto que foi gerado a partir do arquivo CSV, conforme a tabela 1.
 Percebe-se que às 20:25 do gráfico, temos uma grande alta nos registros de fêmeas jovens, sendo 8 cadastradas, e um único de uma fêmea adulta; às 20:26 temos um grande acréscimo na categoria de machos adultos, tendo 8 registrados, e um único macho jovem contra 2 fêmeas adultas e 3 fêmeas jovens; no último minuto temos apenas um único registro de uma fêmea jovem. 
Podemos julgar que às 20:26 tem mais registros do que às 20:25 e 20:27 por terem um tempo menor do que um minuto. Conforme a tabela 1, podemos ver que o primeiro minuto só começa os seus registros a partir das 20:25:44, tendo uma diferença de 15 segundos até o próximo minuto, que em apenas 2 segundos já encontra o seu primeiro rosto validado, o último minuto só contém um único registro, possivelmente, por ter apenas 2 segundos de duração.
Gráfico 4 - Gráfico em linha da quantidade de pessoas por hora/minuto
Fonte: Elaborado pelo autor.
No gráfico 4, temos um gráfico em linha que exibe o histórico da quantidade de rostos por categoria. Nesse gráfico é possível ter uma boa percepção de alta e baixa das detecções das categorias por cada minuto, nota-se que a categoria fêmea jovem tem uma linha em queda, ou seja, os seus registros diminuíram a cada minuto, comprovando-se um maior fluxo ás 20:25.
Na categoria de macho adulto, temos um começo sem nenhum registro, porém, na metade do tempo temos uma grande alta seguida de queda, comprovando-se que o maior fluxo de macho adulto é às 20:26.
Nas categorias de macho jovem e fêmea adulta, temos valores bem baixos, e que ás 20:26 mostra somente um registro a mais do que no minuto anterior, tendo uma única diferença na categoria de fêmea adulta, que já começa com um registro, e o macho jovem sem nenhum. 
Gráfico 5 - Gráfico em barra da média da probabilidade de cada categoria
Fonte: Elaborado pelo autor.
No gráfico 5 é possível ter uma média das probabilidades de acerto de cada categoria baseado na tabela 1. Percebe-se que nos registros de macho adulto temos 79.32%, sendo essa a maior média entre as 4 categorias existentes, isso mostra que nessa categoria tivemos uma melhor acurácia nessa validação do vídeo de setenta e oito segundos.
Respectivamente, as categorias com mais assertividade seriam a macho adulto, fêmea adulta, fêmea jovem e macho jovem.
5 CONCLUSÕES
A presente pesquisa teve o objetivo de otimizar o trabalho dos profissionais de saúde que se encontram alocados nas Unidades de Pronto Atendimento 24 horas utilizando-se de visão computacional para o gerenciamento e controle de fluxo de pacientes nessas unidades.
Com relação às dificuldades para o desenvolvimento do trabalho, no período em que se foi desenvolvido o projeto, primeiro semestre de 2020, nos encontrávamos em um período de pandemia causado pela Covid-19, consequentemente a população estava de quarentena, mudando assim alguns protocolos de vigilância sanitária para garantir a integridade da saúde pública, o que não tornou possível os testes reais nas próprias unidades. Dessa maneira, foi feito o uso de outros recursos, como neste caso, o vídeo de pessoas caminhando em direção a uma câmera, o que tornou o estudo ainda assim viável e comprovável.
O estudo respondeu ao problema apresentado, ou seja, que é possível fazer esse gerenciamento de fluxo de pacientes usando-se de visão computacional, comprovando-se pela geração dos gráficos estatísticos das categorizações de cada rosto identificadoe devidamente cadastrado, pela tabela de registros apresentado e pela imagem da captação dos rostos que o software gerou.
Um dos principais resultados encontrados neste estudo foi que o treinamento da inteligência artificial mostrou uma forte tendência para a identificação de rostos adultos e masculino, comprovando-se pela sua acurácia de 79,32% e também pela sua quantidade de registros inferior ao de rostos jovens e femininos que continham 12 registros, sendo o de maior quantidade dessa pesquisa, em comparação ao masculino adulto que só possuía 8 registros, mas com uma acurácia superior a todas as outras categorias.
Finalizando, a presente pesquisa abre um forte caminho para soluções com inteligência artificial e visão computacional, com bastante criatividade é possível usar essa tecnologia para resolver vários problemas simples do dia a dia, como no caso dessa pesquisa, controle de fluxo não só nas UPAs, mas também em terminais rodoviários e ferroviários, empresas, eventos e outros órgãos públicos.
6 PROJETOS FUTUROS
Em relação aos projetos futuros, é possível adaptar a visão computacional para a detecção e reconhecimento facial em tempo real na área de segurança pública, utilizando-se de câmeras em pontos estratégicos de uma cidade e de agentes de segurança em serviço que fizessem a captação dessas imagens e informassem a central ou aos agentes de um possível reconhecimento facial de um suspeito, porém, seria necessária uma legislação completa e madura que englobasse o uso dessa tecnologia sem infringir o direito à privacidade do cidadão.
Essa tecnologia também seria útil para auxiliar em investigações policiais para encontrar em vários arquivos de imagem ou vídeo algum conteúdo ilícito, como pedofilia, armas ou drogas. Dessa maneira, bastaria ter um algoritmo com o devido treinamento usando-se de rede neural convolucional que pudesse varrer todo o dispositivo ou mídia atrás de tais informações, o que possivelmente seria necessário um agente ou mais para vasculhar todos os arquivos.
O setor de Recursos Humanos poderia utilizar dessa tecnologia de detecção e reconhecimento facial para um controle de ponto mais inteligente e também para a análise de sentimentos do funcionário que seriam captados pelas expressões faciais dentro da empresa, o que auxiliaria nas tomadas de decisões ao setor de recursos humanos juntamente com os líderes sobre aumento salarial, férias ou qualidade de vida.
Transportadoras poderiam utilizar essa tecnologia em seus caminhões. Com a utilização de câmeras no painel do veículo poderia ocorrer um monitoramento dos motoristas e avaliar, pelas expressões faciais ou pelo próprio fechamento dos olhos, o nível de cansaço, alertando ao motorista que será necessário parar o veículo e descansar ou avaliar se o motorista cochilou naquele momento, gerando assim um alerta na cabine do caminhão que o chamasse atenção. Também seria possível gerar vários dados para a empresa avaliar se a rota tem uma qualidade e segurança no seu tempo de percurso para o motorista cumprir, trazendo não só a segurança nas estradas como aumentando a qualidade de vida desses profissionais. 
Observa-se que a utilização de visão computacional é muito ampla, podendo ser facilmente adaptada em vários setores, por exemplo, segurança pública e privada, indústrias, medicina, civil, militar e entre outros meios, a tecnologia existe e é acessível, basta ser criativo.
REFERÊNCIAS
ALVES, Gisely. Entendendo Redes Convolucionais (CNNs), [S.I.] [2018]. Disponível em: <https://medium.com/neuronio-br/entendendo-redes-convolucionais-cnns-d10359f21184>. Acesso em: 09 mai. de 2020.
Alegria, R., Almeida, P., Aratangy, V., Victor, B. Título: Teoria e Prática da Pesquisa Aplicada, Local de publicação: Rio de Janeiro, Elsevier Editora, 2011
BACKES, André Ricardo, SÁ JUNIOR, Jarbas Joaci, Título: Introdução à Visão Computacional Usando MATLAB, Local de publicação: Rio de Janeiro, Alta Books Editora, 2016
CLAPPIS, Alan Melo. Uma introdução as redes neurais convolucionais utilizando o Keras, [S.I.] [2019]. Disponível em: <https://medium.com/data-hackers/uma-introdu%C3%A7%C3%A3o-as-redes-neurais-convolucionais-utilizando-o-keras-41ee8dcc033e>. Acesso em: 09 mai. de 2020.
DALFOVO, Michael Samir; LANA, Rogério Adilson; SILVEIRA, Amélia. Título: Métodos quantitativos e qualitativos: um resgate teórico. Revista Interdisciplinar Científica Aplicada, Blumenau, 2008.
Data Science Academy. POR QUE A LINGUAGEM PYTHON É TÃO POPULAR EM MACHINE LEARNING E INTELIGÊNCIA ARTIFICIAL?. [S.I.] [2020]. Disponível em: <http://datascienceacademy.com.br/blog/por-que-a-linguagem-python-e-tao-popular-em-machine-learning-e-inteligencia-artificial/>. Acesso em: 24 mai. de 2020.
G1. Pacientes reclamam de espera e mau atendimento em UPAs do RJ, Rio de Janeiro, 22 abr 2015. Disponível em: <http://g1.globo.com/rio-de-janeiro/noticia/2015/04/pacientes-reclamam-de-espera-e-mau-atendimento-em-upas-do-rj.html>. Acesso em: 27 abr. de 2020.
GONZALEZ, R.C.; WOODS, R.E. Processamento de imagens digitais. São Paulo: Edgard Blücher, 2000. 1 p.
Keras. Simple, Flexible, Powerful. [S.I.] [2020?]. Disponível em: <https://keras.io/>. Acesso em: 24 mai. de 2020
Lima, T. C. S., & Mioto, R. C. T. Título: Procedimentos metodológicos na construção do conhecimento científico: a pesquisa bibliográfica. Revista Katálysis, 10 (esp.), Florianópolis, [2007] Disponível em: <https://www.scielo.br/scielo.php?pid=S1414-49802007000300004&script=sci_arttext> Acesso em: 20 mai. de 2020.
Matplotlib. Matplotlib: Visualization with Python. [S.I.] [2020?]. Disponível em: <https://matplotlib.org/>. Acesso em: 24 mai. de 2020
Ministério da Saúde. Unidade de Pronto Atendimento (UPA 24h): o que é, quando usar, diretrizes e competências, [S.I.] [2020?]. Disponível em: <https://saude.gov.br/saude-de-a-z/unidade-de-pronto-atendimento-upa-24h>. Acesso em: 28 abr. de 2020.
NEVEZ, Luiz Antônio Pereira, VIEIRA NETO, Hugo, GONZAGA, Adilson, Título: Avanços em visão computacional, Omnipax Editora, 2012
Ng, Wartini & Minasny, Budiman & Montazerolghaem, Maryam & Padarian, José & Ferguson, Richard & Bailey, Scarlett & Mcbratney, Alex. Convolutional neural network for simultaneous prediction of several soil properties using visible/near-infrared, mid-infrared, and their combined spectra. [Geoderma][2019]. Disponível em: <https://www.researchgate.net/figure/Illustration-of-flatten-layer-that-is-connecting-the-pooling-layers-to-the-fully_fig4_334783857> Acesso em: 10 mai. de 2020.
NumPy. About Us. [S.I.] [2020?]. Disponível em: <https://numpy.org/about/>. Acesso em: 24 mai. de 2020
OLIVEIRA, Saionara Nunes de et al. Emergency Care Units (UPA) 24h: the nurses' perception. Texto Contexto - Enferm.,[s.l.], v. 24, n. 1, p.238-244, mar. 2015. FapUNIFESP (SciELO). <https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104-07072015000100238&lng=en&tlng=en> Acesso em: 06 jun. 2020.
OpenCV. About. [S.I.] [2020?]. Disponível em: <https://opencv.org/about/>. Acesso em: 24 mai. de 2020.
Paul Viola, Michael Jones. Robust Real-time Object Detection. Second International Workshop on Statical and Computacional Theories of Vision - Modeling, Learning, Computing and Sampling, 2001.
SAS. Visão Computacional, o que é e qual a sua importância, [S.I.] [2020?]. Disponível em: <https://www.sas.com/pt_br/insights/analytics/computer-vision.html>. Acesso em: 28 abr. de 2020.
SAS. Redes Neurais, o que são e qual a sua importância. [S.I.] [2020?]. Disponível em: <https://www.sas.com/pt_br/insights/analytics/neural-networks.html>. Acesso em: 04 mai. de 2020.
Silva, A. L. & Cintra, M. E Reconhecimento de padrões faciais: Um estudo. In: Encontro Nacional de Inteligência Artificial e Computacional, 2015, Proceedings ENIAC, 224-231, 2015.
TensorFlow. Overview. [S.I.] [2020?]. Disponível em: <https://www.tensorflow.org/overview>. Acesso em: 24 mai. de 2020
VARGAS, A. C. G.; PAES, A.; VASCONCELOS, C. N. Um estudo sobre redes neurais convolucionais e sua aplicação em detecção de pedestres. In: Proceedings of the XXIX Conference on Graphics, Patternsand Images. 2016.

Continue navegando