没有合适的资源?快使用搜索试试~ 我知道了~
首页Android 中使用 dlib+opencv 实现动态人脸检测功能
资源详情
资源评论
资源推荐

Android 中使用中使用 dlib+opencv 实现动态人脸检测功能实现动态人脸检测功能
完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo。接下来
通过本文给大家介绍Android 中使用 dlib+opencv 实现动态人脸检测功能 ,需要的朋友可以参考下
1 概述概述
完成 Android 相机预览功能以后,在此基础上我使用 dlib 与 opencv 库做了一个关于人脸检测的 demo。该 demo 在相机预览
过程中对人脸进行实时检测,并将检测到的人脸用矩形框描绘出来。具体实现原理如下:
采用双层 View,底层的 TextureView 用于预览,程序从 TextureView 中获取预览帧数据,然后调用 dlib 库对帧数据进行处
理,最后将检测结果绘制在顶层的 SurfaceView 中。
2 项目配置项目配置
由于项目中用到了 dlib 与 opencv 库,因此需要对其进行配置。主要涉及到以下几个方面:
2.1 C++支持支持
在项目创建过程中依次选择 Include C++ Support、C++11、Exceptions Support ( -fexceptions )以及 Runtime Type
Information Support ( -frtti ) 。最后生成的 build.gradle 文件如下:
defaultConfig {
applicationId "com.example.lightweh.facedetection"
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
arguments "-DCMAKE_BUILD_TYPE=Release"
cppFlags "-std=c++11 -frtti -fexceptions"
}
}
}
其中,arguments 参数是后添加上去的,主要用于指定 CMake 的编译模式为 Release,因为在 Debug 模式下 dlib 库中相关
算法的运行速度非常慢。前期如果需要调试 C++ 代码,可先将 arguments 参数注释。
2.2 dlib 与与 opencv 下载下载
•到dlib官网下载最新版本的源码,解压后将文件夹中的dlib目录复制到 Android Studio 工程的 cpp 目录下。
•到sourceforge 下载最新的 opencv-android 库,解压后将文件夹中的 native 目录同样复制到 Android Studio 工程的 cpp 目录
下,并改名为 opencv。
2.3 CMakeLists 配置配置
在 CMakeLists 文件中,我们首先包含 dlib 的 cmake 文件,接下来添加 opencv 的 include 文件夹并引入 opencv 的 so 库,
同时将 jni_common 目录中的文件及人脸检测相关文件添加至 native-lib 库中,最后进行链接。
# 设置native目录
set(NATIVE_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
# 设置dlib
include(${NATIVE_DIR}/dlib/cmake)
# 设置opencv include文件夹
include_directories(${NATIVE_DIR}/opencv/jni/include)
# 设置opencv的so库
add_library(
libopencv_java3
SHARED
IMPORTED)
set_target_properties(
libopencv_java3
PROPERTIES
IMPORTED_LOCATION
${NATIVE_DIR}/opencv/libs/${ANDROID_ABI}/libopencv_java3.so)
# 将jni_common目录中所有文件名,存至SRC_LIST中
AUX_SOURCE_DIRECTORY(${NATIVE_DIR}/jni_common SRC_LIST)
add_library( # Sets the name of the library.
native-lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0