3D Point Cloud Segmentation and Shape Recognition with Python

Sdílet
Vložit
  • čas přidán 7. 09. 2024

Komentáře • 58

  • @abirreza7183
    @abirreza7183 Před 5 měsíci +1

    Nice and easy Explanation. Expecting more upload, specially on SLAM and Registration.

    • @FlorentPoux
      @FlorentPoux  Před 5 měsíci +1

      Thanks a lot! I am on it, doing my best! SLAM and Registration coming in real soon 🧔

  • @man9mj
    @man9mj Před 9 měsíci +3

    Excellent content. I am wondering what methods or approaches we should use to evaluate the segmented point cloud using RANSAC?

    • @FlorentPoux
      @FlorentPoux  Před 9 měsíci +1

      Thanks a lot! In that case, you could use a mix of sharpness measure (i.e. how good you respect "objects" borders), and F1-scores if you have ground truth data at the instance level. Else, you can use clustering metrics but they are not as pertinent

  • @arieframadhan1244
    @arieframadhan1244 Před 8 měsíci +2

    Great video Florent. Subscribed!

  • @stonesfcr
    @stonesfcr Před 3 dny

    hello Florent, Im very interested in your work, I wanted to ask you about your sdpecs for running jupyterlab with these examples you post, because I keep getting my kernel killed running the code, (specifically with the translate method) Ive tried to find an answer but no solution so far, Ive tried on ubuntu and windows, with 8 ans 32 gb ram, and nvidia cards, im stuck, do you have cuda running on your env?, how can I avoid the kernel problem? (I have a similar error in pycharm btw)

  • @Amitkryoutube
    @Amitkryoutube Před měsícem

    Hey, can we just click on a point cloud to pick a single point instead of picking a plane?

  • @eswar9255
    @eswar9255 Před 18 dny

    Thanks, subscribed

  • @olofhaggren245
    @olofhaggren245 Před 9 měsíci +1

    Thanks a lot. This serie is really great. I am in the process of learning to get point clouds in to usable models to be used for VR and this is realy helpfull.
    Have you evere tried to use the output model for VR/AR applications?

    • @FlorentPoux
      @FlorentPoux  Před 9 měsíci

      Thanks for the kind words! Awesome! Yes I have a working solutions for that, so let me put that as a guide on the roadmap 2024 ;)

  • @jdmoliveira
    @jdmoliveira Před 4 měsíci +1

    Thank you very much Florent for such a clear, concise and informative example. Best of luck in this channel.
    I have an interesting case where I need to find the valves in a Gas plant (full of pipes).
    I'm not sure the RANSAC / DBSCAN approach will work here or I will probably need some other way to manually label the valves and then feed into a PointNet++ or VoteNet.
    Do you have any tips for me?

    • @FlorentPoux
      @FlorentPoux  Před 3 měsíci

      Thanks a lot!
      Great use case you have! So yes indeed, you can maybe work into a two step proces: data labelling with the help of unsupervised approaches like this workflow; feeding the labelled dataset to Random Forest and PointNet++.
      You could 1 detect the ground, 2 detect walls, 3 cluster remaining elements, 4 add a conditional rule to give a class to each cluster (if detected from planes, it is a ground if horizontal, else walls; if a cluster has a shape of XXX, it likely is a hosting element of a valve). From that, you check out this video: czcams.com/video/rsWcT3HSXf4/video.html , and give each segment as an input to the visualizer to confirm the label. Then the next stage is supervised learning with PointNet++ or other networks (you can check out the 3D Deep Learning Course at learngeodata.eu for that). I hope this helps!

  • @JanBaumgartner-fj6ez
    @JanBaumgartner-fj6ez Před 3 měsíci +1

    Thank you for the great video! I have a question regarding line 44 of the code --> why is 'nn_distance' calculated based on 'pcd' and not 'pcd_downsampled'?

    • @FlorentPoux
      @FlorentPoux  Před 3 měsíci

      Thanks! Great question! if the downward processes are using the downsampled, then, it should be the pcd_downsampled... But I may have done a dirty trick there, I will get back into the code and reach out thereafter

  • @mrssujitha
    @mrssujitha Před 7 měsíci

    Sir, Very informative. At the end of the video, you talk about finding the dimensions of each plane and door. How do we do that to cal
    culate area ?

    • @FlorentPoux
      @FlorentPoux  Před 7 měsíci

      I will do another video on it and keep you posted, it is in my todo list now!

  • @user-kw5tb7ff7o
    @user-kw5tb7ff7o Před 2 měsíci

    Hey bro, I have a point cloud it’s a triangle one, so I have 3200 columns, because it does 3200 points in 1 profile.
    I can save it as cloud matrix csv.

  • @Clash_Royale_Iranian
    @Clash_Royale_Iranian Před 20 dny

    How to find an object dimensions???

  • @ronnieparsons1397
    @ronnieparsons1397 Před 9 měsíci +1

    Thanks for sharing; the content is great. Would you recommend open3d for segmenting organic scans, such as head or facial? For instance, to segment a head scan into body features.

    • @FlorentPoux
      @FlorentPoux  Před 8 měsíci

      Hi Ronnie! Yes indeed, this works the same for body features!

  • @guydonagi9875
    @guydonagi9875 Před 5 měsíci

    Once again, amazing tutorial! Thank you very much!
    If eventually I would want to label the data (accordinng to this segmentation)- what would be the best way to do so?
    Also, is there a way to preserve the RGB data?
    Thank you very much 🙏

    • @FlorentPoux
      @FlorentPoux  Před 5 měsíci

      Thanks a lot! So indeed, you can preserve the segmentation and use it as labelling. You can approach this by first creating a table of labels you want, and then matching clusters to the wanted labels. Concerning RGB, you can indeed keep it! For example, you can use an external array and link it based on point indexes. I hope this helps you!

  • @hardikjain2992
    @hardikjain2992 Před měsícem +1

    hey, great work. how can we achieve the coordinates/convexhull/polygon/bbox for the segmented parts?

    • @FlorentPoux
      @FlorentPoux  Před měsícem

      I will do a tutorial on this! Else, you can leverage Open3D to get these elements

    • @hardikjain2992
      @hardikjain2992 Před měsícem

      @@FlorentPoux yes I tried obb, convexhull, and even aplhashape. all aren't working like the polygon works in 2d

    • @hardikjain2992
      @hardikjain2992 Před měsícem

      @@FlorentPoux i tried open3d but it aint good.

  • @ivanapetrovska8135
    @ivanapetrovska8135 Před 6 měsíci +1

    Can you please do a video about Ransac for outlier removal in a point cloud?

    • @FlorentPoux
      @FlorentPoux  Před 6 měsíci

      Yes I can! Coming out this week ! 🍒🌞

  • @atheerhammadieh8766
    @atheerhammadieh8766 Před 4 měsíci +1

    Thank you for this informative video. I have a problem with the remove_statistical_outlier method, it's running forever without sending any message, do you have any idea why?

    • @FlorentPoux
      @FlorentPoux  Před 3 měsíci

      Thanks! This is due (from what I read) to your search parameters. For example, if your search condition (radius) takes all the point of your point cloud, this is normal. Try identifying the average distance between points, and set a research condition below this to check out if this solves your issue.

  • @BanuMukhtarFarms
    @BanuMukhtarFarms Před 5 měsíci +1

    Hi, thanks for the tutorial. Do these texhniques apply to point cloud (.ply) generated by Gaussian Splatting?

  • @cristianmaticiuc360
    @cristianmaticiuc360 Před 8 měsíci +1

    Hello, thank you for this amazing tutorial. How hard would it be to trace the edge of every segment and vectorize it?

    • @FlorentPoux
      @FlorentPoux  Před 8 měsíci +1

      Thanks a Lot Christian! Hmm, great question! I think you could use an highlighting technique and try to grasp the output vector within Bledner, or Just to compute a 3D Alpha Shape or more precise derivative to get the vector outside of Blender! To answer the easy / hard question, I think getting the perfect shape is closer to the hard part, but fun :)

    • @cristianmaticiuc360
      @cristianmaticiuc360 Před 8 měsíci

      @@FlorentPoux Thank you for replying! I played with the notebook, to be more specific with alphashapes and I’m thinking to increase the alpha for more details and then to make the lines smoother with algorithms like PAEK or Bezier interpolation. In this way I think that the shapes will be more “accurate” if I can say it like that and more aesthetically pleasing to the eye.

  • @dastani1903
    @dastani1903 Před 4 měsíci +1

    i do have a question . now that you finished your segmentation . and want to do measurements like calculating the wall surface or distance between two wall how would you do that . can u do that in python too ?

    • @FlorentPoux
      @FlorentPoux  Před 4 měsíci

      Yes you can! You can use Open3D to do this interactively

  • @alejandroibarra8335
    @alejandroibarra8335 Před 3 měsíci

    Just subscribed aswell, great video, was thinking in the loop of the RANSAC would it be possible to export the segments as individual meshes/point files, so they could be brought into another software?

    • @FlorentPoux
      @FlorentPoux  Před 3 měsíci +2

      Thanks! Welcome :)! Haha, you have the right mindset, indeed, this is feasible, in one of the course line at the 3D Geodata Academy I show the process on how to do that. But basically, it comes to adding some lines within the loop to extract each segmetn as a single file

  • @namlethe1
    @namlethe1 Před 8 měsíci

    Thanks a lot. I have started learning about 3D reconstruction. At 5:50, I saw a room with very dense point cloud. I wonder that how to create a dense point cloud such that because in my understanding, have very few texture on the wall to detect. I use COLMAP to reconstruct my 3D model

    • @FlorentPoux
      @FlorentPoux  Před 8 měsíci

      For dense point clouds like this, with textureless walls, you need an active sensor such as a LiDAR sensor (here it is a terrestrial laser scanner). Else, using photogrammetric pipeline and computer vision (i.e. Colmap) will struggle with textureless objetcs! I hope this helps you!

    • @namlethe1
      @namlethe1 Před 8 měsíci

      @@FlorentPoux my dataset is about BTS tower, I have used colmap, and after running MVS, there are very few keypoints in the antennas, so I am becoming stuck in that stituation. I want a dense point cloud in the surface of the antennas. Could you give me an advise, please?

  • @roalejandroid
    @roalejandroid Před 2 měsíci

    Hi! Is there a way to detect features or geometrical shapes in real time from a scanner laser ? Thanks for all your videos !

    • @FlorentPoux
      @FlorentPoux  Před měsícem +1

      Yep! but usually this is tied to C++ or having nice wrapper to execute code in real time.

  • @RobPearlman
    @RobPearlman Před 9 měsíci

    Great video. I am a professional land surveyor and would like to learn these skills to improve my business. Which of your courses would you recommend for someone who mostly scans interiors for architectural modeling?

    • @FlorentPoux
      @FlorentPoux  Před 9 měsíci

      Thanks a lot @MrTootall21! Awesome that you want to dive more! I would then recommend the Point Cloud Processor Course that gives an end-to-end workflow for 3d point cloud processing (laser scanning, photogrammetry, lidar...)

  • @AndersAlsDieAnderen9
    @AndersAlsDieAnderen9 Před 5 měsíci +3

    Great video, but please turn down the background music, while you talk, that really distracted me.

    • @FlorentPoux
      @FlorentPoux  Před 4 měsíci +1

      Thanks! I did for the follow up :), indeed, learning progressively the art of CZcams :)

  • @LeagueOfLegendsPakistan
    @LeagueOfLegendsPakistan Před 3 měsíci

    im trying to follow all the steps but stuck at Data pre processing, all the time I'm getting RPly: Unable to open file
    I tried different ply files, but unable to ready! please if anyone can help?

    • @LeagueOfLegendsPakistan
      @LeagueOfLegendsPakistan Před 3 měsíci +1

      alright i fixed it! on windows I have to insert the complete file path. in DATANAME = "E:/Spyder/Spyder/data/230725_edit.ply" this fixed the reading error.

    • @FlorentPoux
      @FlorentPoux  Před 3 měsíci +1

      haha, these are the best bugs, it usually takes some time to get found haha! Thanks for the heads up that you found the solution 😊

  • @imizzbrezzy006
    @imizzbrezzy006 Před 6 měsíci

    brilliant!

    • @FlorentPoux
      @FlorentPoux  Před 6 měsíci

      Thanks so muc! Very happy this helps you!

  • @user-jk9zr3sc5h
    @user-jk9zr3sc5h Před 6 měsíci +1

    This is a very planar example, does it work for a series of concave/convex elements or simply domain specific to planes?

    • @FlorentPoux
      @FlorentPoux  Před 6 měsíci

      Yes, but we need to adjust the RANSAC underlying model from a plane to another geometry (E.g. a sphere, a cylinder, ...)