24

Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Embed Size (px)

Citation preview

Page 1: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Clusterização K-Means Paralelo Aplicadona Classificação de Alvos em Imagens de

Alta Resolução

Luís Paulo Manfré Ribeiro

[email protected]

Instituto Nacional de Pesquisas Espaciais - INPE

São José dos Campos, SP, Brasil

14 de setembro de 2017

Page 2: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Resumo

Em Processamento Digital de Imagens (PDI), o Processamento de Alto Desempenho(PAD) aumenta a velocidade das tarefas computacionais a partir do uso de paralelismo ecomputação distribuída, gerando resultados mais rápidos para as diversas tarefas de PDI,entre elas a classi�cação de alvos em imagens.

A interface de programação CUDA (Compute Uni�ed Device Architecture) faz uso deGPU (Graphics Processing Unit), arquitetura com vários núcleos e ótima capacidade deparalelismo.

Este trabalho apresenta um estudo da clusterização K-means paralelo aplicado na clas-si�cação de alvos em imagens digitais de alta resolução.

Os resultados obtidos mostram speedups maiores que 3. Tal performance pode sermelhorada utilizando GPU com melhor hardware e capacidade de memória.

Palavras-chave. PAD, PDI, K-means paralelo, clusterização, classi�cação.

Page 3: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Sumário

1 Introdução 3

2 HPC, GPU e CUDA 6

3 Abordagem da Classi�cação K-Means Paralelo 9

4 Amostra de Dados e Estudo de Caso 11

5 Resultados 14

6 Conclusão 22

7 Referências Bibliográ�cas 23

Page 4: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 1

Introdução

Em Processamento Digital de Imagens (PDI), o Processamento de Alto Desempenho (PAD)aumenta a velocidade das tarefas computacionais a partir do uso de paralelismo e compu-tação distribuída, gerando resultados mais rápidos para as diversas tarefas de PDI, entreelas a classi�cação de alvos em imagens. Alguns exemplos de PDI aplicado em agriculturaem um ambiente de PAD são apresentados em [Nasir et al., 2012].

O termo Imagem Digital (ID) se refere a uma imagem representada como uma matrizde duas dimensões de valores digitais, chamados pixels. PDI é a tecnologia que aplicaalgoritmos de computação para o processamento de IDs a �m de obter um determinadoobjetivo, como a classi�cação de regiões de uma dada ID. O PDI é utilizado para melhorara informação pictorial de modo a favorecer a interpretação humana e também automatizaro processo da interpretação de máquina [Annadurai, 2007].

Para executar a tarefa de classi�cação de uma ID existem abordagens supervisionadase não supervisionadas. Os métodos de Aprendizagem Supervisionada (AS) usam algumaforma de supervisão para construir modelos para determinados objetivos. É possível, porexemplo, rotular previamente amostras da ID onde padrões podem ser identi�cados paraa classi�cação de amostras ainda não rotuladas.

Alternativamente, na Aprendizagem Não Supervisionada (ANS) não existe um modeloou exemplos pré-rotulados que guiem o processo de aprendizagem. Uma das tarefas maiscomuns em ANS é a formação de grupos de acordo com suas similaridades, processo tam-bém chamado de clusterização [Barchi et al., 2016]. Um comparativo entre os dois métodosde Aprendizagem é mostrado na Figura 1.1.

3

Page 5: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 1. INTRODUÇÃO

Figura 1.1: Comparação entre a Aprendizagem Supervisionada e a Não Supervisionada

Um dos métodos ANS de próposito geral mais comuns de clusterização é o K-means, queencontra regiões (clusters) de tamanhos similares, de geometria plana e aceita especi�caçãode quantos clusters (k) deseja-se encontrar. Em imagens de alta resolução, este processoANS pode ser otimizado utilizando métodos e implementações de PAD [Hartigan andWong, 1979].

PAD é uma metodologia aplicada na resolução de problemas de alta complexidade,como a computação de enorme carga de trabalho e dados, e de intensa análise crítica.Assim, a aplicação correta de PAD reduz o tempo de computação e, consequentemente,as tomadas de decisão podem ser feitas mais rapidamente. Paralelismo e computação dis-tribuída são abordagens oferecidas em PAD. Esta metodologia obteve êxito em problemasnas áreas da ciência, engenharia e dos negócios. Uma das maneiras de so�sticar o tempode processamento de uma aplicação é o uso de GPUs (Graphics Processing Units).

A interface de programação CUDA (Compute Uni�ed Device Architecture) utiliza GPU,arquitetura com vários núcleos e ótima capacidade de paralelismo. GPUs possuem uma dasmelhores relações de desempenho/custo, desempenho/tamanho e desempenho/consumode energia. Por outro lado, o foco das CPUs (Central Processing Units) era otimizarcódigo sequencial. Um aprimoramento no desempenho foi elaborado com as arquiteturasmultinúcleo. As GPUs oferecem execução paralela em arquiteturas multinúcleo.

Este trabalho apresenta um estudo da implementação da clusterização K-means paralelaem CUDA aplicado na classi�cação de alvos em IDs de alta resolução.

4

Page 6: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 1. INTRODUÇÃO

O trabalho é organizado da seguinte forma: o Capítulo 2 apresenta um panorama dePAD com objetivo de introduzir a abordagem da clusterização K-means paralelo descrito noCapítulo 3. O Capítulo 4 descreve as amostras de IDs e estudos de caso dos experimentosrealizados. Comparações com os métodos sequenciais e resultados obtidos são mostradosno Capítulo 5. O Capítulo 6 conclui este trabalho.

5

Page 7: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 2

HPC, GPU e CUDA

A GPU consiste de centenas de núcleos cujo foco é na execução de tarefas em paralelo.A Figura 2.1 mostra a diferença entre as arquiteturas da CPU e da GPU. A Figura 2.2apresenta o poder computacional das GPUs da NVIDIA e como elas se comparam comas CPUs. O primeiro grá�co mostra no eixo vertical a largura de banda da memóriadestes dispositivos, enquanto o segundo grá�co mostra o GLOPS/s (Giga Floating PointOperations per Second) teórico. O eixo horizontal mostra o avanço tecnológico ao longodos anos.

A interface de programação CUDA oferece um ambiente heterogêneo, onde partes daaplicação são escritas para a CPU e partes são escritas para a GPU. A aplicação é compiladaem um executável único que pode ser executado simultaneamente em ambos os dispositivos.

Em uma aplicação CUDA, a CPU é utilizada para alocar bu�ers de memória CUDA,executar kernels CUDA e validar o resultado na GPU. A GPU é utilizada para efetuaro processamente de grande quantidade de dados de forma síncrona ou executar uma si-mulação que pode ser facilmente dividida em grids, onde cada grid executa uma parte dasimulação paralelamente [Nvidia, 2017].

Para comparação da performance entre dois sistemas, o processo do speedup pode serutilizado. Em arquitetura de computadores, speedup é um processo para aumentar a per-formance entre dois sistemas que executam a mesma tarefa. Tecnicamente, é a melhorada velocidade de execução da uma tarefa em duas arquiteturas similares com diferentesrecursos. A noção de speedup foi estabelecida pela Lei de Amdahl, que é particularmentefocada em processamento paralelo. No entanto, o speedup pode ser usado mais generica-mente para mostrar o efeito na performance depois de qualquer aprimoramento de recurso[Wikipedia, b]. Idealmente, o speedup é igual ao número de processadores utilizado.

Neste trabalho, o speedup (SP ) é a relação entre o tempo de processamento serial (TSer)e paralelo (TP ), dado pela Fórmula 2.1.

6

Page 8: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 2. HPC, GPU E CUDA

Figura 2.1: Comparação entre as arquiteturas CPU e GPU http://blog-test.goldenhelix.com/wp-content/uploads/2010/10/cpu_vs_gpu.png

SP =TSer

TP

(2.1)

7

Page 9: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 2. HPC, GPU E CUDA

Figura 2.2: Comparação de performance entre GPUs da NVIDIA e CPUshttps://hemprasad.wordpress.com/2013/03/03/introduction-to-cuda-5-0/

8

Page 10: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 3

Abordagem da Classi�cação K-Means

Paralelo

O algoritmo K-means é um algoritmo muito conhecido que, quando aplicado no contextode PDI, divide uma dada imagem em diferentes clusters de pixels no espaço de atributos. Oprotótipo de um cluster é geralmente um centróide, ou seja, a média de todos os pontos quefazem parte daquele cluster. Inicialmente cada pixel é atribuído ao cluster mais próximo.Então os novos centróides são calculados a partir da média de todos os valores dos pixelsque fazem parte do respectivo centróide [Subbiah and Christopher, Março de 2012]. Esteprocedimento é repetido até que uma das condições a seguir seja verdadeira (tais condiçõessão particulares de cada implementação):

• um número máximo de iterações foi realizado;

• menos que uma porcentagem de um limiar de pontos de dados foi reatribuído duranteum iteração;

• todos os centróides migraram menos que uma distância limiar durante um ciclo deatualização.

Em uma implementação serial do algoritmo sem nenhum tipo de otimização, o númerode operações computacionais realizado é proporcional ao número de pixels vezes o númerode regiões a serem classi�cadas.

Alternativamente, os pontos mais próximos de cada pixel podem ser calculados de formaparalela, pois são independentes uns dos outros. Além disso, para o cálculo do valor médiodos pixels, a abordagem paralela recebe a dada imagem como um vetor de pontos no espaçode atributos, divide-o em partes menores, executa a soma em cada parte, e então retornatodos os resultados para um mais redutores que combinam todos estes resultados em um.Tal procedimento é denominado Redução [Wikipedia, a].

9

Page 11: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 3. ABORDAGEM DA CLASSIFICAÇÃO K-MEANS PARALELO

A abordagem da classi�cação K-means paralelo descrita neste tra-balho depende de uma implementação deste algoritmo hospedada emhttps://github.com/bryancatanzaro/kmeans que utiliza a biblioteca Thrust,https://github.com/thrust/thrust.

10

Page 12: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 4

Amostra de Dados e Estudo de Caso

A primeira imagem selecionada para o estudo de caso foi um ortomosaico de imagens feitaspor um VANT (Veículo Aéreo Não Tripulado) de alta resolução de uma área (Figura 4.1).

Outra imagem selecionada foi a Lena (Figura 4.2), uma imagem de testes padrão am-plamente utilizada na área de processamento de imagens.

A última imagem selecionada foi uma imagem do World View II, de uma área do Riode Janeiro (Figura 4.3).

As propriedades digitais das imagens citadas, como resolução, tamanho em megabytes,quantização em bits e número de bandas, são mostradas na Tabela 4.1.

Resolução Tamanho (MB) Bits N. de bandasVANT 10197 × 24786 964.14 8 (0-255) 4Lena 512 × 512 0.480 8 (0-255) 3RJ-1 1000 × 2000 22.89 8 (0-255) 3

Tabela 4.1: Propriedades das imagens digitais selecionadas no estudo de caso

Os experimentos foram realizados a partir de medidas de speedup e também veri�ca-ção dos resultados da clusterização do K-means. Tais experimentos são apresentados noCapítulo 5.

11

Page 13: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 4. AMOSTRA DE DADOS E ESTUDO DE CASO

Figura 4.1: Ortomosaico de imagens feitas por um VANT

Figura 4.2: Imagem padrão Lena utilizada em processamento de imagens

12

Page 14: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 4. AMOSTRA DE DADOS E ESTUDO DE CASO

Figura 4.3: Imagem do Rio de Janeiro do World view II

13

Page 15: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 5

Resultados

Os seguinte softwares e hardwares foram utilizados nos testes:

• OpenCV versão 3.2.0;

• CUDA versão 8.0;

• Intel CPU I7-6500U 2.5 GHz com 8GB de memória RAM;

• NVIDIA GPU GeForce 920MX com 2GB de memória.

Para os testes seriais, apenas a biblioteca OpenCV foi utilizada. Para os paralelos, oOpenCV foi utilizado juntamente com o CUDA.

Primeiramente, testes foram realizados a �m de veri�car os speedups da GPU em relaçãoa CPU quando executados um grupo de algoritmos comuns em PDI. Todas a medidas detempo foram feitas nas chamadas de função e, portanto, não levaram em consideração otempo de transferência de memória entre host (CPU) e dispositivo (GPU). Os resultadossão os valores médios de pelo menos 10 amostras.

Para os testes de clusterização K-means, tanto o algoritmo do OpenCV quanto doCUDA foram con�gurados para iniciar com centróides aleatórios, e também terminar nocaso em que um máximo de iterações fosse atingido ou se todos os centróides migrassemmenos que uma distância limiar durante um ciclo de atualização.

O primeiro teste foi realizado utilizando na Figura 4.1. Um conjunto de algoritmospadrão de PDI foi aplicado na imagem a �m de checar os speedups. Tais algoritmos são:

• Bilateral Filter (Filtro Bilateral);

14

Page 16: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

• Histogram (Histograma);

• Sobel Filter (Filtro de Sobel);

• Gaussian Filter (Filtro Gaussiano);

• Threshold (Limiarização).

A imagem foi cortada em partes menores para se obter os tamanhos desejados para oprocessamento. Os resultados são mostrados na Figura 5.1.

Para os testes do speedup da classi�cação K-means, a Figura 4.1 também foi utilizadacom diferetens tamanhos de corte. Os speedups foram mensurados para diferentes númerosde centróides k. A Figura 5.2 apresenta os resultados.

Para a veri�cação dos resultados da classi�cação K-means, as Figuras 4.2 e 4.3 foramselecionadas. Nestes experimentos, o número de pixels foi limitado ao máximo de 107 pixelspor conta das limitações de memória do hardware utilizado. Os resultados são apresentadosnas Figuras 5.3, 5.4, 5.5 e 5.6.

Os tempos de processamento e medidas de PAD dos experimentos de speedup sãoapresentados nas Tabelas 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11,

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.01895 0.00377 5.02653105 0.22462 0.01522 14.75821106 2.13396 0.11201 19.05151107 21.89482 0.86859 25.20731108 21.89482 0.86859 28.03490

Tabela 5.1: Resumo dos tempos de processamento e speedup do Bilateral Filter

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.00003 0.00026 0.11538105 0.00065 0.00032 2.03125106 0.00336 0.00095 3.53684107 0.03093 0.00343 9.01749108 0.34594 0.03822 9.05128

Tabela 5.2: Resumo dos tempos de processamento e speedup do Histogram

15

Page 17: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.00010 0.00028 0.35714105 0.00082 0.00051 1.60784106 0.00789 0.00184 4.28804107 0.08436 0.01048 8.04962108 0.79966 0.09300 8.59849

Tabela 5.3: Resumo dos tempos de processamento e speedup do Sobel Filter

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.00003 0.00029 0.10345105 0.00011 0.00050 0.22000106 0.00100 0.00183 0.54645107 0.00943 0.01050 0.89810108 0.08967 0.09304 0.96378

Tabela 5.4: Resumo dos tempos de processamento e speedup do Gaussian Filter

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.00691 0.00009 76.77778105 0.00714 0.00028 25.50000106 0.00854 0.00155 5.50968107 0.02126 0.00553 3.84448108 0.23660 0.04570 5.17724

Tabela 5.5: Resumo dos tempos de processamento e speedup do Threshold

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.00073 0.00285245 0.25592105 0.00392 0.0158415 0.24745106 0.03217 0.144845 0.22210107 0.32758 1.42529 0.22983

Tabela 5.6: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 1

16

Page 18: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.01984 0.0155346 1.27715105 0.12012 0.326767 0.36760106 1.25850 3.78392 0.33259107 12.68808 39.6633 0.31989

Tabela 5.7: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 3

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.02670 0.00750368 3.55825105 0.18181 0.0521852 3.48394106 1.69831 0.659131 2.57659107 19.27702 31.834 0.60555

Tabela 5.8: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 5

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.03022 0.00847405 3.56618105 0.24200 0.0687796 3.51849106 2.52279 0.669559 3.76784107 25.81015 52.2496 0.49398

Tabela 5.9: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 7

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.03786 0.00861999 4.39212105 0.33034 0.0723838 4.56373106 3.15764 0.668442 4.72388107 32.26950 57.26 0.56356

Tabela 5.10: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 9

17

Page 19: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

N. pixels Tempo CPU (s) Tempo GPU (s) Speedup104 0.04177 0.0093519 4.46647105 0.35755 0.0706298 5.06231106 3.79282 0.690994 5.48893107 38.93185 32.22 1.20831

Tabela 5.11: Resumo dos tempos de processamento e speedup da clusterização K-meanscom k = 11

1e+4 1e+5 1e+6 1e+7 1e+80

5

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

Pixel count

Sp

ee

ed

up

Bilateral filter

Histogram

Sobel filter

Gaussian filter

Threshold

Figura 5.1: Medidas de speedup aplicando-se algoritmos de PDI padrão na Figura 4.1

18

Page 20: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

1e+4 1e+5 1e+6 1e+70

1

2

3

4

5

6

Pixel count

Sp

ee

ed

up

k = 1

k = 3

k = 5

k = 7

k = 9

k = 11

Figura 5.2: Medidas do speedup aplicando-se a clusterização K-means na Figura 4.1 paradiferentes números de centróides

Figura 5.3: Resultado da clusterização K-means pela CPU aplicado na Figura 4.2, parak = 5

19

Page 21: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

Figura 5.4: Resultado da clusterização K-means pela GPU aplicado na Figura 4.2, parak = 5

Figura 5.5: Resultado da clusterização K-means pela CPU aplicado na Figura 4.3, parak = 7

20

Page 22: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

CAPÍTULO 5. RESULTADOS

Figura 5.6: Resultado da clusterização K-means pela GPU aplicado na Figura 4.3, parak = 7

21

Page 23: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 6

Conclusão

A abordagem de clusterização K-means paralelo mostrou-se consistente ao longo dos testesapresentando também speedups maiores que 3. Exceções ocorreram em k menor que 5e quando o uso de memória do algoritmo estava próximo do limite do hardware, mais oumenos em 107 pixels. Além do algoritmo do K-means ser intensivo em memória, o hardwarepossuía limitações na quantidade de memória, o que justi�ca o declínio do speedup paragrandes quantidades de pixels.

Observou-se que apenas um dos algoritmos de PDI (Gaussian Filter) não obteve spe-edup maior que 1. Isto pode ser explicado por conta das depêndencias que existem nocálculo dos parâmetros do �ltro, impossibilitando a devida paralelização do mesmo.

Portanto, é possível concluir que gestão de memória e da disponibilidade desta são fato-res cruciais para a performance de uma GPU. Com um hardware melhor e, principalmente,com mais memória para se trabalhar, the graph curves para k maior que 5 mostrariam umcrescimento estável.

Além disso, o tempo de transferência de memória entre host (CPU) e dispositivo (GPU)não foi discutido neste trabalho porque este é um problema particularmente complexo, quepoderia ser explorado em estudos futuros.

Resultados do K-means mostraram que a implementação em CUDA é bastante similarà do OpenCV. Há algumas diferenças que podem ser causadas pela aleatoriedade da seleçãodos centróides inicias. Um modo de obter melhores resultados seria utilizar uma abordagemprobabilística, como a de Arthur e Vassilvitskii.

Como trabalho futuro, usar um padrão de código aberto, como o OpenCL, poderia seruma boa alternativa avançando para a heterogeneidade, ou seja, a habilidade da aplicaçãode executar em GPUs de qualquer fabricante.

22

Page 24: Clusterização K-Means Paralelo Aplicado na Classificação ...wiki.dpi.inpe.br/lib/exe/fetch.php?media=cap-378-topicos:relatorio... · Em Processamento Digital de Imagens ... A

Capítulo 7

Referências Bibliográ�cas

S. Annadurai. Fundamentals of Digital Image Processing. Pearson Education India, 2007.

P. H. Barchi, F. G. da Costa, R. Sautter, T. C. Moura, D. H. Stalder, R. R. Rosa, andR. R. de Carvalho. Improving galaxy morphology with machine learning. Journal ofComputational Interdisciplinary Sciences, 7.3, 2016.

J. A. Hartigan and M. A. Wong. Algorithm as 136: A k-means clustering algorithm. Journalof the Royal Statistical Society, Series C (Applied Statistics), 28.1, pages 100�108, 1979.

A. Nasir, A. Fakhri, M. Nordin, A. Rahman, and A. R. Mamat. A study of image processingin agriculture application under high performance computing environment. InternationalJournal of Computer Science and Telecommunications 3.8, 2012.

C. Nvidia. Cuda toolkit documentation v8.0, 2017. URL http://docs.nvidia.com/

cuda/. Accessado em 05 de Setembro de 2017.

B. Subbiah and S. Christopher. Image classi�cation through integrated k-means algorithm.IJCSI International Journal Of Computer Science Issues, Vol.9, Issue 2, No 2, Marçode 2012.

Wikipedia. Fold (higher-order function) - wikipedia, a. URL https://en.wikipedia.

org/wiki/Fold(higher-orderfunction). Accessado em 07 de Setembro de 2017.

Wikipedia. Speedup - wikipedia, b. URL http://en.wikipedia.org/wiki/Speedup.Accessado em 05 de Setembro de 2017.

23