项目简介
本项目聚焦于基于Python语言的深度跨模态哈希检索程序的设计与实现。通过运用深度学习技术,设计跨模态哈希检索算法,并在三个基准数据集上开展实验,与先进的跨模态哈希算法进行对比分析。
项目的主要特性和功能
- 跨模态哈希检索算法设计:运用深度学习方法设计并实现跨模态哈希检索算法。
- 多模态数据处理:对图像、文本和标签三种模态的数据进行处理,实现图像与文本、图像与标签的跨模态检索。
- 模型训练与验证:在三个基准数据集上进行模型训练与验证,对比所提算法和现有先进算法的性能。
- 性能评估:利用召回率(Recall)等指标评估算法性能。
安装使用步骤
环境准备
- 安装Python环境。
- 安装项目所需的依赖库:
bash pip install -r requirements.txt
数据准备
此步骤未详细说明,需按照项目需求准备相应数据。
数据预处理
- 划分训练集、测试集、验证集:
bash python data_split_1.py
- 调整图像大小:
bash python resize_data_2.py
- 统计词频:
bash python count_vocab_3.py
- 转换标注文件格式:
bash python convert_annotations_4.py
- 构建单词编号字典:
bash python build_dictionary_5.py
模型训练
- 在
config.py
中配置各文件的路径以及训练的参数。 - 运行训练脚本:
bash python train.py
模型测试与评估
- 提取图文特征:
bash cd Chinese-CLIP/ export CUDA_VISIBLE_DEVICES=0 export PYTHONPATH=$PYTHONPATH:$(pwd)/src python -u src/eval/extract_features.py --extract-image-feats --extract-text-feats --image-data="$DATAPATH/datasets/$dataset_name/lmdb/$split/imgs" --text-data="$DATAPATH/datasets/$dataset_name/$split_texts.jsonl" --img-batch-size=32 --text-batch-size=32 --context-length=24 --resume=$resume --vision-model=ViT-B-16 --text-model=RoBERTa-wwm-ext-base-chinese
- 进行KNN检索:
bash cd Chinese-CLIP/ python -u src/eval/make_topk_predictions.py --image-feats="$DATAPATH/datasets/$dataset_name/$split_imgs.img_feat.jsonl" --text-feats="$DATAPATH/datasets/$dataset_name/$split_texts.txt_feat.jsonl" --topN=10 --eval-batch-size=32768 --output="$DATAPATH/datasets/$dataset_name/$split_predictions.jsonl"
- 计算召回率:
bash python src/eval/evaluation.py $DATAPATH/datasets/$dataset_name/$split_texts.jsonl $DATAPATH/datasets/$dataset_name/$split_predictions.jsonl
结果分析
分析评估结果,对比所提出算法与现有算法的性能。
注:上述步骤假设用户已经下载了本项目的源码文件,并具备相应的Python开发环境。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】