13

我已经尝试使用 OpenCV 使用他们 wiki 上提供的文档进行人脸识别。它工作正常,可以检测多个人脸。但是,该站点上没有提供有关 3D 对象检测或头部跟踪的数据。下面提供了代码和 wiki 的链接:

人脸识别

级联分类器

虽然 wiki 确实提供了有关人脸检测的足够信息,但您可能已经发现,但并未提供 3D 人脸识别方法。

我想了解与 3D 人脸识别和跟踪相关的项目,以便我可以查看源代码并尝试让项目做同样的事情。

4

4 回答 4

8

这可能来晚了,但 Willow Garage 正在运行另一个名为点云库 (PCL) 的项目,该项目完全专注于 3D 数据处理任务。人脸识别是他们用来宣传该项目的用例之一。当然,这一切都是免费的……

http://pointclouds.org

于 2013-03-13T19:37:04.200 回答
1

有很多方法。我只能为您指出正确的方向。人脸识别示例通常提供眼睛的子检测。所以实际上你知道面部和眼睛的位置。以类似或其他方式,您还可以检测嘴唇。现在,当您拥有至少三个对象点(这次是面向)时,您可以使用三角测量计算其在房间中的 3D 位置。这部分示例存在于作为 OpenCV 示例的 find_obj.cpp 中。仅此示例使用来自 SURF 的 x 点并根据此信息绘制矩形。还可以使用 CvFindHomography 查看其他任何内容。

于 2012-08-09T05:02:07.343 回答
1

从OpenCV 2.4.2开始,出现了人脸检测跟踪的头文件:opencv2/contrib/detection_based_tracker.hpp

头文件定义了一个名为 DetectionBasedTracker 的类。它定义的跟踪机制在后台使用 haar 级联来检测对象。跟踪比 OpenCV Haar 实现快得多(但是,有些人发现它不太准确)。我个人发现它在安卓设备上运行良好。在这里可以找到一些实现人脸检测和跟踪器的示例代码:http: //bytesandlogics.wordpress.com/2012/08/23/detectionbasedtracker-opencv-implementation/

于 2013-03-13T15:02:28.090 回答
1

您应该查看适用于您所描述任务的活动形状模型活动外观模型。OpenCV 只为您提供 2D 检测方法,而参考方法(现在在该领域非常流行)跟踪分布在面部上的一组 3D 点以及描述其外观的纹理。

维基百科页面将为您提供一些上述方法的实现链接。

如果你想知道头部在世界坐标中的 3D 参数(例如用于凝视检测),那么你应该谷歌搜索关键词“3D 头部跟踪”和“头部姿势估计”。

于 2013-03-13T15:14:32.057 回答