Iterative Closest Point (ICP) - 5 Minutes with Cyrill

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] so I see P stands for iterative closest point it's a technique in order to align to point out with each other so what makes point called alignment the point guard is typically a set of points of 3d or in 2d and what we want to do is we want to compute the transformation between two point clouds and the goal is that through this transformation points that are the same point in the real world actually lie on top of each other so that we can incremental e build a consistent model of environment and therefore that's a key building block of most slam algorithms for example those that work based on laser rangefinders or RGB D cameras so how does it work let's dive into an example and understand how this ICP I grow the bricks it basically has two steps a data Association step and then a second step computing the transformation based on the data Association so the first step let's say we want to line the blue and the red point total we've seen over here and we do this using a simple nearest neighbor approach that means we iterate over one point clot and look for the closest point to these points in the second point dot and then make this alignment and these are my correspondences my data Association that I have guessed based on this initial configuration the second step takes this data Association and tries to find the transformation so that those two points are moved on top of each other so to say so that the distances of those corresponding points actually get minimized and this is done using two steps the first step computes the center of mass of those corresponding points and shift the point falls on top of each other and the second step computes the optimal rotation using an SVD based approach so that the points then are better aligned with each other why better and not perfect because our intraday Association may not have been perfect so what we do is we repeat this process and based on the on the on the guests that we have right now how the points cause our line we recompute our data associations and then recompute the alignment and we do this over and over again that Association alignment data Association alignment the ideas in the line until we converge and this is basically the vanilla ICP algorithm the iterative closest point algorithm in its basic form in practice they are variants out there how you can optimize the ICP algorithm one prominent example is the point of plane metric here you assume that the points don't stem or are not distinct points in the environment but they actually stem from a surface they're basically randomly centered through the scanner from a surface and by Mat make making an alignment between the point cloud and the surface we don't create an artificial point-to-point alignment which may not exist in the real world and this point of plane alignment typically or put a plane metric to really gives you a better result of your ICP algorithm but what it does it requires that you leave this SVD based approach and you have to go to general least squares approach and then you would most likely use the Gauss Newton method in order to minimize the error under this point to play metric but they also several other variants out there such as techniques using a protective ICP that means you take the model that you have and project it for example into the range image that you created from your scanner and then try to find the alignment you may also want to take into account robust kernels in your error minimization of promotion or the better deal with outliers so if you have outlier situations where some of the points are really wrongly aligned then those outlier ejection techniques help you in order to weigh those points down and ignore them in your data Association or reduce their impact when then computing the transformation so there are several variants out there and it depends a little on the problem that you are addressing which of the variants you want to use but a point of plane metric is probably today the standard for aligning point outs for example those that stem from a laser range scanner if you want to investigate the ICP algorithm further I suggest visiting the jupiter notebook that has been created by ego boguslav ski and that guides you through the SVD based approach to the least squares approach telling you how you can deal with liars and it's a very good starting point which you can grasp in a rather short amount of time how ICP works and providing you with a very simple Python implementation for this so I hope that was useful and you get an idea how the key building block of most lightweight slams system work and they are used in robotics in autonomous cars not to build consistent models of the environment whenever you have for example as a 3d laser rangefinder mounted on your mobile platform I hope that was useful and you learned something
Info
Channel: Cyrill Stachniss
Views: 17,422
Rating: undefined out of 5
Keywords: robotics, photogrammetry
Id: QWDM4cFdKrE
Channel Id: undefined
Length: 5min 2sec (302 seconds)
Published: Sat May 09 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.