HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes...

24
HENRIQUE SEITI NABESHIMA EXECUÇÃO DE CONSULTAS POR SIMILARIDADE SOBRE GRAFOS DE SIMILARIDADE EM UMA ARQUITETURA DISTRIBUÍDA LONDRINA 2019

Transcript of HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes...

Page 1: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

HENRIQUE SEITI NABESHIMA

EXECUÇÃO DE CONSULTAS POR SIMILARIDADE SOBREGRAFOS DE SIMILARIDADE EM UMA ARQUITETURA

DISTRIBUÍDA

LONDRINA2019

Page 2: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

HENRIQUE SEITI NABESHIMA

EXECUÇÃO DE CONSULTAS POR SIMILARIDADE SOBREGRAFOS DE SIMILARIDADE EM UMA ARQUITETURA

DISTRIBUÍDA

Dissertação apresentada ao Programa deMestrado em Ciência da Computação daUniversidade Estadual de Londrina para ob-tenção do título de Mestre em Ciência daComputação.

Orientador: Prof(a). Dr(a). Daniel dosSantos Kaster

Coorientador: Prof(a). Dr(a). Fábio Saku-ray

LONDRINA2019

Page 3: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

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

Sobrenome, Nome.Título do Trabalho : Subtitulo do Trabalho / Nome Sobrenome. - Londrina, 2017.100 f. : il.

Orientador: Nome do Orientador Sobrenome do Orientador.Coorientador: Nome Coorientador Sobrenome Coorientador.Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual de

Londrina, Centro de Ciências Exatas, Programa de Pós-Graduação em Ciência daComputação, 2017.

Inclui bibliografia.

1. Assunto 1 - Tese. 2. Assunto 2 - Tese. 3. Assunto 3 - Tese. 4. Assunto 4 - Tese. I.Sobrenome do Orientador, Nome do Orientador. II. Sobrenome Coorientador, NomeCoorientador. III. Universidade Estadual de Londrina. Centro de Ciências Exatas. Programade Pós-Graduação em Ciência da Computação. IV. Título.

Page 4: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

HENRIQUE SEITI NABESHIMA

EXECUÇÃO DE CONSULTAS POR SIMILARIDADE SOBREGRAFOS DE SIMILARIDADE EM UMA ARQUITETURA

DISTRIBUÍDA

Dissertação apresentada ao Programa deMestrado em Ciência da Computação daUniversidade Estadual de Londrina para ob-tenção do título de Mestre em Ciência daComputação.

BANCA EXAMINADORA

Orientador: Prof(a). Dr(a). Daniel dosSantos Kaster

Universidade Estadual de Londrina

Prof. Dr. Segundo Membro da BancaUniversidade/Instituição do SegundoMembro da Banca – Sigla instituição

Prof. Dr. Terceiro Membro da BancaUniversidade/Instituição do TerceiroMembro da Banca – Sigla instituição

Prof. Ms. Quarto Membro da BancaUniversidade/Instituição do Quarto

Membro da Banca – Sigla instituição

Londrina, 26 de agosto de 2019.

Page 5: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

Este trabalho é dedicado às crianças adultasque, quando pequenas, sonharam em se

tornar cientistas.

Page 6: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

AGRADECIMENTOS

A Universidade Estadual de Londrina, seu corpo docente, direção e administraçãopela oportunidade de fazer o curso. Ao meu orientador, pela paciência e apoio na elabo-ração deste trabalho. A minha família por todo o amor, incentivo e apoio. E a todos quedireta ou indiretamente fizeram parte da minha formação, muito obrigado.

Page 7: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

“Não vos amoldeis às estruturas destemundo, mas transformai-vos pela renovação

da mente, a fim de distinguir qual é avontade de Deus: o que é bom, o que Lhe é

agradável, o que é perfeito.(Bíblia Sagrada, Romanos 12, 2))

Page 8: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

NABESHIMA, H. S.. Execução de Consultas por Similaridade Sobre Grafos deSimilaridade em uma Arquitetura Distribuída. 2019. 23f. Dissertação (Mestradoem Ciência da Computação) – Universidade Estadual de Londrina, Londrina, 2019.

RESUMO

Com a crescente produção de imagens digitais no mundo, cresce a necessidade de desen-volver mecanismos eficientes de busca de imagens. Uma técnica de busca de imagens quevêm sendo desenvolvida é a de recuperação de imagens por conteúdo (CBIR). Ao lidarcom uma grande quantidade de dados, estruturas de indexação se tornam importantespara melhorar a eficiência de sistemas CBIR. Uma estrutura de indexação que tem sidopesquisada nos últimos anos é a baseada em grafos de proximidade e, embora existamimplementações eficientes em sistemas centralizados, a grande quantidade de informaçãoprocessada em sistemas CBIR necessitam de soluções distribuídas para lidar com a esca-labilidade. O presente trabalho tem como objetivo implementar buscas por similaridadesobre grafos de proximidade no sistema distribuído SimiWork.

Palavras-chave: CBIR. Sistemas Distribuídos. Grafos de Similaridade.

Page 9: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

NABESHIMA, H. S.. Query Execution Using Similarity Graphs on a DistributedSystem. 2019. 23p. Master’s Thesis (Master in Science in Computer Science) – StateUniversity of Londrina, Londrina, 2019.

ABSTRACT

With the ever growing production of digital images around the world, the need for efficientmethods of searching images grows. Content-Based Image Retrieval (CBIR) is one of thesemethods. When dealing with huge amounts of data, indexing structures are important toachieve better efficiency. Proximity graphs are a type of indexing structure that has beenstudied in recent years and, although efficient centralized implementations are available,the huge amounts of information processed in CBIR systems require distributed solutionsto deal with scalability. The present work has the goal of implementing searches based onproximity graphs on the distributed system SimiWork.

Keywords: CBIR. Distributed System. Similarity Graphs.

Page 10: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

LISTA DE ILUSTRAÇÕES

Figura 1 – Indexação de imagens no SimiWork . . . . . . . . . . . . . . . . . . . . 17Figura 2 – Tempo médio de execução de buscas KNN (K=50) em relação ao nú-

mero de nós escravos usando 1 milhão de imagens. . . . . . . . . . . . 19Figura 3 – Speedup em relação ao número de nós escravos em execução usando 1

milhão de imagens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Figura 4 – Tempo médio de execução de buscas KNN (K=50) em relação ao nú-

mero de nós escravos usando 10 milhões de imagens. . . . . . . . . . . 20Figura 5 – Tempo médio de execução de buscas KNN (K=50) em relação ao nú-

mero de nós escravos usando 10 milhões de imagens. . . . . . . . . . . 20Figura 6 – Speedup em relação ao número de nós escravos em execução usando 10

milhões de imagens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 11: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

LISTA DE TABELAS

Page 12: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

LISTA DE ABREVIATURAS E SIGLAS

CBIR Content-Based Image Retrieval

NMSLIB Non Metric Space Library

TBIR Text-Based Image Retrieval

Page 13: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

SUMÁRIO

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

2 FUNDAMENTAÇÃO TEÓRICO-METODOLÓGICA E ES-TADO DA ARTE . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1 Workflow Científico . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Funções de Similaridade . . . . . . . . . . . . . . . . . . . . . . . . 152.3 Grafos de proximidade . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 NMSLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5 SimiWork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 TESTES DE ESCALABILIDADE . . . . . . . . . . . . . . . . . 18

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 14: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

13

1 INTRODUÇÃO

Uma grande quantidade de imagens digitais são geradas todos os dias no mundo.Um estudo realizado pela Info Trends estima que 1,1 trilhões de fotos seriam tiradas em2016 usando aparelhos móveis e mais de 1,4 trilhões em 2020 [1]. Sistemas de busca deimagens têm sido desenvolvidos para lidar com problemas gerados devido a esse grandevolume de dados.

Objetos multimídia (imagens, vídeos, músicas, literatura, entre outros) não podemser comparados usando operadores relacionais de <, ≤, >, ≥ pois não apresentam relaçãode ordenação total [2], portanto, medidas de similaridade são utilizadas [3]. Existem doistipos principais de buscas por similaridade [4][5]:

1. Consulta dos K vizinhos mais próximos (K-nearest neighbors ou KNN): dado umobjetos multimídia, a busca retorna os k objetos mais similares.

2. Consulta por abrangência: dado um objeto multimídia, a busca retorna os objetosmais próximos e que estejam dentro de um valor limite.

O método de busca de imagens mais amplamente utilizado é o de busca de imagensbaseada em texto (text-based image retrieval ou TBIR) que utiliza descritores textuaisassociados às imagens para fazer buscas [6].

Nesse tipo de sistema, o usuário fornece um conjunto de strings e o sistema devolvecomo output uma ou mais imagens associadas a estas strings. Os descritores textuais sãometadados associados à imagem e podem incluir keywords inseridas manualmente pelousuário ou automaticamente pelo próprio sistema de busca, localização, data, hora, entreoutros [6]. TBIR é um método rápido de busca de imagens mas depende da interpre-tação do usuário para a geração de keywords: usuários diferentes podem gerar keywordsdiferentes para uma mesma imagem devido a fatores culturais, por exemplo. Devido aesta inconsistência na geração de keywords, sistemas TBIR não conseguem atingir altonível de eficiência. Além disso, o processo de anotação manual das imagens é custoso emgrandes coleções. Devido a estes problemas, um método alternativo de busca de imagensfoi desenvolvido: busca por imagens baseada em conteúdo (content-based image retrievalou CBIR) [6].

O SimiWork é um sistema que foi desenvolvido nesse contexto. Trata-se de umsistema CBIR com arquitetura baseada em workflows e em sistemas distribuídos ondeusuários podem criar algoritmos de busca de imagens utilizando uma interface gráfica [7].O sistema fornece um conjunto de operadores de que podem ser encadeados em qualquer

Page 15: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

14

ordem, desde que respeitadas as restrições entre o output de um operador e o input do pró-ximo, permitindo que o usuário execute algorítmos de busca de imagens por similaridadesem a necessidade escrever o código diretamente [8].

De especial interesse no sistema SimiWork é a habilidade de integrar estruturasde indexação ao programa via plugins. Esta característica permite testar propostas deestruturas de indexação em uma arquitetura distribuída com pouca ou nenhuma outraimplementação adicional. Devido ao grande volume de imagens processadas, estruturasde indexação melhoram o desempenho de sistemas CBIR.

Recentemente, grafos de proximidade têm sido propostos como uma alternativa efi-ciente em sistems de busca por similaridade [9][10][11]. Embora existam implementaçõescentralizadas eficientes, uma solução distribuída traria maires benefícios para sistemasCBIR, que lidam com grandes quantidades de imagens. A proposta do presente traba-lho é utilizar a arquitetura já existente do SimiWork para testar soluções de grafos deproximidade que possam executar buscas de similaridade de forma distribuída. Como oSimiWork utiliza um sistema de plugins para adicionar estruturas de indexação, pouca ounenhuma modificação adicional será necessária ao código do sistema.

A seção Fundamentação Teórico-Metodológica e Estado da Arte ofereceuma breve introdução dos conhecimentos necessários para melhor entendimento do pre-sente trabalho. A seção Testes de Escalabilidade detalha os testes executados. A seçãoResultados discute os resultados obtidos.

Page 16: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

15

2 FUNDAMENTAÇÃO TEÓRICO-METODOLÓGICA E ES-TADO DA ARTE

2.1 Workflow Científico

Experimentos científicos envolvem o processamento de grandes quantidades dedados em pipeline. Isso levou a uma necessidade de compartilhamento dos detalhes deimplementação dos pipelines e hardware utilizado para executá-los, visando garantir re-produtibilidade. Workflow científico é um arranjo de tarefas de processamento de dadoscuja ordem depende do output de tarefas anteriores e input de tarefas posteriores, isto é,uma tarefa consome dados processados pela tarefa anterior e fornece dados para a pró-xima. Em geral, um workflow é representado por um grafo direcionado, acíclico, cujos nóssão tarefas de processamento [12].

2.2 Funções de Similaridade

Funções de similaridade calculam o grau de similaridade entre dois elementos. Asfunções de similaridade da forma de Minkowski são as mais utilizadas devido a facilidadede computar seus valores. Estas funções são representadas por 𝐿𝑃 sendo 𝑃 a ordem dedistância e têm a forma [6]:

𝐿𝑃 (𝐴, 𝐵) = (∑︀𝑘𝑖=1 |𝐴𝑖 − 𝐵𝑖|𝑃 ) 1

𝑃

sendo 𝑃 > 0, 𝐴 e 𝐵 vetores de características e 𝑘 a dimensionalidade do espaço euclidiano.As funções da forma de Minkowski geram valores inversamente proporcionais ao grau desimilaridade [6].

2.3 Grafos de proximidade

Um grafo de proximidade é um grafo 𝐺(𝑉, 𝐸), com um conjunto de nós 𝑉 e umconjunto de arestas 𝐸, que possui pares de nós 𝑎, 𝑏 ∈ 𝑉 conectados por uma aresta𝑒 ∈ 𝐸 se, e somente se, o par de nós respeitar uma propriedade 𝑃 (chamada de critério devizinhança), pré-definida [10]. O peso da aresta em um grafo de proximidade geralmente éuma métrica, ou seja, uma medida de proximidade entre os nós no grafo [10]. CBIR utilizafunções de similaridade D : S × S → [0, ∞), que mapeiam dois elementos de acordo comseu grau de similaridade, a ∈ S, 𝑏 ∈ S tais que as seguintes condições sejam satisfeitas [6]

1. 𝐷(𝑎, 𝑏) ≥ 0

Page 17: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

16

2. 𝐷(𝑎, 𝑏) = 0 ⇐⇒ 𝑎 = 𝑏

3. 𝐷(𝑎, 𝑏) = 𝐷(𝑏, 𝑎)

4. 𝐷(𝑎, 𝑐) ≤ 𝐷(𝑎, 𝑏) + 𝐷(𝑏, 𝑐)

O par formado por um conjunto de objetos e uma função que respeita as condiçõesmostradas anteriormente forma um espaço métrico [3].

Das condições descritas, a de número 4, chamada de desigualdade triangular, éde especial importância pois nos permite definir um valor limite para distâncias aindanão calculadas [10]. Usando a desigualdade triangular, podemos descartar elementos in-dexados, diminuindo a quantidade processamento necessário para responder a uma busca[3].

2.4 NMSLib

NMSLib1 é uma biblioteca para buscas por similaridade em espaços não métricos.A biblioteca também possui ferramentas para avaliação de métodos de busca por simila-ridade, além de ser extensível, permitindo a adição de novos métodos de busca e funçõesde similaridade.

2.5 SimiWork

O SimiWork é um sistema de busca de imagens baseado em conteúdo que utilizaworkflows científicos. Apache Spark e Hadoop são utilizados para implementar operaçõesdistribuídas em cluster e armazenamento distribuído. Além disso, um sistema de pluginpermite a adição de novas estruturas de indexação sem a necessidade de modificar ocódigo do sistema. A figura 1 mostra o processo de indexação de imagens no Simiwork. Asespecificações do sistema são discutidas em mais detalhes em [7]. No entanto, o sistema deplugin apresentava uma falha de implementação: os nós do cluster tentavam acessar índicesnão disponíveis no armazenamento local, mesmo quando outros nós possuíam os arquivos.Este problema gerava um grande tráfego de dados na rede, diminuindo a eficiência dosistema. Isto ocorre porque o nó mestre do sistema não verifica a existência dos índicesno armazenamento local dos nós escravos. A solução implementada foi programar os nósescravos para acessar todos os índices locais primeiro e, se algum índice não for encontrado,acessar a sua cópia armazenada no hdfs, o sistema de armazanamento distribuído doHadoop.1 https://github.com/nmslib/nmslib

Page 18: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

17

dois

Figura 1 – Indexação de imagens no SimiWork

O sistema de plugin do SimiWork simplifica a adição de estruturas de indexação.Essa vantagem será utilizada para adicionar e testar estruturas de indexação baseadas emgrafos de similaridade. A vantagem

Page 19: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

18

3 TESTES DE ESCALABILIDADE

Para testar a escalabilidade da nova implementação, o presente trabalho utilizoua slim-tree da biblioteca C++ Arboretum [13]. A estrutura foi adicionada ao SimiWorkem um trabalho anterior [7].

Os testes foram executados em seis máquinas virtuais executadas em duas fisicas.As máquinas físicas possuem processador intel [email protected] com 6 núcleos e 12 thre-ads, 32GB de memória RAM com frequência de 2666MHz. Cada máquina virtual possui2 núcleos de processamento e 8GB de memória RAM. Uma máquina virtual foi escolhidapara ser o nó mestre e as outras 5 se tornaram nós escravos. Os testes foram executa-dos com o Hadoop versão 3.1.2 e nível de replicação 3. O Apache Spark utilizado é daversão 2.3.0 e a versão do java virtual machine é 1.8.0.222. As máquinas físicas estavamconectadas em uma rede Local Area Network 100M.

As imagens utilizadas nos testes são da coleção CoPhIR, as mesmas de um trabalhoanterior [7] e os vetores de características possuem as mesmas dimensões (282 dimensões).A coleção CoPhIR foi criada com o objetivo de testar escalabilidade em buscas de simi-laridade.

Os testes mediram o tempo de execução médio para buscas em relação a quantidadede nós escravos. Cada teste consistiu em 50 buscas KNN com k=50.

Page 20: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

19

4 RESULTADOS

A figura 2 mostra o tempo médio de execução das buscas knn para 1 milhão deimagens. O ponto correspondente a 5 nós tem um comportamento anômalo. A figura 3mostra mais claramente o que está ocorrendo: o speedup para 5 nós escravos é menor queo de 4, possivelmente porque o tempo de preparo do nó adicional superou o de busca para1 milhão de imagens.

Figura 2 – Tempo médio de execução de buscas KNN (K=50) em relação ao número denós escravos usando 1 milhão de imagens.

dois

Figura 3 – Speedup em relação ao número de nós escravos em execução usando 1 milhãode imagens.

A figura 4 mostra o tempo médio de execução das buscas knn para 10 milhões deimagens. O tempo de execução sobe drasticamente quando o número de nós em execuçãoé menor que 3. A figura 5 mostra os resultados do mesmo teste para 3 ou mais nós.

Page 21: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

20

Figura 4 – Tempo médio de execução de buscas KNN (K=50) em relação ao número denós escravos usando 10 milhões de imagens.

Figura 5 – Tempo médio de execução de buscas KNN (K=50) em relação ao número denós escravos usando 10 milhões de imagens.

A figura 6 mostra o ganho em speedup com o número de nós ativos.

Page 22: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

21

Figura 6 – Speedup em relação ao número de nós escravos em execução usando 10 milhõesde imagens.

Page 23: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

22

5 CONCLUSÃO

Page 24: HENRIQUESEITINABESHIMA€¦ · Experimentos científicos envolvem o processamento de grandes quantidades de dados em pipeline. ... vizinhança),pré-definida[10] ... O Apache Spark

23

REFERÊNCIAS

[1] LEE, E. How long does it take to shoot 1 trillion photos? 2016. Disponível em:<http://blog.infotrends.com/how-long-does-it-take-to-shoot-1-trillion-photos/>.

[2] RAZENTE, H. L. et al. Advanced Database Query Systems : Techniques ,Applications and Technologies. [S.l.]: IGI Global, 2011. ISBN 9781609604752.

[3] CHÁVEZ, E. et al. Searching in Metric Spaces. ACM Computing Surveys, v. 33,n. 3, p. 273–321, 2001.

[4] ARAUJO, M. R. B. et al. Extending Relational Databases to Support Content-based Retrieval of Medical Images 1. Proceedings of 15th IEEE Symposium onComputer-Based Medical Systems (CBMS 2002), IEEE, n. Cbms, p. 303–308, 2002.

[5] KASTER, D. S. et al. MedFMI-SiR: A Powerful DBMS Solution for Large-ScaleMedical Image Retrieval. In: . [S.l.]: Springer, 2011. p. 16–30. ISBN 9783642232077.

[6] TYAGI, V. Content-Based Image Retrieval - Ideas, Influences and Current Trends.1st. ed. [S.l.]: Springer Singapore, 2017. 378 p. ISBN 978-981-10-6759-4.

[7] OLIVEIRA, L. F. M. A Distributed Workflow-Based Architecture For Content-BasedImage Retrieval. Tese (Doutorado) — Universidade Estadual de Londrina, 2018.

[8] OLIVEIRA, L. F. M.; KASTER, D. d. S. Defining Similarity Spaces for Large-ScaleImage Retrieval Through Scientific Workflows. Proceedings of the 21st InternationalDatabase Engineering & Applications Symposium, n. July, p. 57–65, 2017. Disponívelem: <http://doi.acm.org/10.1145/3105831.3105863>.

[9] PAREDES, R.; CHÁVEZ, E. Using the k-nearest neighbor graph for proximitysearching in metric spaces. Lecture Notes in Computer Science (including subseriesLecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), v.3772 LNCS, p. 127–138, 2005. ISSN 03029743.

[10] OCSA, A.; BEDREGAL, C.; CUADROS-VARGAS, E. A new approach forsimilarity queries using proximity graphs. 1992.

[11] MALKOV, Y. A.; YASHUNIN, D. A. Efficient and robust approximate nearestneighbor search using Hierarchical Navigable Small World graphs. v. 8828, n. c, p.1–13, 2016. Disponível em: <http://arxiv.org/abs/1603.09320>.

[12] Bux, M.; Leser, U. Parallelization in Scientific Workflow Management Systems.arXiv e-prints, p. arXiv:1303.7195, Mar 2013.

[13] TRAINA, C. et al. Fast indexing and visualization of metric data sets usingSlim-trees. IEEE Transactions on Knowledge and Data Engineering, v. 14, n. 2, p.244–260, 2002. ISSN 10414347.