我已经尝试使用 OpenCV 使用他们 wiki 上提供的文档进行人脸识别。它工作正常,可以检测多个人脸。但是,该站点上没有提供有关 3D 对象检测或头部跟踪的数据。下面提供了代码和 wiki 的链接:
虽然 wiki 确实提供了有关人脸检测的足够信息,但您可能已经发现,但并未提供 3D 人脸识别方法。
我想了解与 3D 人脸识别和跟踪相关的项目,以便我可以查看源代码并尝试让项目做同样的事情。
我已经尝试使用 OpenCV 使用他们 wiki 上提供的文档进行人脸识别。它工作正常,可以检测多个人脸。但是,该站点上没有提供有关 3D 对象检测或头部跟踪的数据。下面提供了代码和 wiki 的链接:
虽然 wiki 确实提供了有关人脸检测的足够信息,但您可能已经发现,但并未提供 3D 人脸识别方法。
我想了解与 3D 人脸识别和跟踪相关的项目,以便我可以查看源代码并尝试让项目做同样的事情。
这可能来晚了,但 Willow Garage 正在运行另一个名为点云库 (PCL) 的项目,该项目完全专注于 3D 数据处理任务。人脸识别是他们用来宣传该项目的用例之一。当然,这一切都是免费的……
有很多方法。我只能为您指出正确的方向。人脸识别示例通常提供眼睛的子检测。所以实际上你知道面部和眼睛的位置。以类似或其他方式,您还可以检测嘴唇。现在,当您拥有至少三个对象点(这次是面向)时,您可以使用三角测量计算其在房间中的 3D 位置。这部分示例存在于作为 OpenCV 示例的 find_obj.cpp 中。仅此示例使用来自 SURF 的 x 点并根据此信息绘制矩形。还可以使用 CvFindHomography 查看其他任何内容。
从OpenCV 2.4.2开始,出现了人脸检测和跟踪的头文件:opencv2/contrib/detection_based_tracker.hpp
头文件定义了一个名为 DetectionBasedTracker 的类。它定义的跟踪机制在后台使用 haar 级联来检测对象。跟踪比 OpenCV Haar 实现快得多(但是,有些人发现它不太准确)。我个人发现它在安卓设备上运行良好。在这里可以找到一些实现人脸检测和跟踪器的示例代码:http: //bytesandlogics.wordpress.com/2012/08/23/detectionbasedtracker-opencv-implementation/