LiDAR Point Cloud Vectorization: 3D Python Tutorial (+ LoD City Models)

Ғылым және технология

Hey there fellow Python enthusiasts! In this tutorial, we'll be diving into the exciting world of 3D LiDAR point cloud vectorization using Python. If you're interested in transforming raw 3D LiDAR data into a usable format for your projects, then this video is for you! We'll be covering everything from Environment Setup to processing and visualization, so whether you're a beginner or an experienced Python programmer, there's something here for you. Grab your favorite beverage ☕, and let's get started!
I go through 5 phases that follow the different chapters.
🍿 NEXT STEPS:
Code a 3D Point Cloud Segmentation Solution with Python: • 3D Point Cloud Segment...
Finish the 3D Tutorial Series: learngeodata.eu/3d-tutorials/
Dive in Expert articles: / florentpoux
Become a 3D Data Science Expert: learngeodata.eu
🙋 FOLLOW ME
Linkedin: / florent-poux-point-cloud
Github: github.com/florentPoux
Research: scholar.google.com/citations?...
WHO AM I?
If we haven’t yet before - Hey 👋 I’m Florent, a professor-turned-entrepreneur, and I’ve somehow become the world’s most-followed 3D expert. Through my videos here on this channel and my writing, I share evidence-based strategies and tools to help you be better coders and 3D innovators.
📄 CHAPTERS
[00:00:00]: Introduction: LiDAR Point Cloud Vectorization
[00:02:04]: 1. 3D Python Setup
[00:07:55]: 2. 3D Data Preparation
[00:12:49]: 3. (Instance Segmentation, Vectorization and Modelling
[00:29:53]: 4. 3D Automation and Scaling
[00:33:11]: 5. 3D Visualization
[00:34:39]: Conclusion: 2D/ 3D Vectorization

Пікірлер: 54

  • @cristianmaticiuc360
    @cristianmaticiuc3606 ай бұрын

    Amazing, we can thank you enough! We're waiting for more tutorials like this!

  • @FlorentPoux

    @FlorentPoux

    6 ай бұрын

    Thanks a lot @cristianmaticiuc360 ! Working on the follow ups!

  • @JoystickLab
    @JoystickLab3 ай бұрын

    Amazing, I think in next 6 months this channel will blow up. I run a youtube channel focusing Augmented Reality and always wanted to go in depth of 3d AI. Glad I found this channel. Best of luck and keep feeding us amazing contents like this. If you publish a course on Nerf or Gaussian Splatting, it would be very helpful.

  • @FlorentPoux

    @FlorentPoux

    3 ай бұрын

    Fingers crossed! May the KZread gods hear you haha! Thanks a lot JoystickLab! Nerf and Gaussian Splatting are of course in the roadmap :)

  • @imizzbrezzy006
    @imizzbrezzy0064 ай бұрын

    Great work man

  • @FlorentPoux

    @FlorentPoux

    3 ай бұрын

    Thank you! Cheers with a beer 🍻

  • @sun-toshi
    @sun-toshi6 ай бұрын

    日本からとても感謝します

  • @EngineerNick
    @EngineerNick5 ай бұрын

    Nice, thankyou :)

  • @FlorentPoux

    @FlorentPoux

    4 ай бұрын

    Welcome!

  • @trollenz
    @trollenz6 ай бұрын

    Goldmine 👌🏻👍🏻 Thanks.

  • @FlorentPoux

    @FlorentPoux

    6 ай бұрын

    Thanks so much @trollenz!

  • @user-sc8tv4dg2d
    @user-sc8tv4dg2d5 ай бұрын

    great video !!

  • @FlorentPoux

    @FlorentPoux

    5 ай бұрын

    Thank you!

  • @Knak123
    @Knak123Ай бұрын

    Helpful stuff

  • @FlorentPoux

    @FlorentPoux

    18 күн бұрын

    Happy about it :)!

  • @eschersky
    @eschersky3 ай бұрын

    Bonjour Laurent! Wow, all your videos are mindblowing, I just started to play with LAZ files and as you mention, finding information about point clouds is hard, even for blender users. I'll need a few days to digest all your knowledge and setup a proper working environment. May I ask how did you end up being so proficient with all those tools? What kind of jobs did you have to acquire all those skills?

  • @FlorentPoux

    @FlorentPoux

    3 ай бұрын

    Hey! Thanks a lot for the kind words! Haha, a bit of everything I guess? I started as an application engineer, then move to research doing a Ph.D, then a PostDoc in Computer Graphics, and after that Sirecting R&D teams. So I guess that it helped me get a pragmatic view with users in mind, to then develop some skills with the proper tools

  • @bdamay
    @bdamay4 ай бұрын

    This is awesome! Dealing so simply with rather complex matter. Brilliant! I tried that out with french data from IGN. and it works quite fine, even though i didn't really manage to get my sample variable cloud as clean as you do. (I have to dig into this a little bit more, to understand better). I was wondering if you have experiments like this that can create low poly mesh including basic lines of roof shapes as well, instead of simple extrusion. What do you think it would take to do this ? But, Thanks again, you enlighted my day. Benoit

  • @FlorentPoux

    @FlorentPoux

    4 ай бұрын

    Thanks a lot for the heartwarming message! Very happy that it pushed you on a working solution , congrats! Hmm, very interesting case! To do this, I would leverage the bin histogram, and generate some keypoints there, to then link everything together through a bit more selection / regularization process! You know what, I will put that in my todo tutorial ;) and hit you up when the cooking is done!

  • @bdamay

    @bdamay

    4 ай бұрын

    Thanks for your answer and the promise of digging into the roof shape matter. Don't bother hitting me up when it's cooked as you say, I've subscribed to your channel and your academy site and activated all flashing lights necessary to be informed in the minute whenever you post something. I also have some catch up to do on basics of point cloud to do before digging into more complex usecases, your site seem to be the right place to do that. Have a good day. Benoit @@FlorentPoux

  • @stagrei8233
    @stagrei82336 ай бұрын

    Great job. Can I use this method to segment out piping from a point cloud scanned from a process industry.

  • @FlorentPoux

    @FlorentPoux

    6 ай бұрын

    Thanks a lot! Yes, absolutely! However some tweaking may be useful to fit cylindrical elements

  • @Rocker123uk
    @Rocker123uk4 ай бұрын

    Thank you for the video, very informative. which LiDAR is used for this project?

  • @FlorentPoux

    @FlorentPoux

    4 ай бұрын

    Happy that it helps! For this project, I used an Aerial LiDAR dataset from Open Source repositories. I think it is Riegl but I am not sure

  • @ghaniyd6292
    @ghaniyd6292Күн бұрын

    sir, i have an error on crs = las.vlrs[2].string, the error is AttributeError: 'GeoAsciiParamsVlr' object has no attribute 'string'. I'm not using lidar data like in your video. how to solve this? thank you in advance.

  • @robrever
    @robrever5 ай бұрын

    Hi Dr. Poux, I'm very new to all of this but doesn't KNN's performance degrade as the dimensionality of the feature space increase? In a more high dimensional space, would it be wise to use something else?

  • @FlorentPoux

    @FlorentPoux

    5 ай бұрын

    Hey @robrever! Thanks for the question! Indeed, you are right, KNN may degrade if you have too many features, but in our case, we work only in the euclidean space to search for neighbors, thus, you can alleviate worries (very different from using K-NN classifiers)

  • @James-qy4es
    @James-qy4es16 күн бұрын

    where can I found the full python notebook? I have some errors in few places and it would be easier to just go through the notebook :)

  • @rafaelbomfim5539
    @rafaelbomfim55395 ай бұрын

    Excellent video. I'm a beginner. So I would like to know if there is a way to create a 3D modeling of a neighborhood or urban region, using a cloud of LiDAR points (.laz file), for 3D printing.

  • @FlorentPoux

    @FlorentPoux

    5 ай бұрын

    Yes there is! I added that to the todo list, coming soon ;)

  • @user-yi8mb9ui7o
    @user-yi8mb9ui7o2 ай бұрын

    This won't work for bigger data right? I tried with one of my lidar data and the jupyter lab freezes.

  • @FlorentPoux

    @FlorentPoux

    2 ай бұрын

    Ha yes, in that case I think getting onto a local IDE (non-notebook) may help debug your case. I just tested it works for massive datasets as well. Also, you can tile your data if this make sense in your case! I hope this helps you debug the situation!

  • @Alex_2411
    @Alex_24113 ай бұрын

    Hi, great video! I'm new to python and I'm having some troubles installing open3d. I've searched and it isn't available for the latest versions. What do you suggest? Thanks :) (I'm working on vscode)

  • @FlorentPoux

    @FlorentPoux

    3 ай бұрын

    Hey Alex, thanks! So for Open3d, I recommend using pip (pip install open3d), within a conda environment. this way you can get on with the latest version (in VSCode).

  • @Alex_2411

    @Alex_2411

    3 ай бұрын

    Thank you! I managed to solve the problem. Now I can continue the video! :)

  • @ShivarajPanishettar-tp6nt
    @ShivarajPanishettar-tp6ntАй бұрын

    hey i am getting error in the scaling part . Its like i am getting only a single house in my output , the result data does not have all the houses .. can you help me with this one .

  • @FlorentPoux

    @FlorentPoux

    Ай бұрын

    Hey! Sure! but I think we have to look at your code to understand better :)

  • @ShivarajPanishettar-tp6nt

    @ShivarajPanishettar-tp6nt

    Ай бұрын

    @@FlorentPoux sorry for the late reply . I have got it right later . there was a problem with a function in my code which i rectified it later . thanks for making this content its very useful for the newbies like me .

  • @tarikdzambic1837
    @tarikdzambic18372 ай бұрын

    How would I go about transforming the building shape from a simple polygon to an object that actually follows the points that the LiDAR scanned, basically reconstructing the original house shape? Do you have a tutorial on this already?

  • @FlorentPoux

    @FlorentPoux

    2 ай бұрын

    I think if you want to follow the point, a meshing strategy would be a good start. You can follow the 3D Point Cloud to Mesh Tutorial I did on that.

  • @tarikdzambic1837

    @tarikdzambic1837

    2 ай бұрын

    @@FlorentPoux I will check it out. This tutorial was very helpful so I hope I will find what I need in that one as well. Thank you for the fast response and keep up the good work!

  • @luongpham2587
    @luongpham25875 ай бұрын

    what version of python you use in this ?? thanks

  • @FlorentPoux

    @FlorentPoux

    5 ай бұрын

    Python 3.9 ;)

  • @jomsantony2550
    @jomsantony25505 ай бұрын

    Is there a way to convert Lidar point clouds to xyz format

  • @FlorentPoux

    @FlorentPoux

    4 ай бұрын

    Yes of course! with Python you can use open3d or numpy or pandas when you save your file (just change the extension to .xyz); else with CloudCompare you can use the export as .xyz directly

  • @kpj973
    @kpj9734 ай бұрын

    Bonjour Florent ! Merci pour ces vidéos ! Je suis actuellement en train de chercher une solution pour imprimer des arbres en 3d à partir de données lidar. Aurais tu des suggestions ? Bonne journée

  • @FlorentPoux

    @FlorentPoux

    3 ай бұрын

    Hey! Thanks a lot for the kind words! Yes, I have some ideas, but trees are tricky beasts :). Are these from Aerial LiDAR only or Terrestrial LiDAR? My hint: Go to voxelized approaches first at this stage. You can reach me on learngeodata.eu or in the Discord Channel if you want that we take more time and deep dive your application

  • @kpj973

    @kpj973

    3 ай бұрын

    Hi @@FlorentPoux , Thnx a lot for your time ! I'm only using aerial LiDAR . For sure ill join your community !

  • @AgusAmbarwari
    @AgusAmbarwari4 ай бұрын

    thanks, Mr Florent, I have a problem installing "pip install laspy[lazrs, laszip]" and I got the error message ERROR: Invalid requirement: 'laspy[lazrs,'

  • @noorafeeda9022

    @noorafeeda9022

    4 ай бұрын

    Same. I try remove spacing after comma and its succes. pip install laspy[lazrs,laszip]

  • @FlorentPoux

    @FlorentPoux

    4 ай бұрын

    thanks for noticing, indeed! the space is problematic, well spotted!

  • @luongpham2587
    @luongpham25875 ай бұрын

    building_gdf[['local_cx', 'local_cy', 'local_cz']] = np.asarray([building_vector.centroid.x, ... hey can u help me , fill the rest , thank u

  • @FlorentPoux

    @FlorentPoux

    5 ай бұрын

    np.asarray([building_vector.centroid.x,building_vector.centroid.y,building_vector.centroid.z])

Келесі