# finalProject **Repository Path**: lxh_package/final-project ## Basic Information - **Project Name**: finalProject - **Description**: Nwpu 2025毕业设计 基于深度度量学习的医学图像文本匹配 - **Primary Language**: Python - **License**: ISC - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-30 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: Computer-vision, Medical-report, Python, transformers, PyTorch ## README # FinalProject: DML for contrast languages && images pre-trainng ##### 请注意,这里没有图片,想要看图片得点近那个文件夹里面 #### 介绍 Lxh in Nwpu 参考代码仓库地址 https://github.com/RyanWangZf/MedCLIP 参考论文地址 https://aclanthology.org/2022.emnlp-main.256.pdf 如下为整体架构图: ![alt text](README/image.png) ![alt text](README/image-1.png) CLIP:对比语言图像预训练学习 听说这还是个不错学校的不错论文,结果因为transformers 版本问题根本跑不动 ![alt text](README/image-2.png) 刚看了下论文对应的答辩,内容确实挺具体的,就是没告诉我们具体该怎么实现 #### 从理论角度分析实现方法 ##### 1.DML 相似性算法问题 : 深度度量学习 DML 实现对图像自身训练集的一种配对, 需要同时处理图像和文本之间的相似度关联和差别,形成一个label 原来的办法是直接进行匹配, 根绝自身标注的label进行预训练和训练,但是这样显然效果不佳(凡是拿数据直接训练都会出大问题) 原来的论文的解法是:先预训练,后微调,根据加入的内容,有了更多是数据,实现模型的进一步训练 我的优点:在一开始就直接对相似度进行整合,可能会引入一种打分机制吧,如果最开始的两者能进行配对,那么他们相近的样本之间 也能进行相应的打分机制处理 最主要就是这个相似度的设计 CLIP:对比学习,感觉技术也不是很高,而且挺多还是抄的 ##### 2.CVAE 变分自编码器 用图像作为核心指标--- 充分挖掘图像信息,而不是简单做对文本的匹配 #### 软件架构 软件架构说明,目前只开放了本地测试版,不开放API和在线测试版 #### 安装教程 1. 本项目基于EMNLP论文 MedClip进行进一步开发与优化,如果设计版权 因素,这里不会商用 #### 使用说明 1. 见pip的requirements.txt #### 参与贡献 请联系 lixuhui123@mail.nwpu.edu.cn #### 特技 1. 主要使用python的transformers实现,暂不支持其他语言 需要忽略 SSL证书的要求 我是真没想到真的会有输出 居然是真的跑起来了,虽然我不太懂里面的流程,也并不清楚是如何实现的,但是总之先庆祝一下,后面没的工作留给后面没 等训练到了一定阶段,开始把这个项目加入到相关的 模型的准确率低的离谱,后续再训练吧,应该是方法选用不对,但是先push上去,作为最初版 这是以前的程序员偷懒不写完代码,等着我们自己报错吗,真逆天 #### 最优传输理论 ![alt text](README/image-8.png) 这里可以稍微写一下最优传输理论的使用方法: 让相同类型的更加接近: 为了尽可能缩小成本,让点阵信息尽快的对应 min(m1,m2) if(m1 - m2 << e) ![alt text](README/image-9.png) 不过这里只能看用最优传输理论里面的哪一个,每个都试一下效果;后面再进行理论分析 虽然我觉得正负样本进行对比学习效果可能更好 但是对数据集的要求比较高,得能区分有病还是没病,这样更能关注到出现问题的点,然后对所有样本进行一次扫描判断 可能我觉得对比学习还是需要使用,不能学不会 数据集(训练)构成:图片信息 只针对某一领域疾病的数据集,已经对应的疾病(形成pair)正样本其实只有一个就行? 数据结果:根据图片,能匹配到对应的疾病(或者直接对文本进行一个output) 其实对文本进行一个存储就没问题了,最后给GPT一个prompt,让他输出完整的分析报告 我们的方法优势可能甚至不在这里: 假象认为:我能排除掉所有无关的干扰因素,并对其中几个特殊的关键因素进行 DML + OTT 感觉用了这个方法就没有必要去对比学习了 对笔学习数据要求太高了,这个可能学到更多的东西 差异性对比很高,但是如果我图像旋转了一下,或者深浅度不一样了,或者位置发生了偏移,这样判断的效果很差,但是DML可能可以解决这一部分的问题; 关键因素可以提取成几个list,再拿list和文本label去做训练 但是文本的label需要足够的全面 两个向量之间的训练:CVAE ![alt text](README/image-10.png) 这里最优传输理论的理解: 找到不同类型图片的embeddings,让测算相似性矩阵的算法差异化更大,容易区分,这样可以理解为图像中的公共部分,比如由于位置放置等因素导致的偏差被缩小,反而可以对应到(这描述感觉我的效果可能更好)。 差异化因素,那些因为放大,缩小,旋转,深浅等 抛除之后如果还能发现异常,则说明这个样本和其他的样本有很大的区别,让效果实现增强。 但是这里最后的指标,我认为应该分情况讨论,应该是在相同空间里面的微小差异化描述: 提供的prompt: 给你提供了图像的embeddings和文本的embeddings,以及他们的配对关系在同一个数据集中,现在需要训练这组数据实现两组数据的相关联性,达到最终根据图像的embeddings输出对应的文本信息,请基于一个条件变分自编码器实现CVAE,数据暂时没有,请你暂时按照一定规则生成相应的数据进行训练和测试 ![alt text](README/image-11.png) 很好,果然有时候重写的效果更好 终于代码全删了就跑起来了,先不管对不对,而且数据量很小 ![alt text](README/image-12.png) 很兴奋,但是这个中间的逻辑不太对 注意:这篇文档到此不再维护,最新内容请见README文件夹中的文档 清华源镜像: -i https://pypi.tuna.tsinghua.edu.cn/simple 来了一个大更新,以后千万别把一个不知名的生成的模型文件给推上去了,否则不知道会痛苦多久,非常舍不得我原来的仓库,但是还是得搬迁 另外,跑我的模型的时候因为要用GPT-2,得开梯子,不然就会寄了 继续回到这个分支继续创作,自从上次的PAC操作已经好久了,本人最近鸽了一段时间,现在正在抽时间弥补回来,当然躺在家里写代码还是最舒服的 最近加入transformers机制对上述模型重新传输了一遍,因为模型参数很大,导致训练代价很高,所以不敢多次训练,只好保留在这里 ![alt text](image.png) ![alt text](image-1.png)