Visual Odometry Bundle Adjustment With Register-Based Matrix Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional bundle adjustment processes for determining camera poses and feature locations in visual odometry systems are computationally intensive and inefficient, consuming excessive computing resources and time, making them unsuitable for real-time applications.

Innovation Solution

Implementing parallel processing architectures to perform bundle adjustment on multiple processors, where common features between image pairs are identified and used to update bundle adjustment matrices efficiently, reducing memory write operations and optimizing memory access through coalesced read and write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional bundle adjustment processes are used to determine camera poses and feature locations, then measurement precision is improved, but productivity deteriorates due to excessive computational time and resource consumption

Engineering Contradiction:
Improvecamera pose and feature location accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The bundle adjustment computation is divided into multiple independent processing blocks that can be executed in parallel. Each processing block handles a subset of features and corresponding image data, allowing simultaneous computation across multiple processors or GPU cores while maintaining the overall optimization objective.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential single-processor execution to parallel multi-processor execution, adding a temporal dimension to the computation. Multiple processing threads operate simultaneously on different data subsets, transforming the computational approach from one-dimensional sequential processing to multi-dimensional parallel processing.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If bundle adjustment matrices are updated frequently during processing, then measurement precision is improved, but loss of time increases due to repeated memory write operations

Engineering Contradiction:
Improveoptimization accuracyVSAvoidmemory access time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary computations and accumulates matrix update values in register memory before writing to external memory. By preparing all necessary update values in advance and batching them into single memory write operations, the system reduces the frequency of memory access while preserving the accuracy of the optimization process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Multiple individual matrix update operations are merged into single batched memory write operations. Instead of writing each updated matrix element separately to external memory, the patent accumulates changes in register memory and performs consolidated writes, reducing memory access overhead while maintaining computational accuracy.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If more computing resources are allocated to bundle adjustment processing, then productivity is improved, but use of energy increases

Engineering Contradiction:
Improvereal-time processing capabilityVSAvoidprocessor power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The computational workload is segmented into parallel processing blocks that can be distributed across available processors. This allows the system to utilize existing computing resources efficiently without requiring additional high-power hardware, achieving real-time processing through optimized resource utilization rather than brute-force resource allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses register memory as a high-speed intermediate storage layer between computation and external memory. By copying and accumulating matrix update values in register memory before external memory writes, the system reduces the energy-intensive memory access operations while maintaining processing speed, thereby improving energy efficiency without sacrificing productivity.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11435756B2Visual odometry in autonomous machine applications
Publication Date: 2022.09.06 NVIDIA CORP
  • US11435756B2 patent drawing
  • US11435756B2 patent drawing
  • US11435756B2 patent drawing

AI summary

Systems and methods for performing visual odometry more rapidly. Pairs of representations from sensor data (such as images from one or more cameras) are selected, and features common to both representations of the pair are identified. Portions of bundle adjustment matrices that correspond to the pair are updated using the common features. These updates are maintained in register memory until all portions of the matrices that correspond to the pair are updated. By selecting only common features of one particular pair of representations, updated matrix values may be kept in registers. Accordingly, matrix updates for each common feature may be collectively saved with a single write of the registers to other memory. In this manner, fewer write operations are performed from register memory to other memory, thus reducing the time required to update bundle adjustment matrices and thus speeding the bundle adjustment process.