This is the official PyTorch implementation of our CVPR 2022 paper:
Beyond a Pre-Trained Object Detector: Cross-Modal Textual and Visual Context for Image Captioning, Chia-Wen Kuo and Zsolt Kira.
[arXiv] [Project] [Video]
Significant progress has been made on visual captioning, largely relying on pre-trained features and later fixed object detectors that serve as rich inputs to auto-regressive models. A key limitation of such methods, however, is that the output of the model is conditioned only on the object detector's outputs. The assumption that such outputs can represent all necessary information is unrealistic, especially when the detector is transferred across datasets. In this work, we reason about the graphical model induced by this assumption, and propose to add an auxiliary input to represent missing information such as object relationships. We specifically propose to mine attributes and relationships from the Visual Genome dataset and condition the captioning model on them. Crucially, we propose (and show to be important) the use of a multi-modal pre-trained model (CLIP) to retrieve such contextual descriptions. Further, the object detector outputs are fixed due to a frozen model and hence do not have sufficient richness to allow the captioning model to properly ground them. As a result, we propose to condition both the detector and description outputs on the image, and show qualitatively that this can improve grounding. We validate our method on image captioning, perform thorough analyses of each component and importance of the pre-trained multi-modal model, and demonstrate significant improvements over the current state of the art, specifically +7.5% in CIDEr and +1.3% in BLEU-4 metrics.
Please follow the instructions in ctx
to download/re-build the cross-modal visual and textual context first, and then move on to m2
to train the image captioning model.
-
The
ctx
folder contains code for downloading or re-building the cross-modal visual and textual context. -
The
m2
folder contains code for incorporating our proposed method into the M2 image captioning model.
This is project is developed and tested in Python==3.8
and PyTorch==1.10
.
# create a conda env
conda env create -f environment.yml
conda activate xmodal-ctx
# Download spacy English data
python -m spacy download en_core_web_sm
@inproceedings{kuo2022pretrained,
title={Beyond a Pre-Trained Object Detector: Cross-Modal Textual and Visual Context for Image Captioning},
author={Chia-Wen Kuo and Zsolt Kira},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2022}
}