Neural Image Caption (NIC)는 2014년에 나온 논문으로 풀 네임은 Show and Tell: A Neural Image Caption Generator다.
이름에서 알 수 있듯이 이미지를 받으면 DNN (Deep Neural Network)를 통해서 캡션, 이미지에 대한 설명을 작성하게 된다.
저자는 Oriol Vinyals, Alexander Toshev, Samy Bengio, Dumitru Erhan이다.
해당 논문은 구조 상으로 큰 개선은 없었으나 Vision CNN과 NLP LSTM을 함께 사용하여,
이미지 캡셔닝을 사용한 비교적 오래된 2014년 논문이라 점에서 간단하게 짚고 넘어가고 싶어서 포스팅한다.
모델 설명
Figure 1은 Show and Tell 논문에서 제시한 Neural Image Caption (NIC) 모델이 풀고자 하는 문제를 간결하게 요약했다. 이미지를 이미지 CNN에 통과시킨 다음 NLP RNN으로 문장을 생성하게 된다.
Figure 3에서는 위의 설명을 보다 자세하게 그려내고 있다.
우선 Image를 CNN 구조에 통과시킨 후 생성된 image embedding과
nlp sequence의 word embeddings를 동시에 LSTM에 적용하는 방법론을 적용했다.
이미지를 $I$라고 표기할 때, ${{x}_{-1}}$ = CNN($I$)으로 추가적으로 state -1을 설정했다.
이를 통해서 special start word인 $S_0$가 있는 state $0$가 있는 LSTM cell에 input으로 들어가게 된다.
LSTM의 loss는 negative log likelihood of correct word at each step이다.
Inference 과정에서 2가지 선택이 가능하다.
첫 번째는 sampling으로 첫번째 단어는 $p_1$에 따라 뽑고 이런 과정을 반복한다.
두 번째는 beam search로 $k$ best sentences를 시간 $t$까지 반복적으로 뽑은 다음 이를 후보로 해서 $t+1$ 때의 문장을 생성하고 best $k$ 문장을 계속 보존한다.
해당 논문에서는 BeamSearch를 선택했고 beam의 size는 20으로 선택했다.
데이터셋
데이터셋은 이미지와 이를 영어로 설명하는 문장들로 구성되어 있다.
Pascal VOC 2008, Flickr8k, Flickr30k, MSCOCO, SBU의 5개의 데이터를 사용했다.
Evaluation Metrics
성능 지표로는 우선 BLEU가 있다. BLEU는 Bilingual Evaluation Understudy Score의 약자로 기계번역 성능지표로 많이 사용된다.
이외에도 perplexity, METEOR, CIDER, recall@k도 고려했다.
해당 논문에서는 BLEU, METEOR, CIDER, recall@k를 사용했다.
(성능 지표는 추후 업데이트 예정)
Experimental Results
Figure 5는 이미지에 대한 설명 결과다. 각 결과는 사람이 직접 별점을 매겨서 4개의 집단으로 나누었다.
'Computer Vision' 카테고리의 다른 글
ResNet (2016) 논문 리뷰 (0) | 2024.04.15 |
---|---|
Fast R-CNN (2015) 논문 리뷰 (0) | 2024.04.14 |
SPPNet(2014) PyTorch Implementation (0) | 2024.04.12 |
SPPNet (2014) 논문 리뷰 (0) | 2024.04.09 |
R-CNN (2014) PyTorch Implementation (0) | 2024.04.08 |