Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在openCV上使用多个goodfeaturetotrack点进行6自由度检测_Opencv_Computer Vision_Tracking - Fatal编程技术网

在openCV上使用多个goodfeaturetotrack点进行6自由度检测

在openCV上使用多个goodfeaturetotrack点进行6自由度检测,opencv,computer-vision,tracking,Opencv,Computer Vision,Tracking,我目前正在使用普通网络摄像头进行头部运动跟踪项目。人脸检测和LK跟踪工作良好,但希望建立更全面的东西。是否可以使用一帧到下一帧中特征点的坐标来估计对象的6自由度(缩放、旋转)运动?直觉上我认为这是可能的,因为我们可以假设所有帧上的特征点落在同一平面上。我希望测量对象的俯仰、偏航、横摇和缩放。如果我们假设主体仅通过查看任意两个给定特征点之间的距离差来体验平移(无俯仰-偏航-滚动),则缩放很容易。俯仰-偏航-横摇和缩放在两者结合时变得棘手。我试图找出Kinect是如何捕捉运动的,因为我猜我可以像对待

我目前正在使用普通网络摄像头进行头部运动跟踪项目。人脸检测和LK跟踪工作良好,但希望建立更全面的东西。是否可以使用一帧到下一帧中特征点的坐标来估计对象的6自由度(缩放、旋转)运动?直觉上我认为这是可能的,因为我们可以假设所有帧上的特征点落在同一平面上。我希望测量对象的俯仰、偏航、横摇和缩放。如果我们假设主体仅通过查看任意两个给定特征点之间的距离差来体验平移(无俯仰-偏航-滚动),则缩放很容易。俯仰-偏航-横摇和缩放在两者结合时变得棘手。我试图找出Kinect是如何捕捉运动的,因为我猜我可以像对待Kinect的红外模式一样对待特征点

请对此提出建议。在我尝试其他方法之前,我需要找出这个方法的可行性

谢谢,
开尔文(Kelvin)

不能完全说明您的建议的可行性,因为这取决于您的特征提取方法,即如何获取特征点?如果对象始终面向摄影机,则可以应用活动外观模型进行头部姿势估计,这将告诉您统计计算的三维人脸网格适合新人脸图像的位置。一个叫Pedro Martins的家伙在这方面做了很多工作,包括AAM+位置跟踪和头部姿势估计。我自己也使用AAMs提取面部表情,这是一个问题,需要比6自由度更高的个人面部特征跟踪精度。对于AAM,除了它的跟踪应用文献外,还有很多开源实现,包括Pedro Martins自己的姿势估计

然而,正如我在上面所写的那样,我意识到你可能没有头部朝向相机的情况,从而使AAM的使用更少。您的数据看起来如何?你有视频样本吗


另外,关于Kinect,我不知道你们项目的条件,但Kinect 2将有足够的分辨率来跟踪全脸网格,但它将在明年发布。一般来说,我希望有人能对旋转/缩放估计的头部跟踪问题给出更有经验的答案。

似乎solvePNP或POSIT都足够好。但是由于solvePNP可以处理共面点,我认为solvePNP是一个更好的选择。嗨,Leonid,谢谢你的评论。我使用Haas cascade的组合来处理眼睛、鼻子和嘴巴,也使用好的特征来跟踪我的特征点。我在一个非常简单的模型上设置了这些点的z坐标(即嘴巴上的任何东西都是共面的)。现在还可以,但我的面部表情有问题,比如说眼睛的嘴在动。我正在寻找一个更准确的模型,可以照顾到这一点。基本上,我希望得到的是从一帧到另一帧跟踪人脸上的感兴趣区域,并测量人脸的平移和旋转。如果你有任何想法,请告诉我。