diff --git a/.gitignore b/.gitignore index 2b335b1..79e7427 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +model/ *.swp Makefile.Debug Makefile.Release @@ -16,7 +17,6 @@ test.xml CMakeSettings.json build_ modul/ -*/ build-*/ build/ build_android/ @@ -26,7 +26,6 @@ build_unix/ build_windows_msvc/ *.ncb .metadata/ -*~ debug/ bin/ *.class diff --git a/.travis.yml b/.travis.yml index ae0e198..07f8e07 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,8 +11,8 @@ addons: cache: - apt - - directories: - - Package +# - directories: +# - Package compiler: - g++ @@ -70,6 +70,7 @@ before_install: install: - cd ${SOURCE_DIR} + - /bin/bash ci/backgroud_echo.sh & - git clone https://github.com/KangLin/RabbitCommon.git - export RabbitCommon_DIR="`pwd`/RabbitCommon" - bash ci/build-install-tools.sh > /dev/null diff --git a/README.md b/README.md index c71c332..a490452 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ ### 支持平台 - + [x] windows + + [x] windows (windows xp 及已后) + [x] linux - + [x] android + + [x] android (android 21 及已后) + [ ] mac + [ ] ios + [x] 其它嵌入式平台,可联系本人(QQ:16614119)或你自己移植:) @@ -52,35 +52,35 @@ ### [下载安装包](https://github.com/KangLin/FaceRecognizer/releases/latest) +- windows + - [FaceRecognizer-Setup-v0.0.3.exe](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/FaceRecognizer-Setup-v0.0.3.exe) + Windows安装包,支持 Windows xp 以上系统 + +- android + + [FaceRecognizer_armeabi-v7a_v0.0.3.apk](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/FaceRecognizer_armeabi-v7a_v0.0.3.apk) + - linux - [FaceRecognizer_v0.0.3.tar.gz](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/FaceRecognizer_v0.0.3.tar.gz) AppImage格式的执行程序,可直接运行在linux系统,详见:https://appimage.org/ 使用: 1. 解压。复制FaceRecognizer_v0.0.3.tar.gz到安装目录,然后解压: - mkdir FaceRecognizer - cd FaceRecognizer - cp $DOWNLOAD/FaceRecognizer_v0.0.3.tar.gz . - tar xvfz FaceRecognizer_v0.0.3.tar.gz + mkdir FaceRecognizer + cd FaceRecognizer + cp $DOWNLOAD/FaceRecognizer_v0.0.3.tar.gz . + tar xvfz FaceRecognizer_v0.0.3.tar.gz 2. 安装 - ./install1.sh install FaceRecognizer + ./install1.sh install FaceRecognizer 3. 如果需要,卸载 - ./install1.sh remove FaceRecognizer + ./install1.sh remove FaceRecognizer - ubuntu - [facerecognizer_0.0.3_amd64.deb](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/facerecognizer_0.0.3_amd64.deb) deb 安装包,可用于 Ubuntu - -- windows - - [FaceRecognizer-Setup-v0.0.3.exe](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/FaceRecognizer-Setup-v0.0.3.exe) - Windows安装包,支持 Windows xp 以上系统 - -- android - + [FaceRecognizer_armeabi-v7a_v0.0.3.apk](https://github.com/KangLin/FaceRecognizer/releases/download/v0.0.3/FaceRecognizer_armeabi-v7a_v0.0.3.apk) **注意:**本项目安装包中暂时未打包模型文件,请到相关依赖项目中下载模型文件到一个目录中,然后在程序 菜单->选项->设置模型路径 中指定此目录。 @@ -98,11 +98,12 @@ + [MSYS2/MinGW](http://sourceforge.net/projects/msys2/) + [CMake](http://www.cmake.org/) + 依赖库 - - [必选] Rabbit 公共库: https://github.com/KangLin/RabbitCommon + - [必选] 玉兔公共库: https://github.com/KangLin/RabbitCommon - [可选] SeetaFace2: https://github.com/seetafaceengine/SeetaFace2 - [可选] libyuv: https://github.com/KangLin/libyuv - [可选] ffmpeg: https://ffmpeg.org/ - [可选] opencv: https://opencv.org/ + - [可选] dlib: https://github.com/davisking/dlib ### CMake 配置参数 - [必选] Qt5_DIR: qt 安装位置(指向Qt5Config.cmake的目录,默认为 安装目录/lib/cmake/Qt5)。 @@ -113,9 +114,11 @@ - [可选] SeetaFace_DIR: SeetaFace 库安装位置(指向安装的SeetaFaceConfig.cmake目录,默认为 安装目录/lib/cmake) - [可选] YUV_DIR: libyuv 库安装位置 - [可选] OpenCV_DIR: OpenCV 库安装位置 + - [可选] dlib_DIR: dlib 库安装位置 ### 各平台编译 #### 下载源码 + - 下载本项目源码 git clone --recursive https://github.com/KangLin/FaceRecognizer.git @@ -132,49 +135,53 @@ - 从源码编译或安装可选库 #### linux 平台编译说明 - - 编译 +- 编译 cd FaceRecognizer mkdir build cd build - cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install \ - -DCMAKE_BUILD_TYPE=Release \ - -DQt5_DIR= \ - -DRabbitCommon_DIR= \ - [其它可选 CMake 配置参数] + cmake .. -G"Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX=`pwd`/install \ + -DCMAKE_BUILD_TYPE=Release \ + -DQt5_DIR= \ + -DRabbitCommon_DIR= \ + [其它可选 CMake 配置参数] cmake --build . --config Release - - 安装 - - cmake --build . --config Release --target install +- 安装 + + 安装库和程序 - - 运行例子 - + 把生成库的目录加入到变量 LD_LIBRARY_PATH 中 - - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/bin + cmake --build . --config Release --target install/strip + + + 仅安装程序 - + 拷贝模型文件到程序安装目录下的 model 目录下,也可以在程序运行后指定。 - - SeetaFace 模型文件。模型文件位置详见:https://github.com/seetafaceengine/SeetaFace2 + cmake --build . --config Release --target install-runtime - cd FaceRecognizer - cd build - mkdir model - cp fd_2_00.dat pd_2_00_pts5.dat pd_2_00_pts81.dat . +- 运行例子 + + 把生成库的目录加入到变量 LD_LIBRARY_PATH 中 + + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/bin - + 执行 bin 目录下的程序 + + 拷贝模型文件到程序安装目录下的 model 目录下,也可以在程序运行后指定。 + - SeetaFace 模型文件。模型文件位置详见:https://github.com/seetafaceengine/SeetaFace2 cd FaceRecognizer cd build - cd bin - ./FaceRecognizer + mkdir model + cp fd_2_00.dat pd_2_00_pts5.dat pd_2_00_pts81.dat . + + 执行 bin 目录下的程序 + + cd FaceRecognizer + cd build + cd bin + ./FaceRecognizer #### windows 平台编译说明 - 使用 cmake-gui.exe 工具编译。打开 cmake-gui.exe 配置 - 命令行编译 + 把 cmake 命令所在目录加入到环境变量 PATH 中 + 从开始菜单打开 “VS2015开发人员命令提示”,进入命令行 - - 编译 cd FaceRecognizer @@ -188,8 +195,13 @@ cmake --build . --config Release - 安装 - - cmake --build . --config Release --target install + + 安装库和程序 + + cmake --build . --config Release --target install + + + 仅安装程序 + + cmake --build . --config Release --target install-runtime - 运行例子 + 拷贝模型文件到程序安装目录下的 model 目录下,也可以在程序运行后指定。 @@ -218,31 +230,45 @@ + 编译 - 主机是 linux + + 编译 + + cd FaceRecognizer + mkdir build + cd build + cmake .. -G"Unix Makefiles" \ + -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ + -DANDROID_ABI="armeabi-v7a with NEON" \ + -DANDROID_PLATFORM=android-24 \ + -DQt5_DIR= \ + -DRabbitCommon_DIR= \ + -DYUV_DIR= \ + [其它可选 CMake 配置参数] + cmake --build . --config MinSizeRel + + + 安装 + - 安装库和程序 + + cmake --build . --config MinSizeRel --target install/strip + + - 仅安装程序 + + cmake --build . --config MinSizeRel --target install-runtime - cd FaceRecognizer - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ - -DANDROID_ABI="armeabi-v7a with NEON" \ - -DANDROID_PLATFORM=android-24 \ - -DQt5_DIR= \ - -DRabbitCommon_DIR= \ - -DYUV_DIR= \ - [其它可选 CMake 配置参数] - cmake --build . --config Release - cmake --build . --config Release --target install - cmake --build . --config Release --target APK + + 生成 APK + + cmake --build . --config MinSizeRel --target APK - 主机是 windows - - windows 控制台 - + + windows 控制台 + - 编译 + cd FaceRecognizer mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=%cd%\android-build ^ - -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ^ + -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel ^ -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%/build/cmake/android.toolchain.cmake ^ -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe ^ -DANDROID_ABI=arm64-v8a ^ @@ -252,29 +278,40 @@ -DRabbitCommon_DIR= ^ -DYUV_DIR= ^ [其它可选 CMake 配置参数] - cmake --build . --config Release - cmake --build . --config Release --target install - cmake --build . --config Release --target APK + cmake --build . --config MinSizeRel + + - 安装 + + 安装库和程序 + + cmake --build . --config MinSizeRel --target install/strip + + + 仅安装程序 + + cmake --build . --config MinSizeRel --target install-runtime - - msys2 或 cygwin + + 生成 APK + + cmake --build . --config MinSizeRel --target APK + + + msys2 或 cygwin - cd FaceRecognizer - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ - -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ - -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe \ - -DANDROID_ABI=arm64-v8a \ - -DANDROID_ARM_NEON=ON \ - -DANDROID_PLATFORM=android-24 \ - -DQt5_DIR= \ - -DRabbitCommon_DIR= \ - -DYUV_DIR= \ - [其它可选 CMake 配置参数] - cmake --build . --config Release - cmake --build . --config Release --target install - cmake --build . --config Release --target APK + cd FaceRecognizer + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ + -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ + -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe \ + -DANDROID_ABI=arm64-v8a \ + -DANDROID_ARM_NEON=ON \ + -DANDROID_PLATFORM=android-24 \ + -DQt5_DIR= \ + -DRabbitCommon_DIR= \ + -DYUV_DIR= \ + [其它可选 CMake 配置参数] + cmake --build . --config MinSizeRel + cmake --build . --config MinSizeRel --target install/strip + cmake --build . --config MinSizeRel --target APK - CMake for android 参数说明:https://developer.android.google.cn/ndk/guides/cmake + ANDROID_ABI: 可取下列值: diff --git a/Src/ImageTool.cpp b/Src/ImageTool.cpp index f1a06ae..7585a27 100644 --- a/Src/ImageTool.cpp +++ b/Src/ImageTool.cpp @@ -32,10 +32,6 @@ CImageTool::CImageTool(QObject *parent) : { } -CImageTool::~CImageTool() -{ -} - //设置日志的回调函数 void Log(void*, int, const char* fmt, va_list vl) { diff --git a/Src/ImageTool.h b/Src/ImageTool.h index d38b87c..ea9d5e7 100644 --- a/Src/ImageTool.h +++ b/Src/ImageTool.h @@ -30,10 +30,18 @@ class FACERECOGNIZER_EXPORT CImageTool : public QObject { Q_OBJECT public: - explicit CImageTool(QObject *parent = 0); - ~CImageTool(); + explicit CImageTool(QObject *parent = nullptr); public: + static void YUV420_2_RGB(unsigned char* pYUV, unsigned char* pRGB, int width, int height); + static QImage ConverFormatToRGB888(const QVideoFrame &frame); + +#if HAVE_LIBYUV + static QImage LibyuvConverFormatToRGB888(const QVideoFrame &frame); +#endif +#if HAVE_OPENCV + static QImage OpenCVConverFormatToRGB888(const QVideoFrame &frame); +#endif #ifdef HAVE_FFMPEG //设置ffmpeg日志输出 static int SetFFmpegLog(); @@ -73,17 +81,6 @@ class FACERECOGNIZER_EXPORT CImageTool : public QObject /*[in]*/ AVPixelFormat outPixelFormat);/** 转换后的帧的格式 */ #endif -public: - static void YUV420_2_RGB(unsigned char* pYUV, unsigned char* pRGB, int width, int height); - static QImage ConverFormatToRGB888(const QVideoFrame &frame); - -#if HAVE_LIBYUV - static QImage LibyuvConverFormatToRGB888(const QVideoFrame &frame); -#endif -#if HAVE_OPENCV - static QImage OpenCVConverFormatToRGB888(const QVideoFrame &frame); -#endif - signals: public slots: diff --git a/Update/update_android.xml b/Update/update_android.xml index 20977cc..c4fbe6f 100644 --- a/Update/update_android.xml +++ b/Update/update_android.xml @@ -9,5 +9,5 @@ armv7 - v0.2.6 + v0.0.3 diff --git a/appveyor.yml b/appveyor.yml index 02506b4..c9559e0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ #TODO: Change version -version: 'v0..{build}' +version: 'v0.0..{build}' environment: matrix: @@ -22,28 +22,28 @@ environment: TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.10\msvc2015 BUILD_ARCH: x86 - DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.0/windows_msvc14_x86.tar.gz + DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.2/windows_msvc14_x86.tar.gz - BUILD_TARGERT: windows_msvc GENERATORS: "Visual Studio 14 2015 Win64" TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.10\msvc2015_64 BUILD_ARCH: x64 - DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.0/windows_msvc14_x64.tar.gz + DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.2/windows_msvc14_x64.tar.gz - BUILD_TARGERT: windows_msvc GENERATORS: "Visual Studio 14 2015" TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.6\msvc2015 BUILD_ARCH: x86 - DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.0/windows_msvc14_x86.tar.gz + DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.2/windows_msvc14_x86.tar.gz - BUILD_TARGERT: windows_msvc GENERATORS: "Visual Studio 14 2015 Win64" TOOLCHAIN_VERSION: 14 QT_ROOT: C:\Qt\5.6\msvc2015_64 BUILD_ARCH: x64 - DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.0/windows_msvc14_x64.tar.gz + DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.2/windows_msvc14_x64.tar.gz ##### msvc 2017 ######## - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 @@ -53,7 +53,7 @@ environment: QT_ROOT: C:\Qt\5.12\msvc2017 BUILD_ARCH: x86 STATIC: ON - DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.0/windows_msvc15_x86.tar.gz + DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.2/windows_msvc15_x86.tar.gz - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 GENERATORS: "Visual Studio 15 2017 Win64" @@ -153,7 +153,7 @@ test: off deploy: - provider: GitHub #release: FaceRecognizer$(appveyor_build_version) - description: 'Release FaceRecognizer $(APPVEYOR_REPO_TAG_NAME) on windows' + #description: 'Release FaceRecognizer $(APPVEYOR_REPO_TAG_NAME) on windows' #token : https://github.com/settings/tokens #password encrypt: https://ci.appveyor.com/tools/encrypt auth_token: @@ -161,6 +161,7 @@ deploy: #artifact: FaceRecognizer$(BUILD_TARGERT)$(TOOLCHAIN_VERSION)_$(BUILD_ARCH)_$(QT_VERSION)_$(appveyor_build_version) #draft: true #prerelease: true + force_update: true on: BUILD_TARGERT: windows_msvc TOOLCHAIN_VERSION: 14 diff --git a/build_android.sh b/build_android.sh index 735b47a..1cd9d66 100755 --- a/build_android.sh +++ b/build_android.sh @@ -57,14 +57,14 @@ fi cd build cmake .. -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \ -DANDROID_ABI="armeabi-v7a with NEON" \ -DANDROID_PLATFORM=android-18 ${PARA} -cmake --build . --config Release -- -j`cat /proc/cpuinfo |grep 'cpu cores' |wc -l` +cmake --build . --config MinSizeRel -- -j`cat /proc/cpuinfo |grep 'cpu cores' |wc -l` -cmake --build . --config Release --target install # -- -j`cat /proc/cpuinfo |grep 'cpu cores' |wc -l` -cmake --build . --config Release --target APK +cmake --build . --config MinSizeRel --target install-runtime # -- -j`cat /proc/cpuinfo |grep 'cpu cores' |wc -l` +cmake --build . --config MinSizeRel --target APK cd .. diff --git a/ci/backgroud_echo.sh b/ci/backgroud_echo.sh new file mode 100644 index 0000000..a9043eb --- /dev/null +++ b/ci/backgroud_echo.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -ev + +num=0 +while [ $num -le 10 ] ; + do sleep 300 ; + num=$(($num+1)) ; + printf 'echo 5 min\r\n' ; + done diff --git a/ci/build.sh b/ci/build.sh index 3a43a40..e6190c0 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -120,19 +120,23 @@ echo "PWD:`pwd`" if [ "${BUILD_TARGERT}" = "android" ]; then cmake -G"${GENERATORS}" ${SeetaFace2_SOURCE} ${CONFIG_PARA} \ -DCMAKE_INSTALL_PREFIX=${SeetaFace2_DIR} \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ -DBUILD_EXAMPLE=OFF \ -DANDROID_PLATFORM=${ANDROID_API} -DANDROID_ABI="${BUILD_ARCH}" \ -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake else cmake -G"${GENERATORS}" ${SeetaFace2_SOURCE} ${CONFIG_PARA} \ -DCMAKE_INSTALL_PREFIX=${SeetaFace2_DIR} \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ -DBUILD_EXAMPLE=OFF fi -cmake --build . --target install --config Release +if [ "${BUILD_TARGERT}" = "windows_msvc" ]; then + cmake --build . --config MinSizeRel --target install +else + cmake --build . --config MinSizeRel --target install/strip +fi cd ${SOURCE_DIR} @@ -223,64 +227,66 @@ fi mkdir -p build_${BUILD_TARGERT} cd build_${BUILD_TARGERT} -if [ -n "$GENERATORS" ]; then - if [ -n "${STATIC}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DBUILD_SHARED_LIBS=${STATIC}" - fi - if [ -n "${ANDROID_ARM_NEON}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DANDROID_ARM_NEON=${ANDROID_ARM_NEON}" - fi +if [ -n "${STATIC}" ]; then + CONFIG_PARA="${CONFIG_PARA} -DBUILD_SHARED_LIBS=${STATIC}" +fi +if [ -n "${ANDROID_ARM_NEON}" ]; then + CONFIG_PARA="${CONFIG_PARA} -DANDROID_ARM_NEON=${ANDROID_ARM_NEON}" +fi +if [ -d "${ThirdLibs_DIR}" ]; then + CONFIG_PARA="${CONFIG_PARA} -DYUV_DIR=${ThirdLibs_DIR}/lib/cmake" + CONFIG_PARA="${CONFIG_PARA} -DOPENSSL_ROOT_DIR=${ThirdLibs_DIR}" + export OPENSSL_ROOT_DIR=${ThirdLibs_DIR} +fi +echo "Build FaceRecognizer ......" +if [ "${BUILD_TARGERT}" = "android" ]; then if [ -d "${ThirdLibs_DIR}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DYUV_DIR=${ThirdLibs_DIR}/lib/cmake" - CONFIG_PARA="${CONFIG_PARA} -DOPENSSL_ROOT_DIR=${ThirdLibs_DIR}" - export OPENSSL_ROOT_DIR=${ThirdLibs_DIR} + CONFIG_PARA="${CONFIG_PARA} -DOpenCV_DIR=${ThirdLibs_DIR}/sdk/native/jni" fi - echo "Build FaceRecognizer ......" - if [ "${BUILD_TARGERT}" = "android" ]; then - if [ -d "${ThirdLibs_DIR}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DOpenCV_DIR=${ThirdLibs_DIR}/sdk/native/jni" - fi - cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ - -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_PREFIX_PATH=${QT_ROOT} \ - -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \ - -DQt5Core_DIR=${QT_ROOT}/lib/cmake/Qt5Core \ - -DQt5Gui_DIR=${QT_ROOT}/lib/cmake/Qt5Gui \ - -DQt5Widgets_DIR=${QT_ROOT}/lib/cmake/Qt5Widgets \ - -DQt5Xml_DIR=${QT_ROOT}/lib/cmake/Qt5Xml \ - -DQt5Network_DIR=${QT_ROOT}/lib/cmake/Qt5Network \ - -DQt5Multimedia_DIR=${QT_ROOT}/lib/cmake/Qt5Multimedia \ - -DQt5Sql_DIR=${QT_ROOT}/lib/cmake/Qt5Sql \ - -DQt5LinguistTools_DIR=${QT_ROOT}/lib/cmake/Qt5LinguistTools \ - -DQt5AndroidExtras_DIR=${QT_ROOT}/lib/cmake/Qt5AndroidExtras \ - -DSeetaFace_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaNet_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceDetector_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceLandmarker_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceRecognizer_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceTracker_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaQualityAssessor_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DANDROID_PLATFORM=${ANDROID_API} -DANDROID_ABI="${BUILD_ARCH}" \ - -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake - else - if [ -d "${ThirdLibs_DIR}" ]; then - CONFIG_PARA="${CONFIG_PARA} -DOpenCV_DIR=${ThirdLibs_DIR}" - fi - cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ - -DCMAKE_INSTALL_PREFIX=`pwd`/install \ - -DCMAKE_VERBOSE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \ - -DSeetaFace_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaNet_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceDetector_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceLandmarker_DIR=${SeetaFace2_DIR}/lib/cmake \ - -DSeetaFaceRecognizer_DIR=${SeetaFace2_DIR}/lib/cmake + cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ + -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DCMAKE_PREFIX_PATH=${QT_ROOT} \ + -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \ + -DQt5Core_DIR=${QT_ROOT}/lib/cmake/Qt5Core \ + -DQt5Gui_DIR=${QT_ROOT}/lib/cmake/Qt5Gui \ + -DQt5Widgets_DIR=${QT_ROOT}/lib/cmake/Qt5Widgets \ + -DQt5Xml_DIR=${QT_ROOT}/lib/cmake/Qt5Xml \ + -DQt5Network_DIR=${QT_ROOT}/lib/cmake/Qt5Network \ + -DQt5Multimedia_DIR=${QT_ROOT}/lib/cmake/Qt5Multimedia \ + -DQt5Sql_DIR=${QT_ROOT}/lib/cmake/Qt5Sql \ + -DQt5LinguistTools_DIR=${QT_ROOT}/lib/cmake/Qt5LinguistTools \ + -DQt5AndroidExtras_DIR=${QT_ROOT}/lib/cmake/Qt5AndroidExtras \ + -DSeetaFace_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaNet_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceDetector_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceLandmarker_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceRecognizer_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceTracker_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaQualityAssessor_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DANDROID_PLATFORM=${ANDROID_API} -DANDROID_ABI="${BUILD_ARCH}" \ + -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake +else + if [ -d "${ThirdLibs_DIR}" ]; then + CONFIG_PARA="${CONFIG_PARA} -DOpenCV_DIR=${ThirdLibs_DIR}" fi - cmake --build . --config Release -- ${RABBIT_MAKE_JOB_PARA} - cmake --build . --config Release --target install -- ${RABBIT_MAKE_JOB_PARA} + cmake -G"${GENERATORS}" ${SOURCE_DIR} ${CONFIG_PARA} \ + -DCMAKE_INSTALL_PREFIX=`pwd`/install \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \ + -DSeetaFace_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaNet_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceDetector_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceLandmarker_DIR=${SeetaFace2_DIR}/lib/cmake \ + -DSeetaFaceRecognizer_DIR=${SeetaFace2_DIR}/lib/cmake +fi +cmake --build . --config MinSizeRel -- ${RABBIT_MAKE_JOB_PARA} +if [ "$TRAVIS_TAG" != "" ]; then + cmake --build . --config MinSizeRel --target install-runtime -- ${RABBIT_MAKE_JOB_PARA} +else + cmake --build . --config MinSizeRel --target install -- ${RABBIT_MAKE_JOB_PARA} fi if [ "${BUILD_TARGERT}" = "android" ]; then @@ -295,7 +301,9 @@ if [ "${BUILD_TARGERT}" = "android" ]; then APK_NAME=FaceRecognizer_${BUILD_ARCH}_${VERSION}.apk mv -f ${APK_FILE} $SOURCE_DIR/${APK_NAME} APK_FILE=$SOURCE_DIR/${APK_NAME} - if [ "$TRAVIS_TAG" != "" -a "$BUILD_ARCH"="armeabi-v7a" -a "$QT_VERSION"="5.13.2" ]; then + if [ "$TRAVIS_TAG" != "" \ + -a "$BUILD_ARCH" = "armeabi-v7a" \ + -a "$QT_VERSION" = "5.12.6" ]; then cp $SOURCE_DIR/Update/update_android.xml .