ENCOSIS 2019
ANAIS
VIII Encontro Regional de Computação e Sistemas de Informação Artigos completos
Manaus, Amazonas, Brasil.
ISSN 2238-5096 Coordenação Geral Isabel Cristina Souza Dinóla
Coordenação do Comitê Científico
Paulino Wagner Palheta Viana
Marcela Sávia Picanço Pessoa Rainer Xavier de Amorim
Revisores Alexandre Lopes Martiniano
Luiz Cuevas Rodriguez
Alexandre Passito de Queiroz
Marcela Sávia Picanço Pessoa
Almir de Oliveira Costa Júnior
Mario Sergio Scaramuzzini Torres
Andréa Corrêa Flôres Albuquerque
Neila Batista Xavier
Audilene Christina Farias dos Santos
Odette Mestrinho Passos
Carlos Maurício Seródio Figueiredo
Omar Latorre Vilca
Celson Pantoja Lima
Paulino Wagner Palheta Viana
Christophe Saint- Christie de Lima Xavier
Raimunda da Silva Barreto
Daniela de Oliveira Costa Davi Viana dos Santos Dhanielly Paulina Rodrigues de Lima Eder Martins Franco Edgard Luciano Oliveira da Silva Elloá Barreto Guedes da Costa Emmerson Santa Rita da Silva Fábio Santos da Silva Joizer Santos Junior Jucimar Maia da Silva Junior Leandro José da Silva Andrade
Ramina Samoa Silva Camargo Raoni Lourenço Renata da Encarnação Onety Simone Gama Sérgio Cleger Tamayo Vandermi João da Silva Vitor Bremgartner da Frota Walter Takashi William Roberto Malvezzi Williamson Alison Freitas da Silva Éfren Lopez de Souza
Índice Aplicação da Teoria Fuzzy no Cálculo de Risco de Ataque Cardíaco ...............................................1 Emilly Magalhães do Vale, Sergio Cleger Tamayo
ABC da Dislexia: Projeto de um software educacional para crianças disléxicas ...........................11 Mayana Fernandes Veras, Alberson Ferreira Barbosa, Karla Mazarelo Maciel Pacheco
Protótipo em Ionic para preparação das imagens de mudas de guaraná com a finalidade de identificar cultivares ...................................................................................................................21 Brenda Talyne Costa Martins, Marcos Filipe Alves Salame
Comparação da Performance de Arquiteturas de Redes Neurais Profundas para Monitoramento Doméstico por Áudio .................................................................................................................. 25 Manoel V. F. Souza, Carlos M. S. Figueiredo
Estudo Comparativo para Definir um Modelo de Machine Learning para Previsão de Vendas Diárias no Varejo .........................................................................................................................35 David S. Camurça, Elizamary N. Souza
VOZZE: Aplicativo para Desenvolvimento de Crianças com Transtorno do Espectro Autista e/ou Dificuldades na Comunicação .....................................................................................................44 James Freitas, Fernanda Pires, Marcela Pessoa
Viés em Aprendizagem de Máquina: como a inteligência Artificial pode prejudicar as minorias ......................................................................................................................................54 Jéssica Luana Oliveira de Lima, Marcela Pessoa, Sergio Cleger
Uma Análise Comparativa de Funções de Utilidade para o Algoritmo Minimax Aplicado ao Jogo da Onça .......................................................................................................................................64 Felipe G. L. do Nascimento, Elloá B. Guedes
Reconhecimento de folíolos do guaranazeiro atacados pelo tripes por meio de imagens digitais ........................................................................................................................................74 Richardson Allan F. de Souza, Marcos Filipe Alves Salame
Preparando dados LiDAR para classificação automática de altura de árvores na Floresta Amazônica ..................................................................................................................................78 Levi Delmiro de Souza Bessa, Marcela Pessoa, Sergio Cleger, Carlos Henrique Souza Celes, Niro Higuchi, Rosiane de Freitas
O uso das Redes Sociais no Comércio Eletrônico .........................................................................89 Joseane Batalha Pinto, Elizabeth Selly Castro Rabelo
Internet das coisas: ESP32 uma alternativa ao Arduíno .............................................................100 Orley do Amaral Ferreira, Mário Angel Praia Garcia
Detecção de Arcus Senillis em Imagens Oculares por meio de um Modelo de Classificação Baseado em Aprendizado Profundo ..........................................................................................111 Jailson Pereira Januário, Raí Santos da Soledade, Lucas Reis Pereira, Fabio Santos de Silva
Desenvolvimento de um Sistema de Recomendação de Candidatos a Cargos Públicos Utilizando Técnicas de Aprendizagem de Máquina e Filtragem de Informação .........................................121 Lucas Pereira Reis, Jailson Pereira Januário, Fábio Santos da Silva
Desenvolvedores multidisciplinares: um estudo de caso sobre o novo perfil profissional do mercado de tecnologia da informação ......................................................................................125 Mychelle Silva da Rocha, Mayana Fernandes Veras, Isadora Santarém Queiroz
Controle de Acesso a Múltiplos Ambientes com Internet das Coisas .........................................129 Letícia da Silva Mota, Elloá B. Guedes
Aplicativo JustShare: uma estante virtual para auxiliar usuários de recursos audiovisuais .......139 Marilice Andrade de Lima, Paulino Wagner Palheta Viana
Utilização do Zabbix como Ferramenta de Monitoramento e Gerenciamento de Servidores RISC –IBM i ........................................................................................................................................150 José Higson Santos, Marcela Pessoa
Utilizando o Ambiente PentestBox para a Realização de Testes de Segurança com base na Metodologia OWASP Mobile ....................................................................................................160 Anne Graziely Vieira da Silva, Dhanielly Paulina R. de Lima
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Aplicação da Teoria Fuzzy no Cálculo de Risco de Ataque Cardíaco Emilly Magalhães do Vale , Sergio Cleger Tamayo 1
1
1
Instituto de Ensino Superior Fucapi (CESF) 69075-351 – Manaus – AM – Brasil 2
Instituto de Ciência e Tecnologia (SIDIA) 69030-060 - Manaus – AM – Brasil emilly.v@sidia.com, s.tamayo@sidia.com
Abstract. This work presents a tool based on the fuzzy theory for calculating risk that a person may have suffered a heart attack. This tool allows a person who has never suffered from heart problems and who is not predisposed to hereditary and / or gender factors to have a sense of how prone to a heart attack. The idea of this tool is to take the patient to a broader notion of the risk that may be taking into account the following mutable health-related factors: cholesterol level, blood pressure and blood sugar level, and beyond that, the age of the patient. The calculation is modeled using parameters and rules selected through the knowledge of health professionals and specialist professor in fuzzy theory. Key words: tool, heart attack, health. Resumo. Este trabalho apresenta um modelo baseado na teoria fuzzy para o cálculo de risco que uma pessoa possa vir a sofrer um ataque cardíaco. Esta ferramenta permite que uma pessoa que nunca sofreu de problemas cardíacos e que não tenha predisposição por fatores hereditários e/ou de gênero possa ter uma noção do quão propenso está a sofrer um ataque cardíaco. A ideia deste modelo é levar o paciente até uma noção mais abrangente do risco que pode estar correndo levando consideração os seguintes fatores mutáveis relacionados à saúde: nível de colesterol, pressão arterial e nível de açúcar no sangue, e além desses, a idade do paciente. O cálculo é modelado utilizando parâmetros e regras selecionadas por meio do conhecimento de profissionais da área da saúde e professor especialista em teoria fuzzy. Palavras-chave: ferramenta, ataque cardíaco, saúde.
1. Introdução O uso da tecnologia na medicina vem aumentando e ganhando espaço e tem transformado os cuidados com a saúde e a forma como profissionais da área da saúde se relacionam com os pacientes. O Ataque Cardíaco ou Infarto Agudo do Miocárdio (IAM) acontece quando alguma artéria coronária está parcial ou totalmente obstruída, causando a necrose dos cardiomiócitos irrigados por aquela artéria. A obstrução parcial causa a angina, que é estreitamento das artérias que conduzem o sangue ao coração. Na angina a quantidade de sangue que chega às células pode ser reduzida temporariamente, gerando dor e pressão no peito que pode se espalhar para o ombro e braço esquerdo. Quando ocorre a obstrução total, o suprimento sanguíneo é interrompido bruscamente, causando a necrose dos cardiomiócitos. O infarto é fatal dependendo do tamanho da necrose, caso seja extensa o coração não conseguirá mais se contrair. Estima-se que cerca de 300 mil brasileiros sofrem ataques cardíacos por ano (IBGE, 2017), e cerca de 30% dos casos são fatais.
1
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Em todo o mundo, cerca de 17,5 milhões de pessoas morrem vítimas de doenças cardiovasculares, a cada ano, segundo a Organização Mundial da Saúde (OMS). (Agência Brasil, 2017). De acordo com a Organização Pan-Americana de Saúde (Opas), as doenças cardiovasculares são a principal causa de morte no mundo. O estado do Amazonas teve crescimento de 26% nos casos de infartos em 2017. Segundo o Ministério da Saúde, cerca de 1.468 pacientes foram diagnosticados e internados nas unidades públicas de saúde do Estado. Desse total, 10% dos infartos levaram o paciente a óbito. Segundo o presidente da Sociedade Brasileira de Cardiologia (SBC), Marcus Bolivar Malachias, a metade de mortes por doenças cardiovasculares poderia ser evitada ou postergada por muitos anos com prevenção e cuidado. (Agência Brasil, 2017) A principal causa de obstrução arterial é a aterosclerose, que é a formação de placas de gordura nas paredes das artérias e outros vasos. O colesterol ruim (LDL) consegue atravessar as paredes dos vasos, gerando uma inflamação no local. O processo inflamatório cria uma placa fibrosa que vai aumentando, primeiro obstruindo parcialmente o vaso e depois completamente. Essas placas vão se acumulando naturalmente ao longo da vida, mas dependendo da sua alimentação e hábitos diários podem aumentar rapidamente. (Diário de Biologia, 2014) Com o colesterol LDL é o causador da inflamação das paredes dos vasos, é ideal que sua concentração sanguínea seja a mais baixa possível. O colesterol HDL, “o bom colesterol”, é quem impede a entrada do LDL na parede do vaso e por isso sua concentração deve ser maior. A maneira mais eficaz de aumentar a concentração do HDL é praticando atividades físicas, além de manter uma alimentação saudável. É preciso estar atento aos primeiros sintomas e realizar exames regularmente. Alguns indicadores são falta de ar, cansaço após esforço físico, dor e queimação no peito, além de formigamento no braço esquerdo. (Diário de Biologia, 2014) Para evitar ou minimizar as chances de se desenvolver problemas cardíacos e manter o coração saudável, deve-se tomar cuidados básicos como: manter uma dieta saudável, praticar exercícios e evitar outros hábitos que sejam nocivos para a saúde. Além de todos esses cuidados existem vários exames para determinar se você tem algum problema cardíaco (VARELLA, 2018). O Eletrocardiograma (ECG) pode ser parte de uma rotina ou pode ser utilizado para determinar a causa dos sintomas e determinar se estão relacionados ao coração. Este exame avalia a atividade elétrica do coração através de alguns eletrodos que são conectados com uma fita no peito, braços e pernas do paciente. Estes fios são conectados a uma máquina que interpreta essa atividade e a representa graficamente. Outro exame também solicitado pelos cardiologistas é o ecocardiógrafa ou “eco”, que é um ultrassom do coração, onde se é utilizado ondas sonoras e a partir delas se cria uma imagem do movimento do coração (VARELLA, 2018) Levando em consideração todas as possíveis causas que podem resultar em um ataque cardíaco e que muitas delas são mais complexas de serem mensuradas no modelo da lógica binária (sim ou não) observou-se a necessidade de uma aplicação que fosse possível expressar de maneira mais simples os riscos que essa pessoa possa vir a sofrer um ataque cardíaco. Os fundamentos desta teoria têm origem nos conjuntos nebulosos (fuzzy sets), que permitem a manipulação de valores não precisos, expressões verbais abstratas (alto, baixo, perto, longe, etc). Este trabalho apresentará um modelo baseado na teoria fuzzy para facilitar a compreensão do grau de risco de uma pessoa que não apresente um histórico familiar de 2
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
problemas cardíacos e/ou nunca tenha apresentado nenhum sintoma consiga uma noção mais abrangente se tem alguma chance de sofrer um ataque cardíaco ou não.
2. Aplicação da Teoria Fuzzy na área da saúde A teoria fuzzy tem sido utilizada no desenvolvimento de projeto de sistemas baseados em informações qualitativas em ciências da saúde. Tem sido aproveitada também para descrever sistemas inteligentes e na modelagem de indicadores, análises de risco, sistemas de decisão, estudos diagnósticos, etiológicos prognósticos e condutas terapêuticas. Um exemplo de aplicação é o modelo usado para estimar o número de internações por asma e pneumonia sob efeitos de poluição do ar. O objetivo desse é prever o número de internações por estas patologias associadas à exposição as poluentes do ar no município em São José dos Campos, estado de São Paulo. Esse modelo computacional utiliza a lógica fuzzy baseado na técnica de inferência de Mamdani. Para a fuzzificação das variáveis de entrada material particulado, ozônio, dióxido de enxofre e temperatura aparente foram consideradas duas funções de pertinência para cada variável com abordagem linguísticas: bom e ruim. Para a variável de saída denominada: número internações por asma e pneumonia, foram consideradas cinco funções de pertinências: muito baixo, baixo, médio, alto e muito alto (CHAVES, 2017). Outro modelo desenvolvido por professores do Instituto Federal do Goiás (IFG), que tem como objetivo a identificação de risco de saúde da gestante utilizando lógica fuzzy. O propósito deste modelo é auxiliar os processos decisórios e subsidiar a identificação de problemas. A validação do grau de risco foi feita a partir de análise estatística de sua relação com outras variáveis, que apresentam relação com o risco de saúde gestante (JUNIOR, 2016). Esses são alguns exemplos de aplicação da lógica fuzzy na área da saúde que exemplificam a grande capacidade de lidar com a complexidade de problemas que necessitam ser solucionados, inclusive na área da saúde. JENSEN (2011) “A lógica fuzzy nos traz também a possibilidade de trabalharmos com grau de pertinência, que nos permite reinterpretar antigos conceitos. Os conceitos de saúde e doença, por exemplo, são entendidos como opostos, onde a doença é a ausência de saúde e vice-versa. Assim, a existência de saúde e doença, no mesmo indivíduo, se torna contraditória na lógica booleana. Na lógica fuzzy, esses conceitos são complementares. Mais que uma visão filosófica de conceitos, a lógica fuzzy tem sido aplicada em diversas áreas da ciência e no desenvolvimento de vários tipos de sistemas computacionais, controladores de meios de transporte, produtos de consumo, como eletrodomésticos, entre outros. Programas de inteligência artificial e apoio à decisão tornaram-se fortes áreas de uso da lógica fuzzy”.
3. Modelo Fuzzy A teoria fuzzy possui uma grande capacidade de assemelhar-se ao pensamento humano em relação a informações imprecisas na tomada de decisões, possui características que se diferem da lógica clássica (sim ou não) e isso permite a modelagem de sistemas complexos com melhor compreensão do problema que o sistema visa solucionar.
3
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Para o desenvolvimento deste artigo foi utilizando o pacote Fuzzy Logical Toolbox 2.1 do programa Matlab (Matrix Laboratory) 6.1 (The MathWorks, Inc.), que disponibiliza arquivos e funções destinados a algumas aplicações da teoria de conjuntos Fuzzy. Este pacote permite particularmente o desenvolvimento de modelos linguísticos baseados em lógica fuzzy, oferecendo duas alternativas de métodos de inferência, Sugeno e Mamdani, neste artigo foi utilizado o modelo Mamdani. Um conjunto fuzzy A pode ser expresso por (TSOUKALAS; UHRIG, 1997 apud FUJIMOTO, 2005) no qual x é o universo de discurso ao qual o conjunto pertence, x um componente do conjunto fuzzy, e µA a função de pertinência. O universo de discurso indica o domínio em que o modelamento do sistema fuzzy é válido. A função de pertinência µA indica o grau de pertinência (ou compatibilidade) entre x e o conceito expresso por A (SANDRI, CORREA; 1999): µA (x) = 1 indica que x é completamente compatível com A; µA (x) = 0 indica que x é completamente incompatível com A; e 0 < µA (x) < 1 indica que (x) é parcialmente compatível com A, com grau µA (x).
Figura 1 - Diagrama de processo de inferência fuzzy. Fonte: Próprio autor
Na figura 1, observa-se um diagrama do processo de inferência fuzzy, dividido em três etapas: fuzzificação, regras e inferência e defuzzificação. A fuzzificação é a fase em que as entradas determinísticas são apresentadas ao sistema através de observações de conceitos. Esses conceitos são considerados conjuntos de dados de entrada do sistema. As regras são elementos da base de conhecimento e definem a estratégia de controle do sistema. Neste caso, conta-se com auxílio de alguns profissionais da área da saúde que forneceram os dados, com base em seus conhecimentos a respeito dos parâmetros que definem cada estado das variáveis utilizadas na modelagem deste sistema, como pode ser observado na tabela abaixo.
4
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 1 - Valores usados para calcular o grau de pertinência - Fonte: Próprio autor
As variáveis Colesterol, Glicemia (nível de açúcar no sangue) e Pressão Arterial variam entre três conjuntos: baixo, ideal e alta. A variável idade varia entre quatro conjuntos: criança, jovem, adulto e idoso. Os valores descritos na tabela acima possuem grau de pertinência um aos conjuntos os quais elas pertencem. Após isso, tem-se a inferência, que é o processo no qual ocorre as operações com os conjuntos fuzzy. É mais comum o emprego de métodos automáticos para a geração de regras, no entanto, para este caso empregou-se a imputação de regras de forma manual, pois há casos em que as variáveis são particulares e não são totalmente previsíveis. O sistema fuzzy mostra a inferência do sistema, na qual o paciente fornece informações relacionadas à sua saúde: nível de colesterol, pressão arterial, nível de açúcar no sangue e sua idade, a partir desses dados o sistema fuzzy informa o quão propenso esse paciente está para sofrer um ataque cardíaco. Por último, tem-se o processo de defuzzificação que, de posse do conjunto fuzzy de saída adquirido através do processo de inferência, é responsável pela interpretação dessa informação para saídas precisas (dados não fuzzy). Isso se faz necessário, já que em aplicações práticas são requeridos valores não fuzzy. A técnica mais usual para defuzzificação é a do centroide, que utiliza a soma (ou integral) dos valores de pertinência multiplicados pelos valores das variáveis, dividindo esse valor final pela área total do conjunto (fuzzy) a ser defuzzificado (OLIVEIRA JUNIOR et al., 2007).
3.1
Solução proposta para este Modelo Fuzzy
Inicialmente, o modelo fuzzy proposto no presente artigo possui um conjunto de quatro variáveis linguísticas para a entrada, e uma de saída, como já citado anteriormente. Abaixo na figura 2, pode ser observado a representação das variáveis de entrada e saída no MatLab.
Figura 2 - Adição das variáveis no Matlab - Fonte: Próprio autor
5
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Vários fatores baseados na lógica clássica também contribuem para uma pessoa desenvolver problemas cardíacos, por exemplo, o fator hereditário. Pacientes que seus progenitores possuem histórico de infarto do miocárdio dispõem de maiores chances de sofrer um ataque cardíaco do que um paciente que não tem histórico familiar dessa doença. Porém, esse tipo de situação não se enquadra no modelo fuzzy, pois se engloba na lógica clássica, portanto este fator é eliminado da modelagem desse modelo. Após a determinação das funções de pertinência e seus valores referentes a cada uma das variáveis de entrada, são aplicadas regras de inferência que determinam a relação entre as variáveis linguísticas que formam o conjunto de entradas e sua relação com a variável de saída. Essas regras são baseadas na lógica proposicional afirmativa. A inferência, na teoria fuzzy, fornece uma função de pertinência com um resultado. Porém, um elemento de controle não é capaz de interpretar diretamente esse processo de informação fuzzy, então, o resultado do processo de inferência deve ser convertido em um valor crisp (números nítidos). A partir das quatro variáveis de entrada utilizadas para modelagem deste modelo foi definida uma variável de saída que expressa o grau de risco que o paciente tem de sofrer um ataque cardíaco. Abaixo, na figura 3, pode se observar a modelagem da variável Glicemia (nível de açúcar no sangue), contendo os conjuntos: baixa, ideal e alta.
Figura 3 - Modelagem da variável Glicemia. Fonte: do próprio autor
6
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
3.2
ISSN 2238-5096
Análise dos Resultados
O resultado do modelo fuzzy pode ser apresentado como um gráfico de superfície na forma da figura 4. Pode ser observado um gráfico plotado no MatLab representando os resultados deste modelo fuzzy e tem se uma visão mais clara de como funciona o modelo fuzzy proposto neste artigo.
Figura 4 - Surface representativo - Fonte: Próprio autor
A parte em amarelo no gráfico mostra um grau de risco alto, e conforme a cor vai variando para o verde, significa que o grau vai diminuindo. Nas partes onde o gráfico está com uma cor mais nitidamente verde, significa que o grau de risco é médio. As partes azuis do gráfico significam que o grau de risco para aquele paciente com aquela idade e com aquele nível de colesterol é baixo ou nulo. Nele pode se observar que quão maior a idade, o paciente está mais propenso a sofrer um ataque cardíaco, porém, observa se também que mesmo que o paciente seja adulto ou criança, se ele não tem um bom colesterol ele estará sujeito a sofrer um ataque cardíaco com um grau de risco elevado assim como uma paciente de mais idade. Podese considerar como exemplo uma paciente de 12 anos que possui um colesterol 190 mg/d1, que é considerado alto para uma criança desta idade, no gráfico pode ser observado que o seu grau de risco já pode ser considerado médio. No site UCI Machine Learning pode-se encontrar um dataset contendo 76 atributos de pacientes afetados procedentes de Cleveland, Hungria, Suíça e VA Long Beach (UCI, 2010). Para esta analise foi utilizado do dataset apenas os atributos que correspondem as variáveis utilizadas na modelagem do modelo fuzzy resultante deste trabalho.
7
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 2 – Dados coletados do DataSet Heart Disease Data Set e resultados obtidos. Fonte: do próprio autor
A tabela acima é uma amostra de 10 pacientes de um total de 303 contidos no conjunto de dados em questão, onde foi possível obter os resultados mostrados na última coluna e que coincidem nestes casos com a classificação original. Do total de pacientes do dataset, em 245 dos casos o modelo fuzzy classificou corretamente, o que representa um 81% de acerto. Nos casos restantes a variação na classificação correspondeu a um nível, por exemplo, de baixa para média, de média para alta, e de média para baixa, não tendo casos classificados errados de alta para média. Os especialistas consideram os resultados positivos apesar dos 58 casos de inconsistência, nesses casos eles avaliam como casos de alertas e pacientes que podem ser considerados em futuros estudos médicos. Este é um dos exemplos que pode evidenciar como a utilização da lógica fuzzy que com auxílio de profissionais da área da saúde é possível moldar as saídas deste modelo de acordo com as necessidades apresentadas pelos métodos atuais de diagnósticos para cálculo do grau de risco de ataque cardíaco. Esse modelo foi apresentado a profissionais da saúde e o avaliaram como uma boa proposta para alertar e incentivar as pessoas tomarem conhecimento sobre seu possível risco e em caso de um resultado médio ou alto, procurarem o quanto antes o diagnóstico definitivo e iniciarem o tratamento o mais rápido o possível.
4. Conclusão Os aspectos considerados nesta proposta e que foram validados por professionais da saúde, resultam apropriados para a detecção do risco de doenças cardíacas. Sua definição e domínio de conhecimento (funções de pertinência) permite sua utilização com abordagens numéricas e/ou linguísticas. Os resultados obtidos podem ser enriquecidos com a utilização de outras variáveis válidas desde o ponto de vista clínico, dado que a metodologia utilizada garante uma eficiente atualização do modelo final. O modelo resultante pode ser disponibilizado aos usuários ou profissionais da saúde a través de uma ferramenta digital, onde são fornecidos os dados relacionados às variáveis de entrada e é inferido um diagnóstico inicial relacionado ao risco ou não do estado cardíaco. Sempre considerando a ferramenta em um passo de ajuda inicial ou de prevenção. 8
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
5. Referências BRASIL, Governo do (2017). Doenças cardiovasculares são principal causa de morte no mundo. Disponível em:<http://www.brasil.gov.br/noticias/saude/2017/09/doencas -cardiovasculares-sao-principal-causa-de-morte-no-mundo>. Acesso em 13 dezembro 2018. CHAVES, Luciano Eustáquio (2017). Modelo fuzzy para estimar o número de internações por asma e pneumonia sob os efeitos da poluição do ar. Rev. Saúde Pública vol. 51. São Paulo. FUJIMOTO, R. Y (2005). Diagnóstico automático de defeitos em rolamentos baseado em Lógica Fuzzy. 2005. 158 f. Dissertação (Mestrado em Engenharia)-Escola Politécnica, Universidade de São Paulo. São Paulo. JUNIOR, Carlos Roberto da Silveira (2016). Identificação Do Risco De Saúde Da Gestante Utilizando Lógica Fuzzy. XV Congresso Brasileiro de Informática em Saúde 27 a 30 de novembro - Goiânia – Brasil. SAKAMOTO, Yuri Saho (2017). Association between Obstructive Sleep Apnea and Myocardial Infarction: A Systematic Review. Escola Bahiana de Medicina e Saúde Pública. Bahia. SOUTO, Ana Luiza Mansur (2017). Myocardial Viability on Cardiac Magnetic Resonance. Universidade Federal Fluminense. Rio de Janeiro. SOUZA, Jacqueline Danesio (2016). Obesity and its Association with Food Consumption, Diabetes Mellitus, and Acute Myocardial Infarction in the Elderly. Universidade Federal do Goiás. Goiás. THE MATHWORKS(2019). Fuzzy Logic ToolboxTM 2: User's Guide. Disponível em: <http://www.mathworks.com/access/helpdesk/help/pdf_doc/fuzzy/fuzzy.pdf>. Acesso em: 27 de janeiro de 2019. JENSEN, Rodrigo (2011). Enfermagem e lógica fuzzy: uma revisão integrativa. Universidade de São Paulo. São Paulo. DIARIO DE BIOLOGIA (2014). Ataque cardíaco e infarto são a mesma coisa?. Disponível em: < https://diariodebiologia.com/2014/11/ataque-cardiaco-e-infarto-ea-mesma-coisa>. Acesso em 13 dezembro 2018. MINUTO SAUDAVEL(2017). Disponível em: <https://minutosaudavel.com.br/ eletrocardiograma-ecg-o-que-e-para-que-serve-e-como-e-feito-o-exame>. Acesso em 20 Novembro 2018. SANDRI, CORREA, C(1999). Lógica Nebulosa. São José dos Campos: ITA, 1999. Disponível em: <http://www.ele.ita.br/cnrn/minicursos-5ern/log-neb.pdf>. Acesso em: 18 Setembro de 2018. OLIVEIRA JUNIOR, H. A.(2007.). Inteligência Computacional Aplicada à Administração, Economia e Engenharia em Matlab®. São Paulo: Thomson Learning,370 p. 9
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
VARELLA, Drauzio (2018). Exames preventivos para o coração. Disponível em:< https://drauziovarella.uol.com.br/hipertensao/exames-preventivos-para-o-coracaoentrevista/>. Acesso: 12 de Dezembro 2018. UCI.(2010) Heart Disease Data Set. Disponivel em: https://archive.ics.uci.edu/ml/datasets/heart+Disease>. Acesso: Abril de 2019.
<
10
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
ABC da Dislexia: Projeto de um software educacional para crianças disléxicas Mayana Fernandes Veras1, Alberson Ferreira Barbosa2, Karla Mazarelo Maciel Pacheco1 1
Departamento de Design e Expressão Gráfica – Universidade Federal do Amazonas (UFAM) Manaus – AM – Brasil 2
Instituto de Desenvolvimento Tecnológico (INDT) Manaus – AM – Brasil
mayana_vrs@hotmail.com, alberson.barbosa@gmai, karlamazarelo@hotmail.com
Abstract. This paper studies the dyslexia and mental models of individuals with ages ranging from 6 to 8 years. And through the computer human interaction, it realizes a pedagogical intervention when creating the digital product that assists its literacy process.. Resumo. O artigo estuda a dislexia e os modelos mentais de indivíduos com faixa etária de 6 à 8 anos. E por meio das interação humano computador, realiza uma intervenção pedagógica ao criar o produto digital que auxilie o seu processo de alfabetização.
1. Introdução De acordo com o Todos Pela Educação (2019) por meio de sua plataforma online, 55% das crianças de 8 a 9 anos não sabem ler. Não existem dados suficientes para o monitoramento da meta de Educação Especial/Inclusiva, isso é consequência do levantamento de dados realizado pelo Censo Escolar e Censo Demográfico, que adotam critérios significativamente diferentes para a caracterização das deficiências. Nota-se ainda o descaso histórico em relação ao tema visto que o Censo Demográfico não faz nenhuma referência à população com transtornos globais do desenvolvimento e altas habilidades ou superdotação. Ainda assim não significa que a situação não exista, ou que seja insignificante. Dentre os transtornos não datados, pode-se citar o distúrbio da dislexia, temática deste artigo. Em decorrência das limitações impostas por ela, muitos indivíduos não sabem ler ou escrever e não apresentam um bom desempenho escolar. A falta de diagnóstico ou o diagnóstico tardio, fazem com que esses mesmos indivíduos sejam considerados preguiçosos, lentos e até mesmo de baixa intelectualidade durante seu processo de alfabetização. Sofrendo assim, traumas muitas vezes irreparáveis. Existem ainda casos em que tem-se diagnóstico, mas não tem-se um atendimento especializado. Com isso percebe-se deficiências em vários aspectos no sistema educacional infantil, seja privado ou particular, como a falta de material compatível ao processo de ensino e aprendizagem para os indivíduos disléxicos, em particular crianças
11
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
de 6 a 8 anos (nível alfabetização), outro agravante é a insuficiência de professores qualificados e preparados para lecionar à este tipo de público. Por isso questiona-se: o uso de tecnologia seria a melhor solução para auxiliar o processo de alfabetização de tais crianças? Diante desta informação, a motivação dada a este estudo mostra-se centrada em entender como é o processo de aprendizado dos indivíduos que possuem tal distúrbio. Objetivando priorizar as facilidades e dificuldades apresentadas por eles durante tal processo, para assim criar um artefato digital que utilize das metodologia e prática do design de experiência do usuário e de interação, além de métodos pedagógicos ágeis. A fim de melhorar o aprendizado e estimular a busca por conhecimento ultrapassando as limitações da dislexia.
2. Dislexia Faz-se importante a escrita e a leitura no processo de aprendizagem, pois “escrever é pensar. O ato de tentar expressar-se por escrito pode ajudar a esclarecer os próprios pensamentos e fazer aflorar novas ideias.” Ellis e Batista (1995, p. 71). O desenvolvimento de métodos criativos de ensino, dentro e fora das salas de aula, auxiliam as crianças durante o processo de aprendizagem, diminuindo seus medos e traumas a fim de incluí-las no ambiente comum. Medeiros (2012) declara que os primeiros registros de dislexia foram publicados nos anos de 1895, 1896 e 1897 por Hinshelwood, Morgan e Kerr respectivamente, todos médicos ingleses. A publicação mais notável sobre a temática fora do médico Morgan relatada no artigo “Congenital World Blindeness”, sobre a grande dificuldade de aprendizado de leitura de um jovem de 14 anos, mas que era muito inteligente e hábil na área matemática. Somente em 1925 iniciaram estudos mais profundos sobre o tema, por meio do neurologista Samuel T. Orton, que trabalhava na recuperação das vítimas de traumatismo. Na escola, por ser um ambiente multicultural, diverso e complexo ocorrem muitos problemas, dentre eles pode-se citar as dificuldades de aprendizado, em especial a dislexia. Desenvolver materiais ou métodos ágeis de aprendizado para tais indivíduos disléxicos é importante para tornar a educação acessível à todos, importando-se com as limitações individuais, minimizando traumas, facilitando o processo de ensino e por fim auxiliando o pensamento crítico. O design de interação é a base projetual, pois como afirmam Rosa e Moraes (2008, p.12) “O objetivo principal da área de Interação Humano Computador - IHC é o projeto e desenvolvimento de sistemas com o propósito de melhorar a eficácia e proporcionar satisfação ao usuário”. Assim, a tecnologia de informação e comunicação se relaciona com IHC na capacidade de criar um produto digital que auxilie o processo de aprendizado alfabetizacional de crianças disléxicas, em termos funcionais-humanos, que deverá ser utilizado com facilidade e eficácia, fornecendo-lhes o suporte necessário para execução das atividades propostas. É importante ressaltar que a dislexia não é considerada uma doença, pois é um “problema que acomete individualmente a partir de determinações naturais ou emocionais” (MASSI, 2007, p. 18), um problema de caráter funcional que não possui
12
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
ordem ou origem pedagógica. A dislexia é considerada um distúrbio de aprendizagem da escrita e leitura ocasionado por um síncrono de variáveis “patológicas”, pois não existe cura. De acordo com Dislexia Brasil/UFMG (2015) são conhecidos dois tipos de dislexia. A “dislexia do desenvolvimento” ou “dislexia congênita”, que é uma condição que faz parte do indivíduo desde seu nascimento, e a “dislexia adquirida” que ocorre quando o indivíduo perde a habilidade de ler e de escrever decorrente de uma lesão cerebral ou de alguma doença. No Brasil, os últimos dados da Associação Brasileira de Dislexia - ABD (2017) indicam que em média o diagnóstico é realizado na faixa de 10 a 12 anos, sendo que os resultados estão 41% em grau severo, 42% em grau moderado e 17% em grau leve. É importante ressaltar que a atualização desses valores demora a ocorrer porque não é considerada pelo IBGE, a pesquisa deve ser encomendada pela própria ABD.
3. Informática na Educação O Todos Pela Educação (2019) considera que uma criança é alfabetizada quando possui uma boa leitura e escrita, e as utiliza como ferramentas para ter um pensamento crítico em relação ao mundo que está inserida. Ao entender a importância das habilidades de ler e escrever, e o quanto elas representam poder na nossa sociedade, visto que permitem independência e facilitam os desenvolvimentos social e profissional de cada um, aqueles que não conseguem interpretar um texto ou registrar por escrito suas próprias palavras são marginalizados. Sánchez (2004) contextualiza que quanto mais cedo a implementação das práticas psicopedagógicas dentro das salas de aula, maior será a garantia que os alunos com dislexia receberam ajuda de forma preventiva e eficaz. O autor indica alguns procedimentos de intervenção, citados a seguir.
Figura 1. Práticas de Jesus Nicácio para aprendizagem da dislexia
As práticas apresentadas baseiam-se no desenvolvimento de ajudas precisas de chaves externas que com a evolução do desenvolvimento do indivíduo disléxico, são eliminadas progressivamente, assim, transferindo o controle total para o próprio indivíduo que fará uso de vias mentais alternativas. A informática emerge na psicopedagogia como
13
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
uma estratégia e um recurso facilitador da construção do conhecimento pelo disléxico e do seu desenvolvimento pessoal, pois o auxilia a entender suas dificuldades e a compreender suas possibilidades. Os primeiros indícios do uso de computadores para fins comunicacionais e educacionais deram-se nas universidades americanas nos anos 60, tais objetos auxiliavam nas atividades de ensino. Com a evolução tecnológica e a disseminação de microcomputadores nos anos 80, as escolas primárias também passaram a ter acesso. A informática apresenta possibilidades ilimitadas de interação, sendo totalmente democrática visto a sua facilidade em encontrá-la atualmente e a agilidade durante o processo de aprendizado, como afirmam Bonatto, Silva e Lisboa (2013). Desta forma, os computadores por meio de sistemas criados a partir da tecnologia de informação e comunicação, possuem a função de agregadores da qualidade de vida, conduzindo um repensar das atividades e afazeres sociais até chegar à escola. Mais do que uma mudança física, eles podem ser considerados uma mudança conceitual, pois desempenham o papel de mediador de relações sociais.
4. Interação humano computador e experiência do usuário em softwares educacionais Design de interação é o “design de produtos interativos que fornecem suporte às atividades cotidianas das pessoas seja no lar ou no trabalho.” (PREECE; ROGERS; SHARP, 2005, p. 28). Este processo inclui a criação de experiências que pretendem melhorar e ampliar a maneira como as pessoas se comunicam, trabalham e interagem. O design de interação tem como base a identificação das necessidades dos usuários para estabelecer requisitos, o desenvolvimento de designs alternativos que preencham esses requisitos, a construção de versões interativas dos designs, a fim de que possam ser comunicados e analisados e a avaliação do que está sendo construído durante o processo. Dentre as características de um projeto de design de interação elege-se como as três mais importantes o envolvimento de usuários no desenvolvimento do projeto, a usabilidade específica e a documentação das metas decorrentes da experiência do usuário. Todas essas indicações de projetos resultam no sucesso do objetivo do projeto de design de interação que é fazer com que ”os usuários tenham experiências baseadas no conforto e na satisfação“ (ROSA; MORAES, 2008, p. 21) A usabilidade faz parte da IHC, sua definição de acordo com a ISO 9241-11 estabelece que é a qualidade de uso, onde usuários específicos atingem objetivos específicos em determinados ambientes. A usabilidade torna-se um diferencial competitivo no projeto de interfaces gráficas, e para que sejam testadas e avaliadas é necessário utilizar da característica do design de interação e encaixar o usuário durante o processo de criação. A importância desse processo, dá-se porque antigamente os usuários só podiam experimentar a usabilidade do produto final, ao comprarem, e isso acarretava sérios danos, muitas vezes irreversíveis no processo de produção destaca Rosa e Moraes (2008).
14
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
5. Materiais e métodos O método que melhor define essa perspectiva é dedutivo, “que consiste numa construção lógica que, a partir de duas proposições chamadas premissas, retira uma terceira, nelas logicamente implicadas, denominada conclusão“. (GIL, 2008, p. 09) A classificação da pesquisa realizada é quantitativa, que de acordo com Minayo (2001) é uma pesquisa que enfatiza a objetividade na análise de dados por meio da utilização de procedimentos estruturados, e instrumentos neutros formais durante a coleta dos mesmos. O tipo de pesquisa é descritiva, elucidada por Gil (2008) que possui como principal objetivo a descrição das características de determinado fenômeno ou o estabelecimento de associações entre variáveis. Os procedimentos adotados foram consulta, entrevista de profundidade, técnica de divisão de valores, questionário, grupo de discussões. O modelo metodológico deste trabalho é a metodologia de Bürdek (2006), onde o processo de design está como um sistema de manipulação de informações. O modelo apresentado pelo autor é caracterizado por várias possibilidades de feedback que fazem com que o processo do projeto não seja linear. Para este projeto utilizou-se todas as etapas da metodologia escolhida, a seguir a descrição do procedimento adotado em cada uma delas: 1. Compreensão e formulação do problema: realizou-se a definição do problema, a definição da necessidade, a caracterização do sistema, e a definição dos objetivos. 2. Coleta de informações: obteve-se os dados que serviram de base projetual, no caso todo o referencial teórico, além das entrevistas com o público alvo. 3. Análise das informações encontradas: analisou-se os dados coletados, para assim gerar os requisitos e parâmetros que nortearam o resultado final. 4. Desenvolvimento de alternativas: gerou-se alternativas conceitos que nortearam a construção da alternativa final. 6. Teste e experimentação: realizou-se os ajustes que garantiram o bom funcionamento do software.
6. Resultados Foram escolhidos 3 (três) diferentes produtos digitais para análise de similares e criação da alternativa. O primeiro é um dos poucos produtos criado especificamente para o auxílio alfabetizacional do público disléxico (Aramumo), porém sem uma faixa etária definida; o segundo é um produto criado para o auxílio alfabetizacional do público infantil geral (Palma ABC); e o terceiro é um produto desenvolvido para o treinamento cerebral, focado na memória e atenção do público juvenil adulto (Lumosity). As escolhas foram baseadas em pesquisas e sugestões dos indivíduos entrevistados durante este estudo, também se levou em consideração as notas atribuídas aos produtos na loja online Google Play. Para o estudo, segundo os resultados obtidos, o brienfing caracteriza-se pelo público de 6 a 8 anos de idade, que possui dislexia, que estão entre as suas maiores
15
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
dificuldades a leitura, fonema e organização. Como requisitos para o desenvolvimento do software foram delimitados os apresentados no quadro a seguir. Quadro 1. Requisitos e parâmetros para construção do sistema Requisitos de função
Parâmetros
Aspectos qualitativos quantitativos
Deve ser desafiador para
Usar níveis de dificuldade
Ter nível fácil,
o modelo mental das
conforme a criança vai
intermediário e
crianças
respondendo às perguntas
difícil
Requisitos estruturais
Parâmetros
Aspectos qualitativos quantitativos
Usar áreas de leitura
Criar Guidelines
Parâmetros
Aspectos qualitativos quantitativos
Deve ter uma boa diagramação e interface Requisitos formais Deve utilizar entrada de informações que as
Usar tipografia e imagem de fácil cognição
crianças entendam Requisitos de usabilidade
Parâmetros
Deve ensinar de maneira eficiente
Usar pedagógica
Requisitos de semiótica
Parâmetros
Deve estimular a criança durante as práticas de atividades
Usar estímulos para que a criança não pare de tentar
e
e
Ter tipografia “Dyslexia”
Aspectos qualitativos quantitativos metodologia
e
e
Utilizar prática de Jesús-Nicasio Aspectos qualitativos quantitativos
e
Dar feedbacks
Com base em tais requisitos criou-se um software com visual ilustrativo, contendo desenhos vetoriais de traços simples e cores vibrantes, quanto ao conteúdo disponibilizouse as atividades básicas, quanto à leitura, fonema e organização. Para auxiliar as atividades dos usuários, definiu-se o mascote o macaco, por ser um animal diferente do habitual, mas que ainda assim não causa estranheza. por ser considerado um dos mamíferos mais inteligentes, possuindo muitas representações literárias e audiovisuais engraçadas para o público infantil, e bastante comum na região onde o estudo realizouse.
16
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 2. Interface do aplicativo ABC da Dislexia
Quanto a cromografia optou-se por uma paleta de cores de tons alegres que se remetem a vibração infantil, mas que combinassem entre si para que não tirassem o foco das crianças durante a execução da atividade. Pode-se dizer que a cor que mais esteve presente no software foi o verde, devido sua temática ambiental.
Figura 3. Cromografia do aplicativo ABD da Dislexia
A fonte Dyslexia foi criada pelo designer disléxico Christian Boer, sua principal característica é a diferenciação das letras que são comumente confundidas pelos
17
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
disléxicos, como por exemplo “p” e “q” ou “b” e “d”, entre outras. A seguir a família tipográfica.
Figura 4. Tipografia do aplicativo ABD da Dislexia
A validação com os usuários foi realizada no decorrer do projeto de desenvolvimento da alternativa escolhida para que o feedback fosse ágil. Isso permitiu com que os erros fossem corrigidos imediatamente, evitando retrabalhos futuros e garantiu novas sugestões de melhoria ao projeto, assim o usuário não deixou de participar de nenhuma etapa da pesquisa e desenvolvimento.
Figura 5. Validação com usuários do aplicativo ABD da Dislexia
7. Conclusão Ninguém pode aprender pelo outro, pois este é um processo pessoal e natural. Neste sentido as pessoas encontraram nas tecnologias de informação e comunicação oportunidades de auto aprendizado. Entender a importância da educação, e o quanto ela transforma as pessoas é essencial para que possamos valorizar a individualidade humana, e assim democratizar o
18
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
saber, pois como cita Freire (1989, p. 26) “Cada um de nós é um ser no mundo, com o mundo e com os outros.” Neste estudo, por meio do design e das novas tecnologias aliados a pedagogia, foi desenvolvida uma pequena contribuição em relação à esta temática. Respondendo o problema identificado anteriormente, afirmo que um produto digital foi a melhor solução para auxiliar o processo de alfabetização de crianças por ser um produto democrático e acessível, que são características inovativas que se aliam também a outras, como a popularidade, a infinidade de possibilidades referentes à interação e a experiência do usuário. Sendo esta última, a experiência do usuário durante a interação, melhorada por meio de atividades que sigam o modelo mental do público alvo, além de instruções claras, conteúdo apropriado e métodos de incentivo à busca pelo conhecimento. Tudo isto com uma interface limpa, de colorida e elementos geométricos que sugerem atividades amistosas. Conclui-se por fim este artigo compreendendo o dom a dislexia, sabendo mais sobre tecnologia assistiva e design de interação, respondendo a cada problema também alcançou cada objetivo delimitado no início da pesquisa, não estando nenhum abaixo as expectativas.
Referências BONATTO, Francisco Rogerio de Oliveira.; SILVA, Andriele Franco da.; LISBOA, Patricia. Tecnologia nas atividades escolares: perspectivas e desafios. In: LUIZA ELENA L. RIBEIRO DO VALLE; MARIA JOSÉ VIANA MARINHO DE MATTOS; JOSÉ WILSON DA COSTA. Educação digital: a tecnologia a favor da inclusão. 1. ed. Porto Alegre: Penso Editora Ltda, 2013. p. 58 – 74. ISBN 9788565848565. BÜRDEK, Bernhard E.. História, teoria e prática do design de produtos. 1. ed. São Paulo: Edgard Blücher, 2006. ISSN 8521203756. Dislexia Brasil/UFMG. Dislexia Brasil: aprendizagem online. 2015. Acesso em 7 de Abril de 2019. Disponível em: <http://dislexiabrasil.com.br/>. ELLIS, Andrew W..; BATISTA, Dayse. Leitura, escrita e dislexia: uma análise cognitiva. 1. ed. Porto Alegre: Artes Médicas, 1995. ISBN 8573070706. FREIRE, Paulo. A importância do ato de ler: em três artigos que se completam . 23. ed. São Paulo: Autores Associados: Cortez, 1989. (Coleção Polêmicas do Nosso Tempo, v. 4). GIL, Antônio Carlos. Métodos e técnicas de pesquisa social. 6. ed. São Paulo: Atlas S.A., 2008. ISBN 9788522451425. MASSI, Giselle. A dislexia em questão. 1. ed. São Paulo: Plexus Editora, 2007. ISBN 9788585689810. MEDEIROS, Maria Celina Gazola. O que os professores conhecem sobre dislexia e o transtorno do déficit de atenção/hiperatividade. 1. ed. São Paulo: Sesi-SP Editora, 2012. ISBN 9788582050002.
19
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
MINAYO, Maria Cecília de Souza. Pesquisa social. 18. ed. Petrópolis: Vozes, 2001. ISBN 9788532611451. PREECE, Jennifer.; ROGERS, Yvonne.; SHARP, Helen. Design de interação além da interação homem-computador. 1. ed. Porto Alegre: Bookman, 2005. ISBN 9788536304946. ROSA, Jose Guilherme Santa.; MORAES, Anamaria de. Avaliação e projeto no design de interfaces. 1. ed. Teresópolis: 2AB, 2008. ISBN 9788586695469. SÁNCHEZ, Jesús-Nicasio García. Dificuldades de aprendizagem e intervenção psicopedagógica. 1. ed. Porto Alegre: Artmed, 2004. ISBN 9788536300689. Todos Pela Educação. Observatório do PNE. 2019. Acesso em 5 de Abril de 2019. Disponível em: <http://www.observatoriodopne.org.br/>.
20
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Protótipo em Ionic para preparação das imagens de mudas de guaraná com a finalidade de identificar cultivares Brenda Talyne Costa Martins1 , Marcos Filipe Alves Salame2 1
1,2
Bolsista de Iniciação Cientı́fica FAPEAM 2 Analista de Tecnologia da Informação
Núcleo de Tecnologia da Informacão – Embrapa Amazônia Ocidental Caixa Postal 319 – 69.010-970 – Manaus – AM – Brasil brendatalyne@gmail.com, marcos.salame@embrapa.br
Abstract. Through the genetic improvement program, Embrapa Amazônia Ocidental developed guarana cultivars (Paullinia cupana var. Sorbilis), which present high productivity. However, the species present very similar characteristics and difficult identification, mainly in the transport of the seedlings to their definitive location. Based on this scenario, we propose an approach for the identification of cultivars from images. To do this, we created a prototype to be used in the dataset creation, aiming at an actual production environment to avoid the requirement of any manual preprocessing. An experiment was performed using a machine learning technique and it was possible to obtain a promising result. Resumo. Através do programa de melhoramento genético, a Embrapa Amazônia Ocidental desenvolveu cultivares de guaranazeiros (Paullinia cupana var. sorbilis), que apresentam alta produtividade. Todavia, essas espécies possuem caracterı́sticas visuais muito similares e de difı́cil identificação, principalmente no transporte das mudas para o seu local definitivo. Diante deste cenário, propõese uma abordagem para identificação dos cultivares a partir de imagens. Para isso, foi desenvolvido um protótipo para ser usado na criação do dataset, objetivando um ambiente de produção real de forma a evitar a necessidade de qualquer pré-processamento manual. Um experimento foi realizado com uma técnica de aprendizado de máquina e obteve-se um resultado promissor.
1. Introdução O guaranazeiro (Paullinia cupana var. sorbilis) é um importante e tradicional cultivo do Amazonas, sendo o Brasil, o único paı́s do mundo a produzı́-lo em grande escala. Em 2003, houve uma produção de 779 toneladas de sementes secas de guaraná em 5.178 ha, de acordo com o Instituto Brasileiro de Geografia e Estatı́stica [Tavares et al. 2005]. De acordo com [Tricaud et al. 2016], a Embrapa Amazônia Ocidental possui 19 cultivares que foram desenvolvidos através do programa de melhoramento genético, e que já foram registrados no Ministério da Cultura, Pecuária e Abastecimento. Um dos resultados apresentados pelo programa de melhoramento genético segundo [Tavares et al. 2005], é o tempo de formação das mudas desses cultivares que passou de 12 para 7 meses, obtendo assim o aumento da produção sem a necessidade de ocupar mais áreas de plantio, para um desenvolvimento mais sustentável.
21
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
No entanto, a distinção desses cultivares, principalmente em mudas, quando a folha com seus cinco folı́olos estão em formação, e também quando ocorre o perı́odo de transporte dessas plantas para o local definitivo, ainda é feito por mecanismos manuais [Mapa 2010]. Isso resulta em um processo árduo e muitas vezes impreciso. Esse cenário estimula a pesquisa em novas tecnologias para identificação dessas variedades genéticas, uma vez que as folhas apresentam muita semelhança entre si. Dessa forma, este trabalho propõe uma abordagem computacional para identificação dos cultivares das mudas de guaraná a partir de imagens de folı́olos coletadas de forma prática, o mais próximo do ambiente real de produção, sem necessidade de qualquer tipo de préprocessamento manual.
2. Trabalhos Relacionados Podem ser usadas uma série de parâmetros para extração de caracterı́sticas das folhas no intuito de realizar uma classificação, como a cor, textura, estrutura de veias, entre outras. Em [Du et al. 2006], os autores utilizaram uma base de imagens com 20 espécies de plantas para classificar folhas, sendo de cada espécie, 20 exemplares. A precisão de reconhecimento foi de 91% ao utilizar um método de classificação chamado de Centro de Movimento Mediano (MMC). Em [SOUSA and SALAME 2017], é possı́vel identificar resultados das primeiras avaliações experimentais. O experimento foi realizado com folhas inteiras de plantas consideradas adultas. O pré-processamento das imagens das folhas foi feito manualmente com redimensionamento, retirada do fundo e centralização da folha na imagem. O resultado da melhor classificação deste experimento foi com o uso do modelo de rede neural convolucional (CNN) com a arquitetura LeNet, o qual obteve uma acurácia de 89,6% e precisão de 90,5%.
3. Material e métodos Ainda é incomum imagens de folı́olos das mudas dos cultivares de guaranazeiros da Embrapa em dataset público. Assim, foi necessário o desenvolvimento de um dataset com imagens coletadas por meio do protótipo dos cultivares relacionados a essa pesquisa: BRS-Maués e BRS-Luzéia. Para a criação do dataset, foi desenvolvido um protótipo para a captura das imagens em um ambiente real de produção, com a funcionalidade de câmera com filtro e corte, de forma a dispensar qualquer pré-processamento manual. A coleta teve enfoque na nervura central dos folı́olos. Para compor o dataset, foram capturados 2 folı́olos de cada folha, sendo 10 fotos por folı́olo e 10 folhas de cada cultivar, com 200 imagens por cultivar, obtendo ao final um total de 400 imagens. A captura das imagens foi feita dos folı́olos 2 e 3 de cada folha da parte abaxial (parte inferior), conforme pode ser visto na Figura 1. Foram fotografadas várias áreas dos folı́olos, conforme Figura 2, com o cuidado para que a captura não excedesse a área dos folı́olos. As imagens do cultivares selecionados foram capturadas em fevereiro de 2019 no campo de guaranazeiros da Embrapa Amazonia Ocidental, na zona rural de Manaus. Na coleta, foram utilizados folı́olos de cultivares de 5 à 10 cm de largura com as respectivas aproximações entre o smartphone e o folı́olo: folı́olos com tamanho de 10
22
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
Figura 1. Folı́olo sendo fotografado com protótipo.
ISSN 2238-5096
Figura 2. Imagens protótipo.
capturadas
pelo
à 12 cm de altura contaram com a aproximação da câmera variando entre 06 à 08 cm, folı́olos de 13 à 16 cm altura tiveram aproximação de 08 à 09 cm e folı́olos de 08 à 10 cm com aproximação de 08 à 10 cm. As linguagens de programação, ambientes de desenvolvimento, bibliotecas e frameworks são apresentados na Figura 3. O protótipo para coleta de imagens foi utilizado em um smartphone com uma câmera de 16 megapixels e Android 7.0.
Figura 3. Materiais utilizados.
4. Resultados e Discussões O protótipo desenvolvido contém também orientações referentes aos cultivares, obtidas a partir de publicações de pesquisadores da Embrapa, como caracterı́sticas, produtividade, reação a doenças, entre outras. Essas informações podem ajudar os produtores rurais em
23
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
tomadas de decisão, servindo para resultados mais relevantes nas práticas agropecuárias dos guaranazeiros. Com um dataset relativamente pequeno, quando comparado a outros trabalhos relacionados, foi feito um experimento para classificação com o uso de SVM, uma técnica de aprendizado de máquinas que vem recebendo bastante atenção por seus resultados, juntamente com HOG, que atua na fase de extração de caracterı́sticas. Esse experimento obteve 83% de acurária.
5. Considerações Finais No decorrer deste trabalho, foi desenvolvido e utilizado um protótipo para dispositivos móveis, de forma a auxiliar as atividades de coleta de imagens para classificação das mudas de guaraná com o intuito de usar a mesma configuração para obter a classificação em um ambiente de produção. A solução proposta pode oferecer relevante complemento aos métodos atuais de estudos em classificação dos cultivares e facilitar a disponibilização de um produto para ser utilizado pelos produtores rurais. O resultado obtido com o primeiro teste de classificação das mudas dos cultivares, mostrou-se promissor, o que motiva a ampliação das amostras fotografadas de folı́olos para a classificação. Além do aumento do dataset, será importante aumentar o número de cultivares e avaliar o melhor desempenho com novos testes, explorando novas metodologias e ajustes de paramêtros que possam agregar nos processamentos.
6. Agradecimentos Ao Dr. Firmino Jose do Nascimento Filho cuja disponibilidade e conhecimentos sobre o guaranazeiro transmitidos foram fundamentais; ao Allex de Lima Sousa pela parceria nesta pesquisa; ao Jose Raimundo da Silva Barbosa por todo o suporte e à Fundação de Amparo à Pesquisa do Estado do Amazonas pela disponibilização das bolsas.
Referências Du, J.-X., Huang, D.-S., Wang, X.-F., and Gu, X. (2006). Computer-aided plant species identification (capsi) based on leaf shape matching technique. Transactions of the Institute of Measurement and Control, 28(3):275–285. Mapa (2010). Instruções para execuções dos ensaios de distinguibilidade, homogêneodade e estabilidade de cultivares de guarana (paullinia cupana var. sorbilis. Republica Federativa do Brasil: Diario Oficial da União. SOUSA, A. d. L. and SALAME, M. F. A. (2017). Uma abordagem comparativa de algoritmos de aprendizado supervisionado para classificação dos cultivares da planta paullinia cupana. In Encontro Regional De Computação E Ssistemas DE Informação, 6., 2017, Manaus. Resumos e artigos completos. Manaus: Fucapi, p. 121-129. Tavares, A., Atroch, A., Nascimento Filho, F., Pereira, J., Araújo, J., Moraes, L., et al. (2005). Cultura do guaranazeiro no amazonas. Manaus: Embrapa Amazônia Ocidental. Sistema de Produção, 4. Tricaud, S., Pinton, F., and dos Santos Pereira, H. (2016). Saberes e práticas locais dos produtores de guaraná (paullinia cupana kunth var. sorbilis) do médio amazonas: duas organizações locais frente à inovação. Boletim do Museu Paraense Emı́lio Goeldi. Ciências Humanas, 11(1):33–53. 24
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Comparação da Performance de Arquiteturas de Redes Neurais Profundas para Monitoramento Doméstico por Áudio Manoel V. F. Souza1 , Carlos M. S. Figueiredo1 1
Laboratório de Sistemas Inteligentes Grupo de Pesquisas em Sistemas Inteligentes Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200, Manaus, AM {mvfds.snf, cfigueiredo}@uea.edu.br
Abstract. In this paper, it is studied the monitoring in domestic environments and how to solve this problem, therefore, this paper presents 3 convolutional neural networks architectures for perform this task and with the obtained results, we proposed the use of the neural network which achieved the best performance in an embbeded system for residential monitoring. Keywords: Convolutional Neural Networks, Domestic Monitoring, Embedded System. Resumo. Neste trabalho, é estudado o monitoramento de ambientes domésticos e como tratar este problema, assim este artigo apresenta 3 arquiteturas de redes neurais convolucionais para realizar tal tarefa e com os resultados obtidos propomos o uso da rede neural que obteve melhor performance em um sistema embarcado para monitoramento residencial. Palavras-chave: Redes Neurais Convolucionais, Monitoramento Residencial, Sistema Embarcado.
1. Introdução O uso da captura do áudio para o fim de monitoramento tem diversas vantagens, como por exemplo requer menos sensores, já que pode ser usado na perspectiva do uso exclusivo do microfone, tendo em vista que como demonstrado no artigo de [Laput et al. 2017], este sensor fica entre os 2 com maior importância durante a detecção dos tipos mais variados de eventos. Monitoramento de ambientes e classificação de eventos sonoros ainda não é uma tarefa fácil de ser resolvida, tanto que desde 2016 o site DCase1 propõe competições na área de classificação de sons para que pesquisadores da comunidade possam realizar trabalhos e avançar o estado da arte na área. De 2016 até Abril de 2019 o DCase propôs 18 desafios referentes a classificação de eventos sonoros. Em especial, uma destas competições, a DCase 2016 - Domestic Audio Tagging2 , propôs o desafio de monitoramento doméstico usando a base de dados CHiME-Home [Foster et al. 2015]. 1 2
http://dcase.community/ http://www.cs.tut.fi/sgn/arg/dcase2016/task-audio-tagging
25
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
O foco do tagueamento de áudios domésticos é rotular um registro de áudio de um ambiente doméstico com um ou mais classes de eventos pré-determinadas. Smartphones e outros dispositivos eletrônicos com a capacidade de gravação de áudio aumentaram significativamente a quantidade de registros sonoros. Rotulamento automático desses áudios pode ser utilizado em diversas aplicações como, monitoramento residencial, assistência médica para pacientes em suas casas e monitoramento de atividades. Este trabalho está organizado da seguinte forma. Na seção 2, serão apresentados alguns trabalhos relacionados, apresentando alguns de seus resultados. Na seção 3, apresentamos os materiais e métodos usados para desenvolvimento do sistema, contendo a descrição dos equipamentos, bibliotecas e arquiteturas de modelos inteligentes. Na seção 4 contém a proposta de arquitetura do sistema de captura e classificação dos eventos sonoros. Na seção 5 serão apresentados o resultados dos experimentos realizados. Por último, na seção 6 apresentamos as conclusões tiradas a partir da análise dos resultados apresentados na seção anterior e propostas de trabalhos futuros.
2. Trabalhos Relacionados Existem diversos trabalhos com foco no uso de dispositivos embarcados para classificação de eventos a partir da análise dos dados capturados por sensores e redes neurais artificiais, como o proposto por Laput et al. [Laput et al. 2017], que utiliza 13 diferentes sensores para classificar 38 tipos de eventos sonoros em 5 diferentes ambientes. No entanto, o trabalho acaba por trazer sensores que são importantes na detecção de um único evento (i.e. o sensor de infravermelho usado para verificar se um bule está no fogo). Mais especificamente para classificação de eventos sonoros, existe um projeto aberto no GitHub [Paolocci 2018] chamado Sound Classification with TensorFlow on Raspberry Pi, que propõe um modelo baseado em aprendizado de máquina treinado na base de dados Urban Sound 8k [Salamon et al. 2014], contudo esta base de dados possui 10 classes com aspectos muito diferentes (por exemplo, latido de cachorro e tiro de arma). Assim o uso de um modelo inteligente treinado com os dados dessa base torna a classificação de eventos pouco eficiente para um real monitoramento de ambientes. Seguindo esta temática, tem-se trabalhos para classificação de cenas acústicas usando unicamente dados capturados por microfone como fonte de entrada de dados, como visto nos trabalhos de [Sakashita and Aono 2018] e [Dorfer et al. 2018], ainda assim os resultados apresentados nestes artigos não ultrapassaram a margem de 83% de acurácia. Ainda nesta linha de uso de microfone como sensor único, Çakir et al. [Cakır et al. 2016] e Lidy e Schindler [Lidy and Schindler 2016] propuseram sistemas especı́ficos para monitoramento doméstico, a partir de um desafio da comunidade DCase, que utiliza de redes neurais convolucionais para classificação de 7 eventos sonoros. Apesar de terem alcançado como resultado uma métrica EER de cerca de 16.7%, seus trabalhos não mostram o comportamento do modelo em situações real, tendo avaliado os modelos apenas com a base de dados fornecida.
3. Materiais e Métodos Nesta seção serão apresentados a descrição da base de dados, métodos de préprocessamento utilizados, ferramentas de desenvolvimento e as arquiteturas de redes neu-
26
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
rais convolucionais usadas na comparação de performance. 3.1. Ambiente de Desenvolvimento Foi usado um computador para desenvolvedor todo o código do projeto e onde foram criadas, treinadas e testadas as Redes Neurais e onde todo o pré-processamento foi realizado. Foi usado também um Raspberry Pi 3 Model B para testes dos tempos de execução das redes. Como linguagem de programação foi usado o Python na sua versão 3.6.5 em conjunto com a API de abstração Keras do Tensorflow 1.12. A biblioteca Librosa na sua versão 0.6.3 foi usada para carregamento do áudio e para a fase de pré-processamento detalhada na seção 3.2. Na manipulação e processamento dos dados foi utilizado a biblioteca Numpy 1.16.2, Pandas 0.24.2, Dask 1.1.4 e Scikit-learn 0.20.3. O ambiente de programação foi o Jupyter Notebook 1.0.0. Para validação do modelo foi usada a métrica oficial do desafio, a EER (EqualError Rate), calculada a partir de funções já implementadas na biblioteca Scipy 1.2.1. Para captura dos dados do microfone no ambiente embarcado foi usada a biblioteca PyAudio na sua versão 0.2.11 e a API Wavfile do Scipy para gravar o áudio capturado em disco no formato .wav. 3.2. Base de Dados A base de dados usada foi a CHiME-Home [Foster et al. 2015], que contém 4378 trechos de áudio de 4 segundos que possuem uma ou mais classes dentre as 7 listados no artigo, o conjunto em questão foi rotulado por 3 pessoas, no entanto dos 4378, apenas 1946 possuem uma forte concordância entre os anotadores, ou seja, 2 ou mais anotadores assinalaram as mesmas coisas para estes trechos de áudio. Para treinamento das arquiteturas, todos os 4378 trechos de áudios foram usados em sua versão de 16kHz, os dados usados foram rotulados a partir do voto majoritário, disponibilizado junto com a base, este atributo é algo que mesmo os trechos de áudio que não tiveram uma forte concordância possuem. A Tabela 1 a seguir possui uma lista com o número de trechos de áudio por classe de acordo com o voto majoritário: Rótulo c m f v p b o
Descrição Número de Exemplos Criança falando 2590 Homem falando 486 Mulher falando 802 Videogame / TV 2159 Sons percursivos 1647 Ruı́do constante 37 Outros sons 762 Tabela 1. Rótulos usados
27
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
3.3. Pré-processamento O áudio usado é carregado em sua versão de 16kHz e Mono. Então é dividido em janelas de 40ms com sobreposição de 50% e então multiplicado com uma janela de Hamming. Para cada janela, a magnitude de resposta é calculada usando a transforma da Fourier de tempo-curto (STFT) com 1024 pontos. Então, é calculado o Mel-Espectrograma em 40 bandas de mel em cima da magnitude de resposta a serem usadas como atributos do som xt para cada janela t. Assim no final do pré-processamento obtém-se 4378 espectrogramas de tamanho 40x201 [Cakır et al. 2016]. Para uma arquitetura em especial ao final do pré-processamento citado acima foi necessário transformar a entrada em 3 canais, para isso foram feitas cópias dos espectrogramas de forma que o formato final se tornou 40x201x3. 3.4. Arquiteturas Utilizadas Para comparação dos resultados foram escolhidas 3 arquiteturas de Redes Neurais Convolucionais, a já conhecida na literatura e usada amplamente em problemas de visão computacional VGG16, uma arquitetura proposta no desafio de monitoramento doméstico em questão que alcançou o 2o lugar [Virtanen et al. 2016] e a arquitetura vencedora do desafio DCase 2018 de Classificação de Cenas Acústicas [Mesaros et al. 2018]. • VGG16 A arquitetura VGG16 foi publicada em 2015 por Simonyan e Zisserman, atingindo os melhores resultados até então nas competições ILSVRC-2012 e ILSVRC-2013. A arquitetura é capaz de generalisar bem para um ampla diversidade de tarefas e bases de dados [Simonyan and Zisserman 2014]. A implementação usada foi a presente na API applications do Keras, com pesos inicializados aleatoriamente, no entanto a última camada usada foi a 4a camada de MaxPooling, então foram adicionadas uma camada de achatamento (Flatten), uma camada oculta totalmente conectada com 1024 neurônios e a camada de saı́da com 7 neurônios com a função de ativação Sigmoid, a fim de realizar a classificação multi-rótulo.
Figura 1. Arquitetura original da VGG16
28
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
• Çakir et al. A arquitetura proposta neste trabalho foi uma Rede Neural Convolucional a fim de criar um classificar de evento domésticos, a rede proposta tem a estrutura apresentada a seguinte estrutura:
Figura 2. Arquitetura original Çakir et al.
A arquitetura desta rede não foi alterada além do que foi explicado durante sua descrição, por exemplo, além das camadas apresentadas na Figura 2, a descrição acrescenta camadas de Normalização de Batch BatchNormalization e de Dropout. Portanto, apesar de haver a imagem da arquitetura da rede, a descrição da rede que foi seguida no momento de recriar usando o Keras. • Sakashita e Aono Neste trabalho foi proposta uma Rede Neural Convolucional a fim de criar um classificador de cenas acústicas, a rede proposta tem a estrutura apresentada na Figura 3.
Figura 3. Arquitetura original Sakashita e Aono
29
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Esta rede também foi modificada, desta vez a função de ativação da última camada foi alterada para Sigmoid a fim de tornar possı́vel a classificação multi-rótulo. 3.5. Métricas de Desempenho Para escolha do melhor modelo foi usada a métrica EER e para avaliação do modelo em ambiente real foram usadas tanto a EER quanto a Acurácia, ambas serão explicadas a seguir. 3.5.1. Métrica EER A métrica EER (Equal Error Rate) se refere a razão da taxa de falsa aceitação pela taxa de falsa rejeição. Quando as taxas são iguais, o valor comum é chamado taxa com erro igual. O valor então indica que a proporção de falsa aceitação é igual a proporção de falsa rejeição. Quanto mais baixo o valor do erro, maior é a acurácia. [Staff 2019]
Figura 4. Métrica EER
3.5.2. Métrica Acurácia A acurácia é utilizada em problemas de classificação para se referir à razão do número de previsões certas (nAcertos) pelo número de previsões total (nPrevisões) do modelo inteligente. A fórmula matemática está descrita a seguir. Acurácia =
nAcertos nP revisões
(1)
4. Arquitetura do sistema O programa é dividido em 4 etapas e ocorre ciclicamente. (1) Primeiramente, o modelo inteligente é carregado na memória do Raspberry, ao finalizar esta etapa se inicia a captura do áudio, com duração fixa de 4 segundos, utilizando as seguintes configurações: tamanho de bloco de 1024 bytes, taxa de 16KHz e canal mono (2). Em seguida acontece a fase de pré-processamento detalhada na seção 3.3 (3). Por último o modelo realiza a classificação do Mel-Espectrograma gerado (4) e o programa retorna para a etapa 1.
30
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 5. Arquitetura do Sistema
5. Experimentos e Resultados Os experimentos e resultados estão divididos em 2 etapas, na primeira é dito como foi realizado a escolha do modelo de Rede Neural Convolucional, levando em consideração 3 pontos, Métrica EER (Equal Error Rate), Tempo de Predição e Quantidade de memória que o modelo ocupa. Na segunda, o modelo que apresentou os melhores resultados na primeira etapa, é carregado no Raspberry para realizar os testes em ambiente real. 5.1. Comparação dos Modelos Nesta subseção será explicado como foi realizado o treinamento, teste e comparação dos modelos gerados. Tendo em vista que a saı́da da função de ativação Sigmoid de todas as redes foi considerada válida se a saı́da for superior ao limiar (threshold) de 0.5.
5.1.1. Treino e Validação Para treino foi usado a função Kfold com k = 5, para validação cruzada, ou seja, a base de dados é separada em 5 partes de tamanhos iguais e então 4 são usadas para treino e 1 para teste, este procedimento foi realizado para as 3 arquiteturas propostas.
5.1.2. Comparação dos resultados obtidos A comparação foi realizada seguindo 3 critérios: métrica EER média da rede; o tempo de predição médio de um exemplo da rede no Raspberry e quantidade de memória ocupada pelo modelo.
31
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
Arquitetura Métrica EER VGG16 0.255 Çakir et al. 0.243 Sakashita e Aono 0.086
ISSN 2238-5096
Tempo de predição (s) 1.229 1.685 0.373
Tamanho do Modelo (MB) 168.5 94.5 16.7
Tabela 2. Tabela Comparativa
5.2. Testes em ambiente real Para a realização dos testes em ambiente real foi escolhido o modelo proposto por Sakashita e Aono, já que este foi o que apresentou os melhores resultados nos 3 quesitos de avaliação. O objetivo deste experimento é avaliar como o desempenho do modelo se manifesta em casos reais e fora do conjunto de dados de treino. Esta seção está desenvolvida da seguinte forma: (1) explicação do roteiro de testes a ser executado pelo modelo escolhido a fim de aferir seu desempenho em ambiente real. (2) Apresentação dos resultados obtidos pelo modelo no roteiro de teste. 5.2.1. Roteiro de Testes Foi realizada a captura de 100 exemplos de testes, gravados com frequência de 16kHz, 4 segundos de duração e classes variadas. Os trechos de áudio em questão se tratam de áudios obtidos pela internet que não foram apresentados ao modelo de rede neural durante a fase de treinamento. Os trechos de áudios consistem de 69 trechos com crianças falando, 54 com homens adultos falando, 51 com sons percussivos, 15 com sons de TV, 14 com mulheres adultas falando e 11 trechos de outros sons, a classe ”Ruı́do constante”não foi levada em consideração nestes testes. 5.2.2. Resultado dos Testes Na Tabela 3 são apresentados os resultados obtidos da aplicação do roteiro de testes e classificações do modelo. Classe Métrica EER Mulher adulta falando 0.34 Homem adulto falando 0.49 Criança falando 0.38 Videogame / TV 0.37 Sons percussivos 0.34 Outros sons 0.5 Média 0.40 Mediana 0.375
Acurácia por classe 0.90 0.47 0.77 0.84 0.68 0.89 0.76 0.81
Tabela 3. Resultados obtidos
32
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A partir dos resultados obtidos nos testes reais podemos ver que o modelo inteligente não apresentou uma performance tão boa quanto durante o treinamento, isso pode ser verificado com a métrica EER média de 0.40, enquanto que durante o treinamento a mesma foi de 0.086 para esta arquitetura, na Tabela 2 também é possı́vel observar que em algumas classes a rede neural obteve resultados muito abaixo dos demais, como é o caso da classe ”Homem adulto falando”, em que o modelo obteve uma métrica EER de 0.49 e 0.47 de Acurácia. Tendo em vista que a média é sensı́vel a outliers, calculamos a mediana para ter uma visão mais apropriada da performance real, esta mostrou valores mais confiáveis, apresentando um Acurácia levemente acima de 0.8 e 0.37 de EER.
6. Conclusão e Trabalhos Futuros A partir da análise dos resultados obtidos na seção 5.1, foi possı́vel verificar que a arquitetura proposta por Sakashita e Aono supera as demais testadas tanto em questão de Métrica de erro, quanto em Tempo de Predição e ocupa uma quantidade de memória 10 vezes menor do que a VGG16 e 6 vezes menor do que a rede proposta por Çakir et al. Com os resultados obtidos na seção 5.2, podemos verificar que a rede apesar de ter apresentado bom desempenho na base de dados, obteve resultado mediano ao testála em exemplos reais. Tendo obtido uma acurácia de cerca 0.81, além disso a Tabela 2 mostra que para a maioria das classes modelo de rede neural já possui uma performance razoável, sendo viável o uso real, no entanto ainda é possı́vel melhorar, seja obtendo mais dados para as classes que obtiveram um desempenho baixo ou fazendo uma separação estratificada da base de dados na hora do treinamento, a fim de evitar que o modelo tenha poucos exemplos de uma classe. Como trabalhos futuros consideramos ampliar a base de dados com outras classes de eventos de interesse, otimizar o pré-processamento com a biblioteca Numpy tendo em vista o tempo de execução, testar outras arquiteturas de Redes Neurais e testar as novas redes no dispositivo embarcado com eventos reais, além de planejar estratégias a fim de aprimorar os resultados das redes em ambientes reais, por exemplo, ampliação da base de dados de treinamento, adição de mais filtros convolucionais no modelo inteligente ou aplicação de múltiplas redes neurais convolucionais binárias a fim de realizar uma classificação final a partir do voto majoritário.
7. Agradecimentos Os autores agradecem o apoio material e financeiro fornecidos pela FAPEAM (Fundação de Amparo à Pesquisa do Estado do Amazonas) através do Projeto PPP 04/2017.
Referências Cakır, E., Heittola, T., and Virtanen, T. (2016). Domestic audio tagging with convolutional neural networks. IEEE AASP Challenge on Detection and Classification of Acoustic Scenes and Events (DCASE 2016). DCase. Dcase community. Dorfer, M., Lehner, B., Eghbal-zadeh, H., Christop, H., Fabian, P., and Gerhard, W. (2018). Acoustic scene classification with fully convolutional neural networks and i-vectors. Technical report, Tech. Rep., DCASE2018 Challenge.
33
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Foster, P., Sigtia, S., Krstulovic, S., Barker, J., and Plumbley, M. D. (2015). Chime-home: A dataset for sound source recognition in a domestic environment. In 2015 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), pages 1–5. IEEE. Laput, G., Zhang, Y., and Harrison, C. (2017). Synthetic sensors: Towards generalpurpose sensing. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, pages 3986–3999. ACM. Lidy, T. and Schindler, A. (2016). Cqt-based convolutional neural networks for audio scene classification. In Proceedings of the Detection and Classification of Acoustic Scenes and Events 2016 Workshop (DCASE2016), volume 90, pages 1032–1048. DCASE2016 Challenge. Mesaros, A., Virtanen, T., and Heittola, T. (2018). Acoustic scene classification challenge results. Paolocci, G. (2018). Sound classification with tensorflow on raspberry pi. Sakashita, Y. and Aono, M. (2018). Acoustic scene classification by ensemble of spectrograms based on adaptive temporal divisions. Technical report, Tech. Rep., DCASE2018 Challenge. Salamon, J., Jacoby, C., and Bello, J. P. (2014). A dataset and taxonomy for urban sound research. In Proceedings of the 22nd ACM international conference on Multimedia, pages 1041–1044. ACM. Simonyan, K. and Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556. Staff, W. (2019). Eer - equal error rate. Virtanen, T., Plumbley, M. D., Mesaros, A., Benetos, E., Lagrange, M., Foster, P., and Heittola, T. (2016). Domestic audio tagging task results.
34
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Estudo Comparativo para Definir um Modelo de Machine Learning para Previsão de Vendas Diárias no Varejo David S. Camurça1, Elizamary N. Souza1 1
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica - (Faculdade FUCAPI) Avenida Danilo Areosa, 381 - Distrito Industrial - Manaus – AM – Brasil {david.camurcaa,elizamarysouza}@gmail.com
Abstract. Predicting future sales with machine learning models is becoming increasingly popular in retail, with this technology, retailers are able to have an almost real estimate of future sales. This paper is a study that compares the prediction generated by two models of purchasing systems, the traditional model 1 uses classical statistical methods, and the model 2 with machine learning techniques. The results show that model 2 obtained better assertiveness, and lower error rate. Resumo. A previsão de vendas futuras com modelos de machine learning está se tornando cada vez mais popular no varejo, com essa tecnologia, os varejistas conseguem ter uma estimativa quase que real das vendas futuras. Este artigo é um estudo que compara a previsão gerada por dois modelos de sistemas de compras, o modelo 1 tradicional utiliza métodos estatísticos clássicos, e o modelo 2 com técnicas de machine learning. Os resultados mostram que o modelo 2 obteve uma melhor assertividade e uma menor taxa de erro.
1. Introdução Machine Learning (ML) é uma subárea da ciência de dados de crescimento mais rápido na área da ciência da computação [Jordan e Mitchell, 2015]. ML cada vez mais vem sendo usada em diferentes áreas como, saúde, manufatura, educação, finanças, marketing, tecnologia e no comércio de varejistas e atacadistas [Jordan e Mitchell, 2015]. Devido às grandes mudanças que esta tecnologia vem trazendo ao varejo, ela tem sido aplicada por várias empresas deste setor, buscando soluções mais eficazes para seus problemas. As soluções de ML proporcionam aos varejistas um alto poder de análise e entendimento das tendências e preferências de seus consumidores [Santo 2018]. Além disso, para que as empresas se mantenham competitivas, uma das soluções de ML utilizadas são sistemas de predição. Os sistemas ou modelos preditivos, são técnicas que tentam prever “algo para o futuro”. Segundo (Marr 2017) esses modelos são utilizados por grandes varejistas como Amazon e Walmart. As análises preditivas de vendas feitas pelos modelos de ML estão ganhando cada vez mais espaço no varejo. Segundo (Adelino 2018) os sistemas atuais de muitas das empresas não consideram períodos sazonais ou novas tendências que surgem com o lançamento de novos produtos. Sem um bom planejamento de compras, tal acarreta em excesso de estoque, causando desvalorização das mercadorias e prejuízo para a
35
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
empresa, pois o dinheiro usado na compra excessiva, poderia ser investido e retornando lucro para a empresa. Todos esses desafios estão intrinsecamente descritos nos dos dados. Neste estudo, foi utilizado dois modelos (Modelo 1 e Modelo 2) para a previsão de vendas, com o intuito de identificar os padrões conforme os problemas relatados anteriormente, como sazonalidade e tendências. Os experimentos realizados neste estudo mostrou que o Modelo 2 apresentou melhor desempenho para os problemas analisados (sazonalidade, tendências) ou seja, a previsão para a aquisição de produtos neste modelo foi mais assertiva. O Modelo 1 conseguiu desempenhar razoavelmente, porém, para as outras variáveis o seu desempenho não foi o esperado. O restante deste artigo está dividido em outras 4 seções. A seção 2 apresenta os métodos utilizados neste estudo. A seção 3 apresenta os resultados obtidos durante o treinamento dos modelos e também a discussão. A seção 4 apresenta uma comparação entre os modelos estudados. Por fim, a seção 5 apresenta as conclusões e trabalhos futuros.
2. Métodos Este artigo é um estudo comparativo, que avaliou dois modelos (Modelo 1 e Modelo 2), o objetivo desses modelos é a previsão de vendas de varejistas utilizando dados de vendas de quatro anos atrás (2015 e 2018). O conjunto de dados coletado e utilizado nas bases de treino e testes dos modelos foram: data da venda, código único do material e a quantidade vendida. A partir desses dados, será possível gerar as previsões de vendas e principalmente detectar os picos sazonais com base na data de venda e a quantidade que foi vendida. O desenvolvimento do estudo seguiu as seguintes etapas, sugeridas por Gonçalves (2018): (i) coleta dos dados, (ii) seleção dos dados adequados ao estudo, (iii) pré-processamento e conversão dos dados, (iv) construção do modelo preditivo, (v) métricas de avaliação dos modelos. É um processo bastante comum, em projetos de machine learning. Na etapa (i) coleta dos dados, foi realizada a extração dos dados de uma base real. Os dados foram extraídos dos sistemas de vendas, este processo durou cerca de 2 horas para ser concluído, devido ao alto volume de dados. Durante a etapa (ii) seleção dos dados adequados ao estudo, nesta fase, precisou-se do apoio de um especialista de negócio, o mesmo tinha mais de 5 anos de experiência. Ele conhecia a origem das informações, assim, facilitou a seleção do conjunto de dados mais importantes para o estudo. Na etapa (iii) a conversão e pré-processamento dos dados, foi feito o tratamento nos dados, ou seja, foram verificados se havia valores nulos, duplicação de registro, valores negativos, erros de registros etc. Além disso, verificou-se também a inconsistência nos dados, por exemplo, datas com ano (2099), quantidade vendas (0 ou -1), se o mínimo é uma (1) unidade de determinado produto por venda, etc. Desta forma, todos os valores inconsistentes foram removidos, ficam somente os registro que
36
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
faziam sentido, com todas as informações necessárias, ao todo sobraram 9,2 milhões de linhas na base de dados. Na etapa (iv) da construção dos modelos preditivos, foi preciso consultar especialistas da área de compras para formular uma equação matemática que melhor atendia às demandas de vendas futuras (V F ) , veja a Equação 1, representa o modelo 1 (M1), desenvolvido pelo especialista do setor de compras: V F = ( MP VU DV ) * S * P P V
(1)
Esta Equação 1 ou M1, possui as seguintes variáveis MUV, PVD, S e PPV. A (M U V ) serve para representar as vendas diárias dos últimos 2 meses, o (P V D) representa os 2 meses em dias, ou seja 60, e como a previsão é semanal, foi considerado 7 dias chamado de (S) e por fim, o (P P V ) representa o periodo em semanas a ser previsto. Ainda na etapa (iv) o Modelo 2 (M2), utilizado foi o Prophet, robusto, criado pelo Facebook. Ele fornece uma previsão bem precisa, considerando estágio sazonais, tendências, trata bem os outliers da base de dados. O Prophet conta com uma série de Fourier para que o modelo seja totalmente flexível a quaisquer efeitos periódicos [Taylor, Letham, 2017]. Com ela o modelo consegue estimar as sazonalidades nos dados de séries temporais. Uma série temporal é uma sequência de observações feitas sequencialmente no tempo [Brownlee 2016]. As sazonalidades nas séries temporais se refere a flutuações periódicas, um exemplo, no natal as vendas aumentam ou pela manhã as vendas são altas e a noite são baixas. A formulação matemática do Prophet consiste em Equação 2, representa o (M2): y (t) = g(t) + s(t) + h(t) + εt
(2)
A primeira função g (t) é a tendência do modelo, ela descreve o aumento ou diminuição dos dados, isso a longo prazo. O Prophet possui dois parâmetros de tendência, um para crescimento de saturação e outro linear. Os fatores sazonais são pegos pela série de Fourier na função s(t) ela descreve como esses fatos afetam os dados. Já o h(t) entende como os feriados ou grandes eventos afetam a série de dados, e a εt apresenta algum erro de termo irredutível. As métricas de avaliação que foram utilizadas na etapa (v) para a validação dos modelos criados foram: Erro Absoluto Médio - MAE e Erro de Porcentagem absoluta Média - MAPE, todas elas são bastantes utilizadas para avaliar modelos de regressão que vão em busca de valores numéricos, que é o caso deste estudo, a tentativa de prever as vendas da empresa nas próximas semanas ou meses [Filho 2018]. M AE =
1 n
n
︿ ∑ ||y i − yi ||
i=1
(3)
A Equação 3, é uma métrica que distribui o mesmo peso para todas as diferenças entre o valor real e o valor previsto pelo modelo, de maneira linear [Filho 2018]. M AP E =
1 n
n
∑ ||
i=1
︿
y i −yi | yi |
(4)
37
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A segunda métrica, Equação 4, calcula a média percentual do desvio absoluto entre os valores previstos e os valores reais. Segundo [Miranda 2014] o erro absoluto percentual médio (MAPE) é um dos mais usados na Estatística por ser de fácil compreensão. Esta medida expressa a porcentagem média dos erros (em valor absoluto) cometidos na previsão da série temporal; quanto menor esta medida, melhor será a previsão.
3. Resultados e Discussão Nesta seção serão apresentados os resultados obtidos no estudo, após dois testes realizados para os modelos 1 e 2 de previsão de vendas diárias. Estes modelos foram testados com dois produtos (materiais) específicos, por exemplo: Ferro de passar e Ventilador. O período escolhido para treinar os modelos foi de janeiro de 2015 até março de 2018, ou seja, eles devem prever as vendas para abril de 2018. A escolha deste período foi definida pelo especialista de negócio, pois as vendas reais já estariam consolidadas, permitindo assim comprovar se os métodos estavam acertando de fato a previsão para o período onde os modelos não tivera contato com os dados, neste caso, abril de 2018. Nesta seção também será discutidos os resultados, é possível relatar os principais pontos que se destacaram de cada modelo, assim como suas vantagens e desvantagens. Por meio dos gráficos fica evidente que os mesmos possuem comportamentos distintos. Abaixo estão descritas as análises comparativas de cada modelo.
Figura 1. Resultado dos modelos 1 e 2 no teste 1 (M1) é o modelo 1 e (M2) modelo 2. O Alvo, são os valores reais, que de fato acontecerem em abril de 2018. Pode-se observar que o M1 e M2, reproduzem as vendas que ocorreram no período, tentando acompanhar o ritmo de vendas representada pela linha cinza (alvo). O teste 2, também tiverem os mesmos modelos testados (com outro material), a figura 2, mostra estes resultados.
38
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 2. Resultado da previsão dos modelos 1 e 2 no teste 2 As figuras 3, 4 e 5, mostram os picos sazonais detectados pelo M2 no teste 2, respectivamentes foram: tendência de crescimento, sazonalidade semanal e anual.
Figura 3. Modelo 2 detectando tendência de crescimento para abril de 2018 Figura 4. Modelo 2 detectando sazonalidade nos dias da semana
39
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 5. Modelo 2, detectando sazonalidade anual de cada mês Além disso, o modelo 1 e modelo 2 foram avaliados pelas métricas MAPE e MAE, a Tabela 1 e 2, ilustram os resultados dos teste 1 e 2 respectivamentes. Na tabela 1 o M1 resultou em uma taxa de erro de 34,6% na métrica MAPE e uma média de erro em 9.99 pontos na métrica MAE. O M2 diferente do M1 obteve uma taxa de erro mais baixa chegando a 18,55% na MAPE e 6.51 pontos na MAE. Na segunda tabela, os modelos apresentaram desempenho semelhantes, porém ainda sim diferentes. O M1 obteve uma taxa de erro de 18.24% contra 16.21% do M2 na métrica MAPE. Analisando a métrica MAE para os dois modelos nota-se que o M2 obteve uma taxa de erro menor, de 14.45 pontos contra 14.7 do M1. Tabela 1 - Resultado da avaliação dos modelos no teste 1 Modelo Modelo 1 (M1) Modelo 2 (M2)
MAPE
MAE
34,6 18,55
9,99 6,51
Tabela 2 - Resultado da avaliação dos modelos no teste 2 Modelo Modelo 1 (M1) Modelo 2 (M2)
MAPE
MAE
18,24 16,29
14,7 14,45
3.1. Modelo 1 O M1, no primeiro teste manteve uma previsão constante, quase que linear, variando muito pouco. No segundo teste, também o resultado pode se equiparar ao primeiro, com taxa de variação mínima. Mas ao observar as métricas de validação, nota-se que o
40
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
desempenho do M1 foi melhor no segundo teste, ele conseguiu prever melhor o segundo material, pois houve uma redução nos percentuais de erro. Analisando rapidamente as figuras 1 e 2, nota-se que o M1, tem como ponto positivo manter sempre as previsões dentro da média, ou seja, caso seja seguido esse modelo de previsão e setor de compras usá-lo como parâmetro para pedidos, o estoque da empresa sempre estará com produtos. Porém, quando se trata de otimizar estoque, o M1 pode não ser o mais adequado. As médias de previsões, não estão considerando os dias com vendas abaixo da média, ou seja, caso os pedidos forem feitos com base na média prevista e não houver saídas suficientes pelos canais de distribuição, o excesso de estoque será um problema a curto prazo. 3.2. Modelo 2 No primeiro teste o M2 manteve uma previsão bem aproximada do real, variando as sugestões, conseguindo quase que um valor idêntico do esperado. No Segundo, ele repetiu o mesmo desempenho, conseguiu contornar os desvios de vendas, gerando uma previsão confiável. Com bases nas Figuras 1 e 2, fica bem claro que o M2 consegue reproduzir um comportamento em torno dos valores reais. A justificativa para isso, está nas Figuras 3, 4 e 5. Veja que a Figura 3 está apontando uma tendência de crescimento para os próximos dias. Além disso, na Figura 4, nota-se que ele também consegue detectar os picos de vendas durante a semana, dando ao modelo a ideia do quanto ele deve prever para cada dia da semana para os próximos dias e na figura 5, ele está mostrando a variação de vendas durantes todos os meses do ano, ou seja, dependendo do mês em que o M2 vai atuar para prever as vendas, ele já terá aprendido que em determinado mês do ano as vendas podem variar. Analisando as métricas, de validação, observa-se que no Teste 1 o desempenho do modelo teve um bom resultado, o mesmo pode-se dizer do Teste 2. O ponto positivo fica para as previsões de vendas por serem bem próximas da realidade de vendas diárias e também o estoque com capacidade ideal, caso usem essas sugestões para gerarem pedidos. Porém, essas previsões muito ajustadas a aos valores verdadeiros devem ser sempre analisadas, pois pode acarretar em rupturas de pedidos (pedir pouco e vender além do pedido), já que as sugestões de compras vão se basear no resultado do modelo. 4. Comparativo entre os métodos A Tabela 4, sumariza, os principais pontos discutidos sobre as vantagens e desvantagens de cada modelo. Em resumo, os dois modelos podem trazer benefícios, porém é possível notar que o M1, não é mais adequado para uma empresa que deseja manter o estoque otimizado, pois não deve adotá-lo com métrica para previsão de vendas e posteriormente criar pedidos com base nessas sugestões.
41
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 4: Pontos positivos e negativos dos modelos Método
Pontos positivos
Pontos negativos
Modelo 1
Sempre prever para sobrar (estoque cheio, se adotá-lo como parâmetro de pedido)
Estoque alto. Não detecta picos de vendas. Previsão média.
Modelo 2
Previsão ajustada. Estoque otimizado. Detecção de sazonalidades. Taxa de erro baixa.
A previsão seguida a risca pode causar rupturas (faltas de produtos).
5. Conclusões Este trabalho apresentou de forma simples, como o aprendizado de máquina pode ser utilizado por empresas para melhorar suas tomadas de decisões para o planejamento de reposição de estoque. Neste artigo foi descrito um estudo de dois modelos preditivos, desenvolvidos para tratar de problemas como sazonalidade e tendências, relacionadas ao setor de compras. Assim, os modelos preditivos foram responsáveis por gerar previsões de venda, para apoiar os especialistas do negócio durante o planejamento de reposição de estoque. Desta forma, os modelos preditivos podem ajudar a realizar os pedidos de novos produtos de acordo com a demanda que foi prevista pelo modelo, ou seja, algo que pode ocorrer no futuro. Conforme os resultados dos testes realizados neste estudo, foi possível notar que os dois modelos conseguiram cumprir com as previsões futuras. Contudo, o modelo 1 não se adequa para uma estratégia para redução de desperdícios. O M2, obteve um melhor desempenho em relação ao M1, pois o mesmo manteve suas previsões de acordo com as variações das vendas diárias, semanais e anuais, dando assim, uma melhor perspectiva de realidade dos cenários futuros. Com os resultados obtidos, os modelos podem apoiar os setores de compras do varejo para manter seus estoques otimizados, eliminando o excesso e evitando desvalorização de mercadoria acarretando em prejuízos para a empresa. Como trabalhos futuros, pretende-se dar continuidade a este estudo utilizando técnicas de Redes Neurais e Deep Learning, pois o tamanho da base de dados é suficiente para testar nessas tecnologias de aprendizado de máquina mais sofisticadas, que necessitam de uma grande quantidade de dados. Além disso, podem ser feitos novos experimentos com outros produtos/materiais e avaliar o desempenho desses modelos com intuito de detectar as sazonalidades e variações de vendas para que se possa sugerir a previsão de novos produtos de acordo com a tendência aprendida pelos modelos.
42
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Referências Adelino, Fabiano (2018) “O segredo para um reabastecimento mais inteligente de alimentos frescos? Machine Learning”. Acesso em março de 2019. Disponível em: <https://clicouvendas.com.br/o-segredo-reabastecimento-mais-inteligente-de-aliment os-frescos-machine-learning/> Brownlee, Jason (2016) “What Is Time Series Forecasting?”. Acesso em março de 2019. Disponível em: <https://machinelearningmastery.com/time-series-forecasting/> Das, Chinmay (2017) “What is machine learning and types of machine learning — Part-1”. Acesso em março de 2019. Disponível em: <https://towardsdatascience.com/what-is-machine-learning-and-types-of-machine-lea rning-andrews-machine-learning-part-1-9cd9755bc647> Filho, Mario (2018) "As Métricas Mais Populares para Avaliar Modelos de Machine Learning". Acesso em: março de 2019. Disponível em: <http://mariofilho.com/as-metricas-mais-populares-para-avaliar-modelos-de-machine -learning/> Gonçalves, Pollyanna (2018) "Afinal, como se desenvolve um projeto de Data Science". Acesso em março de 2019. Disponível em: <https://medium.com/techbloghotmart/afinal-como-se-desenvolve-um-projeto-de-dat a-science-233472996c34> Jordan, M. I. and Mitchell, T. M.Machine Learning: prospects. Science, 349(6245):255-260, 2015
Trends, perspectives and
Marr, Bernard (2017) “How Walmart Is Using Machine Learning AI, IoT And Big Data To Boost Retail Performance”. Acesso em março de 2019. Disponível em: <https://www.forbes.com/sites/bernardmarr/2017/08/29/how-walmart-is-using-machi ne-learning-ai-iot-and-big-data-to-boost-retail-performance> Miranda, Isabela (2014), "Comparação de diferentes Métodos de Previsão em Séries Temporais com valores discrepantes". Universidade Federal de Juiz de Fora. Juiz de Fora, Brasil. Acesso em: março de 2019. Disponível em: < http://www.ufjf.br/cursoestatistica/files/2015/05/Comparação-de-diferentes-métodosde-previsão-em-séries-temporais-com-valores-discrepantes.pdf> Santo Digital (2018), " Entenda como o machine learning no varejo pode aumentar as vendas". Acesso em março de 2019. Disponível em: <http://www.santodigital.com.br/entenda-como-o-machine-learning-no-varejo-podeaumentar-vendas/> Taylor, Sean J. Letham Benjamin (2017) "Forecast at Scale". Acesso em março 2019. Disponível em: <https://peerj.com/preprints/3190/>
43
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
VOZZE: Aplicativo para Desenvolvimento de Crianças com Transtorno do Espectro Autista e/ou Dificuldades na Comunicação James Freitas1, Fernanda Pires2, Marcela Pessoa1,2 1
2
Fundação Centro de Análise, Pesquisa e Inovação Tenológica – Faculdade Fucapi Manaus – Amazonas – Brasil
Escola Superior de Tecnologia – Universidade do Estado do Amazonas EST/UEA Manaus – Amazonas – Brasil jottaset@gmail.com, {fpires,msppessoa@uea.edu,br
Abstract. The number of game applications that helps with social development has risen in recent years, especially when it refers to people in need of psychosocial attention, among them, chrildren with Autism Spectrum Disorder (ASD). In more severe cases of ASD, the child may have difficulty communicating, even for small things, such as asking for food, expressing feelings or pain. Within this context, this paper proposes the development of a mobile application called VOZZE, whose purpose is to offer children with communication difficulties a technological alternative, designed taking into consideration the limitations of children, that offers the possibility of manifestation of their needs. The application is in functional testing phase seeking to validate the proposed requirements. In this version we have identified adjustment needs that are being performed for testing with the end user. Resumo: A aplicação de jogos para ajudar no desenvolvimento social tem crescido bastante nos últimos anos, principalmente quando se refere a pessoas com necessidade de atenção psicossocial, dentre elas, as crianças com Transtorno do Espectro Autista (TEA). Em casos mais graves do TEA a criança pode apresentar dificuldades para se comunicar, mesmo que para pequenas coisas, como pedir comida, manifestar sentimentos ou dores. Neste contexto, este trabalho propõe o desenvolvimento de um aplicativo móvel, denominado VOZZE, cujo objetivo é oferecer às crianças com dificuldades de comunicação uma alternativa tecnológica, projetada levando em consideração as limitações das crianças, que ofereça a possibilidade de manifestação de suas necessidades. O aplicativo está em fase de testes funcionais buscando validar os requisitos propostos. Nesta versão foram identificadas necessidades de ajustes que estão sendo executadas para teste com o usuário final.
1. Introdução Tismoo (2018) afirma que indivíduos com Transtorno do Espectro Autista (TEA) se expressam de maneiras distintas do ponto de vista da fala, da linguagem e da própria comunicação em contextos sociais. Deve-se entender que essa é uma condição complexa e uma de suas conseqüências é que nenhum portador de TEA tem as mesmas 44
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
características de outro. O que é identificado quando se observa a capacidade de comunicação do indivíduo com TEA é que podem existir casos mais leves, onde o autista exibe poucas dificuldades de interagir com outras pessoas, sem atraso significativo na linguagem, ou casos mais severos , em que o indivíduo enfrenta grandes obstáculos na comunicação que podem comprometer a sua sociabilidade. Ainda segundo Tismoo (2018), há diferenças entre fala, linguagem e comunicação, apesar de os três estarem fortemente ligados e que uma criança pode apresentar dificuldades com apenas um desses aspectos. A fala é o ato motor que permite a transmissão de sons, palavras e frases. Seu desenvolvimento pode ser afetado por alguns fatores, como alterações na percepção do som (no caso da surdez) ou por problemas estruturais ou motores que atingem os órgãos que produzem o som (Tismoo, 2018). Isto, freqüentemente, resulta na incapacidade de criar e seqüenciar os sons da fala, mas, os indivíduos são capazes de compreender outras pessoas e podem até se comunicar através de outras formas como escrita, gestos e, como se propões neste trabalho, através de tecnologias projetadas para isso. A linguagem é o instrumento da comunicação oral, que proporciona o desenvolvimento de competências nas áreas i) fonológica que é a capacidade de aprender a distinguir os sons de letras e sílabas, ii) semântica, capacidade de aprender a atribuir significado às palavras, iii) sintática, capacidade de aprender a organizar termos em uma frase coerente e iv) pragmática que é a capacidade de aprender a adaptar e adequar a linguagem dentro de um contexto social (Tismoo, 2018). Indivíduos com problemas na linguagem ainda podem ser capazes de pronunciar palavras isoladas, porém ter problemas para construir frases complexas. A comunicação é o processo complexo onde ocorre a troca de informações por meio de combinações verbais (fala e linguagem) e não-verbais (expressões faciais, postura, gestos, olhar e linguagem corporal) (Tismoo, 2018). Nos casos de autismo, o indivíduo pode ser capaz de elaborar frases complexas e lúcidas e ainda assim, estas não fazerem sentido para quem as ouve por falta de contexto ou semântica ou mesmo sintática, aspectos desconhecidos para a criança com autismo, dificultando, desta forma, o entendimento pelo receptor. Por outro lado, o uso de tecnologias tem se mostrado eficiente para auxiliar o desenvolvimento de habilidades afetas por algum tipo de transtorno (Farias et al., 2015), (Santos et al., 2012 ) até auxiliar no processo de aprendizagem (Marinho et al., 2018), (Medeiros A. et al. 2018), (Passerino L. M., 2016) de conteúdos considerados complexos. Posto isto, este trabalho apresenta o desenvolvimento do MVP de um aplicativo cujo objetivo é auxiliar o indivíduo com TEA a desenvolver a capacidade de se comunicar com outras pessoas estimulando o desenvolvimento e o hábito da comunicação. O artigo está organizado da seguinte maneira: a Seção 2 apresenta trabalhos relacionados com o tema do desenvolvimento da comunicação de indivíduos com TEA. Na Seção 3 é apresentado o referencial teórico. A Seção 4 e subseções falam do aplicativo e das tecnologias utilizadas na criação dele. A Seção 5 fala dos resultados dos testes e a Seção 6 fala das conclusões e trabalhos futuros.
45
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
2. Trabalhos Relacionados Vivemos em um mundo onde a comunicação verbal e não verbal é indispensável para a interação entre o ser humano e a sociedade. Howlin, Baron Cohen e Hadwin (2006), afirmam que a partir dos 18 meses de idade as crianças já são capazes de demonstrar uma diversidade de estados mentais tais como: emoções, desejos, crenças, pensamentos, sonhos, propósitos, etc., e que por volta dos 3 ou 4 anos elas já conseguem perfeitamente inferir os estados mentais ou estados informativos dos outros. Uma pesquisa realizada na Universidade da Carolina do Norte buscou analisar de maneira mais aprofundada o comportamento de crianças com TEA frente às diversas situações e a diferentes estímulos (Vatavuk 2010). Este método é montado a partir de uma avaliação PEP-R (Perfil Psicoeducacional Revisado) realizada para facilitar a concepção de um programa individualizado para esses indivíduos. É desenvolvido levando em conta os pontos fortes e as maiores dificuldades dos autistas (Mello 2007). O aplicativo proposto neste trabalho é diferente de Vatavuk (2019) pois não requer uma avaliação prévia do indivíduo, ele foi idealizado pensando na necessidade básica da comunicação entre dois interlocutores. Neste sentido, o método TEACCH defende que quaisquer formas de interação por meio de imagem visual são capazes de desenvolver habilidades sociais. Em razão disso, o método propõe ao profissional de psicopedagogia que prepare um ambiente que evite ou diminua os comportamentos indesejáveis pelo autista. Para aplicar o método, devem-se utilizar estímulos visuais, por meio de fotos, figuras e cartões, estímulos sinestésicos através de gestos e movimentos corporais e auditivos, empregando o uso do som para buscar a linguagem oral ou uma comunicação alternativa (Mendes 2011), no caso deste trabalho o VOZZE não necessita de um “ambiente preparado” para sua utilização, mas sugere que ele pode ser utilizado em qualquer ambiente, levando em consideração que existirão situações onde o aplicativo será de suma importância para comunicação com outras pessoas. Por outro lado, muito se têm pesquisado sobre o impacto do uso da tecnologia aplicada a diversos problemas sensorio-motores e de aprendizagem. Especificamente relacionado ao autismo, Farias et al. (2015) apresentou um aplicativo criado para ajudar no desenvolvimento da criança com TEA. Sua estrutura é baseada em quatro níveis de dificuldades, onde nos dois primeiros níveis os usuários podem aprender habilidades como: transposição e discriminação, ou seja, distinção e troca de objetos em cena. A partir do nível seguinte desenvolve-se a idéia do todo e das partes, com atividades mais complexas como quebra-cabeça. Exigindo um raciocínio maior do usuário. No último nível, o quarto da sequência (também o quarto nível na metodologia TEACCH) é abordado o letramento da criança, ensinado a separação de sílabas, reconhecimento de vogais, formação de palavras e frases, pensando tanto no aspecto da linguagem, quanto na linguagem utilizada, objetivando a criança com Transtorno do Espectro Autista. Já o VOZZE, proposto neste artigo, apresenta um aplicativo que não utiliza níveis de dificuldade, tentou-se criar um aplicativo que fosse o mais simples possível para utilização, pensado para a criança com TEA, focado inteiramente na comunicação do indivíduo com seus interlocutores No trabalho de Santos et al. (2012) é apresenta uma proposta de jogo chamada ROTAUT (Rotina Autista), que pretende auxiliar na rotina diária de crianças com autismo, motivados pela necessidade de ampliação de alternativas para que pais e profissionais da área (terapeutas, psicólogos, fonoaudiólogos) possam lidar com a 46
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
rigidez do apego a rotinas da criança com TEA, objetivando uma maior inserção da criança na sociedade. O Cangame Maker (2017) é um aplicativo que foi desenvolvido com o objetivo de promover o desenvolvimento cognitivo e social por meio de rotinas personalizadas de aprendizado. O principal objetivo dessa versão é permitir a construção de forma personalizada de todo o material de aprendizado de cada indivíduo. A proposta é que a personalização crie um conteúdo específico para cada usuário, utilizando fotos, áudios, vídeos e textos de apoio. Pode ser utilizada por pais, educadores e profissionais da área da saúde que trabalham o desenvolvimento da criança com TEA, através da criação de rotinas de aprendizado social, de comunicação, emprego apoiado, educação inclusiva estimulando a criatividade. Ao contrário dos trabalhos descritos, a proposta deste artigo é apresentar o MVP (Minimum Viable Product) de uma ferramenta que auxilie o processo de comunicação do indivíduo autista, levando em consideração os três aspectos da comunicação: fala, linguagem e comunicação.
3. Referencial Teórico Esta seção descreve as tecnologias e métodos utilizados para o desenvolvimento do aplicativo. Entre elas, o programa Microsoft Visual Studio, utilizado para desenvolvimento de aplicativos, Xamarin, que é responsável por toda a estrutura do aplicativo, desde o posicionamento dos botões até a sonorização dos mesmos. Os scripts foram escritos na linguagem C#, possibilitando a interação do usuário com o aplicativo, e baseamos o aplicativo no conhecido método de comunicação por pistas visuais (PECS – Picture Exchange Communication System). 3.1. Microsoft Visual Studio O Microsoft Visual Studio é um ambiente de desenvolvimento integrado (IDE) da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens Visual Basic (VB), C, C#, C++ (C Sharp) e F# (F Sharp). É também um produto de desenvolvimento na área web, utilizando a plataforma ASP.NET, com web sites. Aplicativos web, serviços web e aplicativos móveis, que é o caso deste trabalho (Impacta Blog, 2017). 3.2. Scripts em C# O script é um componente essencial para criação de qualquer aplicativo pois ele é o roteiro que o sistema operacional vai seguir e traz informações que são processadas e transformadas em ações, seu passo a passo para que um aplicativo ou sistema funcione adequadamente em um PC ou dispositivo móvel. E no desenvolvimento dos scripts deste aplicativo foi utilizada a linguagem C#. O C# é uma linguagem de programação visual dirigida por eventos e totalmente orientada a objetos (Nagaoka, 2013). 3.3. Xamarin Xamarin é o nome de uma empresa, que também nomeia seus produtos assim. Quando se fala de Xamarin está se falando da suíte de produtos que a empresa oferece para desenvolvimento de aplicativos móveis, com ele é possível desenvolver apps móveis nativas utilizando C# (ou F#). O desenvolvimento da apps mobiles na plataforma Xamarin é feito utilizando: Xamarin.Forms, Xamarin.Android ou Xamarin.IOS (Quaiato 2016). 47
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Xamarin difere de outras tecnologias como o Cordova, onde se cria aplicações web (HTML, CSS, Javascript) aplicações essas que empacotadas como aplicações nativas mas que na realidade não são nativas. Com o Xamarin, de fato, é possível escrever aplicações que vão resultar no uso de componentes nativos e chamadas nativas de APIs, controle etc. O grande diferencial de desenvolver com o Xamarin é a facilidade que ele proporciona para o desenvolvimento móbile cross-plataform, pois utiliza apenas uma linguagem (C# geralmente) e desenvolve aplicativos para Android, Windows Phone e IOS, proporcionando assim um grande reaproveitamento da base de código, o que diminui muito o tempo de desenvolvimento. 3.4 Metodologia PECS – (Picture Exchange Communication System) Sistema de Comunicação por Troca de Figuras é um sistema que foi desenvolvido por Andrew S. Bondy, Ph.D. e Lori Frost, M.S. PECS foi criado no ano de 1985 como um sistema de intervenção aumentativo/alternativo de comunicação criado exclusivamente para indivíduos com transtorno do espectro autista (TEA) e doenças do desenvolvimento da fala (Vieira 2012). Foi utilizado pela primeira vez em um programa em Delaware o “Delaware Autistic Program”. Essa metodologia tem sido reconhecida mundialmente por focar na iniciação do processo da comunicação. A metodologia PECS não requer materiais complexos ou caros e foi criado pensando em educadores, famílias e cuidadores, por isso é facilmente utilizado em uma variedade de situações. Consiste em trocar figuras ou fotos em um caderno ou painel, conforme ilustrado na Figura 1. Com ele é possível informar o que se deseja e o que se sente, montando estruturas que outros poderão entender e diferentemente do que algumas pessoas podem vir a pensar, uma metodologia alternativa não deixa a criança acostumada a se comunicar apenas por ele. Pelo contrário, ele estimula o aparecimento e desenvolvimento de vocalizações. Uma comunicação realmente funcional e eficiente ocorre dentro de um contexto de troca entre pessoas. De forma geral, indivíduos neurotípicos podem apresentar dificuldades com a fala e com a linguagem, mas são os autistas que mais enfrentam desafios na hora de interagir.
Figura 1. Livro de figuras utilizado na metodologia PECS 48
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
4. O Vozze Este artigo apresenta o aplicativo VOZZE cujo objetivo é possibilitar que a criança com espectro autista, que não fala, possam se comunicar ou pedir algo das pessoas ao seu redor ou expressar um sentimento. Sendo inicialmente pensado apenas para as crianças com transtorno do espectro autista, ele também pode ser utilizado não apenas por indivíduos com este distúrbio, mas também por indivíduos que tem dificuldades na fala ou que não conseguem se comunicar verbalmente, pois o aplicativo serve como um intermediário entre dois interlocutores, um que precisa expressar uma necessidade ou sentimento e outro que é o receptor de tal informação. Este aplicativo também vem para auxiliar no desenvolvimento da comunicação do indivíduo com seus pares, podendo ser utilizado em conjunto com o Tratamento Sensorial que é realizado por psicólogos diariamente para ajudar na comunicação dos pacientes que não conseguem se comunicar. O aplicativo foi desenvolvido para dispositivos móveis que utilizam Android como sistema operacional, podendo ser utilizado em muitas situações como um meio de expressar um desejo ou sentimento, possibilitando que este possa ser compreendido em sua necessidade a qualquer momento. A Figura 2 apresenta o Diagrama de Casos de Uso da ferramenta proposta. É possível observar que o usuário pode configurar o aplicativo com o sexo da criança e a etnia ou cor da pele, (inicialmente temos duas definições de etnia, o que será ampliado futuramente), depois disso o aplicativo carrega o pacote com os sons e as imagens relacionadas à configuração previamente feita e o aplicativo estará disponível para utilização. Optou-se por utilizar sons gravados da voz humana em vez de uma voz robotizada, para que o usuário possa se sentir mais representado no momento da emissão do som. A partir da tela principal o usuário pode selecionar uma das opções de sentimentos: feliz, triste e raiva, ou das opções de necessidades: fome, banheiro e sono, e as opções: sim ou não disponíveis na tela para expressar sua vontade naquele momento.
Figura 2. Diagrama de Caso de Uso do Aplicativo. 49
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
4.1 Funcionamento A utilização do aplicativo é bem intuitiva e apresenta uma interface simples e fácil de ser utilizada. Ao clicar no ícone do aplicativo pela primeira vez o usuário será direcionado para uma página de configuração, onde é identificado o sexo do usuário, conforme ilustra a Figura 3.
Figura 3. Tela de Configuração.
A configuração é necessária para que seja possível definir qual pacote de imagens e sons será carregado durante a utilização do aplicativo, depois de configurada, esta página não será mais acessada. Em seguida é carregada a página principal do aplicativo com oito botões, seis representam três sentimentos (alegria, tristeza e raiva) e três necessidades básicas (comer, dormir e ir ao banheiro) e dois para sim e não. Ao selecionar o botão será emitido o som característico relacionado à imagem que aparece, por exemplo, clicando no botão onde tem uma criança deitada em uma cama o dispositivo móvel emitirá a frase “Estou com sono”, sendo o processo igual para todos os botões. Foi utilizada uma gravação da voz humana pois segundo pesquisas é mais bem aceita pelas crianças. Foi adicionado uma animação, inicialmente simples para que o interesse da criança não diminua facilmente. Ao clicar na figura, a imagem gira em sentido horário uma primeira vez, já na segunda vez a imagem cresce e se destaca das demais. Isso foi pensado para que o responsável possa identificar qual botão foi clicado pela criança. A Figura 4 ilustra no lado esquerdo à tela que é apresentada para crianças do sexo feminino e à direita do sexo masculino. Desta forma é apresentada uma opção para crianças que não conseguem se comunicar.
50
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 4. Tela que apresenta as opções de ações.
4.2 Resultados Preliminares Para validar as funcionalidades foram executados testes pelo próprio desenvolvedor. Inicialmente o aplicativo carregou perfeitamente, mas com a demora excessiva da página de configuração. Durante esta fase foi identificado um problema inicial, a página de configuração não carregava. Foi apresentado o aplicativo a uma criança com TEA, de 3 anos de idade que está começando a se comunicar. A criança demonstrou interesse no aplicativo, mas isto não foi considerado um teste válido para o aplicativo pois não foi validado o ambiente de teste. Na fase atual está se corrigindo as falhas encontrada e estão sendo projetados novos testes com os usuários.
6. Conclusões e Trabalhos Futuros Este trabalho apresenta um aplicativo para ajudar na comunicação de crianças com transtorno do espectro do autismo, especialmente as crianças com alto grau de impacto negativo na forma de comunicar. O aplicativo utiliza-se da facilidade de que as crianças de hoje lidam com a tecnologia, mas especificamente com dispositivos móveis. Por isso, é proposto um aplicativo móvel que possibilita que as crianças expressem sentimentos ou desejos, sem precisar falar. Ao identificar o ícone relacionado ao seu sentimento, a criança pode selecioná-lo e, a ferramenta emite um som com a frase respectiva à imagem. Esta ação, além do contribuir com a comunicação do indivíduo com o mundo exterior, ajuda no processo de associação do texto à ação. Testes preliminares de funcionalidade do aplicativo foram executados e detectados alguns problemas, assim que estes forem sanados serão feitos novos testes, 51
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
principalmente com o público alvo do projeto, planejando que seja em uma instituição que auxilie crianças com Transtorno do Espectro Autista e seus pais. Como trabalhos futuros planejam-se desenvolver mais opções de palavras para indivíduos que não tenham TEA, mas que também têm dificuldade na comunicação básica, com seus pares, como por exemplo, crianças que tem algum impedimento de fala, causado por agentes externos como doenças ou acidentes, que inicialmente não conhecem ou não podem se comunicar por meio da língua de sinais ou outros métodos mas que compreendam tudo ao seu redor, já que atualmente quase todas as pessoas têm um dispositivo móvel.
7. Referências Cangames Maker, Disponível em: <http://cangame.lifeupbrasil.com.br> Farias et al. (2015) “ABC Autismo – Uma Aplicação Mobile para Auxiliar no Processo Alfabetizador da Criança com Autismo” (CBIE 2015) Impacta Blog, (2017), “Você sabe o que é Visual Studio?”. Disponível em: <https://www.impacta.com.br/blog/2017/12/11/voce-sabe-o-que-e-visualstudio/> Marinho et al., (2018) “Desenho Universal para a Aprendizagem : criação e validação de um livro digital acessível”. Disponível em: < http://dx.doi.org/10.5753/cbie.sbie.2018.1878> Medeiros A. et al.(2018) “jogos acessíveis: Proposta de Portal para Alunos com Necessidades Educacionais Especiais”. Disponível em: < http://dx.doi.org/10.5753/cbie.sbie.2018.1788>
Mello, A. M. S. R. (2007) “Autismo: Guia Prático”. 7. ed. São Paulo: AMA Mendes, M. L. (2011) “Atendimento de alunos com Autismo no Centro Especializado: desafios e Possibilidades à luz da Teoria Sócio-Histórica”. Monografia (Pós-Graduação em Processos de Desenvolvimento Humano e Saúde PGPDS) – Instituto de Psicologia /IP, Universidade de Brasília – UnB. Nagaoka, T. T., (2013) Linguagem de Programação C#. Disponível em: <https://social.stoa.usp.br/thitatsuo/blog/linguagem-de-programacao-c> Passerino L. M., (2006) “Pessoas com Autismo em Ambientes Digitais de Aprendizagem: Estudo dos Processos de Interação Social e Mediação”. Disponível em: <http://dx.doi.org/10.5753/cbie.sbie.2006.51-60> Quaiato V. (2016) “O que é Xamarin”. Disponível em: < https://www.lambda3.com.br/2016/10/o-que-e-xamarin/> RODRIGUES, M. O.; OLIVEIRA, R. D. G.; DANDREA, S. V. M. TEA: Transtorno do Espectro Autista. Rede de informação e formação. Educação especial/ AEE- Educação infantil. Presidente Prudente, 2013. SANTOS et al.(2012) “Proposta de Jogo usando Tecnologias Assistivas para Auxilio na Rotina Diária de Criança com Autismo”, http://propi.ifto.edu.br/ocs/index.php/connepi/vii/paper/view/3634 52
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Techtudo (2013) “O que são scripts; entenda para o que servem”. Disponível em:<https://www.techtudo.com.br/noticias/noticia/2013/12/o-que-sao-scriptsentenda-para-o-que-servem.html> VALDEZ, Daniel. Necesidades educativas especiales: en transtornos del desarrolo. Buenos Aires: Aique Grupo Editor, 2007. VIEIRA, S. C. P.(2012) O que é PECS. Disponível em: <http://www.revistaautismo.com.br/edicao-2/o-que-e-pecs> TISMOO, Os diferentes aspectos da comunicação da pessoa com TEA, Disponível em:< https://medium.com/tismoo-biotecnologia/os-diferentesaspectos-da-comunica%C3%A7%C3%A3o-da-pessoa-com-tea-7281247336a7>
53
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Viés em Aprendizagem de Máquina: como a inteligência Artificial pode prejudicar as minorias Jéssica Luana Oliveira de Lima1, Marcela Pessoa1,2, Sergio Cleger1,2,3 1
2
Fundação Centro de Análise, Pesquisa e Inovação Tenológica – Faculdade Fucapi Manaus – Amazonas – Brasil
Escola Superior de Tecnologia – Universidade do Estado do Amazonas EST/UEA Manaus – Amazonas – Brasil 3
SIDIA Instituto de Ciência e Tecnologia - SIDIA Manaus – Amazonas – Brasil
jessicaluana2693@gmail.com, msppessoa@uea.edu.br, s.tamayo@sidia.com
Abstract. This paper presents an analysis of the impact that social bias causes on machine learning algorithms and may perpetuate some biases if they are not addressed. For this, it describes the functioning of machine learning, cases of prejudice by the Artificial intelligence system and the importance of diversity in the area, besides the need to facilitate access to knowledge about the subject, as well as the importance of having data open and accessible to all. Resumo. Este artigo apresenta uma análise do impacto que o viés social causa nos algoritmos de aprendizagem de máquina e podem perpetuar alguns preconceitos se estes não forem tratados. Para isso, descreve o funcionamento de aprendizagem de máquina, casos de preconceito por parte de sistema de inteligência Artificial e a importância da diversidade na área, além da necessidade de se facilitar o acesso ao conhecimento sobre o assunto, bem como a importância de ter dados abertos e acessíveis a todos.
1. Introdução Inteligência Artificial (AI) é a construção de computadores, algoritmos e robôs capazes de simular a inteligência humana, máquinas com capacidades como: aprender, resolver problemas, fazer escolhas e racionalizar. Ao contrário da computação tradicional, a IA pode tomar decisões em uma variedade de situações que não foram pré-programadas por um ser humano (Teixeira 1990). Existem duas vertentes da IA, que são: Inteligência Artificial Forte e Inteligência Artificial Fraca. A Inteligência Artificial Fraca está relacionada com a construção de máquinas ou softwares inteligentes, porém, que não são capazes de raciocinar e tomar decisões por si próprias. Por outro lado, a Inteligência Artificial Forte está relacionada à criação de máquinas que tenham autoconsciência e que possam pensar; e não somente simular raciocínios (Searle 1980). Entre os cientistas existe uma grande preocupação com o futuro da IA forte, retratado muitas vezes por filmes onde acontece o apocalipse robótico e as máquinas dominam o mundo, porém está prestando menos atenção aos problemas gerados pela IA Fraca, que já é presente em nossas vidas, e como evitar que esses programas sejam amplificados e causem mais desigualdades devido a ideais e comportamentos humanos
54
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
antigos que têm sido propagados até hoje e consequentemente as máquinas têm aprendido e repetido este comportamento, ou seja, por culpa de preconceitos do passado a IA pode afetar negativamente os membros mais “vulneráveis” da nossa sociedade. Os algoritmos de Inteligência Artificial trazem possibilidades magníficas de otimização de trabalho, personalização da experiência e outras transformações positivas, mas também trazem riscos e desafios que precisam ser conhecidos e considerados antes de sua adoção. A possibilidade de criar máquinas inteligentes levanta uma série de questões éticas das quais pouco são discutidas e difundidas no meio tecnológico e social. É preciso ter a consciência de que esses algoritmos são programados por pessoas que injetam nesses códigos visões de mundo e viés pessoais. Além disso, esses algoritmos são treinados com um grande volume de dados preexistentes que podem conter distorções (Vieira 2019). Este artigo está organizado da seguinte forma. Na Seção 2 é apresentado o referencial teórico. Na Seção 3 são apresentadas as iniciativas que tentam diminuir preconceitos em diversas áreas. A Seção 4 apresenta uma análise comparativa sobre a influência de viés nas ferramentas que utilizam IA e na Seção 5 é apresentada a conclusão.
2. Referencial Teórico Nesta seção são descritos os conceitos necessários para o entendimento e valorização da proposta. 2.1. Aprendizagem de Máquina Aprendizagem de máquina (machine learning) é dar a uma máquina a habilidade de aprender, mesmo que nem tudo esteja explicitamente programado. Contudo, existem duas grandes divisões iniciais de formas pelas quais a aprendizagem de máquina pode ocorrer: aprendizagem de máquina supervisionada e aprendizaem de máquina nãosupervisionada. Neste trabalho são abordados aspectos de aprendizagem supervisionada, que está sendo descrita na subseção a seguir. 2.2.1 Aprendizagem Supervisionada Resume-se na conexão de uma distribuição conjunta de variáveis X (suas características, features ou as colunas de uma tabela de dados) em uma variável alvo y (o target, uma determinada coluna da tabela que se tem o interesse de prever). É suposto que haja um conjunto classificado de exemplos, ou seja, registros na tabela que possuam o valor de y para que se possa treinar um modelo que aprenderá a fazer essa conexão. O resultado obtido é um modelo que é capaz de conectar novos exemplos vindos da distribuição conjunta X à valores de y, ou seja, prevê-los. 2.2. Erros em Aprendizado de Máquina Um dos grandes temas em aprendizado de máquina é o conflito entre viés (bias) e variância (variance). O erro de generalização de um algoritmo de aprendizado, o quão bem ele pode prever novos casos, pode ser decomposto em viés e variância. Entre os erros é possível citar: Erro sistemático: o viés, também chamado de erro sistemático, é sobre o algoritmo não ser capaz de expressar a forma funcional de como aquele fenômeno se dá.
55
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Ou seja, por mais que sejam usadas amostras diferentes ou maiores, ele nunca se aproximará do valor real que quer se estimar, pois não é capaz. Erro aleatório: a variância, chamada também de erro aleatório, captura nuances das amostras, uma vez que tende a construir regras complexas demais sem a quantidade de exemplos necessária. Underfitting: se existe um modelo com o viés alto (underfitting), o erro será alto. Se for feito amostragem aleatória do conjunto de treinamento (bootstrapping) e forem treinados 10 modelos, serão obtidas 10 previsões muito parecidas entre si, porém, todas serão ruins. Overfitting: no caso de um modelo com o erro de variância alto (overfitting), se forem feitos os treinamentos, vão obter-se 10 previsões bem diferentes entre si, sendo que algumas podem passar bem próxima do valor real, enquanto outras passariam longe. A Figura 1 ilustra a comparação entre underfitting e overfitting.
Figure 1. Gráfico de modelos em IA
2.1.3. Viés em estatística É o desvio sistemático do valor real, ou seja, é o desvio por não coincidir com o valor real e é sistemático por acontecer consistentemente, em média (Uriel 2013). Então é dito que um estimador, ou seja, uma abordagem para estimar (encontrar uma aproximação) um parâmetro, que é uma característica real de algo, como a média de uma população, é não viesado se na média o estimador é igual ao valor real. Estamos falando do viés, que pode estar ou não contido no estimador, isto é, na abordagem usada para acessar o valor real de um parâmetro que é desconhecido, que é impossível ou muito custoso de ser medido diretamente (Uriel 2013). 2.3. Problema: Com quem as máquinas estão aprendendo? Em aprendizado de máquina deseja-se aprender uma relação ou fenômeno para que haja uma análise e uma previsão. É necessária uma base de dados para que a máquina possa aprender todas as regras que informam como as características podem predizer um possível caso. Como exemplo disso podemos mencionar as análises de crédito, diagnósticos de doença, entre outras. O grande problema da questão é como essa base foi construída? os dados são tendenciosos? como fazer uma previsão justa? o que poderia ser aceito como justo?
56
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Nem sempre há o que possa ser considerado como verdade (ground truth) para um fenômeno. E há casos em que só se pode observar a variável alvo de uma decisão, que pode ter sido tomada baseada em um modelo pré-existente (Moneda 2019). Pode-se afirmar que a variável alvo de um modelo de aprendizagem é a principal fonte do que é chamado de viés, que consiste em um erro sistemático na previsão dos resultados (Moneda 2019). 2.3.1 Causas dos problemas nos algoritmos O fato de que um modelo necessita aprender com o passado e aplica as regras no presente, o que influencia o futuro e os novos dados que realimentarão os modelos, portanto, ele propaga viés do passado; Regras, preconceitos e viés são aprendidos pelos modelos tendo a variável alvo construída com embasamento de anotações geradas pela ação de humanos; Nem sempre é possível observar a formação da variável alvo, o modelo pode ser a causa disso. Um modelo que é usado para conceder crédito não vai possibilitar que se observe como bom ou mal pagador uma pessoa que teve o crédito negado. Quando pensamos em algoritmos de aprendizado de máquina, podemos definir como um conjunto de regras matemáticas que irão automatizar um processo anteriormente realizado por um humano. A tecnologia, na verdade, não muda a realidade, mas sim potencializa o contexto já existente. É por esse motivo que O'Neill (O’Neil 2009) afirma que os algoritmos são como armas matemáticas de destruição, na medida em que, longe de serem neutros e objetivos, embutem em seus códigos uma série de decisões e opiniões que não podem ser contestadas, até porque não são conhecidas. “Esqueça deles por um minuto, eles podem dizer, e foque em todas as pessoas que conseguem ajuda com os nossos algoritmos de recomendação: que encontram músicas que amam, conseguem o emprego perfeito no Linkedin ou até encontram o amor da vida delas e ignore as imperfeições” (O’Neil 2009).
3. Iniciativa para minimizar os impactos Com a presença cada vez mais marcante da IA, maior também é a necessidade de igualdade de gênero, já que a própria natureza do aprendizado de máquina exige a diversidade. Um dos objetivos da IA é levar máquinas a fazer o que humanos fariam naturalmente: reconhecer falas, tomar decisões e saber a diferença entre uma feijoada e um caldinho de feijão. Para fazer isso, as máquinas precisam de grandes quantidades de informações e as processam assim como todos nós absorvemos informações desde o nascimento. A IA não é só mais uma tendência e sim um mecanismo poderoso de mudança social e apesar dela estar cada vez mais útil e fácil de usar, falta deixá-la ao alcance de todos, para que os próprios algoritmos possam cobrir a sociedade como um todo, sem que haja privilégios ou a falta deles para qualquer ser humano (Vieira 2019). 3.1. Diversidade, inclusão e democratização de conhecimento “A democratização do aprendizado de máquina é o assunto do momento, mas eu realmente acredito nisso. Tenho como missão pessoal democratizar esse conhecimento na tentativa de trazer diversidade para essa área. Temos que mostrar para todas as
57
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
mulheres e outras minorias dentro da TI que a IA não é mágica, é matemática” (Robson 2011).. A grande pergunta para a solução descrita pelos cientistas da área é “Como criar laboratórios e espaços de trabalho mais inclusivos?” diversas pessoas e projetos estão concentrados nesse desafio. A seguir são descritos alguns. 3.1.1. AI4ALL É uma organização sem fins lucrativos que tem o objetivo de promover a diversidade na IA e conta com especialistas em genômica, robótica e sustentabilidade como mentores. A ONG trabalha para aumentar a diversidade e a inclusão na inteligência artificial, criando pipelines para talentos sub representados por meio de programas de educação e orientação em todo os EUA e Canadá, que dão aos alunos do ensino médio a exposição antecipada à AI para o bem social. A organização se baseia no trabalho desenvolvido pelo programa SAILORS, mas também abrange as minorias raciais e os estudantes de baixa renda por meio de parcerias com outras universidades além de Stanford, como Princeton, Berkeley e Carnegie Mellon (Ito 2017). 3.1.2. SAILORS O SAILORS foi criado em 2015 por Fei-Fei Li, cientista-chefe de IA e aprendizado de máquina no Google Cloud e pela então estudante Olga Russakovsky, que agora é professora assistente da Universidade de Princeton, para aumentar a igualdade de gênero no setor da tecnologia. Já que, segundo uma pesquisa feita no vale do Silício, no setor de IA, as mulheres ocupam menos de 20% dos cargos executivos. É uma área muito grande para tão poucas mulheres, especialmente tendo em vista que cada vez mais pessoas usam a IA para facilitar a vida. Com a presença cada vez mais marcante desses mecanismos, maior também é a necessidade de igualdade de gênero, já que a própria natureza do aprendizado de máquina exige a diversidade (Ito 2018). “Nosso objetivo era reformular o ensino da IA para promover a diversidade e estimular a participação de alunos com diferentes históricos de vida” (Li, 2015). 3.1.3. Code Next O Code Next é um projeto do Google, na cidade de Oakland, que faz um esforço para encontrar e fomentar a próxima geração de líderes tecnológicos negros e hispânicos. “Nossa pesquisa mostra que 51% dos estudantes negros e 47% dos estudantes hispânicos na Califórnia não têm acesso a aulas de informática na escola. Sem esse acesso, os alunos não conseguirão descobrir o interesse em Ciência da Computação, nem conseguirão ser inseridos nas possibilidades que os acompanham. O Code Next preenche essa lacuna com um currículo para iniciar os alunos e oferece oportunidades que poderiam estar fora do alcance” (Thomas 2016). 3.2. Iniciativas e Dados abertos Iniciativas como a Diversity.ai e OpenAI defendem que os algoritmos sejam auditáveis. É preciso conhecer quais bases de dados foram utilizadas para os treinamentos e quais
58
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
são os critérios utilizados para processá-las, pois só assim a sociedade estará segura para poder ter controle sobre as decisões que afetam suas vidas. No Brasil já existem iniciativas para a construção de grandes bases de dados compartilhadas e abertas, como a Serenata.ai e a Colaboradados para que diferentes algoritmos possam utilizá-las em seus treinamentos e para que eventuais viés sejam passíveis de identificação e correção por todos (Vieira 2019).
4. Estudo de Casos Nesta seção são evidenciados alguns casos de algoritmos que refletem preconceitos sociais que perduram anos, como por exemplo: sexismo, machismo e racismo. 4.1 Casos de Sexismo e Machismo pelos Algoritmos Programas de pesquisa desenvolvidos, utilizando Inteligência Artificial, por grandes empresas resultaram em uma série de erros que refletem antigos preconceitos da sociedade. Uma pesquisa da Universidade de Virgínia demonstrou como algoritmos, treinados com duas grandes bases de dados de fotos reproduziam preconceitos. Ao analisarem fotos de pessoas nas mais diversas situações, classificaram erroneamente homens como se fossem mulheres quando eles estavam na cozinha (Vieira, 2019). A Figura 3 ilustra um exemplo do erro do algoritmo.
Figura 3. Resultado do algoritmo.
Um programa de reconhecimento de imagens do Google Photos classificou os rostos de dois amigos negros como gorilas, Figura 4. Segundo o furo de reportagem do jornal americano Reuters, a Amazon que teve que descontinuar o uso de uma ferramenta de recrutamento que estava penalizando candidatas mulheres ao darem preferência aos candidatos masculinos (Dastin 2018).
59
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 4. Falha no software de reconhecimento facial do Google Photos
Um dos casos mais famosos que aconteceu foi com o chat da Microsoft chamado Tay que passou um dia aprendendo e interagindo no Twitter e começou a publicar mensagens anti-semitas e de cunho preconceituoso no Twitter (Veja 2016). A Figura 5 ilustra exemplos das mensagens.
Figura 5. Tay, o projeto de Inteligência Artificial da Microsoft
4.2 Caso COMPAS Existe também um dos casos mais famosos sobre viés em aprendizado de máquina, o Correctional Offender Management Profiling for Alternative Sanctions (COMPAS), que era composto por um modelo para prever a probabilidade de reincidência criminal para indivíduos em julgamento, já que há um custo em manter em custódia alguém que não gerará dados à sociedade até que ele seja julgado, assim como é danoso deixar em liberdade quem irá cometer delitos neste tempo.
60
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Porém, ao ter a sua efetividade analisada, o modelo mostrou-se problemático de um ponto de vista racial. O modelo previa erroneamente que uma pessoa negra seria reincidente em uma taxa de 44.9%, duas vezes maior do que a taxa para brancos (23.5%). E pessoas brancas que de fato tornavam-se reincidentes eram previstas como seguras em 47.7% dos casos, enquanto isso acontecia em apenas 28% dos casos com pessoas negras (Farid 2018). 4.3 Caso Google Translate Ao acessar o Google Tradutor e escrever a frase “Ela é médica e ele é enfermeiro” em português e requisitar que a ferramenta traduza esta frase para alguma língua de país muçulmano e depois traduzir novamente a mesma frase escrita na língua escolhida (de país muçulmano) de volta para o português é percebido que a frase muda para “Ele é médico e é enfermeira”, conforme ilustrado na Figura 6. Observa-se claramente o viés social nos países mulçumanos onde não é permitido a mulheres exercerem algumas profissões.
Figure 6. Imagem tirada do Google Tradutor.
Figura 7. Imagem retirada interação com o chatbot SimSimi.
61
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Ao interagir com o chatbot SimSimi, que utiliza inteligência artificial para interagir com seus usuários. Foi constatado que o mesmo, além de ter uma métrica para o uso de palavrões, proferia respostas preconceituosas a algumas perguntas, conforme ilustrado na Figuras 7 e 8.
Figura 7. Interação com o chatbot SimSimi e métrica de palavrões
5. Conclusão Os dados que alimentam as máquinas refletem a história de desigualdade social em que muitas pessoas vivem. Estamos, na verdade, dizendo aos programas que aprendam nossos próprios preconceitos, uma vez que as máquinas só podem trabalhar a partir das informações que lhes são dadas, sendo assim, estamos criando robôs para refletir nossos piores defeitos. Em um mundo ideal, sistemas inteligentes e seus algoritmos seriam: objetivos, frios e imparciais, mas esses sistemas são construídos por seres humanos, sendo assim, os principais desafios para criar uma inteligência artificial neutra, são: o acesso fácil ao conhecimento de aprendizado de máquina, a diversidade nos ambientes de tecnologia e a promoção da transparência e a abertura em conjuntos de dados algorítmicos. É extremamente necessário estimular o interesse em conhecer sobre o funcionamento dessas novas tecnologias, assim como a criação de mecanismos e regras para seu uso, permitindo um controle sobre o seu poder de decisão e de influência sobre a vida dos usuários, deixando de apenas utilizar caixas pretas sobre as quais não temos nenhum controle. Posto isto, este trabalho tem como objetivo mostrar evidências de como os preconceitos humanos estão refletindo nos algoritmos de aprendizagem. Trabalhos como estes são importantes uma vez que chama a atenção para um problema que muitas vezes passa despercebido.
62
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Referencias Dastin Jeffrey. (2018), “Amazon scraps secret AI recruiting tool that showed bias against women”, em: Jornal Reuters, São Francisco, Estados Unidos da América. Dressel, J e Farid, H. (2018), “The accuracy, fairness, and limits of predicting recidivism”, em: Science Journals - American Association for the Advancement of Science. Nova York, Estados Unidos da América. Farid, Hanry. (2018), “The accuracy, fairness, and limits of predicting recidivism”, em: Science Journals - American Association for the Advancement of Science. Nova York, Estados Unidos da América. Fórum Econômico Mundial. (2018) “The Global Gender <http://www3.weforum.org/docs/WEF_GGGR_2018.pdf>
Gap
Report”.
Hipsters.tech Podcast. “Desafios em Machine Learning”, com cientistas da área como:Mariana Jó, engenheira de dados na EDwall, Luis Moneda, cientista de dados no Nubank, Roberta Arcoverde, desenvolvedora no Stack Overflow. <https://hipsters.tech/desafios-em-machine-learning-hipsters-137/> Ito, Roberto. (2018) “A inteligência artificial precisa aprender com o mundo real. Não basta criar um computador inteligente, é preciso ensinar a ele as coisas certas”, em: Artigo do Google, Nossas Histórias. Moneda, Luis. (2019) “Bias em Ciência de Dados”, em: Curso de ciencia de dados. <http://lgmoneda.github.io/2019/01/14/bias-data-science.html> Nilka, Thomas. (2016) “Code Next: um compromisso para cultivar jovens líderes tecnológicos negros e hispânicos”, em: Blog de noticias do Google. O’Neil, Cathy. (2016) “Weapons of math destruction: how big data increases inequality and threatens democracy”, primeira edição. Editora: New York: Crown Publishers. Ordonez, Vicente. (2017) “Men Also Like Shopping: Reducing Gender Bias Amplification using Corpus-level Constraints”, em: Universidade Cornell, Bangladesh. Robson C, Kandel S, Heer J, Pierce J. (2011), “Data collection by the people, for the people”, em: Conference CHI'11, Vancouver, Canada. SEARLE, J. (1981), “Minds, brains, and programs”, Behavioral and Brain Sciences, vol 3, em: Berkeley, California. Teixeira, J. F. (1990), O que é Inteligência Artificial, São Paulo: editora Brasiliense. Uriel, Ezequiel. (2013) “The simple regression model: estimation and properties”, em: Universidade de Valencia, Espanha. Vieira, Carla. (2019) “Inteligência Artificial: a caixa preta que prejudica as minorias”, em: Publicação do site de notícias Imasters. <https://imasters.com.br/desenvolvimento/inteligencia-artificial-caixa-preta-queprejudica-minorias>
63
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Uma Análise Comparativa de Funções de Utilidade para o Algoritmo Minimax Aplicado ao Jogo da Onça Felipe G. L. do Nascimento, Elloá B. Guedes 1
Grupo de Pesquisa em Sistemas Inteligentes Laboratório de Sistemas Inteligentes Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200 – Manaus – Amazonas {fgldn.eng, ebgcosta}@uea.edu.br
Resumo. O Jogo da Onça é um legado cultural indígena brasileiro, caracterizado por um jogo de tabuleiro assimétrico no qual uma onça enfrenta catorze cachorros. Com vistas a desenvolver um jogador automático e inteligente para um desses personagens, este trabalho tem por objetivo analisar comparativamente diferentes funções de utilidade no contexto da busca adversarial com o algoritmo Minimax. Os resultados preliminares mostram a dificuldade na concepção destas funções e sugerem haver um personagem com mais probabilidade de vitórias que seu oponente. Abstract. The Jaguar Game is a Brazilian indigenous cultural legacy characterized by an assimetric board game in which a jaguar duels with fourteen dogs. Aiming at developing an automatic intelligent player for one of this characters, this work intends to compare different utility functions in an adversarial search context using the Minimax algorithm. Preliminary results reveal challenges upon conceiving such functions and suggest that one of the players has a higher victory probability than its opponent.
1. Introdução Com o advento da Computação, muitas estratégias ligadas à Inteligência Artificial (IA) passaram a ser desenvolvidas para jogos, permitindo que o computador viesse a ser um adversário notável em certas modalidades. Para os pesquisadores da IA, este domínio é interessante, pois: (i) sua natureza abstrata facilita o estudo; (ii) existe uma severa dificuldade de resolução deste tipo de problema; (iii) eventualmente há a impossibilidade de tomar decisões ótimas; e (iv) as más estratégias são severamente punidas [Russel e Norvig 2016]. Os primeiros relatos da utilização de técnicas da IA em jogos remontam ao ano de 1979. Desde então, diversas técnicas têm sido elaboradas e aplicadas em jogos visando a construção de algoritmos que simulem jogadores humanos, promovendo a competitividade. Algumas soluções, inclusive, fornecem ao computador características sobrehumanas, resultado do altíssimo poder de processamento computacional e do desenvolvimento de estratégias que permitem a análise das consequências muitíssimas jogadas à frente [Millington e Funge 2009]. Os mais notórios progressos da IA aplicadas aos jogos estão no âmbito de Xadrez e Go [Hsu 2002, Chen 2016].
64
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Na tradição indígena brasileira, entretanto, há um jogo de tabuleiro, denominado “Jogo da Onça”, para o qual jogadores automáticos e inteligentes ainda não foram propostos na literatura, o que motivou a realização deste trabalho. Este jogo possui algumas particularidades muito específicas, tais como o fato de haver um número desigual de peças, havendo catorze cachorros versus uma onça, um tabuleiro assimétrico e tipos de jogadas e objetivos diferentes para os adversários. Considerando os desafios mencionados, este trabalho almeja propor, avaliar e analisar a proposição de diferentes funções de utilidade para os personagens do Jogo da Onça. Para tanto, considera a exploração da árvore de jogo segundo o algoritmo Minimax, uma estratégia tipicamente adotada para o desenvolvimento de jogadores automáticos em cenários de busca adversarial. Para apresentar os resultados obtidos, este trabalho está organizado como segue. A fundamentação teórica encontra-se descrita na Seção 2, abordando os conceitos relativos ao Jogo da Onça e ao algoritmo Minimax. Os materiais e métodos utilizados neste trabalho são descritos na Seção 3. Os resultados e a discussão são apresentandos na Seção 4. Por fim, na Seção 5, são postas as considerações finais e as perspectivas de trabalhos futuros.
2. Fundamentação Teórica Nesta seção serão apresentados dois conceitos centrais ao entendimento deste trabalho: o Jogo da Onça, suas características e regras, e o algoritmo Minimax. 2.1. Jogo da Onça O chamado Jogo da Onça é um jogo de tabuleiro da cultura indígena brasileira em que há dois tipos de personagens: onça e cachorro. A onça, representada por uma única peça, movimenta-se de maneira similar aos elementos do popular Jogo de Damas, podendo saltar sobre os cachorros a fim de comê-los e, portanto, eliminá-los. Um total de catorze cachorros, o outro tipo de personagem, deve atuar de maneira coletiva com vistas a imobilizar a onça. Vence aquele que primeiramente alcançar seu objetivo [Calderaro 2006]. Na tradição indígena, o tabuleiro é desenhado na areia batida e pedras ou grãos atuam na representação das peças do jogo. O tabuleiro é composto por figuras geométricas simples, como quadrados e triângulos, dispostos conforme ilustrado na Figura 1a. As interseções, chamadas de vértices e representadas como círculos na referida figura, representam as casas do tabuleiro, que é composto por 31 destas. Cada casa possui duas ou mais casas adjacentes. Uma casa é dita ser adjacente a outra quando há uma aresta que as conecta. O triângulo que se externa do quadrado na parte inferior é chamado de “toca da onça”. A disposição inicial das peças no tabuleiro é mostrada na Figura 1b. A partir desta configuração, o jogador com a onça faz o primeiro movimento e então os jogadores se alternam a cada turno. As peças existentes, quer seja onça ou cachorro, podem se movimentar para quaisquer casas adjacentes do tabuleiro, desde que estas estejam vazias, uma casa por vez. A onça captura um cachorro de maneira análoga ao Jogo de Damas, fazendo um salto por cima do cachorro para uma casa vazia adjacente. Quando possível, também pode capturar vários cachorros de uma só vez com saltos duplos ou triplos, com a diferença que neste cenário tal feito não é de natureza obrigatória. Esta personagem vence quando consegue capturar cinco cachorros. O cachorro, por sua vez, não possui nenhum 2 65
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 1: Representações do tabuleiro do Jogo da Onça. A letra ‘c’ denota o cachorro e a letra ‘o’ denota a onça. (a) Disposição das casas no tabuleiro.
(b) Configuração inicial do jogo.
movimento de ataque, porém se faz em maior quantidade no tabuleiro. O jogador com os cachorros não pode capturar a onça, apenas mover as peças de forma a encurralá-la, deixando-a sem possibilidade de movimentos [Secretaria Municipal de Educação 2016]. Além das vitórias da onça ou do cachorro, é possível haver empates. Estes ocorrem quando, durante uma partida, for comprovado que uma posição se repetiu quatro vezes. É o chamado empate pela repetição de lances, que deve ser reclamado pelo jogador no momento em que ocorrer [Secretaria Municipal de Educação 2016]. O empate ocorre quando há falta de combatividade entre os jogadores, situação não desejada no contexto de um jogo entre adversários. Este jogo tem por objetivo proporcionar, de maneira lúdica, o desenvolvimento do raciocínio lógico, dedutivo e a criação de estratégias. Cita-se também a colaboração no desenvolvimento de aspectos sociais, como a convivência em coletividade e a elaboração de inúmeras estratégias de sobrevivência, aprendizados essenciais para a vida adulta [Bettin e Pretto 2016]. Uma perspectiva também enfatizada por outros autores que ressaltam a relevância deste jogo diz respeito à etnomatemática, ou seja, ao aprendizado não-formal de conceitos matemáticos, incluindo neste caso, por exemplo, as figuras geométricas existentes no tabuleiro [de Oliveira Sardinha e Gaspar 2010]. 2.2. Algoritmo Minimax Na âmbito da Teoria dos Jogos, os tipos de jogos de tabuleiro variam bastante quanto ao número de jogadores, objetivos de cada jogador, quanto à informação que cada jogador tem sobre o jogo e quanto aos algoritmos de IA que podem ser aplicados ao mesmo e que fazem com que um computador simule um dos jogadores [Millington e Funge 2009]. Um dos algoritmos de IA mais comumente aplicados a jogos de Tabuleiro é o Minimax [Millington e Funge 2009]. O Minimax atua efetuando uma busca na árvore de jogo – uma árvore em que os nós são estados de jogo e as arestas são possíveis movimentos do jogador da vez, para 3 66
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
aquele estado. Um estado de jogo caracteriza-se por uma disposição ou configuração de peças no tabuleiro [Russel e Norvig 2016], como o estado inicial do Jogo da Onça, apresentado anteriormente na Figura 1b. Uma árvore de jogo completa contém todos os estados possíveis de um jogo. A Figura 2 exemplifica uma árvore para o Jogo da Onça, em que os círculos representam diferentes estados de jogo. Cada nível contém um conjunto de estados distintos referentes a um jogador específico, situação característica de jogos baseados em turnos. Os estados destacados em cinza simbolizam estados finais – os nós folha da árvore de jogo – , nos quais o jogo termina, ou seja, ou um dos jogadores ganha ou há empate. Figura 2: Representação abstrata de uma árvore para o Jogo da Onça.
Gerar uma árvore de jogo completa significa encontrar todas as jogadas distintas que podem ocorrer durante qualquer partida, o que na maioria das vezes torna-se computacionalmente intratável, pois a maioria dos jogos de tabuleiro possuem uma quantidade colossal de estados de jogo – a exemplo do Xadrez que, segundo Russel e Norvig, possui cerca de 1040 estados de jogo distintos [Russel e Norvig 2016]. Para contornar esta dificuldade, utiliza-se uma árvore de busca para se referir a uma árvore que está sobreposta a uma árvore de jogo completa. O algoritmo Minimax, por sua vez, atua obtendo estimativas de melhor jogada para um determinado personagem a partir do estado corrente e da árvore de busca. Para cada estado, um valor minimax é calculado a partir de jogadas futuras, simuladas recursivamente, supondo-se que ambos os jogadores tenham um desempenho ótimo. Assim, deseja-se maximizar o desempenho de um dos jogadores em detrimento da minimização do desempenho do adversário. De tal modo, o valor minimax determina então uma estragégia ótima para cada estado da árvore de jogo e corresponde à utilidade para um estado. Dessa maneira, o algoritmo Minimax percorre todo o caminho descendente até os estados finais (folhas) e propaga os melhores valores minimax de volta pela árvore, conforme termina a recursão, segundo uma estratégia de backtracking [Russel e Norvig 2016]. Para um melhor entendimento deste algoritmo, a Figura 3 ilustra a estratégia adotada pelo mesmo, em que nós 4 são estados que se deseja maximizar e os nós 5, estados que se deseja minimizar. As arestas a1 , a2 , a3 representam diferentes jogadas para o estado A, o mesmo vale para estados B e C. O algoritmo começa no nó A e desce recursivamente até B que, por sua vez, encontra 3 estados finais: 3, 12 e 8, valores que julgam o quão bom um estado é para ser maximizado. Estes números representam valores minimax 4 67
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
referentes a jogadas de minimização para o estado B. Como tem-se o desempenho ótimo, ele deve escolher a jogada que possui o menor valor, ou seja, movimento b1 com valor 3. O mesmo vale para os estados C e D. Após obter todos os valores para os estados em que o adversário joga, o algoritmo retorna ao estado A e este escolhe a jogada que maximize sua vitória – neste caso: jogada a1 de valor 3. Figura 3: Exemplo de árvore de jogo com os valores minimax para cada nó. Fonte: [Russel e Norvig 2016]
Infelizmente, como mencionado, explorar toda uma árvore de jogo é uma tarefa intratável. Para contornar esta situação, uma busca na árvore de jogo realizada pelo algoritmo Minimax é feita até um certo ponto – um limiar –, geralmente definido por um nível na árvore a ser descendido na busca. Acontece que após explorar todos os nós abaixo deste limiar, há a possibilidade de a recursão não encontrar um estado final, fazendo com que não haja retorno de valor no algoritmo. É neste cenário em que as funções de utilidade exercem um papel estratégico: se ao chegar neste limiar o algoritmo não encontrar nenhum estado final, a função de utilidade de estado é chamada para retornar uma estimativa que aquele estado teria se a árvore de jogo completa fosse considerada. O projeto de funções de utilidade deve levar em conta conhecimentos a respeito do jogo em si, pois toda a informação estratégica do Minimax sobre qual melhor jogada futura a ser realizada é capturado exclusivamente por esta função. Desta maneira, no cerne da elaboração de bons jogadores inteligentes usando Minimax, reside o projeto das funções de utilidade.
3. Materiais e Métodos Para alcançar os objetivos propostos neste trabalho, primeiramente será considerada uma investigação dos conceitos de IA aplicada a jogos e de como estes ocorrem no Jogo da Onça, visando atribuir uma caracterização compatível dos elementos presentes neste jogo com a nomenclatura formal da referida área. Isto auxiliará na identificação dos elementos de interesse e de como devem ser projetados, implementados e aferidos. Em analogia com outros jogos de tabuleiro, a modelagem segundo uma busca adversarial tem se mostrado mais compatível. Em seguida, para construir um jogador inteligente para o Jogo da Onça segundo esta abordagem de busca, é essecial projetar uma boa função de utilidade, isto é, uma 5 68
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
estimativa do estado atual do tabuleiro e da sua relação com a vitória ou derrota no jogo [Russel e Norvig 2016]. De acordo com a literatura [Millington e Funge 2009, Capítulo 8], uma função de utilidade apropriada possui características particulares, tais como: se o tabuleiro está numa configuração final, esta função deve retornar a pontuação máxima quando o jogador a que se refere vence o jogo, e a pontuação mínima em caso contrário; nas demais situações, deve refletir um número de pontos compatível com a proximidade do jogador de ganhar ou perder o jogo. Porém, projetar tais funções não é uma tarefa fácil e, para contorná-la, costuma-se usar em um jogador o negativo da função utilidade do adversário ou estratégias que levem em conta a quantidade de peças adversárias, tais como no Xadrez, ou até mesmo técnicas de Aprendizado de Máquina [Russel e Norvig 2016]. No escopo deste trabalho, para o Jogo da Onça, serão consideradas diferentes funções de utilidade, visando uma comparação e análise de quais delas são mais apropriadas aos personagens a que se referem. Tanto no caso da Onça quanto do Cachorro, também serão consideradas movimentações aleatórias, como uma estratégia para projetar um jogador ingênuo, contra o qual espera-se uma vitória com alta probabilidade se o adversário for minimamente inteligente. Para traçar estratégias eficazes para os jogadores é essencial então projetar tais funções levando em conta as especificidades de cada jogador em particular, atribuindo pontuações compatíveis com as características e objetivos que possuem. Ressalta-se, em especial, a não trivialidade nesta proposição para o jogo considerado: os adversários encontram-se em número diferente, uma onça versus catorze cachorros, isto é, um jogo entre desiguais, com movimentos e objetivos diferentes, em que a missão da onça é capturar cachorros e a dos cachorros é encurralar a onça. Em contraste com os jogos de Damas e Xadrez, por exemplo, os jogadores encontram-se em mesma quantidade, com o mesmo objetivo e com o mesmo tipo de movimentação de peças. No caso do Jogo da Onça, cita-se ainda a assimetria do tabuleiro, situação pouquíssimo frequente em jogos desta natureza. Na proposição de funções de utilidade para este jogo, estabeleceu-se que os valores deveriam estar no intervalo [−1000, +1000] com pontuações intermediárias inteiras, visando aproveitar-se da eficiência da aritmética de inteiros no âmbito computacional [Millington e Funge 2009]. No caso da Onça, além das jogadas aleatórias, considerou-se a proposição de uma função de utilidade que contabiliza +200 pontos a cada cachorro capturado, de modo que se efetue uma estimativa crescente à medida que esta concretiza o seu objetivo. No caso dos Cachorros, esta proposição foi menos trivial, pois deveria considerar a inteligência coletiva das peças com vistas a encurralar a onça, ao passo que este cálculo não poderia ser custoso para fins de eficiência. Neste caso, diferentes estratégias foram traçadas e serão avaliadas individualmente. A Tabela 1 apresenta as diferentes funções de utilidade propostas e as estratégias contempladas pelas mesmas. Para avaliar as funções de utilidade consideradas, serão promovidos jogos ótimos entre os pares de funções apresentados, totalizando 10 pares de funções a serem confrontadas. Considerando o tamanho intratável de configurações de jogo existentes, é essencial adotar uma estratégia de caminhamento na árvore de jogo, com vistas a limitar o número de jogadas à frente que serão examinadas. Para tanto adotou-se então o algoritmo Minimax com profundidade de caminhamento na árvore de busca igual a 5 ou 6. As partidas consideradas terão até 25 turnos e serão realizadas 100 partidas por configuração, totali6 69
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 1: Funções de utilidade propostas para os diferentes personagens do Jogo da Onça. Funções de Utilidade da Onça
fo,0 fo,1
Jogador aleatório +200 pontos a cada cachorro capturado Funções de Utilidade do Cachorro
fc,0 fc,1 fc,2 fc,3 fc,4
Jogador aleatório −fo,1 A contagem da média de cachorros protegidos adjacentes e total de cachorros adjacentes à onça Visa simular uma ideia de matilha, em que tem-se uma pontuação relativa às distâncias entre os cachorros e a onça. A partir da distância igual a 1, esta pontuação é de [+50, +100, +10, +1] e igual a zero para distâncias superiores. Visa diminuir o número de casas livres para as quais a onça pode se mover
zando 2.000 partidas a serem executadas e contabilizadas. Destes jogos será considerado o quantitativo de partidas concluídas com vitória da onça, partidas concluídas com vitória do cachorro e partidas não concluídas. O ambiente computacional utilizado para executar tais confrontos consiste de um computador desktop com processador Intel Core i5, 8GB de memória RAM, placa gráfica GTX 1050 4 GB e 500 GB de disco rígido. A linguagem de programação Python será utilizada para implementar o Jogo da Onça em si, considerando o paradigma de programação orientado a objetos, e também será utilizada para automatizar o cenário de testes contemplado e para computar e analisar as métricas de interesse.
4. Resultados e Discussão Conforme a metodologia elencada para realização deste trabalho, o primeiro passo consistiu na identificação dos conceitos de IA no âmbito do Jogo da Onça. Neste jogo, o tabuleiro é tido como o ambiente, o lugar interagível dos agentes, com característica completamente observável, ou seja, as entidades têm acesso ao estado completo do ambiente em cada instante. Neste contexto, os agentes correspondem às entidades, que podem ser artificiais (um algoritmo) ou humanas (uma pessoa), e que representam os jogadores do Jogo da Onça, sendo, portanto, um jogo multiagente. O Jogo da Onça pode ser também classificado como sendo determinístico pois, em uma determinada jogada, o próximo estado é totalmente determinado pelo estado atual e pela ação de um dos agentes, como mover uma peça ou comer um cachorro, por exemplo. Além disso, segue uma dinâmica baseada em turnos, pois os agentes se alternam em cada jogada, de maneira análoga ao Jogo de Damas, Xadrez, dentre outros jogos de tabuleiro. Na dinâmica do Jogo da Onça, um jogador ganha se o seu oponente perde. Isto o classifica como um jogo de soma-zero; a vitória de um jogador é a derrota de seu oponente. Por último, neste jogo, um agente conhece perfeitamente todas as ações que ocorreram anteriormente, assim como a posição de todas as peças em todos os momentos, ou seja, o Jogo da Onça é de informação perfeita. Cada agente sabe qual será o resultado de cada movimento e quais são as opções para o próximo passo, desde o início do jogo. Após a identificação dos conceitos, deu-se prosseguimento à implementação do Jogo da Onça utilizando a linguagem Python. Para tanto, utilizou-se o paradigma de 7 70
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
programação orientado a objetos em que foram definidas as classes necessárias e suas relações, conforme ilustrado no diagrama de classes da Figura 4. A implementação do Minimax reside no método play da Classe GameManager. A profundidade do percurso na árvore de busca e as funções de utilidade adotadas são atributos e métodos privados da mesma, respectivamente. Figura 4: Diagrama de classes do Jogo da Onça. Fonte: Autoria Própria
Utilizando o algoritmo em Python produzido, deu-se então prosseguimento ao cenário de testes para as funções de utilidade previamente estabelecido, cujos resultados encontram-se sintetizados na Tabela 2. É interessante notar que o cenário em que ambos os jogadores atuam aleatoriamente não há percurso na árvore de busca segundo o Minimax. Este cenário estabelece apenas um baseline de comparação com os demais resultados obtidos. De acordo com os resultados obtidos e sintetizados na Tabela 2, é possível fazer algumas reflexões acerca das estratégias estabelecidas para os jogadores inteligentes neste cenário. De maneira geral, nota-se que descender 5 ou 6 níveis na árvore de busca não é suficiente para ter um jogador altamente eficiente, isto é, capaz de vencer uma partida em poucos passos. No geral, também é possível afirmar que 25 turnos constituem-se de jogos majoritariamente curtos para estabelecer um campeão, visto que, independentemente da estratégia, a maioria dos jogos observados ainda não se encontra concluída. É possível observar ainda que, tanto de maneira aleatória quanto nos demais cenários, há uma predominância percentual das vitórias da onça sob a dos cachorros. O que pode sugerir que as vitórias dos jogadores não são equiprováveis, sendo maior a chance de vitória do jogador que escolhe a personagem da Onça. Pode-se afirmar ainda que, den8 71
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 2: Resultados obtidos do cenário de testes para as diferentes funções de utilidade. Função de Utilidade da Onça
Função de Utilidade do Cachorro
Limiar de Profundidade
Vitórias da Onça (%)
Vitórias do Cachorro (%)
Partidas não Concluídas (%)
fo,0 fo,0 fo,0 fo,0 fo,0 fo,1 fo,1 fo,1 fo,1 fo,1 fo,0 fo,0 fo,0 fo,0 fo,1 fo,1 fo,1 fo,1 fo,1
fc,0 fc,1 fc,2 fc,3 fc,4 fc,0 fc,1 fc,2 fc,3 fc,4 fc,1 fc,2 fc,3 fc,4 fc,0 fc,1 fc,2 fc,3 fc,4
− 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6
9 0 0 1 0 50 0 0 0 0 0 0 0 0 63 0 0 0 0
0 0 7 1 2 0 0 0 0 0 0 0 0 3 0 0 0 5 1
91 100 93 100 98 50 100 100 100 100 100 100 100 97 37 100 100 95 99
tre as estratégias avaliadas, aquela que atribiu +200 a cada cachorro capturado pela onça é a mais procedente dentre todas, visto que leva a um maior número de vitórias. Por fim, ao examinar os jogos não concluídos, foi possível também observar que falta muita combatividade por parte dos cachorros, os quais dificilmente se reunem de maneira efetiva para encurralar a onça, revelando que as funções de utilidade até então propostas não implementam estratégias producentes para conduzir à vitória deste tipo de jogador.
5. Considerações Finais e Trabalhos Futuros Este trabalho apresenta os resultados de uma análise comparativa de funções de utilidade para o algoritmo Minimax aplicado ao Jogo da Onça. Para alcançar este resultado foi necessário realizar a identificação dos conceitos de IA existentes neste jogo, relevando que o Jogo da Onça pode então ser classificado como completamente observável, multiagente, de soma-zero e de informação perfeita. Após esta identificação, realizou-se a implementação do referido jogo em Python segundo o paradigma orientado a objetos. Foram então concebidas e comparadas diferentes funções de utilidade para o Jogo da Onça considerando o caminhamento na árvore de busca segundo o algoritmo Minimax, uma vez que a árvore de jogo em si é intratável. Estabeleceu-se um cenário de avaliação, com parâmetros pré-fixados e replicabilidade, e executaram-se os jogos pré-determinados com as diferentes funções propostas. Os resultados obtidos mostraram que há uma predominância de vitórias da onça, 9 72
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
sugerindo que este jogador pode vir a ter maior probabilidade que o seu oponente. Verificou-se ainda uma função de utilidade adequada para este jogador, que acrescenta pontos à medida que captura cachorros. No geral, as funções de utilidade estabelecidas para o cachorro não foram producentes, revelando uma dificuldade em capturar na função de utilidade a inteligência coletiva que existe por trás deste agente. Considerando os desafios verificados, em trabalhos futuros deseja-se avaliar mais cenários comparativos, incluindo outras funções de utilidade e aumentando o número de turnos considerados. Almeja-se também verificar a existência na literatura de funções de utilidade aplicadas a outros jogos que possam ser úteis na modelagem de uma estratégia eficaz para o personagem do cachorro, e ainda a aplicação de outros algoritmos de busca adversarial, como o Alpha-Beta Prunning.
6. Agradecimentos Os autores agradecem o apoio financeiro provido pela Fundação de Amparo à Pesquisa do Estado do Amazonas (FAPEAM) por meio dos programas PAIC/UEA/2018-2019 e PPP 04/2017 e as sugestões providas pelos Profs. André Valente e Marcos Bandeira.
Referências Bettin, A. D. H. e Pretto, V. (2016). A construção do jogo indígena a partir da matemática. In Anais do XXI SIEDUCA – A escola já não é a mesma: novos tempos, novos paradigmas, volume 21, pages 266–273. Calderaro, K. C. L. (2006). O universo lúdico das crianças indígenas. Centro Cultural dos Povos da Amazôia. Disponível em https://bit.ly/2U3tWQS. Acessado em 11 de maio de 2019. Chen, J. X. (2016). The evolution of computing: Alphago. Computing in Science & Engineering, 18(4):4–7. de Oliveira Sardinha, A. G. e Gaspar, M. T. J. (2010). Jogos indígenas aplicados ao ensino de Matemática. In Anais do X Encontro Nacional de Educação Matemática, pages 1–10, Salvador, Bahia. Hsu, F.-H. (2002). Behind Deep Blue. Princeton University Press, Estados Unidos, 1 edição. Millington, I. e Funge, J. (2009). Artificial Intelligence for Games. Elsevier, Estados Unidos, 2 edição. Russel, S. e Norvig, P. (2016). Artificial Intelligence – A Modern Approach. Pearson, Nova Jersey, 3 edição. Secretaria Municipal de Educação (2016). O jogo da onça - aprenda a jogar. Prefeitura de São Paulo. Disponível em:https://bit.ly/2YAVX0P. Acessado em 11 de maio de 2019.
10 73
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Reconhecimento de folı́olos do guaranazeiro atacados pelo tripes por meio de imagens digitais Richardson Allan F. de Souza1 , Marcos Filipe Alves Salame2 1
Bolsista de Iniciação Cientı́fica FAPEAM 2
Analista de Tecnologia da Informação
Embrapa Amazônia Ocidental Caixa Postal 319 – 69010-970 – Manaus – AM – Brasil richardson.allan.souza@gmail.com, marcos.salame@embrapa.br
Abstract. The thrips, Pseudophilothrips adisi, is the unique arthropod specie that makes economic losses to the Amazonas State’s guarana crops. Currently, these damages are identified through the visual inspection of a expert or through laboratory analysis. This paper proposes an approach that uses Computer Vision and Supervised Machine Learning technics to the recognition of Guarana’s young leaves attacked by the thrips from a digital image. Resumo. O tripes, Pseudophilothrips adisi, é a única espécie de artrópode que causa danos econômicos aos cultivos de guaranazeiro no Estado do Amazonas. Atualmente, esses danos são identificados por meio da inspeção visual de um especialista ou através de análise realizada em laboratório. Este trabalho propõe uma abordagem que emprega técnicas de Visão Computacional e Aprendizado de Máquina Supervisionado no reconhecimento de folhas jovens do guaranazeiro atacadas pelo tripes a partir de uma imagem digital.
1. Introdução O tripes, Pseudophilothrips adisi (zur Strassen) é fitófago e se alimenta do conteúdo celular das estruturas jovens e tenras das plantas do guaranazeiro [Fontes and Tavares 2017]. Ao se alimentarem, formam numerosas e pequenas pontuações de onde sugam a seiva e causam alterações morfofisiológicas e de desenvolvimento, resultando, por fim, na redução significativa da produção de grãos de guaraná [Tavares et al. 2007]. Os danos econômicos provocados pelas altas populações dessa praga são representativos e requerem soluções para o seu controle [Tavares and Garcia 2009]. Dentre os problemas que podem ser tratados por técnicas de Aprendizado de Máquina (AM), podem ser citados: previsão e controle de pragas e epidemias, monitoramento em tempo real de animais e de safras, agricultura de alta precisão, previsão dos preços de commodities e melhoramento genético [Faceli et al. 2011]. Diante desse cenário, propõe-se o desenvolvimento de um modelo de classificação de Aprendizado de Máquina Supervisionado capaz de detectar folı́olos do guaranazeiro atacados pelo tripes por meio de uma foto capturada pela câmera de celular. Para isso, uma base de dados com imagens de folı́olos atacados (positivo) e não atacados (negativa) foi construı́da. Métodos de Visão Computacional (VC) foram aplicados para viabilizar o processo de treinamento usando as redes neurais artificiais (RNAs) e as máquinas de vetores de suporte (SVMs, do inglês support vector machines).
74
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
2. Trabalhos Relacionados Na literatura existem vários trabalhos que buscam aplicar diversas técnicas de AM e VC na detecção de danos ou doenças que acometem vários tipos de cultivos. Porém, ainda não há nenhum estudo nesse sentido aplicado a cultura do guaranazeiro. Dentre os trabalhos pertinentes, foram escolhidos os que passaram por uma fase de coleta de imagens e fizeram uso das técnicas de SVM e RNA para gerar um modelo de classificação. Em [INAMASU et al. 2011] o objetivo é diferenciar uma praga das demais que estão presentes na região da folha. Para isso, o autor digitalizou amostras da folha para evitar problemas de iluminação e segmentação. Um classificador RNA foi implementado para fazer a segmentação da imagem por cor (RGB). A imagem segmentada passou por outra RNA afim de classificar a doença. A segmentação por cor usando RNA apresentou uma acurácia de 96,04%. Já em [Santos 2015] pretende-se identificar bagas de café em uma imagem. Diante disso, imagens de cafeeiros foram tomadas em campo sob luz ambiente utilizando-se uma câmera digital SLR (CanonR EOS Rebel T3i). No processo de identificação foram usados detectores de regiões circulares como a Laplaciano da Gaussiana (LoG) e descritores para reconhecimento de objetos como o Histogramas de Gradientes Orientados (HOG) em conjunto com as técnicas de SVM e Gradient Boosting (GB). Chegando a 90% de precisão com SVM. A ideia proposta neste trabalho possui como diferencial o uso da câmera fotográfica de celulares para capturar imagens para a preparação do conjunto de dados (do inglês dataset), com o intuito de viabilizar soluções mais acessı́veis ao agricultor comum, além da geração de um modelo autônomo apto a realizar a classificação da imagem em uma cultura especı́fica, o guaranazeiro, de forma automatizada.
3. Material e Métodos 3.1. Aquisição de imagens A base de dados foi obtida de folhas do clone BRS Maués cultivados nas áreas do Banco Ativo de Germoplasma (BAG) da Embrapa Amazônia Ocidental, por uma câmera de celular (Motorola Moto G5) de 13 megapixel com as funções de HDR e Flash desativadas obtendo apenas a luz natural durante a coleta de imagens. Um papel cartão de cor branco e, posteriormente, outro de cor preta foram colocados a uma distância de 10 a 20 centı́metro do folı́olo, que ajudou na redução dos ruı́dos de fundo. Folı́olos com até 1,7 centı́metros foram dispostos em placas de Petri com 15 indivı́duos P. adisi adultos e monitorados durante 27 horas. Após esse perı́odo injúrias puderam ser observadas na parte adaxial (frontal) dos folı́olos e registradas com a câmera do celular. Os folı́olos também foram fotografados antes de incitar o ataque e junto a outros exemplos de imagens capturadas nas áreas do BAG. Para manter um padrão de imagem, uma aplicação móvel foi desenvolvida utilizando o framework Ionic V3, o plugin de câmera nativo cordova-plugin-camera e uma biblioteca chamada angular-cropperjs v0.1.5. Essa aplicação, que pode ser vista na figura 1(b), permitiu destacar a área de interesse da imagem e gerar variações através da rotação e inversão da mesma com 1872 x 1872 pixels.
75
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
(a) Captura da imagem.
(b) Imagem editada.
Figura 1. Aplicação para auxiliar na padronização da imagens
3.2. Extração de caracterı́sticas Todo o pré-processamento das imagens foi feito linguagem de programação Python juntamente com a biblioteca para VC OpenCV. A Figura 2(a), 2(b) e 2(c) ilustra a sequência até chegar a segmentação por limiarização. Essa limiarização foi obtida usando como parâmetro o THRESH TRUNC com os limites 100 e 255.
(a) Imagem original.
(b) Tons de cinza.
(c) Limiarização.
Figura 2. Pré-processamento das imagens.
3.3. Avaliação dos modelos criados Para fins de teste e simulação dos modelos gerados no processo de aprendizagem, um protótipo com a arquitetura Cliente/Servidor foi montado. Uma aplicação cliente foi criada com o Framework Ionic para obter fotos e enviá-las para o servidor de aplicação implementado com o Framework Flask responsável por processar a imagem e devolver o resultado da predição. Por padrão, as imagens obtidas são codificadas em base64 enviadas a um servidor via requisição HTTP/JSON. No servidor a imagem é decodifica e submetida ao modelo de aprendizagem. Por fim, o resultado da predição é devolvido ao cliente.
76
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
4. Resultados Como resultado temos, uma base de imagens com folı́olos do guaranazeiro atacados pelo tripes, um protótipo Cliente/Servidor para realizar testes e simulações, e os primeiros modelos gerados. Os primeiros treinamentos foram realizados com a técnica de Máquinas de Vetores de Suporte. Porém, devido a uma base de dados ainda pequena, os resultados apresentados ainda não foram satisfatórios, pois pretende-se alcançar uma acurácia maior que 90%.
5. Considerações Finais Este trabalho apresentou a proposta de um modelo de classificação de Aprendizado de Máquina Supervisionado capaz de reconhecer folı́olos atacados pelo tripes por meio de imagens digitais. Foi explicada a elaboração da base de dados e as técnicas de Visão computacional para extrair as caracterı́sticas do ataque. Para as próximas etapas, será aumentada a base de imagens, novos modelos com diferentes parâmetros serão gerados e outros métodos para extração de caracterı́sticas serão avaliadas, além da realização de outros experimentos com a folha inteira, com apenas a parte central da folha sem a borda e em ambiente real de produção.
6. Agradecimentos O autor agradece à Embrapa pela oportunidade de desenvolver o projeto, ao orientador Marcos Filipe Alves Salame, ao Dr. Adauto Maurı́cio Tavares pelos ensinamentos compartilhados e disponibilidade em preparar exemplares do guaranazeiro que possibilitaram a aquisição de imagens, e a bolsista Julliane da Silva Fontes pelo suporte na coleta de exemplares e nos experimentos realizados.
Referências Faceli, K., Lorena, A. C., Gama, J., Carvalho, A. C. P. d. L., et al. (2011). Inteligência artificial: Uma abordagem de aprendizado de máquina. Fontes, J. d. S. and Tavares, A. (2017). Aspectos da biologia da linhagem sexuada do tripes-do-guaranazeiro (pseudophilothrips adisi, zur strassen)(thysanoptera: Phlaeothripidae). In Embrapa Amazônia Ocidental-Artigo em anais de congresso (ALICE). In: JORNADA DE INICIAÇÃO CIENTÍFICA DA EMBRAPA AMAZÔNIA OCIDENTAL, 14. INAMASU, R., JORGE, L. d. C., and PAIVA, M. (2011). Aplicação de técnicas de processamentos de imagens para diferenciação do greening de outras pragas. Embrapa Instrumentação-Tese/dissertação (ALICE). Santos, T. T. (2015). Detecção automática de bagas de café em imagens de campo. In Embrapa Informática Agropecuária-Artigo em anais de congresso (ALICE). In: CONGRESSO BRASILEIRO DE AGROINFORMÁTICA, 10., 2015, Ponta Grossa. Tavares, A. and Garcia, M. (2009). Tripes do guaranazeiro: Liothrips adisi zur strassen, 1977 (thysanoptera: Phlaeothripidae, phlaeothripinae). Embrapa Amazônia OcidentalDocumentos (INFOTECA-E). Tavares, A. M. T., Garcia, M. V. B., and Nascimento-Filho, F. (2007). Tripes do guaranazeiro: estado atual e perspectivas. Embrapa Amazônia Ocidental.
77
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Preparando dados LiDAR para classificação automática de altura de árvores na Floresta Amazônica Levi Delmiro de Souza Bessa1 , Marcela Pessoa5,2,1 , Sérgio Cleger3,2,1 , Carlos Henrique Souza Celes4 , Niro Higuchi4 , Rosiane de Freitas5 1
2
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica – Faculdade Fucapi Manaus – AM – Brasil
Escola Superior de Tecnologia – Universidade do Estado do Amazonas – EST/UEA Manaus – AM – Brasil 3
4
5
SIDIA Instituto de Ciência e Tecnologia – SIDIA Manaus – AM – Brasil
Instituto Nacional de Pesquisas da Amazônia – INPA Manaus – AM – Brasil
Programa de Pós-Graduação em Informática – Instituto de Computação Universidade Federal do Amazonas – UFAM Manaus – AM – Brasil
levidelmiro@gmail.com, msppessoa@uea.edu.br, s.tamayo@sidia.com caiqueceles@gmail.com, niro@inpa.gov.br, rosiane@icomp.ufam.edu.br
Abstract. The use of data from Remote Sensing can help in the management of forest resources. Among the main technologies worked are Radar, Satellite and LiDAR. This paper presents the creation of a LiDAR database of the Amazon Forest with the objective of evaluating the impacts of the attributes for Machine Learning algorithms. The base is a forest reserve region, known as Reserva Duque, in Manaus, Amazonas and was provided by the Embrapa Sustainable Landscapes Brazil project. A strategy was used to select a smaller number of points, which were classified into five classes and trained in machine learning algorithms. Experiments have shown that it is feasible to use these data and that a better analysis is needed on how to choose the points in order to obtain better representativeness. Resumo. A utilização de dados oriundos de Sensoriamento Remoto pode ajudar no gerenciamento dos recursos florestais. Entre as principais tecnologias trabalhadas estão Radar, Satélite e LiDAR. Este artigo apresenta a criação de uma base de dados LiDAR da Floresta Amazônica com o objetivo de avaliar os impactos dos atributos para algoritmos de Aprendizagem de Máquina. A base é de uma região de reserva florestal, conhecida como Reserva Duque, em Manaus, Amazonas e foi cedida pelo projeto Paisagens Sustentáveis Brasil, da Embrapa. Foi usada uma estratégia para selecionar um menor número de pontos, que foram classificados em cinco classes e treinados em algoritmos de aprendizagem de máquina. Experimentos mostraram que é viável utilizar estes dados e que é necessária uma melhor análise sobre como escolher os pontos afim de obter melhor representatividade.
78
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
1. Introdução Muito se tem estudado sobre a utilização de dados oriundos de Sensoriamento Remoto para ajudar no gerenciamento dos recursos da floresta. Entre as principais tecnologias trabalhadas estão Radar, Satélite e LiDAR. LiDAR é um método de sensoriamento remoto que utiliza a luz na forma de um laser para medir distâncias variáveis para a Terra, com isso, ao contrário de Radar e Satélite, os dados LiDAR podem fornecer, por exemplo, a altura média de um trecho de floresta, se mostrando uma tecnologia emergente para ajudar na identificação de desmatamento, detecção de elementos antrópicos e, até mesmo, no cálculo da quantidade de carbono estocado por uma floresta. Quanto mais informações se consiga através de Sensoriamento Remoto, mais rápidas podem ser as respostas a problemas que estão acontecendo ao longo dos anos. Como por exemplo, as emissões de gases do efeito estufa tem aumentado desde a era préindustrial, em grande parte como resultado do crescimento econômico e demográfico. Como consequência encontra-se uma alta concentração atmosférica de dióxido de carbono, metano e óxido nitroso. Os efeitos das emissões e outros fatores antrópicos foram detectados no sistema climático e é altamente provável que tenham sido a causa dominante do aquecimento observado a partir da segunda metade do século XX [IPCC2016 ]. Entre os gases de efeito estufa, o gás carbono, foi o que mais teve seu ciclo de emissão aumentado nos últimos anos. Isso ocorre, especialmente, em função do uso de combustı́veis fósseis (carvão mineral, petróleo e gás natural) como origem de energia, bem como o uso irresponsável dos recursos da floresta, como desmatamento e queimadas das florestas, em particular para agricultura [IPCC2013 ]. Em novembro de 2016, o Brasil registrou aumento na taxa de desmatamento na Amazônia, de tal forma que o desmatamento no perı́odo de agosto de 2015 a julho de 2016 foi de 7989 km2 , 29% maior que o perı́odo anterior. A estimativa é de que essa destruição tenha liberado na atmosfera 586 milhões de toneladas de carbono, o equivalente a 8 anos de emissões por todos os automóveis no Brasil [Gre 2016]. Apesar de que no ano de 2017 houve uma pequena diminuição na taxa de desmatamento da Amazônia Legal Brasileira, em 2018, voltou aumentar, ultrapassando, inclusive, o ano de 2016. Entre os estados com maior ı́ndice de desmatamento estão o Pará, Mato Grosso e Roraima [Prodes 2019]. As pesquisas sobre LiDAR tem atraı́do a atenção de pesquisadores com aplicações em áreas como gerenciamento de costas marı́timas, florestas de pinhais, savana, entre outros. Na Floresta Amazônica, considerando os aspectos relacionados à estrutura florestal os avanços são menores. Para incentivar pesquisas nessa área existem investimentos do governo, como pro exemplo, o Projeto Monitoramento Ambiental por Satélites no Bioma Amazônia (MSA), financiado pelo Fundo Amazônia e executado pelo Instituto Nacional de Pesquisas Espaciais (INPE) em parceria com o Banco Nacional de Desenvolvimento Econômico e Social (BNDES), cujo objetivo era gerar um novo mapa de biomassa florestal para a Amazônia, reduzindo incertezas relacionadas às estimativas de cada área amostrada e da representação dos dados para a região. Esta foi a primeira iniciativa do Brasil para coleta de grande volume de dados LiDAR no bioma Amazônico, abrindo, com isso, espaço para novas pesquisas. Diante deste cenário, este trabalho objetiva consolidar uma base de dados da Floresta Amazônica para, posteriormente, utilizar algoritmos de aprendizagem de máquina sobre dados LiDAR.
79
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Este artigo está organizado como segue: na Seção 2 são apresentados os trabalhos relacionados, na Seção 3 são descritos os conceitos, a Seção 4 apresenta metodologia proposta e os experimentos e na Seção 5 é descrita a conclusão e trabalhos futuros.
2. Trabalhos Relacionados Pode-se destacar a aplicação da aprendizagem de máquina na estimação de biomassa, utilizando delineação de copas e densidade de pontos mapeados por metro quadrado como indicadores de avaliação do modelo gerado [Gleason and Im 2012]. Zao [Zhao et al. 2011] combina a aprendizagem de máquina com dados relacionados a mapeamentos do dossel da árvore possibilitando, assim, que a previsão de caracterı́sticas florestais através de modelos computacionais, utilizando modelos de aprendizado de máquina em conjunto com as métricas compostas superam as abordagens tradicionais com o classificador de máxima verossimilhança e os modelos de regressão linear. Uma área de crescente interesse entre os pesquisadores está relacionada a imagens registradas através de sensoriamento remoto. Vários trabalhos tentam explorar informações oriundas de tecnologias como Radar, Satélite e LIDAR. Este crescente número de dados gerados por tecnologias de Sensoriamento Remoto também despertou o interesse na comunidade de aprendizagem de máquina, especialmente para a criação de modelos de classificação automática. Na atividade de classificação o melhor desempenho não depende apenas da robustez dos classificadores mas também da qualidade das caracterı́sticas de entrada e do tamanho da base de treinamento [Olofsson et al. 2014]. Tal como é importante a escolha do classificador e o tamanho da base, a extração das caracterı́sticas e exemplos tem atraı́do a atenção de pesquisadores, a partir de diferentes aspectos na classificação de imagem [Qi et al. 2012] [He et al. 2013] [Jin et al. 2014].
3. Referencial Teórico Esta seção apresenta os principais conceitos sobre os temas abordados nesta pesquisa, especialmente sobre sensoriamento remoto, tecnologia LiDAR e aprendizagem de máquina. 3.1. Sensoriamento Remoto e LiDAR Sensoriamento remoto é a área que utiliza equipamentos de dados e sensores afim de estudar ambientes terrestres por meio de análises e registros, interagindo as leituras com radiação eletromagnética sobre a cobertura terrestre, sendo uma das técnicas mais bemsucedidas na coleta automática de dados para levantamento e monitoramento dos recursos terrestres em escala global [Novo 1989]. O Instituto Nacional de Pesquisas Espaciais - INPE contribui amplamente na efetivação do sensoriamento remoto como uma tecnologia de uso em escala nacional, elevando o Brasil como a nação pioneira no hemisfério sul a dominar essa tecnologia. Utilizado num espectro amplo como ciências naturais da Terra, computação, urbanismo, engenharia civil, geotecnia, cartografia, ordenamento territorial, agricultura, geologia, defesa civil e muitas outras [Meneses et al. 2012]. No âmbito de mapeamentos florestais, o desenvolvimento de novas técnicas na finalidade de detectar automaticamente alterações florestais, tem sido o objetivo de vários trabalhos nas últimas décadas. Considera-se fundamental trabalhos apresentados por Singh [Singh 1989] e Fung [Fung 1990], dentre os quais, tendo uma análise mais profunda a respeito de algoritmos utilizados para o tratamento de dados e imagens coletadas, destaca-se Radke[Radke et al. 2005].
80
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A aferição da vegetação através do sensoriamento remoto é fundamental para fins comerciais, de preservação, gestão e pesquisas. O sensoriamento remoto é categorizado 1) por meio de modelos preditivos relacionados a radiância do objeto em estudo, considerando as caracterı́sticas de retorno (reflectância do sinal) das árvores nas bandas infravermelho e micro-ondas e 2) por mapeamentos em três dimensões como LiDAR, INSAR (Interferometric Synthetic Aperture Radar) e Estereofotogrametria [St-Onge 2008]. A importância da quantização de parâmetros florestais, baseado na tecnologia LiDAR, se dá principalmente pela capacidade de fornecer informações sobre caracterı́sticas da estrutura florestal, dentre os quais a altura de dosséis florestais e de árvores individuais, resultando assim em um fator chave para o estudo do funcionamento dos ecossistemas terrestres [Ribas and Elmiro 2013]. O sistema LIDAR consiste na medição de várias caracterı́sticas na leitura da luz refletida por um feixe de luz, fornecendo assim dados tridimensionais. No sensoreamento de florestas, é utilizado através da tecnologia ALS (Airborne LASER Scanning) instalada em aeronaves. A maioria dos sistemas ALS disponı́veis comercialmente utilizam o mesmo princı́pio: a aeronave sobrevoa uma determinada região e o equipamento LASER (LASER Range Finder) realiza uma varredura no chão perpendicularmente à direção da trajetória do voo. Calcula-se a distância com uma função de tempo desde a emissão até o retorno do raio LASER, na velocidade da luz, podendo assim cada emissão possuir diversos retornos. Integra-se então o sistema GPS-INS (Global Positioning System-Inertial Navigation System) que fornece a posição da altitude da aeronave, possibilitando a determinação espacial dos pontos capturados pelo LASER. 3.2. Aprendizagem de máquina O principal objetivo de desenvolver técnicas computacionais de aprendizagem é a capacidade de simular processos de aprendizagem na construção de sistemas autodidatas, capazes de aprender sem intervenção humana, dada uma base de dados [Mitchell 1997]. Geralmente esses algoritmos (que expressam modelos matemáticos) de aprendizagem se baseiam em experiências anteriores, denominadas casos ou exemplos, no provimento de informações para o processo de tomada de decisão para aperfeiçoamento do desempenho. Há três tipos de aprendizagem de máquina: não-supervisionada, supervisionada e semi-supervisionada. A diferença destas é definida pela presença ou não do atributo classe que classifica com base em modelo previamente treinado. Os dados classificados se faz previamente conhecido no método supervisionado, o contrário ocorre no método não-supervisionado, no entanto no método semi-supervisionado, consiste em poucos exemplos classificados e a maioria não esta classificada [Chapelle 2006]. Usualmente a aplicação da aprendizagem de máquina é dividida em etapas de desenvolvimento como: análise exploratória de dados, padronização dos atributos através da normalização de dados, dividindo os dados para treino e teste, então efetua-se algum modelo matemático para previsões. A análise exploratória de dados, através da analise estatı́stica, tem a finalidade de gerar aferições relacionando os atributos, para então selecionar apenas os atributos representativos para a aprendizagem, podendo ser expressado e visualizado através de gráficos e diagramas. Em alguns casos é necessário normalizar dados, tendo em vista reduzir a redundância destes, elevar a integridade de dados e o desempenho.
81
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
4. Metodologia Proposta e Experimentação Esta seção descreve a metodologia utilizada para desenvolver o trabalho, desde a aquisição das imagens LiDAR até a utilização de algoritmos de aprendizagem de máquina. 4.1. Base de Dados A base de dados consiste em pontos mapeados da Reserva Florestal Adolpho Ducke que é localizada no Km 26 da AM-010. Esta reserva tem 10.072 ha de área e serve como suporte para todos os segmentos das pesquisas do INPA e de outras instituições nacionais e internacionais. Por ser uma reserva tı́pica de mata de terra firme, vem sofrendo uma grande pressão antrópica devido ao seu contato com a mancha urbana de Manaus [INPA 2018]. As imagens Lidar foram cedidas pelo projeto Paisagens Sustentáveis Brasil, da Embrapa [Brasil 2018]. Os dados são disponibilizados afim de realizar estudos em estipulação de biomassa, estruturas florestais, depósitos de carbono e mensuração dos mesmos nos impactos do efeito estufa, entre outros. A imagem é dividida em vinte quadrantes. Cada trecho possui aproximadamente 11 milhões de pontos. Como, se considerar os vinte quadrantes, o total de pontos ultrapassa 200 milhões, para este trabalho foi selecionado um único quadrante que possui 11.817.000 pontos e equivale a 12,56 km quadrados. 4.2. Seleção das caracterı́sticas que representam um ponto Cada ponto é representado por um conjunto de dezesseis caracterı́sticas, sendo uma delas a classe (classification), conforme descrito na Tabela 1. As caracterı́sticas correspondem aos registros dos retornos do laser, que realizam a captura dos pontos através das múltiplas reflexões (pulsos) sobre o mesmo ponto, possibilitando vários tipos de análise dos dados. Um ponto é composto pelas coordenadas X,Y e Z. A caracterı́stica Classification corresponte à classe a que o ponto pertence, tendo seus valores variando entre 1 a 5 e 7. Originalmente esta caracterı́stica possuı́a valores não classificados, pontos respectivos a terreno, vegetação baixa, vegetação média, vegetação alta e pontos com ruı́do na leitura. Nesta pesquisa não foram utilizados pontos não classificados e os pontos lidos com ruı́dos, estes foram retirados. Com isso, a caracterı́stica Classification guarda os valores de 2 a 5 relacionados respectivamente a terreno, vegetação baixa, vegetação média e vegetação alta. Esta caracterı́stica foi usada como atributo classe ao fazer os experimentos com os algoritmos de aprendizagem de máquina supervisionada. A Figura 1 ilustra, através de diferença de cores, os pontos relacionados a terreno, vegetação baixa, vegetação média e vegetação alta. Alguns campos foram excluı́dos por não contribuı́rem para que um algoritmos de aprendizagem de máquina melhore seu desempenho, entre eles: o campo Synthetic foi excluı́do por sempre apresentar o mesmo valor (false), o campo Keypoint por representar uma identificação de cada ponto, o campo User Data por ser zero em todas as instâncias, o campo Withheld por ter todos os seus valores falsos e o Gps time por não representar uma informação relevante para a caracterização do ponto. Ao final, após tais exclusões, cada ponto é representado por dez caracterı́sticas.
82
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Tabela 1. Descrição das caracterı́sticas de cada ponto presente na base de dados
Caracterı́stica X Y Z Classification Synthetic Key point User Data Point Source Id
Intensity Return Number
Number of Return Scan direction falg
Edge of flight line Withheld
Scan Angle Rank
Gps time
Descrição coordenada X do ponto coordenada Y do ponto coordenada Z do ponto que representa a altura do ponto indica a classe do ponto Identifica se o ponto foi criado por outra coleção que não seja por Lidar identificação do ponto Identifica o usuário. Na base estão todos com zero usado para identificar um arquivo de origem na qual o ponto foi originalmente criado em um conjunto de dados do Projeto representa o a potência de retorno de um determinado pulso gerado pela leitura de um ponto representa o retorno de um pulso de laser emitido e pode ter até cinco retornos, dependendo dos recursos dos quais é refletido e dos recursos do scanner a laser usado para coletar os dados. O primeiro retorno será marcado como o número de retorno 1, o segundo como o número de retorno 2 e assim sucessivamente representa um número total de retornos para um determinado pulso é a direção que o espelho de varredura a laser está percorrendo no momento do pulso do laser de leitura. 1 indica que a direção de varredura é positiva (se movendo para esquerda) e 0 que a direção de varredura é negativa(se movendo para direita) identifica os pontos como 1 (leitura na borda da linha de voo) ou 0 (os outros pontos ) caracteriza (True ou False) os pontos que não devem ser incluı́dos no processamento. Todos os valores da base são False, logo devem ser processados representa o ângulo de varredura. É um valor em graus entre -90 e +90, sendo -90 graus o pulso do laser se direciona para o lado esquerdo da aeronave, a +90 graus o pulso se direciona para o lado direito da aeronave na direção do voo registra a hora do GPS em que o ponto de laser foi emitido da aeronave
83
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 1. Camadas da Floresta com suas respectivas classificações representadas pela variação de cor
4.3. Ambientação com dados de Sensoriamento Remoto Buscando se familiarizar com a base de dados de pontos oriundos do LiDAR, efetuou-se uma pré-análise, através de ferramentas de Sensoriamento Remoto, muito utilizadas por profissionais da área. Entre elas, foi usado software ArcMap, uma extensão do ArcGis. Com a remoção dos pontos não classificados, com ruı́do no sinal de leitura e as caracterı́sticas cujos valores são constantes para quaisquer instância, como descrito anteriormente, é necessário converter a base de dados LiDAR (.las) para imagens tipo Raster (imagens em que cada pixel contém informações a respeito do ponto mapeado). Em seguida, a imagem é convertida para coordenadas X, Y, Z com o objetivo de gerar dois modelos digitais: i) Modelo Digital de Elevação, para gerá-lo foi selecionada a caracterı́stica Classification com valor igual a dois, que refere-se a pontos que compõem o terreno selecionando todos os retornos, o ii) Modelo Digital de Superfı́cie (MDS), considera apenas os primeiros retornos dos pontos (geralmente são os pontos mais altos) e os pulsos que retornaram apenas um retorno, este modelo é formado pelas copas das árvores que compõe o trecho florestal. A Figura 2 mostra no lado esquerdo o modelo Digital de Elevação e no lado direito o Modelo Digital de Superfı́cie, ambos em 3D.
Figura 2. Modelo Digital de Elevação em 3D e Modelo Digital de Superfı́cie em 3D
4.4. Classificação automática Nesta seção são descritos os experimentos iniciais com algoritmos de aprendizagem de máquina, para isso, foi necessário executar ajustes na base. 4.4.1. Adaptação da base de dados Após análise dos modelos digitais respectivo ao quadrante da área em estudo, utilizouse a linguagem de programação Python para converter a base de dados LiDAR (.las)
84
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
para arquivos .csv, mais especificamente, foram utilizados os pacotes Numpy, Pandas e Scikitlearn. Então se fez necessária adoção de apenas um quadrante (aproximadamente 70 ha.) devida a quantidade de pontos extrapolar a capacidade computacional (Hardware) disponı́vel nesta pesquisa. Portanto, tendo a base de dados aproximadamente 12 milhões de pontos, fez-se necessário utilizar estratégia de redução dos pontos. Foram gerados 200 conjuntos de dados, destes foram retiradas mil instâncias aleatórias e criou-se uma nova base com 200 mil instâncias aleatórias. Para garantir que o algoritmo não se adapte à base de dados, dividiu-se a base em treino (70%) e teste (30%), a base de treino para gerar o modelo de aprendizagem e base de teste para testar o modelo aprendido. 4.4.2. Algoritmo utilizado O algoritmo utilizado nesta pesquisa foi o KNN (k-Nearest Neighbor). É um algoritmo supervisionado da categoria lazy, inicialmente estudado por Aha [Aha et al. 1991]. A proposta desse algoritmo consiste em localizar as k instâncias rotuladas mais próximas do exemplo não classificado, e com base nessas instâncias mais próximas é realizada uma decisão em detrimento da classe da instância não rotulada. Para avaliar a capacidade de generalização do modelo, utilizou-se a técnica de validação cruzada. Esta técnica consiste em dividir o conjunto de dados em dez partes, uma delas é usada para teste e as nove para treino. Estes subconjuntos são mutuamente exclusivos. 4.4.3. Resultados Em busca de descobrir a quantidade de vizinhos que pode retornar melhor resultado, foram testados valores de 1 a 50 para k. Como é possı́vel observar na Figura 3, quanto maior o valor de K, maior é o erro. Portanto, foi considerado para os experimentos o valor K igual a 5, ou seja, para o teste, é verificada a classe dos cinco vizinhos mais próximos, a classe que mais predomina nos vizinhos é atribuı́da como classe da instância de teste. Após selecionada a quantidade de vizinhos, foi executado o algoritmo. A Figura 4 apresenta a matriz de confusão. É possı́vel observar que somente 48 instâncias, das 391 instâncias pertencentes à classe 2 (terreno) foram classificadas corretamente, representando 17% de acerto. Os resultados levam a crer que o algoritmo confundiu a classe terreno com a classe vegetação baixa. A classe vegetação baixa teve 74% de acerto, a classe vegetação média 87% de acerto e a classe vegetação alta teve 80% de acerto.
5. Conclusão e Trabalhos Futuros Este trabalho descreveu as etapas de composição de uma base da dados oriundos de tecnologias de sensoriamento remoto, mais especificamente de LiDAR. LiDAR se destaca dentre as tecnologias de sensoriamento remoto por fornecer dados capazes de gerar a altura de árvores numa floresta. Através da altura é possı́vel desenvolver pesquisas na área de estimativa de carbono, detecção de elementos antrópicos ou clareiras. Muito se tem pesquisado sobre a utilização de dados Lidar em áreas urbanas e em florestas com caraterı́sticas bem definidas, como por exemplo, pinheiros e savana.
85
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 3. valor de K em relação ao ı́ndice de erro
Figura 4. Matriz de confusão e resultado da precisão para cada classe
Porém, em florestas com árvores irregulares como a Floresta Amazônica ainda são poucos os resultados. Diante disso, este trabalho teve como objetivo propor uma metodologia para criação de uma base LiDAR para que seja possı́vel a utilização de algoritmos de aprendizagem de máquina. Como teste inicial foi utilizado o algoritmo Knn. Resultados iniciais mostram que é viável utilizar algoritmos de aprendizagem de máquina sobre dados LiDAR. Com exceção da classe ”terreno”, as demais classes obtiveram mais de 70% de acerto. Os resultados sugerem que o maior erro na classe terreno se deu pelo fato de ser a classe com menor número de instâncias. Como trabalhos futuros pretende-se buscar uma estratégia de redução da base de dados através da segmentação de pontos com maior similaridade, adicionar à classe informações do mapa digital de superfı́cie e mapa digital de terreno, além de utilizar redes neurais para gerar aprendizagem.
Referências (2016). Desmatamento dispara na amazônia. http://www.greenpeace.org/brasil/pt/Noticias/ Desmatamento-dispara-na-Amazonia-/. [Online; acessado em Junho de 2017]. Aha, D. W., Kibler, D., and Albert, M. K. (1991). Instance-based learning algorithms. Machine learning, 6(1):37–66. Brasil, P. S. (2018). Paisagens https://www.paisagenslidar.cnptia.embrapa.br/webgis/.
sustentáveis
brasil.
Chapelle, O., S. B. e. Z. A. (2006). Semi-supervised learning.
86
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Fung, T. (1990). An assessent of tm imagery for land-cover change detection. IEEE Trans. Geosci. Remote Sens., pages p. 681–684. Gleason, C. J. and Im, J. (2012). Forest biomass estimation from airborne lidar data using machine learning approaches. Remote Sensing of Environment, 125:80–91. He, C., Li, S., Liao, Z., and Liao, M. (2013). Texture classification of polsar data based on sparse coding of wavelet polarization textons. IEEE Transactions on Geoscience and Remote Sensing, 51(8):4576–4590. INPA (2018). Programa https://ppbio.inpa.gov.br/sitios/ducke.
de
pesquisa
em
biodiversidade.
IPCC2013. Ipcc climate change 2013: The physical science basis. contribution of working group i to the fifth assessment report of the intergovernmental panel on climate change. IPCC2016. Ipcc climate change 2016. Jin, H., Mountrakis, G., and Stehman, S. V. (2014). Assessing integration of intensity, polarimetric scattering, interferometric coherence and spatial texture metrics in PALSAR-derived land cover classification. ISPRS Journal of Photogrammetry and Remote Sensing, 98:70–84. Meneses, P. R., Almeida, T. d., Rosa, A. N. d. C. S., Sano, E. E., de Souza, E. B., Baptista, G. M. d. M., and Brites, R. S. (2012). Introdução ao Processamento de Imagenes de Sensoriamento Remoto. CNPq. [Online; acessado em Abril de 2019]. Mitchell, T. M. (1997). Machine Learning. McGraw-Hill Science/Engineering/Math. Novo, E. (1989). Sensoriamento remoto: princı́pios e aplicações. São Paulo: Edgar Blucher. Olofsson, P., Foody, G., Herold, M., Stehman, S., Woodcock, C., and Wulder, M. (2014). Good practices for estimating area and assessing accuracy of land change. Remote Sensing of Environment, page 42–57. Prodes (2019). Taxas anuais de desmatamento na amazônia legal brasileira (amz). http://www.obt.inpe.br/prodes/dashboard/prodes-rates.html. [Online; acessado em Março de 2019]. Qi, Z., Yeh, A. G.-O., Li, X., and Lin, Z. (2012). A novel algorithm for land use and land cover classification using RADARSAT-2 polarimetric SAR data. Remote Sensing of Environment, 118:21–39. Radke, A. J., Andra, S., Al-Kofahi, O., and Roysam, B. (2005). Image change detection algorithms: a systematic survey. IEEE Trans. Image Process, page p. 294–307. Ribas, R. P. and Elmiro, M. A. T. (2013). Individualização de árvores em ambiente florestal nativo utilizando métodos de segmentação em modelos digitais produzidos a partir da tecnologia LiDAR. Revista Brasileira de Cartografia. Singh, A. (1989). Digital change detection techniques using remotely-sensed data. International Journal of Remote Sensing, pages p.989–1003.
87
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
St-Onge, B.; HU, Y. V. C. (2008). Mapping the height and above-ground biomass of a mixed forest using lidar and stereo ikonos images. International Journal of Remote Sensing, pages p. 1277– 1294. Zhao, K., Popescu, S., Meng, X., Pang, Y., and Agca, M. (2011). Characterizing forest canopy structure with lidar composite metrics and machine learning. Remote Sensing of Environment, 115(8):1978–1996.
88
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
O uso das Redes Sociais no Comércio Eletrônico Joseane Batalha Pinto1, Elizabeth Selly Castro Rabelo2 1 2
Universidade Federal do Amazonas
Universidade do Estado do Amazonas Manaus – AM – Brasil
{joseane.batalha,elizabethsellycastro}@gmail.com
Resumo. As inovações e expansões tecnológicas permitiram a popularização das Redes Sociais, que logo foram percebidas pelas empresas como uma ferramenta estratégica para conhecer e conquistar novos clientes. Este artigo visa identificar o uso das Redes Sociais no Comércio Eletrônico, tendo em vista seu papel primordial de comunicação e interação entre usuários. O objetivo foi demonstrar a popularização das Redes Sociais como um canal de comunicação entre clientes e empresas, assim como conceituar marketing e sua relação com as mídias sociais e analisar a influência das redes sociais no comércio eletrônico, através de dois exemplos de sucesso e dois exemplos de fracasso em diferentes redes sociais. A metodologia adotada foi a pesquisa qualitativa, na qual obteve-se as informações através de levantamento bibliográfico nas literaturas existentes relacionadas ao tema e em buscas nas redes sociais e internet para encontrar os casos de sucesso e fracasso nas ações de marketing das empresas. Para obter sucesso, as empresas devem planejar suas ações de marketing digital, para se beneficiar das vantagens que as redes sociais proporcionam e estreitar o relacionamento com os clientes, pois uma ação mal planejada pode resultar em fracasso e manchar a imagem da empresa. Abstract. Innovations and technological expansion allowed the popularization of Social Networks, that was soon perceived by companies as a strategic tool to meet and gain new customers. This article aims to identify the use of Social Networks in Electronic Commerce, considering its primary role of communication and interaction among users. The objective was to demonstrate the popularization of Social Networks as a channel of communication between clients and companies, as well as to conceptualize marketing and its relationship with social media and to analyze the influence of social networks in e-commerce, by comparing an example of success and an example of failure. The methodology adopted was the qualitative research, in which the information was obtained through a bibliographical survey in the existing literature related to the topic and in searches in social networks and internet to find cases of success and failure in the marketing actions of companies. To be successful, companies must plan their digital marketing actions, to take advantage of the benefits that social networks provide and strengthen the relationship with customers, because a poorly planned action could result in failure and tarnish the image of the company.
89
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
1. Introdução O avanço das telecomunicações e a disseminação da Internet a partir dos anos 2000 possibilitaram que as empresas e as pessoas se comunicassem de forma cada vez mais eficiente. A Internet oferece o acesso fácil a uma grande quantidade de informações, comunicação, lazer e compartilhamento. Logo se tornou parte do cotidiano das pessoas e trouxe possibilidades que antes não existiam. Por meio desta ferramenta, as pessoas podem compartilhar informações em um curto período de tempo, podendo também receber um retorno breve de suas solicitações. Mas a Internet é mais que uma nova tecnologia de comunicação, é uma mudança na forma como as pessoas se relacionam e como as empresas funcionam. Segundo Cardia (2015, n.p), “uma característica notável da Internet é a sua capacidade de difusão de informações. Nesse caso, a informação não fica restrita ao conceito de interesse geral, mas também ao interesse de grupos e de redes sociais”. Dessa forma, as informações são difundidas na rede a partir da percepção dos envolvidos, diretamente influenciada pelas impressões que desejam criar e com base na percepção de valor contida na informação que será divulgada. As inovações e expansões tecnológicas permitiram a popularização de outro serviço de comunicação: as redes sociais. Uma rede social é um grupo de pessoas com interesses em comum que ganhou um novo conceito com a Internet e os sites de relacionamento, passando a ser uma estrutura social virtual. Mais do que entretenimento e um espaço para interação entre amigos, as redes sociais possibilitam a criação, difusão e compartilhamento de informações e conteúdos. As redes sociais tornaram-se uma ferramenta muito importante, não apenas para possibilitar a interação entre pessoas, mas também como uma alternativa para quem deseja ter o seu próprio negócio através de e-commerce. O uso das redes sociais no Comércio Eletrônico veio para potencializar as empresas que desejam tornar seus produtos mais conhecidos e também para aquele pequeno empreendedor que deseja ter o pensamento fora da caixa e criar, também através de ferramentas gratuitas e usuais, a sua loja virtual. As redes sociais são fortes aliadas para o marketing das empresas que optaram pelo e-commerce para a popularização de seus produtos.
2. A popularização das redes sociais As transformações tecnológicas criaram novas formas de interação, alterando a estrutura da sociedade. As pessoas passaram a se relacionar pela Internet, surgindo as redes sociais, plataformas de interação, compartilhamento de informações e troca de experiências. O crescimento no número de usuários fortaleceu as redes sociais, que passaram a oferecer cada vez mais recursos, serviços e conectividade entre as pessoas. Os usuários perceberam nas redes sociais um meio de publicar conteúdos pessoais (através da criação de um perfil virtual), interagir com pessoas com interesses em comum, acompanhar e comentar as publicações de seus conhecidos, além de transportar suas amizades do mundo real para o mundo virtual. As redes sociais tornaram-se presentes nas vidas das pessoas, sua finalidade se expandiu de comunicação para disseminação de informações, conteúdo, ideias e opiniões. A partir dessa percepção de que os usuários podem falar sobre qualquer assunto, as empresas enxergaram nas redes sociais um canal de comunicação com seus clientes e constataram a importância de estarem presentes também nas redes sociais para interagir com seu
90
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
público-alvo, veicular campanhas e anúncios publicitários e criar um relacionamento mais próximo com os consumidores. Os usuários utilizam as redes sociais para criar e compartilhar informações sobre os mais variados temas, inclusive suas percepções sobre produtos, serviços, marcas e empresas. Nesse contexto, surgem as mídias sociais, como meio de transmissão de informações e conteúdos criados pelas pessoas e para as pessoas. Um meio de comunicação mais ágil que os tradicionais que logo foi percebido pelas empresas como uma ferramenta de vantagem competitiva para conhecer e conquistar novos clientes, estabelecer redes de relacionamento e construir suas ações e estratégias de marketing. E assim o marketing passou a utilizar as mídias sociais como meio de comunicação com os clientes, para estreitar relacionamentos e posicionar a marca no mercado.
3. Marketing em mídias sociais As mídias sociais podem ser entendidas como ferramentas que são utilizadas para criação e divulgação de conteúdo, ao mesmo tempo que permite alguma interação entre usuários. Kanter e Fine (2011) definem mídias sociais como a estruturação de ferramentas digitais (mensagens instantâneas, mensagens de texto, blogs, vídeos, e redes sociais) que são fáceis de serem usadas e possibilitam que as pessoas criem, manipulem e compartilhem amplamente as próprias histórias, fotos e vídeos. Com o aumento da popularidade das redes sociais, as empresas perceberam que elas atingem com mais eficácia e agilidade um grande número de pessoas e passaram a utilizar as mídias sociais para mostrar novidades, promoções, lançamento de produtos e eventos. Assim, as empresas começaram a incluir as Mídias Sociais em suas estratégias de marketing, assumindo uma nova postura no mercado. Cobra e Brezzo (2010, p. 9), definem o marketing como “uma função organizacional e um conjunto de processos para criar, comunicar e entregar valor para os clientes e para administrar o relacionamento com os clientes de forma a beneficiar a organização e seus públicos de interesse”. Diante das mudanças significativas e o crescimento das redes sociais se desenvolveu o marketing digital, que pode ser descrito como o relacionamento entre empresas e clientes através das mídias sociais. São ações que visam construir um canal de vendas, atrair visitantes e alavancar os negócios. O marketing digital é um conjunto de atividades executadas para criar relacionamentos e atrair novos negócios, que vão desde trazer mais visitantes para o site da empresa até convertê-los em clientes. Possui muitas vantagens em relação ao marketing tradicional, dentre elas: alcance global (na Internet não existem limites geográficos), interatividade (ajudam a empresa a conhecer melhor os clientes), métricas mais fáceis de mensurar (quantidade de visitas, performance de campanhas, etc.) e segmentação (possibilita investimentos direcionados para o público-alvo). As principais ferramentas do marketing digital são os links patrocinados (publicidade em resultados de uma pesquisa na Internet), e-mail marketing (envio de e-mails com promoções, boletins, informativos, e outras informações), mídia display (forma mais tradicional - anúncios gráficos ou “banners” em sites) e a social media (relacionamento com os clientes através das redes sociais - Twitter, Facebook, Instagram, entre outras) (PEÇANHA, 2014).
91
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A social media marketing ou marketing nas redes sociais, é um dos segmentos que mais cresce. A criação de relacionamento entre empresa e clientes proposto pelo marketing encontrou nas redes sociais o canal ideal para se aproximar do público-alvo, criar conteúdo, ganhar visibilidade, expandir a presença na web e se beneficiar da influência que as redes sociais exercem no comércio eletrônico.
4. A influência das Redes Sociais no Comércio Eletrônico As redes sociais se tornaram uma nova forma de relacionamento, a partir de uma nova perspectiva sobre a comunicação, pois permite “não apenas compartilhar informações, como também estar em outros lugares e com outras pessoas sem sair de casa” (LÉVY, 2000). As redes sociais criam ambientes de afinidade, onde os usuários podem trocar experiências e fortalecer círculos de amizade. Além disso, possibilitam o compartilhamento de ideias, dúvidas e impressões sobre os mais variados temas. No Comércio Eletrônico, as redes sociais exercem grande influência sobre os consumidores e sobre as empresas. Os consumidores, para buscar informações sobre produtos e marcas nesses canais antes de efetuar uma compra e as empresas para conhecer seu público-alvo, conquistar clientes e promover sua marca através da sua participação nas redes sociais. As redes sociais também ganharam preferência das empresas como uma ferramenta de marketing digital, devido ao baixo custo e alta visibilidade. Por essa razão, o marketing nas redes sociais envolve investimento e planejamento de conteúdo e interação com os clientes. Não basta apenas estar presente nas redes sociais, é necessário ser autêntico, compartilhar conteúdo relevante e de acordo com as características das redes sociais escolhidas. Com as redes sociais o consumidor consegue expressar sua opinião sobre produtos, serviços e marcas, bem como fazer elogios, sugestões e comentários positivos (quando satisfeito) e criar coragem para compartilhar experiências desagradáveis, fazer reclamações e comentários negativos (quando insatisfeito). Por isso, as empresas perceberam a importância de estarem inseridas nesse meio e investir esforços no monitoramento das redes sociais, para obter credibilidade e ter uma boa reputação online com seus clientes. Para potencializar as informações de alguma plataforma e-commerce nas redes sociais, empresas especializadas utilizam algumas estratégias realizando os filtros de quais características a ideia possui, qual público alvo atingirá em uma proporção maior, quais redes sociais são mais utilizadas por pessoas que possuem o perfil a ser alcançado. Organizando as informações e estruturando as estratégias, as redes sociais tornam-se uma das principais ferramentas utilizadas no marketing digital. Segundo Recuero (2009, p. 109), “Um dos valores principais construídos nas redes sociais é a reputação”, relacionada com a confiança e a percepção construída sobre o comportamento de alguém, ou seja, implica no fato de que há informações que auxiliam os usuários a construir impressões sobre os demais. Para ganhar confiança e ter uma boa reputação, as empresas acompanham sua imagem nas redes sociais, preocupando-se com a opinião dos seus clientes.
92
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Criar presença nas redes sociais e promover o negócio se tornou parte das estratégias empresariais. A utilização desse canal de comunicação pode trazer grandes benefícios e ter sucesso se for bem planejado, mas também pode ter resultados desastrosos, tornando-se um fracasso e manchando a imagem da empresa. 4.1. Exemplo de sucesso: Samsung e a selfie do Oscar A cerimônia de entrega dos Academy Awards (ou cerimônia do Oscar) de 2014 teve como um dos patrocinadores a empresa sul-coreana Samsung. Estima-se que a empresa gastou US$ 20 milhões de patrocínio no evento, que incluía a aparição do lançamento mais recente da Samsung na época, o Galaxy Notes 3, em ações onde o smartphone aparecia em meio à chegada dos famosos e um vídeo da empresa transmitido nos intervalos. Durante o evento, a apresentadora Ellen DeGeneres utilizou o smartphone para tirar fotos com as celebridades presentes, as chamadas “selfies”. O que parecia uma ação espontânea foi apontada como ação de marketing da empresa, que foi proposta pela própria apresentadora (ÉPOCA, 2014). A grande repercussão aconteceu quando Ellen publicou em sua conta do Twitter uma “selfie” reunindo os atores Jared Leto, Meryl Streep, Bradley Cooper, Júlia Roberts, Jennifer Lawrence, Kevin Spacey, Lupita Nyong’o, Brad Pitt e Angelina Jolie. A publicação (tweet) gerou mais de 3 milhões de compartilhamentos (retweets) e se tornou a mensagem mais disseminada no Twitter, como mostra a Figura 1.
Figura 1. Samsung e a selfie do Oscar
93
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A legenda da foto diz: “Se ao menos o braço de Bradley fosse mais longo. Melhor foto de todos os tempos”. Apesar de não mencionar a Samsung em seu tweet, o modelo ficou visível na transmissão da cerimônia e foi rapidamente reconhecido pelos telespectadores. Conhecido como “selfie do Oscar”, o tweet pode ser considerado a maior ação de marketing em redes sociais já registrada. 4.2. Exemplo de sucesso: Netflix Brasil e a divulgação da série Stranger Things A Netflix é uma plataforma provedora de streaming de séries, filmes, documentários, animações, reality shows, talk-shows, stand-ups e animes, além de conteúdos originais, produzidos pela própria empresa. O serviço é oferecido em mais de 190 países por meio de transmissão online, sem comerciais, com acesso ilimitado ou por meio do download em seu aplicativo para dispositivos móveis, que possibilita assistir ao conteúdo sem conexão com a internet. Além do serviço considerado de qualidade pelos seus usuários, com preço justo e boa performance, a empresa se destaca também pelo seu engajamento nas redes sociais, tanto pelo modo como atende seus clientes, de maneira única, criando uma relação de proximidade com o consumidor, quanto pelas campanhas criativas e divertidas, que conquistaram milhares de fãs em seus vários casos de sucesso nas redes sociais. Para divulgar a série Stranger Things, ambientada nos anos 80, a Netflix Brasil convidou Xuxa Meneghel, um dos grandes símbolos da cultura pop dos anos 80 e 90 no país. Na propaganda, publicada no Facebook, YouTube, Twitter e Instagram (Figura 2), a apresentadora aparece com figurino inspirado em seu programa de televisão “Xou da Xuxa”, fazendo várias referências aos principais momentos de sua carreira, brincando com as polêmicas e gafes que marcaram a sua trajetória.
Figura 2. Netflix Brasil e a divulgação da série Stranger Things
94
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A divulgação da série, ocorrida em agosto de 2016, foi um sucesso em todas as suas redes sociais e o vídeo promocional ganhou o prêmio Leão de Bronze na categoria Enternainment no Festival Internacional da Criatividade de Cannes, França, em 2017 (SACCHITIELLO, 2017). 4.3. Exemplo de fracasso: Resposta automática da Itaipava Em 2015, a marca de cerveja Itaipava veiculou uma propaganda com a bailarina Aline Riscado que causou polêmica e foi alvo de reprovação, principalmente nas redes sociais. Na propaganda, Aline Riscado interpreta a personagem Vera, chamada de “Verão”, em trocadilho com a estação do ano. Segundo a agência de publicidade responsável, a ideia era ser simples e impactante, mas foi acusada de ser machista e sexista. Em maio do mesmo ano, a empresa lançou em sua conta do Twitter uma campanha para estender a participação da bailarina em suas propagandas. A marca estimulou a participação dos usuários na rede social e pediu que seus seguidores publicassem tweets com a hashtag (palavra-chave) #ficaverao. Para cada usuário que usava a hashtag #ficaverao, a marca gerava uma resposta automática do tipo: “@usuario, obrigada. Agora é só torcer para essa campanha dar certo. Beijos e muitas geladas para você!” (EXAME, 2015). Apesar de receber o apoio de muitos seguidores, a campanha virou motivo de piada no Twitter, pois independentemente do conteúdo da mensagem, a resposta de agradecimento era enviada (Figura 3):
Figura 3. Resposta automática da Itaipava (piada)
95
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Logo o público percebeu a mensagem automática e surgiram muitas interações em forma de comentários negativos, críticas sobre os produtos da empresa ou piadas com a marca e o objetivo da campanha, que receberam a mesma resposta, conforme demonstrado na Figura 4:
Figura 4. Resposta automática da Itaipava (crítica)
Em alguns casos, o alvo da crítica era a própria propaganda da empresa com a modelo Aline Riscado, tema da campanha, acusada também de ignorar as consumidoras e ser voltada apenas para o público masculino. A campanha #ficaverao no Twitter destacou a cerveja Itaipava negativamente nas redes sociais e é apontada como gafe por muitos publicitários. 4.4. Exemplo de fracasso: Bom Negócio, Joanna e seu marido A interação com os clientes é algo fundamental no marketing digital. Porém, na internet uma mentira é facilmente descoberta. E os usuários das redes sociais estão atentos, prontos para desmascarar uma publicação falsa. Em 2014, o site de classificados Bom Negócio.com fez sucesso com campanhas publicitárias divertidas veiculadas em meio televisivo, seus comerciais “virais”, que estimulavam as pessoas a vender produtos que não estivessem utilizando de maneira rápida e prática. A campanha invadiu a internet e gerou muitas visualizações, principalmente no Facebook e YouTube. Aproveitando a onda de êxito em suas ações de marketing digital, a empresa resolveu publicar em sua conta do Facebook uma foto supostamente enviada por sua cliente após uma compra realizada na plataforma de negócios. Na publicação, o texto dizia: “Recebemos esta foto da Joanna e seu marido felizes com o carro comprado pelo bomnegocio.com”, conforme mostra a Figura 5.
96
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 5. Bom Negócio, Joanna e seu marido
O que a empresa não esperava era que os internautas descobrissem que a foto postada foi na verdade comprada em um banco de imagens, o Shutterstock.com, utilizado por milhares de agências de comunicação. A publicação foi apagada, mas já era tarde. A partir daí surgiram inúmeras piadas com a foto e com o deslize cometido. O engano foi também explorado por outras empresas, concorrentes e de outros segmentos, inclusive do setor público, como a Prefeitura de Curitiba (Figura 6), em um viral inesperado e involuntário do Bom Negócio.com (SOUSA, 2014).
Figura 6. Joanna, seu marido e a Prefeitura de Curitiba
97
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
5. Conclusão A Internet possui um grande poder de propagação de conhecimento e informações, ocasionando mudanças comportamentais nos indivíduos. O crescimento da Internet e do número de usuários conectados, causaram profundas alterações nas formas de relacionamento. Nesse contexto surgiram as redes sociais, como um espaço que proporciona interatividade e compartilhamento de informações. As redes sociais são amplamente utilizadas para disseminar conteúdo, opiniões, ideias, experiências e perspectivas. Dessa forma, tornaram-se mídias sociais, um meio de expressar opiniões e interesses, com grande potencial de colaboração. As redes sociais tornaram-se parte do cotidiano das pessoas, não apenas para comunicação, entretenimento e diversão, mas também para buscar informações sobre produtos, serviços, empresas e marcas, influenciando diretamente sua decisão de compra. As organizações precisam se atualizar constantemente em decorrência das transformações sociais e tecnológicas. Para vencer os desafios e aumentar a competitividade, as empresas devem transformar seu modo de fazer negócios, adequando-se a esse novo modelo de relacionamento. Diante dessas mudanças, os esforços de marketing das empresas voltaram-se ao mercado digital, buscando nas redes sociais um novo canal de comunicação com os clientes para atrair novos negócios, criar relacionamentos e posicionar sua marca, através do marketing digital. E assim, as empresas entenderam a importância de estarem presentes nas redes sociais, monitorando o que os consumidores falam sobre seu negócio, para ter credibilidade, confiança e uma boa reputação online. O uso das redes sociais no Comércio Eletrônico cresce cada vez mais. Os usuários utilizam para buscar informações sobre um produto antes de efetuar uma compra e as empresas para divulgar seus produtos, atrair novos clientes e promover sua marca. As redes sociais tornaram-se ferramentas estratégicas para as empresas. Mas para obter sucesso, se faz necessário o planejamento das ações de marketing digital, pois além de ter um perfil nas redes sociais, as empresas devem estar utilizá-las a seu favor, estreitando o relacionamento com seus clientes. Ações bem planejadas podem trazer grandes benefícios, assim como ações mal planejadas podem resultar em fracasso e manchar a imagem da empresa.
Referências Cardia, Wesley. (2015). Crise de imagem e gerenciamento de crises, Mauad X, Rio de Janeiro. Cobra, Marcos e Brezzo, Roberto. (2010). O novo marketing, Elsevier, Rio de Janeiro. Época Negócios Online. (2014). Selfie do Oscar era ação de marketing da Samsung e teria custado R$ 45 milhões. Disponível em: <http://epocanegocios.globo.com/Informacao/Acao/noticia/2014/03/selfie-do-oscarera-acao-de-marketing-e-teria-custado-r-45-milhoes-samsung.html>. Acesso em 16 de março de 2019.
98
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Exame.com. (2015). Twitter da Itaipava dá respostas automáticas e vira piada. Disponível em: <http://exame.abril.com.br/marketing/noticias/Twitter-da-itaipavada-respostas-automaticas-e-vira-piada>. Acesso em 24 de março de 2019. Kanter, Beth e Fine, Allison H. (2011). Mídias sociais transformadoras: ação e mudança no terceiro setor, Évora, São Paulo. Lévy, Pierre. (2000). Cibercultura, Editora 34, São Paulo. Peçanha, Vitor. (2014). Marketing Digital: o que é isso, afinal? Disponível em: <http://marketingdeconteudo.com/marketing-digital/>. Acesso em 10 de março de 2019. Recuero, Raquel.(2009). Redes sociais na Internet, Sulina, Porto Alegre. Sacchitiello, Bárbara. Xuxa e Netflix trazem Leão de Bronze ao Brasil. Disponível em <http://cannes.meioemensagem.com.br/cobertura2017/2017/06/21/xuxa-e-netflixtrazem-leao-de-bronze-ao-brasil >. Acesso em 28 de abril de 2019. Sousa, Camila Bomfim de. Nunca subestime o seu público – o caso da Joana do bom negócio. Disponível em <https://analisandofanpages.wordpress.com/tag/joana-bomnegocio/>. Acesso em 28 de abril de 2019.
99
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Internet das coisas: ESP32 uma alternativa ao Arduino Orley do Amaral Ferreira, Mário Angel Praia Garcia Centro de Ensino Superior Fucapi – Fundação Centro de Pesquisa e Inovação Tecnológica. Coordenação da Engenharia de Computação. Av. Gov. Danilo de Matos Areosa, 381 - Manaus – AM - Brazil {orley.salvatore,marioangelpg}@gmail.com
Abstract. This article aims to highlight the ESP32 microcontroller as to its features and functionalities as an alternative to Arduino model microcontrollers, in front of IOT (Internet of Things) projects. For purposes of comparison, it is intended to build a prototype residential automation project using the two controllers. At the end of the development will be reported the results of both projects, as well as the expenses of resources (hardware and software) needed to achieve the same objectives. Resumo. Este artigo tem como objetivo destacar o microcontrolador ESP32 quanto às suas características e funcionalidades como alternativa à microcontroladores de modelo Arduino, frente aos projetos IOT (Internet das coisas). Para fins de comparação, pretende-se montar um projeto protótipo de automação residencial utilizando os dois controladores. Ao final do desenvolvimento serão relatados os resultados de ambos os projetos, bem como os gastos de recursos (hardware e software) necessários para alcançar os mesmos objetivos.
1. Introdução A tecnologia está mudando a maneira como interagimos com o mundo à nossa volta. Sistemas automatizados que acendem luzes e aquecem alimentos, ou pulseiras inteligentes que sincronizam informações corporais com smartphones, tabletes e computadores são exemplos das tecnologias que fazem parte da evolução tecnológica denominada de internet das coisas (internet of things, IoT). Segundo Meira (2016), as “coisas” são dispositivos que têm simultaneamente a capacidade de computação, comunicação e controle. “O que todas as definições de IoT têm em comum é que elas se concentram em como computadores, sensores e objetos interagem uns com os outros e processam informações/dados em um contexto de hiperconectividade”, [Magrani 2018]. Juntamente à essa abordagem, a automação residencial ganha força quando comparada aos sistemas eletrônicos e eletromecânicos com eficiência limitada. “Sabe-se que a automação residencial proporciona uma série de benefícios aos usuários, entretanto, muitas vezes a implementação desta não pode ser realizada pelo seu alto custo de investimento e complexidade” [Wanzeler; Merlin 2016]. Para os fins educativos e/ou profissionais e visando custo-benefício e flexibilidade de manuseio, houve o aumento da demanda e procura de ferramentas e dispositivos open source de prototipação eletrônica, como microcontroladores das versões Arduino, que auxiliam no desenvolvimento dos mais variados projetos. O
100
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Arduino é uma placa controladora que pode “ser utilizada para desenvolver objetos interativos independentes, ou pode ser conectado a um computador, a uma rede, ou até mesmo à Internet para recuperar e enviar dados do Arduino e atuar sobre eles”[ McRoberts 2011]. Para McRoberts(2011), pode-se conectar placas conhecidas como Shields que são dotadas de funcionalidades que podem ser agregadas ao Arduino. A rede wireless com o passar do tempo se tornou um recurso barato que favoreceu sua instalação em muitas residências. Com isso projetos de automação residencial passaram utilizar o recurso da comunicação sem fio como ponte de interligação entre os dispositivos controlados, consequentemente, impulsionou o desenvolvimento de novos módulos e Shields de baixo custo para o Arduino que atendesse a demanda dos projetos de controle que envolvam rede sem fio. A fabricante do esp8266, a Expressif Systems, desenvolveu versões capazes de operarem comandos e controles de forma autônoma, contendo um número limitados de GPIOs(pinos de entrada e saída de propósito geral), como é o caso do NODMCU que vem integrado com o esp8266-12. A diferença entre as versões fabricadas é o número de pinos GPIO expostos, a quantidade de memória flash disponível, o estilo de pinos conectores e várias outras considerações relacionadas a sua construção. De um ponto de vista da programação, eles são todos iguais. [Kolban 2015 apud Silva; Sales 2018]. Após o ESP8266, a Expressif lançou outro controlador, o ESP32, com mais recurso de processamento e funcionalidades, que tem “um sistema dual-core com dois processadores Xtensa LX6 da Harvard Architecture. Toda a memória incorporada, memória externa e periféricos estão localizados no barramento de dados e / ou no barramento de instruções dessas CPUs”. [ESP32... 2018]. Na tabela 1 faz-se um comparativo dos quatro principais modelos de microcontroladores encontrados no mercado. TABELA 1. ESP32 e os outros três microcontroladores mais disseminados no mercado
Cores Arquitetura Clock WiFi Bluetooth RAM FLASH GPIO Interfaces ADC DAC
ESP32
ARDUINO MEGA
2 32 bits 160MHz Sim Sim 512KB 16Mb 36 SPI / I2C / UART / I2S / CAN 18 2
1 8 bits 16MHz Não Não 8KB 256KB 54 SPI / I2C / UART 16 0
ESP8266
ARDUINO UNO R3 1 1 32 bits 8 bits 80MHz 16MHz Sim Não Não Não 160KB 2KB 16Mb 32KB 17 14 SPI / I2C / SPI / I2C / UART / I2S UART 1 6 0 0
Fonte: Fernando (2017)
Da mesma forma como o NodMCU foi desenvolvido para o ESP8266, o ESP32 também possui uma plataforma de prototipagem equivalente, no caso o NodMCU-32S. Oliveira [2017], destaca que essa plataforma que tem como base o chip ESP32 é
101
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
comumente utilizada em desenvolvimento de projetos IoT. Dentre as principais características destaca-se:
240 MHz dual-core Tensilica LX6 microcontroller with 600 DMIPS Integrated 802.11 b/g/n HT40 Wi-Fi transceiver, baseband, stack and LwIP Integrated dual mode Bluetooth (classic and BLE) 2.3V to 3.6V operating voltage Sensores: Ultra-low noise analog amplifier Hall sensor 10x capacitive touch interfaces 32 kHz crystal oscillator 34 x GPIO: PWM/timer input/output available on every GPIO pin Minimum receiver sensitivity of -97 dBm 10 μA power consumption in Deep-sleep O ESP32 por ser dual core, torna-se mais rápido e confiável na execução de atividades que exigem velocidade de resposta. Curvelho [2018], comenta que O ESP32 propicia o desenvolvimento de projetos IoT por ter um apanhado de recursos e a presença de mais periféricos que permite a sua integração com mais dispositivos e componentes diversos. O Arduino tem projetos que demonstram sua capacidade de operabilidade, assim como o controlador ESP8266, que também tem sistemas que o utilizam como controlador principal e evidenciam sua performance e viabilidade técnica para estudantes e profissionais, no entanto, o ESP32 por ser recente, tem poucos artigos e projetos construídos que o solidifique ou manifeste sua capacidade técnica e usabilidade. A energia é um recurso base para o ser humano, economizar e gerenciar tal recurso é imprescindível. Scarpin (2017), cita que a gestão de energia elétrica é o melhor meio para controlar e reduzir o consumo de qualquer organização, permitindo reduzir custos e riscos, porém para que isso seja possível é necessário primeiramente medir para poder acompanhar e posteriormente atuar. Partindo desse problema que faz parte das empresas ou residências, o projeto desenvolvido foi voltado para a tratativa de gestão energética através de controle e automação residencial. Sendo assim, este artigo buscou dar ênfase no controlador ESP32, agregando conhecimento à sua base de dados para profissionais e alunos que buscam conhecer esse hardware, evidenciando sua performance, usabilidade e praticidade no momento da montagem de uma solução de domótica (automação residencial). Para alcançar o objetivo de demonstrar o desempenho e viabilidade de ambos, Arduino e o ESP32, serão observados os resultados durante o processo de montagem e funcionamento do projeto em cada placa, anotando os tempos de resposta, erro e experiência do usuário. Logo após, será destacado as vantagens e desvantagens durante o processo de desenvolvimento do projeto. Para isso, a solução foi construída para cada controlador e executada as mesmas atividades simultaneamente.
2. Projeto Controle de energia
102
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
O projeto consiste no monitoramento e controle de um dispositivo que dependa de alimentação elétrica. O protótipo contém um microcontrolador que gerenciará todo o processo de entrada e saída de dados. Esse controlador terá um serviço de WebServer que atenderá requisições. O sistema é composto da placa de controle, periféricos de monitoramento e atuadores. Para a interação com o usuário, uma aplicação é instalada no smartphone de plataforma Android que faz a interface para o usuário. O objetivo do projeto é automatizar a função de um contador digital de energia. Nas nossas casas, os contadores elaboram a medida e entregam valores que os usuários não compreendem, portanto, o sistema irá mostrar o consumo na tela do celular em KWh e também o valor convertido em reais, utilizando a tarifa da concessionária de energia como base do cálculo. A montagem lógica, fluxograma e a aplicação serão iguais para ambas as montagens. Na figura 1 é possível visualizar a disposição do protótipo. Nela verifica-se que o microcontrolador está interligado pela protoboard aos periféricos, sensor e atuador, controlando-os e oferecendo o serviço de Webserver para o Celular que está interconectado por um roteador wireless.
Figura 1. Disposição da controladora e aplicativo
A figura 2 mostra o fluxograma de funcionamento separado em duas etapas de funcionamento.
103
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 2. Processo de iniciação e fluxograma de funcionamento
Na primeira etapa, a START, o protótipo de controle será energizado para carregar as funções e as variáveis, paralelamente haverá a recuperação dos últimos dados salvos em memória, os quais são necessários para a continuação do programa à partir da última execução. Valores iniciais dos atuadores serão carregados e o sensor terá suas configurações inicializadas. Na segunda etapa, o LOOP, o processo será sempre iniciado por uma requisição vinda do aplicativo que será encaminhada para a controladora. A requisição será analisada e em seguida uma ação correspondente de atuação ou consulta. O valor de consumo sempre é buscado em sua base de dados. Esse valor é alimentado pelo sensor frequentemente. Após recuperar os valores da memória, o controlador recebe e os envia como resposta para a aplicação. Estes serão exibidos pelo usuário no campo da aplicação dedicada para as informações recebidas da controladora.
3. Metodologia O trabalho foi desenvolvido, inicialmente, com o intuito de testar a versatilidade da controladora ESP32 frente ao Arduino. Sendo assim, o projeto foi montado utilizando o Arduino e posteriormente utilizando o ESP32. Os sensores utilizados são iguais, assim como os atuadores. Os métodos e hardware necessários pouco se diferem. O aplicativo Android criado serviu para ambos, sem necessidade de customização, podendo controlalos simultaneamente. Todo o código das controladoras foi escrito nas linguagens de
104
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
programação C e C++, utilizando a plataforma de desenvolvimento Arduino IDE. Para a conexão dos módulos, placas, sensores e atuadores, foi utilizada uma protoboard de 400 furos. As versões dos códigos dos microcontroladores foram organizadas e subdivididas em iguais etapas. O sistema começa com a inicialização das bibliotecas e criação das variáveis globais. Logo após, inicia-se a execução das duas funções de controle, o setup e loop, que detém todas as funções de inicialização e de rotina do programa. A função de setup configura a leitura e valores iniciais dos pinos, sensores, atuadores e memória. A segunda função, LOOP, controla a rotina do sistema e subdivide-se em três principais funções: a função de Webserver, que é responsável por todo o controle de conexão da rede sem fio, controlando, através do Arduino o módulo ESP-01 e no ESP32 o próprio recurso nativo. A segunda função faz interface com o atuador, que executa o comando vindo da requisição através da função 1. A terceira função trata da medição da corrente elaborada pelo sensor, atualizando valores em tempo real por segundo e salvando nas variáveis globais e memória EEPROM, que são acessadas e consultadas. Em caso de alguma requisição, as três funções são executadas sequencialmente. Para a função de atuador, o relé SRD-05VDC-SL-C foi utilizado para realizar o chaveamento automático do circuito. O modelo tem sua operação em 5v de ativação para controle de tensões e cargas respectivamente de 120 à 220 volts ou 10 amperes. Para a medição da corrente foi utilizado o módulo sensor de corrente ACS712-5A invasivo. Este sensor utiliza as propriedades do efeito hall. Como o sistema é de automação residencial, foi desenvolvido um aplicativo na plataforma Android, para smartphone, que estabelece a interface com o usuário e executa os comandos via rede Ethernet de forma transparente. Dependendo do local da instalação do controlador, a utilização do sistema cabeado para conexão com a rede doméstica é inviável. Dessa forma, foi escolhido trabalhar com a comunicação sem fio wireless. Para estabelecer uma conexão via rede sem fio, foi utilizado um roteador que fornece o sinal e gerencia automaticamente a atribuição dos endereços IP. Para estabelecer comunicação, a aplicação envia, através da rede, requisições utilizando o protocolo HTTP em cima do TCP/IP. A figura 3 exibe o aplicativo que foi desenvolvido utilizando as linguagens de programação JAVA e o XML, juntamente com a plataforma de desenvolvimento Android Studio. A plataforma Android Studio é uma plataforma de desenvolvimento customizada para facilitar a criação de aplicativos Android. O JAVA é uma linguagem orientada a objetos e o XML é uma linguagem de marcação. O código do aplicativo é dividido em duas principais classes: classe principal, a MainActivity, que controla a tela principal e o fluxo de usabilidade e a classe HTTPSERVICE, que executa ,em segundo plano, as requisições HTTP. A tela é composta pelos botões on, off, zerar, quarto1, quarto2, reset e update. O botão on liga o dispositivo, o off desliga, o update traz as informações de consumo e estado. Os botões, quarto 1 e quarto 2, seleciona qual dispositivo será controlado. Por fim, o reset, zera todas as informações salvas e inicia contabilidade do consumo a partir do zero.
105
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Todos os valores são processados pelo controlador e transmitidos através da rede sem fio. O App recebe os dados via Stream e converte no formato String para exibir na tela as informações recebidas todas as vezes que o botão “UPDATE” é pressionado.
Figura 3. Tela do aplicativo em execução
Para testar a operabilidade dos protótipos, os sistemas foram instalados em uma residência. O aplicativo de controle foi instalado em três celulares de três voluntários que aceitaram utilizar projeto. Os controladores foram instalados próximo ao quadro de energia. A instalação física manteve-se entre o dispositivo a ser medido e o disjuntor de controle dentro do quadro elétrico. Os dispositivos selecionados são dois arcondicionados. Durante a etapa de teste, os dispositivos passaram a ser acionados unicamente pelo aplicativo, sem interferência dos respectivos controles remotos. Para cada controlador há diferenças na construção do projeto. 3.1 Arduino MEGA 2560 Para o Arduino, a versão escolhida foi o MEGA 2560. Com o intuito de não encarecer o projeto, o módulo ESP8266-01 foi utilizado para conectar ao Arduino e adicionar a função de conexão à rede sem fio. Para estabelecer a interoperabilidade entre esse módulo e o Arduino, foi implementado uma comunicação serial. Na ligação elétrica foi necessário tratar a diferença de tensão entre o esp8266 que opera com 3.3 volts e o Arduino com 5v, logo para elaborar a comunicação do TX do Arduino para o RX do ESP8266-01, um divisor de tensão foi montado para baixar a tensão elétrica durante a comunicação. A fonte de 3.3 volts do Arduino é utilizada para alimentar o ESP-01 e o pino de 5v para o relé e sensor. Para a comunicação com o módulo ESP-01, foram desenvolvidas funções baseadas no firmware que aceita comandos de controle AT. Após a montagem da primeira versão de código de controle do Arduino, notouse que os resultados obtidos, com a solução montada, não eram eficientes, pois o servidor Web ficou instável, nesse caso, foram desenvolvidas mais duas versões de
106
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
código, com outras funções para servidor Web, no controlador. A fim de buscar melhores resultados, foram utilizadas bibliotecas e funções disseminadas pelos programadores em outros projetos, que são utilizadas em outros projetos que envolvem o ESP-01 com Arduino. Na primeira versão, a função base de comunicação e controle com o ESP-01 é manualmente escrita dentro do código. A segunda versão do código, utiliza as funções da biblioteca WiFiEsp.h que abrange todas as funcionalidades necessárias para controle do módulo. A terceira versão utiliza uma biblioteca mais antiga, a ESP8266.h, essa biblioteca contém menos funções de controle, porém, suficientes para a iteração com o módulo. O código da versão dois e três assemelha se a do ESP32. As funções de controle, a gravação de memória e atuadores, são idênticas, mudando somente os pinos utilizados. Para manter os dados salvos, em caso de interrupção brusca do sistema, foi utilizada a memória EEPROM, nativa do microcontrolador. Na recepção dos valores do sensor, usou-se uma porta analógico, com as funções da biblioteca EmonLib.h. Essa biblioteca detém funções específicas para a medição de tensões e correntes. Esta parte do projeto de medição, foi baseada nas sugestões de código, oferecidas pela OpenEnergyMonitor, uma empresa especializada no sensor. Para alimentar o Arduino foi utilizado uma fonte externa de 12v. 3.2 ESP32 Para a implementação do WebServer, foi utilizado o recurso nativo de wireless juntamente com as funções de controle da biblioteca WiFi.h. No serviço de salvamento das informações, em caso de desligamento abrupto, foi utilizada a memória EEPROM com o auxílio da biblioteca EEPROM.h. Na demanda elétrica da placa, utilizou-se um carregador de celular de conexão mini USB, que entrega na saída 5V e uma corrente de até 1 ampeer. Apesar do controlador operar em 3.3v, existe um pino de fonte de tensão de 5v que forneceu a alimentação do atuador e sensor. Para a função que calcula e monitora o consumo através da medição da corrente, foi utilizada a biblioteca EmonLib.h, juntamente com as sugestões de implementação de códigos e cálculos fornecidas por ela. Um pino GPIO, que tem a função de receber valores analógicos fez a comunicação com o sensor. As bibliotecas e funções de controle do atuador, sensor, EEPROM são as mesmas do Arduino. Uma única versão de código foi suficiente para obter um sistema ótimo que alcançou os resultados desejados.
4. Resultados Os controladores conseguiram alcançar os mesmos resultados, porém com variantes durante o processamento. Para melhor evidenciar os resultados, será subdividido nos próximos dois subtópicos: O primeiro descreve os resultados utilizando o Arduino e o segundo para o ESP32. 4.1 Resultados usando o Arduino MEGA O Arduino, durante o processo de inicialização, apresentou leituras de corrente incorretas que são normalizadas depois de 6 processos de medição. Após a inicialização, o processo de medição da corrente apresentou nas leituras um erro no valor mediano de 0,2 amperes. O atuador funcionou normalmente. O controlador apresentou problemas na inicialização do serviço de Webserver, que após o processo de instalação, teve o sinal de recepção wireless atenuados, pois ficaram duas paredes de concreto entre a
107
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
controladora e o roteador. Para cada versão escrita para o Arduino, houve variações no comportamento e consequentemente nos resultados. O código 1 foi escolhido para a implementação final oferecida para testes dos usuários. Devido a atenuação do sinal, a inicialização do sistema do serviço de WebServer apresentou erros ou estado de busy(ocupado). Para solução deste problema, programou-se uma função que tenta por 10 vezes seguidas, inicializar o serviço. Quando não consegue estabelecer o serviço após as 10 tentativas, reinicia o dispositivo esp-01. Isso tornou a inicialização do serviço do microcontrolador variável, demorando de segundos à minutos para conseguir inicializar com sucesso. Quando a inicialização é executada com sucesso, é necessário, em média, 10 segundos para carregar todo o sistema. No nível de experiência de usuário, essa versão produz um atraso no tempo de resposta para cada requisição, com uma média de 2 a 4 segundos para executar uma tarefa. Como esse sistema depende de comunicação serial, houve incidência de erros ou estado de ocupado durante as requisições. Se for emitido outra requisição antes de terminar a anterior, o Webserver retorna um erro como resposta, travando a aplicação no celular. As versões 2 e 3 não foram testadas pelos usuários, pois o sistema implementado por elas produziu travamentos no tempo de execução. Detectou-se que o código responde em milissegundos de forma mais rápida a requisições e atuações, porém, no momento que é colocado a função de medição do consumo, logo após a execução do Webserver e atuador, o controlador passou a apresentar instabilidade no serviço sem fio. Quando o sistema é projetado para operar somente com comandos de atuador ou executar as funções de webserver, funciona normalmente com um tempo de atraso de resposta de menos de meio segundo. Porém, quando é adicionado a função de medição de corrente dentro da execução da função LOOP, ele apresenta travamentos. Outra forma de execução que demonstrou parcial funcionamento é adicionar a função de medição da corrente para ser executada somente quando a função do webserver for acionada, porém, nesse formato, o controlador não entregaria o valor real do consumo, entregando somente o valor da corrente no tempo requisitado. Além disso, notou-se que a função de atraso de tempo delay não foi aceita por ambas as versões. Sendo assim, as duas últimas versões não alcançaram os resultados esperados. 4.2 Resultados para o ESP32 O tempo necessário para inicializar todo o sistema é de aproximadamente 1,5 segundos. O uso das três funções colocadas no loop funcionou normalmente, assim como o uso da função delay, que executou normalmente dentro do código. O valor da variação de erro detectado durante a leitura é aproximadamente 0,26 amperes. Durante o processo de inicialização o controlador apresentou em média 3 leituras de energia inexistentes até o sensor chegar no estado estacionário. Durante a fase da montagem, o WebServer iniciou normalmente. Durante os testes iniciais e após aumento da atenuação do sinal do roteador pelas paredes de concreto, o controlador funcionou como esperado. O ESP32 iniciou normalmente todos os serviços sem travamentos. Os comandos do atuador responderam normalmente, assim como os resultados esperados do sensor e Webserver. Mesmo após as sucessivas reinicializações, a controladora iniciou os serviços normalmente e com os últimos valores salvos. Durante a experiência dos usuários, o sistema ESP32 demonstrou funcionamento normal com o tempo de resposta em média de até 1 segundo.
108
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
5. Considerações finais Esse projeto demonstrou que o controlador ESP32 respondeu às expectativas alcançando os resultados esperados. O Arduino também alcançou os resultados esperados, porém, com instabilidades durante o funcionamento. O ESP32 se destacou em relação ao Arduino por ter sido mais rápido na resposta, mais prático na implementação e mais econômico energeticamente, com a capacidade de operar gastando apenas 10µA de corrente. O avanço tecnológico tem proporcionado a redução do tamanho físico da tecnologia e o ESP32 vem justamente suprir esse déficit que o Arduino traz, sendo ela uma placa menor, mais rápida e com mais funcionalidades agregadas a sua construção. Quando se fala de IoT, o ESP32 traz vantagem por ter integrado ao seu sistema nativo a comunicação sem fio, wireless e bluetooth, além de ser dual core, o que na hora de processar mais de um comando não precisa parar um processo para tratar outro, processando as requisições concomitantemente. Além de bibliotecas desenvolvidas especialmente para ela, muitas das bibliotecas utilizadas nos projetos que contém sensores, memórias, atuadores, são compatíveis entre o Arduino, ESP8266 e o ESP32, o que facilita sua aceitação no mercado. O ESP32 possui sensores nativos que o destacam, como: o sensor Hall e de temperatura, que podem ser usados como medidores de energia, de espaço e de temperatura ambiente, tudo isso em um módulo oferecido a baixo preço comercial. Claramente, o Arduino e os módulos do ESP8266 sempre terão seu espaço no mercado, porém, terão que dividir com o ESP32 e talvez sendo substituídos em projetos já estabelecidos. No projeto com Arduino, o módulo wifi ESP-01 por depender de comunicação serial, aumentou o número de variáveis que podem causar interferência no sistema, tonando-se um ponto negativo durante as etapas de montagem. Além disso, necessitou de mais tempo para sua implementação e obteve comportamentos inesperados durante a execução. Com o desenvolvimento desse projeto, conclui-se que o ESP32 teve melhor gerência do processo de execução do fluxo de códigos que envolvem conexão sem fio. Este controlador é pequeno, econômico e com mais funções nativas a serem exploradas e testadas em seus mais diferentes aspectos. Tratando-se de projeto IOT com redes sem fio, o ESP32 demonstra ser uma alternativa ao Arduino.
Referências Companhia chinesa Espressif Systems. ESP32: Technical Reference Manual. Versão 4.0. 2018. Disponível em <www.espressif.com>. Acessado em: 17 de março de 2019. Curvelho, André. ESP32 – Um grande aliado para o Maker IoT. Fevereito de 2018. Disponível em < https://www.filipeflop.com/blog/esp32-um-grande-aliado-para-omaker-iot/>. Acessado em: 17 de março de 2019. Fernando K Tecnologia Canal. Introdução ao #ESP32 – Parte 1. Youtube. Publicado em 21 de novembro de 2017. Acessado em: 11 de maio de 2019. Oliveira, Euler. Conhecendo o NodMCU-32S ESP32. Maio de 2017. Disponível em < http://blogmasterwalkershop.com.br/embarcados/esp32/conhecendo-o-nodemcu-32sesp32/>. Acessado em: 17 de março de 2019.
109
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Magrani, Eduardo. A internet das coisas. 192p. Rio de Janeiro: FGV Editora. 2018. McRoberts, Michael. Arduino básico. São Paulo: Novatec Editora, 2011. Meira, Silvio. Sinais do futuro imediato, #1: internet das coisas Ikewai, Recife, dez. 2016. Disponível em <www.ikewai.com/WordPress/2016/12/12/sinais-do-futuroimediato-1-internet-das-coisas/>. Acessado em: 16 de março de 2019. Scarpin, Bruno. Como e por que praticar Gestão de Energia Elétrica?. Setembro de 2017. Disponível em < https://www.cubienergia.com/como-e-por-que-praticargestao-de-energia-eletrica/>. Acessado em: 17 de março de 2019. Silva, Robson; SALES, Allan; DESENVOLVIMENTO DE UM SISTEMA DE DOMÓTICA SEM FIO DE BAIXO CUSTO UTILIZANDO O MICROCONTROLADOR ESP8266. 2018. Disponível em < http://prpi.ifce.edu.br/nl/_lib/file/doc1539-Trabalho/PIBITI_RF.pdf >. Acessado em 17 de março de 2019. Wanzeler, Tiago; Merlin, Heleno; Desenvolvimento de um sistema de automação residencial de baixo custo aliado ao conceito de Internet das Coisas (IoT). Anais ST02 2016. Santarém, PA. Disponível em < sbrt.org.br/sbrt2016/anais/ST02/1570269244.pdf >. Acessado em: 16 de março de 2019.
110
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Detecção de Arcus Senillis em Imagens Oculares por meio de um Modelo de Classificação Baseado em Aprendizado Profundo Jailson Pereira Januário1 , Raı́ Santos da Soledade1 , Lucas Reis Pereira1 , Fábio Santos de Silva1 1
Laboratório de Sistemas Inteligentes Grupo de Pesquisas em Sistemas Inteligentes Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200, Manaus, AM {jpj.ads, rsds.inf, lprs.eng, fssilva}@uea.edu.br
Abstract. This work presents an image recognition methods analysis, focusing on the arcus senillis disease classification problem, objectifying informing if an iris image has the disease characteristics. Therefore, this work approaches the use of deep learning method, facing to the images recognition, using convolutional neural networks(CNN). For this purpose, it was created a database with more than a thousand images classified in two classes, to simulate the VGG16, Inception V3 and ResNet 50 models, and then to define a learning model to the arcus senillis disease images classification. Resumo. Esta pesquisa consiste na análise dos métodos de reconhecimento de imagem, com foco no problema da classificação da doença de arcus senillis, com o objetivo de informar se em uma determinada imagem de ı́ris possui caracterı́sticas da doença. Assim, o desenvolvimento do trabalho contempla o uso do método de aprendizado profundo, voltado para o reconhecimento de imagens, com a utilização de redes neurais convolucionais (CNN). Para esse fim, foi constituı́do um conjunto de dados com mais de 1000 imagens e duas classes, a fim de simular os modelos VGG 16, Inception V3, ResNet 50, e assim definir um modelo de aprendizado para a classificação de imagens com a doença de arcus senillis.
1. Introdução A cegueira tem afetado milhões de pessoas ao redor do mundo, e um diagnóstico precoce pode ser decisivo em alguns casos. De acordo com World Health Organization [Organization 2014], foram registrados 39 milhões de pessoas que estavam cegas em 2014, enquanto 285 milhões de pessoas eram portadoras de alguma deficiência visual do tipo moderada ou grave. Entre as principais doenças que podem ocasionar a obstrução total da visão, destacam-se: miopia; hipermetropia ou astigmatismo; catarata; e glaucoma. Por outro lado, existem também as doenças oculares que não prejudicam totalmente a visão, doenças conhecidas como Arcus Senillis, quando diagnosticadas revelam a existência de anéis ao redor da Íris ou na região central da córnea.
111
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Arcus Senillis (AS) é frequentemente detectada a olho nu, entretanto, exames oftalmológicos são necessários para o diagnóstico definitivo. De acordo com [Moreira et al. 2001] e [COGAN and KUWABARA 1959], a diferença entre AS e as demais doenças similares como Anel de Kayser Fleischer (K-F) está nas cores da pigmentação detectada na região central da córnea nos olhos, geralmente manifestada em forma de arco ou anel. No contexto computacional, a área de Inteligência Artificial (IA) tem despertado interesse da comunidade acadêmica e dos grandes da tecnologia como Google, Amazon, Microsoft e Apple. Segundo [Hamet and Tremblay 2017], especialmente na medicina, a tecnologia tenta melhorar os resultados e custos praticados, resultando em pesquisas como de [Gulshan et al. 2016], onde eles destacam investimentos no Google sobre um algoritmo de varredura ocular que busca milhões de imagens na internet, e detecte uma forma comum à cegueira em pacientes e problemas cardiovasculares através da retina. Humanamente, o diagnóstico de ambas as doenças já é feito por um especialista na medicina. No entanto, espera-se que com um método automático, a doença de AS possa ser detectada mais rápido e quem sabe até com maior precisão. Entretanto, uma investigação a respeito do problema precisa ser testada e avaliada por meio da exploração de técnicas de Aprendizado Profundo que sejam apropriadas e considerem às principais caracterı́sticas da doença. Este trabalho apresenta um modelo de classificação de imagens baseado em aprendizado profundo para a detecção de AS. Na Seção 2, são apresentados os fundamentos teóricos que deram suporte à realização deste trabalho. Seguindo para os trabalhos relacionados encontrados na literatura, descritos na Seção 3. Na Seção 4, são descritos os materiais e métodos do trabalho como aquisição do conjunto de dados, base de dados, pré-processamento dos dados e arquiteturas de aprendizado profundo utilizados neste trabalho. Por fim, na Seção 5 são apresentados os resultados e discussões referentes a avaliação dos modelos de aprendizado e na Seção 6 às considerações finais e trabalhos futuros.
2. Fundamentação Teórica 2.1. Aprendizado de Máquina Aprendizado de Máquina (AM) é nome dado ao processo de indução de uma hipótese a partir de experiências passadas [Facelli et al. 2015]. A principal tarefa do AM consiste na exploração e construção de algoritmos que possam aprender com dados históricos [Shalev-Shwartz and Ben-David 2014]. Algoritmos de AM possuem a capacidade de melhorar o desempenho na realização de alguma tarefa por meio da experiência [Marsland 2015]. Os algoritmos de AM podem ser utilizados em diversas tarefas, as quais podem ser classificadas em tarefas preditivas e tarefas descritivas. No primeiro caso, o objetivo é encontrar uma função que possa ser utilizada para prever um rótulo ou valor, a partir dos dados históricos de treinamento previamente rotulados, baseando-se nos valores dos atributos de entrada e saı́da dos dados de treinamento, seguindo assim o paradigma de aprendizado supervisionado. No segundo caso, o objetivo é descrever ou explorar o conjunto de dados não fazendo uso dos atributos de saı́da, seguindo assim o paradigma de aprendizado não supervisionado.
112
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
2.2. Redes Neurais Artificiais As Redes Neurais Artificiais (RNAs) podem ser definidas como sistemas paralelos e distribuı́dos, tendo em sua composição, unidades simples de processamento, as quais são chamadas de neurônios artificiais, que realizam cálculos de funções matemáticas, geralmente não lineares. As RNAs tentam reproduzir as redes neurais biológicas humanas, buscando implementar seu comportamento. Os neurônios são dispostos em uma ou mais camadas e são interligados por um grande número de conexões. Estas conexões, na maioria dos modelos de RNAs, possuem pesos associados que armazenam o conhecimento adquirido pelo modelo. As RNAs solucionam problemas passando inicialmente por uma fase de aprendizagem, onde um conjunto de exemplos são apresentados à rede, que extrai caracterı́sticas que representam a informação fornecida, e posteriormente, estas caracterı́sticas são utilizadas para gerar respostas para o problema [de Pádua Braga et al. 2016]. 2.3. Aprendizagem Profunda A Aprendizagem Profunda (do inglês Deep Learning(DL) é um subcampo especı́fico do Aprendizado de Máquina (AM), e pode ser definida como uma classe das Redes Neurais Artificiais (RNAs) composta por muitas camadas de processamento [Moujahid 2016]. Uma rede neural tradicional possui apenas uma camada oculta, onde é realizado o aprendizado do modelo. Já uma rede neural profunda pode ser composta por diversas camadas ocultas. As várias camadas ocultas de uma rede profunda fazem com que às redes neurais aprendam caracterı́sticas dos dados por meio de uma hierarquia de conceitos. Dessa forma, a rede neural aprende conceitos complexos a partir da combinação de conceitos mais simples [Goodfellow et al. 2016]. 2.4. Redes Neurais Convolucionais As Redes Neurais Convolucionais (do inglês Convolutional Neural Network (CNN)) são modelos de Aprendizado Profundo (DL) que operam de forma semelhante às redes neurais tradicionais, diferenciando-se pelo fato de que cada unidade em uma camada de CNN é um filtro de duas ou mais dimensões que são convolvidas com a entrada dessa camada [Khan et al. 2018]. As CNNs são comumente utilizadas para trabalhar com dados de alta dimensão, como imagens e vı́deos, e possuem vários tipos de camadas como: as convolutivas, que realizam os primeiros filtros de processamento; camadas de agrupamento, que permitem com que a rede codifique propriedades de imagens, por exemplo; e por fim uma ou várias camadas totalmente conectadas com uma função de perda para a análise da rede. A saıda no final pode ser uma única classe ou uma probabilidade de classes que melhor descrevem a imagem [Deshpande 2016].
3. Trabalhos Relacionados A Aprendizagem profunda está fazendo grandes avanços no meio da comunidade de inteligência artificial. E nos últimos anos, redes neurais profundas ganharam numerosas disputas em reconhecimento de padrões e aprendizado de máquina [Schmidhuber 2015]. Um tipo particular de rede neural profunda, as redes neurais convolucionais (CNNs), tem ganhado destaque na comunidade cientı́fica por sua capacidade de generalização e pela facilidade de treinamento. E provaram ser eficientes em diversas tarefas de reconhecimento de imagens e vı́deos, sistemas de recomendação e processamento de linguagem natural. Se tornando o novo padrão em visão computacional [Araújo et al. 2017].
113
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
No trabalho de Lima [Lima et al. 2018] Evolving Convolution Neural Networks for Glaucoma Diagnosis, foi aplicado uma CNN para o diagnóstico automático de glaucoma através de imagens de fundo de olho. Esta abordagem, segundo autor, mostra-se eficiente com resultados satisfatório após o treinamento da melhor rede escolhida através de um algoritmo genético, obtendo uma precisão de 91%. Para a realização dos experimentos foi adquirido um conjunto de dados do RIM-ONE [Fumero et al. 2011], que possui imagens de classe normal e classe “glaucoma e suspeito” , após foi aplicada a uma CNN para o reconhecimento de 2 classes, normal ou “glaucoma e suspeito”. Foi apresentado em Ramlee [Ramlee et al. 2011] um sistema para detecção de colesterol através da detecção de Arcus senillis por meio de imagens de ı́ris. Este sistema fez uso de processamento de imagem para a detectar a doença, usando algoritmos de Transformação de Hough, Normalização e Segmentação, que são técnicas clássicas da visão computacional. Depois que uma imagem é submetida a todo esse processamento, para determinar se o olho tem o anel caracterı́stico da doença, é plotado um histograma da imagem de modo que a decidibilidade é determinada usando o método de OSTU. Para tal, os autores apresentaram uma abordagem baseada em técnicas clássicas de visão computacional, combinando o conjunto de dados adquirido do CASIA [CASIA ], UBIRIS [Proença and Alexandre ] e MMU [MMU ]. O reconhecimento de padrões em imagens usando Rede Neurais Convolucionais (CNN) é o novo modelo usado na visão computacional, independente da área em que será utilizada. A estratégia desta pesquisa visa a utilização dos métodos de aprendizado profundo para a geração de um modelo de aprendizado preciso no reconhecimento de imagens com à doença de Arcus senillis. Assim foram utilizadas três arquiteturas do estado da arte relacionados a redes neurais convolutivas, para analisar qual melhor se adequá ao problema de pesquisa deste projeto. As arquiteturas utilizadas foram: VGG16 (2014) [Simonyan and Zisserman 2014], Inception V3 (2015) [Szegedy et al. 2015] e ResNet 50 (2015) [He et al. 2015].
4. Materiais e Métodos A estrutura do sistema foi definida em 4 etapas, que são definidas como: coleta e criação da base de dados; pré-processamento; implementação e simulação dos modelos e análise de resultados. Na Figura 1 é demonstrado a pipeline do ciclo de implementação do sistema de classificação de imagens com a doença de Arcus Senillis desenvolvido neste trabalho.
Figura 1. Pipeline do sistema de classificação da doença de Arcus Senillis.
4.1. Base de Imagens O aprendizado profundo possui a capacidade de aprender caracterı́sticas automaticamente a partir da necessidade e do efeito de um grande conjunto de dados [Chollet 2018]. Para desenvolver um algoritmo que seja capaz de classificar imagens em categorias distintas, é preciso fornecer ao computador exemplos (imagens) de cada classe, para em seguida,
114
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
processar esses exemplos e gerar uma aprendizagem inferindo a qual classe o exemplo pertence. Esta abordagem é referida como abordagem baseada em dados, pelo qual um conjunto de dados de imagens rotuladas, que serão processadas e aprendidas através de um processo de treinamento. Uma vez que o modelo é treinado, ele pode ser avaliado a partir de um conjunto de dados independente, com exemplos que não foram vistos na fase de treinamento, para determinar quão bem o modelo de aprendizagem pode generalizar para dados não vistos [Brink et al. 2017]. Para a constituição da base de imagens de ı́ris utilizado no projeto, foi obtido a captura das imagens de duas fontes distintas: Google Images e Departamento de Ciência da Computação da Universidade de Palacky, em Olomouc. Resultando em um total de 223 imagens, distribuı́das em 2 (duas) classes: não doente (162) e doente (61). Na Figura 2 é demonstrado as imagens de ı́ris referentes a cada classe.
Figura 2. Imagem de ı́ris sem arcus senillis (lado esquerdo) e com arcus senillis (lado direito).
4.2. Pré-processamento e aumento de dados Para aumentar os exemplos de treinamento, foi utilizado o modelo tradicional de transformações de imagens, que constitui, por exemplo, na combinação de operações de zoom, cortes e rotação. Foram aplicadas em média 9 transformações para cada imagem de entrada, assim para um conjunto de dados N, geramos um conjunto de 8N. A implementação para as transformações das imagens, preocupo-se em aumentar o conjunto de dados deixando às classes balanceadas conforme as transformações feitas nas amostras de dados. Dessa forma o conjunto de treinamento criado resultou em 800 instâncias de cada classe, totalizando em 1600 imagens. Um exemplo do resultado obtido a parti das transformações é demonstrado na Figura 3.
Figura 3. Imagens pré-processadas
4.3. Arquiteturas de Redes Neurais Convolucionais Implementadas 4.3.1. VGG16 A arquitetura da rede VGG16 foi introduzida por Simonyan e Zisserman em seu artigo de 2014, “Very Deep Convolutional Networks for Large Scale Image Recognition”[Simonyan and Zisserman 2014], sendo caracterizada pela sua simplicidade e alto
115
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
desempenho. Contém 16 camadas convolucionais, fazendo o uso de filtros de convolução no tamanho 3 x 3, seguido de cinco camadas máximas de tamanho 2 x 2 para realizar o agrupamento espacial e por três camadas totalmente conectadas, com a camada final tendo um classificador sigmoid. 4.3.2. Inception V3 É uma arquitetura de rede de aprendizagem profunda com menos parâmetros, cerca de 42 camadas e com uma complexidade semelhante à VGG16 , que ficou conhecida por ser a campeã do ILSVRC (ImageNet Large Scale Visual Recognition Competition) 2015 [Szegedy et al. 2015]. Neste trabalho foi utilizada a Inception V3, seguindo um processo de substituição da última camada por um conjunto de camadas (FC => RELU => FC => SIGMOID), aproveitando os pesos da rede que foram treinados para o Image Net, processo denominado Transfer Learning. 4.3.3. ResNet 50 A arquitetura da rede ResNet foi introduzida no artigo “Deep Residual Learning for Image Recognition” em 2015 [He et al. 2015], ganhou o 1o lugar nas competições de classificação do ILSVRC e COCO 2015 em ImageNet Detection, localização ImageNet, COCO detecção e segmentação. Para este projeto utilizou-se sua versão de 50 camadas, que é similar a VGG porém é inserido “atalhos” para formar a rede residual onde é possı́vel “pular” camadas e alimentar camadas posteriores, tornando possı́vel diminuir a complexidade do treinamento. Em todos os modelos criados na última camada (camada de saı́da), foram utilizados a função de ativação Sigmoid, que é a função responsável por definir a saı́da dos neurônios, de acordo com qual classe ele corresponde, assumindo um padrão probabilı́stico e modelando uma saı́da binária sobre as duas classes de saı́da definidas nos modelos implementados. 4.4. Descrição da Tarefa de Aprendizado Profundo Para este projeto foi adotado a utilização do Hold-out na base de imagens utilizada para o treinamento do modelo de aprendizagem, distribuı́dos da seguinte forma: 70% das instâncias para treino, 10% para validação e 20% para teste. Esta forma de distribuição é descrita por [Brink et al. 2017] para treinamento e avaliação de modelos de aprendizado de máquina. As arquiteturas utilizadas foram treinadas com diferentes números de épocas (150, 200 e 250), buscando verificar o desempenho das redes com números de épocas diferentes, e com batch de tamanho 32, como abordado em [Ponti and de Barros Paranhos da Costa 2017]. Utilizamos a função linear retificada, para o problema de classificação binária. Para a otimização foi utilizado o algoritmo de gradiente descendente estocástico ou sgd, que requer ajuste na taxa de aprendizagem e momento, que neste caso foram definidos com valores de 0.01 e 0.9 respectivamente. E por fim, a especificação da métrica de avaliação do modelo criado, pelo qual foi utilizado a F1 Score e função de perda do modelo de cada classificação.
116
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A medida do F1 Score foi calculada a partir das funções de precisão e recall para todos os os rótulos apresentados ao modelo. O F1 Score foi escolhido para manter um equilı́brio entre a precisão e recall, sendo a métrica muito utilizada para modelos com conjunto de dados desbalanceados. Na Equação 1 é demonstrado o cálculo do F1 Score, combinando a precisão e recall para o cálculo da métrica. F 1 = 2 ∗ (precisão ∗ recall)/(precisão + recall)
(1)
Na função de perda é expressa a diferença entra as previsões do modelo treinado, e as verdadeiras instâncias do problema, com o objetivo de designar as imprecisões geradas pelo modelo treinado. A função de perda utilizada foi a binary crossentropy, que retorna a entropia cruzada entre duas distribuições de probabilidade, medindo o número médio de bits necessário para identificar um determinado evento em um conjunto de dados. A Equação 2 demonstra o cálculo da função de perda. H(p, q) = −
X
pi logqi = −ylog ŷ − (1 − y)log(1 − ŷ)
(2)
5. Resultados e Discussão Para os três modelos simulados no projeto: VGG 16, Inception V3 e ResNet 50, foram avaliados o desempenho (acurácia e taxa de perda) de cada uma das arquiteturas. Na Figura 4 é apresentado todos os resultados dos valores da acurácia dos modelos gerados em relação aos diferentes números de épocas, no subconjunto de validação. O melhor modelo de aprendizado do VGG 16 obteve o valor de 59,12% em sua acurácia e uma taxa de perda de 6,59%, com treinamento em 150 épocas. O melhor resultado para o modelo Inception V3 obteve uma acurácia de 86.25% e uma taxa de perda de 0.27%, seguindo em um treinamento com 250 épocas. E para o modelo de aprendizado ResNet 50, o melhor resultado obteve 97.56% de acurácia, 0.13% de taxa de perda com treinamento em 200 épocas A Tabela 1 apresenta as estatı́sticas em relação as métricas de f1 score e perda do conjunto de treinamento e teste, demonstrando os melhores resultados para os modelos treinados. Tabela 1. Resumo da avaliação dos melhores modelos.
Modelo VGG 16 Inception V3 ResNet 50
Épocas 150 250 200
Treino F1 Score Perda 50.00% 7.96% 95.38% 0.11% 99.85% 0.08%
Validação F1 Score Perda 50.00% 8.05% 86.78% 0.27% 97.56% 0.13%
5.1. Análise das Predições Com base nos modelos apresentados em cada arquitetura simulada, foram realizadas algumas análises relacionadas ao conjunto de teste, para saber qual o melhor modelo corresponde a classificação de Arcus Senillis, proposto neste projeto. Para tal, foi gerado uma
117
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 4. Desempenho das arquiteturas em número de épocas diferentes.
matriz de custo que calcula o custo da predição correta ou incorreta sobre novos dados do conjunto de teste nos modelos propostos, correspondendo em 200 imagens de teste para cada classe, totalizando em um total de 400 (quatrocentas) imagens de teste. Em todas as arquiteturas foram utilizados os melhores modelos analisados nas simulações para a realização dos testes de predição. Na Tabela 2 é demonstrado uma matriz de custo para os valores previstos corretos e incorretos das arquiteturas implementadas. Tendo a ResNet 50 a arquitetura com à melhor previsão e um menor custo de 514, para dados não vistos, errando apenas 6 casos da classe doente e 7 da não doente.
6. Considerações e Trabalhos Futuros Este trabalho teve como foco o desenvolvimento de um modelo computacional de classificação da doença de Arco Senillis, através do reconhecimento de imagem. O moTabela 2. Matriz de Custo dos modelos implementados
Doente Não Doente Custo
VGG 16 Doente Não Doente 200 0 200 0 20.000
Inception V3 Doente Não Doente 162 38 37 162 3.576
ResNet 50 Doente Não Doente 192 6 7 192 514
118
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
delo proposto é capaz de reconhecer duas classes, com a utilização das técnicas e métodos de aprendizado profundo. Foram realizados teste e validações nos três modelos de aprendizado, com taxas de precisão na média geral, do estado da arte, para este problema de classificação de imagens. Os modelos implementados apresentaram boas taxas de aprendizagem em relação ao tamanho do conjunto de dados e as arquiteturas implementadas, não tendo uma diferença significativo para os diferentes números de épocas testadas no projeto. Podemos concluir que a metodologia abordada neste trabalho, para a classificação de imagens, mostrou-se uma abordagem significativa para o reconhecimento de padrões em imagens. Como proposta de melhorias e trabalhos futuros será realizado uma busca por um conjunto de dados real e com um número maior de exemplos, avaliado por um especialista, para verificar o desempenho dos modelos em dados reais. E o desenvolvimento de uma aplicação móvel que possa permitir um usuário usar o modelo mais bem avaliado para classificação da doença.
7. Agradecimentos Os autores agradecem o apoio material e financeiro provido pela Fundação de Amparo à Pesquisa do Estado do Amazonas (FAPEAM) por meio do PPP 04/2017.
Referências Araújo, F. H. D., Carneiro, A. C., Silva, R. R. V., Medeiros, F. N. S., and Ushizima, D. M. (2017). Redes neurais convolucionais com tensorflow: Teoria e prática. Brink, H., Richards, J. W., and Fetherolf, M. (2017). Real-World Machine Learning. Manning Shelter Island. CASIA. Casia. http://www.cbsr.ia.ac.cn/IrisDatabase.htm. 2003. Chollet, F. (2018). Deep Learning with Python. Manning Shelter Island. COGAN, D. G. and KUWABARA, T. (1959). Arcus Senilis: Its Pathology and Histochemistry. A.M.A. Archives of Ophthalmology, 61(4):553–560. de Pádua Braga, A., de Leon F. de Carvalho, A. P., and Ludermir, T. B. (2016). Redes Neurais Artificiais: Teoria e Aplicações. LTC - Livros Técnicos e Cientı́ficos Editora Ltda, Rio de Janeiro, 2 edition. Deshpande, A. (2016). A beginner’s guide to understanding convolutional neural networks. Retrieved March, 31(2017). Facelli, K., Lorena, A. C., ao Gama, J., and de Carvalho, A. C. (2015). Inteligência Artificial: Uma Abordagem de Aprendizado de Máquina. LTC - Livros Técnicos e Cientı́ficos Editora Ltda, Rio de Janeiro, Brasil. Fumero, F., Alayón, S., Sanchez, J., Sigut, J., and Gonzalez-Hernandez, M. (2011). Rimone: An open retinal image database for optic nerve evaluation. pages 1 – 6. Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep learning. MIT press. Gulshan, V., Peng, L., Coram, M., Stumpe, M. C., Wu, D., Narayanaswamy, A., Venugopalan, S., Widner, K., Madams, T., Cuadros, J., Kim, R., Raman, R., Nelson, P. C.,
119
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Mega, J. L., and Webster, D. R. (2016). Development and Validation of a Deep Learning Algorithm for Detection of Diabetic Retinopathy in Retinal Fundus PhotographsAccuracy of a Deep Learning Algorithm for Detection of Diabetic RetinopathyAccuracy of a Deep Learning Algorithm for Detection of Diabetic Retinopathy. JAMA, 316(22):2402–2410. Hamet, P. and Tremblay, J. (2017). Artificial intelligence in medicine. Metabolism, 69:S36 – S40. Insights Into the Future of Medicine: Technologies, Concepts, and Integration. He, K., Zhang, X., Ren, S., and Sun, J. (2015). Deep residual learning for image recognition. Khan, S., Rahmani, H., Shah, S. A. A., and Bennamoun, M. (2018). A Guide to Convolutional Neural Networks for Compute Vision. Morgan Claypool Publishers. Lima, A., Maia, L. B., dos Santos, P. T. C., Junior, G. B., de Almeida, J. D. S., and de Paiva, A. C. (2018). Evolving convolutional neural networks for glaucoma diagnosis. In 18o Simpósio Brasileiro de Computação Aplicada à Saúde (SBCAS 2018), volume 18, Porto Alegre, RS, Brasil. SBC. Marsland, S. (2015). Machine Learning: An Algorithmic Perspective. Taylor Fancis Group, Estados Unidos, 2 edition. MMU. Mmu. http://pesona.mmu.edu/. 2005. Moreira, D. M., Moreira, J. S. R., Fritscher, L. G., de Garcia, R. G., and Rymer, S. (2001). Anéis de kayser-fleischer. Moujahid, A. (2016). A practical introduction to deep learning with caffe and python. Retrieved February, 19:2018. Organization, W. H. (2014). World health statistic. Ponti, M. A. and de Barros Paranhos da Costa, G. (2017). Como funciona o deep learning. Simpósio Brasileiro de Banco de Dados. Proença, H. and Alexandre, L. UBIRIS: A noisy iris image database. In 13th International Conference on Image Analysis and Processing - ICIAP 2005, volume LNCS 3617, pages 970–977, Cagliari, Italy. Springer. Ramlee, R., Aziz, K., Ranjit, S., and Esro, M. (2011). Automated detecting arcus senilis, sympton for cholesterol presence using iris recognition algorithm. Schmidhuber, J. (2015). Deep learning in neural networks: An overview. Networks, 61:85 – 117.
Neural
Shalev-Shwartz, S. and Ben-David, S. (2014). Understanding machine Learning: From Theory to Algorithms. Cambridge University Press, Cambridge, Inglaterra. Simonyan, K. and Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. Cornell University, 6. Szegedy, C., Vanhoucke, V., Loffe, S., Shlens, J., and Wojna, Z. (2015). Rethinking the inception architecture for computer vision. Cornell University.
120
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Desenvolvimento de um Sistema de Recomendação de Candidatos a Cargos Públicos Utilizando Técnicas de Aprendizagem de Máquina e Filtragem de Informação Lucas Pereira Reis1, Jailson Pereira Januário1 , Fábio Santos da Silva1 1
Laboratório de Sistemas Inteligentes Grupo de Pesquisas em Sistemas Inteligentes Escola Superior de Tecnologia Universidade do Estado do Amazonas (UEA), AM. {lprs.eng, jpj.ads, fssilva}@uea.edu.br
Abstract. Every four years the brazilians population is lost among the excessive number of candidates of political positions and ends up no finding a suitable candidate. This article presents a proposal for a Candidates Recommender System for political positions using machine learning and information filtering techniques aiming to ease voters’ lives, presenting candidates that match their profiles. Resumo. De quatro em quatro anos a população brasileira se perde na excessiva quantidade de candidatos a cargos políticos e acaba não conseguindo encontrar um candidato adequado, tornando votar uma tarefa árdua. Este artigo apresenta a proposta de um Sistema de Recomendação de candidatos a cargos públicos utilizando técnicas de aprendizagem de máquina e filtragem de informação visando facilitar a vida dos eleitores, apresentando candidatos que possuem seu perfil.
1. Introdução Eleição é todo processo onde um grupo de pessoas escolhe seus representantes de algum cargo público através de votações. As eleições no Brasil são realizadas através do voto direto, secreto e obrigatório. No Brasil a cada eleição muitos políticos são candidatos para inúmeros cargos, gerando uma dificuldade dos eleitores em analisar todas as propostas de todos os candidatos para votar no mais apropriado. Esta dificuldade de escolha de uma opção diante de uma diversidade é conhecida na literatura como o problema da Sobrecarga de Informação. Uma das consequências deste problema é que o eleitor acaba escolhendo o candidato por meio de recomendações de amigos, por marketing através de TV, rádios, jornais, revistas etc. Sistemas de recomendação estão presentes em nosso cotidiano em diversos tópicos, incluindo no mundo político. Normalmente vemos estes sistemas serem apresentados em páginas web ao invés do meio acadêmico como em [Época
121
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Negócios Online 2014]. Em [Lim et al. 2017] temos um sistema similar que utiliza Filtragem Híbrida para recomendar candidatos da Coréia do Sul.
2. Fundamentação Teórica Nesta seção serão descritos os conceitos e as técnicas utilizadas para o desenvolvimento deste trabalho. 2.1. Sistemas de Recomendação Segundo [Adomavicius and Tuzhilin 2005], os Sistemas de Recomendação podem ajudar o usuário a lidar com o problema da sobrecarga de informação. Estes sistemas aplicam técnicas de análises de dados e filtragem de informação para recomendar itens relevantes de acordo com o perfil do usuário estabelecido. Sua construção é baseada em três técnicas da área de Recuperação de Informação: Filtragem Baseada em Conteúdo (FBC), Filtragem Colaborativa (FC) e Filtragem Híbrida (FH). 2.2. Filtragem Híbrida A FH é uma técnica obtida a partir da combinação da FC com a FBC, onde a FC trabalha combinando as opiniões de usuários que expressaram inclinações similares para o usuário atual [Breese et al. 1998] e FBC trabalha analisando a descrição de itens para identificar quais são do interesse particular do usuário [Pazzani and Billsus 2007]. É possível combiná-las conforme visto em [Burke 2002].
3. Materiais e Métodos Nesta seção serão descritos a forma de obtenção do dataset utilizado e como o sistema está arquitetado. 3.1. Dados Experimentais Para implementar a FC, é necessário primeiramente desenvolver a FBC e a FC, as duas filtragens possuem seus próprios datasets. Para esta etapa da FBC foi obtido os dados dos ex-candidatos à presidência à partir de seus perfis no Twitter, onde foi realizado a extração de seus tweets durante a época das eleições de 2018 e feito a contagem de termos que são semelhantes ou sinônimos das seguintes áreas de interesse: cultura, economia, educação, meio ambiente, saúde, segurança e tecnologia, por fim utilizou-se a métrica TF-IDF para mensurar o grau de relevância do candidato para cada área dentro de sua proposta [Ramos et al. 2003]. Os dados da FC são obtidos a partir da coleta de opiniões de usuários, para isso criou-se um simples formulário no Google onde é solicitado uma avaliação de 1 a 5 dos ex-candidatos à presidência. Foi obtido ao todo 107 respostas e as avaliações desses usuários foram adicionadas ao dataset. 3.2. Arquiteturas de Sistemas de Recomendação O protótipo desenvolvido para o sistema foi desenvolvido utilizando Flask com SQLite, a três filtragens de informação foram desenvolvidos à parte, assim o sistema apenas realiza a chamada do algoritmo. A seguir a arquitetura desenvolvida.
122
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figure 1. Arquitetura utilizada para o protótipo.
3.3. Descrição da Tarefa de Recomendação Como pode ser observado na figura 1, o método utilizado para a FH é o Cascade [Burke 2002]. A FC encontra o(s) usuário(s) mais similar(es) ao usuário atual e recomenda candidatos analisando o perfil de cada um, a saída da FC é a entrada da FBC, e esta filtragem irá ordenar os candidatos pela similaridade com o usuário atual de acordo com o perfil especificado.
4. Resultados e Discussão Para avaliar o protótipo desenvolvido para o sistema, foi convidado um grupo de pessoas para utilizá-lo, cada um especificou quais candidatos são relevantes e solicitou a recomendação do sistema. Utilizou-se métricas clássicas de sistema de recomendação para a avaliação conforme visto em [Shani and Gunawardana 2011].
5. Considerações Finais Podemos observar na seção anterior que os resultados obtidos não foram agradáveis. É importante ressaltar que em muitos casos os candidatos relevantes ao usuário são por questões ideológicos ou recomendações de amigos e mídias, portanto é possível que o perfil especificado pelo usuário seja equivalente a candidatos recomendados que não são relevantes, ocasionando uma insatisfação do usuário e uma queda nas suas métricas.
123
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A continuação deste projeto irá se focar primeiramente em melhorar o algoritmo de recomendação e desmembrar as duas filtragens implementadas. Para a FBC será explorado diferentes abordagens utilizando a API do Twitter (como análise de sentimento) para enriquecer ainda mais o dataset, caso seja possível será realizado em conjunto com um modelo baseado em aprendizagem de máquina. Por fim, o protótipo em Flask será transformado em uma API para o backend, e o frontend será desenvolvido utilizando a linguagem Javascript para tornar a interface mais rica e agradável.
Agradecimentos Os autores agradecem o apoio material e financeiro provido pela Fundação de Amparo à Pesquisa do Estado do Amazonas (FAPEAM) por meio do PPP 04/2017. Referências Adomavicius, G. and Tuzhilin, A. (2005). Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. IEEE Transactions on Knowledge & Data Engineering, (6): 734-749. Breese, J. S., Heckerman, D., and Kadie, C. (1998). Empirical analysis of predictive algorithms for collaborative filtering. In Proceedings of the Fourteenth conference on Uncertainty in artificial intelligence, pages 43–52. Morgan Kaufmann Publishers Inc. Burgarelli, R. (2016). Voto inconsciente: o que o brasileiro leva em conta para decidir seu candidato a prefeito?. https://alias.estadao.com.br/noticias/geral,voto- inconsciente-o-que-o-brasileiro-leva-em-conta-para-decidir-seu-candidato-para-prefeito, 10000077956. Acessado em: 22 de abril de 2018. Burke, R. (2002). Hybrid recommender systems: Survey and experiments. User modeling and user-adapted interaction, 12(4):331–370. Lim, K., Kim, C., Kim, G., and Choi, H. (2017). A recommender system for political information filtering. In International Conference of Design, User Experience, and Usability, pages 129–145. Springer. Pacievitch, T. Eleições no brasil. https://www.infoescola.com/direito/eleicoes-no-brasil/. Acessado em: 22 de abril de 2018. Pazzani, M. J. and Billsus, D. (2007). Content-based recommendation systems. In The adaptive web, pages 325–341. Springer. Ramos, J. et al. (2003). Using tf-idf to determine word relevance in document queries. In Proceedings of the first instructional conference on machine learning, volume 242, pages 133–142. Shani, G. and Gunawardana, A. (2011). Evaluating Recommendation Systems, volume 12, pages 257–297. Época Negócios Online (2014). 10 aplicativos e sites que ajudam a decidir em quem votar. https://epocanegocios.globo.com/Informacao/Acao/noticia/2014/10/10- aplicativos-e-sites-que-ajudam-decidir-em-quem-votar.html. Acessado em: 27 de abril de 2018.
124
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Desenvolvedores multidisciplinares: um estudo de caso sobre o novo perfil profissional do mercado de tecnologia da informação Mychelle Silva da Rocha1, Mayana Fernandes Veras1, Isadora Santarém Queiroz1 1
Centro de Pesquisa UNASUS Amazônia – Universidade do Estado do Amazonas (UEA) Manaus – AM – Brasil mychelle.rocha@unasusamazonia.com.br, mayana.veras@unasusamazonia.com.br, isadora.queiroz@unasusamazonia.com.br
Abstract. With the technological advances and the new situation of software development, the multidisciplinary developers have special significance to this panorama, contributing to better results in software projects, because they perform in several functions and move in several areas without difficulties. These professionals are inserted in a high-agile environment and with abrupt changes, where they need fast decision-making and accurate decisions for success for the project. Resumo. Com os avanços tecnológicos e o novo cenário de desenvolvimento de software, os desenvolvedores multidisciplinares tem uma relevância especial nesse panorama, contribuindo para melhores resultados nos projetos de software, pois podem desempenhar vários papéis e caminhar em várias áreas sem maiores dificuldades. Tais profissionais estão inserido em um ambiente altamente ágil e com mudanças bruscas, nesse caso é preciso tomar decisões rápidas e precisas para o êxito do projeto.
1. Introdução A área de concentração do estudo em andamento é a engenharia de software com a linha de pesquisa direcionada aos aspectos humanos da mesma, a fim de analisar como os perfis profissionais podem influenciar nos resultados dos projetos de software. Entende-se que a boa execução do gerenciamento de projeto é um dos fatores primordiais que o fazem alcançar o sucesso, mas como afirma Hirama (2012) apesar das atividades de gerenciamento de projeto não fazerem parte das atividades técnicas de desenvolvimento de software, as mesmas são tão importantes quanto devido à forte interação entre ambas. Por este motivo, faz-se importante na atualidade a multidisciplinaridade dos componentes técnicos, enfatiza-se as habilidades individuais de cada membro e combinando-as com a colaboração em grupo (Pressman e Maxim, 2016). Não se trata apenas das habilidades técnicas, mas também das habilidades pessoais que possibilitam o enfrentamento mais fácil das questões encontradas no decorrer da execução do projeto. Para tanto, é necessário analisar e compreender o quanto perfis multidisciplinares realmente impactam em projetos de desenvolvimento comparados a perfis tecnicamente
125
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
lineares, quais os resultados e valores tais perfis agregam ao projeto e à equipe técnica, e como tais características podem ser aproveitadas e viabilizadas nos profissionais. Logo a pesquisa contribui com o mercado tecnológico de forma a elucidar as vantagens e desvantagens que desenvolvedores multidisciplinares trazem ao projeto de software, possibilitando novos estruturas nas equipes, que se tornam mais homogêneas e ativas nas etapas do ciclo de vida do projeto, consequentemente deixando-o mais consistente. Como este estudo trata-se especificamente do perfil dos desenvolvedores, sendo estes multidisciplinares ou técnicos, os mesmos podem ter uma participação fundamental e decisiva nos projetos de software, podendo auxiliar além de sua função ao restante da equipe. Diante disto questiona-se: A multidisciplinaridade dos desenvolvedores de software pode contribuir para os resultados em projetos de software? E o quanto este perfil impacta na equipe técnica do projeto? Por isso, objetivo geral do estudo em andamento é identificar quais são as vantagens e desvantagens da alocação de desenvolvedores multidisciplinares em projetos de software, por meio da análise dos impactos causados pela atuação destes profissionais nos resultados do projeto.
2. Metodologia A metodologia adotada para este estudo foi o modelo metodológico, estudo de caso, com o intuito de estudar os diferentes perfis de profissionais da área de desenvolvimento de software, para tal considerou a metodologia de Yin (2003), considerando os pontos: Visão geral do projeto: O objetivo do projeto abrange a avaliação de profissionais multidisciplinares no desenvolvimento, enquanto as questões do estudo de caso indagam a colaboração dos mesmos atuando na equipe técnica. Para nortear a pesquisa foram utilizados seis artigos relevantes para a área de concentração. Procedimentos de campo: A inserção participativa para a observação direta no ambiente da equipe técnica contribui para a análise dos resultados obtidos sobre o quesito levantado. Determinação das questões: A questão enfatizada de como a presença de um desenvolvedor multidisciplinar interfere nos resultados obtidos em um projeto de software é seguida para a base das discussões apresentadas sobre o que se observou. Guia para elaboração relatório: Considera-se que o estudo se encontra na fase de análise por meio do relatório, fundamentando-se nas observações realizados durante a pesquisa do tópico.
3. Resultados e discussões O desenvolvimento de software sofreu muitas mudanças ao longo do tempo, até a década de 80 o único modelo de processo de desenvolvimento, era o modelo cascata e segundo Sutherland (2014). Juntamente com a metodologia ágil Scrum, surgiram também as equipes multifuncionais, tais profissionais possuem características ágeis e multidisciplinar, podendo caminhar por várias áreas e projetos no âmbito do desenvolvimento de software. Sendo assim, o estudo aborda o caso de perfil dos novos profissionais da tecnologia da informação, para tal escolheu-se dois projetos e por questões legais e de confidencialidade, os nomes dos projetos foram omitidos.
126
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
O projeto Beta ainda está em execução, com previsão de término no mês de maio do ano de 2019, este é uma ferramenta para a produção de conteúdo educacional com o foco no ensino e aprendizagem dos acadêmicos e profissionais da área da saúde. Possui versões smartphone, tablet e desktop. O projeto Alpha foi finalizado em dezembro de 2018, com um total de duração de 7 meses executou uma ferramenta de auxílio ao diagnóstico clínico por meio de imagens dinâmicas e imagens 3D, a ferramenta também possui versão smartphone, tablet e desktop. Ambos os projetos utilizam a linguagem de programação Java para as versões mobile e Javascript e Node js para as versões web e desktop e conta com a estrutura de Pesquisa, Desenvolvimento e Validação. Onde os desenvolvedores exercem as seguintes atividades: Quadro 1. Requisitos e parâmetros para construção do sistema Área de atuação Liderança técnica
Desenvolvedor
Desenvolvedor multidisciplinar
Não se aplica.
Participação em reuniões com o cliente; Participação em reuniões técnicas com a empresa financiador; Colaboração no desenvolvimento do plano de trabalho para novos projetos.
Supervisão técnica
Mentoria dos estagiários Auxílio aos demais desenvolvedores.
Mentoria dos estagiários Auxílio aos demais desenvolvedores
Análise de sistemas
Criação dos documentos de diagrama de classe, diagrama de sequência e diagrama de pacotes.
Criação do escopo detalhado do projeto; Criação do backlog do projeto; Priorização das funcionalidades do projeto; Tomadas de decisões em relação a viabilidade técnica de funcionalidades; Criação dos documentos de diagrama de classe, diagrama de sequência e diagrama de pacotes.
Desenvolvi mento de sistemas
Escolha de bibliotecas para utilização no projeto; Codificação do projeto; Aplicação de análise estática interna no código fonte do projeto.
Definição da arquitetura do projeto; Escolha de bibliotecas para utilização no projeto; Codificação do projeto; Implementação de testes unitários; Escolha de ferramentas para análise estática do projeto; Aplicação de análise estática interna no código fonte do projeto; Utilização da ferramenta Svace para análise estática de acordo com os padrões do cliente; Utilização da ferramenta Protex para verificação de plágio no código fonte do projeto. Configuração e utilização da ferramenta Jenkins para integração contínua.
127
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Definido as atividades e funções dos desenvolvedores, o atual estudo encontra-se em análise dos resultados proveniente das mesmas. Tal análise contemplará os resultados, indicadores e produtos gerados relacionados aos projetos citados.
4. Considerações finais Devido ao contexto no qual o desenvolvimento de software está inserido atualmente, se faz necessário a inclusão de desenvolvedores auto gerenciáveis e com auto poder de tomada de decisão, capazes de liderar, auxiliar e compreender os riscos, escopo e mudanças no projeto e também caminhar por várias áreas e projetos no âmbito do desenvolvimento de software. Os profissionais de desenvolvimento de software tem papel fundamental na construção de projetos, isso se deve principalmente ao cenário do mundo da tecnologia atualmente, segundo Prikladnicki, Willi e Milani (2014) a indústria de software está caminhando para tornar-se uma das indústrias mais importantes e ainda, de acordo com Souza, Valentim, Ávila (2018), tal indústria é alimentada pelo trabalho dos programadores, por isso a maneira de gerenciar e desenvolver softwares, está mudando e metodologias ágeis estão mais populares, de acordo com Silva, Lovato (2016), isso se deve ao fato das interações da equipe técnica com o cliente e usuários finais, contribuindo para uma rápida adaptação às mudanças no projeto.
Referências GIL, Antônio Carlos. Métodos e técnicas de pesquisa social. 6. ed. São Paulo: Editora Atlas S.A., 2008. HIRAMA, K. Engenharia de software: Qualidade e produtividade com tecnologia. São Paulo: Elsevier Brasil, 2012 MINAYO, M. C. de S.; DESLANDES, S. F.; GOMES, R. Pesquisa social: Teoria, método e criatividade. 28. ed. Petrópolis: Vozes, 2009. MOURA, R. L. de; CARNEIRO, T. C. J.; FREITAS, E. R. Condicionantes de sucesso em projetos de software e sua influência nos resultados. Revista Gestão & Tecnologia, v. 18, n. 1, p. 61–87, 1 abr. 2018. PRESSMAN, R.; MAXIM, B. Engenharia de Software - 8a Edição. 8. ed. Porto Alegre: McGraw Hill Brasil, 2016. Disponível em: <https://books.google.com.br/books?id=wexzCwAAQBAJ>. PRIKLANDINIK, R.; WILLY, R.; MILANI, F. Métodos ágeis para desenvolvimento de software. ed. Porto Alegre: Bookman, 2014 SILVA, E. C.; LOVATO, L. A. Framework Scrum: Eficiência em Projetos de Software. Revista de Gestão e Projetos, v. 7, n. 2, p. 1-15, 2016. SOUZA, L. P. P. de; VALENTIM, M. L. P.; ÁVILA, D. M. Aspectos cognitivos e sociais do comportamento informacional dos desenvolvedores de software: uma análise da produção científica. RDBCI: Revista Digital de Biblioteconomia e Ciência da Informação, v. 17, p. e019010, 10 dez. 2018. SUTHERLAND, J. Scrum: a arte de fazer o dobro do trabalho na metade do tempo. ed. São Paulo: Leya, 2016. YIN, R. K. Estudo de caso. 2. ed. Porto Alegre: Bookman, 2003.
128
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Controle de Acesso a Múltiplos Ambientes com Internet das Coisas Letı́cia da Silva Mota1 , Elloá B. Guedes1 1
Laboratório de Sistemas Inteligentes Grupo de Pesquisa em Sistemas Inteligentes Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200, Manaus, AM {ldsm.eng, ebgcosta}@uea.edu.br
Abstract. Aiming at collaborating with the development of Internet of Things solutions, this paper presents a project for access control, scheduling and punctuality record for multiple environments. The solution proposed is composed by a hardware and software project design for smart objects, an orchestrator for remote communication and by an administrative panel for data management. The results obtained validate this solution implementation, which brings together technologies such as RFID, MQTT communication, NodeMCU and Arduino platforms, Python programming language and Web2py framework, and stands out among analogous solutions for being open-source and scalable. Resumo. Visando colaborar para o desenvolvimento de soluções de Internet das Coisas, este trabalho apresenta uma proposta de solução para controle de acesso, agendamento e registro de pontualidade em múltiplos ambientes. Para tanto, integra o projeto de hardware e software dos objetos que irão compor a solução, a concepção de um orquestrador para comunicação remota e a existência de um painel administrativo para gerência dos dados. Os resultados obtidos validam a implementação da solução proposta, a qual congrega tecnologias como RFID, comunicação via MQTT, plataformas NodeMCU e Arduino, linguagem de programação Python e framework Web2py, e que destaca-se em relação à soluções análogas na literatura por ser aberta e escalável.
1. Introdução A Internet das Coisas (IoT, do inglês Internet of Things) está mudando a forma como as pessoas vivem e representa um dos maiores desafios a serem enfrentados pela indústria [Schwartz 2016]. Ela não diz respeito apenas a manter dispositivos conectados à Internet, mas de fazer objetos antes inertes tornarem-se “inteligentes”, dando-lhes habilidades para sentir, comunicar e responder [Javed 2016]. Tamanha será a demanda por soluções desta natureza que analistas prevêem que no ano de 2020 haverá mais de 50 bilhões de dispositivos conectados e a receita total de IoT facilmente irá ultrapassar US$ 1.5 trilhão [Javed 2016]. De maneira geral, as soluções atuais de IoT têm se concentrado em propor dispositivos de baixo custo que coletam grandes quantidades de dados, interagem uns com os outros e tiram proveito de serviços e de armazenamento em nuvem. Desenvolvedores de
129
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
todo o mundo têm trabalhado em projetos que transformam objetos cotidianos em dispositivos inteligentes, com sensores e atuadores [Schwartz 2016]. Considerando o grande potencial de soluções a serem desenvolvidas neste domı́nio, é natural questionar-se sobre objetos do dia a dia que poderiam ser melhorados com IoT, diminuindo esforços, riscos e custos ao passo que geram ganhos de tempo e de informações, por exemplo. No escopo deste trabalho abordou-se o desenvolvimento de uma solução baseada em IoT para resolver o problema de controle de acesso a múltiplos ambientes. Em um cenário deste tipo, há diversos ambientes cujo acesso é restrito à determinados usuários mediante agendamento prévio e a pontualidade dos mesmos precisa ser monitorada. Embora seja um problema relativamente comum, a motivação para este desenvolvimento partiu de necessidade tı́pica das instituições de ensino no que tange à liberação das salas de aula para uso docente, em que há comumente um agendamento semestral fixo conhecido por docentes e discentes, mas que demanda um funcionário especı́fico por turno para garantir o acesso aos espaços, o que gera sobrecarga e pode resultar em eventuais atrasos nos horários de pico. Na solução concebida para este problema, objeto deste artigo, considerou-se um projeto integrado de hardware e software para os objetos inteligentes, os quais atuarão na leitura de cartões RFID para identificação dos usuários, consulta remota via Wi-Fi às regras de agendamento, liberação do acesso ao ambiente juntamente com a ativação de um dispositivo interno e interação com os usuários mediante um display, que exibe mensagens relativas ao acesso solicitado. Além disto, estes objetos também podem ser utilizados para associar novos usuários aos seus respectivos cartões. O projeto deste objeto é de baixo custo e utiliza tecnologias como MQTT, RFID, NodeMCU, dentre outras. Um painel administrativo composto por uma aplicação web desenvolvida em Python permite o gerenciamento das informações sobre o acesso, dispondo também de relatórios de pontualidade. É importante ressaltar que todos estes elementos aqui propostos são open source, permitindo a reprodução gratuita em outros contextos, e facilitando adaptações que se fizerem necessárias. Para apresentar a solução proposta, este trabalho está organizado como segue. Os trabalhos relacionados na literatura que descrevem soluções IoT para controle de acesso são apresentados na Seção 2. Em seguida, a solução proposta e o detalhamento das tecnologias envolvidas e sua integração encontra-se descrito na Seção 3. Os resultados obtidos deste projeto, incluindo protótipos e softwares elaborados, são apresentados na Seção 4. Por fim, as considerações finais e perspectivas de trabalhos futuros são detalhados na Seção 5.
2. Trabalhos Relacionados Soluções de controle de acesso com IoT e RFID1 já são presentes na literatura, enfatizando não apenas o monitoramento e controle de acesso por meio de objetos inteligentes, mas também colaborando para soluções mais otimizadas e autônomas. Algumas destas soluções são descritas e discutidas a seguir. O trabalho de Araújo e outros [Araújo et al. 2016] apresenta um sistema de monitoramento de tags RFID cujos dados cadastrados e informações persistidas encontram-se em um banco de dados online. Em termos de hardware, o objeto inteligente proposto é 1
RFID, do inglês, Radio-Frequency IDentification
2 130
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
composto por um microcontrolador da famı́lia PIC, display LCD, leitor RFID, buzzer e relé, além de software embarcado Linux baseado em Raspberry Pi para controle lógico de suas funcionalidades. O objeto inteligente proposto é capaz de cadastrar cartões RFID e exibir respostas aos usuários previamente habilitados. Os autores evidenciaram como resultados positivos o monitoramento das tags e a responsividade do sistema ao usuário, além de estratégias adotadas para contornar problemas de conexão com a internet, evitando fragilidades ao sistema. De maneira análoga, a solução de Teixeira propõe um sistema de controle de fluxo de pessoas com RFID para fins de registro de ponto de colaboradores de uma empresa, incluindo a geração de relatórios [Teixeira 2011]. As funcionalidades desta solução foram divididas em dois softwares desenvolvidos, sendo um para monitoramento de informações adquiridas pelo leitor RFID e tratamento destas para persistência em banco de dados; e outro que permite a interação do usuário com o sistema, para gerenciamento e acesso direto ao conteúdo do banco de dados. Nestes softwares, a linguagem Java e plugins compatı́veis foram utilizados, sendo produzida uma aplicação Desktop para o software de gerenciamento. O projeto de Fonseca e outros, por sua vez, levou em conta a proposição de um sistema de controle de acesso motivado pela necessidade de segurança no acesso a determinadas áreas de uma empresa ou residência [Fonseca et al. 2017]. Estes autores efetuaram a implementação de um protótipo avaliado como eficaz e de baixo custo utilizando a plataforma de desenvolvimento Arduino. O hardware do objeto inteligente contempla RFID, fechadura elétrica, módulos relé e Ethernet, permitindo a comunicação cliente-servidor via TCP/IP. Um software web em PHP realiza o cadastro dos cartões RFID e permite o gerenciamento dos usuários. O sistema de reserva de salas e controle de entrada e saı́da proposto por Almeida et al. aborda o desenvolvimento de um projeto IoT que utiliza identificadores RFID/NFC (Near Field Communication) para o controle de acesso a ambientes [de Almeida et al. 2018]. O projeto proposto é baseado em um módulo Arduino, um módulo para leitura RFID e NFC e um sistema de transmissão de dados. Um web service valida as solicitações previamente cadastradas. O projeto em questão enfatiza as regras de negócio estabelecidas na aplicação Web onde são definidas as restrições para agendamento de salas. De maneira geral, as soluções propostas fazem uso de cartões RFID para identificação dos usuários, mas diferem no que diz respeito ao modo que estes cartões são cadastrados e também no tocante aos demais componentes do projeto de hardware, gerenciamento de dados e protocolos de comunicação. Neste último ponto, em especial, não argumenta-se tecnicamente a respeito dos protocolos de comunicação escolhidos, mostrando uma adequação com as limitações e desafios envolvidos em cenários IoT. Por fim, em todos os trabalhos considerados percebe-se uma carência no detalhamento acerca do suporte à múltiplos objetos de maneira simultânea.
3. Solução Proposta Na concepção do controle de acesso a múltiplos ambientes aqui apresentado, considerouse um cenário em que há um usuário Administrador que tem soberania para gerir usuários, ambientes e agendamentos. Cada usuário possui um cartão RFID que garante o acesso 3 131
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
a determinado ambiente previamente agendado a ele, mas somente no horário que lhe foi reservado. Cada ambiente, por sua vez, possui um objeto inteligente que controla o seu acesso, composto por um leitor de cartões RFID, um display para visualização de informações, e um módulo relé de dois canais, capaz de acionar a fechadura e também um dispositivo interno ao ambiente, tal como um ar-condicionado ou datashow. O painel administrativo consiste de uma aplicação web que permite o gerenciamento dos usuários e das regras de acesso, armazenando as informações em um banco de dados. Os objetos inteligentes, por sua vez, recebem informações desta aplicação e produzem dados para a mesma comunicando-se via tópicos da arquitetura publish/subscribe do protocolo MQTT, conforme mostrado na Figura 1. O protocolo MQTT foi escolhido para este contexto por realizar troca de mensagens leves e por ser tolerante à falhas, caracterı́sticas de domı́nios comuns em soluções de IoT [Hillar 2017]. Figura 1: Ideia geral da solução proposta.
Nesta solução, os objetos inteligentes também são utilizados para associarem cartões RFID aos usuários, evitando custos com cadastradoras especı́ficas para este fim. Em tal caso, o Administrador, via painel administrativo, seleciona o usuário e também o objeto inteligente ao qual este deve se dirigir para leitura do novo cartão. As informações são adquiridas pelo objeto inteligente selecionado e então passam a compor o banco de dados do sistema de controle de acesso, sendo essa facilidade na agregação de dados um fator determinante na escolha de cartões RFID como chaves pessoais para o controle de acesso. No tocante ao objeto inteligente, articulou-se um projeto de hardware e software para o mesmo, almejando uma solução de baixo custo, aberta e facilmente reprodutı́vel, uma vez que abrange a possibilidade de coexistência de múltiplos objetos inteligentes. Em termos de hardware, considerou-se a utilização da plataforma NodeMCU, pois trata-se de um microcontrolador composto por portas seriais e por um módulo WiFi [EINSTRONIC 2017], permitindo uma fácil comunicação via MQTT. Dispõe também de um display LCD de 16 × 2 caracteres, de um módulo relé de dois canais, sendo um para acionamento da fechadura e outro para o dispositivo interno, e ainda de um leitor de 4 132
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
cartões RFID. O diagrama esquemático destes componentes e suas conexões encontra-se ilustrado na Figura 2. Figura 2: Diagrama esquemático do projeto de hardware do objeto inteligente. Os sı́mbolos + e − denotam os polos do circuito elétrico que alimentam a fechadura e o dispositivo interno, ambos abstraı́dos por LEDs.
O projeto de software para o objeto inteligente foi elaborado com a utilização do ambiente de desenvolvimento integrado (IDE) do Arduino, dada sua compatibilidade com a plataforma NodeMCU e com os demais elementos fı́sicos presentes na solução. A IDE do Arduino permite a utilização de bibliotecas que tratam as caracterı́sticas especı́ficas dos módulos presentes objeto, tornando a interação entre eles mais fácil e transparente ao programador. Além do controle de seus módulos internos, o objeto inteligente comunica-se com os demais componentes da solução para executar determinadas funcionalidades, a exemplo de associar cartões a usuários e a confirmação de agendamentos. Estas comunicação são realizadas por meio de trocas de mensagens baseadas na arquitetura publish/subscribe. A arquitetura da solução proposta faz uso do protocolo de comunicação MQTT, cujas mensagens são organizadas por tópicos de recebimento e/ou envio. Os tópicos tornam-se caminhos os quais as mensagens devem percorrer e, por esse motivo, a definição de um padrão de tópicos é de fundamental importância para que a comunicação via MQTT seja eficaz. Assim, cada objeto inteligente deve possuir seus tópicos de entrada e saı́da de dados definidos em seu software embarcado e também na base de dados do sistema, de maneira a assegurar o correto envio de dados de um ponto a outro da comunicação. Por fim, identificou-se a necessidade de separar a entrada/saı́da de dados do objeto inteligente de seu processamento, visando maior agilidade nas respostas produzidas. 5 133
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Desta maneira, projetou-se um orquestrador de dados, um software com função de servidor e que atua como event listener aguardando mensagens do objeto inteligente para manipulação de informações do banco de dados do sistema e efetivação de suas funcionalidades. Considerando esta proposta de solução, a seção a seguir descreve os resultados obtidos da implementação da mesma, como um protótipo do projeto apresentado, visando validar os componentes e colaborar na avaliação desta solução.
4. Resultados e Discussão Para permitir a co-existência de diversos objetos inteligentes em um único cenário é essencial que se defina um padrão de troca de mensagens MQTT que deve ser obedecido, evitando conflitos no fluxo de mensagens destinadas à diferentes destinatários. Uma vez que cada objeto refere-se à um ambiente, determinou-se que o nome deste objeto é igual ao nome do ambiente a que se refere. Assim, o padrão dos tópicos dos objetos fica definido como sendo: tipoDeTopico/nomeObjeto/funcao, em que o tipoDeTopico pode ser de entrada ou saı́da. Tópicos de entrada possuem funcionalidades do tipo associarTagUser, associarTagMaster e validarAgendamento, enquanto os tópicos de saı́da possuem funcionalidades de salvarTagUser, salvarTagMaster e consultarAgendamento. Para consolidar um protótipo do objeto inteligente anteriormente apresentado, respeitando o diagrama da Figura 2, foram avaliados diferentes componentes levando em conta suas funcionalidades disponı́veis, requisitos do projeto e seu custo associado. Como resultado, produziu-se um custo estimado para construção de cada objeto inteligente, que é detalhado na Tabela 1, juntamente com a especificação e quantidade dos itens que o integram. Tabela 1: Custo total dos componentes para implementação de um protótipo do objeto inteligente. Estes preços foram praticados em Manaus no mês de Setembro de 2018.
Quantidade 1 1 1 1 1 1 1 1 2 2 1
Descrição do Componente Microcontrolador NodeMCU Display LCD 16 × 2 Módulo serial I2C para LCD 16 × 2 Módulo RFID MFRC-522 Módulo relé 2 canais Protoboard 400 furos Protoboard 830 furos Kit Jumpers 60 unidades LEDs Ultra Brilho 3mm resistores 220 Ω Adaptador Tomada Plug Fonte USB
Custo Total
Custo (R$) 50,00 24,00 15,00 28,00 22,00 18,00 25,00 21,00 0,50 0,60 10,00 214,10
Para a realização das conexões dos elementos que compõem o objeto inteligente seguiu-se o diagrama apresentado na Figura 2. Para um controle de alto-nı́vel do objeto, 6 134
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
partiu-se então para o desenvolvimento de seu software embarcado, o qual compreende funcionalidades básicas de inclusão de bibliotecas de controle de módulos, especificação de pinos de comunicação e definição de tópicos de entrada e de saı́da. Além destes, o software embarcado também possui um setup que inicializa os componentes fı́sicos do protótipo e que estabelece conexão com o servidor broker MQTT, permitindo a troca de mensagens deste com os demais componentes da solução. Uma vez conectado, o objeto inicializa a interação para leitura de cartões RFID e para validação de agendamentos. Para validar o projeto do objeto inteligente proposto, partiu-se então para uma prototipação do mesmo, cujo resultado é ilustrado na Figura 3. Neste protótipo os LEDs abstraem a fechadura e o dispositivo interno e a rede elétrica é denotada pela bateria de 9 V. Figura 3: Protótipo do objeto inteligente para solução de controle de acesso.
É importante enfatizar que na solução proposta os objetos inteligentes não enviam mensagens diretamente ao painel administrativo. Esta comunicação é feita de maneira indireta por meio de um orquestrador, software responsável por implementar o protocolo MQTT, conectar-se ao servidor broker e por enviar e receber informações dos objetos, armazenando-as no mesmo banco de dados utilizado pelo painel administrativo. O orquestrador é implementado com a linguagem de programação Python e faz uso das bibliotecas Paho MQTT e SQLite, em que a primeira destina-se ao envio e recebimento das mensagens segundo o protocolo adotado e a segunda realiza consultas e persiste informações no banco de dados da solução. O painel administrativo, por sua vez, provê uma interação de alto-nı́vel entre o sistema de controle de acesso e o administrador. Neste software encontram-se os procedimentos para cadastro de novos objetos inteligentes dos ambientes controlados, inserção de novos usuários e também para inclusão de agendamentos que darão validade ao acesso. Para implementar o painel administrativo foi utilizado o framework Web2py con7 135
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
forme o padrão arquitetural Model-View-Controller, tı́pico de aplicações web. O Web2py mostrou-se eficiente para a implementação necessária, sobretudo no tocante às páginas web, pois permitia uma fácil personalização dos componentes, especialmente com vistas a alcançar melhorias de usabilidade. Algumas funcionalidades disponı́veis no painel administrativo são ilustradas na Figura 4, a qual compreende a tela inicial da aplicação, o cadastro de novos usuários, a associação de um usuário ao seu cartão RFID, que envolve o uso de um objeto inteligente previamente existente, e também o cadastro de um novo agendamento. O cadastro de agendamento, em particular, envolve a seleção de usuário, a escolha de um intervalo de datas e horário, além da determinação de uma periodicidade. Se usado em um ambiente universitário, por exemplo, a periodicidade caracterizar-se-á pelos dias semanais de aula. Figura 4: Layout de quatro funcionalides disponı́veis no painel administrativo do sistema de controle de acesso. (a) Tela Principal
(b) Cadastro de Usuário
(c) Associação de Cartão
(d) Cadastro de Agendamento
Uma vez implementados todos os componentes da solução previamente apresentados, colaborando no processo de validação, partiu-se então para uma análise destes resultados em relação aos trabalhos análogos existente na literatura, abordados na Seção 2. Uma sı́ntese desta análise comparativa encontra-se apresentada na Tabela 2. Tabela 2: Tabela comparativa da solução proposta em relação a outras alternativas existentes. Projeto Solução Proposta [Araújo et al. 2016] [Teixeira 2011] [Fonseca et al. 2017] [de Almeida et al. 2018]
Plataforma embarcada NodeMCU PIC Microcomputador Arduino Arduino
Caracterı́sticas Gerenciamento de dados Web Padrão de comunicação MQTT Serial (Tx de Freq. 9600) Serial (RS-232) TCP-IP (Ethernet Shield W5100) Web-service
Sim Sim Não Sim Sim
Aplicação Web Sim Não Não Não Sim
8 136
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
Projeto
ISSN 2238-5096
Inspeção visual por LCD
Caracterı́sticas Escalável à múltiplos ambientes
Código aberto para reprodução
Sim Sim Não Não Não
Sim Não especificado Sim Não especificado Sim
Sim Não Não Não Não
Solução Proposta [Araújo et al. 2016] [Teixeira 2011] [Fonseca et al. 2017] [de Almeida et al. 2018]
No tocante às similaridades entre a solução propostas e os trabalhos já existentes na literatura, menciona-se o uso do Ambiente Arduino e a existência de uma aplicação web para integrar as informações de gerenciamento. Em relação às diferenças, menciona-se o uso do protocolo MQTT, a existência de um orquestrador de dados, a produção de relatórios de pontualidade e maior personalização na criação de agendamentos. Menciona-se ainda a natureza open-source do projeto, que permite a sua livre reprodução e modificação. De maneira geral, ressalta-se que a solução proposta mostra-se especialmente adaptável e escalável em cenários com múltiplos ambientes a serem controlados, utilizando uma comunicação sem fio, arbitrando a comunicação entre elementos do sistema e minimizando as possibilidades de colisão ou perda de mensagens, quer seja pela definição dos tópicos ou pelo padrão MQTT adotado. No âmbito de IoT, além de lidar com o gerenciamento dos ambientes e das regras de acesso, provê uma informação adicional que pode aumentar o apelo pela sua utilização prática: a geração de relatórios de pontualidade. Esta funcionalidade, em especial, não encontra-se presente nas soluções análogas consultadas na literatura.
5. Considerações Finais Na perspectiva de contribuir para o desenvolvimento de soluções em IoT que venham a colaborar na mitigação de problemas cotidianos, este trabalho teve por objetivo apresentar uma solução de controle de acesso a múltiplos ambientes. A proposta aqui apresentada contempla três partes principais: o projeto dos objetos inteligentes, a disponibilização de um painel administrativo e ainda a criação de um orquestrador para comunicação entre estas partes. O projeto de hardware e software para o objeto inteligente permite a leitura de cartões RFID do usuário e a consulta a agendamentos previamente criados, liberando ou não o acesso e ainda habilitando um dispositivo interno à sala. A comunicação entre os objetos inteligentes e as regras existentes em uma base de dados é arbitrada por um orquestrador de dados. O painel administrativo, por sua vez, consiste de uma aplicação web desenvolvida em Python, que provê uma interface de alto nı́vel para gerência de usuários, ambientes e regras de acesso. A solução proposta conjuga uma arquitetura de IoT e contempla a utilização de diversas tecnologias contemporâneas, tais como identificação por cartões RFID, comunicação leve e tolerante à falhas com protocolo MQTT, uso da plataforma open source NodeMCU, linguagem de programação Python e plataforma Arduino. Isto favorece a sua disponibilização de maneira aberta e gratuita, caracterizando ainda uma solução de baixo-custo, em que cada objeto inteligente é orçado em torno de R$214, 00 em valores vigentes. A disponibilização dos projetos de hardware e software aqui apresentados colabora também para a livre adaptação em contextos mais especı́ficos. Quando comparada com a literatura, a solução apresentada destaca-se por prover uma comunicação 9 137
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Wi-Fi, ser escalável a múltiplos ambientes, possuir um painel administrativo e por ser a única livremente disponı́vel. Em trabalhos futuros, almeja-se realizar melhorias no que diz respeito à usabilidade, especialmente na visualização dos relatórios de pontualidade individuais, com a criação de filtros para as variáveis disponı́veis, permitindo, por exemplo, a escolha de um intervalo de datas de interesse. Almeja-se também realizar melhorias na inclusão de agendamentos, especialmente visando uma melhor administração de conflitos.
Agradecimentos As autoras agradecem o apoio financeiro provido pela Fundação de Amparo à Pesquisa do Estado do Amazonas mediante Edital PPP N. 04/2017 e as contribuições e sugestões dos Profs. Almir de Olivera e Carlos Maurı́cio.
Referências [Araújo et al. 2016] Araújo, P. H. M., Figueiredo, R. P., Dias, D. L., e Juca, S. C. S. (2016). Controle de acesso rfid utilizando o princı́pio de internet das coisas. Picos, Piauı́. [de Almeida et al. 2018] de Almeida, I. R., de Souza Carneiro Viana, S. L., Lombra, L. F. D., e Kanashiro, W. E. S. (2018). Sistema para reserva de salas e controle de entrada e saı́da utilizando tecnologias de comunicação sem fio de curto alcance. In IX Computer On The Beach, Florianópolis, SC. [EINSTRONIC 2017] EINSTRONIC (2017). Introduction to NodeMCU ESP8266. Disponı́vel em https://einstronic.com/wp-content/uploads/2017/ 06/NodeMCU-ESP8266-ESP-12E-Catalogue.pdf. Acessado em 11 de maio de 2019. [Fonseca et al. 2017] Fonseca, J. A., da Silva, L., e dos Santos Moraes, W. (2017). Protótipo de sistema de identificação: Aplicação da plataforma arduino para controle de acesso. Monografia (Bacharel em Sistema de Informação), FAPI(Faculdade de Pindamonhangaba), São Paulo, Brasil. [Hillar 2017] Hillar, G. C. (2017). MQTT Essentials - A Lightweight IoT Protocol. Packt Publishing, Reino Unido. [Javed 2016] Javed, A. (2016). Building Arduino Projects for the Internet of Things. Apress, Estados Unidos. [Schwartz 2016] Schwartz, M. (2016). Internet of Things with Arduino. Packt Publishing, Reino Unido. [Teixeira 2011] Teixeira, T. (2011). Controle de fluxo de pessoas usando rfid. Monografia (Tecnólogo em Sistemas de Telecomunicações), IFSC (Instituto Federal de Santa Catarina), Santa Catarina, Brasil.
10 138
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Aplicativo JustShare: uma estante virtual para auxiliar usuários de recursos audiovisuais Marilice Andrade de Lima1, Paulino Wagner Palheta Viana1,2 1
Fundação Centro de Análise, Pesquisa e Inovação Tecnológica – (FUCAPI) 69075-351 – Manaus – AM – Brazil mariliceandrade@gmail.com, wagnerpalheta@gmail.com
Abstract. With the aim of providing entertainment and help, this work describes the development and usability tests of version 1.0 of a mobile application aimed at audiovisual media enthusiasts. The growth of the film industry is evident, bringing an explosion of audiovisual content every day. Thinking about it, justshare has as main proposal a virtual shelf storing information of the media of the preference of its users, considering not only to facilitate access to these memories, but it is also expected to contribute to the entertainment and interaction of users of audiovisual resources through of your social network. Resumo. Com o objetivo de oferecer entretenimento e auxilio, este trabalho descreve o desenvolvimento e testes de usabilidade da versão 1.0 de um aplicativo móvel voltado para apreciadores de mídias audiovisuais. É evidente o crescimento da indústria cinematográfica, que vem trazendo uma explosão de conteúdos audiovisuais a cada dia. Pensando nisso, o JustShare tem como proposta principal uma estante virtual armazenando informações das mídias da preferência de seus usuários, ponderando não só facilitar o acesso a essas recordações, mas, espera-se também contribuir para o entretenimento e interação dos usuários de recursos audiovisuais através de sua rede social.
1. Introdução Com o avanço das tecnologias que cada vez mais procuram disponibilizar produtos de qualidade e que facilitam nas atividades do dia-a-dia de seus consumidores, o mercado de dispositivos móveis vem ganhando muito espaço e preferencia. Além de ser um produto que oferece praticidade e auxilio na comunicação, o mesmo também vem oferecendo uma variedade de opções para o entretenimento seguro e rápido. A comunicação multimídia tem se materializado no cotidiano das pessoas por meio dos computadores, celulares, tablets, laptops e outros dispositivos tecnológicos (SOARES e CÂMARA, 2016). É comum as pessoas usarem boa parte do seu tempo livre assistindo diversos materiais em vídeos, que vão desde as produções para cinema até aquelas produções caseiras disponibilizadas em redes sociais. Para Olhar Digital (2019) os lugares mais comuns em que o telefone é usado são a cama (77% confere o smartphone quanto está deitado), a TV (70% vê TV e mexe no celular) e enquanto espera por alguma coisa (65%). Na divisão por tipos de aplicações, as redes sociais concentraram 50% das horas gastas nesses aparelhos, seguidas de 15% por programas de reprodução de vídeo e por jogos eletrônicos com 10% (AGÊNCIA BRASIL, 2019).
139
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
A humanidade sempre trilhou um caminho para aperfeiçoar sua comunicação e propagar a mesma através de tecnologias (DALL'ORTO e SILVA, 2017). A principal motivação para a realização dessa pesquisa ocorre com o evidente crescimento da indústria cinematográfica no geral, que traz diariamente uma explosão de conteúdos audiovisuais, fazendo um mundo sobrecarregado de opções de entretenimento virtual, ocasionando após algum tempo, que muitas referências desses vídeos acabem se acumulando na memória, se tornando difícil lembrar-se de tudo aquilo que já foi assistido ou não, confundindo as referências. A partir disso, notou-se a necessidade de uma ferramenta que pudesse auxiliar no controle do consumo desses conteúdos, organizando e possibilitando partilhar informações e interações entre pessoas. A partir da cultura da convergência, os conteúdos passaram a se comunicar rapidamente entre diversas mídias, e, o público começou a mudar seu hábito de consumo, migrando entre os variados meios de entretenimento (NEVES e ANDRES, 2017). Observando a crescente preferência que as pessoas têm pelos smartphones para o consumo de mídias audiovisuais, o presente estudo dispõe uma proposta de desenvolvimento de um aplicativo multiplataforma de banco de dados, para referência de vídeos assistidos ou de interesse pelos utilizadores, e que poderão ser compartilhados por meio de uma rede social para a troca de informações e experiências. Antes de iniciar qualquer trabalho técnico, é de vital importância comunicar-se e colaborar com o cliente e outros interessados (PRESSMAN, 2011). O mesmo passou por fases de aplicação de questionário com o público alvo para levantar dados de interesse sobre a aplicação, desenvolvimento, e testes de usabilidade misturando técnicas de avaliação cooperativa e baseadas em perguntas, realizados com pessoas de diferentes idades e escolaridades, para saber o ponto de vista de cada um ao utilizar a primeira versão da aplicação. O projeto tem como base a estrutura da ferramenta Skoob, que se trata de um aplicativo que armazena informações a respeito das leituras do usuário e que disponibiliza em uma rede social para amantes de leituras. O mesmo oferece um feed de conteúdos apresentados pelos usuários e adiciona à sua lista de amigos, os quais recebem notificações das mesmas. Além disso, a sua estrutura principal se apresenta com a interface gráfica, onde uma série de capas de leituras é disposta como um álbum, o qual se cria uma estante virtual, em que o usuário tem total liberdade na forma de como queira disponibilizar os títulos adicionados à sua estante. O aplicativo JustShare é voltado para apreciadores de mídias audiovisuais, categorizado em filme, série e anime. Possui o intuito de armazenar, organizar e facilitar o acesso às recordações dessas mídias que ficaram para trás. O mesmo foi desenvolvido com algumas similaridades do Skoob, tais como: funcionalidade de rede social para a interação de pessoas; compartilhar informações, experiências e ideias; criação de uma estante virtual; avaliações pessoais dos usuários e criações de resenhas. Como diferenças, o JustShare traz funcionalidades específicas, às quais são: enviar indicações de filmes, séries ou animes a um amigo, adicionar um indicativo visual de recomendação sobre a capa das mídias expostas na estante virtual, fazer recomendações de mídias utilizando Sistemas de Recomendação através do método híbrido, baseado na combinação do perfil de usuário alvo e experiência de todos os usuários.
140
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
2. Trabalhos Relacionados Nesta seção serão apresentados três trabalhos relacionados à ideia de utilizar a tecnologia para desenvolver ferramentas que disponibilizam recursos audiovisuais, que atendam e facilitam as necessidades corriqueiras dos usuários em diferentes contextos. Ghelardi et al. (2012) apresenta a solução de player de mídias acessíveis e teve como objetivos desenvolvimento de uma solução player de mídias com controles de reprodução acessíveis e a integração dessa solução ao Moodle; o estudo dos impactos do uso do HTML5 e da especificação WAI-ARIA na construção de aplicações web ricas e acessíveis. Teve como autor principal um aluno deficiente visual, onde desenvolveu um player acessível e possibilitou um levantamento de requisitos de acessibilidade e o design participativo da aplicação. Cruz et al. (2011) teve como objetivo identificar a produção científica acerca do uso das mídias digitais na educação em saúde. Usou o método de estudo bibliométrico através de coleta eletrônica na Biblioteca Virtual em Saúde dos anos de 2009 a 2011. Seu estudo mostrou que a tecnologia eletrônica atual dispõe de recursos relevantes para ensino e aprendizagem. E ressalta também, como é importante o uso da Web 2.0 para a educação em saúde, onde a regra mais importante é o desenvolvimento de aplicativos que aproveitem os efeitos de rede para se tornarem melhores e mais usados para as pessoas. Barros (2010) demonstra indícios do processo comunicacional das empresas e seus consumidores através da criação de mídias digitais, em que a organização envolve o consumidor em um ambiente que explora a comercialização de bens. Fez uma análise de como o fenômeno comunicacional se desenvolve nas mídias digitais e como as empresas têm feito uso de processos transmidiáticos para atrair e se relacionar com seus públicos. Tabela 1. Características e Semelhanças dos Trabalhos Relacionados
Trabalho Acessibilidade na Educação a Distância: desenvolvimento de um player de mídia acessível utilizando HTML5 e WAIARIA e sua integração com o Moodle (Ghelardi et al., 2012).
O uso das mídias digitais na educação em saúde
Característica(s)
Estudo dos impactos do uso do HTML5 e da especificação WAIARIA na construção de aplicações web ricas e acessíveis;
Semelhança(s)
Testes com usuários para avaliar a acessibilidade do player desenvolvido;
Desenvolveu aplicativo satisfatório disponibiliza recursos audiovisuais;
Análise das principais soluções de player de mídias disponíveis, com foco nos aspectos de acessibilidade. Estudo bibliométrico;
um que
As mídias digitais facilitam a aprendizagem
141
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
(Cruz, et al., 2011).
Relacionamento Mercadológico nas Mídias Interativas Digitais: Inovações na comunicação transmidiática entre empresas e consumidores (Barros, 2010).
ISSN 2238-5096
Análise quantitativa do que vem sendo escrito sobre o uso de mídias digitais na educação em saúde;
A importância do uso da web 2.0 para a educação em saúde.
Destacou a comunicação das empresas com seus utilizadores para verificar o ponto de vista dos mesmos;
Mostrou a participação dos consumidores no processo comunicacional na internet.
compartilhada, pois oferecem interação entre as pessoas;
A tecnologia eletrônica atual dispõe de recursos relevantes para ensino e aprendizagem.
Abordou a experiência dos usuários de mídias digitais;
Abordou a prática de consumo das mídias que também estão voltadas para o entretenimento.
3. Tecnologias A ferramenta JustShare foi construída com tecnologias bastante utilizadas atualmente no mercado, que visam um processo de desenvolvimento de software mais ágil sem perdas na qualidade do produto final. Para a criação do Front-end, ou seja, a implementação das interfaces manipuladas pelos usuários, foi utilizado o Ionic Framework; para o desenvolvimento do Back-end, ou seja, a programação que roda no lado do servidor, responsável pelo processamento dos dados recebidos pelo Front-end e estabelecer a conexão entre cliente/servidor, utilizou-se a linguagem de programação PHP; e para o armazenamento dos dados utilizou-se o banco de dados MySQL. O Ionic framework é um Kit de Desenvolvimento de Software (SDK) Open Source, fundado em 2012 pela Drifty Co. otimizado para criar aplicativos híbridos utilizando tecnologias da web, como HTML, CSS e Javascript. A plataforma permite aos desenvolvedores usar tecnologias web para criar e entregar aplicativos de alta qualidade para dispositivos móveis, com tudo que eles precisam de front-end projetado para entrega contínua (IONIC, 2018). Através do Ionic Framework é possível desenvolver aplicações móveis híbridas com interface e a utilização de recursos das três plataformas mais utilizadas: Android, iOS e Windows Phone (SILVA e LIMA, 2016). PHP é uma linguagem de script de código aberto que tem como objetivo primário a geração de conteúdo dinâmico para páginas da internet (MELO e NASCIMENTO, p.20, 2007). Para Niederauer (2017) um programa PHP pode ser
142
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
escrito em qualquer editor de textos, como, por exemplo, o bloco de notas (Notepad), do Windows ou o Vi, do Linux. Para sites e portais de internet, o PHP é tecnologia de ponta para atender praticamente todas as demandas (MILANI, p.22, 2016). MySQL é um SGBD relacional que utiliza a linguagem padrão SQL (Structured Query Language) e é largamente utilizado em aplicações para a Internet (NIEDERAUER e PRATES, p.4, 2006). O MySQL pode ser considerado o mais popular SGBD open source e consiste em um bando de dados relacional (MIYAGUSKU, p.13, 2008). Para Carvalho (2015) independentemente do aplicativo que se deseja usar para o armazenamento e manipulação das informações, todos os bancos de dados são constituídos por elementos básicos. 3.1. Aplicação JustShare O aplicativo tem como proposta principal, criar uma estante virtual armazenando informações das mídias audiovisuais da preferência de seus usuários, pensando não só em facilitar o acesso a essas recordações, mas, a aplicação também visa contribuir para o entretenimento e interação dos usuários de recursos audiovisuais através de sua rede social. Para a fase inicial foi realizada uma pesquisa de campo de natureza quantitativa, para conhecimento do ponto de vista e interesse do público alvo. A pesquisa foi realizada através da ferramenta Google Forms para a coleta desses dados. O formulário desenvolvido continha 7 perguntas referentes ao conhecimento da possível utilização da aplicação proposta. Um total de 56 pessoas respondeu ao questionário, incluindo suas opiniões e dando sugestões de funcionalidades que poderiam conter na aplicação. Ao perguntar sobre a importância do desenvolvimento de um aplicativo com essas características, notou-se que, 76,8% dos participantes acharam relevante a ideia de criação do aplicativo, 7,1% disse que não é importante e 16,1% escolheu indiferente. Como forma de conhecer as preferências audiovisuais dos participantes, onde os mesmos poderiam escolher mais de uma opção, 73,2% disse que assiste com mais frequência aos filmes; 73,2% disse que assiste aos seriados; 21,4% disse que assiste a animes e 25% disse outros. Para finalizar, 91,1% afirmou que utilizaria o aplicativo para organizar seus vídeos assistidos e 8,9% disse que não usaria. Para a segunda fase foi elaborado o caso de uso (Figura 1) para demonstrar suas funcionalidades e interações.
143
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 1. Diagrama de Caso de Uso da Aplicação
Para ter acesso ao JustShare, o utilizador poderá fazer login vinculando uma conta Facebook, Gmail ou Twitter; ou se cadastrar no aplicativo. Após realizar login, o utilizador terá acesso à tela inicial e a todas as funcionalidades disponíveis pela aplicação. O mesmo poderá ou não executar as seguintes ações: curtir e/ou comentar publicações, visualizar e/ou editar perfil, visualizar estante, pesquisar e visitar perfis de outros utilizadores, adicionar amigos, recomendar mídias aos amigos, pesquisar mídias, consultar informações das mídias, avaliar e/ou adicionar mídias à sua estante, remover mídias da estante, fazer resenhas e sair da conta. Na terceira etapa foi efetuada a prototipação da interface do usuário e o desenvolvimento da versão 1.0. Na etapa seguinte, foram realizados os testes de usabilidade, utilizando Técnicas de Avaliação Cooperativa para validação de aceitação do aplicativo pelos utilizadores e Técnicas Baseadas em Perguntas através de um questionário.
4. Versão 1.0 para testes Nesta versão apresentam-se as funcionalidades da estrutura principal do aplicativo JustShare, conforme citado no Caso de Uso (Figura 1). Para a aplicação do teste de usabilidade, executando as Técnicas de Avaliação Cooperativa, foi definida uma lista das atividades consideradas mais importantes que os utilizadores deveriam executar. São estas: 1- Criar conta; 2- Fazer login; 3- Visualizar estante; 4- Procurar pelo filme “Um Lugar Silencioso”; 5- Adicionar o filme à sua estante na lista de interesse; 6Recomendar o filme a um amigo; 7- Remover o filme da sua estante, 8- Procurar pela série “Game of Thrones”; 9- Fazer uma resenha da série, escrevendo “Teste de
144
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
usabilidade do aplicativo JustShare – Funcionalidade resenha”; 10- Visualizar resenha; 11- Avaliar a série “Game of Thrones”; 12- Visualizar feed; 13- Sair do aplicativo. Os testes foram realizados na cidade de Manaus, com um grupo de 15 pessoas com idades entre 18 e 50 anos e diferentes escolaridades. Utilizou-se um ambiente de custo baixo, que continha apenas um smartphone com acesso à internet, para coleta e análise dos resultados obtidos. Para realizar login, os participantes vincularam uma conta de outros aplicativos (Facebook, Gmail ou Twitter) ou criaram uma conta do aplicativo, para terem acesso à tela inicial que contém as abas: feed, estante e indicações (Figura 2). No feed, o utilizador visualiza as ações feitas por seus amigos, podendo interagir nas publicações curtindo e/ou comentando.
Figura 2. Telas de: Login, Criar conta e Feed.
Ao efetuar login, os utilizadores tiveram acesso à tela inicial, onde também é possível acessar à sua estante ou a aba de indicações. Na estante, são organizadas as três categorias de mídias audiovisuais em: concluídos (as), assistindo e interesse. Para consultar e/ou adicionar uma nova mídia à sua estante, o aplicativo possibilita fazer pesquisas filtrando todas as mídias existentes de acordo com o que foi digitado. Quando o utilizador pressiona na opção escolhida, tem-se o detalhamento das informações da mídia (ano de lançamento, sinopse, avaliação geral, etc.), contendo as opções de marcar como assistido, estar assistindo ou adicionar à sua lista de interesses; visualizar e/ou fazer resenhas e indicar a um amigo. Na aba de indicações o utilizador visualiza todas as indicações de mídias audiovisuais enviadas por seus amigos. Estas são as funcionalidades ilustradas na Figura 3.
145
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 3. Telas de: Minha estante, Adicionar Filme, Detalhamento e Indicações.
5. Resultados Como forma de identificar a aceitação, dificuldades e melhorias dos utilizadores com relação ao JustShare versão 1.0, um questionário foi desenvolvido (Tabela 2) para verificar a qualidade de uso, viabilidade e interface da aplicação. O questionário foi definido a partir do conceito de Técnicas Baseadas em Perguntas. O mesmo foi disponibilizado para os participantes, após a realização do teste no uso do aplicativo. Tabela 2. Questionário de aceitação
Interface
Viabilidade
Qualidade de uso
PERGUNTA
Sim Não Parcial
Você conseguia entender o que acontecia ao utilizar o aplicativo?
12
0
3
Você achou fácil aprender a como utilizar o aplicativo?
12
1
2
Você conseguiu ganhar habilidade de uso ao utilizar o aplicativo?
10
1
4
Você acha que o aplicativo é rápido para atingir o objetivo?
13
0
2
Você acha o aplicativo facil de se usar?
12
0
3
Você acha o aplicativo viável para guardar suas informações?
15
0
0
Você acha o aplicativo útil para adquirir fácil conhecimento sobre as mídias?
14
0
1
Você gostou de utilizar aplicativo?
14
0
1
Você acha viável utilizar o aplicativo?
15
0
0
Você acha que as cores estão agradáveis ?
15
0
0
Você acha que as informações dispostas na tela estão agradáveis visualmente?
13
0
2
Você acha que os botões estão bem distribuídos ?
13
0
2
Você consegue reconhecer as ações que você pode realizar a partir dos ícones utilizados?
14
0
1
Você consegue navegar com facilidade pelas telas do aplicativo?
15
0
0
Você consegue visualizar todas as funcionalidades do aplicativo?
12
0
3
Através do questionário (Tabela 2) no que diz respeito à qualidade de uso, observou-se que, a maioria dos utilizadores considera o aplicativo fácil de usar e teve facilidade para entender o que acontecia ao utilizar e como manusear o mesmo. Entretanto, alguns relataram sentir um pouco de dificuldade para adquirir habilidade ao realizar as atividades para atingir os objetivos estabelecidos. Alguns utilizadores afirmaram que era preciso muitos cliques e interações para poder realizar algumas
146
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
funções como: remover filme da estante e visualizar a resenha criada, e como sugestão de melhoria para diminuir essas dificuldades encontradas, propõe-se: permitir ao usuário que remova uma mídia adicionada, seja ela, filme, série ou anime, através de sua estante virtual, sendo necessário apenas pressionar sobre a capa da mídia desejada e a opção de exclusão será mostrada; e, adicionar ao menu lateral, uma nova opção chamada “Minhas resenhas”, onde serão agrupadas todas as resenhas feitas pelo usuário, facilitando o acesso às mesmas. Em relação à viabilidade, todos os utilizadores acreditam que a utilização do aplicativo é viável, pois o mesmo facilita o gerenciamento ao guardar suas informações, com referência à criação da sua estante virtual com as mídias de suas preferências e resenhas. Afirmaram também, que gostaram de utilizar a ferramenta, principalmente pela utilidade em adquirir fácil e rápido conhecimento sobre filmes, séries ou animes. No contexto de avaliação à interface, os participantes concordam que o aplicativo possui uma boa navegação entre as telas e as cores utilizadas são agradáveis. Porém, é possível observar que houve uma parcialidade significativa nas questões restantes, pois, as funcionalidades remover mídia e visualizar resenha são funcionalidades difíceis para visualização, conforme citado na qualidade de uso. O ícone para recomendar uma mídia a um amigo, que se encontra na tela de detalhamento da mesma, está muito pequeno e mal posicionado; e na tela de detalhamento, o tamanho da fonte utilizada nas informações: nome, ano de lançamento, avaliação geral e votos, identificadas ao lado do pôster da mídia selecionada, está pequeno, o que dificulta o entendimento. Portanto, além das melhorias já propostas pensando em disponibilizar uma interface de usuário mais satisfatória, possibilitando uma melhor experiência para todos, pretende-se também: melhorar a visualização do ícone de recomendar uma mídia a um amigo, aumentando o seu tamanho e o posicionando ao lado direito das opções de adicionar mídia à estante; aumentar a fonte das informações do detalhamento de uma mídia, tornando-as mais legíveis. 5.1 Trabalhos futuros Para os trabalhos futuros propõe-se a continuidade no desenvolvimento do aplicativo para uma nova versão com as melhorias (mencionadas no tópico anterior) implementadas. Pretende-se adicionar as seguintes funcionalidades: cálculo de horas gastas, conforme o tempo de duração das mídias assistidas adicionadas na estante do usuário; criar um fórum para discussões entre os usuários sobre lançamentos, renovações, teorias, curiosidades, etc., das mídias audiovisuais; e, através da ciência de dados, criar um Sistema de Recomendação utilizando o método híbrido, baseado na combinação de perfil do usuário alvo e experiência de todos os usuários, para fazer recomendações de mídias audiovisuais.
6. Conclusão A partir da compreensão dos resultados, os testes realizados apresentaram alguns problemas de usabilidade na versão 1.0. Contudo, a mesma foi aceita pelo público que participou dos testes e obteve resultados para usar como base nas melhorias, que podem ser desenvolvidas aprimorando e preparando a aplicação para uma versão final e ser oferecida como uma proposta de mercado.
147
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Alguns problemas de interface foram identificados, mas estas dificuldades não interferiram no funcionamento do aplicativo. O JustShare em sua versão 1.0 obteve resultados satisfatórios e atende às necessidades e entretenimento do público alvo. Porém, dada a continuidade nas melhorias sugeridas, o aplicativo atenderá de forma mais eficiente às necessidades de seus futuros utilizadores. Fazer uso de frameworks no desenvolvimento de aplicativos móveis para entregar um produto de qualidade, pode ser considerado satisfatório, pois, o mesmo oferece agilidade e permite a criação de um único produto que pode ser gerado para as principais multiplataformas que são bastante utilizadas no momento.
7. Referências Agência Brasil. (2019) “Brasil é 5º país em ranking de uso diário de celulares no mundo”, http://agenciabrasil.ebc.com.br/geral/noticia/2019-01/brasil-foi-5o-pais-emranking-de-uso-diario-de-celulares-no-mundo, Janeiro. Barros, A. (2010) “Relacionamento Mercadológico nas Mídias Interativas Digitais: Inovações na comunicação transmidiática entre empresas e consumidores”, Paraíba. Câmara, G. C. V. e Soares, S. S. D. (2016) “Tecnologia e subjetividade: impactos do uso do celular no cotidiano de adolescentes”, Revista da Graduação em Psicologia da PUC Minas, p. 204-223. Carvalho, V. (2015), MySQL Comece com o principal banco de dados open source do mercado, Casa do Código, 1ª edição. Cruz, et al. (2011) “O uso das mídias digitais na educação em saúde”, Cadernos da FUCAMP, p. 130-142. Ghelardi et al. (2012) “Acessibilidade na Educação a Distância: desenvolvimento de um player de mídia acessível utilizando HTML5 e WAI-ARIA e sua integração com o Moodle”, 23º Simpósio Brasileiro de Informática na Educação, p. 26-30. Ionic. (2018) “Native and web optimized”, https://ionicframework.com/framework, Dezembro. Melo, A. A e Nascimento, M. G. F (2007), PHP profissional, Novatec, 1ª edição. Milane, A. (2016), Construindo Aplicações Web com PHP e MySQL, Novatec, 2ª edição. Miyagusku, R. (2008), Curso prático de SQL, Universo dos livros 1ª edição. Neves, M. S. e Andres, F. S. (2017) “Binge-Watching: Mudanças no Consumo de Mídias Audiovisuais”, Rio Grande do Sul. Niederauer, J e Prates, R. (2006), MySQL 5, Novatec, 1ª edição. Niederauer, J. (2017), PHP para quem conhece PHP, Novatec, 5ª edição. Olhar Digital. (2019) “Nos EUA, tempo gasto com celular já é maior que com TV”, https://olhardigital.com.br/noticia/americanos-ja-passam-mais-tempo-no-celular-doque-assistindo-tv/28394, Fevereiro. PRESSMAN, R. S. (2011), Engenharia de software uma abordagem profissional, Amgh Editora, 7ª edição.
148
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Silva, M. Z. e Dall’orto F. C. (2017) “Streaming e sua influência sobre o Audiovisual e o Product Placement”, Espírito Santo. Silva, V. e Lima, D. (2016) “Desenvolvimento de aplicativos híbridos benefícios e problemas encontrados na utilização dessas tecnologias”, Encontro de Pesquisa e Extensão, p. 398-404.
149
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Utilização do Zabbix como Ferramenta de Monitoramento e Gerenciamento de Servidores RISC –IBM i José Higson Santos1, Marcela Pessoa1 1
Coordenação de Graduação em Ciência da Computação – Instituto de Ensino Superior (FUCAPI). Manaus – AM – Brasil higson.santos@gmail.com, marcela.pessoa@fucapi.br RESUMO: Com o crescimento do mercado, é de suma importância garantir o suporte nas operações de qualquer empresa multinacional para permanecer ativa na concorrência do mercado, o avanço tecnológico vem possibilitando a utilização da tecnologia da informação como ferramenta estratégica de controle e suporte em suas operações, sempre visando também ativos e implementações de baixo custo. As grandes empresas multinacionais (fabricantes e comerciantes) hoje são dependentes da tecnologia para manter suas operações ativas, consequentemente para manter a alta disponibilidade em suas operações necessitam de servidores de alta performance e que suportam um elevado número de operações, servidores com arquitetura RISC são os mais comuns para atender estes requisitos. Porém, qualquer servidor sem um bom monitoramento pode gerar grandes prejuízos para o negócio. Com o objetivo de realizar o monitoramento e gerenciamento de servidores de arquitetura RISC, com baixo custo de implementação este artigo apresenta a utilização do Zabbix, uma ferramenta que utiliza a coleta de logs através da rede para monitorar o desempenho dos ativos. ABSTRACT: With the growth of the market, it is very important to guarantee support in the operations of any multinational company to remain active in the market competition, the technological advance has enabled the use of information technology as a strategic tool for control and support in its operations, always also targeting assets and low cost implementations. The large multinational companies (manufacturers and marketers) today are dependent on technology to keep their operations active, consequently to maintain high availability in their operations they need high performance servers that support a high number of operations, servers with RISC architecture are the to meet these requirements. However, any server without a good monitoring can generate great losses for the business. In order to perform the monitoring and management of RISC architecture servers with low implementation cost, this article presents the use of Zabbix, a tool that uses the collection of logs through the network to monitor the performance of assets.
1. Introdução Grandes empresas vêm lutando cada vez mais para se manterem na disputa do mercado multinacional, ao mesmo tempo em que geram grandes investimentos para estarem ativas em suas operações e atendendo o fluxo do mercado, também devem
150
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
frequentemente priorizar a redução de custo para evitar desperdícios diante crises econômicas. De acordo com a pesquisa da CETIC (2017), em 2017, 96% das empresas que possuíam entre 10 e 49 funcionários, possuíam alguma tecnologia de rede (em 2007 era de apenas 77%), esta porcentagem aumenta para 99% quando a empresa possui mais de 250 funcionários. Este número vem crescendo na proporção em que ocorre o avanço tecnológico, se torna cada vez mais inevitável a utilização da tecnologia da informação para manter as operações das empresas ativas. Esta situação já é realidade para as empresas multinacionais, que é o escopo tratado neste artigo, mas especificamente as fabricantes de autos. Dada a necessidade de ter uma alta disponibilidade em suas operações e ter sempre um grande número de transações realizadas em seus sistemas, é comum que estas empresas utilizem servidores de arquitetura RISC, onde é essencial a necessidade de gerenciamento, porém mesmo com servidores robustos e de alta disponibilidade como os de arquitetura RISC, a empresa corre risco quando estes servidores não são monitorados ou gerenciados por qualquer tipo de ferramenta, a fim de tomar quaisquer ações corretivas, e além disso também ter uma abordagem proativa através de análises. Para ilustrar e ajudar nas atividades de monitoramento, gerenciamento e análise, este artigo apresenta o uso do Zabbix, que através da coleta de dados é possível realizar diversas análises do ambiente, como consumo de disco, CPU e até mesmo monitorar os jobs (fazendo uma associação com o Windows, seriam os serviços) e usuários ativos, além de possuir baixo custo para de implementação no ambiente. Desta forma na Seção 2 é apresentada uma introdução teórica a respeito da ferramenta Zabbix, a Arquitetura RISC e ao Sistema Operacional IBM i, na Seção 3 é realizada a configuração do Zabbix em um IBM i aplicada a um estudo de casos e, na Seção 4 os resultados finais da ferramenta de monitoramento, seguidos das Conclusões, na Seção 5.
2. Referencial Teórico Sendo uma ferramenta de confiança em muitas organizações de diferentes tamanhos ao redor do mundo, Zabbix é um software capaz de monitorar a saúde e vários outros parâmetros de dispositivos na rede e possibilita a notificação de eventos através de email (Zabbix Documentation, 2019). Um dos sistemas operacionais que o Zabbix realiza sua coleta de logs e monitoramento é o IBM i. Essa seção apresenta introdução teórica do Zabbix e IBM i. 2.1 Ferramenta de Monitoramento Zabbix Zabbix se torna uma ferramenta ideal para planejamento e capacidade por oferecer excelentes recursos de relatórios e gráficos essências para o monitoramento, e segundo estudo de Silva (2014, p.12) podendo até ser utilizado para tomada de decisão. Tantos seus principais parâmetros de configurações quanto a própria interface do usuário final é acessível através de uma interface web, garantindo a acessibilidade a partir de qualquer local (Zabbix Documentation, 2019). Um dos pontos de destaque do Zabbix é seu mecanismo de notificação, que permite configurar alertas por e-mail para praticamente qualquer evento, possibilidade uma rápida reação no ambiente (Zabbix Documentation, 2019).
151
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
O Zabbix foi criado por Alexei Vladishev, uma solução livre de custos e de código aberto, garantindo que seu código-fonte seja distribuído e esteja disponível para o público em geral (Zabbix Documentation, 2019). Os dados e gráficos gerados pelo Zabbix são essenciais para um monitoramento de dispositivo, possibilita a configuração de dashboard customizados para melhor análise, conforme apresenta a Figura 1.
Figura 1: Modelo de Dashboard da ferramenta de monitoramento Zabbix Fonte:Zabbix (2019)
Zabbix é uma solução de monitoração integrada, que provê diversos recursos de monitoração em um único pacote. Suporta SNMP (Protocolo Simples de Gerência de Rede, é um "protocolo padrão da Internet para gerenciamento de dispositivos em redes IP"), tendo a opção de descoberta automática de dispositivos na rede. Os dados são armazenados em banco de dados, que possui um processo interno de limpeza de dados antigos configurável caso necessário. Tendo a possibilidade de definir limites flexíveis, chamados de triggers, referenciando valores do banco de dados da monitoração, para gerar notificações, exemplo: geração de notificação caso processamento supere 90%. Possui um log de auditoria que é essencial para a segurança dos softwares atuais. A arquitetura do Zabbix é basicamente composta por quatro componentes conforme descrição a seguir (Figura 2): Servidor: é o componente central da arquitetura, os agentes enviam os dados coletados dos ativos de redes cadastrados para ele. Banco de Dados: são armazenadas configurações e dados recebidos pelo Zabbix. Interface Web: para acesso rápido de qualquer dispositivo pelo usuário final, normalmente é o mesmo hardware do servidor (sendo possível utiliza separadamente). Agente: o Agente Zabbix é instalado nos servidores alvo da monitoração e pode monitorar ativamente os recursos e aplicações locais, enviando os dados obtidos para o Servidor (Cloudhat, 2017).
Figura 2: Topologia da arquitetura do Zabbix Fonte: Cloudthat (2017)
152
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
2.2 Arquitetura RISC RISC ĂŠ uma linha de arquitetura de microprocessadores que como seu prĂłprio nome diz Reduce Instruction Set Computer - Computador com Conjunto de Instruçþes Reduzidas, trabalha com um conjunto de pequenas instruçþes. Para um entendimento mais avançado desta arquitetura, ĂŠ essencial que seja realizada uma introdução a arquitetura CISC (Complex Instruction Set Computer â&#x20AC;&#x201C; Computador com Conjunto de Instruçþes Complexas). No inĂcio dos anos 70 era cada vez mais visĂvel o crescimento do valor do software e a diminuição do valor do hardware, com o intuito de redução de custo, a arquitetura CISC basicamente concentrou esforços para tirar a complexidade do software (mais caro) para o hardware (mais barato) com a utilização de microcĂłdigo tambĂŠm conhecido como micro programação, onde as instruçþes complexas poderiam ser implementadas no hardware (Silva, 2015). Para melhor entender o conceito de microprogramação, considere a â&#x20AC;&#x153;execução diretaâ&#x20AC;?, onde basicamente a instrução ĂŠ processada pela memĂłria, enviada para unidade de execução (ULA) e esta instrução ĂŠ executada. Por nĂŁo existir nenhum tipo de tradução extra, o hardware apenas processa e executa a instrução, a execução direta tem como vantagem a velocidade, porĂŠm quanto maior for o nĂşmero de instruçþes, maior vai ser o espaço ocupado pela unidade de execução, justamente por utilizar a execução direta, a quantidade de instrução aumenta. Para diminuir esta quantidade de instruçþes na arquitetura CISC ĂŠ utilizada a microprogramação, onde basicamente uma instrução complexa substitui vĂĄrias instruçþes simples (Silva, 2015). Utilizando uma simples equação para desempenho do processamento, a arquitetura CISC utiliza a complexidade em suas instruçþes para reduzir a quantidade de instrução ao total e assim melhorando o desempenho, conforme mostrado na Equação 1. đ?&#x2018;&#x2021;đ?&#x2018;&#x2019;đ?&#x2018;&#x161;đ?&#x2018;?đ?&#x2018;&#x153; = đ?&#x2018;&#x192;đ?&#x2018;&#x;đ?&#x2018;&#x153;đ?&#x2018;&#x201D;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;
đ??źđ?&#x2018;&#x203A;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;˘Ă§ĂŁđ?&#x2018;&#x153; đ??śđ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018; đ?&#x2018;&#x2021;đ?&#x2018;&#x2019;đ?&#x2018;&#x161;đ?&#x2018;?đ?&#x2018;&#x153; + + đ?&#x2018;&#x192;đ?&#x2018;&#x;đ?&#x2018;&#x153;đ?&#x2018;&#x201D;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;&#x161;đ?&#x2018;&#x17D; đ??źđ?&#x2018;&#x203A;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;˘Ă§ĂŁđ?&#x2018;&#x153; đ??śđ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;&#x2122;đ?&#x2018;&#x153;
Equação 1: Equação de desempenho Fonte: Silva (2015)
A consequĂŞncia desta estratĂŠgia ĂŠ que quanto maior for a complexidade da instrução, maior ĂŠ quantidade de ciclos para executar esta instrução. EntĂŁo surge o questionamento: muitas dessas instruçþes complexas que acabam gerando vĂĄrios ciclos para serem executadas sĂŁo realmente necessĂĄrias? Segundo Silva (2015), apĂłs estudos foi identificado que a maioria do trabalho estava sendo realizado por um pequeno conjunto de instrução simples, concluindo que instruçþes complexas que dificilmente eram utilizadas poderiam ser eliminadas sem gerar impactos. A substituição das instruçþes mais complexas por um grupo de instruçþes mais simples e que fossem realmente necessĂĄrias deu origem a arquitetura RISC, eliminado as instruçþes complexas e utilizando apenas um pequeno grupo de instruçþes, a micro programação deixou de ser utilizada e passou-se a utilizar a execução direta, diminuindo assim a quantidade de ciclos para executar a instrução. 2.2.1 IBM i O sistema operacional alvo deste artigo ĂŠ o IBM i, antigamente nomeado como AS/400 o IBM i ĂŠ um sistema operacional utilizado na famĂlia dos servidores IBM Power Systems ou PowerPC (Rouse, 2008), a famĂlia de servidores IBM Power System ĂŠ baseada nos processadores POWER abreviatura de Performance Optimization With 153
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Enhanced (Barney, 2011). Processadores POWER pertencem a uma séria de microprocessadores de alta performance da IBM (IBM, 2019), utilizado a mais de 30 anos, onde possuem conjuntos de instruções RISC (Looy, 2009).
3. Estudo de Caso Com o objetivo de demonstrar a usabilidade, configuração e funcionamento do Zabbix como ferramenta de monitoramento do IBM i, neste artigo é considerada a instalação do sistema, tanto do Zabbix, quanto do IBM i, como concluídas e ambas estão na mesma estrutura de rede física se comunicando. Para efeito deste artigo é focado somente na configuração no Zabbix e IBM i. 3.1 Arquitetura do Cenário No cenário em que foram realizadas as configurações, análises e testes do Zabbix, foi utilizado um servidor Power720 (servidor) da família de processadores IBM Power Systems, conectada a uma Storage (servidor de disco, também da fabricante IBM) através de dois Switches SAN, uma topologia de redundância e contingência geralmente utilizada em grandes empresas, conforme ilustrado na Figura 3:
Figura 3: Arquitetura do Cenário
É utilizado um POWER 720 como servidor, que está configurado três ambientes: Produção, Backup e Desenvolvimento. Por se tratar de um hardware de ambiente produtivo, a implementação será realizada em um o ambiente de Desenvolvimento para realizar os experimentos e análise do Zabbix, minimizando impactos à produção. A Figura 4 ilustra a arquitetura que está sendo utilizada no cenário de teste.
Figura 4: Arquitetura do Cenário
154
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
3.2 Configuração do Zabbix Por se tratar de uma solução livre de custos e de código aberto, garantindo que seu código-fonte seja distribuído e esteja disponível para o público em geral, o Zabbix proporciona uma diversidade de templates (modelo e estruturas predefinidas para facilitar a configuração e uso). Um desses templates é o do AS/400 (IBM i) onde é disponibilizado no site de Templates Zabbix (2016). 3.2.1 Preparando o arquivo de configuração Após a finalização do download, na pasta compactada existe um arquivo de configuração chamado “zabbix_agentd.conf”, basta abrir o arquivo como “txt” e alterar os parâmetros conforme Tabela 1. Tabela 1: Parâmetro de configuração Zabbix Fonte: Templates Zabbix (2016) Parâmetro Descrição Resultado Local onde serão salvos os LogFile LogFile=/home/ZABBIX/agentd/zabbix_agentd.log arquivos delog Server IP e Hostname do Servidor Zabbix Server=192.168.0.10,zabbixserver Hostname do ativo que será criado Hostname Hostname=as400desenv futuramente no Zabbix as400Serve Hostname do servidor IBM i (AS/400) as400ServerHost=as400desenv rHost as400Pass Senha do usuário de conexão que será as400Password=zabbix word criado no IBM i
3.3 Configurando IBM i Após a finalização de configuração dos parâmetros, os arquivos que estão na pasta compactada (incluindo o arquivo de configuração “zabbix_agentd.conf” já modificado) devem ser copiados para o diretório do IBM i (/home/ZABBIX/agentd/). Para este processo é possível usar o Sistemas de Ficheiros do iSeries Navegator (uma interface gráfica para clientes Windows, utilizada para gerir e administrar os sistemas IBM i). Com os arquivos copiados para o diretório do IBM i, em seguida é necessário realizar algumas configurações IBM utilizando um usuário com perfil administrativo. A Tabela 2 apresenta a lista dos comandos a serem utilizados no IBM i. Tabela 2: Parâmetro de configuração Zabbix no IBM i Fonte: Templates Zabbix (2016) Descrição Criar biblioteca “ZABBIX” no IBM i, todos objetos relacionados ao Zabbix irão estar nesta biblioteca Criar uma fila de job “ZABBIX” no IBM i, todos os jobs CRTLIB LIB(ZABBIX) (fazendo uma associação com o Windows, seriam os serviços) TEXT('Zabbixstuff') relacionados ao Zabbix irão estar nesta fila. CRTSBSD SBSD(ZABBIX/ZABBIX) Criar um subsystem “ZABBIX” (fazendo uma associação com o POOLS((1 *BASE)) Windows, seria uma arvore de processos) no IBM i, todos os TEXT('Zabbixsubsystem') jobs relacionados ao Zabbix irão estar neste subsystem ADDJOBQE -Realizar a associação da fila com o subsystem (criados SBSD(ZABBIX/ZABBIX) anteriormente), basicamente todos os jobs que estarão na fila JOBQ(ZABBIX/ZABBIX) ZABBIX serão processados no subsystem ZABBIX MAXACT(*NOMAX) Cria uma class “ZABBIX” que será utilizada como base para os jobs do Zabbix, uma class contem parâmetros de tempo de CRTCLS CLS(ZABBIX/ZABBIX) execução, neste caso o único parâmetro necessário para esta RUNPTY(35) TEXT('Zabbixclass') class é o RUNPTY, onde é indicado a prioridade que o sistema dará aos jobs que utilizam esta class (prioridade média) Comando CRTLIB LIB(ZABBIX) TEXT('Zabbixstuff')
155
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ADDRTGE SBSD(ZABBIX/ZABBIX) SEQNBR(9999) CMPVAL(*ANY) PGM(QSYS/QCMD) CLS(ZABBIX/ZABBIX) CRTJOBD JOBD(ZABBIX/ZBXSVC) JOBQ(ZABBIX/ZABBIX) TEXT('Zabbixautostart') USER(ZABBIX) RQSDTA('JAVA CLASS(''/home/ZABBIX/agentd/Zabbix Agent.jar'') PARM(''/home/ZABBIX/agentd/zabbix _agentd.conf'') JOB(ZBXAGT)') ADDAJE SBSD(ZABBIX/ZABBIX) JOB(ZBXSVC) JOBD(ZABBIX/ZBXSVC) STRSBS ZABBIX/ZABBIX
ISSN 2238-5096
Realizar a associação da classe com o subsystem (criados anteriormente), basicamente todos os jobs processados no subsystemZABBIX, utilizaram a class ZABBIX Este é o comando chave, onde é criado um job “ZBXSVC” (como um serviço no Windows), este job estará na fila ZABBIX,utilizara como parâmetro os arquivos de configurações copiados anteriormente para o diretório do IBM i, e será iniciado a partir de um usuário chamado ZABBIX (observação: este usuário deverá ter a senha “zabbix” conforme parametrizado anteriormente o arquivo de configuração) Configurar o job ZBXSVC para iniciar automaticamente com o subsystem ZABBIX criados anteriormente. Iniciar o subsystem ZABBIX, fazendo com que o job ZBXSVC se inicie também. Iniciando assim as coletas do Zabbix.
3.3.1 Importação do Template Após a finalização de configuração do IBM i, é necessária a configuração no Zabbix para que os dados coletados sejam mostrados de forma gráfica ao analista. Um dos arquivos disponibilizados no link de download é o template. Neste template já estão parametrizados todos os tipos de gráficos que podem ser gerados através da coleta de dados que está sendo rodada no IBM i, como monitoramento de Ativo, Processamento e Disco. O template pode ser importador na seguinte opção (Configurações/ Templates/ Importar Template). 3.3.2 Criação de ativo (Host) Após a criação do template, é necessário criar um ativo, no caso “IBM i” e associá-lo ao template, este ativo deve ter o mesmo hostname parametrizado no arquivo de configuração. Basta selecionar a opção (Configurações/ Hosts/ Criar Host) para realizar a criação de um novo ativo no Zabbix. Os principais parâmetros a serem preenchidos basicamente são referentes a IP e Hostname do IBM i, estes devem ser exatamente iguais aos que estão parametrizados no arquivo de configuração. No experimento em questão foi usado i) Nome do Host: as400desenv, ii) Interfaces do agente: 192.168.0.2 e iii) Interfaces SNMP: 192.168.0.2. 3.3.3 Associação do Ativo ao Template Com a criação do host finalizado, para que se inicie a coleta de logs e monitoramento, é necessário realizar uma associação entre o host criado e o template baixado anteriormente. Selecione a opção (Configurações/ Templates/(selecione o template importado) e no campo Hosts/ Templates, selecione o host criado anteriormente. Com isto concluem-se as configurações e o IBM i já está pronto para enviar os logs coletados para o Zabbix, onde os mesmos serão tratados, possibilitando a geração de gráficos para analises.
4. Resultados Na última etapa é realizada uma análise dos resultados que o Zabbix proporciona ao realizar o monitoramento do IBM i. Ao concluir as configurações, o template instalado proporciona um grande número de gráficos e informações para monitoramento. A seguir estão listadas as
156
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
principais e essenciais informações para gerenciamento de um ambiente, todas estas informações foram coletadas do IBM i, através da instalação do template e configurações realizadas anteriormente. Os principais gráficos a serem analisados são referentes ao seu processamento em geral e utilização de disco, as Figuras de 5 a 8 apresentam os principais gráficos que foram coletados a partir da implantação do Zabbix. - Uso total de CPU: esta é uma das informações mais importantes a serem coletadas e monitoradas, pois impacta diretamente na performance do servidor, por conta da utilização do IBM i em processos críticos, é essencial que o servidor esteja sempre abaixo do nível recomendado. Na Figura 5, pode-se observar que o nível médio de utilização de processamento é de 10%, pois se trata de um ambiente de Desenvolvimento onde existem poucas movimentações e processos sendo executados. Figura 5: Demonstrativo gráfico do uso de CPU
- Total de Jobs Processados: em paralelo com o consumo de processamento, o Zabbix coleta a quantidade total de Jobs, conforme Figura 6. Para sistemas operacionais IBM i e em processos críticos o monitoramento de jobs ativos é fundamental. Com este tipo de informação é possível observar qualquer tipo de anormalidade no sistema, sendo possível atuar de imediato ao perceber que um alto número de processos (jobs) estão sendo executados.
Figura 6: Demonstrativo gráfico do total de Jobs ativos
- Total de usuários conectados: devido implementação do Zabbix ser em um ambiente de Desenvolvimento, o número de usuários ativos é baixo conforme mostra Figura 7, este tipo de informação é importante para realizar análises a longo prazo, possibilitando que o analista mensure o nível de utilização dos sistemas que estão no IBM i.
157
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Figura 7: Demonstrativo gráfico do total de usuários conectados
- Nível de utilização de disco: outro controle muito importante e crítico, necessário para manter o ambiente estável, é o de nível de utilização de disco, pois seu crescimento pode comprometer as operações do sistema e é impeditivo para implementação de novas funcionalidades. Com este tipo de controle os responsáveis pelo negócio têm uma visão de quanto um investimento de ampliação de disco é necessário para evitar futuros problemas por espaço insuficiente de disco. Como podese verificar na Figura 8, o nível de utilização de disco está superior à 80%, chegando próximo ao recomendado para IBM i, que é de 90% (Hertivk, 2014).
Figura 8: Demonstrativo gráfico de utilização e espaço disponível em disco
5. Conclusões Zabbix demonstrou ser uma ferramenta de baixo custo, fácil implementação e bastante intuitiva para seus usuários e administradores, demostrando a possibilidade de com baixo custo de investimento, proporcionar alta disponibilidade em um ambiente de risco, através da sua coleta de log e monitoramento. Com conhecimentos básicos em IBM i, já é possível realizar suas configurações para monitoramento. Os dados gerados através do Zabbix são de muita importância para o monitoramento em tempo real dos servidores tais como nível de processamento e jobs ativos, que influenciam diretamente no desempenho do sistema operacional, e nível de utilização de disco, evitando indisponibilidade para o negócio, além disso os dados armazenados através da coleta (histórico) pode ser utilizado para realizar análises em cima do ambiente e tomar futuras decisões estratégicas para o negócio, conforme introduzido neste artigo, sempre com o objetivo de manter a alta disponibilidade com o menor custo possível.
158
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
6. Referencias Barney, Blaise (2011). IBM POWER Systems Overview. Disponível em: <https://computing.llnl.gov/tutorials/ibm_sp/> Acesso em 29 de março de 2019 CETIC (2017) A5 - EMPRESAS COM REDE (LAN, INTRANET E EXTRANET). Disponível em: <https://cetic.br/tics/empresas/2017/empresas/A5/> Acesso em 27 de março de 2019 Cloudthat (2017). Zabbix - A Simpler Way of Monitoring. Disponível em: <https://blog.cloudthat.com/zabbix/> Acesso em 29 de março de 2019 Filho, Adilson Galiano. Avaliação Da Ferramenta Zabbix. Pontifícia Universidade Católica do Paraná. 2010 Germano, Alan (2011). Arquitetura Risc e Cisc qual a diferença. Disponível em: <https://www.gruponetcampos.com.br/2011/03/17/arquitetura-cisc-e-RISC-qualdiferenca/> Acesso em 29 de março de 2019 Hertivk, Joe (2014). Admin Alert: What’s the Danger Zone for IBM i Disk Utilization?. Disponível em: <https://www.itjungle.com/2014/09/24/fhg092414-story03/> Acesso em 29 de março de 2019 IBM (2019). IBM Knowledge Center. Disponivel em <https://www.ibm.com/br-pt/itinfrastructure/power> Acesso em 29 de março de 2019 Looy, Tom Van. (2009). The IBM AS/400 a Technical Introduction. Disponível em <https://www.scss.tcd.ie/SCSSTreasuresCatalog/hardware/TCD-SCSST.20121208.068/IBM-AS400-technical-introduction.pdf> Acesso em 29 de março de 2019 Marques, Bruno S. Analisando o Uso da Ferramenta de Monitoramento Zabbix Para Ambientes Paralelos. Universidade Vale do Rio dos Sinos (UNISINOS), São Leopoldo – RS – Brasil. 2013 Nunes, Luiz Antônio. O Uso do Zabbix no Monitoramento de Infraestrutura dos Clouds e Servidores de Uma Empresa de Software. Universidade do Sul de Santa Catarina. 2018 Rouse, Margaret (2008). AS/400 (IBM iSeries, AS/400e, eServer iSeries/400). Disponível em: <https://search400.techtarget.com/definition/AS-400> Acesso em 29 de março de 2019 Silva, Luís Filipe. Comparação Entre as Arquitecturas de Processadores RISC e CISC. Faculdade de Engenharia da Universidade do Porto. 2015. Silva, W. M. C., Análise e Gerenciamento de Redes Usando uma Metodologia Proativa com Zabbix. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Nortec. 2014 Templates Zabbix (2016) Zabbix Agent Emulator AS/400. Disponível em: <https://share.zabbix.com/search?searchword=as400&search_cat=1> Acesso em 28 de março de 2019 Zabbix (2019). Disponível em: <https://www.zabbix.com/> Acesso em 24 de março de 2019 Zabbix Documentation (2019). Zabbix Documentation 4.2. Disponível em: <https://www.zabbix.com/documentation/4.2/pt/manual/introduction/about> Acesso em 24 de março de 2019
159
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Utilizando o Ambiente PentestBox para a Realização de Testes de Segurança com base na Metodologia OWASP Mobile Anne Graziely Vieira da Silva¹, Dhanielly Paulina R. de Lima¹² ¹Instituto de Ensino Superior Fucapi - (FUCAPI) ²Instituto de Computação - (IComp / UFAM) anne.graziely@gmail.com, dhanielly.rodrigues@gmail.com
Abstract. Modern society is experiencing a period of unavoidable technological change and it is expected that the tasks will be carried out quickly, dynamically and practically. With this, the use of mobile devices to facilitate the accomplishment of tasks has become increasingly common for people and companies. However, the use of these devices, for example, smartphones, carry with them numerous risks, such as information theft, improper access to data, leakage of sensitive data among other risks. To ensure information security, there are some tools that can be used to test the vulnerability of systems and devices, such as the PentestBox. Based on this information, this article aims to use the PentestBox environment to perform vulnerability analysis on the Android system and present an experience report on the use of PentestBox tools, following the main procedures of the OWASP Mobile methodology. Resumo. A sociedade moderna vivencia um período de transformações tecnológicas inevitáveis e espera-se que as tarefas sejam realizadas com rapidez, dinamismo e praticidade. Com isso, a utilização de dispositivos móveis para facilitar a realização de tarefas tem se tornado cada vez mais comum para as pessoas e empresas. No entanto, a utilização desses dispositivos, como por exemplo, os smartphones, trazem consigo inúmeros riscos, como o roubo das informações, o acesso indevido aos dados, vazamento de dados sigilosos, entre outros riscos. Para garantir a segurança da informação, existem algumas ferramentas que podem ser utilizadas para testar a vulnerabilidade dos sistemas e dispositivos, como por exemplo, o PentestBox. Com base nessas informações, o presente artigo tem como objetivo utilizar o ambiente PentestBox para realizar análises de vulnerabilidade no sistema Android e apresentar um relato de experiência a respeito da utilização das ferramentas do PentestBox, seguindo os principais procedimentos da metodologia OWASP Mobile.
160
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
1. Introdução Nos últimos anos, o mercado de smartphones cresceu exponencialmente, os dispositivos são utilizados em todos os lugares como meio de comunicação ou como uma ferramenta de trabalho (NORTH, 2017). Essa demanda de utilização justifica-se pelo fato dos smartphones possuírem muitos recursos que facilitam a realização de tarefas no dia-a-dia dos usuários. De forma imediata e sem limite de distância, oferece a possibilidade de utilizar inúmeras formas de comunicação: mensagens de texto, ligações, redes sociais e aplicativos para bate-papo (ORTEGA, 2016). Desta forma, é cada vez mais comum a adoção de tecnologias móveis no cotidiano profissional por parte das organizações que utilizam os dispositivos móveis como um meio de facilitar o projeto, a administração de serviços e a comunicação (GONÇALVES, 2012). No entanto, a utilização desses recursos traz consigo inúmeros riscos para as organizações, como por exemplo, invasão a rede interna, vazamento de dados sigilosos e outras brechas de segurança. Tais riscos podem surgir quando os dispositivos utilizados no trabalho são perdidos, roubados ou quando os funcionários acessam sites restritos. Segundo Quintão et al. (2010), mesmo com a segurança e as políticas corporativas em vigor, as empresas podem ter certeza de que os funcionários tentarão encontrar um modo de exercer sua “liberdade” on-line para acessar as redes sociais. Pesquisa da TrendMicro (2010) destaca que aproximadamente 1 em cada 10 usuários de cada país admitiu contornar a segurança de suas empresas para acessar sites restritos. Ainda segundo os autores (QUINTÃO et al. 2010), grande parte dos funcionários das organizações têm uma postura imprudente ou ambivalente quando se trata da segurança geral da empresa, bisbilhotando redes sociais durante o trabalho e até contornando as medidas de segurança da empresa para acessar sites restritos. Segundo Gomes e Santos (2006), casos envolvendo vazamento de dados dos usuários, segredos industriais e tantos outros dados privados das empresas, causando prejuízos financeiros e até danos à marca e a imagem, não são incomuns. Portanto, a adoção de práticas de segurança é importante tanto para as pessoas quanto pra as empresas modernas. Conforme Beal (2005) a definição de segurança da informação está relacionada a práticas de proteger a informação de ameaças que possam comprometer sua integridade, disponibilidade e confiabilidades. Por isso, medidas de segurança devem ser implementadas para resguardar os dispositivos móveis e toda a informação que transita nesses ambientes. Pensando nisso, existem algumas ferramentas que auxiliam no quesito segurança, realizando teste de vulnerabilidade nos aplicativos contidos nos dispositivos móveis. Com base nas informações acima, o presente artigo se propõe apresentar ferramentas do ambiente PentestBox que podem ser utilizadas na detecção de possíveis ameaças. Com as ferramentas do PentestBox foi possível realizar verificações para a identificação de possíveis vulnerabilidades existentes em aplicativos Android. A escolha de utilização de dispositivos com Android, justifica-se pelo fato de 80% das pessoas utilizarem o sistema (IDC, 2017). Além disso, os testes desenvolvidos no trabalho com as ferramentas do PentestBox foram realizados seguindo o guia da OWASP destinado a testadores de segurança e desenvolvedores.
161
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Além desta seção de introdução o artigo está estruturado da seguinte forma: a seção 2 apresenta a fundamentação teórica abordando os conceitos importantes para o entendimento do trabalho; a seção 3 apresenta os trabalhos relacionados com a pesquisa; a seção 4 detalha a metodologia utilizada, bem como as ferramentas de execução dos testes; a seção 5 aborda em detalhes as ferramentas e execução dos testes e por fim, a seção 6 apresenta as considerações finais.
2. Fundamentação Teórica Nesta seção são apresentados alguns conceitos que fundamentam este artigo e que auxiliam na compreensão e entendimento do trabalho. 2.1 PentestBox É uma modificação do ConEmu, que é uma linha de comando para Windows capaz de abrir múltiplos consoles e tem diversas configurações de personalização. Atualmente na versão 2.2, o PentestBox tem cerca de 1,7 GB e dá para ser instalado em um pendrive, além de trazer todas a ferramentas de pentest em um pacote e é possível rodá-las nativamente no Windows, podendo-se até executar alguns comando importantes de Linux, além de vir instalados ferramentas que serão utilizadas para análise de aplicações, seja ela dinâmica ou estática, uma mesma ferramenta serve muitas vezes para mais de uma análise (MENDES, 2017). Quadro 1. Ferramentas do PentestBox.
Ferramenta
Descrição
Link do Projeto
ADB
Um programa cliente-servidor em 3 partes: o computador roda o servidor em segundo plano, o adb envia comandos como cliente e um daemon que recebe e executa comandos no dispositivo. Ainda conta com um shell, um debugger e um analisador de logs.
Disponível no Android SDK.
AndroBugs
É um framework que analisa potenciais vulnerabilidades em aplicações Android. Além disso, procura por comandos perigosos, coleta informações de outros apps, checa se o código segue os padrões e tem uma GUI simples na linha de comando.
https://github.c om/AndroBugs /AndroBugs_F ramework
APKTool
Engenharia reversa, atua na compilação e descompilação de APKs em Smali e permite a instalação adicional de frameworks
https://ibotpeach es.github.io/Apk tool
Burp Suite
Atua como proxy para realização de testes de segurança em aplicações web. Ele possui outras funcionalidades como crawling de aplicações, scanner de requisições HTTP, ataques automatizados, re-envio de requisições, análise de tokens de sessão, codificação e decodificação mais comuns e comparador de bits.
d2j-dex2jar
Descompila uma aplicação .dex diretamente em .jar.
https://portswig ger.net/burp
https://github.co m/pxb/1988/dex 2jar
162
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
Drozer
É uma ferramenta open source de análise dinâmica de https://labs.mwri aplicações Android que possui diversas funcionalidades, nfosecurity.com/ desde interagir com processos de inter-comunicação tools/drozer/ como content providers até o sistema operacional, lançando activities.
JD-GUI
Talvez um dos mais utilizados, ainda que não consiga descompilar totalmente o Java 8, possui uma GUI fácil de navegar e abre arquivos .jar para inspecionar os arquivos .class.
http://jd.benow. ca/
2.2 OWASP Segundo Thakur (2016) o OWASP Mobile Security Project é um recurso centralizado destinado a fornecer aos desenvolvedores e equipes de segurança os recursos necessários para criar e mantes aplicativos móveis seguros. Através do projeto, o objetivo é classificar os riscos de segurança e fornecer controles de desenvolvimento para reduzir seu impacto ou probabilidade de exploração. 2.2.1 Vulnerabilidade e Exploit Segundo a IETF RFC 2828 1, uma vulnerabilidade é "uma falha ou fraqueza no projeto, implementação ou operação de um sistema que pode ser explorada para violar a política de segurança do sistema.” Um exploit é um termo muito confundido com uma vulnerabilidade, mas deriva do verbo inglês de mesmo nome, e significa usar alguma coisa para tomar vantagem para si próprio. Esta vantagem não se dá necessariamente pelo uso de um software, mas também por mecanismos como uma sequência de comandos ou até por engenharia social, sem necessariamente usar conhecimentos computacionais (PISCITELLO, 2015). 2.2.2 Top 10 Vulnerabilidades Android OWASP Em seu top 10, a OWASP dá um resumo das categorias das principais vulnerabilidades no Android, divididos em categorias segundo seu guia, o Mobile Security Testing Guide (MSTG) (MUELLER e SCHLEIER, 2017). São: 1. Utilização inadequada da plataforma: essa categoria abrange o uso indevido de um recurso de plataforma ou a falha no uso dos controles de segurança da plataforma. Pode incluir objetos do Android, permissões da plataforma, uso indevido do TouchID, o Keychain ou algum outro controle que faça parte do Sistema Operacional. 2. Armazenamento de Dados Inseguro: abrange o armazenamento de dados inseguro e o vazamento de dados não intencional. 3. Comunicação insegura: isso inclui um handshaking ruim, versões de SSL incorretas, negociação fraca, etc. 4. Autenticação Insegura: Noções de autenticação do usuário final ou gerenciamento de sessão incorreta. 5. Criptografia Insuficiente: o código aplica a um ativo de informações confidenciais. 6. Autorização Insegura: o aplicativo não faz as decisões corretas de autorização.
163
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
7. Qualidade do código do cliente: todos os problemas relacionados ã nível de código do lado cliente, como buffer overflows, formatação de string e vários outros. 8. Adulteração de código: esta abrange a modificação de recursos locais, memória dinâmica, entre outros. 9. Engenharia Reversa: compreende à análise de código binário, revelação de código fonte, algoritmos e outros recursos a nível de Código da aplicação. 10. Funcionalidade Estranha: funcionalidades que foram utilizadas para propósito de teste estão acidentalmente na versão da aplicação. 2.2.3 Tipos de Análises Existem dois tipos de análises segundo o guia da OWASP: análise estática e dinâmica. Análise estática: analisando o código-fonte móvel bruto, código descompilado ou desmontado. Existem duas maneiras em que a análise estática será executada em um aplicativo móvel. Primeiramente, analisando o código fonte obtida pela equipe de desenvolvimento. A segunda, usando um binário compilado. Análise dinâmica: executa um aplicativo no próprio dispositivo ou em um simulador (emulador) e interage com os serviços remotos com as quais o aplicativo se comunica. A análise dinâmica é realizada nos serviços de back-end e nas APIs, e o tipo de testes varia dependendo do tipo de aplicativo móvel. Neste artigo será utilizado a análise estática para demonstração da utilização das ferramentas e com um binário compilado.
3. Trabalhos Relacionados No estudo de Mendes (2017), “Análise de Vulnerabilidade em Aplicações Android com o Uso de Ferramentas de Teste de Intrusão e a Metodologia OWASP”, demonstra seções com fundamentos e arquitetura Android, faz uso de um ambiente de teste AppenBox, executa testes e análises de vulnerabilidades de acordo com o top 10 da OWASP em 3 aplicativos. Foi possível observar por meio dos resultados utilizando a metodologia de testagem desenvolvida para este trabalho, que mesmo em aplicativos criados por empresas de grande porte e baixados por milhões de pessoas ainda há problemas, sejam eles mínimos até críticos, o que pode causar desde um vazamento de dados sensíveis até um acesso remoto ao servidor da aplicação e assim prejudicar os usuários que querem usufruir de todos os recursos com plena confiança de que seus dados estejam seguros (MENDES, 2017).
4. Metodologia 4.1 Metodologia de Testagem Adaptada Antes da realização da bateria de testes, foi criado uma metodologia de testagem correspondente com base no teste das dez categorias da OWASP e de sua metodologia, vistas anteriormente. Nas próximas seções, serão explicados o que acontece em cada fase dos testes, que compreendem: fluxo da aplicação, superfície de ataque, permissões,
164
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
engenharia reversa, ataques às activities, broadcast receivers, content providers e services exportados (MENDES, 2017). Para demonstração dos testes foi utilizado o aplicativo GoitDroip – Fourgoats disponibilizado pelo OWASP para testes de vulnerabilidades. No site há outros aplicativos disponíveis para download e estudos. Disponível no link: https://github.com/jackMannino/OWASP-GoatDroid-Project.
4.1.1 Fluxos de Aplicação Esses testes são baseados puramente no controle manual da aplicação, no qual o testador irá abrir o aplicativo, passear por todas as telas observando se há informação que possa ajudar na descoberta de vulnerabilidades ou telas com informações sensíveis. Informações sensíveis são todas as informações que quando utilizadas para obter vantagem ou para o mal, podem causar danos pessoais, materiais ou financeiros (ROUSE, 2014). 4.1.2 Superfície de Ataque A superfície de ataque pode ser compreendida como todo e qualquer meio que possa ser utilizado para um ataque tais como as funcionalidades da aplicação, que são testadas no passo anterior. Fora as funcionalidades, podemos ver a superfície de ataque executando o Drozer, que tem módulos que funcionam para verificar este tipo de ataque. Por exemplo, basta digitar run app.package.attacksurface [package], no qual [package] é o nome do pacote da aplicação (MENDES, 2017). Na seção de execução de testes é mostrado os comandos que devem ser utilizados com módulo Drozer para extração de informações como: activities, broadcast receivers e services. 4.1.3 Permissões As permissões são importantes para saber se há alguma permissão sendo utilizada para outras coisas que não sejam a funcionalidade para qual o aplicativo foi feito ou até permissões soltas e que não são utilizadas, por análise manual (MENDES, 2017). Para verificar as permissões é demostrado a extração do arquivo AndroidManifest.xml na seção de execução de testes. 4.1.4 Engenharia Reversa Engenharia reversa é a prática de, a partir do código executável de um sistema, obter o código fonte original, permitindo em alguns casos até mesmo modificá-lo e recompilá-lo novamente para distribuição, o que muitas vezes é o tipo de prática maliciosa que os crackers utilizam para burlar os executáveis dos jogos de computador (DUARTE, 2012). É possível extrair o código fonte através de descompiladores do arquivo .APK para realizar a leitura do código fonte, se é legível e possível abstrair algum dado importante para outros testes. Na fase de teste é utilizado a ferramenta d2j-dex2jar e visualizador JDGUI.
165
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
4.1.5 Leitura do Código Fonte Durante a leitura do código fonte, verificar o nível de ofuscação do código a procura de: APIs utilizadas, dados sensíveis, determinar o banco de dados, criptografia como chaves públicas, como as requisições são feitas (GET ou POST), Intents implícitos, identificar alguma função utilizada na fase de testes (MENDES, 2017). 4.1.6 Ataques as Activities No Android, uma activity representa uma tela de interface com o usuário, como uma tela de login, ajustes ou tela principal. Ela contém os principais elementos visuais que farão parte da iteração com o usuário, sejam botões, caixas de diálogos ou outras coisas. Cada aplicação possui múltiplas activities, que são lançadas via ajuda de um intent, que é uma espécie de mensageiro assíncrono que responde à pedidos da aplicação ou sistema e que vincula vários componentes a outros em tempo de execução (BRAHLER, 2010). Através da extração do .APK, é possível realizar a leitura do arquivo AndroidManifest.xml ou pegar as activities automaticamente através do Drozer, activities exportadas e não exportadas. No arquivo extraído é exibido o nível de permissão de cada activities, sendo possível executar telas fora do fluxo padrão estabelecido de acordo com a permissão de cada activities (MENDES, 2017). 4.1.7 Ataques à Broadcast Receivers Análogo aos services, os broadcasts receivers também rodam em background e não tem interface, porém executam tarefas de curta duração. A principal diferença para os services são que os broadcast receivers respondem à intents de eventos em todo o sistema, por isso a maioria deles se originam do próprio sistema e o restante dos próprios aplicativos (customizados), anunciando por exemplo quando a bateria está baixa para o usuário escolher se quer entrar em modo de economia ou não, ou criando uma resposta no momento que o usuário aperta o botão de volume ou ligar a Wi-Fi. Apesar de não possuírem uma interface visual, eles podem vir acompanhados de notificações na barra de status para alertar o usuário que um determinado evento está ocorrendo (AGRAWAL, 2015). Quando algum evento ocorre, broadcasts registrados para aquele evento específicos são acionados. Eles realizam tarefas como por exemplo verificar e-mails não lidos. Há dois tipos principais de broadcasts: do sistema, que são ações como BOOT_COMPLETE, INPUT_METHOD_CHANGED, AIRPLANE_MODE_CHANGED e POWER_CONNECTED, e os customizados, que podem ser gerados por aplicações Android (MENDES, 2017). 4.1.8 Ataques à Serviços Os services são componentes sem interface visual que rodam em background e seu objetivo é realizar tarefas longas sem que isso atrapalhe a interação do usuário com a aplicação (AGRAWAL, 2015). Para obtenção dos services é utilizado o Drozer para listagem. Ter um service disponível sem nenhuma permissão de controle é essencialmente perigoso, pois pode ser utilizado por qualquer aplicação maliciosa instalada no mesmo smartphone. Como esta é uma aplicação intencionalmente vulnerável, é bem fácil de se
166
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
identificar e realizar o exploit porém em uma aplicação trabalhada dificilmente um service será exposto assim (MENDES, 2017).
5. Ferramentas e Execução dos Testes Todos os testes foram feitos com auxílio do ambiente PentestBox e algumas de suas ferramentas. Para algumas verificações é mostrado os comandos necessários para a utilização das ferramentas já inclusas no PentestBox. Para início foi baixado o projeto através do link: https://github.com/jackMannino/OWASP-GoatDroidProject/downloads. Logo em seguida, foi instalado no smarphone com root o aplicativo “OWASP GoatDroid- FourGoats Android App.apk”, após isto, conectou-se via cabo usb no computador no diretório do PentestBox e aberto seu terminal. Todos os testes abaixo foram feitos no aplicativo GoatDroid, assim é mostrado os principais comandos que podem ser utilizados no Pentest Box para obtenção de dados para análise. 5.1 Teste de análise de código usando a ferramenta AndroBugs Framekork O AndroBugs Framework é um sistema de análise de vulnerabilidade do Android que ajuda desenvolvedores e hackers a encontrar possíveis vulnerabilidades de segurança em aplicativos Android, com duração de menos de 2 minutos é realizado uma varredura no código fonte e feito uma análise de padronização e boas práticas de código (LIN, 2015). No AppenBox utiliza-se o comando: androbugs -f [apk] onde [apk] é o arquivo .apk a ser testado (MENDES, 2017). No terminal do Pentest Box foi executado da seguinte forma: androbugs –f goatdroid. Onde é criado uma pasta contendo o relatório gerado pela ferramenta. É possível identificar 4 categorias de classificações no relatório gerado: info (apenas informações sobre o app), notice (problemas com baixa prioridade), warning (vulnerabilidade não confirmada), critical (vulnerabilidade de segurança quase confirmada) (MENDES, 2017). Na sessão de resultados é detalhado o relatório gerado com esta linha de comando do AndroBugs. 5.2 Teste de engenharia reversa e permissão usando a ferramenta d2j-dex2 e APKTool Para a leitura do código fonte é necessário realizar a extração do código fonte do arquivo .apk . Para isto é descompilado o arquivo .apk para .jar. É utilizado para esta finalidade a ferramenta dex2jar, que também é possível descompilar para .dex e .classs (MENDES, 2017). Também é necessário checar o arquivo AndroidManifest.xml, para ver as informações acerca das permissões do app e também dos provedores de conteúdo e activities. A maneira mais fácil é extraindo o apk com o APKTool. No diretório do apk basta digitar apktool d [apk] -o [dir] onde [apk] é o nome do arquivo apk e [dir] o diretório de saída dos arquivos, após o processo ser completado, basta ir na pasta do APK e verificar o arquivo AndroidManifest.xml com qualquer editor de texto. (MENDES, 2017). O APKTool trata-se de uma ferramenta para engenharia reversa de terceiros, aplicativos Android fechados e binários. Ele pode decodificar recursos para um formato quase original e reconstruí-los depois de fazer algumas modificações (APKTool, 2010).
167
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
5.3 Teste de componentes usando a ferramenta Drozer O Drozer é um software de código aberto, mantido pela MWR InfoSecurity, e pode ser baixado em: mwr.to/drozer. O drozer roda tanto em emuladores Android quanto em dispositivos reais. Ele não exige que a depuração USB ou outros recursos de desenvolvimento sejam ativados; para que você possa realizar avaliações em dispositivos no estado de produção para obter melhores resultados (MWR InfoSecurity, 2019). Drozer Activities: Para pegar as activities automaticamente, deve-se usar o Drozer com o comando run app.activity.info -a [package] onde [package] é o nome do package do aplicativo, com o parâmetro opcional -u ao fim para mostrar activities não exportadas (MENDES, 2017). Casos as activities indicadas não tenham nenhuma permissão especial, isso quer dizer que se pode abrir as mesmas fora do fluxo padrão do aplicativo, assim sendo possível fazer testes como burlar telas de login, verificar se há telas com informações sensíveis que podem ser acessadas, entre outros. Para abrir uma activity basta utilizar o comando do ADB shell: adb shell am start –n [package]/[activity] onde [packge] é o package e [activity] a activity que será aberta (MENDES, 2017). Drozer Services: no Drozer pelo comando run app.service.info -a [package] com o parâmetro opcional -u para incluir services não exportados. Ter um service disponível sem nenhuma permissão de controle é essencialmente perigoso, pois pode ser utilizado por qualquer aplicação maliciosa instalada no mesmo smartphone (MENDES, 2017). Drozer Broadcast Receivers: Os broadcasts receivers exportados podem ser tanto encontrados no Android Manifest com a tag <receiver> como no Drozer com o comando run app.broadcast.info -a [package], no qual [package] é o nome do package do aplicativo (MENDES, 2017).
6. Resultados Após a execução dos testes é obtido os seguintes resultados. Todos os testes foram utilizados o aplicativo GoitDroid disponibilizado pela OWASP. Analisando o relatório gerado pelo androbugs, constatou-se 3 vulnerabilidades consideradas críticas (critical): 1. Verificação de proteção (KeyStore Protection Checking): Os keystores abaixo parecem usar "byte array" ou "hard-coded cert info" para fazer a fixação de SSL (Total: 1), etc. 2. Checagem de SSL Host Name: Este aplicativo não verifica a validação do CN (Common Name) do certificado SSL (campo "ALLOW_ALL_HOSTNAME_VERIFIER" ou "AllowAllHostnameVerifier" class). Essa é uma vulnerabilidade crítica e permite que os invasores façam ataques MITM com seu certificado válido sem o seu conhecimento. 3. Checagem de SSL Certificado: Verificação de verificação de certificado SSL: este aplicativo não verifica a validação do certificado SSL. Ele permite certificados CN auto-assinados, vencidos ou incompatíveis para SSL conexão. Esta é uma vulnerabilidade crítica e permite que os invasores façam ataques MITM sem o
168
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
seu conhecimento. Se você estiver transmitindo o nome de usuário ou senha dos usuários, essas informações confidenciais podem estar vazando. Como esta aplicação é intencionalmente vulnerável e dedicada a estudos disponibilizado pelo OWASP, é possível identificar e realizar um exploit, porém em uma aplicação trabalhada dificilmente um service, por exemplo, será exposto (MENDES, 2017). Para geração de relatórios com a Ferramenta androbugs, a demora foi de apenas 2.57s para análise e teve de conclusão 8.28s. Já com a ferramenta Drozer cada teste durou menos de 11 s.
7. Trabalhos Futuros Este artigo foi demostrado a utilização das principais ferramentas do ambiente Pentest Box, assim como a obtenção de dados para posterior análise. Para trabalhos futuros sugere-se ser analisado e detalhado os resultados dos demais testes que foram realizados e que podem ser feitos, suas consequências e a simulação de um possível ataque com intuito de causar danos a aplicação.
8. Considerações Finais O presente utilizou e analisou as principais ferramentas que podem ser utilizadas de forma prática e rápida na análise de vulnerabilidades com diferentes tipos de testes. Seguindo o guia de teste de segurança da OWASP e seu top 10 de vulnerabilidades, onde foram descritas e feitas algumas exemplificações com ferramentas que fazem parte do ambiente PentestBox, do qual possui uma interface fácil e amigável, com as principais ferramentas de testes de segurança e pentest já instaladas, permitindo também a instalação de outras ferramentas no próprio ambiente Pentest Box, poupando assim o tempo de instalação de todas as ferramentas individualmente. O Pentest Box é excelente para qualquer equipe de desenvolvimento, já que conta com uma interface fácil de usar, é portátil, permitindo assim a execução através de um pendrive USB, faz a utilização de pouca memória, sendo necessária apenas 20 MB para rodar, não é necessário a instalação de nenhuma dependência como driver de vídeo ou wireless, é modular, permitindo a inclusão de novas ferramentas, tanto para testes mobile quanto para web, além de reconhecer os principais comandos do terminal linux. Citado algumas características presentes no ambiente Pentest Box.
8. Referências MUELLER, B.; SCHLEIER, S. OWASP Mobile Security Testing Guide. Early Access. ed. [S.l.]: OWASP Foundation, 2017. Disponível em: <https://github.com/OWASP/owaspmstg>. Acesso em: 21 Março 2019. OWASP. The OWASP Foundation. Top 10 para celular de 2016-Top 10. Disponível em: <https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10>. Acesso em: 21 Março 2019. THAKUR, M. Mobile Top Tem Contributions. Disponível em: <https://www.owasp.org/index.php/Mobile_Top_Ten_Contributions>. Acesso em: 23 Março 2019. MENDES, Dimas Albuquerque. Análise de vulnerabilidade em aplicações android com o uso de ferramentas de teste de intrusão e a metodologia OWASP. 2017.
169
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
PENTESTBOX. Pentestbox. Disponível em: <https://pentestbox.org/pt/>. Acesso em: 01 Março 2019. ORTEGA, Fernanda da Cunha. Dependência de Smartphone: investigando a realidade do Sistema "S" em Santana do Livramento. 2016. QUINTÃO, P. L., Misaghi, M., da Silva Pinto, S. C. C., e Novais, E. B. Análise Dos Desafios E Melhores Práticas Para Resguardar A Segurança E Privacidade Dos Dispositivos Móveis No Uso Das Redes Sociais. 2010. TRENDMICRO, 2010. Pesquisa da Trend Micro revela que funcionários colocam interesses pessoais à frente da segurança das empresas. Disponível em: <https://www.trendmicro.com/pt_br/>. Acesso em: 09 de Abril de 2019. APKTOOL. Android-apktool. Disponível em: < https://ibotpeaches.github.io/Apktool/>.
Acesso em: 01 de Fevereiro 2019. IDC. IDC. Smartphone OS Market, 2017 Q1, 2017. Disponível em: <https://www.idc.com/promo/smartphone-market-share/os>. Acesso em: 08 de Fevereiro 2019. NORTH, Z. Office Space Software. How Office Managers Can Make the Most of Smartphone Habits in the Workplace, 2017. Disponível em: <https://www.officespacesoftware.com/blog/how-office-managers-can-make-the-mostof-smartphone-habits-in-the-workplace>. Acesso em: 10 Fevereiro 2019. PISCITELLO, D. ICANN. Threats, Vulnerabilities and Exploits – oh my!, 10 agosto 2015. Disponível em: <https://www.icann.org/news/blog/threats-vulnerabilities-andexploits-oh-my>. Acesso em: 01 de Fevereiro 2019. ROUSE, M. Whatls. What is sensitive information?, 2014. Disponível em: <http://whatis.techtarget.com/definition/sensitive-information>. Acesso em: 20 Março 2019. GONÇALVES, A. P. B. Executivos, gêneros e smartphones: uma exploração quantos aos paradoxos tecnológicos e às copying strategies. 2012. Tese (Doutorado em Administração de Empresas) - Fundação Getúlio Vargas, Rio de Janeiro, 2012. GOMES, K. DA SILVA; SANTOS, NEWTON. “Segurança no Desenvolvimento de Aplicações Web”, Universidade da Amazônia - UNAMA - Centro de Ciências Exatas e Tecnológicas - CCET – Trabalho de Conclusão de Curso do Curso de Bacharel em Ciência da Computação, 2006. BEAL, ADRIANA. Segurança da informação: princípios e melhores práticas para a proteção dos ativos de informação nas organizações. São Paulo: Atlas, 2005. BRASIL. Decreto n° 4.553, de 27 de novembro de 2002. Diário Oficial da União, poder Executivo, Brasília, 30/12/2002. DUARTE, LUIZ. Como fazer engenharia reversa em apps Android. Disponível em: <https://www.luiztools.com.br/tag/android/page/14/>. Acesso em: 20 Fevereiro 2019. BRAHLER, S. Karlsruhe institute for technology. Analysis of the android architecture, jun. 2010. Disponível em: <https://os.itec.kit.edu/downloads/sa_2010_braehlerstefan_android-architecture.pdf >. Acesso em: 28 Março 2019.
170
VIII Encontro de Computação e Sistemas de Informação 22 e 23 de maio de 2019 Manaus -Amazonas
ISSN 2238-5096
AGRAWAL, A. Manifest Security. Android Application Secutiry Series, 2015. Disponível em: <https://manifestsecurity.com/android-application-security/>. Acesso em: 23 Fevereiro 2019. LIN, YU-CHENG. Framework AndroBugs. Disponível em: <https://github.com/AndroBugs/AndroBugs_Framework>. Acesso em: 20 Fevereiro 2019.
171