Desenvolvimento da biblioteca Markerless AVRLib para Realidade Aumentada baseada em marcadores naturais.
- 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,TrackeView; - 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 pelaApplication; - As aplicações no momento devem ser implementadas no projeto
Application;
- 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;
- Abra o projeto
App Module.cbpe 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
Applicationutilizando a interfaceApplication::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
SystemAlgorithmsou definindo as flags de otimização- Otimização por performance utiliza detector
STAR, extratorSURFe matcherBrute Force L1; - Otimização por qualidade utiliza detector e extrator
SIFTe matcherBrute Force L2; - Otimização por balanceamento utiliza detector
SIFT, extratorBRISKe matcherBrute Force Hamming;
- Otimização por performance utiliza detector
- 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
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
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;
- Adicione o diretório
%MINGW_PATH%/binna 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;
- Em "where is the source code" adicione o diretório
- Abra o prompt de comando e navegue até a pasta
%OPENCV_CMAKE%; - Execute o comando
mingw32-makee aguarde (pode levar vários minutos); - Execute o comando
mingw32-make installe aguarde alguns segundos; - Adicione o diretório
%OPENCV_INSTALL%/.../binna 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;
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_EXAMPLESconstroi os binários para os exemplos da biblioteca (desmarque para diminuir o tempo de instalação);BUILD_PERF_TESTSconstroi os binários para os testes de performance (desmarque);BUILD_opencv_appsconstroi os binários para aplicações utilitárias (desmarque);CMAKE_CODEBLOCKS_EXECUTABLEcaminho do executável do codeblocks (adicione se não for encontrado);CMAKE_INSTALL_PREFIXcaminho de instalação (altere o valor para%OPENCV_INSTALL%);WITH_XXXXsuporte à 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.