Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 定位系统中摄像机倾斜的程序校正_Image_Image Processing_Computer Vision - Fatal编程技术网

Image 定位系统中摄像机倾斜的程序校正

Image 定位系统中摄像机倾斜的程序校正,image,image-processing,computer-vision,Image,Image Processing,Computer Vision,快速介绍: 我们正在开发一种定位系统,其工作原理如下。我们的相机位于机器人上,指向上方(看着天花板)。在天花板上,我们有一些类似地标的东西,因为我们可以计算机器人的位置。看起来是这样的: 我们的问题: 相机倾斜了一点(我想是0-4度),因为机器人的表面不是很均匀。这意味着,当机器人转过身但保持在相同的坐标时,摄像机会看到天花板上的不同位置,因此我们的定位程序会产生机器人的不同位置,即使它只是转过身,一点也没有移动 我们当前的(硬编码)解决方案: 我们已经从相机上拍摄了一些测试照片,绕着镜头轴旋

快速介绍:
我们正在开发一种定位系统,其工作原理如下。我们的相机位于机器人上,指向上方(看着天花板)。在天花板上,我们有一些类似地标的东西,因为我们可以计算机器人的位置。看起来是这样的:

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

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

我们解决方案的问题:

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

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

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

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


您的实际方法可能更简单、更可靠。正如您所描述的,它似乎可以自动化以变得用户友好。让机器人自行启动,并实际确定哪一点仍在图片中的同一位置。

你不能在摄像机下方放置某种水平平台吗?我相信有一个软件解决方案可以解决这个问题,但它可能非常重要,可能很难实现,您如何知道它在所有情况下都能工作?调平相机似乎是一个更简单、更全面的解决方案。是的,我们也考虑过硬件解决方案,特别是使用靶心水准仪,但我们还想了解其他可能性(如果存在)。谢谢你的回答。事实上,完全自动配置似乎不太可能,我们的教授也持同样的观点。我们考虑过使用加速计,市场上有一些非常小的加速计。我们将看到:)我们刚刚在i2c总线上的电路板上安装了一个加速计。似乎工作得很好,现在我们必须为它编写一些代码,希望它能工作。只是想让你知道。