Iterative Closest Point (ICP) - Computerphile

Поділитися
Вставка
  • Опубліковано 6 січ 2025

КОМЕНТАРІ • 251

  • @tapiomakinen
    @tapiomakinen Рік тому +26

    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.

    • @devsoni3459
      @devsoni3459 Місяць тому +1

      Happens to me all the time.

  • @renhansen1246
    @renhansen1246 3 роки тому +91

    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!

    • @tissuepaper9962
      @tissuepaper9962 3 роки тому +19

      I was about to say "sheesh, couldn't you just pay somebody to do all that fiddly work" and then I realized that I'm a doofus and *you're* the one being paid to do fiddly work lol.

    • @surbhibarnwal8431
      @surbhibarnwal8431 2 роки тому

      how did you do that

  • @Tarsonis42
    @Tarsonis42 3 роки тому +107

    That video is rather unexpected - thought the next Mike Pound video would definitely be about Log4j.

    • @optimal284
      @optimal284 3 роки тому +8

      He even said on Twitter he was working on it

    • @franziscoschmidt
      @franziscoschmidt 3 роки тому +2

      That has to happen

    • @austinnar4494
      @austinnar4494 3 роки тому +6

      Usually these videos are shot in advance - not sure about Sean but I know Brady will make a trip to Nottingham and film enough for a handful of videos and then dole them out over time

  • @FranciscoNogueira
    @FranciscoNogueira 3 роки тому +10

    Mike's videos are always pretty engaging. This one is right there near the top.
    Pretty cool stuff.

  • @davidgillies620
    @davidgillies620 3 роки тому +79

    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).

    • @vladusa
      @vladusa 3 роки тому +3

      I used that for live feeds of a self-driving simulation.

    • @christophertralie9311
      @christophertralie9311 2 роки тому +6

      Sadly, SVD is by far not the bottleneck in this algorithm because it's only an SVD of a 3x3 matrix. Actually, the real thing that needs to be sped up on the GPU is nearest neighbors search, which is a bit tougher but doable

    • @christophertralie9311
      @christophertralie9311 2 роки тому

      You'd have to use a parallelizable KD Tree

  • @salah6160
    @salah6160 11 місяців тому

    It's inspiring how you explain different computer science topics and still explain them all exceptionally well.

  • @CryTyped
    @CryTyped 3 роки тому +3

    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

  • @Kruglord
    @Kruglord 3 роки тому +1

    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.

  • @andrewharrison8436
    @andrewharrison8436 3 роки тому +24

    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.

    • @MrJacobegg
      @MrJacobegg 3 роки тому +5

      The goal of ICP is to reduce the amount of error, where "error" in this context would be defined (very roughly) as the sum of squared distances between the matched pairs of points. So movement in your scene would be handled (naively) the same way as the edges of the bunny scans in his example - the algorithm will minimize the error as much as possible but eventually get to a stopping point where most of the scene points overlap nicely but there are areas of large concentrated error, corresponding to the places where there was movement. (Hopefully that was clear enough.)

  • @willmanjm
    @willmanjm 3 роки тому +1

    I am loving these recent videos on Computer Vision! Thanks!

  • @ChrisDreher
    @ChrisDreher 3 роки тому +114

    Finally a video on the technical aspects of Insane Clown Posse (ICP).

    • @ShaunHusain
      @ShaunHusain 3 роки тому +7

      Magnets how do they work (more sixty symbols territory, perhaps a sociology channel as well ;) )

    • @davidgillies620
      @davidgillies620 3 роки тому +13

      Fing LIDAR; how does that work?

    • @mattanimation
      @mattanimation 3 роки тому +5

      whoop whoop

    • @kellysmith7357
      @kellysmith7357 3 роки тому

      they got the dog beats

    • @CoughSyrup
      @CoughSyrup 3 роки тому +3

      I've always had Mike Pound pegged as a Juggalo, so it's nice to have my suspicions finally confirmed.

  • @Veptis
    @Veptis 2 роки тому +3

    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.

  • @maxmusterman3371
    @maxmusterman3371 3 роки тому +4

    Pleease more of this :3 great, interesting stuff perfectly presented as always

  • @QuintinMassey
    @QuintinMassey 2 роки тому

    I had no idea you could use meshlab like that. Thank you for making this.

  • @AndrewWhise
    @AndrewWhise 3 роки тому +28

    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.

    • @konstantinkh
      @konstantinkh 3 роки тому +13

      When your points have additional attributes, such as brightness, it's often helpful to treat them as an additional dimension. Besides that, what the matching program does is probably very similar. At least, as the final step. To improve convergence, it might, for example, start with just the brightest points, and add more as it gets closer to the solution.

    • @xl000
      @xl000 Рік тому

      Have a look at OpenCV + Homography.

  • @DavidMorales-xz7fn
    @DavidMorales-xz7fn 3 роки тому +5

    I'm a simple man. If I see Dr Mike Pound in a thumbnail, I click.

  • @noahzuniga
    @noahzuniga 3 роки тому +1

    the legend returns

  • @larrybud
    @larrybud 3 роки тому

    I think Mike is the best presenter on this channel.

  • @joeab10
    @joeab10 3 роки тому +11

    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.

  • @drawn__9999
    @drawn__9999 3 роки тому +1

    This was the clearest explanation of any algorithm I've ever heard in my life.

  • @DanielDoron-lightydo
    @DanielDoron-lightydo Рік тому

    Awesome explanation and demonstration!! Love it!

  • @maxdoner4528
    @maxdoner4528 3 роки тому +1

    Love Dr Pound

  • @elliotyu6573
    @elliotyu6573 3 роки тому

    13:15 The sound effect for ICP is brilliant.

  • @deepakrajendra8019
    @deepakrajendra8019 3 роки тому +1

    Mike Pound's back!

  • @ivarkrabol
    @ivarkrabol 3 роки тому +27

    Hope to see a video on log4shell, when you get around to it :)

  • @Richardincancale
    @Richardincancale 3 роки тому +12

    I thought the Utah teapot was the archetypal 3D model, never heard of the Stanford bunny!

    • @ufffd
      @ufffd 3 роки тому +4

      I think Utah teapot is the classic hard surface modeling and Stanford bunny is more relevant to photogrammetry

  • @GorrathEUNE
    @GorrathEUNE 3 роки тому

    Please add the subtitles! :) I love the other videos

  • @KarlssonF
    @KarlssonF 3 роки тому +6

    now do one about SLAM (specifically with lidar maybe), would be a very cool topic

  • @YensR
    @YensR 3 роки тому +8

    5:40 I understand the centre of mass of the points to shift the sample - but how do you decide the rotation? Do you just move it to centre of mass, then rotate and if it gets better, you rotate it some more , until it gets worse again? Or is there a better way to do it?

    • @alegian7934
      @alegian7934 3 роки тому +4

      rotations are simple enough that they can be expressed as matrix multiplication. the resulting matrix will not be completely solvable because its an approximation, but SVD gets you the best solution you can get with linear algebra

    • @YensR
      @YensR 3 роки тому

      @@alegian7934 yes he mentions SVD later but considering its 3 dimensions my mind still boggles how this can be done so quickly. Is there anything that helps a first guess?

    • @alegian7934
      @alegian7934 3 роки тому

      I could be wrong in any of the following. But: if matrix A describes the 3d rotation, X is the matrix that contains as columns all points in one group and Y is the matrix that contains all points in the other group, we have AX=Y (approximately, remember, these cant truly be equal) so ideally if they were equal we would invert matrix X and obtain A=YX' (we found the rotation matrix) In reality X is not invertible at all but we can find its SVD that gets us as close to its inverse as possible. so we get something like A*UΣV=Y and we solve for matrix  (an approximation of the optimal rotation). And we apply  to X

    • @YensR
      @YensR 3 роки тому

      @@alegian7934 I guess that's it! This is all new to me. We did cover 3d transformations back in my degree, but not inverse, only forward. At least that's what i remember! Very interesting, will have to do some more reading before I understand this enough.

    • @embeddor2230
      @embeddor2230 3 роки тому

      @alegian Can't we just do the following:
      1) build a vector A out of the selected points of the first shape in respect to their center of mass: A = Σ a_i - a_center
      2) build a vector B out of the selected points of the second shape also in respect to their center of mass: B = Σ b_i - b_center
      3) calculate angle between the vectors?

  • @Alive6371
    @Alive6371 3 роки тому +3

    The videos are great. Can you kindly provide with captions ?

  • @renegibbetnich7883
    @renegibbetnich7883 2 роки тому

    Thank you for this little tutorial. I wouldn't have found meshlab otherwise.

  • @simeon136
    @simeon136 3 роки тому +2

    Our biggest scan project was around 20 Billion points. Took a while to register even on a Threadripper-based workstation. Our scanner measures 976,000 pts/sec.

    • @videojeroki
      @videojeroki 3 роки тому

      Maybe you where busy counting your points, but if you listen carefully around ~10:00 he is answering your comment

    • @videojeroki
      @videojeroki 3 роки тому

      Btw: 20billion points would take more than 230 days of non stop laser scanning (with your ~1M pts/sec laser scanner). Did you just scan the all earth or what ?!!! :D

    • @simeon136
      @simeon136 3 роки тому +1

      @@videojeroki, I know how it works, scanning is a large part of my job.

    • @simeon136
      @simeon136 3 роки тому +6

      ​@@videojeroki a zoo with a castle in the grounds. We used multiple scanners. Terrestrial lidar scanners , UAV lidar and a wearable mobile mapping unit. We also took over 40,000 61MP full frame photos which are used to texture the mesh.

  • @Dandelion_Stitches
    @Dandelion_Stitches 3 роки тому

    MMFCL in here for this video, spreading the word for ICP! WOOP WOOP!

  • @calciumgoodness4073
    @calciumgoodness4073 3 роки тому +7

    Can we see a video on the TOR network compromise where a bad actor is running a bunch of relays?

    • @dustinjames1268
      @dustinjames1268 3 роки тому

      The bad actor you speak if us the US government

  • @Zahlenteufel1
    @Zahlenteufel1 3 роки тому +1

    Let's all take a moment to appreciate the existence of FOSS!

  • @ahbushnell1
    @ahbushnell1 3 роки тому +13

    i assume this is what is done when they stack photo's say for astronomy. That would be an interesting video.

    • @giant3909
      @giant3909 3 роки тому +1

      In astrophotography they can stack up to 100 hours of data to render a galaxy

    • @emmanueloluga9770
      @emmanueloluga9770 3 роки тому

      @@giant3909 omg wow..thats a lot of data

    • @kittenhat7266
      @kittenhat7266 3 роки тому

      Some programs might, but others use a method called RANSAC. For star fields, it’s not too much to ask of a computer to try to “brute force” match the brightest stars in 2 images.

  • @MartinTowell
    @MartinTowell 3 роки тому +2

    16:14 - "you can put the links in the description" -- is it possible to put the links in the description, please?

  • @TheKrankgamer
    @TheKrankgamer 3 роки тому +6

    Crazy, I am just doing a project in the next weeks on this for university

  • @intelinside3334
    @intelinside3334 Рік тому

    Thank you for this interesting video

  • @xsoggyeggroll4966
    @xsoggyeggroll4966 3 роки тому +15

    im taking classses in computer assisted surgery and this couldn't have come at a better time lol

    • @difflocktwo
      @difflocktwo 3 роки тому

      are you a surgeon?

    • @xsoggyeggroll4966
      @xsoggyeggroll4966 3 роки тому +1

      @@difflocktwo nope too stressful haha, i'm in grad school for biomedical engineering. but I have talked with surgeons who use registration technology with robotic assistance and it's super cool to see these concepts work in real situations

    • @mertakyaz5359
      @mertakyaz5359 3 роки тому

      @@xsoggyeggroll4966 Do you see those applications on practical?? That seems scary 😶

    • @xsoggyeggroll4966
      @xsoggyeggroll4966 3 роки тому

      @@mertakyaz5359 icp is generally used to match medical images with the robots workspace and also to track tools in the workspace

    • @mertakyaz5359
      @mertakyaz5359 3 роки тому +1

      @@xsoggyeggroll4966 Liked the job there. I meant have you seen open surgery with these products been using or just simulations? I was talking about seeing a surgery 😄

  • @hymen0callis
    @hymen0callis 3 роки тому

    12:09 Where is FPFH (from PCL) or multiview registration when you need it?

  • @blueguy5588
    @blueguy5588 3 роки тому

    Very interesting. You can see the potential for some sort of memoization as well.

  • @murman100
    @murman100 3 роки тому

    Very good mike

  • @GilesBathgate
    @GilesBathgate 3 роки тому +3

    Kd Trees, would make an interesting computerphile video.

    • @DJCloudPirate
      @DJCloudPirate 3 роки тому

      KD trees are the underappreciated workhorse of machine vision. If done properly they can be blazingly fast compared to other spatial partitioning schemes. They don't provide some of the benefits of more complex structures but for nearest neighbor searches they're tough to beat. Interestingly enough the textbook implementation of KD trees (and the ones found in open source libraries like the PCL) are not optimal. They are "pure" but in practical terms there are tricks you can play to speed them up without much work.

  • @johnlasky
    @johnlasky 3 роки тому +3

    Really interesting video! Are self driving cars doing this type of mesh stitching on the fly? And if so, would adding special reflective tape to the environment help with key point localization and reduce the amount of computation its doing? (Clearly I don't know anything about this stuff)

  • @ofrench560
    @ofrench560 3 роки тому +14

    Mike has a home? I thought he just lived in his office, seen in this video behind him

    • @drooplug
      @drooplug 3 роки тому

      He appears at home only when he is on loan from the university.

    • @ofrench560
      @ofrench560 3 роки тому

      ​@@drooplug I see
      Understandable

  • @micmacha
    @micmacha 8 місяців тому

    You mention translation and rotation, but in 3D I'm also thinking about relative scaling and skewing. I presume a generic affine transform is assumed?

  • @ysahillioglu
    @ysahillioglu 3 роки тому

    Check out Scale-Adaptive ICP too :)

  • @U014B
    @U014B 3 роки тому +8

    The algorithm was originally going to be called Iterative Closest Union Point, but after an inexplicable outbreak of giggle fits, the name was changed.

    • @julianatlas5172
      @julianatlas5172 3 роки тому +4

      what's wrong with that name? I'm not a ntive english speaker so I think I'm missing the joke

    • @U014B
      @U014B 3 роки тому +5

      @@julianatlas5172 Say the initials out loud.

  • @keksauraisks
    @keksauraisks 3 роки тому +2

    Please do a video on Log4Shell!

  • @BooBar2521
    @BooBar2521 Рік тому

    man, this was pretty clear. nice what you can do with one sheet of paper XD

  • @Primalmoon
    @Primalmoon 3 роки тому +2

    Dr Pound said there would be links in the description...?

  • @jwrush
    @jwrush 3 роки тому +1

    "Maybe you have an artist sculpt something and then you scan it and get a nice mesh" well, a mesh anyway. point clouds don't yield clean topology, so one almost always has to retopo the mesh

  • @gloverelaxis
    @gloverelaxis 3 роки тому +2

    I assume the reason ICP isn't N^2 is because computing the "centre of mass" is the same as computing an mean/average? i.e., you can just **add** to the current average/accumulator then perform a single division at the end?

  • @Viniter
    @Viniter 3 роки тому +1

    Are you going to make a video on the Log4j exploit?

  • @SebastianMonsalvo-u3j
    @SebastianMonsalvo-u3j 2 місяці тому

    Me: student at Stanford studying for my robot autonomy exam
    Mike: Have you heard of the stanford bunny
    Me: not really, I've just spent the past two weeks of my life working with the point cloud of this bunny. but that's about it
    Mike:
    Me: will i ever escape this bunny

  • @drskelebone
    @drskelebone 3 роки тому +2

    Obligatory question that will probably be answered in the next minute: Are there any physics-based/momentum-like solvers? "We've been moving kind of left-ish at two meters per second. If we assume some points are close, and some are far, where would the last set of points fall?"

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 2 роки тому

      Instinctive physics-undergrad answer: represent each point in 6D, being 3 spatial coordinates and 3 momentum coordinates. Then do ICP in that space?

  • @qztronic
    @qztronic 3 роки тому

    Can you guys explain how those spinning lidar sensor are use to create a 2d map. (in term of how the raw data that lidar received get compute by the computers and then TADA we just have a map?)

  • @To-mos
    @To-mos 3 роки тому

    What is a situation where you would already have the geometry from a point cloud and need to overlap it like he's demonstrating. From what I've seen protogrammatry and point cloud to mesh software already aligns the points before even doing a geometry pass.

  • @booodan
    @booodan 3 роки тому +2

    Please do a video on the recent log4j exploit!!

  • @zxuiji
    @zxuiji 3 роки тому

    uh, I woulda just matched just compared the distances from the relative end points and worked my way inwards, if the distance stretches or contracts to much then it's not the same object, abort and try the next object, either way you need to identify the objects in the snapshot working with, might as well just compare the results to previous results to see what has the least difference in point distances
    **Edit:** the process could be further optimised by skipping objects that have to big a difference in the number of points also

  • @charliebaby7065
    @charliebaby7065 3 роки тому

    OMG YES! !! THANK YOU THANK YOU (I guess my pfp gives away my enthusiasm)

  • @Ogmobot
    @Ogmobot 3 роки тому

    This was an Advent of Code puzzle this year

  • @BraedenSmith
    @BraedenSmith 3 роки тому

    Feels pretty similar to k means clustering.
    Basically both are gradient descent on a non convex function, involving distances in N dimensions.

  • @pierreabbat6157
    @pierreabbat6157 3 роки тому +2

    A couple of applications of this:
    1. You have a lidar scan of terrain that includes woods, which has no color but has a few points on the forest floor, and a photogrammetric scan of the same terrain, which has color but no ground points. You align them and color the lidar points. (At least PerfectTIN, the program I wrote to make a TIN of point clouds, completely ignores color.)
    2. You have a drone with a 32-head laser scanner. You fly it between two buildings over pavement and get 32 point clouds, one from each head. You align them and determine the calibration so that the point cloud you get from putting all 32 heads together is accurate.

  • @aperson1234-t8x
    @aperson1234-t8x 3 роки тому +3

    The missile knows where it is, because it knows where it isn’t

  • @AlanCanon2222
    @AlanCanon2222 3 роки тому +9

    Speaking as a grown up kid from the Commodore 64 days, may I just say, the kids are all right. You want self driving cars that save babies automatically? Let this up and coming generation design them.

  • @jonathanmain9079
    @jonathanmain9079 3 роки тому

    A long shot but how important is it for it to be accurate?? Would the fast inverse square root solution work well for this?

  • @prasadnemade6979
    @prasadnemade6979 Рік тому

    how did u eliminate the unwanted points form depth camera

  • @Test-dp1ib
    @Test-dp1ib 3 роки тому

    What’s does he says at 9:46 ? Singularity composition ?

    • @ThePyrosirys
      @ThePyrosirys 3 роки тому +1

      Singular value decomposition

  • @MrGoatflakes
    @MrGoatflakes 3 роки тому

    Could we get some captions please? I'm finding it very hard to make out what Dr Mike is saying...

  • @SteveMacSticky
    @SteveMacSticky 3 роки тому

    very interesting

  •  3 роки тому

    I guess you can also do some calculations in other domain, for example distance(angle) instead of cartesian x(y). It can help.

    • @Great.Milenko
      @Great.Milenko 3 роки тому

      that would be my first idea to solve this issue I guess. create a set of data describing distance and angles of a bunch of points, then find the same results in the new data. although saying that point cloud data is usually very different from scan to scan.

  • @scheimong
    @scheimong 3 роки тому

    You know the guy knows what he's doing when you see the MX master

  • @fennecinspace
    @fennecinspace 3 роки тому

    I started working on a project involving ICP and point clouds this month LOL.

  • @10lauset
    @10lauset 3 роки тому

    Is this somewhat like 'persistence of vision'?

  • @FloydMaxwell
    @FloydMaxwell 3 роки тому

    Facial recognition algorithms must be using this as well

  • @ThomasHaberkorn
    @ThomasHaberkorn 3 роки тому +1

    is this also used for 3D dental scan technology?

  • @braveshine2579
    @braveshine2579 3 роки тому

    Please add subtitle. Love from oversea.

  • @drooplug
    @drooplug 3 роки тому

    No 3d scans of Lenna?

  • @kapils4113
    @kapils4113 3 роки тому +2

    Sir you played an amazing role in Spiderman no way home !

    • @ralfoide
      @ralfoide 3 роки тому

      Huh? Explanation?

  • @MoritzvonSchweinitz
    @MoritzvonSchweinitz 3 роки тому +5

    But I think you are skipping over the main problem: how do the LIDAR scanners do the job of identifying common points that you did manually in an automated way?

    • @jonmackenzie
      @jonmackenzie 3 роки тому +6

      i would guess that because of the high scanning frequency the points are already going to be pretty well aligned. each consecutive scan will be pretty similar to the last

    • @TheNonXtreme
      @TheNonXtreme 3 роки тому +5

      Probably with the help of other sensor data. For example, wheeled robot can take the encoder reading at the wheel to estimate the change in direction and position of the lidar sensor itself between each lidar scan. This data can be used to first align the point clouds closely together enough before doing the ICP.

    • @Meoiswa
      @Meoiswa 3 роки тому +1

      If you know the exact location of your camera and lidar, you can map lidar points to camera pixels, then use strategies like edge detection or color feature isolation to tag points.

    • @tissuepaper9962
      @tissuepaper9962 3 роки тому +4

      His input was a rough guess, in any real-world application you can use ubiquitous accelerometer or GPS data to get that guess. It's just not relevant to the algorithm itself, which is the focus of the video.

    • @TheAudioCGMan
      @TheAudioCGMan 3 роки тому +1

      yes to above answers. it's already close, but you can improve it with inertia measurements, feature detection in the point clouds, or feature detection from some color camera

  • @jjferman2587
    @jjferman2587 3 роки тому

    Is it just the lighting or does Dr. Pound have blue and green eyes?

  • @MrWarlock616
    @MrWarlock616 3 роки тому +2

    Please request him to talk about log4j

  • @Turnadey
    @Turnadey 3 роки тому

    Video on Log4?

  • @philippebarbie3829
    @philippebarbie3829 2 роки тому

    05:08 -> Now it's clear to me that drawing lines doesn't make any sense
    07:30 -> Can I just use my lines? How clever... :P

  • @MrMysterious420
    @MrMysterious420 3 роки тому

    Whoop whoop!

  • @guoah9
    @guoah9 3 роки тому +4

    I discuss my masters thesis in two days and this is something i used in it. nice timing 🤣

    • @dariuszmyczko7615
      @dariuszmyczko7615 3 роки тому

      Good luck on that!

    • @emmanueloluga9770
      @emmanueloluga9770 3 роки тому

      Awesome. What's your master thesis on?

    • @guoah9
      @guoah9 3 роки тому +1

      @@emmanueloluga9770 I discussed it this morning, it went very well. It is on an aerial point-cloud registration algorithm designed for urban scenarios. Basically it uses both image and point-clouds features to find an initial alignment as Mike does manually in the video and then applies ICP to refine it. I used an aerial Lidar scan of my uni city and ground clouds built with photogrammetry from a goPro(which stores a lot of position metadata) .

    • @emmanueloluga9770
      @emmanueloluga9770 3 роки тому

      @@guoah9 oh wow thats very interesting and exciting work. Congratulations on that accomplishment. Is there a paper out yet

  • @Ceelvain
    @Ceelvain 3 роки тому

    This algorithm has a really strong taste of K-Means. Are they related in some way?

  • @keenheat3335
    @keenheat3335 3 роки тому

    the structure of the algorithm feels kind of similar to the face id algorithm that was shown in computerphile many years ago.

  • @hitarthpanchal1479
    @hitarthpanchal1479 3 роки тому

    How does this relate to SLAM?

  • @TheSwedishFreaK
    @TheSwedishFreaK 3 роки тому

    Use thios quite alot for game art. Photogrammetry though, so dont know if it work the same.

  • @RobinHagg
    @RobinHagg 3 роки тому

    Looks like this would be used in fingerprint Scan or qr code scan maybe.

  • @KipIngram
    @KipIngram 9 місяців тому

    So I see no way to do this without scanning your two groups of items at least once. I mean, you have to know what you've got. So, as I did that, I'd accumulate data I needed to define the "principle axes" of the two groups, along with extent information along those axes. Then in the "general" (non-pathological) case, it should be as simple as matching those up. We could contrive situations where there were symmetries that would make that approach non-deterministic, but it sure seems like it would get you a long way.

  • @quintrankid8045
    @quintrankid8045 3 роки тому

    n squared? Isn't exhaustive search going to be n factorial?

  • @Nagria2112
    @Nagria2112 3 роки тому +1

    Mike is back? instant klick
    sorry but he i just the best host on here, second would be miles.

  • @niyaziugur
    @niyaziugur 3 роки тому +1

    gradient descent?

  • @ASCENDANTGAMERSAGE
    @ASCENDANTGAMERSAGE 3 роки тому

    why not fit a curve to each set and rotate until those curves match. translation is automatically accounted for

    • @DJCloudPirate
      @DJCloudPirate 3 роки тому

      Ultimately you end up having to solve the same problem. The example "cloud" shown in this video might give you the impression that you could just fit something like a spline or Bézier curve through the points and then "simply" align the two curves. First problem is that most real world data sets won't let you simply fit a curve..."Well, then maybe fit a surface" you might say... again, not always easy, or fast. But even if you do manage to fit nice representative surfaces to the clouds... how do you think you find the registration between two surfaces? You use ICP :)

  • @Monothefox
    @Monothefox 3 роки тому +2

    Fricking point clouds, how do they work? -- ICP

  • @jms019
    @jms019 3 роки тому

    Is that a vivarium ?