首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GSD计算的正确非最低点视图(UAV)

GSD计算的正确非最低点视图(UAV)
EN

Stack Overflow用户
提问于 2021-08-09 10:12:14
回答 1查看 513关注 0票数 1

你好,堆栈溢出社区,

因此,我正在进行一个项目,需要计算地面采样距离(GSD),以获取米/像素尺度。

低谷视图的GSD (直接仰视地面的摄像机)公式如下:

GSD =(飞行高度x传感器高度)/(焦距x图像高度和/或宽度)。

我读了多篇文章,比如:https://www.mdpi.com/2072-4292/13/4/573

如果相机在一个轴上有一个倾斜角,则需要进行如下校正:

其中θ是倾斜角和phi,正如他们在文章中所说的:

φ描述了像素在图像中的角位置:它与摄像机光轴的对应值为零,而对于其他像素则可能有正负值。

他们文章中的数字是:

所以我希望你和我一样,现在我有两个问题:

首先,如何精确计算给定像素相对光轴的角度位置(如何计算phi)?

2-在我的情况下,相机是在两个轴上旋转的,不只是一个像他们的例子一样,就像相机看起来不完全像道路,而是像朝向一边,更像这个:

那么,这个公式还会有更多的变化吗?我不知道如何在几何上得到正确的公式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 14:44:07

  1. 像素的角位置

正如您所链接的文章中所解释的,您可以通过了解摄像机的内在参数来计算像素角。首先,让我们做一些理论:本质矩阵是用来计算一个世界点在相机的图像平面上的投影。OpenCV文档很好地解释了这一点,其表达方式如下:

代码语言:javascript
复制
    ( x )   ( fx 0  cx )   ( X )
s * ( y ) = ( 0  fy cy ) * ( Y )
    ( 1 )   ( 0  0  1  )   ( Z )

其中,fx,fy是您的焦点,cx,cy是光学中心,x,y是图像中像素的位置,X,Y,Z是您的世界点(以米或毫米或其他任何单位)。

现在,通过反演矩阵,您可以从像素位置计算世界向量。世界矢量而不是世界点,因为相机和真实物体之间的距离d是未知的。

代码语言:javascript
复制
    ( X )          ( x )
d * ( Y ) = A^-1 * ( y )
    ( Z )          ( 1 )

然后你可以简单地计算光轴和这个世界矢量之间的角度,得到你的phi角度,例如,用这个答案中详细的公式,用相机的y轴作为标准。在伪码中:

代码语言:javascript
复制
intrinsic_inv = invert(intrinsic)
world_vector = multiply(intrinsic_inv, (x, y, 1))
optical axis = (0, 0, 1)

normal = (0, 1, 0)
dot = dot_product(world_vector, optical_axis)
det = dot_product(normal, cross_product(world_vector, optical_axis))
phi = atan2(det, dot)
  1. 摄像机角度

你可以用三个角度来表示相机的旋转:倾斜角度、平底角和滚动角。如果您想要可视化它们对应的内容,请看一看我快速搜索的这幅图像

倾斜角是在您的文章中名为theta,您已经知道了。平底角对GSD没有影响,至少如果我们假设地面是完全平坦的话。如果盘角是你所指的第二个旋转轴,那么你就没有什么可做的了。

然而,如果你有一个非零滚角,这将变得棘手。如果是这样的话,我建议改变范式,以避免与角度打交道。您可以使用仿射变换(旋转矩阵和平移向量)来表示摄像机的位置。这会让你把这个问题转化成一个一般的解析几何问题,然后通过世界向量与地面平面的交点来估计深度和尺度。它将更改以前的伪代码,以提供如下内容:

代码语言:javascript
复制
intrinsic_inv = invert(intrinsic)
world_vector = multiply(intrinsic_inv, (x, y, 1))
world_vector = multiply(rotation, world_vector) + translation
world_point = intersection(world_vector, ground_plane)

然后通过计算相邻像素世界点之间的差来计算比例尺。

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

https://stackoverflow.com/questions/68710337

复制
相关文章

相似问题

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