Buscar

Algorítmo de Identificação de Imagens Através da Implementação de RNA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Carlos Eduardo Baldoíno 
Lucas Martins Sabaidni 
 
 
 
 
 
 
 
 
 
 
 
 
ALGORÍTMO DE IDENTIFICAÇÃO DE IMAGENS 
ATRAVÉS DA IMPLEMENTAÇÃO DE RNA 
 
 
 
 
 
 
 
 
 
 
Trabalho apresentado à disciplina 
de Inteligência Artificial do curso 
de Engenharia de Computação, do 
Centro Universitário de 
Votuporanga – UNIFEV, 
ministrado pela Prof.ª Ms. Patricia 
Salles Maturana de Souza, como 
obtenção parcial de nota referente 
ao segundo bimestre. 
 
 
 
 
 
 
 
 
Votuporanga, 24 de novembro de 2016. 
 
 
LISTA DE TABELAS 
 
 
Tabela 1 - Imagens de Treinamento ......................................................................................... 13 
 
 
 
 
 
 
 
LISTA DE FIGURAS 
 
 
Figura 1 - Sequência de dígitos manuscritos .............................................................................. 8 
Figura 2 - Treinamento de dígitos manuscritos .......................................................................... 9 
Figura 3 - Hiperplano entre dados de duas classes .................................................................. 11 
Figura 4 - Fatkun Batch Download Image Plugin .................................................................... 12 
 
 
 
 
 
SUMÁRIO 
 
 
1. INTRODUÇÃO ...................................................................................................................... 5 
2. OBJETIVOS ........................................................................................................................... 6 
2.1 OBJETIVO GERAL ............................................................................................................. 6 
2.2 OBJETIVOS ESPECÍFICOS ............................................................................................... 6 
3. METODOLOGIA ................................................................................................................... 7 
4. RECONHECIMENTO DE IMAGENS ................................................................................. 7 
4.1 REDES NEURAIS ............................................................................................................... 7 
5. ALGORÍTMO IMPLEMENTADO ....................................................................................... 9 
5.1. LINGUAGEM DE PROGRAMAÇÃO............................................................................... 9 
5.2. REDE NEURAL ARTIFICIAL (RNA) ............................................................................ 10 
5.3. CLASSIFICADOR DE TREINAMENTO ....................................................................... 10 
5.4. BANCO DE IMAGENS (DATASET) .............................................................................. 11 
6. CONCLUSÃO ...................................................................................................................... 14 
7. REFERÊNCIAS ................................................................................................................... 15 
 
 
 
 
 
 
 
 
5 
 
1. INTRODUÇÃO 
 
 
A espécie humana evoluiu, e continua evoluindo, agora somos Homo Sapiens 
(homem sábio), um punhado de poeira cósmica capaz de manipular, prever, perceber o mundo 
ao seu redor e principalmente aprender através de inúmeros estímulos físicos e emocionais. 
Já faz algum tempo que tentamos entender como somos capazes de pensar, 
cientistas afinco se aprofundam cada vez mais nos labirintos do intelecto, ainda em grande parte 
sem respostas para muitas dúvidas que nos cercam. 
A inteligência para nós, humanos, contiua protagonizando nossa ascensão, por isso 
é alvo de tantos estudos, e um desses é a inteligência artificial, ou apenas I.A., buscando não 
apenas interpretar como aprendemos, mas também a construí-la artificialmente ao nosso 
benefício. 
A I.A. é bastante recente nas áreas de ciências e engenharia, sendo que seus estudos 
foram principiados logo após o fim da Segunda Guerra Mundial, impulsionados pelo invento 
do matemático Alan Mathison Turing, que desenvolveu uma máquina (Máquina de Turing) 
capaz de realizar operações de leitura, escrita e exclusão de símbolods binários através de 
número finito de estados contidos em uma fita. 
Inicialmente esse termo foi proposto pelo cientista da computação John McCarthy 
em 1956, consistindo na ciência da engenharia capaz de fazer máquinas inteligentes, 
especialmente programas, baseando-se na inteligência humana, porém não necessitando se 
limitar nas fronteiras biológicas observáveis. 
I. A. é simplesmente uma espécie de inteligência, similar à humana, tenta simular 
as capacidades de raciocínio, aprendizagem, reconhecimento de padrões e inferência, porém 
ainda muito distante de reproduzir nossa capacidade por completo. É empregada em máquinas, 
que analisam dados disponíveis e, de acordo com sua programação, tomam determinadas 
atitudes ou exibem uma resposta que consideram próxima ou igual à solução ideal. 
Atualmente abrange enorme gama de subcampos, estendendo-se desde 
aprendizagem e percepção, até tarefas bem específicas, como por exemplo uma partida de 
xadrez, demonstrações de teoremas matemáticos, a condução de veículos automotores, 
diagnósticos de doenças, enfim, I.A. pode ser aplicada nas mais inusitadas tarefas. 
A área de processamento de imagens tem sido alvo crescente de interesse na 
utilização de I.A., por viabilizar grande número de aplicações que permitem análise automática 
de padrões em cenas capturadas. Através da implementação de algorítmos com redes neurais, 
6 
 
é possível “treinar um computador” para que reconheça um terrorista pelas câmeras de 
segurança do aeroporto, por exemplo. 
O presente trabalho apresenta o implemento de um algorítimo para reconhecimento 
de padrões, onde os processos de identificação e de classificação serão obtidos através 
de técnicas de processamento de imagens e do uso de redes neurais artificiais. Esses padrões 
serão obtidos através do treinamento da rede neural, por meio de um banco de imagens pré-
selecionadas que contém as características dos padrões procurados. 
 
 
2. OBJETIVOS 
 
 
2.1 OBJETIVO GERAL 
 
 
Implementar um algorítmo de reconhecimento de imagens, utilizando RNA (Rede 
Neural Artificial), capaz de detectar qual personagem do desenho animado Pokemon está sendo 
mostrado. 
 
 
2.2 OBJETIVOS ESPECÍFICOS 
 
 
 Conceituar rede neural e buscar suas definições; 
 Pesquisar as principais redes neurais existentes; 
 Implentar algorítimo de reconhecimento de imagens; 
 Realizar testes para verificar o funcionmenteo do algorítmo; 
 Apresentar os resultados. 
 
 
 
 
 
 
7 
 
3. METODOLOGIA 
 
 
O presente trabalho será realizado após pesquisa bibliográfica, buscando 
compreender os temas vinculados com o assunto principal, sendo este a forma de 
implementação de redes neurais artificiais. 
Para tanto utilizará-se dos conceitos dos autores considerados autoridades na área, 
como os pesquisadores de inteligência artificial Stuart Russell e Peter Norving, e também o 
cientista da computação Michael Nielsen. 
Para auxílio complementar, alguns tópicos evolucionários citados pelos autores 
Tyson Neil de Grasse e Donald Goldsmith farão parte da construção textual, que sustentará 
algumas definições. Recursos de áudio-visual, como o excelente canal Peixe Babel, que aborda 
o tema reconhecimento de imagens, será utilizado como forma de referência. 
Após a pesquisa nos livros e contéudos digitais iniciará-se o desenvolvimento de 
um programa em linguagem Python, com lógica estruturada em rede neural artificial, 
objetivando detectar em imagens a presençade personagens do desenho animado “Pokemon”. 
Ao final da implementação, uma bateria de testes garantirá se o algorítmo conseguiu 
aprender os padrões dos personagens do desenho. 
 
 
4. RECONHECIMENTO DE IMAGENS 
 
 
4.1 REDES NEURAIS 
 
 
Todo ser humano carrega consigo um “supercomputador” que denominamos de 
cérebro, essa máquina biológica está sendo aprimorada conforme a evolução em milhões de 
anos, adaptando-se ao meio para compreender visualmente cada vez mais o que lhe cerca. 
Grande parte das pessoas é capaz de reconhecer de forma rápida uma sequência 
qualquer de dígitos, como por exemplo os contidos na Figura 1. 
 
 
8 
 
Figura 1 - Sequência de dígitos manuscritos 
 
 
 
 
 
 
 
Fonte: NIELSEN, Michael1 
 
 
Aparentemente é uma tarefa simples, não há grande esforço, pois tudo é feito 
inconscientemente. Porém essa facilidade é superficial, o processo de identificar esses símbolos 
em padrões que façam algum sentido requer em nosso cérebro a utilização de uma área 
específica, conhecida como Córtex Visual Primário. 
Essa região contém aproximadamente 140 milhões de neurônios, com bilhões de 
conexões entre eles. Entretanto, a visão humana envolve não somente um córtex, mas uma série 
de córtices visuais, assemelhando-se a grosso modo aos núcleos de um processador, que 
trabalham em conjunto processando as imagens captadas. 
Dessa forma, a tecnologia de processamento de imagens, tenta da melhor forma 
possível, reproduzir o que nosso cérebro é capaz de fazer quase que instintivamente, analisar 
uma imagem captada, detectar algum padrão específico e produzir uma saída desejada. 
Tornar esse processo artificial de reconhecimento visual de padrões é extremamente 
complexo. Imagine, por exemplo, o número 9, sua representação gráfica sugere um círculo na 
parte superior, assemelhando-se à um loop, seguido de uma linha, que pode ser curva ou linear, 
iniciando na direita do círculo, estendendo-se na mesma proporção do diâmetro do círculo. 
Todos esses detalhes são captados pelo cérebro, identificando rapidamente um padrão 
conhecido, através dos bilhões de neurônios e suas conexões. 
Parar recriar esse mecanismo artificialmente, os detalhes do objeto que deseja-se 
analisar precisam ser convetidos em regras bem definidas, e implementado num algorítmo 
capaz de processar de forma lógica os dados captados. Esse algorítmo necessitará de um 
formalismo matemático, capaz de “aprender” com os chamados “exemplos de treinamento”, ou 
seja formar uma rede neural. 
 
1 Disponível em: <http://neuralnetworksanddeeplearning.com/chap1.html>. Acesso em 07 de nov. 2016. 
9 
 
Figura 2 - Treinamento de dígitos manuscritos 
 
 
 
 
 
 
 
 
 
 
 
 Fonte: NIELSEN, Michael2 
 
 
Na Figura 2, temos 100 exemplos de números manuscritos, cada qual possui um 
determinado traço, porém todos seguem um mesmo padrão, dessa forma a rede neural utiliza 
esses exemplos para “aprender” a identificar o número 9, por exemplo. Aumentando o número 
de exemplos, pode-se melhorar cada vez mais a precisão dessa rede. 
 
 
5. ALGORÍTMO IMPLEMENTADO 
 
 
5.1. LINGUAGEM DE PROGRAMAÇÃO 
 
 
A linguagem de programação Python será utilizada para implementar o algorítmo 
de detecção de imagens. É uma linguagem de altíssimo nível, orientada a objeto, de tipagem 
dinâmica e forte, interpretada e interativa, também possui uma sintaxe clara e concisa, que 
favorece a legibilidade do código fonte, tornando a linguagem mais produtiva, afirma Borges 
(2010). 
 
2 Disponível em: <http://neuralnetworksanddeeplearning.com/chap1.html>. Acesso em 07 de nov. 2016. 
10 
 
Essa linguagem é interpretada através de bytecode da máquina virtual Python 
(código intermediário entre as linguagens: natural, programção e máquina), transformando o 
código totalmente portável, dessa forma é possível compilar aplicações em alguma plataforma 
e executá-la em outros sistemas ou rodar diretamente do código fonte. 
Também é possível, se necessário, integrar o Python com outras linguagens, como 
por exemplo a Linguagem C ou Fortran. Em suma, a linguagem apresenta muitas semelhanças 
com outras linguagens dinâmicas, como Perl e Ruby. 
 
 
5.2. REDE NEURAL ARTIFICIAL (RNA) 
 
 
Rede Neural Artificial (RNA) é basicamente um modelo computacional que se 
assemelha ao funcionamento do sistema nervoso central de um animal, mais especificamente 
ao cérebro humano. Essa rede é capaz de realizar aprendizado de pardrões, definidos através de 
características que se deseja abstrar de um objeto qualquer. 
Há inúmeras redes disponíveis para implementação, no presente trabalho será 
utilizada a rede VGG19, sendo esta muito eficaz na extração das características de aparência 
em imagens vetorizadas. 
 
 
5.3. CLASSIFICADOR DE TREINAMENTO 
 
 
Para que o algoritmo seja capaz de identificar as imagens desejadas, é necessário 
primeiramente classificar suas características (cor, largura, comprimento, distorções). Para isso 
é fundamental fornecer um conjunto de imagens (Dataset) que contém o maior número de 
imagens distintas com essas características, para que o algorítmo “aprenda”, e possa identificar 
um padrão, utilizando-o para identificar a imagem desejada. 
Dessa forma será utilizado a Máquina de Vetores de Suporte, do inglês Support 
Vector Machines (SVM), que segundo Readhead (2014), consiste no método de aprendizagem 
de máquina que obtém dados de entrada e tenta classificá-los em categorias. Para exemplificar 
esse conceito, veja a Figura 3. 
11 
 
Figura 3 - Hiperplano entre dados de duas classes 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: Página Web Wikipedia3 
 
 
 
Suponha que todas as estrelas são dados de entrada, após o treinamento utilizando 
a SVM, o algoritmo identificou que as estrelas de cor azul possuem um tipo de característica, e 
as de cor vermelha outra característica, dividindo-as em duas categorias. 
 
 
5.4. BANCO DE IMAGENS (DATASET) 
 
 
Para o treinamento da rede neural será criado um banco de imagens, conhecido 
como Dataset, contendo ao todo 100 imagens que apresentam as características das imagens 
que queremos identificar. Para tanto será utilizado o plugin do navegador Google Chrome 
Fatkun Batch Download Image, possibilitando salvar várias imagens ao mesmo tempo, como 
mostra a Figura 4. 
 
3 Disponível em: <https://pt.wikipedia.org/wiki/M%C3%A1quina_de_vetores_de_suporte>. Acesso em 07 de nov. 2016. 
12 
 
Figura 4 - Fatkun Batch Download Image Plugin 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: Página do Chrome Web Store 4 
 
 
A rede neural será treinada para identificar os seguintes personagens do desenho 
animado Pokemon: Bulbasaur, Charmander, Pikachu, Squirtle. Acompanhe as ilustrações 
contidas na Tabela 1. 
Nessa etapa de treinamento, a rede neural identifica as principais características que 
cada figura contém, por exemplo, a personagem Pikachu possui cor amarela, um rabo 
semelhante à um raio, olhos pretos com interior branco, orelhas pontudas com detalhe preto, 
pés e braços pequenos juntos ao corpo, duas manchas vemelhas nas bochechas e dois detalhes 
na lateral direita. 
Dessa forma, com todas esses informações, é possível criar um padrão para essa 
personagem, e compará-lo com outras imagens para identificar outros Pikachus. 
 
 
 
 
 
 
4 Disponível em:<https://chrome.google.com/webstore/detail/fatkun-batch-download-
ima/nnjjahlikiabnchcpehcpkdeckfgnohf>. Acesso em 07 de nov. 2016. 
13 
 
Tabela 1 - Imagens de Treinamento 
 
Bulbasaur 
 
Charmander 
 
 
Pikachu 
 
Squirtle 
 
Fonte: Autores. 
 
 
 
 
 
 
 
 
 
 
14 
 
6. CONCLUSÃO 
 
 
Finda a implementação do trabalho, constatou-se que o algorítmo de rede neural 
artificial cumpriu com seu objetivo de identificar as personagens (Bulbasaur, Charmander, 
Pikachu, Squirtle) do desenho animado Pokemon. 
Para que essa tarefa fosse possível, foi codificado através da linguagem de 
progamação Python, a RNA vgg19, e para o treinamento da rede, ou seja, absorção das 
características desejadas, utilizou-se o classificador SVM, atuando no Dataset com 100 
imagens de cada personagem, a fim de obter-se um padrão. 
Portanto, com o presente trabalho verificou-se a importância das redes neurais na 
identificação de imagens, que podem ter inúmeras aplicações, como por exemplo no campo 
medicinal, identificando padrões de doenças e propiciando diagnóstico rápido do profissional 
da saúde. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15 
 
7. REFERÊNCIAS 
 
 
BORGES, Luiz Eduardo. Python para Desenvolvedores. Rio de Janeiro, Edição do Autor, 
2010, p.360. 
 
 
FILHO, Ogê Marques; NETO, Hugo Vieira. Processamento Digital de Imagens. Rio de 
Janeiro: Brasport, 1999, p. 331. 
 
 
GRASSE, Tyson Neil de; GOLDSMITH, Donald. Origins: fourteen billion years of cosmic 
evolution. SãoPaulo: Planeta do Brasil, 2015. 384 p. 
 
 
LIMA; Edirlei Soares de. Inteligência Artificial. Disponível em: 
<http://edirlei.3dgb.com.br/aulas/ia_2011_2/IA_Aula_01_Introducao.pdf>. Acesso em: 04 
nov. de 2016. 
 
 
LORENA, Ana Carolina; CARVALHO, André C. P. L F. de Carvalho. Introdução às 
Máquinas de Vetores Suporte (Support Vector Machines). Instituto de Ciências 
Matemáticas e de Computação: São Carlos, 2003, p. 66. 
 
 
MCCARTHY; John. What is Artificial Inteligence? Disponível em: <http://www-
formal.stanford.edu/jmc/whatisai/>. Acesso em: 04 nov. de 2016. 
 
 
NIELSEN, Michael. Neural Networks and Deep Learning. Determination Press, 2015. 
 
 
PALMIERE; Sérgio Eduardo. Inteligência Artificial: Introdução. Disponível em: < 
http://www.embarcados.com.br/inteligencia-artificial-introducao/>. Acesso em: 04 nov. de 
2016. 
 
 
PEIXE BABEL. “Quem é esse Pokemon?” - Reconhecimento de Imagens. Disponível em: 
<https://peixebabel.com.br/2016/09/14/quem-e-esse-pokemon-reconhecimento-de-imagens-
peixe-babel-91/>. Acesso em 07 nov. de 2016. 
 
 
READHEAD, Josh. Aprendizagem de Máquina: Como as máquinas de vetores de suporte 
podem ser utilizadas nas negociações. Disponível em: 
<https://www.mql5.com/pt/articles/584>. Acesso em 07 nov. de 2016. 
 
 
16 
 
RUSSELL, Stuart.; NORVING, Peter. Artificial Intelligence. Rio de Janeiro: Elsevier, 2013; 
1324 p. 
 
 
ZUBEN; Fernando J. Von. Introdução à Inteligência Artificial. Disponível em: 
<ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/ea072_2s13/introducao_EA072_2s2013.pdf
>. Acesso em: 04 nov. de 2016.

Outros materiais