媒体计算实践作业:图像——文本跨模态搜索
本项目使用的是Flickr30k数据集,你需要自行先下载。 百度云地址
在Preprocessing下:
data_split_1.py
划分训练集、测试集、验证集resize_data_2.py
长宽比例不变,将短边拉伸为256count_vocab_3.py
统计每个单词的词频convert_annotations_4.py
将.txt格式的标注文件转换为.jsonbuild_dictionary_5.py
构建单词编号,即查询字典
在数据预处理完成后,在config.py
中配置各文件的路径以及训练的参数,并且下载在谷歌新闻上预训练的Word2Vec模型
trainStage1.py
使用分类损失预训练trainStage2.py
使用三元组损失和对抗损失微调
在 QueryApp 下的 图文互搜.exe 提供简单的测试界面。(把相关文件放在对应文件夹下使用一键初始化) (修正了不能自己选图像模型的小bug,但是由于环境变换,直接用PyInstaller打包的exe文件较大(提取码1234)main.exe)
需要提前下载预训练模型imgcnn.pth和textcnn.pth到DATA/Checkpoint
下方便自动初始化,
captions_database.pkl和images_database.pkl事先提取的图像和文本特征以及其索引到DATA/
下,
字典text_info.json到DATA/Flick_10k
,
图片数据到DATA/Flick_10k/flick_image_256
下。也可以自己选择路径,但是后续检索的时候不支持自动初始化。
测试结果如下: