Head Pose Estimation头部姿态估计任务的基本了解:从数据集开始

news2024/9/19 10:07:59

目录

  • 前言
  • 一、HPE是什么?
  • 二、常用数据集
    • 1.COFW
    • 2.WFLW
    • 3.AFLW2000-3D
    • 4.300W-LP
  • 三、SOTA work
    • CVPR2022:SynergyNet
    • CVPR2021 Workshop:ASMNet
  • 四、我们想做的贡献


前言

为了检测司机的疲劳状态,除了基于人脸关键点的检测去判断是否闭眼,是否打哈欠,还可以基于头部的姿态取判断是否正视前方,或者低头睡觉.那么准确的头部姿态估计,必不可少.此前,我们基于PnP算法取估计HPE,但误差较大.因此,我们决定在YOLOLandmark基础上添加额外的任务,即人脸检测,人脸关键点检测以及头部姿态检测,三个任务整合到一起.


一、HPE是什么?

Head Pose Estimation,即头部姿态估计,一般用6D元素表示,即空间坐标(x,y,z),空间旋转角度(yaw, roll, pitch)等来表示.有些时候空间位置可在二维图像中定位出bounding-box的二维坐标即可,主要是空间旋转角度的估计是一个关键问题.

这个问题,难点在哪里?
单一的HPE任务,已经是个old任务,通常做法是cropped face输入到ResNet,然后设计一个head估计三个角度.因此,单一的任务在标准的数据集上做训练,这不是一个难的问题.

如果将三个task整合到一起,就会遇到问题.没有完整的数据集同时满足这三个任务的训练,比如,dataA提供来人脸关键点的标注适合人脸检测和人脸关键点检测,dataB提供人脸关键点和姿态的标注,适合关键点与姿态的检测.如果设计一个网络,同时能够单阶段的把三个任务完成,这件事情目前还没有人这么做.

二、常用数据集

1.COFW

原地址下载:caltech
这个数据集主要是包含人脸遮挡的数据集,如下所示:
在这里插入图片描述
所以它并不包含head pose的信息.每张人脸包含29个关键点的标注信息

2.WFLW

Wider Facial Landmarks in-the-wild (WFLW)包含10000张人脸,7500张用于训练,2500张用于测试.每个人脸包含98个人工标记点.此外,除来关键点的标记,还包括来丰富的背景,例如遮挡,大角度,化妆,照明,模糊和表情等用于当前有竞争力的算法去充分的分析.

data sit: LAB

该数据集主要用于验证算法在复杂背景下FLD的鲁棒性.

3.AFLW2000-3D

AFLW2000-3D is a dataset of 2000 images that have been annotated with image-level 68-point 3D facial landmarks. This dataset is used for evaluation of 3D facial landmark detection models. The head poses are very diverse and often hard to be detected by a CNN-based face detector.

下载链接:3dffa

samples:

在这里插入图片描述
这个数据集提供来丰富的3DMMA信息,即3D Face Landmarks, Head Pose等信息.
因此,该数据集可用于head pose的评估,但该数据集包含了大角度的偏转,会对我们的检测器提出漏检的挑战.

4.300W-LP

同样,该数据集也是由3dffa团队提出来的,也是基于3dmma的模型提供FLD和Posture的标注.

该处使用的url网络请求的数据。


三、SOTA work

CVPR2022:SynergyNet

code:github
该网络基于3DMM实现来多个人脸相关任务比如3D FLD, Angle, mesh等任务的实现,比3DFFA,青出于蓝而胜于蓝.

在AFLW3000-3D上的人脸角度估计(MAE欧拉角)
在这里插入图片描述

CVPR2021 Workshop:ASMNet

code:github

FLD的检测效果一般,目前不如我的模型角度高
角度估计demo:
在这里插入图片描述
在WFLW和300W数据集上的Posture性能对比,这里必须说明的是,他们是采用HopeNet去检测这两个数据集,并把检测的结果作为GT,用来训练此模型.
在这里插入图片描述

四、我们想做的贡献

首次基于YOLO实现三个任务的联合检测,即FD, FLD,HPE.这是首次实现.
其次,我们解决来数据集不完备带来的训练问题,我们首先冻结HPE,在A数据集上实现来FD,FLD的联合任务;然后冻结FD,FLD,实现HPE的训练.在训练阶段分步进行,在推理阶段一次搞定.
我们在多个数据集上进行了验证,在人脸检测,FLD和HPE上都取得来不错的性能.包括速度和精度的双提升.
并且,为了将基于单帧的检测用于视频检测,特别是人脸tracking过程中会存在跳帧的问题,为此,我们设计了基于Kalman Filter的平滑滤波,以减少抖动.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础算法-差分

差分其实就是求前缀和的逆运算 差分数组: Step1 首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b : b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] b[1] b[2 ] b[3] ,,,,,, b[i] 也就是说,a数组是b…

nvm升级node版本

1.首先有安装nvm和配置环境的前提 2、命令查看,切换到D盘目录下 3、安装到指定的版本 nvm安装指定版本的node 输入:nvm install 16.18.1 4、查看已有的node版本 nvm list 5、项目终端查看

【uniapp开发小程序】实现点击跳转手机通话 拨打电话功能

效果图&#xff1a; 代码展示&#xff1a; <template><view class"page-map"><view class"btn" click"telFun()" style"text-align: center;">电话咨询</view></view> </template> <script&g…

如何使用idea来查找所有未使用的代码?

一、目的 通过idea快速找到项目中没有被使用的代码 二、操作步骤 2.1 Code -> Analyze Code -> Run Inspection by Name 2.2 输入Unused declaration -> 查询没有被使用的方法和类 2.3 选择要扫描的范围 2.4 根据结果进行删除&#xff08;反复几次就可以清除干净&a…

如何获取局域网内海康摄像头的IP地址

文章目录 问题解决方法图像分类网络AlexNetVGGNetGooLeNet系列ResNetDenseNetSwin TransformerMAECoAtNetConvNeXtV1、V2MobileNet系列MPViTVITSWAEfficientNet系列MOBILEVITEdgeViTsMixConvRepLKNetTransFGConvMAEMicroNetRepVGGMaxViTMAFormerGhostNet系列DEiT系列MetaFormer…

linux 写c, 编译报错 stdio.h: No such file or directory,compilation terminated.

环境: windows11->subsystem(Ubuntu20)问题: linux 写c, 编译报错如图(fatal error: stdio.h: No such file or directory │compilation terminated. #include <stdio.h>) 复现: #include <stdio.h>int main() {printf("gcc编译报错: \n")return 0;…

产研融合共育人才 金山云“星云训练营”顺利开营

盛夏之日&#xff0c;万物并秀&#xff01;在莘莘学子告别校园、踏入社会的毕业季&#xff0c;金山云第一期星云训练营于7月9日在武汉隆重开营。金山云星云训练营承载着“技术立业”的企业基因&#xff0c;旨在助力学子提升专业技能&#xff0c;掌握前沿技术&#xff0c;为国家…

(02)Cartographer源码无死角解析-(78) ROS数据发布→子图内、子图间、约束与残差发布

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文…

requestAnimationFrame(请求动画帧)

前言 在Web应用中&#xff0c;实现动画效果的方法比较多&#xff0c;Javascript 中可以通过定时器 setTimeout 来实现&#xff0c;css3 可以使用 transition 和 animation 来实现&#xff0c;html5 中的 canvas 也可以实现。除此之外&#xff0c;html5 还提供一个专门用于请求…

VS2019使用入门

VS2019使用入门 1.Visual Studio任务栏图标显示变白2.从其他项目拷贝文件到当前项目参考文献 配置VS2019 实现简单的c人脸检测项目&#xff0c;可参考本人blog wndows平台VS2019OpenCVcmake简单应用。 1.Visual Studio任务栏图标显示变白 参考[1]&#xff0c;在命令提示符下输…

Wireshark简单使用教程

混合模式 混合模式就是在抓包的时候不轮是有线网络还是WIFI网络等都会将流量给打印出来 1.打开Wireshark抓包软件 2.点击捕获选择选项按钮 3.选中《在接口上使用混杂模式》 &#xff08;默认是开启的&#xff09; 过滤器 过滤器可以只筛选你要的数据包&#xff0c;下图箭…

JAVA主要日志输出工具

日志工具 SLF4J-JCL LOG4J-CORE LOGBACK SLF4J-SIMPLE JCL-OVER-SLF4J LOGBACK-CORE LOG4J LOG4J-API LOG4J-JUL LOG4J-JCL LOGBACK-ACCESS LOGBACK-CLASSIC SLF4-API SLF4J-LOGJ12 LOGBACK-CLASSIC LOG4J-SLF4J-IMPL JAVA日志体系概述 大家目前正在使用的日志输出工具 日志体…

剑指offer刷题笔记--Num41-50

1--数据流中的中位数&#xff08;41&#xff09; 主要思路&#xff1a; 维护两个优先队列&#xff0c;Q1大数优先&#xff0c;存储比中位数小的数&#xff1b;Q2小数优先&#xff0c;存储比中位数大的数&#xff1b; 当存储的数为偶数时&#xff0c;Q1.size() Q2.size(), 中位…

文献阅读笔记 # SimCSE: Simple Contrastive Learning of Sentence Embeddings

《SimCSE: Simple Contrastive Learning of Sentence Embeddings》EMNLP 2021 (CCF-B) Tianyu Gao†∗ Xingcheng Yao‡∗ Danqi Chen†作者来自普林斯顿计算机系和清华大学交叉信息研究院Code & Pre-trained Models 【研究对象】&#xff1a;Sentence Embedding&#xff…

ubuntu RPM should not be used directly install RPM packages, use Alien instead!

ubuntu RPM should not be used directly install RPM packages, use Alien instead! 所以我们最好下载deb版本的安装包 安装 参考文章

科技资讯|三星智能戒指资料曝光,智能穿戴发展新机遇

根据 Reddit 社区网友反馈&#xff0c;在 Beta 版三星 Health 应用中&#xff0c;发现了全新的“Ring Support”选项&#xff0c;暗示三星未来将会推出智能戒指产品。 三星内部正在开发健康追踪设备 Galaxy Ring&#xff0c;这款智能戒指配备 PPG&#xff08;光电容积脉搏波&…

【视觉SLAM入门】3. 相机模型,内外参,畸变推导

"瑾瑜匿瑕" 1. 相机模型和内参1.1 内参推导1.2 外参推导 2. 畸变2.1 径向畸变2.2 切向畸变 3. 深度信息3.1 算法测距3.2 物理测距 本节讨论围绕这个问题展开 机器人如何观测外部世界&#xff1f; \quad\large\textcolor{red}{机器人如何观测外部世界&#xff1f;} 机…

音频转文字怎么操作?这几个好用的音频转文字方法分享给你

想象一下&#xff0c;你在公交车上听到了一个超搞笑的笑话&#xff0c;想要记下来和朋友分享&#xff0c;但是又怕自己记漏或者记错了关键的部分。这时候&#xff0c;音频转文字的软件就能帮上大忙了&#xff01;你只需将录音导入到软件中&#xff0c;它就会像一位超级厉害的听…

4. Springboot快速回顾(@Mapper和@MapperScan)

springboot最重要的注解之一&#xff0c;因为有了Mapper注解&#xff0c;省去了在xml文件繁琐的配置 本文将对比介绍有无注解的区别&#xff0c;加深认识 目录 1 初次使用Mapper1.1 创建实体类Stu1.2 创建dao层接口1.3 创建service层接口和实现1.5 创建StuMapper.xml文件1.4 创…

岛屿数量 (力扣) dfs + bfs JAVA

给你一个由 ‘1’&#xff08;陆地&#xff09;和 ‘0’&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的…