{"id":71,"date":"2021-12-08T22:20:21","date_gmt":"2021-12-08T22:20:21","guid":{"rendered":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/?page_id=71"},"modified":"2021-12-09T17:45:59","modified_gmt":"2021-12-09T17:45:59","slug":"overview-and-index","status":"publish","type":"page","link":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","title":{"rendered":"Project Overview"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n\n\n\n<p>Our project is about Millimeter-wave Radar SLAM. The goal is to build a SLAM pipeline for an extremely noisy Radar sensor. For the front-end part, we rely on a machine learning model to simultaneously estimate relative motion and extract plausible landmarks from sensor reading. For the backend part, we use odometry and landmark measurements from the front end to set up a pose graph and solve it with iSAM2 algorithm.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Weakly Supervised Keypoint Learning<\/h3>\n\n\n\n<p>There are some methods already existing for the odometry part of radar SLAM. However, they mostly rely on handcraft feature detectors. We have implemented one of them and tested it on our targeted dataset. The conclusion is that radar response is usually noisy and hand-designed features usually don&#8217;t generalize across different datasets. Instead, we make use of machine learning to automatically learn useful keypoints from just relative motion between two frames as ground truth. The whole network architecture looks like this:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1024x431.png\" alt=\"\" class=\"wp-image-89\" width=\"539\" height=\"226\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1024x431.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-300x126.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-768x323.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1536x647.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2048x862.png 2048w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-920x387.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-230x97.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-350x147.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-480x202.png 480w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><figcaption>Learning-Based Keypoint Detector (Inference)<\/figcaption><\/figure><\/div>\n\n\n\n<p>There are three branches for our keypoint detector. It takes the 2D radar response (bird&#8217;s-eye view of the street) as input. The first branch divides the input into a 32&#215;32 grid, and outputs one keypoint location per cell. This is to ensure that the keypoints are well separated. The second branch outputs a keypoint score map for each pixel. The third branch outputs a keypoint descriptor map for each pixel. Then we can use the coordinates from the first branch to do interpolation to get corresponding confidence scores and descriptors. Finally we choose the keypoints that have score larger than 0.5.<\/p>\n\n\n\n<p>We have just described the inference stage of our model. Now the training part is visualized below:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-1024x488.png\" alt=\"\" class=\"wp-image-90\" width=\"559\" height=\"266\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-1024x488.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-300x143.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-768x366.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-1536x732.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-2048x976.png 2048w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-920x438.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-230x110.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-350x167.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1-480x229.png 480w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><figcaption> Learning-Based Keypoint Detector (Training)<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4.png\" alt=\"\" class=\"wp-image-131\" width=\"338\" height=\"90\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4.png 649w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4-300x80.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4-230x61.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4-350x93.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-4-480x128.png 480w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><figcaption>Density Loss<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5.png\" alt=\"\" class=\"wp-image-132\" width=\"492\" height=\"156\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5.png 900w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5-300x95.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5-768x243.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5-230x73.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5-350x111.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-5-480x152.png 480w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><figcaption>Descriptor Loss<\/figcaption><\/figure><\/div>\n\n\n\n<p>During training, we select two consecutive frames which have ground truth motion available. The model computes a set of keypoint information for each frame. Then we replace the locations of the keypoints of the second frame by the locations of they keypoints of the first frame transformed using ground truth. This ensures the correspondences of the two sets of keypoints. Then we compute a loss that measures how close the descriptors of the matched keypoints are, and use standard deep learning training techniques to optimize the model. We also incorporate a density loss the ensure that the confidence score of some keypoints are large enough. Our model achieves high-quality matching results and trajectories as shown below:<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"915\" height=\"922\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2.png\" alt=\"\" data-id=\"98\" class=\"wp-image-98\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2.png 915w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-298x300.png 298w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-150x150.png 150w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-768x774.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-230x232.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-350x353.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-2-480x484.png 480w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><figcaption class=\"blocks-gallery-item__caption\">Keypoint Matching Result<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1285\" height=\"1326\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3.png\" alt=\"\" data-id=\"107\" data-full-url=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3.png\" data-link=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/2021\/12\/09\/87\/capture2-3\/\" class=\"wp-image-107\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3.png 1285w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-291x300.png 291w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-992x1024.png 992w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-768x793.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-920x949.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-230x237.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-350x361.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture2-3-480x495.png 480w\" sizes=\"auto, (max-width: 1285px) 100vw, 1285px\" \/><figcaption class=\"blocks-gallery-item__caption\">Trajectory<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Point Cloud-Based Odometry<\/h3>\n\n\n\n<p>As for the 3D indoor dataset, we have developed a point cloud-based method for odometry. The idea is that we don&#8217;t want to waste memory and computation to process the whole space 3D volume. Instead, we select points that have high intensity values and use a point-based neural network call PointNet to compute the output keypoints and descriptors. However, the weakly supervised method would no longer work. So now we use lidar response as the additional supervision. This is possible because the dataset provides time-synced  lidar response. We assign label of 1 to the radar points if and only if they are close to at least one lidar points. We also use the similar recognition loss to learn the descriptors:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-1024x481.png\" alt=\"\" class=\"wp-image-110\" width=\"540\" height=\"253\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-1024x481.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-300x141.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-768x361.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-1536x722.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-920x432.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-230x108.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-350x164.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3-480x226.png 480w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-3.png 1690w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><figcaption>Point Cloud-Based Odometry<\/figcaption><\/figure><\/div>\n\n\n\n<p>Our model predicts keypoint correspondences that are highly consistent and close to the ground truth. Although there is a small difference due to the fact that the resolution for the elevation angle is quite low.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-1024x529.png\" alt=\"\" class=\"wp-image-112\" width=\"552\" height=\"284\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-1024x529.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-300x155.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-768x397.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-1536x794.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-2048x1058.png 2048w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-920x475.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-230x119.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-350x181.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-4-480x248.png 480w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><figcaption>Predicted Keypoint Correspondences<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">End-to-end odometry<\/h3>\n\n\n\n<p><strong>Motion Estimation:<\/strong> Since the discretization issue in point cloud based method is not trivially solvable, point cloud based methods will inevitably result in wrong motion estimation. We therefore take a step back to rethink about our pipeline. Since point-cloud based methods rely on the bound-to-be-noisy landmark detection result to estimate motion, is it possible to decouple motion estimation from landmark detection, such that motion estimation doesn&#8217;t have to deal with the discretization problem? The answer is yes, we can directly estimate motion from the raw radar data using a neural network. The input is the 3D radar response volume; the output is a 6-dimension vector with 3 for translation and 3 for Euler angle. An illustration of the network is shown below. Since it outputs continuous values, we consider it as a regression problem and use MSE as our loss function. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-1024x305.png\" alt=\"\" class=\"wp-image-81\" width=\"668\" height=\"199\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-1024x305.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-300x89.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-768x229.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-920x274.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-230x69.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-350x104.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc-480x143.png 480w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/motion_arc.png 1056w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><figcaption>Network architecture for motion estimation. It takes input the raw 3D radar response volume, proceeds with several 3D Convolutional layers to extract features and applies 3 fully connected layers to output Euler angles and translation. <\/figcaption><\/figure><\/div>\n\n\n\n<p>We found this model performs much better than point-cloud based methods in trajectory estimation. The image below compares trajectories from point-cloud based method and the direct motion estimation method. We can see that the latter performs much better than the precious one. The difference mainly comes from the discretization issue and landmark association errors in point-cloud based methods. The direct motion estimation method also utilizes the entire radar response volume for prediction, which contains more information than point cloud. But note that the new model requires more data than point-cloud based method, since we are not using any geometry knowledge to estimate motion but training a model to predict it. So it requires more data to learn the underlying geometry. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory.png\" alt=\"\" class=\"wp-image-82\" width=\"701\" height=\"258\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory.png 1111w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-300x110.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-1024x377.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-768x283.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-920x339.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-230x85.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-350x129.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/trajectory-480x177.png 480w\" sizes=\"auto, (max-width: 701px) 100vw, 701px\" \/><figcaption>Trajectory estimation from point cloud method (left image) and direct motion estimation method (right image). We can see that the estimated trajectory is much more accurate for direct motion estimation method. The green trajectory denotes ground truth, the red one denotes estimated trajectory via frame-by-frame accumulation.  <\/figcaption><\/figure><\/div>\n\n\n\n<p><strong>Landmark detection:<\/strong> We further extend it to perform landmark detection by adding a decoder on top of the backbone to predict the probability of each voxel being a true landmark. The label of each voxel is one if the LiDAR density around that voxel is higher than some threshold, otherwise zero. The architecture is shown below. The decoder consists of several 3D ConvTranspose layer and Upsampling layers. We use binary cross entropy loss to train the model along with the motion estimation branch. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-1024x304.png\" alt=\"\" class=\"wp-image-85\" width=\"673\" height=\"199\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-1024x304.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-300x89.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-768x228.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-920x273.png 920w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-230x68.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-350x104.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc-480x143.png 480w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm_arc.png 1057w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><figcaption>Network architecture for joint motion estimation and landmark detection. We add a decoder block on top of the backbone to detect landmarks. It consists of several 3D ConvTranspose layers and UpSampling layers. It outputs a probability volume representing the probability of each voxel being a true landmark. <\/figcaption><\/figure><\/div>\n\n\n\n<p>Here is a visualization of our landmark detection results. Green dots are landmarks detected over the past five frames, blue dots are landmarks detected in the current frame. We can see although not perfect, they are consistent over different frames and can be used for mapping.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm.png\" alt=\"\" class=\"wp-image-116\" width=\"311\" height=\"403\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm.png 419w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm-231x300.png 231w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm-230x299.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/lm-350x454.png 350w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption>Visualization of landmark detection over different frames. <\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Factor Graph Optimization<\/h3>\n\n\n\n<p>After obtaining motion estimation and landmark detection from each frame, we can plug them into a factor graph to obtain a globally optimized trajectory and map. The edge between two poses is the motion estimation from our model. The edge between a pose and a landmark is setup only when the landmark is consistent with the observation at that frame. Specifically, we project all map landmark to current local frame, and match them with the current observations. If a landmark is mutually matched with an observation and their distance is smaller than some threshold, we setup an edge between the landmark node and the current pose node. If an observation is far away from any landmark, we create a new landmark node and setup an edge as before. The following figures illustrates raw radar response, our construction of map and trajectory, and the ground truth. <\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"459\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input.png\" alt=\"\" data-id=\"93\" data-full-url=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input.png\" data-link=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/overview-and-index\/input\/\" class=\"wp-image-93\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input.png 484w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input-300x285.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input-230x218.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input-350x332.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/input-480x455.png 480w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><figcaption class=\"blocks-gallery-item__caption\">Input from radar<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"517\" height=\"485\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours.png\" alt=\"\" data-id=\"94\" data-full-url=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours.png\" data-link=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/overview-and-index\/ours\/\" class=\"wp-image-94\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours.png 517w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours-300x281.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours-230x216.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours-350x328.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/ours-480x450.png 480w\" sizes=\"auto, (max-width: 517px) 100vw, 517px\" \/><figcaption class=\"blocks-gallery-item__caption\">Our localization and mapping result<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"507\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt.png\" alt=\"\" data-id=\"92\" data-full-url=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt.png\" data-link=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/overview-and-index\/gt\/\" class=\"wp-image-92\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt.png 546w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt-300x279.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt-230x214.png 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt-350x325.png 350w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/gt-480x446.png 480w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><figcaption class=\"blocks-gallery-item__caption\">Ground truth<\/figcaption><\/figure><\/li><\/ul><figcaption class=\"blocks-gallery-caption\">The left image is the input we receive from Radar sensor, the middle one is our mapping result. the right one is ground truth. Our result can capture the structure of the room despite the extremely noisy input. <\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Advisor and Sponsor<\/h3>\n\n\n\n<p>Our CMU faculty advisor is Michael Kaess. We thank him for his essential guidance. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"214\" height=\"279\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/michael.png\" alt=\"\" class=\"wp-image-99\" \/><\/figure><\/div>\n\n\n\n<p>This project is also sponsored by Amazon Lab 126. We thank Jaya Subramanian from Amazon for her valuable advice.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"400\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400.jpeg\" alt=\"\" class=\"wp-image-100\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400.jpeg 400w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400-300x300.jpeg 300w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400-150x150.jpeg 150w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400-230x230.jpeg 230w, https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/widtE9j3_400x400-350x350.jpeg 350w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Our project is about Millimeter-wave Radar SLAM. The goal is to build a SLAM pipeline for an extremely noisy Radar sensor. [&hellip;]<\/p>\n","protected":false},"author":111,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-71","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Project Overview - Millimeter-wave Radar SLAM<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Project Overview - Millimeter-wave Radar SLAM\" \/>\n<meta property=\"og:description\" content=\"Introduction Our project is about Millimeter-wave Radar SLAM. The goal is to build a SLAM pipeline for an extremely noisy Radar sensor. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/\" \/>\n<meta property=\"og:site_name\" content=\"Millimeter-wave Radar SLAM\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-09T17:45:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1024x431.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/\",\"name\":\"Project Overview - Millimeter-wave Radar SLAM\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/wp-content\\\/uploads\\\/sites\\\/52\\\/2021\\\/12\\\/Capture-1024x431.png\",\"datePublished\":\"2021-12-08T22:20:21+00:00\",\"dateModified\":\"2021-12-09T17:45:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/wp-content\\\/uploads\\\/sites\\\/52\\\/2021\\\/12\\\/Capture.png\",\"contentUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/wp-content\\\/uploads\\\/sites\\\/52\\\/2021\\\/12\\\/Capture.png\",\"width\":3679,\"height\":1549},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Project Overview\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/#website\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/\",\"name\":\"Millimeter-wave Radar SLAM\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2021teamg\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Project Overview - Millimeter-wave Radar SLAM","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","og_locale":"en_US","og_type":"article","og_title":"Project Overview - Millimeter-wave Radar SLAM","og_description":"Introduction Our project is about Millimeter-wave Radar SLAM. The goal is to build a SLAM pipeline for an extremely noisy Radar sensor. [&hellip;]","og_url":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","og_site_name":"Millimeter-wave Radar SLAM","article_modified_time":"2021-12-09T17:45:59+00:00","og_image":[{"url":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1024x431.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","url":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","name":"Project Overview - Millimeter-wave Radar SLAM","isPartOf":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#primaryimage"},"image":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#primaryimage"},"thumbnailUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture-1024x431.png","datePublished":"2021-12-08T22:20:21+00:00","dateModified":"2021-12-09T17:45:59+00:00","breadcrumb":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#primaryimage","url":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture.png","contentUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-content\/uploads\/sites\/52\/2021\/12\/Capture.png","width":3679,"height":1549},{"@type":"BreadcrumbList","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/"},{"@type":"ListItem","position":2,"name":"Project Overview"}]},{"@type":"WebSite","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/#website","url":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/","name":"Millimeter-wave Radar SLAM","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/pages\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/users\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":21,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/pages\/71\/revisions"}],"predecessor-version":[{"id":133,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/pages\/71\/revisions\/133"}],"wp:attachment":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2021teamg\/wp-json\/wp\/v2\/media?parent=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}