rotation.matmul(torch.inverse(intrinsics)).view(B, N, 1, 1, 1, 3, 3).matmul(points)是在干什么?
时间: 2023-10-01 19:11:36 浏览: 152
pytorch:torch.mm()和torch.matmul()的使用
这行代码主要是将相机坐标系下的3D点转换为图像坐标系下的2D点。具体来说,它将旋转矩阵和相机内参矩阵相乘得到相机矩阵,再将相机矩阵的逆矩阵与旋转矩阵相乘得到外参矩阵,最后将外参矩阵和内参矩阵相乘得到投影矩阵。投影矩阵乘上3D点的齐次坐标(即在末尾添加了一个1),得到投影坐标(在末尾的第三个元素除以前两个元素,即x,y,z->x/z,y/z,1),最后将投影坐标的前两个元素作为2D点的像素坐标。这个过程可以用矩阵乘法的形式表示,即左乘旋转矩阵的逆矩阵、内参矩阵的逆矩阵和3D点的齐次坐标,右乘3D点的齐次坐标,最终得到2D点的像素坐标。
阅读全文