4a94151f by 乔峰昇

submmit all code

1 parent ed52fddf
Showing 50 changed files with 2106 additions and 250 deletions
{
"files.associations": {
"*.py": "python",
"string": "cpp",
"iostream": "cpp",
"memory": "cpp"
}
}
\ No newline at end of file
......@@ -6,8 +6,13 @@ set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV REQUIRED)
set(MNN_DIR /home/situ/MNN/MNN1.0/MNN)
include_directories(${MNN_DIR}/include)
include_directories(/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/include)
LINK_DIRECTORIES(${MNN_DIR}/build)
add_executable(main main.cpp faceLandmarks.cpp)
set(FACECOMPARISON_DIR /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/lib)
# add_library(facecomparison SHARED facerecognize.cpp retinaface.cpp facelandmarks.cpp facecomparison.cpp)
# add_executable(main main.cpp facerecognize.cpp retinaface.cpp facelandmarks.cpp facecomparison.cpp)
add_executable(main main.cpp)
# add_executable(main z.cpp)
target_link_libraries(main -lMNN ${OpenCV_LIBS})
target_link_libraries(main ${FACECOMPARISON_DIR}/libfacecomparison.so -lMNN ${OpenCV_LIBS})
# target_link_libraries(facecomparison -lMNN ${OpenCV_LIBS})
......
MNN1.0.0+opencv
模型初始化
FaceComparison face_rec=FaceComparison(det_model_path,landm_model_path,rec_model_path)
det_model_path:人脸检测模型retinaface的模型路径
landm_model_path:106人脸关键点模型的模型路径
rec_model_path:人脸识别模型的模型路径
重要参数(include/facecomparison.h文件)
// 人脸检测阈值
float confidence_threshold = 0.5;
// 是否进行人脸外廓
bool is_bbox_process = true;
// 人脸比对相似度阈值
float face_recongnize_thr = 0.5;
// 线程个数
int num_thread = 2;
接口(返回结果 bool:true/false)
bool face_compare(string image_path1,string image_path2);参数为两张图像地址,其中iamge1_path为face_id图像输入
bool face_compare_image(Mat image1,Mat image2);参数为两张opencv读取的图像矩阵,其中iamge1为face_id图像输入
编译
将CMakeLists.txt 中 set(FACECOMPARISON_DIR /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/lib)
改为lib文件夹所在的绝对地址
mkdir build
cd build
cmake ..
make
./main
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "7.5.0")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "7.5.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-7")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_HOST_SYSTEM "Linux-4.15.0-29-generic")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-29-generic")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-4.15.0-29-generic")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "4.15.0-29-generic")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
No preview for this file type
No preview for this file type
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_63a2a/fast"
/usr/bin/make -f CMakeFiles/cmTC_63a2a.dir/build.make CMakeFiles/cmTC_63a2a.dir/build
make[1]: 进入目录“/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_63a2a.dir/CheckSymbolExists.c.o
/usr/bin/cc -fPIC -o CMakeFiles/cmTC_63a2a.dir/CheckSymbolExists.c.o -c /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_63a2a
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_63a2a.dir/link.txt --verbose=1
/usr/bin/cc -fPIC CMakeFiles/cmTC_63a2a.dir/CheckSymbolExists.c.o -o cmTC_63a2a
CMakeFiles/cmTC_63a2a.dir/CheckSymbolExists.c.o:在函数‘main’中:
CheckSymbolExists.c:(.text+0x1b):对‘pthread_create’未定义的引用
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_63a2a.dir/build.make:97: recipe for target 'cmTC_63a2a' failed
make[1]: *** [cmTC_63a2a] Error 1
make[1]: 离开目录“/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp”
Makefile:126: recipe for target 'cmTC_63a2a/fast' failed
make: *** [cmTC_63a2a/fast] Error 2
File /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_35a97/fast"
/usr/bin/make -f CMakeFiles/cmTC_35a97.dir/build.make CMakeFiles/cmTC_35a97.dir/build
make[1]: 进入目录“/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_35a97.dir/CheckFunctionExists.c.o
/usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_35a97.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.10/Modules/CheckFunctionExists.c
Linking C executable cmTC_35a97
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_35a97.dir/link.txt --verbose=1
/usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_35a97.dir/CheckFunctionExists.c.o -o cmTC_35a97 -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_35a97.dir/build.make:97: recipe for target 'cmTC_35a97' failed
make[1]: *** [cmTC_35a97] Error 1
make[1]: 离开目录“/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/CMakeTmp”
Makefile:126: recipe for target 'cmTC_35a97/fast' failed
make: *** [cmTC_35a97/fast] Error 2
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"../CMakeLists.txt"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/3.10.2/CMakeSystem.cmake"
"CMakeFiles/feature_tests.c"
"CMakeFiles/feature_tests.cxx"
"/usr/local/lib/cmake/opencv4/OpenCVConfig-version.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVModules-release.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVModules.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-3.10/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-3.10/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.10/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.10/Modules/CMakeConfigurableFile.in"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.10/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-3.10/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-3.10/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.10/Modules/CheckFunctionExists.c"
"/usr/share/cmake-3.10/Modules/CheckIncludeFile.c.in"
"/usr/share/cmake-3.10/Modules/CheckIncludeFile.cmake"
"/usr/share/cmake-3.10/Modules/CheckLibraryExists.cmake"
"/usr/share/cmake-3.10/Modules/CheckSymbolExists.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C-FeatureTests.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX-FeatureTests.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU-FindBinUtils.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.10/Modules/FindCUDA.cmake"
"/usr/share/cmake-3.10/Modules/FindCUDA/select_compute_arch.cmake"
"/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake-3.10/Modules/FindPackageMessage.cmake"
"/usr/share/cmake-3.10/Modules/FindThreads.cmake"
"/usr/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-Determine-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-3.10/Modules/Platform/Linux.cmake"
"/usr/share/cmake-3.10/Modules/Platform/UnixPaths.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.10.2/CMakeSystem.cmake"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCCompiler.cmake"
"CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/main.dir/DependInfo.cmake"
)
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# The main recursive all target
all:
.PHONY : all
# The main recursive preinstall target
preinstall:
.PHONY : preinstall
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build
#=============================================================================
# Target rules for target CMakeFiles/main.dir
# All Build rule for target.
CMakeFiles/main.dir/all:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/depend
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles --progress-num=1,2 "Built target main"
.PHONY : CMakeFiles/main.dir/all
# Include target in all.
all: CMakeFiles/main.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/main.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles 0
.PHONY : CMakeFiles/main.dir/rule
# Convenience name for target.
main: CMakeFiles/main.dir/rule
.PHONY : main
# clean rule for target.
CMakeFiles/main.dir/clean:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/clean
.PHONY : CMakeFiles/main.dir/clean
# clean rule for target.
clean: CMakeFiles/main.dir/clean
.PHONY : clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/rebuild_cache.dir
/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/main.dir
/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/edit_cache.dir
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
No preview for this file type
const char features[] = {"\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304
"1"
#else
"0"
#endif
"c_function_prototypes\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
"1"
#else
"0"
#endif
"c_restrict\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
"1"
#else
"0"
#endif
"c_static_assert\n"
"C_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
"1"
#else
"0"
#endif
"c_variadic_macros\n"
};
int main(int argc, char** argv) { (void)argv; return features[argc]; }
const char features[] = {"\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_aggregate_default_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alias_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alignas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_alignof\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_attributes\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_attribute_deprecated\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_auto_type\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_binary_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_constexpr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_contextual_conversions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_decltype\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_decltype_auto\n"
"CXX_FEATURE:"
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_decltype_incomplete_return_types\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_default_function_template_args\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_defaulted_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_defaulted_move_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_delegating_constructors\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_deleted_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_digit_separators\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_enum_forward_declarations\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_explicit_conversions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_extended_friend_declarations\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_extern_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_final\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_func_identifier\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_generalized_initializers\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_generic_lambdas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_inheriting_constructors\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_inline_namespaces\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_lambdas\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_lambda_init_captures\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_local_type_template_args\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_long_long_type\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_noexcept\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_nonstatic_member_init\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_nullptr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_override\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_range_for\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_raw_string_literals\n"
"CXX_FEATURE:"
#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_reference_qualified_functions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_relaxed_constexpr\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
"1"
#else
"0"
#endif
"cxx_return_type_deduction\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_right_angle_brackets\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_rvalue_references\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_sizeof_member\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_static_assert\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_strong_enums\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
"1"
#else
"0"
#endif
"cxx_template_template_parameters\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_thread_local\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_trailing_return_types\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_unicode_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_uniform_initialization\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_unrestricted_unions\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
"1"
#else
"0"
#endif
"cxx_user_literals\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
"1"
#else
"0"
#endif
"cxx_variable_templates\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_variadic_macros\n"
"CXX_FEATURE:"
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
"1"
#else
"0"
#endif
"cxx_variadic_templates\n"
};
int main(int argc, char** argv) { (void)argv; return features[argc]; }
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
"CXX"
)
# The set of files for implicit dependencies of each language:
set(CMAKE_DEPENDS_CHECK_CXX
"/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/main.cpp" "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/main.dir/main.cpp.o"
)
set(CMAKE_CXX_COMPILER_ID "GNU")
# The include file search paths:
set(CMAKE_CXX_TARGET_INCLUDE_PATH
"/home/situ/MNN/MNN1.0/MNN/include"
"../include"
"/usr/local/include/opencv4"
)
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build
# Include any dependencies generated for this target.
include CMakeFiles/main.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/main.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/main.cpp.o: CMakeFiles/main.dir/flags.make
CMakeFiles/main.dir/main.cpp.o: ../main.cpp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/main.dir/main.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/main.dir/main.cpp.o -c /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/main.cpp
CMakeFiles/main.dir/main.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/main.dir/main.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/main.cpp > CMakeFiles/main.dir/main.cpp.i
CMakeFiles/main.dir/main.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/main.dir/main.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/main.cpp -o CMakeFiles/main.dir/main.cpp.s
CMakeFiles/main.dir/main.cpp.o.requires:
.PHONY : CMakeFiles/main.dir/main.cpp.o.requires
CMakeFiles/main.dir/main.cpp.o.provides: CMakeFiles/main.dir/main.cpp.o.requires
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.o.provides.build
.PHONY : CMakeFiles/main.dir/main.cpp.o.provides
CMakeFiles/main.dir/main.cpp.o.provides.build: CMakeFiles/main.dir/main.cpp.o
# Object files for target main
main_OBJECTS = \
"CMakeFiles/main.dir/main.cpp.o"
# External object files for target main
main_EXTERNAL_OBJECTS =
main: CMakeFiles/main.dir/main.cpp.o
main: CMakeFiles/main.dir/build.make
main: ../lib/libfacecomparison.so
main: /usr/local/lib/libopencv_gapi.so.4.5.5
main: /usr/local/lib/libopencv_stitching.so.4.5.5
main: /usr/local/lib/libopencv_aruco.so.4.5.5
main: /usr/local/lib/libopencv_barcode.so.4.5.5
main: /usr/local/lib/libopencv_bgsegm.so.4.5.5
main: /usr/local/lib/libopencv_bioinspired.so.4.5.5
main: /usr/local/lib/libopencv_ccalib.so.4.5.5
main: /usr/local/lib/libopencv_cudabgsegm.so.4.5.5
main: /usr/local/lib/libopencv_cudafeatures2d.so.4.5.5
main: /usr/local/lib/libopencv_cudaobjdetect.so.4.5.5
main: /usr/local/lib/libopencv_cudastereo.so.4.5.5
main: /usr/local/lib/libopencv_dnn_objdetect.so.4.5.5
main: /usr/local/lib/libopencv_dnn_superres.so.4.5.5
main: /usr/local/lib/libopencv_dpm.so.4.5.5
main: /usr/local/lib/libopencv_face.so.4.5.5
main: /usr/local/lib/libopencv_freetype.so.4.5.5
main: /usr/local/lib/libopencv_fuzzy.so.4.5.5
main: /usr/local/lib/libopencv_hfs.so.4.5.5
main: /usr/local/lib/libopencv_img_hash.so.4.5.5
main: /usr/local/lib/libopencv_intensity_transform.so.4.5.5
main: /usr/local/lib/libopencv_line_descriptor.so.4.5.5
main: /usr/local/lib/libopencv_mcc.so.4.5.5
main: /usr/local/lib/libopencv_quality.so.4.5.5
main: /usr/local/lib/libopencv_rapid.so.4.5.5
main: /usr/local/lib/libopencv_reg.so.4.5.5
main: /usr/local/lib/libopencv_rgbd.so.4.5.5
main: /usr/local/lib/libopencv_saliency.so.4.5.5
main: /usr/local/lib/libopencv_stereo.so.4.5.5
main: /usr/local/lib/libopencv_structured_light.so.4.5.5
main: /usr/local/lib/libopencv_superres.so.4.5.5
main: /usr/local/lib/libopencv_surface_matching.so.4.5.5
main: /usr/local/lib/libopencv_tracking.so.4.5.5
main: /usr/local/lib/libopencv_videostab.so.4.5.5
main: /usr/local/lib/libopencv_wechat_qrcode.so.4.5.5
main: /usr/local/lib/libopencv_xfeatures2d.so.4.5.5
main: /usr/local/lib/libopencv_xobjdetect.so.4.5.5
main: /usr/local/lib/libopencv_xphoto.so.4.5.5
main: /usr/local/lib/libopencv_shape.so.4.5.5
main: /usr/local/lib/libopencv_highgui.so.4.5.5
main: /usr/local/lib/libopencv_datasets.so.4.5.5
main: /usr/local/lib/libopencv_plot.so.4.5.5
main: /usr/local/lib/libopencv_text.so.4.5.5
main: /usr/local/lib/libopencv_ml.so.4.5.5
main: /usr/local/lib/libopencv_phase_unwrapping.so.4.5.5
main: /usr/local/lib/libopencv_cudacodec.so.4.5.5
main: /usr/local/lib/libopencv_videoio.so.4.5.5
main: /usr/local/lib/libopencv_cudaoptflow.so.4.5.5
main: /usr/local/lib/libopencv_cudalegacy.so.4.5.5
main: /usr/local/lib/libopencv_cudawarping.so.4.5.5
main: /usr/local/lib/libopencv_optflow.so.4.5.5
main: /usr/local/lib/libopencv_ximgproc.so.4.5.5
main: /usr/local/lib/libopencv_video.so.4.5.5
main: /usr/local/lib/libopencv_imgcodecs.so.4.5.5
main: /usr/local/lib/libopencv_objdetect.so.4.5.5
main: /usr/local/lib/libopencv_calib3d.so.4.5.5
main: /usr/local/lib/libopencv_dnn.so.4.5.5
main: /usr/local/lib/libopencv_features2d.so.4.5.5
main: /usr/local/lib/libopencv_flann.so.4.5.5
main: /usr/local/lib/libopencv_photo.so.4.5.5
main: /usr/local/lib/libopencv_cudaimgproc.so.4.5.5
main: /usr/local/lib/libopencv_cudafilters.so.4.5.5
main: /usr/local/lib/libopencv_imgproc.so.4.5.5
main: /usr/local/lib/libopencv_cudaarithm.so.4.5.5
main: /usr/local/lib/libopencv_core.so.4.5.5
main: /usr/local/lib/libopencv_cudev.so.4.5.5
main: CMakeFiles/main.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable main"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/main.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/main.dir/build: main
.PHONY : CMakeFiles/main.dir/build
CMakeFiles/main.dir/requires: CMakeFiles/main.dir/main.cpp.o.requires
.PHONY : CMakeFiles/main.dir/requires
CMakeFiles/main.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/main.dir/cmake_clean.cmake
.PHONY : CMakeFiles/main.dir/clean
CMakeFiles/main.dir/depend:
cd /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/main.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/main.dir/depend
file(REMOVE_RECURSE
"CMakeFiles/main.dir/main.cpp.o"
"main.pdb"
"main"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/main.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/main.dir/main.cpp.o
../include/facecomparison.h
../include/facelandmarks.h
../include/facerecognize.h
../include/retinaface.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/ErrorCode.hpp
/home/situ/MNN/MNN1.0/MNN/include/MNN/HalideRuntime.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/ImageProcess.hpp
/home/situ/MNN/MNN1.0/MNN/include/MNN/Interpreter.hpp
/home/situ/MNN/MNN1.0/MNN/include/MNN/MNNDefine.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/MNNForwardType.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/Matrix.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/Rect.h
/home/situ/MNN/MNN1.0/MNN/include/MNN/Tensor.hpp
/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/main.cpp
/usr/local/include/opencv4/opencv2/./imgproc/segmentation.hpp
/usr/local/include/opencv4/opencv2/calib3d.hpp
/usr/local/include/opencv4/opencv2/core.hpp
/usr/local/include/opencv4/opencv2/core/affine.hpp
/usr/local/include/opencv4/opencv2/core/async.hpp
/usr/local/include/opencv4/opencv2/core/base.hpp
/usr/local/include/opencv4/opencv2/core/bufferpool.hpp
/usr/local/include/opencv4/opencv2/core/check.hpp
/usr/local/include/opencv4/opencv2/core/cuda.hpp
/usr/local/include/opencv4/opencv2/core/cuda.inl.hpp
/usr/local/include/opencv4/opencv2/core/cuda_types.hpp
/usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h
/usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h
/usr/local/include/opencv4/opencv2/core/cvdef.h
/usr/local/include/opencv4/opencv2/core/cvstd.hpp
/usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp
/usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp
/usr/local/include/opencv4/opencv2/core/fast_math.hpp
/usr/local/include/opencv4/opencv2/core/hal/interface.h
/usr/local/include/opencv4/opencv2/core/hal/msa_macros.h
/usr/local/include/opencv4/opencv2/core/mat.hpp
/usr/local/include/opencv4/opencv2/core/mat.inl.hpp
/usr/local/include/opencv4/opencv2/core/matx.hpp
/usr/local/include/opencv4/opencv2/core/neon_utils.hpp
/usr/local/include/opencv4/opencv2/core/operations.hpp
/usr/local/include/opencv4/opencv2/core/optim.hpp
/usr/local/include/opencv4/opencv2/core/ovx.hpp
/usr/local/include/opencv4/opencv2/core/persistence.hpp
/usr/local/include/opencv4/opencv2/core/saturate.hpp
/usr/local/include/opencv4/opencv2/core/traits.hpp
/usr/local/include/opencv4/opencv2/core/types.hpp
/usr/local/include/opencv4/opencv2/core/utility.hpp
/usr/local/include/opencv4/opencv2/core/utils/instrumentation.hpp
/usr/local/include/opencv4/opencv2/core/utils/tls.hpp
/usr/local/include/opencv4/opencv2/core/version.hpp
/usr/local/include/opencv4/opencv2/core/vsx_utils.hpp
/usr/local/include/opencv4/opencv2/dnn.hpp
/usr/local/include/opencv4/opencv2/dnn/dict.hpp
/usr/local/include/opencv4/opencv2/dnn/dnn.hpp
/usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp
/usr/local/include/opencv4/opencv2/dnn/layer.hpp
/usr/local/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
/usr/local/include/opencv4/opencv2/dnn/version.hpp
/usr/local/include/opencv4/opencv2/features2d.hpp
/usr/local/include/opencv4/opencv2/flann.hpp
/usr/local/include/opencv4/opencv2/flann/all_indices.h
/usr/local/include/opencv4/opencv2/flann/allocator.h
/usr/local/include/opencv4/opencv2/flann/any.h
/usr/local/include/opencv4/opencv2/flann/autotuned_index.h
/usr/local/include/opencv4/opencv2/flann/composite_index.h
/usr/local/include/opencv4/opencv2/flann/config.h
/usr/local/include/opencv4/opencv2/flann/defines.h
/usr/local/include/opencv4/opencv2/flann/dist.h
/usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h
/usr/local/include/opencv4/opencv2/flann/flann_base.hpp
/usr/local/include/opencv4/opencv2/flann/general.h
/usr/local/include/opencv4/opencv2/flann/ground_truth.h
/usr/local/include/opencv4/opencv2/flann/heap.h
/usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
/usr/local/include/opencv4/opencv2/flann/index_testing.h
/usr/local/include/opencv4/opencv2/flann/kdtree_index.h
/usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h
/usr/local/include/opencv4/opencv2/flann/kmeans_index.h
/usr/local/include/opencv4/opencv2/flann/linear_index.h
/usr/local/include/opencv4/opencv2/flann/logger.h
/usr/local/include/opencv4/opencv2/flann/lsh_index.h
/usr/local/include/opencv4/opencv2/flann/lsh_table.h
/usr/local/include/opencv4/opencv2/flann/matrix.h
/usr/local/include/opencv4/opencv2/flann/miniflann.hpp
/usr/local/include/opencv4/opencv2/flann/nn_index.h
/usr/local/include/opencv4/opencv2/flann/params.h
/usr/local/include/opencv4/opencv2/flann/random.h
/usr/local/include/opencv4/opencv2/flann/result_set.h
/usr/local/include/opencv4/opencv2/flann/sampling.h
/usr/local/include/opencv4/opencv2/flann/saving.h
/usr/local/include/opencv4/opencv2/flann/timer.h
/usr/local/include/opencv4/opencv2/highgui.hpp
/usr/local/include/opencv4/opencv2/imgcodecs.hpp
/usr/local/include/opencv4/opencv2/imgproc.hpp
/usr/local/include/opencv4/opencv2/ml.hpp
/usr/local/include/opencv4/opencv2/ml/ml.inl.hpp
/usr/local/include/opencv4/opencv2/objdetect.hpp
/usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
/usr/local/include/opencv4/opencv2/objdetect/face.hpp
/usr/local/include/opencv4/opencv2/opencv.hpp
/usr/local/include/opencv4/opencv2/opencv_modules.hpp
/usr/local/include/opencv4/opencv2/photo.hpp
/usr/local/include/opencv4/opencv2/stitching.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/util.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp
/usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
/usr/local/include/opencv4/opencv2/stitching/warpers.hpp
/usr/local/include/opencv4/opencv2/video.hpp
/usr/local/include/opencv4/opencv2/video/background_segm.hpp
/usr/local/include/opencv4/opencv2/video/tracking.hpp
/usr/local/include/opencv4/opencv2/videoio.hpp
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/main.dir/main.cpp.o: ../include/facecomparison.h
CMakeFiles/main.dir/main.cpp.o: ../include/facelandmarks.h
CMakeFiles/main.dir/main.cpp.o: ../include/facerecognize.h
CMakeFiles/main.dir/main.cpp.o: ../include/retinaface.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/ErrorCode.hpp
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/HalideRuntime.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/ImageProcess.hpp
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/Interpreter.hpp
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/MNNDefine.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/MNNForwardType.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/Matrix.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/Rect.h
CMakeFiles/main.dir/main.cpp.o: /home/situ/MNN/MNN1.0/MNN/include/MNN/Tensor.hpp
CMakeFiles/main.dir/main.cpp.o: ../main.cpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/./imgproc/segmentation.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/calib3d.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/affine.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/async.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/base.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/bufferpool.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/check.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda.inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda_types.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvdef.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/fast_math.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/hal/interface.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/hal/msa_macros.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/mat.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/mat.inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/matx.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/neon_utils.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/operations.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/optim.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/ovx.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/persistence.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/saturate.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/traits.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/types.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/utility.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/utils/instrumentation.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/utils/tls.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/version.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/core/vsx_utils.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dict.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dnn.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/layer.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/utils/inference_engine.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/version.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/features2d.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/all_indices.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/allocator.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/any.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/autotuned_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/composite_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/config.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/defines.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/dist.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/flann_base.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/general.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/ground_truth.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/heap.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/index_testing.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kdtree_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kmeans_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/linear_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/logger.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/lsh_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/lsh_table.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/matrix.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/miniflann.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/nn_index.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/params.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/random.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/result_set.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/sampling.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/saving.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/flann/timer.h
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/highgui.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/imgcodecs.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/imgproc.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/ml.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/ml/ml.inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/objdetect.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/objdetect/face.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/opencv.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/opencv_modules.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/photo.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/util.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/warpers.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/video.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/video/background_segm.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/video/tracking.hpp
CMakeFiles/main.dir/main.cpp.o: /usr/local/include/opencv4/opencv2/videoio.hpp
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# compile CXX with /usr/bin/c++
CXX_FLAGS = -std=gnu++11
CXX_DEFINES =
CXX_INCLUDES = -I/home/situ/MNN/MNN1.0/MNN/include -I/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/include -isystem /usr/local/include/opencv4
/usr/bin/c++ CMakeFiles/main.dir/main.cpp.o -o main -L/usr/local/cuda-10.1/lib64 -L/home/situ/MNN/MNN1.0/MNN/build -Wl,-rpath,/usr/local/cuda-10.1/lib64:/home/situ/MNN/MNN1.0/MNN/build:/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/lib:/usr/local/lib ../lib/libfacecomparison.so -lMNN /usr/local/lib/libopencv_gapi.so.4.5.5 /usr/local/lib/libopencv_stitching.so.4.5.5 /usr/local/lib/libopencv_aruco.so.4.5.5 /usr/local/lib/libopencv_barcode.so.4.5.5 /usr/local/lib/libopencv_bgsegm.so.4.5.5 /usr/local/lib/libopencv_bioinspired.so.4.5.5 /usr/local/lib/libopencv_ccalib.so.4.5.5 /usr/local/lib/libopencv_cudabgsegm.so.4.5.5 /usr/local/lib/libopencv_cudafeatures2d.so.4.5.5 /usr/local/lib/libopencv_cudaobjdetect.so.4.5.5 /usr/local/lib/libopencv_cudastereo.so.4.5.5 /usr/local/lib/libopencv_dnn_objdetect.so.4.5.5 /usr/local/lib/libopencv_dnn_superres.so.4.5.5 /usr/local/lib/libopencv_dpm.so.4.5.5 /usr/local/lib/libopencv_face.so.4.5.5 /usr/local/lib/libopencv_freetype.so.4.5.5 /usr/local/lib/libopencv_fuzzy.so.4.5.5 /usr/local/lib/libopencv_hfs.so.4.5.5 /usr/local/lib/libopencv_img_hash.so.4.5.5 /usr/local/lib/libopencv_intensity_transform.so.4.5.5 /usr/local/lib/libopencv_line_descriptor.so.4.5.5 /usr/local/lib/libopencv_mcc.so.4.5.5 /usr/local/lib/libopencv_quality.so.4.5.5 /usr/local/lib/libopencv_rapid.so.4.5.5 /usr/local/lib/libopencv_reg.so.4.5.5 /usr/local/lib/libopencv_rgbd.so.4.5.5 /usr/local/lib/libopencv_saliency.so.4.5.5 /usr/local/lib/libopencv_stereo.so.4.5.5 /usr/local/lib/libopencv_structured_light.so.4.5.5 /usr/local/lib/libopencv_superres.so.4.5.5 /usr/local/lib/libopencv_surface_matching.so.4.5.5 /usr/local/lib/libopencv_tracking.so.4.5.5 /usr/local/lib/libopencv_videostab.so.4.5.5 /usr/local/lib/libopencv_wechat_qrcode.so.4.5.5 /usr/local/lib/libopencv_xfeatures2d.so.4.5.5 /usr/local/lib/libopencv_xobjdetect.so.4.5.5 /usr/local/lib/libopencv_xphoto.so.4.5.5 /usr/local/lib/libopencv_shape.so.4.5.5 /usr/local/lib/libopencv_highgui.so.4.5.5 /usr/local/lib/libopencv_datasets.so.4.5.5 /usr/local/lib/libopencv_plot.so.4.5.5 /usr/local/lib/libopencv_text.so.4.5.5 /usr/local/lib/libopencv_ml.so.4.5.5 /usr/local/lib/libopencv_phase_unwrapping.so.4.5.5 /usr/local/lib/libopencv_cudacodec.so.4.5.5 /usr/local/lib/libopencv_videoio.so.4.5.5 /usr/local/lib/libopencv_cudaoptflow.so.4.5.5 /usr/local/lib/libopencv_cudalegacy.so.4.5.5 /usr/local/lib/libopencv_cudawarping.so.4.5.5 /usr/local/lib/libopencv_optflow.so.4.5.5 /usr/local/lib/libopencv_ximgproc.so.4.5.5 /usr/local/lib/libopencv_video.so.4.5.5 /usr/local/lib/libopencv_imgcodecs.so.4.5.5 /usr/local/lib/libopencv_objdetect.so.4.5.5 /usr/local/lib/libopencv_calib3d.so.4.5.5 /usr/local/lib/libopencv_dnn.so.4.5.5 /usr/local/lib/libopencv_features2d.so.4.5.5 /usr/local/lib/libopencv_flann.so.4.5.5 /usr/local/lib/libopencv_photo.so.4.5.5 /usr/local/lib/libopencv_cudaimgproc.so.4.5.5 /usr/local/lib/libopencv_cudafilters.so.4.5.5 /usr/local/lib/libopencv_imgproc.so.4.5.5 /usr/local/lib/libopencv_cudaarithm.so.4.5.5 /usr/local/lib/libopencv_core.so.4.5.5 /usr/local/lib/libopencv_cudev.so.4.5.5
No preview for this file type
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
/usr/bin/cmake-gui -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named main
# Build rule for target.
main: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 main
.PHONY : main
# fast build rule for target.
main/fast:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build
.PHONY : main/fast
main.o: main.cpp.o
.PHONY : main.o
# target to build an object file
main.cpp.o:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.o
.PHONY : main.cpp.o
main.i: main.cpp.i
.PHONY : main.i
# target to preprocess a source file
main.cpp.i:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.i
.PHONY : main.cpp.i
main.s: main.cpp.s
.PHONY : main.s
# target to generate assembly for a file
main.cpp.s:
$(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/main.cpp.s
.PHONY : main.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... rebuild_cache"
@echo "... main"
@echo "... edit_cache"
@echo "... main.o"
@echo "... main.i"
@echo "... main.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
# Install script for directory: /home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/build/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
No preview for this file type
#include "faceLandmarks.h"
vector<vector<float>> FaceLandmarks::detect_landmarks(std::string image_path){
Mat input_data_=cv::imread(image_path);
float w_r=float(input_data_.cols)/112.0f;
float h_r=float(input_data_.rows)/112.0f;
Mat input_data;
cv::resize(input_data_,input_data,Size2d(112,112));
input_data.convertTo(input_data, CV_32F);
input_data = input_data /256.0f;
std::vector<std::vector<cv::Mat>> nChannels;
std::vector<cv::Mat> rgbChannels(3);
cv::split(input_data, rgbChannels);
nChannels.push_back(rgbChannels); // NHWC 转NCHW
auto *pvData = malloc(1 * 3 * 112 * 112 *sizeof(float));
int nPlaneSize = 112 * 112;
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane = nChannels[0][c];
memcpy((float *)(pvData) + c * nPlaneSize,\
matPlane.data, nPlaneSize * sizeof(float));
}
auto inTensor = net->getSessionInput(session, NULL);
net->resizeTensor(inTensor, {1, 3, 112,112});
net->resizeSession(session);
auto nchwTensor = new Tensor(inTensor, Tensor::CAFFE);
::memcpy(nchwTensor->host<float>(), pvData, nPlaneSize * 3 * sizeof(float));
inTensor->copyFromHostTensor(nchwTensor);
// //推理
net->runSession(session);
auto output= net->getSessionOutput(session, NULL);
MNN::Tensor feat_tensor(output, output->getDimensionType());
output->copyToHostTensor(&feat_tensor);
vector<vector<float>> landmarks;
for(int idx =0;idx<106;++idx){
float x_= *(feat_tensor.host<float>()+2*idx)*w_r;
float y_= *(feat_tensor.host<float>()+2*idx+1)*h_r;
vector<float> tmp={x_,y_};
landmarks.push_back(tmp);
}
return landmarks;
}
vector<vector<float>> FaceLandmarks::detect_image_landmarks(Mat image){
Mat input_data_=image;
float w_r=float(input_data_.cols)/112.0f;
float h_r=float(input_data_.rows)/112.0f;
Mat input_data;
cv::resize(input_data_,input_data,Size2d(112,112));
input_data.convertTo(input_data, CV_32F);
input_data = input_data /256.0f;
std::vector<std::vector<cv::Mat>> nChannels;
std::vector<cv::Mat> rgbChannels(3);
cv::split(input_data, rgbChannels);
nChannels.push_back(rgbChannels); // NHWC 转NCHW
auto *pvData = malloc(1 * 3 * 112 * 112 *sizeof(float));
int nPlaneSize = 112 * 112;
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane = nChannels[0][c];
memcpy((float *)(pvData) + c * nPlaneSize,\
matPlane.data, nPlaneSize * sizeof(float));
}
auto inTensor = net->getSessionInput(session, NULL);
net->resizeTensor(inTensor, {1, 3, 112,112});
net->resizeSession(session);
auto nchwTensor = new Tensor(inTensor, Tensor::CAFFE);
::memcpy(nchwTensor->host<float>(), pvData, nPlaneSize * 3 * sizeof(float));
inTensor->copyFromHostTensor(nchwTensor);
// //推理
net->runSession(session);
auto output= net->getSessionOutput(session, NULL);
MNN::Tensor feat_tensor(output, output->getDimensionType());
output->copyToHostTensor(&feat_tensor);
vector<vector<float>> landmarks;
for(int idx =0;idx<106;++idx){
float x_= *(feat_tensor.host<float>()+2*idx)*w_r;
float y_= *(feat_tensor.host<float>()+2*idx+1)*h_r;
vector<float> tmp={x_,y_};
landmarks.push_back(tmp);
}
return landmarks;
}
\ No newline at end of file
#include "facecomparison.h"
bool FaceComparison::face_compare(string image1_path,string image2_path){
bool result=false;
cv::Mat image1=cv::imread(image1_path);
cv::Mat image2=cv::imread(image2_path);
if(image1.empty()||image2.empty()){
return false;
}
vector<Bbox> box1=face_det.detect_image(image1);
vector<Bbox> box2=face_det.detect_image(image2);
if(box1.empty()||box2.empty()){
return false;
}
int max_box1=0;
double max_area1=0,max_area2=0;
for(int i=0;i<box1.size();++i){
double tmp_area1=(box1[i].ymax-box1[i].ymin)*(box1[i].xmax-box1[i].xmin);
if(tmp_area1>max_area1){
max_box1=i;
max_area1=tmp_area1;
}
}
Rect rect1=Rect(box1[max_box1].xmin,box1[max_box1].ymin,box1[max_box1].xmax-box1[max_box1].xmin,box1[max_box1].ymax-box1[max_box1].ymin);
Mat face_area1=image1(rect1);
vector<vector<float>> landms1=face_landm.detect_landmarks_image(face_area1);
vector<vector<float>> land1={
{float(landms1[104][0]),float(landms1[104][1])},
{float(landms1[105][0]),float(landms1[105][1])},
{float(landms1[46][0]),float(landms1[46][1])},
{float(landms1[84][0]),float(landms1[84][1])},
{float(landms1[90][0]),float(landms1[90][1])}
};
Mat align_resize_image1=face_rec.preprocess_face(face_area1,land1);
for(int j=0;j<box2.size();++j){
Rect rect2=Rect(box2[j].xmin,box2[j].ymin,box2[j].xmax-box2[j].xmin,box2[j].ymax-box2[j].ymin);
Mat face_area2=image2(rect2);
vector<vector<float>> landms2=face_landm.detect_landmarks_image(face_area2);
vector<vector<float>> land2={
{float(landms2[104][0]),float(landms2[104][1])},
{float(landms2[105][0]),float(landms2[105][1])},
{float(landms2[46][0]),float(landms2[46][1])},
{float(landms2[84][0]),float(landms2[84][1])},
{float(landms2[90][0]),float(landms2[90][1])}
};
Mat align_resize_image2=face_rec.preprocess_face(face_area2,land2);
double samilar_score=face_rec.get_samilar_image(align_resize_image1,align_resize_image2);
if(samilar_score>face_recongnize_thr){
result=true;
}
}
return result;
}
bool FaceComparison::face_compare_image(Mat image1,Mat image2){
bool result=false;
vector<Bbox> box1=face_det.detect_image(image1);
vector<Bbox> box2=face_det.detect_image(image2);
if(box1.empty()||box2.empty()){
return false;
}
int max_box1=0;
double max_area1=0,max_area2=0;
for(int i=0;i<box1.size();++i){
double tmp_area1=(box1[i].ymax-box1[i].ymin)*(box1[i].xmax-box1[i].xmin);
if(tmp_area1>max_area1){
max_box1=i;
max_area1=tmp_area1;
}
}
Rect rect1=Rect(box1[max_box1].xmin,box1[max_box1].ymin,box1[max_box1].xmax-box1[max_box1].xmin,box1[max_box1].ymax-box1[max_box1].ymin);
Mat face_area1=image1(rect1);
vector<vector<float>> landms1=face_landm.detect_landmarks_image(face_area1);
vector<vector<float>> land1={
{float(landms1[104][0]),float(landms1[104][1])},
{float(landms1[105][0]),float(landms1[105][1])},
{float(landms1[46][0]),float(landms1[46][1])},
{float(landms1[84][0]),float(landms1[84][1])},
{float(landms1[90][0]),float(landms1[90][1])}
};
Mat align_resize_image1=face_rec.preprocess_face(face_area1,land1);
for(int j=0;j<box2.size();++j){
Rect rect2=Rect(box2[j].xmin,box2[j].ymin,box2[j].xmax-box2[j].xmin,box2[j].ymax-box2[j].ymin);
Mat face_area2=image2(rect2);
vector<vector<float>> landms2=face_landm.detect_landmarks_image(face_area2);
vector<vector<float>> land2={
{float(landms2[104][0]),float(landms2[104][1])},
{float(landms2[105][0]),float(landms2[105][1])},
{float(landms2[46][0]),float(landms2[46][1])},
{float(landms2[84][0]),float(landms2[84][1])},
{float(landms2[90][0]),float(landms2[90][1])}
};
Mat align_resize_image2=face_rec.preprocess_face(face_area2,land2);
double samilar_score=face_rec.get_samilar_image(align_resize_image1,align_resize_image2);
if(samilar_score>face_recongnize_thr){
result=true;
}
}
return result;
}
\ No newline at end of file
#include "facelandmarks.h"
FaceLandmarks::FaceLandmarks(){
model_init=false;
}
// FaceLandmarks::~FaceLandmarks(){
// pfld_interpreter->releaseModel();
// pfld_interpreter->releaseSession(session);
// }
bool FaceLandmarks::init_model(string model_path){
pfld_interpreter = unique_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));
if(nullptr==pfld_interpreter){
return false;
}
//创建session
MNN::ScheduleConfig schedule_config;
schedule_config.type = MNN_FORWARD_CPU;
schedule_config.numThread = num_thread;
MNN::BackendConfig backend_config;
backend_config.memory = MNN::BackendConfig::Memory_Normal;
backend_config.power = MNN::BackendConfig::Power_Normal;
backend_config.precision = MNN::BackendConfig::Precision_Normal;
schedule_config.backendConfig = &backend_config;
session = pfld_interpreter->createSession(schedule_config);
input_tensor = pfld_interpreter->getSessionInput(session,NULL);
pfld_interpreter->resizeTensor(input_tensor,{1,3,112,112});
pfld_interpreter->resizeSession(session);
//数据预处理
MNN::CV::ImageProcess::Config image_config;
::memcpy(image_config.normal,normal,sizeof(normal));
image_config.sourceFormat = MNN::CV::BGR;
image_config.destFormat = MNN::CV::BGR;
pretreat = shared_ptr<MNN::CV::ImageProcess>(MNN::CV::ImageProcess::create(image_config));
// pretreat->setMatrix(transforms);
model_init = true;
}
vector<vector<float>> FaceLandmarks::detect_landmarks(string image_path){
Mat image = cv::imread(image_path);
vector<vector<float>> landmarks;
int width = image.cols;
int height = image.rows;
Mat resize_image;
cv::resize(image,resize_image,Size(112,112));
float ws = float(width)/float(112.0);
float hs = float(height)/float(112.0);
pretreat->convert(resize_image.data,112,112,0,input_tensor);
pfld_interpreter->runSession(session);
auto output_landmark = pfld_interpreter->getSessionOutput(session, NULL);
MNN::Tensor landmark_tensor(output_landmark, output_landmark->getDimensionType());
output_landmark->copyToHostTensor(&landmark_tensor);
float* result = landmark_tensor.host<float>();
for (int i = 0; i < 106; ++i) {
vector<float> curr_pt={result[2 * i + 0] * ws,result[2 * i + 1] * hs};
landmarks.push_back(curr_pt);
}
return landmarks;
}
vector<vector<float>> FaceLandmarks::detect_landmarks_image(Mat image){
vector<vector<float>> landmarks;
int width = image.cols;
int height = image.rows;
Mat resize_image;
cv::resize(image,resize_image,Size(112,112));
float ws = float(width)/float(112.0);
float hs = float(height)/float(112.0);
pretreat->convert(resize_image.data,112,112,0,input_tensor);
pfld_interpreter->runSession(session);
auto output_landmark = pfld_interpreter->getSessionOutput(session, NULL);
MNN::Tensor landmark_tensor(output_landmark, output_landmark->getDimensionType());
output_landmark->copyToHostTensor(&landmark_tensor);
float* result = landmark_tensor.host<float>();
for (int i = 0; i < 106; ++i) {
vector<float> curr_pt={result[2 * i + 0] * ws,result[2 * i + 1] * hs};
landmarks.push_back(curr_pt);
}
return landmarks;
}
\ No newline at end of file
#include "facerecognize.h"
FaceRecognize::FaceRecognize(){}
// FaceRecognize::~FaceRecognize(){
// net->releaseModel();
// net->releaseSession(session1);
// net->releaseSession(session2);
// }
bool FaceRecognize::init_model(string model_path){
net=shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));
ScheduleConfig config;
config.numThread=num_thread;
config.type=MNN_FORWARD_CPU;
session1 = net->createSession(config);
session2 = net->createSession(config);
input_tensor1 = net->getSessionInput(session1,NULL);
input_tensor2 = net->getSessionInput(session2,NULL);
net->resizeTensor(input_tensor1,{1,3,input_size[1],input_size[0]});
net->resizeSession(session1);
net->resizeTensor(input_tensor2,{1,3,input_size[1],input_size[0]});
net->resizeSession(session2);
//数据预处理
MNN::CV::ImageProcess::Config image_config;
image_config.sourceFormat = MNN::CV::BGR;
image_config.destFormat = MNN::CV::BGR;
::memcpy(image_config.mean,mean,sizeof(mean));
::memcpy(image_config.normal,normal,sizeof(normal));
pretreat = shared_ptr<MNN::CV::ImageProcess>(MNN::CV::ImageProcess::create(image_config));
model_init = true;
return model_init;
}
cv::Mat FaceRecognize::meanAxis0(const cv::Mat &src)
{
int num = src.rows;
......@@ -168,61 +205,52 @@ double FaceRecognize::cos_distance(const vector<double>& base, const vector<doub
return simility;
}
double FaceRecognize::get_samilar(Mat image1,Mat image2){
double FaceRecognize::get_samilar_image(Mat image1,Mat image2){
cv::resize(image1,image1,Size2d(input_size[0],input_size[1]));
cv::resize(image2,image2,Size2d(input_size[0],input_size[1]));
image1.convertTo(image1, CV_32F);
image2.convertTo(image2, CV_32F);
image1 = (image1-mean)*scale;
image2 = (image2-mean)*scale;
pretreat->convert(image1.data,input_size[0],input_size[1],0,input_tensor1);
pretreat->convert(image2.data,input_size[0],input_size[1],0,input_tensor2);
//推理
net->runSession(session1);
auto output1= net->getSessionOutput(session1, NULL);
//推理
net->runSession(session2);
auto output2= net->getSessionOutput(session2, NULL);
MNN::Tensor feat_tensor1(output1, output1->getDimensionType());
MNN::Tensor feat_tensor2(output2, output2->getDimensionType());
output1->copyToHostTensor(&feat_tensor1);
output2->copyToHostTensor(&feat_tensor2);
auto feature1 = feat_tensor1.host<float>();
auto feature2 = feat_tensor2.host<float>();
std::vector<std::vector<cv::Mat>> nChannels1;
std::vector<cv::Mat> rgbChannels1(3);
cv::split(image1, rgbChannels1);
nChannels1.push_back(rgbChannels1); // NHWC 转NCHW
auto *pvData1 = malloc(1 * 3 * input_size[1] * input_size[0] *sizeof(float));
int nPlaneSize = input_size[0] * input_size[1];
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane1 = nChannels1[0][c];
memcpy((float *)(pvData1) + c * nPlaneSize,\
matPlane1.data, nPlaneSize * sizeof(float));
vector<double> v1,v2;
for(int i=0;i<int(feat_tensor1.size()/4);i++){
v1.push_back((double)feature1[i]);
v2.push_back((double)feature2[i]);
}
auto inTensor1 = net->getSessionInput(session1, NULL);
net->resizeTensor(inTensor1, {1, 3, input_size[1],input_size[0]});
net->resizeSession(session1);
double cos_score=cos_distance(v1,v2);
return cos_score;
}
auto nchwTensor1 = new Tensor(inTensor1, Tensor::CAFFE);
::memcpy(nchwTensor1->host<float>(), pvData1, nPlaneSize * 3 * sizeof(float));
inTensor1->copyFromHostTensor(nchwTensor1);
// //推理
double FaceRecognize::get_samilar(string image_path1,string image_path2){
Mat image1 = cv::imread(image_path1);
Mat image2 = cv::imread(image_path2);
cv::resize(image1,image1,Size2d(input_size[0],input_size[1]));
cv::resize(image2,image2,Size2d(input_size[0],input_size[1]));
pretreat->convert(image1.data,input_size[0],input_size[1],0,input_tensor1);
pretreat->convert(image2.data,input_size[0],input_size[1],0,input_tensor2);
//推理
net->runSession(session1);
auto output1= net->getSessionOutput(session1, NULL);
std::vector<std::vector<cv::Mat>> nChannels2;
std::vector<cv::Mat> rgbChannels2(3);
cv::split(image2, rgbChannels2);
nChannels2.push_back(rgbChannels2); // NHWC 转NCHW
auto *pvData2 = malloc(1 * 3 * input_size[1] * input_size[0] *sizeof(float));
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane2 = nChannels2[0][c];
memcpy((float *)(pvData2) + c * nPlaneSize,\
matPlane2.data, nPlaneSize * sizeof(float));
}
auto inTensor2 = net->getSessionInput(session2, NULL);
net->resizeTensor(inTensor2, {1, 3, input_size[1],input_size[0]});
net->resizeSession(session2);
auto nchwTensor2 = new Tensor(inTensor2, Tensor::CAFFE);
::memcpy(nchwTensor2->host<float>(), pvData2, nPlaneSize * 3 * sizeof(float));
inTensor2->copyFromHostTensor(nchwTensor2);
// //推理
//推理
net->runSession(session2);
auto output2= net->getSessionOutput(session2, NULL);
MNN::Tensor feat_tensor1(output1, MNN::Tensor::CAFFE);
MNN::Tensor feat_tensor2(output2, MNN::Tensor::CAFFE);
MNN::Tensor feat_tensor1(output1, output1->getDimensionType());
MNN::Tensor feat_tensor2(output2, output2->getDimensionType());
output1->copyToHostTensor(&feat_tensor1);
output2->copyToHostTensor(&feat_tensor2);
auto feature1 = feat_tensor1.host<float>();
......@@ -236,4 +264,3 @@ double FaceRecognize::get_samilar(Mat image1,Mat image2){
double cos_score=cos_distance(v1,v2);
return cos_score;
}
......
#ifndef FACECOMPARISON_H
#define FACECOMPARISON_H
#include "facerecognize.h"
#include "retinaface.h"
#include "facelandmarks.h"
class FaceComparison{
public:
// 人脸检测阈值
float confidence_threshold = 0.2;
// 是否进行人脸外廓
bool is_bbox_process = true;
// 人脸比对相似度阈值
float face_recongnize_thr = 0.5;
//线程个数
int num_thread = 2;
//接口
bool face_compare(string image_path1,string image_path2);
bool face_compare_image(Mat image1,Mat image2);
private:
RetinaFace face_det;
FaceLandmarks face_landm;
FaceRecognize face_rec;
public:
FaceComparison(){};
FaceComparison(string face_det_model,string face_landm_model,string face_rec_model){
face_det = RetinaFace(face_det_model);
face_det.confidence_threshold = confidence_threshold;
face_det.is_bbox_process = is_bbox_process;
face_det.num_thread=num_thread;
face_landm =FaceLandmarks(face_landm_model);
face_landm.num_thread=num_thread;
face_rec =FaceRecognize(face_rec_model);
face_rec.num_thread=num_thread;
}
};
#endif
\ No newline at end of file
#ifndef FACELANDMARKS_H
#define FACELANDMARKS_H
#include <opencv2/opencv.hpp>
#include<MNN/Interpreter.hpp>
#include<MNN/ImageProcess.hpp>
#include<iostream>
#include<memory>
using namespace std;
using namespace cv;
using namespace MNN;
class FaceLandmarks{
private:
vector<float> input_size={112,112};
std::shared_ptr<MNN::Interpreter> net;
Session *session = nullptr;
ScheduleConfig config;
public:
FaceLandmarks(){};
FaceLandmarks(string model_path){
net = std::shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));//创建解释器
config.numThread = 8;
config.type = MNN_FORWARD_CPU;
session = net->createSession(config);//创建session
}
int num_thread = 2;
public:
FaceLandmarks();
// ~FaceLandmarks();
FaceLandmarks(string model_path){
init_model(model_path);
};
bool init_model(string model_path);
vector<vector<float>> detect_landmarks(string image_path);
vector<vector<float>> detect_image_landmarks(cv::Mat image);
vector<vector<float>> detect_landmarks_image(Mat image);
private:
bool model_init;
float normal[3]={1.0f/256.f,1.0f/256.f,1.0f/256.f};
std::shared_ptr<MNN::Interpreter> pfld_interpreter = nullptr;
MNN::Session* session = nullptr;
MNN::Tensor* input_tensor = nullptr;
shared_ptr<MNN::CV::ImageProcess> pretreat;
};
#endif
\ No newline at end of file
#endif
......
......@@ -4,29 +4,40 @@
#include<MNN/Interpreter.hpp>
#include<MNN/ImageProcess.hpp>
#include<iostream>
#include<memory>
using namespace MNN;
using namespace std;
using namespace cv;
class FaceRecognize{
public:
int num_thread = 2;
// 推理
double get_samilar(string image_path1,string image_path2);
double get_samilar_image(Mat image1,Mat image2);
private:
vector<float> input_size={112,112};
vector<int> input_size={112,112};
bool model_init=false;
std::shared_ptr<MNN::Interpreter> net;
Session *session1 = nullptr;
Session *session2 = nullptr;
ScheduleConfig config;
Scalar mean=Scalar(127.5f,127.5f,127.5f);
float scale = 1.0f/127.5f;
MNN::Tensor* input_tensor1=nullptr;
MNN::Tensor* input_tensor2=nullptr;
shared_ptr<MNN::CV::ImageProcess> pretreat;
float mean[3]={127.5f,127.5f,127.5f};
float normal[3] = {1.0f/127.5f,1.0f/127.5f,1.0f/127.5f};
public:
FaceRecognize(){};
FaceRecognize();
// ~FaceRecognize();
FaceRecognize(string model_path){
net = std::shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));//创建解释器
config.numThread = 8;
config.type = MNN_FORWARD_CPU;
session1 = net->createSession(config);//创建session
session2 = net->createSession(config);//创建session
init_model(model_path);
}
bool init_model(string model_path);
//预处理
cv::Mat meanAxis0(const cv::Mat &src);
cv::Mat elementwiseMinus(const cv::Mat &A,const cv::Mat &B);
......@@ -36,7 +47,5 @@ class FaceRecognize{
Mat preprocess_face(Mat image,vector<vector<float>> land);
double getMold(const vector<double>& vec);
double cos_distance(const vector<double>& base, const vector<double>& target);
// 推理
double get_samilar(Mat image1,Mat image2);
};
#endif
\ No newline at end of file
......
......@@ -4,6 +4,7 @@
#include<MNN/Interpreter.hpp>
#include<MNN/ImageProcess.hpp>
#include<iostream>
#include<memory>
using namespace MNN;
using namespace std;
......@@ -29,24 +30,26 @@ class RetinaFace{
public:
float confidence_threshold = 0.5;
bool is_bbox_process=true;
int num_thread = 2;
private:
bool use_gpu=true;
vector<float> input_size={640,640};
public:
bool model_init=false;
vector<int> input_size={640,640};
vector<float> variances={0.1,0.2};
Scalar mean = Scalar(104.0f, 117.0f, 123.0f);
float mean[3] = {104.0f, 117.0f, 123.0f};
float keep_top_k = 100;
float nms_threshold = 0.4;
float resize_scale = 1.0;
std::shared_ptr<MNN::Interpreter> net;
Session *session = nullptr;
ScheduleConfig config;
MNN::Tensor* input_tensor=nullptr;
shared_ptr<MNN::CV::ImageProcess> pretreat;
vector<vector<float>> anchors;
private:
// 生成anchors
vector<vector<float>> priorBox(vector<float> image_size);
vector<vector<float>> priorBox(vector<int> image_size);
// 解析bounding box landmarks 包含置信度
vector<Bbox> decode(float *loc,float *score,float *pre,vector<vector<float>> priors,vector<float> variances);
// 解析landmarks
......@@ -60,14 +63,12 @@ class RetinaFace{
public:
RetinaFace(){};
RetinaFace();
// ~RetinaFace();
RetinaFace(string model_path){
net = std::shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));//创建解释器
config.numThread = 8;
config.type = MNN_FORWARD_CPU;
session = net->createSession(config);//创建session
anchors=priorBox(input_size);
init_model(model_path);
}
bool init_model(string model_path);
// 推理
vector<Bbox> detect(string image_path);
......
No preview for this file type
#include "faceLandmarks.h"
#include "facecomparison.h"
int main(){
FaceLandmarks face_landmarks1 = FaceLandmarks("/home/situ/qfs/sdk_project/gitlab_demo/face_recognize_mnn/model/det_landmarks_106_v0.0.1.mnn");
vector<string> filenames;
cv::glob("/home/situ/图片/img3", filenames, false);
for(auto path:filenames){
// FaceLandmarks face_landmarks1 = FaceLandmarks("/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn2/model/det_landmarks_106_v0.0.1.mnn");
// vector<string> filenames;
// cv::glob("/home/situ/图片/img3", filenames, false);
// for(auto path:filenames){
// cout<<path<<endl;
Mat img1 =cv::imread(path);
auto landmarks1 = face_landmarks1.detect_landmarks(path);
for(auto landm:landmarks1){
cv::circle(img1,Point2d(landm[0],landm[1]),2,Scalar(255,0,0));
}
cv::imshow("img",img1);
cv::waitKey(0);
}
// // cout<<path<<endl;
// Mat img1 =cv::imread(path);
// auto landmarks1 = face_landmarks1.detect_landmarks(path);
// for(auto landm:landmarks1){
// cv::circle(img1,Point2d(landm[0],landm[1]),2,Scalar(255,0,0));
// }
// cv::imshow("img",img1);
// cv::waitKey(0);
// }
// Mat image1 = cv::imread("/home/situ/图片/4.jpg");
// Mat image2 = cv::imread("/home/situ/图片/img3/1.jpg");
// string face_det_model = "/home/situ/qfs/sdk_project/face_recognize_mnn/model/mnn/det_face_retina_mnn_1.0.0_v0.1.1.mnn";
// string face_landm_model = "/home/situ/qfs/sdk_project/face_recognize_mnn/model/mnn/det_landmarks_106_v0.0.1.mnn";
// string face_rec_model = "/home/situ/qfs/mobile_face_recognize/models/cls_face_mnn_1.0.0_v0.1.0.mnn";
Mat image1 = cv::imread("/data/face_recognize/pipeline_test/35326a760af111ec9f2300163e772630/310cardImageContent163047910320427.jpg");
Mat image2 = cv::imread("/data/face_recognize/pipeline_test/35326a760af111ec9f2300163e772630/310faceImageContent163047910353714.jpg");
string face_det_model = "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/model/det_face_retina_mnn_1.0.0_v0.1.1.mnn";
string face_landm_model = "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/model/det_landmarks_106_v0.0.1.mnn";
// string face_rec_model = "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/model/cls_face_mnn_1.0.0_v0.0.2.mnn";
string face_rec_model = "/home/situ/qfs/sdk_project/mnn_projects/face_recognize_mnn/model/cls_face_mnn_1.0.0_v0.1.1.mnn";
// FaceComparison face_rec = FaceComparison(face_det_model,face_landm_model,face_rec_model);
// bool result = face_rec.face_compare("/home/situ/图片/2.png","/home/situ/图片/2.png");
// cout<<result<<endl;
FaceComparison face_rec = FaceComparison(face_det_model,face_landm_model,face_rec_model);
bool result = face_rec.face_compare_image(image1,image2);
cout<<result<<endl;
// string model_path = "/home/situ/qfs/sdk_project/mnn_projects/face_retinaface_mnn/det_face_retina_mnn_1.0.0_v0.1.1.mnn";
// RetinaFace face_det = RetinaFace(model_path.c_str());
// Mat image = cv::imread("/home/situ/图片/2.png");
// vector<Bbox> result = face_det.detect_image(image);
// for(auto res:result){
// cv::rectangle(image,cv::Rect(res.xmin,res.ymin,res.xmax-res.xmin,res.ymax-res.ymin),Scalar(0,255,0),2);
// }
// cv::imshow("image",image);
// cv::waitKey(0);
return 0;
}
......
No preview for this file type
No preview for this file type
#include "retinaface.h"
RetinaFace::RetinaFace(){}
// RetinaFace::~RetinaFace(){
// net->releaseModel();
// net->releaseSession(session);
// }
bool RetinaFace::init_model(string model_path){
net = std::shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile(model_path.c_str()));//创建解释器
if(nullptr==net){
return false;
}
ScheduleConfig config;
config.numThread = num_thread;
config.type = MNN_FORWARD_CPU;
session = net->createSession(config);//创建session
anchors=priorBox(input_size); //生成建议框
input_tensor = net->getSessionInput(session,NULL);
net->resizeTensor(input_tensor,{1,3,input_size[1],input_size[0]});
net->resizeSession(session);
//数据预处理
MNN::CV::ImageProcess::Config image_config;
image_config.sourceFormat = MNN::CV::BGR;
image_config.destFormat = MNN::CV::BGR;
::memcpy(image_config.mean,mean,sizeof(mean));
pretreat = shared_ptr<MNN::CV::ImageProcess>(CV::ImageProcess::create(image_config));
model_init = true;
}
// 生成anchors
vector<vector<float>> RetinaFace::priorBox(vector<float> image_size){
vector<vector<float>> RetinaFace::priorBox(vector<int> image_size){
vector<int> tmp1={16,32};
vector<int> tmp2={64,128};
vector<int> tmp3={256,512};
......@@ -171,27 +204,8 @@ vector<Bbox> RetinaFace::detect(string image_path){
float w_r=float(input_size[0])/float(image.cols);
float h_r=float(input_size[1])/float(image.rows);
Mat input_data;
cv::resize(image,input_data,Size(input_size[0],input_size[1]));
input_data = input_data-mean;
input_data.convertTo(input_data, CV_32F);
std::vector<std::vector<cv::Mat>> nChannels;
std::vector<cv::Mat> rgbChannels(3);
cv::split(input_data, rgbChannels);
nChannels.push_back(rgbChannels); // NHWC 转NCHW
auto *pvData = malloc(1 * 3 * input_size[1] * input_size[0] *sizeof(float));
int nPlaneSize = input_size[0] * input_size[1];
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane = nChannels[0][c];
memcpy((float *)(pvData) + c * nPlaneSize,\
matPlane.data, nPlaneSize * sizeof(float));
}
auto inTensor = net->getSessionInput(session, NULL);
net->resizeTensor(inTensor, {1, 3, input_size[1],input_size[0]});
net->resizeSession(session);
auto nchwTensor = new Tensor(inTensor, Tensor::CAFFE);
::memcpy(nchwTensor->host<float>(), pvData, nPlaneSize * 3 * sizeof(float));
inTensor->copyFromHostTensor(nchwTensor);
cv::resize(image,input_data,Size(input_size[1],input_size[0]));
pretreat->convert(input_data.data,input_size[0],input_size[1],0,input_tensor);
// //推理
net->runSession(session);
auto output0= net->getSessionOutput(session, "output0");
......@@ -222,36 +236,20 @@ vector<Bbox> RetinaFace::detect(string image_path){
vector<Bbox> RetinaFace::detect_image(Mat image){
float w_r=float(input_size[0])/float(image.cols);
float h_r=float(input_size[1])/float(image.rows);
Mat input_data;
cv::resize(image,input_data,Size(input_size[0],input_size[1]));
input_data = input_data-mean;
input_data.convertTo(input_data, CV_32F);
std::vector<std::vector<cv::Mat>> nChannels;
std::vector<cv::Mat> rgbChannels(3);
cv::split(input_data, rgbChannels);
nChannels.push_back(rgbChannels); // NHWC 转NCHW
auto *pvData = malloc(1 * 3 * input_size[1] * input_size[0] *sizeof(float));
int nPlaneSize = input_size[0] * input_size[1];
for (int c = 0; c < 3; ++c)
{
cv::Mat matPlane = nChannels[0][c];
memcpy((float *)(pvData) + c * nPlaneSize,\
matPlane.data, nPlaneSize * sizeof(float));
}
auto inTensor = net->getSessionInput(session, NULL);
net->resizeTensor(inTensor, {1, 3, input_size[1],input_size[0]});
net->resizeSession(session);
auto nchwTensor = new Tensor(inTensor, Tensor::CAFFE);
::memcpy(nchwTensor->host<float>(), pvData, nPlaneSize * 3 * sizeof(float));
inTensor->copyFromHostTensor(nchwTensor);
cv::resize(image,input_data,Size(input_size[1],input_size[0]));
pretreat->convert(input_data.data,input_size[0],input_size[1],0,input_tensor);
// //推理
net->runSession(session);
auto output0= net->getSessionOutput(session, "output0");
auto output1= net->getSessionOutput(session, "output1");
auto output2= net->getSessionOutput(session, "output2");
MNN::Tensor feat_tensor0(output0, MNN::Tensor::CAFFE);
MNN::Tensor feat_tensor1(output1, MNN::Tensor::CAFFE);
MNN::Tensor feat_tensor2(output2, MNN::Tensor::CAFFE);
MNN::Tensor feat_tensor0(output0, output0->getDimensionType());
MNN::Tensor feat_tensor1(output1, output1->getDimensionType());
MNN::Tensor feat_tensor2(output2, output2->getDimensionType());
output0->copyToHostTensor(&feat_tensor0);
output1->copyToHostTensor(&feat_tensor1);
output2->copyToHostTensor(&feat_tensor2);
......@@ -261,7 +259,6 @@ vector<Bbox> RetinaFace::detect_image(Mat image){
vector<Bbox> result_boxes = decode(loc,score,landm,anchors,variances);
vector<Bbox> results=select_score(result_boxes,confidence_threshold,w_r,h_r);
nms_cpu(results,nms_threshold);
if(is_bbox_process){
vector<Bbox> res_bboxes=bbox_process(results,image.cols,image.rows);
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!