data structures - Finding specific shapes in point clouds quickly -
i've got point cloud, , detect occurrences of patterns of points in code.
let's have 1000 points in 3d space, , want detect instances of 3 points form 'l' shape each segment of l has specific length. point cloud may not have exact matches, may close (i.e. in point cloud, length of segment of 'l' may longer/shorter ideal)
my initial idea this:
- record distance between points in shape trying detect
- create empty 'potential shape'
- for each point in our potential shape, examine points at/near distances found in part 1)
- if find point, add our potential shape, , repeat part 3) until have points. check angles between points verify shape indeed correct. if not correct, go on next point , start again
the problem approach has terrible worst case running time. ideally, have kind of data structure speed queries 'find points between distancemin , distancemax away given point. can point me useful data structures might help.
i thinking of putting points in octree speed access time.
any other advice on how improve running time? heuristics speed things up?
note: shapes i'm trying find variable. not 'l'. tried looking @ hough transforms, seem useful detecting specific predetermined shapes lines/circles.
in pcl library there's sample consensus module, quoting directly docs:
holds sample consensus (sac) methods ransac , models planes , cylinders. these can combined freely in order detect specific models , paramters in point clouds.
maybe create shapes combining primitives , search them in cloud?.
Comments
Post a Comment