Real time eye tracking for embedded and mobile devices.

Overview

drishti

Travis Appveyor License (3-Clause BSD) Hunter Gitter

drishti\_text\_big

Real time eye tracking for embedded and mobile devices in C++11.

eye models 1 eye models 2 eye models 3

NEWS (2018/08/10)

Native iOS, Android, and "desktop" variants of the real-time facefilter application have been added here: src/examples/facefilter. These applications link against the installed public drishti::drishti package interface, which is designed without external types in the API definition. The facefilter demos are enabled by the DRISHTI_BUILD_EXAMPLES CMake option, and the entire src/examples tree is designed to be relocatable, you can cp -r src/examples ${HOME}/drishti_examples, customize, and build, by simply updating the drishti package details.

iOS

The iOS facefilter target requires Xcode 9 (beta 4) or above (Swift language requirements) and will be generated directly as a standard CMake add_executable() target as part of the usual top level project build -- if you are using an appropriate CMake iOS toolchain for cross compilation from your macOS + Xcode host for your iOS device. Please see Polly Based Build and iOS Build below for more details.

Android Studio

UPDATE: Android NDK r19 is not currently supported due to significant structural changes in the android-ndk toolchain that conflict with CMake's internal Android support. See this _discussion for more details.

You can download standalone NDK r18x toolchains or earlier and specify those directly in your gradle local.properties.

drishti/android-studio/local.properties example:

ndk.dir=/Users/username/android/android-ndk-r18b
sdk.dir=/Users/username/Library/Android/sdk
cmake.dir=/usr/local

The top level Android Studio application is located in the android-studio directory. This target will build and manage repository C++ sources directly as part of the project. Android Studio/Gradle is required to build the application layer, and the CMake build is managed directly by gradle. There are a few platform specific configurations that must be addressed before building. Please see Android Studio Build below for more details.

Overview

Goal: SDK size <= 1 MB and combined resources (object detection + regression models) <= 4 MB.

  • Hunter package management and CMake build system by Ruslan Baratov, as well as CI and much of the real time facefilter mobile application(s) layer: "Organize Freedom!" :)
  • A C++ and OpenGL ES 2.0 implementation of Fast Feature Pyramids for Object Detection (see Piotr's Matlab Toolbox) for face and eye detection -- the ACF library is available as a standalone Hunter package here
  • Iris ellipse fitting via Cascaded Pose Regression (Piotr Dollar, et al) + XGBoost regression (Tianqi Chen, et al)
  • Face landmarks and global eye models provided by "One Millisecond Face Alignment with an Ensemble of Regression Trees (Kazemi, et al) using a modified implementation from Dlib (Davis King) (normalized pixel differences, line indexed features, PCA size reductions)
  • OpenGL ES friendly GPGPU shader processing and efficient iOS + Android texture handling using a modified version of ogles_gpgpu (Markus Kondrad) with a number of shader implementations taken directly from GPUImage (Brad Larson)
iPhone @ 30 FPS (VIDEO)
iPhone

Drishti Right Eye Annotation Scheme

FEATURE SPECIFICATION
eyelids 2D points 0-15
crease 2D points 16-24
iris center 2D point 25
outer limbus limbus intersection with ray from outer corner to iris center
inner limbus limbus intersection with ray from inner corner to iris center
iris ellipse 2D center, minor axis, major axis, angle (radians)
pupil ellipse 2D center, minor axis, major axis, angle (radians)
  • the left eye is obtained by Y axis mirroring
  • total (27*2)+(2*5) = 64 parameters
  • the eye crease is useful for pose indexing, but better guidelines are needed
  • the 2D limbus points are slightly redundant (given the ellipse iris model) but the intersection points are stable with respect to squinting and provide an efficient anchor for posed indexed features (accurate point-to-ellipse distances are non-trivial and are fairly computationally intensive)
  • currently 2D only (gaze angle ground truth would be beneficial)
drishti\_annotation\_scheme

Quick Start (i.e., How do I make this library work?)

General

Drishti is a CMake based project that uses the Hunter package manager to download and build project dependencies from source as needed. Hunter contains detailed documentation, but a few high level notes and documentation links are provided here to help orient first time users. In practice, some working knowledge of CMake may also be required. Hunter itself is written in CMake, and is installed as part of the build process from a single HunterGate() macro at the top of the root CMakeLists.txt file (typically cmake/Hunter/HunterGate.cmake) (you don't have to build or install it). Each CMake dependency's find_package(FOO) call that is paired with a hunter_add_package(FOO CONFIG REQUIRED) will be managed by Hunter. In most cases, the only system requirement for building a Hunter project is a recent CMake , a working compiler corresponding to the operative toolchain and native build tool. If you're not familiar with CMake, you can try to build this minimal example to get a basic understanding.

Hunter will maintain all dependencies in a versioned local cache by default (typically ${HOME}/.hunter) where they can be reused in subsequent builds and shared between different projects. They can also be stored in a server side binary cache -- select toolchains will be backed by a server side binary cache (https://github.com/elucideye/hunter-cache) and will produce faster first time builds (use them if you can!).

Get Latest Sources

Clone this repository and initialize all submodules:

> git clone https://github.com/elucideye/drishti
> cd drishti
[drishti]> git submodule update --init .

or

> git clone --recursive https://github.com/elucideye/drishti

Generate and Build

Desktop platforms usually don't require a toolchain (a default toolchain with C++11 support will be set by Drishti) and you can generate and build Drishti as a regular CMake project.

Linux + GCC + Makefile with Drishti examples, Release:

cmake -H. -B_builds -DHUNTER_STATUS_DEBUG=ON -DDRISHTI_BUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release
cmake --build _builds

macOS + Xcode with Drishti examples, Release:

cmake -H. -B_builds -GXcode -DHUNTER_STATUS_DEBUG=ON -DDRISHTI_BUILD_EXAMPLES=ON
cmake --build _builds --config Release

Windows + Visual Studio 15 2017 with Drishti examples, Release:

cmake -H. -B_builds -G "Visual Studio 15 2017" -DHUNTER_STATUS_DEBUG=ON -DDRISHTI_BUILD_EXAMPLES=ON
cmake --build _builds --config Release

To run the install procedure add the CMAKE_INSTALL_PREFIX variable and use --target install:

cmake -H. -B_builds -G "Visual Studio 15 2017" -DHUNTER_STATUS_DEBUG=ON -DCMAKE_INSTALL_PREFIX=_install
cmake --build _builds --config Release --target install

Polly Based Build

To support cross platform builds and testing, the CI scripts make use of Polly: a set of common CMake toolchains paired with a simple polly.py CMake build script. Polly is a Python script, make sure Python 3 is installed:

> which python3
/usr/bin/python3

Clone Polly and add bin folder to PATH:

> git clone https://github.com/ruslo/polly
> export PATH=`pwd`/polly/bin:$PATH

Check it:

> which polly.py
/.../polly/bin/polly.py

> polly.py --help
Python version: 3.5
usage: polly.py [-h]
    [--toolchain ...

Note: Polly is not a build requirement, CMake can always be used directly, but it is used here for convenience.

After the environment is configured, you can build for any supported Polly toolchain (below you can find some toolchains used in CI) with a command like this:

polly.py --toolchain ${TOOLCHAIN} --config-all ${CONFIG} --install --verbose

Building examples:

polly.py --toolchain ${TOOLCHAIN} --config-all ${CONFIG} --install --verbose --reconfig --fwd DRISHTI_BUILD_EXAMPLES=ON

Note: The --reconfig flag is included in the example above, which will re-run the CMake configure step (to incorporate CMake changes) for you. It is a reasonable step to add in cases where you aren't sure if it is needed.

iOS Build

Since CMake contains an Xcode generator, building for iOS is fairly straightforward. In practice, it is no different than the other polly.py toolchain builds. As always, you will need to have an Apple Developer Account to build and run on iOS devices. There are a few setup steps associated with Apple code signing requirements. Since iOS 10.0, Xcode projects require a valid Team ID entry, which can be set through CMake using the CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM CMake variable. If you generate an Xcode project through a polly.py command (described below), it will initialize the field for you if the POLLY_IOS_DEVELOPMENT_TEAM environment variable is set with your Team ID, which can be found in your Apple Developer Account. If you are using an Apple Enterprise Developer Account, the CMAKE_TRY_COMPILE step can fail with an error beginning with No profiles for 'com.example' were found: .... You can fix this with a one time Xcode initialization described in POLLY_IOS_DEVELOPMENT_TEAM.

Android Studio Build

For Android Studio, there are additional requirements:

  • CMake 3.9.2+
  • Ninja
  • Android Studio 3.2.1

Note: Polly will not be used here, because CMake is launched by Android Studio itself.

Note: Host compiler is required for some parts of the build. E.g. on Windows you have to install Visual Studio. Please check that minimal C++ example is working.

The path to the CMake executable should be added to the local.properties file before opening drishti/android-studio in Android Studio, or before invoking the Gradle build script. If you do not have a local.properties file, it will be generated automatically by Android Studio in the top level android-studio folder (usually drishti/android-studio/local.properites), when it is launched, at which point you can add the cmake.dir=/path/to/native/cmake CMake entry and rerun. The local.properties file will look something like this:

ndk.dir=/home/username/Android/Sdk/ndk-bundle
sdk.dir=/home/username/Android/Sdk
cmake.dir=/opt/cmake

The cmake.dir entry should be set such that <cmake.dir>/bin/cmake points to a valid cmake executable file.

Please check these instructions for details and useful notes:

There is another entry point for Android Studio - src/examples/facefilter/android-studio. It should be used only for testing or as a template for starting your own project based on Drishti.

Android Studio Workarounds

The following factors may contribute to some instability in the Android Studio managed build.

  • Using custom CMake 3.7+ in Android Studio is a relatively new feature
  • Some issues are hard to track or confirm, some issues are already reported but still not fixed

With support for official CMake binaries now in the Android Studio 3.2.1 release, the Android build stability is very likely improved compared to earlier beta versions.

From experience, the weakest part in the build has been communication between Gradle and CMake. To minimize it, the following trick can be used:

  • Open the top-level CMakeLists.txt file
  • Find if(DRISHTI_DEBUG_STOP) condition
  • Substitute if(DRISHTI_DEBUG_STOP) with if(TRUE)
  • Run Gradle build:
[drishti]> cd android-studio
[drishti/android-studio]> ./gradlew assembleDebug

If you're running it a first time there will be a high chance to hit this Gradle issue:

* What went wrong:
Execution failed for task '...'.
> Conversion = c, Flags =

In this case, just wait for few seconds and run Gradle again:

[drishti/android-studio]> ./gradlew assembleDebug
  • Revert CMakeLists.txt file, i.e. substitute if(TRUE) with if(DRISHTI_DEBUG_STOP).
  • Run the CMake build without Gradle:
[drishti/android-studio]> cmake --build ../src/examples/facefilter/android-studio/app/.externalNativeBuild/cmake/debug/arm64-v8a

Once the CMake build is ready, you can use ./gradlew assembleDebug or open Android Studio IDE.

Applications

Please see the README for the drishti-hci console application to see an example of a full eye tracking pipeline with the GPGPU optimizations.

Integration

Drishti is also available as a Hunter package. If you would like to integrate Drishti in your project, please see the Hunter Drishti package documentation.

Steps (check https://docs.hunter.sh/en/latest/quick-start.html):

Add cmake/HunterGate.cmake and a minimal cmake/Hunter/config.cmake to your project:

mkdir -p cmake/Hunter
wget https://raw.githubusercontent.com/hunter-packages/gate/master/cmake/HunterGate.cmake -O cmake/HunterGate.cmake
wget https://raw.githubusercontent.com/ruslo/hunter/master/examples/drishti/config.cmake -O cmake/Hunter/config.cmake

Add HunterGate(URL <url> SHA1 <sha1>) to the top of your CMakeLists.txt (You can find updated release information here).

include("cmake/HunterGate.cmake")
HunterGate(
    URL "https://github.com/ruslo/hunter/archive/v0.19.140.tar.gz"
    SHA1 "f2c30348c05d0d424976648ce3560044e007496c"
    LOCAL # use cmake/Hunter/config.cmake
)

Finally, add the Drishti package to your CMakeLists.txt and link it to your target:

hunter_add_package(drishti)
find_package(drishti CONFIG REQUIRED)
target_link_libraries(your_app_or_lib PUBLIC drishti::drishti)

You can customize the drishti package (and dependencies) by specifying a VERSION and/or CMAKE_ARGS (options) list for each package in cmake/Hunter/config.cmake.

Please see https://github.com/elucideye/drishti_hunter_test for a minimal working example using the drishti hunter package.

Toolchains

The configurations listed below have all been tested. In general, most C++11 toolchains should work with minimal effort. A CI comment indicates that the configuration is part of the Travis or Appveyor CI tests, so all Hunter packages will be available in the server side binary cache.

Linux (Ubunty Trusty 14.04):

  • TOOLCHAIN=clang-fpic-hid-sections CONFIG=Release # CI
  • TOOLCHAIN=gcc-5-pic-hid-sections-lto CONFIG=Release # CI
  • TOOLCHAIN=libcxx CONFIG=Release # w/ clang 3.8

OSX:

  • TOOLCHAIN=osx-10-13 CONFIG=Release # CI
  • TOOLCHAIN=osx-10-12-sanitize-address-hid-sections CONFIG=Release # CI
  • TOOLCHAIN=xcode-hid-sections CONFIG=Release # generic

iOS:

  • TOOLCHAIN=ios-nocodesign-11-3-dep-9-3-arm64 CONFIG=Release # CI
  • TOOLCHAIN=ios-10-1-arm64-dep-8-0-hid-sections CONFIG=Release

Android:

  • TOOLCHAIN=android-ndk-r17-api-19-armeabi-v7a-neon-clang-libcxx CONFIG=MinSizeRel # CI
  • TOOLCHAIN=android-ndk-r17-api-24-arm64-v8a-clang-libcxx14 CONFIG=Release # CI
  • TOOLCHAIN=android-ndk-r10e-api-19-armeabi-v7a-neon-hid-sections-lto CONFIG=MinSizeRel

Windows:

  • TOOLCHAIN=vs-15-2017 CONFIG=Release # CI
  • TOOLCHAIN=vs-14-2015-sdk-8-1 CONFIG=Release # CI
  • TOOLCHAIN=vs-14-2015-win64-sdk-8-1 CONFIG=Release # CI
  • TOOLCHAIN=vs-14-2015-win64-sdk-8-1 CONFIG=Debug # CI

The polly out of source build trees are located in _builds/${TOOLCHAIN}, the final build products (the stuff you want) are installed in _install/${TOOLCHAIN}, and the build logs are dumped in _logs/${TOOLCHAIN}. The iOS frameworks are installed in _frameworks/${TOOLCHAIN}.

Choosing simplest toolchain

On Linux you will usually want --toolchain gcc-pic (GCC based toolchain with position independent code).

On Windows, the preferred toolchain will depend on the generator you want, e.g., if you want "Visual Studio 15 2017", then use --toolchain vs-15-2017, if you want the 64 bit version use --toolchain vs-15-2017-win64.

On macOS, the choice of toolchain depends on Xcode version you have installed. Please check this table for Xcode versions and corresponding iOS/macOS SDK versions:

E.g., if you have Xcode 8.3.1 installed, then the default SDK will be macOS 10.12 SDK, hence you can use --toolchain osx-10-12. Instead of the Xcode generator, you can use a Makefile toolchain - --toolchain osx-10-12-make.

In the same table, you can find iOS SDK version. E.g., if you have installed Xcode 9.4 with default iOS SDK 11.4, and you want to set the deployment SDK to version 9.3, you can use --toolchain ios-11-4-dep-9-3-arm64 to build the ARM64 architecture. If you have several versions of Xcode installed, you can use IOS_X_Y_DEVELOPER_DIR/OSX_X_Y_DEVELOPER_DIR environment variables for switching. E.g., if OSX_10_13_DEVELOPER_DIR will be set to Xcode 9.0 location, then Xcode 9.0 will be used with --toolchain osx-10-13, even if Xcode 9.3 is installed and set as the default.

You can use Polly toolchains to build Android if you don't want to rely on Android Studio. The only requirement is an environment variable with the Android NDK location. Set the ANDROID_NDK_r17 environment variable with the path to the Android NDK r17, and you can use any --toolchain android-ndk-r17-* variants.

Comments
  • facefilter not working on android device

    facefilter not working on android device

    The facefilter app is currently not running on Android (or at least 1 tested device that worked previously). A number of things have changed since I last ran this. I believe I may have some details wrong in the CMake 3.7 update. I see some warnings in build log:

    Warning: Android platform 'android-19' does not exist in SDK.

    And

    cd /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter && /Users/dhirvonen/devel/hunter/_Base/xxxxxxx/a39c9bc/2e813cc/Install/bin/androiddeployqt --verbose --output /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter --input /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter/qtdeploy.json --ant /usr/local/bin/ant --android-platform android-19
    Warning: Android platform 'android-19' does not exist in SDK.
    Generating Android Package
      Input file: /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter/qtdeploy.json
      Output directory: /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter/
      Application binary: /Users/dhirvonen/devel/elucideye/drishti/_builds/android-ndk-r10e-api-19-armeabi-v7a-neon-MinSizeRel/src/app/qt/facefilter/libfacefilter.so
      Android build platform: android-19
      Install to device: No
    
    bug 
    opened by headupinclouds 39
  • address sanitizer

    address sanitizer

    http://clang.llvm.org/docs/AddressSanitizer.html http://useyourloaf.com/blog/using-the-address-sanitizer/

    Trying polly xcode-address-sanitizer toolchain (similar to [] Enable Address Sanitizer in Xcode scheme).

    xcode-sanitizer-address.cmake

    # Copyright (c) 2014-2015, Ruslan Baratov
    # All rights reserved.
    
    if(DEFINED POLLY_XCODE_SANITIZE_ADDRESS_CMAKE_)
      return()
    else()
      set(POLLY_XCODE_SANITIZE_ADDRESS_CMAKE_ 1)
    endif()
    
    include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_init.cmake")
    
    set(POLLY_XCODE_COMPILER "clang")
    polly_init(
        "Xcode / ${POLLY_XCODE_COMPILER} / \
    LLVM Standard C++ Library (libc++) / c++11 support / sanitize-address"
        "Xcode"
    )
    
    include("${CMAKE_CURRENT_LIST_DIR}/utilities/polly_common.cmake")
    
    include("${CMAKE_CURRENT_LIST_DIR}/compiler/xcode.cmake")
    include("${CMAKE_CURRENT_LIST_DIR}/library/std/libcxx.cmake")
    include("${CMAKE_CURRENT_LIST_DIR}/flags/cxx11.cmake")
    include("${CMAKE_CURRENT_LIST_DIR}/flags/sanitize_address_libcxx.cmake")
    

    sanitize_address_libcxx.cmake

    # Copyright (c) 2014-2016, Ruslan Baratov
    # Copyright (c) 2016, David Hirvonen
    # All rights reserved.
    
    if(DEFINED POLLY_FLAGS_SANITIZE_ADDRESS_LIBCXX_CMAKE_)
      return()
    else()
      set(POLLY_FLAGS_SANITIZE_ADDRESS_LIBCXX_CMAKE_ 1)
    endif()
    
    include(polly_add_cache_flag)
    
    polly_add_cache_flag(CMAKE_CXX_FLAGS "-fsanitize=address")
    polly_add_cache_flag(CMAKE_CXX_FLAGS "-g")
    polly_add_cache_flag(CMAKE_CXX_FLAGS "-D_LIBCPP_HAS_NO_ASAN")
    
    set(
        CMAKE_CXX_FLAGS_RELEASE
        "-O1 -DNDEBUG"
        CACHE
        STRING
        "C++ compiler flags"
        FORCE
    )
    
    polly_add_cache_flag(CMAKE_C_FLAGS "-fsanitize=address")
    polly_add_cache_flag(CMAKE_C_FLAGS "-g")
    polly_add_cache_flag(CMAKE_C_FLAGS "-D_LIBCPP_HAS_NO_ASAN")
    
    set(
        CMAKE_C_FLAGS_RELEASE
        "-O1 -DNDEBUG"
        CACHE
        STRING
        "C compiler flags"
        FORCE
    )
    
    

    Running ./bin/build-xcode.sh with the above toolchain fails with the following error:

    CMake Error at /usr/local/Cellar/cmake/3.5.0/share/cmake/Modules/CMakeTestCCompiler.cmake:61 (message):
      The C compiler
      "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
      is not able to compile a simple test program.
    
      It fails with the following output:
    
       Change Dir: /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp
    
    
    
      Run Build Command:"/usr/bin/xcodebuild" "-project"
      "CMAKE_TRY_COMPILE.xcodeproj" "build" "-target" "cmTC_3f5d6"
      "-configuration" "Debug"
    
      === BUILD TARGET cmTC_3f5d6 OF PROJECT CMAKE_TRY_COMPILE WITH CONFIGURATION
      Debug ===
    
    
    
      Check dependencies
    
    
    
      Write auxiliary files
    
      /bin/mkdir -p
      /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64
    
    
      write-file
      /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/cmTC_3f5d6.LinkFileList
    
    
    
    
      CompileC
      CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/testCCompiler.o
      testCCompiler.c normal x86_64 c com.apple.compilers.llvm.clang.1_0.compiler
    
          cd /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp
          export LANG=en_US.US-ASCII
          /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -DCMAKE_INTDIR=\"Debug\" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -mmacosx-version-min=10.10 -g -Wno-sign-conversion -I/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/Debug/include -I/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/DerivedSources/x86_64 -I/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/DerivedSources -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -F/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/Debug -D_LIBCPP_HAS_NO_ASAN -fsanitize=address -MMD -MT dependencies -MF /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/testCCompiler.d --serialize-diagnostics /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/testCCompiler.dia -c /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/testCCompiler.c -o /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/testCCompiler.o
    
    
    
      Ld Debug/cmTC_3f5d6 normal x86_64
    
          cd /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp
          export MACOSX_DEPLOYMENT_TARGET=10.10
    -- Configuring incomplete, errors occurred!
    See also "/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeOutput.log".
    See also "/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeError.log".
          /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/Debug -F/Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/Debug -filelist /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/cmTC_3f5d6.LinkFileList -mmacosx-version-min=10.10 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -Xlinker -dependency_info -Xlinker /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/CMAKE_TRY_COMPILE.build/Debug/cmTC_3f5d6.build/Objects-normal/x86_64/cmTC_3f5d6_dependency_info.dat -o /Users/dhirvonen/devel/drishti/_builds/xcode-sanitize-address/CMakeFiles/CMakeTmp/Debug/cmTC_3f5d6
    
      Undefined symbols for architecture x86_64:
    
        "___asan_init", referenced from:
            _asan.module_ctor in testCCompiler.o
        "___asan_version_mismatch_check_v6", referenced from:
            _asan.module_ctor in testCCompiler.o
    
      ld: symbol(s) not found for architecture x86_64
    
      clang: error: linker command failed with exit code 1 (use -v to see
      invocation)
    
    
    
      ** BUILD FAILED **
    
    
    
    
    
      The following build commands failed:
    
        Ld Debug/cmTC_3f5d6 normal x86_64
    
      (1 failure)
    
    
    enhancement polly 
    opened by headupinclouds 33
  • What should I do to make this library work?

    What should I do to make this library work?

    Hi,

    I was trying to find location of pupil and track eyes. I found Drishti library. I created a TravisCI account to compile library. It passed tests. But I don't know how to compile library on my local computer. At first I tried to make it work on Ubuntu 16.04, but I couldn't.

    When I run cmake . command in root folder, I got results below.

    
    [hunter ** FATAL ERROR **] SHA1 suboption of HunterGate is mandatory
    [hunter ** FATAL ERROR **] [Directory:/home/sparkh2o/installTest/drishti-master]
    
    ------------------------------ WIKI -------------------------------
        https://github.com/ruslo/hunter/wiki/error.incorrect.input.data
    -------------------------------------------------------------------
    
    CMake Error at cmake/HunterGate.cmake:76 (message):
    Call Stack (most recent call first):
      cmake/HunterGate.cmake:100 (hunter_gate_wiki)
      cmake/HunterGate.cmake:104 (hunter_gate_fatal_error)
      cmake/HunterGate.cmake:364 (hunter_gate_user_error)
      CMakeLists.txt:34 (HunterGate)
    
    
    -- Configuring incomplete, errors occurred!
    
    

    When i run cmake . command in the src folder, I got results below.

    CMake Error at CMakeLists.txt:19 (sugar_include):
      Unknown CMake command "sugar_include".
    
    
    CMake Warning (dev) in CMakeLists.txt:
      No cmake_minimum_required command is present.  A line of code such as
    
        cmake_minimum_required(VERSION 3.5)
    
      should be added at the top of the file.  The version specified may be lower
      if you wish to support older CMake versions for this project.  For more
      information run "cmake --help-policy CMP0000".
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Configuring incomplete, errors occurred!
    See also "/home/sparkh2o/installTest/drishti-master/src/CMakeFiles/CMakeOutput.log".
    

    I tried to run travis codes below in terminal.

    CONFIG=Release 
    TOOLCHAIN=gcc-5-pic-hid-sections-lto 
    INSTALL=--strip
    
    # Add '--quiet' to avoid leaking the token to logs
    git submodule update --init --recursive --quiet
    
    # Install Python 3
    if [[ "`uname`" == "Darwin" ]]; then travis_retry brew install python3; fi
    
    # Install Python package 'requests'
    # 'easy_install3' is not installed by 'brew install python3' on OS X 10.9 Maverick
    if [[ "`uname`" == "Darwin" ]]; then pip3 install requests; fi
    if [[ "`uname`" == "Linux" ]]; then travis_retry pip3 install --user requests; fi
    
    # Install latest Polly toolchains and scripts
    wget https://github.com/ruslo/polly/archive/master.zip
    unzip master.zip
    POLLY_ROOT="`pwd`/polly-master"
    export PATH="${POLLY_ROOT}/bin:${PATH}"
    
    # Install dependencies (CMake, Android NDK)
    install-ci-dependencies.py
    
    # Tune locations
    export PATH="`pwd`/_ci/cmake/bin:${PATH}"
    
    ARGS=(
        --toolchain ${TOOLCHAIN}
        --config ${CONFIG}
        --verbose
        --ios-multiarch --ios-combined
        --fwd
        DRISHTI_BUILD_REGRESSION_SIMD=NO
        DRISHTI_BUILD_REGRESSION_FIXED_POINT=NO
        DRISHTI_BUILD_TESTS=YES
        DRISHTI_BUILD_EXAMPLES=YES
        DRISHTI_COPY_3RDPARTY_LICENSES=ON
        GAUZE_ANDROID_USE_EMULATOR=YES
        HUNTER_USE_CACHE_SERVERS=ONLY
        HUNTER_DISABLE_BUILDS=YES
        HUNTER_CONFIGURATION_TYPES=${CONFIG}
        HUNTER_SUPPRESS_LIST_OF_FILES=ON
        --archive drishti
        --jobs 2
        --test      
        ${INSTALL}
    )
    
    polly.py ${ARGS[@]} --reconfig
    

    Unfortunately, this trial also failed. Log file is below.

    Execute command: [
      `which`
      `cmake`
    ]
    [/home/sparkh2o/installTest/drishti-master]> "which" "cmake"
    /home/sparkh2o/installTest/drishti-master/_ci/cmake/bin/cmake
    Execute command: [
      `cmake`
      `--version`
    ]
    [/home/sparkh2o/installTest/drishti-master]> "cmake" "--version"
    cmake version 3.9.4
    
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    Execute command: [
      `cmake`
      `-H.`
      `-B/home/sparkh2o/installTest/drishti-master/_builds/gcc-5-pic-hid-sections-lto-Release`
      `-DCMAKE_BUILD_TYPE=Release`
      `-GUnix Makefiles`
      `-DCMAKE_TOOLCHAIN_FILE=/home/sparkh2o/installTest/drishti-master/polly-master/gcc-5-pic-hid-sections-lto.cmake`
      `-DCMAKE_VERBOSE_MAKEFILE=ON`
      `-DPOLLY_STATUS_DEBUG=ON`
      `-DHUNTER_STATUS_DEBUG=ON`
      `-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO`
      `-DCMAKE_IOS_INSTALL_COMBINED=YES`
      `-DCMAKE_INSTALL_PREFIX=/home/sparkh2o/installTest/drishti-master/_install/gcc-5-pic-hid-sections-lto`
      `-DDRISHTI_BUILD_REGRESSION_SIMD=NO`
      `-DDRISHTI_BUILD_REGRESSION_FIXED_POINT=NO`
      `-DDRISHTI_BUILD_TESTS=YES`
      `-DDRISHTI_BUILD_EXAMPLES=YES`
      `-DDRISHTI_COPY_3RDPARTY_LICENSES=ON`
      `-DGAUZE_ANDROID_USE_EMULATOR=YES`
      `-DHUNTER_USE_CACHE_SERVERS=ONLY`
      `-DHUNTER_DISABLE_BUILDS=YES`
      `-DHUNTER_CONFIGURATION_TYPES=Release`
      `-DHUNTER_SUPPRESS_LIST_OF_FILES=ON`
    ]
    [/home/sparkh2o/installTest/drishti-master]> "cmake" "-H." "-B/home/sparkh2o/installTest/drishti-master/_builds/gcc-5-pic-hid-sections-lto-Release" "-DCMAKE_BUILD_TYPE=Release" "-GUnix Makefiles" "-DCMAKE_TOOLCHAIN_FILE=/home/sparkh2o/installTest/drishti-master/polly-master/gcc-5-pic-hid-sections-lto.cmake" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DPOLLY_STATUS_DEBUG=ON" "-DHUNTER_STATUS_DEBUG=ON" "-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO" "-DCMAKE_IOS_INSTALL_COMBINED=YES" "-DCMAKE_INSTALL_PREFIX=/home/sparkh2o/installTest/drishti-master/_install/gcc-5-pic-hid-sections-lto" "-DDRISHTI_BUILD_REGRESSION_SIMD=NO" "-DDRISHTI_BUILD_REGRESSION_FIXED_POINT=NO" "-DDRISHTI_BUILD_TESTS=YES" "-DDRISHTI_BUILD_EXAMPLES=YES" "-DDRISHTI_COPY_3RDPARTY_LICENSES=ON" "-DGAUZE_ANDROID_USE_EMULATOR=YES" "-DHUNTER_USE_CACHE_SERVERS=ONLY" "-DHUNTER_DISABLE_BUILDS=YES" "-DHUNTER_CONFIGURATION_TYPES=Release" "-DHUNTER_SUPPRESS_LIST_OF_FILES=ON"
    
    [hunter ** FATAL ERROR **] SHA1 suboption of HunterGate is mandatory
    [hunter ** FATAL ERROR **] [Directory:/home/sparkh2o/installTest/drishti-master]
    
    -- Configuring incomplete, errors occurred!
    ------------------------------ WIKI -------------------------------
        https://github.com/ruslo/hunter/wiki/error.incorrect.input.data
    -------------------------------------------------------------------
    
    CMake Error at cmake/HunterGate.cmake:76 (message):
    Call Stack (most recent call first):
      cmake/HunterGate.cmake:100 (hunter_gate_wiki)
      cmake/HunterGate.cmake:104 (hunter_gate_fatal_error)
      cmake/HunterGate.cmake:364 (hunter_gate_user_error)
      CMakeLists.txt:34 (HunterGate)
    
    

    I am sorry to ask such question but I really need some information about compilation process. What should I do to make this library work?

    Kind Regards

    discussion 
    opened by emreaslan 32
  • travis + android w/ emulator timeout

    travis + android w/ emulator timeout

    The Travis Android toolchain (w/ emulator tests) frequently times out. This requires 3-4 restarts (or more) before a PR gets a green light. This is after: removing LTO processing to save link time; consolidating tests; and removing non-essential executable targets. I believe a fair amount of time is lost to the Android installation, but I haven't timed it closely.

    This following article mentions the Travis cache feature: http://panavtec.me/continous-integration-on-android-with-travis-ci, which might be helpful.

    Travis can cache directories that you need to speedup the following builds, to do that you have to pay or you can use the new container infrastructure, by specifing “sudo: false”. To enable cache, you have to specify which directories you want to cache, in this case I’m caching some .gradle folders with:

    In practice, this is the biggest bottleneck in the development workflow.

    • compare cache w/ current SDK + NDK installation
    • are there opportunities to parallelize?
    CI 
    opened by headupinclouds 29
  • drishti hunter package

    drishti hunter package

    TODO: drishti/cmake/Config.cmake.in etc

    A drishti-assets companion package will be a follow up, but the format needs some thought.

    Relates to : https://github.com/elucideye/drishti/issues/301

    Revisions to public SDK are expected.

    hunter cmake 
    opened by headupinclouds 26
  • Resources for tests on iOS/Android platforms

    Resources for tests on iOS/Android platforms

    • ~~iOS: should we ship resources with bundle? (since we have to use bundles anyway I think the answer is yes, hence we need to use RESOURCE property instead of ios-deploy --upload command)~~ (from gitter: not now, using ~/Documents)
    • ~~Android APK. If we can use APK similar to iOS bundle then it will be easier to manage resources too (need to investigate)~~ (from gitter: not now)
    • Android simple executable. Even for simple executable we can declare some agreements for layout and use relative paths, like:
    /<testing-root>/bin/<executable>
    /<testing-root>/lib/<libraries>
    /<testing-root>/data/<data-for-testing> # symbolic links to the files from "object store"
    

    In this case we can use test fixtures to upload all resources once for all tests, then put the burden of determining full paths to C++ code instead of CMake code.

    discussion 
    opened by ruslo 25
  • Qt + Xcode 8 fails

    Qt + Xcode 8 fails

    [UPDATE + CLEANUP for clarity]

    The hunter-packages/qt package doesn't currently build in Xcode 8.

    The build dies with the following error:

       Xcode not set up properly. You may need to confirm the license
       agreement by running /usr/bin/xcodebuild without arguments.
    
    CMake Error at qt-configure.cmake:356 (message):
      Qt configure failed: 2
    
    bug 
    opened by headupinclouds 22
  • support`-flto`

    support`-flto`

    UPDATE 2/21/17: clang toolchains seems to work for iOS and OS X builds. Android NDK toolchains (both clang and gcc hit various roadblocks. See discussion below

    See: http://stackoverflow.com/a/25649861 : -flto -O3 may optimize further but increase size, while -flto -Os should reduce size. Also, -flto -Os (or whatever optimization setting is used) must be used consistently for compilation and linking within the project and all external (Hunter) dependencies. Thus, -flto belongs in the toolchain, and we must specify a CMAKE_BUILD_TYPE of MinSizeRel, which can be achieved for the internal project and hunter dependencies using the following polly flags respectively:

    --config=MinSizeRel
    --fwd HUNTER_CONFIGURATION_TYPES=MinSizeRel
    

    Relates: https://github.com/ruslo/hunter/issues/22

    Note: Polly toolchain requires HUNTER_TOOLCHAIN_UNDETECTABLE_ID flag:

    # There is no macro to detect this flags on toolchain calculation so we must
    # mark this toolchain explicitly.
    list(APPEND HUNTER_TOOLCHAIN_UNDETECTABLE_ID "lto")
    

    Experiment 1: -O3 -ffunction-sections -fdata-sections

    $ du -sh _install/xcode-hid-sections/{bin,lib}/*

    5.8M	_install/xcode-hid-sections/bin/drishti-acf
    8.0M	_install/xcode-hid-sections/bin/drishti-eye
    9.0M	_install/xcode-hid-sections/bin/drishti-face
    4.7M	_install/xcode-hid-sections/bin/opencv_size
    6.6M	_install/xcode-hid-sections/lib/libdrishti.0.8.0.dylib
    4.0K	_install/xcode-hid-sections/lib/libdrishti.0.dylib
    4.0K	_install/xcode-hid-sections/lib/libdrishti.dylib
    4.1M	_install/xcode-hid-sections/lib/libdrishti_c.dylib
    

    Experiment 2: -flto -O3 -ffunction-sections -fdata-sections

    du -sh _install/xcode-hid-sections-lto/{bin,lib}/*

    4.3M	_install/xcode-hid-sections-lto/bin/drishti-acf
    5.3M	_install/xcode-hid-sections-lto/bin/drishti-eye
    7.2M	_install/xcode-hid-sections-lto/bin/drishti-face
    2.8M	_install/xcode-hid-sections-lto/bin/opencv_size
    6.9M	_install/xcode-hid-sections-lto/lib/libdrishti.0.8.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti.dylib
    3.8M	_install/xcode-hid-sections-lto/lib/libdrishti_c.dylib
    

    Experiment 3: -flto -Os -ffunction-sections -fdata-sections

    Note: needs Eigen patch for MinSizeRel

    3.7M	_install/xcode-hid-sections-lto/bin/drishti-acf
    4.9M	_install/xcode-hid-sections-lto/bin/drishti-eye
    6.6M	_install/xcode-hid-sections-lto/bin/drishti-face
    2.5M	_install/xcode-hid-sections-lto/bin/opencv_size
    5.5M	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.0.8.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.dylib
    2.9M	_install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib
    
     gzip _install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib
    du -sh _install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib.gz 
    1.1M	_install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib.gz
    

    Experiment 4: -flto -Os -ffunction-sections -fdata-sections w/ cereal

    DRISHTI_SERIALIZE_WITH_BOOST=OFF
    DRISHTI_SERIALIZE_WITH_CEREAL=ON
    DRISHTI_SERIALIZE_WITH_CVMATIO=OFF
    
    2.7M	_install/xcode-hid-sections-lto/bin/drishti-acf
    3.2M	_install/xcode-hid-sections-lto/bin/drishti-eye
    4.1M	_install/xcode-hid-sections-lto/bin/drishti-face
    2.5M	_install/xcode-hid-sections-lto/bin/opencv_size
    5.1M	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.0.8.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.0.dylib
    4.0K	_install/xcode-hid-sections-lto/lib/libdrishti-MinSizeRel.dylib
    2.5M	_install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib
    
    gzip _install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib
    du -sh _install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib.gz 
    1004K	_install/xcode-hid-sections-lto/lib/libdrishti_c-MinSizeRel.dylib.gz
    
    polly 
    opened by headupinclouds 20
  • xcode iOS toolchains with CMake and enterprise account

    xcode iOS toolchains with CMake and enterprise account

    I want to build ios app with cmake 3.11.4 I chose folder drishti and get a log -- config.cmake -- MSVC: APPLE: 1 ANDROID: IOS: is_linux: 0 XCODE: 1 its a log for build macOS.
    which folder i should choose, or where to config ios build? Thanks

    cmake build 
    opened by ygyin-ivy 19
  • Facefilter in Android Studio fails

    Facefilter in Android Studio fails

    Hi again:

    Failed to get Facefilter working.

    Running gradle worked well until the installation of Opencv. See an excerpt of the error (running gradlew with additional --debug flag). It'd circle until manually stopped. It seems memory related error.

    Thanks Matej

    14:55:45.019 [INFO] [com.android.build.gradle.tasks.CmakeServerExternalNativeJsonGenerator] [hunter *** DEBUG *** 2018-08-12T14:55:45] Locking directory: /home/matej/.hunter/_Base/Download/OpenCV/3.4.1-p1/a3f4f0a
    14:55:49.340 [null] [org.gradle.process.internal.health.memory.MemoryManager] 
    14:55:49.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 8274448384, Free: 4363202560}
    14:55:49.340 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 8274448384, Free: 4363202560}
    14:55:49.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 954728448, Committed: 355467264}
    14:55:50.066 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
    14:55:50.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
    14:55:50.067 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
    14:55:50.067 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
    14:55:50.067 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
    14:55:50.067 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
    14:55:50.068 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
    14:55:54.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 8274448384, Free: 4363350016}
    14:55:54.340 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 8274448384, Free: 4363350016}
    14:55:54.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 954728448, Committed: 355467264}
    14:55:59.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 8274448384, Free: 4363206656}
    14:55:59.340 [DEBUG] [org.gradle.launcher.daemon.server.health.LowMemoryDaemonExpirationStrategy] Received memory status update: {Total: 8274448384, Free: 4363206656}
    14:55:59.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting JVM memory status event {Maximum: 954728448, Committed: 355467264}
    14:56:00.066 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
    14:56:00.066 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
    14:56:04.340 [DEBUG] [org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory 
    
    android studio 
    opened by matejsteinbacher 17
  • Android LTO: GCC on OSX host

    Android LTO: GCC on OSX host

    I got problem described here. I've tried few approaches from WIP toolchain - nothing helps. I see no workarounds in discussion, but it ends with note about fixes in r14. Should we try it? The worst part about this issue is that compilation doesn't stop with error but produce only warning. We are ending up with rotten cache.

    [@headupinclouds: Note WIP polly/flags/lto.cmake used w/ above toolchain)

    opened by ruslo 16
  • iOS 14.5 compile error

    iOS 14.5 compile error

    I patched polly to compile against iOS 14.5 and updated boost to 1.7.0-p0 but I still get this compiler error, which is obviously a boost compiling error. Any help is appreciated.

    clang: error: unknown argument: '-fcoalesce-templates'
    darwin.compile.c++ bin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden/windows_file_codecvt.o
    
        "xcrun" "clang++" "-arch" "arm64" "-isysroot" "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk"   -fvisibility-inlines-hidden -fcoalesce-templates -pthread -O0 -fno-inline -Wall -g -fvisibility=hidden -gdwarf-2 -fexceptions -Wno-long-double -std=c++14 -miphoneos-version-min=10.0 -std=c++14 -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_SP_NO_SYNC  -I"." -c -o "bin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden/windows_file_codecvt.o" "libs/filesystem/src/windows_file_codecvt.cpp"
    
    clang: error: unknown argument: '-fcoalesce-templates'
    ...skipped <pbin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden>libboost_filesystem-mt-d.a(clean) for lack of <pbin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden>codecvt_error_category.o...
    ...skipped <pbin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden>libboost_filesystem-mt-d.a for lack of <pbin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden>codecvt_error_category.o...
    ...skipped <p/Users/<user>/.hunter/_Base/9cb4184/d4f530e/aa34bad/Build/Boost/__filesystem/Source/stage/lib>libboost_filesystem-mt-d.a for lack of <pbin.v2/libs/filesystem/build/darwin-iphoneos/debug/architecture-arm/instruction-set-armv7/link-static/target-os-iphone/threading-multi/visibility-hidden>libboost_filesystem-mt-d.a...
    ...failed updating 16 targets...
    
    ** BUILD FAILED **
    
    
    The following build commands failed:
      PhaseScriptExecution Generate\ Boost-filesystem-ios-prefix/src/Boost-filesystem-ios-stamp/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Boost-filesystem-ios-build /Users/<user>/.hunter/_Base/9cb4184/d4f530e/aa34bad/Build/Boost/__filesystem/Build/Hunter.build/Debug-iphoneos/Boost-filesystem-ios.build/Script-F7F6B02B5C3B808575DB6730.sh
    (1 failure)
    
    
    opened by slajar 0
  • SIGSEGV on System.loadLibrary

    SIGSEGV on System.loadLibrary

    Hi, when i run the app on android 9.0 with armeabi-v7a architecture, I see SIGSEGV in android studio debgger. Screenshot from 2020-09-22 07-56-04 I don't know what is the problem but I think it is maybe related to file permissions??? Can somebody help me please?

    opened by pourfard 1
  • iOS facefilter example error.

    iOS facefilter example error.

    The example 'facefilter' properly compiled and installed in iPhone SE. However, after 'allowing the access to camera', the app just show black screen after below debugging code. Does it only support specific version of os or hardware?

    ogles_gpgpu::Shader - /Users/iPsych/.hunter/_Base/9cb4184/31476c5/b11b287/Build/ogles_gpgpu/Source/ogles_gpgpu/common/gl/shader.cpp:116:compile(): could not compile shader program. shader source:
    varying vec3 lineColor; void main() { gl_FragColor = vec4(lineColor, 1.0); }
    
    ogles_gpgpu::Shader - /Users/iPsych/.hunter/_Base/9cb4184/31476c5/b11b287/Build/ogles_gpgpu/Source/ogles_gpgpu/common/gl/shader.cpp:75:create(): could not link shader program. error log:
    ERROR: OpenGL ES requires exactly one vertex and one fragment shader to validly link.
    
    
    ogles_gpgpu::Shader - /Users/iPsych/.hunter/_Base/9cb4184/31476c5/b11b287/Build/ogles_gpgpu/Source/ogles_gpgpu/common/gl/shader.cpp:41:getParam(): could not get parameter id for param color
    Assertion failed: (compiled), function FacePainter, file /Research/2020/Empathy_and_Pupil/drishti/src/lib/drishti/hci/gpu/FacePainter.cpp, line 162.
    
    opened by iPsych 0
  • drishti works with  'armeabi-v7a', 'arm64-v8a only???

    drishti works with 'armeabi-v7a', 'arm64-v8a only???

    how can i use drishti in x86 devices??? i change some parametrs in Build.gradle and there is no error in building but when i run in my phone or emulator , the app stopped immediately . any one could run drishti in x86 devices???

    opened by fardinfroghi 0
  • Could you give me some hints about the algorithm for this cool project?

    Could you give me some hints about the algorithm for this cool project?

    Nice job! I was recently handling a similar task, which I need to obtain the contour of eyes from the real time video stream. Could you please give me some hints about your algorithm or is there any paper relative with this cool project? Many thanks!

    opened by Allan-Yoriichi 0
  • Example not building for android studio

    Example not building for android studio

    I am trying to build this repository for android studo. It looks like once I uncomment DRISHIT_DEBUG_STOP , run ./gradlew assembleDebug and then revert the Cmakefile , the cmake command

    cmake --build ../src/examples/facefilter/android-studio/app/.externalNativeBuild/cmake/debug/arm64-v8a

    seems to be stuck at Package OpenCV. It says locking directory but I dont see anything else from it. I am confused about what is happening. Any suggestions?

    opened by lavaman71 0
Releases(v0.12.4)
Owner
null
Python and C++ implementation of "MarkerPose: Robust real-time planar target tracking for accurate stereo pose estimation". Accepted at LXCV Workshop @ CVPR 2021.

MarkerPose: Robust Real-time Planar Target Tracking for Accurate Stereo Pose Estimation This is a PyTorch and LibTorch implementation of MarkerPose: a

Jhacson Meza 47 Nov 18, 2022
Tandem - [CoRL 21'] TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo

TANDEM: Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo Lukas Koestler1*    Nan Yang1,2*,†    Niclas Zeller2,3    Daniel Cremers1

TUM Computer Vision Group 742 Dec 31, 2022
A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

A lightweight 2D Pose model can be deployed on Linux/Window/Android, supports CPU/GPU inference acceleration, and can be detected in real time on ordinary mobile phones.

JinquanPan 58 Jan 3, 2023
Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision

The MRPT project 1. Introduction Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer v

MRPT 1.6k Dec 24, 2022
🐸 Coqui STT is an open source Speech-to-Text toolkit which can run in real time on devices ranging from a Raspberry Pi 4 to high power GPU servers

Coqui STT ( ?? STT) is an open-source deep-learning toolkit for training and deploying speech-to-text models. ?? STT is battle tested in both producti

Coqui.ai 1.7k Jan 2, 2023
PocketSphinx is a lightweight speech recognition engine, specifically tuned for handheld and mobile devices, though it works equally well on the desktop

PocketSphinx 5prealpha This is PocketSphinx, one of Carnegie Mellon University's open source large vocabulary, speaker-independent continuous speech r

null 3.2k Dec 28, 2022
VNOpenAI 31 Dec 26, 2022
Anomaly Detection on Dynamic (time-evolving) Graphs in Real-time and Streaming manner

Anomaly Detection on Dynamic (time-evolving) Graphs in Real-time and Streaming manner. Detecting intrusions (DoS and DDoS attacks), frauds, fake rating anomalies.

Stream-AD 696 Dec 18, 2022
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.

James Fung 111 Jan 9, 2023
Pure C ONNX runtime with zero dependancies for embedded devices

?? cONNXr C ONNX Runtime A onnx runtime written in pure C99 with zero dependencies focused on embedded devices. Run inference on your machine learning

Alvaro 140 Dec 4, 2022
A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.

Libonnx A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support. Getting Started The library's

xboot.org 442 Dec 25, 2022
ORB-SLAM3 is the first real-time SLAM library able to perform Visual, Visual-Inertial and Multi-Map SLAM with monocular, stereo and RGB-D cameras, using pin-hole and fisheye lens models.

Just to test for my research, and I add coordinate transformation to evaluate the ORB_SLAM3. Only applied in research, and respect the authors' all work.

B.X.W 5 Jul 11, 2022
Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.

Cartographer Purpose Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platfo

Cartographer 6.3k Jan 4, 2023
NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration.

Real-ESRGAN ncnn Vulkan This project is the ncnn implementation of Real-ESRGAN. Real-ESRGAN ncnn Vulkan heavily borrows from realsr-ncnn-vulkan. Many

Xintao 602 Jan 6, 2023
Offical repo for "Moynihan, M., Ruano, S., Pagés, R. and Smolic, A., 2021. Autonomous Tracking For Volumetric Video Sequences"

MeshTracker A segmentation-based tracking algorithm for registering volumetric video meshes (ply/obj) in C++. This is the official implementation of t

V-Sense 22 Nov 7, 2022
General broad-phase collision detection framework using BVH and BVTT front tracking.

This is the collision detection package by littlemine (Xinlei Wang). Configuration Instructions This project is developed using Visual Studio 2015 and

Xinlei Wang 47 Sep 9, 2022
Fast and robust face tracking addon for openFrameworks based on YOLO5Face

ofxFaceTracker3 Working in progress Fast and robust face tracking addon for openFrameworks based on YOLO5Face and ONNX Runtime. Features Fast and robu

Yuya Hanai 13 Nov 6, 2022
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

Build Type Linux MacOS Windows Build Status OpenPose has represented the first real-time multi-person system to jointly detect human body, hand, facia

null 25.6k Dec 29, 2022
NCNN+Int8+YOLOv4 quantitative modeling and real-time inference

NCNN+Int8+YOLOv4 quantitative modeling and real-time inference

pengtougu 20 Dec 6, 2022