Image frequency로부터 Feature를 뽑아 내는 일련의 작업들을 전처리라고 한다면, 후처리도 존재한다.

후처리에는 대표적으로 Recognition작업과 Reconstruction으로 나누게 된다.


Recognition은 CNN(Convolution Neural Network)등을 통해 장면/장소/물체를 인식하는 것.

Reconstruction은 이미지를 복원하는 것. 


Recognition과 Detection은 엄연히 다른데, 가장 큰 차이점으로써 Detection은 물체의 유/무를 가린다고 하면 Recognition의 경우 물체가 무엇인지에 대해 판단하는 것이라고 볼 수 있다.


Machine Learning

데이터에 대해 학습하고 데이터를 예측하는 것


대표적 예시

1. Face recognition

2. Object classification (등록된 물체를 구분없이 찾는 것)

3. Scene Segmentation (Unsupervised learning)


ImageNet

카테고리별 굉장히 많은 이미지들이 있는 사이트 (WordNet에 있는 각각의 카테고리에 해당하는 이미지)


Top 5 error



  위 사진 중 달마시안과 체리가 나온 사진을 보면 달마시안과 체리가 함께 있는데도 불구하고, Recognition의 결과 중 Top 5에서 1st의 결과가 recognition의 결과로 표시되는 것을 확인할 수 있다.

Ground truth는 cherry인데 Top 5 이내에서 인식하지 못한 것을 Top 5 error라고 한다.


ImageNet Competition

2012년, Krizhevsky가 ImageNet competition에서 처음으로 Traditional CV의 recognition rate를 이겨먹는 결과를 보여줌.

이후로 deep learning은 폭발적으로 증가. 구글과 마소가 2015년 human score를 박살내버리는 쾌거 기록



Supervised and Unsupervised Learning

Supervised learning은 지도 학습, 사람이 학습을 직접 시키는 모델. 예를 들어 어떤 물체에 대해 label을 기록해주는 것. 예시로써 얼굴 인식, 지문 인식이 있다.


Unsupervised learning은 비 지도 학습, 학습을 지가 알아서 하는 모델. 대표적으로 Compressing(압축)이 있다.

asdf


Dimensionality Reduction

다차원을 낮은 차원으로 변환하는 작업

PCA, ICA, LLE, Isomap 등의 method가 있는데, 대표적으로 PCA를 사용함


PCA (Principal component analysis)

데이터를 가장 잘 나타내는 새로운 축을 생성해서, Mean 값을 빼버려서 0으로 재정렬

축에 대해 Minimization을 진행함 (분산이 줄어들게 됨)

이 때, 생성한 eigenvector(Major vector)와 수직(orthogonal)인 vector인 Minor axis가 생김


특성

Compressing은 잘 되는데 classification이 잘 안됨

Representation에 특화되어 있고 classification에는 약함



Eigenvalue and Eigenvector

상세한 설명은 요 블로그에 잘 되어 있으니 참고: https://darkpgmr.tistory.com/105


Eigenfaces

Eigenanalysis(통계적 데이터 분석)를 활용한 얼굴 분석 기술 (99' MIT MediaLab)


Mean을 제거한 variance들. (얼굴들의 eigenvector들)

요 면상과 평균 얼굴을 합치면 원래 얼굴을 복원할 수 있음.


처리 시 mean을 제거하지 않으면 요것처럼 평균 얼굴이 나옴 (input 대비 평균 얼굴)


 -> coefficient + model = original faces



10*10 이미지를 1*100과 컨볼루션해서 100*400의 벡터를 만들어냄 (400개의 얼굴 vector)


Clustering

Image segmentation (이미지를 쪼개서 무엇인지 판단)에 많이 쓰임. Unsupervised learning의 한 종류.

잘게 쪼개서 비슷한 색상끼리 grouping해서 superpixel을 생성


Oversegmentation and Undersegmentation

Oversegmentation은 너무 많이 segmentation한 것 (ex> 100개의 Pixel value로 segmentation)

Undersegmentation은 너무 적게 segmentation한 것 (ex> 3개의 pixel value로 segmentation)


Hierarchical segmentations

Oversegmentation과 undersegmentation사이의 threshold값들

몇 개의 cluster로 이미지를 clustering할 것인가?


Process

1. Summerizing data

   데이터를 분류함 (남/여 -> 나이 -> 인종 등)

   patch-based compression 이나 denoising을 진행함 (quantization이라고 부르는데 이때, flunctuation이 낮아짐)

2. Counting

   텍스쳐, 색상, SIFT vector의 Histogram이 이용됨

3. Segmentation

   이미지를 서로 다른 구역으로 분리함

4. Prediction

   같은 클러스터에 있는 이미지들은 같은 label을 가짐


How do we cluster?

K-means, Agglomerative clustering, Mean-shift clustering, spectral clustering등의 methodologies 사용


K-means

1. K Center를 임의로 지정

2. 각각의 점을 가까운 center로 할당

3. 새로운 center(mean) 값을 연산

4. 2-3 과정 반복 (2 과정에서 center로 re-assigned되는 경우가 없을 경우 break)


문제점

initial seed가 randomly하게 변하기 때문에, 결과값이 상이한 문제점이 생김