【问题标题】:camera frame world coordinates relative to fiducial相对于基准的相机框架世界坐标
【发布时间】:2015-04-08 18:14:42
【问题描述】:

我正在尝试确定世界坐标中的相机位置,相对于基于场景中找到的基准标记的基准位置。

此处描述了我确定 viewMatrix 的方法: Determine camera pose?

我有从训练标记到场景图像的旋转和平移 [R|t]。给定相机校准训练以及相机固有结果,我应该能够根据场景图像中标记的透视和方向来辨别相机在世界坐标中的位置。

谁能指导我进行类似的讨论或示例?我想根据基准标记知道我的相机位置,我确信以前已经做过类似的事情,我只是没有搜索正确的关键字。

感谢您的指导。

【问题讨论】:

    标签: opencv computer-vision camera-calibration perspectivecamera


    【解决方案1】:

    在世界坐标下是什么意思?如果您的意思是对象坐标,那么您应该使用solvepnp 的结果的逆变换。 给定一个视图矩阵[R|t],我们有inv([R|t]) = [R'|-R'*t],其中R'R 的转置。在 OpenCV 中:

    cv::Mat rvec, tvec;
    cv::solvePnP(objectPoints, imagePoints, intrinsics, distortion, rvec, tvec);
    
    cv::Mat R;
    cv::Rodrigues(rvec, rotation);
    
    R = R.t();          // inverse rotation
    tvec = -R * tvec;   // translation of inverse
    
    // camPose is a 4x4 matrix with the pose of the camera in the object frame
    cv::Mat camPose = cv::Mat::eye(4, 4, R.type());
    R.copyTo(camPose.rowRange(0, 3).colRange(0, 3)); // copies R into camPose
    tvec.copyTo(camPose.rowRange(0, 3).colRange(3, 4)); // copies tvec into camPose
    

    更新 #1:

    solvePnP的结果

    solvePnP 在给定一组对象点(模型坐标)、它们对应的图像投影(图像坐标)以及相机矩阵和畸变系数的情况下估计对象位姿。

    对象姿态由两个向量给出,rvectvecrvec 是图像上看到的模式视图的旋转矩阵的紧凑表示。也就是说,rvec 与相应的tvec 一起将基准模式从模型坐标空间(其中指定了对象点)带到相机坐标空间

    也就是说,我们在相机坐标空间中,它随着相机移动,相机始终在原点。相机轴与图像轴具有相同的方向,所以

    • x轴指向相机右侧,
    • y 轴指向下方,
    • 并且z轴指向相机视图的方向

    同样适用于模型坐标空间,所以如果你在基准图案的右上角指定原点,那么

    • x 轴指向右侧(例如,沿着图案的较长边),
    • y 轴指向另一侧(例如沿着较短的一侧),
    • z 轴指向地面。

    您可以将世界原点指定为对象的第一个点,即第一个对象的点设置为(0, 0, 0),所有其他点都有z=0(在平面图案的情况下)。然后tvec(合并rvec)指向您放置基准图案的世界坐标空间的原点。 solvePnP 的输出与对象点的单位相同。

    查看以下内容:6dof positional tracking。我认为这与您需要的非常相似。

    【讨论】:

    • 感谢您的意见。这与我运行的代码非常相似。我想只是为了确定,将 tvec 结果从像素转换为真实世界单位(即厘米)的最佳方法是获取原始基准图像,以 [cm] 和 [px] 为单位进行测量然后取比例?
    • 感谢 Kornel,不胜感激!
    • 您对此有什么想法吗:stackoverflow.com/questions/28407955/…
    猜你喜欢
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多