그림 13-6은 얼굴이 아닌 영역을 걸러 내는 캐스케이드 구조입니다. 캐스케이드 구조 1단계에서는 얼굴 검출에 가장 유용한 유사-하르 필터 하나를 사용하여, 얼굴이 아니라고 판단되면 이후의 유사-하르 필터 계산은 수행하지 않습니다. 1단계를 통과하면 2단계에서 유사-하르 필터 다섯 개를 사용하여 얼굴이 아닌지를 검사하고, 얼굴이 아니라고 판단되면 이후 단계의 검사는 수행하지 않습니다. 이러한 방식으로 얼굴이 아닌 영역을 빠르게 제거함으로써 비올라-존스 얼굴 검출 알고리즘은 동시대의 다른 얼굴 검출 방식보다 약 15배 빠르게 동작하는 성능을 보여줬습니다.
▲ 그림 13-6 캐스케이드 분류기
OpenCV는 비올라-존스 알고리즘을 구현하여 객체를 분류할 수 있는 CascadeClassifier 클래스를 제공합니다. 간략화한 CascadeClassifier 클래스 정의를 코드 13-2에 나타냈습니다. CascadeClassifier 클래스는 미리 훈련된 객체 검출 분류기 XML 파일을 불러오는 기능과 주어진 영상에서 객체를 검출하는 기능으로 이루어져 있습니다.