2014년 8월 4일 월요일

영상 특징에 대한 이해

작성 중....


물체 검출(object detection)은 머신비전에서 가장 중요한 주제 중의 하나이다. 물체 검출의 실행에 있어 물체를 포함하는 입력 데이터나 영상 정보를 그대로 사용하지 않고 재구성을 요구한다. 재구성된 특징의 구별성이 더 좋을수록 더 간단한 학습과 분류가 가능하다. 따라서 입력 데이터를 재구성하는 것은 대단히 중요하다. 보통 입력 영상의 픽셀 밝기를 직접적으로 이용하지는 않고, 대신 밝기나 카메라가 물체를 찍은 주시점, 형상, 외관, 자세변화에 불변하는 영상 표현이 요구된다.
물체 검출을 위해 다양한 영상특징이 개발되었고 그중 HOG, Haar 웨이브릿, LBP, BoW, SIFT등이 대표적인 영상 특징이다.  여기서는 일반적으로 널리 사용되는 몇 가지 특징에 대해 분석하고 이러한 특징이 분류기에 사용되었을 경우, 학습 성능, 계산량, 분류성능 등의 비교를 통해 가장 적합한 특징을 선정하고 본 연구에서 목표로 하는 물체 인식에 이용하기 위한 토대를 마련한다.

➀ LBP 적용 연구
Local Binary Pattern(LBP)은 단순하지만 강력한 영상 텍스춰 묘사자(texture descriptor)이다. LBP는 텍스춰 패턴을 정량화하며 자세나 크기, 밝기 변화에 강인한 특징을 보인다. 또한 계산이 단순하여 실시간 처리 작업에 적당하다. 적용 분야는 얼굴이나 표정인식, 물체 인식, 배경추출, 자세나 응시 게이트 인식 등이다. 영상에서 어떤 픽셀의 LBP는 이 픽셀의 밝기 값과 이웃 밝기 값을 비교함에 의해 생성되는 일련(series)의 이진수이다. 이웃 반경의 크기나 이웃 픽셀의 수는 자유롭게 선택 가능하다. 이진수 계산은 중심 픽셀과 이웃 픽셀 값을 비교하는 것으로 만일 이웃 픽셀 값이 더 커면 이진수는 1, 그렇지 않으면 0이다. 


그림 1. LBP 연산 과정

예를 들어, 3x3픽셀영역에서 LBP를 계산하면 그림 1에 표현된다. 중심 픽셀 값 5와 함께 주위 값을 비교함에 의해 이진 값들이 얻어진다. 주어진 예제에서 얻어진 이진 값은 좌측 중심을 시작점으로 반시계 방향으로 회전 했을 때 01101011이다. 이때, 이진 값에 가중치를 보태어 하나의 숫자로 만든다. 가중치는 2의 배수로 할당되고 주어진 이진 코드에 대한 값은 1+2+8+32+64=107이다. 어떤 픽셀의 LBP 코드 값은 다음과 같은 식으로 주어진다.

$LBP_{P,R}=\sum_{p=0}^{P-1}s(g_p-g_c) \cdot 2^p$

$s(x)=\begin{cases} 1, if \space x \ge 0\\ 0, otherwise\end{cases}$



상기한 수식 에서 P는 이웃 픽셀의 수이고, gp와 gc는 이웃 픽셀과 중심 픽셀의 밝기 값이다. 이웃은 그림 2과 같이 원형이나 사각형으로 구성할 수 있으며, 패턴의 출발점은 미리 정해진다. 일단 P와 R이 정해지면, LBP는 만들어진다. 


그림 3은 텍스춰를 정의하기 위해 선택한 P와 R의 세 가지 다른 값을 보여준다. LBP는 쉽게 계산되지만 위치에 매우 민감하기 때문에 그대로 사용하기는 어렵다. 위치가 달라지면 오차가 매우 커진다. 따라서 실용적 사용을 위해 많은 수의 LBP 특징을 포함하는 어떤 셀(cell)에 대한 LBP 히스토그램(histogram)을 만들 필요가 있다.

요약하면, LBP 특징 벡터는 다음 단계로 만들어 진다.
1    (1) 히스토그램이 만들어질 셀의 크기를 결정한다(예를 들면 16x16). 그리고 현재 윈도를 셀들로 분할한다.
      (2) 셀 내의 픽셀들에 대해 LBP 패턴을 계산한다. 패턴의 출발점과 회전 방향을 정의하고 중심 픽셀과 이웃 픽셀을 비교하여 중심픽셀의 패턴 값을 얻는다.
      (3) 각 셀의 히스토그램을 계산한다. 즉, 이진 패턴이 나타내는 숫자의 발생 빈도를 얻는다.
      (4) 선택적으로 히스토그램을 정규화하거나 모든 셀의 정규화 된 히스토그램을 연결하여 현재의 탐색 윈도를 표현한다.


➁ BoW
BoW(Bag of Words)는 전산학의 자연어 처리(natural language processing) 분야에서 시작되어 Visual한 요소를 다룰 수 있도록 응용되어 Bag of Visual Words란 이름으로 머신비전 분야에서 널리 사용되고 있는 영상 분류 기법 중에 하나이다.
Bag이란 문서에서 반복되어 나타나는 단어나 영상에서 반복되어 보이는 패턴들의 집합이다. 문장에서 생각해 보면, 단어순서나 문법은 무시되고 문서는 단순히 단어들의 집합으로 표현된다. BoW는 문장에서 나타나는 항목(entry)의 발생빈도를 표현한다. 이때 사용되는 사전(dictionary)이란 항목들의 집합으로 문장 내에서 나타나는 모든 단어들로 만들어 진다.
예를 들어, 다음과 같은 두개의 문장이 있다고 가정하자:

문장 1: Mary likes to play volleyball. John likes too.
문장 2: Mary also likes to play basketball.

이때 사전은 다음과 같다:

{1: Mary, 2: like, 3: to, 4: play, 5: volleyball, 6: John, 7: too, 8: also, 9: basketball}

최종적으로 두 문장은 사전의 항목 인덱스들의 발생빈도로 표현된다. 아래는 두 문장의 BoW이다.

문장 1: [1 2 1 1 1 1 1 0 0]
문장 2: [1 1 1 1 0 0 0 1 1]

BoW의 개념을 영상인식 분야에 적용한다면, 영상은 문장에 대응되고 단어들의 Bag은 그림 4에서 보이는 영상의 부분 특징들을 표현한다. BoW에 대응되는 Bag of visual words는 이러한 부분 영상 특징들의 사전 내 항목의 발생 빈도 값의 벡터가 된다. 가장 많이 사용되는 부분 영상 특징 중의 하나는 SIFT이다. SIFT는 물체의 크기, 밝기, 어파인 변화에도 특징 값이 불변하는 신뢰성을 가진다.


BoW의 절차는 항목 생성(Vocabulary Generation)과 영상 표현(Image Representation)으로 나누어 아래 그림 5와 같이 수행된다.

Vocabulary generation:
     1) Extract SIFT feature of all training images.
     2) Cluster the SIFT features extracted in Step 1 to a pre-defined groups (such as 300 groups) by K-means algorithm and express each cluster as a "center features" compose the vocabulary.

Image representation:
     3) Extract SIFT feature of the image that is required to be represented.
     4) Calculate the Euclidean between the SIFT features acquired in Step 3 and each entry of the vocabulary, and label each feature by the vocabulary index with the smallest distance.
     5) Create the histogram of indexes that were achieved in Step 4, and this histogram is the BoW of the image.

그림 5. BoW 과정

본 연구에서는 먼저 사람의 학습 영상에 대해 SIFT를 적용하여 사전을 구성한다. 사전의 엔트리는 전부 30개(즉, 특징 값의 K-means 클러스터링 후에 얻어진 중심 특징의 개수)로 한다.
학습 영상이 주어지면 먼저 영상을 8x8 크기의 패치로 분할한다. 각각의 패치에 대해 SIFT특징을 하나 추출한다. 이 특징으로 30개의 사전 엔트리와 유클리디안 거리 30개를 얻는다. 이 거리 값의 역(inverse)을 취해 30개의 값을 가진 벡터 하나를 구성한다. 학습 영상의 모든 패치에 대해 벡터를 추출하면 패치의 개수만큼 벡터가 생기게 된다. 학습 영상의 개수는 아주 많으므로 벡터의 개수는 매우 많다. Positive 학습영상과 Negative 학습영상에 대해 이 벡터들을 추출하여 SVM을 학습한다.




 














댓글 없음:

댓글 쓰기