基于YOLO的3D人脸关键点检测方案

YOLO3D 基于图像的3D目标检测算法 参考文档:https://ruhyadi.github.io/project/computer-vision/yolo3d/代码:https://github.com/ruhyadi/yolo3d-lightning本次分享将会从以下四个方面展开:物体检测模型中的算法选择单目摄像头下的物体检测神经网络训练预测参数的设计模型训练与距离测算。 阅读详情


前言

YOLOLandmark解决了2D的人脸关键点检测问题,但3D任务仍然是个空白。我们能够在该领域继续突破呢?
我们最新的工作已经放到ArXiv: YOLOMT


一、任务列表

  1. 3D人脸关键点数据调研
  2. 3D FLD的评估策略有哪些
  3. 当前领先的技术方法达到了什么水平?
  4. 我们的方法实现:
    1. 数据集转为YOLO格式
    2. 修改YOLO8Pose的入口和出口
    3. 初步训练的性能,并对比
    4. 分析可行性,如何在此基础上取得突破

二、3D人脸关键点数据

主流的数据集

H3WB

github Link: HWWB
全称,H3WB: Human3.6M 3D WholeBody Dataset and Benchmark,它是一个大型的用于3D全身姿态估计的数据集,包含100K张图片标注。它扩展与Human3.6m数据集,共包含133个全身关键点,与COCO-whole body的标记规则一样。
样本标注如下:
在这里插入图片描述

2.下载方法

图片可以直接下载: Human3.6m
标记文件下载链接:datasets/json/

也可以通过脚本将Human3.6m视频转为包含图片与标注的对应集,参考 https://github.com/wholebody3d/wholebody3d

其中,json的标注方式如下:

XXX.json --- sample id --- 'image_path'
                        |
                        -- 'bbox' --- 'x_min'
                        |          |- 'y_min'
                        |          |- 'x_max'
                        |          |- 'y_max'
                        |
                        |- 'keypont_2d' --- joint id --- 'x'
                        |                             |- 'y'
                        |
                        |- 'keypont_3d' --- joint id --- 'x'
                                                      |- 'y'
                                                      |- 'z'

3.任务

基于该数据集,提出了三种不同的任务:

  • 任务一:2D—>3D
    指的是从2D全身姿态提升到3D全身姿态。其主要做法是:

    • 使用2Dto3D_train中的数据用于训练和验证。它包含80K的2D和3D关键点
    • 使用2Dto3D_test中的数据用于测试。它包含10K的2D关键点
  • 任务二:I2D—>3D
    指的是不完整的2D全身姿态提升到3D的完整全身姿态。其流程如下:

    • 使用2Dto3D_train中的数据用于训练和验证。它包含80K的2D和3D关键点
    • 添加有概率的模版去掩盖,官方的策略是:
      • 占比40%,每个关键点有25%概率被掩码;
      • 占比20%,人脸100%概率被掩码;
      • 占比20%,左手100%概率被掩码;
      • 占比20%,右手100%概率被掩码;
    • 使用2Dto3D_test_2D用于数据榜上的测试。它包含10K的2D关键点,区分于上述的10K数据。
  • 任务三:RGB—>3D
    指的是从一张图片直接预测3D全身姿态。其主要做法是:

    • 使用RGBto3D_train中的数据用于训练和验证。它包含80K的图像路径,边界框和3D关键点(源文档写成2D,应该有误)
    • RGBto3D_train含有与2Dto3D_train相同的样本,因此有必要可以访问2D全关键点。
    • 使用RGBto3D_test中的数据用于排行榜的测试。它包含20K的图像路径,边界框。
    • 注意的是,测试样本的id和以上两个任务是不一致的。

4.评估

  • 验证
    作者没有提供validation集,作者提倡报告5-fold的交叉验证结果,并提供平均值和标准值。

  • 在测试集上的评估
    保存在测试集上的结果为XXXto3D_pred.json,并发送到邮箱: wholebody3d@gmail.com
    可以参考官方样例:test set predictions

  • 可视化
    作者提供了两个可视化工具,一个是可视化3D全人体,另一个是在排行榜上的评估。

5.使用许可

遵从MIT许可,即非常宽泛的协议,只需要在你的源码中注明原作即可。作者不拥有这些图像的版权,它必须遵守Human3.6m的许可。

3DFAW

全称,3D Face Alignment in the Wild (3DFAW)。包含23K图片,带有66个3D人脸标注数据的集合。近期在ICCV workshop比较火,
第一届workshop和挑战赛在ECCV2016年被提出,其数据集可以从论文中发现:自然条件下的图像,或者合成的头像。
在这里插入图片描述
这里存在一个问题是:如果要做端到端的人脸和关键点联合检测,那么需要提供人脸边界框,也可以根据人脸关键点找出边界框,但对人脸检测的性能会有负面影响。
可参考github:https://github.com/1adrianb/face-alignment

ICCV2019年举办了第二次workshop和挑战赛。
参考:https://3dfaw.github.io/
3DFAW-Video提供如下的图像信息:
在这里插入图片描述
包含不同源的图像,比如iPhone拍摄的视频,以及高分辨率的视频,并采用Di4D成像系统来扫描高分辨率的3D人脸。该数据集的下载需要签署一个协议文件,并获得访问允许。

CVPR2023刚出了一篇,名叫《3D-aware Facial Landmark Detection via Multi-view Consistent Training on Synthetic Data》,提升了3DDFA的性能,但所谓的3D关键点还是二维信息,只不过需要借助3DMM模型来得到3D的顶点。这类方法需要基于大名鼎鼎的3DMM模型,与直接给出Z轴的深度信息还是有差别的。

这篇文章还提到两个数据集:

  • Multiface Dataset
    在这里插入图片描述

  • DAD-3DHeads
    A Large-scale Dense, Accurate and Diverse Dataset for 3D Head Alignment from a Single Image
    在这里插入图片描述
    这个数据集包含了原图,68个2D点,191个2D点,445个密集点;
    下排:face mesh, head mesh, head pose, 3D head mesh.

AFLW2000-3D

Face Alignment Across Large Poses: A 3D Solution, 即AFLW2000-3D。它包含2000张图片,每个人脸含有68个3D关键点,主要用于评估作用。这个数据集的3D信息,也是通过3DMM模型得到的,在精度上会存在问题的争议。
在这里插入图片描述

三、3D关键点的Z维度信息

3D关键点在三维坐标系中除了XY面上的位置信息,还包括Z轴上的深度信息。对于在RGB图像上估计3D关键点,这本身就是一个难题。那么,当前的数据集以及一些SOTA的方法是如何估计3D姿态的呢?

1.基于3DMM模型的方法

3dffa就是当前流行的基于3dmm的方法。它不是直接的估计Z轴的深度信息,而是根据二维平面上的点坐标与三维的人脸模型之间进行的一个仿射变换,在归一化的三维空间上得到人脸姿态。
类似的数据集,如AFLW2000-3D,300W-LP等数据集。我们参考一些技术文档,可以详细打开这两个数据集的三维坐标。

例如,我们可视化300W-LP中的3D关键点不难发现,所谓的3D点其实也是用二维数据表述的
在这里插入图片描述
其中的pts_3d格式为68x2,也就是说该3D关键点实际上空间投影到2维平面上的投影.
在这里插入图片描述
同理,我们也可以可视化AFLW2000-3D数据集
在这里插入图片描述
我们可以看到该数据集合是真正包含第三维度的信息,即3D预测是68x3的矩阵.
在这里插入图片描述
并且我们可视化3dmm后重构的人脸图
在这里插入图片描述
可以看到,通过给定3dmm的参数,可以线性表达人脸的构建.这里参考3dffa的代码,如果在linux平台上运行此matlab code可能需要重新编译linux下的相关函数.例如,

Error in NormDirection (line 17)
N = Tnorm_VnormC(double(n_tri), double(tri), double(size(tri,2)), double(size(vertex,2)));

Error in main_show_with_BFM (line 17)
norm = NormDirection(vertex, tri);
 
>> compile
Building with 'g++'.
Warning: You are using gcc version '7.5.0'. The version of gcc is not supported. The version currently supported with MEX is
'4.9.x'. For a list of currently supported compilers see: http://www.mathworks.com/support/compilers/current_release. 
> In compile (line 1) 
MEX completed successfully.

2.H3WB

这是本次调研第二个数据集在标签中包含Z轴信息的数据集。但具体可视化的结果,还在酝酿中。

四、当前SOTA的方法

1.方法1

最好是paper with code. 介绍下方法,从框架、模块、损失函数等方面,并对比性能如何

五、我们的解决方法

1.数据转为YOLO格式

最好是paper with code. 介绍下方法,从框架、模块、损失函数等方面,并对比性能如何

2.修改YOLO8Pose的入口出口

3.开始训练,并记录过程

4.对比分析

5.改进

主要记录如何改进的,并记录结果。与baseline对比,取得的效果是如何?


总结

牢记使命,多发高水平的文章,在AI竞赛中处于上游地位。

【YOLO3D】:端到端3D点云输入的实时检测 YOLO3D将YOLO应用于3D点云的目标检测,与Complex-YOLO类似,不同的是将yolo v2的损失函数扩展到包括偏航角、笛卡尔坐标下的三维box以及直接回归box的高度。 阅读详情

相关推荐

关键点检测SIFT算法笔记

SIFT(Scale Invariant Feature Transform),尺度不变特征变换。具有旋转不变性、尺度不变性、亮度变化保持不变性,是一种非常稳定的局部特征。在目标检测和特征提取方向占据着重要的地位。SIFT算法所查找到的关键点是一些很突出,不因光照、仿射变换和噪声等因素而变化的点,比如角点、边缘点、暗区亮点或亮区暗点等。

vivo01的专栏 2772

睿智的目标检测——Pytorch搭建YoloV7-3D单目图像目标检测平台

基于Rope3D数据集实现YOLOv7-3D目标检测算法。

weixin_43293172的博客 5434

人脸关键点检测实战:从MediaPipe集成到移动端部署优化

人脸关键点检测是计算机视觉中的一项基础技术,其核心原理是通过级联网络或流水线流程,先进行人脸检测,再通过人脸对齐和稠密关键点预测,将人脸数字化为数百个精确的坐标点。这项技术的价值在于为各类应用提供了标准化的面部数据接口,是实现高精度面部分析、交互与增强现实的基础。在工程实践中,开发者常面临模型选型、性能优化与跨平台部署等挑战。例如,MediaPipe作为开箱即用的轻量级方案,因其集成简便和针对移动端的优化,成为快速原型开发和移动应用的首选。而通过模型量化、剪枝和推理管道优化,可以显著提升在资源受限设备上的运

weixin_33443972的博客 337

什么是关键点检测

关键点检测(keypoint detection)是一种计算机视觉技术,其目的是在图像或视频中找出有意义的特征点,并在每个特征点处进行定位。这些特征点通常被称为关键点,因为它们在图像中是独特的,并且可以用于表示图像的内容或形状。 例如,在人脸图像中,关键点可能包括眼睛、鼻子、嘴巴和下巴的位置。在手势识别中,关键点可能包括手指的位置。在机器人导航中,关键点可能包括障碍物的边缘位置。 关键点检测是计算...

weixin_42594427的博客 3049

2022年人体姿态估计——SOTA关键点检测浅析总结【极简压缩篇】

pose估计——关键点检测思路整理

啥都会一点的小程的博客 3928

基于YOLO的活体人脸检测系统设计与优化

活体检测(Liveness Detection)是计算机视觉中重要的安全验证技术,通过分析面部微表情、纹理特征和运动模式来区分真实人脸与伪造攻击。其核心原理结合了深度学习的特征提取能力与传统的纹理分析方法,在金融身份认证、门禁系统等场景具有关键应用价值。本文以YOLO系列算法为基础,详细解析了从模型选型(包括YOLOv5/v6/v7/v8多版本对比)、训练策略优化(引入Non-local Attention和Focal Loss),到PySide6跨平台GUI开发的完整实现路径。针对实际部署中的性能瓶颈,重

weixin_30781775的博客 436

MediaPipe人脸关键点检测实战:从零搭建Android实时滤镜应用(附完整代码)

本文详细介绍了如何使用MediaPipe框架在Android平台上实现实时人脸关键点检测,并开发动态滤镜应用。从环境配置、模型集成到实时视频流处理和关键点数据应用,提供了完整的代码示例和性能优化方案,帮助开发者快速掌握人脸关键点检测技术,应用于美颜、虚拟试妆等场景。

weixin_29081163的博客 254

YOLOv8【第十章:多任务扩展深度篇·第14节】人脸关键点专项:5点/68点关键点检测与人脸对齐实战!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 3791

探索基于300W-LP的3D人脸关键点检测

300WLP数据集提供来丰富的人脸线索,包括2D或3D的关键点信息,Head Angle和3DMM的参数等.它可以用于2/3D的人脸关键点检测,以及头部姿态检测等任务.这里,我们尝试去实现端到段的3D人脸关键点检测.期待好的结果!

wqthaha的专栏 1660

TensorRT 人脸关键点 C/C+

这篇文章介绍了基于RK3588平台的人脸检测与识别系统部署方案。主要内容包括:1)使用TAO工具包的预训练FaceDetect模型进行人脸检测,详细说明了模型转换和TensorRT部署流程;2)基于PyTorch训练人脸识别模型(FaceNet),包含数据清洗、口罩生成等预处理步骤;3)将训练好的模型导出为ONNX格式并转换为TensorRT引擎;4)展示了人脸检测、关键点识别和添加口罩的最终效果。文章提供了完整的代码路径和环境配置说明,涉及TensorRT、Docker、C++等技术栈,适用于深度学习部署

FJN110的博客 2796

Objective-C实现iOS活体检测与人脸识别全流程

活体检测技术是指通过一定的技术手段判断当前检测对象是否为活体人的技术。它在防止欺诈和提高用户体验中起到了重要作用。例如,在移动支付、移动银行和登录认证等场景下,活体检测技术可以有效防止照片、视频、3D模型等假体的攻击,保障交易和数据安全。Objective-C是一种面向对象的编程语言,它是C语言的一个超集,并且为C语言添加了Smalltalk风格的消息传递机制。这种结合让Objective-C能够拥有C语言的强大和灵活性,同时还能利用面向对象编程的特性。

weixin_36078669的博客 1083

人脸滤镜技术原理:从关键点检测到实时3D网格渲染

人脸滤镜并非简单图像叠加,而是基于计算机视觉与实时图形学的数字孪生建模过程。其核心在于将2D视频流中的人脸解构为可定位、可重建、可驱动的3D结构——首先通过轻量级深度学习模型实现毫秒级人脸检测与468点关键点定位,再结合3D Morphable Model(3DMM)进行单目三维网格重建,最后依托GPU加速的纹理映射与Metal/Vulkan渲染管线完成美颜、贴纸与AR特效的端侧实时合成。该技术广泛应用于社交App、短视频平台及AR眼镜等场景,对移动端AI推理效率、显存调度与跨平台图形API适配提出严苛要求

weixin_33735077的博客 936

H医药公司配送中心布局仿真优化

新增2个Source,Source1命名为“货物到达”,用来进行仿真供应商原料到达,Source2命名为“订单到达”,用来进行仿真客户需求订单的到达,如下图是设置两个发生器的具体参数。通过主操作界面上的各个实体工具,如发生器、暂存区、货架、处理器、吸收器等实体工具对初始模型和优化后的方案模型进行仿真建模,建立优化前后的模型图如下图所示。通过下表可以看出,优化前操作员的总运行距离为132.11km,而优化后操作员的总运行距离为128.17km,运行距离缩短,操作员的疲劳强度降低。

m0_72514516的博客 2521

YOLOv11 Loss Landmark关键点损失:新增人脸检测支持

YOLOv11通过集成Loss Landmark实现端到端人脸关键点检测,结合Wing Loss与可见性掩码提升对齐精度,支持实时高效的人脸分析应用。

weixin_42610010的博客 695

手把手教你为FPGA项目集成HyperRAM IP核:从AXI接口封装到上板调试全流程

本文详细介绍了如何为FPGA项目集成HyperRAM IP核,涵盖从AXI接口封装到上板调试的全流程。通过对比DDR3L、PSRAM和HyperRAM的性能指标,突出HyperRAM在低功耗和小封装尺寸方面的优势,并提供硬件连接、AXI4-Lite接口设计、状态机优化及调试技巧等实用内容,帮助开发者高效完成FPGA项目中的内存扩展。

weixin_32103009的博客 280

(九)DFI接口时序

文章目录一、DFI Interface 一、DFI Interface   DFI接口是连接DDR Controller与DDR_PHY之间的通用接口,其信号组如下表:       

Mr.翟的博客 1万+

RetinaFace/Yolo8人脸检测和实现

基于 YOLOv8-Face + ArcFace + FAISS 的方案可实现高精度实时人脸检索,GPU 环境下可达到 50 FPS 以上(1080p视频),适合安防、智慧园区等场景。

AI大模型/Python/Java/MySQL技术栈,快来和我一起学习吧 ~ 4435

042、双管反激的电压应力优势

【摘要】本文通过300W工业电源炸管案例,对比分析了单管与双管反激拓扑的电压应力差异。单管反激因漏感能量难以处理,尖峰电压可达1180V,需依赖RCD吸收电路但效率低下;双管反激通过钳位二极管将漏极电压限制在输入电压水平(实测650V),能量回馈使效率提升2-3%。虽增加两个MOS管,但可选用600V器件(单管需1200V),总成本反降15%以上。作者建议150W以上或高压输入场景优先采用双管反激,其确定的电压应力可显著提升可靠性,避免单管反激的参数玄学问题。关键设计要点包括快恢复二极管选型、紧凑布局及漏感

Jack010169的博客 71

Facebook等提出实时3D人脸姿态估计新方法,代码已开源!

点击上方“CVer”,选择加"星标"置顶重磅干货,第一时间送达本文转载自:机器之心来自 Facebook AI 和美国圣母大学的研究者提出了一种 6 自由度的实时 3D 人...

阿木寺的博客 1144

DICOM图像知识:深入详解DICOM的层级关系

解析DICOM的四个主要层级:Patient(患者)、Study(检查)、Series(序列)和SOP(服务-对象对),探讨它们之间的关系、各自的唯一标识符以及在实际应用中的用途

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 3299

基于高德地图的单车路径规划与绘制实战(Vue3 + TypeScript)【拓展:货车路径规划函数、限行检测、城市 Adcode】

✅ 支持单辆车路径规划✅ 自动绘制路线✅ 起点、终点、途经点标注✅ 自动缩放视野至全路径✅ 获取路线距离、时长、过路费✅ 提供清除功能✅ 路线信息保存至本文完整实现了一个基于高德地图 JS SDK + Vue3 + TypeScript的👉单车路径规划与绘制模块。核心亮点:清晰的结构;灵活的扩展性;实时路线信息记录(🚀 你可以很方便地将本模块集成到车联网、调度监控、地图展示类项目中。❤️ 如果这篇文章对你有帮助,别忘了:评论区交流 💬。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1260

人体姿态估计和人脸识别mesh-3d手势识别-3d目标检测-背景分割-人脸关键点

计算机视觉、图像处理、毕业辅导、作业帮助、代码获取,远程协助,代码定制,私聊会回复!

qq1309399183的博客 1082

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1311

RetinaFace人脸关键点应用拓展:驱动3D人脸建模与动画绑定技术路径

本文介绍了如何在星图GPU平台上自动化部署RetinaFace人脸检测关键点模型镜像,高效提取左眼、右眼、鼻尖、左右嘴角共五个高精度2D关键点,为3D人脸建模与实时面部动画绑定提供稳定、低抖动的结构化输入,广泛应用于虚拟数字人、在线教育虚拟教师及智能座舱情绪识别等场景。

weixin_42592399的博客 325

Qt入门教程【基础控件篇】QLineEdit输入框

QLineEdit输入框

小鱼酱的博客 3248

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

探索3D人脸对齐的终极解决方案:3DDFA项目完整指南

3DDFA是一个基于PyTorch实现的3D人脸对齐项目,源自TPAMI 2017论文《Face Alignment in Full Pose Range: A 3D Total Solution》的改进版本。该项目提供了从单张2D图像中重建三维人脸模型的完整解决方案,支持全姿态范围的人脸对齐,广泛应用于人脸识别、表情分析和虚拟试妆等领域。 ## 什么是3DDFA? 3DDFA(3D Dens

gitblog_00681的博客 1089

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: yolo8实战检测人脸关键点
下一篇: Head Pose Estimation头部姿态估计任务的基本了解:从数据集开始
烧技湾
博客等级 码龄15年 1万+粉丝 139原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烧技湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值