Giter Site home page Giter Site logo

defe41251135 / android-viotester Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aaltoml/android-viotester

0.0 0.0 0.0 376 KB

Visual-Inertial Odometry (VIO) benchmark app for Android

License: Apache License 2.0

Shell 0.58% C++ 37.95% Java 59.66% CMake 1.16% GLSL 0.65%

android-viotester's Introduction

Visual-Inertial Odometry (VIO) benchmark app for Android

Usage

There different modes in the application are explained below

Data collection

Saves data as tarballs to the "external cache" folder on the disk. Accessible via ADB

# list files
adb shell ls -lha /storage/emulated/0/Android/data/org.example.viotester/cache/recordings

# download data (example)
adb pull /storage/emulated/0/Android/data/org.example.viotester/cache/recordings/20191031104043.tar

These files can also be shared directly from the phone using the Share recording button. To remove the recordings from the phone, either use ADB (adb shell rm ...) or just clear the cache from Android settings, e.g., Long tap icon -> App info -> Storage & Cache -> Clear cache.

For data collection, the recommended settings are

  • Resolution: 1280x960
  • (Target) FPS: 30

TODO: the real recording FPS will not currently be stored to the recorded video, which may produce speedups in playback. However, this does not otherwise affect the algorithm and since the true timestamps of the frames are stored in the other recording file, the problem is fixable later with, e.g, FFMpeg.

Camera calibration

Approximates camera parameters using OpenCV on phones whose Camera 2 API does provide these values

  1. Print or open this pattern on your screen.
  2. Move camera so that the pattern is viewed from different angles and at different locations on the screen (center & edges)
  3. The camera parameters at the current resolution are printed on screen (TODO: share to Slack etc.)

Build

First, configure using

./configure.sh

Note: you will also have to do this after changing anything in preferences.xml. In addition to merging the available settings XML files, it creates a dummy google-services.json if you don't have one.

Linux/Mac setup

On Debian Stretch, these packages needed to be installed with apt-get

  • ninja
  • ccache
  • openjdk-8-jdk

Also an Android SDK and Android NDK need to be installed. The project can be run in Android Studio.

ARCore test mode

Can be used to compare other methods to Google ARCore. Enabled by changing the build flavor to arcore.

AREngine test mode

Enables comparison to Huawei AREngine. Enabled by changing the build flavor to arengine. Requirements:

  • Supported Huawei phone

Copyright

The files under app/src/arcore that say so at the top of the file, are Licensed under Apache 2 (© Google). They have been copied from the ARCore SDK examples. To see how they have been modified from their original versions, see comments beginning with "NOTE".

The original code in this repository is also licensed under Apache 2.0.

The depenency mobile-cv-suite is a collection of libraries licensed under various OSS licenses, including LGPL. See the repository for more details.

android-viotester's People

Contributors

bercon avatar oseiskar avatar pekkaran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.