Tutorial de visão computacional em python

Post on 10-Dec-2015

301 views 61 download

description

Tutorial ensinando usar ferramentas do pacote scykit para extrair processar, extrair características e classificar imagens usando python

Transcript of Tutorial de visão computacional em python

Programa de Pos-Graduacao em Ciencia da ComputacaoVisao Computacional

Tratamento, Extracao deCaracterısticas e

Classificacao da Base deDados LeafDB

Leandro Aparecido Passos Junior

Prof. Dr. Alexandre Luıs Magalhaes Levada

Departamento de Computacao, Universidade Federal de Sao Carlos

11 de junho de 2015

Lista de Figuras

2.1 Codigo utilizado para carregar imagens e converte-las paraimagens em tons de cinza. Note que o procedimento e execu-tado apenas para a classe circinatum, e deve ser repetido paraas demais classes. . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Chamada ao filtro mediano, para borramento de imagens. . . . 92.3 Aplicacao do filtro mediano. Em (a) podemos ver a imagem

em tons de cinza. (b) e (c) apresentam a filtragem com matrizde discos de tamanho 5 e 10, respectivamente. . . . . . . . . . 10

2.4 Chamada ao algoritmo Canny, para deteccao de bordas. . . . . 102.5 Aplicacao do filtro Canny. Em (a) podemos ver a imagem em

tons de cinza. (b) e (c) apresentam a filtragem com σ=1.0 eσ=3.0, respectivamente. . . . . . . . . . . . . . . . . . . . . . 10

3.1 Adicionando ruıdo Gaussiano a imagem. . . . . . . . . . . . . 113.2 Em (a) podemos ver a imagem em tons de cinza, e em (b) a

imagem com adicao de ruıdo Gaussiano. . . . . . . . . . . . . 123.3 Adicionando ruıdo Gaussiano a imagem. . . . . . . . . . . . . 123.4 Imagem original, com adicao de ruıdo Gaussiano e restaurada

pelo Filtro de Wiener em (a), (b) e (c), respectivamente. . . . 13

4.1 Script utilizado para gerar o histograma. . . . . . . . . . . . . 154.2 Imagem e histograma em (a), e os mesmos equalizados em (b). 154.3 Codigo utilizado para binarizacao por Limiar de Otsu . . . . . 164.4 (a) e (b) apresentam as imagens original e binarizada, respec-

tivamente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1 Contorno parametrico da imagem atraves do metodo MarchingSquares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2

5.2 Imagem binarizada em (a). Extracao do contorno da imagemem (b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6.1 Transformada Eixo Medial. . . . . . . . . . . . . . . . . . . . . 196.2 Imagem binarizada (a), esqueleto (b), Transformada Medial

do eixo em nıveis de cinza (c) e exemplo com limiar = 50 (d). 20

7.1 Reconstrucao da forma atraves do esqueleto em conjunto coma Transformada Distancia. . . . . . . . . . . . . . . . . . . . . 22

7.2 Nas imagens (a) e (b) podemos ver o esqueleto da imagem esua reconstrucao, respectivamente, sem filtrar qualquer deta-lhe (limiar = 0). Similarmente, (b) e (e) mostram os resultadoscom um limiar = 10, e (c) e (f) com limiar = 50. . . . . . . . 23

8.1 Pontos de curvatura chave. Note que necessita diversosparametros, que influenciam na escolha desses pontos. . . . . . 24

8.2 Pontos chaves da curvatura para uma imagem da classe Circi-natum, Garryana e Kelloggii em (a), (b) e (c), respectivamente. 25

8.3 Implementacao de Equacao 8.1 para extracao da curvatura local. 26

9.1 Exemplo de folhas Circinatum, Garryana e Kelloggii em (a),(b) e (c), respectivamente. . . . . . . . . . . . . . . . . . . . . 28

10.1 Grade de busca dos melhores parametros. . . . . . . . . . . . . 31

A.1 Colecao de imagens da classe Circinatum utilizadas nos expe-rimentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

A.2 Colecao de imagens da classe Garryana utilizadas nos experi-mentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

A.3 Colecao de imagens da classe Kelloggii utilizadas nos experi-mentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Sumario

1 Introducao 61.1 Ferramentas utilizadas no trabalho . . . . . . . . . . . . . . . 7

2 Leitura e filtragem de imagens por convolucao 82.1 Leitura e conversao para escala de cinza . . . . . . . . . . . . 82.2 Filtros passa-baixas e passa-altas . . . . . . . . . . . . . . . . 9

2.2.1 Filtro Passa-Baixas: Filtro Mediano para borramentoda imagem . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.2 Filtro Passa-altas: Algoritmo Canny para deteccao debordas . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Ruıdo Gaussiano e o Filtro de Wiener 113.1 Adicionando ruido Gaussiano a uma imagem . . . . . . . . . . 113.2 Removendo ruido Gaussiano com o filtro de Wiener . . . . . . 12

4 Histograma e Limiarizacao de Otsu 144.1 Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.1.1 Binarizacao pelo Limiar de Otsu . . . . . . . . . . . . . 14

5 Extracao parametrica do contorno: MarchingSquares 17

6 Esqueletizacao: Medial Axis Transform 19

7 Reconstrucao de imagem utilizando Transformada do EixoMedial e Mapa Distancia 21

8 Curvatura 248.1 CENSURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248.2 Curvatura Local . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4

9 Caracterısticas 279.1 Seleccao das amostras . . . . . . . . . . . . . . . . . . . . . . 279.2 Seleccao das Caracteristicas . . . . . . . . . . . . . . . . . . . 27

10 Classificacao 2910.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

10.1.1 Base de dados . . . . . . . . . . . . . . . . . . . . . . . 2910.1.2 Classificador SVM . . . . . . . . . . . . . . . . . . . . 30

10.2 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

11 Conclusoes 32

A Amostras selecionadas para a base de dados 33A.1 Circinatum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33A.2 Garryana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33A.3 Kelloggii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Capıtulo 1

Introducao

Durante o curso de visao computacional, aprendemos diversas tecnicas paratratamento de imagens, extracao de formas e caracterısticas e classificacaode dados. Este trabalho visa sintetizar o conteudo aprendido em um exemplopratico onde temos uma base de dados com imagens de folhas, e desejamosreconhece-las e classifica-las fazendo uso das tecnicas aprendidas. Um poucomais detalhadamente, o objetivo desse trabalho e seguir os seguintes passos:

• Leitura e filtragem de imagens por convolucao (com mascaras de filtrospassa baixas para borramento e passa altas para detectar bordas nodomınio do espaco)

• Filtragem adaptativa de imagens (filtro de Wiener adaptativo pararemocao de ruıdo Gaussiano): adicionar ruıdo gaussiano na imageme depois filtrar

• Geracao do histograma das imagens e binarizacao com o algoritmo deOtsu

• Extracao parametrica do contorno das imagens (capturar a forma dosobjetos)

• Esqueletizacao (Medial Axis Transform) das formas (extrair esqueletodas imagens)

• Reconstrucao nao linear de objetos atraves da Transformada Distanciae do esqueleto

6

• Calculo da curvatura local para cada ponto do objeto (funcao que as-socia a cada ponto do contorno um valor de curvatura)

• Calculo de descritores de formas: curvatura media (media da curva-tura para todos os pontos), area, comprimento de arco, tamanho doesqueleto, etc.

• Classificacao dos padroes com uma tecnica supervisionada vista nocurso (MAP, KNN, NMC, SVM)

• Avaliacao do desempenho atraves da matriz de confusao (taxa de acertoou erro)

1.1 Ferramentas utilizadas no trabalho

A maioria dos scripts desse trabalho foram desenvolvidos na linguagemPython, usando um conjunto de ferramentas desenvolvidos para Processa-mento de Imagens [1], Aprendizado de Maquinas [2], plotagem de dados[3], entre outras ferramentas uteis para processos de Visao Computacional.

Todas essas ferramentas podem ser instaladas simultaneamentesatraves da distribuicao Anaconda, disponıvel para download pelo linkhttp://continuum.io/downloads.

Alem das ferramentas em python, foi utilizada uma funcao da bibliotecaLibOPF [4], disponıvel em http://www.ic.unicamp.br/ afalcao/libopf/, paradividir e normalizar o conjunto de dados.

Nos capıtulos a seguir, cada um desses passos serao abordados, apresen-tando os codigos - escritos em Python - e metodos utilizados. Em seguidaserao apresentados os resultados obtidos na classificacao, atraves do algo-ritmo SVM, e finalmente uma conclusao do trabalho.

Capıtulo 2

Leitura e filtragem de imagenspor convolucao

Esse capıtulo apresenta uma breve descricao do procedimento adotado paraleitura das imagens e a filtragem por convolucao, utilizando-se de mascarasde filtros passa baixas para borramento e passa altas para detectar bordasno domınio do espaco. O processo utilizado e apresentado a seguir:

2.1 Leitura e conversao para escala de cinza

Para carregar as imagens e converte-las para tons de cinza, foram usadas asferramentas io e color da biblioteca scikit-image, respectivamente. O codigoe apresentado a seguir [1]:

Figura 2.1: Codigo utilizado para carregar imagens e converte-las para ima-gens em tons de cinza. Note que o procedimento e executado apenas para aclasse circinatum, e deve ser repetido para as demais classes.

8

2.2 Filtros passa-baixas e passa-altas

Os filtros sao transformacoes aplicadas na imagem utilizados como um tra-tamento previo. Os filtros passa baixa ’borram’ a imagem, suavizando suasbordas, a fim de que detalhes pequenos sejam mais suaves e menos sensıveis.Ja os filtros passa alta destacam os pontos onde o contraste e alto, evidenci-ando assim o contorno ou bordas das imagens.

2.2.1 Filtro Passa-Baixas: Filtro Mediano para borra-mento da imagem

Para exemplificar a filtragem de passa-baixas, foi utilizado o filtro medi-ano [1].

Figura 2.2: Chamada ao filtro mediano, para borramento de imagens.

O resultado pode ser visto na Figura 2.3. Note que o algoritmo requercomo parametro uma matriz binaria, onde os 1’s formam um disco central.Para criar essa matriz, foi utilizada a funcao disk.

2.2.2 Filtro Passa-altas: Algoritmo Canny para de-teccao de bordas

Para a filtragem passa-altas foi utilizado o algoritmo Canny. Sua chamadaem Python foi executada da seguinte maneira [1]:

O resultado pode ser visto na Figura 2.5.A proxima secao aborda o metodo empregado para Filtragem adaptativa

das imagens

(a) (b) (c)

Figura 2.3: Aplicacao do filtro mediano. Em (a) podemos ver a imagemem tons de cinza. (b) e (c) apresentam a filtragem com matriz de discos detamanho 5 e 10, respectivamente.

Figura 2.4: Chamada ao algoritmo Canny, para deteccao de bordas.

(a) (b) (c)

Figura 2.5: Aplicacao do filtro Canny. Em (a) podemos ver a imagem emtons de cinza. (b) e (c) apresentam a filtragem com σ=1.0 e σ=3.0, respec-tivamente.

Capıtulo 3

Ruıdo Gaussiano e o Filtro deWiener

Neste capıtulo sera apresentado o problema de ruıdo Gaussiano e sua remocaoatraves do filtro de Wiener. Para isso, iremos adicionar um ruıdo Gaussianoem uma imagem e em seguida a trataremos com o filtro de Wiener.

3.1 Adicionando ruido Gaussiano a uma ima-

gem

Para adicionar ruido Gaussiano em uma imagem, utilizarem a funcao ran-dom noise, disponıvel no Scikit-Image [1]:

Figura 3.1: Adicionando ruıdo Gaussiano a imagem.

O resultado pode ser visto na Figura 3.2.

11

(a) (b)

Figura 3.2: Em (a) podemos ver a imagem em tons de cinza, e em (b) aimagem com adicao de ruıdo Gaussiano.

3.2 Removendo ruido Gaussiano com o filtro

de Wiener

Para restauracao da imagem, perturbada com um ruıdo Gaussiano, utilizare-mos a deconvolucao Wiener-Hunt. Note que sao necessarios dois parametros:

• PSF - Point Spread Function: Uma matriz quadrada onde todos osvalores sao iguais a 1 e representa o impulso de resposta.

• Balance: parametro de regularizacao que mantem equilıbrio entre res-tauracao e ruıdo.

Figura 3.3: Adicionando ruıdo Gaussiano a imagem.

Na Figura 3.4 podemos observar a imagem original, a mesma imagemcom adicao de ruıdo Gaussiano e em seguida a imagem restaurada pelo filtrode Wiener.

(a) (b) (c)

Figura 3.4: Imagem original, com adicao de ruıdo Gaussiano e restauradapelo Filtro de Wiener em (a), (b) e (c), respectivamente.

Na proxima secao, abordaremos o metodo utilizado para geracao do his-tograma e binarizacao da imagem utilizando o metodo de Otsu.

Capıtulo 4

Histograma e Limiarizacao deOtsu

Neste capıtulo sera apresentado o conceito de histograma e um algoritmo desegmentacao, ou binarizacao para o caso de duas classes, denominado Limiarde Otsu.

4.1 Histograma

O histograma e uma ferramenta que permite identificar a distribuicao daintesidade dos pixels pela imagem. Redistribuindo esses pixels, podemosfazer a equalizacao do histograma, a qual e uma tecnica muito util paraaumentar o contraste da imagem.

Na Figura 4.2 podemos observar o histograma da imagem, e como elapassa a ser apos a equalizacao do histograma:

4.1.1 Binarizacao pelo Limiar de Otsu

O algoritmo de Otsu procura por vales no histograma da imagem e posicionaseu limiar de modo que o espalhamento intra-classe seja mınimo. O scriptapresentado na Figura 4.3 apresenta o codigo utilizado para sua execucao,utilizando ferramentas do Sckit-Image [1].

O resultado obtido pela binarizacao pode ser visto na Figura 4.4.A seguir, utilizaremos

14

Figura 4.1: Script utilizado para gerar o histograma.

0.0 0.2 0.4 0.6 0.8 1.0Intensidade do Pixel

0.0 0.2 0.4 0.6 0.8 1.0Intensidade do Pixel

(a) (b)

Figura 4.2: Imagem e histograma em (a), e os mesmos equalizados em (b).

Figura 4.3: Codigo utilizado para binarizacao por Limiar de Otsu

(a) (b)

Figura 4.4: (a) e (b) apresentam as imagens original e binarizada, respecti-vamente.

Capıtulo 5

Extracao parametrica docontorno: MarchingSquares

Para a extracao parametrica do contorno, utilizaremos o metodo“MarchingSquares”. O script utilizado pode ser visto na Figura 5.1.

Figura 5.1: Contorno parametrico da imagem atraves do metodo MarchingSquares.

Podemos visualizar o resultado atraves da Figura 5.2.

17

(a) (b)

Figura 5.2: Imagem binarizada em (a). Extracao do contorno da imagem em(b).

Capıtulo 6

Esqueletizacao: Medial AxisTransform

Neste capıtulo, faremos a esqueletizacao da imagem, ou mais precisamente,faremos a transformada do eixo medial.

O Eixo medial representa a hierarquia das partes que compoem a forma.Define um conjunto dos pontos do objeto pelos centros dos circulos que saobitangentes ao contorno da forma e encontram-se totalmente dentro delas.

Figura 6.1: Transformada Eixo Medial.

E importante lembrar que para gerar o esqueleto da imagem, devemosestabelecer um limiar na Transformada Medial. Esse limiar vai definir aquantidade de detalhes do esqueleto

A Figura 6.2 apresenta a esqueletizacao e a Transformada:A seguir, utilizaremos o a Transformada Medial do eixo em conjunto com

o mapa distancia para reconstrucao da forma da imagem.

19

(a) (b)

0

20

40

60

80

100

120

140

160

180

(c) (d)

Figura 6.2: Imagem binarizada (a), esqueleto (b), Transformada Medial doeixo em nıveis de cinza (c) e exemplo com limiar = 50 (d).

Capıtulo 7

Reconstrucao de imagemutilizando Transformada doEixo Medial e Mapa Distancia

Neste capıtulo, utilizaremos a da Transformada do Eixo medial, vista nocapıtulo anterior, em conjunto com a Transformada Distancia para recons-truir a imagem.

A ideia e pegar a distancia, obtida atraves da Transformada Distancia,em cada ponto do esqueleto e pintar um circulo em volta com raio igual aessa distancia. O algoritmo para essa tarefa e apresentado na Figura 7.1:

No exemplo apresentado na Figura 7.2, podemos observar a importanciado limiar nesse processo, quanto a preservacao de detalhes. Uma observacaointeressante e que, se aumentarmos gradativamente o limiar, e animarmos asequencia de imagens de saıda, conseguimos um efeito de “derretimento”.

21

Figura 7.1: Reconstrucao da forma atraves do esqueleto em conjunto com aTransformada Distancia.

(a) (b) (c)

(d) (e) (f)

Figura 7.2: Nas imagens (a) e (b) podemos ver o esqueleto da imagem esua reconstrucao, respectivamente, sem filtrar qualquer detalhe (limiar = 0).Similarmente, (b) e (e) mostram os resultados com um limiar = 10, e (c) e(f) com limiar = 50.

Capıtulo 8

Curvatura

Abordaremos a seguir dois metodos utilizados para extracao de carac-terısticas da curvatura da imagem: CENSURE, que encontra os pontos decurvatura mais representativos de cada imagem, e o calculo da curvaturalocal, que calcula a curvatura em cada ponto da imagem.

8.1 CENSURE

CENSURE e uma algoritmo de extracao de pontos chave de curvatura naimagem, disponibilizado pelo Scikit-Image [1]. Sua chamada pode ser feitacomo demonstrada na Figura 8.1.

Figura 8.1: Pontos de curvatura chave. Note que necessita diversosparametros, que influenciam na escolha desses pontos.

O resultado obtido pelo CENSURE com os parametros selecionados e

24

apresentado na Figura 8.2.

(a) (b) (c)

Figura 8.2: Pontos chaves da curvatura para uma imagem da classe Circina-tum, Garryana e Kelloggii em (a), (b) e (c), respectivamente.

8.2 Curvatura Local

A partir da extracao parametrica do contorno, apresentada no Capıtulo 5,calculamos a curvatura local K(t) a partir da seguinte equacao:

K(t) =2(c1b2 − c2b1)

(c21 + c22)3/2

(8.1)

onde os coeficientes sao:

b1 = 1/12[(xt−2 + xt+2) + 2(xt−1 + xt+1) − 6xt] (8.2)

b2 = 1/12[(yt−2 + yt+2) + 2(yt−1 + yt+1) − 6yt] (8.3)

c1 = 1/12[(xt+2 − xt−2) + 4(xt+1 − xt−1)] (8.4)

c2 = 1/12[(yt+2 − yt−2) + 4(yt+1 − yt−1)] (8.5)

Na Figura 8.3 podemos observar a implementacao da Equacao 8.1 empython:

Figura 8.3: Implementacao de Equacao 8.1 para extracao da curvatura local.

Capıtulo 9

Caracterısticas

Neste capıtulo, abordaremos a selecao das amostras e de suas caracterısticas,para, no capıtulo seguinte, utilizarmos dessas caracteristicas quando abor-darmos a etepa de classificacao.

9.1 Seleccao das amostras

Foram selecionadas as trinta primeiras amostras de tres das classes de ima-gens de folhas fornecidas, sendo elas Circinatum, Garryana e Kelloggii. AFigura 9.1 apresenta um exemplar de cada uma delas.

9.2 Seleccao das Caracteristicas

Foram selecionadas quatro caracteristicas para o projeto, sendo elas:

• Area: Apos a binarizacao, apresentada na Secao 4.1.1, e computada asoma da area da imagem, ou seja, os pixels brancos.

• Tamanho do Esqueleto: A partir da extracao do esqueleto, apresentadano Capıtulo 6, foi executada a soma de todos os pixels que fazem partedo esqueleto.

• Comprimento de arco: Soma de todos os pixels que pertencem ao con-torno da imagem, apresentado no Capıtulo 5.

27

(a) (b) (c)

Figura 9.1: Exemplo de folhas Circinatum, Garryana e Kelloggii em (a), (b)e (c), respectivamente.

• Curvatura media: Apos a extracao do contorno da imagem, apresen-tado no Capıtulo 5, foi extraıda a curvatura de cada ponto da imagem,atraves da Equacao 8.1, e entao calculada a media desses valores.

Capıtulo 10

Classificacao

O capıtulo de Classificacao sera dividido em duas partes, sendo que na pri-meira trataremos da metodologia, e na segunda, dos experimentos.

10.1 Metodologia

Aqui descreveremos a metodologia empregada na organizacao e divisao dabase de dados, bem como a utilizada na classificacao

10.1.1 Base de dados

Apos a extracao das caracterısticas, a base de dados foi dividida, utilizandoa funcao opf split da LibOPF [4], em um conjunto de treinamento, validacaoe testes, e o valor das caracterısticas foi normalizado.

Essa divisao foi feita atraves de uma escolha empirica dos valores, atri-buindo um valor de 50% das amostras para treinamento, 20% para validacaoe 30% para testes, onde cada uma destas etapas e responsavel por:

• Treinamento: Treinar o classificador com os parametros selecionadoscom a base de treinamento;

• Validacao: Encontrar o melhor conjunto de parametros para a etapade treinamento;

• Testes: Classificar as amostras do conjunto de teste com o classificadortreinado com os melhores parametros encontrados na etapa de validacaoe avaliar seu desempenho;

29

10.1.2 Classificador SVM

O Scikit-Learn disponibiliza diversas implementacoes do SVM,sendo algumas delas para classificacao, uma para regressao eate mesmo uma para deteccao de anomalias. A implementacaoutilizada nesse trabalho e a SVC, disponivel em http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.

A etapa de classificacao sera dividida em duas etapas, sendo que a pri-meira e a de validacao e a segunda e a de testes. Na etapa de validacao seraexecutada uma busca pseudo-exaustiva na procura dos melhores parametrospara o classificador. Na etapa de testes, usaremos o melhor conjunto deparametros encontrados na etapa de validacao para classificar o conjunto detestes. Note que utilizaremos um kernel rbf, e os parametros a serem esti-mados serao “C”, que controla o termo de erro e “Gamma”, que controla ocoeficiente do kernel. Os demais parametros utilizados serao os parametrospadrao do scikit.

10.2 Experimentos

Na etapa de validacao, variamos o paramtro C no intervalo [0.1,5.0] de 0.5em 0.5 e o parametro Gamma no intervalo [0.0, 5.0] de 0.5 em 0.5. NaFigura 10.1 podemos observar as regioes onde encontramos o melhor conjuntode parametros

A partir da validacao, selecionamos para os testes os parametros Gamma= 0.0 e C = 1.5, por estarem na regiao de maior valor. A taxa de acertosencontrada nos testes foi de 0.86, e a matriz de confusao pode ser vista naTabela 10.2.

Classes Circinatum Garryana Kelloggii

Circinatum 9 0 1Garryana 0 10 0Kelloggii 1 2 7

Tabela 10.1: Matriz de confusao.

A partir da matriz de confusao, podemos observar que as classes Circina-tum e Kelloggii sao mais parecidas entre si do que a classe Garryana, o que

0 1 2 3 4 5

1

2

3

4

5

C

0.552

0.592

0.632

0.672

0.712

0.752

0.792

0.832

0.872

Figura 10.1: Grade de busca dos melhores parametros.

pode-se perceber apenas olhando para as imagens.

Capıtulo 11

Conclusoes

Neste trabalho foram apresentadas algumas das tecnicas aprendidas no cursode visao computacional, as quais envolvem de precessamento de imagens,extracao de caracterısticas baseadas no formato do objeto, e a classificacaodos dados. A partir delas pudemos extrair caracteristicas representativase classificar os dados com uma taxa de 86% de acertos, provando que astecnicas sao muito eficientes, e alem disso, demonstrando quais classes saomais parecidas, atraves de uma matriz de confusao.

32

Apendice A

Amostras selecionadas para abase de dados

A.1 Circinatum

A Figura A.1 apresenta as amostras da classe Circinatum utilizadas no ex-perimento:

A.2 Garryana

A Figura A.2 apresenta as amostras da classe Garryana utilizadas no expe-rimento:

A.3 Kelloggii

A Figura A.3 apresenta as amostras da classe Kelloggii utilizadas no experi-mento:

33

Figura A.1: Colecao de imagens da classe Circinatum utilizadas nos experi-mentos.

Figura A.2: Colecao de imagens da classe Garryana utilizadas nos experi-mentos.

Figura A.3: Colecao de imagens da classe Kelloggii utilizadas nos experimen-tos.

Referencias Bibliograficas

[1] Scikit image developers. Scikit-Image User Guide. Available at http:

//scikit-image.org/docs/dev/user_guide.html.

[2] Scikitlearn developers. Scikit-Learn User Guide. Available at http://

scikit-learn.org/dev/user_guide.html.

[3] J. D. Hunter. Matplotlib: A 2d graphics environment. Computing InScience & Engineering, 9(3):90–95, 2007.

[4] JoA£o Paulo Papa, Celso Tetsuo Nagase Suzuki, and Alexandre Xa-vier Falc ao. LibOPF: A library for the design of optimum-path forest clas-sifiers, 2014. Software version 2.1 available at http://www.ic.unicamp.br/~afalcao/LibOPF.

37