GUSTAVOCASARIMHERRMANN · Shaoqing Ren desenvolveu um algoritmo de detecção de objetos que acaba...

48
GUSTAVO CASARIM HERRMANN ANÁLISE E APLICAÇÃO DE REDES R-CNN PARA IDENTIFICAÇÃO DE COBRAS PEÇONHENTAS A PARTIR DE IMAGENS LONDRINA 2019

Transcript of GUSTAVOCASARIMHERRMANN · Shaoqing Ren desenvolveu um algoritmo de detecção de objetos que acaba...

GUSTAVO CASARIM HERRMANN

ANÁLISE E APLICAÇÃO DE REDES R-CNN PARAIDENTIFICAÇÃO DE COBRAS PEÇONHENTAS A PARTIR

DE IMAGENS

LONDRINA2019

GUSTAVO CASARIM HERRMANN

ANÁLISE E APLICAÇÃO DE REDES R-CNN PARAIDENTIFICAÇÃO DE COBRAS PEÇONHENTAS A PARTIR

DE IMAGENS

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Prof(a). Dr(a). Jacques Duí-lio Brancher

LONDRINA2019

Ficha de identificação da obra elaborada pelo autor, através do Programa de GeraçãoAutomática do Sistema de Bibliotecas da UEL

H568 Herrmann, Gustavo Casarim.Análise e aplicação de redes R-CNN para identificação de cobraspeçonhentas a partir de imagens / Gustavo Casarim Herrmann. - Londrina,2019.47 f. : il.

Orientador: Jacques Duílio Brancher.Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) -

Universidade Estadual de Londrina, Centro de Ciências Exatas, Graduação emCiência da Computação, 2019.

Inclui bibliografia.

1. Redes R-CNN - TCC. 2. Detecção de objetos - TCC. 3. Classificação deimagens - TCC. 4. Cobras Peçonhentas - TCC. I. Brancher, Jacques Duílio. II.Universidade Estadual de Londrina. Centro de Ciências Exatas. Graduação emCiência da Computação. III. Título.

CDU 519

Powered by TCPDF (www.tcpdf.org)

Este trabalho é dedicado às pessoas queacreditam que a tecnologia pode estar em

todos os lugares

AGRADECIMENTOS

Agradeço primeiramente a Deus, por ter me dado saúde e força para aguentar essesquatro anos de faculdade e também por me proporcionar dedicação e inspiração para arealização desse trabalho.

A meus pais, Patrícia Simone Casarim Herrmann e Paulo Henrique Herrmann,que conseguiram me aturar por todos esses anos, estiveram sempre ao meu lado e meapoiaram todos os dias.

A meu tio e padrinho, Samuel Pinto de Oliveira, que sempre me ajudou comopodia com tudo que precisei.

A meus amigos de graduação, Eduardo Ribeiro Rezende e Flávio Henrique deOliveira, que desde o primeiro trabalho do professor Alan no primeiro ano estão comigo.Assim foi criada a frase: “O que o Alan une, ninguém separa”.

A meu professor de graduação e orientador, Jacques Duílio Brancher, que mereconheceu, me aconselhou e me deu oportunidades na graduação.

Ao professor Sérgio Montazzolli Silva, que me fez gostar de Inteligência Artifical edesmistificou esse conceito para mim.

“Só se pode alcançar um grande êxitoquando nos mantemos fiéis a nós mesmos.”

(Friedrich Nietzsche)

HERRMANN, G. C.. ANÁLISE E APLICAÇÃO DE REDES R-CNN PARAIDENTIFICAÇÃO DE COBRAS PEÇONHENTAS A PARTIR DE IMA-GENS. 2019. 47f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Compu-tação) – Universidade Estadual de Londrina, Londrina, 2019.

RESUMO

Acidentes com animais peçonhentos são hoje uma grande preocupação de saúde mundial,de acordo com a OMS. O objetivo desse trabalho foi criar uma ferramenta para identificaras principais espécies de cobras peçonhentas brasileiras com o uso de uma rede R-CNN.Para isso foi feito um estudo sobre esse tipo de rede, uma busca de imagens das cobrasdessas espécies e treinamento da rede neural. Foi realizado o teste dessa rede e a partir delasão calculadas métricas de avaliação. Por fim, esses resultados são discutidos e analizadospara se determinar a eficiência da rede utilizada em relação a cada espécie identificada.

Palavras-chave: Saúde, Cobras Peçonhentas, Redes Neurais, Redes Neurais Convoluci-onais

HERRMANN, G. C.. ANALYSIS AND APPLICATION OF R-CNN NETWORKSFOR IDENTIFICATION OF VENOMOUS SNAKES FROM IMAGES. 2019.47p. Final Project (Bachelor of Science in Computer Science) – State University of Lon-drina, Londrina, 2019.

ABSTRACT

Accidents with venomous animals are today a major global health concern, according toWHO. The objective of this work was to create a tool to identify the main species ofBrazilian venomous snakes using an R-CNN network. For this, a study was made aboutthis type of network, a search for images of the snakes of these species and training of theneural network. This network was tested and evaluation metrics are calculated from it.Finally, these results are discussed and analyzed to determine the efficiency of the networkused in relation to each identified species.

Keywords: Health, Venomous Snakes, Neural Networks, Convolutional Neural Networks

LISTA DE ILUSTRAÇÕES

Figura 1 – Esquema de cor RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Figura 2 – Imagem Segmentada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Figura 3 – Imagem Super Segmentada . . . . . . . . . . . . . . . . . . . . . . . . 18Figura 4 – Filtro deslizado pela entrada . . . . . . . . . . . . . . . . . . . . . . . . 19Figura 5 – Exemplo de Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Figura 6 – R-CNN com Pesquisa seletiva . . . . . . . . . . . . . . . . . . . . . . . 21Figura 7 – R-CNN em cada região . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Figura 8 – Modelo Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Figura 9 – R-CNN vs Fast R-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figura 10 – RPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Figura 11 – Arquitetura da Faster R-CNN . . . . . . . . . . . . . . . . . . . . . . . 26Figura 12 – Tempo de teste entre as redes R-CNN, Fast R-CNN e Faster R-CNN . 26Figura 13 – Modelo Inception V1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Figura 14 – Modelo Inception V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Figura 15 – Estratégias de retreinamento . . . . . . . . . . . . . . . . . . . . . . . . 29Figura 16 – Matriz de confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Figura 17 – Cobra do Gênero Crotalus . . . . . . . . . . . . . . . . . . . . . . . . . 31Figura 18 – Cobra Coral Verdadeira . . . . . . . . . . . . . . . . . . . . . . . . . . 32Figura 19 – Cobra Jararaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Figura 20 – Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Figura 21 – Imagem com caixa delimitadora . . . . . . . . . . . . . . . . . . . . . . 36Figura 22 – Arquivo XML gerado a partir da imagem e legenda . . . . . . . . . . . 36Figura 23 – Imagem Cascavel1.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Figura 24 – Imagem Cascavel2.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figura 25 – Imagem Coral1.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figura 26 – Imagem Coral2.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Figura 27 – Imagem Jararaca1.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Figura 28 – Imagem Jararaca2.jpg . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

LISTA DE TABELAS

Tabela 1 – Acertos e Erros da classe Cascavel . . . . . . . . . . . . . . . . . . . . 42Tabela 2 – Métricas de avaliação da classe Cascavel . . . . . . . . . . . . . . . . . 42Tabela 3 – Acertos e Erros da classe Coral . . . . . . . . . . . . . . . . . . . . . . 43Tabela 4 – Métricas de avaliação da classe Coral . . . . . . . . . . . . . . . . . . . 43Tabela 5 – Acertos e Erros da classe Jararaca . . . . . . . . . . . . . . . . . . . . 43Tabela 6 – Métricas de avaliação da classe Jararaca . . . . . . . . . . . . . . . . . 43

LISTA DE ABREVIATURAS E SIGLAS

OMS Organização Mundial da Saúde

CNN Convolutional Neural Network

R-CNN Region-based Convolutional Neural Network

RPN Region Proposal Network

SVM Support Vector Machine

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 152.1 Imagem Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Segmentação de imagens . . . . . . . . . . . . . . . . . . . . . . . 162.3 Seleção de regiões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.1 Janela deslizante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.2 Pesquisa Seletiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 Redes Neurais Convolucionais . . . . . . . . . . . . . . . . . . . . 182.4.1 Camada de Convolução . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.2 Camada de Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.3 Camada de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5 Region-based Convolutional Neural Network . . . . . . . . . . 212.6 Fast Region-based Convolutional Neural Network . . . . . . . 222.7 Faster Region-based Convolutional Neural Network . . . . . . 242.8 Rede Inception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.8.1 Inception V1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.8.2 Inception V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.9 Aprendizado por Transferência . . . . . . . . . . . . . . . . . . . 282.10 Desempenho de Classificadores . . . . . . . . . . . . . . . . . . . 302.11 Famílias e Gêneros de Cobras . . . . . . . . . . . . . . . . . . . . 312.11.1 Gênero Crotalus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.11.2 Família Elapidae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.11.3 Gênero Bothrops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.1 Aquisição das imagens . . . . . . . . . . . . . . . . . . . . . . . . . 343.2 Criação das caixas delimitadoras . . . . . . . . . . . . . . . . . . 353.3 Download e Configuração do modelo de rede Neural . . . . . . 373.4 Treinamento da rede . . . . . . . . . . . . . . . . . . . . . . . . . . 373.5 Teste e coleta dos resultados . . . . . . . . . . . . . . . . . . . . . 38

4 ANÁLISE DOS RESULTADOS . . . . . . . . . . . . . . . . . . 394.1 Resultado Gênero Crotalus . . . . . . . . . . . . . . . . . . . . . . 394.2 Resultado Família Elapidae . . . . . . . . . . . . . . . . . . . . . 404.3 Resultado Gênero Bothrops . . . . . . . . . . . . . . . . . . . . . 41

4.4 Resultado Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

13

1 INTRODUÇÃO

Animais peçonhentos produzem peçonha (veneno) e podem injetá-la em outrosanimais, sejam eles presas ou predadores. Para isso, eles se utilizam principalmente dedentes e ferrões. Cobras, escorpiões, aranhas, abelhas, formigas e vespas são exemplosmais comuns de animais peçonhentos conhecidos [1].

Acidentes envolvendo esses animais foram incluídos pela OMS (Organização Mun-dial da Saúde) em uma lista de doenças tropicais negligenciadas onde a maioria das vítimassão pessoas pobres e de áreas rurais. Devido ao enorme número de casos desse tipo, atu-almente eles devem ser notificados após sua confirmação ao Governo Federal, para que sepossa planejar estratégias e também ações para resolver esse tipo de problema no país [1].

No Brasil, as cobras que mais atacam segundo dados do Instituto Butantan [2] sãoas do gênero Bothrops (jararacas), com 87% do total de acidentes, seguidas das Crotalus(cascavéis), com 9%, as Lachesis (surucucus) com 3% e também as Micrurus (coraisverdadeiras), com 1% de acidentes.

Dentre as recomendações para as pessoas que sofreram uma picada, uma delas élevar o animal para identificação ou informar ao profissional de sáude as características doanimal, como cor, tamanho, espécie, etc, pois o único tratamento eficaz é o soro antiofídico.Cada cobra tem seu próprio veneno, ou seja, são necessários soros distintos para cada umadelas. Isso nem sempre é possível ou viável dependendo da situação [1].

Picadas de cobra causam cerca de 200 mortes por dia no mundo. Elas matam entre81 mil e 138 mil pessoas por ano e outras 400 mil pessoas ficam com alguma deficiência. Omaior número desses acidentes ocorre na Ásia e África em regiões distantes de hospitais,o que faz com que as vítimas não tenham um tratamento adequado [3].

O presente trabalho teve como fim revisar a estrutura de redes R-CNN e técnicaspara detecção e classificação de objetos, a fim de reconhecer e identificar algumas dascobras peçonhentas mais comuns no Brasil rapidamente por meio de imagens.

Nesse trabalho, o leitor encontrará a teoria por trás desse processo de detecção eidentificação, a descrição e configuração das ferramentas e bibliotecas utilizadas e tambémcaracterísticas das espécies de cobra analisadas. Além disso, é feita a análise dos resultadosobtidos, cálculo de métricas de avaliação e estudo da viabilidade do resultado obtido emum contexto geral.

Esse trabalho está organizado da seguinte maneira: o Capítulo 2 apresenta a fun-damentação teórica necessária para o desenvolvimento e entendimento do trabalho, comconceitos de processamento de imagem, redes neurais convolucionais, R-CNNs, identifi-

14

cação das espécies de cobra propostas e também a descrição dos principais algoritmosutilizados.

No Capítulo 3, estão descritos os materiais usados e as etapas seguidas para a rea-lização desse trabalho. É explicado como as imagens de cobras foram obtidas e separadas,a configuração da rede neural utilizada foi realizada e os resultados foram obtidos.

O Capítulo 4 discutirá os resultados da classificação das imagens pela rede configu-rada, bem como o cálculo de métricas de avaliação e taxa de acerto do modelo. Tambémserá feita a análise de algumas imagens de teste classificadas pela rede. As consideraçõesfinais do trabalho serão feitas no Capítulo 5.

15

2 FUNDAMENTAÇÃO TEÓRICA

Nesse capítulo estão descritos os conceitos para a compreensão do trabalho serpossível. Nas seções seguintes, ideias relacionadas a processamento digital de imagens,visão computacional, seleção de regiões, redes neurais convolucionais e R-CNNs serãoapresentadas. Além disso, é explicado o funcionamento de diversos algoritmos e tambémas características para diferenciação das cobras utilizadas nesse trabalho.

2.1 Imagem Digital

Um esquema de cor é um sistema utilizado para representação de cores com valo-res númericos e discretos. O modelo de cor RGB é dito aditivo, pois as cores primárias(vermelho, verde e azul) são combinadas para produzir outras cores, como amarelo, roxoe laranja. Ele representa as cores em três canais de 8 bits, ou seja, cada pixel contém trêsvalores entre 0 e 255 que representam a intensidade de vermelho, verde e azul, respecti-vamente [4].

Uma imagem digital pode ser representada como uma matriz finita de pixels deum determinado esquema de cor. Um pixel é o menor elemento possível de ser exibidoem um dispositivo e tem um valor e local específicos. Em geral, possui forma quadradaou retangular e tem atribúido a ele um valor que representa uma cor[4].

Figura 1 – Esquema de cor RGBFonte: [4]

A Figura 1 representa o esquema de cor RGB, com as cores primárias (vermelho,verde e azul) e também as secundárias (magenta, amarelo e ciano). O branco é represen-tado pela combinação de todas as cores primárias (255 Vermelho, 255 Verde e 255 Azul).Nesse esquema, o preto é formado pela ausência de todas as cores (0 Vermelho, 0 Verdee 0 Azul).

16

Processamento Digital de Imagens é um campo de estudo que refere-se ao pro-cessamento de imagens digitais por um computador digital. Ele envolve processos cujasentradas e saídas são imagens, além da extração de atributos e a classificação individualde objetos [4].

2.2 Segmentação de imagens

A segmentação de imagens é um processo de separação de imagens em regiões deinteresse ou objetos que a compõe. Dependendo do problema a ser resolvido, o nível dedetalhe dessa subdivisão muda. É um passo importante para se avaliar o conteúdo daimagem e tornar possível sua detecção e classificação. Grande parte dos algoritmos desegmentação são baseados em descontinuidade e similaridade [4].

Figura 2 – Imagem SegmentadaFonte: [5]

A Figura 2 contém duas imagens RGB em tons de cinza. A primeira imagem, naesquerda, é a imagem original, sem segmentação. Já a segunda imagem, na direita, mostrao resultado da aplicação de um algoritmo de segmentação na imagem original, dividindoela em regiões.

Mudanças bruscas de intensidade e a similaridade com base em um conjunto decritérios predefinidos podem ser usadas para se dividir uma imagem. A segmentação deveparar quando os objetos ou as regiões de interesse de uma aplicação forem detectados [4].

2.3 Seleção de regiões

Para o funcionamento de um algoritmo de detecção de objetos em imagens, umaimagem deve ser enviada como entrada para gerar a probabilidade da presença de deter-minadas classes de objetos. Além disso, é necessário a criação de caixas delimitadoras, queespecificam a posição em que o objeto provavelmente se encontra na imagem. Essas caixas

17

delimitadoras devem ser sub-regiões da imagem original onde foi aplicado o algoritmo dedetecção de objetos e a probabilidade associada a eles foi alta.

Um dos algoritmos mais simples e diretos para se gerar essas sub-regiões é chamadode Janela Deslizante, porém possui vários fatores que o inviabilizam. Para contornar essaslimitações, há uma classe de algoritmos chamada de Proposta de Região, que são maisutilizados atualmente para esse fim. A seguir será mostrado o funcionamento do algoritmoJanela Deslizante e também o algoritmo Pesquisa Seletiva, que faz parte da classe dealgoritmos Proposta de Região [6, 7].

2.3.1 Janela deslizante

No algoritmo de Janela Deslizante, uma caixa de tamanho fixo é “deslizada” sobreuma imagem para selecionar uma região dela e passar como parâmetro para o algoritmode detecção de objetos. Além de ser necessário usar diferentes escalas, todos os locaispossíveis na imagem são pesquisados, o que gera uma busca exaustiva e lenta e um númeroexcessivo de regiões [8, 7].

Outro problema é que geralmente os algoritmos de detecção de objetos recebementradas de tamanhos específicos ou faixas de valores, entao ter regiões com inúmerasescalas não faz sentido. Com isso, nota-se que o algoritmo de janela deslizante possui umaboa abordagem para imagens como proporção fixa, como reconhecer rostos de pessoas emcâmeras de segurança que possuem resolução e ângulo fixos [6, 7].

2.3.2 Pesquisa Seletiva

A pesquisa seletiva é um algoritmo de proposta de região baseado no agrupamentohierárquico da computação de regiões semelhantes. Para uma região ser considerada se-melhante com outra região, são utilizados critérios como a similaridade de cores, texturas,tamanhos e formas. Ele foi projetado para ser rápido e ter um recall alto [6, 7].

Esse algoritmo funciona da seguinte maneira: É feita uma super segmentação naimagem tendo como base a intensidade de pixels nela e essa segmentação é levada comoentrada inicial do algoritmo. A Figura 3 mostra o resultado de uma super segmentaçãosemelhante à gerada pelo algoritmo de pesquisa seletiva, com centenas de regiões diferentesgeradas.

18

Figura 3 – Imagem Super SegmentadaFonte: [7]

Depois disso são executados os passos a seguir.

1. Adicionar caixas delimitadoras que correspondem às partes segmentadas na lista depropostas de região

2. Agrupar segmentos adjacentes pela similaridade

3. Avançar para o passo 1

Segmentos maiores são gerados em cada iteração e são adicionados à lista de pro-postas de região. Com isso, são criadas propostas de região de segmentos menores parasegmentos maiores em um algoritmo tem uma abordagem bottom-up [6, 7].

2.4 Redes Neurais Convolucionais

Redes neurais convolucionais são parecidas com as redes neurais clássicas. Elaspossuem pesos e bias que podem ser treinados. Algumas entradas são recebidas por cadaum dos neurônios, que executa um produto escalar e, de forma opcional, uma não lineari-dade. Os pixels da imagem de entrada geram pontuações de classe na saída da rede. Alémdisso, há uma função de perda (SVM/Softmax) na última camada (totalmente conectada)e todos os conceitos de redes neurais clássicas ainda se aplicam [9].

Ao contrário das redes neurais clássicas, a entrada de uma rede neural convolu-cional é explicitamente uma imagem, o que reduz a quantidade de parâmetros e tornaa implementação da função de encaminhamento mais eficiente. Uma CNN geralmente éformada por duas partes, descritas a seguir.

1. Base Convolucional - Composta por uma pilha de camadas convolucionais e depooling [10]. O principal objetivo da base convolucional é gerar os recursos maisrelevantes a partir da imagem com o uso de filtros e redução espacial.

19

2. Classificador - Composto por camadas totalmente conectadas. Seu principal objetivoé classificar a imagem com base nos recursos detectados. Uma camada totalmenteconectada é uma camada cujos neurônios têm conexões completas com todas asativações da camada anterior.

Esse modelos de Deep Learning podem aprender de forma automática represen-tações hierárquicas de recursos. Dessa forma, recursos calculados pela primeira camadasão gerais e podem ser reutilizados em diferentes domínios de problemas, enquanto osrecursos calculados pela última camada são específicos e dependem do conjunto de dadose da tarefa escolhidos.

Segundo [11], a base da CNN, em especial as camadas mais próximas das entradasse referem a características gerais e a parte classificadora, assim como as camadas da baseconvolucional mais próximas, referem-se a características especializadas.

Muitos modelos pré-treinados usados em aprendizado de transferência são basea-dos em grandes redes neurais convolucionais (CNNs) [12]. Elas mostraram-se excelentesem várias tarefas de visão computacional [13]. Sua facilidade e alto desempenho são osprincipais fatores que levaram à popularização das CNNs.

2.4.1 Camada de Convolução

Em uma rede neural convolucional, a camada de convolução é o principal compo-nente e realiza a maior parte do trabalho computacional. Ela é composta de vários filtros,onde seus valores podem ser treinados. Eles são espacialmente pequenos, tem os mesmosvalores de largura e altura e se estendem por toda a profundidade do volume de entrada.

Figura 4 – Filtro deslizado pela entradaFonte: [9]

Na Figura 4 é mostrado o mapeamento (parte azul à direita) de um conjunto defiltros deslizado pela largura e altura de uma imagem de entrada de resolução 32x32 comtrês canais (parte rosa à esquerda). São computados os produtos ponto a ponto entre asentradas do filtro e a entrada em qualquer posição.

20

Dessa forma é gerado um mapa de ativação bidimensional com as respostas dessefiltro em todas as posições espaciais. Dessa forma, a rede pode aprender filtros ativadospela presença de algum recurso visual. Um conjunto de filtros será produzido em cadacamada de convolução e cada um desses filtros irá produzir um mapa de ativação bidimen-sional diferente. Esses mapas de ativação serão empilhados em profundidade e a partirdisso será produzida a saída da camada de convolução [9].

2.4.2 Camada de Pooling

Quando há imagens muito grandes, camadas convolucionais geralmente são segui-das por uma camada de pooling para reduzir a dimensão espacial de ativação (parâmetrostreináveis). Isso ajuda a reduzir a memória e processamento necessário nas próximas ca-madas da rede neural e extrair as características dominantes da informação.

Existem várias estratégias para a realização do pooling. As mais comuns são o maxpooling e o average pooling. Ambos os casos reduzem um bloco da entrada para um blocode saída de dimensão menor enquanto mantém a proporção altura/largura inalterada. Aredução é finalizada selecionando o maior valor (max pooling) ou obtendo uma média dosvalores (average pooling). No fim, um bloco BxB da entrada é mapeado para um únicovalor de saída [14, 9].

Figura 5 – Exemplo de PoolingFonte: [9]

A Figura 5 mostra uma entrada 4x4 sendo mapeada para uma saída 2x2 através doprocesso de max pooling. Essa entrada é dividida em 4 regiões com 4 valores cada. Somenteo maior valor de cada região, que representa a característica dominante, é enviado para asaída.

2.4.3 Camada de Saída

Após várias camadas de convolução e pooling, a matriz de características é conver-tida em um vetor de características. Com camadas totalmente conectadas, essas caracte-

21

rísticas são combinadas na criação de um modelo para classificar esses valores. Na camadade saída há uma função de perda para cálculo do erro na previsão. Depois disso, os pesose bias são atualizados por meio de um algoritmo de back-propagation para redução deerros e perdas [14].

2.5 Region-based Convolutional Neural Network

Para resolver o problema de seleção de um grande número de regiões, foi propostopor Ross Girshick o uso de um algoritmo de Pesquisa Seletiva para se extrair um númerofinito de regiões de uma imagem. Dessa forma não seria necessário classificar um númeroincrivelmente alto de regiões [15].

Figura 6 – R-CNN com Pesquisa seletivaFonte: [15]

A Figura 6 mostra esse processo de classificação com o uso de pesquisa seletiva.A partir da imagem de entrada são extraídas propostas de região com o algoritmo depesquisa seletiva. Cada uma dessas regiões são redimensionadas em um quadrado e essequadrado é dado como entrada para uma rede neural convolucional, que produz um vetorde características de 4096 posições como saída. A rede neural convolucional atua comoum extrator de características e a camada densa de saída contém os recursos extraídos daimagem.

Os recursos são passados como entrada de uma SVM (um tipo de classificador),que irá classificar a presença do objeto na proposta de região candidata. Além de prevera presença do objeto nas propostas de região, também são previstos quatro valores, quesão valores de deslocamento usados para aumentar a precisão das caixas delimitadoras.A figura 7 denota esse processo em cada região proposta.

22

Figura 7 – R-CNN em cada regiãoFonte: [16]

Dada uma proposta de região, o algoritmo poderia ter previsto a presença de umapessoa, por exemplo, mas o rosto dessa pessoa dentro dessa proposta de região poderiater sido cortado pela metade. Portanto, os valores de deslocamento ajudam a ajustar acaixa delimitadora da proposta de região. Mesmo com essas modificações em relação auma CNN, a R-CNN tem vários problemas, porém os principais são:

∙ Alto tempo de treinamento da rede, por ter que treinar cerca de 2000 propostas deregião a cada imagem

∙ Não pode ser utilizada em tempo real, pois demora cerca de 47 segundos paraprocessar cada imagem de teste

∙ O algoritmo de pesquisa seletiva é fixo e não contém nenhum tipo de aprendizado.Isso leva a geração de propostas ruins para regiões candidatas.

2.6 Fast Region-based Convolutional Neural Network

O mesmo criador da R-CNN propôs a resolução de algumas desvantagens dela edesenvolveu um algoritmo mais rápido para detecção de objetos denominado Fast R-CNN[16]. Ele tem uma abordagem muito parecida como o algoritmo R-CNN. A diferença éque ao invés de enviar todas as propostas de região como entrada para a CNN, a imageminteira é enviada para a CNN.

A CNN, por sua vez, gera um mapa de características convolucionais. Com essemapa de características, é identificada a região das propostas e ela é então deformada em

23

quadrados e, utilizando uma camada de pooling de regiões de interesse, ela é remodeladaem um tamanho fixo para ser alimentada em uma camada totalmente conectada. O vetorde características é então enviado como entrada para uma camada softmax para a previsãoda classe da região proposta e os valores de deslocamento da caixa delimitadora.

A Fast R-CNN com essas modificações é exibida na Figura 8. Ela se torna maisrápida que a R-CNN. Não é preciso enviar como entrada as 2000 propostas de região paraa rede neural convolucional a cada imagem. Assim, a convolução é feita somente uma vezpor imagem, e um mapa de recursos é gerado a partir dela.

Figura 8 – Modelo Fast R-CNNFonte: [16]

A Figura 9 mostra os tempos de treinamentos e teste nas duas redes. Enquantoa rede R-CNN demora 84 horas para completar o treinamento, na Fast R-CNN o treina-mento é feito em menos de 9 horas. O tempo de teste da R-CNN com ou sem as propostasde região é quase o mesmo, pouco menos de 50 segundos. Já na Fast R-CNN, o tempo deteste é de 2,3 segundos com as propostas de região e de 0,32 segundos sem elas.

24

Figura 9 – R-CNN vs Fast R-CNNFonte: [9]

É possível perceber que a Fast R-CNN é muito mais rápida nas etapas de treina-mento e teste em comparação com a R-CNN. Porém a inclusão de propostas por regiãona Fast R-CNN diminui extremamente seu desempenho na etapa de teste em comparaçãoà não inclusão delas. Com isso é possível deduzir que o maior gargalo na Fast R-CNN égerado pelas propostas de região.

2.7 Faster Region-based Convolutional Neural Network

Os dois algoritmos anteriores (Fast R-CNN e R-CNN) se utilizam de pesquisaseletiva para a geração de propostas de região. A pesquisa seletiva é lenta e demoradae afeta o desempenho da rede. Shaoqing Ren desenvolveu um algoritmo de detecção deobjetos que acaba com o algoritmo de pesquisa seletiva e faz com que a própria redeaprenda as propostas de região [17].

Assim como na Fast R-CNN, a imagem inteira é enviada como entrada para umarede convolucional que gera um mapa de características convolucionais. A diferença é que,em vez de usar um algoritmo de pesquisa seletiva para a identificação das propostas deregião, uma rede separada é usada para prever as propostas da região. O funcionamentodessa rede chamada de RPN (Region Proposal Network) é mostrado na Figura 10 efunciona da seguinte forma:

∙ Uma janela deslizante 3x3 se move pelo mapa de características na última camadade uma CNN inicial para gerar uma dimensão mais baixa

∙ São geradas várias regiões possíveis para cada local dessa janela deslizante baseadaem k caixas delimitadoras de proporção fixa

25

∙ Cada uma dessas propostas de região consiste em uma probabilidade de objeto dessaregião e coordenadas que representam suas caixas delimitadoras

Assim, cada lugar do mapa de características é examinado e são consideradas kcaixas diferentes centralizadas nele, uma caixa alta, outra larga, etc. Para cada caixa écalculada a probabilidade de conter um objeto e suas coordenadas. .

Figura 10 – RPNFonte: [17]

Essas 2k pontuações representam a probabilidade em softmax de cada uma dask caixas delimitadoras conterem um objeto. A RPN produz as coordenadas da caixadelimitadora mas não tenta classificar nenhum objeto, seu propósito é propor regiõesde objetos. Caso uma caixa delimitadora tiver uma pontuação acima de dado limite, ascoordenadas dessa caixa são passadas como uma proposta de região.

Com as propostas de região, uma Fast R-CNN é alimentada com elas. É adicionadauma camada de pooling, algumas camadas totalmente conectadas e no fim, uma camadasoftmax para classificação e um regressor para previsão dos valores de deslocamento dascaixas delimitadoras. Em resumo, a Faster R-CNN é a combinação de uma RPN com umaFast R-CNN. A Figura 11 demonstra a arquitetura da Faster R-CNN.

26

Figura 11 – Arquitetura da Faster R-CNNFonte: [17]

A Faster R-CNN alcançou velocidade e precisão muito melhores que suas ante-cessoras. Embora os mais novos modelos tenham tentado aumentar as velocidades dedetecção, poucos modelos conseguiram superar a Faster R-CNN por uma margem signifi-cativa. A Faster R-CNN atualmente pode não ser o método mais simples ou rápido paradetecção de objetos, mas ainda é um dos com melhor desempenho [18].

A Figura 12 compara o tempo de teste entre as redes R-CNN, Fast R-CNN e FasterR-CNN em segundos. Enquanto o tempo de teste da R-CNN é de quase 50 segundos, naFast R-CNN esse tempo é de 2,3 segundos e na Faster R-CNN o tempo de teste é bempróximo de zero, o que a torna ideal para classificação em tempo real.

Figura 12 – Tempo de teste entre as redes R-CNN, Fast R-CNN e Faster R-CNNFonte: [9]

27

2.8 Rede Inception

A rede Inception foi um grande avanço em relação ao desenvolvimento de classi-ficadores de CNNs. Antes de sua existência, redes CNNs somente empilhavam inúmerascamadas de convolução, em busca de obter um desempenho melhor. Por outro lado, redesInception eram bem complexas. Várias versões dessa rede foram projetadas no decorrer desua evolução, visando sempre de muitas formas para se aumentar a velocidade e tambéma precisão [19, 20].

Cada uma das versões foi melhorada em relação à anterior. Dependendo dos tiposde dados a serem analizados, uma determinada versão pode funcionar melhor e ter velo-cidade e precisão aprimoradas para os classificadores, então é necessário fazer um estudosobre as atualizações de cada uma das versões [19]. Nas próximas páginas será mostradoo funcionamento da Inception V1 e Inception V2 apresentadas nos artigos [20] e [21],respectivamente.

2.8.1 Inception V1

A região onde um objeto se encontra pode ser extremamente variada em tamanho.Em consequência dessa variação, o tamanho do filtro para convolução é um problema. Parainformações distribuídas de forma global, a utilização de um filtro maior é recomendada.Já para informações mais locais, um filtro menor funciona de maneira melhor. Redes commuitas camadas se adaptam muito aos dados e a atualização total da rede é difícil ecomputacionalmente cara [19, 20].

Uma solução para isso é a utilização de diversos tamanhos de filtros no mesmonível, o que tornaria a rede mais ampla em vez de aumentar o número de camadas. Essaé a ideia da primeira versão da Inception. A figura 13 mostra esse estrutura. Há umaconvolução na entrada com 3 tamanhos de filtros diferentes (1x1, 3x3, 5x5) além do maxpooling. As saídas então são concatenadas e seguem para o próximo módulo de Inception.

Figura 13 – Modelo Inception V1Fonte: [20]

28

2.8.2 Inception V2

As redes Inception V2 e Inception V3 foram apresentadas no mesmo artigo [21]. Osautores propuseram uma série de atualizações que aumentaram a precisão e reduziram acomplexidade computacional. Foi explorado uma forma de reduzir o gargalo representaci-onal (perda de informações), que é ocasionado pelas convoluções que alteram radicalmenteas dimensões de entrada se utilizando de métodos de fatoração inteligente. Essa arquite-tura é exemplificada na Figura 14.

Figura 14 – Modelo Inception V2Fonte: [21]

Assim, uma convolução 5x5 é fatorada em duas convoluções 3x3. Já que umaconvolução 5x5 é considerada 2.78 vezes mais cara do que uma convolução 3x3, a utilizaçãodessas duas convoluções 3x3 leva a um aumento de desempenho.

2.9 Aprendizado por Transferência

O aprendizado por transferência é amplamente utilizado em problemas de visãocomputacional como forma de economia de tempo [22]. Com esse método, não é neces-sário iniciar o aprendizado do zero, você começa com padrões aprendidos para resolverproblemas diferentes. Assim, resultados anteriores são aproveitados. Em termos de visãocomputacional, o aprendizado por transferência é utilizado por meio de modelos pré-treinados.

Um modelo pré-treinado é um modelo que foi treinado em um grande conjunto dedados de referência para resolver um problema semelhante ao que se quer resolver. Dessaforma, devido ao custo computacional alto para o treinamento desses modelos, é umaprática comum importar e utilizar modelos de redes neurais pré-treinados, como SSD,Inception e MobileNet. Em [23] há uma análise abrangente sobre o assunto.

29

Para o reaproveitamento de um modelo pré-treinado para outro problema, sãorealizados os seguintes passos: remover o classificador original, adicionar um novo classi-ficador para se adaptar ao seu problema e também ajustar o modelo com uma das trêsestratégias descritas a seguir e representadas pela Figura 15 [24, 9].

∙ Treinar o modelo todo. Nesse caso, se utiliza a arquitetura modelo pré-treinado e otreina com seu conjunto de dados. O modelo será treinado do zero, o que necessitaráde um grande conjunto de dados e poder computacional.

∙ Treinar somente algumas camadas. Conforme descrito anteriormente, as camadasinferiores se referem aos recursos gerais e as camadas superiores se referem aos re-cursos específicos. Então é possível escolher o quanto se quer ajustar os pesos darede. Se há um pequeno conjunto de dados e um grande número de parâmetros, dei-xar um número maior de camadas congeladas pode ser uma alternativa para evitarajustes excessivos. Por outro lado, um conjunto de dados grande com um númeropequeno de parâmetros pode ter o modelo treinado melhorado pelo acréscimo demais camadas, porque o ajuste excessivo não se torna um problema.

∙ Congelar a base convolucional. Essa é uma situação extrema de troca de treina-mento. Ela tem como ideia principal manter a base convolucional em sua formaoriginal e usar suas saídas para alimentar o classificador. O modelo pré-treinado éusado como um mecanismo de extração de recurso fixo que pode ser útil se houverpouco poder computacional, o conjunto de dados for pequeno ou o modelo pré-treinado resolver um problema muito próximo ao que se quer resolver.

Figura 15 – Estratégias de retreinamentoFonte: [24]

30

É necessário ter cuidado com a taxa de aprendizado na parte convolucional ao seutilizar as duas primeiras estratégias. Quando se utiliza um modelo pré-treinado com baseem uma CNN, é recomendado utilizar uma taxa de aprendizado pequena, para diminuiro risco de perda de conhecimento anterior [24, 9].

2.10 Desempenho de Classificadores

Um modelo de classificação realiza um mapeamento de instâncias para classes pre-vistas. Alguns modelos possuem saídas da probabilidade do resultado ser de cada classe.Limites podem ser aplicados para prever a associação à classe. Se um teste possuir umresultado já esperado e conhecido, pode-se classificar o resultado de um classificador entrequatro resultados possíveis, descritos abaixo [25].

1. Verdadeiro Positivo(vp): Se a instância do problema é positiva e ela foi classificadacomo positiva

2. Verdadeiro Negativo(vn): Se a instância do problema é negativa e ela foi classificadacomo negativa

3. Falso Positivo(fp): Se a instância do problema é negativa e ela foi classificada comopositiva

4. Falso Negativo(fn): Se a instância do problema é positiva e ela foi classificada comonegativa

Dado um classificador e um conjunto de instâncias, é possível criar uma matriz deconfusão 2x2, como a da Figura 16, representando as disposições do conjunto de instâncias.As decisões corretas são representadas pelos números ao longo da diagonal principal e osnúmeros na diagonal secúndária representam os erros entre as várias classes [25].

Figura 16 – Matriz de confusãoFonte: [25]

31

Tal matriz forma a base de várias métricas. Abaixo são mostradas equações dealgumas métricas comuns que podem ser calculadas a partir dela.

∙ Precisão: de todas as classificações positivas do modelo, quantas estão corretas.

𝑝𝑟𝑒𝑐𝑖𝑠𝑎𝑜 = 𝑣𝑝

𝑣𝑝 + 𝑓𝑝

∙ Revocação: de todas as classificações positivas como valor esperado, quantas estãocorretas;

𝑟𝑒𝑣𝑜𝑐𝑎çã𝑜 = 𝑣𝑝

𝑣𝑝 + 𝑓𝑛

∙ Acurácia: de todas as classificações, quantas o modelo classificou corretamente;

𝑎𝑐𝑢𝑟á𝑐𝑖𝑎 = 𝑣𝑝 + 𝑣𝑛

𝑣𝑝 + 𝑣𝑛 + 𝑓𝑝 + 𝑓𝑛

2.11 Famílias e Gêneros de Cobras

Nas próximas sub-seções, serão apresentadas algumas características e imagens decobras das famílias e gêneros utilizados nesse trabalho. Esses dados foram obtidos a partirda Animal Diversity Web, um banco de dados de história natural animal da Universidadede Michigan e também da Encyclopaedia Britannica, uma das mais antigas enciclopédiasdo mundo.

2.11.1 Gênero Crotalus

As cobras chamadas de cascavéis, como a da Figura 17, são do gênero Crotaluse fazem parte de um grupo contendo 33 espécies de víboras venenosas da subfamíliaCrotalinae que faz parte da família Viperidae e sua principal característica é a presençade um tipo de chocalho com segmentos que é localizado na ponta da cauda e produz umsom parecido com um zumbido quando vibrado.

Figura 17 – Cobra do Gênero Crotalus

Fonte: [26]

32

Essas cobras tem como habitat a América do Norte, Central e do Sul, do Canadáaté a Argentina, e quando adultas podem chegar a mais de 2 metros de comprimento.Além do chocalho, outra característica de uma cobra cascavel são os diamantes escuros ououtras formas geométricas como hexágonos ou losangos ao lado de um fundo mais claronas escamas. Algumas espécies de cascavel possuem faixas transversais.

Essas cobras não atacam pessoas sem serem provocadas, porém deve-se lembrarque são venenosas e devem ser manuseadas com cautela. Atualmente, as picadas desse tipode cobra são pouco letais, devido ao avanço nos métodos de tratamento médico, porémno caso de uma picada, é sempre recomendado procurar por uma avaliação médica. Aoser picada, a vítima sentirá uma grande dor e, caso a cobra que o tenha picado tiver maisdo que 1 metro de comprimento, a chance de letalidade aumenta. É recomendado trazera cobra, viva ou morta, para identificação no hospital e administração do soro antiofídico[27].

2.11.2 Família Elapidae

Cobras do gênero Micrurus, popularmente chamadas de corais, como a da Figura18, são um grupo de espécies de cobras da família Elapidae. Elas são consideradas peque-nas em relação à outras cobras, podendo ter um comprimento variando entre quarentacentímetros a pouco mais de um metro e meio. Assim como as cascavéis, as cobras coralpodem ser encontradas desde os Estados Unidos, na América do Norte, até o Brasil eArgentina, na América do Sul.

Figura 18 – Cobra Coral VerdadeiraFonte: [28]

Suas escamas apresentam geralmente três cores, porém também existem espéciesbicolores. As cores predominantes são tons de vermelho, amarelo, preto e branco, comanéis de tamanhos variados. Além de não serem tão compridas, as corais tem um corpode espessura fina, com escamas lisas e caudas curtas.

33

Cerca de 50 espécies de cobra imitam os padrões de anéis coloridos das corais ver-dadeiras. Elas são chamadas de falsas corais. Algumas são indistinguíveis das verdadeiras,só sendo reconhecíveis por biólogos experientes [29].

2.11.3 Gênero Bothrops

Jararaca é um nome popular das cobras do gênero Bothrops da família Viperidae.Fazem parte de seu habitat as áreas geográficas do Brasil, Argentina e Paraguai e são en-contradas principalmente em regiões de Mata Atlântica. A Figura 19 mostra um exemplardessa espécie.

Figura 19 – Cobra JararacaFonte: [30]

As jararacas tem cabeças achatadas, com estrias, um tom bronzeado a marromescuro médio, com padrão preto e também um faixa marrom escura e um traçado pálidoque vai dos olhos até a mandíbula. A coloração de pele na maioria dessas cobras tem ascores verde-oliva, marrom, cinza ou bronzeado.

O corpo delas tem coloração verde pálido a amarelo pálido, e possui manchas cinzassem regularidade. Nas laterais de seu corpo também existem marcas juntas ou opostas decor marrom escuro na forma de trapézios e quase triângulos sem um padrão e com umacoloração pálida ao redor.

Nos olhos, tem a íris da cor dourada ou esverdeada, com linhas entrelaçadas eas pálpebras são de tom escuro e com um canto pontudo. Seu corpo possui cerca de25 linhas de escamas e tem comprimento médio variando entre 60 centímetros até 160centímetros. A quantidade composição do veneno da jararaca varia conforme o sexo. Asfêmeas produzem 5 vezes mais veneno que os machos e também um veneno mais potentee letal [31].

34

3 METODOLOGIA

Nesse capítulo são descritas as etapas utilizadas para se atingir o resultado dessetrabalho. É explicado o processo de obtenção das imagens para treinamento e teste, aconfiguração do classificador e também como será feito o teste e coleta dos resultados. Ofluxograma dessas etapas é mostrado na Figura 20.

Figura 20 – Metodologia

3.1 Aquisição das imagens

As imagens de cada tipo de cobra (cascavel, coral e jararaca) foram obtidas devários sites diferentes, dentre eles o mecanismo de busca do Google Imagens e o ReptileDatabase, disponível em <http://reptile-database.reptarium.cz>, um banco de dadostaxonômico com informações básicas de todo tipo de répteis e mais de 2500 imagens.

35

Inicialmente, o objetivo era conseguir obter cerca de 1000 imagens de cobras de cadagênero/família, porém encontrou-se dificuldade em alcançar este número pois há poucosrepositórios de imagens de cobras na internet e a maioria deles conta com poucas fotos.

Foi estudado o uso do repositório OpenImages da Google, um dos maiores domundo em relação à quantidade de imagens disponíveis das mais diversas classes. Nelehá muitas imagens de cobras, porém sem nenhuma identificação quanto a seu tipo. Comisso, sua utilização foi descartada.

Como as imagens estão em diferentes tamanhos, desde imagens com resolução me-nor que 720p e 150k de tamanho a imagens com resolução maior que 4K e 5MB, parauma melhor padronização das entradas da rede neural, diminuição do espaço de arma-zenamento em disco e também diminuição do tempo de treinamento, todas as imagensforam redimensionadas para a resolução padrão de 800 pixels de largura por 600 pixelsde altura.

No total, foram obtidas mais de 500 imagens dos três tipos de cobra, sendo:

∙ Cascavel (Gênero Crotalus) - 212 Imagens

∙ Coral (Família Elapidae) - 162 Imagens

∙ Jararaca (Gênero Bothrops) - 160 Imagens

Após as imagens serem redimensionadas, elas foram separadas em duas pastas,uma com imagens para o treinamento da rede e outra com imagens para o teste da rede.O conjunto de treinamento contém 80% das imagens e o conjunto de teste tem as outras20%.

3.2 Criação das caixas delimitadoras

Para cada uma das imagens nos diretórios de treinamento e teste, foi necessáriocriar caixas delimitadoras separando a região onde a cobra se encontra do resto da imagem.Essas caixas delimitadoras são passadas como entrada para a rede neural, assim como asimagens. Esse é um processo repetitivo e demorado, já que é feito manualmente para maisde 500 imagens. A figura 21 representa a imagem de uma cobra cascavel com a regiãoonde ela aparece na imagem selecionada e delimitada por um retângulo.

36

Figura 21 – Imagem com caixa delimitadora

Com isso, é inserida a legenda (classe) da imagem, que nesse caso foi definidacomo “cascavel” porque a imagem é de uma cobra cascavel. No caso de uma cobra coral,a legenda definida será “coral” e no caso de uma cobra do tipo jararaca, a legenda será“jararaca”. Após isso, os valores xmin, ymin, xmax e ymax que delimitam esse retânguloserão salvos juntos com a legenda em um arquivo xml. O arquivo xml gerado a partir daFigura 21 é exibido na Figura 22.

Figura 22 – Arquivo XML gerado a partir da imagem e legenda

37

Esse processo deve ser feito para todas as imagens de todas as classes, de forma aser definida a localização da cobra em cada imagem. Múltiplas cobras de diferentes classespodem estar na mesma imagem. Nesse caso é só criar caixas delimitadoras diferentes edefinir a legenda em relação ao tipo da cobra. Dessa forma, para cada imagem, há umarquivo xml na mesma pasta com o mesmo nome da imagem.

3.3 Download e Configuração do modelo de rede Neural

Para a relização desse trabalho, foi utilizada uma rede do tipo Faster R-CNN comum módulo de Inception V2 pré-treinada com imagens do COCO dataset, um conjuntode dados de detecção, segmentação e legenda em larga escala de objetos contendo mais de300 mil imagens e mais de um milhão e meio de objetos. Os parâmetros de configuraçãosão dados a seguir:

∙ Tamanho do Batch: 1

∙ Taxa de aprendizado: 0.0002

∙ Conversor de Pontuação: Softmax

∙ Score Mínimo para detecções: 0.6

∙ Maximo de detecções por classe: 100

∙ Total máximo de detecções: 300

3.4 Treinamento da rede

Com o modelo de rede neural configurado, foi feito o treinamento da rede comas imagens de treinamento e os parâmetros configurados anteriormente. Para isso, foiutilizado um computador com as seguintes características:

∙ Sistema Operacional: Windows 10

∙ Processador: Intel Core i7 de 5a Geração

∙ Placa Gráfica: Nvidia Gtx 1050Ti 4GB

∙ Memória RAM: 16GB DDR4

∙ Framework: Tensorflow GPU 1.14

∙ Linguagem: Python 3.7

38

Esse computador ficou cerca de 40 horas ligado para treinamento da rede. Após esseperíodo, o treinamento foi interrompido e o modelo de rede salvo no último checkpointfoi exportado em um grafo de inferência, que será usado para o teste da rede. Ele é aestrutura de rede neural salva sem as partes somente utilizadas no treinamento.

3.5 Teste e coleta dos resultados

Após a etapa de treinamento, o grafo de inferência é usado para a classificação apartir das imagens do conjunto de teste. Cada imagem desse conjunto alimentada comoentrada produz a mesma imagem de saída com uma caixa delimitadora contendo a maiorprobabilidade de ocorrência de uma classe.

Dessa forma, todas as imagens de treinamento tem uma caixa delimitadora comuma legenda contendo a classe e probabilidade. Com esses dados em mãos, são calculadasas métricas de precisão e revocação para cada uma das classes.

Além disso, alguns dos resultados mais relevantes são brevemente discutidos. Essadiscussão leva em conta a performance do classificador em relação aos acertos e possíveiserros que possam ocorrer.

39

4 ANÁLISE DOS RESULTADOS

Nesse capítulo é feita a análise e discussão dos resultados obtidos pelo classificadorsobre as imagens do conjunto de teste. Devido ao grande número de imagens no conjuntode teste, foram escolhidas duas imagens dos resultados mais relevantes de cada classe decobra para serem analizados. Além disso, a partir dos resultados, métricas de avaliaçãosão calculadas para cada classe.

Os resultados obtidos nos testes mostram a presença de um número de verdadeirosnegativos maior que o resto dos valores. Isso faz com que métricas de avaliação quedependem dos verdadeiros negativos tenham valores muito altos ou baixos. Com isso, sãocalculados somente a precisão e revocação de cada classe, que não dependem do valor dosverdadeiros negativos.

4.1 Resultado Gênero Crotalus

A figura 23 apresenta uma cobra do gênero Crotalus (cascavel) com seu chocalhovibrando e centralizada em meio a areia e pequenas pedras. Ela foi identificada corre-tamente, porém sua caixa delimitadora está um pouco mais à esquerda do que deveria.Na figura 24 há outra cobra cascavel, e ela está se deslocando na areia. Nesse caso, oclassificador cometeu um erro, pois não detectou nenhuma cobra na imagem.

Figura 23 – Imagem Cascavel1.jpg

40

Figura 24 – Imagem Cascavel2.jpg

4.2 Resultado Família Elapidae

Na figura 25 é possível notar uma cobra da família Elapidae (coral) se movendo emum terreno com grama, terra e pequenas plantas. Ela foi identificada de modo correto,com a caixa delimitadora levemente mais para baixo do que o esperado. Em meio aareia, folhas e galhos caídos, a cobra da figura 26 se desloca. Essa imagem foi identificadaerroneamente como não pertencente a nenhum dos três gêneros/famílias de cobra.

Figura 25 – Imagem Coral1.jpg

41

Figura 26 – Imagem Coral2.jpg

4.3 Resultado Gênero Bothrops

A figura 27 apresenta uma cobra do gênero Bothrops (jararaca) capturada em umarede e identificada de forma correta. A caixa delimitadora criada pelo classificador contémtotalmente essa cobra com algumas sobras. Já na figura 28, é possível observar que o clas-sificador gerou um resultado errado. Nessa imagem, há uma cobra jararaca se deslocandoem meio à areia que foi identificada como sendo uma cascavel e com probabilidade desomente 86%. Isso leva a crer que houve uma confusão entre os dois tipos de cobra.

Figura 27 – Imagem Jararaca1.jpg

42

Figura 28 – Imagem Jararaca2.jpg

4.4 Resultado Geral

A tabela 1 mostra o número de acertos e erros da classe Cascavel, que abrange ogênero Crotalus e a tabela 2 apresenta as métricas de avaliação dessa classe . É possívelnotar pela precisão alta que a maioria das cobras que são dessa classe foram identificadascorretamente. A taxa de revocação de somente 75% aponta que houve um número altode cobras de outras famílias/gêneros identificadas de forma errada como sendo do gêneroCrotalus.

Verdadeiro Positivo Falso Positivo Falso Negativo Verdadeiro Negativo40 1 13 48

Tabela 1 – Acertos e Erros da classe Cascavel

Precisão Revocação97,5% 75,4

Tabela 2 – Métricas de avaliação da classe Cascavel

Em relação à classe Coral, que representa as cobras da família Elapidae, a tabela 3apresenta os acertos e erros em relação a essa classe e a tabela 4, as métricas de avaliação.Essa classe teve uma alta taxa de precisão, com somente uma imagem de cobra-coral nãosendo classificada corretamente. Além disso obteve uma taxa de revocação de 100%, ouseja, nenhuma cobra de outra família ou gênero foi identificada como sendo uma cobra-coral.

43

Verdadeiro Positivo Falso Positivo Falso Negativo Verdadeiro Negativo29 1 0 72

Tabela 3 – Acertos e Erros da classe Coral

Precisão Revocação96,6% 100

Tabela 4 – Métricas de avaliação da classe Coral

A classe Jararaca, que representa o gênero Bothrops foi a classe com mais pro-blemas. A tabela 5 representa os acertos e erros dessa classe e a tabela 6, as métricasde avaliação. Sua precisão muito baixa indica que quase metade das cobras dessa classeforam identificadas erroneamente como sendo de outra classe. Por outro lado, sua revo-cação de 100% denota que nenhuma imagem das outras duas classes foi apontada comopertencente à essa classe.

Verdadeiro Positivo Falso Positivo Falso Negativo Verdadeiro Negativo17 14 0 71

Tabela 5 – Acertos e Erros da classe Jararaca

Precisão Revocação54,8% 100

Tabela 6 – Métricas de avaliação da classe Jararaca

44

5 CONCLUSÃO

Considerando o conjunto de testes e a rede neural configurada com os parâmetrosdescritos no Capítulo 3, pode-se perceber pelas tabelas obtidas no capítulo anterior quea classe Coral que representa a família Elapidae obteve medidas com valores de precisãoe revocação maiores que os valores das outras duas classes. Isso se dá pelo fato de existiruma maior diferenciação característica em relação aos outros gêneros de cobras, que nãopossuem a tonalidade avermelhada das cobras coral em nenhuma parte de seu corpo.

Por outro lado, nos resultados da classe Cascavel (gênero Crotalus) e a classe Jara-raca (gênero Bothrops) foram obtidas medidas bem diferentes. A menor taxa de revocaçãoda classe Cascavel e maior taxa de precisão da classe Jararaca demonstram que houveuma grande taxa de cobras do gênero Bothrops classificadas erroneamente como do gêneroCrotalus. A semelhança entre as cobras desses dois gêneros de cobra é muito maior emcomparação com as cobras da família Elapidae, o que pode ter levado a esse resultado.

Além disso, devido à pouca variedade de posições das cobras, algumas cobras nãoforam identificadas, ou seja, áreas contendo uma cobra comprida sem estar enrolada foramidentificadas como não contendo nenhuma cobra, mesmo com a semelhança de cores emrelação às cobras corretamente classificadas.

O resultado desse trabalho mostra que a posição em que as cobras se encontramafeta na qualidade do resultado da classificação. Obter um conjunto de imagens de cobracom uma variedade maior de posições pode ajudar a corrigir esse problema, visto que namaioria das imagens de cobras obtidas, as cobras estavam enroladas.

Em um possível trabalho futuro, a ideia seria fazer a identificação de um maiornúmero de espécies de cobras em uma maior variedade de posições, com imagens fornecidaspor instituições oficiais, como o Instituto Butantan. Também seria adequado testar umnúmero maior de tipos de redes neurais com parâmetros variados e fazer um comparativode seu desempenho na classificação dessas espécies de cobras. Com isso seria possíveldeterminar a melhor rede com os melhores parâmetros, dependendo do tipo de cobra.

45

REFERÊNCIAS

[1] SAúDE, M. da. Acidentes por animais peçonhentos: o que fazer e como evitar. 2019.<http://www.saude.gov.br/saude-de-a-z/acidentes-por-animais-peconhentos>.[Acesso em 23-Agosto-2019].

[2] BUTANTAN, I. Acidentes por Animais Peçonhentos no Brasil. 2014.<http://www.saude.sp.gov.br/resources/cve-centro-de-vigilancia-epidemiologica/areas-de-vigilancia/doencas-de-transmissao-por-vetores-e-zoonoses/doc/peconhentos/peco16_acidentes_ofidicos_sjrp.pdf>. [Acesso em 23-Agosto-2019].

[3] EXTRA. Picadas de cobra matam 200 pessoas por dia.2019. <https://extra.globo.com/noticias/saude-e-ciencia/picadas-de-cobra-matam-200-pessoas-por-dia-23701739.html>. [Acesso em23-Agosto-2019].

[4] GONZALEZ, R. C. Processamento Digital de Imagens. Pearson, 2009.19 p. ISBN 8576054019. Disponível em: <https://www.amazon.com/Processamento-Digital-Imagens-Rafael-Gonzalez/dp/8576054019>.

[5] Nock, R.; Nielsen, F. Statistical region merging. IEEE Transactions on PatternAnalysis and Machine Intelligence, v. 26, n. 11, p. 1452–1458, Nov 2004.

[6] UIJLINGS, J. R. R. et al. Selective search for object recognition. InternationalJournal of Computer Vision, v. 104, n. 2, p. 154–171, Sep 2013. ISSN 1573-1405.Disponível em: <https://doi.org/10.1007/s11263-013-0620-5>.

[7] CHANDEL, V. S. Selective Search for Object Detection (C++ / Python). 2017.<https://www.learnopencv.com/selective-search-for-object-detection-cpp-python/>. [Acesso em 23-Agosto-2019].

[8] Lampert, C. H.; Blaschko, M. B.; Hofmann, T. Beyond sliding windows: Objectlocalization by efficient subwindow search. In: 2008 IEEE Conference on ComputerVision and Pattern Recognition. [S.l.: s.n.], 2008. p. 1–8.

[9] KARPATHY, A. CS231n Convolutional Neural Networks for Visual Recognition.2019. <http://cs231n.github.io/>.

[10] CHOLLET, F. Deep Learning with Python. 1st. ed. Greenwich, CT, USA: ManningPublications Co., 2017. ISBN 1617294438, 9781617294433.

[11] YOSINSKI, J. et al. How transferable are features in deep neural networks? In:GHAHRAMANI, Z. et al. (Ed.). Advances in Neural Information Processing Systems27. Curran Associates, Inc., 2014. p. 3320–3328. Disponível em: <http://papers.nips.cc/paper/5347-how-transferable-are-features-in-deep-neural-networks.pdf>.

[12] VOULODIMOS ATHANASIOS;DOULAMIS, N. A. E. Deep learning for computervision: A brief review. Computational Intelligence and Neuroscience, v. 2018, 2018.Disponível em: <https://doi.org/10.1155/2018/7068349>.

46

[13] BENGIO, Y. Learning deep architectures for ai. Foundations and Trends R○ inMachine Learning, v. 2, n. 1, p. 1–127, 2009. ISSN 1935-8237. Disponível em:<http://dx.doi.org/10.1561/2200000006>.

[14] INGARGIOLA, A. Deep-dive into Convolutional Networks. 2019. <https://towardsdatascience.com/deep-dive-into-convolutional-networks-48db75969fdf>.[Acesso em 23-Agosto-2019].

[15] GIRSHICK, R. et al. Rich feature hierarchies for accurate object detection andsemantic segmentation. In: The IEEE Conference on Computer Vision and PatternRecognition (CVPR). [S.l.: s.n.], 2014.

[16] GIRSHICK, R. Fast r-cnn. In: The IEEE International Conference on ComputerVision (ICCV). [S.l.: s.n.], 2015.

[17] REN, S. et al. Faster r-cnn: Towards real-time object detection withregion proposal networks. In: CORTES, C. et al. (Ed.). Advancesin Neural Information Processing Systems 28. Curran Associates,Inc., 2015. p. 91–99. Disponível em: <http://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks.pdf>.

[18] GANDHI, R. R-CNN, Fast R-CNN, Faster R-CNN, YOLO — Ob-ject Detection Algorithms. 2019. <https://towardsdatascience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e>.[Acesso em 23-Agosto-2019].

[19] RAJ, B. A Simple Guide to the Versions of the In-ception Network. 2018. <https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202>. [Acesso em16-Outubro-2019].

[20] SZEGEDY, C. et al. Going deeper with convolutions. CoRR, abs/1409.4842, 2014.Disponível em: <http://arxiv.org/abs/1409.4842>.

[21] SZEGEDY, C. et al. Rethinking the inception architecture for computer vision.CoRR, abs/1512.00567, 2015. Disponível em: <http://arxiv.org/abs/1512.00567>.

[22] RAWAT, W.; WANG, Z. Deep convolutional neural networks for image classification:A comprehensive review. Neural Computation, v. 29, n. 9, p. 2352–2449, 2017.PMID: 28599112. Disponível em: <https://doi.org/10.1162/neco_a_00990>.

[23] CANZIANI, A.; PASZKE, A.; CULURCIELLO, E. An analysis of deep neuralnetwork models for practical applications. CoRR, abs/1605.07678, 2016. Disponívelem: <http://arxiv.org/abs/1605.07678>.

[24] MARCELINO, P. Transfer learning from pre-trained models. 2018. <https://towardsdatascience.com/transfer-learning-from-pre-trained-models-f2393f124751>.[Acesso em 16-Outubro-2019].

[25] FAWCETT, T. An introduction to roc analysis. Pattern Recognition Letters,v. 27, n. 8, p. 861 – 874, 2006. ISSN 0167-8655. ROC Analysis in PatternRecognition. Disponível em: <http://www.sciencedirect.com/science/article/pii/S016786550500303X>.

47

[26] NATURE. Rattlesnake gardeners sow plant diversity. 2018. <https://www.nature.com/articles/d41586-018-01681-3>.

[27] BRITANNICA, T. E. of E. Rattlesnake. 2019. <https://www.britannica.com/animal/rattlesnake>.

[28] BUCHERONI, G. Coral-verdadeira e falsa-coral são extre-mamente parecidas e confundem predadores. 2018. <https://g1.globo.com/sp/campinas-regiao/terra-da-gente/noticia/coral-verdadeira-e-falsa-coral-sao-extremamente-parecidas-e-confundem-predadores.ghtml>.

[29] BRITANNICA, T. E. of E. Coral snake. 2019. <https://www.britannica.com/animal/coral-snake>.

[30] SILVEIRA, E. da. A explicação por trás da descoberta de jararacas gigantes emparque de São Paulo. 2018. <https://www.bbc.com/portuguese/geral-45490023>.

[31] MURPHY, A. Bothrops jararaca. 2019. <https://animaldiversity.org/accounts/Bothrops_jararaca/>.