打印

基于深度学习生成自己的图像问答模型

[复制链接]
620|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
洞幺邦01|  楼主 | 2021-6-22 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#申请原创#
VQA 是什么?:Visual Question Answering

我们可以这样定义:“视觉问答(VQA)是一种系统,它将图像和自然语言问题作为输入, 并生成自然语言答案作为输出。”
就和下面这张图片类似:输入这张图片和问题,我们期望的答案或许是 black and banana。
编辑
搜图




VQA 的应用:盲人的视觉问答,搜索引擎(不单单是以图搜图或者以文字搜信息,而是结合 图+问题,搜索出答案),智能驾驶领域,医疗问答等领域。
VQA 的框架:视觉问题回答可以分为两个部分,即图像和文本。使用卷积神经网络(用于图像数据)和循环神经网络(用于文本数据)来表示神经网络方法来解决这个问题。主要思想是从 CNN 得到图像的特征,从 RNN 得到文本的特征,最后将它们组合起来,通过一些完全连接的层来生成答案。

(这是从 VQA 经典论文中截取的图片,虽然模型不完全一致,但思路是一样的)
(Image Source: [url=]https://arxiv.org/pdf/1505.00468.pdf[/url])
本文将介绍一下基于深度学习的easy-VQA数据集和训练预测过程。
1. 基于简单图形生成 easy-VQA 数据集
总共考虑了三种图形:圆形 (circle),矩形 (rectangle) 和三角形 (triangle) 和八种颜色,将它们两两组合,在 64 ∗ 64 的画布范围内,随机生成不同大小,不同颜色的图形;由于生成图像时,可以根据该图像的特征生成特定的问题,基于这种思路,我设计了若干关于图形和颜色的问题:
编辑
搜图



编辑
搜图




生成的数据集大约有 5k 张图片 50k 个问题,答案分类有 13 种:分别是
yes/or 问题,颜色问题和图形问题。
YES/NO: Yes, No
Shapess: Circle, Rectangle, Triangle
Colors: Red, Green, Blue, Black, Gray, Teal, Brown, Yellow
2.  在 easy-VQA 上实现图像问答架构



首先输入的图像是64∗64的,对图像进行若干次卷积核池化操作,可以生成固定长度的向量,这里设置为4096维。samepadding进行填充之后,对该图片使用3∗3的卷积核进行卷积,得到64∗64∗8;然后经过一层最大池化maxpooling得到32∗32∗8;经过另外一层有16个卷积核的卷积和池化过程,最后将图片的特征表示转化成 4096 维的固定长度的向量。
图 3 2: 图像处理模型
鉴于easy-VQA的实验性质,对于它的图片和问题的设计都比较简单,问题来自一组固定的模板,为了训练时间和demo性质的考虑,对于问题的处理,首先使用词袋模型BOW将每个单词转化成一个向量。BOW表示通过计算每个单词在文本中出现的次数,将任何文本字符串转换为固定长度的向量。然后将这些向量输入全连接的前馈神经网络fully-connected(FC),最终得到问题特征的向量表示。
最后将图片特征向量和问题特征向量拼接起来,通过 softmax 分类,在由13 种答案组成的答案候选集中选择概率最高的答案作为输出。在验证集上的可以达到不错的准确率。
编辑
搜图




问题处理模型
编辑
搜图




可以看到训练的效果还是不错的:损失率逐渐下降,准确率逐渐上升;同时模型也并没有过拟合,训练和验证的损失率准确率都比较接近。


编辑
搜图





问题模型,因为问题比较简单,使用词袋模型即可,后面加两层全连接层,将问题转化成了向量。

编辑
搜图




将图片向量和问题向量融合,输入进 softmax 分类即可。




最后可以看到达到了 93.8 的 accuracy。


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

11

帖子

1

粉丝