PASCAL VOL, ImageNet ILSVRC, ICDAR RRC
위 세 가지는 이미지 검출 및 인식 관련 db이자 대회.
PASCAL VOL의 경우, 평균 정확률을 정의하는여, 재현율 r이 0, 0.1,, 1.0인 지점(총 11군데)에서 정확률의 평균 계산. r에서의 정확률은 그 지점 이후의 최댓값을 취함으로써, 보다 안정적 적도가 되도록 함(Eeveringham2010).
평균 정확률 = 1/11 sigma(r은 {0, 0.1,...,1}의 원소) {p_interp(r), 이때 p_interp(r) = maxp(r_hat), hat_r <= r}
검출 문제는, 실제 정답과 검출한 영역이 얼마나 겹치느냐로 점수를 매긴다. 이 overlap이 0.5를 넘으면 검출에 성공한 것으로 여긴다.
ISLVRC의 경우, 한 영상은 하나의 부류에 속하도록 주석이 붙어있으며, 프로그램은 신뢰도에 따라 5순위까지 부류 출력. 5순위 안에 해당 영상이 속하는 부류가 있으면 정답으로 여기며, 전체 영상 대비 맞춘 영상 비율을 성능 척도로 사용.
이러한 DB에 대한 내용은 나중에 다룸.
사례(특정 물체) 인식
초창기는 기하학적 접근 방법 사용(Mundy2006).
영상 입력 -> 물체 분할 -> 이를 3차원 모델과 매칭
기하 정렬은 7절에 존재함. 하나의 물체에 대해 시점 일관성 이루는 매칭 쌍 집합 찾는 게 목표.
이젠, 인식이므로 물체가 여러 개. 확장하자.
1) 모델 구축 단계 : 부류 별로 모델 영상에서 관심점 검출하고 저장.
입력 : 물체 부류별 모델 영상 l_i, 1<=i<=m #m은 물체 부류 개수
출력 : 인덱싱 된 특징벡터 젭합 P_i, 1<=i<=m
for i=1 to m :
l_i에서 관심점 집합 검출
각각의 관심점 대해 특징벡터 추출
위의 두 행에서 구한 관심점과 특징벡터를 P_i에 저장
P_i를 인덱싱 #해싱 또는 kd트리 이용해서
검출된 관심점은 경우에 따라 전처리 적용된다(모델 영상에서 다수의 관심점이 검출되면, 어떤 기준에 따라 일부만 선택하거나, 물체 이외의 영역에서 검출된 관심점을 제거하는 등)
이렇게 검출된 관심점 각각에 대해 특징벡터 추출 후 부류 정보와 함께 저장한 다음, 이렇게 수집된 특징 집합 P를 인식 단계에서 빠르게 매칭할 수 있도록 인덱싱.
2) 인식 단계.
입력: 영상 f, 인덱싱된 특징벡터집합 P_i, 1<=i<=m #m은 물체부류 개수
출력: 물체부류 c_i와 변환행렬 T_i, 1<=i<=k #k는 인식한 물체 개수
f에서 관심점 집합 검출
각각의 관심점에 대해 특징벡터 추출
위에서 구한 관심점과 특징벡터를 F에 저장
k=0
for i=1 to m: #물체부류 각각에 대해
F와 P_i간 매칭쌍리스트 mlist 구함 #알고리즘 7-2 참조
mlist 입력으로 기하정렬 수행 #알고리즘 7-9 참조
if 기하정렬 성공: 변환행렬 T의 품질 q를 추정
if q>t : k++ c_k=i T_k=T #물체 i가 인식됨
영상 f가 입력되면, f에 어떤 물체가 있는지 알아내고, 자세 정보인 기하변환행렬을 계싼해 출력. 이후 인식을 시도하는데, RANSAC같은 것 활용. 기하정렬된 쌍 집합 발견되고, 기하변환행렬의 품질이 임계값ㅇ르 넘으면, 그 부류의 물체를 인식한 것으로 간주하고 결과를 저장.
그러나 이는, 계산시간이 중요한 응용분야에선 한계를 보여준다.
이를 위해, 기존의 정보검색에 기댄다. 문서를 빈도 벡터로 변환하는 정보검색처럼(Baeza-Yates2011), 문서간 유사성 측정한 정보검색 알고리즘을 활용한다.
이 식에서 f_ik는 k번째 문서 t_k에 나타난 i번째 단어의 빈더수이고, f_k는 t_k에 나타난 전체 단어의 수다.
즉 f_ik/f_k항은 정규화한 단어 빈도수이며, N은 DB가 가진 전체 문서 수, N_i는 i번째 단어를 가진 문서의 수이다.
log(N/N_i)는 역문서 빈도이다.
tf _ idf 벡터 : v_k = (v1k, v2k, .... vdk)
이 때 vik = f_ik/f_k * log(N/N_i)
새로 정의한 벡터 v_k(=tf_idf벡터)는, v_ik의 첫번째 tf항은 많이 등장한 단어에 더 큰 가중치 준다는 뜻.
두 번째 idf항은 i번째 단어가나타난 문서가 적다면 가중치 높인다는 뜻.
즉, 고루고루 등장하면 분별력이 약하다 보고 가중치를 낮추고, 반대라면 높이는 것.
두 문서 간 유사도는 코사인 유사도. 이에 대해선 pass
이를 영상으로 옮긴다면, 에지, 영역, 관심점 등 중 관심점을 후보로 삼아 기술자를 추출해 특징으로 삼는다.
즉, 특징 공간 가까이의 특징벡터를 모아, 그들의 대표를 단어로 삼는다. 특정 공간을 몇 개의 구간으로 나눈 양자 벡터화 작업을 통해, 특징 공간을 d개의 구간으로 나누고, 각 구간에 대해 대표벡터를 선정해 단어로 취한다(시각 단어). 이 때 사전의 크기는 d가 될 것이다.
새 영상에서 특징이 검출되면 벡터양자화를 적용, 해당 구간의 단어로 매핑하면, 관심점을 텍스트 문서의 단어와 동일한 방식으로 취급할 수 있게 된다. 벡터의 양자화는 k-means나 SOM을 사용한다.
이렇게 특징벡터를 단어로 바꿨다면, tf-idf벡터, 유사도측정등의 활용이 가능하다. 이 때 불용어를 제거하는 과정도 요구된다. 전체 작업은 Sivic2009
시각단어 사전 구축과 tf-idf벡터 계산
입력: 물체 부류 별 모델 영상 l_i, i<-i<-m, 사전크기 d #m은 물체부류 개수
출력: d개의 시각단어 갖는 사전 D, 부류 별 tf-idf벡터 v_i, 1<=i<=m
for i=1 to m: 부류 각각에 대해
l_i에서 특징벡터 추출 후 , 그들을 X_i에 저장
X = X1 U X2 U... Xm을 d개의 군집으로 군집화 #벡터 양자화
각 군집에 대해 대표벡터 계산 후, 사전 D에 추가
(선택적) 불용어 찾아 D에서 제거
for i-1 to m:
X_i의 특징벡터를 시각단어로 매핑 후, V_i에 저장
V_i로부터 tf-idf벡터 v_i계산
아래 알고리즘은 새 영상을 인식하는 알고리즘. 위와 같은 과정 거쳐 tf-idf벡터 vq 추출 후, DB에 있는 벡터 각각에 대해 유사도 계산 후, 값이 임계값 이상인 벡터의 부류를 인식 결과로 취한다. 이를 비디오검색에 활용한 예는 Sivic2009
입력: 영상 l_q, tf-idf벡터 v_i, 1<=i<=m, 임계값 t
출력: 부류집합 C
l_q에서 tf-idf벡터 v_q 계산
for i=1 to m:
v_i와 v_q의 유사도 s 측정
if s>q : i를 C에 추가
범주인식 : 현재 매우 어렵다
1) 단어 가방 : 앞서 한 것을 범주 인식으로 확장. 외관만 사용하기에, 물체를 구성하는 부품 간의 상호위치 정보는 고려하지 않는다.
사례 인식은 학습집합에 부류 당 하나의 물체만 주어지기에 매칭 연산을 썼으나, 범주 인식은 서로 다른 모양을 갖는 많은 수의 물체가 한 부류에 속하므로 분류 연산을 써야 한다. 기계학습을 활용.
1-1) 학습집합에 속하는 영상이 주어지면 지역특징 검출, 벡터 양자화, tf-idf 벡터 계산 수행해 특징벡터 추출.
1-2) 기계학습을 통해, 분류알고리즘을 써서, 특징벡터 구하고 그 결과를 분류기에 입력하면 분류과정 통해 인식 완료
Csurka2004가 주요 사례. 해리스라플라스를 개선한 해리스 어파인 검출기(Mikolajczyk2002a, Mikolajczyk2002b)로 관심점 검출하고, SIFT기술자 추출. 다음으로 k-means를 통해 벡터 양자화를 수행, 분류기는 SVM 이용.
Zhang2007(SVM에 여러 커널 사용), Opelt2006(에이더부스트 사용)도 보라.
코렐로그램(huang97)로 시각단어의 외곽과 상호위치관계를 표현하는 Savarese2006, 피라미드 구조에서 점점 세밀한 특징벡터 추출하는 lazebik2006도 존재.
이러한 단어가방은 물체와 배경을 구분하는 원리가 없으므로, 우연히 해당 부류의 물체를 포함하지 않은 영상의 벡터가 모델 벡터와 일치하면 오분류 발생
2) 부품 모델 : 물체를 구성하는 주요 부품을 정의하고, 이의 상대적 위치를 표현.
Fischler73, Felzenszwalb2005처럼, 사람 얼굴이 몇개의 부품으로 구성된다 가정하고 이를 스프링으로 연결한다.
사람얼굴의 명암이나 컬러분포는 일정하다. 이를 토대로, 외관과 모양에서 일정한 조건을 강제함과 동시에 어떤 범위 내의 변화를 허용하고, 자동하습과 인식을 통해 학습시켜, 최적의 매개변수를 찾아내는 것이 목표.
별자리 모델 : 어떤 물체에서 사람 얼굴이 있는지 알아본다 하자. 특징 검출기가 여러 개의 특징을 검출했다.
별자리 몯레은 여러 가정을 생성한다. 여러 부품의 외관이 잘 들어맞고, 모양도 잘 맞는다면, 이들의 결합확률은 임계값을 넘어 검증 통과한다. 물론 이 과정에서, 여러 부품 중 일부가 높은 확률을 통과했다면 전체 확률이 임계값을 넘게 되어 검증이 통과되는 오류도 존재한다.
별자리 모델에 의한 물체인식(한 가지 부류)
입력: 별자리모델 Θ, 부품개수 k, 임계값 t, 영상 l
출력: 물체 위치집합 L
l에서 특징 검출. 이 집합을 F, 개수를 n
F에서 k개 특징 뽑아 특징조합 만드는데, 이를 H에 저장
for H에 있는 가정 h_i 각각에 대해:
우도 P(h_i | Θ) 를 계산
이 우도가 t보다 크면: h_i로부터 물체위치 계산해 L에 삽입 #검증 통과
물체 범주 각각에 대한 별자리모델 Θ가 주어졌다면, 이들에 대해 독립적으로 하면 됨.
이 별자리 모델의 학습 방법은, 부품 표현 방법과 학습 방법으로 나눈다.
부품 표현 방법 : 4장의 관심정 활용. 가령 Fergus2003에선, kadir가 제안한 관심점 사용(kadir2001)
특징벡터 구성 위해 관심점을 중심으로 일정 크기의 부분영상 뗀 후, 이를 대상으로 PCA 수행해 20~30차원으로 줄임.
각 부품에서 추출한 특징은 군집을 형성하며, 이를 가우시안으로 표현, 가우시안의 평균과 공분산행렬이 모델의 매개변수 Θ_apperance를 형성.
모양 표현 위한 학습모델은, k개의 부품은 일정한 위치관계 형성해야 한느데, 이 변화도 역시 가우시안 분포로 표현.
모양의 가우시안평균과 공분산행렬은 Θ_shape를 형성. 즉, 별자리 모델 표현하는 매개변수 Θ는 Θ_appernace와 Θ_shape로 구성됨.
학습은 주어진 학습 집합을 생성해낼 가능성이 큰 매개변수값을 찾는 것.
hat_Θ = argmax P(S|Θ)
사람이 일일이 특징을 검출해 주석을 단다면 강한 학습으로 초기 별자리모델은 이 방식(Burl98)
그러나 학습집합이 크고 범주의 개수가 많으면 못쓴다.
이를 위해 외관 나타내는 Θ_apperance는 그리디로 추정, 모양을 나타내는 Θ_shape는 EM알고리즘으로 동시 추정하는 Fergus 2003, 2007 방식을, 한 장 또는 소수이ㅡ 영상으로 학습하는 feifei2006이 등장.
별자리모델은 검출된 특징 개수가 n이고 모델의 부품개수가 k라면 O(N^k)의 복잡도다. 이는 복잡도가 낮은 희소모델(carneiro2006)가 해결책으로 제시되었다.
무엇을 특징으로 쓸지는, CNN으로 해결한다.
Krizhevsky2012는 컨벌루션 신경망의 구조로, 앞의 다섯 개의 컨벌루션층이 특징추출을 담당하고, 각 층을 구성하는 가중치는 핛브으로 알아낸다. 이 가중치는 컨버루션 마스크의 화소값에 해당하므로 특징 추출기를 학습으로 자동설계하는 셈. 뒤에 배치된 세 개의 층은 앞의 컨벌루션층이 추출한 특징으로 분류 수행.
기존의 CNN에 비해 개선된 것은, 위와 아래에 배치된 두 개의 부분신경망이 독립적 작용 + 두번째에서 3번째 층으로 넘어갈 때 정보교류가 부분적으로 발생 + 맨 오른쪽 출력층에서 두 신경망 값 결합해 최종 출력값 생성.
또한 Hinton이 제안한 드롭아웃 기법 적용, 50%개의 은닉노드 임의 선택 후 이들을 제외하고 학습, 과적합을 피한다.
두 개의 층이 있기에 gpu도 2개 씀.
zeiler2013a와 krizhevsky2012, zeiler2013b(컨벌루션 신경망의 시각화 + 학습화 과정에서 어떤 층이 어느 역할을 이해하는지 고안)
사람 인식
얼굴인식 : zhao2003(영상 전체에서 특징 추출, 분류하는 통째 접근 방법, 영상의 특정부분에서 특징 추출 후 분류하는 특징기반 접근 방법, 두 방법 결합하는 혼합접근방법). 가령 얼굴영상을 구성하는 모든 화소를 PCA로 변환한 특징벡터를 사용하는 6절의 고유얼굴은 통째방법. CNN활용한 방법은 특징기반방법으로 lawrence97, 눈코입에 해당하는 특징 추출 후 이를 이용해 분류하는 Kelly70, kanade73. 또한 2.5차원 깊이영상 이용한 queirolo2010, 조명변화와 머리포즈변화 다루는 zhao2003
생체인식 전체 자세히 소개한 jafri2009(8)
나이는 회귀문제에기도 함. fu2010
성별인식은 ng2012, 인종인식은 muhammade2012 lu2004
표정인식 shan2009(lbp텍스처특징 추출) 또는 fasel2003, bettadapura2012
모바일인식
girod2011 : 와인병이나 책표지 찍으면 인식해 관련사이트로 연결, 작품 찍으면 어느 작품인지 인식
ackerman2013 : 사람 얼굴 인식해 누구인지 알려줌
leafsnap: 나뭇잎모양 인식해 나무종 알아냄. kumar2012. 이파리 여부는 지스트(oliva2006)특징과 svm분류기로 이진분류 수행해 판단. 컬러영상을 HSV공간으로 변환 후, H(색상)을 제외하고 S와 V채널만 이용해 2차원 공간에서 가우시안 혼합 군집화로 분할 수행. 특징추출단계는 경계선의 모든 점에서 곡률 계싼하고, 이 분포를 히스토그램으로 표현해 특징 벡터 생성. 분류는 최근접 이웃 매칭을 이용.
증강현실 : Gordon2006에서, sift이용한 초창기 시스템 및 이를 단순화한 wagner2010, surf활용한 takacs2008, 이진지역특징통해 고속성 확보한 xia2013
'버츄얼유튜버' 카테고리의 다른 글
Pandas (0) | 2022.01.20 |
---|---|
비전 10 ) 모션 (2) | 2022.01.09 |
비전 8) 기계학습 (0) | 2021.12.31 |
비전7 ) 매칭 (0) | 2021.12.29 |
비전 6) 특징기술 (0) | 2021.12.28 |