Algorithm/Paper

Robust Object Detection Via Soft Cascade

빠릿베짱이 2013. 5. 19. 18:09
반응형

Robust Object Detection Via Soft Cascade

기존 케스케이드의 문제점을 제시하고, 이를 보완하여 좋은 성능을 내는 케스케이드를 제안한다.

그 중 가장 큰 문제점은 , 기존 케스케이드는 이전 스테이지를 통과한 정보를 다음 스테이지에서 전혀 활용하지 않는다는 것이다.

또한 요세 계속 생각하는 문제를 이 논문에서 지적해주어 좀 더 확실해졌다. 그것은 포지티브 샘플의 다양성? 분산이라고 해야할려나? 머 여튼 많은 경우의 수를 갖는 포지티브 샘플의 경우에 케스케이드는 안정적이지 않다는 것..

이것은 직접 코딩해보고, 상당히 많은 시간 생각을 해야 알 수 있는 문제일 것이다.

여기서 제안하는 Soft Cascade는 Boosting Chain 과 매우 유사하다고 설명하고 있는데,

논문 : "Boosting chain learning for object detection" In ICCV, pages 709–715, 2003.

위의 논문을 한번 볼 필요가 있을 듯하다.

2. Formulation of the Soft Cascade

 

위의 그림은 viola 의 얼굴 검출에 사용한 adaboost를 이용하여 2500개의 특징을 추출하고, 데이터들을 2500개의 약분류기로 평가하여 알파값을 더한 것을 누적한 그래프이다. 그림과 같이, 특징의 수가 많아질수록 포지티브와 네거티브가 점점 더 분리되는 것을 볼 수 있다.

이러한 결과로, 저자는 다음과 같은 방법을 제안한다.

각 스테이지마다 통과하는 임계값을 이전 스테이지에서 출력된 값들을 포함, 즉 cumulative sum 이라고 표현하는데, 첫 스테이지부터 현재 스테이지까지의 출력을 다 더한 값이라 보면 되겠다. 이 값을 이용해서 스테이지의 임계값을 정하겠다는 것이 주된 제안 방법이다.

이 방법이 갖는 첫번째 이점은, 너무 초기에 네거티브로 분리하지 않겠다는 것,  그래서 좀 더 좋은 rejection 결정을 할 수 있다는 것,

두번째로는 각 스테이지에서 모든 얼굴들을 보존하도록 부담시키지 않는다 - 이 말은 좀 더 생각해봐야할 내용인듯

분류기를 구성하는 방법은, 아다부스트로 특징을 추출하고, 강분류기 임계값은 soft cascade 방법에 의해 결정하겠다는 것임. 이에 대한 자세한 내용은 다음 장에서 설명하고 있음.

3. Soft Cascade Stage Training

4.2. ROC Surface projection algorithm

Figure 5의 그림의 y축 값이 이해가 되지 않아 직접 실험해봤는데, 실제로 사용하는 값을 그린것이 아니라, 0~9까지의 vt값의 합이 1이 되도록 정규화한 후 그린 것으로 결론내었습니다. 아 이것때문에 2시간 삽질.. 굳이 왜 1로 정규화를 시켜서 보여줘서...걍 원래 값대로 해도 대충 나오는데.. 그리고 왜 검출율은 안적어놓았는지...흠

매트랩으로 실험.

결과화면

 

 

//매트랩 소스 코드

hold all
grid on;
dr = 0.99;

for a=-3:3

    p = 0;
    sum =1;
    for i=0:9
        r = i/9;
        if(a < 0)
            v(i+1) = exp(-a * (1-r));
            p = p + exp(-a * (r));
        else
            v(i+1) = exp(a * (r));
            p = p + exp(a * (r));
        end
    end
   
    for i=0:9
        r = i/9;
        if(a < 0)
           v(i+1) = exp(-a * (1-r))/p*(1-dr);
           sum = sum *(1- v(i+1))
        else
           v(i+1) = exp(a * (r))/p*(1-dr);
           sum = sum *(1- v(i+1));
        end
    end
plot(v)
sum
v
end

 

 

 

반응형