/qml-ar

AR module for QML using UchiyaMarkers

Primary LanguageJupyter Notebook

AR module for QML

This module allows to add an AR component to your QML application simply by importing our library. The framework uses Random dot markers by Hideaki Uchiyama, which are chosen over other possibilities due to their small negative visual impact on the scene they are put on.

Gallery:

Android:

Sample application on Android Sample application on Android Sample application on Android Sample application on Android

Linux:

Sample application on Linux Sample application on Linux Sample application on Linux

Prerequisites (Common)

  1. Qt 5 (tested with 5.10.0) and Qt Creator (tested with 4.5.0), tested on Desktop and Android kits
  2. git

Prerequisites (Linux)

  1. OpenCV for Desktop (tested with bf418ba34)
  2. Tested on 4xAMD A8-7410 APU (GPU not used)

Prerequisites (Android)

  1. OpenCV for Android (tested with 3.3.1)
  2. Android SDK (tested with r22.3) and NDK (tested with r15c), need to be set up with Qt
  3. Android device (tested with Samsung Galaxy SM-T810 running on cyanogenmod) Up to 5 cores required, GPU is used for image rendering

Installation

  1. git submodule init && git submodule update
  2. Create a symlink called opencv-android pointing to the OpenCV for Android
  3. mkdir build_linux; cd build_linux; qmake ..; make -j10 install
  4. Same for Android, also export ANDROID_NDK_ROOT=/path/to/ndk required
  5. Open Qt Creator, open example/ar-chest.pro, compile and run on Desktop/Android

Running

  1. Download pdf and print the example file with markers:
  2. Attach camera to your PC (device 1 is used by default). Point camera towards the printed sheet
  3. A chest from Qt examples and a cuboid should appear

Application Structure

Adding markers to your scene

You can add random dot markers to your svg file by using our tool: qml-ar-inkscape

Contact

Sergei Volodin, Wafa Johal, EPFL, CHILI lab