【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(持续更新)

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛B题 解题全流程(持续更新)

-----基于多模态特征融合的图像文本检索

一、写在前面:

  1. ​ 本题的全部资料打包为“全家桶”, “全家桶”包含:模型数据、全套代码、训练好的模型权重、结果csv、教程、详细实验过程PPT、教学视频、成品论文(还在写作中,后续跟新至文件中)(赠品)基于正式数据的毕设级项目多模态图文互检系统
  2. 达到“以赛促学”的目的,从0到1,从环境配置开始,到模型构建、数据准备、模型训练、模型recall_TOP1、5、10召回验证、文到图预测、图到文预测、预测结果后处理为result.csv。全流程教学,良心制作
  3. 本题基于Chinese Clip 多模态图文互检模型进行微调模型、知识蒸馏,根据赛题示例数据进行模型训练。
  4. 对比A题B题C题,B题C题偏难,相对选择人少,容易获奖,并且论文非常好写出创新和模型对比优化等核心部分。

二、结果展示:

2.1 任务一 构建图文互检多模态大模型以及评价指标展示:

在这里插入图片描述
在这里插入图片描述

本题模型的验证集就是附件一的全部数据(1k个对图文,分别构成了训练集和验证集),在验证集上的召回验证结果:

在这里插入图片描述

2.2 任务二文到图检索结果展示:

展示问题二 利用附件 2 中“word_test.csv”文件的文本信息, 对附件 2 的 ImageData 文件夹的图像进行图像检索,并罗列检索相似度较高的前五张图像,(预测结果的样例展示:)

在这里插入图片描述

result2.csv:

在这里插入图片描述

在这里插入图片描述

任务三 图到文检索结果展示:

在这里插入图片描述
在这里插入图片描述

result2.csv:

在这里插入图片描述

三、解题流程:

3.1 【样例数据】附件一 1k个图文对 数据分析与预处理

1、查看文本数据,句子长度,根据句子长度与句子的特征进行文本处理:

在这里插入图片描述

针对短文本,可以不用做处理,一般表示的就是这张图片的主体意思,针对长文本,需要使用句子特征(如【】,()、《》)进行提取,再根据命名实体识别、句子“主题式概括”进行罗列该图片的主体意思

再对图id与文本id进行重新id编码

处理结果如下所示:

在这里插入图片描述

2、进行模型构建训练的数据,本着样例数据少,1k个图文对,就不划分训练集和验证集数据了,直接训练集是1k个图文对,验证集也是1k个图文对,分别处理为对应的clip模型数据,jsonl,tsv格式:

在这里插入图片描述

其中tsv数据格式: 不是将图片以大量的小文件方式存放,而是将训练/验证/测试图片以base64形式分别存放在${split}_imgs.tsv文件中。文件每行表示一张图片,包含图片id(int型)与图片base64,以tab隔开,

最后经过序列化代码,对模型数据进行序列化,转换为模型训练的输如数据。进行模型训练

3.2 模型训练

1、根据序列化的训练数据,选择模型合适的预训练权重,进行模型训练,(主要的坑在于该Chinese Clip模型的库文件配置不详、环境配置不详,并且训练的方式只能是分布式,就是一个机子没有分布式,都得填入伪分布式配置,就会导致训练失败),模型的训练环境要求、以及所需库文件版本,在教学视频和教程中有详细描述,并且整理为clipenv_requirements.txt。
在这里插入图片描述

3.3 任务二的结果预测:

1、针对任务二的“文到图检索”,首先需要对附件二的图数据、文本数据(依旧需要处理,如上3.1的文本数据处理。针对长短文本的处理),进行制作为tsv、jsonl格式

2、送入模型,进行特征提取,输出每个图片的特征矩阵、每个文本的特征矩阵数据

3、根据特征数据,进行预测,对每个文本id进行预测近似的5个图片id

4、根据预测结果,将文本id与图片id,根据前期处理的对照表,进行名称配对,使用pands进行表格处理,得到result1.csv

3.4 任务三的结果预测:

1、针对任务二的“图到文检索”,如任务二流程一样,数据准备

2、模型特征提取

3、根据特征数据,进行预测,对每个图片id进行预测近似的5个文本id

4、配对、result2.csv

四、全家桶内容展示

正式数据出来后也会更新全家桶的内容。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、tips

在这里插入图片描述

获取全家桶:

“https://afdian.net/item/8cc7f3dae8d111eeb7b05254001e7c00“

历时5天晚上抽空制作,精心打磨,保证物有所值,

后续(时间不定,可能比赛结束后,用时一周时间,全家桶赠品,后续跟新)会基于这个写一个可以做毕设或者课题申请、大创等展示作品,基于streamlit开发展示界面,效果类似于如下:(你完全可以收集一些专业领域的图文对、例如旅游、科研器材等,进行模型训练,然后填入该训练的模型权重,基于你的训练数据,进行图文互检的功能,这不又省了一个毕设了吗2333,创新点就可以是模型迁移、模型知识蒸馏等对比实验提高了一点评价指标。)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenLayers基础教程——使用WebGLPoints加载海量点数据

1、前言 最近遇到一个问题:如何在OpenLayers中高效加载海量的场强点?由于项目中的一些要求,不能使用聚合的方法加载。一番搜索之后发现:OpenLayers中有一个WebGLPoints类,使用该类可以轻松应对几十万的数据量&#xf…

汽车后视镜反射率检测光纤光谱仪:安全驾驶的守护神

在汽车的日常使用中,后视镜扮演着至关重要的角色。它不仅帮助驾驶员观察车辆后方的情况,还确保了行车的安全性。然而,由于各种原因,后视镜的反射率可能会降低,从而影响到驾驶员的视线范围和判断能力。为了解决这一问题…

windows允许指定IP段访问本地端口

虚拟机内部应用有时候需要访问windows的一些端口,例如数据库或Redis等,默认情况下,需关闭windows上的防火墙才可正常访问。本文通过在防火墙设置允许指定IP段进行访问来处理,不用每次操作都关闭防火墙。 入站规则-》新建规则 完成…

软考高项总结:第16章采购管理(二)

一、实施采购 1、实施采购过程的数据流向图 2、实施采购ITO 3、采购文档,是用于达成法律协议的各种书面文件,可包括: (1)招标文件:包括发给卖方的信息邀请书、建议邀请书、报价邀请书,或其他文件,以便卖方编制应答文件。 (2)采购工作说明书:向卖方清晰地说明目标…

掌握了这个分析方法,实现传输线阻抗5%的加工公差不是梦!

高速先生成员--黄刚 传输线阻抗控制对系统性能的重要性不言而喻,每一家的PCB加工板厂都在往能控制更严格的阻抗公差这个目标而不断努力。但是我们也知道,传输线阻抗的控制公差其实会受到PCB结构本身的因素影响,就好像下面这张PCB差分线的切片…

Nextcloud激活被锁用户

Nextcloud激活用户 如果docker下没有安装sudo 和 vim执行下面命令,安装了则跳过 #进入docker内部 #更新apt-get apt-get update #安装sudo apt-get install sudo #安装vim apt-get install vim 修改下面文件内容,否则执行occ命令可能报错 进入上面查询…

【zlm】问题记录:chrome更新引起的拉不出webrtc; 证书校验引起的放几秒中断

目录 chrome更新引起的拉不出webrtc 证书校验引起的放几秒中断 chrome更新引起的拉不出webrtc 【zlm】最新的chrome版本中的报错: 我有个问题event.js:8 [RTCPusherPlayer] DOMException: Failed to execute setRemoteDescription on RTCPeerConnection: Failed …

产品推荐 | 基于EV10AQ190的多通道 最大5Gsps 10bit AD FMC子卡

一、板卡概述 FMC147是一个四通道多模式AD子卡,完全符合VITA 57.1标准。该卡提供4个10位ADC通道,支持采样4、2、或1通道,采样速率为5Gsps、2.5 GSPS、1.25Gsps选择。 采样时钟可以通过一个同轴电缆连接外部提供,或由内部时钟源(可…

学习笔记Day15:Shell脚本编程

Shell脚本编程 Linux系统环境 Linux系统的4个主要部分:内核、shell、文件系统和应用程序。 内核是操作系统的核心,决定系统性能和稳定性shell :一种应用程序,是用户和内核交互操作的接口,是套在内核外的壳&#xff…

C++函数模板详解(结合代码)

目录 1. 模板概念 2. 函数模板语法 3. 函数模板注意事项 4. 函数模板案例 5. 普通函数与函数模板的区别 6. 普通函数与函数模板的调用规则 7. 模板的局限性 1. 模板概念 在C中,模板是一种通用的程序设计工具,它允许我们处理多种数据类型而不是固…

Symbol 类型必知必会

一. Symbol的概念 Symbol 是 JavaScript 中的一种新的基本数据类型,引入自 ECMAScript 6(ES6)标准。它是一种不可变且唯一的数据类型,可以用来创建独一无二的键(key)。 Symbol 的创建方式是通过调用全局的…

测试开发工程师(QA)职业到底需要干些什么?part4:安全QA

安全测试开发QA工作的主要目标是确保软件、应用程序或系统在安全方面的健壮性和可靠性。以下是安全测试开发QA工作中的一些常见任务和职责: 安全测试计划和策略:安全测试开发QA团队负责制定全面的安全测试计划和策略。他们会评估应用程序或系统的安全需求…

【优选算法】专题1 -- 双指针 -- 复写0

前言: 补充一下前文没有写到的双指针入门知识:专题1 -- 双指针 -- 移动零 目录 基础入门知识: 1. 复写零(easy) 1. 题⽬链接:1089.复习0 - 力扣(LeetCode) 2. 题⽬描述&#xff…

数据容器-dict以及总结-Python

师从黑马程序员 字典的定义 同样使用{},不过存储的元素是以个个的:键值对,如下语法: #定义字典 my_dict1{"王力宏":99,"周杰伦":88,"林俊杰":77} #定义空字典 my_dict2{} my_dict3dict() print(f"字典1…

springboot 将manage关闭。

这是SpringBoot自带的接口,会将所有的接口暴露在外面。所以我们上生产环境,需要将这个接口给关闭。 默认是 management.endpoints.web.exposure.include* 只需将配置文件改成下面,Springboot自带的接口就会关闭。 management.endpoints.…

【物联网开源平台】tingsboard二次开发

别看这篇了,这篇就当我的一个记录,我有空我再写过一篇,编译的时候出现了一个错误,然后我针对那一个错误执行了一个命令,出现了绿色的succes,我就以为整个tingsboard项目编译成功了,后面发现的时候&#xff…

记录微信小程序云开发的增删改查

目录 一、准备工作 1、创建集合添加数据 2、设置数据权限 3、小程序连接数据库 二、增删改查 1.查 1、查询单集合所有数据 2、条件查询 1、直接:相当于等于 2、调用指令 3、查询单条(根据id查询) 2.增 3.改 4.删 一、准备工作 1、创建集合添…

力扣---最长公共子序列---二维动态规划

思想: 定义g[i][j]:text1的前i位和text2的前j位的最长公共子序列长度。递推公式:如果text[i]text[j],那么只需要看g[i-1][j-1]即可,此时g[i][j]g[i-1][j-1]1。如果text[i]!text[j],那么g[i][j]max(g[i-1][j…

【研发管理】研发管理规范

研发管理规范 目的定义工作职责产品经理项目经理运维负责人研发负责人研发工程师 基本原则研发过程描述需求分析分析设计研发实现测试验收发布上线线上监控 目的 软件研发相关管理,有效控制技术风险,提高研发和运行质量 定义 包括需求分析、分析设计…

【C】盛最多水的容器(双指针)

盛最多水的容器 原题目链接:点击跳转 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和(i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说…