Pedro Augusto Lopes Barbosa
COSE: SISTEMA DE SEGMENTAÇÃO DE IMAGENS
COLABORATIVO
Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~posgraduacao
RECIFE 2014
Pedro Augusto Lopes Barbosa
COSE: SISTEMA DE SEGMENTAÇÃO DE IMAGENS
COLABORATIVO
Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Univer-sidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação.
Orientador: Tsang Ing Ren
Co-Orientador: Alexandre Lopes de Sousa da Cunha
RECIFE 2014
Catalogação na fonte
Bibliotecária Monick Raquel Silvestre da S. Portes, CRB4-1217
B238c Barbosa, Pedro Augusto Lopes
COSE: sistema de segmentação de imagens colaborativo / Pedro Augusto Lopes Barbosa. – 2014.
69 f.: il., fig., tab.
Orientador: Tsang Ing Ren.
Dissertação (Mestrado) – Universidade Federal de Pernambuco. CIn, Ciência da Computação, Recife, 2014.
Inclui referências.
1. Processamento de imagem. 2. Visão computacional. 3. Segmentação de imagem. I. Ren, Tsang Ing (orientador). II. Título.
621.367 CDD (23. ed.) UFPE- MEI 2017-50
Pedro Augusto Lopes Barbosa
COSE: Sistema de Segmetação de Imagens Colaborativo
Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação da Universidade Federal de Pernambuco, como requisito parcial para a obtenção do título de Mestre em Ciência da Computação.
Aprovado em: 10/09/2014
BANCA EXAMINADORA
__________________________________________ Prof. Dr. Tsang Ing Ren (Orientador)
Centro de Informática / UFPE
__________________________________________ Prof. Wellington Pinheiro dos Santos
Deptº de Engenharia Biomédica do Centro de Tecnologia e Geociências/ UFPE ___________________________________________
Prof. Dr. Aluizio Fausto Ribeiro Araújo Centro de Informática / UFPE
Não sou nada. Nunca serei nada. Não posso querer ser nada. À parte isso, tenho em mim todos os sonhos do mundo. —FERNANDO PESSOA
Resumo
Biólogos cada vez mais necessitam de dados quantitativos para realizar suas pesquisas. Estes dados podem ser extraídos de imagens adquiridas através de técnicas de microscopia – e.g. microscopia eletrônica, microscopia confocal, etc. - e de técnicas de processamento de imagens e visão computacional. Uma das técnicas frequentemente utilizadas é a segmentação de imagens, uma tarefa que consiste em particionar a imagem em regiões que representam ou compõem os objetos de interesse. Por exemplo, detectar células cancerosas particionando a imagem entre regiões de célula e regiões que não são células; em seguida, outra etapa de processamento é necessária para, baseada nos dados quantitativos obtidos a partir da segmentação, identificar quais das células são cancerosas. Dado que, historicamente, na maioria dos casos não sabemos como elaborar algoritmos de segmentação suficientemente eficazes para realizar o processamento de imagens de maneira ótima, este trabalho propõe uma plataforma web que alia esforços de computadores e usuários para a obtenção dos resultados desejados. O sistema deve ser eficiente, escalável para centenas de usuários, de fácil interpretação para usuários com diferentes níveis de educação e que possa gerar bons resultados de maneira semiautomática. A combinação de segmentações é uma etapa de crucial importância de todo o processo de segmentação colaborativa. É nesta etapa em que as várias segmentações de diferentes usuários são combinadas para obter um resultado final com a menor quantidade de erros possível. A ideia fundamental é que o erro cometido por cada usuário, individualmente, seja compensado pelos acertos dos outros usuários. Para tanto, este trabalho apresenta uma técnica de combinação de segmentações baseada no algoritmo de Distance Transform e binarização de Otsu. Os resultados obtidos neste trabalho mostram que a resolução de problemas de processamento de imagem de maneira colaborativa é um caminho promissor. Além disto, a técnica de combinação de segmentações apresentada possui desempenho satisfatório e tempo de execução comparável ao voto majoritário.
Palavras-chave: Segmentação de Imagens. Segmentação Colaborativa. Combinação de Segmentações. Distance Transform.
Abstract
Biologists increasingly require more quantitative data for their researches purposes. These data can be extracted from images acquired through microscopy techniques - e.g. electron microscopy, confocal microscopy, etc. - and computer vision and image processing techniques. Image segmentation is often used for this purpose. It is an image processing technique which aims to partition the image into regions that represent objects of interest. For example, image segmentation could be used to detect cancer cells by partitioning a medical image in regions corresponding to cells. And based on the quantitative data obtained from the segmentation step a further processing step would classify these cell regions as being a cancer cell or not. In the most of the cases we do not know how to elaborate segmentation algorithms efficient enough to achieve an optimal segmentation, this work proposes a web platform where users and computers work together to achieve the desired results. The system may be efficient, scalable to hundreds of users, easy to use for users of different levels of education and has to be able to generate good results in a semiautomatic way. The segmentation merge is one of the most important step for the whole collaborative segmentation system. At this stage the segmentation made by each user is merged into a resultant segmentation which may have a minimal amount of error. The fundamental idea is that the error committed by each user individually is balanced with the success of another users. Then, this work presents a new segmentation merge technique based on Distance Transform and Otsu thresholding. This work has shown that the resolution of image processing problems collaboratively is a promising approach. Furthermore, the segmentation merge technique presented has shown satisfactory performance and execution time comparable to the majority vote execution time.
Keywords: Image Segmentation. Collaborative Segmentation. Segmentation Merge. Distance Transform.
Lista de Figuras
2.1 Interação do usuário com o sistema EyeWire para realização da segmentação e reconstrução 3D de neurônios. . . 19 2.2 Tela principal da interface de administração. Todos os componentes do sistema
pode ser acessados e editados a partir desta tela. . . 20 2.3 Interface de interação do usuário com o sistema. Através desta tela, o usuário
pode interagir com a imagem apresentada para segmentá-la . . . 21 2.4 Interface de edição de um problema de segmentação. Esta tela faz parte do perfil
de administrador. . . 24 2.5 Diagrama de classes do Collaborative Segmentation (COSE). . . 26 2.6 Status de um problema de segmentação. A opção Create cria os retalhos a partir
da imagem original. . . 27 2.7 Vizinhança do bel b = (p, q). . . 29 2.8 Ilustração de um caminho central do entre os ponto P e Q projetado no plano xy.
Fonte: DICKIE; HAMARNEH; ABUGHARBIEH (2009) . . . 32 2.9 O live-vessel, além de encontrar o caminho central do vaso, delimita os contornos
externos do mesmo. Fonte: DICKIE; HAMARNEH; ABUGHARBIEH (2009) 33 2.10 Ilustração que mostra o papel de cada custo no processo de segmentação. Fonte:
DICKIE; HAMARNEH; ABUGHARBIEH (2009) . . . 33 2.11 Relações de adjacência euclideanas (a) ρ = 1 e (b) ρ =√2. Fonte: FALCÃO;
STOLFI; LOTUFO (2004) . . . 36 2.12 Imagens utilizadas para demonstrar o funcionamento do algoritmo de watershed
interativo. . . 39 2.13 Aplicação da Image Foresting Transform-Watershed (IFT-WS) à imagem de
células. Os pontos verdes são os marcadores e as linha de watershed estão indicadas em vermelho. (a) Imagem de células, com características de regiões bem divididas. (b) e (c) apresentam a mesma divisão de regiões usando diferentes marcadores. (d) Uma segmentação possível das paredes celulares. . . 40 2.14 Utilização de scribbles, em verde, para aumentar a precisão na marcação de
regiões. As linhas de watershed - linhas de separação das regiões - estão em vermelho. . . 41 2.15 Aplicação do algoritmo de IFT-WS à imagem da Figura 2.12b. . . 42 3.1 Imagem sintética de um círculo à esquerda. A Distance Transform do círculo é
4.1 Exemplo de como a condição (2) evita que uma borda em S, em vermelho, encontre correspondência com uma banda em G, em azul. . . 52 4.2 Imagem sintética de um círculo disponibilizada para segmentação através do
COSE. . . 53 4.3 Segmentações de um círculo sintético. . . 54 4.4 Aplicação dos algoritmos de combinação de segmentação às 69 segmentações
feitas por usuário do COSE . . . 55 4.5 Imagem da sépala de uma planta. . . 58 4.6 Comparativo: retalho com conteúdo significativo. . . 58 4.7 Resultados dos algoritmos de combinação após reconstrução da imagem original. 61
Lista de Tabelas
4.1 Comparação do desempenho das técnicas de combinação sobre o problema de segmentação do círculo. . . 55 4.2 Comparação dos tempos de processamento dos Simultaneous Truth and
Per-formance Level Estimation (STAPLE) e Distance Transform Merge (DTM) aplicados ao problema de segmentação do círculo. . . 56 4.3 Comparação do desempenho das técnicas de combinação sobre o problema
de segmentação do círculo. Os resultados foram pós-processados através da esqueletomização. . . 57 4.4 Comparação do desempenho das técnicas de combinação sobre o problema
de segmentação da sépala de planta. Foram considerada as médias e desvios padrões dos desempenhos para cada retalho. . . 59 4.5 Comparação dos tempos de processamento dos STAPLE e DTM aplicados ao
problema de segmentação da sépala. . . 59 4.6 Comparação do desempenho das técnicas de combinação sobre o problema de
segmentação da sépala de planta após reconstrução da imagem original (ver Figura 4.7 . . . 59 4.7 Comparação do desempenho das técnicas de combinação sobre o problema de
segmentação da sépala de planta após reconstrução da imagem original. Foi aplicada a esqueletomização às reconstruções. . . 60 4.8 Ranking dos melhores algoritmos avaliados através da base Digital Retinal
Images for Vessel Extraction(DRIVE). . . 62 4.9 Comparação do desempenho das técnicas de combinação sobre a base DRIVE. 63
Lista de Acrônimos
EM Expectation-Maximization . . . 44
STAPLE Simultaneous Truth and Performance Level Estimation . . . 16
DTM Distance Transform Merge . . . 16
COSE Collaborative Segmentation . . . 15
DRIVE Digital Retinal Images for Vessel Extraction . . . 50
BOINC Berkeley Open Infrastructure for Networking Computing . . . 14
IFT Image Foresting Transform . . . 27
Sumário
1 Introdução 13
1.1 Motivação . . . 15
1.2 Objetivos . . . 15
1.3 Estrutura da Dissertação . . . 16
2 Sistema Colaborativo de Segmentação 17 2.1 Introdução . . . 17 2.2 Crowdsourcing . . . 18 2.3 Visão Geral . . . 20 2.4 Arquitetura do Sistema . . . 25 2.5 Segmentação Interativa . . . 27 2.5.1 Live Wire . . . 28 2.5.2 Live-vessel . . . 32 2.5.3 Watershed . . . 35
3 Técnicas de Combinação de Segmentações 43 3.1 Introdução . . . 43
3.2 STAPLE . . . 43
3.2.1 Formulação . . . 43
3.2.2 Expectation-Maximization . . . 44
3.3 Voto Majoritário . . . 46
3.4 Distance Transform Merge . . . 47
3.4.1 Formulação . . . 47 3.4.2 Distance Transform. . . 48 3.4.3 Método de Otsu . . . 48 4 Experimentos 50 4.1 Introdução . . . 50 4.2 Métricas de Avaliação . . . 50
4.2.1 Acurácia, Sensibilidade e Especificidade . . . 50
4.2.2 F-measure . . . 51
4.3 Discussão dos Resultados . . . 52
4.3.1 Imagem Sintética . . . 52
4.3.2 Sépala de Planta . . . 57
12
5 Conclusão 64
5.1 Conclusões e Contribuições . . . 64 5.2 Trabalhos futuros . . . 66
13 13 13
1
Introdução
A segmentação de imagens pode ser considerada uma das principais e mais importantes tarefas do processamento de imagens e tem aplicações em imagens biomédicas (ACTON; RAY, 2009), inspeção industrial automatizada (ZHOU; YE; ZHANG, 2010), robótica (CHAVARRIA; ESCALANTE; Enrique Sucar, 2013), tratamento de imagens de satélite (ROBERTSON; CHAN, 2009), etc. Seu objetivo é agrupar os pixels de determinada imagem de acordo com seu grau de similaridade ou dissimilaridade buscando detectar as partes ou objetos que constituem a imagem. Portanto, sistemas de processamento de imagem e visão computacional utilizam a segmentação como passo intermediário para a realização de análises baseadas em imagens. Uma série de técnicas foram propostas utilizando diferentes abordagens para resolver o problema de segmentação. Segundo KHAN (2014), é possível classificar os algoritmos de segmentação em seis principais categorias:
a) Segmentação através de Limiarização ou Binarização: através do histograma de uma dada imagem busca encontrar um limiar que particione a imagem em foreground e background.
b) Segmentação de Regiões: busca dividir uma dada imagem em regiões que partilhem das mesmas propriedades como intensidade, textura, cor, etc. Estas técnicas podem ser agrupadas em três categorias: crescimento de região, divisão de região e fusão de região.
c) Segmentação de Bordas: utilizada para segmentar uma dada imagem de acordo com as variações abruptas de intensidade. Umas das maneiras mais simples de realizar a segmentação de bordas é através de suas derivadas primeiras ou segundas.
d) Segmentação através da teoria Fuzzy: a imagem pode ser interpretada através da lógica fuzzy a partir de um processo conhecido como fuzzification. Assim, todos os métodos da teoria fuzzy podem ser aplicados para resolver o problema da segmentação de imagens.
14
e) Segmentação através de Redes Neurais Artificiais: cada pixel da imagem é associado a um neurônio de uma rede neural artificial. Uma amostra de imagens é utilizada para treinar a rede neural para segmentar imagens.
f) Segmentação através de Equações Diferenciais Parciais: a modelagem do problema de segmentação é realizada através de equações diferenciais. Um exemplo clássico desta categoria são os contorno ativos (JIANG; ZHANG; NIE, 2009).
Uma outra divisão possível é feita em HE; KIM; KUO (2014), segundo a qual a seg-mentação de imagens pode ser classificada como automática ou interativa. A segseg-mentação automática tem funcionado bem como solução para problemas como detecção de objetos, in-dexação multimídia, recuperação de informação, onde é possível utilizar uma segmentação de regiões menos precisa. Porém, em outros tipos de problemas como em imagens médicas exige-se um nível de precisão muito elevado para extrair corretamente os objetos semânticos das imagens. Quando estes objetos são segmentados automaticamente os resultados não são bons o suficiente, pois informações de alto nível são necessárias para transpor o limite semântico entre regiões homogêneas e objetos percebidos na imagem (MCGUINNESS; O’CONNOR, 2010). Segundo CUNHA et al. (2012), o uso de algoritmos de segmentação automático no campo da biologia segue um processo muito tortuoso de escolha de parâmetros e de ajuste das técnicas para obter um resultado final razoável. Além do mais, os resultados obtidos frequentemente necessitam de correções manuais.
As técnicas interativas surgem, então, como uma alternativa em que os usuários interagem provendo, através do processo cognitivo humano, as informações de alto nível necessárias para obter resultados precisos. Usualmente os métodos interativos fornecem ferramentas para que os usuários possam, através de um processo de refinamentos sucessivos, chegar em um resultado satisfatório. Deste processo de interação surge outra restrição: as técnicas precisam ser rápidas exibindo os resultados da intervenção do usuário para que este prossiga com mais uma etapa de refinamento. Segundo MALMBERG (2011) um sistema de segmentação interativa deve satisfazer aos seguintes critérios: computação rápida; edição rápida; habilidade de produzir uma segmentação arbitrária com o número suficiente de interações; e segmentação intuitiva. O terceiro critério significa que um bom sistema de segmentação interativa deve minimizar ao máximo o esforço do usuário para gerar o resultado desejado. Porém sempre haverá casos em que o sistema não irá corresponder com o desejado e, nestes casos, é necessário que o sistema ofereça recursos para que o usuário possa realizar correções, em último caso, manuais.
Na última década a computação científica distribuída vem sendo utilizada para a resolu-ção de diversos problemas. Os primeiros esforços referentes à computaresolu-ção científica distribuída foram realizados pelo projeto SETI@home (ANDERSON et al., 2002) que utiliza computadores para processar dados de radiotelescópios em busca de vida extraterrestre. Em seguida, em 2002, foi lançado o projeto Berkeley Open Infrastructure for Networking Computing (BOINC) (AN-DERSON, 2004), uma generalização do SETI@home que permitia aos cientistas cadastrarem
15 1.1. MOTIVAÇÃO seus projetos para resolvê-los de maneira distribuída. Dentre os projetos cadastrados em 2005 no BOINC, havia o Rosetta@home (2005), que tem como objetivo resolver o problema do enovela-mento de proteínas. Até então, os voluntários ofereciam apenas seus recursos computacionais para os projetos. Em 2008, a partir das experiências e relatos de usuários, surgiu o projeto Foldit (COOPER et al., 2010), uma extensão do Rosetta@home que permite a interação dos voluntários para a resolução do problema do enovelamento de proteínas através de um jogo. Em 2012, foi lançado o EyeWire (SEUNG, 2012), um sistema de segmentação colaborativa para realizar o mapeamento do cérebro. Assim como o Foldit, o EyeWire pode ser visto como um jogo no qual os usuários ganham pontos enquanto realizam as tarefas.
1.1
Motivação
Este trabalho foi motivado pelos estudos de crescimento de plantas através de imagens de microscopia realizados conjuntamente pelos seguintes centros de pesquisa do California Institute of Technology: Center for Advanced Computing Research, Center for Integrative Study of Cell Regulation, Division of Biology and Biological Engineering e Department of Computer Science(CUNHA et al., 2012). A análise quantitativa do desenvolvimento das plantas requer o monitoramento das células e tecidos enquanto crescem. Neste contexto, o processamento digital de imagem se faz necessário para extrair e interpretar as informações extraídas das imagens adquiridas através de microscópio. Um dos objetivos do trabalho referido em CUNHA et al. (2012), é realizar uma segmentação tridimensional a partir da segmentação de várias fatias – imagens do mesmo objeto tridimensional adquiridas com diferentes profundidades. Porém, como já descrito, o uso da intervenção humana é frequentemente necessário para corrigir os resultados gerados por técnicas de segmentação automáticas. Ainda não possuímos o entendimento pleno de como traduzir em algoritmos computacionais o processo cognitivo que adotamos para, por exemplo, delinear precisamente as folhas de uma árvore presente em uma fotografia. Ao usarmos a interação humana através dos algoritmos de segmentação interativa para guiar o processo computacional é possível obter resultados satisfatórios.
1.2
Objetivos
Este trabalho propõe um sistema web para a realização da segmentação de imagens através de algoritmos de segmentação interativa, utilizando o esforço conjunto de usuários e algoritmos para resolver problemas complexos, o Collaborative Segmentation (COSE). Diferen-temente do EyeWire, o COSE visa o processamento de diferentes tipos de imagens. Portanto, para oferecer uma maior flexibilidade é necessário que o sistema ofereça diferentes ferramentas de segmentação interativa, que sejam adequadas para cada tipo de problema. Para este trabalho, foram implementadas três ferramentas: watershed, live wire e live-vessel. De uma maneira geral, as imagens são cadastradas no sistema, retalhadas em sub-imagens e disponibilizadas para
16 1.3. ESTRUTURA DA DISSERTAÇÃO os usuários do sistema segmentarem. Cada retalho é processado por um conjunto de usuários. Portanto, é necessário combinar as segmentações de cada usuário para formar uma segmentação resultante para aquele retalho. Quando todos os retalhos estiverem feitos, é possível então reagrupá-los para reconstruir uma segmentação para a imagem completa.
A etapa de combinação de segmentações merece especial atenção. Este trabalho propõe o Distance Transform Merge (DTM) como um algoritmo para realizar a combinação de segmen-tações. A técnica consiste em definir um mapa de confiança para cada segmentação através da Distance Transform(FABBRI et al., 2008). Em seguida os mapas de confiança são confrontados com um valor de limiar obtido através do algoritmo de OTSU (1979). Outras duas técnicas de combinação de segmentações são investigadas: o Simultaneous Truth and Performance Level Estimation(STAPLE) (WARFIELD; ZOU; WELLS, 2004) e o Voto Majoritário.
O sistema vem sendo desenvolvido e mantido através de uma colaboração entre membros do grupo VIISAR (Visão e Inteligência Artificial) do Centro de Informática da Universidade Federal de Pernambuco com o pesquisador Alexandre Lopes de Sousa da Cunha do CACR (Center for Applied Computer Research) do Caltech (California Institute of Technology). Os membros do VIISAR que participaram desta colaboração foram o Professor Tsang Ing Ren; o aluno de doutorado Wendeson Oliveira; o mestre Rafael Barreto; e o autor deste trabalho, o aluno de mestrado Pedro Augusto Lopes Barbosa. Alexandre Cunha, Tsang Ing Ren e Rafael Barreto idealizaram e iniciaram a implementação do projeto no ano de 2012. Neste mesmo ano, Wendeson Oliveira e Pedro Barbosa contribuíram na implementação de algoritmos interativos. No ano de 2013, o autor deste trabalho assumiu o desenvolvimento e manutenção do sistema COSE.
1.3
Estrutura da Dissertação
A dissertação está organizado da seguinte forma: o Capítulo 2 descreve o sistema proposto COSE, apresenta uma breve revisão de sistemas de computação distribuída e descreve os algoritmos de segmentação interativa. O Capítulo 3 descreve a técnica de combinação de segmentações proposta DTM e descreve outras duas técnicas de combinação de segmentação utilizadas como comparação. O Capítulo 4 descreve os experimentos realizados através de três conjuntos de dados utilizados para medir o desempenho do sistema COSE e da técnica de combinação de segmentação proposta; também são descritas as métricas utilizadas para avaliação do desempenho dos sistemas propostos. O Capítulo 5 finaliza esta dissertação com as conclusões, as contribuições e trabalhos futuros.
17 17 17
2
Sistema Colaborativo de Segmentação
2.1
Introdução
Segundo CUNHA et al. (2012), um dos objetivos da biologia do desenvolvimento é entender como o crescimento, regulação e divisão celulares refletem na morfogênese do órgão de uma planta. Para tal, é preciso observar os padrões de crescimento e divisão das células do tecido através da microscopia de série temporal. Portanto, o processamento das imagens se faz necessário a fim de quantificar automaticamente características relacionadas ao crescimento celular.
A segmentação trata-se do processo de subdividir uma imagem em regiões ou objetos específicos que a compõem (GONZALEZ; WOODS, 2010). No caso abordado, pretende-se identificar na imagem as regiões que fazem parte das estruturas celulares para, a partir daí, estudar as propriedades interessantes à biologia do desenvolvimento.
Como relatado em CUNHA et al. (2012), as experiências em laboratório mostraram que os algoritmos de segmentação empregados não são completamente satisfatórios por serem desenvolvidos para um conjuntos particular de imagens, necessitando de modificações e ajustes para adaptá-los para o problema específico. Em geral, é necessária a intervenção manual a posterioripara correção de erros cometidos pelo algoritmo. Há casos em que, pela dificuldade de ajustes de parâmetros de algoritmos de segmentação, conhecimento de técnicas e ferramentas, os especialistas abandonam o uso dos algoritmos e passam a realizar a segmentação manualmente.
Dentro deste contexto, foi idealizado o sistema COSE: uma plataforma de segmentação colaborativa. O sistema alia algoritmos interativos e a interação de um conjunto de usuários para realizar a tarefa de segmentação de imagens.
A Seção 2.2 descreve brevemente a evolução do uso de crowdsourcing para o computação científica. A Seção 2.3 descreve em detalhes como o sistema foi organizado. A Seção 2.5 faz uma breve descrição dos algoritmos de segmentação interativa, e descreve em mais detalhes os algoritmos utilizados no sistema COSE.
18 2.2. CROWDSOURCING
2.2
Crowdsourcing
Segundo HAND (2010), a computação distribuída utilizada para resolver problemas científicos foi popularizada primeiramente em 1999 pelo projeto SETI@home (ANDERSON et al., 2002) no qual foram utilizados computadores de voluntários - os chamados recursos computacionais públicos - para varrer dados de radiotelescópios à procura de sinal extraterrestre. Em 2002, foi lançado a plataforma BOINC (ANDERSON, 2004) para computação distribuída que visa ser uma generalização do modelo adotado pelo projeto SETI@home. Os projetos BOINC funcionam com voluntários ao redor do mundo fazendo o download de um pequeno softwareque utiliza os recursos computacionais dos voluntários quando estes estiverem ociosos.
Em 2005 o BOINC contava com dezenas de projetos dentre eles o Rosetta@home (2005), um projeto que tem como objetivo resolver o problema do enovelamento de proteínas: dada uma cadeia linear de aminoácidos, determinar o formato tridimensional que essa cadeia terá ao atingir a estabilidade. Enquanto os computadores dos voluntários executavam o software, era possível visualizar o processo de otimização sendo executado através de um protetor de tela. Segundo relatado em HAND (2010), uma consequência interessante deste experimento, é que os voluntários começaram a perceber que seus computadores demoravam muito para encontrar um arranjo ótimo. Isto ocorre devido aos inúmeros graus de liberdade inerentes ao problema com os quais o computador deve lidar para obter um arranjo de energia ótima. Por outro lado, os voluntários conseguiam resolver rapidamente devido à facilidade que humanos têm em lidar com a manipulação de estruturas espaciais de maneira intuitiva.
Surgiu, então, a partir destas experiências, em 2008, uma plataforma chamada Foldit (COOPER et al., 2010) que estende o Rosetta@home, adicionando uma interface pela qual os voluntários podem - além de fornecer seus recursos computacionais - interagir com o processo de resolução do enovelamento de proteínas. Isto foi feito transformando o problema numa espécie de jogo interativo onde os usuários poderiam competir, cooperar e acumular pontos ao mesmo tempo em que resolvem problemas científicos. Esta abordagem mostrou-se promissora: o Foldit foi melhor que o Rosetta@home em cinco de um total de 10 problemas. Dos cinco problemas restantes, o Rosetta@home foi melhor que o Foldit em dois, e apresentou resultado semelhante nos outros três (COOPER et al., 2010).
Em particular, o EyeWire (SEUNG, 2012) se assemelha ao COSE no sentido em que é uma plataforma web para ajudar na reconstrução 3D da rede neural humana com o suporte de um algoritmo de processamento de imagem. É um jogo onde os usuários pontuam enquanto mapeiam conexões entre neurônios, e formam uma reconstrução tridimensional destas conexões. A Figura 2.1 exibe uma interação do usuário com o sistema. A Figura 2.1a exibe como o sistema apresenta a tarefa para o usuário. A região em azul escuro faz parte do neurônio que se deseja segmentar e é dada pelo sistema. O que o usuário precisa fazer é completar as lacunas, consequentemente, segmentando o neurônio como pode ser visto em azul claro na Figura 2.1b. O usuário prossegue preenchendo as lacunas através de vários cortes transversais até completar
19 2.2. CROWDSOURCING o trecho de neurônio contido no cubo à esquerda.
(a) Imagem apresentada pelo sistema ao usuário com uma pré marcação em azul escuro.
(b) A região em azul claro foi marcada pelo usuário do sistema.
Figura 2.1: Interação do usuário com o sistema EyeWire para realização da segmentação e reconstrução 3D de neurônios.
No entanto, o EyeWire é voltado especificamente para o problema do mapeamento das conexões entre neurônios, contendo, portanto, técnicas específicas para tratar de imagens de um domínio muito particular, enquanto o COSE pretende ser uma ferramenta mais genérica de segmentação de imagens disponibilizando ferramentas de segmentação diversas para aplicação em variados domínios. Outro ponto diferencial é que o COSE, por ser mais genérico, possibilita a implementação de diferentes algoritmos de segmentação interativa dando maior flexibilidade à resolução do problema. A seguir, o sistema será descrito em detalhes.
20 2.3. VISÃO GERAL
2.3
Visão Geral
O sistema web COSE é dividido em duas grandes áreas: área de administração (Figura 2.2) e área de trabalho (Figura 2.3). A primeira corresponde ao conjunto de funcionalidades disponíveis aos administradores do sistema, os quais são responsáveis pela criação dos problemas de segmentação (Segmentation Problem, em inglês) através da escolha de um conjunto de parâmetros. A segunda corresponde aos usuários do sistema, responsáveis diretos pela realização das segmentações das imagens cadastradas pelos administradores.
Figura 2.2: Tela principal da interface de administração. Todos os componentes do sistema pode ser acessados e editados a partir desta tela.
21 2.3. VISÃO GERAL
Figura 2.3: Interface de interação do usuário com o sistema. Através desta tela, o usuário pode interagir com a imagem apresentada para segmentá-la
A área de trabalho é simples e intuitiva. Após se cadastrar e logar no sistema, o usuário visualiza uma imagem, um retalho a ser segmentada e um painel de controle na lateral esquerda da imagem como pode ser visto na Figura 2.3. O usuário pode escolher entre a ferramenta inteligente de segmentação (chamada de smart tool) ou pode optar por realizar a segmentação manualmente. Done e skip são botões da interface que permitem ao usuário trabalhar no próximo retalho, ambos mostrados na Figura 2.3. O usuário, quando julgar que finalizou o trabalho de segmentação do retalho exibido na tela, deverá clicar no botão Done. Dessa forma, o sistema armazenará o resultado e exibirá um novo retalho a ser segmentado. O botão skip deve ser utilizado em situações nas quais o usuário acreditar não haver informação suficiente para gerar uma segmentação. Ou o retalho pode não possuir conteúdo significativo e não ter sido eliminado pelo sistema. Ao realizar esta ação, o usuário abdicará de resolver o retalho.
Os componentes da área de trabalho foram numerados em vermelho na Figura 2.3. A seguir, os componentes são descritos em mais detalhes de acordo com sua numeração:
Undo (1): utilizado para desfazer uma alteração. Deve ser utilizado quando o resultado da interação não for satisfatório. Por exemplo, o usuário pode clicar em uma região por acidente, ou também pode executar uma ação que não corresponda a um resultado satisfatório em sua opinião. O sistema provê esta função como meio de retornar ao estado anterior.
22 2.3. VISÃO GERAL
Redo (2): utilizado para refazer uma alteração. É a funcionalidade complementar ao undo e é utilizada para os mesmos propósitos.
Show/Hide canvas tracings (3): utilizado para esconder ou mostrar as linhas de segmentação. Na Figura 2.3 as linhas de segmentação estão em vermelho. Este deve ser utilizado quando o usuário deseja ter uma melhor visualização da imagem original.
Show/Hide smart tool scribbles (4): utilizado para esconder ou mostrar as linhas ou pontos de interação da ferramenta de segmentação interativa. Na Figura 2.3 as linhas e pontos dos algoritmos interativos estão em verde. Este deve ser utilizado quando o usuário deseja ter uma melhor visualização da imagem original.
Manual tracing mode (5): utilizado para escolher a ferramenta de segmentação manual. Ao escolher esta ferramenta o usuário poderá realizar a segmentação sem auxílio de algoritmos interativos.
Select smart tool (6): utilizado para escolher uma ferramenta de segmentação interativa. A ferramenta que será disponibilizada é pré definida pelo administrador do sistema no momento do cadastramento da imagem. O administrador deverá escolher a ferramenta mais adequada para o tipo de imagem a ser segmentada. Portanto, o usuário terá duas escolhas: a segmen-tação manual e a segmensegmen-tação via algoritmo interativo pré definido pelo administrador do sistema.
Erase mode (7): utilizado para corrigir erros pontuais na segmentação. O usuário poderá escolher o tamanho da "borracha"para apagar certas regiões que foram segmentadas de maneira incorreta após a interação.
Clear canvas (8): utilizado para limpar todo o canvas. Todas as edições feitas pelo usuário serão apagadas restando apenas a imagem original.
Zoom in (9): utilizado para aumentar o zoom dando uma visão mais detalhada de determinada região.
Zoom out (10): utilizado para diminuir o zoom dando uma visão mais global sobre a imagem inteira.
Reset canvas position and scale (11): utilizado para desfazer o zoom e remover qualquer deslo-camento realizado na imagem através do componente pan around descrito a seguir.
23 2.3. VISÃO GERAL Pan around (12): utilizado para deslocar a imagem pelo canvas. Deve ser utilizado quando foi realizado um zoom e de deseja navegar pela imagem deslocando-a.
Skip (13): utilizado para "pular"uma imagem. Deve ser utilizado quando o usuário julga não haver conteúdo para ser segmentado na imagem apresentada pelo sistema.
Done (14): utilizado para finalizar a segmentação. O usuário deve clicar neste botão quando julgar que a tarefa de segmentação da imagem apresentada foi devidamente realizada.
Borda (15): este recurso foi utilizado para que o usuário visualize a imagem além dos limites que pode editar. Isto faz com que a segmentação nas bordas das imagens sejam mais precisas.
Canvas (16): região que contem a imagem apresentada pelo sistema. O usuário deverá utilizar ferramentas de segmentação para segmentar a imagem exibida nesta região.
Um problema de segmentação é composto por uma imagem e um conjunto de parâmetros que indicam a maneira pela qual a imagem será apresentada aos usuários, bem como a maneira pela qual o usuário poderá interagir com o sistema a fim de segmentar a imagem: tamanho da sub-imagem ou retalho, tamanho da borda, porcentagem de sobreposição, tempo de expiração ou timeout, ferramenta de segmentação e número mínimo de resultados. Cada um dos aspectos mencionados será descrito a seguir.
Tamanho do Retalho: dado que é mais produtivo para o usuário segmentar imagens pequenas do que navegar por uma imagem grande procurando detalhes, o sistema foi projetado para recortar cada imagem em um conjunto de partes menores - chamadas de retalhos - de modo que a união deste conjunto represente a imagem completa a ser segmentada. Além deste aspecto, trabalhar com retalhos pequenos de uma imagem grande, faz com que o sistema web se torne mais leve para o usuário, pois é mais rápido carregar uma imagem pequena. Atualmente o COSE, permite apenas recortes quadrados das imagens submetidas como um problema de segmentação. Este parâmetro é definido entrando com um valor no campo Tiles dimension (ver Figura 2.4). Este parâmetro pode assumir valores no intervalo de inteiros [30, dimension], onde dimension é o tamanho da imagem original.
Tamanho da Borda: este é um parâmetro que delimita uma região que não poderá ser editada. A região aparecerá com uma borda transparente que permite ao usuário visualizar além da borda. Este recurso foi utilizado para que o usuário visualize a imagem além dos limites que pode editar. Isto faz com que a segmentação nas bordas das imagens sejam mais precisas. Na Figura 2.3 podemos ver um retalho sendo segmentado e as bordas transparentes nos cantos da imagem. Este parâmetro é definido entrando com um valor no campo Tiles border (ver Figura 2.4). Este
24 2.3. VISÃO GERAL parâmetro assume valores no intervalo real [0, 1]. É uma porcentagem do Tamanho do Retalho.
Sobreposição: ao recortar a imagem em retalhos, é possível definir uma porcentagem de so-breposição entre retalhos vizinhos. Este parâmetro é importante para evitar que, no momento da união dos retalhos para reconstruir uma segmentação para a imagem completa, o problema de descontinuidade entre retalhos adjacentes seja resolvido. A sobreposição pode ser definida através do campo Tiles overlap (ver Figura 2.4). Este parâmetro assume valores no intervalo real [0, 1]. É uma porcentagem do Tamanho do Retalho.
Figura 2.4: Interface de edição de um problema de segmentação. Esta tela faz parte do perfil de administrador.
Número mínimo de resultados: é o número mínimo de usuário distintos requeridos para seg-mentar o retalho. Ou seja, se o número mínimo de resultados para um retalho for n, será preciso que n usuários trabalhem neste mesmo retalho para que seja considerado resolvido, portanto, segmentado. Quanto mais segmentações diferentes para um mesmo retalho, mais informação disponível, possibilitando que a combinação seja mais precisa. Este parâmetro pode ser definido através do campo Min. results per assignment (ver Figura 2.4). Este parâmetro assume valores
25 2.4. ARQUITETURA DO SISTEMA inteiros maiores ou iguais a 1.
Timeout: é o tempo durante o qual um retalho fica disponível para o usuário concluir a segmen-tação. Caso o tempo seja ultrapassado, a segmentação do usuário não será mais considerada e o retalho será apresentado para outro usuário. O timeout é necessário para que não haja a possibilidade travar o sistema. Para exemplificar, suponha que o número mínimo de resultados por retalho em um dado problema de segmentação seja cinco e que quatro usuários já submeteram seus resultados. Se um quinto usuário abrir a interface de segmentação, nenhum outro usuário poderá realizar a segmentação daquele retalho. Se por algum motivo este quinto usário não realizar a segmentação e nem sair do sistema, a resolução daquele problema de segmentação ficará travada. O valor do timeout, em segundos, é definido através do campo Assignments timeout(ver Figura 2.4). Este parâmetro é definido em unidades de milissegundos.
Ferramenta de segmentação: é uma ferramenta que auxilia o usuário a realizar a segmentação. Atualmente, o administrador do sistema, ao cadastrar um novo problema de segmentação, pode escolher entre três ferramentas de segmentação distintas: watershed, live wire e live-vessel . Mais adiante, estas ferramentas serão abordadas em detalhes. O administrador deverá escolher uma das ferramentas disponíveis baseado no conteúdo da imagem que se deseja segmentar. Além da ferramenta de segmentação escolhida pelo administrador, o usuário também contará com a possibilidade de segmentar manualmente. O campo Algorithm define a ferramenta de segmentação (ver Figura 2.4).
Ao configurar os parâmetros, o problema de segmentação está pronto para ser publicado para os usuários do sistema. Porém, primeiramente, é preciso criar os retalhos utilizando a funcionalidade create assignments.
2.4
Arquitetura do Sistema
O sistema foi desenvolvido utilizando Django, um framework da linguagem de progra-mação Python para o desenvolvimento web. Os algoritmos de segmentação interativa foram implementados em JavaScript. Desta forma, os algoritmos são executados no browser do usuário do sistema descentralizando o processamento.
A Figura 2.5 exibe o diagrama de classes que compõem o sistema. Problemas de segmentação (SegmentationProblem) são agrupados em uma tarefa (Task) que, por sua vez, são agrupadas em uma categoria de tarefas (TaskCategory). A segmentação do meristema da Arabdopsis Thaliana, organismo modelo no estudo de plantas, é um exemplo de categoria de tarefas. Diferentes conjuntos de imagens de meristema podem corresponder a diferentes tarefas. Cada tarefa pode conter um conjunto de problemas de segmentação que correspondem a diferentes seções transversais de um mesmo meristema. Os parâmetros de um problema de
26 2.4. ARQUITETURA DO SISTEMA segmentação descritos na Seção 2.3 são representados pela classe SegmentationProblemDetails
Figura 2.5: Diagrama de classes do COSE.
Ao cadastrar um problema de segmentação, o administrador escolhe um conjunto de parâmetros incluindo o Tamanho do Retalho (ver Seção 2.3). Em seguida, deve criar os retalhos através da opção Create como pode ser visto na Figura 2.6. Cada instância da classe Assignment possui um retalho (tile) distinto da imagem, informações como a posição do retalho na imagem original (tile_bbox_x0, tile_bbox_y0, etc.), uma indicação se o retalho possui ou não conteúdo significativo (workable) e uma indicação se o retalho foi resolvido (concluded). O atributo concludedé verdadeiro quando o retalho é segmentado por n usuários. O valor de n é definido pelo atributo min_results_per_assignment do problema de segmentação. O atributo merge
27 2.5. SEGMENTAÇÃO INTERATIVA representa a combinação das segmentações dos n usuários.
Figura 2.6: Status de um problema de segmentação. A opção Create cria os retalhos a partir da imagem original.
Cada instância da classe AssignmentSession representa o estado da sessão de um usuário. O atributo result é o resultado da segmentação produzido pelo usuário. Este resultado será combinado a outros resultados para compor uma combinação de segmentações (atributo merge da classe Assignment).
A classe User representa tanto o usuário como o administrador do sistema. Os atributos is_staff e is_superuser definem se um usuário tem permissão de administrador e, portanto, permissão para criar tarefas e cadastrar problemas de segmentação. Um usuário sem permissão de administrador não pode cadastrar problemas de segmentação. O seu papel é realizar a segmentação dos problemas apresentados pelo sistema conforme descrito na Seção 2.3.
2.5
Segmentação Interativa
Os algoritmos interativos possibilitam maior controle sobre a segmentação comparati-vamente aos algoritmos completamente automáticos. Além disso, fazem com que a tarefa de segmentar uma imagem seja menos dispendiosa comparativamente à segmentação completa-mente manual. O uso do modelo de crowdsourcing busca combinar os acertos e minimizar os erros cometidos por cada segmentação de cada usuário.
A segmentação automática nem sempre é satisfatória. Por outro lado, a segmentação manual pode ser muito demorada dependendo do tipo de imagem. Para tornar a tarefa mais prática e rápida, o sistema COSE dispõe de três algoritmos de segmentação interativa que têm como objetivo auxiliar o usuário a realizar o processo de maneira semiautomática: Live Wire(FALCÃO et al., 1998), Live-vessel (DICKIE; HAMARNEH; ABUGHARBIEH, 2009) e Watershedatravés da Image Foresting Transform (IFT) (FALCÃO; STOLFI; LOTUFO, 2004).
Para descentralizar a computação necessária aos algoritmos interativos de segmentação, optou-se por implementá-los utilizando a linguagem JavaScript. Desta forma, o algoritmo de segmentação executa no navegador web do usuário no momento em que este interage com o sistema.
28 2.5. SEGMENTAÇÃO INTERATIVA
2.5.1
Live Wire
O live wire é uma técnica de segmentação de bordas interativa onde a imagem é modelada como um grafo direcionado, onde os pixels representam os vértices e as arestas são as conexões entre os pixels. O custo de cada aresta é calculado a partir de um conjunto de características que caracterizam regiões de borda. Dessa forma, o problema de achar o melhor segmento de borda entre dois pixels pode ser interpretado como o problema de determinar o caminho de custo mínimo entre dois vértices do grafo através de programação dinâmica.
A interação do usuário com o live wire é feita a partir de um dispositivo como um mouse de computador, pelo qual o usuário poderá marcar pontos e movimentar o cursor. Primeiramente o usuário especifica um ponto na imagem e em seguida, ao movimentar o cursor, um caminho de custo ótimo global entre o ponto marcado e a posição atual do cursor é exibido em tempo real. O segmento que liga o ponto inicial com a posição atual do cursor tende a aderir à borda quando o cursor é aproximado desta. Quando o usuário estiver satisfeito com o resultado para aquele segmento, ele pode clicar com o mouse e fixar aquele segmento à segmentação final. O último ponto marcado se torna, então, o novo ponto inicial e o processo pode ser repetido até que a segmentação final da imagem seja obtida.
Em FALCÃO et al. (1998) uma imagem é tratada como uma cena 2D C, um par (C, g) onde C é uma matriz bidimensional de pixels chamada de domínio da cena. E a intensidade de cena é uma função g(p) : C → [L, H] que associa à cada pixel um valor de intensidade no intervalo [L, H]. No sistema COSE, o live wire foi implementado para trabalhar com imagens em tons de cinza com intensidades no intervalo [0, 255].
As bordas em C são compostas por arestas orientadas que devem satisfazer às seguintes condições: closedness, orientedness e connectedness. A condição chamada de closedness significa que uma borda separa a cena em dois componentes disjuntos de forma que qualquer caminho que comece em um pixel de um componente e termine em um pixel do outro componente deve necessariamente cruzar a borda. A condição chamada de orientedness significa que um dos componentes disjuntos pode ser precisamente classificado como interior e o outro componente como exterior. A última condição chamada de connectedness significa que uma borda é uma única curva toda conectada. Em uma cena, existem várias possibilidades de contornos que satisfazem a essas condições. De uma maneira mais abrangente, cada aresta da cena é potencialmente uma aresta de borda. Um bel (do inglês boundary element) é definido como um par de pixels b= (p, q) que são adjacentes-4 (ver Figura 2.11 da Seção 2.5.3). A cada bel é associado um conjunto de características que expressam a probabilidade deste bel pertencer a uma borda de c. Estas características são, então, convertidas em um valor único de custo para o bel. Um valor de custo é associado a todos os contornos que são orientados, fechados e conectados de C. Este valor de custo é a soma dos custos de todos os bels que fazem parte do contorno. O que o live wirefaz é achar o contorno que tenha o menor custo. Com a interação do usuário especificando um bel b0, o problema se resume a encontrar um contorno fechado, orientado e conectado de C
29 2.5. SEGMENTAÇÃO INTERATIVA que contenha b0.
Características
Uma característica é uma função que associa um valor inteiro a cada bel b = (p, q) da cena C = (C, g). As seguintes características são consideradas:
a) A intensidade máxima no bel b = (p, q):
f1(b) = ( g(p), se g(p) ≥ g(q) g(q), caso contrário. 2.1
b) A intensidade mínima no bel b = (p, q):
f2(b) = ( g(p), se g(p) ≤ g(q) g(q), caso contrário. 2.2
c) As magnitudes do gradiente (características f3, f4, f5e f6): a Figura 2.7 exibe a vizi-nhança do bel b = (p, q). Através de aproximação digital baseada nesta vizivizi-nhança, os custo são calculados através das magnitudes do gradiente de g como segue:
f3= |g(p) − g(q)| 2.3 f4=1 3|g(p) + g(t) + g(v) − g(q) − g(u) − g(w)| 2.4 f5=1 2|g(p) + 1 2g(t) + 1 2g(v) − g(q) − 1 2g(u) − 1 2g(w)| 2.5 f6=1 4(|g(p) − g(u)| + |g(t) − g(q)| + |g(p) − g(w)| + |g(v) − g(q)|) 2.6
Figura 2.7: Vizinhança do bel b = (p, q).
Para este trabalho foram utilizadas as características f1, f2e f3. A escolha decorre da necessidade de minimizar o custo computacional de cada interação melhorando experiência do usuário.
30 2.5. SEGMENTAÇÃO INTERATIVA Funções de Custos
Através das chamadas transformadas de características cj, as características são converti-das para valores de custo cj( fi(b)) no intervalo [0, 1]. Várias transformadas de custo podem ser utilizadas e algumas delas são descritas a seguir:
a) Linear: c1(b) é um mapeamento linear no intervalo [l1, h1] de valores de característi-cas e 1 para valores fora deste intervalo.
b) Linear inversa: c2(b) é um mapeamento linear inverso no intervalo [l2, h2] de valores de características e 1 para valores fora deste intervalo.
c) Gaussiana: c3(b) é uma função gaussiana com média l3e desvio padrão h3.
d) Complemento da função gaussiana (FALCÃO, 1997): c4(b) é o complemento de uma função gaussiana com média µ4e desvio padrão σ4dentro do intervalo [l4, h4]:
c4(x) = 1, x≤ l4 1 − exp−(x − µ4) 2 2σ42 , l4< x < h4 1, x≥ h4, 2.7
e) Hiperbólica modificada: c5(b) é uma função hiperbólica considerando apenas os valores positivos como segue:
c5(x) = 1, para x ≤ l5+a 2 2 a2 2(x − l5) , l5+a22 ≤ x ≤ h5 0, para x > h5, 2.8
onde a representa a distância do foco da hipérbole para as suas assíntotas e l5é a distância da origem até a assíntota x = l5.
f) Hiperbólica modificada inversa: c6é a inversão de c5 dada por
c6(x) = 1, para x ≤ l6+a 2 2 1 − a 2 2(x − l6) , l6+a 2 2 ≤ x ≤ h6 0, para x > h6, 2.9
Por fim um valor final de custo é obtido através do chamado custo conjunto. Para cada bel bde C, o custo conjunto c(b) é uma combinação linear dos custos Cj associados a cada característica:
31 2.5. SEGMENTAÇÃO INTERATIVA
c(b) = ∑iwicfi( fi(b))
∑iwi
, 2.10
onde wié um valor de peso utilizado para enfatizar uma característica fie cfi é o valor de custo
associado à característica fi. Neste trabalho, apenas a transformada de custo c4foi utilizada. Caminho Ótimo
O Algoritmo 1 é baseado em programação dinâmica e tem como objetivo achar o caminho entre os vértices vs e veque possua o menor custo conjunto dentre todos os caminhos entre vs e ve.
Algoritmo 1: Algoritmo para achar o caminho de custo conjunto mínimo entre dois vértices vse ve.
Entrada: A função de custo conjunto c; um vértice inicial vs e um vértice final ve; e um limiar Tcc de custo cumulativo. As seguintes estruturas de dados auxiliares são utilizadas: uma matriz bidimensional de custo cumulativo ccque representa o custo total do caminho ótimo do vértice vspara cada vértice de C; uma matriz bidimensional de direções dir que indica para cada vértice de C qual o vértice vizinho por onde passa o caminho ótimo; uma fila de vértices Q; e uma lista de vértices processados L.
Saída: Uma série de bels que formam o caminho ótimo de vspara ve.
1 início
2 para todo vértice v de C faça
3 c(v) ← ∞
4 fim
5 cc(vs) ← 0 6 Insere vsem Q
7 enquanto Q não estiver vazia faça
8 Remove de Q o vértice v que possui o menor valor cc(v) e adiciona em L. 9 para todo v0pertencente a vizinhança-4 de v e v0∈ L faça/
10 cctmp← cc(v) + c(b0), onde b0é o bel cuja direção parte de v0para v. 11 se cctmp< cc(v0) e cctmp< Tccentão
12 cc(v0) ← cctmp
13 dir(v0) recebe a direção de v0para v 14 se v0∈ Q então Insere v/ 0em Q;
15 fim
16 fim
17 fim
32 2.5. SEGMENTAÇÃO INTERATIVA
2.5.2
Live-vessel
O Live-vessel é uma técnica de segmentação interativa baseada no live-wire proposto por BARRETT; MORTENSEN (1997). Este é utilizado para segmentação de bordas e o live-vessel é adaptado para tarefa específica de segmentação de vasos. A função objetivo proposta é definida de modo a obter de maneira ótima o eixo central e o raio de um vaso (DICKIE; HAMARNEH; ABUGHARBIEH, 2009).
O live-wire de BARRETT; MORTENSEN (1997) utiliza o algoritmo clássico de Dijkstra de busca em grafos para definir um caminho ótimo entre dois pontos. O live-vessel estende esta abordagem para realizar buscas em um espaço 3D, visando encontrar ao mesmo a linha central no espaço bidimensional da imagem e o raio - uma terceira dimensão - de estruturas em forma de vasos. O usuário realiza a segmentação através de marcações de pontos ao longo da linha central dos vasos em vez de delinear as bordas. A partir dos pontos marcados, o algoritmo faz uma busca no espaço (x, y, r), onde (x, y) representa as coordenadas espaciais de um nó no eixo medial do vaso e r representa o raio deste nó como pode ser visto na Figura 2.8. O espaço de busca pode ser visto como um conjunto de planos 2D com cada plano associado a um raio.
Figura 2.8: Ilustração de um caminho central do entre os ponto P e Q projetado no plano xy. Fonte: DICKIE; HAMARNEH; ABUGHARBIEH (2009)
A interação do usuário com o algoritmo se dá de maneira semelhante ao live-wire (ver Seção 2.5.1). Porém, ao invés de exibir apenas o contorno entre dois pontos, o live-vessel exibe o caminho central ao longo do vaso e o contorno associado como podem ser vistos na Figura 2.9.
33 2.5. SEGMENTAÇÃO INTERATIVA
Figura 2.9: O live-vessel, além de encontrar o caminho central do vaso, delimita os contornos externos do mesmo. Fonte: DICKIE; HAMARNEH; ABUGHARBIEH (2009)
Funções de Custo
Define-se a função objetivo entre o nó p = (x1, y1, r1) e o nó q = (x2, y2, r2) como sendo
Custo(q, p) = (w1Cv(q) + w2Cc(q) + w3Ce(q))(w4Cs(p, q) + w5Cr(p, q)), 2.11 onde os custos Cv(q), Cc(q) e Ce(q) são independentes do caminho e baseia-se apenas nas informações do pixel representado pelo nó q. Cv(q) é baseado no filtro multiescalas de FRANGI et al. (1998) (Vesselness), usualmente utilizado para salientar as estruturas em forma de vasos através do cálculo de autovalores da matriz hessiana da imagem. Ccé um custo baseado em um detector de estruturas curvilíneas (Curvilinear). Ceé um custo associado à medida de adequação do nó dentro do vaso (Edge Evidence). Os custos Cs(p, q) e Cr(p, q) são dependentes do caminho e servem para suavizar o caminho (Medial Path Smoothness) e regular a espessura (Radial Path Smoothness). É possível compreender o papel de cada custo através da Figura 2.10.
Figura 2.10: Ilustração que mostra o papel de cada custo no processo de segmentação. Fonte: DICKIE; HAMARNEH; ABUGHARBIEH (2009)
A função de custo Cv(q) tem como objetivo estimar a probabilidade do pixel representado pelo nó q pertencer a um vaso de espessura σ .
34 2.5. SEGMENTAÇÃO INTERATIVA Cv(q) = 1, λ2> 0 1 − exp Rβ 2β2 1 − exp T 2 2c2 , caso contrário, 2.12 onde Rβ = λ1 λ2; T = q
λ12+ λ22; e β e c são parâmetros que controlam a sensibilidade do filtro. Para determinar se um pixel pertence à imagem em uma determinada escala σ , primeiro realiza-se uma convolução com uma gaussiana de variância σ2 e, em seguida, encontra-se a matriz hessiana para cada pixel. Os autovalores da matriz hessiana |λ1| ≤ |λ2| podem ser utilizados para determinar se o pixel pertence a algum vaso a partir da Equação 2.12.
A função de custo Cc(q) serve para encontrar estruturas alongadas através de estimativas da direção. Em seguida, um filtro é aplicado nesta direção salientando as estruturas em forma de linha. A resposta do filtro tem valor máximo no eixo central das estruturas em forma de linha, e tem valores que decrescem do eixo central até chegar à borda.
Cc= min(Pos(Rl), Pos(Rr)), 2.13 onde Pos(x) = max(x, 0); Rl e Rrsão as chamadas edge responses calculadas a partir da imagem
fσ suavizada na escala σ : Rl= 5 fσ(q + σ ~d) · ~d 2.14 Rr = − 5 fσ(q + σ ~d) · ~d 2.15
Para estimar a direção ~d, utiliza-se o autovetor obtido através da matriz hessiana calculada para uma dada escala σ .
A função de custo Ce tem como objetivo fazer com que os nós centrais sejam aqueles mais próximos possível do centro do vaso. Para cada nó q, é computada a soma de seis amostras de borda a um raio r do ponto (x, y) na direção dada pelo principal autovetor da matriz hessiana e1. Para aumentar a robustez, amostras adicionais são coletadas ao longo da direção paralela ao vetor ε · e2, onde e2é autovetor da matriz hessiana e ε é um parâmetro livre.
Ce(q) = 1 − Edge(q ± r · e1± {−ε, 0, ε} · e2), 2.16 onde o operador Edge é o gradiente no espaço RGB definido como a raiz quadrada do segundo autovalor da matriz DTDonde D é dada por
D= Rx Ry Gx Gy Bx By 2.17
O custo Cs(p, q) é calculado simplesmente através da distância euclidiana entre os nós vizinhos p e q e tem como objetivo suavizar o caminho traçado penalizando os nós vizinhos nas
35 2.5. SEGMENTAÇÃO INTERATIVA diagonais. Já o custo Cr(q, p) tem como objetivo suavizar mudanças bruscas no raio estimado e é definido como:
Cr(q, p) = |rq− rp| rmax− rmin
. 2.18
Ou seja, quanto maior a diferença entre os raios de nós vizinhos, maior é o custo. Os valores rmaxe rminsão os valores máximo e mínimo que os raios podem assumir. Portanto, rmax− rminé um fator de normalização. Na implementação utilizada no sistema COSE, o conjunto de n raios radii= {r1, r2, . . . , rn} é passado como entrada do algoritmo. Neste caso, rmin= r1e rmax= rn.
2.5.3
Watershed
Em FALCÃO; STOLFI; LOTUFO (2004), o autor define a Image Foresting Trans-form(IFT), uma técnica baseada na minimização dos custos dos caminhos do grafo que re-presenta uma imagem, levando em consideração as relações de adjacência de seus pixels. As principais motivações mencionadas pelo autor são a unificação, a eficiência e a simplicidade. A transformação de watershed é uma técnica de segmentação de imagens inicialmente proposta por BEUCHER; LANTUEJOUL (1979). A imagem é representada como uma superfície topográfica, onde os níveis de intensidade definem as alturas na superfície. A formulação mais convencional é a inundação desta superfície através de buracos feitos nas regiões de mínimo. À medida que o nível da água vai subindo, as águas de duas bacias distintas tendem a se unir e quando isto ocorre, uma barreira é construída para demarcar a linha de encontro. O processo termina quando apenas barreiras estiverem acima do nível da água. A definição clássica tem um problema de super segmentação. Foi implementado no sistema COSE o algoritmo watershed a partir de marcadores - uma modificação conceitual do algoritmo de watershed clássico (BEUCHER; LANTUEJOUL, 1979) proposto por MEYER; BEUCHER (1990) para resolver o problema da super segmentação. O objetivo de FALCÃO; STOLFI; LOTUFO (2004) é a definição de um algoritmo para minimização dos custos dos caminhos em um grafo, gerando uma floresta de caminhos ótimos. A partir de diferentes funções de custo de caminho, vários operadores de imagem podem ser implementados: multiscale skeletons, euclidean distance transform, saliency points, etc. Para as finalidades deste trabalho, foi implementado o algoritmo de IFT utilizando a função de custo apropriada para o operador de watershed a partir de marcadores. A seguir são dadas algumas definições necessárias ao entendimento do algoritmo:
Seja a imagem I um par (I,I), onde I é o conjunto de pixels - pontos em Z2- e I atribui um valor I(t) para cada pixel t ∈I. I(t) pode ser, por exemplo, um nível de cinza.
A imagem I pode ser interpretada com um grafo cujos nós são os pixels e cujas arestas são os pares de pixels emA, a relação de adjacência entre pixels de I. Para este trabalho foi utilizada a relação de adjacência euclidiana:A é composta por todos
36 2.5. SEGMENTAÇÃO INTERATIVA os pares distintos de pixels (s,t), tal que (s,t) ∈I × I e d(s,t) ≤ ρ, onde d(s,t) é a distância euclidiana e ρ =√2 o que corresponde à chamada adjacência-8 (ver Figura 2.11).
Um caminho é definido como um sequência de pixels π = ht1,t2, . . . ,tki, onde (ti,ti+1) ∈A para 1 6 i 6 k − 1. Além disso, define-se a origem do caminho como org(π) = t1e o destino como dst(π) = tk.
Se π e τ são caminhos onde dst(π) = org(τ), então π · τ representa a concatenação dos caminhos.
f é uma função de custo do caminho que atribui o valor f (π) ao caminho π.
(a) Adjacência-4 (b) Adjacência-8
Figura 2.11: Relações de adjacência euclideanas (a) ρ = 1 e (b) ρ =√2. Fonte: FALCÃO; STOLFI; LOTUFO (2004)
Para a implementação do watershed, utilizou-se a função de máximo como função de custo:
fmax(hti) = h(hti),
fmax(π · hs,ti) = max{ fmax(π), w(s,t)},
2.19
onde h(hti) é o custo atribuído ao caminho trivial hti, que contém apenas um nó; w(s,t) é um peso fixo não negativo atribuído à aresta (s,t) ∈A.
Em aplicações usuais da IFT, como é o caso do watershed a partir de marcadores, deseja-se aplicar a função de custo de caminho f apenas a caminhos que tenham origem em um subconjuntoS, S ⊆ I de pixels. Modela-se essa restrição construindo uma nova função de custo
fS(π): fS(π) = ( f(π), se org(π) ∈S ∞ caso contrário 2.20 Para a função fmax, este efeito é obtido fazendo com que h(hti) = ∞, caso t /∈S.
Como descrito anteriormente, o algoritmo de watershed pode ser modelado como uma inundação em uma superfície topográfica. Esta superfície pode conter regiões de planalto, ou seja, um região de altura constante. Portanto, por fim, utilizou-se a função de custo flex(π) =
37 2.5. SEGMENTAÇÃO INTERATIVA
( fmax(π), fd(π)), onde fd(π) representa a distância à borda do planalto, o que causa o efeito de
fazer com que diferentes frentes de água fluam com a mesma velocidade por sobre o planalto (KLAVA, 2009):
fd(hv1, . . . , vni) = max
k∈[0,n−1]{k, fmax(hv1, . . . , vni)} = fmax(hv1, . . . , vn−ki)
2.21 flex(π · (vn−1, vn)) = ( (w(vn−1, vn), 0), se w(vn−1, vn) > fmax(π) ( fmax(π), fd(π) + 1), caso contrário
2.22
Dada uma função de custo f qualquer, um caminho π é considerado ótimo se f (π) ≤ f(π0) para qualquer outro caminho π0onde dst(π) = dst(π0), independentemente da origem.
Um mapa de predecessores é uma função que atribui a cada pixel t emI algum outro pixel emI, ou null caso t seja raiz do mapa, ou seja, um nó sem predecessores. Uma floresta de extensão é um mapa de predecessores que não contém ciclos. Para cada pixel t ∈I, a função mapa de predecessores P - uma floresta de extensão (spanning forest) - define, recursivamente, um caminho P∗(t) = hti se P(t) = null e P∗(s) · (s,t) caso P(t) = s 6= null.
O algoritmo de IFT recebe como entrada uma imagem I, uma função f de custo de caminho, uma relação de adjacênciaA e retorna uma floresta de caminhos ótimos – uma floresta Pcujo P∗(t) é ótimo para cada pixel t .
O Algoritmo 2 abaixo descreve a IFT adaptada para a aplicação específica do watershed, ou Image Foresting Transform-Watershed (IFT-WS). O bloco que inicia na linha 18 é necessário para definir as linhas de watershed: WS é o conjunto de pixels que define as linhas de watershed (KLAVA, 2009). As linhas de watershed delimitam as regiões segmentadas ou, da perspectiva da modelagem clássica do algoritmo, são as linhas delimitadas pelo encontro das águas vindas de duas bacias distintas.
38 2.5. SEGMENTAÇÃO INTERATIVA Algoritmo 2: IFT adaptada para implementação do watershed interativo.
Entrada: Imagem I = (I,I); uma relação de adjacência A ⊆ I × I; uma função de rotulação λ ; a função de custo de caminho f ; e uma fila de prioridades Q. Saída: Uma floresta de extensão de custo ótimo P; um mapa de custos C; e um
mapa de rótulos L das raízes das árvores da floresta P.
1 início
2 para todo t ∈I faça
3 P(t) ← null
4 L(t) ← λ (t)
5 C(t) ← f (hti)
6 se C(t) < ∞ então Insere t em Q;
7 fim
8 enquanto Q não estiver vazia faça
9 Remove pixel s cujo custo C(s) seja o mínimo
10 para todo pixel t, tal que (s,t) ∈A e C(t) > C(s) faça 11 C0← f (P∗(s) · (s,t)) 12 se C0< C(t) então 13 se C(t) 6= ∞ então Remove t de Q; 14 P(t) ← s 15 C(t) ← C0 16 L(t) ← L(s) 17 Insere t em Q 18 fim 19 se L(s) 6= L(t), t /∈ WS e s /∈ WS então 20 WS← WS ∪ {s} 21 fim 22 fim 23 fim 24 fim
Cada árvore da floresta P define uma região diferente a partir de um dado conjunto de marcadores, ou seeds.
As imagens da figura 2.12 foram utilizadas para demonstrar o funcionamento do algo-ritmo em diferentes casos. A Figura 2.12a representa um problema prático para o qual COSE foi desenvolvido. A Figura 2.12b foi utilizada para verificar o funcionamento do algoritmo sobre uma imagem que contém uma grande quantidade de ruído e que não tem suas regiões tão bem definidas quanto a Figura 2.12a.
39 2.5. SEGMENTAÇÃO INTERATIVA
(a)
(b)
Figura 2.12: Imagens utilizadas para demonstrar o funcionamento do algoritmo de watershedinterativo.
A Figura 2.12a apresenta uma imagem de células que possui uma clara divisão de regiões. O interior das células como regiões mais escuras e as paredes das células como regiões mais claras. A IFT-WS foi aplicada a fim de verificar o efeito de diferentes posicionamentos de marcadores. Os marcadores são representados na cor verde e as linhas de watershed são representadas na cor vermelha.
40 2.5. SEGMENTAÇÃO INTERATIVA
(a) (b)
(c) (d)
Figura 2.13: Aplicação da IFT-WS à imagem de células. Os pontos verdes são os marcadores e as linha de watershed estão indicadas em vermelho. (a) Imagem de células,
com características de regiões bem divididas. (b) e (c) apresentam a mesma divisão de regiões usando diferentes marcadores. (d) Uma segmentação possível das paredes
celulares.
Nas Figuras 2.13b e 2.13c, a mesma separação de regiões foi obtida através de diferentes posicionamentos de marcadores mostrando a tolerância quanto a posição. Ou seja, o usuário não precisa ser muito preciso para marcar determinada região, o que é uma característica desejada em um ambiente interativo sujeito à imprecisão e variabilidade dos usuários. Em ambas as figuras, os marcadores delimitam as duas mesmas regiões. Na Figura 2.13d é apresentada uma possível segmentação para a imagem em questão. Praticamente todos os interiores de células foram marcados, indicando uma região para cada célula. Desta forma, o algoritmo separou em diferentes regiões e marcou as linhas de watershed em vermelho.
A interação do usuário com o watershed é realizada através dos scribbles, ou rabiscos. Estes se fazem necessários para melhorar a interação do usuário com o sistema, possibilitando-lhe um maior controle sobre o resultado final da segmentação como exemplificado na Figura 2.14.
41 2.5. SEGMENTAÇÃO INTERATIVA
(a) (b)
Figura 2.14: Utilização de scribbles, em verde, para aumentar a precisão na marcação de regiões. As linhas de watershed - linhas de separação das regiões - estão em vermelho.
A imagem da Figura 2.12b exemplifica um caso onde o desempenho do algoritmo não é bom. Nota-se que a imagem possui um elevado nível de ruído e apresenta uma textura complexa, dificultando a clara separação de suas regiões.
Usualmente, antes da aplicação do algoritmo de watershed, é realizada uma etapa de preprocessamento utilizando filtros morfológicos. No caso, o que se deseja é fazer com que as regiões de interesse possuam intensidade constante e que as bordas sejam salientadas, criando uma superfície topográfica própria para a aplicação do algoritmo de watershed. Este efeito pode ser obtido através do gradiente morfológico:
∇I = (I ⊕ b) − (I b), 2.23 onde ∇I é o gradiente morfológico da imagem I; I ⊕ b é a dilatação de I com o elemento estruturante b; e I b é a erosão de I com o elemento estruturante b (GONZALEZ; WOODS, 2010). Foi utilizado o elemento estruturante quadrado de dimensões 3x3 para aplicação do gradiente morfológico à imagem da Figura 2.12b.
A Figura 2.15 mostra o resultado da aplicação da IFT-WS utilizando preprocessamento morfológico. Embora não tenha sido um bom resultado, a segmentação utilizando o gradiente morfológico (Figura 2.15b), visualmente, mostrou maior precisão do que a segmentação sem este preprocessamento (Figura 2.15a). As linhas em vermelho, que representam a segmentação, deveriam estar por sobre as veias da folha (linhas escuras na imagem). Para um conjunto parecido de marcadores (em verde), a Figura 2.15b apresenta uma melhor segmentação do que a Figura 2.15a, pois a linha de segmentação está mais próxima das veias da folha.
42 2.5. SEGMENTAÇÃO INTERATIVA
(a) Sem preprocessamento morfológico (b) Com preprocessamento morfológico Figura 2.15: Aplicação do algoritmo de IFT-WS à imagem da Figura 2.12b.