问题标签 [face-alignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
183 浏览

pytorch - 什么是参考面部点以及它们是如何创建的?

我正在尝试使用face.evoLVe库,它是 PyTorch 中的高性能人脸识别库。通过代码,我遇到了一个名为的坐标列表REFERENCE_FACIAL_POINTS

在代码的下方,这些数字被转换为 numpy 数组,并在align_trans.py中大量使用

我有一些问题:

  • 这些数字究竟是什么?阅读评论,我确定它们是眼睛、嘴唇等的位置,但它们究竟代表什么以及它们是如何计算的?

  • 似乎它们与输入图像的大小紧密耦合[用于训练(至少)]。知道了这一点,如何为更新的图像尺寸计算新的参考点?

  • 这些点仅适用于正面姿势吗?还是他们也会在个人资料等方面工作?如果他们不这样做,我们如何为个人资料或其他随机面部姿势添加参考点?

0 投票
2 回答
1903 浏览

python - 使用 DNN 人脸检测器在 Python 中进行人脸对齐

我正在尝试在 python 中做面部对齐代码。我正在关注这篇文章,但在这篇文章中使用了人脸检测 dlib。以下是原始代码:

我有一些人脸图像没有被 dlib 人脸检测器检测到。所以我正在修改上面的代码并使用 DNN 人脸检测。下面是我的代码:

但在上面的代码faceAligned中都是零,因此是一个空白图像。我不确定我做错了什么。谁能指出错误并帮助我解决问题。请帮忙。谢谢

0 投票
1 回答
1277 浏览

computer-vision - 如何将带有 grad 的 Torch 张量列表转换为张量

我有一个名为 pts 的变量,其形状为 [batch, ch, h, w]。这是一个热图,我想将其转换为第二个坐标。目标是,pts_o = heatmap_to_pts(pts),其中 pts_o 将是 [batch, ch, 2]。到目前为止我已经写了这个函数,

错误显示“cat(): 带有 out=... 参数的函数不支持自动微分,但其中一个参数需要 grad。”。它无法进行操作,因为 pt_num 中的张量需要 grad”。

如何将该列表转换为张量?

0 投票
0 回答
35 浏览

face-detection - 无法导入人脸对齐

我试图在我的程序中使用 face_alignment。我使用 pip 安装了 face-alignment。但在导入输入图像描述时仍然出现错误

0 投票
0 回答
673 浏览

python - 将 2D numpy 数组转换为 STL 文件

我正在使用[face-alignment][1]模块来获取人脸的 2D 点,很像 DLIB 人脸标志检测器,但这次使用的是 Z-Index。我想将该二维数组转换或保存为 STL 文件。但是,我习惯于从他们的文档numpy-stl中转换它,每当我尝试编写网格时,它总是会出错。下面是我的代码和错误。任何超出的建议也是受欢迎的。numpy-stl

错误:

如果我删除numpy-stl代码块,这是 matplotlib 中的输出。

matplotlib 的输出

0 投票
0 回答
15 浏览

python - 如何通过 3d 地标进行人脸对齐?

例如,我使用这种方法获得了面部的 3d 地标。我想用它来稳定视频上的帧。所以我必须使用两个相邻的帧并使用已建立的 3d 地标对齐它们。我知道我可以为此使用仿射变换。但是我该如何实现呢?据我了解,opencv 函数仅处理 2d 点。

0 投票
0 回答
22 浏览

python - 是否有使用伪 3d 面部标志的面部对齐方法?

有几种方法可以使用 2d 关键点对 2d 图像执行面部对齐。想象有两个框架,一个有正确的脸,称之为“原始”。还有一个是稍有变化,比如头部有一点转动,或者瞳孔有一点移动,就叫做“转动”。通常的对齐管道是

  1. 检测人脸并得到矩形(例如dlib.get_frontal_face_detector()
  2. cv2.AKAZE_create().detectAndCompute()在“原始”和“旋转”上查找关键点(例如)
  3. 匹配他们。
  4. 对“旋转”图像执行cv2.warpAffine()cv2.warpPerspective()转换以将其调整为“原始”

我需要这样对齐才能稳定视频。给定两个差异很小的框架,我需要快速且良好地对齐它们。

由于面不是平面的,这种方法无法实现所需的变换。头部可能被放置在同一个地方,但它仍然是旋转的。我想知道有没有办法使用伪 3d 面部标志来代替?