【发布时间】:2019-03-07 23:36:05
【问题描述】:
我正在研究一种在现实世界中校准激光投影仪的解决方案。这个项目有几个目标。
1. Take in a minimum of four points measured in the real world in 3d space that represent the projection surface.
2. Take in coordinates from the laser that are equivalent to the points received in part 1
3. Determine if the calibration file matches the real world captured points and show a deviation between the coordinate spaces
4. Using the data from the previous steps, take coordinates in 3d real world space and translate them to laser coordinates.
示例:
矩形平桌的每个角落都有一个目标。目标的其中一个角被垫片抬高 50 毫米(约 2 英寸)。仅仅因为目标被抬高了 50 毫米,我不希望我的投影面倾斜。我想考虑高度,并且仍然将最终产品投影在平坦的 Z = 0 平面上。这些目标在现实世界空间中的坐标如下所示(数值均以毫米为单位):
激光坐标范围从-32000到32000,它们使用光电传感器捕捉现实世界中的目标,并在激光坐标系中捕捉到返回值。捕获的坐标如下所示。 (值范围从 -32000 到 32000,我不知道它们的单位)。
目标:
确定捕获的激光坐标是否正确代表所提供的真实世界坐标(如果不是,则确定与这些坐标的偏差),然后提供变换矩阵或其他方法,将 3d 真实世界空间中的点准确地变换到 2d 激光空间.
我尝试过的:
我已尝试实施几种不同的透视校正解决方案。一个来自 OpenCvSharp3,一个来自代码项目线程。这两种方法同样有效,但都有问题。
1. I cannot determine a deviation from the real world. The points are perfectly mapped to the perspective representation so I cannot determine if they are misaligned from the real world expectation
2. I cannot represent source points in a 3d space. Targets may be placed arbitrarily in the Z-direction, and with perspective mapping I cannot seem to account for that Z Direction.
如果有人之前尝试过/解决过/遇到过这个问题并且可以提供任何见解,我们将不胜感激。
提前谢谢你!
【问题讨论】:
-
您目前有 2 架飞机,但没有一架。 3d 世界中的 2 个三角形是
{0,597,0}, {0,0,0}, {902,0,50}和{0,597,0}, {902,0,50}, {902,597,0} -
@Franck 目标可以任意定位在不同的高度,但由于我知道高度,我想将它们考虑在内,并在 Z = 0 平面上创建一个可投影的 2d 表面。所以本质上,一旦校准 2d 投影表面将由 {0,0,0},{0,597,0},{902,597,0},{902,0,0} 50 仅与注意位置相关目标。
-
我强硬你的意思是你想得到正确的矩阵,但我看错了。现在我明白了这个问题。解决方案非常简单。您需要创建 2 个在两个世界中都匹配的平面。现在您知道激光平面与现实世界相比是 RotZ -90°。您只需将激光平面重叠到现实世界的平面上,然后将 3d 点从一个平面投影到另一个平面。然后该点需要针对单位因子进行校正。在 X 中,您的对象是 902,在激光中是 36,000。因子约为 40(使用您检测到的点计算)并将其应用于 X、Y 投影。
-
@Franck 我尝试制作比例、旋转和平移矩阵来移动坐标系之间的点,但它不允许我考虑一个校准点是提高。为了做到这一点,我相信第一步是计算投影仪在现实世界坐标中的位置,但我不知道如何开始。如果我可能误解了您在说什么,并且您认为您的解决方案可行,请将其格式化为答案,以便我可以尝试并将其标记为正确(如果可行)。谢谢:)
-
是您的真实表面始终平坦。我的意思是无论参考点位置如何,您都想投影到哪里
标签: c# opencv image-processing camera-calibration homography