使用PyTorch进行深度学习头部姿势估计。

一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : [email protected]

 Time of completion:2022.12.23
Last edited: 2022.12.23

Hopenet是一个准确且易于使用的头部姿势估计网络。模型已在 300W-LP 数据集上进行了训练,并在真实数据上进行了测试,具有良好的定性性能。 

有关方法和定量结果的详细信息,请查看CVPR研讨会论文

估计一个人的头部姿势是一个关键问题,它有很大的 应用量,例如帮助视线估计、建模注意力、 将 3D 模型拟合到视频并执行面部对齐。传统头部 姿势是通过从目标面部估计一些关键点并求解来计算的 与平均人头模型的 2D 到 3D 对应问题。我们认为 这是一种脆弱的方法,因为它完全依赖于地标检测 性能,无关的头部模型和临时安装步骤。我们介绍 通过训练多重损失来确定姿势的优雅而稳健的方法 300W-LP上的卷积神经网络,一个大型合成扩展 数据集,用于直接从以下位置预测固有欧拉角(偏航角、俯仰角和横滚角) 通过联合分箱姿势分类和回归的图像强度。我们 对常见的野外姿势基准数据集进行实证检验 显示最先进的结果。此外,我们在数据集上测试我们的方法 通常用于使用深度进行姿势估计,并开始缩小差距 最先进的深度姿势方法。我们开源我们的培训和测试 编写代码并发布我们预先训练的模型。

扫描二维码关注公众号,回复: 16806890 查看本文章

要使用,请安装 PyTorch 和 OpenCV(用于视频) - 我相信这就是你所需要的,除了通常的库,如 numpy。你需要一个GPU来运行Hopenet(目前)。

要使用 dlib 人脸检测对视频进行测试(头部中心将跳跃):

python code/test_on_video_dlib.py --snapshot PATH_OF_SNAPSHOT --face_model PATH_OF_DLIB_MODEL --video PATH_OF_VIDEO --output_string STRING_TO_APPEND_TO_OUTPUT --n_frames N_OF_FRAMES_TO_PROCESS --fps FPS_OF_SOURCE_VIDEO

要使用您自己的人脸检测对视频进行测试(我们建议使用 dockerface,头部中心会更平滑):

python code/test_on_video_dockerface.py --snapshot PATH_OF_SNAPSHOT --video PATH_OF_VIDEO --bboxes FACE_BOUNDING_BOX_ANNOTATIONS --output_string STRING_TO_APPEND_TO_OUTPUT --n_frames N_OF_FRAMES_TO_PROCESS --fps FPS_OF_SOURCE_VIDEO

人脸边界框批注应采用 Dockerface 格式(n_frame x_min y_min x_max y_max置信度)。

预训练模型:

300W-LP,阿尔法1

300W-LP,阿尔法2

300W-LP,alpha 1,图像质量稳定

有关alpha代表的更多信息,请阅读论文。前两个模型用于验证纸张结果,如果用于真实数据,我们建议使用最后一个模型,因为它对图像质量和模糊更可靠,并且在视频上提供良好的结果。

如果您有问题,请打开一个问题。

一些很酷的人在其他平台上对这项工作进行了一些非常酷的实现:

胶子

MXNet

TensorFlow with Keras

一个非常酷的HopeNet轻量级版本:

深头姿势灯

@InProceedings{Ruiz_2018_CVPR_Workshops,
author = {Ruiz, Nataniel and Chong, Eunji and Rehg, James M.},
title = {Fine-Grained Head Pose Estimation Without Keypoints},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2018}
}

猜你喜欢

转载自blog.csdn.net/weixin_62075168/article/details/128424035