A computer program recorded on a recording medium,
- wherein the computer program is coupled to a computing device comprising:
- a memory;
- a transceiver;
- and
- a processor processing the computer program loaded in the memory,
- whereby the computer program is executed by the processor to perform a method comprising:
- generating a first feature map based on point cloud data obtained from a lidar and an image captured by a camera, wherein a first feature point of the image captured by the camera is extracted based on a continuity of brightness of pixels in the image within a preset range from each of the pixels to generate the first feature map;
- generating a third feature map by mapping the first feature map on a second feature map generated through pre-stored point cloud data based on position information and pose information of the point cloud data acquired simultaneously with the image for the generating the first feature map;
- after the generating of the third feature map,
- receiving at least one image captured by the camera for position estimation in real time;
- analyzing the at least one image to extract a feature point;
- and
- matching the feature point with the third feature map to estimate a position of the camera on the at least one image,
- wherein a pose of the camera is estimated based on information about the feature point of the at least one image and a corresponding feature point of the third feature map,
- wherein a calibration is performed between the camera and the lidar by:
- identifying a feature point of a calibration board included in the image and the point cloud data, wherein the calibration board includes a border identification region formed of a material with an intensity higher than a preset value and a top point identification region located on a top of the border identification region and formed of a material with an intensity lower than a preset value;
- generating a virtual plane based on point clouds included in the border identification region, connecting outermost points for each channel in the generated virtual plane to generate a plurality of straight lines, and detecting vertices of the calibration board based on intersections of the plurality of straight lines;
- and
- matching an index of a feature point identified from the image with a feature point identified from the point cloud data based on the top point identification region, and
- wherein the point cloud data is obtained from the lidar calibrated with an inertial measurement unit (IMU) by the data generator by:
- extracting a trajectory in which a heading standard deviation indicating an error in GPS data is lower than a preset value;
- extracting a section within the extracted trajectory in which vehicles travel in opposite directions;
- and
- performing calibration on the point cloud data using a loss function that includes a ratio loss corresponding to a ratio between a loss for a cylindrical object identified in the point cloud data and a loss for a ground identified in the point cloud data.