Automatically image Description(Auto Caption)

패턴인식 & 기계학습 2015. 10. 6. 20:11

1. Deep Learning의 등장

 2010년대 초반 딥러닝(Deep Learning)의 문제점 및 한계를 극복해 여러 인공지능의 분야에 적용하면서 전체적인 성능 및 인식률이 매우 상승했다. 그 중 가장 획기적인 아이디어 중 하나인 방법으로 사람이 아닌 컴퓨터가 스스로 이미지를 보고 이미지를 표현(representation)하는 것이다. 이 것은 Language translation의 분야중 하나였지만, Deep Learning을 이용하여 이미지의 인식(recognition)성능이 많이 상승하여 이미지와 번역(translation)을 결합하여 컴퓨터 스스로 이미지를 보고 영상을 분석할 수 있게 되었다. 





2. Auto Caption(Automatically Image Description)

 Language Expression이 가능해 진 이후로 Deep Learning과 여러 모델을 결합하여 이미지의 표현(Image Representation)을 정확히 해내는 여러 대회(ImageNet, Microsoft COCO 등..) 에서 어느 모델이 더 이미지를 언어로 표현을 잘 하는지?(이미지를 보고 문장을 만들어 냈을때 오류가 없는)를 측정하여 순위를 매겨 수상하는 대회를 매년 진행하고 있다. 아래 그림은 최근 Microsoft에서 주최하는 Image Caption대회의 결과를 보여준다. 사람의 표현 능력과 각 기업, 연구소, 연구실에서 개발한 모듈 별로 얼마나 표현을 잘 하는지를 나타낸 순위이다. 모든 모델이 어떻게 설계되었고 어떻게 문장(언어)를 표현하는지는 아직 밝혀져 있지는 않지만 여러 논문에서 소개하는 방법을 간단히 설명하고자 한다.


Fig1. Microsoft COCO Captioning Challenge[1]



3. Show and Tell : A Neural Image Caption Generator [2]

 2014년 Google에서 발표한 Show and Tell 이라는 논문에서 소개된 방법은 영상인식을 위해 CNN모듈과 RNN(LSTM)을 결합한 모듈로 Auto Caption하는 방법을 소개한 논문이다. 


Fig2. Show and Tell Auto caption Model[2]


 CNN 모듈로는 GoogLeNet[3]을 기반으로 Batch Normalization을 적용한 모델[4]을 사용하였다. Batch Normalization을 기존 GoogLeNet에 적용하여 Inception Module을 수정하여 기존 에러률(error rate) 6.7%보다 (ImageNet Class Top-5 error 4.9%)을 보인 정확한 이미지 표현이 가능한 모듈(Fig3.Left)을 사용한뒤, Language Presentation모듈로는 LSTM(Long Short Term Memory) Fig3.Right을 적용하여 하였다.


Fig3. (Left) CNN & LSTM 모델 결합, (Right) LSTM [2]



4. From Captions to Visual Concepts and Back [5]

 Multiple Instance Learning을 통하여 Auto Caption 을 수행하는 논문으로 총 3단계의 표현 과정을 거친다. 첫번째로 이미지 내에서 표현 가능한 단어를 각각 추출 한뒤, 각각의 표현된 단어로 문장을 구성한다. 구성된 문장을 re-rank과정을 통해 최종적으로 문장 하나를 선택해 표현하는 순서로 알고리즘이 구성되어 있다.


Fig4. Caption Generate Pipeline[3]


 위 모델의 특징으로는 이미지 부분(region)을 기반으로 각각의 Object에 대한 정보를 추출했을때, Open혹은 Beautiful 같은 형용사의 뜻을 가진 단어는 표현하기 힘든 문제로 이미지 부분이 아닌 전체를 기반으로 Object에 대한 정보를 추출하였고, 기존 CNN들과는 다르게 Convolutional Neural Network 과정에 포함된 Fully Connected Layer(7~8 Layer)에 Image의 region 정보와 word correspond정보, image 정보를 전파 할수 있도록 Layer를 수정하여 이미지 내부에 Logistic Function을 추가하여 이미지 위치 정보와 word를 표현이 동시에 가능하도록 표현하는 모델을 제안하였다. Language Representation 표현된 단어 정보로 caption을 generation하기 위해 Maximum entropy(ME) Language Model(LM)을 이용하여 지금 상태(condition)에서 확률적으로 모든 단어를 계산한 뒤, 높은 likelihood를 detection하여 각각의 단어를 연결하는 방법을 사용하였다.



Reference


[1] http://mscoco.org/dataset/#captions-leaderboard

[2] Vinyals, Oriol, et al. "Show and tell: A neural image caption generator." arXiv preprint arXiv:1411.4555 (2014).

[3] Szegedy, Christian, et al. "Going deeper with convolutions." arXiv preprint arXiv:1409.4842 (2014).

[4] Ioffe, Sergey, and Christian Szegedy. "Batch normalization: Accelerating deep network training by reducing internal covariate shift." arXiv preprint arXiv:1502.03167 (2015).

[5] Fang, Hao, et al. "From captions to visual concepts and back." arXiv preprint arXiv:1411.4952 (2014).

[6] Caffe Model Zoo : https://github.com/BVLC/caffe/wiki/Model-Zoo


'패턴인식 & 기계학습' 카테고리의 다른 글

Conditional Random Field(CRF)  (3) 2015.10.08
Jaccard similarity 계산  (0) 2015.10.02
Deep Learning 두번째 세미나  (0) 2015.09.29
딥러닝 framework Theano 설치  (0) 2015.09.21
에이다부스트(adaboost)  (0) 2015.02.27