Skip to content

Desenvolvimento da biblioteca Markerless AVRLib para Realidade Aumentada sem marcadores

Notifications You must be signed in to change notification settings

AVRGroup/Markerless-AVRLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Markerless AVRLib

Desenvolvimento da biblioteca Markerless AVRLib para Realidade Aumentada baseada em marcadores naturais.

Primeira Versão Funcional

Sobre

  • A Markerless AVRLib é implementada em C++11. Utiliza os algoritmos de visão computacional presentes no OpenCV. Foi compilada com o MinGW G++ 4.9 utilizando a IDE Code::Blocks 16.01;
  • A biblioteca, em sua primeira versão, é composta por 5 módulos: Application, Camera, Core, Track e View;
  • Cada projeto possui diferentes targets para criação de libs ou executáveis em modo debug ou release;
  • Exceto a Application, os demais módulos geram static libraries que são linkadas pela Application;
  • As aplicações no momento devem ser implementadas no projeto Application;

Diretórios

  • bin Binários gerados pela compilação do sistema;
  • data Algumas imagens usadas como marcadores, arquivo de configuração da câmera e vídeos das cenas testadas;
  • include headers de bibliotecas externas;
  • lib libs usadas pela biblioteca e as libs da própria biblioteca;
  • modules Código fonte de cada módulo;
  • samples No momento possui uma aplicação externa, que utiliza o OpenCV diretamente;

Instruções de Implementação

  • Abra o projeto App Module.cbp e edite o arquivo main.cpp
  • Os passos para criar uma aplicação com a Markerless AVRLib são:
    • Criar uma especificação da classe Model para renderização do modelo virtual
    • Construir um objeto Application utilizando a interface Application::Builder
    • Iniciar a aplicação por meio da chamada para o método Application::Start()
  • Na construção do objeto são definidos os marcadores, arquivo da câmera, algoritmos, o vídeo entre outros
    • Para os marcadores são necessários o arquivo com sua imagem, preferencialmente ortogonal, e a instância do objeto Model
    • Os algoritmos podem ser definidos criando-se um objeto de SystemAlgorithms ou definindo as flags de otimização
      • Otimização por performance utiliza detector STAR, extrator SURF e matcher Brute Force L1;
      • Otimização por qualidade utiliza detector e extrator SIFT e matcher Brute Force L2;
      • Otimização por balanceamento utiliza detector SIFT, extrator BRISK e matcher Brute Force Hamming;
    • Definindo um vídeo pré-gravado a biblioteca fará o processamento sobre ele, caso contrário, a webcam é aberta
  • Mais detalhes podem ser encontrados na documentação do código

Configuração do OpenCV

Diretórios

A seguir são listados alguns diretórios utilizados no processo de instação e configuração do opencv. Recomenda-se utilizar os mesmos diretórios sugeridos, dipensando alterações nos projetos da AVRLib, mas pode-se utilizar quaisquer outros caminhos.

  • %MINGW_PATH% Diretório de instalação do compilador MinGW;
  • %OPENCV_PATH% Diretório com os arquivos do opencv baixados e extraídos. Sugestão: C:\opencv;
  • %OPENCV_CMAKE% Diretório onde serão gerados os arquivos cmake. Sugestão: %OPENCV_PATH%/build/x86/mingw
  • %OPENCV_INSTALL% Diretório onde será instalado o opencv. Sugestão: %OPENCV_PATH%/install

Downloads

São necessários os seguintes softwares:

  • OpenCV superior a 2.4.9 e inferior a 3.0 (a instalação das versões 3.x é diferente) [Download Page];
  • CMake 3.0 ou superior [Download Page];
  • MinGW 4.7 ou superior (suporte ao C++11). Recomenda-se usar o compilador que vem junto à IDE Code::Blocks na versão 16.01;

Instalação

  • Adicione o diretório %MINGW_PATH%/bin na variável de ambiente PATH;
  • Extraia os arquivos do opencv para %OPENCV_PATH%
  • Execute o CMake e siga os seguintes passos:
    • Em "where is the source code" adicione o diretório %OPENCV_PATH%/source
    • Em "where to build the binaries" adicione o diretório %OPENCV_CMAKE%
    • Clique em Configure
    • Selecione:
      • CodeBlocks - MinGW Makefiles, se utiliza o mingw que vem junto ao C::B;
      • MinGW Makefiles, caso contrário;
    • Mantenha a opção "Use default native compilers" marcada, clique em Finish e aguarde;
    • Algumas flags de configuração do opencv são exibidas, leia a seção OpenCV Flags antes de proseguir;
    • Clique em Generate;
    • Se aparecer a mensagem "Generating done" então as configurações foram realizadas com sucesso, caso contrário corrija os erros e tente novamente;
  • Abra o prompt de comando e navegue até a pasta %OPENCV_CMAKE%;
  • Execute o comando mingw32-make e aguarde (pode levar vários minutos);
  • Execute o comando mingw32-make install e aguarde alguns segundos;
  • Adicione o diretório %OPENCV_INSTALL%/.../bin na variável de ambiente PATH;
  • Por fim, abra o projeto App Module.cbp, edite os caminhos para os arquivos do opencv e tente compilar o projeto;

OpenCV Flags

Pelo CMake é possível configurar algumas características do OpenCV antes de construi-lo. A seguir são listadas algumas das flags mais importantes para este projeto.

  • BUILD_EXAMPLES constroi os binários para os exemplos da biblioteca (desmarque para diminuir o tempo de instalação);
  • BUILD_PERF_TESTS constroi os binários para os testes de performance (desmarque);
  • BUILD_opencv_apps constroi os binários para aplicações utilitárias (desmarque);
  • CMAKE_CODEBLOCKS_EXECUTABLE caminho do executável do codeblocks (adicione se não for encontrado);
  • CMAKE_INSTALL_PREFIX caminho de instalação (altere o valor para %OPENCV_INSTALL%);
  • WITH_XXXX suporte à bibliotecas e frameworks externos (marque as opções desejadas ou mantenha o que vier por padrão).

Clique em Configure para aplicar as alterações.

About

Desenvolvimento da biblioteca Markerless AVRLib para Realidade Aumentada sem marcadores

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published