基于CNN-RNN的影像报告生成

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。

《------往期经典推荐------》

项目名称

1.【PaddleNLP的FAQ问答机器人】

2.【卫星图像道路检测DeepLabV3Plus模型】

3.【GAN模型实现二次元头像生成】

4.【CNN模型实现mnist手写数字识别】

5.【fasterRCNN模型实现飞机类目标检测】

6.【CNN-LSTM住宅用电量预测】

7.【VGG16模型实现新冠肺炎图片多分类】

8.【AlexNet模型实现鸟类识别】

9.【DIN模型实现推荐算法】

10.【FiBiNET模型实现推荐算法】

11.【钢板表面缺陷检测基于HRNET模型】

...

1. 项目简介

本项目旨在通过深度学习模型自动生成医疗影像的文本描述,特别是针对X光影像的诊断报告编写。该项目基于当前热门的Encoder-Decoder框架,将卷积神经网络(CNN)与循环神经网络(RNN)结合,充分发挥两者在图像特征提取与序列生成方面的优势。在项目中,使用ResNet-101模型从图像中提取特征,再将这些特征输入长短期记忆网络(LSTM),以生成适用于医学诊断的文本描述。医学影像自动报告生成在医疗行业中具有重要应用价值,通过将深度学习模型应用于影像分析,帮助医生减少误诊并节省时间,支持资深医生专注于病人的治疗,尤其适合用于具有重复性工作的影像科。在数据集选择上,本项目使用了印第安纳大学胸部X光图像数据集,专注于FINDINGS部分,项目的文本生成模型将进一步增强医疗图像领域中自动化辅助诊断的能力。

2.技术创新点摘要

首先,项目利用了基于ImageNet预训练的ResNet-101模型进行医学影像特征提取,并且在去除ResNet的全连接层后,通过恒等映射(identity mapping)进一步优化特征的提取与保持,避免了在传输至LSTM前的特征信息丢失。这一设计有效地保留了图像的全局特征,有助于后续文本生成阶段获取更加丰富的上下文信息。此外,使用ResNet-101预训练模型不仅提高了模型的泛化能力,也通过迁移学习减少了对大规模医疗数据标注的需求,这在医学影像报告生成的任务中尤其实用。

其次,项目在数据处理阶段通过解析XML格式的医疗影像报告,自动生成包含影像描述的CSV文件,并对描述文本进行清洗和标准化处理。这样的文本预处理步骤显著提升了数据质量,并在后续的字典构建中使用了频率统计方法。该方法剔除仅出现一次的低频单词,从而使模型的词汇表更为精简且高效,减少稀疏词汇对模型训练的干扰。这一过程通过对描述词汇的频率排序与筛选,大幅优化了文本生成模型的训练效果。

最后,在文本生成方面,项目构建了一个高效的词汇表字典,包括了特别设计的符号(如、、、),用于处理文本的序列化表示。这一设计不仅确保了文本生成的连续性,还通过特殊符号的引入提升了模型在应对不完整或未知文本片段时的表现。总体而言,项目创新性地结合了图像特征提取的预训练迁移学习、低频词过滤的词汇优化及符号标记等技术,形成了针对医疗影像描述生成任务的高效端到端模型。

3. 数据集与预处理

本项目使用的数据集为印第安纳大学胸部X射线集合(IU X射线),该数据集包括7470对胸部X射线图像及其相应的诊断报告。每张图像对应的报告包含多个部分(如印象、发现等),项目仅选择FINDINGS部分用于生成影像描述文本。该数据集图像质量高,内容涉及广泛的医学诊断标签,平均每张图像包含2.2个标签和约5.7个句子,这使得模型能基于丰富的语义特征生成专业的影像描述。

在数据预处理方面,项目首先对原始数据进行解压和解析,将XML格式的报告文本转化为结构化的CSV文件,并提取与影像对应的FINDINGS内容。为了确保输入数据质量,文本数据经过清洗,去除了无意义的标点和符号,并统一为小写。图像数据则经过一系列预处理操作,包括归一化和尺寸调整,以便于输入深度学习模型。特别地,项目通过ImageNet预训练的ResNet-101模型进行图像特征提取,删除模型最后的全连接层,将图像转换为2048维特征向量,便于后续的文本生成。

此外,项目在文本预处理过程中建立了词汇表,通过词频统计剔除仅出现一次的低频词,确保模型的词汇表精简且高效。这一步骤有助于减少数据稀疏性,提高模型训练效率并增强生成文本的准确性。整体预处理流程确保了图像和文本输入的标准化,为模型的训练与推理奠定了高质量的数据基础。

4. 模型架构

  1. 模型结构的逻辑

本项目的模型架构基于ResNet-101和LSTM的组合,旨在从医学影像中生成描述性文本。首先,ResNet-101网络(去除了最后的全连接层)被用于提取X光影像的特征,产生一个2048维的特征向量,并通过一个线性层映射到嵌入维度。此特征向量作为序列生成的初始输入,用于提供影像的全局上下文信息。LSTM网络是文本生成的核心部分,使用多层架构来增强模型的记忆和生成能力。LSTM的输入包含影像特征和词汇表嵌入(embedding),词汇表通过词嵌入层(Embedding Layer)实现,生成的序列依次预测单词,最终通过全连接层映射至词汇空间。

模型还配备了生成模块,通过"束搜索"(Beam Search)算法优化生成文本。束搜索算法可以在预测过程中维持多个可能的序列路径,从而生成质量更高的描述文本,避免了简单贪心搜索可能带来的语句质量下降。

  1. 模型的整体训练流程和评估指标

模型训练流程分为数据预处理、特征提取、序列生成及评估几个主要步骤:

  • 数据加载与划分:数据按80:20的比例划分为训练集和验证集,所有图像特征均通过ResNet-101提取并存储。文本数据经过词典映射处理,生成序列化输入,设定了和标记以保证文本生成的完整性。
  • 训练过程:训练时,影像特征向量通过嵌入层与文本序列一起输入LSTM网络,生成的预测序列在输出层进行词汇映射。目标序列标签与预测结果进行交叉熵损失计算,从而优化模型权重。整个训练通过批次加载器(DataLoader)以批量输入方式实现,每个批次均采用填充和截断策略(padding/truncating)来处理不等长的序列。
  • 评估指标:在验证过程中,项目采用常用的文本生成评价指标(如BLEU得分)对生成的描述文本进行评估,以衡量生成文本与真实报告的相似性。BLEU得分的高低直接反映了模型在影像描述生成中的准确性和流畅性。此外,还通过观察生成文本的词汇丰富度、句子结构等方面的表现,来评估模型的实际生成效果。

5. 核心代码详细讲解

1) 特征工程:ResNet特征提取与保存

暂时无法在飞书文档外展示此内容

  • model = resnet101(pretrained=True):加载ImageNet上预训练的ResNet-101模型,用于医学影像特征提取。
  • del model.fc:移除ResNet最后的全连接层,避免对图像特征进行任何进一步的分类或降维,以保持特征信息的完整性。
  • model.fc = lambda x: x:将全连接层替换为恒等映射,使得ResNet的输出直接成为2048维度的特征向量。
  • h5py.File(...):创建一个用于保存图像特征的h5文件,使得特征存储便于后续调用。

2) 数据读取与预处理:处理XML报告文本生成CSV

暂时无法在飞书文档外展示此内容

  • xml2csv(path):解析XML格式的医疗报告文件,提取图像路径和对应的报告FINDINGS部分,生成结构化的CSV文件。
  • glob.glob(path + '/*.xml'):遍历指定路径下所有XML文件,读取医学影像的描述。
  • itemlists = root.getElementsByTagName('parentImage'):从XML结构中找到每个影像的路径信息,结合后续的文本字段保存为CSV格式。

3) 模型架构:图像到文本生成模型定义

暂时无法在飞书文档外展示此内容

  • self.fc = paddle.nn.Linear(2048, embedding_dim):将ResNet提取的2048维特征映射到词嵌入空间,便于与词汇嵌入一同输入LSTM网络。
  • self.embedding = paddle.nn.Embedding(vocab_size, embedding_dim):定义词嵌入层,将词汇表映射到高维空间,增强序列生成的表达能力。
  • self.rnn = paddle.nn.LSTM(...):LSTM层构建,用于序列化特征输入,生成描述文本。

4) 训练与评估:束搜索算法生成文本

暂时无法在飞书文档外展示此内容

  • beam_search(...):采用束搜索(Beam Search)算法生成文本描述。此算法可以维持多个候选序列,从中选出最佳描述。
  • TopN(self.beam_size):维护束搜索的前beam_size个候选描述,以确保候选序列的质量。
  • get_topk_words(...):返回最高概率的k个词,用于扩展候选序列。

6. 模型优缺点评价

优点
  1. 特征提取精准:通过预训练的ResNet-101模型获取高质量图像特征,保留了丰富的医学影像细节,增强了对影像细节的描述能力。
  2. 结合LSTM序列生成:模型结合了LSTM网络,在生成影像描述时利用上下文关系,提高了生成文本的连贯性与医学用词准确性。
  3. 束搜索算法优化:采用束搜索在生成文本过程中进行优化,提升生成描述的流畅性和准确度。
缺点
  1. 依赖大规模标注数据:模型对标注数据依赖性较高,而医疗影像数据标注成本昂贵,数据不足可能导致模型生成的描述不够准确。
  2. 生成速度相对较慢:束搜索虽然提升了生成质量,但在大束宽度下导致生成速度变慢,可能不适合实时应用。
  3. 缺少多模态增强:仅基于影像特征生成文本,未能结合其他患者信息(如病史、检查结果等),限制了生成文本的全面性。
改进方向
  1. 数据增强与迁移学习:可引入对图像的更丰富的增强方法,如随机裁剪、旋转等,增加模型的泛化能力。还可以尝试其他医学影像数据集的迁移学习,丰富模型的特征表示。
  2. 超参数调整:可调节LSTM层数、隐层维度或束搜索宽度,以在生成质量与速度之间取得平衡。
  3. 多模态融合:将患者的文本数据(如电子病历)与影像数据结合,构建多模态模型,以生成更加个性化、细致的描述。

全部项目数据集、代码、教程点击下方名片

相关推荐
IT古董31 分钟前
【漫话机器学习系列】017.大O算法(Big-O Notation)
人工智能·机器学习
凯哥是个大帅比31 分钟前
人工智能ACA(五)--深度学习基础
人工智能·深度学习
m0_748232921 小时前
DALL-M:基于大语言模型的上下文感知临床数据增强方法 ,补充
人工智能·语言模型·自然语言处理
szxinmai主板定制专家1 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
海棠AI实验室1 小时前
AI的进阶之路:从机器学习到深度学习的演变(三)
人工智能·深度学习·机器学习
机器懒得学习1 小时前
基于YOLOv5的智能水域监测系统:从目标检测到自动报告生成
人工智能·yolo·目标检测
QQ同步助手1 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
AIGC大时代1 小时前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc
流浪的小新2 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习