construc˘ao de uma base de dados para~...

64
CONSTRUC ¸ ˜ AO DE UMA BASE DE DADOS PARA RECONHECIMENTO DE EVENTOS EM V ´ IDEOS Olavo Argˆ olo Batista Sampaio Projeto de Gradua¸c˜ ao apresentado ao Curso de Engenharia Eletrˆ onicaedeComputa¸c˜ao da Escola Polit´ ecnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´ arios ` aobten¸c˜ ao do t´ ıtulo de Enge- nheiro. Orientadores: Jos´ e Gabriel R. C. Gomes, Roberto de Moura Estev˜ ao Filho Rio de Janeiro Mar¸co de 2018

Upload: others

Post on 23-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

CONSTRUCAO DE UMA BASE DE DADOS PARA

RECONHECIMENTO DE EVENTOS EM VIDEOS

Olavo Argolo Batista Sampaio

Projeto de Graduacao apresentado ao Curso

de Engenharia Eletronica e de Computacao

da Escola Politecnica, Universidade Federal

do Rio de Janeiro, como parte dos requisitos

necessarios a obtencao do tıtulo de Enge-

nheiro.

Orientadores: Jose Gabriel R. C. Gomes,

Roberto de Moura Estevao Filho

Rio de Janeiro

Marco de 2018

Page 2: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso
Page 3: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso
Page 4: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politecnica - Departamento de Eletronica e de Computacao

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria

Rio de Janeiro - RJ CEP 21949-900

Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que

podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-

otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja

ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que

sem finalidade comercial e que seja feita a referencia bibliografica completa.

Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es).

iv

Page 5: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

DEDICATORIA

Dedico esse trabalho a Lucineia, Juarez, Maria Julia e Gustavo.

v

Page 6: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

AGRADECIMENTO

Agradeco a minha famılia, meus amigos, orientadores e a todos que ofereceram

apoio ou conselhos durante a realizacao desse trabalho. Agradeco especialmente a

Fernanda, que sempre me incentiva e nunca duvidou que tudo daria certo. Sem

voces, isso nao teria sido possıvel.

vi

Page 7: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

RESUMO

Inspecao de tubulacoes envolve a analise visual de longos trechos de vıdeos de

tubulacoes a procura de danos, fraturas ou outros eventos de interesse. Um processo

automatico de analise auxiliaria enormemente nessa tarefa. Para tal, propoe-se usar

um classificador baseado em algoritmos de aprendizado de maquina. E necessario

treina-lo em uma base de dados com imagens dos padroes desejados nos vıdeos.

Esse trabalho visa, portanto, propor uma metodologia de criacao de base de dados

de imagens a partir de vıdeos de forma, pelo menos parcialmente, automatizada.

Palavras-Chave: base de dados, inspecao de tubulacoes, visao computacional,

reconhecimento de imagem, redes neurais.

vii

Page 8: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

ABSTRACT

Pipeline inspection requires visual analysis of many hours of video recordings of

pipes in the search of breaches, damage or other features of interest. An automatic

analysis of the visual data would help greatly in this task. The classifier used in

this task is a deep neural network, which requires training with a dataset containing

features and patterns of interest found in the recordings. This project proposes a

method of building an image dataset from videos that is, at least partially, automa-

tized.

Keywords: dataset, pipeline inspection, computer vision, image recognition, neu-

ral networks.

viii

Page 9: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

SIGLAS

UFRJ - Universidade Federal do Rio de Janeiro

COPPE - Instituto Alberto Luiz Coimbra de Pos-Graduacao e Pesquisa de Enge-

nharia, da Universidade Federal do Rio de Janeiro

MSE - Mean Squared Error

ROV - Remotely Operated Vehicle

DVD - Digital Video Disc

GB - Gigabyte

CSV - Comma Separated Values

WMV - Windows Media Video

AVI - Audio Video Interleaved

MPG - refere-se a compressao de audio e vıdeo do tipo MPEG-1 ou MPEG-2

VOB - Video Object

SSIM - Structural Similarity Index

ix

Page 10: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Sumario

Lista de Figuras xi

Lista de Tabelas xii

1 Introducao 1

1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6 Descricao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Fundamentacao Teorica 6

2.1 Aprendizado de Maquina . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Modelo do Neuronio . . . . . . . . . . . . . . . . . . . . . . . 7

2.2.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.3 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Redes Neurais Convolucionais . . . . . . . . . . . . . . . . . . . . . . 15

2.3.1 Camada Convolucional . . . . . . . . . . . . . . . . . . . . . . 15

3 Metodologia 18

3.1 Caracterısticas da Base de Vıdeos . . . . . . . . . . . . . . . . . . . . 19

3.2 Classificacao dos Vıdeos . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Captura de Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3.1 Perıodo de Captura Fixo . . . . . . . . . . . . . . . . . . . . . 28

x

Page 11: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

3.3.2 Perıodo de Captura Variavel . . . . . . . . . . . . . . . . . . . 29

3.4 Ajuste da Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.1 Filtragem Manual . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.2 Filtragem por Similaridade . . . . . . . . . . . . . . . . . . . . 33

3.5 Teste da Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4 Resultados 39

4.1 Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2 Resultados dos Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Conclusoes 48

Bibliografia 51

xi

Page 12: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Lista de Figuras

3.1 Primeiros frames de um vıdeo da base . . . . . . . . . . . . . . . . . 20

3.2 Exemplos de imagens da classe Duto . . . . . . . . . . . . . . . . . . 21

3.3 Exemplos de imagens da classe Nada . . . . . . . . . . . . . . . . . . 22

3.4 Exemplos de imagens da classe Confuso . . . . . . . . . . . . . . . . 22

3.5 Arquivo CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1 Nove imagens da base C . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2 Matriz de Confusao da Base A . . . . . . . . . . . . . . . . . . . . . . 45

4.3 Matriz de Confusao da Base B . . . . . . . . . . . . . . . . . . . . . . 46

4.4 Matriz de Confusao da Base C . . . . . . . . . . . . . . . . . . . . . . 46

4.5 Matriz de Confusao da Base D . . . . . . . . . . . . . . . . . . . . . . 47

xii

Page 13: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Lista de Tabelas

3.1 Caracterısticas da base de vıdeos . . . . . . . . . . . . . . . . . . . . 19

3.2 Codigos de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Comparacao SSIM em frames sequenciais . . . . . . . . . . . . . . . . 33

3.4 Distribuicao das imagens da Base B antes e depois da remocao de

vıdeos prejudiciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1 Base A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2 Base B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 Base C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4 Base D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.5 Sumario das Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.6 Comparacao entre o numero de imagens por conjunto por base . . . . 43

4.7 F1 medio por classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

xiii

Page 14: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Capıtulo 1

Introducao

Neste capıtulo, serao explicados alguns conceitos iniciais do trabalho, sua contex-

tualizacao, limites, objetivos e brevemente a metodologia utilizada.

1.1 Tema

O contexto deste trabalho e a construcao de um sistema de classificacao de imagens

para inspecao de tubulacoes. Pela grande quantidade de dados a serem classificados,

essa tarefa deve ser realizada por um sistema automatico que requer uma base de

dados para treinamento.

O trabalho consiste na construcao de uma base de dados de imagens cujo fim

e o treinamento de sistemas de classificacao e processamento de imagem, especial-

mente redes neurais. Os sistemas treinados utilizando essa base devem apresentar

bom desempenho de classificacao quando comparados com outras bases convenci-

onalmente utilizadas para esse mesmo fim. Alternativamente, caso nao haja bases

previamente disponıveis para fazer a comparacao, o desempenho deve ser avaliado

segundo criterios a serem desenvolvidos.

1.2 Delimitacao

A motivacao para o trabalho e a classificacao de eventos em gravacoes em vıdeo

de tubulacoes. A base de dados a ser montada e de imagens. Assim, as imagens que

1

Page 15: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

formarao a base serao provenientes desses vıdeos, e os sistemas treinados terao como

foco identificar e classificar esses eventos. Fazem parte do escopo deste trabalho:

1. criar um procedimento que permita montar uma base de dados, cuidadosa-

mente, para aplicacao em inspecao de tubulacoes;

2. alterar esta base de dados conforme resultados de treino e teste com redes

neurais;

3. documentar o procedimento para que ele possa ser executado por outras pes-

soas no futuro.

A enfase do trabalho esta na construcao da base de dados da melhor maneira

possıvel e a avaliacao dos processos usados para tal. Os procedimentos e tecnicas

usados para o treinamento dos sistemas de classificacao usados nos testes das bases

de dados estao fora do escopo deste trabalho.

1.3 Justificativa

Esse projeto foi pensado para apoiar uma aplicacao de inspecao automatica de

tubulacoes. Ela deve identificar diversos eventos em vıdeos desses dutos para ma-

nutencao. Para executar essa tarefa em larga escala, sera utilizado um sistema

automatico para identificar os trechos de classificacao das gravacoes.

Sistemas de classificacao de imagens podem operar segundo diversos princıpios e

algoritmos. Atualmente, sistemas incorporando redes neurais de aprendizado pro-

fundo estao entre os com melhor desempenho, portanto entende-se que eles teriam

melhor chance de obter um bom desempenho na tarefa em questao. Foi escolhido

usar um sistema desse tipo para o teste das bases de dados produzidas.

Uma rede neural e um modelo computacional baseado na estrutura do cerebro

humano, formado por diversas camadas de neuronios artificiais conectados. Um

neuronio opera fazendo uma soma ponderada, com pesos ajustaveis, de suas entradas

e aplica sobre ela uma funcao nao-linear. O resultado dessa operacao e sua saıda.

Uma rede possui uma ou mais camadas de neuronios realizando esse processo e a

2

Page 16: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

saıda da ultima dessas camadas e o resultado da rede. Para determinar os pesos dessa

rede, entre outros parametros, ela precisa passar por um processo de treinamento,

onde sao feitas atualizacoes sucessivas desses parametros de acordo com exemplos

de entrada recebidos. No caso do aprendizado dito supervisionado, cada exemplo

de entrada tem um rotulo que diz qual e a saıda esperada para esta entrada. Entao,

a cada iteracao, os resultados da rede sao comparados com os esperados e essas

diferencas sao usadas para atualizar os parametros da rede.

Em sistemas modernos, as bases de dados comumente utilizadas para esse tipo de

treinamento sao extensas. Uma estimativa aproximada e que redes profundas com

algoritmos de aprendizado supervisionado atingem desempenho aceitavel com bases

de dados de 5 mil exemplos e desempenho humano, ou superior, com bases de 10

milhoes de exemplos [1]. Por isso, esse trabalho visa a criacao de uma base de dados

grande o bastante para realizar o treinamento desse tipo de sistema classificador e

a obtencao de um desempenho aceitavel.

1.4 Objetivos

O trabalho visa construir uma base de dados de imagens a partir de uma outra

base com 90 horas de vıdeos, nos formatos avi, mpg, wmv e vob, ja selecionados para

o problema em questao. Tambem se faz necessaria a criacao de programas auxiliares

para manipulacao dos vıdeos e outras tarefas. A base deve servir de insumo para o

treinamento de um sistema de classificacao de imagens utilizando redes neurais.

Portanto, os objetivos operacionais sao:

1. identificar e rotular os vıdeos a serem usados como insumo para a criacao da

base, criando uma relacao dos trechos dos vıdeos com as classes de interesse;

2. criar um programa que permita a selecao e obtencao automatica de imagens

rotuladas a partir de um conjunto de vıdeos e seus respectivos rotulos, obtidos

no Objetivo 1;

3. extrair desses vıdeos uma quantidade suficiente de imagens automaticamente

rotuladas;

3

Page 17: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

4. garantir que essas imagens representem estatisticamente o problema de clas-

sificacao abordado e permitam que o algoritmo de classificacao atinja um de-

sempenho aceitavel.

1.5 Metodologia

Para este projeto, o processo de classificacao se restringe a distinguir cada trecho

dos vıdeos entre tres classes: Duto, Confuso e Nada. Duto e a classe de interesse e

indica a presenca de uma tubulacao; Confuso indica a presenca de outros objetos

que nao sejam parte de um duto; e Nada indica a ausencia de objetos no trecho, de

forma geral. Essas classes representam os atores dominantes em cada um. Podem

haver trechos que contenham elementos de mais de uma classe, mas eles devem ser

classificado apenas em uma delas. Ao longo do texto, essas classes serao grafadas

em italico e com a inicial maiuscula.

Um determinado conjunto de dados e uma amostra limitada do comportamento

de um sistema real e pode ser uma representacao estatıstica mais ou menos fiel,

dependendo de diversos fatores. Se esse conjunto nao for representativo, um classifi-

cador treinado nele nao ira obter bom desempenho ao prever processos reais. Assim,

dependendo do objetivo desejado, pode ser necessario balancear o numero de ima-

gens em cada classe da amostra, para evitar que o classificador aprenda padroes

que desfavorecam uma classe sub-representada. Ao melhorar esses aspectos da base,

pretende-se facilitar o treinamento da rede e, em ultima instancia, melhorar seu

desempenho.

Para obter as imagens etiquetadas e necessario classificar cada trecho dos vıdeos

de forma manual e, em seguida, utilizar um programa que extraia de cada trecho

imagens com os rotulos correspondentes. Esse processo de classificacao manual

consiste em uma inspecao visual dos vıdeos e, em seguida, uma listagem da relacao

entre cada trecho e uma classe do problema. Esse registro e feito em um arquivo que

sera usado como referencia pelo software de extracao. O programa le esse arquivo de

referencia e extrai uma certa quantidade de imagens de cada trecho. Essa quantidade

pode ser variavel, buscando evitar que nenhum trecho ou classe seja representado

4

Page 18: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

em excesso ou de forma deficiente.

Durante a extracao, as imagens sao organizadas de forma a facilitar seu acesso.

Uma etapa adicional de inspecao manual dos dados visa encontrar eventuais erros

no processo e corrigi-los, se necessario. O sistema de classificacao, entao, e treinado

com os dados da base criada para verificar sua qualidade. O projeto pode ser dado

como concluıdo quando novos vıdeos, que nao foram usados para treinar a rede,

puderem ser corretamente classificados com bom desempenho por esse sistema.

1.6 Descricao

No Capıtulo 2, sera apresentada a fundamentacao teorica dos conceitos mais im-

portantes de redes neurais classicas e convolucionais, usadas durante o projeto.

O Capıtulo 3 contem a descricao detalhada da metodologia de classificacao, criacao

e teste das bases de dados. Sao descritos processos de anotacao, captura de imagens

a partir dos vıdeos, ajuste e teste das bases resultantes.

No Capıtulo 4, sao apresentados os detalhes e as caracterısticas das bases de

dados produzidas, bem como os resultados dos testes obtidos a partir delas. Sao

comparadas estatısticas das bases e medidas obtidas quando elas sao usadas para o

treinamento e teste de implementacoes da ResNet-152.

No Capıtulo 5, ha a discussao dos resultados obtidos e propostas de trabalhos

futuros.

5

Page 19: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Capıtulo 2

Fundamentacao Teorica

Nesse capıtulo serao expostos brevemente conceitos posteriormente utilizados no

trabalho. Para um estudo mais aprofundado desses conceitos, e sugerido consultar

as referencias. Um bom ponto de partida e [2].

2.1 Aprendizado de Maquina

Aprendizado de maquina e o processo de programar um computador, ou uma

maquina, para aprender a otimizar uma funcao custo para solucionar um problema,

a partir de um conjunto de dados. Ele pode ser um processo preditivo, se faz

previsoes do futuro; ou descritivo, se produz conhecimento a partir dos dados; ou

ambos. A essencia da tarefa realizada e uma inferencia a partir de uma amostra

dos dados, que representam apenas uma parte pequena das possibilidades para uma

dada classe de problemas. Assim, e necessario criar um modelo para representar o

fenomeno gerador da populacao estudada para, a partir dele, obter informacoes dos

dados.

2.2 Redes Neurais Artificiais

Redes neurais artificiais sao modelos computacionais baseados na estrutura do

cerebro humano, onde diversas camadas de neuronios se comunicam, recebem, pro-

cessam informacoes e geram saıdas a partir dessas entradas. Para modelar esse fun-

cionamento, uma rede neural usa um elemento computacional simples, o neuronio,

6

Page 20: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

como base de uma estrutura interconectada para processar informacao.

A estrutura de uma rede neural consiste em diversas camadas de neuronios, onde

cada uma esta ligada as vizinhas por conexoes com pesos variaveis. Cada peso dita

a relevancia de sua conexao, sendo atualizados por um processo de aprendizado.

Ele permite que uma rede modifique os pesos de suas conexoes para definir um

mapeamento entrada-saıda que minimize uma funcao custo pre-determinada. O

objetivo disso e permitir que a rede aprenda um modelo suficientemente consistente

com o mundo real para solucionar a classe de problemas de interesse. A partir de

um conjunto pequeno de exemplos dessa classe, a rede deve aprender a resolver de

forma geral e com bom desempenho uma grande parte dos demais problemas. Essa

capacidade e chamada poder de generalizacao da rede.

2.2.1 Modelo do Neuronio

Um neuronio consiste em uma unidade computacional que realiza um soma pon-

derada e aplica sobre ela uma funcao nao-linear pre-determinada. Ele foi inspirado

no neuronio biologico, que realiza conexoes com outros neuronios e processa as in-

formacoes recebidas, modificando a forca de cada conexao de acordo com estımulos

externos. Da mesma forma, os neuronios artificiais realizam conexoes com outros

elementos, ponderando-as por meio de pesos sinapticos. Cada peso esta associado

a uma conexao e multiplica os sinais recebidos por ela, aumentando ou diminuindo

sua relevancia. A soma dessas entradas ponderadas forma o sinal de entrada do

neuronio. Ele e sujeito a uma funcao nao-linear chamada funcao de ativacao do

neuronio. Ela deve ser linear para que rede possa aproximar de forma eficiente

funcoes complexas [3]. O resultado e a saıda do neuronio, cuja natureza depende do

tipo de problema abordado.

No processo de aprendizado supervisionado, a rede recebe um conjunto de M

amostras n-dimensionais e seus rotulos, onde cada dimensao corresponde a um atri-

buto, ou feature, dessas. Cada dado, ou exemplo, de entrada pode ser representado

na forma de um vetor x = [x1, x2, . . . , xn]T . Cada dado xi e acompanhado de um

rotulo, ou alvo, ti, que indica o resultado desejado para essa entrada e cuja dimensao

7

Page 21: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

depende do tipo de problema. Juntos, eles formam um par entrada-saıda. Para re-

presentar um conjunto deM pares, tem-se as matrizes X = [x1,x2, . . . ,xM ] ∈ Rn×M

e T = [t1, t2, . . . , tM ]. Os pesos de um dado neuronio k sao representados como

wk = [wk1, wk2, . . . , wkm]T , onde m e o numero de conexoes de entrada que ele

possui.

Dada uma entrada x ∈ Rn, o neuronio k realiza uma soma ponderada da forma:

vk =n∑

i=1

(wki × xi) + bk, (2.1)

onde bk e seu nıvel de polarizacao, ou bias. Em seguida, ele aplica sobre esse resultado

a funcao de ativacao, obtendo sua saıda yk = f(vk). Logo,

yk = f(n∑

i=1

wki × xi + bk). (2.2)

A funcao de ativacao do neuronio deve ser uma funcao nao-linear. Sao comumente

usadas as funcoes tangente hiperbolica f(x) = tanh(x) e sigmoide f(x) = 11+e−x , com

resultados equivalentes. Para redes neurais profundas modernas, a funcao mais po-

pular e de melhores resultados e a Rectified Linear Unit (ReLU), f(x) = max(0, x).

E comum simplificar a notacao representando o bias atraves de um vetor de entra-

das estendido, x = [x0, x1, . . . , xn]T ∈ Rn+1, x0 = 1, e incorporando bk como wk0 ao

vetor de pesos, wk = [wk0, wk1, . . . , wkn]T ∈ Rn+1. Outra simplificacao e trabalhar

com as formas vetoriais das equacoes. Representando um exemplo de entrada como

x ∈ Rn+1 e os pesos sinapticos como wk, obtem-se o sinal de entrada do neuronio

por uma multiplicacao de vetores

vk = wTk · x (2.3)

e yk = f(wTk · x).

2.2.2 Arquitetura

Em uma rede neural, os neuronios sao organizados em camadas, que por sua

vez sao organizadas de forma sequencial. Sempre ha pelo menos uma camada de

8

Page 22: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

entrada e uma de saıda. A primeira consiste apenas dos nos de entrada da rede e nao

realiza trabalho computacional, a segunda recebe a informacao do restante da rede e

calcula as saıdas. Essa e a forma mais simples de rede neural, chamada rede de uma

camada. Em uma rede dita multicamadas, ha uma ou mais camadas escondidas entre

as camadas de entrada e de saıda, que adicionam poder computacional a rede e que

lhe permitem realizar tarefas que nao seriam possıveis apenas com uma camada.

Os neuronios das camadas escondidas sao chamados unidades escondidas (hidden

units) e, juntamente com o numero dessas camadas, sao um parametro importante

no projeto da arquitetura da rede.

Em redes feedfoward, o fluxo de informacao tem origem na camada de entrada e

flui para a de saıda, uma camada por vez e apenas nesse sentido. Uma camada com-

pletamente conectada (fully connected) tem cada um de seus neuronios conectados

a todos os neuronios da camada anterior.

O dimensionamento correto das camadas escondidas e um desafio na escolha da

arquitetura da rede. Caso esta tenha poucos neuronios, nao tera capacidade com-

putacional suficiente para aproximar a funcao de forma satisfatoria. Caso tenha

neuronios demais, ela pode apresentar overfitting, onde a rede mapeia de forma

precisa demais o conjunto de dados, perdendo a capacidade de generalizacao para

entradas futuras. Segundo o Teorema da Aproximacao Universal [3] uma rede neural

feedforward pode aproximar uma funcao com apenas uma camada escondida com

um numero finito de neuronios. No entanto, essa abordagem nao e pratica para pro-

blemas complexos, pois o numero de neuronios pode aumentar exponencialmente

usando apenas uma camada, alem do que, essa arquitetura ter maior tendencia a

apresentar overfitting. O melhor, nesses casos, e satisfazer os requisitos computaci-

onais da rede neural com mais de uma camada escondida.

Uma rede neural pode ser usada para muitos tipos diferentes de tarefa. Nesse

trabalho, o foco sera a classificacao. Ela e uma parte de reconhecimento de padroes,

processo no qual um padrao ou sinal recebido e atribuıdo a uma classe dentre um

conjunto pre-definido, [2]. A rede neural realiza essa tarefa passando por um trei-

namento em que ela recebe exemplos de entradas, juntamente com suas respectivas

9

Page 23: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

classes alvo, obtidos de um conjunto determinado e aprende a reconhece-los. De-

pois disso, ao receber exemplos de fora desse conjunto, que contenham os mesmos

padroes, ela deve conseguir classifica-los corretamente. Isso ocorre porque a rede

consegue aprender a identificar os padroes subjacentes da populacao de exemplos

na qual ela foi treinada. Ela e capaz de classificar exemplos nao vistos durante o

treino porque eles possuem os mesmos padroes aprendidos pela rede, que permitem

diferenciar cada classe.

2.2.3 Treinamento

De forma geral, a rede tenta aproximar uma funcao f(x) implementando F (x,Θ),

onde x sao as entradas recebidas e Θ, os parametros dessa rede. Isso e feito atraves de

um algoritmo de aprendizado que soluciona um problema de otimizacao para deter-

minar os melhores valores para Θ. Esse algoritmo recebe os exemplos de treino, que

sao pontos de uma funcao ruidosa de f(x). A partir disso, ele ajusta os parametros

de forma iterativa ate atingir uma solucao dada boa o bastante. No caso das redes

discutidas ate aqui, os parametros a ajustar sao os pesos w da rede. Para que o

algoritmo de aprendizado possa aproximar f(x), e definida uma funcao custo depen-

dente dos pares entrada-saıda alimentados a rede, ou do erro entre a saıda obtida e

a desejada. Uma funcao custo comum e o erro medio quadratico (minimum squared

error , MSE), definida como

J(w) =1

P

P∑i=1

ε2i , (2.4)

onde ε2i = |yi − ti|2 e o erro quadratico para o par i e P e o numero de pares

usado no treinamento. Tem-se entao um problema de otimizacao, escolher os pesos

sinapticos de forma a minimizar a funcao custo. Para isso, a rede recebe, de forma

sucessiva, pares de uma base de dados relevante a tarefa em questao. A partir disso,

ela atualiza seus pesos para melhor satisfazer o objetivo da otimizacao. O resultado

ideal do treino seria zerar a funcao custo, mas nem sempre isso e viavel ou leva ao

melhor classificador. Resultados suficientemente bons, proximos de um mınimo, sao

o fim mais comum desse processo.

10

Page 24: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

2.2.3.1 Algoritmo Error Backpropagation

O processo de treino abordado sera o de retropropagacao (backpropagation). Ele

pode ser dividido em duas fases: propagacao (forward) e retropropagacao (backward).

Na fase de propagacao, os pesos das redes sao fixados e os sinais de entrada sao pro-

pagados camada por camada ate sua saıda. Na fase de retropropagacao, e obtido

uma medida do erro entre a saıda encontrada na fase anterior e a saıda esperada.

Esse sinal e propagado de forma reversa, a partir da saıda, e, em cada camada,

usado para ajustar os pesos sinapticos dessa camada.

O algoritmo sera detalhado a seguir. Assumindo um dado neuronio j com m

entradas x = [x0, . . . , xi, . . . , xm]T , incluindo o bias, e funcao de ativacao f(v). Seus

pesos sinapticos sao wj = [wj0, . . . , wji, . . . , wjm]T . Dado que a saıda desejada, ou

rotulo, para essa entrada e t, seu sinal de erro sera ej = yj− tj e ele sera usado para

compor uma funcao custo (loss function) J(wji) escolhida de acordo com a tarefa

em questao. O sinal de entrada sera vj =∑m

i=1 xiwji + bj e sua saıda, yj = f(vj).

Deseja-se realizar uma correcao ∆wji em cada peso sinaptico do neuronio de modo

a minimizar sua funcao erro. Ela deve ser

∆wji = −η∂J(wji)

∂wji

. (2.5)

Desenvolvendo, tem-se

∆wji = −η∂J(wji)

∂vjxi = −η ejf ′(vj)xi, (2.6)

que representa a otimizacao da funcao custo pelo metodo do gradiente descendente,

onde o gradiente da funcao representa sua direcao de maior aumento no espaco dos

pesos wj e η e um parametro chamado taxa de aprendizagem, ou learning rate.

Modificar os pesos proporcionalmente ao negativo do gradiente garante que o vetor

de pesos se desloque na direcao que minimiza localmente a funcao custo. No entanto,

como essa minimizacao considera apenas o entorno de w a cada iteracao, ela pode

levar a um mınimo local caso a funcao custo nao seja convexa. Uma solucao no caso

de redes pequenas e inicializar os pesos da rede de forma aleatoria, o que introduz

um elemento nao-determinıstico no processo, e realizar o treino multiplas vezes para

obter um resultado mais proximo do mınimo global. Redes profundas modernas

11

Page 25: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

tem na inicializacao adequada de seus parametros uma condicao importante para

convergencia e nao sao tao susceptıveis ao problema dos mınimos locais.

O algoritmo completo e o seguinte:

1. Fase forward :

(a) a partir das entradas xi, calcular os sinais de entrada dos neuronios da

primeira camada, vj =∑m

i=1 wijxi + bj

(b) calcular as saıdas de cada neuronio, uj = f(vj)

(c) usar uj como entradas para a proxima camada e repetir o processo ate a

ultima camada. Suas saıdas serao as saıdas da rede, yj;

2. Fase backward :

(a) calcular o sinal de erro ej = yj − tj;

(b) inverter o sentido do fluxo do sinal, de modo a fluir da ultima camada

para a primeira;

(c) usando ej como entrada, calcular vj para a camada de saıda e calcular

f ′(vj);

(d) calcular ∆wji = −η ejf ′(vj)xi para cada peso de cada neuronio da camada

atual;

(e) modificar os pesos wjinovo= wjiantigo

+ ∆wji;

(f) continuar propagando o sinal de forma reversa, modificando os pesos a

cada camada.

Diagramas ilustrativos e uma explicacao mais detalhada podem ser encontradas em

[2], Cap. 4 .

2.2.3.2 Treino On-line e em Lotes

Esse treino deve ser feito com um certa quantidade de exemplos da base de dados

para cada atualizacao de pesos. Ela caracteriza metodos de treino diferentes e dois

deles serao abordados aqui: treino on-line e treino em lotes. O treinamento on-

line consiste em realizar a atualizacao dos pesos sinapticos a cada novo exemplo

12

Page 26: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

recebido. Cada novo dado recebido de uma base com M exemplos gera uma nova

iteracao do algoritmo de treino e a atualizacao dos pesos da rede, o que significa que

serao calculados M sinais de erro ej e cada um gera uma atualizacao dos pesos da

rede. O treinamento em lotes (ou batch) consiste em atualizar os pesos apenas apos

N ≤ M exemplos da base serem apresentados a rede. O sinal de erro de um lote

sera a media do erro para cada entrada desse. Para um lote de tamanho N ,

e =1

N

N∑k=1

e(xk), (2.7)

onde xk e a k-esima entrada do lote. Esse metodo tem diversas vantagens sobre o

treino on-line, como maior estabilidade no processo de otimizacao e facilidade de

paralelizar o treinamento. A desvantagem e que ele requer poder de processamento

e espaco de armazenamento muito maiores, pois necessita carregar e processar N

exemplos da base e resultados simultaneamente, enquanto o metodo on-line, apenas

um. Isso restringe o tamanho dos lotes a valores que gerem requisitos mais praticos.

Esse algoritmo deve ser executado muitas vezes durante o treino. Cada execucao

completa ou seja, cada vez que ele apresenta todos os exemplos da base para a rede,

e chamada de epoca. Cada epoca altera ligeiramente o valor dos pesos da rede e

se aproxima (espera-se) de um mınimo na otimizacao. A velocidade com a qual

isso ocorre depende da taxa de aprendizado escolhida, no caso do aprendizado por

gradiente descendente. Quanto mais alta ela for, mais rapida sera a convergencia,

mas maior sera a chance que esta nao ocorra e o algoritmo divirja, ou pelo menos que

nao atinja um ponto proximo de um mınimo. Quanto menor ela for, mais lentamente

o algoritmo convergira, mas o processo sera mais estavel e tendera a encontrar uma

solucao mais proxima do mınimo.

2.2.3.3 Outras Consideracoes

O objetivo da rede e aprender a reconhecer os padroes presentes nos exemplos

apresentados a ela de forma robusta e generica. Ela deve ser capaz de reconhecer

esses padroes em exemplos futuros, nunca antes vistos. Por isso, medir apenas o

valor da funcao custo (tambem chamada loss, perda ou erro) durante o treino nao e

uma boa forma de avaliar seu desempenho. A rede pode aprender os padroes apenas

13

Page 27: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

dos exemplos vistos no treino, ao inves de aprender as caracterısticas comuns a os

exemplos da classe de interesse como um todo.

A solucao e usar diversos conjuntos para o processo de treino da rede. Dada uma

base de dados limitada, pode-se separar uma parte dela para auxiliar na avaliacao

do treinamento. A base e dividida, entao, em dois conjuntos: conjunto de treino e

conjunto de teste. O conjunto de treino deve conter a maior parte dos exemplos da

base e deve ser usado durante a otimizacao dos pesos, o treinamento propriamente

dito. O conjunto de teste deve ter uma parte menor dos dados e deve refletir

estatisticamente as caracterısticas da base como um todo. Ele deve ser usado para

realizar a avaliacao da rede apos o treino, minimizando a funcao custo como ja

mostrado. Como a rede nao teve acesso a esse conjunto durante seu treinamento, ela

so obtera um valor baixo de erro se tiver, de fato, aprendido os padroes da populacao

de exemplos de interesse. Caso ela tenha aprendido apenas as caracterısticas dos

exemplos de treino, nao sera capaz de classificar corretamente os exemplos de teste e

a perda nesse conjunto, dito erro de teste, sera alta. O valor da funcao custo obtida

durante o treino e chamado erro de treino. Ao receber os exemplos de teste, a rede

nao deve ser treinada com eles, apenas usada para realizar predicoes, que devem,

entao, ser comparadas com os respectivos rotulos e usadas para calcular o erro de

teste.

Alem dos conjuntos de treino e teste, e frequente a utilizacao de um terceiro con-

junto dito de validacao. Uma rede neural possui parametros que devem ser ajustados

fora do algoritmo de aprendizado para que ela obtenha um bom desempenho. Eles

sao chamados hiperparametros e incluem, por exemplo, configuracoes do algoritmo

de otimizacao, tamanho do lote e constantes da funcao de ativacao. Esses hiper-

parametros influenciam no desempenho da rede e podem se relacionar entre si. Eles

devem ser ajustados na base de dados antes do treino da rede, mas isso nao pode ser

feito no conjunto de teste, pois pode gerar um vies no aprendizado da rede. Assim,

uma pequena parte da base, chamada conjunto de validacao, deve ser usada para

testar qual combinacao de parametros produz o melhor desempenho de teste. De

fato, ele deve ser usado quando se mostrar necessario avaliar qualquer modificacao

na rede, seja de treinamento, arquitetura, distribuicao de dados ou outro aspecto. O

14

Page 28: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

conjunto de treino deve ser usado apenas para treinar a rede, enquanto o de teste so

deve ser usado para realizar a avaliacao de desempenho homonima, ao final de todo

ajuste e treino. A divisao da base ao utilizar os conjuntos citados deve reservar uma

grande parte dos exemplos para o treino e dividir o restante entre os dois outros

conjuntos. Um exemplo de divisao dos dados e 60%, 20% e 20% para treino, teste

e validacao, respectivamente, mas a proporcao depende do problema e da base de

dados.

O valor da funcao custo e apenas uma das medidas que pode ser usada para

avaliar o desempenho de uma rede neural. Sao comumente usadas: taxa de acerto,

MSE, divergencias, precisao, sensibilidade, entre outras. A melhor medida a ser

usada depende do problema e da avaliacao desejada. O detalhamento de metodos

de avaliacao de desempenho em aprendizado de maquina e abordado em [4].

2.3 Redes Neurais Convolucionais

Redes neurais convolucionais sao um tipo de rede neural especializada que apre-

senta vantagens no processamento de alguns tipos de dados, principalmente imagens.

A diferenca delas para as redes convencionais e a utilizacao de uma operacao de con-

volucao em pelo menos uma camada, normalmente chamada camada convolucional.

Redes convolucionais tem obtido grande popularidade na ultima decada por permitir

solucoes praticas para problemas antes custosos e difıceis de serem abordados. Nessa

secao, seus elementos basicos serao abordados, para informacoes mais detalhadas, e

recomendavel consultar a bibliografia citada, como [1].

2.3.1 Camada Convolucional

Uma camada completamente conectada relaciona suas entradas e saıdas atraves

de uma multiplicacao da matriz de entradas por uma matriz de pesos. No caso de

uma camada convolucional, a relacao entrada-saıda e feita atraves de uma operacao

de convolucao entre as entradas e uma funcao de pesos. Essa operacao nao e exata-

mente como uma convolucao convencional, mas compartilha muitas caracterısticas.

A convolucao discreta entre duas funcoes f(t) e w(t) unidimensionais pode ser defi-

15

Page 29: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

nida como

s(t) = f(t) ? w(t) =+∞∑

a=−∞

f(a)w(t− a), (2.8)

ou seja, o resultado e a soma de diversas instancias da funcao w(t), a medida que

ela e deslocada no espaco de referencia, multiplicada por f(t). No contexto de redes

neurais, f(t) e chamada funcao de entrada e w(t), funcao nucleo, ou kernel. A

funcao kernel e composta por pesos ajustaveis e tipicamente e muito menor que a

de entrada. Em implementacoes praticas, ela e definida como uma matriz esparsa

de mesmo tamanho da entrada e apenas uma pequena parte possui valores nao-

nulos. A convolucao entre a entrada e o kernel consiste em multiplicar f(t) por w(t)

repetidas vezes, a medida que a segunda e deslocada ao longo da primeira e cada

multiplicacao resulta em um componente do resultado.

Para o caso unidimensional, com uma entrada I consistindo de M exemplos de

dimensao 1 e um kernel W de tamanho K, o resultado sera S = (I?W) ∈ R(M+K−1),

podendo ter dimensoes diferentes a depender da escolha de parametros como step e

padding. Da mesma forma que uma camada convencional possui diversos neuronios,

uma convolucional pode ter mais de uma funcao kernel, onde cada uma tera seu

conjunto de parametros treinados individualmente e resulta em saıdas diferentes.

Cada conjunto de saıdas de uma funcao kernel e chamada mapa de caracterısticas

(feature map) ou filtro.

Para o caso de duas dimensoes, como uma imagem, tem-se uma entrada I ∈ RM×N

e um kernel tambem bidimensional W ∈ RK×K . Nesse caso, S = (I ? W) ∈

R(M+K−1)×(N+K−1). A convolucao bidimensional discreta e definida como

S(i, j) = I(i, j) ? W (i, j) =M∑

m=1

N∑n=1

I(m,n)W (i−m, j − n). (2.9)

Da mesma forma que no caso unidimensional, a funcao kernel “varre”a imagem em

ambos eixos, realizando uma multiplicacao e armazenando o resultado a cada passo

para formar a matriz S. Uma figura que ajuda a visualizar esse conceito encontra-se

em [1] p.330.

16

Page 30: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Ha diversas vantagens de realizar uma operacao de convolucao. Em redes neurais

convencionais, a operacao implementada e a multiplicacao das entradas por uma

matriz de pesos, na qual todos os pesos sao multiplicados por todas as entradas.

Uma camada convolucional permite apenas uma interacao esparsa entre as entradas

e saıdas, na qual cada matriz de pesos se relaciona com apenas parte das entradas.

Isso ocorre porque o kernel utilizado e menor que a entrada, o que requer menos

espaco de armazenamento e um numero menor de operacoes matematicas, ja que e

possıvel utilizar um kernel varias ordens de grandeza menor que a entrada e ainda

obter bom desempenho. Outra consequencia dessa conectividade esparsa e que cada

entrada de uma camada convolucional afeta poucas unidades escondidas. No caso

de redes profundas, isso obriga a rede a usar essas relacoes simples para construir

estruturas mais complexas, o que beneficia sua capacidade de generalizacao.

Outra vantagem e o compartilhamento de parametros. Cada kernel possui para-

metros ajustaveis de forma similar aos pesos de um neuronio em redes convencionais.

A diferenca entre eles e que no conjunto de parametros usado pelo kernel, cada

um multiplica uma entrada por vez e, ao longo da convolucao, eventualmente tera

multiplicado todos (ou quase todos) os elementos da entrada. Um neuronio possui

um parametro para cada elemento da entrada e cada um multiplica apenas ele.

Portanto, uma camada convolucional possui muito menos parametros do que uma

completamente conectada. Isso reduz ainda mais os requisitos de armazenamento

de uma camada convolucional, alem de permitir que o mesmo conjunto de pesos

seja treinado para todas as posicoes da entrada, o que ajuda a evitar uma alta

especializacao de conjuntos de parametros e aumenta a eficiencia estatıstica da rede

neural.

A terceira vantagem das camadas convolucionais e a robustez a determinadas

transformacoes feitas na entrada. Gracas ao compartilhamento de parametros, ela

apresenta a propriedade de equivariancia a translacao, que significa a saıda sera a

mesma se uma transformacao de translacao for aplicada a entrada antes ou depois

da convolucao, desde que seja aplicada da mesma forma em todos os elementos. Isso

significa que a rede e capaz de reconhecer um mesmo padrao, inclusive apos ele ter

sofrido uma dessas transformacoes.

17

Page 31: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Capıtulo 3

Metodologia

O objetivo desse trabalho e criar uma base de dados de imagens que permita o

treinamento de um classificador automatico e documentar os processos usados para

isso. Ele deve ser capaz de discriminar trechos de vıdeos de inspecao de tubulacoes,

ou imagens obtidas a partir deles, para identificar se dado trecho contem um duto

ou nao.

O processo de criacao da base de imagens consiste de tres partes: classificacao

dos trechos dos vıdeos, captura de frames e filtragem. Um frame, ou quadro, e

um elemento fundamental de um vıdeo, pois este e uma apresentacao sequencial de

frames de forma a criar a ilusao de movimento. A Fig. 3.1 contem os nove primeiros

frames de um vıdeo da base, que sao reproduzidos no espaco de 0, 36 s. O trabalho

visa gerar um conjunto de imagens amplo, diverso e balanceado.

A base deve ser ampla porque quanto mais exemplos para o treinamento do clas-

sificador, melhor seu desempenho tende a ser. Suas imagens devem ser diversas

porque isso aumenta o numero de padroes diferentes disponıveis, o que permite um

aprendizado mais geral. Essa preocupacao e especialmente importante porque, como

a fonte das imagens sao vıdeos, frames sequenciais tendem a ser muito parecidos.

Ter muitas imagens parecidas nao contribui para a qualidade da base, pois elas nao

oferecem padroes novos para treinar um classificador e diminuem o efeito de ima-

gens com padroes diferentes que ocorram em menor quantidade. As imagens devem

ser balanceadas em termos de distribuicao entre as classes. Algumas classes tem

ocorrencias maior do que outras na base de vıdeos original. Assim, uma base de-

18

Page 32: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

rivada naturalmente vai refletir esse desequilıbrio. No entanto, devem ser tomadas

medidas que mitiguem esse efeito, pois isso prejudica o treinamento do classificador.

O codigo usado para os programas descritos e rotinas auxiliares estao disponıveis

no repositorio http://www.github.com/olavosamp/database-maker.

3.1 Caracterısticas da Base de Vıdeos

A base de vıdeos usada neste trabalho e composta por filmagens de procedimentos

de inspecao de tubulacoes feitas por veıculos operados remotamente (remotely ope-

rated vehicle, ROV). Os vıdeos refletem diversas atividades de inspecao e condicoes

de operacao do ROV em diferentes trechos de dutos. A base original contem 126

vıdeos nos formatos avi, mpg, wmv, e vob. Eles tem duracao total de 90 horas,

21 minutos e 42 segundos, divididos entre vıdeos de diferentes formatos, segundo a

Tabela 3.1.

Tabela 3.1: Caracterısticas da base de vıdeos.

Formato No de Vıdeos Duracao Total

mpg 3 05h 26m 41s

wmv 46 20h 43m 50s

avi 1 03h 45m 58s

vob 76 60h 25m 13s

Total 126 90h 21m 42s

Os vıdeos tambem possuem diferentes caracterısticas e alguns apresentam pro-

blemas que impossibilitam sua utilizacao em um primeiro momento. Como cada

um gera imagens na sua resolucao de reproducao, imagens capturadas de vıdeos

diferentes podem ter resolucoes diferentes. Em geral, isso nao e o ideal para a cons-

trucao de uma base de dados, pois resulta em dados nao padronizados. No entanto,

nesse trabalho, as imagens foram adicionadas a base sem redimensionamento, para

permitir maior liberdade no pre-processamento das imagens durante o treinamento

do classificador, que ja padroniza as imagens.

19

Page 33: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 3.1: Nove primeiros frames de um vıdeo da base.

No total, 41 vıdeos foram classificados. Dentre esses, 24 compuseram bases que

foram testadas, sendo que os demais nao foram incluıdos nas bases a tempo de

serem testados, mas podem ser usados no futuro. Tres vıdeos estao corrompidos ou

apresentam problemas, como artefatos na imagem, impossibilidade de realizar busca

no vıdeo ou erros de reproducao. Eles nao foram utilizados neste trabalho, embora,

no futuro, alguma solucao possa ser estudada que permita seu uso. Dentre os vıdeos

com formato vob, 14 sao apenas ındices de DVD. Portanto, ainda restam 68 vıdeos

da base para, possivelmente, serem classificados no futuro.

3.2 Classificacao dos Vıdeos

A base consiste de imagens extraıdas a partir dos vıdeos originais. Cada imagem

deve ter um rotulo que identifique a classe a qual ela pertence. A partir desses

insumos, pode-se realizar um treinamento supervisionado de uma rede neural.

A partir da observacao do material, foram escolhidas tres classes para classificacao,

em um primeiro momento: Duto, Nada e Confuso. Cada classe identifica quais

objetos ou padroes estao presentes de forma predominante em cada imagem. A

20

Page 34: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

classe Duto representa um trecho que contem um duto ou parte de um; Confuso

representa um trecho com um objeto que nao seja um duto, como uma parte do

ROV; e Nada representa um trecho sem nenhum objeto relevante, apenas com areia

ou agua, por exemplo. As Figs. 3.2, 3.3 e 3.4 mostram exemplos de imagens de cada

classe. Os vıdeos, entao, sao divididos em eventos, onde um evento e definido como

um trecho com inıcio e fim, classificado em apenas uma classe. Isso visa facilitar o

processo de captura de imagens do vıdeo.

Figura 3.2: Exemplos de imagens da classe Duto.

A presenca de trechos e imagens de difıcil classificacao e inevitavel. Imagens

em trechos com transicao de classes, ou seja, partes do vıdeo proximas ao inıcio e

termino de um evento, podem ter presenca de elementos de mais de uma classe.

Isso exige uma decisao subjetiva de classificacao e pode gerar um erro de anotacao:

quando um trecho e identificado com uma classe, mas deveria pertencer a outra. No

entanto, espera-se que esse tipo de problema esteja restrito a apenas uma pequena

parte das imagens da base, sendo estatisticamente insignificante quando comparada

com seu restante.

21

Page 35: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 3.3: Exemplos de imagens da classe Nada.

Figura 3.4: Exemplos de imagens da classe Confuso.

22

Page 36: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Para obter os rotulos das imagens, e necessario realizar um processo de anotacao

dos vıdeos. Deve-se registrar a qual classe cada trecho de cada vıdeo pertence.

Isso e feito de forma manual: uma pessoa assiste ao vıdeo, identifica seus trechos

relevantes e registra o rotulo de cada um em um arquivo. Esse registro e feito em um

arquivo no formato comma separated values (CSV), onde cada linha contem uma

entrada cujos dados sao separados por vırgulas e, neste projeto, tambem segue uma

formatacao pre-determinada. Esta visa facilitar tanto o processo de classificacao e

registro para um agente humano, quanto a leitura desse arquivo por um programa,

posteriormente. Cada arquivo CSV trata de um vıdeo e cada uma de suas linhas,

exceto a primeira, corresponde a um evento. Um evento e definido como um trecho

de um vıdeo que seja contınuo, unico e contenha apenas uma classe. O arquivo

CSV deve ser preenchido de acordo com as convencoes a seguir. A primeira linha

do arquivo deve ser:

VideoName,Class,StartTime,EndTime,Id

Ela corresponde aos cabecalhos do arquivo, indicando o que cada campo deve conter.

Cada linha seguinte deve ter, em ordem: o nome do vıdeo, a classe do trecho, o

tempo de inıcio do trecho, o tempo de termino do trecho, o numero identificador

desse evento. Cada coluna deve ser separada por uma vırgula, sem espacos antes ou

depois dela.

• Nome do vıdeo: nome do vıdeo processado, sem extensao.

• Classe: codigo da classe do evento, segundo a Tabela 3.2. Normalmente res-

trito a quatro caracteres para facilitar a leitura do arquivo.

• Tempo de Inıcio: instante do vıdeo em que o evento comeca. Deve ser regis-

trado no formato HHMMSS, sempre com 6 dıgitos numericos.

• Tempo de Termino: instante do vıdeo em que o evento termina, normal-

mente quando ocorre uma mudanca de classe. Deve ser registrado no formato

HHMMSS, sempre com 6 dıgitos numericos.

• Numero do evento: numero identificador do evento, como registrado no arquivo

CSV.

23

Page 37: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 3.2: Codigos de classe para os arquivos CSV correspondentes as tres classes

usadas no projeto.

Classe Codigo

Duto tubo

Nada nada

Confuso conf

Figura 3.5: Exemplo de arquivo CSV para o vıdeo “20161101215100437@DVR-

SPARE Ch1.wmv”. Cada linha apos a primeira representa um evento distinto e

contem: o nome do arquivo, o codigo da classe, tempo de inıcio, tempo de termino

e codigo identificador do evento.

O registro de quais vıdeos ja foram classificados e feito atraves de um arquivo de

controle. Ele contem uma lista com todos os vıdeos a serem usados no projeto e

mantem um registro de quais ja foram classificados e quais ainda nao. Portanto,

cada vıdeo que for classificado deve ter um arquivo CSV correspondente e deve ser

anotado no arquivo de controle.

Tendo isto em vista, o processo de classificacao e registro e realizado de acordo

com os seguintes passos:

1. Criar o arquivo de controle, caso ainda nao exista, e nele listar os vıdeos a

serem processados;

2. Escolher um vıdeo para classificar;

3. Criar o arquivo CSV correspondente a esse vıdeo;

4. Identificar e anotar a classe do primeiro trecho do vıdeo e seu tempo de inıcio,

normalmente o comeco do vıdeo;

24

Page 38: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

5. Identificar e anotar o tempo de termino desse trecho do vıdeo, caracterizado

pela presenca de outra classe;

6. Repetir os passos 4) e 5) ate haver percorrido todo o vıdeo;

7. Registrar a classificacao do vıdeo no arquivo de controle e armazenar o arquivo

CSV.

Apos um numero suficiente de vıdeos ter sido classificados, pode-se gerar a base a

partir deles. Para cada novo vıdeo anotado, a base pode ser gerada novamente para

incorporar os novos dados, se o processo de construcao for determinıstico e o mesmo

usado anteriormente. Caso contrario, a base deve ser excluıda e reconstruıda para

incorporar o novo vıdeo.

3.3 Captura de Imagens

Apos um vıdeo ser classificado, ele pode ser usado para criar imagens da base. Os

quadros do vıdeo sao avaliados e alguns sao escolhidos para serem salvos e comporem

a base de dados. Esse processo e chamado captura ou extracao de frames. Isso e

feito atraves de um programa desenvolvido em Python, usando a biblioteca Opencv.

Para cada evento de classificacao, sao extraıdas imagens do vıdeo e rotuladas com

sua classe. A escolha das imagens a serem salvas pode ser feita de varias formas, cada

uma com vantagens e desvantagens. Os metodos foram avaliados com o objetivo de

determinar sua capacidade de gerar a base mais adequada.

Um vıdeo possui caracterısticas que devem ser consideradas durante o processo

de captura de imagens. Elas sao: taxa de quadros, duracao e resolucao. Elas sao

obtidas pelo programa, para cada vıdeo, e usadas no processo de captura.

• Taxa de Quadros: taxa na qual novas imagens, quadros ou frames, sao mostra-

das durante a reproducao de um vıdeo. Ela e medida em frames por segundo

ou, quando expressa como frequencia, em Hertz. Tem valor entre 25 e 30

frames/s para os vıdeos da base.

• Duracao: tempo total de execucao do vıdeo. Quanto maior for a duracao de

um vıdeo, em geral, mais frames ele possui. Sera medida em segundos, exceto

25

Page 39: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

quando indicado. Na base usada neste trabalho, o vıdeo mais curto tem 30min

de duracao, enquanto o mais longo tem 3h 45min 58s.

• Resolucao: tamanho de cada frame do vıdeo, representado como largura ×

altura da imagem, em pixels. Os vıdeos disponıveis para o trabalho apresentam

as resolucoes: 640×480, 720×480, 352×480, 352×240 e 704×576. A resolucao

depende de como foi realizada e de quem realizou a gravacao do vıdeo.

A captura de frames do vıdeo foi feita por um programa que usa a biblioteca

Opencv. Ele le o arquivo CSV e lista todos os eventos, suas classes e duracao de

cada um. A partir dessas informacoes, ele determina o perıodo de captura para cada

evento. A captura de imagens propriamente dita comeca a partir desse ponto: para

cada evento, o programa se posiciona no instante de inıcio e captura um frame. Em

seguida, avanca um perıodo de captura e salva mais um frame. Entao, ele repete o

processo de avanco e captura ate o final do evento. Ao atingir o final, ele recomeca o

processo para o proximo evento do arquivo CSV. Isso e feito para todos os eventos.

Quando todos tiverem sido percorridos, as imagens desse terao sido capturadas e

salvas.

O programa salva cada imagem com uma convencao de nomenclatura e em um

pasta separada para cada vıdeo. Ao comecar a captura de imagens para um vıdeo,

ele cria uma pasta cujo nome e o nome do vıdeo. Em seguida, ao salvar cada frame, o

programa registra informacoes sobre ele no nome da imagem, segundo a formatacao,

com espacos entre os atributos:

<Nome do vıdeo> ID<Numero do evento> FRAME<Numero do frame> <Classe>

onde as caracterısticas entre <> sao substituıdas por seus valores correspondentes

para a imagem. Cada uma e descrita brevemente abaixo.

• Nome do vıdeo: nome do vıdeo do qual o frame foi capturado.

• Numero do evento: numero identificador do evento do qual o frame foi captu-

rado.

26

Page 40: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

• Numero do frame: posicao do frame no conjunto de imagens extraıdas desse

evento especıfico. Cada evento tem uma numeracao propria para seus frames,

iniciada pelo frame 0.

• Classe: classe associada ao evento.

Com essas informacoes salvas junto a cada imagem capturada, e possıvel identificar

a classe e a posicao do vıdeo de onde cada uma delas foi extraıda. Isso pode ser

obtido com o processamento do nome dos arquivos de imagem e comparacao com

as informacoes do arquivo CSV correspondente.

A diferenca entre os metodos de captura dos frames do vıdeo reside na forma de

escolher quais deles devem ser capturados e quais, ignorados. Foram explorados dois

metodos de escolha do perıodo de captura dos frames, descritos mais a frente.

O perıodo maximo entre captura de frames esta relacionado com a taxa de quadros

fo do vıdeo, da forma

Tmax =1

fos. (3.1)

Assim, o numero maximo de frames F que pode ser capturado de um vıdeo de

duracao D segundos sera

F = fo ×D. (3.2)

Capturar o numero maximo de frames de um vıdeo nao e um bom metodo de

construir a base. Como um vıdeo e uma sequencia de imagens com uma relacao

semantica e temporal entre si, frames proximos apresentam alta correlacao entre si.

Capturar muitos frames similares nao e uma boa estrategia para construir uma base

de qualidade, pois aumenta seu tamanho e complexidade sem melhorar a qualidade

ou diversidade das imagens, o que dificulta o treinamento de um algoritmo de clas-

sificacao. A presenca de muitas imagens similares na base tambem pode prejudicar

o equilıbrio das classes, aumentando o tamanho de algumas em detrimento das de-

mais e fazendo o treinamento ser enviesado para os maiores conjuntos de imagens,

impedindo que padroes pouco representados, mas importantes, sejam aprendidos

27

Page 41: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

corretamente. Assim, uma solucao mais eficiente e capturar apenas poucos frames

do total presente em um dado trecho, de modo a representar os padroes presentes

nele de forma suficiente e evitando redundancias.

3.3.1 Perıodo de Captura Fixo

A maneira mais simples de escolher o perıodo de captura de frames e fixar um

valor para todos os trechos do vıdeo. Isso leva a captura de um total de frames

menor que o disponıvel nele. Esse metodo e uma vantagem em relacao a apenas

capturar todos os frames do vıdeo, mas permite que trechos muito longos sejam

representados de forma desproporcional, o que nao e ideal. O proximo metodo

estudado visa mitigar esse problema.

Tfixo =K

fo(3.3)

Onde K e um parametro que determina a fracao do total de frames que sera

extraıda do vıdeo,

Ffrac =F

K. (3.4)

A escolha de K e empırica e dependente de caracterısticas do vıdeo usado e do que se

deseja para a base a ser construıda. Note que, para K = 1, o metodo degenera para

a captura de todos os frames disponıveis, o que impoes uma restricao na escolha

desse parametro.

A vantagem desse metodo e que ele mantem o intervalo entre capturas de frames

constante, o que permite compreender mais facilmente qual sera o conjunto de ima-

gens resultantes de um determinado vıdeo. No entanto, usar o mesmo perıodo de

captura para o vıdeo inteiro resulta em uma base que pode sobre-representar classes

presentes em eventos longos e sub-representar as presentes em eventos curtos.

Isso se da porque os eventos dos vıdeos da base podem ter duracoes muito dife-

rentes, uns tendo pouco segundos enquanto outros chegam a 20 minutos ou mais.

O que determina essa distribuicao de classes e o conteudo do vıdeo. Alguns sao

28

Page 42: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

filmagens diversas e equilibradas de cada classe, ja outros contem apenas um evento

de uma unica classe. Assim, usar a mesma taxa de captura para eventos de duracao

diferente resulta em numeros muito dıspares de imagens extraıdas de cada evento,

o que causa um desequilıbrio na distribuicao de classes na base.

3.3.2 Perıodo de Captura Variavel

Uma forma de reduzir o desequilıbrio no numero de imagens obtida no metodo

de perıodo fixo e usar um perıodo de captura variavel com a duracao dos eventos.

Para isso, ele e recalculado para cada novo evento do vıdeo, de forma proporcional

a sua duracao. Dado um vıdeo com N eventos, i = 1, . . . , N , cada um com duracao

Di, o perıodo de captura usado no trecho do evento i sera:

Ti =K ×Di ×N

F(3.5)

E o numero de frames extraıdos de cada evento sera constante, a menos de erros

de aproximacao, sera

Fi = fi ×Di =Di

Ti=

F

K ×N, (3.6)

onde e esperado que fi = 1Ti

frames/s. Tem-se tambem que

N∑i=1

Fi = F (3.7)

Esse metodo permite que, para um evento muito longo, o perıodo de captura seja

maior e poucos frames sejam extraıdos. Da mesma forma, um perıodo curto tera

um perıodo de captura menor, e mais frames serao extraıdos. Entao, trechos do

vıdeo de maior atividade, onde ha mudancas frequentes de classe, sao representados

por mais imagens. Trechos de pouca atividade, com a presenca de uma mesma

classe por longos perıodos de tempo, necessitam de menos imagens para serem bem

representados e, assim, contribuem menos frames para a base.

No entanto, deve-se notar que usar esse metodo sem restricoes pode gerar valores

inadequados para Ti em algumas circunstancias. Eventos e, portanto, perıodos de

captura muito curtos produzem imagens similares demais, especialmente se Ti <1fo

.

29

Page 43: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Nesse caso, o intervalo de um perıodo nao muda o frame do vıdeo a ser capturado,

o que causa a adicao de multiplas copias do mesmo frame na base. Mesmo quando

isso nao ocorre, a Eq. (3.5) faz todos os eventos gerarem um mesmo numero de

imagens. No caso de eventos curtos, por exemplo, Di < 10 s, os frames capturados

se tornam muito similares, o que nao e desejavel na construcao da base.

Tmax > Ti > Tmın (3.8)

A solucao e limitar os valores que Ti pode assumir, de acordo com a Eq. 3.8

. Escolhendo Tmax e Tmın de forma adequada podemos evitar esses problemas. E

importante notar que as Eqs. (3.7) e (3.6) so sao validas para Ti sem limite de

valores. A forma de limitacao mais branda que deve ser implementada e Tmın >= 1fo

,

para evitar duplicatas de imagens na base, mas limites mais altos, que permitam

perıodos de captura mais longos, podem ser usados. Ha uma relacao entre o numero

de frames capturados por vıdeo e o quanto os parametros de captura sao altos. Na

pratica, Tmın limita o perıodo de eventos de curta duracao, enquanto Tmax limita os de

longa duracao. Quanto maior for Tmın, menos frames serao usados para representar

eventos curtos, sendo que pelo menos um frame sera sempre capturado de cada

evento. Por outro lado, quanto maior for Tmax, menos frames serao capturados em

eventos longos. No entanto, se esse limite for muito elevado, o perıodo escolhido pode

ser grande demais, aumentando a probabilidade de perder informacoes importantes

nesse evento, mesmo sem mudanca de classe.

Entao, deve-se permitir que Ti seja pequeno apenas quando necessario, mas isso

deve ser feito de forma indireta, atraves da escolha dos parametros. Essa escolha

e empırica e dependente da natureza dos vıdeos em questao e das caracterısticas

desejadas para a base. Como os vıdeos da base tem taxa de quadro entre 25 e

30 frames/s, deve-se, pelo menos, respeitar Tmın >= 0, 04 s. Durante este trabalho,

a escolha precisa desses parametros nao foi priorizada.

30

Page 44: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

3.4 Ajuste da Base

Apos a construcao inicial da base por meio do processo de captura de frames,

quase sempre ha imagens classificadas de modo incorreto ou imagens redundantes.

O primeiro caso e uma imagem que foi atribuıda a uma classe incorreta e, por isso,

tem o rotulo errado. O segundo caso ocorre quando muitos frames sao capturados

de um mesmo trecho do vıdeo, resultado de um perıodo de captura curto demais

ou uma peculiaridade do vıdeo, que poderia ser representado por uma fracao dessas

imagens. Em ambos os casos, corrigir essas discrepancias tende a aumentar o desem-

penho de classificacao, com a desvantagem do custo em tempo e esforco necessario

para realizar essa filtragem. Elas podem ser feitas por alguns metodos e dois serao

discutidos neste trabalho, dos quais apenas a filtragem manual foi usada na base

final.

3.4.1 Filtragem Manual

O metodo de ajuste mais simples e mais eficaz e a filtragem manual dos dados,

ou seja, uma pessoa observa todas as imagens e escolhe quais devem fazer parte da

base ou nao. Isso sempre e feito em menor ou maior escala pelo menos em partes

da base para verificar o funcionamento correto do algoritmo e refinar o processo de

anotacao, mas pode ser aplicado a base completa para remover imagens com erros e

redundancias. De forma geral, a filtragem busca remover dois tipos de imagem: as

com rotulos incorretos e as redundantes. Ambos serao detalhados a seguir.

Remover imagens com rotulos errados consiste em verificar se a classe presente na

imagem condiz com o rotulo a ela atribuıdo, requerendo pouca arbitragem por parte

do responsavel. Esse tipo de erro ocorre porque os vıdeos contem trechos ambıguos,

que nao podem ser prontamente atribuıdos a uma classe e requerem uma avaliacao

subjetiva do responsavel pela classificacao. Por exemplo, casos de imagens proximos

a fronteiras entre classes, onde ha mais de uma classe presente em um mesmo frame.

Esta ocorrencia e a maior fonte de erros de classificacao mas, alem disso, outros

fatores podem levar imagens a serem rotuladas incorretamente. Retirar esses erros

da base aumenta o desempenho de classificacao. Por vezes, o mais apropriado e nao

usar essas imagens ambıguas na base, para evitar prejudicar o algoritmo.

31

Page 45: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Identificar imagens redundantes pode ser menos objetivo e depende do nıvel de

concisao desejada para a base. Escolher menos frames para representar um determi-

nado evento de um vıdeo torna a base mais compacta, o que facilita o treinamento

do algoritmo. Por outro lado, pode levar a perda de informacao caso algum trecho

importante nao seja registrado. Escolher mais frames reduz a chance de ignorar tre-

chos relevantes e aumenta a quantidade de dados disponıveis, mas se muitas imagens

forem parecidas, isso nao se traduzira em maior desempenho, apenas aumentara o

tamanho da base e complexidade do treino desnecessariamente.

O processo de filtragem, entao, consiste em inspecionar cada imagem da base e

verificar se ela se enquadra em algum caso de discrepancia, ou se ela e indesejavel de

alguma forma, remove-la. O objetivo final e melhorar a qualidade da base e facilitar

o treinamento do algoritmo de classificacao. A partir disso, devem ser estabelecidos

criterios e definicoes para a filtragem, definindo em linhas gerais os tipos de imagens

que serao removidos e os que serao mantidos. Isso e necessario para promover

uma padronizacao do processo. Entretanto, como em toda atividade que envolve

o elemento humano, cada avaliador insere elementos subjetivos nos criterios, o que

gera uma variabilidade da selecao de imagens que a serem removidas. Alem disso, ha

casos em que os criterios estabelecidos nao sao suficientes e o avaliador precisa tomar

decisoes subjetivas como, por exemplo, decidir quantas imagens sao necessarias para

representar determinado evento.

Na maior parte dos casos, a filtragem manual e um processo que aprimora a

qualidade da base e deve ser feita, no mınimo, para remover dados espurios e se ter

uma percepcao do que esta sendo incorporado a ela. Nenhum metodo de construcao

de uma base de dados e livre de falhas ou consegue captar perfeitamente a intencao

do pesquisador, e isso e ainda mais valido para metodos automatizados. A montagem

das bases ate hoje tem sido largamente um esforco manual e por um bom motivo:

dessa forma se tem um controle completo sobre quais dados serao utilizados e quais

serao descartados, melhor capturando as intencoes do responsavel. A desvantagem

desse processo e o grande custo em tempo e esforco necessario, que cresce com o

tamanho da base e o numero de classes envolvidas.

32

Page 46: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

3.4.2 Filtragem por Similaridade

Um metodo menos dependente do julgamento humano e a filtragem por simila-

ridade. Ele consiste em calcular uma medida de similaridade de um frame com os

seguintes e, caso essa medida exceda um limite determinado, remover a imagem

da base. Ou, por uma abordagem inversa, manter apenas as imagens que tem a

medida em relacao as vizinhas dentro de um limite aceitavel e remover as demais.

Esse metodo pode ser utilizado porque os frames sao salvos em ordem a medida

que sao extraıdos dos vıdeos, gerando uma base com elementos que mantem uma

relacao temporal e semantica entre si: frames proximos tendem a ser similares entre

si, enquanto frames distantes, nao. A medida de similaridade abordada foi o Struc-

tural Similarity Index (SSIM), que oferece melhor avaliacao de similaridade entre

imagens, so que e mais custosa do que outras medidas mais simples. Por causa disso,

esse metodo nao foi usado nas bases testadas.

Tabela 3.3: Media dos valores das comparacoes SSIM, por classe, entre cada frame

i um vıdeo da base e cada um dos i + n frames seguintes, individualmente.

n Tubo Nada Conf

1 0,713 0,726 0,720

2 0,681 0,697 0,620

3 0,669 0,686 0,561

4 0,663 0,681 0,523

5 0,658 0,677 0,498

6 0,655 0,674 0,480

7 0,652 0,672 0,468

8 0,650 0,671 0,459

9 0,649 0,670 0,451

10 0,647 0,668 0,445

A vantagem desse metodo e a utilizacao de um criterio mais objetivo para de-

terminar se frames proximos sao redundantes ou nao, o que pode ser uma tarefa

muito subjetiva se realizada por um ser humano. A desvantagem e que ele re-

quer, no mınimo, uma comparacao entre cada imagem e sua seguinte, ou seja, uma

33

Page 47: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

comparacao para cada elemento da base, o que pode ser muito custoso computaci-

onalmente dependendo do seu tamanho.

O processo de filtragem deve ser executado para cada vıdeo na base individual-

mente, mantendo a relacao temporal entre frames. Para um determinado vıdeo e

para um limiar de decisao L:

1. Escolher o frame inicial i como referencia

2. Salvar o frame i

3. Calcular a similaridade S entre os frames i e i+ t

4. Se S < L:

(a) Salvar o frame i+ t

(b) Fazer i = i+ t

(c) Fazer t = 1

Caso contrario:

(a) Fazer t = t+1

(b) Voltar para o passo 3

O limiar de decisao L deve ser determinado de forma empırica, pois depende do

conteudo dos vıdeos, da aplicacao e dos objetivos para construcao da base. Assim,

foram feitos experimentos para determinar as caracterısticas de alguns vıdeos. Neles,

todos os frames desses vıdeos foram extraıdos e foi calculada a similaridade entre

cada frame e os dez seguintes, para trechos de cada classe. Esse experimento pode

ser usado para determinar L. A Tabela 3.3 contem essa analise para um conjunto

de 3 mil frames de um vıdeo, divididos em mil por classe. Para cada valor de n, o

valor medio das comparacoes foi obtido segundo

1

M

M∑i=1

SSIM(Ii, Ii+n), (3.9)

onde SSIM(Ii, Ij) indica a comparacao SSIM entre os frames i e j do conjunto de

imagens do vıdeo. Isso foi feito com M = 1000 frames consecutivos por classe.

34

Page 48: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

3.5 Teste da Base

Os testes da base foram feitos para determinar se ela permite o treinamento ade-

quado de um algoritmo de classificacao. O objetivo foi atingir um desempenho

de teste aceitavel. Para isso, foi usada uma implementacao da ResNet152 [5] pre-

treinada na base de dados ImageNet [6]. Os testes foram feitos, ao longo da ela-

boracao da base de dados, em colaboracao com Roberto de Moura Estevao Filho,

aluno de Doutorado da COPPE, um dos orientadores do projeto.

Como a rede ja foi treinada para classificar a base ImageNet, ela tem seus parametros

ajustados para identificar os padroes dessa base. A maior vantagem disso e a reducao

do esforco de treino necessario, pois e mais simples adaptar a rede para novas clas-

ses do que treina-la do zero. Assim, espera-se que as classes Duto, Nada e Confuso

tenham alguma similaridade cada uma com uma classe da ImageNet, permitindo

que os padroes ja aprendidos possam ser aproveitados para a tarefa atual. Foram

realizados testes com e sem retreino da rede. No ultimo caso, a rede pre-treinada

foi usada como extrator de caracterısticas, substituindo apenas sua camada de saıda

por uma outra adequada a tarefa de classificacao em questao. Essa nova camada foi

treinada enquanto o restante da rede teve seus pesos mantidos fixos. Treinar apenas

a camada de saıda exige menos esforco computacional, mas tende a ter resultados

piores do que treinar a rede completa. No caso com retreino, todas as camadas da

rede foram treinadas, o que permite que a rede utilize os padroes ja aprendidos como

base, incorporando os novos a partir dos antigos. Embora esse processo seja mais

complexo do que o anterior, ele tende a resultar em uma rede mais apta a identificar

novas classes.

Para a realizacao dos testes, varias bases candidatas foram geradas. Elas diferem

na quantidade de vıdeos usados, metodo de extracao de frames e realizacao de

filtragem ou nao. Cada uma foi usada para treinar e testar uma implementacao

distinta da rede e os resultados foram comparados. O objetivo foi verificar quais

fatores influenciam na qualidade da base.

As imagens das bases foram organizadas por vıdeo, onde as originarias de um

mesmo vıdeo pertencem a um mesmo conjunto, o que permitiu um melhor controle

35

Page 49: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

sobre a origem de cada uma. Cada base foi dividida em um conjunto de treino e um

de validacao. A escolha dos conjuntos de treino e validacao foi fundamental para

a avaliacao correta dos resultados. Como o interesse da base de dados e permitir

que a rede classifique corretamente imagens nunca antes vistas, um vıdeo cujas

imagens foram usadas no treino nao deve ser usado na validacao. Caso isso nao seja

possıvel, o mınimo a ser feito e garantir que imagens de um mesmo evento sejam

sempre atribuıdas a um mesmo conjunto. Nao tomar essa precaucao invalidaria

os resultados dos testes. A rede apresentaria um vies alto em relacao a imagens

ja vistas no treino e tera um resultado melhor em testes nessas circunstancias do

que em casos de uso real, nao tendo sua capacidade de generalizacao corretamente

avaliada.

Devido a natureza dos vıdeos de origem, as bases deles derivadas tendem a ter um

desbalanco entre as classes. As gravacoes tem como objetivo registrar a inspecao

das tubulacoes, entao a maior parte da sua duracao envolve dutos, que tende a

ser a classe com mais imagens. As demais possuem menos imagens e sao sub-

representadas. Tal desbalanco pode prejudicar o treino e desempenho da rede e

deve ser evitado. Esse efeito e bem explicado em [7] p. 237. As bases usadas para

treinamento devem buscar ter um mesmo numero de imagens para cada classe ou o

mais proximo disso quanto possıvel. Embora esse desequilıbrio possa ser compensado

durante o treinamento, a pouca disponibilidade de padroes de uma classe limita o

aprendizado do classificador e aumenta a chance de overfitting, sendo desejavel que

a base tenha o mesmo numero de exemplos em cada. Essa e a motivacao por tras

dos metodos de captura de frames usados para construir as bases, mas eles apenas

mitigam o problema. Na pratica, algumas imagens devem ser deixadas de lado

durante o treinamento, nao sendo usadas, para melhorar o equilıbrio entre classes.

Isso e feito descartando as imagens de alguns vıdeos, em conjunto, ao inves de

descartar imagens ao longo de toda a base, o que, na realidade, seria um processo de

filtragem manual. Alguns vıdeos com uma quantidade muito grande de imagens da

classe Duto e poucas ou nenhuma das demais classes foram descartados para manter

o equilıbrio entre classes, como pode ser observado na Tabela 3.4 no caso da Base

B, detalhada no Cap. 4. Embora isso diminua a diversidade de dados disponıveis

para essa classe, a reducao do desequilıbrio entre classes e benefica, e o resultado e

36

Page 50: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 3.4: Detalhamento da distribuicao das imagens no treino da Base B antes e

depois da remocao de vıdeos prejudiciais. Numero de imagens e percentual do total,

por classe.

Antes Depois

Imagens Percentual Imagens Percentual

Duto 22.771 73,7% 14.635 64,4%

Nada 5.841 18,9% 5.787 25,5%

Confuso 2.295 7,4% 2.295 10,1%

Total 28.819 100% 23.017 100%

um aumento de desempenho da rede neural.

As imagens das bases sao pre-processadas antes de serem usadas para o treina-

mento. Como as imagens podem ter resolucoes diferentes, primeiro sao redimen-

sionadas para o tamanho 255 × 255 pixels. Em seguida, e utilizada uma tecnica

de data augmentation, que consiste em realizar transformacoes sobre as imagens da

base para gerar mais dados disponıveis para a rede. As transformacoes utilizadas

sao cropping e flipping : o primeiro consiste em realizar cortes das imagens, onde

a area de cada um corresponde a, aproximadamente, 80% da area original da ima-

gem; o segundo consiste em espelhar as imagens ja cortadas. A medida que cada

imagem e carregada pelo programa, e decidido de forma aleatoria qual fracao da

imagem sera cortada e isso gera uma nova imagem que e usada para o treino da

rede durante essa epoca e, em seguida, ela e descartada. Os cortes tem dimensoes

244 × 244 pixels, para atender aos requisitos da ResNet. Esse processo se repete

para cada epoca de treinamento. Em cada uma, a rede recebe imagens diferentes,

oriundas das mesmas imagens, que sao as imagens da base. O processo de cortar e

redimensionar partes de imagens corresponde a um aumento de uma parte especıfica

de cada uma, o que evita, por exemplo, que um padrao seja sempre visto em uma

mesma parte das imagens. No conjunto de validacao, as imagens da base sao redi-

mensionadas para 255×255 e sofrem um corte centralizado de dimensoes 224×224,

sem fatores aleatorios. Data augmentation e um processo ja estabelecido [8] que

tende a melhorar a capacidade de generalizacao da rede, torna-la mais invariante a

37

Page 51: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

transformacoes dos padroes e, assim, aumentar seu desempenho de teste.

38

Page 52: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Capıtulo 4

Resultados

Nesse capıtulo sao descritas as bases criadas e os resultados dos testes feitos sobre

elas. O objetivo do trabalho foi criar uma base de qualidade para o treinamento

de algoritmos de classificacao, permitindo que novos vıdeos possam ser classificados

automaticamente. Tao importante quanto isso, foi determinar os melhores processos

de construcao de uma base para essa aplicacao. Com isso, novas bases podem ser

criadas a medida mais vıdeos sao disponibilizados ou os processo sao aperfeicoados.

Assim, foi necessario testar todas as bases candidatas e escolher a que foi classificada

com maior desempenho de teste pela rede neural, assim como os processos usados

para cria-la.

4.1 Base de Dados

A partir da base de vıdeos original, foram geradas 4 bases de imagens, todas

construıdas atraves da captura de frames com perıodo variavel. Cada uma usou

parametros diferentes e foi baseada em um determinado conjunto de vıdeos. A

motivacao foi determinar o melhor metodo de construcao, tendo como criterio o

desempenho de classificacao no conjunto de teste. Algumas bases sao derivadas

de conjuntos diferentes de vıdeos porque os testes foram sendo realizados ao longo

do processo de classificacao, assim, os testes mais antigos foram feitos sobre bases

menores.

39

Page 53: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 4.1: Nove imagens amostradas aleatoriamente da base C. Comecando do

canto superior esquerdo, da esquerda para a direita, de cima para baixo, suas classes

sao: Duto, Duto, Confuso, Confuso, Duto, Duto, Nada, Confuso, Duto.

A Base A foi gerada a partir de 4 vıdeos, com um total de 5h 06m. Foi usado o

metodo de extracao com perıodo variavel com parametros: Tmax = 5 s, Tmin = 0, 6 s,

que corresponde a, no mınimo, uma captura a cada 125 frames e, no maximo, uma

captura a cada 15 frames, para uma taxa de quadros de 25 frames/s. Como ela foi

criada a partir de muito menos vıdeos que as outras, e esperado que seus resultados

sejam piores. Suas caracterısticas podem ser observadas na Tabela 4.1.

As Bases B e C foram geradas praticamente a partir dos mesmo vıdeos. A base C e

fruto de 23 vıdeos, com um total de 18h 15m 47s, enquanto a Base B foi construıda a

partir de um vıdeo a mais, de 3h 45m 58s. A diferenca principal esta nos parametros

usados para sua construcao. Na base B, foi usado o metodo de extracao com perıodo

variavel com parametros: Tmax = 20 s, Tmin = 0,8 s, que corresponde a, no mınimo,

uma captura a cada 500 frames e, no maximo, uma captura a cada 20 frames. Na

base C, foi usado o mesmo metodo, mas com parametros: Tmax = 20 s, Tmin = 1,2 s,

que corresponde a, no mınimo, uma captura a cada 500 frames e, no maximo, uma

captura a cada 30 frames. Suas caracterısticas podem ser observadas nas Tabelas

40

Page 54: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 4.1: Caracterısticas da Base A: Numero de vıdeos e parametros usados para

construcao, contagem de imagens de cada classe e tamanho em disco da base.

Vıdeos 4

Tmax (s) 5

Tmın (s) 0,6

Duto 8.890

Nada 2.914

Confuso 4.147

Total 15.951

Tamanho 1,6 GB

Tabela 4.2: Caracterısticas da Base B

Vıdeos 24

Tmax (s) 20

Tmın (s) 0,8

Duto 27.152

Nada 7.906

Confuso 4.444

Total 39.502

Tamanho 4,0 GB

4.2 e 4.3. A Fig. 4.1 contem exemplos de imagens capturadas da Base C e suas

classes.

A Base D foi gerada a partir da filtragem manual da Base B. Procurou-se se-

lecionar apenas as imagens da base que fossem representativas de cada trecho do

vıdeo, evitando imagens redundantes. Isso diminuiu significativamente o tamanho

e complexidade da base. Os criterios usados para realizar a filtragem se basea-

ram em remover imagens similares entre si, especialmente de um mesmo evento.

O processo de captura automatico salva muitas imagens parecidas na base, o que

nao contribui para a diversidade de padroes necessaria para treinar um algoritmo

de classificacao e promove o aumento do seu tamanho e complexidade, assim como

o desbalanco das classes. Portanto, a filtragem manual foi utilizada para atenuar

41

Page 55: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 4.3: Caracterısticas da Base C

Vıdeos 23

Tmax (s) 20

Tmın (s) 1,2

Duto 19.166

Nada 3.858

Confuso 3.194

Total 26.218

Tamanho 2,9 GB

Tabela 4.4: Caracterısticas da Base D. Note que essa e uma base derivada da Base B

e os parametros Tmax e Tmin indicados referem-se ao processo usado para construı-la.

Vıdeos 24

Tmax (s) 20

Tmın (s) 0,8

Duto 1.265

Nada 348

Confuso 215

Total 1.889

Tamanho 0,2 GB

essas deficiencias. Ela foi feita a partir da Base B, ao inves da Base C, porque essa

possui Tmin = 0, 8 s, o que tende a gerar uma base com mais imagens, enquanto a

Base C e mais compacta. Ter mais imagens significa mais trabalho para realizar a

filtragem, mas, tambem, aumenta as imagens disponıveis para montagem dessa nova

base, uma troca benefica. Suas caracterısticas podem ser observadas na Tabela 4.4.

4.2 Resultados dos Testes

A partir das bases candidatas, foram realizados os testes descritos na secao 3.5.

A seguir, sao expostos seus resultados, comparando o desempenho de cada base.

42

Page 56: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 4.5: Caracterısticas e desempenho de todas as bases

Base de Dados No de Vıdeos Tam. da Base Acuracia F1

Base A 4 15.951 55,7% 0,51

Base B 24 39.502 78,6% 0,75

Base C 23 26.218 78,4% 0,74

Base D 24 1.889 81,7% 0,82

Na Tabela 4.5 estao resumidas as informacoes sobre as bases e seus desempenho

nos testes. Os valores de acuracia e F1 sao medias das medidas de 5 testes, cada

um correspondente a um treino e avaliacao de uma rede independente. Como ha

fatores aleatorios no treinamento de redes neurais, essas estatısticas dao uma visao

mais precisa do desempenho. A acuracia foi medida como a razao entre exemplos

previstos corretamente e o total de exemplos no conjunto de validacao. A medida

F1 e calculada a partir da matriz de confusao obtida pela rede, o que permite uma

analise mais ampla para problemas com classes desbalanceadas. Em cada base,

alguns vıdeos foram descartados por prejudicar muito o equilıbrio entre o tamanho

das classes. Assim, o numero de imagens usados de fato no treino e menor que o

total disponıvel. A Tabela 4.6 tem uma relacao do numero de imagens usados no

treino e validacao em cada base.

Tabela 4.6: Comparacao entre o numero de imagens usadas no treino e acuracia ob-

tida em cada base. Imagens/vıdeo refere-se ao numero medio de imagens capturadas

de cada vıdeo para compor a base.

Vıdeos Treino Validacao Imagens/Vıdeo Acuracia

Base A 4 14.390 1.561 3.987 55,7%

Base B 18 22.717 8.595 1.262 78,6%

Base C 19 12.047 7.174 634 78,4%

Base D 19 1.335 493 70 81,7%

A Base A foi construıda com apenas 4 vıdeos, entao era esperado que seu de-

sempenho fosse pior que as outras. A captura de frames no seu caso foi feita com

parametros mais baixos que nas Bases B e C, o que levou a um perıodo medio de

captura baixo, a inclusao de muitas imagens similares para cada vıdeo e a uma

43

Page 57: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Tabela 4.7: F1 medio por classe.

F1 \ Base A B C D

Duto 0,579 0,858 0,883 0,842

Nada 0,840 0,710 0,656 0,727

Confuso 0,107 0,695 0,672 0,895

Medio 0,509 0,754 0,737 0,821

razao de frames capturados por vıdeo mais alta do que nas demais. A Base B foi

construıda usando parametros mais altos que a Base A, mas mais baixos que a Base

C. Portanto, ela contem menos frames por vıdeo que a Base A e mais que a Base

C. As diferencas entre as acuracias e medidas F1 das Bases B e C sao pequenas

(menor que 0,5% e 0,02, respectivamente), embora a primeira tenha mais de 13 mil

imagens a mais que a segunda. A base que obteve o melhor desempenho foi a Base

D, que tem o menor numero de dados. Uma possıvel explicacao e que isso ocorre

pois suas imagens foram selecionadas de modo a mitigar o desequilıbrio no numero

de imagens por classe e utilizar somente as melhores imagens de cada evento: as

mais claras e com menos ambiguidade quanto a classificacao. Isso facilita o treino

e, em ultima instancia, melhora o desempenho.

As Figs. 4.2, 4.3, 4.4 e 4.5 mostram as matrizes de confusao media para cada

base e a Tabela 4.7, as medidas F1 por classe de cada base. As matrizes de confusao

mostram a distribuicao dos resultados dos testes, as previsoes corretas e incorretas

feitas pela rede em cada caso. Elas permitem analisar qual tipo de erro esta sendo

cometido pelo classificador. O cenario ideal e quando todas as previsoes condizem

com as classes reais, ou seja, estao na diagonal principal da matriz. Observando

a matriz de confusao da Base B, pode-se ver que a classe com maior numero de

previsoes corretas foi a classe Duto, que e a classe de interesse do trabalho. Isso e

bom, mas foi feito priorizando a deteccao dessa classe em detrimento das demais,

embora o numero de falsos positivos seja pequeno em comparacao com os verdadeiros

positivos e precisao da classe Duto se mantenha alta. Uma explicacao para esse

fenomeno e o desequilıbrio entre as classes, pois a base possui muito mais exemplos

de dutos no conjunto de treino do que das demais, como pode ser visto na Tabela

44

Page 58: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 4.2: Matriz de confusao media da Base A. Na matriz da esquerda, os valores

indicados sao media e desvio-padrao para cada par “classe predita / classe verda-

deira”, no formato Media ± Desvio-Padrao, dos dados do conjunto de validacao. Na

matriz da direita, os valores foram normalizados por linha, indicando o percentual

em relacao ao total dos rotulos verdadeiros por classe. As estatısticas foram obtidas

ao longo de 5 testes. A escala de cores indica a diferenca relativa entre as medias.

3.4. Tambem se nota a alta taxa de erro na classe Confuso, que e confundida com

as outras em muitos casos. Isso pode ocorrer pelo fato de ela ter poucos exemplos

disponıveis, pela qualidade dos exemplos ser baixa ou pelos exemplos dessa classe,

nesta base, serem mais difıceis de discriminar do que os das outras classes. A matriz

da Base C e parecida com a da Base B, sendo que as maiores diferencas sao que o

classificador tem uma maior taxa de acerto na classe Duto, mas ela e ligeiramente

menor nas demais. De modo geral, os resultados das Bases B e C sao similares. A

Base D apresenta melhores resultados do que as demais, tendo F1 por classe maior

que as Bases B e C, exceto na classe Duto, onde a Base C a supera. A maior

fonte de erros dessa base e a confusao entre as classes Duto e Nada, que pode ser

possivelmente explicada pelo grande numero de imagens ambıguas de dutos nessa

base. Embora elas tambem estivessem presentes na Base B, elas podem compor

uma proporcao maior das imagens dessa classe na Base D.

45

Page 59: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 4.3: Matriz de confusao media da Base B. Na esquerda com valores absolutos

e na direita, percentuais.

Figura 4.4: Matriz de confusao media da Base C. Na esquerda com valores absolutos

e na direita, percentuais.

46

Page 60: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Figura 4.5: Matriz de confusao media da Base D. Na esquerda com valores absolutos

e na direita, percentuais.

47

Page 61: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Capıtulo 5

Conclusoes

O trabalho resultou em quatro bases de dados e um procedimento de construcao.

Dentre as bases, as que obtiveram melhores resultados foram as que utilizaram mais

vıdeos, evitaram a captura redundante de imagens e passaram por um processo de

filtragem das imagens. Assim, o processo recomendado para construcao de uma

base de dados para a aplicacao e a anotacao cuidadosa do maior numero de vıdeos

possıvel, seguido pela captura de frames com perıodo variavel e a selecao das me-

lhores imagens obtidas. Esse processo deve visar uma divisao igual dos exemplos

entre as classes do problema e a diversidade das imagens, cuidados que facilitam o

treinamento do classificador. A seguir, serao discutidas conclusoes mais especıficas.

As bases B e C obtiveram resultados similares. Como elas foram construıdas a

partir do mesmo conjunto de vıdeos, exceto um, isso nao era inesperado. A diferenca

entre elas e que a Base B possui 13 mil exemplos e 1 GB a mais do que a Base C, o

que torna esta mais facil de armazenar, treinar e manipular. A Base B tem muitas

imagens redundantes, que sao diferentes, mas muito parecidas. Elas nao contribuem

muito para o treino da rede, apenas reforcam padroes que ela ja aprenderia das outras

imagens similares, o que nem sempre e bom. Deve-se evitar construir uma base com

muitas imagens com essa relacao. Por outro lado, a busca por reduzir o numero de

imagens redundantes pode levar a nao adicao de imagens relevantes na base, o que

seria ainda pior. Uma base com imagens demais pode ser filtrada, mas uma com

imagens a menos, nao.

48

Page 62: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

A Base D e derivada da Base B. As imagens da primeira pertencem a um subcon-

junto das imagens da segunda. Assim, pode-se verificar que seus resultados foram

um pouco melhores que os das Bases B e C, mas sua maior virtude e atingir esse

desempenho apenas com uma fracao do tamanho das outras bases. Esse efeito pode

ser observado ao comparar o desempenho das bases B e C, enquanto a Base D o

demonstra de forma ainda mais intensa, tendo a mesma explicacao. Ela possui 1.889

imagens, que correspondem a 7,2% do tamanho da Base C e 4,8% da Base B. A

Base D foi construıda por meio da filtragem da Base B, onde foram mantidas apenas

as melhores imagens: as mais distintas e menos ambıguas. Esse procedimento reduz

tanto quanto possıvel o numero de redundancias na base, embora possa acarretar

alguma perda de informacao, caso a filtragem nao seja feita de forma cuidadosa. Ela

e um processo humano e subjetivo, pois envolve decidir quais imagens sao diferen-

tes o bastante apenas com o julgamento do responsavel pela filtragem. Portanto, e

difıcil garantir que o melhor resultado possıvel sera atingido.

Os resultados parecem mostrar que o melhor processo dentre os testados e a cap-

tura de frames usando perıodo variavel, com parametros minimamente bem ajus-

tados para a aplicacao, seguida pela filtragem manual da base. Outras estrategias

tambem podem se mostrar bem sucedidas, como, por exemplo, capturar todos os

frames de um vıdeo e realizar a filtragem sobre essas imagens, para reduzir o risco

de permitir um perıodo de captura longo demais durante algum evento e perder

frames relevantes. No entanto, uma base desse tipo requereria um esforco muito

grande para filtragem, ja que seria ordens de grandeza maior do que a usada. Um

vıdeo de 30 min de duracao com taxa de quadros de 30 frames/s possui 54.000

frames, ou seja, seria maior que a Base B inteira, construıda a partir de mais de

22 horas de vıdeo. O processo de captura de frames proposto funciona como uma

pre-filtragem, reduzindo muito o esforco necessario posteriormente, oferecendo uma

relacao atraente entre perda de informacao e reducao de esforco.

Ainda restam 68 vıdeos a classificar e incluir na base, o que seria uma maneira

segura de aumentar o desempenho de um classificador nela treinado. Porem, um

padrao verificado durante o trabalho e que um aumento da quantidade de imagens na

base nao e garantia de aumento de desempenho. Este tem relacao com a diversidade

49

Page 63: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

de imagens e padroes usados para treinar o classificador. Capturar menos imagens

de um numero maior de vıdeos tem resultado melhor que capturar muitas imagens

de poucos vıdeos.

Uma vertente que ainda pode ser melhor explorada e o uso de medidas de simi-

laridade como auxılio a filtragem manual ou como avaliacao da qualidade de uma

base. Isso se fundamenta nas suposicoes de que imagens muito parecidas tem me-

dida de similaridade alta, o que e razoavel, e que uma base de dados com imagens

pouco similares e melhor do que o inverso, o que nao necessariamente e verdade e

precisa ser explorado com mais cuidado. Entretanto, caso essas se sustentem, as

medidas poderiam ser ferramentas uteis para auxiliar na construcao de bases de

dados. Realizar uma pre-filtragem juntamente com a selecao manual das imagens

poderia indicar as que sao mais parecidas e candidatas mais fortes para remocao. O

valor medio de similaridade entre imagens vizinhas de uma base de vıdeos poderia

fornecer uma indicacao mais objetiva da qualidade desta, sem necessitar treinar e

testar um classificador para obter uma medida de desempenho, processo que pode

ser custoso e demorado, especialmente para bases muito grandes.

Um passo alem para esse projeto, seria classificar tambem danos, avarias e outros

eventos de interesse que ocorrem nos dutos. Esse e o objetivo e o contexto da

aplicacao de inspecao de tubulacoes, sendo a progressao natural desse trabalho.

Como e esperado que esses eventos sejam raros ou incomuns durante a inspecao de

uma tubulacao, a quantidade de exemplos disponıveis para treinar um classificador

seria um desafio.

50

Page 64: CONSTRUC˘AO DE UMA BASE DE DADOS PARA~ …monografias.poli.ufrj.br/monografias/monopoli10024539.pdf · Olavo Arg^olo Batista Sampaio Projeto de Gradua˘c~ao apresentado ao Curso

Referencias Bibliograficas

[1] GOODFELLOW, I., BENGIO, Y., COURVILLE, A., Deep Learning. Cam-

bridge, MA, EUA, MIT Press, 2016. http://www.deeplearningbook.org.

[2] HAYKIN, S., Neural Networks and Learning Machines. Upper Saddle River, NJ,

EUA, Pearson Education, 2009.

[3] CYBENKO, G., “Approximation by Superpositions of a Sigmoidal Function”,

Mathematics of Control, Signals, and Systems, v. 2, pp. 303–314, 2002.

[4] JAPKOWICZ, N., SHAH, M., Evaluating Learning Algorithms A Classification

Perspective. New York, NY, EUA, Cambridge University Press, 2011.

[5] HE, K., ZHANG, X., REN, S., et al., “Deep Residual Learning for Image Re-

cognition”, CoRR, v. abs/1512.03385, 2015.

[6] DENG, J., DONG, W., SOCHER, R., et al., “Imagenet: A large-scale hierarchi-

cal image database”. In: CVPR, 2009.

[7] KOUTROUMBAS, S. T. K., Pattern Recognition. 4 ed. Burlington, MA, EUA,

Academic Press, 2009.

[8] SZEGEDY, C., LIU, W., JIA, Y., et al., “Going Deeper with Convolutions”,

CoRR, v. abs/1409.4842, 2014.

51