医学诊断报告生成论文综述

article/2025/8/19 18:11:35

摘要

由Image/Video Captioning、VQA等图像理解任务的不断往前发展,以及目前智能医疗的兴起,有些学者自然而然地想到图像理解是否可以应用到医学领域,因此根据CT、核磁等图像自动生成诊断报告(病例),这个任务被提了出来。

2018年是医学报告生成任务的兴起年,截止到目前,总共有4篇医学诊断报告生成的文章被发表在各个领域的顶级会议上。

美国NIH吕乐(现在好像去英伟达了)课题组的王潇崧[1]等学者在今年的顶会CVPR上投了一篇文章TieNet Text-Image Embedding Network for Common Thorax Disease Classification and Reporting in Chest X-rays

美国CMU的Baoyu Jing[2]等学者(智能医疗公司Petuum)在今年的NLP顶级会议ACL上发表了一篇文章On the Automatic Generation of Medical Imaging Reports

同样由美国CMU的Christy Y. Li[3]等学者在今年NIPS上发表了一篇文章Hybrid Retrieval-Generation Reinforced Agent for Medical Image Report Generation。他还在2019年AAAI上发表了一篇文章Knowledge-driven Encode, Retrieve, Paraphrase for Medical Image Report Generation

美国宾夕法尼亚大学的Yuan Xue[4]等学者在今年医学顶会MICCAI上发表了一篇文章Multimodal Recurrent Model with Attention for Automated Radiology Report Generation

正文

下面介绍一下各个论文的模型,主要是基于编码器-解码器结构。

1. TieNet[1]

Xiaosong Wangl et al,TieNet Text-Image Embedding Network for Common Thorax Disease Classification and Reporting in Chest X-rays, CVPR 2018

模型

在这里插入图片描述

这篇论文的任务是对胸腔常见疾病的分类和诊断报告的生成,实际上主要是多标签分类。这篇论文的框架既可以当作由报告预测常见疾病(文本分类)、由CT图像预测常见疾病(图像分类)以及使用报告和图像预测疾病(Text-Image Embedding);而且还可以用Class Activations辅助生成Saliency Map用来检测出疾病的位置,以及根据CT图像生成诊断报告。因此,这篇论文可以看作是多标签分类+目标检测+生成医学报告的多任务模型,当然核心是分类任务预测疾病标签。

论文框架是根据输入的CT图像和报告文本,先用pretrain好的CNN(如ResNet)提取图像特征,然后经过一个额外的Transition Layer得到 D ∗ D ∗ C D*D*C DDC的feature maps X X X。接着采用Attention机制经过RNN对报告文本编码得到text embedding X ‾ A E T E \overline{X}_{AETE} XAETE; 然后采用Saliency Weighted Global Average Pooling得到蕴含文本信息的image embedding X ^ S W − G A P \hat{X}_{SW-GAP} X^SWGAP。最后根据image和text embeddin预测疾病的标签。

论文模型的损失函数是多标签分类的交叉熵损失和RNN的生成报告的交叉熵损失。

实验

在这里插入图片描述
根据AUC实验结果,发现只基于报告文本预测疾病标签( R R R)的结果0 0.976 0.976 0.976比只基于图像预测疾病标签( I I I)的结果 0.745 0.745 0.745高很多。同时基于图像和报告文本( I + R I+R I+R)的结果 0.989 0.989 0.989最高,但是也仅仅比只基于图像的高出1个点。因此可以发现文本分类比图像分类任务要简单很多,至少在上面Chest X-ray14、Hand-labeled和OpenI这几个胸透X光片数据集上是这样。

2.Automatic Report Generation[2]

Baoyu Jing et al, On the Automatic Generation of Medical Imaging Reports, ACL 2018

模型

在这里插入图片描述

这篇论文任务主要是由医学图像自动生成诊断报告,同时还可以预测标签Tags(这些Tags由医学报告文本得到,并不是简单的疾病标签,可以看作是医学报告的关键词)。论文任务可以看作文本生成+多标签分类的多任务模型,核心是生成式模型。

论文框架是根据输入的医学图像,先用在ImageNet上pretrain好的CNN(如VGG19、ResNet等)提取出图像特征(Visual Features),然后再经过一个多标签分类网络(MLC)预测出文本标签(Tags),然后选取概率最大前M个标签,根据Tag Vocabulary得到M个标签对应的word embedding 向量即语义特征(Semantic Features);接着对图像特征和语义特征使用Attention模型和Sentence LSTM得到S个context vector(这个向量同时包含图像信息和语义信息)和由Stop Control得到的控制变量(判断是否生成这句诊断报告);对每个context vector,使用Topic Genetor得到topic vector,再用Word LSTM对这个topic进行解码,生成一句诊断报告。遍历S个context vector即会生成S句诊断报告,由于Stop Control的作用,即最多生成S句。

论文框架是一个编码器-解码器结构,对生成诊断报告来说,简单理解是由CNN和Sentence LSTM编码得到若干个中间表征(如上述的topic vector),再有Word LSTM解码这个表征得到若干句诊断报告,即一个层次化的LSTM(Hierarchical LSTM)框架。由于论文框架是个多任务模型,加了预测标签的多标签网络(MLC)和判断生成句子数量的控制(Stop Control),因此看上去会复杂一些。

论文模型的损失函数是多标签分类的交叉熵损失、预测生成诊断报告句子数量的二分类的交叉熵损失和RNN生成诊断报告的交叉熵损失以及正则化损失。

实验

在这里插入图片描述
论文数据集是IU X-Ray胸透X光片数据集和PEIR Gross数据集。注意的是IU X-Ray数据集是(图像-诊断报告)形式,诊断报告有若干句组成,而PEIR Gross的诊断报告只有一句。实验评测指标是机器翻译领域和Image Caption领域常用的BLEU、METEOR、ROUGE、CIDER等评测标准。由实验结果来看,论文方法在IU X-Ray比Image Caption经典的模型结果高很多;但是在PEIR Gross上比Image Caption经典的模型高一点点。因为Image Caption任务的数据形式(图像-描述)中描述只有一句,且比较短。

3.Hybrid Retrieval-Generation Reinforced Agent[3]

Christy Y. Li et al,Hybrid Retrieval-Generation Reinforced Agent for Medical Image Report Generation,NIPS 2018

模型

在这里插入图片描述

这篇论文的主要任务是有医学图像生成诊断报告,采用了检索和强化学习混合的方法。

论文框架是根据输入的医学图像,先用pretrian好的CNN(如DenseNet、VGG19等)提取出图像特征(Visual Features),然后经过一个图像编码器(Image Encoder)得到context vector;接着用句子解码器(Sentence Decoder)对context vector进行解码得到若干个topic(代表了句子的信息);对于每个topic可以用模板库(Template Database)或者生成模式(Generation Module)进行强化学习,得到一句诊断报告。

论文框架大体上也是一种层次化RNN(Hierarchical RNN)结构,只是在解码topic生成句子的时候用强化学习选择了是用模板库检索还是用RNN生成。

实验

在这里插入图片描述
论文数据集都是胸透X光片数据集,只是CX-CHR是中文胸透X光片、IU X-Ray是英文。从实验结果来看,在两个数据集上都比Image Caption经典模型结果高很多点。但是在IU X-Ray数据集上,实验结果比上一篇论文Baoyu Jing[2]的低很多。值得一提的是,这两篇论文都是CMU课题组和Petuum公司的。

4.Multimodal Recurrent Model[4]

Yuan Xue et at,Multimodal Recurrent Model with Attention for Automated Radiology Report Generation,MICCAI 2018

模型

在这里插入图片描述

这篇论文任务是由医学图像自动生成诊断报告,采用了递归的Attention模型。

论文框架是对于输入的医学图像,使用预训练好的CNN(图像编码器Image Encoder,如ResNet等)得到图像特征(Visual Features)。接着使用RNN(语句解码器Sentence Decoder)得到诊断报告。详细流程是使用CNN的较后的全连接层的features由RNN(Sentence Decoder)生成第一句诊断报告;使用CNN最后一层卷积层的feature maps(当作医学图像各个区域的特征)和语句编码器(Sentence Encoder)编码器上一句诊断报告得到的语义特征(Semantic Features),两者使用Attention机制得到 v a t t v_{att} vatt,再有RNN(Sentence Decoder)生成这一句诊断报告。

论文框架直观上理解就是医生第一眼观察了检查图像,得到了一句总体性描述诊断(如"No acute disease.");接着观察了图像中的心脏部位,根据上一句的总体描述,得到了第二句诊断(如"The heart is normal in size.");然后观察了图像中的肺部部位,根据上一句的心脏描述,得到了第三句诊断(如"The lungs are clear.");… …就这样一句一句,一份诊断报告被医生写了出来,当然论文这个逻辑可能并不十分贴切医生现实中下诊断的推理。

实验

在这里插入图片描述
论文实验结果也是在IU X-Ray这个胸透X光片数据集上,实验结果比Image Caption经典模型Vanilla CNN-RNN高很多,比层次化RNN模型Hierarchical generation差不多。

5.KERP[5]

Christy Y. Li et al,Knowledge-driven Encode, Retrieve, Paraphrase for Medical Image Report Generation,AAAI 2019

模型

在这里插入图片描述
这篇论文使用NLP的知识图谱技术做医学报告生成,鉴于博主对知识图谱不太了解,因此不做细说。

实验

在这里插入图片描述
这篇论文比较了Jing Baoyu[2]的方法CoAtt,是这篇论文自己复现的,BLEU-4结果是0.154;这篇论文还比较了作者自己另一篇论文HRGR-Agent[3]。同时比较了Captioning的CNN-RNN方法等。

总结

2018年是智能医疗的兴起年,很多智能医疗公司成立。国内比较出名的如腾讯觅影、阿里健康等,他们在一些常见疾病检测上取得了很大成功(如肺结节检测、皮肤病分割等)。但是在自动生成诊断报告上国内学者研究得较少。

对于一个智能、智慧的检测疾病并且可以下诊断的医疗系统。首先,肯定要根据检查的图像(CT、核磁等)检测出病变的位置,这是近几年很多医学影像分析的学者在做的事情,例如疾病检测(Detection)、疾病分割(Segmentation),而且进展很快。其次,这个医疗系统可以像医生一样给出诊断报告,例如今年陆陆续续有学者在做的这个医学诊断报告生成的研究。

对于检查出来的图像,如果能检测出病变位置并且可以给出诊断病例,这样是具有很大实用价值的,而且非常有意义。

目前来看,这个任务还存在许多问题

  1. 数据非常缺失,以上几片论文全是在IU X-Ray这个小规模数据集,而且现在缺少带bounding box的图像和诊断报告。
  2. 数据的不确定性,医生下的诊断会有正常(没有疾病)的描述和异常(存在疾病)的描述语句,对于正常的描述,不同的医生做诊断可能会有相似的风格;对于异常的描述,不同的医生做诊断差异很大。
  3. 诊断报告的语句次序其实没有太大关系的,举例来说,医生先说心脏正常或异常,再说肺部正常或异常,对报告的整体语义是没有太大影响的。
  4. 评测指标的不适用性,目前采用的评测指标是Machine Translation或Captioning任务的评测指标,如BLEU、CIDEr,其实这些评测指标是不符合这个任务的,原因比如前面第3条所说的。
  5. 已知论文结果的不确定性,目前的论文都没有release代码,而且它们相互之间实验结果差距很大;其次,一些论文只是单纯的用比较火的技术迁移到这个任务,含蓄的说可能或许大概是没有太大意义的,但是至少吸引了一些研究者做这个任务。

注:图像生成自然语言的论文-https://github.com/wangleihitcs/Papers
注:医学报告生成项目源码

参考文献

[1]Wang X, Peng Y, Lu L, et al. Tienet: Text-image embedding network for common thorax disease classification and reporting in chest x-rays[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 9049-9058.
[2]Jing B, Xie P, Xing E. On the automatic generation of medical imaging reports[J]. arXiv preprint arXiv:1711.08195, 2017.
[3]Li C Y, Liang X, Hu Z, et al. Hybrid Retrieval-Generation Reinforced Agent for Medical Image Report Generation[J]. arXiv preprint arXiv:1805.08298, 2018.
[4]Xue Y, Xu T, Long L R, et al. Multimodal Recurrent Model with Attention for Automated Radiology Report Generation[C]//International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Cham, 2018: 457-466.
[5]Li C Y, Liang X, Hu Z, et al. Knowledge-driven Encode, Retrieve, Paraphrase for Medical Image Report Generation[J]. arXiv preprint arXiv:1903.10122, 2019.


http://chatgpt.dhexx.cn/article/iVhUrIvs.shtml

相关文章

目标检测论文综述(三)One-Stage(YOLO系列)

一、CNN based One-Stage Detectors 所有论文综述均保持如下格式: 1、一页PPT内容总结一篇论文 2、标题格式一致:出处 年份 《标题》 3、内容格式一致:针对XX问题;提出了XX方法;本文证明了XXX 4、把握核心创新点&…

【半监督论文综述】A survey on semi-supervised learning

下载 半监督学习 1. 半监督学习1.1 三个假设1.1.1 平滑假设1.1.2 低密度假设1.1.3 流形假设1.1.4 聚类假设 1.2. 评估半监督学习算法 2. 半监督学习算法分类2.1 Inductive methods2.1.1. Wrapper methods2.1.1.1 Self-training2.1.1.2 Co-Training2.1.1.2.1 Multi-view co-tra…

综述类论文怎么写?

综述类论文的关键点在于必须要有一个明确有效的叙述结构。严格来说,这类文章并没有固定的结构安排要求,但一个科学有效的叙述结构不仅会让作者的表达逻辑更为清晰和条理,还能帮助读者减少阅读困难,提高阅读效率,对论述…

视频理解论文综述

A Comprehensive Study of Deep Video Action Recognition TSN网络是一个很经典的网络,如果不知道的自己查... 基于TSN的改进论文分了三大类: 其他资料: Temporal Segment Network TSN提出的背景是当时业界做动作识别都是用 Two-stream …

毕业论文第一步--如何快速写出让人眼前一亮的文献综述论文(citspace)

一、文献综述是什么? 文献综述简称综述,是对某一领域,某一专业或某一方面的课题、问题或研究专题搜集大量相关资料,然后通过阅读、分析、提炼、整理当前课题、问题或研究专题的最新进展、学术见解或建议,对其做出综合性…

论文综述是写什么?

各位客官,走过路过不要错过,现在的你可能是一名刚步入大学的论文新手,也可能是一名刚上大四的学生,正准备开始写毕业论文。那么这篇文章我来给大家讲讲论文的综述是究竟是要写什么,为什么说文献综述奠定了一篇论文的优…

Matlab初始化太慢及相应的设置方法

前几天装的MATLAB2017,但是初始化太慢的问题一直没解决,如下: 等4-5分钟才就绪,真的很浪费时间,然后百度别人的解决方案,看到网上很多是文字描述,实践的截图都没几个(本人喜欢图文解…

matlab四维插值程序,matlab练习程序(向量插值)

有两个向量,我们想从起始向量平滑的过度到终止向量,那么中间的向量就可以通过插值的方式得到。 这在图形学中图形旋转或者机器人中物体姿态旋转都可以用到。 有三种方法:Lerp,NLerp和SLerp。 Lerp为线性插值,公式如下: NLerp为线性插值后归一化,公式如下: SLerp为球面插…

MATLAB程序设计

文章目录 1 程序基础2 数据类型和运算2.1 常量和变量2.2 数值数据2.3 字符数据2.4 逻辑数据类型2.5 日期和时间2.6 单元数组和结构体 3 数组与矩阵3.1创建数组3.2 数组运算3.3 数组处理函数3.3.1 zero/ones函数3.3.2 size/length函数3.3.3 max/min函数3.3.4 isempty函数3.3.5 u…

matlab-m脚本调用simulink无法运行的原因(本身设置了初始化函数

matlab-m脚本调用simulink无法运行的原因(本身设置了初始化函数) 最近从MATLAB中调用simulink模块老是不成功一直提示如下错误: 该错误的意思是,在运行PosControl这个模块之前,它本身还会运行自己设置的初始化函数In…

Isight与MATLAB联合仿真时出现:无法定位或初始化类(unsupported major minor version 52.0)

文章目录 一、报错页面二、解决方法三、仿真示例四、运行注意事项 一、报错页面 Isight 调用MATLAB的时候,MATLAB页面报错,出现如下页面: 二、解决方法 解决方法如下: 双击malab组件 1.选择options 2.Drive Matlab with Jav…

VS2019调用Matlab2019b生成的dll时初始化异常

VS2019调用matlab动态链接库遇到的问题 在Visual Studio中使用C调用Matlab程序VS与MATLAB版本选择VS与MATLAB混编的环境配置初始化异常的解决0xc0000005处理Debug错误:xsd_binder::MalformedDocumentError 在Visual Studio中使用C调用Matlab程序 我目前在写一个用V…

MATLAB一直显示“正忙”或“初始化”

解决方案 1 MATLAB 在启动时,一直停留在“正在初始化”的状态,有可能是因为 MATLAB 一直在找着本机的许可证。 有可能是设置了 LM_LICENSE_FILE 的环境变量。这个变量告诉 MATLAB 或者其他应用程序去哪里查找许可证文件。如果您有一个网络许可证&#xf…

C++和MATLAB混合编程——初始化mwArray失败解决方法!

首先,按这样设置, [填坑]VS2017与MATLAB2016b混合编程(生成dll方式)_清凉简装的博客-CSDN博客_matlab生成dllMATLAB 生成 dll 前的工作1、配置MATLAB环境控制面板->所有控制面板项->系统->高级系统设置->高级->环…

MATLAB打开后一直在初始化,或者初始化很慢问题

问题描述:遇到MATLAB启动较慢,进入主界面后,一直停留在“正在初始化”的状态。浪费很多时间。这种问题大多是因为MATLAB软件在启动时寻找本机的许可证或者是设置了 LM_LICENSE_FILE 的环境变量。这个变量告诉 MATLAB 或者其他应用程序去哪里查…

解决MATLAB一直初始化,加速MATLAB

之前,在做课设时,遇到MATLAB启动较慢,进入主界面后,一直停留在“正在初始化”的状态。浪费很多时间。逛了逛MATLAB中文社区,发现这种问题大多是因为MATLAB软件在启动时寻找本机的许可证或者是设置了 LM_LICENSE_FILE 的…

QT和matlab混合编程以及maltab程序化初始化失败

一. 内容简介 需要用QT调用matlab代码完成计算,并获取计算结果。 二. 软件环境 2.1QT 5.14.1 新版QT6.4,,6.5在线安装经常失败,而5.9版本又无法编译64位程序,所以就采用5.14.1这个用的比较多也比较稳定的一个版本。 QT编译器…

Matlab R2018a初始化问题

前几天装的MATLAB2018(我装在C盘,用的是在线安装,自己下的License破解了),但是初始化问题一直没解决,下面显示我遇到的问题: 等4-5分钟才就绪,真的很浪费时间,然后百度别…

Matlab一直初始化进不去程序之一种解决办法

很多解决办法不行的时候你可以试试在设置里把区域改成中国 究其原因可能是因为破解版的是中国的,然后在联网使用matlab时IP认证不通过

matlab初始化界面卡住,Matlab初始化initializing极慢解决方法

Matlab初始化initializing极慢解决方法 Matlab升级以后,功能的确丰富了好多,有些函数也更加人性话了,好多bug也没有了。但是可恼的是,这个该死的家伙却一天比一天肥,MATLAB7.6a居然达到了3.76G,启动和打开…