<p>This is just food for thought:</p>
<p>One potential way to analyze the data is by converting the point clouds to soil density clouds by looking at the distances between points at each excavation level. Potentially the soil density could be inferred by comparing nearest points, points that have a lot of distance to the next level have lower density, points that are close to the next level have higher density.</p>
<p>Using a density cloud would make it possible to infer densities between layers and extrapolate data in unexcavated regions, it might even be possible to compute an error metric by having the algorithm extrapolate data, then comparing that to measured data.</p>
<p>The reason I am going on and on about density is that is how MRI scans allow us to view different structures. Blood vessels have a different density then other tissues, so we can examine only blood vessels by isolating only that density in the density cloud generated by a scan. (think marching cubes algorithm here) So by isolating density ranges in a generated density map, different structures could potentially be visualized.</p>

CC BY-SA 4.0
2021-08-02T15:17:58.850Z
Interesting thought, we've just published the 'manual' way that we do this, free to access, it might help explain the problem, particularly since there are pretty pictures included.

https://www.degruyter.com/document/doi/10.1515/opar-2020-0149/html
Spatial Digger
CC BY-SA 4.0
2021-07-30T15:00:37.397Z
2021-07-30T15:00:37.397Z
pmw1234
<p>I'm working (as a Post-doc) on an archaeological excavation point cloud dataset with over 2.5 Billion points. This points come from a trench, a cuboid 10 x 10 x 3 m. Each point cloud is a layer, the gaps between are the excavated volumes. There are 444 volumes from this trench, 700 individual point clouds.</p>

<p>Can anyone give me some direction to any deep learning algorithms which can mesh these empty spaces? I'm already doing this semi-automatically using Open3D and other python libraries, but if we could train the program to assess all the point clouds and deduce the volumes it would save us a lot of time and hopefully get better results.</p>

<p>We excavate more trenches every year so the perfect place to test these out.</p>

<p>reposted from here <a href="https://stackoverflow.com/questions/58757853/deep-learning-for-3d-point-clouds-volume-detection-and-meshing">https://stackoverflow.com/questions/58757853/deep-learning-for-3d-point-clouds-volume-detection-and-meshing</a></p>

<hr>

<p>To clarify the nature of the data, as requested.</p>

<p>We gather a point cloud of the ground surface using Structure from Motion - photogrammetry. We then excavate a layer (e.g remove 10cm of soil across the trench) and record again. This process repeats until we hit bedrock, in this trench it is 3m deep. This is a vastly simplified example since we have fire pits, walls, and irregularly shaped features. each point cloud is between 1 - 20 million points, we are currently using a 1 - 10 % sample of this data and getting good results, however we would like to employ deep learning to eventually save time and produce more accurate results.</p>

CC BY-SA 4.0
2019-11-08T15:55:10.900Z
Are you sure this is the right place to ask about "AI" but then i suspect that you need no "AI"
joojaa
CC BY-SA 4.0
2019-11-08T22:08:34.197Z
In another post I was recommended this group, apologies if this is the wrong place I'm not after "AI" just machine learning / deep learning direction, I don't want to reinvent the wheel.
Spatial Digger
CC BY-SA 4.0
2019-11-09T06:21:55.197Z
Thats fine, however you may consider explsining the nature of the data better.
joojaa
CC BY-SA 4.0
2019-11-10T20:54:22.073Z
@joojaa does that help? It is a fairly logical problem, we know the date and time of each point cloud, the latter the date/time the deeper the data, or inversely the lower the point cloud the later it was captured. each point cloud is accurately georeferenced +/- up to 3cm (dgps) they are all within a 10x10x3 volume. So classifying the points as A) part of the volume, B) overlapping points, C) outlying data points.
Spatial Digger
CC BY-SA 4.0
2019-11-11T06:15:58.967Z
sounds like a XY problem. But your not describing yourself very well. In either case if you persist in asking deep learning solutions then you are in the wrong forum. Dont specify the solution just describe the problem, youll get better answers. Why would there be overlapping points? I can guess but . Volume classifying should be trivially just the distance to a datum of some kind or just each pointcloud. Outlying datapoints should be handled by the poissob disk surface reconstruction. Anyway i am afraid you have consumed any interest I have in your problem.
joojaa
CC BY-SA 4.0
2019-11-12T10:25:59.510Z
Is there any specific reason you need to do this via deep learning other than it being da next big thing or you being academically pressured into doing *something* with deep learning?
Christian Rau
CC BY-SA 4.0
2019-11-12T21:41:31.363Z
@ChrissaysReinstateMonica I'm actually fairly late coming to ML/DL, I am hype critical regarding new technologies, particularly those which have the wow-factor. However in this case I can see a sensible application. I have achieved the cleaning of 3D point clouds to allows volume generation (mainly in python) while quicker than a purely manual approach it is still laborious. Since there is a basic logic behind the problem (an earlier ground surface is the top of a later ground surface - base) DL should (once trained) be able to solve the problem? But where to begin?
Spatial Digger
CC BY-SA 4.0
2019-12-02T20:40:53.693Z
@SpatialDigger This sounds like a very interesting problem. Are you able to share any of the data, or pictures of the data, so we can get a sense of the challenge? If it requires supervised learning, you're in for spending a lot of money/time on labels. If you can solve it using "classical" approaches, like some clever meshing, then you'll be happy. Seeing the data would make it easier to guess what might work.
Jacob Panikulam
CC BY-SA 4.0
2019-12-02T20:48:57.207Z
In fact, I'd love to help you over the phone, but I'm not sure if I'm allowed to offer that in comments.
Jacob Panikulam
CC BY-SA 4.0
2019-12-03T21:06:46.530Z
@JacobPanikulam it's fairly simple, imagine recording the ground using pointclouds, then you dig a hole and record again, then dig the hole deeper and again record. You get 3 georeferenced pointclouds which represent two volumes of soil. you just need to clean the pointclouds. I currently do this using cdist from scipy and selecting the minimum distance. `cdist(XA, XB, metric='euclidean').min()` the simplest question is getting the computer to choose which pointclouds relate to which volume, then selecting which points in those pointclouds define the volume, then it's just a meshing to a solid
Spatial Digger
CC BY-SA 4.0
2019-12-03T23:13:00.133Z
@SpatialDigger To repeat back: A reasonable example output would be two *closed* meshes, one containing the region excavated between dig 1 and dig 2, and one containing the region excavated between dig 2 and dig 3? Then the hope is to do some analysis on that? And to satisfy personal curiosity, do you have any papers from the archaeological community we could read about similar work?
Jacob Panikulam
CC BY-SA 4.0
2021-07-07T13:15:41.547Z
Any update on this? I am trying to solve the same and don't want to reinvent the wheel as well.
Nissim Kurle
CC BY-SA 4.0
2021-07-09T12:20:54.770Z
Thanks for everyone's help on this. @NissimKurle published this week, this shows where we got to, but I'm continuing to develop this: https://www.degruyter.com/document/doi/10.1515/opar-2020-0149
Spatial Digger
<algorithm><volumetric>
Deep Learning for 3D Point Clouds, volume detection and meshing
Spatial Digger
# Deep Learning for 3D Point Clouds, volume detection and meshing

(Asked by: username_0 on 2019-11-08)

I'm working (as a Post-doc) on an archaeological excavation point cloud dataset with over 2.5 Billion points. This points come from a trench, a cuboid 10 x 10 x 3 m. Each point cloud is a layer, the gaps between are the excavated volumes. There are 444 volumes from this trench, 700 individual point clouds.

Can anyone give me some direction to any deep learning algorithms which can mesh these empty spaces? I'm already doing this semi-automatically using Open3D and other python libraries, but if we could train the program to assess all the point clouds and deduce the volumes it would save us a lot of time and hopefully get better results.

We excavate more trenches every year so the perfect place to test these out.

reposted from here <https://stackoverflow.com/questions/58757853/deep-learning-for-3d-point-clouds-volume-detection-and-meshing>

---

To clarify the nature of the data, as requested.

We gather a point cloud of the ground surface using Structure from Motion - photogrammetry. We then excavate a layer (e.g remove 10cm of soil across the trench) and record again. This process repeats until we hit bedrock, in this trench it is 3m deep. This is a vastly simplified example since we have fire pits, walls, and irregularly shaped features. each point cloud is between 1 - 20 million points, we are currently using a 1 - 10 % sample of this data and getting good results, however we would like to employ deep learning to eventually save time and produce more accurate results.

**Tags:** algorithm, volumetric

> **Comments:**
> **username_1**: Are you sure this is the right place to ask about "AI" but then i suspect that you need no "AI"  
> **username_0**: In another post I was recommended this group, apologies if this is the wrong place I'm not after "AI" just machine learning / deep learning direction, I don't want to reinvent the wheel.  
> **username_1**: Thats fine, however you may consider explsining the nature of the data better.  
> **username_0**: @username_1 does that help? It is a fairly logical problem, we know the date and time of each point cloud, the latter the date/time the deeper the data, or inversely the lower the point cloud the later it was captured. each point cloud is accurately georeferenced +/- up to 3cm (dgps) they are all within a 10x10x3 volume. So classifying the points as A) part of the volume, B) overlapping points, C) outlying data points.  
> **username_1**: sounds like a XY problem. But your not describing yourself very well. In either case if you persist in asking deep learning solutions then you are in the wrong forum. Dont specify the solution just describe the problem, youll get better answers. Why would there be overlapping points? I can guess but . Volume classifying should be trivially just the distance to a datum of some kind or just each pointcloud. Outlying datapoints should be handled by the poissob disk surface reconstruction. Anyway i am afraid you have consumed any interest I have in your problem.  
> **username_2**: Is there any specific reason you need to do this via deep learning other than it being da next big thing or you being academically pressured into doing *something* with deep learning?  
> **username_0**: @ChrissaysReinstateMonica I'm actually fairly late coming to ML/DL, I am hype critical regarding new technologies, particularly those which have the wow-factor. However in this case I can see a sensible application. I have achieved the cleaning of 3D point clouds to allows volume generation (mainly in python) while quicker than a purely manual approach it is still laborious. Since there is a basic logic behind the problem (an earlier ground surface is the top of a later ground surface - base) DL should (once trained) be able to solve the problem? But where to begin?  
> **username_3**: @username_0 This sounds like a very interesting problem. Are you able to share any of the data, or pictures of the data, so we can get a sense of the challenge? If it requires supervised learning, you're in for spending a lot of money/time on labels. If you can solve it using "classical" approaches, like some clever meshing, then you'll be happy. Seeing the data would make it easier to guess what might work.  
> **username_3**: In fact, I'd love to help you over the phone, but I'm not sure if I'm allowed to offer that in comments.  
> **username_0**: @username_3 it's fairly simple, imagine recording the ground using pointclouds, then you dig a hole and record again, then dig the hole deeper and again record. You get 3 georeferenced pointclouds which represent two volumes of soil. you just need to clean the pointclouds. I currently do this using cdist from scipy and selecting the minimum distance. `cdist(XA, XB, metric='euclidean').min()` the simplest question is getting the computer to choose which pointclouds relate to which volume, then selecting which points in those pointclouds define the volume, then it's just a meshing to a solid  
> **username_3**: @username_0 To repeat back: A reasonable example output would be two *closed* meshes, one containing the region excavated between dig 1 and dig 2, and one containing the region excavated between dig 2 and dig 3? Then the hope is to do some analysis on that? And to satisfy personal curiosity, do you have any papers from the archaeological community we could read about similar work?  
> **username_4**: Any update on this? I am trying to solve the same and don't want to reinvent the wheel as well.  
> **username_0**: Thanks for everyone's help on this. @username_4 published this week, this shows where we got to, but I'm continuing to develop this: https://www.degruyter.com/document/doi/10.1515/opar-2020-0149  

---

## 1 answers

### Answer by username_5 on 2021-07-30. Score: 1

This is just food for thought:

One potential way to analyze the data is by converting the point clouds to soil density clouds by looking at the distances between points at each excavation level. Potentially the soil density could be inferred by comparing nearest points, points that have a lot of distance to the next level have lower density, points that are close to the next level have higher density.

Using a density cloud would make it possible to infer densities between layers and extrapolate data in unexcavated regions, it might even be possible to compute an error metric by having the algorithm extrapolate data, then comparing that to measured data.

The reason I am going on and on about density is that is how MRI scans allow us to view different structures. Blood vessels have a different density then other tissues, so we can examine only blood vessels by isolating only that density in the density cloud generated by a scan. (think marching cubes algorithm here) So by isolating density ranges in a generated density map, different structures could potentially be visualized.

> **Comments:**
> **username_0**: Interesting thought, we've just published the 'manual' way that we do this, free to access, it might help explain the problem, particularly since there are pretty pictures included.  https://www.degruyter.com/document/doi/10.1515/opar-2020-0149/html  

---

