image-caption: 图像中文描述

数据集下载:https://tianchi.aliyun.com/dataset/145781?t=1699533627520

Show, Attend, and Tell

 这是一篇2021年的文章,用于生成图像的描述。利用卷积神经网络CNN提取图像特征,使用RNN将特征向量解码成语言序列。本论文在RNN(LSTM)上加入了attention机制,对图像特征的像素点进行概率估计,并加权求和,其思想为:人们在观察图像中倾向于关注有用信息,它创新性的将Attention作用到输入图像的像素点之上。

image-20240207201435248

 此文的贡献是:(1)提出了基于attention的image caption;(2)可视化了attention在每个时间上关注的点;(3)量化了加入attention机制后性能的提高。

Encoder

 VGGNet、Inception等是在大规模图像数据集(如ImageNet)上进行了预训练的模型,可以很好的提取到图像的特征。通过将最后的flatten与FC去掉,可以得到特征图。

Decoder

 使用LSTM,在每个时间step上生成词语。

 复习一下LSTM的知识:

image-20231130205705945

 LSTM的输入为:$C{t-1},h{t-1},x_{t}$,输出为$C_t,h_t$。

 遗忘门:

image-20231130205921504

 输出门(存储并更新细胞状态):

image-20231130205950447

image-20231130205959664

 输出门:

image-20231130210149692

未命名文件 (1)

Attention

 作用是帮助生成LSTM中的$Ct$。利用CNN提取出的特征向量$a$与LSTM输出的$h{t-1}$,通过FC+softmax计算每个像素点的概率值,之后对每个像素点加权求和。模型结构具体看下图。

image-20231130220806283

Backend

 我首先将训练好的模型封装成 demo.py,之后打算用 c++ 写的后端封装这个 demo.py。后端主要是借鉴了 link,吐槽一下,将其转为 Windows 下的服务器真不容易。

参考链接:

[1] https://github.com/foamliu/Image-Captioning-PyTorch

[2] https://blog.csdn.net/qq_43152622/article/details/118755946

[3] https://github.com/dabasajay/Image-Caption-Generator

[4] https://blog.csdn.net/sophicchen/article/details/103306545

[5] https://omarshishani.com/how-to-upload-images-to-server-with-react-and-express/

[6] https://github.com/piscisaureus/wepoll

[7] https://github.com/trungams/http-server/tree/master

留言

2023-11-09

© 2024 wd-z711

⬆︎TOP