Face detection with ATIS spike output

Main contributors: Cheston Tan, Garrick Orchard

Other contributors (code, data, faces, etc.) Himanshu Akolkar, Francisco Barranco, Ryad Benjamin Benosman, Luis Camunas, Greg Cohen, Cornelia Fermuller, Xavier Lagorce, Marcello Mulas, Daniel Neil, Michael Pfeiffer, Yezhou Yang

We try to perform face detection on the spike events output by the ATIS camera. Previous work has focused on detection and recognition of relatively simple stimuli, such as printed characters with clean edges. With faces, internal features and edges are less distinct, while external edges depend on the background and recording conditions. Additionally, different view angles pose a challenge.

TASK: FACE DETECTION

Here, we are interested in face detection ("Is there a face present or not?"). We do not perform localization of the face, nor recognition of the face identity.

DATA COLLECTION

Training data: 4 subjects (static cam, unoccluded face)

Test data (face present)

  • Hand-drawn cartoon faces (slightly-moving cam, unoccluded face)
  • Slightly-moving cam, unoccluded face
  • Moving cam, face occluded sometimes

Test data (face absent)

  • (we basically used data collected by the rest of the map14 group for their own projects)
  • 6 hand gestures
  • Person walking along school corridor
  • Dot pattern on kitchen whiteboard
  • Pool game

TRAINING / TESTING PROCEDURE

Chop all data (training and testing) up into short segments of 5000 spikes

  • Primarily for practical reasons and convenience

Train on 4 subjects’ data separately

  • Static camera, subject’s head is rotating/moving

Test on various data

  • Vary detection threshold to produce ROC curve (True Positive rate vs. False Positive rate)
  • Primary metric is AUC (area under ROC curve)

ALGORITHM

(All code can be found here Download)

Use Garrick’s HFirst algorithm as starting point

  • S1 layer: oriented Gabor filters over spike input
  • C1 layer: local position invariance

Training:

  • Run training “images” (all containing faces) up to C1
  • Extract face templates (regions of C1 spike patterns)

Testing:

  • Run test “image” up to C1
  • Match C1 spike patterns to templates
  • If # matches exceeds threshold, then face is present

RESULTS

NOTE: All four sets of results use the same training data. They also all use the same face-absent test set. The only thing that changes is the face-present test set.

(For ROC curves see powerpoint presentation Download)

Generalization to untrained subjects

Training: 4 subjects (static cam, unoccluded face)

Testing: cross-testing on the other 3 subjects (static cam, unoccluded face)

Face-absent data: hand gestures, pool game, corridor, etc.

Results: mean AUC = 0.863

Generalization to hand-drawn, cartoon faces

Training: 4 subjects (static cam, unoccluded face)

Testing: hand-drawn cartoon faces (slightly-moving cam, unoccluded face)

Face-absent data: same as previous

Results: mean AUC = 0.740

Generalization to moving-camera condition

Training: 4 subjects (static cam, unoccluded face)

Testing: untrained subjects (slightly-moving cam, unoccluded face)

Face-absent data: same as previous

Results: mean AUC = 0.955

Generalization to moving-camera and occluded faces

Training: 4 subjects (static cam, unoccluded face)

Testing: untrained subjects (slightly-moving cam, faces occluded sometimes)

Face-absent data: same as previous

Results: mean AUC = 0.883

Attachments