tcw165 / my-android-app-boilerplate

The boilerplate for my android app
10 stars 0 forks source link

Build error on Android studio. libmy_core_jni.so not found. #56

Closed vijay1131 closed 7 years ago

vijay1131 commented 7 years ago

Hi I am getting this error when building the project.

Error:error: '/home/learner/githubs/my-android-app-boilerplate/lib-distribution/my_core_jni/lib/arm64-v8a/libmy_core_jni.so', needed by '/home/learner/githubs/my-android-app-boilerplate/lib-dlib/build/intermediates/cmake/release/obj/arm64-v8a/libdlib_jni.so', missing and no known rule to make it

could you guide me in the right direction?

tcw165 commented 7 years ago

Hi @vijay1131 ,

Can you check if there is a folder named lib-distribution generated after the build? If not, please let me know. :)

vijay1131 commented 7 years ago

Thanks @boyw165 for replying back.

yes the folder is generated and my-android-app-boilerplate/lib-distribution/my_core_jni/lib is empty.

tcw165 commented 7 years ago

Ok, maybe it's a bug of mine.

vijay1131 commented 7 years ago

Yeah it could be. Any plan to work on this in near future?

tcw165 commented 7 years ago

Yes, let me figure it out soon.

tcw165 commented 7 years ago

So you tried to build lib-dlib, however the lib-core is not completed compiled? Did you use terminal to build the sample code? For example, ./gradlew lib-dlib:assembleDebug

tcw165 commented 7 years ago

Hi @vijay1131 ,

I just fixed the compiling problem in this commit, https://github.com/boyw165/my-android-app-boilerplate/commit/0965f49df664c307f904a3b35b746c5b9c264741 . Please fetch the latest code (master branch) and try ./gradlew clean lib-dlib:assembleDebug to see if it works. The clean is necessary because I have the script to copy the files to lib-distribution folder and it might not be processed if the IDE has already cached the intermediate files.

If the problem is solved, you could also try ./gradlew demo-dlib:installDebug to install my demo app on your Android phone.

BTW, I want to improve the speed of detecting face rectangles. To make it real-time running on an Android phone, what do you suggest me? And further, is there any tracking algorithm that also help to improve the performance and accuracy of finding face rectangles?

vijay1131 commented 7 years ago

@boyw165

I tried with your suggestion

I pulled out fresh copy of master branch and tried with ./gradlew clean lib-dlib:assembleDebug command but i ended up with the same error here is the log

Starting a Gradle Daemon (subsequent builds will be faster)
Incremental java compilation is an incubating feature.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.

:clean
:app:clean
:demo-dlib:clean
:demo-doodle:clean
:demo-news-feed:clean
:demo-widget:clean
:lib-component:clean
:lib-core:externalNativeBuildCleanDebug
Clean my_core_jni armeabi
Cleaning... 0 files.
Clean my_core_jni armeabi-v7a
Cleaning... 0 files.
Clean my_core_jni arm64-v8a
Cleaning... 0 files.
Clean my_core_jni x86
Cleaning... 0 files.
Clean my_core_jni x86_64
Cleaning... 0 files.
:lib-core:externalNativeBuildCleanRelease
Clean my_core_jni armeabi
Cleaning... 3 files.
Clean my_core_jni armeabi-v7a
Cleaning... 3 files.
Clean my_core_jni arm64-v8a
Cleaning... 3 files.
Clean my_core_jni x86
Cleaning... 3 files.
Clean my_core_jni x86_64
Cleaning... 3 files.
:lib-core:clean
:lib-dlib:externalNativeBuildCleanDebug
Clean dlib_jni armeabi,my_core_jni armeabi,dlib armeabi,protobuf armeabi
Cleaning... 0 files.
Clean dlib_jni armeabi-v7a,my_core_jni armeabi-v7a,dlib armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,my_core_jni arm64-v8a,dlib_jni arm64-v8a,dlib arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,dlib_jni x86,dlib x86,my_core_jni x86
Cleaning... 0 files.
Clean dlib x86_64,dlib_jni x86_64,my_core_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-dlib:externalNativeBuildCleanRelease
Clean dlib_jni armeabi,my_core_jni armeabi,dlib armeabi,protobuf armeabi
Cleaning... 0 files.
Clean dlib_jni armeabi-v7a,my_core_jni armeabi-v7a,dlib armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,my_core_jni arm64-v8a,dlib_jni arm64-v8a,dlib arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,dlib_jni x86,dlib x86,my_core_jni x86
Cleaning... 0 files.
Clean dlib x86_64,dlib_jni x86_64,my_core_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-dlib:clean
:lib-protobuf:externalNativeBuildCleanDebug
Clean protobuf armeabi,protobuf_jni armeabi
Cleaning... 0 files.
Clean protobuf_jni armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,protobuf_jni arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,protobuf_jni x86
Cleaning... 0 files.
Clean protobuf_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-protobuf:externalNativeBuildCleanRelease
Clean protobuf armeabi,protobuf_jni armeabi
Cleaning... 2 files.
Clean protobuf_jni armeabi-v7a,protobuf armeabi-v7a
Cleaning... 2 files.
Clean protobuf arm64-v8a,protobuf_jni arm64-v8a
Cleaning... 2 files.
Clean protobuf x86,protobuf_jni x86
Cleaning... 2 files.
Clean protobuf_jni x86_64,protobuf x86_64
Cleaning... 2 files.
:lib-protobuf:clean
:lib-tensorflow:externalNativeBuildCleanDebug
Clean tensorflow armeabi,my_core_jni armeabi,tensorflow_jni armeabi
Cleaning... 0 files.
Clean tensorflow_jni armeabi-v7a,tensorflow armeabi-v7a,my_core_jni armeabi-v7a
Cleaning... 0 files.
:lib-tensorflow:externalNativeBuildCleanRelease
Clean tensorflow armeabi,my_core_jni armeabi,tensorflow_jni armeabi
Cleaning... 0 files.
Clean tensorflow_jni armeabi-v7a,tensorflow armeabi-v7a,my_core_jni armeabi-v7a
Cleaning... 0 files.
:lib-tensorflow:clean
:lib-widget:clean
:lib-core:preBuild UP-TO-DATE
:lib-core:preReleaseBuild UP-TO-DATE
:lib-core:checkReleaseManifest
:lib-core:preDebugAndroidTestBuild UP-TO-DATE
:lib-core:preDebugBuild UP-TO-DATE
:lib-core:preDebugUnitTestBuild UP-TO-DATE
:lib-core:preReleaseUnitTestBuild UP-TO-DATE
:lib-core:prepareComAndroidSupportAnimatedVectorDrawable2531Library
:lib-core:prepareComAndroidSupportAppcompatV72531Library
:lib-core:prepareComAndroidSupportRecyclerviewV72531Library
:lib-core:prepareComAndroidSupportSupportCompat2531Library
:lib-core:prepareComAndroidSupportSupportCoreUi2531Library
:lib-core:prepareComAndroidSupportSupportCoreUtils2531Library
:lib-core:prepareComAndroidSupportSupportFragment2531Library
:lib-core:prepareComAndroidSupportSupportMediaCompat2531Library
:lib-core:prepareComAndroidSupportSupportV42531Library
:lib-core:prepareComAndroidSupportSupportVectorDrawable2531Library
:lib-core:prepareReleaseDependencies
:lib-core:compileReleaseAidl
:lib-core:compileLint
:lib-core:copyReleaseLint UP-TO-DATE
:lib-core:compileReleaseRenderscript
:lib-core:generateReleaseBuildConfig
:lib-core:generateReleaseResValues
:lib-core:generateReleaseResources
:lib-core:mergeReleaseResources
:lib-core:processReleaseManifest
:lib-core:processReleaseResources
:lib-core:generateReleaseSources
:lib-core:incrementalReleaseJavaCompilationSafeguard
:lib-core:javaPreCompileRelease
:lib-core:compileReleaseJavaWithJavac
:lib-core:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:lib-core:extractReleaseAnnotations
:lib-core:mergeReleaseShaders
:lib-core:compileReleaseShaders
:lib-core:generateReleaseAssets
:lib-core:mergeReleaseAssets
:lib-core:mergeReleaseProguardFiles UP-TO-DATE
:lib-core:packageReleaseRenderscript UP-TO-DATE
:lib-core:packageReleaseResources
:lib-core:processReleaseJavaRes UP-TO-DATE
:lib-core:transformResourcesWithMergeJavaResForRelease
:lib-core:transformClassesAndResourcesWithSyncLibJarsForRelease
:lib-core:generateJsonModelRelease UP-TO-DATE
:lib-core:externalNativeBuildRelease
Build my_core_jni arm64-v8a
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-core/build/intermediates/cmake/release/obj/arm64-v8a/libmy_core_jni.so
Build my_core_jni x86
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-core/build/intermediates/cmake/release/obj/x86/libmy_core_jni.so
Build my_core_jni armeabi
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-core/build/intermediates/cmake/release/obj/armeabi/libmy_core_jni.so
Build my_core_jni x86_64
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-core/build/intermediates/cmake/release/obj/x86_64/libmy_core_jni.so
Build my_core_jni armeabi-v7a
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-core/build/intermediates/cmake/release/obj/armeabi-v7a/libmy_core_jni.so
:lib-core:mergeReleaseJniLibFolders
:lib-core:transformNativeLibsWithMergeJniLibsForRelease
:lib-core:transformNativeLibsWithStripDebugSymbolForRelease
:lib-core:transformNativeLibsWithSyncJniLibsForRelease
:lib-core:bundleRelease
:lib-dlib:preBuild UP-TO-DATE
:lib-dlib:preDebugBuild UP-TO-DATE
:lib-dlib:checkDebugManifest
:lib-dlib:preDebugAndroidTestBuild UP-TO-DATE
:lib-dlib:preDebugUnitTestBuild UP-TO-DATE
:lib-dlib:preReleaseBuild UP-TO-DATE
:lib-dlib:preReleaseUnitTestBuild UP-TO-DATE
:lib-dlib:prepareComAndroidSupportAnimatedVectorDrawable2531Library
:lib-dlib:prepareComAndroidSupportAppcompatV72531Library
:lib-dlib:prepareComAndroidSupportRecyclerviewV72531Library
:lib-dlib:prepareComAndroidSupportSupportCompat2531Library
:lib-dlib:prepareComAndroidSupportSupportCoreUi2531Library
:lib-dlib:prepareComAndroidSupportSupportCoreUtils2531Library
:lib-dlib:prepareComAndroidSupportSupportFragment2531Library
:lib-dlib:prepareComAndroidSupportSupportMediaCompat2531Library
:lib-dlib:prepareComAndroidSupportSupportV42531Library
:lib-dlib:prepareComAndroidSupportSupportVectorDrawable2531Library
:lib-protobuf:preBuild UP-TO-DATE
:lib-protobuf:preReleaseBuild UP-TO-DATE
:lib-protobuf:checkReleaseManifest
:lib-protobuf:prepareReleaseDependencies
:lib-protobuf:compileReleaseAidl
:lib-protobuf:compileLint
:lib-protobuf:copyReleaseLint UP-TO-DATE
:lib-protobuf:mergeReleaseShaders
:lib-protobuf:compileReleaseShaders
:lib-protobuf:generateReleaseAssets
:lib-protobuf:mergeReleaseAssets
:lib-protobuf:mergeReleaseProguardFiles UP-TO-DATE
:lib-protobuf:packageReleaseRenderscript UP-TO-DATE
:lib-protobuf:compileReleaseRenderscript
:lib-protobuf:generateReleaseResValues
:lib-protobuf:generateReleaseResources
:lib-protobuf:packageReleaseResources
:lib-protobuf:processReleaseManifest
:lib-protobuf:generateReleaseBuildConfig
:lib-protobuf:processReleaseResources
:lib-protobuf:generateReleaseSources
:lib-protobuf:incrementalReleaseJavaCompilationSafeguard
:lib-protobuf:javaPreCompileRelease
:lib-protobuf:compileReleaseJavaWithJavac
:lib-protobuf:processReleaseJavaRes UP-TO-DATE
:lib-protobuf:transformResourcesWithMergeJavaResForRelease
:lib-protobuf:transformClassesAndResourcesWithSyncLibJarsForRelease
:lib-protobuf:generateJsonModelRelease UP-TO-DATE
:lib-protobuf:externalNativeBuildRelease
Build protobuf_jni arm64-v8a
[1/2] Building CXX object CMakeFiles/protobuf_jni.dir/protobuf_util.cpp.o
[2/2] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/arm64-v8a/libprotobuf_jni.so
Build protobuf_jni x86
[1/2] Building CXX object CMakeFiles/protobuf_jni.dir/protobuf_util.cpp.o
[2/2] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/x86/libprotobuf_jni.so
Build protobuf_jni armeabi
[1/2] Building CXX object CMakeFiles/protobuf_jni.dir/protobuf_util.cpp.o
[2/2] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/armeabi/libprotobuf_jni.so
Build protobuf_jni x86_64
[1/2] Building CXX object CMakeFiles/protobuf_jni.dir/protobuf_util.cpp.o
[2/2] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/x86_64/libprotobuf_jni.so
Build protobuf_jni armeabi-v7a
[1/2] Building CXX object CMakeFiles/protobuf_jni.dir/protobuf_util.cpp.o
[2/2] Linking CXX shared library /home/learner/my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/armeabi-v7a/libprotobuf_jni.so
:lib-protobuf:mergeReleaseJniLibFolders
:lib-protobuf:transformNativeLibsWithMergeJniLibsForRelease
:lib-protobuf:transformNativeLibsWithStripDebugSymbolForRelease
:lib-protobuf:transformNativeLibsWithSyncJniLibsForRelease
:lib-protobuf:bundleRelease
:lib-dlib:prepareDebugDependencies
:lib-dlib:compileDebugAidl
:lib-dlib:compileLint
:lib-dlib:copyDebugLint UP-TO-DATE
:lib-dlib:compileDebugRenderscript
:lib-dlib:generateDebugBuildConfig
:lib-dlib:generateDebugResValues
:lib-dlib:generateDebugResources
:lib-dlib:mergeDebugResources
:lib-dlib:processDebugManifest
:lib-dlib:processDebugResources
:lib-dlib:generateDebugSources
:lib-dlib:incrementalDebugJavaCompilationSafeguard
:lib-dlib:javaPreCompileDebug
:lib-dlib:compileDebugJavaWithJavac
:lib-dlib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: /home/learner/my-android-app-boilerplate/lib-dlib/src/main/java/com/my/jni/dlib/data/Messages.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:lib-dlib:extractDebugAnnotations
:lib-dlib:mergeDebugShaders
:lib-dlib:compileDebugShaders
:lib-dlib:generateDebugAssets
:lib-dlib:mergeDebugAssets
:lib-dlib:mergeDebugProguardFiles UP-TO-DATE
:lib-dlib:packageDebugRenderscript UP-TO-DATE
:lib-dlib:packageDebugResources
:lib-dlib:processDebugJavaRes UP-TO-DATE
:lib-dlib:transformResourcesWithMergeJavaResForDebug
:lib-dlib:transformClassesAndResourcesWithSyncLibJarsForDebug
:lib-dlib:generateJsonModelDebug UP-TO-DATE
:lib-dlib:externalNativeBuildDebug
Build dlib_jni arm64-v8a
ninja: error: '/home/learner/my-android-app-boilerplate/lib-distribution/my_core_jni/lib/arm64-v8a/libmy_core_jni.so', needed by '/home/learner/my-android-app-boilerplate/lib-dlib/build/intermediates/cmake/debug/obj/arm64-v8a/libdlib_jni.so', missing and no known rule to make it
:lib-dlib:externalNativeBuildDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':lib-dlib:externalNativeBuildDebug'.
> Build command failed.
  Error while executing process /home/learner/Android/Sdk/cmake/3.6.3155560/bin/cmake with arguments {--build /home/learner/my-android-app-boilerplate/lib-dlib/.externalNativeBuild/cmake/debug/arm64-v8a --target dlib_jni}
  ninja: error: '/home/learner/my-android-app-boilerplate/lib-distribution/my_core_jni/lib/arm64-v8a/libmy_core_jni.so', needed by '/home/learner/my-android-app-boilerplate/lib-dlib/build/intermediates/cmake/debug/obj/arm64-v8a/libdlib_jni.so', missing and no known rule to make it

BUILD FAILED

Total time: 17.425 secs

tcw165 commented 7 years ago

@vijay1131

Is lib-distribution still empty? Can you try ./gradlew lib-core:assembleDebug && tree lib-distribution (please install tree executable by brew install tree). I want to check out the structure of the generated lib-distribution on your end.

vijay1131 commented 7 years ago

Here is the result of tree lib-distribution

lib-distribution
├── dlib_jni
│   └── include
│       ├── dlib
│       │   ├── algs.h
│       │   ├── any
│       │   │   ├── any_abstract.h
│       │   │   ├── any_decision_function_abstract.h
│       │   │   ├── any_decision_function.h
│       │   │   ├── any_function_abstract.h
│       │   │   ├── any_function.h
│       │   │   ├── any_function_impl2.h
│       │   │   ├── any_function_impl.h
│       │   │   ├── any.h
│       │   │   ├── any_trainer_abstract.h
│       │   │   └── any_trainer.h
│       │   ├── any.h
│       │   ├── array
│       │   │   ├── array_kernel_abstract.h
│       │   │   ├── array_kernel.h
│       │   │   ├── array_tools_abstract.h
│       │   │   └── array_tools.h
│       │   ├── array2d
│       │   │   ├── array2d_generic_image.h
│       │   │   ├── array2d_kernel_abstract.h
│       │   │   ├── array2d_kernel.h
│       │   │   └── serialize_pixel_overloads.h
│       │   ├── array2d.h
│       │   ├── array.h
│       │   ├── assert.h
│       │   ├── base64
│       │   │   ├── base64_kernel_1.h
│       │   │   └── base64_kernel_abstract.h
│       │   ├── base64.h
│       │   ├── bayes_utils
│       │   │   ├── bayes_utils_abstract.h
│       │   │   └── bayes_utils.h
│       │   ├── bayes_utils.h
│       │   ├── bigint
│       │   │   ├── bigint_kernel_1.h
│       │   │   ├── bigint_kernel_2.h
│       │   │   ├── bigint_kernel_abstract.h
│       │   │   └── bigint_kernel_c.h
│       │   ├── bigint.h
│       │   ├── binary_search_tree
│       │   │   ├── binary_search_tree_kernel_1.h
│       │   │   ├── binary_search_tree_kernel_2.h
│       │   │   ├── binary_search_tree_kernel_abstract.h
│       │   │   └── binary_search_tree_kernel_c.h
│       │   ├── binary_search_tree.h
│       │   ├── bit_stream
│       │   │   ├── bit_stream_kernel_1.h
│       │   │   ├── bit_stream_kernel_abstract.h
│       │   │   ├── bit_stream_kernel_c.h
│       │   │   ├── bit_stream_multi_1.h
│       │   │   ├── bit_stream_multi_abstract.h
│       │   │   └── bit_stream_multi_c.h
│       │   ├── bit_stream.h
│       │   ├── bound_function_pointer
│       │   │   ├── bound_function_pointer_kernel_1.h
│       │   │   └── bound_function_pointer_kernel_abstract.h
│       │   ├── bound_function_pointer.h
│       │   ├── bridge
│       │   │   ├── bridge_abstract.h
│       │   │   └── bridge.h
│       │   ├── bridge.h
│       │   ├── bsp
│       │   │   ├── bsp_abstract.h
│       │   │   └── bsp.h
│       │   ├── bsp.h
│       │   ├── build-armeabi
│       │   │   ├── CMakeFiles
│       │   │   │   ├── 3.6.0-rc2
│       │   │   │   │   ├── CMakeCCompiler.cmake
│       │   │   │   │   ├── CMakeCXXCompiler.cmake
│       │   │   │   │   └── CMakeSystem.cmake
│       │   │   │   ├── CMakeDirectoryInformation.cmake
│       │   │   │   ├── dlib.dir
│       │   │   │   │   ├── cmake_clean.cmake
│       │   │   │   │   ├── cmake_clean_target.cmake
│       │   │   │   │   └── DependInfo.cmake
│       │   │   │   ├── dlib_shared.dir
│       │   │   │   │   ├── cmake_clean.cmake
│       │   │   │   │   └── DependInfo.cmake
│       │   │   │   ├── Export
│       │   │   │   │   └── lib
│       │   │   │   │       └── cmake
│       │   │   │   │           └── dlib
│       │   │   │   │               ├── dlib.cmake
│       │   │   │   │               └── dlib-debug.cmake
│       │   │   │   └── Makefile.cmake
│       │   │   ├── cmake_install.cmake
│       │   │   ├── config
│       │   │   │   ├── dlibConfig.cmake
│       │   │   │   └── dlibConfigVersion.cmake
│       │   │   ├── config.h
│       │   │   ├── cpp11_test_build
│       │   │   │   ├── CMakeFiles
│       │   │   │   │   ├── CMakeDirectoryInformation.cmake
│       │   │   │   │   ├── cpp11_test.dir
│       │   │   │   │   │   ├── cmake_clean.cmake
│       │   │   │   │   │   ├── cmake_clean_target.cmake
│       │   │   │   │   │   └── DependInfo.cmake
│       │   │   │   │   └── Makefile.cmake
│       │   │   │   └── cmake_install.cmake
│       │   │   └── revision.h
│       │   ├── byte_orderer
│       │   │   ├── byte_orderer_kernel_1.h
│       │   │   └── byte_orderer_kernel_abstract.h
│       │   ├── byte_orderer.h
│       │   ├── clustering
│       │   │   ├── bottom_up_cluster_abstract.h
│       │   │   ├── bottom_up_cluster.h
│       │   │   ├── chinese_whispers_abstract.h
│       │   │   ├── chinese_whispers.h
│       │   │   ├── modularity_clustering_abstract.h
│       │   │   ├── modularity_clustering.h
│       │   │   ├── spectral_cluster_abstract.h
│       │   │   └── spectral_cluster.h
│       │   ├── clustering.h
│       │   ├── cmake_utils
│       │   │   ├── add_global_compiler_switch.cmake
│       │   │   ├── tell_visual_studio_to_use_static_runtime.cmake
│       │   │   └── use_cpp_11.cmake
│       │   ├── cmd_line_parser
│       │   │   ├── cmd_line_parser_check_1.h
│       │   │   ├── cmd_line_parser_check_c.h
│       │   │   ├── cmd_line_parser_kernel_1.h
│       │   │   ├── cmd_line_parser_kernel_abstract.h
│       │   │   ├── cmd_line_parser_kernel_c.h
│       │   │   ├── cmd_line_parser_print_1.h
│       │   │   ├── get_option_abstract.h
│       │   │   └── get_option.h
│       │   ├── cmd_line_parser.h
│       │   ├── compress_stream
│       │   │   ├── compress_stream_kernel_1.h
│       │   │   ├── compress_stream_kernel_2.h
│       │   │   ├── compress_stream_kernel_3.h
│       │   │   └── compress_stream_kernel_abstract.h
│       │   ├── compress_stream.h
│       │   ├── conditioning_class
│       │   │   ├── conditioning_class_kernel_1.h
│       │   │   ├── conditioning_class_kernel_2.h
│       │   │   ├── conditioning_class_kernel_3.h
│       │   │   ├── conditioning_class_kernel_4.h
│       │   │   ├── conditioning_class_kernel_abstract.h
│       │   │   └── conditioning_class_kernel_c.h
│       │   ├── conditioning_class.h
│       │   ├── config.h
│       │   ├── config_reader
│       │   │   ├── config_reader_kernel_1.h
│       │   │   ├── config_reader_kernel_abstract.h
│       │   │   ├── config_reader_thread_safe_1.h
│       │   │   └── config_reader_thread_safe_abstract.h
│       │   ├── config_reader.h
│       │   ├── console_progress_indicator.h
│       │   ├── control
│       │   │   ├── approximate_linear_models_abstract.h
│       │   │   ├── approximate_linear_models.h
│       │   │   ├── lspi_abstract.h
│       │   │   ├── lspi.h
│       │   │   ├── mpc_abstract.h
│       │   │   └── mpc.h
│       │   ├── control.h
│       │   ├── cpp_pretty_printer
│       │   │   ├── cpp_pretty_printer_kernel_1.h
│       │   │   ├── cpp_pretty_printer_kernel_2.h
│       │   │   └── cpp_pretty_printer_kernel_abstract.h
│       │   ├── cpp_pretty_printer.h
│       │   ├── cpp_tokenizer
│       │   │   ├── cpp_tokenizer_kernel_1.h
│       │   │   ├── cpp_tokenizer_kernel_abstract.h
│       │   │   └── cpp_tokenizer_kernel_c.h
│       │   ├── cpp_tokenizer.h
│       │   ├── crc32
│       │   │   ├── crc32_kernel_1.h
│       │   │   └── crc32_kernel_abstract.h
│       │   ├── crc32.h
│       │   ├── data_io
│       │   │   ├── image_dataset_metadata.h
│       │   │   ├── libsvm_io_abstract.h
│       │   │   ├── libsvm_io.h
│       │   │   ├── load_image_dataset_abstract.h
│       │   │   ├── load_image_dataset.h
│       │   │   ├── mnist_abstract.h
│       │   │   └── mnist.h
│       │   ├── data_io.h
│       │   ├── directed_graph
│       │   │   ├── directed_graph_kernel_1.h
│       │   │   └── directed_graph_kernel_abstract.h
│       │   ├── directed_graph.h
│       │   ├── dir_nav
│       │   │   ├── dir_nav_extensions_abstract.h
│       │   │   ├── dir_nav_extensions.h
│       │   │   ├── dir_nav_kernel_1.h
│       │   │   ├── dir_nav_kernel_2.h
│       │   │   ├── dir_nav_kernel_abstract.h
│       │   │   ├── posix.h
│       │   │   └── windows.h
│       │   ├── dir_nav.h
│       │   ├── disjoint_subsets
│       │   │   ├── disjoint_subsets_abstract.h
│       │   │   └── disjoint_subsets.h
│       │   ├── disjoint_subsets.h
│       │   ├── dnn
│       │   │   ├── core_abstract.h
│       │   │   ├── core.h
│       │   │   ├── cpu_dlib.h
│       │   │   ├── cublas_dlibapi.h
│       │   │   ├── cuda_dlib.h
│       │   │   ├── cuda_errors.h
│       │   │   ├── cuda_utils.h
│       │   │   ├── cudnn_dlibapi.h
│       │   │   ├── curand_dlibapi.h
│       │   │   ├── gpu_data_abstract.h
│       │   │   ├── gpu_data.h
│       │   │   ├── input_abstract.h
│       │   │   ├── input.h
│       │   │   ├── layers_abstract.h
│       │   │   ├── layers.h
│       │   │   ├── loss_abstract.h
│       │   │   ├── loss.h
│       │   │   ├── solvers_abstract.h
│       │   │   ├── solvers.h
│       │   │   ├── tensor_abstract.h
│       │   │   ├── tensor.h
│       │   │   ├── tensor_tools.h
│       │   │   ├── trainer_abstract.h
│       │   │   ├── trainer.h
│       │   │   ├── utilities_abstract.h
│       │   │   ├── utilities.h
│       │   │   └── validation.h
│       │   ├── dnn.h
│       │   ├── enable_if.h
│       │   ├── entropy_decoder
│       │   │   ├── entropy_decoder_kernel_1.h
│       │   │   ├── entropy_decoder_kernel_2.h
│       │   │   ├── entropy_decoder_kernel_abstract.h
│       │   │   └── entropy_decoder_kernel_c.h
│       │   ├── entropy_decoder.h
│       │   ├── entropy_decoder_model
│       │   │   ├── entropy_decoder_model_kernel_1.h
│       │   │   ├── entropy_decoder_model_kernel_2.h
│       │   │   ├── entropy_decoder_model_kernel_3.h
│       │   │   ├── entropy_decoder_model_kernel_4.h
│       │   │   ├── entropy_decoder_model_kernel_5.h
│       │   │   ├── entropy_decoder_model_kernel_6.h
│       │   │   └── entropy_decoder_model_kernel_abstract.h
│       │   ├── entropy_decoder_model.h
│       │   ├── entropy_encoder
│       │   │   ├── entropy_encoder_kernel_1.h
│       │   │   ├── entropy_encoder_kernel_2.h
│       │   │   ├── entropy_encoder_kernel_abstract.h
│       │   │   └── entropy_encoder_kernel_c.h
│       │   ├── entropy_encoder.h
│       │   ├── entropy_encoder_model
│       │   │   ├── entropy_encoder_model_kernel_1.h
│       │   │   ├── entropy_encoder_model_kernel_2.h
│       │   │   ├── entropy_encoder_model_kernel_3.h
│       │   │   ├── entropy_encoder_model_kernel_4.h
│       │   │   ├── entropy_encoder_model_kernel_5.h
│       │   │   ├── entropy_encoder_model_kernel_6.h
│       │   │   ├── entropy_encoder_model_kernel_abstract.h
│       │   │   └── entropy_encoder_model_kernel_c.h
│       │   ├── entropy_encoder_model.h
│       │   ├── error.h
│       │   ├── external
│       │   │   ├── cblas
│       │   │   │   ├── cblas_f77.h
│       │   │   │   └── cblas.h
│       │   │   ├── libjpeg
│       │   │   │   ├── jchuff.h
│       │   │   │   ├── jconfig.h
│       │   │   │   ├── jdct.h
│       │   │   │   ├── jdhuff.h
│       │   │   │   ├── jerror.h
│       │   │   │   ├── jinclude.h
│       │   │   │   ├── jmemsys.h
│       │   │   │   ├── jmorecfg.h
│       │   │   │   ├── jpegint.h
│       │   │   │   ├── jpeglib.h
│       │   │   │   └── jversion.h
│       │   │   ├── libpng
│       │   │   │   ├── pngconf.h
│       │   │   │   ├── pngdebug.h
│       │   │   │   ├── png.h
│       │   │   │   ├── pnginfo.h
│       │   │   │   ├── pnglibconf.h
│       │   │   │   ├── pngpriv.h
│       │   │   │   └── pngstruct.h
│       │   │   └── zlib
│       │   │       ├── crc32.h
│       │   │       ├── deflate.h
│       │   │       ├── gzguts.h
│       │   │       ├── inffast.h
│       │   │       ├── inffixed.h
│       │   │       ├── inflate.h
│       │   │       ├── inftrees.h
│       │   │       ├── trees.h
│       │   │       ├── zconf.h
│       │   │       ├── zlib.h
│       │   │       └── zutil.h
│       │   ├── filtering
│       │   │   ├── kalman_filter_abstract.h
│       │   │   ├── kalman_filter.h
│       │   │   ├── rls_filter_abstract.h
│       │   │   └── rls_filter.h
│       │   ├── filtering.h
│       │   ├── float_details.h
│       │   ├── general_hash
│       │   │   ├── count_bits_abstract.h
│       │   │   ├── count_bits.h
│       │   │   ├── general_hash.h
│       │   │   ├── hash_abstract.h
│       │   │   ├── hash.h
│       │   │   ├── murmur_hash3_abstract.h
│       │   │   ├── murmur_hash3.h
│       │   │   ├── random_hashing_abstract.h
│       │   │   └── random_hashing.h
│       │   ├── geometry
│       │   │   ├── border_enumerator_abstract.h
│       │   │   ├── border_enumerator.h
│       │   │   ├── drectangle_abstract.h
│       │   │   ├── drectangle.h
│       │   │   ├── point_transforms_abstract.h
│       │   │   ├── point_transforms.h
│       │   │   ├── rectangle_abstract.h
│       │   │   ├── rectangle.h
│       │   │   ├── vector_abstract.h
│       │   │   └── vector.h
│       │   ├── geometry.h
│       │   ├── graph
│       │   │   ├── graph_kernel_1.h
│       │   │   └── graph_kernel_abstract.h
│       │   ├── graph_cuts
│       │   │   ├── find_max_factor_graph_potts_abstract.h
│       │   │   ├── find_max_factor_graph_potts.h
│       │   │   ├── general_flow_graph.h
│       │   │   ├── general_potts_problem.h
│       │   │   ├── graph_labeler_abstract.h
│       │   │   ├── graph_labeler.h
│       │   │   ├── min_cut_abstract.h
│       │   │   └── min_cut.h
│       │   ├── graph_cuts.h
│       │   ├── graph.h
│       │   ├── graph_utils
│       │   │   ├── edge_list_graphs_abstract.h
│       │   │   ├── edge_list_graphs.h
│       │   │   ├── find_k_nearest_neighbors_lsh_abstract.h
│       │   │   ├── find_k_nearest_neighbors_lsh.h
│       │   │   ├── function_objects_abstract.h
│       │   │   ├── function_objects.h
│       │   │   ├── graph_utils_abstract.h
│       │   │   ├── graph_utils.h
│       │   │   ├── ordered_sample_pair_abstract.h
│       │   │   ├── ordered_sample_pair.h
│       │   │   ├── sample_pair_abstract.h
│       │   │   └── sample_pair.h
│       │   ├── graph_utils.h
│       │   ├── graph_utils_threaded.h
│       │   ├── gui_core
│       │   │   ├── gui_core_kernel_1.h
│       │   │   ├── gui_core_kernel_2.h
│       │   │   ├── gui_core_kernel_abstract.h
│       │   │   ├── windows.h
│       │   │   └── xlib.h
│       │   ├── gui_core.h
│       │   ├── gui_widgets
│       │   │   ├── base_widgets_abstract.h
│       │   │   ├── base_widgets.h
│       │   │   ├── canvas_drawing_abstract.h
│       │   │   ├── canvas_drawing.h
│       │   │   ├── drawable_abstract.h
│       │   │   ├── drawable.h
│       │   │   ├── fonts_abstract.h
│       │   │   ├── fonts.h
│       │   │   ├── nativefont.h
│       │   │   ├── style_abstract.h
│       │   │   ├── style.h
│       │   │   ├── widgets_abstract.h
│       │   │   └── widgets.h
│       │   ├── gui_widgets.h
│       │   ├── hash.h
│       │   ├── hash_map
│       │   │   ├── hash_map_kernel_1.h
│       │   │   ├── hash_map_kernel_abstract.h
│       │   │   └── hash_map_kernel_c.h
│       │   ├── hash_map.h
│       │   ├── hash_set
│       │   │   ├── hash_set_kernel_1.h
│       │   │   ├── hash_set_kernel_abstract.h
│       │   │   └── hash_set_kernel_c.h
│       │   ├── hash_set.h
│       │   ├── hash_table
│       │   │   ├── hash_table_kernel_1.h
│       │   │   ├── hash_table_kernel_2.h
│       │   │   ├── hash_table_kernel_abstract.h
│       │   │   └── hash_table_kernel_c.h
│       │   ├── hash_table.h
│       │   ├── http_client
│       │   │   ├── http_client_abstract.h
│       │   │   └── http_client.h
│       │   ├── image_io.h
│       │   ├── image_keypoint
│       │   │   ├── binned_vector_feature_image_abstract.h
│       │   │   ├── binned_vector_feature_image.h
│       │   │   ├── build_separable_poly_filters.h
│       │   │   ├── draw_surf_points_abstract.h
│       │   │   ├── draw_surf_points.h
│       │   │   ├── fine_hog_image_abstract.h
│       │   │   ├── fine_hog_image.h
│       │   │   ├── hashed_feature_image_abstract.h
│       │   │   ├── hashed_feature_image.h
│       │   │   ├── hessian_pyramid_abstract.h
│       │   │   ├── hessian_pyramid.h
│       │   │   ├── hog_abstract.h
│       │   │   ├── hog.h
│       │   │   ├── nearest_neighbor_feature_image_abstract.h
│       │   │   ├── nearest_neighbor_feature_image.h
│       │   │   ├── poly_image_abstract.h
│       │   │   ├── poly_image.h
│       │   │   ├── surf_abstract.h
│       │   │   └── surf.h
│       │   ├── image_keypoint.h
│       │   ├── image_loader
│       │   │   ├── image_loader_abstract.h
│       │   │   ├── image_loader.h
│       │   │   ├── jpeg_loader_abstract.h
│       │   │   ├── jpeg_loader.h
│       │   │   ├── load_image_abstract.h
│       │   │   ├── load_image.h
│       │   │   ├── png_loader_abstract.h
│       │   │   └── png_loader.h
│       │   ├── image_processing
│       │   │   ├── box_overlap_testing_abstract.h
│       │   │   ├── box_overlap_testing.h
│       │   │   ├── correlation_tracker_abstract.h
│       │   │   ├── correlation_tracker.h
│       │   │   ├── detection_template_tools_abstract.h
│       │   │   ├── detection_template_tools.h
│       │   │   ├── frontal_face_detector_abstract.h
│       │   │   ├── frontal_face_detector.h
│       │   │   ├── full_object_detection_abstract.h
│       │   │   ├── full_object_detection.h
│       │   │   ├── generic_image.h
│       │   │   ├── object_detector_abstract.h
│       │   │   ├── object_detector.h
│       │   │   ├── remove_unobtainable_rectangles_abstract.h
│       │   │   ├── remove_unobtainable_rectangles.h
│       │   │   ├── render_face_detections_abstract.h
│       │   │   ├── render_face_detections.h
│       │   │   ├── scan_fhog_pyramid_abstract.h
│       │   │   ├── scan_fhog_pyramid.h
│       │   │   ├── scan_image_abstract.h
│       │   │   ├── scan_image_boxes_abstract.h
│       │   │   ├── scan_image_boxes.h
│       │   │   ├── scan_image_custom_abstract.h
│       │   │   ├── scan_image_custom.h
│       │   │   ├── scan_image.h
│       │   │   ├── scan_image_pyramid_abstract.h
│       │   │   ├── scan_image_pyramid.h
│       │   │   ├── scan_image_pyramid_tools_abstract.h
│       │   │   ├── scan_image_pyramid_tools.h
│       │   │   ├── setup_hashed_features_abstract.h
│       │   │   ├── setup_hashed_features.h
│       │   │   ├── shape_predictor_abstract.h
│       │   │   └── shape_predictor.h
│       │   ├── image_processing.h
│       │   ├── image_saver
│       │   │   ├── dng_shared.h
│       │   │   ├── image_saver_abstract.h
│       │   │   ├── image_saver.h
│       │   │   ├── save_jpeg_abstract.h
│       │   │   ├── save_jpeg.h
│       │   │   ├── save_png_abstract.h
│       │   │   └── save_png.h
│       │   ├── image_transforms
│       │   │   ├── assign_image_abstract.h
│       │   │   ├── assign_image.h
│       │   │   ├── colormaps_abstract.h
│       │   │   ├── colormaps.h
│       │   │   ├── draw_abstract.h
│       │   │   ├── draw.h
│       │   │   ├── edge_detector_abstract.h
│       │   │   ├── edge_detector.h
│       │   │   ├── equalize_histogram_abstract.h
│       │   │   ├── equalize_histogram.h
│       │   │   ├── fhog_abstract.h
│       │   │   ├── fhog.h
│       │   │   ├── hough_transform_abstract.h
│       │   │   ├── hough_transform.h
│       │   │   ├── image_pyramid_abstract.h
│       │   │   ├── image_pyramid.h
│       │   │   ├── integral_image_abstract.h
│       │   │   ├── integral_image.h
│       │   │   ├── interpolation_abstract.h
│       │   │   ├── interpolation.h
│       │   │   ├── label_connected_blobs_abstract.h
│       │   │   ├── label_connected_blobs.h
│       │   │   ├── lbp_abstract.h
│       │   │   ├── lbp.h
│       │   │   ├── morphological_operations_abstract.h
│       │   │   ├── morphological_operations.h
│       │   │   ├── random_color_transform_abstract.h
│       │   │   ├── random_color_transform.h
│       │   │   ├── random_cropper_abstract.h
│       │   │   ├── random_cropper.h
│       │   │   ├── segment_image_abstract.h
│       │   │   ├── segment_image.h
│       │   │   ├── spatial_filtering_abstract.h
│       │   │   ├── spatial_filtering.h
│       │   │   ├── thresholding_abstract.h
│       │   │   └── thresholding.h
│       │   ├── image_transforms.h
│       │   ├── interfaces
│       │   │   ├── cmd_line_parser_option.h
│       │   │   ├── enumerable.h
│       │   │   ├── map_pair.h
│       │   │   └── remover.h
│       │   ├── iosockstream
│       │   │   ├── iosockstream_abstract.h
│       │   │   └── iosockstream.h
│       │   ├── iosockstream.h
│       │   ├── is_kind.h
│       │   ├── linker
│       │   │   ├── linker_kernel_1.h
│       │   │   └── linker_kernel_abstract.h
│       │   ├── linker.h
│       │   ├── logger
│       │   │   ├── extra_logger_headers.h
│       │   │   ├── logger_config_file.h
│       │   │   ├── logger_kernel_1.h
│       │   │   └── logger_kernel_abstract.h
│       │   ├── logger.h
│       │   ├── lsh
│       │   │   ├── create_random_projection_hash_abstract.h
│       │   │   ├── create_random_projection_hash.h
│       │   │   ├── hashes_abstract.h
│       │   │   ├── hashes.h
│       │   │   ├── projection_hash_abstract.h
│       │   │   └── projection_hash.h
│       │   ├── lsh.h
│       │   ├── lz77_buffer
│       │   │   ├── lz77_buffer_kernel_1.h
│       │   │   ├── lz77_buffer_kernel_2.h
│       │   │   ├── lz77_buffer_kernel_abstract.h
│       │   │   └── lz77_buffer_kernel_c.h
│       │   ├── lz77_buffer.h
│       │   ├── lzp_buffer
│       │   │   ├── lzp_buffer_kernel_1.h
│       │   │   ├── lzp_buffer_kernel_2.h
│       │   │   ├── lzp_buffer_kernel_abstract.h
│       │   │   └── lzp_buffer_kernel_c.h
│       │   ├── lzp_buffer.h
│       │   ├── manifold_regularization
│       │   │   ├── linear_manifold_regularizer_abstract.h
│       │   │   └── linear_manifold_regularizer.h
│       │   ├── manifold_regularization.h
│       │   ├── map
│       │   │   ├── map_kernel_1.h
│       │   │   ├── map_kernel_abstract.h
│       │   │   └── map_kernel_c.h
│       │   ├── map.h
│       │   ├── matlab
│       │   │   ├── call_matlab.h
│       │   │   └── subprocess_stream.h
│       │   ├── matrix
│       │   │   ├── cblas_constants.h
│       │   │   ├── lapack
│       │   │   │   ├── fortran_id.h
│       │   │   │   ├── gees.h
│       │   │   │   ├── geev.h
│       │   │   │   ├── geqrf.h
│       │   │   │   ├── gesdd.h
│       │   │   │   ├── gesvd.h
│       │   │   │   ├── getrf.h
│       │   │   │   ├── ormqr.h
│       │   │   │   ├── potrf.h
│       │   │   │   ├── syev.h
│       │   │   │   └── syevr.h
│       │   │   ├── matrix_abstract.h
│       │   │   ├── matrix_assign_fwd.h
│       │   │   ├── matrix_assign.h
│       │   │   ├── matrix_blas_bindings.h
│       │   │   ├── matrix_cholesky.h
│       │   │   ├── matrix_conj_trans.h
│       │   │   ├── matrix_conv_abstract.h
│       │   │   ├── matrix_conv.h
│       │   │   ├── matrix_data_layout_abstract.h
│       │   │   ├── matrix_data_layout.h
│       │   │   ├── matrix_default_mul.h
│       │   │   ├── matrix_eigenvalue.h
│       │   │   ├── matrix_exp_abstract.h
│       │   │   ├── matrix_exp.h
│       │   │   ├── matrix_expressions.h
│       │   │   ├── matrix_fft_abstract.h
│       │   │   ├── matrix_fft.h
│       │   │   ├── matrix_fwd.h
│       │   │   ├── matrix_generic_image.h
│       │   │   ├── matrix.h
│       │   │   ├── matrix_la_abstract.h
│       │   │   ├── matrix_la.h
│       │   │   ├── matrix_lu.h
│       │   │   ├── matrix_mat_abstract.h
│       │   │   ├── matrix_mat.h
│       │   │   ├── matrix_math_functions_abstract.h
│       │   │   ├── matrix_math_functions.h
│       │   │   ├── matrix_op.h
│       │   │   ├── matrix_qr.h
│       │   │   ├── matrix_read_from_istream.h
│       │   │   ├── matrix_subexp_abstract.h
│       │   │   ├── matrix_subexp.h
│       │   │   ├── matrix_trsm.h
│       │   │   ├── matrix_utilities_abstract.h
│       │   │   ├── matrix_utilities.h
│       │   │   ├── symmetric_matrix_cache_abstract.h
│       │   │   └── symmetric_matrix_cache.h
│       │   ├── matrix.h
│       │   ├── md5
│       │   │   ├── md5_kernel_1.h
│       │   │   └── md5_kernel_abstract.h
│       │   ├── md5.h
│       │   ├── member_function_pointer
│       │   │   ├── make_mfp_abstract.h
│       │   │   ├── make_mfp.h
│       │   │   ├── member_function_pointer_kernel_1.h
│       │   │   └── member_function_pointer_kernel_abstract.h
│       │   ├── member_function_pointer.h
│       │   ├── memory_manager
│       │   │   ├── memory_manager_kernel_1.h
│       │   │   ├── memory_manager_kernel_2.h
│       │   │   ├── memory_manager_kernel_3.h
│       │   │   └── memory_manager_kernel_abstract.h
│       │   ├── memory_manager_global
│       │   │   ├── memory_manager_global_kernel_1.h
│       │   │   └── memory_manager_global_kernel_abstract.h
│       │   ├── memory_manager_global.h
│       │   ├── memory_manager.h
│       │   ├── memory_manager_stateless
│       │   │   ├── memory_manager_stateless_kernel_1.h
│       │   │   ├── memory_manager_stateless_kernel_2.h
│       │   │   └── memory_manager_stateless_kernel_abstract.h
│       │   ├── memory_manager_stateless.h
│       │   ├── misc_api
│       │   │   ├── misc_api_kernel_1.h
│       │   │   ├── misc_api_kernel_2.h
│       │   │   ├── misc_api_kernel_abstract.h
│       │   │   ├── misc_api_shared.h
│       │   │   ├── posix.h
│       │   │   └── windows.h
│       │   ├── misc_api.h
│       │   ├── mlp
│       │   │   ├── mlp_kernel_1.h
│       │   │   ├── mlp_kernel_abstract.h
│       │   │   └── mlp_kernel_c.h
│       │   ├── mlp.h
│       │   ├── noncopyable.h
│       │   ├── numerical_integration
│       │   │   ├── integrate_function_adapt_simpson_abstract.h
│       │   │   └── integrate_function_adapt_simpson.h
│       │   ├── numerical_integration.h
│       │   ├── numeric_constants.h
│       │   ├── opencv
│       │   │   ├── cv_image_abstract.h
│       │   │   ├── cv_image.h
│       │   │   ├── to_open_cv_abstract.h
│       │   │   └── to_open_cv.h
│       │   ├── opencv.h
│       │   ├── optimization
│       │   │   ├── elastic_net_abstract.h
│       │   │   ├── elastic_net.h
│       │   │   ├── find_max_factor_graph_nmplp_abstract.h
│       │   │   ├── find_max_factor_graph_nmplp.h
│       │   │   ├── find_max_factor_graph_viterbi_abstract.h
│       │   │   ├── find_max_factor_graph_viterbi.h
│       │   │   ├── find_max_parse_cky_abstract.h
│       │   │   ├── find_max_parse_cky.h
│       │   │   ├── find_optimal_parameters_abstract.h
│       │   │   ├── find_optimal_parameters.h
│       │   │   ├── max_cost_assignment_abstract.h
│       │   │   ├── max_cost_assignment.h
│       │   │   ├── max_sum_submatrix_abstract.h
│       │   │   ├── max_sum_submatrix.h
│       │   │   ├── optimization_abstract.h
│       │   │   ├── optimization_bobyqa_abstract.h
│       │   │   ├── optimization_bobyqa.h
│       │   │   ├── optimization.h
│       │   │   ├── optimization_least_squares_abstract.h
│       │   │   ├── optimization_least_squares.h
│       │   │   ├── optimization_line_search_abstract.h
│       │   │   ├── optimization_line_search.h
│       │   │   ├── optimization_oca_abstract.h
│       │   │   ├── optimization_oca.h
│       │   │   ├── optimization_search_strategies_abstract.h
│       │   │   ├── optimization_search_strategies.h
│       │   │   ├── optimization_solve_qp2_using_smo_abstract.h
│       │   │   ├── optimization_solve_qp2_using_smo.h
│       │   │   ├── optimization_solve_qp3_using_smo_abstract.h
│       │   │   ├── optimization_solve_qp3_using_smo.h
│       │   │   ├── optimization_solve_qp_using_smo_abstract.h
│       │   │   ├── optimization_solve_qp_using_smo.h
│       │   │   ├── optimization_stop_strategies_abstract.h
│       │   │   ├── optimization_stop_strategies.h
│       │   │   ├── optimization_trust_region_abstract.h
│       │   │   └── optimization_trust_region.h
│       │   ├── optimization.h
│       │   ├── pipe
│       │   │   ├── pipe_kernel_1.h
│       │   │   └── pipe_kernel_abstract.h
│       │   ├── pipe.h
│       │   ├── pixel.h
│       │   ├── platform.h
│       │   ├── python
│       │   │   ├── boost_python_utils.h
│       │   │   ├── numpy.h
│       │   │   ├── numpy_image.h
│       │   │   ├── pyassert.h
│       │   │   └── serialize_pickle.h
│       │   ├── python.h
│       │   ├── quantum_computing
│       │   │   ├── quantum_computing_abstract.h
│       │   │   └── quantum_computing.h
│       │   ├── quantum_computing.h
│       │   ├── queue
│       │   │   ├── queue_kernel_1.h
│       │   │   ├── queue_kernel_2.h
│       │   │   ├── queue_kernel_abstract.h
│       │   │   ├── queue_kernel_c.h
│       │   │   ├── queue_sort_1.h
│       │   │   └── queue_sort_abstract.h
│       │   ├── queue.h
│       │   ├── rand
│       │   │   ├── mersenne_twister.h
│       │   │   ├── rand_kernel_1.h
│       │   │   └── rand_kernel_abstract.h
│       │   ├── rand.h
│       │   ├── reference_counter
│       │   │   ├── reference_counter_kernel_1.h
│       │   │   └── reference_counter_kernel_abstract.h
│       │   ├── reference_counter.h
│       │   ├── ref.h
│       │   ├── revision.h
│       │   ├── sequence
│       │   │   ├── sequence_compare_1.h
│       │   │   ├── sequence_compare_abstract.h
│       │   │   ├── sequence_kernel_1.h
│       │   │   ├── sequence_kernel_2.h
│       │   │   ├── sequence_kernel_abstract.h
│       │   │   ├── sequence_kernel_c.h
│       │   │   ├── sequence_sort_1.h
│       │   │   ├── sequence_sort_2.h
│       │   │   └── sequence_sort_abstract.h
│       │   ├── sequence.h
│       │   ├── serialize.h
│       │   ├── server
│       │   │   ├── server_http_abstract.h
│       │   │   ├── server_http.h
│       │   │   ├── server_iostream_abstract.h
│       │   │   ├── server_iostream.h
│       │   │   ├── server_kernel_abstract.h
│       │   │   └── server_kernel.h
│       │   ├── server.h
│       │   ├── set
│       │   │   ├── set_compare_1.h
│       │   │   ├── set_compare_abstract.h
│       │   │   ├── set_kernel_1.h
│       │   │   ├── set_kernel_abstract.h
│       │   │   └── set_kernel_c.h
│       │   ├── set.h
│       │   ├── set_utils
│       │   │   ├── set_utils_abstract.h
│       │   │   └── set_utils.h
│       │   ├── set_utils.h
│       │   ├── simd
│       │   │   ├── simd4f.h
│       │   │   ├── simd4i.h
│       │   │   ├── simd8f.h
│       │   │   ├── simd8i.h
│       │   │   └── simd_check.h
│       │   ├── simd.h
│       │   ├── sliding_buffer
│       │   │   ├── circular_buffer_abstract.h
│       │   │   ├── circular_buffer.h
│       │   │   ├── sliding_buffer_kernel_1.h
│       │   │   ├── sliding_buffer_kernel_abstract.h
│       │   │   └── sliding_buffer_kernel_c.h
│       │   ├── sliding_buffer.h
│       │   ├── smart_pointers
│       │   │   ├── scoped_ptr_abstract.h
│       │   │   ├── scoped_ptr.h
│       │   │   ├── shared_ptr_abstract.h
│       │   │   ├── shared_ptr.h
│       │   │   ├── shared_ptr_thread_safe_abstract.h
│       │   │   ├── shared_ptr_thread_safe.h
│       │   │   ├── weak_ptr_abstract.h
│       │   │   └── weak_ptr.h
│       │   ├── smart_pointers.h
│       │   ├── smart_pointers_thread_safe.h
│       │   ├── sockets
│       │   │   ├── posix.h
│       │   │   ├── sockets_extensions_abstract.h
│       │   │   ├── sockets_extensions.h
│       │   │   ├── sockets_kernel_1.h
│       │   │   ├── sockets_kernel_2.h
│       │   │   ├── sockets_kernel_abstract.h
│       │   │   └── windows.h
│       │   ├── sockets.h
│       │   ├── sockstreambuf
│       │   │   ├── sockstreambuf_abstract.h
│       │   │   ├── sockstreambuf.h
│       │   │   └── sockstreambuf_unbuffered.h
│       │   ├── sockstreambuf.h
│       │   ├── sort.h
│       │   ├── sparse_vector.h
│       │   ├── sqlite
│       │   │   ├── sqlite_abstract.h
│       │   │   ├── sqlite.h
│       │   │   ├── sqlite_tools_abstract.h
│       │   │   └── sqlite_tools.h
│       │   ├── sqlite.h
│       │   ├── stack
│       │   │   ├── stack_kernel_1.h
│       │   │   ├── stack_kernel_abstract.h
│       │   │   └── stack_kernel_c.h
│       │   ├── stack.h
│       │   ├── stack_trace.h
│       │   ├── static_map
│       │   │   ├── static_map_kernel_1.h
│       │   │   ├── static_map_kernel_abstract.h
│       │   │   └── static_map_kernel_c.h
│       │   ├── static_map.h
│       │   ├── static_set
│       │   │   ├── static_set_compare_1.h
│       │   │   ├── static_set_compare_abstract.h
│       │   │   ├── static_set_kernel_1.h
│       │   │   ├── static_set_kernel_abstract.h
│       │   │   └── static_set_kernel_c.h
│       │   ├── static_set.h
│       │   ├── statistics
│       │   │   ├── average_precision_abstract.h
│       │   │   ├── average_precision.h
│       │   │   ├── cca_abstract.h
│       │   │   ├── cca.h
│       │   │   ├── dpca_abstract.h
│       │   │   ├── dpca.h
│       │   │   ├── image_feature_sampling_abstract.h
│       │   │   ├── image_feature_sampling.h
│       │   │   ├── lda_abstract.h
│       │   │   ├── lda.h
│       │   │   ├── random_subset_selector_abstract.h
│       │   │   ├── random_subset_selector.h
│       │   │   ├── running_gradient_abstract.h
│       │   │   ├── running_gradient.h
│       │   │   ├── sammon_abstract.h
│       │   │   ├── sammon.h
│       │   │   ├── statistics_abstract.h
│       │   │   ├── statistics.h
│       │   │   ├── vector_normalizer_frobmetric_abstract.h
│       │   │   └── vector_normalizer_frobmetric.h
│       │   ├── statistics.h
│       │   ├── std_allocator.h
│       │   ├── stl_checked
│       │   │   ├── std_vector_c_abstract.h
│       │   │   └── std_vector_c.h
│       │   ├── stl_checked.h
│       │   ├── string
│       │   │   ├── string_abstract.h
│       │   │   └── string.h
│       │   ├── string.h
│       │   ├── svm
│       │   │   ├── active_learning_abstract.h
│       │   │   ├── active_learning.h
│       │   │   ├── assignment_function_abstract.h
│       │   │   ├── assignment_function.h
│       │   │   ├── cross_validate_assignment_trainer_abstract.h
│       │   │   ├── cross_validate_assignment_trainer.h
│       │   │   ├── cross_validate_graph_labeling_trainer_abstract.h
│       │   │   ├── cross_validate_graph_labeling_trainer.h
│       │   │   ├── cross_validate_multiclass_trainer_abstract.h
│       │   │   ├── cross_validate_multiclass_trainer.h
│       │   │   ├── cross_validate_object_detection_trainer_abstract.h
│       │   │   ├── cross_validate_object_detection_trainer.h
│       │   │   ├── cross_validate_regression_trainer_abstract.h
│       │   │   ├── cross_validate_regression_trainer.h
│       │   │   ├── cross_validate_sequence_labeler_abstract.h
│       │   │   ├── cross_validate_sequence_labeler.h
│       │   │   ├── cross_validate_sequence_segmenter_abstract.h
│       │   │   ├── cross_validate_sequence_segmenter.h
│       │   │   ├── cross_validate_track_association_trainer_abstract.h
│       │   │   ├── cross_validate_track_association_trainer.h
│       │   │   ├── empirical_kernel_map_abstract.h
│       │   │   ├── empirical_kernel_map.h
│       │   │   ├── feature_ranking_abstract.h
│       │   │   ├── feature_ranking.h
│       │   │   ├── function_abstract.h
│       │   │   ├── function.h
│       │   │   ├── kcentroid_abstract.h
│       │   │   ├── kcentroid.h
│       │   │   ├── kcentroid_overloads.h
│       │   │   ├── kernel_abstract.h
│       │   │   ├── kernel.h
│       │   │   ├── kernel_matrix_abstract.h
│       │   │   ├── kernel_matrix.h
│       │   │   ├── kkmeans_abstract.h
│       │   │   ├── kkmeans.h
│       │   │   ├── krls_abstract.h
│       │   │   ├── krls.h
│       │   │   ├── krr_trainer_abstract.h
│       │   │   ├── krr_trainer.h
│       │   │   ├── linearly_independent_subset_finder_abstract.h
│       │   │   ├── linearly_independent_subset_finder.h
│       │   │   ├── multiclass_tools_abstract.h
│       │   │   ├── multiclass_tools.h
│       │   │   ├── null_df.h
│       │   │   ├── null_trainer_abstract.h
│       │   │   ├── null_trainer.h
│       │   │   ├── num_nonnegative_weights.h
│       │   │   ├── one_vs_all_decision_function_abstract.h
│       │   │   ├── one_vs_all_decision_function.h
│       │   │   ├── one_vs_all_trainer_abstract.h
│       │   │   ├── one_vs_all_trainer.h
│       │   │   ├── one_vs_one_decision_function_abstract.h
│       │   │   ├── one_vs_one_decision_function.h
│       │   │   ├── one_vs_one_trainer_abstract.h
│       │   │   ├── one_vs_one_trainer.h
│       │   │   ├── pegasos_abstract.h
│       │   │   ├── pegasos.h
│       │   │   ├── ranking_tools_abstract.h
│       │   │   ├── ranking_tools.h
│       │   │   ├── rbf_network_abstract.h
│       │   │   ├── rbf_network.h
│       │   │   ├── reduced_abstract.h
│       │   │   ├── reduced.h
│       │   │   ├── rls_abstract.h
│       │   │   ├── rls.h
│       │   │   ├── roc_trainer_abstract.h
│       │   │   ├── roc_trainer.h
│       │   │   ├── rr_trainer_abstract.h
│       │   │   ├── rr_trainer.h
│       │   │   ├── rvm_abstract.h
│       │   │   ├── rvm.h
│       │   │   ├── sequence_labeler_abstract.h
│       │   │   ├── sequence_labeler.h
│       │   │   ├── sequence_segmenter_abstract.h
│       │   │   ├── sequence_segmenter.h
│       │   │   ├── simplify_linear_decision_function_abstract.h
│       │   │   ├── simplify_linear_decision_function.h
│       │   │   ├── sort_basis_vectors_abstract.h
│       │   │   ├── sort_basis_vectors.h
│       │   │   ├── sparse_kernel_abstract.h
│       │   │   ├── sparse_kernel.h
│       │   │   ├── sparse_vector_abstract.h
│       │   │   ├── sparse_vector.h
│       │   │   ├── structural_assignment_trainer_abstract.h
│       │   │   ├── structural_assignment_trainer.h
│       │   │   ├── structural_graph_labeling_trainer_abstract.h
│       │   │   ├── structural_graph_labeling_trainer.h
│       │   │   ├── structural_object_detection_trainer_abstract.h
│       │   │   ├── structural_object_detection_trainer.h
│       │   │   ├── structural_sequence_labeling_trainer_abstract.h
│       │   │   ├── structural_sequence_labeling_trainer.h
│       │   │   ├── structural_sequence_segmentation_trainer_abstract.h
│       │   │   ├── structural_sequence_segmentation_trainer.h
│       │   │   ├── structural_svm_assignment_problem_abstract.h
│       │   │   ├── structural_svm_assignment_problem.h
│       │   │   ├── structural_svm_distributed_abstract.h
│       │   │   ├── structural_svm_distributed.h
│       │   │   ├── structural_svm_graph_labeling_problem_abstract.h
│       │   │   ├── structural_svm_graph_labeling_problem.h
│       │   │   ├── structural_svm_object_detection_problem_abstract.h
│       │   │   ├── structural_svm_object_detection_problem.h
│       │   │   ├── structural_svm_problem_abstract.h
│       │   │   ├── structural_svm_problem.h
│       │   │   ├── structural_svm_problem_threaded_abstract.h
│       │   │   ├── structural_svm_problem_threaded.h
│       │   │   ├── structural_svm_sequence_labeling_problem_abstract.h
│       │   │   ├── structural_svm_sequence_labeling_problem.h
│       │   │   ├── structural_track_association_trainer_abstract.h
│       │   │   ├── structural_track_association_trainer.h
│       │   │   ├── svm_abstract.h
│       │   │   ├── svm_c_ekm_trainer_abstract.h
│       │   │   ├── svm_c_ekm_trainer.h
│       │   │   ├── svm_c_linear_dcd_trainer_abstract.h
│       │   │   ├── svm_c_linear_dcd_trainer.h
│       │   │   ├── svm_c_linear_trainer_abstract.h
│       │   │   ├── svm_c_linear_trainer.h
│       │   │   ├── svm_c_trainer_abstract.h
│       │   │   ├── svm_c_trainer.h
│       │   │   ├── svm.h
│       │   │   ├── svm_multiclass_linear_trainer_abstract.h
│       │   │   ├── svm_multiclass_linear_trainer.h
│       │   │   ├── svm_nu_trainer_abstract.h
│       │   │   ├── svm_nu_trainer.h
│       │   │   ├── svm_one_class_trainer_abstract.h
│       │   │   ├── svm_one_class_trainer.h
│       │   │   ├── svm_rank_trainer_abstract.h
│       │   │   ├── svm_rank_trainer.h
│       │   │   ├── svm_threaded_abstract.h
│       │   │   ├── svm_threaded.h
│       │   │   ├── svr_linear_trainer_abstract.h
│       │   │   ├── svr_linear_trainer.h
│       │   │   ├── svr_trainer_abstract.h
│       │   │   ├── svr_trainer.h
│       │   │   ├── track_association_function_abstract.h
│       │   │   └── track_association_function.h
│       │   ├── svm.h
│       │   ├── svm_threaded.h
│       │   ├── sync_extension
│       │   │   ├── sync_extension_kernel_1.h
│       │   │   └── sync_extension_kernel_abstract.h
│       │   ├── sync_extension.h
│       │   ├── test
│       │   │   ├── binary_search_tree.h
│       │   │   ├── checkerboard.h
│       │   │   ├── cmd_line_parser.h
│       │   │   ├── conditioning_class.h
│       │   │   ├── create_iris_datafile.h
│       │   │   ├── optimization_test_functions.h
│       │   │   └── tester.h
│       │   ├── threads
│       │   │   ├── async_abstract.h
│       │   │   ├── async.h
│       │   │   ├── auto_mutex_extension_abstract.h
│       │   │   ├── auto_mutex_extension.h
│       │   │   ├── auto_unlock_extension_abstract.h
│       │   │   ├── auto_unlock_extension.h
│       │   │   ├── create_new_thread_extension_abstract.h
│       │   │   ├── create_new_thread_extension.h
│       │   │   ├── multithreaded_object_extension_abstract.h
│       │   │   ├── multithreaded_object_extension.h
│       │   │   ├── parallel_for_extension_abstract.h
│       │   │   ├── parallel_for_extension.h
│       │   │   ├── posix.h
│       │   │   ├── read_write_mutex_extension_abstract.h
│       │   │   ├── read_write_mutex_extension.h
│       │   │   ├── rmutex_extension_abstract.h
│       │   │   ├── rmutex_extension.h
│       │   │   ├── rsignaler_extension_abstract.h
│       │   │   ├── rsignaler_extension.h
│       │   │   ├── threaded_object_extension_abstract.h
│       │   │   ├── threaded_object_extension.h
│       │   │   ├── thread_function_extension_abstract.h
│       │   │   ├── thread_function_extension.h
│       │   │   ├── thread_pool_extension_abstract.h
│       │   │   ├── thread_pool_extension.h
│       │   │   ├── threads_kernel_1.h
│       │   │   ├── threads_kernel_2.h
│       │   │   ├── threads_kernel_abstract.h
│       │   │   ├── threads_kernel.h
│       │   │   ├── threads_kernel_shared.h
│       │   │   ├── thread_specific_data_extension_abstract.h
│       │   │   ├── thread_specific_data_extension.h
│       │   │   └── windows.h
│       │   ├── threads.h
│       │   ├── timeout
│       │   │   ├── timeout_abstract.h
│       │   │   └── timeout.h
│       │   ├── timeout.h
│       │   ├── timer
│       │   │   ├── timer_abstract.h
│       │   │   ├── timer.h
│       │   │   └── timer_heavy.h
│       │   ├── timer.h
│       │   ├── time_this.h
│       │   ├── timing.h
│       │   ├── tokenizer
│       │   │   ├── tokenizer_kernel_1.h
│       │   │   ├── tokenizer_kernel_abstract.h
│       │   │   └── tokenizer_kernel_c.h
│       │   ├── tokenizer.h
│       │   ├── tuple
│       │   │   ├── tuple_abstract.h
│       │   │   └── tuple.h
│       │   ├── tuple.h
│       │   ├── type_safe_union
│       │   │   ├── type_safe_union_kernel_abstract.h
│       │   │   └── type_safe_union_kernel.h
│       │   ├── type_safe_union.h
│       │   ├── uintn.h
│       │   ├── unicode
│       │   │   ├── unicode_abstract.h
│       │   │   └── unicode.h
│       │   ├── unicode.h
│       │   ├── unordered_pair.h
│       │   ├── vectorstream
│       │   │   ├── unserialize_abstract.h
│       │   │   ├── unserialize.h
│       │   │   ├── vectorstream_abstract.h
│       │   │   └── vectorstream.h
│       │   ├── vectorstream.h
│       │   ├── windows_magic.h
│       │   ├── xml_parser
│       │   │   ├── xml_parser_kernel_1.h
│       │   │   ├── xml_parser_kernel_abstract.h
│       │   │   └── xml_parser_kernel_interfaces.h
│       │   └── xml_parser.h
│       └── my
│           └── dlib
│               └── data
│                   └── messages.pb.h
├── my_core_jni
│   ├── include
│   │   └── my
│   │       ├── jni.h
│   │       └── profiler.h
│   └── lib
│       ├── arm64-v8a
│       ├── armeabi
│       ├── armeabi-v7a
│       ├── x86
│       └── x86_64
├── protobuf_jni
│   ├── include
│   │   ├── google
│   │   │   └── protobuf
│   │   │       ├── any.h
│   │   │       ├── any.pb.h
│   │   │       ├── any.proto
│   │   │       ├── api.pb.h
│   │   │       ├── api.proto
│   │   │       ├── arena.h
│   │   │       ├── arenastring.h
│   │   │       ├── compiler
│   │   │       │   ├── code_generator.h
│   │   │       │   ├── command_line_interface.h
│   │   │       │   ├── cpp
│   │   │       │   │   └── cpp_generator.h
│   │   │       │   ├── csharp
│   │   │       │   │   ├── csharp_generator.h
│   │   │       │   │   └── csharp_names.h
│   │   │       │   ├── importer.h
│   │   │       │   ├── java
│   │   │       │   │   ├── java_generator.h
│   │   │       │   │   └── java_names.h
│   │   │       │   ├── javanano
│   │   │       │   │   └── javanano_generator.h
│   │   │       │   ├── js
│   │   │       │   │   ├── js_generator.h
│   │   │       │   │   └── well_known_types_embed.h
│   │   │       │   ├── objectivec
│   │   │       │   │   ├── objectivec_generator.h
│   │   │       │   │   └── objectivec_helpers.h
│   │   │       │   ├── parser.h
│   │   │       │   ├── php
│   │   │       │   │   └── php_generator.h
│   │   │       │   ├── plugin.h
│   │   │       │   ├── plugin.pb.h
│   │   │       │   ├── plugin.proto
│   │   │       │   ├── python
│   │   │       │   │   └── python_generator.h
│   │   │       │   └── ruby
│   │   │       │       └── ruby_generator.h
│   │   │       ├── descriptor_database.h
│   │   │       ├── descriptor.h
│   │   │       ├── descriptor.pb.h
│   │   │       ├── descriptor.proto
│   │   │       ├── duration.pb.h
│   │   │       ├── duration.proto
│   │   │       ├── dynamic_message.h
│   │   │       ├── empty.pb.h
│   │   │       ├── empty.proto
│   │   │       ├── extension_set.h
│   │   │       ├── field_mask.pb.h
│   │   │       ├── field_mask.proto
│   │   │       ├── generated_enum_reflection.h
│   │   │       ├── generated_enum_util.h
│   │   │       ├── generated_message_reflection.h
│   │   │       ├── generated_message_util.h
│   │   │       ├── has_bits.h
│   │   │       ├── io
│   │   │       │   ├── coded_stream.h
│   │   │       │   ├── gzip_stream.h
│   │   │       │   ├── printer.h
│   │   │       │   ├── strtod.h
│   │   │       │   ├── tokenizer.h
│   │   │       │   ├── zero_copy_stream.h
│   │   │       │   ├── zero_copy_stream_impl.h
│   │   │       │   └── zero_copy_stream_impl_lite.h
│   │   │       ├── map_entry.h
│   │   │       ├── map_entry_lite.h
│   │   │       ├── map_field.h
│   │   │       ├── map_field_inl.h
│   │   │       ├── map_field_lite.h
│   │   │       ├── map.h
│   │   │       ├── map_type_handler.h
│   │   │       ├── message.h
│   │   │       ├── message_lite.h
│   │   │       ├── metadata.h
│   │   │       ├── reflection.h
│   │   │       ├── reflection_ops.h
│   │   │       ├── repeated_field.h
│   │   │       ├── service.h
│   │   │       ├── source_context.pb.h
│   │   │       ├── source_context.proto
│   │   │       ├── struct.pb.h
│   │   │       ├── struct.proto
│   │   │       ├── stubs
│   │   │       │   ├── atomicops.h
│   │   │       │   ├── atomicops_internals_arm64_gcc.h
│   │   │       │   ├── atomicops_internals_arm_gcc.h
│   │   │       │   ├── atomicops_internals_arm_qnx.h
│   │   │       │   ├── atomicops_internals_atomicword_compat.h
│   │   │       │   ├── atomicops_internals_generic_c11_atomic.h
│   │   │       │   ├── atomicops_internals_generic_gcc.h
│   │   │       │   ├── atomicops_internals_macosx.h
│   │   │       │   ├── atomicops_internals_mips_gcc.h
│   │   │       │   ├── atomicops_internals_power.h
│   │   │       │   ├── atomicops_internals_ppc_gcc.h
│   │   │       │   ├── atomicops_internals_solaris.h
│   │   │       │   ├── atomicops_internals_tsan.h
│   │   │       │   ├── atomicops_internals_x86_gcc.h
│   │   │       │   ├── atomicops_internals_x86_msvc.h
│   │   │       │   ├── atomic_sequence_num.h
│   │   │       │   ├── bytestream.h
│   │   │       │   ├── callback.h
│   │   │       │   ├── casts.h
│   │   │       │   ├── common.h
│   │   │       │   ├── fastmem.h
│   │   │       │   ├── hash.h
│   │   │       │   ├── logging.h
│   │   │       │   ├── macros.h
│   │   │       │   ├── mutex.h
│   │   │       │   ├── once.h
│   │   │       │   ├── platform_macros.h
│   │   │       │   ├── port.h
│   │   │       │   ├── scoped_ptr.h
│   │   │       │   ├── shared_ptr.h
│   │   │       │   ├── singleton.h
│   │   │       │   ├── status.h
│   │   │       │   ├── stl_util.h
│   │   │       │   ├── stringpiece.h
│   │   │       │   ├── template_util.h
│   │   │       │   └── type_traits.h
│   │   │       ├── text_format.h
│   │   │       ├── timestamp.pb.h
│   │   │       ├── timestamp.proto
│   │   │       ├── type.pb.h
│   │   │       ├── type.proto
│   │   │       ├── unknown_field_set.h
│   │   │       ├── util
│   │   │       │   ├── field_comparator.h
│   │   │       │   ├── field_mask_util.h
│   │   │       │   ├── json_util.h
│   │   │       │   ├── message_differencer.h
│   │   │       │   ├── time_util.h
│   │   │       │   ├── type_resolver.h
│   │   │       │   └── type_resolver_util.h
│   │   │       ├── wire_format.h
│   │   │       ├── wire_format_lite.h
│   │   │       ├── wire_format_lite_inl.h
│   │   │       ├── wrappers.pb.h
│   │   │       └── wrappers.proto
│   │   └── my
│   │       └── protobuf_util.h
│   └── lib
│       ├── arm64-v8a
│       │   └── libprotobuf-lite-3.2.0.so
│       ├── armeabi
│       │   └── libprotobuf-lite-3.2.0.so
│       ├── armeabi-v7a
│       │   └── libprotobuf-lite-3.2.0.so
│       ├── x86
│       │   └── libprotobuf-lite-3.2.0.so
│       └── x86_64
│           └── libprotobuf-lite-3.2.0.so
└── tensorflow_jni
    └── include
        ├── my
        │   ├── rgb2yuv.h
        │   └── yuv2rgb.h
        └── tensorflow
            └── include
                └── org
                    └── tensorflow
                        └── contrib
                            └── android
                                └── tensorflow_inference_jni.h
tcw165 commented 7 years ago

@vijay1131

Ok, it seems like the *.so files are not copied. Would you check out the latest master again (git pull origin master) and do rm -rf lib-distribution && ./gradlew clean lib-core:assembleDebug && tree lib-distribution again for me? I want to make sure if it's the different CMake version would have different copy behavior.

vijay1131 commented 7 years ago

Here is the log for clean

learner@deep:~/Smartbeing/my-android-app-boilerplate$ ./gradlew clean lib-core:assembleDebug
Incremental java compilation is an incubating feature.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
:clean UP-TO-DATE
:app:clean
:demo-dlib:clean
:demo-doodle:clean
:demo-news-feed:clean
:demo-widget:clean
:lib-component:clean
:lib-core:externalNativeBuildCleanDebug
Clean my_core_jni armeabi
Cleaning... 3 files.
Clean my_core_jni armeabi-v7a
Cleaning... 3 files.
Clean my_core_jni arm64-v8a
Cleaning... 3 files.
Clean my_core_jni x86
Cleaning... 3 files.
Clean my_core_jni x86_64
Cleaning... 3 files.
:lib-core:externalNativeBuildCleanRelease
Clean my_core_jni armeabi
Cleaning... 0 files.
Clean my_core_jni armeabi-v7a
Cleaning... 0 files.
Clean my_core_jni arm64-v8a
Cleaning... 0 files.
Clean my_core_jni x86
Cleaning... 0 files.
Clean my_core_jni x86_64
Cleaning... 0 files.
:lib-core:clean
:lib-dlib:externalNativeBuildCleanDebug
Clean dlib_jni armeabi,my_core_jni armeabi,dlib armeabi,protobuf armeabi
Cleaning... 0 files.
Clean dlib_jni armeabi-v7a,my_core_jni armeabi-v7a,dlib armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,my_core_jni arm64-v8a,dlib_jni arm64-v8a,dlib arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,dlib_jni x86,dlib x86,my_core_jni x86
Cleaning... 0 files.
Clean dlib x86_64,dlib_jni x86_64,my_core_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-dlib:externalNativeBuildCleanRelease
Clean dlib_jni armeabi,my_core_jni armeabi,dlib armeabi,protobuf armeabi
Cleaning... 0 files.
Clean dlib_jni armeabi-v7a,my_core_jni armeabi-v7a,dlib armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,my_core_jni arm64-v8a,dlib_jni arm64-v8a,dlib arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,dlib_jni x86,dlib x86,my_core_jni x86
Cleaning... 0 files.
Clean dlib x86_64,dlib_jni x86_64,my_core_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-dlib:clean
:lib-protobuf:externalNativeBuildCleanDebug
Clean protobuf armeabi,protobuf_jni armeabi
Cleaning... 0 files.
Clean protobuf_jni armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,protobuf_jni arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,protobuf_jni x86
Cleaning... 0 files.
Clean protobuf_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-protobuf:externalNativeBuildCleanRelease
Clean protobuf armeabi,protobuf_jni armeabi
Cleaning... 0 files.
Clean protobuf_jni armeabi-v7a,protobuf armeabi-v7a
Cleaning... 0 files.
Clean protobuf arm64-v8a,protobuf_jni arm64-v8a
Cleaning... 0 files.
Clean protobuf x86,protobuf_jni x86
Cleaning... 0 files.
Clean protobuf_jni x86_64,protobuf x86_64
Cleaning... 0 files.
:lib-protobuf:clean
:lib-reactive:clean
:lib-tensorflow:externalNativeBuildCleanDebug
Clean tensorflow armeabi,my_core_jni armeabi,tensorflow_jni armeabi
Cleaning... 0 files.
Clean tensorflow_jni armeabi-v7a,tensorflow armeabi-v7a,my_core_jni armeabi-v7a
Cleaning... 0 files.
:lib-tensorflow:externalNativeBuildCleanRelease
Clean tensorflow armeabi,my_core_jni armeabi,tensorflow_jni armeabi
Cleaning... 0 files.
Clean tensorflow_jni armeabi-v7a,tensorflow armeabi-v7a,my_core_jni armeabi-v7a
Cleaning... 0 files.
:lib-tensorflow:clean
:lib-widget:clean
:lib-core:preBuild UP-TO-DATE
:lib-core:preDebugBuild UP-TO-DATE
:lib-core:checkDebugManifest
:lib-core:preDebugAndroidTestBuild UP-TO-DATE
:lib-core:preDebugUnitTestBuild UP-TO-DATE
:lib-core:preReleaseBuild UP-TO-DATE
:lib-core:preReleaseUnitTestBuild UP-TO-DATE
:lib-core:prepareComAndroidSupportAnimatedVectorDrawable2520Library
:lib-core:prepareComAndroidSupportAppcompatV72520Library
:lib-core:prepareComAndroidSupportRecyclerviewV72520Library
:lib-core:prepareComAndroidSupportSupportCompat2520Library
:lib-core:prepareComAndroidSupportSupportCoreUi2520Library
:lib-core:prepareComAndroidSupportSupportCoreUtils2520Library
:lib-core:prepareComAndroidSupportSupportFragment2520Library
:lib-core:prepareComAndroidSupportSupportMediaCompat2520Library
:lib-core:prepareComAndroidSupportSupportV42520Library
:lib-core:prepareComAndroidSupportSupportVectorDrawable2520Library
:lib-core:prepareDebugDependencies
:lib-core:compileDebugAidl
:lib-core:compileLint
:lib-core:copyDebugLint UP-TO-DATE
:lib-core:compileDebugRenderscript
:lib-core:generateDebugBuildConfig
:lib-core:generateDebugResValues
:lib-core:generateDebugResources
:lib-core:mergeDebugResources
:lib-core:processDebugManifest
:lib-core:processDebugResources
:lib-core:generateDebugSources
:lib-core:incrementalDebugJavaCompilationSafeguard
:lib-core:javaPreCompileDebug
:lib-core:compileDebugJavaWithJavac
:lib-core:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:lib-core:extractDebugAnnotations
:lib-core:mergeDebugShaders
:lib-core:compileDebugShaders
:lib-core:generateDebugAssets
:lib-core:mergeDebugAssets
:lib-core:mergeDebugProguardFiles UP-TO-DATE
:lib-core:packageDebugRenderscript UP-TO-DATE
:lib-core:packageDebugResources
:lib-core:processDebugJavaRes UP-TO-DATE
:lib-core:transformResourcesWithMergeJavaResForDebug
:lib-core:transformClassesAndResourcesWithSyncLibJarsForDebug
:lib-core:generateJsonModelDebug UP-TO-DATE
:lib-core:externalNativeBuildDebug
Build my_core_jni arm64-v8a
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/Smartbeing/my-android-app-boilerplate/lib-core/build/intermediates/cmake/debug/obj/arm64-v8a/libmy_core_jni.so
Build my_core_jni x86
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/Smartbeing/my-android-app-boilerplate/lib-core/build/intermediates/cmake/debug/obj/x86/libmy_core_jni.so
Build my_core_jni armeabi
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/Smartbeing/my-android-app-boilerplate/lib-core/build/intermediates/cmake/debug/obj/armeabi/libmy_core_jni.so
Build my_core_jni x86_64
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/Smartbeing/my-android-app-boilerplate/lib-core/build/intermediates/cmake/debug/obj/x86_64/libmy_core_jni.so
Build my_core_jni armeabi-v7a
[1/3] Building CXX object CMakeFiles/my_core_jni.dir/jni.cpp.o
[2/3] Building CXX object CMakeFiles/my_core_jni.dir/profiler.cpp.o
[3/3] Linking CXX shared library /home/learner/Smartbeing/my-android-app-boilerplate/lib-core/build/intermediates/cmake/debug/obj/armeabi-v7a/libmy_core_jni.so
:lib-core:mergeDebugJniLibFolders
:lib-core:transformNativeLibsWithMergeJniLibsForDebug
:lib-core:transformNativeLibsWithStripDebugSymbolForDebug
:lib-core:transformNativeLibsWithSyncJniLibsForDebug
:lib-core:bundleDebug
:lib-core:compileDebugSources
:lib-core:assembleDebug

BUILD SUCCESSFUL

Total time: 5.501 secs

FAILURE: Build failed with an exception.
vijay1131 commented 7 years ago

tree lib-distribution

lib-distribution
└── my_core_jni
    └── lib
        ├── arm64-v8a
        ├── armeabi
        ├── armeabi-v7a
        ├── x86
        └── x86_64
tcw165 commented 7 years ago

Ok, that's weird. I'll try to use gradle method to copy out the generated files later.

vijay1131 commented 7 years ago

Hi @boyw165

I need to know are there anywhere else where lib are generated which can be copied to my_core_jni folder. i can use that to proceed forward.

Also do i really need libcore for running demo dlib?

tcw165 commented 7 years ago

Hi @vijay1131 ,

Yup, I moved some common JNI utility method to lib-core. Here is a workaround that you need to manually move *.so under lib-core/build/intermediates/cmake/${CMAKE_BUILD_TYPE}/obj/${ANDROID_ABI}/ to lib-distribution/my_core_jni/lib/${ANDROID_ABI}/, where ${CMAKE_BUILD_TYPE} is either debug or release and ${ANDROID_ABI} is armeabi | armeabi-v7a | arm64-v8a | x86 | x86_64.

In general, all the dependent native library are placed into the folder lib-distribution.

Before I figure out how to use gradle to move files, it's worthy to try. Hope it works for you. Please let me know if any error still happens.

vijay1131 commented 7 years ago

Cool, that worked! The next issue Error is here

Error:(290, 17) error: cannot find symbol method getInstance(SampleOfFacesAndLandmarksActivity1)

I somehow managed to run the app. but at home screen of it get closed automatically with this error

could not load library "libprotobuf-lite.so" needed by "libdlib_jni.so"; caused by library "libprotobuf-lite.so" not found

is it because i removed the this code from SampleOfFacesAndLandmarksActivity1

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            return RxPermissions
                .getInstance(this)
                .request(Manifest.permission.READ_EXTERNAL_STORAGE,
                         Manifest.permission.WRITE_EXTERNAL_STORAGE,
                         Manifest.permission.ACCESS_NETWORK_STATE,
                         Manifest.permission.CAMERA);
        }
tcw165 commented 7 years ago

Hi @vijay1131 ,

That's my fault. I just updated the code. The runtime permissions are quiet necessary for Android API-21 and above, otherwise the app is now allowed to download the detector model and load it into the memory. Would you please get the latest code and try it again?

vijay1131 commented 7 years ago

Yes latest code resolved it but this error still persist.

failed: dlopen failed: could not load library "libprotobuf-lite.so" needed by "libdlib_jni.so"; caused by library "libprotobuf-lite.so" not found

i see there is these file available here my-android-app-boilerplate/lib-distribution/protobuf_jni/lib/arm64-v8a/libprotobuf-lite-3.2.0.so my-android-app-boilerplate/lib-protobuf/build/intermediates/cmake/release/obj/arm64-v8a/libprotobuf_jni.so

should change libprotobuf-lite-3.2.0. name to libprotobuf-lite.so?

tcw165 commented 7 years ago

Hi @vijay1131 ,

Can you give me your development environment specs and also help me to see if there are *.so under the lib/ folder in the APK you built. The APK is actually a Zip file, you could either rename its postfix and unpack it or simply drag the APK to Android Studio (supported on the latest build). Here is a snapshot of my APK, there should be these *.so files.

screen shot 2017-06-07 at 10 54 47 pm

It's actually this code in the lib-dlib/build.gradle to have the Gradle pack the prebuilt *.so files. I'm not sure why it's not working on your working environment.

android {
    // Let gradle pack the shared library into apk.
    sourceSets {
        main {
            jniLibs.srcDirs = ["src/main/cppLibs/dlib/lib"]
        }
    }
}
vijay1131 commented 7 years ago

@boyw165

I tried with another phone with android marshmallow and higher build tool. the issue is resolved! screenshot from 2017-06-07 20-36-21

tcw165 commented 7 years ago

Hi @vijay1131 ,

Wow, sounds great! I think my previous suggestion is still wrong, the root cause might be the gradle build tool is outdated. I prepared a pre-built lib-distribution archive for you as the workaround in any case the gradle doesn't copy the generated *.so again.

Here is the download link, https://www.dropbox.com/s/9np45qwpneph1wq/lib-distribution.zip?dl=0

vijay1131 commented 7 years ago

@boyw165 thank you! Awesome work here! Will be sharing it in my circle.