From my (brief) overview of pointcloud registration algorithms (PRA), it seems they all require that at least the one pointcloud (if not both) to be fully loaded into memory. Is there an algorithm without this requirement, i.e. working with subsets of the two pointclouds at any given time so that it can scale to arbitrarily large pointclouds and (ideally) be parallelizable so it can be computed in a distributed cluster?
Possible answers, from best to worst:
- There is/are such algorithm(s) with an open source implementation available (bonus if it's in Python / has Python bindings).
- There is/are such algorithm(s) presented in research literature, but without open source implementations currently available.
- There isn't such an algorithm off-the-shelf, but there are (precise or heuristic) ways to break up the problem into subproblems which can be solved by any existing PRA and combine the partial solutions to form the full solution.
- There cannot be such an algorithm in the general case, at least not without some extra conditions/assumptions about the pointclouds to be registered.
- There cannot be such an algorithm at all.
Note: I am not looking for approaches that reduce the size of the original input(s), e.g. with sampling, point aggregation, feature extraction etc; I am only interested in algorithms that work with the full original pointclouds.