Iterative Closest Point (ICP) - Computerphile

132,211
0
Published 2021-12-15
You've scanned a room or object and now you have lots of discrete scans you want to fit together. Dr Mike Pound explains how the Iterative Closest Point Algorithm is used.

this video was originally titled "Joining Point Cloud Scans" and was renamed for clarity Feb 2023

Stanford graphics resources: graphics.stanford.edu/data/3Dscanrep/

Mesh Lab:
www.meshlab.net/

www.facebook.com/computerphile
twitter.com/computer_phile

This video was filmed and edited by Sean Riley.

Computer Science at the University of Nottingham: bit.ly/nottscomputer

Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com/

All Comments (21)
  • @Tarsonis42
    That video is rather unexpected - thought the next Mike Pound video would definitely be about Log4j.
  • @renhansen1246
    Very timely :) I have just finished stitching together several hundred lidar scans of a 2 km long road tunnel for a client. I relied pretty heavily on the auto-alignment software!
  • @tapiomakinen
    The problem I have with Dr Mike's videos is that whenever I come here to learn about a specific thing, I end up binge watching many more of his vids, and then forget the reason I came here in the first place.
  • @davidgillies620
    Singular value decomposition is one of those things that translate extremely well to GPUs. In fact, Nvidia's CUDA library has purpose-built SVD support (the cusolverDnDgesvd function in its cuSolver package).
  • @ChrisDreher
    Finally a video on the technical aspects of Insane Clown Posse (ICP).
  • @salah6160
    It's inspiring how you explain different computer science topics and still explain them all exceptionally well.
  • Mike's videos are always pretty engaging. This one is right there near the top.
    Pretty cool stuff.
  • @willmanjm
    I am loving these recent videos on Computer Vision! Thanks!
  • Pleease more of this :3 great, interesting stuff perfectly presented as always
  • @ivarkrabol
    Hope to see a video on log4shell, when you get around to it :)
  • @AndrewWhise
    In astronomy we often need to map arbitrary images of the night's sky to Right Ascension and Declination coordinates (called plate solving). I wonder if this algorithm is involved, using stars as the points.
  • @Kruglord
    This is great, I've worked as a Lidar engineer for like a decade now, and ICP is one of those tools which will just tie everything together in a nice bow.
  • @QuintinMassey
    I had no idea you could use meshlab like that. Thank you for making this.
  • Enjoyed - nicely explained. Love the enthusiasm.
    Seems to me that it works well for the scenery but there is a whole set of other problems if there are moving components. First level difficulty a moving rigid object - say a car. Even more tricky a flexible item - say a person walking.
    For a real time application then more frequent scans means closest point is more likely to be the corresponding point but you have less time to process each scan - interesting trade off.
  • @CryTyped
    I’m currently doing my dissertation on using lidar on iphones to create 3d meshes. I’ve been watching computerphile since its inception back when i was in high school, crazy to think how far i’ve come since then
  • I thought the Utah teapot was the archetypal 3D model, never heard of the Stanford bunny!
  • @Veptis
    I had this video in my watch later over 3 months now. My expectation was to learn something about photogrammetry and matching pairs to build a tree and then a point cloud. I had some ideas to how it might work with projection and interaction, but that seemed a little involved. Now with the topic of doing 2D or 3D tracking in video, I always assumed the 2D example would do an extrapolated spiral search pattern for points and just find the lowest difference in the search area.

    But it never occured to me to see matrix tricks like SVD show up. Such a crossover.

    I knew that a fourier transform on a matrix (like an image) would ignore any kind of translation or rotation, so you would use it for pattern matching for example. There was an actual optical application by Huygens Optics in a video a long while ago.
  • @joeab10
    Very nice explanation! You could have also shown how bad it can get by doing the wrong initial point correspondence and hitting a local minimum.