Skip to main content

Lidar Data Requirements

By organizing LiDAR data into a single JSON file, you can quickly import all required reconstruction data into MipMap Desktop with one click, or merge it with reconstruction parameters and pass it to the MipMap SDK for fully automatic textured model and Gaussian splatting reconstruction.

For easier distinction, the JSON file extension should be changed to .mpl before importing into MipMap Desktop (for example, mipmap_lidar.mpl).

Required data includes:

  • Point Cloud Data: Usually point cloud data in LAS format, with timestamps recorded in the gps_time field at acquisition time
  • Image Data: Image collection, including each image path, timestamp, position and attitude angle (optional), etc.
  • Camera Parameters: Camera focal length, principal point internal parameters, and distortion parameters

LIDAR Reconstruction Parameters

Parameter NameTypeRequiredDescription
coordinate_systemJSONYesCoordinate system of image POS, see coordinate_system for details
camera_meta_dataJSONYesCamera parameters, see camera_meta_data for details
image_meta_dataJSONYesImage collection, see image_meta_data for details
lidar_dataJSONYesLidar data, see lidar_data for details

coordinate_system Object

Field NameTypeDescriptionExample Value
typeintCoordinate system type: 0=LocalENU, 1=Local, 2=Geographic, 3=Projected, 4=ECEF2
type_namestringCoordinate system type name (optional, auxiliary description)"Geographic"
labelstringCoordinate system name (optional)"WGS 84"
epsg_codeintEPSG code (required for geographic/projected/geocentric coordinate systems)4326
wktstringWKT string (optional, alternative to epsg_code)"..."
origin_pointarray[3]Origin WGS84 coordinates [longitude, latitude, elevation] (required only when type=0 LocalENU)[114.12, 22.12, 0]
offsetarray[3]Coordinate system origin offset (optional)[0, 0, 0]

Below are the most common WGS84 and CGCS2000 coordinate systems:

{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Geographic",
"label": "WGS 84", // Coordinate system name
"epsg_code": 4326 // EPSG code
}
{
"type": 3, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Projected",
"label": "WGS 84 / UTM zone 50N", // Coordinate system name
"epsg_code": 32650 // EPSG code
}
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Geographic",
"label": "CGCS2000", // Coordinate system name
"epsg_code": 4490 // EPSG code
}
{
"type": 2, // 0=LocalENU, 1=Local, 2=Geographic, 3=Projected
"type_name": "Projected",
"label": "CGCS2000 / 3-degree Gauss-Kruger CM 114E", // Coordinate system name
"epsg_code": 4547 // EPSG code
}

camera_meta_data Object

Field NameTypeRequiredDescription
idintYesCamera unique ID
meta_dataobjectYesCamera metadata, see table below

meta_data sub-field description:

Field NameTypeRequiredDescription
projection_modelintYesLens model: 0-perspective lens (k1,k2,k3,p1,p2); 1-fisheye lens (k1,k2,k3,k4)
camera_namestringYesCamera name
widthintYesSensor width (pixels)
heightintYesSensor height (pixels)
parametersarrayYesCamera internal parameter group (perspective camera order: fx, fy, cx, cy, k1, k2, k3, p1, p2; fisheye camera order: fx fy cx cy k1 k2 k3 k4)
constant_parametersarrayNoArray of parameter indices to fix camera internal parameters during AT solution, specified according to the parameter order in parameters (index starts from 0), e.g., for perspective camera, specifying [0,1,2,3,4,5,6,7,8] means fixing all parameters
mask_pathstringNoPath to the binary mask image in PNG format. Pixel regions with value 0 are ignored during reconstruction processing (the mask is applied to all images captured by this camera)

Typical use case for a camera mask: when a fixed camera is mounted on a robot and the lens can capture parts of the robot body, you can use a mask to ignore those pixel regions during reconstruction.

Perspective lens
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"projection_model": 0, // Perspective camera
"camera_name": "common",
"width": 5280,
"height": 3956,
"parameters": [
3713.29, // fx
3713.29, // fy
2647.02, // cx
1969.28, // cy
-0.11257524, // k1
0.01487443, // k2
-0.00008572, // k3
1e-7, // p1
-0.02706411 // p2
]
}
}
]
Fisheye lens
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "fisheye", // Fisheye camera
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141, // fx
982.7593599212141, // fy
1747.6373897301492, // cx
1806.4116030074354, // cy
0.03702410479839055, // k1
-0.016007338300982825, // k2
-1.0884582901480562e-05, // k3
-9.773097281093723e-05 // k4
]
}
}
]

image_meta_data Object

Field NameTypeRequiredDescription
idintYesImage unique ID
pathstringYesImage absolute path
meta_dataobjectYesImage metadata, see table below

meta_data sub-field description:

Field NameTypeRequiredDescription
widthintYesImage width (pixels)
heightintYesImage height (pixels)
camera_idintYesCorresponding camera ID
timestampdoubleYesTimestamp of image acquisition time; must match the time recorded in the gps_time field of the LAS point cloud. When this attribute is set, trajectory data is not required
posarray[3]YesPOS position [longitude/X, latitude/Y, elevation/Z]
pos_sigmaarray[3]YesPOS position accuracy: centimeter-level RTK [0.03,0.03,0.06]; decimeter-to-meter level [0.5,0.5,1]; meter level and above [2.0,2.0,5.0]. LIDAR data recommends centimeter-level accuracy
orientationarray[9]No3x3 rotation matrix (9 values, row-major, unit vectors, world to camera). Strongly recommended to specify for fisheye images
position_constantboolNoWhether to fix position (true/false); fixed position means AT will not optimize or change image position, keeping input values
mask_pathstringNoPath to the binary mask image in PNG format. Pixel regions with value 0 are ignored during reconstruction processing

Tip: binary mask images are used to mark invalid regions. The SDK ignores invalid regions during reconstruction to improve efficiency and obtain cleaner results.

lidar_data Data

Field NameTypeDescription
coordinate_systemJSONCoordinate system definition for lidar data
laser_meta_dataarrayList of lidar point cloud file metadata

laser_meta_data Sub-fields

Field NameTypeDescription
idintLAS point cloud data ID
pathstringLAS point cloud file path (supports LAS format)

Example:

{
"coordinate_system": {
"type": 2,
"epsg_code": 4326
},
"camera_meta_data": [
{
"id": 1,
"meta_data": {
"camera_name": "Left",
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141,
982.7593599212141,
1747.6373897301492,
1806.4116030074354,
0.03702410479839055,
-0.016007338300982825,
-1.0884582901480562e-05,
-9.773097281093723e-05
]
}
},
{
"id": 2,
"meta_data": {
"camera_name": "Right",
"projection_model": 1,
"width": 3600,
"height": 3600,
"parameters": [
982.7593599212141,
982.7593599212141,
1747.6373897301492,
1806.4116030074354,
0.03702410479839055,
-0.016007338300982825,
-1.0884582901480562e-05,
-9.773097281093723e-05
]
}
}
],
"image_meta_data":[
{
"id": 1,
"path": "\\left\\2390-195042-472_00395-L.JPG",
"meta_data": {
"width": 3600,
"height": 3600,
"camera_id": 1,
"timestamp": 1.0000,
"pos": [
-2272303.077314121,
5011055.355739306,
3215292.943560472
],
"pos_sigma": [0.03,0.03,0.06],
"orientation": [
0.8929275412022056,
0.43070972182403255,
0.13103259781004117,
-0.4500241512548592,
0.8457917052937085,
0.2865565468519331,
0.012596406230632032,
-0.31484206641207435,
0.9490604847782084
]
}
},
{
"id": 2,
"path": "\\right\\2390-195042-472_00395-R.JPG",
"meta_data": {
"width": 3600,
"height": 3600,
"camera_id": 2,
"timestamp": 2.0000,
"pos": [
-2272303.117693735,
5011055.368901664,
3215292.967908075
],
"pos_sigma": [0.03,0.03,0.06],
"orientation": [
0.8918935649712837,
0.435497387453275,
0.12193397510204676,
-0.4504120798442928,
0.8311302214603127,
0.3261157973874772,
0.040679566039387514,
-0.34578111645476495,
0.9374329802231962
]
}
}
],
"lidar_data": {
"coordinate_system": {
"type": 3,
"epsg_code": 32632
},
"laser_meta_data": [ // Lidar point cloud file list
{
"id": 1, // File ID
"path": "C:/path/to/file1.las" // Point cloud file path
},
{
"id": 2, // File ID
"path": "C:/path/to/file2.las" // Point cloud file path
}
]
}
}