Doppia

De LCAD
Ir para: navegação, pesquisa

Manual de instalação do projeto Doppia

Baixando o projeto Doppia

Para baixar o Doppia, basta acessar o link do projeto https://bitbucket.org/rodrigob/doppia e navegar até a sessão "Downloads" ou clicar diretamente neste link

Pré-requisitos
  • Sistema operacional Linux (testado com sucesso na distribuição Ubuntu (versões 12.04.x e 14.04);
  • Compilador GCC versão 4.5 ou superior;
  • Unidade de processamento gráfico (GPU) com suporte a plataforma CUDA (versão 2.0 ou superior);
  • Coleção de bibliotecas boost (no Ubuntu: sudo apt-get install libboost-all-dev e em seguida sudo ldconfig para definir os paths das bibliotecas recentemente instaladas);
  • Biblioteca SDL - Simple DirectMedia Layer (no Ubuntu: sudo apt-get install libsdl1.2-dev);
  • Biblioteca Google Protocol Buffers (acesse http://code.google.com/p/protobuf/downloads/list para baixar e instalar);
  • Biblioteca OpenCV preferencialmente na versão 2.4 ou superior (para instalar, acesse http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation).
    PS: Use CUDA enable caso possua GPU com suporte a CUDA;
  • Bibliotecas libjpeg e libpng (no Ubuntu: sudo apt-get install libjpeg-dev libpng12-dev);
  • CMake (no Ubuntu: sudo apt-get install cmake);


Instalando o projeto Doppia

  • Ao descompactar o projeto, no diretório raíz, existe um script chamado generate_protocol_buffer_files.sh que corrige possíveis erros de diferentes versões do Google Protocol Buffers. Execute-o: source generate_protocol_buffer_files.sh;
  • Regenerar todos os arquivos .proto do projeto Doppia para a versão do Google Protocol Buffers instalada, através do comando: protoc --cpp_out=. <nome_do_arquivo>.proto.
    Note que stixels.proto utiliza plane3d.proto. Para solucionar o problema copie os arquivos ../ground_plane/plane3d.p* para o diretório ../src/stereo_matching/stixels/;
  • Adicione a linha de código #include <google/protobuf/io/coded_stream.h> no cabeçalho do arquivo ~/src/helpers/data/DataSequence.hpp
  • Módulo ground_estimation: incluir os links opencv_core opencv_imgproc opencv_calib3d no arquivo CMakeList.txt (linha 129) na tag ${opencv_LIBRARIES} opencv_legacy;
  • Módulo object_detection: incluir o seguinte trecho de código no cabeçalho do arquivo ~/src/objects_detection/SoftCascadeOverIntegralChannelsFastStage.hpp:
    #if defined(__CUDACC__) // NVCC
    #define NEW_ALIGN(n) __align__(n)
    #elif defined(__GNUC__) // GCC
    #define NEW_ALIGN(n) __attribute__((aligned(n)))
    #else
    #error "Define NEW_ALIGN macro for your compiler!"
    #endif
    e substitua __align__(N) por NEW_ALIGN(N);
  • Módulo object_detection: incluir o link opencv_gpu na tag ${opencv_LIBRARIES} (linha 250) do arquivo CMakeList.txt em ~/src/applications/object_detection;
  • Módulo object_detection: adicionar a tag ${CUDA_LIBRARIES} -L/usr/local/cuda-XX/lib (para sistemas 64 bits, use o path -L/usr/local/cuda-XX/lib64) -lcudart no arquivo CMakeList.txt (adicionar abaixo da linha 250) em ~/src/applications/object_detection;