2023 Samsung AI Challenge : Image Quality Assessment

알고리즘 | 비전 | 언어 | 이미지 캡셔닝 | Custom Metric

  • moneyIcon 상금 : 2,100만 원
  • 414명 마감

 

CLIPCAP 기반 Caption Generation 코드(PB기준 0.7)

2023.10.12 17:33 985 조회 language

논문 : https://gkswns3708.notion.site/ClipCap-CLIP-Prefix-for-Image-Captioning-0ed557475ed4497a8944f3bc8ac41f17?pvs=4

1~3 epoch에서 Overfitting이 발생되는 것으로 관찰되고, 
경험적으로 2epoch에서 validation이 최대였을 때 제출하면 Caption에서 0.7정도의 public score를 얻게 됩니다.
코드의 큰 틀은 다음과 같습니다.
1. CLIP 기반의 모델 특성상 Freezed Image Feature Extractor(ResNet)가 매 iteration당 동작하게 되므로, 해당 과정을 생략하기 위헤 Feature Extraction을 학습 전 미리 진행합니다.
2. Caption Data 또한 Freezed Text Feature Extractor(BERT)가매 iteration당 동작하게 되므로, 해당 과정을 생략하기 위헤 Feature Extraction을 학습 전 미리 진행합니다.
3. 1, 2번 과정에서 얻은 Extracted Data를 기반으로 본 논문에서 필요한 pipeline이 수행됩니다.
    3 - 1. CLIPCAP 논문의 경우 Image Feature Extractor에서 나온 Feature를 "학습 가능한 Mapping Network"를 이용해 1차원 크기의 벡터로 변환합니다.(MLP의 경우 크기 10, Transformer류의 경우 40, 조절 가능한 HyperParameter)
    3 - 2. Caption Token에 앞쪽에(Prefix) 해당 벡터를 concatenation해서 학습합니다.
본 논문의 contribution은 기존 CLIP의 모든 Layer를 Freeze하고, "학습 가능한 Mapping Network"만을 학습시켜도 Captioning 결과의 Distribution이 Shift(Fine-tuning)이 되는 것입니다. 
코드는 아래 링크에서 확인 가능합니다.

코드