A Parte Prática do meu Mestrado

Olá, neste post faço um compilado das técnicas, algoritmos e códigos-fonte que utilizei no meu mestrado. Aqui está um guia da parte prática das etapas que tive que realizar. No fim deste post há links para os repositórios onde as imagens 3D estão e dos código-fonte.

Detalhes de cada Parte

  1. Instalação de Pacotes C++ no Windows com VCPKG: Point Cloud Library (PCL) e OpenCV
  2. Usando a PCL e OpenCV no Microsoft Windows com Visual Studio 2017
  3. Segmentação Manual de Nuvens de Pontos no CloudCompare
  4. Usando Crescimento de Regiões em RGB da PCL
  5. Conversão de Nuvens de Pontos de RGB para CIELab
  6. Cálculo do Precision and Recall (Precisão e Revocação) em Nuvens de Pontos

 

Repositórios

Como produto dos estudos da parte prática, foram gerados código-fonte que implementam parte da teoria estudada. Eles estão nos repositórios abaixo:

Obrigado!

Adicionando Sombreamento (shading) à uma imagem 3D no CloudCompare

Olá Pessoal!

Hoje trago uma dica rápida de um procedimento que tiver que realizar para melhorar a visualização de imagens 3D no meu mestrado.

O processo de sombreamento é um artificio para aumentar a percepção de profundidade em imagens 3D.

Antes e Depois do processo de sombreamento no CloudCompare

Siga os passos:

  1. Abre o CloudCompare e sem seguida abra a imagem 3D desejada.
  2. Selecione a imagem 3D (alguma coisa – Cloud) na área DBTree a esquerda.
  3. Vá em “Edit” -> “Normals” -> “Compute“.
  4. Em “Local Surface Model” altere para “Triangulation“.
  5. Aguarde o término das operações. Haverá uma barra de progressos, mas dependendo do tamanho da imagem poderá demorar.

Pronto!

Espero que essa dica ajude! Note na imagem acima a diferença na percepção da profundidade da imagem.

Outra dica é você utilizar a tecla F6 para desativar a “sun light”, onde são adicionadas e removidas as sombras rapidamente uma vez que os normals já foram computados.

Obrigado,

Tiago.

Precisão, Revocação, Acurácia e Medida-F

Olá!

Continuando a série de posts sobre meu mestrado, neste eu gostaria de abordar as métricas que usei para analisar os resultados que obtive nas segmentações com algoritmo do Crescimento de Regiões – “CR.

Como já expliquei anteriormente em minha pesquisa eu comparei os resultados da segmentação com um Padrão Ouro – “PO”, considerando esta a melhor segmentação possível.

 

Cruzando os Dados: Matriz de Confusão

Antes de calcularmos as métricas temos que gerar a matriz de confusão. Nela iremos comparar o parão ouro com o resultado obtido na segmentação.

Vamos considerar que estamos trabalhos com nuvens de pontos. Dessa forma, ao comparar as duas nuvens: a primeira do PO e a segunda segmentada pelo CR, podemos extrair alguns dados:

  • Verdadeiros Positivos – VP: são aqueles pontos segmentados no PO e no CR.
  • Verdadeiros Negativos – VN: são aqueles que não foram segmentados pelo PO e nem pelo CR.
  • Falsos Positivos – FP: são aqueles segmentados pelo CR, mas não pelo PO.
  • Falso Negativo – FN: são os pontos que não foram segmentados pelo CR, mas deveriam ter sido.

Veja a ilustração na figura abaixo:

Estamos assumindo aqui que as duas nuvens de pontos, tanto a gerada pelo CR, e tanto a do PO são binárias, ou seja, os pontos possuem apenas as coordenadas 3D (x, y, z) e um nível de intensidade de cor: zero (preto) e 255 (branco).

Uma vez que identificamos o valor de VP, VN, FP e FN vamos enfim calcular as métricas de Precisão, Revocação, Acurácia e Medida F.

Precisão (Precision)

Pode-se definir que foi a capacidade de evitar falsos positivos na segmentação da nuvem de pontos.

[pmath size=18]precisao= vp / {vp + fp} [/pmath]

 

Revocação (Recall)

É a proporção entre as segmentações corretas e o total de segmentações realizadas. Essa métrica indica o quão boa foi a segmentação na escolha dos pontos corretos da nuvem, ou seja, os pontos que deveriam ser VP foram rotulados como tal assim como os VN.

 

[pmath size=18]revocacao= tp/ {tp+fn} [/pmath]

 

Acurácia (Accuracy)

Corresponde a proporção entre os pontos segmentados corretamente, sendo eles regiões de interesse, com a soma destes mais os pontos definidos como falso positivos e falsos negativos.

[pmath size=18]acuracia= {vp+vn}/{vp+vn+fp+fn}[/pmath]

 

Medida F (F Measure, F1)

É a média harmônica entre precisão e revocação. Uma vez que seu valor está alto significa que a acurácia que obtivemos é relevante, ou seja, os valores de VP, VN, FP, FN aferidos não apresentam grandes distorções. Também pode-se interpretar como uma medida de confiabilidade da acurácia.

[pmath size=18]F= 2  {precisao * removacao} / {precisao+revocacao} [/pmath]

Exemplo

Neste exemplo eu trago o resultado final obtido por mim em minha dissertação de mestrado. Na tabela abaixo observa-se os valores das métricas considerando a comparação entre uma nuvem segmentada por CR e o Padrão Ouro

Tabela 21 – Valores aferidos das métricas de avaliação para os melhores cenários do modelo de cor CIELab considerando o padrão ouro para áreas de anidrose.
Cenário Precisão Revocação Verdadeiro Positivo Verdadeiro Negativo Acurácia Medida F Anidrose
44 0,93 0,98 0,98 0,80 92,94% 95,35% 28%
45 0,92 0,97 0,97 0,76 91,46% 94,40% 29%
46 0,91 0,97 0,97 0,74 91,29% 94,32% 28%

Explicando a tabela: Veja que o cenário 24 foi o que obteve a maior acurácia, e ainda a Medida F acompanhou o valor médio de Precisão e Revocação, logo a acurácia obtida é confiável. Se você quiser saber mais sobre meu trabalho acesse a categoria Mestrado, lá eu deixei vários posts sobre o problema da pesquisa e ainda tutoriais sobre a realização da parte prática!

 

Referências