Usando a Point Cloud Library no Visual Studio 2017

Prezados!

No meu mestrado trabalhei com segmentação em nuvens de pontos. Utilizei imagens obtidas com o Microsoft Kinect e apliquei o algoritmo do Crescimento de Regiões sobre as imagens 3D para destacar áreas de interesse.

Durante a pequisa e em conversas com o pessoal do grupo de pesquisa fui apresentado a Point Cloud Library (PCL), que já implementava o Crescimento de Regiões baseado em RGB. Para mim, na época foi um tremendo avanço, mas me deparei com o problema: Como usar no Ambiente Windows?

Depois de muito quebrar a cabeça tentando compilar o código-fonte da PCL e suas dependências para Windows encontrei o Vcpkg, que descrevi melhor neste post, vale a pena dar uma olhada.

Então após a instalação das respectivas dependências eu estava apto a começar a implementar os desafios da minha pesquisa, mas “como sempre tem um porém” tive que fazer alguns ajustes para tudo funcionar bem no Visual Studio 2017.

Diretivas de Pré Compilação

Adicione as seguintes diretivas de pré-compilação ao seu projeto: Botão Direito do mouse sobre o seu projeto, vá em “Properties“. Na caixa de diálogo que abrir siga o caminho: “Configuration Properties” ->”C/C++” -> “Preprocessor” -> “Preprocessor Definitions“. Vá na lista suspensa em “<Edit>” e adicione:

  • BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE
  • _CRT_SECURE_NO_WARNINGS
  • _SCL_SECURE_NO_WARNINGS

Essas diretivas vão suprimir avisos de funções que estão “fora de linha”: deprecatation. Você pode encontrar mais informações de porque eu adicionei essas diretivas aqui, aqui e aqui.

Recomendo também você ir em “C/C++” -> “General” e definir “SDL Checks” para “No (/sdl-)“.

Como deixar a execução do Region Growing mais rápida?

Como o Region Growing costuma consumir muita memória RAM (nos meus experimentos uma nuvem com cerca de 500 mil pontos, o processo consome entre 1GB à 2GB) eu recomendo que você tenha instalado a versão de 64 bits e altere o modo de Debug para Release.

No modo Debug as execuções do programa demoravam entre 10 até 30 minutos. Já no modo Release esse tempo cai para alguns segundos. Por que? No modo Debug o compilador coleta uma série de informações para ajudar na resolução de problemas no código-fonte.

Ok, mas a visualização não funciona!

Eu também me deparei com esse problema. De acordo com a comunidade da PCL no gihub esse problema acontece porque a PCL não funciona com a versão da VTK instalada pelo Vcpkg. Para mim isso não foi um problema, pois sempre usei as funcionalidades da PCL para salvar os arquivos em PLY ou PCD, facilmente abertos no CloudCompare.

Conclusão

Após essas configurações tudo está funcionando muito bem, pelo menos por aqui! A visualização ainda é um problema a ser resolvido, pelo menos na data em que estou escrevendo esse post. Ademais, estamos prontos para usar a PCL e todas suas funcionalidades.

Abraços,

Tiago.

3 Comments

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *