Pós-Graduação em Ciência da Computação

Computação Gráfica

Prof.Dr. Márcio Sarroglia Pinho



Datas de entrega:
Parte 0: 20/04/2020 - Entrega do Ground Truth
Parte 1: 28/04/2020 - Entrega da Segmentação por Limiar
Parte 2:
12/05/2020 - Entrega/Apresentação da Segmentação por Texturas

1. DESCRIÇÃO

O objetivo deste trabalho é realizar a segmentação de estruturas de dentes em imagens de MicroCT, usando técnicas de segmentação por limiar e técnicas de segmentação por textura.
 
Para tanto, você deverá desenvolver um programa que lê a imagem e identifica as estruturas(dentina e canal) colorindo-as com cores distintas.
A cor escolhida para uma estrutura deve ser aplicada a todas as partes desta estrutura na imagem.
Além disto, o programa deverá informar a quantidade de pixels de cada estrutura.

Exemplos imagens a ser usadas são apresentadas a seguir. Clique no link abaixo da imagem para obtê-la com a resolução original.


1014.PNG
775.png
230.png
Figura 1 - Exemplos de Imagens

O trabalho está dividido em três partes:

Parte 0:
Cada aluno deve realizar a segmentação manual de 5 imagens, colorindo, manualmente, as estruturas da seguinte forma:
As imagens a seguir apresentam um exemplo de segmetnação manual de uma das imagens.

Figura 2 - Exemplo de Segmentação Manual


As imagens resultantes devem ser disponibilizadas ao professor por meio de um link, que será distribuído aos demais colegas da turma. Estas imagens servirão como ground truth, para os algoritmos de segmentação a serem implementados.
Para obter os dados, acesse este link: https://www.inf.pucrs.br/~pinho/CG-PPGCC/Trabalhos/T3-2020-1/Dados/
A relação apresentada a seguir define quais são as imagens a serem tratadas por cada aluno:

Aluno
Arquivo
FELIPE TASONIERO Dados 1
HENRY EMANUEL LEAL CAGNINI Dados 2
MARCELO PARAVISI Dados 3
MARIANA GOMES DA FONTOURA Dados 4
MARTIN MORE Dados 5
MURILO REGIO Dados 6
PATRICK GARCIA Dados 7
RAFAEL GEISS Dados 8
RICARDO LUIS PIEPER Dados 9
WILLIAM RIZZI Dados 10

Parte 1:
Esta parte consiste na segmentação das estruturas dos dentes usando algoritmos de segmentação por limiar. Antes de aplicar estes algoritmos, o programa deve aplicar filtros na imagem a fim de pertimir uma melhor segmentação.

O programa deverá usar o ground truth para avaliar o resultados de seus algoritmos. A saída deve ser dada na forma de imagens que demonstrem quais os verdadeiros positivos e falsos positivos e falsos negativos das estruturas dentina e canal.

Parte 2:

Esta parte consiste na segmentação das estruturas dos dentes usando algoritmos de segmentação por análise de texturas.
Devem ser tulizados dois métodos:

O programa deverá usar o ground truth para avaliar o resultados de seus algoritmos.

Para reduzir a resolução da imagens, d
ivida-a em retalhos" retangulares de 16, 32 e 64 pixels de largura, classificando estes retalhos.

2. Matrizes de Co-ocorrência de Níveis de Cinza

As Matrizes de Co-ocorrência de Níveis de Cinza, do inglês Gray Level Coocurrence Matrices (GLCMs), servem para descrever correlações entre pixels vizinhos de uma imagem.
A ideia desta correlação é determinar a frequência com que duas intensidades i e j ocorrem em pontos “vizinhos” de uma imagem.
No caso, o conceito de vizinho é definido por uma distância em colunas (dx), e em linhas (dy) entre dois pontos da imagem. Desta forma, para cada distância definida por um vetor D=(dx,dy) é possível criar uma matriz de N linhas e N colunas, sendo N o número de intensidades diferentes na imagem. Esta matriz recebe o nome de Matriz de Co-Ocorrência, ou MCO.

A Figura 3 mostra o exemplo de uma imagem e três GLCMs, para as distâncias D(1,0), D(0,1) e D(1,-1). Como a imagem tem 3 tons de cinza distintos, a MCOs geradas têm 3 linhas e 3 colunas cada.


Figura 3 - Exemplos de MCO

Para transformar a MCO em uma matriz com valores entre 0 e 1, e assim tratá-la como um mapa de probabilidades, cada elemento é dividido pela soma ou pelo maior de todos os valores existente na MCO, gerando a chamada MCO Normalizada. A Figura 4 a seguir mostra o resultado da normalização das matrizes da Figura 3, usado o maior valor.

Figura 4 - Exemplos de MCO normalizadas

2.1 Descritores Estatísticos

A partir de uma MCO normalizada são gerados descritores estatísticos, conforme as seguintes fórmulas:



Nestas fórmulas, a expressão Pi,j é o  valor da MCO na posição [i,j].   

2.2 Preparação das imagens para o cálculo das MCOs

Note que em uma imagem real, como as fornecidas para este trabalho, os tons de cinza podem variar no intervalo entre 0 e 255. Entretanto, muitos destes tons não ocorrem de fato na imagem.

Com isto, as MCOs geradas terão muitas células contendo o valor 0, o que irá degradar a capacidade descritiva das medidas estatísticas.
Para solucionar este problema, pode-se reduzir a quantidade de tons de cinza das imagens simplesmente dividindo o valor do tom de cinza por uma constante, como no código a seguir. Neste exemplo, a quantidade de tons é reduzida de 255 para QTD_TONS, o que irá gerar uma MCO de QTD_TONS linhas e QTD_TONS colunas.


for(x=0; x<Largura x++)
{
  for(y=0; y< Altura; y++)
  {
     Cor[x][y] = Cor[x][y]/(255/QTD_TONS);
  }
}
A nova imagem gerada deve ser, então, usada para a gerar as MCOs.

Entretanto, caso seja preciso exibir a nova imagem, é aconselhavel aumentar o brilho dos pixels, pois a transformação aplicada no código reduz os tons de cinza para tons muito escuros.

Este processo de aumento de do brilho pode ser feito da seguinte forma:

   

Na Figura 5 se pode observar o resultado da redução de tons de uma imagem para 4 tons, seguido do aumento de brilho da imagem.


Figura 5 - Exemplo de redução para 4 tons de cinza, seguido de aumento de brilho

2.3 Exercícios

- Prepare as imagens reduzindo a quantidade de tons de cinza para 32 ou 64;
- Divida a imagem em retalhos" retangulares de 16, 32 e 64 pixels de largura e gere as MCOs para estes retalhos;
- Exiba as MCOs, geradas, como imagens em tons de cinza,
para os tecidos dentina e canal;
- Monte histogramas com os valores de cada um dos
descritores estatísticos gerados a partir das MCOs, para os tecidos dentina e canal.


3. Matriz de Comprimento de Corrida

As Matrizes de Comprimento de Corrida (MCCs) identificam a quantidade de vezes que uma determinada tonalidade se repete em uma imagem, dada uma certa direção.



3.1 Descritores Estatísticos

Para obter atributos de uma MCC, use, por exemplo, as fórmulas que estão na tabela 1 do artigo Automatic characterization of fracture surfaces of AISI 304LN stainless steel using image texture analysis.





3.2 Exercícios

- Prepare as imagens reduzindo a quantidade de tons de cinza para 32 ou 64;
- Divida a imagem em retalhos" retangulares de 16, 32 e 64 pixels de largura e gere as MCCs para estes retalhos;
- Exiba as MCCs, geradas, como imagens em tons de cinza,
para os tecidos dentina e canal;
- Monte histogramas com os valores de cada um dos
descritores estatísticos gerados a partir das MCCs, para os tecidos dentina e canal.


4. Classificação dos Tecidos

Para testar o poder de classificação das métricas aqui descritas, gere arquivos de treino e teste, conforme estes exemplos e teste com este script.
Para rodar o script, utilize o seguinte comando:


python Classificador.py Treino.csv Teste.csv

FIM.