Title: Distributed Processing Framework for 3D Reconstruction using
Multi-Node Parallelism
1. Introduction This framework is designed to handle large-scale 3D
reconstruction tasks using data from multiple camera observations. It
employs distributed processing with parallel computation on multi-threaded
nodes, making it highly efficient for dense environments such as urban
mapping or interior modeling.
2. Input Data - Observations: 2D projections of 3D points from multiple
images. - 3D Points: Initial sparse or dense point cloud data. - Camera
Parameters: Intrinsic and extrinsic properties of the cameras used.
3. Task Distribution The input data is divided into smaller units of work: -
Tasks are segmented based on camera views or regions of interest. - Each
task is distributed across a set of processing nodes.
4. Node-Level Parallel Processing Each node receives a chunk of data
and uses multi-threaded execution to speed up computations: - Threads:
Multiple threads per node process data concurrently. - SubJCS in DMEM:
Each thread computes sub-Jacobian computation structures. - GlobalJCS in
DMEM: Threads synchronize their results into a global memory structure
within the node.
5. Global Aggregation After processing in individual nodes: - All GlobalJCS
results are aggregated into a central system. - The complete Jacobian and
residuals matrix is formed for global optimization.
6. Optimization and Correction - PCC (Preconditioned Conjugate
Gradient): Used to solve the large linear system efficiently. - Correction
Module: Applies the computed updates to 3D points and camera
parameters.
7. Iterative Feedback Loop - Updated results are sent back to the nodes. -
Iterations continue until convergence is achieved.
8. Final Output - The corrected 3D point cloud and optimized camera
parameters are stored to disk.
9. Example Scenario Use Case: Reconstructing a 3D model of a building
block with 5 drone cameras: - Step 1: Input 2D projections, camera data, and
initial point cloud. - Step 2: Each camera’s data is assigned to a node. - Step
3: Threads compute local Jacobians. - Step 4: Nodes aggregate their results. -
Step 5: Global optimization and corrections are performed. - Step 6: Final
results are saved for visualization.
This framework supports scalability, making it ideal for large remote sensing
or photogrammetry-based projects.