├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Florent Poux 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 3D-DATA-COURSE 2 | Geospatial 3D Data Processing Courses for Digital Twins. 3 | ITC, University of Twente. 4 | 5 | # 3D Data Processing Open Course 6 | 7 | ![3D Data Processing Logo](https://1348661504.rsc.cdn77.org/.uc/i6e7f12dd0102675d8401aa63f60105b60425f1c734e90701c3ee02000080/itc-langezijds-34.jpg) 8 | 9 | Welcome to the **3D Data Course** repository! This repository aims to provide a comprehensive set of tutorials on 3D Data Processing using Python. Whether you're a beginner or an experienced practitioner, this resource will guide you through the fundamentals and advanced concepts of 3D for Digital Twins. This Open Course initiative is made possible by the financial contribution from the digital twins @ITC -project granted by the ITC faculty of the University of Twente. We are thankful for the support, without which this could not have been possible. 10 | 11 | ## Table of Contents 12 | 13 | 1. [Introduction to 3D Data Processing for Digital Twins](#introduction) 14 | 2. [Getting Started](#getting-started) 15 | 3. [Installation](#installation) 16 | 4. [Course Tutorials](#tutorials) 17 | - [Tutorial 1: 3D LiDAR Workflows](#tutorial-1) 18 | - [Tutorial 2: ALS LiDAR Classification with Deep Learning](#tutorial-2) 19 | - [Tutorial 3: 3D Indoor Unsupervised Segmentation (SAM)](#tutorial-3) 20 | - [Tutorial 4: 3D Point Cloud Detection for Indoor Mapping](#tutorial-4) 21 | - [Tutorial 5: 3D Data Integration](#tutorial-5) 22 | - [Tutorial 6: COMING SOON](#tutorial-6) 23 | - [Tutorial 7: COMING SOON](#tutorial-7) 24 | - [Tutorial 8: COMING SOON](#tutorial-8) 25 | - [Tutorial 9: COMING SOON](#tutorial-9) 26 | 5. [Examples](#examples) 27 | 6. [Contributing](#contributing) 28 | 7. [License](#license) 29 | 30 | ## Introduction 31 | 32 | 3D Data Processing has gained significant traction in various fields, notably geospatial mapping and digital twins. This repository serves as a course and code learning hub for understanding and implementing 3D data processing techniques using Python and Open-Source Tools. 33 | 34 | ## Getting Started 35 | 36 | Before diving into the tutorials, make sure you have the necessary tools and libraries installed. Please refer to the [Installation](#installation) section for detailed instructions. 37 | 38 | ## Installation 39 | 40 | To get started with 3D Data Processing, you'll need to set up your environment. Each code package is grounded with a how-to guide accessible on this [Medium Page](https://medium.com/@florentpoux). You then have a section dedicated to the local setup. 41 | It usually involves this: 42 | 43 | ```bash 44 | # Clone the repository 45 | git clone https://github.com/username/3d-deep-learning.git 46 | 47 | # Navigate to the project directory 48 | cd 3d-data-processing 49 | 50 | # Install miniconda with Python version 3.10 51 | 52 | # Create a virtual environment (optional but recommended) 53 | conda create -n DEEPTUTO python=3.10 54 | 55 | # Activate the virtual environment 56 | conda activate 57 | 58 | # Install dependencies using requirements (if set-up) 59 | pip install -r requirements.txt 60 | 61 | #Install dependencies using the given libraries in the Medium Article 62 | pip install numpy matplotlib rasterio laspy open3d 63 | ``` 64 | 65 | ## Tutorials 66 | 67 | ### Tutorial 1: 3D LiDAR Workflows 68 | 69 | The tutorial covers Python Automation combining 3D Point Clouds, Meshes, and Voxels for advanced analysis. 70 | 71 | For starting the tutorial, please refer to the [tutorials](tutorials/) directory, and chose the relevant one 72 | 73 | ### Tutorial 1: Understanding 3D Data 74 | 75 | In this tutorial, we'll cover the basics of working with 3D data, including formats, visualization, and common preprocessing techniques. 76 | 77 | 📖 [3D Python Workflows for LiDAR City Models: A Step-by-Step Guide](https://towardsdatascience.com/3d-python-workflows-for-lidar-point-clouds-100ff40e4ff0?sk=8fcb54d8f81534f0e73a5cd9116a6f9f) 78 | 79 | ### Tutorial 2: ALS LiDAR Classification with Deep Learning 80 | 81 | The Ultimate Python Guide to structure large LiDAR point cloud for training a 3D Deep Learning Semantic Segmentation Model with the PointNet Architecture. 82 | 83 | 📖 [3D Deep Learning Python Tutorial: PointNet Data Preparation](https://towardsdatascience.com/3d-deep-learning-python-tutorial-pointnet-data-preparation-90398f880c9f?sk=b781f4477847b02fab5f17d31108af95) 84 | 85 | ### Tutorial 3: 3D Indoor Unsupervised Segmentation (SAM) 86 | 87 | How to build a Semantic Segmentation Application for 3D Point Clouds leveraging SAM and Python. Bonus: Code for Projections and… 88 | 89 | Coming soon. 90 | 91 | ### Tutorial 4: 3D Point Cloud Detection for Indoor Mapping 92 | 93 | A 10-step Python Guide to Automate 3D Shape Detection, Segmentation, Clustering, and Voxelization for Space Occupancy 3D Modeling of Indoor Point Cloud Datasets. 94 | 95 | 📖 [3D Point Cloud Shape Detection for Indoor Modelling](https://towardsdatascience.com/3d-point-cloud-shape-detection-for-indoor-modelling-70e36e5f2511?sk=ba5e0b8aec07c44405d4e3bfa6f7900b) 96 | 97 | ### Tutorial 5: 3D Data Integration 98 | 99 | Integrate 3D spatial data with Python and explore essential processing steps for reading, loading, transforming, and visualizing 3D point clouds, meshes, cityGML models, voxels, vector data, satellite raster, and 360 images. 100 | 101 | 📖 [3D Geospatial Data Integration with Python: The Ultimate Guide](https://towardsdatascience.com/3d-spatial-data-integration-with-python-7ef8ef14589a?sk=d9dc99077e82f27ce929f2e15f81cdef) 102 | 103 | ### Tutorial 6: Deploying 3D Models in Applications 104 | 105 | Coming soon. 106 | 107 | ### Tutorial 7: Deploying 3D Models in Applications 108 | 109 | Coming soon. 110 | 111 | ### Tutorial 8: Deploying 3D Models in Applications 112 | 113 | Coming soon. 114 | 115 | ### Tutorial 9: Deploying 3D Models in Applications 116 | 117 | Coming soon. 118 | 119 | ## Contributing 120 | 121 | We welcome contributions! If you have an idea for a new tutorial or want to improve existing content, please refer to the [contributing guidelines](CONTRIBUTING.md). 122 | 123 | Main author: 124 | - Dr. Florent Poux 125 | 126 | Course Tutorial Co-Authors: 127 | - Dr. Sander Oude Elberink 128 | - Dr. Mila Koeva 129 | - Dr. Ville Lehtola 130 | - Dr. Pirouz Nourian 131 | - Dr. Paulo Raposo 132 | - Prof G. Vosselman 133 | 134 | ## License 135 | 136 | This open course initiative is made possible by the financial contribution from the digital twins @ITC -project granted by the ITC faculty of the University of Twente. We thank the initiative very much. 137 | This repository is licensed under the [MIT License](LICENSE). 138 | 139 | --- 140 | 141 | Feel free to reach out with any questions, feedback, or suggestions. Happy learning! 🚀 142 | --------------------------------------------------------------------------------