gpt4 book ai didi

c++ - 从3D kinect模型中提取人脸

转载 作者:行者123 更新时间:2023-11-30 02:55:00 25 4
gpt4 key购买 nike

我正在使用 Kinect 创建一个人的 3D 模型。我得到的是这样的:

Kinect image

我将其导出到 Wavefront .obj 文件。但我只对脸部本身感兴趣,并想移除它周围的一切。由于 Kinect 有一个 RGB 相机,我可以毫无问题地在 RGB 中进行人脸检测。但这给了我一个包含面部的 640x480 图像内的矩形,我如何将其转换为 3D 网格?

最佳答案

我之前做过类似的事情:

Max in depth

视频 here

我做的很简单:

  1. 使用OpenCV的haar级联检测RGB图像中的人脸
  2. 使用检测到的面部矩形从深度图像中仅裁剪面部区域
  3. 将深度图像转换为深度值(3d 点云/网格等)

理想情况下,您会校准两个(rgb、深度)流。

我使用的是 libreenect,但该技术应该适用于 OpenNI、KinectSDK。

我注意到您的应用程序的标题是 KinectFusion,所以我猜您是从 Microsoft Kinect SDK 1.7 中的 Kinect Fusion 示例开始的。应该有一个内置函数来对齐 rgb 和深度流。关于 CV 部分,您可以在线找到 Kinect 到 OpenCV Mat 的转换,例如 Dennis Ippel functions例如。 EgmuCV还有那个人脸检测。而且 KinectSDK 本身允许您在 3D 中跟踪面部,所以我怀疑 SDK 中一定有用于面部检测(甚至不是跟踪)的东西。我自己对 Kinect SDK 的使用还不够多,所以目前不能说得更具体。

简而言之:

  1. 检测人脸
  2. 在深度图中隔离人脸区域
  3. 将深度图人脸区域转换为点云/网格等。

关于c++ - 从3D kinect模型中提取人脸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com