UAV Depth Map Processing With Multithreading for Obstacle Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Unmanned aerial vehicles (UAVs) experience image processing blockage and delays when using high frame rate vision systems for obstacle detection, leading to inefficient obstacle avoidance measures.

Innovation Solution

Implementing a method that uses multiple threads and ring queues to process depth maps, where execution times are analyzed to determine the optimal thread and queue configuration, allowing for parallel execution of image correction, binocular matching, and obstacle distribution acquisition, thereby reducing total execution time and preventing image processing blockage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the frame rate of image collection is increased to improve obstacle detection speed, then the obstacle detection capability is improved, but image processing blockage and delay occur

Engineering Contradiction:
Improveobstacle detection speedVSAvoidimage processing delay
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent divides the image processing workflow into three independent modules: image correction, binocular matching, and obstacle distribution acquisition. Each module is executed by a separate thread, allowing parallel processing of image data. This segmentation enables the system to maintain high frame rates without processing bottlenecks, as multiple operations occur simultaneously rather than sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces ring queues as intermediary data structures between processing threads. The ring queues serve as buffers that decouple the production of image data from its processing, allowing threads to operate independently without blocking each other. This mediator mechanism enables smooth data flow between modules while maintaining parallel execution, thus preventing processing delays even at high frame rates.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If sequential processing is used to simplify system complexity, then the system structure is simpler, but total execution time increases

Engineering Contradiction:
Improvesystem structure complexityVSAvoidtotal execution time
Core Design Contradiction:
Device complexityVSDuration of action of moving object

Solution Approach 1:

The patent segments the processing workflow into distinct modular components that can be executed in parallel. By separating image correction, binocular matching, and obstacle detection into independent threads, the system achieves faster execution without requiring complex inter-dependent processing logic. Each module remains relatively simple while the overall system benefits from parallelization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-configuring multiple threads and ring queues before processing begins. The thread pool and buffer structures are established in advance, allowing immediate parallel processing once data arrives. This preliminary setup eliminates the need for dynamic thread creation during processing, reducing overhead while maintaining simplicity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12130641B2Method, apparatus and unmanned aerial vehicle for processing depth map
Publication Date: 2024.10.29 AUTEL ROBOTICS CO LTD
  • US12130641B2 patent drawing
  • US12130641B2 patent drawing
  • US12130641B2 patent drawing

AI summary

The method for processing a depth map includes the following steps: S1: correcting an image of a target area that is collected by an image collection apparatus; S2: performing binocular matching on the image to obtain a depth map of the target area; and S3: acquiring a distribution of obstacles around an UAV according to the depth map. The method further includes: acquiring execution times of the foregoing steps before executing the steps; and establishing at least two threads and at least one ring queue according to the execution times of the steps, and executing the steps by the at least two threads to reduce a total execution time.