【发布时间】:2018-07-07 15:36:20
【问题描述】:
我们从 Google Street View (GSV) API 抓取了一组图片。我想从 2D 图像估计 3D 世界坐标给定以下:
1.拍摄图像的相机的 GPS 位置(即纬度和经度)
GPS坐标到平移矩阵的转换:使用了2种类型的转换 获取平移矩阵的方法 -> UTM 转换并转换为笛卡尔坐标。
- UTM 转换:使用 Python 的 UTM 库转换 GPS 坐标 到 UTM 坐标。使用具有固定高度的北和东值来创建平移矩阵。
- 笛卡尔转换 - 使用以下公式生成平移矩阵:
x = 半径*math.cos(纬度)*math.cos(经度)
y = 半径*math.cos(纬度)*math.sin(经度)
z = 半径*math.sin(纬度)
2。使用 openSFM 计算的旋转矩阵(即 SFM 算法)。
该库提供 alpha、beta、gamma 角度(以弧度表示)映射到 yaw、pitch 和 roll 角度。使用公式(http://planning.cs.uiuc.edu/node102.html)构造旋转矩阵
旋转矩阵 (R):R(alpha, beta, gamma)= R_z (alpha) * R_y (beta) * R_x (伽马)
3.根据视场角和图像尺寸, 我们估计校准矩阵如下(https://codeyarns.com/2015/09/08/how-to-compute-intrinsic-camera-matrix-for-a-camera/enter link description here):
K = [[f_x s X], [0 f_y Y], [0 0 1]]
x 和 y 是图像尺寸的一半(即 x = 宽度/2 和 y = 高度/2)
GSV API 提供视场角 θ(例如,45 或 80),因此焦距可以计算为
f_x= x/tan(θ/2)
f_y= y/tan(θ/2)
使用矩阵 T、R 和 K,我们如何估计 2D 图像中每个像素的 3D 世界坐标?
【问题讨论】:
标签: computer-vision structure-from-motion