首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定位系统中相机倾斜的程序化校正

定位系统中相机倾斜的程序化校正
EN

Stack Overflow用户
提问于 2012-12-30 20:41:58
回答 1查看 476关注 0票数 6

快速介绍:

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

我们的问题:

相机有点倾斜(我想是0-4度),因为机器人的表面不是完全平坦的。这意味着,当机器人转身但保持在相同的坐标上时,摄像头会看着天花板上的不同位置,因此我们的定位程序会产生机器人的不同位置,即使它只转过身来,没有一点移动。

我们当前的(硬编码)解决方案:

我们用相机拍摄了一些测试照片,让它绕着镜头轴旋转。从图片中我们可以推断出它在图片的“向上方向”上倾斜了大约4度。使用一些简单的几何变换,我们已经设法减少了倾斜效果,并找到了真实的相机位置。在下面的图片中,灰点标记了图片的中心,黑点是相机所在的天花板上的真实位置。黑点是从灰点转换而来的(其位置是通过校正灰点位置来计算的)。你可以很容易地注意到,灰色的圆点在天花板上形成了一个圆圈,黑点是这个圆圈的中心。

我们解决方案的问题是:

我们的方法是完全不可移植的。如果我们把相机移到一个新的机器人上,倾斜的角度和方向必须完全重新校准。因此,我们希望将校准阶段留给用户,这将要求拍摄一些照片,由他评估倾斜参数,然后在程序中设置它们。我的问题是:你能想出更好的(更自动化的)解决方案来计算倾斜参数或校正图片上的倾斜吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-31 00:46:12

干得好。自动校准是一个很好的挑战。

一个想法是使用屋顶瓦片上的平行线:如果相机完全水平,那么所有的线在图片中也将是平行的。如果相机是倾斜的,那么所有的线都将是割线(它们在消失点相交)。

现在,这可能很难实现。对于你正在使用的相机,需要首先校正失真,以便线条确实是直的。

您的实际方法可能更简单、更健壮。正如你所描述的,它似乎可以自动变得对用户友好。让机器人自动启动,并务实地识别图片中哪个点保持在同一位置。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14090787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档