【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.hqwc.cn/news/563048.html

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

相关文章

c++的学习之路:3、入门(2)

一、引用 1、引用的概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间。 怎么说呢,简单点理解就是你的小名,家里人叫你小名&#…

【MySQL】深入解析事务与MVCC

文章目录 1、事务四大特性1.1、原子性1.2、一致性1.3、隔离性1.4、持久性 2、并发事务带来问题2.1、脏读2.2、不可重复读2.3、幻读 3、事务隔离级别3.1、读未提交3.2、读已提交3.3、可重复读3.4、串行化 4、MVCC4.1、InnoDB隐藏字段4.2、undo log版本链4.3、ReadView4.4、MVCC工…

taro之Swiper的使用

图样&#xff1a; 往往我们需要轮播图去显示我们想要的图片之类的 这是工作的代码 <View classNametop-title><SwiperclassNamebanner-swiperinterval{3000}circularautoplay>{homeBannerList.map((item) > {return (<SwiperItem key{item.id}><View…

Visual Studio 2013 - 输出窗口一闪而过问题解决

Visual Studio 2013 - 输出窗口一闪而过问题解决 1. Visual Studio Console 一闪而过问题解决1.1. set Debug1.2. set Release References 1. Visual Studio Console 一闪而过问题解决 工程 -> 属性 -> 配置属性 -> 链接器 -> 系统 -> 子系统 -> 下拉框 -&g…

基于springboot+vue的宠物商城网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

FFmepg--AVFilter过滤器使用以及yuv视频裁剪

文章目录 AVFilter 流程:api核心代码变量yuv视频裁剪AVFilter 流程: ⾸先使⽤split滤波器将input流分成两路流(main和tmp),然后分别对两路流进⾏处理。对于tmp流,先经过crop滤波器进⾏裁剪处理,再经过flip滤波器进⾏垂直⽅向上的翻转操作,输出的结果命名为flip流。再将…

CSS时钟案例

文章目录 1. 演示效果2. 分析思路3. 代码实现 1. 演示效果 2. 分析思路 背景是表盘&#xff0c;不用自己制作然后用CSS的定位做时针&#xff0c;分针和秒针黑点用伪元素::after生成转动用animation实现 3. 代码实现 <!DOCTYPE html> <html lang"en">&…

[STM32] Keil MDK 新建工程编译不通过(warning: #2803-D和Error: L6218E)解决方法备忘

按照野火的PDF教程的第4章&#xff1a;[野火]《RT-Thread 内核实现与应用开发实战—基于STM32》.pdf 新建 Keil MDK 工程&#xff0c;工程设置完成后点击编译按钮&#xff0c;编译不通过&#xff1a; RTE\Device\ARMCM3\startup_ARMCM3.c(75): warning: #2803-D: unrecognize…

41-Vue-webpack基础

webpack基础 前言什么是webpackwebpack的基本使用指定webpack的entry和output 前言 本篇开始来学习下webpack的使用 什么是webpack webpack: 是前端项目工程化的具体解决方案。 主要功能&#xff1a;它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览…

ChatGPT智能聊天系统源码v2.7.6全开源Vue前后端+后端PHP

测试环境:Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6,根目录public,伪静态thinkPHP,开启ssl证书 具有文章改写、广告营销文案、编程助手、办公达人、知心好友、家庭助手、出行助手、社交平台内容、视频脚本创作、AI绘画、思维导图等功能 ai通道:文心一言、MiniMax、智…

uni-app里面如何使用图标

目录 一、导入 1.在官方&#xff08;iconfont-阿里巴巴矢量图标库&#xff09;选择自己想要的图标&#xff0c;加入购物车 2. 在点击购物车下载代码 3.解压文件夹 并更改名字 4.将文件夹&#xff08;iconfont&#xff09;整个放到项目中的static中 5.修改iconfont.css文件…

鸿蒙实战开发-如何通过拖动滑块调节应用内字体大小

介绍 本篇Codelab将介绍如何使用基础组件Slider&#xff0c;通过拖动滑块调节应用内字体大小。要求完成以下功能&#xff1a; 实现两个页面的UX&#xff1a;主页面和字体大小调节页面。拖动滑块改变字体大小系数&#xff0c;列表页和调节页面字体大小同步变化。往右拖动滑块字…