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 .