美文网首页Android
SeetaFace2 Android 平台编译

SeetaFace2 Android 平台编译

作者: 他晓 | 来源:发表于2021-12-01 19:52 被阅读0次

SeetaFace2 Android 平台编译

欢迎入群交流

QQ群:686809487

项目地址:https://github.com/seetafaceengine/SeetaFace2

SeetaFace2 人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 FaceRecognizer。面部关键点定位支持 5 点81 点定位,两个辅助模块 FaceTrackerQualityAssessor 用于人脸跟踪和质量评估。

Android 平台编译说明

安装 ndk 编译工具

https://developer.android.com/ndk/downloads 下载 ndk,并安装到:/home/android-ndk

设置环境变量:

export ANDROID_NDK=/home/android-ndk 
linux 下编译
cd SeetaFace2
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=install \
 -DCMAKE_BUILD_TYPE=MinSizeRel \
 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
 -DANDROID_ABI="armeabi-v7a" \
 -DANDROID_PLATFORM=android-24 \
 -DBUILD_EXAMPLE=OFF # 如果有OpenCV,则设置为ON
cmake --build . --config MinSizeRel
armeabi-v7a
cmake .. -DCMAKE_INSTALL_PREFIX=install \
 -DCMAKE_BUILD_TYPE=MinSizeRel \
 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
 -DANDROID_ABI="armeabi-v7a with NEON" \
 -DBUILD_EXAMPLE=OFF
arm64-v8a
cmake .. -DCMAKE_INSTALL_PREFIX=install \
 -DCMAKE_BUILD_TYPE=MinSizeRel \
 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
 -DANDROID_ABI="arm64-v8a" \
 -DBUILD_EXAMPLE=OFF 
x86_64
cmake .. -DCMAKE_INSTALL_PREFIX=install \
 -DCMAKE_BUILD_TYPE=MinSizeRel \
 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
 -DANDROID_ABI="x86_64" \
 -DBUILD_EXAMPLE=OFF  
x86
cmake .. -DCMAKE_INSTALL_PREFIX=install \
 -DCMAKE_BUILD_TYPE=MinSizeRel \
 -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
 -DANDROID_ABI="x86" \
 -DBUILD_EXAMPLE=OFF  
安装

cmake --build . --config MinSizeRel --target install/strip
  • 参数说明:https://developer.android.google.cn/ndk/guides/cmake

    • ANDROID_ABI: 可取下列值: 目标 ABI。如果未指定目标 ABI,则 CMake 默认使用 armeabi-v7a。

      有效的目标名称为:

      • armeabi:带软件浮点运算并基于 ARMv5TE 的 CPU。

      • armeabi-v7a:带硬件 FPU 指令 (VFPv3_D16) 并基于 ARMv7 的设备。

      • armeabi-v7a with NEON:与 armeabi-v7a 相同,但启用 NEON 浮点指令。这相当于设置 -DANDROID_ABI=armeabi-v7a 和 -DANDROID_ARM_NEON=ON。

      • arm64-v8a:ARMv8 AArch64 指令集。

      • x86:IA-32 指令集。

      • x86_64 - 用于 x86-64 架构的指令集。

    • ANDROID_NDK 主机上安装的 NDK 根目录的绝对路径

    • ANDROID_PLATFORM: 如需平台名称和对应 Android 系统映像的完整列表,请参阅 Android NDK 原生 API

    • ANDROID_ARM_MODE

    • ANDROID_ARM_NEON

    • ANDROID_STL: 指定 CMake 应使用的 STL。默认情况下,CMake 使用 c++_static。

      • c++_shared: 使用 libc++ 动态库

      • c++_static: 使用 libc++ 静态库

      • none: 没有 C++ 库支持

      • system: 用系统的 STL

编译报错
fatal: No names found, cannot describe anything.
-- == BUILD_VERSION: a587833
CMake Error at SeetaNet/CMakeLists.txt:44 (target_link_options):
 Unknown CMake command "target_link_options".


-- Configuring incomplete, errors occurred!
See also "/home/build/workspace/hqq/SeetaFace2/build/CMakeFiles/CMakeOutput.log".

Unknown CMake command "target_link_options".
在这里插入图片描述

解决方案:https://github.com/seetafaceengine/SeetaFace2/issues/108

将cmake 版本升级,如何升级百度哇

编译成功

编译出的动态库在此目录下

SeetaFace2/build/install/

在这里插入图片描述 在这里插入图片描述
模型下载

微信公众号(他晓),关注并转发,谢谢

相关文章

网友评论

    本文标题:SeetaFace2 Android 平台编译

    本文链接:https://www.haomeiwen.com/subject/dhqexrtx.html