繁体   English   中英

有没有一种方法可以将摄像机的视平面与场景中的物体表面平行对齐?

[英]Is there a way to align the view plane of my camera parallel to the object surface in the scene?

我以正交的方式设置了两个摄像头,以便每个摄像头都能看到放置在中间的立方体的相邻表面之一,并且两个摄像头的原理线之间的角度为90度。 我正在考虑在正在查看的立方体的每一侧粘贴两个棋盘图案以帮助对齐。 我应该如何进行或还有其他选择?

布局基本上是这样的: 在此处输入图片说明

原则线之间的角度必须非常接近90度,否则至少我可以以某种方式量化误差,因此我放弃了物理方法。

提前致谢。

编辑:
立方体的中心与两个摄像机的视平面之间的距离为400英寸;
相机的焦距为0.77英寸;
FOV(视场)的水平视角为0.95 rad;
视图的纵横比为1280x720。

该多维数据集仅用作设置摄像机的参考对象。 当我假设一个1m x 1m x 1m的立方体是合理的时,它可以大也可以小。

在此可以忽略热条件的影响。

我要针对的误差是+ -1度。 与在相机侧使用诸如气泡管之类的东西相比,在目标侧进行校准似乎给了我更少的误差。

我一直在使用棋盘姿势估计方法( https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_calib3d/py_pose/py_pose.html )。 但是,当棋盘表面的法线矢量与来自相机视平面的法线矢量对齐时,它将停止工作或不再精确。

对于上述问题,还有其他适当的解决方法吗?

姿势估计应该足够(为什么在您的情况下它停止工作?)。 否则,您可能需要进行其他校准,请滚动至下方!

第一。 您可以定义两个摄像机的固有参数。

第二。 您放置棋盘图案是一个不错的选择,因为通过检测角点可以获得更准确的图像点结果。 您已经知道这些图案的几何形状和距离,并像标准opencv一样将棋盘的左上角定义为原点(0,0,0)(是吗?)。

第三。 您使用solvePnP来获取姿势估计(旋转和平移)。 您必须将(并要小心)将初始旋转和平移到solvePnP()中,因为这将确定您的整体结果。

第四。 您可以将相机位置调整为所需的90度。 此时,请确保放置棋chess的立方体侧面也完全成90度。 您可以结合使用opencv的手动校准和姿势估计。

替代方案:(光源校准)

您可以使用光学物理学中的干涉仪概念,用光源替换相机并仔细标记其位置。 用棱镜镜头更换立方体,并仔细标记其位置。

您可以借用干涉仪概念并按自己的意愿进行设置。

获得所需的物品后,将相机放回原处,并将其作为上述步骤3的初始旋转和平移位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM