aplicação de uma rede neural artificial para reconhecimento de objetos … · 2015. 11. 3. ·...

11
Aplicação de uma Rede Neural Artificial para Reconhecimento de Objetos em Jogo Bruno Pick¹, Rafael Viana¹ 1 Departamento 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/

Upload: others

Post on 01-Feb-2021

0 views

Category:

Documents


0 download

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.