littlebot
Published on 2025-04-02 / 0 Visits
0

【源码】基于Python语言的深度跨模态哈希检索系统

项目简介

本项目聚焦于基于Python语言的深度跨模态哈希检索程序的设计与实现。通过运用深度学习技术,设计跨模态哈希检索算法,并在三个基准数据集上开展实验,与先进的跨模态哈希算法进行对比分析。

项目的主要特性和功能

  1. 跨模态哈希检索算法设计:运用深度学习方法设计并实现跨模态哈希检索算法。
  2. 多模态数据处理:对图像、文本和标签三种模态的数据进行处理,实现图像与文本、图像与标签的跨模态检索。
  3. 模型训练与验证:在三个基准数据集上进行模型训练与验证,对比所提算法和现有先进算法的性能。
  4. 性能评估:利用召回率(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】