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
,Track
eView
; - 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.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 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
SystemAlgorithms
ou definindo as flags de otimização- Otimização por performance utiliza detector
STAR
, extratorSURF
e matcherBrute Force L1
; - Otimização por qualidade utiliza detector e extrator
SIFT
e matcherBrute Force L2
; - Otimização por balanceamento utiliza detector
SIFT
, extratorBRISK
e 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%/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;
- 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-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;
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.