ece4580:module_pcd:bridgeproblem
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
ece4580:module_pcd:bridgeproblem [2017/04/08 21:52] – [Proximity Check] pvela | ece4580:module_pcd:bridgeproblem [2024/08/20 21:38] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~NOTOC~~ | ||
====== Point Clouds Processing and Interpretation ====== | ====== Point Clouds Processing and Interpretation ====== | ||
Line 19: | Line 20: | ||
Let's go through a simulated version of the analysis. | Let's go through a simulated version of the analysis. | ||
+ | |||
+ | **Data File:** The data file for this activity is {{ECE4580: | ||
===== Part #1: Difference Calculation ===== | ===== Part #1: Difference Calculation ===== | ||
Line 69: | Line 72: | ||
// | // | ||
+ | |||
+ | |||
+ | ===== Part #2: Analysing the Surfaces ===== | ||
+ | |||
+ | The first part was about identifying the differences in the point cloud, which is good to get a rough idea of where the structure has changed. Howewer, it does not assist in understanding what components were affected as the solid model level. This second part is about getting one step closer to the solid model level. | ||
+ | |||
+ | Since the semester is drawing to a close, and we don't have much time left for a more in depth inquiry, let's do something on the simpler side. You've already computed the structurally different points in the point cloud. | ||
+ | |||
+ | The main approach is as follows: | ||
+ | - Partition the point cloud so that each partition does not exceed the maximum cardinality. | ||
+ | - Apply connected component (with normal agreement) estimation to cluster the points in each partition. | ||
+ | - Merge connected components across partitions by checking for agreement between two partitions that overlap. | ||
+ | - Continue merging clusters across partitions until there is no more to merge. | ||
+ | |||
+ | Let's review each of the steps, each of which should be some kind of function that gets invoked. There should be a master function that organizes it all and executes the overall sequence. It should be called from a script that performs all of the other activities (loading data into point cloud, meshing, visualization). | ||
+ | |||
+ | ==== 2.1 Partitioning and clustering the cloud ==== | ||
+ | |||
+ | The partitioning process should return a list of point clouds representing the breakdown of a bigger point cloud into smaller disjoint point clouds. | ||
+ | |||
+ | ==== 2.2 Inter-Partition Cluster Merging ==== | ||
+ | |||
+ | Next, we want to merge the data of two partitions. That involves figuring out if two clusters, one from each partition belong together in one cluster, or if they are fine as two distinct clusters. | ||
+ | There are many ways to do this, but perhaps the simplest would be to use a region-growing approach. | ||
+ | |||
+ | The first step is to get a process ordering based on partition connectivity: | ||
+ | < | ||
+ | Set all partitions to be in the available set. | ||
+ | Create a process list that is empty. | ||
+ | Create an active list that is empty. | ||
+ | While the available set is not empty | ||
+ | Add this partition to the active list. | ||
+ | Remove this partition from the available set. | ||
+ | While the active list is not empty. | ||
+ | Take the first element, add to the process list. | ||
+ | Find the other partitions in the available set that connect to it. | ||
+ | Add them to the end of the active list, remove from the available set. | ||
+ | </ | ||
+ | The final outcome will be a process list that indicates the ordering of the processing. | ||
+ | |||
+ | The second step involves going through the process list and checking for cross-partition component connectivity. | ||
+ | < | ||
+ | Grab the first partition from the process list. | ||
+ | This point cloud and its cluster label list will be the master list. | ||
+ | While the process list is not empty | ||
+ | Grab the next partition and merge connected clusters with normal agreement. | ||
+ | All remaining clusters get added to the master partition and cluster label list. | ||
+ | </ | ||
+ | This activity combines some of the prior work and will require some book-keeping to get working proper. | ||
+ | |||
+ | **Merging Two Partitions: | ||
+ | ==== 2.3 Visualization ==== | ||
+ | |||
+ | When the above is done, then the resulting master point cloud should contain all of the original points in one point cloud object again, plus their cluster labels. | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 83: | Line 144: | ||
-------- | -------- | ||
;#; | ;#; | ||
- | [[ECE4580:Modules|ECE4580 Learning Modules]] | + | [[ECE4580:Module_PCD|Back]] |
;#; | ;#; |
ece4580/module_pcd/bridgeproblem.1491702727.txt.gz · Last modified: 2024/08/20 21:38 (external edit)