SIMD Accelerated Face Detector

Introduction :

Program uses WaldBoost classifier with Local Rank Differences features to detect faces in image and video files.
Can also capture video from camera.
LRD features evaluation is accelerated using SSE instruction set. Further acceleration is achieved by parallel
execution. On common multicore processors, the speed gain is almost linear, up to core count.

Description :

Captured images are converted to greyscale and optionally smoothed by convolution with gaussian kernel.
For every detected face rotation, image is rotated in opposite direction. From these rotated images,
pyramids of scaled images are built. Scaling factor is 7/8 and scaling ends at size of 24px. This is
because classifier is evaluated on square windows 24px wide.
Detected faces are grouped together. Groups with face count below threshold are discarded. From every
group, face with maximum response is selected.

Contents :

src/ - contains source codes
simd-detect/ - contains Visual Studio 2008 solution for compilation on MS Windows
Makefile.linux - Makefile for compilation on Linux

Executable is created in directory bin

Usage :

simd-detect [options] file1 [file2 ...]

If file name is CAM, then program uses camera as input.

Options :

-a x		Max detection angle(20)
-s x		Detection angle step(5)
-t x		Detection threshold(0)
-n x		Minimum of faces in group(2)
-v x		Threshold for grouping(0.4)
-b x		Scale base(1)
-smooth x	Smooth image with square gaussian kernel with size 2*x+1(0)
-frames x	Process x frames from video(0 - unlimited)
-frame-step x	Process every xth frame(1)
-start x	Start processing from xth frame(0)
-d		Draw all detections
-show		Show output in highgui window
-o name		Name of output file
-fourcc x	Fourcc code of output codec(XVID)
-rthreads x	Thread count for image rotations(core count)
-sthreads x	Thread count for image scales(1)

Further reading :

Herout Adam, Hradi Michal, Jurnek Roman, Zemk Pavel:
Implementation of the "Local Rank Differences" Image Feature Using SIMD Instructions of CPU,
In: Proceedings of Sixth Indian Conference on Computer Vision, Graphics and Image Processing, Bhubaneswar, IN, 2008, s. 9

Zemk Pavel, Hradi Michal, Herout Adam:
Local Rank Differences - Novel Features for Image,
In: Proceedings of SCCG 2007, Budmerice, SK, 2007, s. 1-12

