Apache License 2.0

项目介绍

SimonCherryGZ/face-landmark-android 是一个托管在 GitHub 上的开源项目,主要使用 Java 编写,采用 Apache License 2.0 许可证,目前获得 416 个 Star、170 次 Fork。

仓库全名
SimonCherryGZ/face-landmark-android
开源许可证
Apache License 2.0
Star 数
416
Fork 数
170
未关闭 Issue
8

README 摘要

AR相机 =================================== 根据人脸图片构建简单的3D人脸模型,然后在摄像头预览画面中展示。基于该人脸模型进行换脸或者添加装饰品。 基于 dlib-android-app dlib-android 提供Android平台可用的Dlib库。 More Than Technical这篇文章 的头部姿态估算算法。 LearnOpenCV.com 的换脸算法。 Rajawali OpenGL ES引擎。 应用截图 GIF演示 显示人脸3D模型 显示装饰品 测试页面 原理 根据人脸图片构建3D人脸模型 使用Dlib可以检测出人脸的68个关键点: 根据这68个点可以连线得到一个低面数的人脸模型: 我使用Blender 建立了该模型,这里称其为BaseModel,格式为obj。 动态修改BaseModel 查询obj文件结构可知,以“v”开头的行描述的是模型的顶点…

完整内容见 GitHub 原始 README 或本页 。

常见问题

face-landmark-android 用什么语言开发?

主要使用 Java 编写,采用 Apache License 2.0 许可证,目前有 416 个 Star。

face-landmark-android 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 face-landmark-android 的源码?

可以直接克隆仓库:git clone https://github.com/SimonCherryGZ/face-landmark-android.git,默认分支为 master;安装与运行步骤见仓库 README。

face-landmark-android 最近还在维护吗?

仓库最近一次更新为 2017年7月4日,当前有 8 个未关闭 Issue;Star 数为 416,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Android AR Camera

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
776
价值分
302
活跃状态
活跃

语言占比

C++
GLSL
Java
Makefile

贡献者

README

AR相机

根据人脸图片构建简单的3D人脸模型,然后在摄像头预览画面中展示。基于该人脸模型进行换脸或者添加装饰品。

基于

应用截图

GIF演示

image image

显示人脸3D模型

image image image

显示装饰品

image image image image

测试页面

image image

原理

  • 根据人脸图片构建3D人脸模型

    使用Dlib可以检测出人脸的68个关键点:

    image

    根据这68个点可以连线得到一个低面数的人脸模型:

    image

    我使用Blender 建立了该模型,这里称其为BaseModel,格式为obj。

  • 动态修改BaseModel

    查询obj文件结构可知,以“v”开头的行描述的是模型的顶点,以“vt”开头的行描述的是模型的贴图坐标点。

    那么只要找到这些点与人类关键点的对应关系,就可以简单地通过替换对应行的数据,来达到动态修改模型的目的。

不足

  • Dlib库依赖shape_predictor_68_face_landmarks.dat,其大小约100M,加载需要花费数秒。

  • Dlib库检测人脸的速度与图像的大小成反比,因此需要对摄像头的预览画面进行截取。

    截取得太小的话也检测不出人脸。在大小不影响检测的情况下,检测速度依然不理想。

  • 由于是从单张图片构建3D人脸,无法获取Z轴的数值,所以在估算三维姿态时用的是模拟数据,得出的数值可能不准确。

构建

  1. 按照dlib-android 描述的步骤来构建Dlib-Android库。
  2. 从dlib-android-app 中找到shape_predictor_68_face_landmarks.dat,将其复制到手机根目录中。

依赖库

Written with StackEdit.

评论

暂无评论