The 3D point cloud tool uses a right-handed coordinate system. The coordinate system of the point cloud data is the world coordinate system, and the coordinate system of the point cloud is up with the Z axis (as shown in the figure below).
2D Image Coordinate System
The origin of the image in the 2D & 3D fusion tool mapping of the point cloud tool is in the upper left corner of the image. The horizontal represents the X axis. The vertical represents the Y axis.
The X value becomes larger to the right, and the Y value becomes larger downward (as shown in the figure below).
Camera parameters (for 2D & 3D fusion datasets)
The 2D & 3D mapping conversion process in the tool is basically the same as that of the general dataset, and the conversion parameters include camera extrinsic parameters and camera intrinsic parameters.
// poses parameter from poses.json
function createExternalMatrix(poses) {
let quaternion = new THREE.Quaternion(pos.heading.x, pos.heading.y, pos.heading.z, pos.heading.w);
let position = new THREE.Vector3(pos.position.x, pos.position.y, pos.position.z);
let external_matrix = new THREE.Matrix4();
external_matrix.compose(position, quaternion, new THREE.Vector3(1, 1, 1));
// elements of THREE.Matrix4 is column-major, need to convert to row-major
external_matrix.transpose()
return external_matrix;
}
// internal parameters from intrinsics.json
// { fx: 933.4667, fy: 934.6754, cx: 896.4692, cy: 507.3557 }
🛣️
📸
The position information position of the 3D annotation result is the coordinate value of the relative point cloud coordinate system
The coordinate position information in the 2D annotation result is the value relative to the image coordinate system.