Abstract
There are many filter based image processing algorithms and they usually require a huge amount of computations and memory accesses making it hard to attain a real-time performance, expecially in embedded applications. In this paper, we propose a pipelined hardware structure of the filter based face detection algorithm to show that the real time performance can be achieved by hardware design. In our design, the whole computation is divided into three pipeline stages: resizing the image (Resize), Transforming the image (ICT), and finding candidate area (Find Candidate). Each stage is optimized by considering the parallelism of the computation to reduce the number of cycles and utilizing the line memory to minimize the memory accesses. The resulting hardware uses 507 KB internal SRAM and occupies 9,039 LUTs when synthesized and configured on Xilinx Virtex5LX330 FPGA. It can operate at maximum 165MHz clock, giving the performance of 108 frame/sec, while detecting up to 20 faces.
필터를 기반으로 하는 영상 처리 알고리즘은 많은 연산과 메모리 접근으로 인해 임베디드 환경에서의 실시간 동작이 어렵다. 본 논문에서는 필터 기반의 얼굴 검출 하드웨어 엔진을 임베디드 환경에서 실시간으로 동작시키기 위해 파이프라인 구조로 설계하고 검증하였다. 얼굴 검출 알고리즘은 입력으로 들어온 영상에서 학습된 얼굴의 특징 데이터를 이용하여 얼굴의 위치를 찾는 연산을 수행한다. 이를 하드웨어로 구현하기 위해 알고리즘의 연산을 파악하여 중복되는 연산을 병렬 처리하고 라인 메모리를 이용하여 메모리 접근을 최소화하여, 이것을 기반으로 파이프라인 구조의 하드웨어를 설계하였다. 하드웨어 구조는 Resize, ICT(Improved Census Transform), Find Candidate 등의 3 단계로 나뉘어져 있으며, 총 507KByte의 내부 SRAM을 사용하였다. ARM Cortex A8 프로세서와 Xilinx사의 Virtex5LX330을 이용하여 검증한 결과 9,039 LUTs를 사용하였고 최대 동작 클록은 165MHz로, VGA($640{\times}480$) 해상도에서 108 frame/sec의 동작속도로 최대 20명까지 검출이 가능한 것을 확인하였다.