- Clone this repo: https://github.com/cocodataset/cocoapi
git clone https://github.com/cocodataset/cocoapi.git
- Setup the coco API (also described in the readme here)
cd cocoapi/PythonAPI
make
cd ..
- Download some specific data from here: http://cocodataset.org/#download (described below)
-
Under Annotations, download:
- 2014 Train/Val annotations [241MB] (extract captions_train2014.json and captions_val2014.json, and place at locations cocoapi/annotations/captions_train2014.json and cocoapi/annotations/captions_val2014.json, respectively)
- 2014 Testing Image info [1MB] (extract image_info_test2014.json and place at location cocoapi/annotations/image_info_test2014.json)
-
Under Images, download:
- 2014 Train images [83K/13GB] (extract the train2014 folder and place at location cocoapi/images/train2014/)
- 2014 Val images [41K/6GB] (extract the val2014 folder and place at location cocoapi/images/val2014/)
- 2014 Test images [41K/6GB] (extract the test2014 folder and place at location cocoapi/images/test2014/)
- The project is structured as a series of Jupyter notebooks that are designed to be completed in sequential order (
0_Dataset.ipynb, 1_Preliminaries.ipynb, 2_Training.ipynb, 3_Inference.ipynb
).
Notebook 0: Dataset
- Initialize the COCO API
- Plot a Sample Image
Notebook 1: Preliminaries
- Explore the Data Loader
- Use the Data Loader to Obtain Batches
- Experiment with the CNN Encoder
- Implement the RNN Decoder
Notebook 2: Training
- Training Setup
- Train the Model
- Validate the Model
Notebook 3: Inference
- Get Data Loader for Test Dataset
- Load Trained Models
- Finish the Sampler
- Clean up the Captions
- Generate Predictions