OpenCV로 배우는 영상 처리 및 응용/ 영상 처리 응용 사례 II

SVM을 이용한 차량 번호 검출 프로그램

SVM(Support Vector Machine)의 개념

  • 아래 그림 왼쪽과 같이 흰색 원과 검은색 원이 학습용 데이터로 주어졌고, 새로운 데이터가 입력되었다고 하자.
    • 일반적으로는 각 그룹 내에서 데이터 간 거리를 측정하여 중심점(center)를 구한다. 그리고 두 중심점의 중간에서 최적의 분리 경계면을 구한다. 이 판별 경계를 기준으로 새로운 데이터에 대하여 분류할 수 있다. 이런 방식을 선형 판별법이라고 한다.
  • SVM은 데이터들을 분리하는 분리 경계면 중에서 각 분류 데이터들과의 거리(margin)가 가장 먼 분리 경계면을 찾아냄으로써 데이터를 분리하는 방법이다.
    • 즉 분리 경계와 실제 데이터들 사이의 여유(margin)이 가장 크도록 분리 경계를 설정하는 것이다.
    • 이 여유 공간을 설정함으로써 새로운 데이터에 대한 판별의 정확도를 높이며, 일반화 오류를 줄인다.
  • SVM에서는 각 그룹의 중심점이 아닌 두 그룹 사이의 경계에 있는 데이터(support vector)에 초점을 맞춘다.
    • 즉, 흰색과 검은색의 각 그룹의 경계에서 먼저 H1과 H2 선을 긋고, 그 선 안에서 가운데 새로운 선을 그어 최적의 분리 경계면을 정한다.
    • 여기서 H1과 H2를 구하는 방식은 무한히 존재할 수 있다. 다만 두 선분 사이에 학습 데이터가 존재하지 않는다는 점과 두 선분 사이의 거리가 최대가 된다는 제약 조건을 둠으로써 SVM의 분리 경계면이 하나로 정해지도록 한다.
    • 아래 그림에서 선형 판별법은 test 데이터를 검은색으로 분류하지만, SVM은 흰색으로 분류하게 된다.
  • (이하 예제 코드 설명 내용 생략)
[ssba]

The author

지성을 추구하는 디자이너/ suyeongpark@abyne.com

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.