2014-08-30 3 views
4

haar 분류 자의 작동 방식을 이해하려고합니다. 나는 여기서 opencv 문서를 읽고있다 : http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html 그리고 그것은 기본적으로 템플릿과 같은 것을 얻기 위해 일련의 데이터를 훈련시키는 것처럼 보인다. 그런 다음 확인하려는 실제 이미지 위에 템플릿을 놓고 각 픽셀을 조사하여 찾고있는 것과 같거나 그렇지 않을 가능성이 있는지 확인합니다. 그래서, 그것이 옳다고 가정하면, 나는 아래 사진을보고있는 지점까지 갔고 나는 이해하지 못했습니다. 블록이 "가능성 있음"과 "있을 법하지 않음"의 영역을 나타내야합니까? 사전HAAR 분류 자 ​​명확화

enter image description here

답변

4

감사 이러한 패턴은 훈련 이미지를 평가하는 기능은 다음과 같습니다. 예를 들어, 기능 1a의 경우 학습 과정에서 왼쪽 절반이 보통 오른쪽 절반보다 밝고 (또는 그 반대) 모든 트레이닝 이미지에서 사각형 영역을 찾습니다. 피쳐 3a의 경우, 훈련은 중심이 주변보다 더 어두운 정사각형 지역을 찾습니다.

당신이 묘사 한 이러한 특별한 특징들은 특히 좋은 특징이기 때문에가 아니고, 주로 extremely fast to evaluate이기 때문에 하얼 폭포에 선택되었습니다.

더 구체적으로, 하얼 폭포의 훈련은 긍정적이고 부정적인 훈련 이미지를 차별화하는 데 가장 도움이되는 기능을 찾습니다 (대략 긍정적 인 이미지의 경우 가장 자주 사용되는 기능이며 부정적인 이미지의 경우 가장 빈번한 기능입니다).). 이 기능은 결과로 생기는 하얼 폭포의 첫 단계가 될 것입니다. 두 번째 가장 좋은 기능은 두 번째 단계가 될 것입니다.

훈련 후, 하르 캐스케이드 규칙 또는 단계 이런 일련 구성

  • 는 지역 특징 1A (X1, Y1) 평가 - (X2, Y2)를. 결과가 임계 값 z1보다 큰가?
    (의미 : 한 오른쪽 절반보다 밝은 그 지역의 왼쪽 절반은 일정량?)
    • 을 네, 다음 단계
    에게, '일치하지'
  • 없는 경우를 반환 실행하면 고전 하르 캐스케이드

은 단일 임계치와 단일 위치에 하나의 기능을 포함하는 각각의 이러한 규정은, 캐스케이드의 단계를 나타낸다. OpenCV는 실제로 부스트 된 캐스케이드를 사용합니다. 즉, 각 단계는 이러한 간단한 기능 중 일부의 조합으로 구성됩니다.

단계은 매우 약한 분류 자로서 그 자체로는 야생 추측보다 간신히 나은 것입니다. 각 단계에 대한 임계 값은 잘못된 음수의 가능성이 매우 낮도록 선택됩니다 (무대는 잘못된 일치를 거의 부정하지 않지만 잘못된 일치를 잘못 받아 들일 수 있음).

haar 캐스케이드가 실행되면 모든 단계가 순서대로 실행됩니다. 첫 번째 AND 두 번째 AND 셋째 단계를 통과하는 사진 만 허용됩니다.

훈련 중에 첫 번째 단계도 먼저 훈련됩니다. 그런 다음 두 번째 단계는 첫 번째 단계를 통과하는 교육 이미지로만 교육을받습니다.

+0

감사합니다. 그것은 훨씬 더 의미가 있습니다. – JustBlossom

+0

첫 번째 단계, 두 번째 단계 등을 말할 때 명확하게하기 위해 구성 단계를 의미합니까? – JustBlossom

+1

@ LearnLanguages96 haar cascade는 많은 순서로 구성되어 있으며 특정 순서로 실행되고 훈련됩니다. 첫 번째 단계는 먼저 훈련되고 나중에 실행됩니다. 두 번째 단계는 첫 번째 단계를 통과하는 이미지에 대해서만 실행되며 교육 중에는 첫 번째 단계를 통과하는 이미지로만 학습됩니다. 그것에 관한 대답에 몇 가지 세부 사항을 추가했습니다. 면책 조항 :이 모든 정보는 대부분 고전적인 하얼 폭포에 대한 내 기억에서 비롯된 것입니다. OpenCV는 내가 많이 알지 못하는 * boosting *과 같은 편차를 구현할 수 있습니다. – HugoRune