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

本文主要是介绍【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,创新点就可以是模型迁移、模型知识蒸馏等对比实验提高了一点评价指标。)

在这里插入图片描述

这篇关于【2024第十二届“泰迪杯”数据挖掘挑战赛】B题基于多模态特征融合的图像文本检索—解题全流程(持续更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840864

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad