| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> HeadPose Estimation头部姿态估计头部朝向(Android) -> 正文阅读 |
|
[移动开发]HeadPose Estimation头部姿态估计头部朝向(Android) |
HeadPose Estimation头部姿态估计头部朝向(Android)目录 HeadPose Estimation头部姿态估计头部朝向(Android) 0.前言本篇,将介绍一种基于深度学习的头部姿态估计模型FSA-Net。鄙人已经复现论文的结果,并对FSA-Net进行了轻量化,以便在移动端可以跑起来;目前Android Demo已经集成人脸检测和头部朝向模型,在普通手机可实时检测(30ms左右),CPU支持多线程处理,GPU支持OpenCL加速处理,先看一下效果哈:
【尊重原创,转载请注明出处】:HeadPose Estimation头部姿态估计头部朝向(Android)_pan_jinquan的博客-CSDN博客
Android Demo支持的特性主要如下:?
1.HeadPose头部姿态估计(Head Pose Estimation ),也称头部朝向估计,主要是获得脸部朝向的角度信息,即欧拉角(pitch,yaw,roll)表示。 头部姿态估计方法很多,主要可以分为两大类 (1)基于PNP的头部姿态估计方法 使用透视变换可以完成2D到3D的转换,可以简单的想象为将照片上的人脸图像按照一定的角度进行多点拉扯形成3D图像,然后根据角度来判断姿态。使用的方法原理为使用2D平面上人脸的特征点和3D空间内对应的坐标点,按照求解pnp问题的思路。找到一个映射关系,从而估计头部的姿态。 经典的 Head Pose Estimation 算法的步骤一般为:
基于PNP的头部姿态估计是比较传统的算法,其效果比较依赖人脸关键点检测,实际测试误差还是比较大。 可参考资料:基于3D通用模型的头部姿态估计_一半糊涂、的博客-CSDN博客_头部姿态估计 (2)基于深度学习的方法? 基于深度学习的方法,把脸部朝向的角度信息,即欧拉角(pitch,yaw,roll)当作一个多任务的回归模型(也可以转为分类)。其模型输入一张RGB人脸图像,输出三个值,代表头部朝向的欧拉角,(pitch,yaw,roll)。相比传统的头部姿态估计算法,该方法不依赖于人脸关键点,精度更高效果更好。 比如论文《Fine-Grained Head Pose Estimation Without Keypoints》就是这么简单粗暴:
当然,还有FSA-Net,本博客就是在FSA-Net的基础上进行优化 参考资料:FSA-Net学习笔记_南风不竞:的博客-CSDN博客 2.pitch、yaw、roll三个角的区别欧拉角(pitch,yaw,roll)遵循三维空间右手笛卡尔坐标原则:
3.头部姿态估计评价指标头部姿态估计主要有两种评价准则 (1)平均绝对误差(MAE) (2)平均精度 4.头部姿态估计数据
5.FSA-Net介绍FSA-Net 是2019年CVPR中的一篇文章,下面是FSA-NET模型架构图: 首先,输入的图片经过两条流(two Stream)。两条流在3个stage各自提取一个特征图。相同stage提取出的特征图经过fusion module(图中的绿色框)。 原文:fusion module 首先将每个stage的两个feature map,通过element-wise multiplication得到combined feature map。然后通过c 1x1 的卷积将特征图变成c个channel。最后,用平均池化将特征图变成 w*h,最终,我们得到k个stage的特征图Uk? .如上图的 U1-Uk. 得到了K个大小为??特征图后,聚合模块的任务就是将其聚合为一个更小的更representative的特征图,具体来说就是将特征图精简为??。已有的一些方法如capsule 和NetVLAD没有关注空间之间的相对信息。所以在进入特征聚合模块前,先进行空间聚合(spatial grouping)。 6.?头部姿态估计目前Android Demo已经集成人脸检测和头部朝向模型,支持以下功能:
算法核心代码,都采用C++实现,这是JNI部分,也是接口的核心代码:
Android源码的头部朝向坐标绘制,我是使用的OpenCV绘制实现的,然后把绘制好Bitmap图像通过JNI映射到上层,并进行显示,核心显示代码如下:
一些Android测试测试效果:https://panjinquan.blog.csdn.net/article/details/124943419
一些图片测试效果: 7.?头部姿态估计Android源码下载
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 1:41:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |