• Nenhum resultado encontrado

Desenvolvimento e valida¸ c˜ ao de um sistema de identifica¸ c˜ ao de emo¸ c˜ oes por vis˜ ao computacional e redes neurais convolucionais

N/A
N/A
Protected

Academic year: 2022

Share "Desenvolvimento e valida¸ c˜ ao de um sistema de identifica¸ c˜ ao de emo¸ c˜ oes por vis˜ ao computacional e redes neurais convolucionais"

Copied!
59
0
0

Texto

(1)

UNIVERSIDADE PRESBITERIANA MACKENZIE

Hamilton de Matos

Desenvolvimento e valida¸ c˜ ao de um sistema de identifica¸ c˜ ao de emo¸ c˜ oes por vis˜ ao computacional e redes neurais convolucionais

com transferˆ encia de aprendizado

S˜ ao Paulo

2017

(2)

Hamilton de Matos

Desenvolvimento e valida¸ c˜ ao de um sistema de identifica¸ c˜ ao de emo¸ c˜ oes por vis˜ ao computacional e redes neurais convolucionais

com transferˆ encia de aprendizado

Disserta¸c˜ ao apresentada ao Programa de P´ os- Gradua¸c˜ ao em Engenharia El´ etrica e Computa¸c˜ ao (PPGEEC) da Universidade Presbiteriana Mac- kenzie (UPM) como parte dos requisitos para a obten¸c˜ ao do T´ıtulo de Mestre.

Orientador: Profa. Dra. Pollyana Notargiacomo

S˜ ao Paulo

2017

(3)
(4)
(5)

Dedicat´ oria

Em mem´ oria de Maria Zilda de Castro Matos

(6)

AGRADECIMENTOS

Agrade¸co especialmente a minha orientadora Profa. Dra. Pollyana por permitir que mais uma vez trabalh´ assemos juntos. Muit´ıssimo obrigado pela confian¸ca, amizade e principalmente pelo apoio nos momentos dif´ıceis durante a elabora¸c˜ ao do trabalho. Que venham novos trabalhos!

Agrade¸co a minha fam´ılia pelo amor incondicional em todos os momentos. Obrigado a Tha´ıs e ao Mauro, com vocˆ es ao lado tudo ´ e sempre muito mais f´ acil.

Agrade¸co aos membros da banca pelas contribui¸c˜ oes e incentivo para pesquisas futuras.

Obrigado ao Rog´ erio Ara´ ujo, F´ atima, Norbert, Fernanda e Jefferson pelo companheirismo

no trabalho e pela ajuda nas fotos.

(7)

RESUMO

Esta pesquisa tem como objetivo estabelecer uma metodologia para a cria¸c˜ ao de uma rede neural convolucional em situa¸c˜ oes em que exista um n´ umero reduzido de dados para trei- namento. O cen´ ario adotado ´ e o de identifica¸c˜ ao de express˜ oes faciais em imagens e suas respectivas emo¸c˜ oes. Por meio da valida¸c˜ ao do m´ etodo proposto, al´ em da disponibiliza¸c˜ ao da pr´ opria metodologia, tamb´ em ´ e disponibilizada uma interface de acesso p´ ublico que apre- senta informa¸c˜ oes a respeito das emo¸c˜ oes detectadas em uma imagem. Neste contexto, s˜ ao utilizados estudos de comportamento humano como a an´ alise feita por Paul Ekman e as de- fini¸c˜ oes de emo¸c˜ oes universais. Para cria¸c˜ ao do software, foram utilizadas diferentes t´ ecnicas de vis˜ ao computacional e t´ ecnicas de aprendizagem de m´ aquina com redes neurais convolu- cionais. Pretende-se, com este trabalho, verificar a possibilidade de leituras em tempo real, tendo como objetivo fornecer dados em situa¸c˜ oes nas quais os feedbacks podem ser funda- mentais para a tomada de determinadas decis˜ oes (como em rea¸c˜ oes em depoimentos, por exemplo). Como resultados mesmo sobre um conjunto de dados de treinamento reduzido, foi poss´ıvel conseguir uma acur´ acia de teste final m´ edia de 65% com tempo m´ edio de treina- mento de dez minutos.

Palavras-chave: express˜ oes faciais, vis˜ ao computacional, aprendizagem de m´ aquina, redes

neurais convolucionais, transferˆ encia de aprendizado.

(8)

ABSTRACT

This research aims to establish a methodology for the creation of a convolutional neural network in situations where there is a reduced number of data for training. The scenario adopted is the identification of facial expressions in images and their respective emotions.

Through the validation of the proposed method, in addition to the availability of the metho- dology itself, a public access interface is also available for providing information about the emotions detected in an image. In this context, human behavior studies such as Paul Ekman’s analysis and definitions of universal emotions are used. Different techniques of computer vision and machine learning with convolutional neural networks were used to create the soft- ware. The aim of this work is to verify the possibility of real-time analysis, aiming to provide data in situations in which feedback can be fundamental for making certain decisions (eg in reactions in statements, for example). Even on a reduced training data set, it was possible to achieve an average final test accuracy of 65 % with an average training time of ten minutes.

Keywords: facial expressions, computer vision, machine learning, convolution neural

network, transfer learning.

(9)

Sum´ ario

1 INTRODUC ¸ ˜ AO 1

2 REFERENCIAL TE ´ ORICO 3

2.1 M´ odulos para classifica¸c˜ ao de express˜ oes . . . . 8 2.2 Redes Neurais Convolucionais . . . . 16 2.3 CNN para classifica¸c˜ ao de express˜ oes: estado da arte . . . . 22

3 MATERIAIS E M´ ETODOS 25

3.1 Dados de treinamento . . . . 25 3.2 Tensorflow . . . . 26 3.3 Etapas de cria¸c˜ ao da rede neural . . . . 34

4 RESULTADOS 36

5 CONCLUS ˜ OES E TRABALHOS FUTUROS 44

REFERˆ ENCIAS BIBLIOGR ´ AFICAS 50

(10)

Cap´ıtulo 1

INTRODUC ¸ ˜ AO

As rea¸c˜ oes a determinadas situa¸c˜ oes variam conforme o contexto social envolvido. Por´ em, algumas express˜ oes faciais puderam ser catalogadas como sendo universais (EKMAN, 2003) mesmo se levando em conta etnias distintas, incluindo tribos isoladas do contato de outras culturas. Apesar de universais, existem v´ arios matizes quando estas express˜ oes s˜ ao demons- tradas, abrangendo desde rea¸c˜ oes claras ao observador at´ e movimentos de m´ usculos da face n˜ ao t˜ ao evidentes. Estas microexpress˜ oes nem sempre s˜ ao facilmente observ´ aveis por huma- nos, dado que podem durar apenas uma fra¸c˜ ao de segundo. Este tipo de limita¸c˜ ao n˜ ao ocorre em an´ alises feitas por computador, por´ em a quest˜ ao passa a ser a forma como um software pode fazer aferi¸c˜ oes em rela¸c˜ ao a comportamentos humanos.

Desta forma, tendo como objetivo uma solu¸c˜ ao gen´ erica, foi realizado uma an´ alise sobre t´ ecnicas de reconhecimento de express˜ oes. Parte destes trabalhos ´ e baseada na taxonomia descrita no sistema FACS (Facial Action Coding System ) (EKMAN; ROSENBERG, 1997).

Apesar da classifica¸c˜ ao dos movimentos das partes da face ser descrita de forma ampla, ainda n˜ ao existem softwares realmente eficazes na captura e identifica¸c˜ ao de express˜ oes em cen´ arios n˜ ao controlados. Algumas restri¸c˜ oes s˜ ao encontradas na maioria dos cen´ arios em que a an´ alise destas express˜ oes poderia ser ´ util. Uma delas envolve condi¸c˜ oes de ilumina¸c˜ ao, o que leva a necessidade de considerar as varia¸c˜ oes de luminosidade quando as imagens s˜ ao analisadas.

Algumas abordagens foram aplicadas para minimizar esta caracter´ıstica como a utiliza¸c˜ ao

(11)

de cˆ ameras infravermelho sens´ıveis a comprimento de onda(KAPOOR; QI; PICARD, 2003) e luzes de led. Esta proposta ´ e eficaz, mas envolve alto custo de equipamento. Este projeto, por sua vez, utiliza cˆ ameras normais sem que seja necess´ ario empregar tipos espec´ıficos de equipamento. Outra caracter´ıstica presente em ambientes de an´ alise de imagens envolve a baixa resolu¸c˜ ao dos dispositivos de captura. Foram aplicadas t´ ecnicas com o intuito de compensar tais caracter´ısticas, n˜ ao impedindo a an´ alise feita pelo software.

Usualmente, os trabalhos nesta ´ area costumam abranger as emo¸c˜ oes catalogadas como sendo comuns aos seres humanos independentemente do ambiente cultural - tristeza, medo, surpresa, repulsa, raiva e alegria (EKMAN et al., 1987). O trabalho proposto aumenta a abrangˆ encia das an´ alises autom´ aticas de express˜ oes, uma vez que pretendem analisar as diferentes express˜ oes sob condi¸c˜ oes distintas. Desta forma, o software poder´ a auxiliar a an´ alise das express˜ oes feitas por seres humanos em situa¸c˜ oes como rea¸c˜ oes a campanhas publicit´ arias, depoimentos, an´ alise de cr´ edito, engajamento em jogos e etc. Com isso, pode- se reduzir o custo com treinamento de pessoal especializado na identifica¸c˜ ao de express˜ oes ou servir de apoio a profissionais experientes. A principal caracter´ıstica da abordagem descrita neste trabalho ´ e a redu¸c˜ ao do tempo utilizado em algumas fases da constru¸c˜ ao dos mecanismos de redes neurais, al´ em da reutiliza¸c˜ ao de estruturas pr´ e-treinadas.

O cap´ıtulo 2 descreve o referencial te´ orico, apresentando as teorias envolvendo an´ alise de comportamento e classifica¸c˜ ao de express˜ oes. Ser´ a apresentado um panorama hist´ orico e as diferentes aplica¸c˜ oes pr´ aticas destas ´ areas de conhecimento. Em seguida, ser˜ ao demonstradas as dificuldades em se representar comportamentos humanos em m´ aquinas. Ser˜ ao descritas t´ ecnicas j´ a aplicadas a um escopo semelhante ao deste trabalho bem como seus resultados.

Tamb´ em ser˜ ao mostradas as tendˆ encias no ramo de vis˜ ao computacional que parecem apontar

para um caminho espec´ıfico na aplica¸c˜ ao de um conjunto de t´ ecnicas quando o problema

envolve analisar a face humana. O cap´ıtulo 3 descreve os materiais e m´ etodos utilizados,

demonstrando quais ferramentas e estrat´ egias foram aplicadas no sistema desenvolvido. O

cap´ıtulo 4 descreve os resultados apresentando o sistema com as an´ alises realizadas pelo

software sobre bases de dados distinta e finalmente, o cap´ıtulo 5 apresenta as conclus˜ oes e

trabalhos futuros, sendo que as referˆ encias bibliogr´ aficas s˜ ao apresentadas em seguida.

(12)

Cap´ıtulo 2

REFERENCIAL TE ´ ORICO

As emo¸c˜ oes humanas demonstradas por meio de express˜ oes faciais tˆ em sido objeto de estudo de diferentes ´ areas de pesquisa como psicologia, comunica¸c˜ ao, antropologia, intera¸c˜ ao homem computador entre outras (CAMBRIA; HUSSAIN, 2015),(RYAN; DECI, 2001),(FRE- DRICKSON, 2001),(BUSSO et al., 2004). Uma das primeiras pesquisas realizadas sobre a classifica¸c˜ ao e cataloga¸c˜ ao dessas express˜ oes est´ a presente em um trabalho de Charles Darwin, no qual s˜ ao analisadas express˜ oes em humanos e animais e suas respectivas emo¸c˜ oes. Neste trabalho, ele examina a premissa de que existem emo¸c˜ oes universais demonstradas de forma semelhante independentemente do contexto em que ocorrem. As pessoas seriam capazes de apresentar as mesmas express˜ oes mesmo sem tˆ e-las aprendido por observa¸c˜ ao, por conta do processo evolutivo. Tal trabalho foi revisitado por Paul Ekman (EKMAN; FRIESEN;

ELLSWORTH, 1972). Este teve a oportunidade de estudar o comportamento de popula¸c˜ oes

dos Estados Unidos, Brasil, Indon´ esia, Jap˜ ao, ex-Uni˜ ao Sovi´ etica, Argentina al´ em tamb´ em de

tribos isoladas na Nova Guin´ e. Um dos desafios, no caso dos experimentos com a popula¸c˜ ao

tribal Fore, seria traduzir e comunicar as ideias no idioma pidgin. Para tanto, a equipe de

Paul se valeu de fotografias com diferentes express˜ oes. Como os Fore n˜ ao possu´ıam l´ıngua

escrita, seria impratic´ avel pedir que escolhessem a emo¸c˜ ao correspondente entre uma lista de

palavras. Foi elaborado um m´ etodo para que os participantes da pesquisa contassem hist´ orias

que descrevessem as emo¸c˜ oes das fotografias.

(13)

Em uma segunda ocasi˜ ao, com outros membros das tribos, hist´ orias eram contadas e pedia-se que a express˜ ao correspondente ao sentimento do membro da tribo fosse apontada entre diferentes fotografias.

Como subconjunto destas pesquisas, as microexpress˜ oes abrangem as nuances nos mo- vimentos nas faces que n˜ ao s˜ ao evidentes ` a maioria das pessoas. Treinamentos espec´ıficos (EKMAN, 2006) tˆ em sido criados para habilitar pessoas a conseguir analisar movimentos praticamente impercept´ıveis. Sob determinadas circunstˆ ancias, como por exemplo, em de- poimentos, alguns movimentos faciais passam a ser inconscientes e podem adicionar dimens˜ ao ao que se ´ e relatado. A an´ alise de microexpress˜ oes pode ter uma efic´ acia maior em rela¸c˜ ao a m´ etodos tradicionais como o pol´ıgrafo, por exemplo (este ´ ultimo podendo ser considerado apenas como um equipamento para medir o n´ıvel de estresse e n˜ ao o teor do que ´ e relatado).

A seguir ser˜ ao apresentadas as diferentes express˜ oes analisadas durante as pesquisas de Paul Ekman:

• alegria - Figura 2.1 - neste tipo de express˜ ao est´ a presente o sorriso. Neste caso n˜ ao ´ e levado em conta o sorriso social, mas o sorriso genu´ıno, denominado de sorriso de Duchenne (EKMAN; DAV; FRIESEN, 1990). O sorriso social pode ser utilizado apenas por polidez, mas tamb´ em pode esconder sentimentos como raiva e tristeza.

Figura 2.1: Exemplo de express˜ ao - alegria

Tamb´ em incluem:

(14)

– olhos apertados apresentando rugas nas laterais externas (p´ es de galinha) conforme a idade;

– as p´ alpebras superiores diminuem;

– os cantos dos l´ abios se movimentam em dire¸c˜ ao aos ouvidos;

– dentes superiores aparentes;

• tristeza - Figura 2.2

– sobrancelhas se juntam e se elevam;

– cantos dos l´ abios descem levemente;

Figura 2.2: Exemplo de express˜ ao - tristeza

• raiva - Figura 2.3 - Esta express˜ ao ´ e um dos exemplos que podem ser reconhecidos em qualquer parte do planeta independentemente de idade, religi˜ ao ou gˆ enero. A raiva pode ser caracterizada pelas seguintes caracter´ısticas:

– l´ abios se apertam;

– narinas se dilatam;

– sobrancelhas se juntam e descem;

(15)

Figura 2.3: Exemplo de express˜ ao - raiva

• medo - Figura 2.4 - pode aparecer em situa¸c˜ oes de perigo, mas tamb´ em em situa¸c˜ oes de dor

– boca se abre e cantos se estendem para os lados externos;

– pupilas se retraem;

– sobrancelhas sobem;

– p´ alpebras inferiores e superiores sobem;

Figura 2.4: Exemplo de express˜ ao - medo

• repulsa - Figura 2.5

– laterais das narinas sobem;

– dentes da mand´ıbula superior ficam aparentes;

– sobrancelhas descem e se juntam;

(16)

Figura 2.5: Exemplo de express˜ ao - repulsa

• surpresa - Figura 2.6

– sobrancelhas se elevam;

– boca se abre;

– olhos se abrem;

Figura 2.6: Exemplo de express˜ ao - surpresa

• desprezo

– queixo se eleva;

– um dos lados dos l´ abios se estica para o exterior;

Uma face ´ e capaz de produzir mais de dez mil express˜ oes (EKMAN; FRIESEN, 2015). Por- tanto, ainda existem muitas quest˜ oes em aberto como por exemplo, se todo movimento facial

´ e sinal de uma emo¸c˜ ao, ou se as express˜ oes fornecem informa¸c˜ oes precisas ou enganosas.

(17)

A classifica¸c˜ ao de express˜ oes faciais b´ asicas ´ e um problema que humanos conseguem resolver de forma simples. Partes do problema incluem a detec¸c˜ ao da face, informa¸c˜ ao sobre a express˜ ao e classifica¸c˜ ao. Seguindo passos semelhantes, estrat´ egias tˆ em sido aplicadas ` a modelagem para cria¸c˜ ao de softwares capazes de identificar express˜ oes da mesma forma que seres humanos. Este recurso pode ser aplicado em ´ areas como intera¸c˜ ao humano computador, em situa¸c˜ oes em que a interpreta¸c˜ ao do comportamento humano pode ser usado como entrada de dados para o sistema.

Outras emo¸c˜ oes importantes como vergonha, inveja, culpa ou orgulho n˜ ao comp˜ oem o conjunto de emo¸c˜ oes b´ asicas. Ainda n˜ ao existem estudos suficientes que consigam demonstrar a universalidade destas emo¸c˜ oes. Portanto, ´ e necess´ ario atentar aos m´ etodos que se propo- nham a classificar emo¸c˜ oes distintas das presentes no conjunto de emo¸c˜ oes b´ asicas descrito anteriormente.

Definido o conjunto de express˜ oes a serem analisadas, ser˜ ao apresentadas abordagens que tˆ em como prop´ osito replicar em m´ aquinas a habilidade de humanos em reconhecer express˜ oes.

2.1 M´ odulos para classifica¸ c˜ ao de express˜ oes

A an´ alise de express˜ oes feita por m´ aquinas pode envolver diferentes m´ odulos(SAMAL;

IYENGAR, 1992): detec¸c˜ ao, representa¸c˜ ao, an´ alise e classifica¸c˜ ao. Primeiramente ´ e ne- cess´ ario determinar se alguma face est´ a presente em uma cena e a partir da´ı, determinar sua localiza¸c˜ ao, podendo ser a origem uma imagem est´ atica ou um v´ıdeo. O algoritmo Viola- Jones (VIOLA; JONES, 2004) ´ e um dos mais empregados nesta etapa, no qual a t´ ecnica de aprendizagem AdaBoost (VIOLA; JONES, 2001) em conjunto com abordagens para se- para¸c˜ ao do rosto do restante da imagem s˜ ao aplicados.

A fim de se detectar as faces nas imagens sob an´ alise, foi utilizado o descritor HOG

(histogram of oriented gradients) (SZELISKI, 2010). Para implementa¸c˜ ao foram seguidas

as recomenda¸c˜ oes descritas em Pang et al. (2011). Neste trabalho os autores apresentam

os resultados da aplica¸c˜ ao do descritor HOG em compara¸c˜ ao a outros tipos de detectores

(18)

de objetos especificamente na tarefa de identifica¸c˜ ao de pedestres. Inicialmente, os autores obtiveram resultados perfeitos quando realizaram testes sobre a base de dados de imagens de pedestres CBCL (Center of Biological and Computational Learning ) do MIT (Massachusetts Institute of Technology).

Figura 2.7: Exemplos de imagens de pedestres da base CBCL.

Como complementa¸c˜ ao, os autores criaram um conjunto mais extenso e com imagens com maior quantidade de varia¸c˜ oes. Quando aplicado a outras classes de objeto, os resultados continuaram sendo positivos. A mesma abordagem foi adotada no trabalho presente.

A ideia b´ asica do m´ etodo ´ e que objetos podem ter seu formato analisado com base na distribui¸c˜ ao de gradientes que representem varia¸c˜ oes de dire¸c˜ ao e magnitude em ´ areas de uma imagem. A implementa¸c˜ ao ´ e feita dividindo a imagem em pequenas regi˜ oes denominadas c´ elulas. Cada uma destas ´ areas ter´ a um histograma correspondente. A combina¸c˜ ao de todos os histogramas formar´ a a representa¸c˜ ao da ´ area sob an´ alise.

O histograma de gradientes orientados ´ e um tipo de descritor de caracter´ısticas (feature

descriptor ). Este tipo de descritor ´ e utilizado para representar uma imagem ou parte de

uma imagem de maneira simplificada. Partes relevantes ao contexto em que ocorre a an´ alise

s˜ ao consideradas enquanto as demais s˜ ao descartadas. Este processo ocorre por meio da

transforma¸c˜ ao de imagens de dimens˜ oes definidas por largura x altura x canais RGB em um

vetor de tamanho n. Este vetor pode representar uma parte relevante da imagem, uma vez

que algoritmos de classifica¸c˜ ao como o SVM (support vector machine) produzem resultados

adequados quando alimentados por este tipo de informa¸c˜ ao. Tomando como exemplo as di-

mens˜ oes apresentadas no artigo original (PANG et al., 2011), uma imagem com as dimens˜ oes

64 x 128 x 3 ter´ a sua representa¸c˜ ao em um vetor de 3780 posi¸c˜ oes.

(19)

No descritor do tipo HOG, os dados das imagens que s˜ ao levados em considera¸c˜ ao s˜ ao representados pela distribui¸c˜ ao dos gradientes de dire¸c˜ ao e magnitude. Estes gradientes podem representar bordas e cantos, caracter´ısticas importantes na detec¸c˜ ao de objetos. Os seguintes passos s˜ ao utilizados no c´ alculo de descritores deste tipo:

1. Pr´ e-processamento: Inicialmente uma ´ area de 64 x 128 pixels ´ e isolada de uma imagem original conforme Figura 2.8. O tamanho desta ´ area pode possuir qualquer valor desde que a propor¸c˜ ao 1:2 se mantenha.

Figura 2.8: Exemplo de imagem com ´ area sob an´ alise em destaque.

2. Imagens gradientes: Neste passo s˜ ao calculados os gradientes horizontais e verticais aplicando-se os filtros compostos [-1 0 1] e [-1 0 1]

T

conforme Figura 2.9. O processo de aplica¸c˜ ao dos filtros ´ e feito tomando-se estes valores e realizando opera¸c˜ oes sobre toda a imgagem. Os resultados finais estar˜ ao de acordo com o tipo de filtro escolhido.

Desta forma, ´ e poss´ıvel aplicar filtros para detec¸c˜ ao de bordas e aplicar efeitos do tipo

blur por exemplo.

(20)

Figura 2.9: Filtros compostos para obten¸c˜ ao dos gradientes.

Obtidos os valores dos gradientes, ´ e poss´ıvel determinar a magnitude e a dire¸c˜ ao do gradiente por meio das f´ ormulas 2.1 e 2.1 respectivamente:

g =

q

g

x2

+ g

y2

(2.1)

Θ = arctan g

y

g

x

(2.2)

A Figura 2.10 apresenta exemplos de visualiza¸c˜ ao dos gradientes e suas respectivas

imagens originais.

(21)

Figura 2.10: Visualiza¸c˜ ao de gradientes orientados.

3. Histograma de gradientes em c´ elulas de tamanho 8 x 8 pixels: Nesta etapa a imagem sob an´ alise ´ e dividida em c´ elulas de tamanho 8 x 8 pixels conforme Figura 2.11. Sobre cada uma destas c´ elulas ser´ a realizado o c´ alculo do histograma de gradientes. O motivo deste passo ´ e diminuir a chance de ru´ıdo na representa¸c˜ ao obtida, al´ em da obten¸c˜ ao de uma representa¸c˜ ao compacta. O gradiente de uma destas c´ elulas possuir´ a 128 valores.

Cada um dos 8 x 8 pixels possuir´ a magnitude e dire¸c˜ ao (2 x 8 x 8). A dimens˜ ao 8 x 8 ´ e

adequada a necessidade do problema sob an´ alise. Um segmento de 8 x 8 resultar´ a em

(22)

uma representa¸c˜ ao compacta e o histograma deste segmento ser´ a robusto em rela¸c˜ ao a ru´ıdos (PANG et al., 2011).

Figura 2.11: Divis˜ ao em c´ elulas de tamanho 8 x 8 pixels.

Os valores dos ˆ angulos nas matrizes obtidas de magnitude e dire¸c˜ ao variam de 0 a 180. Angulos maiores que 180 ser˜ ˆ ao representados pelos valores correspondentes ` a dire¸c˜ ao oposta, j´ a que um gradiente e seu oposto s˜ ao representados pelo mesmo valor.

Esta estrat´ egia ´ e chamada de gradientes sem sinal. N˜ ao h´ a restri¸c˜ oes a utiliza¸c˜ ao de representa¸c˜ oes que variem de 0 a 360 graus, por´ em no exemplo utilizado gradientes sem sinal demonstraram melhores resultados.

Obtidos os valores das matrizes de dire¸c˜ ao e de magnitude dos gradientes, ocorrer´ a a distribui¸c˜ ao dos valores em um histograma de nove posi¸c˜ oes. Cada uma das posi¸c˜ oes de 0 a 8 representar˜ ao os ˆ angulos 0, 20, 40, 60, 80, 100, 120, 140 e 160.

Tomando como exemplo um valor de 60 na primeira posi¸c˜ ao da matriz de dire¸c˜ oes,

e um valor de 13 na posi¸c˜ ao correspondente na matriz de magnitudes, a posi¸c˜ ao do

(23)

histograma afetada ser´ a a terceira (posi¸c˜ ao 3, valor representado o ˆ angulo 60). Este item do histograma receber´ a, portanto, o valor 13 conforme Figura 2.12. Os c´ alculos seguintes adotar˜ ao o mesmo procedimento, somando os valores das magnitudes nas posi¸c˜ oes do histograma relativas aos seus ˆ angulos. Terminado o c´ alculo para todos os 8 x 8 pixels, ser´ a obtido um histograma correspondente a esta ´ area da imagem.

Figura 2.12: C´ alculo do histograma de gradientes.

4. Normaliza¸c˜ ao em blocos de tamanho 16 x 16 pixels Caracter´ısticas como varia¸c˜ ao de luz afetam os valores dos gradientes calculados. Para tornar a an´ alise invariante a estes cen´ arios, ´ e poss´ıvel realizar uma normaliza¸c˜ ao sobre o histograma. Para tanto,

´ e poss´ıvel aumentar a dimens˜ ao da ´ area sob an´ alise, fazendo com que a normaliza¸c˜ ao ocorra, por exemplo em um grupo de 4 histogramas. Neste caso, a ´ area sob an´ alise passaria a ser um conjunto de c´ elulas de 16 x 16 pixels e o histograma correspondente a esta ´ area teria 36 posi¸c˜ oes. Obtido o valor normalizado, o grupo seguinte de 16 x16 pixels da imagem tamb´ em passaria pelos mesmo c´ alculos e o processo se repetiria at´ e a ´ area final da imagem conforme Figura 2.13.

5. C´ alculo do vetor final A janela de detec¸c˜ ao original de tamanho 64 x 128 pixels ir´ a comportar 7 janelas de an´ alise (16 x 16 pixels) na horizontal e 15 janelas na vertical.

Cada uma das janelas possui 4 histogramas de 9 posi¸c˜ oes, totalizando 36 valores. O

resultado final ser´ a um vetor com 7 x 15 x 36 = 3780 valores.

(24)

Figura 2.13: Normaliza¸c˜ ao em blocos de 16 x 16 pixels.

O processo de constru¸c˜ ao de histogramas de gradientes orientados ´ e ent˜ ao aplicado no objeto que se deseja detectar. Na tarefa espec´ıfica para dete¸c˜ ao de um rosto, calcula-se o histograma baseados em diferentes imagens de faces. Obtido o histograma, ocorre uma busca na imagem alvo para determina¸c˜ ao da regi˜ ao correspondente a um rosto. Uma vez que a localiza¸c˜ ao ´ e obtida, ´ e necess´ ario determinar as outras ´ areas como cantos dos olhos, l´ abios, nariz e etc. de forma precisa. O conjunto de pontos estrat´ egicos presentes nas faces recebe o nome de facial landmarks. Uma proposta de representa¸c˜ ao deste tipo

´

e definida pelo dataset I-BUG 300W (300. . . , 2016), no qual um conjunto de 68 pontos

´

e definido conforme Figura 2.14.

Figura 2.14: Localiza¸c˜ ao dos 68 pontos de marca¸c˜ ao na face conforme I-BUG 300W.

(25)

Foram feitos testes iniciais realizando treinamento sobre imagens com as representa¸c˜ oes dos 68 pontos descritos. Por´ em, foi observado que a rede neural convolucional apre- sentava resultados inferiores quando comparados a an´ alises feitas sobre as imagens completas pr´ e-processadas. Desta forma, a estrat´ egia original de an´ alise sobre os 68 pontos n˜ ao se mostrou eficaz e o treinamento passou a ser feito sobre as imagens origi- nais apenas, eliminando o tempo gasto com processamento necess´ ario para identifica¸c˜ ao dos pontos.

2.2 Redes Neurais Convolucionais

A maioria dos dados existentes n˜ ao possui estrutura e nem algum tipo de identifica¸c˜ ao que ajude a classific´ a-los. Redes neurais convencionais n˜ ao conseguem capturar estrutu- ras relevantes para classifica¸c˜ ao de itens como sons, imagens e textos e seus respectivos contextos. Em contrapartida, redes neurais profundas (deep neural networks ) s˜ ao capa- zes de identificar estruturas gen´ ericas inerentes aos seus tipos de dados. Estes tipos de redes s˜ ao capazes de descobrir estruturas em dados n˜ ao estruturados e que n˜ ao tenham r´ otulo.

A efic´ acia das redes neurais convolucionais (CNN - convolution neural networks ) em re- conhecimento de imagens ´ e uma das principais raz˜ oes pela qual ela tem sido adotada em estrat´ egias de aprendizagem de m´ aquinas (DEAN et al., 2013). Elas podem, por exem- plo, ser usadas para classificar imagens e realizar reconhecimento de objetos em cenas distintas (KRIZHEVSKY; SUTSKEVER; HINTON, 2012). Este tipo de abordagem ´ e uma das inova¸c˜ oes mais influentes em vis˜ ao computacional. Em 2012 Alex Krizhevsky (KRIZHEVSKY; SUTSKEVER; HINTON, 2012) utilizou esta t´ ecnica para ganhar o concurso ImageNet (RUSSAKOVSKY et al., 2015), reduzindo o recorde de erro de 26 para 15 porcento na categoria top-5 error rate test. A partir destes resultados, empresas passaram a adotar deep learning para diferentes objetivos como reconhecimento facial, buscas por imagem, recomenda¸c˜ ao de produtos (SCHMIDHUBER, 2015).

A utiliza¸c˜ ao mais not´ oria das redes convolucionais envolve processamento de imagens

(26)

para classifica¸c˜ ao. Neste processo ´ e determinada a probabilidade de um dado de en- trada pertencer a uma classe ou conjunto de classes. Classes podem ser, por exemplo, flores, carros, cachorros e etc. Humanos possuem a habilidade de reconhecer padr˜ oes (DESHPANDE, 2016), criar generaliza¸c˜ oes com base em conhecimento pr´ evio e adaptar diferentes ambientes em imagens. J´ a computadores, processam imagens como uma lista de valores. Como exemplo, uma imagem com dimens˜ ao 640 x 480 pixels ser´ a represen- tada como uma lista de n´ umeros de dimens˜ ao 640 x 480 x 3. O valor 3 representa os canais das cores vermelho, verde e azul (RGB). Para cada um destes n´ umeros ´ e dado um valor entre 0 e 255, descrevendo a intensidade do pixel correspondente. Estes n´ umeros ser˜ ao os dados de entrada para os algoritmos que ir˜ ao determinar a probabilidade de uma imagem pertencer a uma classe.

Redes neurais convolucionais buscam por caracter´ısticas de baixo n´ıvel como curvas e bordas e criam diferentes camadas de convolu¸c˜ ao nas quais s˜ ao constru´ıdos concei- tos mais abstratos. Esta abordagem possui certa semelhan¸ca com o funcionamento de como humanos percebem alguns tipos de formas. Hubel e Wiesel (1962) realizaram um experimento no qual algumas c´ elulas neurais eram acionadas apenas na presen¸ca de bordas com espec´ıficas dire¸c˜ oes. Por exemplo, algumas c´ elulas eram acionadas ape- nas em bordas verticais, enquanto outras eram acionadas apenas na presen¸ca de bor- das horizontais. Estes neurˆ onios eram organizados em forma de colunas, produzindo percep¸c˜ oes visuais que serviram de inspira¸c˜ ao para o funcionamento b´ asico das redes neurais convolucionais.

Nos ´ ultimos anos, redes neurais convolucionais (CNN) tem obtido maior relevˆ ancia en-

tre a comunidade de aprendizagem de m´ aquina. Isso devido ` a variedade de aplica¸c˜ oes

em que a t´ ecnica se sobressai a todas as outras. Um dos objetivos originais das CNN

foi estabelecer formas de representa¸c˜ ao do mundo real a fim de desempenhar tarefas de

reconhecimento. Entre os passos principais est˜ ao a necessidade de detectar objetos e

estabelecer suas categorias correspondentes. A classifica¸c˜ ao deve ocorrer independente-

mente de escala, ilumina¸c˜ ao, pose e deforma¸c˜ ao. O passo principal da CNN come¸ca com

a extra¸c˜ ao de caracter´ısticas primitivas, combinando essas caracter´ısticas para formar

partes do objeto, e depois combinando estas partes pra formar o pr´ oprio objeto.

(27)

Supondo que se queira identificar um dos carros na imagem 2.15 . No n´ıvel mais alto, tem-se uma imagem do estacionamento, mas pode-se extrair partes como janelas, portas e etc. CNN recebe uma imagem n˜ ao processada como entrada. Alguns tipos poderiam ser linhas horizontais, verticais e curvas. Com estes itens, poderiam ser formados os objetos como um carro e estabelecer a forma.

Figura 2.15: Caracter´ısticas de baixo n´ıvel identificadas por CNNs

A primeira camada em uma rede neural convolucional ´ e a camada de convolu¸c˜ ao, tra- tando a entrada dos dados. No caso de uma imagem, poderia ser uma lista de valores de pixels de dimens˜ ao 32 x 32 x 3, por exemplo. Sobre esta lista ´ e aplicado um kernel ou filtro de dimens˜ ao sempre menor que a imagem como 5 x 5 x 3 pixels, por exemplo.

A partir da esquerda no canto superior, o filtro ´ e deslocado para a direita. A ´ area sobre a qual ocorre a atua¸c˜ ao recebe o nome de campo receptivo. O pr´ oprio filtro ´ e uma lista de n´ umeros representando pesos. Para a primeira posi¸c˜ ao sobre o canto superior esquerdo, o valor presente no filtro ´ e multiplicado pelo valor do pixel correspondente na imagem original.

As trˆ es camadas do kernel com 25 pixels cada produzir˜ ao 75 multiplica¸c˜ oes. Os re-

sultados destas multiplica¸c˜ oes s˜ ao somados e obtˆ em-se um n´ umero que representa a

posi¸c˜ ao atual do kernel sobre o dado de entrada. A partir da obten¸c˜ ao deste valor, o

filtro ´ e deslocado uma unidade para a direita e a multiplica¸c˜ ao ocorre novamente para

a cria¸c˜ ao de mais um n´ umero. De forma an´ aloga, cada deslocamento produzir´ a um

n´ umero. Quando todas as posi¸c˜ oes da imagem original tiverem sido percorridas pelo

filtro, a matriz resultante ter´ a dimens˜ ao 28 x 28 x 1 conforme Figura 2.16. Estes 784

valores representam o mapa de ativa¸c˜ ao ou feature map.

(28)

Figura 2.16: Dados de entrada e primeira camada resultante

Cada um dos kernels podem ser considerados identificadores de caracter´ısticas como por exemplo, linhas retas, curvas, cores e etc. A multiplica¸c˜ ao de uma ´ area da imagem onde ocorre uma curva, por exemplo possuir´ a um valor alto, enquanto que uma ´ area que n˜ ao possuir esta caracter´ıstica possuir´ a um valor baixo. Valores altos indicam que a probabilidade de uma caracter´ıstica descrita pelo filtro existir em uma regi˜ ao ´ e alta, enquanto que valores baixos indicam que a caracter´ıstica pode n˜ ao existir na regi˜ ao da figura de exemplo.

Fun¸c˜ oes de ativa¸c˜ ao s˜ ao uma parte importante em aprendizagem de m´ aquina. Em linhas gerais, uma unidade passa seus dados de entrada para uma fun¸c˜ ao de ativa¸c˜ ao para que uma sa´ıda seja gerada. Portanto, a escolha da fun¸c˜ ao desempenha um papel importante nos resultados.

Uma rede neural analisa uma imagem com base na ativa¸c˜ ao de um conjunto de neurˆ onios correspondentes a alguma caracter´ıstica espec´ıfica. Os dados s˜ ao passados para uma ca- mada escondida e ao final do processamento desta camada, ocorre o filtro realizado pela fun¸c˜ ao de ativa¸c˜ ao. As partes dos dados que estimularem os neurˆ onios ser˜ ao enviadas

`

a camada seguinte, j´ a as outras partes ser˜ ao descartadas.

A fun¸c˜ ao de ativa¸c˜ ao do tipo Step foi umas das primeiras a serem desenvolvidas em

(29)

aprendizagem de m´ aquina. Seu funcionamento ´ e basicamente o de um limitador. Se a entrada ultrapassa um valor arbitr´ ario, a sa´ıda ser´ a 1, caso contr´ ario ser´ a 0. Esta fun¸c˜ ao pode ser aplicada em problemas de classifica¸c˜ ao e o Tensorflow n˜ ao disponibiliza uma implementa¸c˜ ao desta estrat´ egia devido ` a consolida¸c˜ ao de estrat´ egias que apresentam resultados melhores. Um exemplo de fun¸c˜ ao de ativa¸c˜ ao mais flex´ıvel ´ e a sigm´ oide descrita como:

y = 1

1 + e

−x

(2.3)

Com este tipo de fun¸c˜ ao, ´ e poss´ıvel obter valores intermedi´ arios entre -1 e 1, proporcio- nando uma transi¸c˜ ao mais continua e suave. Por meio da varia¸c˜ ao dos limites, tamb´ em

´ e poss´ıvel obter valores entre 0 e 1. Fun¸c˜ oes sigmoide s˜ ao extremamente populares em aplica¸c˜ oes de aprendizagem de m´ aquina que envolvam grandes volumes de dados devido ao menor custo computacional necess´ ario. Elas s˜ ao ´ uteis porque adequam a entrada a um intervalo pr´ e-determinado. Esta estrat´ egia facilita quando os resultados precisam ser combinados com o resultado de outras fun¸c˜ oes.

Entre as fun¸c˜ oes de ativa¸c˜ ao mais aplicadas est´ a a ReLU (rectified linear unit ), definida como

f (x) = max(0, x) (2.4)

Sendo x a entrada no neurˆ onio. Todas as fun¸c˜ oes lineares s˜ ao varia¸c˜ oes de ReLU.

Nesta abordagem ´ e aplicada uma fun¸c˜ ao simples que provˆ e sa´ıdas com valores entre zero e infinito. Como exemplo, se uma entrada x for negativa, a fun¸c˜ ao ReLU fornecer´ a 0. Se x n˜ ao for negativo, ReLU fornecer´ a o pr´ oprio x como sa´ıda. Mesmo soando contra intuitivo, usar uma fun¸c˜ ao b´ asica deste tipo pode fornecer melhores resultados se comparados a fun¸c˜ oes mais complexas como a sigm´ oide e tangente hiperb´ olica.

A estrat´ egia ReLU tamb´ em provˆ e alguns benef´ıcios importantes durante o processo de

inicializa¸c˜ ao de um modelo de rede neural. Nesta etapa pesos s˜ ao distribu´ıdos de forma

randˆ omica para cada unidade. A fun¸c˜ ao ReLU s´ o ser´ a ativada aproximadamente 50

porcento das vezes, poupando tempo de processamento. Existem tipos diferentes de

ReLU otimizadas de acordo com aplica¸c˜ oes como, por exemplo, ReLU param´ etrico ou

unidades lineares exponenciais (exponential linear units ).

(30)

Outros exemplos de fun¸c˜ oes de ativa¸c˜ ao incluem

• Fun¸c˜ ao linear - Neste tipo de fun¸c˜ ao n˜ ao h´ a ativa¸c˜ ao. Os dados de entrada ser˜ ao os mesmos dados de sa´ıda.

• Fun¸c˜ ao Step - Se o valor que passa pela ´ ultima camada for maior que um valor estabelecido, a sa´ıda normalmente ser´ a 1, significando que o neurˆ onio foi ativado.

• Fun¸c˜ ao Ramp - Se um valor chega a ´ ultima camada com valor menor que theta, a sa´ıda ser´ a -1

De forma complementar a fun¸c˜ ao de ativa¸c˜ ao, cada camada tamb´ em possui pesos e biases. Bias ´ e um termo usado para realizar ajustes permitindo uma melhor adapta¸c˜ ao da rede aos dados analisados. Os dados de entrada (theta), por sua vez, s˜ ao processados combinando os pesos e biases. Depois dos c´ alculos, todo o theta ´ e analisado pela fun¸c˜ ao de ativa¸c˜ ao. Ap´ os esta etapa os dados ser˜ ao enviados para a camada 2. Esta possui uma estrutura similar a primeira camada. Uma vez que se tenha calculado novamente o valor de theta, o processo continua mais uma vez para a fun¸c˜ ao de ativa¸c˜ ao. Uma etapa posterior poderia ser definida como a verifica¸c˜ ao de cross entropy na qual ´ e poss´ıvel comparar o valor real esperado com o obtido e tentar minimizar a diferen¸ca observada.

Cross entropy ´ e uma estrat´ egia utilizada para analisar o progresso do treinamento por meio da an´ alise das diferen¸cas entre os valores esperados e os valores computados.

Por meio desta fun¸c˜ ao de perda, ´ e poss´ıvel analisar as varia¸c˜ oes entre os passos de treinamento, sendo que o objetivo ´ e reduzir ao m´ aximo seu valor. Valores menores a cada passo indicam que o aprendizado est´ a progredindo.

Redes neurais tradicionais possuem todos os neurˆ onios em uma camada conectados a

todos os neurˆ onios da camada anterior. Cada uma dessas conex˜ oes tamb´ em possui

um peso ´ unico. Essa abordagem tende a ser cara em termos de mem´ oria e tempo de

computa¸c˜ ao. Uma camada de convolu¸c˜ ao funciona de forma diferente. Cada neurˆ onio

est´ a conectado com apenas alguns outros neurˆ onios da camada anterior e que estejam

pr´ oximos. Estes neurˆ onios compartilham os mesmos pesos e biases esta estrutura ´ e

interessante em dados em que caracter´ısticas locais precisam ser extra´ıdos.

(31)

Para uma imagem, portanto ´ e poss´ıvel aplicar uma janela de busca abrangendo um conjunto de pixels a fim de procurar por alguma caracter´ıstica espec´ıfica. Com a aplica¸c˜ ao de pesos iguais, a rede assume que a caracter´ıstica pode acontecer em qualquer

´

area da imagem. Esta janela pode ter suas dimens˜ oes alteradas de acordo com problema sendo tratado.

Feature engineering ´ e o nome dado ao processo de extra¸c˜ ao de caracter´ısticas ´ uteis na obten¸c˜ ao do entendimento de um modelo preditivo. Por meio do estabelecimento destas caracter´ısticas ´ e poss´ıvel melhorar a acur´ acia dos algoritmos, podendo-se determinar quais caracter´ısticas s˜ ao ´ uteis para distinguir entre diferentes categorias. Uma vez extra´ıdos, estes dados estar˜ ao prontos para serem usados no processo de classifica¸c˜ ao.

2.3 CNN para classifica¸ c˜ ao de express˜ oes: estado da arte

Estudos recentes demonstram (PRAMERDORFER; KAMPEL, 2016) como redes neu- rais convolucionais tˆ em conseguido obter os melhores resultados em tarefas de reco- nhecimento quando comparadas a outros m´ etodos. Em desafios como o The Facial Expression Recognition 2013 (GOODFELLOW et al., 2013), arquiteturas de redes neurais convolucionais puderam prover resultados com acur´ acia de 75,2%.

De forma complementar, Lopes et al. (2017) realizaram estudos comparativos em que demonstram resultados melhores se comparados a abordagens utilizadas tradicional- mente para an´ alise de express˜ oes, como por exemplo a aplica¸c˜ ao de Local Binary Pat- terns com Support Vector Machines (LBP e SVM) ou Boosted Deep Belief Network (BDBN). A Tabela 2.1 apresenta parte dos resultados obtidos:

M´ etodo Acur´ acia em 6 express˜ oes 7 express˜ oes

LBP+SVM - 41,3%

BDN - 68%

(LOPES et al., 2017) 79,6% 82,1%

Tabela 2.1: Compara¸c˜ ao de m´ etodos em tarefas de reconhecimento de express˜ oes

(32)

Em arquiteturas de redes neurais convolucionais, um dos artefatos ´ e a camada de Po- oling, cuja fun¸c˜ ao ´ e reduzir progressivamente o tamanho da representa¸c˜ ao, diminuindo o n´ umero de parˆ ametros e consequentemente a computa¸c˜ ao exigida pela rede.

As etapas de uma rede neural convolucional usualmente envolvem os seguintes passos:

Entrada, Convolu¸c˜ ao, ReLU, Convolu¸c˜ ao, ReLU, Pool, ReLU, Convolu¸c˜ ao, ReLU, Pool e Fully connected.

A entrada da segunda camada ser´ a a sa´ıda da primeira. Diferentemente de uma imagem, a segunda camada ir´ a receber um mapa de ativa¸c˜ ao representando caracter´ısticas de n´ıveis mais altos. Estas combina¸c˜ oes podem ser quadrados por exemplo, envolvendo conjuntos de quatro cantos de ˆ angulo reto. Conforme se avan¸ca nos n´ıveis da rede,

´

e poss´ıvel obter caracter´ısticas mais complexas. Ao final da rede pode ser poss´ıvel encontrar filtros que se ativam ao encontrar objetos circulares, por exemplo.

A camada fully connected recebe como entrada a sa´ıda da camada anterior e dispo- nibiliza um vetor de dimens˜ ao N, sendo N a quantidade de classes poss´ıveis de serem determinadas. Com base nos mapas de ativa¸c˜ ao da camada anterior, determina-se quais caracter´ısticas mais se aproximam de uma das classes sob an´ alise.

Problemas que envolvem fun¸c˜ oes n˜ ao linearmente separ´ aveis envolvem multi-camadas

e para tanto ´ e necess´ ario a aplica¸c˜ ao de diferentes estrat´ egias de an´ alise dos dados em

cada uma das camadas. A representa¸c˜ ao de neurˆ onios em uma rede ser´ a feita por dois

estados poss´ıveis - ligado ou desligado, significando que uma informa¸c˜ ao ser´ a enviada

adiante na rede ou ent˜ ao se ser´ a descartada. Esta representa¸c˜ ao ´ e limitada pois apre-

senta apenas dois valores que representem os dois estados poss´ıveis. Para que este

problema seja minimizado ´ e poss´ıvel aplicar fun¸c˜ oes diferentes que provenham resul-

tados com valores intermedi´ arios entre 0 e 1, promovendo transi¸c˜ oes mais suaves. A

proposta deste trabalho ´ e apresentar uma metodologia para cen´ arios espec´ıficos em que

haja restri¸c˜ oes de volume de dados de treinamento. Portanto, cen´ arios comparativos ao

m´ etodo proposto n˜ ao podem ser apresentados. A aplica¸c˜ ao de redes neurais convoluci-

onais tem se mostrado capaz de tratar alguns tipos de limita¸c˜ ao, entre eles o volume de

dados de treinamento bem como o tempo gasto na fase de treinamento, fato que ser´ a

(33)

demonstrado em seguida.

(34)

Cap´ıtulo 3

MATERIAIS E M´ ETODOS

Para este trabalho foram utilizadas bibliotecas que disponibilizam implementa¸c˜ oes de algoritmos de aprendizagem de m´ aquina como OpenCV (OPEN. . . , 2016) e Dlib (DLIB. . . , 2016). A implementa¸c˜ ao de SVM foi feita conforme (PANG et al., 2011).

3.1 Dados de treinamento

Um dos conjuntos de dados de treinamento foi criado sobre a base disponibilizada pelo iBUG 300-W (intelligent behaviour working group) (300. . . , 2016). Este grupo tem como foco realizar an´ alises do comportamento humano com o aux´ılio de m´ aquinas envolvendo an´ alise facial, an´ alise gestual, visual, auditiva e biom´ etrica.

Al´ em desta base, foram criados conjuntos customizados de treinamento para que casos espec´ıficos pudessem tamb´ em ser abrangidos. Rugas na testa, por exemplo, geralmente n˜ ao est˜ ao presentes nos conjuntos de pontos agrupados nas bases de teste. Para au- mentar a base de treinamento e testes foram utilizadas bases de dados adicionais, entre elas:

• Cohn Kanade (KANADE; COHN; TIAN, 2000)

• LFPW (Labeled Face Parts in the Wild Dataset) (HUANG et al., 2007)

• Helen dataset (ZHOU; LIN, 2013)

(35)

Tamb´ em foram utilizadas imagens abertas de rosto obtidas por meio de buscas simples do Google. Posteriormente, foi necess´ ario realizar uma varredura sobre todas as imagens utilizadas, a fim de deix´ a-las nas categorias corretas e tamb´ em eliminar imagens com baixa qualidade ou ent˜ ao com caracter´ısticas n˜ ao tratadas pelo sistema. Imagens com vis˜ ao parcial dos rostos, por exemplo, tiveram de ser exclu´ıdas.

3.2 Tensorflow

Tensorflow ´ e uma ferramenta para implementa¸c˜ ao de conceitos de deep leaning. A ferra- menta funciona com base em grafos de fluxo de dados. Os n´ os de um grafo representam opera¸c˜ oes matem´ aticas, e as arestas representam vetores de dados multidimensionais chamados tensores. Um tensor pode ser definido como um vetor de n´ umeros. Este vetor pode conter matrizes ou outros vetores. A principal caracter´ıstica do Tensorflow

´ e a possibilidade de realizar opera¸c˜ oes, como derivadas por exemplo, em matrizes com grande volume de dados de forma eficiente (ABADI et al., 2016).

Tensorflow pode ser utilizado em problemas envolvendo ajuste de curva, problemas de regress˜ ao, classifica¸c˜ ao e minimiza¸c˜ ao de erros entre outros. Um dos exemplos de uso ´ e descrito por Duc e Jung (2017). Tamb´ em s˜ ao disponibilizados mecanismos de retropropaga¸c˜ ao (backpropagation) para ajustar pesos e biases para o treinamento de redes. Alguns recursos s˜ ao disponibilizados a fim de facilitar a constru¸c˜ ao de diferentes arquiteturas de redes neurais como redes neurais convolucionais, redes recorrentes e autoencoders.

O Tensorflow pode ser usado para mapear os problemas para fun¸c˜ oes a serem realizadas

sobre tensores. Para uma aplica¸c˜ ao de rede neural, por exemplo, temos os dados (x),

pesos (w) e limites (t), todos podendo ser definidos como vetores. Portanto, os trˆ es

elementos podem ser considerados tensores. A rede neural pode ser definida como uma

fun¸c˜ ao de x, w e t. Primeiramente ´ e constru´ıdo um modelo dos dados, denominado

grafo da computa¸c˜ ao (computation graph). Este modelo ser´ a posteriormente utilizado

em uma sess˜ ao do Tensorflow.

(36)

1 w i t h t f . S e s s i o n ( ) a s s e s s :

2 x = t f . c o n s t a n t ( 2 )

3 y = t f . c o n s t a n t ( 4 )

4 r e s u l t = t f . mul ( x , y )

5 o u t p u t = s e s s . run ( r e s u l t )

6 p r i n t( o u t p u t )

Listagem 3.1: Exemplo de utiliza¸c˜ ao da API Tensorflow em Python

A linha 4 na listagem anterior apenas define uma opera¸c˜ ao. O c´ alculo n˜ ao ´ e realizado neste momento. As opera¸c˜ oes declaradas s˜ ao denominadas n´ os e apenas ap´ os a execu¸c˜ ao da sess˜ ao na linha 5 ´ e que os c´ alculos s˜ ao realizados de fato.

Suponha um exemplo de imagens de dimens˜ oes 28 x 28 pixels. As caracter´ısticas sob an´ alise ser˜ ao os valores de cada pixel. Espera-se que a rede neural crie um modelo interno das rela¸c˜ oes entre pixels. Para tanto, os dados de entrada ser˜ ao enviados ` a primeira camada escondida (hidden layer ) com seus respectivos pesos. Nesta camada os dados passar˜ ao pela fun¸c˜ ao de ativa¸c˜ ao. Com base no resultado desta fun¸c˜ ao de ativa¸c˜ ao o neurˆ onio decidir´ a se deve ou n˜ ao enviar o dado para uma pr´ oxima camada escondida ou para a sa´ıda final da rede. Uma vez que o resultado tenha sido obtido, comparam-se os valores com os valores esperados. Para determinar qu˜ ao diferente os resultados se apresentam, ´ e aplicada uma fun¸c˜ ao de custo (loss function).

Na ´ ultima etapa, usa-se uma fun¸c˜ ao de otimiza¸c˜ ao para minimizar o valor da diferen¸ca entre o valor apresentado e o valor esperado. O erro ´ e minimizado ajustando-se os pesos e a velocidade deste ajuste ´ e determinada pela taxa de aprendizagem (learning rate ). ´ E necess´ ario analisar o valor da taxa de aprendizagem visando encontrar um ponto de equil´ıbrio para o tempo de aprendizagem e a qualidade dos resultados obtidos.

Conforme diminui-se a taxa de aprendizagem, resultados mais precisos s˜ ao obtidos, mas o tempo de treinamento aumenta. Em contrapartida conforme aumenta-se o valor da taxa, o tempo de treinamento diminui, mas os resultados tornam-se mais imprecisos.

E necess´ ´ ario variar o valor da taxa em cada cen´ ario de treinamento visando encontrar

um ponto de equil´ıbrio entre tempo e qualidade dos resultados. Desta forma, os testes

realizados neste trabalho levaram a ado¸c˜ ao de uma taxa de 0,01.

(37)

O envio dos dados por meio da rede ´ e denominado feed forward e os ajustes dos pesos denomina-se retro propaga¸c˜ ao (backpropagation). O ciclo entre o processamento dos dados pela rede e a retro propaga¸c˜ ao para ajustes dos pesos recebe o nome de ´ epoca (epoch).

Tamb´ em ´ e necess´ ario encontrar um valor para que a quantidade de ´ epocas processadas n˜ ao leve a uma situa¸c˜ ao de overfitting, cen´ ario em que dados irrelevantes de uma imagem podem ser utilizados para realizar a classifica¸c˜ ao. Se todos as imagens dispon´ıveis fossem usadas no treinamento, a rede poderia trazer resultados ´ otimos para as imagens analisadas, por´ em poderia falhar na classifica¸c˜ ao de imagens novas.

O processamento de uma ´ epoca tem como intuito ajustar os pesos e melhorar a acur´ acia.

Ap´ os o processamento de todas as ´ epocas, aplica-se uma estrat´ egia de valida¸c˜ ao para testar os resultados obtidos. Um poss´ıvel modelo poderia ser:

1 n n o d e s h l 1 = 500

2 n n o d e s h l 2 = 500

3 n n o d e s h l 3 = 500

4 n c l a s s e s = 10

5 b a t c h s i z e = 100

Listagem 3.2: Exemplo de defini¸c˜ ao de modelo

As vari´ aveis n nodes x definem quantos n´ os estar˜ ao presentes em cada camada. A quantidade de classes para a classifica¸c˜ ao ´ e definida em n classes e o tamanho do conjunto usado pela vari´ avel batch size.

1 d e f n e u r a l n e t w o r k m o d e l ( d a t a ) :

2 h i d d e n 1 l a y e r = {’ w e i g h t s ’: t f . V a r i a b l e (

3 t f . random normal ( [ 7 8 4 , n n o d e s h l 1 ] ) ) ,

4 ’ b i a s e s ’: t f . V a r i a b l e (

5 t f . random normal ( [ n n o d e s h l 1 ] ) )}

6

7 h i d d e n 2 l a y e r = {’ w e i g h t s ’: t f . V a r i a b l e (

8 t f . random normal ( [ n n o d e s h l 1 , n n o d e s h l 2 ] ) ) ,

9 ’ b i a s e s ’: t f . V a r i a b l e (

10 t f . random normal ( [ n n o d e s h l 2 ] ) )}

(38)

11

12 h i d d e n 3 l a y e r = {’ w e i g h t s ’: t f . V a r i a b l e (

13 t f . random normal ( [ n n o d e s h l 2 , n n o d e s h l 3 ] ) ) ,

14 ’ b i a s e s ’: t f . V a r i a b l e (

15 t f . random normal ( [ n n o d e s h l 3 ] ) )}

16

17 o u t p u t l a y e r = {’ w e i g h t s ’: t f . V a r i a b l e ( t f . random normal ( [ n n o d e s h l 3 , n c l a s s e s ] ) ) ,

18 ’ b i a s e s ’: t f . V a r i a b l e ( t f . random normal ( [ n c l a s s e s ] ) )}

Listagem 3.3: Declara¸c˜ ao para obten¸c˜ ao de valores iniciais aleat´ orios

Ap´ os a defini¸c˜ ao dos pesos ocorre a defini¸c˜ ao dos biases. Estes valores s˜ ao adicionados aos valores das somas antes de serem passados para a fun¸c˜ ao de ativa¸c˜ ao. Os valores dos bias ajudam em situa¸c˜ oes em que um valor 0 ´ e transmitido a camada. Com o valor do bias adicionado, pode ser que o neurˆ onio ainda consiga enviar algum valor para a camada seguinte.

1 l 1 = t f . add ( t f . matmul ( data , h i d d e n 1 l a y e r [’ w e i g h t s ’] ) , h i d d e n 1 l a y e r [ ’ b i a s e s ’] )

2 l 1 = t f . nn . r e l u ( l 1 )

3

4 l 2 = t f . add ( t f . matmul ( l 1 , h i d d e n 2 l a y e r [’ w e i g h t s ’] ) , h i d d e n 2 l a y e r [ ’ b i a s e s ’] )

5 l 2 = t f . nn . r e l u ( l 2 )

6

7 l 3 = t f . add ( t f . matmul ( l 2 , h i d d e n 3 l a y e r [’ w e i g h t s ’] ) , h i d d e n 3 l a y e r [ ’ b i a s e s ’] )

8 l 3 = t f . nn . r e l u ( l 3 )

9

10 o u t p u t = t f . matmul ( l 3 , o u t p u t l a y e r [’ w e i g h t s ’] ) + o u t p u t l a y e r [ ’ b i a s e s ’]

11

12 r e t u r n o u t p u t

Listagem 3.4: C´ alculos realizados nas camadas da rede neural

Na listagem anterior a primeira camada ´ e inicializada. O c´ alculo ´ e feito por meio

da multiplica¸c˜ ao dos dados de entrada sem formata¸c˜ ao e os valores dos pesos. A este

(39)

resultado ´ e ent˜ ao somado o valor do bias. Este processo ´ e repetido em todas as camadas escondidas at´ e a obten¸c˜ ao do resultado final representado pela vari´ avel output.

Transferˆ encia de aprendizado (Transfer learning) ´ e uma t´ ecnica que consiste em re- aproveitar uma rede neural j´ a treinada previamente para um conjunto de categorias.

Realizando um novo treinamento sobre os pesos desta rede, ´ e poss´ıvel adequ´ a-la para determina¸c˜ ao de novas categorias. ´ E poss´ıvel, portanto realizar um treinamento apenas sobre a ´ ultima camada de uma rede, obtendo-se resultados satisfat´ orios, com tempo de treinamento baixo e sem a necessidade de hardwares espec´ıficos como por exemplo, GPUs. Uma vez que o tempo de treinamento ´ e relativamente curto, ´ e poss´ıvel realizar uma maior quantidade de ajustes durante as etapas de treinamento.

A biblioteca Tensorflow provˆ e op¸c˜ oes para realizar treinamento sobre redes j´ a treinadas.

Uma das estruturas dispon´ıveis utiliza o modelo Inception V3(SZEGEDY et al., 2014).

Este modelo foi treinado sobre o conjunto de dados Imagenet(DENG et al., 2009), que contem 1000 categorias diferentes de objetos. Inicialmente esta rede ´ e carregada e sua ´ ultima camada ´ e removida. Como substitui¸c˜ ao a ´ ultima camada, ocorre ent˜ ao um treinamento sobre o novo conjunto de imagens que se deseja classificar. Mesmo que o novo conjunto de imagens n˜ ao tenha correspondˆ encia no conjunto original Imagenet,

´ e poss´ıvel treinar a ´ ultima camada para novas classifica¸c˜ oes. A maior vantagem da estrat´ egia de transferˆ encia de aprendizado (transfer learning) ´ e que v´ arias das camadas j´ a treinadas para distinguir objetos espec´ıficos, podem ser reutilizadas na classifica¸c˜ ao de novas categorias sem que sejam necess´ arias altera¸c˜ oes em sua estrutura base.

O termo bottleneck ´ e utilizado para determinar a camada anterior ` a camada da rede respons´ avel por realizar as classifica¸c˜ oes. A sa´ıda desta camada corresponde a valores utilizados pelo processo de classifica¸c˜ ao para determina¸c˜ ao da categoria sob an´ alise. O tipo de informa¸c˜ ao usado para distinguir entre as mil diferentes categorias do conjunto de dados Imagenet tamb´ em pode ser utilizado na classifica¸c˜ ao de novas imagens.

Cada uma das figuras presentes nas categorias dos dados de treinamento ter´ a seu bottle-

neck correspondente. A Figura 3.1 apresenta parte do conte´ udo de um dos bottlenecks

calculados para o problema de classifica¸c˜ ao de express˜ oes.

(40)

Figura 3.1: Exemplos de conte´ udo de um bottleneck.

A fase de treinamento envolve uma s´ erie de passos, sendo que cada um deles possui:

• Acur´ acia de treinamento (training accuracy ) mostra a porcentagem de imagens classificadas corretamente sobre o conjunto de treinamento em execu¸c˜ ao;

• Acur´ acia de valida¸c˜ ao (validation accuracy ) ´ e a medida que demonstra de forma real a qualidade da rede, uma vez que apresenta o resultado da classifica¸c˜ ao rea- lizada sobre um conjunto de imagens diferentes das utilizadas durante a fase de treinamento.

Valores para acur´ acia de treinamento maiores que os valores para acur´ acia de valida¸c˜ ao, podem indicar que a rede est´ a apresentando caracter´ısticas de overfitting. Como exem- plo, pretende-se que uma rede classifique um animal em uma paisagem. A rede poderia apresentar ´ otimos resultados, mas poderia estar analisando o c´ eu inv´ es do animal. Para tratar este problema, o conjunto completo das imagens n˜ ao ´ e utilizado durante a fase de treinamento.

A Figura 3.2 apresenta alguns passos do treinamento realizado. ´ E poss´ıvel verificar a

(41)

melhora significativa na acur´ acia de valida¸c˜ ao mesmo em um quantidade pequena de passos.

Figura 3.2: Parte dos dados de treinamento realizado.

O valor padr˜ ao para a quantidade de passos do script de treinamento do framework Tensorflow ´ e 4000. ´ E poss´ıvel definir uma quantidade maior do que este valor pad˜ ao.

A taxa com que os resultados melhoram ir´ a diminuir at´ e um determinado ponto, no

qual a acur´ acia apresentar´ a resultados constantes. Em cada um destes passos ser˜ ao

escolhidas 10 imagens do conjunto de treinamento de forma aleat´ oria. Os respectivos

bottlenecks s˜ ao encontrados e enviados ` a ultima camada e a classifica¸c˜ ao ´ e finalmente

(42)

feita. O resultado desta classifica¸c˜ ao ´ e ent˜ ao comparado aos valores reais esperados.

A diferen¸ca obtida nesta compara¸c˜ ao ´ e utilizada para ajustar os pesos por meio do processo de retropropaga¸c˜ ao. A cada passo, a acur´ acia de treinamento ir´ a aumentar e ao final de todo o processo, ´ e determinada a acur´ acia de teste final (final test accuracy ).

Este valor ´ e obtido por meio de uma classifica¸c˜ ao realizada sobre um conjunto de imagens diferentes das utilizadas nos conjuntos de treinamento e de valida¸c˜ ao e ´ e o indicativo de qual ser´ a a performance da rede em cen´ arios reais de classifica¸c˜ ao.

E poss´ıvel visualizar valores das etapas de treinamento por meio da ferramenta ´ Ten- sorboard. Dados como varia¸c˜ ao dos pesos podem ser analisados de forma gr´ afica a fim de facilitar eventuais ajustes.

O script de treinamento ir´ a considerar a categoria de uma imagem como sendo o nome da pasta em que se encontra esta imagem. Como exemplo, um classificador de carros, poderia ter uma pasta raiz contendo diferentes pastas. Cada pasta poderia correspon- der aos diferentes modelos que se pretende classificar como, por exemplo, hatch ou sedan. Cada uma destas pastas dever´ a conter apenas imagens de carros da categoria correspondente.

Uma estrat´ egia para melhorar os resultados e aumentar a quantidade de imagens dis- pon´ıveis para o treinamento ´ e causar varia¸c˜ oes sobre uma mesma imagem. Altera¸c˜ oes como tamanho, recorte, altera¸c˜ ao na orienta¸c˜ ao, mudan¸cas de contraste e ilumina¸c˜ ao podem ser aplicadas. Desta forma, al´ em do aumento na quantidade de imagens dis- pon´ıveis, tamb´ em ´ e uma forma de verificar o desempenho da rede em situa¸c˜ oes que existam imagens com caracter´ısticas semelhantes as distor¸c˜ oes aplicadas.

O script de treinamento realiza divis˜ oes sobre as imagens disponibilizadas. Usualmente o treinamento ocorre sobre 80% das imagens. 10% s˜ ao usados para valida¸c˜ ao a cada passo de treinamento e os 10% restante s˜ ao usados em uma valida¸c˜ ao final. As por- centagens podem ser configuradas a fim de procurar resultados melhores. Deixar uma porcentagem das imagens dispon´ıveis reservadas para valida¸c˜ ao diminui a probabilidade de ocorrˆ encia de overfitting.

A cada passo do treinamento, a acur´ acia de valida¸c˜ ao ir´ a variar, uma vez que o subcon-

(43)

junto das imagens utilizadas como verifica¸c˜ ao s˜ ao escolhidas de forma aleat´ oria entre as dispon´ıveis no conjunto de valida¸c˜ ao. Opcionalmente, ao inv´ es de um subconjunto,

´ e poss´ıvel utilizar todas as imagens do conjunto de valida¸c˜ ao, por´ em o tempo de trei- namento ser´ a maior.

Ao final do treinamento, tamb´ em ´ e poss´ıvel verificar quais imagens n˜ ao foram classifi- cadas corretamente e, a partir deste conjunto, analisar caracter´ısticas que possam ter levado a rede ` a classifica¸c˜ ao errada. Por meio desta an´ alise tamb´ em ´ e poss´ıvel iden- tificar imagens no conjunto de treinamento que possam ter sido catalogadas de forma errada.

3.3 Etapas de cria¸ c˜ ao da rede neural

Para facilitar o processo de classifica¸c˜ ao, as imagens podem ser normalizadas. Es- trat´ egias comuns s˜ ao transformar as imagens em preto e branco ou em escala de cinza.

Para aumentar a qualidade da classifica¸c˜ ao, inicialmente cada imagem do conjunto de treinamento ´ e analisada e os rostos presentes s˜ ao extra´ıdos para novas imagens.

Um novo conjunto de treinamento ´ e ent˜ ao criado com base nesta an´ alise no qual cada

imagem corresponder´ a a uma face. O treinamento da rede poderia ser realizado so-

bre imagens sem nenhum tipo de tratamento por´ em, a qualidade dos resultados seria

afetada uma vez que os pontos de interesse das imagens poderiam n˜ ao ser analisados

conforme esperado. Seria necess´ ario um conjunto de treinamento muito mais extenso

a fim de se aumentar a probabilidade da rede identificar tais pontos. Como forma

comparativa, a acur´ acia da rede treinada sobre as imagens originais sem tratamento

diminui em 80%. A Figura 3.3 apresenta os passos b´ asicos utilizados na constru¸c˜ ao da

solu¸c˜ ao.

(44)

Figura 3.3: Etapas do processo de constru¸c˜ ao da solu¸c˜ ao

(45)

Cap´ıtulo 4

RESULTADOS

Atualmente existem sistemas capazes de reconhecer express˜ oes universais. Produtos como Emotient(EMOTIENT, 2016), Microsoft Azure (AZURE, 2016) e Affectiva(AFFECTIVA, 2016) oferecem solu¸c˜ oes para an´ alise dos m´ usculos da face. O prop´ osito principal destes pro- dutos ´ e fornecer formas de acesso por meio de APIs que fornecem dados como posi¸c˜ oes de landmarks, express˜ oes analisadas entre outras. Os exemplos de aplica¸c˜ ao envolvem principal- mente a an´ alise de engajamento em campanhas publicit´ arias, otimiza¸c˜ ao no direcionamento de an´ uncios, identifica¸c˜ ao de emo¸c˜ oes durante jogos e etc. De forma an´ aloga, a estrat´ egia descrita neste trabalho fornece os mesmos dados presentes nestes produtos, mas de forma aberta. Por se tratarem de softwares comerciais, n˜ ao foi poss´ıvel realizar testes profundos de compara¸c˜ ao. Por´ em, testes simples realizados sobre a solu¸c˜ ao da Microsoft apresentaram resultados semelhantes e, na maioria, dos casos, melhores.

A seguir s˜ ao apresentados algumas imagens da vers˜ ao inicial do software, adotando a estrat´ egia de 68 pontos de marca¸c˜ ao bem como explica¸c˜ oes de funcionamento.

A Figura 4.1 apresenta a tela principal onde s˜ ao apresentadas as leituras das express˜ oes.

Na presente vers˜ ao do software, s˜ ao lidas apenas as express˜ oes alegria, surpresa, tristeza

e neutralidade. Al´ em disso, ainda n˜ ao est˜ ao sendo levados em considera¸c˜ ao os diferentes

agrupamentos entre os diferentes pontos da face que formam uma express˜ ao de fato.

(46)

Figura 4.1: Tela principal do sistema

Para analisar o comportamento do rastreamento dos pontos, foram criadas trˆ es visua- liza¸c˜ oes. A primeira, disposta na Figura 4.2 exibe os 68 pontos sob an´ alise na face, enquanto que a Figura 4.3 realiza uma liga¸c˜ ao entre os pontos principais para facilitar a visualiza¸c˜ ao do rastreamento.

Figura 4.2: Rastreamento dos 68 pontos marcados na face

(47)

Figura 4.3: Exibi¸c˜ ao com m´ ascara sobre tra¸cos principais.

A seguir ´ e apresentado o comportamento do sistema conforme diferentes express˜ oes s˜ ao capturadas pela cˆ amera. As figuras 4.4, 4.5 e 4.6 representam os comportamentos neutra- lidade, alegria e surpresa respectivamente.

Figura 4.4: Comportamento neutro.

(48)

Figura 4.5: Identifica¸c˜ ao de express˜ ao de alegria.

Figura 4.6: Identifica¸c˜ ao de express˜ ao de surpresa.

A abordagem inicial descrita anteriormente, n˜ ao levava em conta a quest˜ ao de disponi- biliza¸c˜ ao do software sem que fosse necess´ ario algum tipo de instala¸c˜ ao. Desta forma, foram criadas duas novas vers˜ oes com este prop´ osito.

A seguir s˜ ao apresentadas interfaces dos softwares criados. A Figura 4.9 apresenta a

interface gr´ afica web criada para acessar o mecanismo de classifica¸c˜ ao criado.

(49)

Figura 4.7: Tela da aplica¸c˜ ao realizando uma leitura de uma express˜ ao de alegria.

Figura 4.8: Leitura de uma express˜ ao de raiva.

(50)

Figura 4.9: Leitura de uma express˜ ao de surpresa.

O prop´ osito desta forma de acesso ´ e prover uma forma r´ apida de verificar o funciona-

mento do software e analisar sua performance. De forma complementar, as an´ alises po-

dem ser feitas por meio de uma API de servi¸cos web do tipo REST (Representational state

transfer ). Por meio de chamadas ao servi¸co ´ e poss´ıvel obter detalhes como porcentagem

de cada emo¸c˜ ao analisada, o n´ umero de faces encontradas e a posi¸c˜ ao de cada uma delas

na imagem. A chamada ao servi¸co pode ser feita por meio do formato urlDaAplicacao/-

recognize?image=imagemCodificadaBase64 e o resultado pode possuir o formato json. A

Figura 4.10 apresenta parte do resultado.

(51)

Figura 4.10: Exemplo de resultado no formato json.

Outra forma de disponibiliza¸c˜ ao ´ e por um aplicativo m´ ovel conforme Figura 4.11. O prop´ osito desta abordagem foi verificar a possibilidade de dados de entrada para an´ alise criados a partir de dispositivos m´ oveis.

Figura 4.11: Aplica¸c˜ ao m´ ovel. Leitura de express˜ ao de surpresa.

(52)

Foram executados testes sobre dados de treinamento distintos variando os parˆ ametros da rede neural. A quantidade de dados de treinamento foi limitada propositalmente a fim de validar a estrat´ egia adotada. A Tabela 4.1 apresenta os resultados com base em diferentes cen´ arios de treinamento :

taxa de aprendizado passos de treinamento quantidade lote de treinamento acur´acia de treinamento cross entropy acur´acia de valida¸c˜ao acur´acia de teste final

0.005 4000 100 91% 0.502762 49% 60.40%

0.01 5000 100 98% 0.363512 46% 64.40%

0.01 7000 100 96% 0.265289 47% 65.30%

0.01 10000 100 96% 0.195339 46% 65.30%

0.01 4000 100 94% 0.406913 33% 66.30%

Tabela 4.1: Demonstrativos de resultados de treinamentos

(53)

Cap´ıtulo 5

CONCLUS ˜ OES E TRABALHOS FUTUROS

A estrat´ egia de transferˆ encia de aprendizado pode ser aplicada em situa¸c˜ oes em que os dados de treinamento sejam escassos. Por´ em, uma vez que se faz uso de uma rede j´ a treinada, a obten¸c˜ ao da an´ alise pode n˜ ao ser instantˆ anea devido ao tempo de processamento necess´ ario. No caso deste trabalho, a m´ edia de resposta para an´ alise de cada express˜ ao sobre uma imagem, teve tempo de resposta m´ edio de 5 segundos. Portando, para aplica¸c˜ oes em que seja necess´ ario an´ alise em tempo real, sugere-se a aplica¸c˜ ao de outra abordagem.

O modelo sobre o qual a rede neural deste trabalho foi treinada levou duas semanas para

ser processado sobre m´ ultiplas GPUs, abrangendo um milh˜ ao de imagens e mil categorias

distintas. Realizar um treinamento deste porte pode n˜ ao ser fact´ıvel devido ao tempo de

treinamento e equipamento necess´ arios. A possibilidade de estender um modelo j´ a treinado,

elimina estes problemas, permitindo que novas categorias possam ser identificadas conforme

a necessidade. O tempo m´ edio para realizar a estrat´ egia de transferˆ encia de aprendizado

observado neste trabalho ´ e de 10 minutos e foi obtida uma acur´ acia de valida¸c˜ ao final m´ edia

de 65%. Portanto, cen´ arios em que se fa¸cam necess´ arios realizar an´ alises tomando como

base um conjunto restrito de dados de treinamento podem se beneficiar da estrat´ egia de

transferˆ encia de aprendizado, aplicando a metodologia descrita neste trabalho a fim de sim-

Referências

Documentos relacionados

Isso significa que Lima Barreto propõe a ressignificação do olhar lançado sobre o futebol, deixando transparecer sua crítica às ten- tativas de padronização cultural e

Para o Planeta Orgânico (2010), o crescimento da agricultura orgânica no Brasil e na América Latina dependerá, entre outros fatores, de uma legislação eficiente

Chora Peito Chora Joao Bosco e Vinicius 000 / 001.. Chão De Giz Camila e

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

Combinados, o rádio portátil APX 8000XE habilitado para todas bandas e o microfone falante remoto XE500 criam uma solução de missão crítica incomparável, projetada para o pessoal

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

A principal forma de avaliar os fios multifilamentos con- tínuos é mediante o ensaio de tração, que deve ser realizado em equipamento próprio para ensaio de fios têxteis, o qual

Pondo em vista todos os conceitos at´ e aqui apresentados principalmente quanto ao tratamento de sistemas dinˆ amicos em conceitos de estados, podemos come¸car a constru¸c˜ ao