一 、背景
自动驾驶中经常涉及到不同坐标系之间的坐标转换,在BEV方案中用的比较多的是自车坐标到图像坐标的转换,系统整理了一下坐标转换过程流程。
二 、方法
旋转矩阵计算方法:
translation: 平移参数[‘x’, ‘y’, ‘z’]
高阶畸变模型参数:
distortion = torch.tensor(distortion)
k1 = distortion[:, 0].unsqueeze(-1).to(x.device)
k2 = distortion[:, 1].unsqueeze(-1).to(x.device)
k3 = distortion[:, 2].unsqueeze(-1).to(x.device)
p1 = distortion[:, 3].unsqueeze(-1).to(x.device)
p2 = distortion[:, 4].unsqueeze(-1).to(x.device)
k4 = distortion[:, 5].unsqueeze(-1).to(x.device)
k5 = distortion[:, 6].unsqueeze(-1).to(x.device)
k6 = distortion[:, 7].unsqueeze(-1).to(x.device)
高阶畸变模型加畸变公式:
r2 = x**2 + y**2
x_temp = x * (1 + k1 * r2 + k2 * r2**2 + k3 * r2**3) / (1 + k4 * r2 + k5 * r2**2 + k6 * r2**3) + 2 * p1 * x * y + p2 * (r2 + 2 * x**2)
y_temp = y * (1 + k1 * r2 + k2 * r2**2 + k3 * r2**3) / (1 + k4 * r2 + k5 * r2**2 + k6 * r2**3) + p1 * (r2 + 2 * y**2) + 2 * p2 * x * y