SIMD Processing Unit for Face Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Viola-Jones face detection framework's parallel processing approach leads to significant underutilization of GPU resources due to idle processing elements, especially on mobile and low-power platforms, as threads wait for all processing to complete before advancing to new subwindows, resulting in inefficiencies and increased overhead.

Innovation Solution

A single-instruction, multiple-data (SIMD) processing unit is designed to execute parallel classifier sequences across different image regions, allowing each computation unit to independently test and update data, pass or fail subwindows, and allocate new subwindows dynamically, ensuring continuous utilization of processing units without idle time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel processing is used to improve face detection performance, then processing speed is improved, but computation units become idle for significant proportions of time

Engineering Contradiction:
Improveface detection performanceVSAvoididle time of computation units
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic thread remapping where computation units that finish processing early are dynamically reassigned to new subwindows instead of remaining idle. The system continuously monitors completion status and redistributes workloads, allowing computation units to transition from static allocation to dynamic reassignment based on real-time processing needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent ensures continuous utilization of computation units by immediately assigning new subwindows to units that complete processing. The system maintains a pool of pending subwindows and continuously feeds them to available computation units, eliminating idle periods and ensuring that useful processing action continues without interruption across all parallel units.

Inventive Principle:
Principle #20Continuity of useful action

2Reliability

If threads are allocated to process all subwindows, then complete coverage is achieved, but processing efficiency decreases due to waiting for all threads to complete

Engineering Contradiction:
Improvesubwindow processing coverageVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the image into multiple subwindows and assigns different groups of subwindows to different computation units. This segmentation allows independent processing of subwindow groups while maintaining overall coverage. The system processes subwindows in organized groups rather than requiring all threads to complete every subwindow, enabling earlier termination for units processing non-face regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements early termination for computation units processing subwindows that fail initial classification tests. Instead of requiring all units to complete all classification stages, units can stop processing a subwindow once it's determined to be non-face, while other units continue with potentially face-containing subwindows. This partial action approach maintains reliability for face detection while improving overall efficiency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3035241B1Performing object detection
Publication Date: 2024.07.31 IMAGINATION TECH LTD
  • EP3035241B1 patent drawingFigure 1
  • EP3035241B1 patent drawingFigure 2~7
  • EP3035241B1 patent drawingFigure 3

AI summary

A single-instruction, multiple data processing unit for performing object detection in an image by testing for a plurality of object features in a plurality of image regions, the processing unit comprising: a set of computation units operable to execute a plurality of classifier sequences in parallel, each classifier sequence comprising a plurality of classifier routines, and each classifier routine comprising identical instructions to the other classifier routines in each of the plurality of classifier sequences; wherein each computation unit is configured to independently maintain data identifying an image region and a feature under test on that computation unit, and each classifier routine is arranged to access the data, test the identified feature against the identified image region and update the data such that the computation units are operable to concurrently test different features against different image regions.