32

I am a freshman for face detection. These days I try to compile the OpenCV2.1 code for face detection. I found that there are about 4 cascade files for front face detection, which are "haarcascade_frontalface_alt.xml","haarcascade_frontalface_alt_tree.xml","haarcascade_frontalface_alt2.xml" and "haarcascade_frontalface_default.xml"

I did not find any documents to describe the difference among them, which is prefer for face detection task?

Hugo
  • 22,841
  • 6
  • 67
  • 86
Dayong Wang
  • 351
  • 1
  • 3
  • 8

2 Answers2

35

To get an idea how successful each one is, how many false positives, and how much stuff in total it finds, I ran each XML file on 41,452 magazine covers and made a contact sheet and average of each.

Here are the results on Flickr. The titles show the input XML filename and how many features were detected.

Example result for haarcascade_frontalface_default.xml

haarcascade_frontalface_alt_tree.xml_-_4720_into_one haarcascade_frontalface_alt2.xml_-_9563_into_one haarcascade_frontalface_alt.xml_-_8970_into_one

For the files you mention, here's how many features were found:

I didn't count the false positives, you have to check the images for that (for example, the smile file isn't very good, but the faces generally are). Of course, you'll get different results depending on your input data, and magazine covers are generally quite clean photos.

Hugo
  • 22,841
  • 6
  • 67
  • 86
  • 2
    And how did you collect magazine covers? Is it some publicly available dataset or did you collect it yourself via search engines API or something? – devforfu May 23 '18 at 15:19
9

It depends on your use case. If you prefer high precision or prefer high recall.

I did a comparison test of face detection for haarcascade_frontalface_default.xml and haarcascade_frontalface_alt_tree.xml, with the same parameters for detectMultiScale function, and only keep the max rectangle that detectMultiScale returns.

On my test data, I found haarcascade_frontalface_default.xml has higher recall (side effect is, more false positives), and haarcascade_frontalface_alt_tree.xml has higher precision (side effect is, detected less number of faces)

You many try with similar test on your data, and choose the one that best suits your purpose

Ronggang
  • 99
  • 1
  • 3
  • I stay with `haarcascade_frontalface_alt_tree.xml` cause I want the less false positives as possible, nevertheless less faces. – Maf Nov 23 '20 at 13:02