aplicação de uma rede neural artificial para reconhecimento de objetos … · 2015. 11. 3. ·...
TRANSCRIPT
-
Aplicação de uma Rede Neural Artificial para Reconhecimento de Objetos em Jogo
Bruno Pick¹, Rafael Viana¹
1Departamento de Informática – Universidade de Santa Cruz do Sul (UNISC) [email protected], [email protected]
Abstract. This paper shows the sliding window method with artificial neural networks to recognize objects in an image. The ARN’s topology is MLP Multi Layer Perceptron with Backpropagation Algorithm. Resumo. Este artigo demonstra a utilização da técnica de janela deslizante juntamente com redes neurais artificiais para o reconhecimento de objetos em uma imagem, sendo a RNA do tipo MLP Multi Layer Perceptron, aplicando o algoritmo Backpropagation.
1. Introdução Clash of Clans é um jogo desenvolvido pela empresa Supercell , foi publicado em 2 de agosto 1
de 2012 para a plataforma iOS, e, em 8 de outubro de 2013 para a plataforma Android. Após sua estreia o jogo atingiu inúmeras vezes o posto de jogo mais popular nas plataformas Android e iOS. Em maio de 2014, estimase que o jogo possuia 3,85 milhões de jogadores ativos diariamente e faturamento de 1,14 milhões de dólares por dia . 2
Todo jogador ao criar uma conta no jogo recebe uma vila, na qual deve construir construções de defesa para proteger sua vila de ataques de outros jogadores, quarteis para treinar tropas para atacar outros jogadores e construções que coletam recursos de ouro, elixir e elixir negro que são usados para construir os objetos no jogo.
O objetivo do jogo é melhorar as construções de defesa e evoluir as tropas para enfrentar adversários mais fortes. Os recursos para realizar estas evoluções podem ser coletados na própria vila do jogador através de coletores de recursos, no entanto, estes recursos no decorrer do jogo não são suficientes para a evolução da vila, sendo necessário roubar estes recursos de vilas de outros jogadores. Quanto mais jogadores se ataca, mais recursos se ganha.
Para atacar um jogador é necessário aguardar o tempo de treinamento das tropas, procurar um adversário com muitos recursos para serem roubados (quanto mais recurso o jogador tem armazenado em sua vila, mais podese roubar dele), e realizar o ataque. Isto, pode ser repetido quantas vezes for necessário para ir roubando recursos dos jogadores. Quanto mais se ataca, mais recursos o jogador tem para desenvolver sua vila.
Esta é uma tarefa repetitiva e dispende muito tempo do jogador, por isso, se objetiva a criação de um robô para a automatização desta tarefa para maximizar o desenvolvimento no jogo. O primeiro passo com este trabalho é o reconhecimento dos objetos de quarteis construções usadas para o treinamento de tropas, usadas no ataque a outros jogadores.
1 htttp://www.supercell.com 2 https://thinkgaming.com/appsalesdata/1/clashofclans/
-
Como os objetos em um jogo, são sempre da mesma forma e tamanho, se utilizou a técnica de janela deslizante para analisar toda a imagem, tendo cada parte da imagem analisada por uma rede neural artificial (RNA) com 4.800 neurônios de entrada e 2 neurônios de saída.
O artigo será estruturado em 5 seções. A seção 2 apresenta os objetos do jogo que devem ser reconhecidos. A seção 3 introduz a técnica de redes neurais artificias. As técnicas utilizadas para a geração da base de conhecimento e os desafios enfrentados no desenvolvimento são apresentados na seção 4, enquanto a seção 5 apresenta as conclusões.
2. Objetos do Jogo
Para se realizar um ataque no jogo, obrigatoriamente você precisa ter tropas treinadas para o ataque. As construções usadas para o treinamento de tropas é o quartel e o quartel negro.
2.1 Vila
Todo jogador possui uma vila, na qual ele deve construir defesas para impedir que outros jogadores o ataquem e também treinar suas tropas para atacar outros jogadores. A figura 1 mostra a vila de um jogador.
Figura 1. Vila de um jogador
Fonte: (AUTOR, 2015)
-
2.2 Quartel & Quartel Negro
Para se realizar um ataque no jogo, é necessário o treinamento de tropas. Essa tropa pode ser treinada a partir de dois diferentes recursos: elixir ou elixir negro. As tropas com elixir são treinadas no quartel e as tropas com elixir negro são treinadas no quartel negro. Esses quarteis possuem diferentes níveis, sendo que a cada nível habilitase novos personagens para treinamento. Por exemplo: um quartel no nível 1 pode treinar apenas Barbários, enquanto o quartel no nível 2 pode treinar também Arqueiras, assim por diante. A figura 2 mostra as tropas que podem ser treinadas no quartel e a figura 3 mostra as tropas que podem ser treinadas no quartel negro.
Figura 2. Tropas que podem ser treinadas no quartel
Fonte: (AUTOR, 2015)
Figura 3. Tropas que podem ser treinadas no quartel negro
Fonte: (AUTOR, 2015)
A cada novo nível de evolução dos quarteis assim como de todas as construções do jogo
têm a imagem que os representa no jogo modificada. A figura 4 mostra as imagens de todos os níveis que um quartel pode ter no jogo, e, a figura 5 mostra as imagens de todos os níveis que um quartel negro pode ter no jogo.
-
Figura 4. Imagens que representam um quartel no jogo
Fonte: http://clashofclans.wikia.com/wiki/Barracks
Figura 5. Imagens que representam um quartel negro no jogo
Fonte: http://clashofclans.wikia.com/wiki/Dark_Barracks
3. Redes Neurais Artificias
Segundo (NIEVOLA, 2004), uma rede neural artificial (RNA) é um paradigma computacional que se baseia no funcionamento de uma rede neural biológica do cerébro humano. Este paradigma foi criado com o intuito de fazer o computador processar informações de modo análogo ao cérebro humano.
A RNA utilizada neste trabalho é do tipo MLP Multi Layer Perceptron, proposta por (HOFFMANN, 1993). A criação de camadas intermediárias na rede proporcionou ao algoritmo um maior poder computacional sendo possível ser treinado para qualquer tipo de problema.
Esta topologia de rede MLP é de aprendizagem supervisionada, ou seja, é realizada a partir de um conjunto de dados de entrada que tem um conjunto de saídas conhecidas. A partir destes dados, o algoritmo pode aprender e criar ummodelo para aprender um padrão nestes dados. Neste trabalho será
-
analisado um conjunto com dois valores discretos (se é quartel ou se é quartel negro), portanto é um problema de classificação. 4. Desenvolvimento
Clash of Clans é um jogo para plataformas de dispositivos móveis, portanto para interagirmos
com o jogo em um computador, é necessário o uso de um emulador, para este trabalho se utilizou o emulador Bluestacks ajustado para a resolução de 800x600. Deste modo, as imagens analisadas terão 3
sempre o mesmo tamanho. 4.1 Janelas Deslizantes
Como os objetos que serão reconhecidos, estão dentro do ambiente de um jogo e possuem sempre a mesma representação não estão em ângulos diferentes, nem possuem deformações, se escolheu trabalhar com a técnica de janelas deslizantes.
Nesta técnica, se define um tamanho padrão de janela e também uma medida para realizar passos ao lado e para baixo. Começase a analisar a imagem na posição (0,0) e “recortase” a imagem em pedaços, conforme um tamanho préestabelecido e caminhando para os lados conforme a largura definida, ao se atingir o fim de uma linha, retorna para a primeira coluna e desce a altura conforme a largura de passo e recorta esta linha, este processo é refeito até percorrer toda a imagem. Neste trabalho, usouse o tamanho da janela de 40px de largura e 40px de altura, pois ao analisar a imagem do jogo se percebeu que com este tamanho de janela é possível enquadrar os objetos a serem reconhecidos. Foi utilizado como altura e largura de passo de 5px para a geração de imagens para o dataset (conforme explicação na seção 4.3) para gerar maior quantidade de imagens para o treinamento da rede e altura e largura de passo de 10px para o reconhecimento dos padrões (conforme explicado na seção 4.4). A figura 6 mostra algumas das imagens geradas através desta técnica.
Figura 6. Imagens geradas através do método de janela deslizante
3 http://www.bluestacks.com/
-
Fonte: (AUTOR, 2015)
4.2 RGB
As imagens que foram utilizadas para o treinamento são coloridas. As cores em dispositivos eletrônicos, como computadores e monitores, são geradas a partir do sistema de produção de cores RGB. Este sistema tem este nome devido as três cores usadas como base: R(vermelho), G(verde), B (azul). Qualquer cor exibida pode ser representada através destas três cores. Cada cor tem uma representação númerica entre 0 e 255 (8bit). Por exemplo, a cor laranja é composta por: R(Vermelho): 255, G(Verde): 204, B(Azul): 51. E, pode ser representada também pelo hexadecimal #FFCC33. 4.3 PréProcessamento das Imagens
Como o aprendizado da RNA deste trabalho é supervisionado. É necessário indicar para o
treinamento da rede quais imagens devem ser reconhecidas e quais não devem ser reconhecidas. Por isso, foram geradas diferentes imagens, nas quais os objetos aparecem em diferentes posições (conforme o corte), mas sempre ocupando a maior parte da imagem e sem a presença de outro objetos). Na figura 7 são mostradas imagens para o reconhecimento do padrão de um quartel, notase que as imagens são parecidas, porém nunca exatamente iguais. Isto permite criar um conjunto de dados diversificado capaz de reconhecer com mais exatidão diferentes imagens na validação.
Figura 7. Parte de imagens do conjunto de dados para reconhecer o padrão “quartel”
-
Fonte: (AUTOR, 2015)
4.3.1 Geração de Padrões de Reconhecimento
Para este trabalho foram capturadas milhares de imagens de vilas de diferentes jogadores para fazer a captura de padrões para o conjunto de treinamento da RNA. Para a seleção destes padrões, criouse um algoritmo que se utiliza da forçabruta para reconhecer um padrão dentro de um pedaço da imagem. Se utilizou a técnica de janela deslizante para percorrer toda imagem, e, em cada pedaço era testado se esta imagem continha o padrão prédeterminado. Este padrão, era uma parte da construção, conforme figura 8, que diferenciava ela das demais.
Figura 8. Padrões que foram buscados em cada imagem para gerar o conjunto de treinamento
Fonte: (AUTOR, 2015)
Uma imagem de vila de jogador com uma janela deslizante de 40x40 com uma altura e
largura de passo de 5px, considerando a imagem de 800x600, gerou 17.024 imagens.Em cada uma dessas imagens foi feita a busca por forçabruta (pixelapixel) comparando com o padrão.
A figura 9 mostra o padrão de reconhecimento quartel nível, esta imagem tem um tamanho de 25x17. E as imagens da janela possuem um tamanho de 40x40. Para se encontrar este padrão na imagem por forçabruta foi também usado a técnica de janela deslizante. Com o tamanho da janela igual ao padrão, neste caso, 25x17 e o passo a cada 1px. Dessa forma, toda a imagem é percorrida.
Figura 9. Padrão para o reconhecimento do quartel nível 10 por força bruta
Fonte: (AUTOR, 2015)
-
A cada passo da janela, é comparado a imagem da janela atual com o padrões (pixelapixel), caso a parte da imagem tenha todos os pixels iguais ao padrão é reconhecido e copiado para uma pasta do conjunto de treinamento.
Percebeuse durante os testes que, devido a iluminação do jogo e sombras, o mesmo objeto em diferentes vilas, apesar de visualmente serem iguais, não possuem exatamente o mesmo RGB, podendo variar um pouco a tonalidade. Por isso, neste algoritmo de forçabruta adicionou uma taxa de tolerância de 30% para mais ou para menos para a tonalidade da cor, ou seja, para um tom de verde que tenha cor #93AF2F com RGB (147, 175, 47) serão aceitas qualquer cor dentro do range ([102191], [122227],[3361]).
Também, devido à estes efeitos visuais, pode se ter uma leve deformação no formato do objeto, ao analisar a imagem pixelapixel, por isso, adicionouse também uma tolerância de 50% de pixels errados. Então, para o padrão apresentado acima de 25x17 (com 425 pixels) deve ter apenas 212 pixels com a mesma tonalidade (dentro do range de tolerância).
Apesar da alta tolerância a erros na busca por forçabruta, este algoritmo proporcionou a captura de diferentes imagens para serem utilizadas no treinamento. Este algoritmo leva em torno de 30 minutos para processar cada imagem de 800x600 para reconhecer os oito padrões prédeterminados (em média 3 minutos e meio para processamento de cada padrão, além do tempo de geração das imagens da janela deslizante). Figura 10. Imagens de padrões reconhecidos e nãoreconhecidos através do algoritmo de forçabruta
Fonte: (AUTOR, 2015)
Foram analisadas 176 vilas diferentes, em 90 horas de processamento, o que proporcionou
mais de 1.800 imagens de quartéis negros e mais de 7.500 imagens de quartéis, além de 2.900.000 imagens com padrões para ensinar a RNA o que não deve ser reconhecido.
No entanto, no decorrer dos testes houve problemas de performance no NeurophStudio ,e, verificouse que não seria possível usar todas as imagens geradas para o treinamento. Foram selecionadas 1.524 imagens para representar a classificação de um quartel negro e 869 imagens para representar a classificação de um quartel foram usadas menos imagens para o padrão de quartel, pois tem menos padrões diferentes, visto que os quartel nível 6,7 e 8 são semelhantes e não foram reconhecidos quartéis abaixo do nível 5. 4.3.2 Geração de Padrões de NãoReconhecimento
Em uma rede neural artificial, pode acontecer casos de “falsopositivo”, em que uma entrada que deveria ser reconhecida como falsa é reconhecida como positiva. Para evitar isto, devese treinar a rede não somente para as imagens que serão reconhecidas, mas, também, para as imagens que não serão reconhecidas.
-
A idéia inicial era utilizar todas as imagens, nas quais não foram encontradas o padrão por forçabruta para este treinamento. Porém, houve problemas de performance na ferramenta de criação da RNA, por isso, se decidiu, reduzir este conjunto de treinamento. Para tentar cobrir a maior diversidade possível de objetos usamos imagens de todas as 176 vilas analisadas escolheuse gerar aleatoriamente seis imagens com tamanho 40x40 de cada uma das 176 imagens analisadas. Totalizando 1.056 imagens, manualmente, removemos as imagens escolhidas que correspondiam a um padrão de treinamento, restando 1.020 imagens.
Figura 11. Exemplos de imagens que não devem ser reconhecidas pela RNA
Fonte: (AUTOR, 2015)
4.4 Treinamento da Rede
Para o treinamento da RNA, se utilizou a ferramenta NeurophStudio , que é uma ferramenta 4
desenvolvida em Java, oriunda de um trabalho de graduação da faculdade de Belgrado na Sérvia, para a criação e treinamento de diferentes topologias de redes neurais artificiais. Esta ferramenta foi escolhida, pois possui um suporte visual à criação de RNAs para o reconhecimento de imagens.
A RNA do tipo MLP Multi Layer Perceptron,possui 4.800 neurônios de entrada, já que as imagens usadas para o treinamento da rede têm largura de 40px e altura de 40px. São compostas por 1.600 pixels. Cada pixel possui uma cor representada pelo RGB. Portanto, são necessários 4.800 neurônios (8bit) de entrada, o que representa 38.400 bits de entrada para cada imagem usada no treinamento. E dois neurônios de saída, um para indicar se a imagem corresponde ao padrão quartel e o outro para indicar o padrão quartel negro. Caso, os dois neurônios tenham probabilidade menor de 0,8 é considerado que a imagem não possui nenhum destes padrões. A figura 12 mostra esta topologia na ferramenta NeurophStudio.
Figura 12. Topologia da Rede Neural MLP no NeurophStudio
4 http://neuroph.sourceforge.net/
-
Fonte: (AUTOR, 2015)
O conjunto de treinamento foi composto de 1.524 imagens que representam o label “qn”, 869
imagens que representam o label “quartel” e 1.020 imagens que representam o que não deve ser reconhecido.
A RNA foi treinada com 12 neurônios na camada intermediária e a função de transferência Sigmoid. Foi definido como taxa de erro MSE (Mean Square Error) de 0,01 (1%) e taxa de aprendizagem de 0,2 com o algoritmo de Backpropagation.Após 155 iterações, e, aproximadamente 1h20 de processamento em um computador Intel(R) Core(™) i52410M 2.3 GHz com 8GB de RAM, convergiu para uma solução que atende ao problema proposto, conforme demostra o gráfico da figura 13.
Figura 13. Gráfico de aprendizado
Fonte: (AUTOR, 2015)
-
5 Resultados
Esta RNA foi testada em uma imagem de vila, que não foi usada no treinamento da rede, nesta imagem foram capturadas 3.887 imagens com o tamanho de 40x40, destas 219 foram reconhecidas erradamente como positivas, enquanto deveriam ser falsas, 26 imagens foram reconhecidos corretamente como quartel ou quartel negro, e, 3.642 imagens foram reconhecidas corretamente como não correspondentes ao padrão. Isto, representa uma taxa de erro de 5,6%.
Esta taxa de erro não é um problema para o objetivo proposto neste trabalho, já que o objetivo é encontrar os quarteis, e, nos testes realizados, as imagens dos quarteis ou dos quarteis negros são reconhecidos em 100% dos casos, estes exemplos reconhecidos erroneamente não prejudicam a execução do robô.
Se acredita que é possível diminuir esta taxa de erro, ao retreinar a RNA usando as imagens que foram reconhecidas erroneamente como entrada no conjunto de treinamento de padrões que não devem ser reconhecidos.
6. Conclusão A partir do reconhecimento desenvolvido neste trabalho, é possível iniciar a criação de um
robô para a automatização da tarefa de treinar tropas no jogo, e, posteriormente treinar a rede para reconhecer outros objetos e desempenhar diferentes funções no jogo.
Foi possível demonstrar que é possível reconhecer objetos em jogos digitais. As técnicas aplicadas para o reconhecido de objetos no jogo Clash of Clans também podem ser utilizadas também para outros jogos ou outras aplicações que envolvam o reconhecimento de objetos em imagens.
7. Referências HOFFMANN, N., Kleines Handbuch Neuronale Netze Anwendungsorientierrtes Wissen zum Lernen und Nachschlagen, Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, 1993. NIEVOLA, Julio Cesar. Redes Neurais Artificiais. In: Sociedade Brasileira de Computação. (Org.) Inteligência Artificial. 1ed. Porto Alegre: Editora da Sociedade Brasileira de Computação ESBC, 2004, v.1, p. 150.