快速介绍:
我们正在开发一个定位系统,它的工作方式如下。我们的摄像头位于机器人上,指向上方(看着天花板)。在天花板上,我们有像地标一样的东西,多亏了他,我们才能计算出机器人的位置。它看起来是这样的:

我们的问题:
相机有点倾斜(我想是0-4度),因为机器人的表面不是完全平坦的。这意味着,当机器人转身但保持在相同的坐标上时,摄像头会看着天花板上的不同位置,因此我们的定位程序会产生机器人的不同位置,即使它只转过身来,没有一点移动。
我们当前的(硬编码)解决方案:
我们用相机拍摄了一些测试照片,让它绕着镜头轴旋转。从图片中我们可以推断出它在图片的“向上方向”上倾斜了大约4度。使用一些简单的几何变换,我们已经设法减少了倾斜效果,并找到了真实的相机位置。在下面的图片中,灰点标记了图片的中心,黑点是相机所在的天花板上的真实位置。黑点是从灰点转换而来的(其位置是通过校正灰点位置来计算的)。你可以很容易地注意到,灰色的圆点在天花板上形成了一个圆圈,黑点是这个圆圈的中心。




我们解决方案的问题是:
我们的方法是完全不可移植的。如果我们把相机移到一个新的机器人上,倾斜的角度和方向必须完全重新校准。因此,我们希望将校准阶段留给用户,这将要求拍摄一些照片,由他评估倾斜参数,然后在程序中设置它们。我的问题是:你能想出更好的(更自动化的)解决方案来计算倾斜参数或校正图片上的倾斜吗?
发布于 2012-12-31 00:46:12
干得好。自动校准是一个很好的挑战。
一个想法是使用屋顶瓦片上的平行线:如果相机完全水平,那么所有的线在图片中也将是平行的。如果相机是倾斜的,那么所有的线都将是割线(它们在消失点相交)。
现在,这可能很难实现。对于你正在使用的相机,需要首先校正失真,以便线条确实是直的。
您的实际方法可能更简单、更健壮。正如你所描述的,它似乎可以自动变得对用户友好。让机器人自动启动,并务实地识别图片中哪个点保持在同一位置。
https://stackoverflow.com/questions/14090787
复制相似问题