Image captioning is a topic that combines NLP with the computer vision powers of a convolutional neural network. It is well researched by Andrej Karpathy, now leads the computer vision team at Tesla I saw this on a deep learning lacture of Stanford.Here we will implement a basic image captioning model.It will not be perfect as we are taking a much smaller dataset for training but it will give decent captions.
Here I have used a approach that combines LSTM test genaration and power of CNN. You can have a look at the paper.
Now many other approches are there that combines with Transformer archtitechture and attention mechanism. Such approch is completely implemented at Tensorflow tutorials. Check out the implementation here.