SIMD Processing Unit for Face Detection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
Figure 1
Figure 2~7
Figure 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.