具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR(Optical Character Recognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D(3Dimension,三维)技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
本申请实施例提供的技术方案,涉及人工智能的机器学习和计算机视觉等技术,具体通过如下实施例进行介绍说明。
请参考图1,其示出了本申请一个实施例提供的方案实施环境的示意图。该方案实施环境可以包括模型训练设备10和模型使用设备20。
模型训练设备10可以是诸如电脑、服务器等计算机设备,用于对医学图像报告生成模型进行训练。在本申请实施例中,医学图像报告生成模型是用于基于医学图像,自动化生成相应的图像报告的机器学习模型,模型训练设备10可以采用机器学习的方式对该医学图像报告生成模型进行训练,以使得其具备较好的医学图像报告自动化生成性能。
训练完成的医学图像报告生成模型可部署在模型使用设备20中使用。模型使用设备20可以是诸如手机、平板电脑、PC(Personal Computer,个人计算机)、智能电视、多媒体播放设备、医疗设备等终端设备,也可以是服务器。在需要生成医学图像报告时,模型使用设备20可以通过医学图像报告生成模型自动化地生成医学图像报告。
本申请提供的医学图像报告生成模型,能够自动化地生成自然语言形式的文本报告。该自动化生成的医学图像报告可以辅助医生进行病情诊断,且减少医生工作量,有助于提升医学图像报告的生成效率。
在本申请实施例中,医学图像报告生成模型包括视觉特征提取网络、编码网络和解码网络,有关各网络的介绍说明可参见下文实施例。
在本申请实施例中,对医学图像的种类不作限定,如其可以是X光图像、CT(Computed Tomography,电子计算机断层扫描)图像、PET(Positron Emission ComputedTomography,正电子发射型计算机断层显像)图像、磁共振图像(Magnetic ResonanceImaging,MRI)、医学超声波图像、医学显微镜图像等等。并且,在本申请实施例中,对医学图像所针对的人体部位也不作限定,包括但不限于腹部、内脏、骨骼、头部、血管等等。当然,在一些其他实施例中,医学图像也可以是针对猫、狗等动物的医学图像,同样可以采用本申请技术方案自动化生成相应的图像报告。
下面,将通过几个实施例对本申请技术方案进行介绍说明。
请参考图2,其示出了本申请一个实施例提供的医学图像报告生成模型的训练方法的流程图。该方法各步骤的执行主体可以是电脑、服务器等计算机设备。该方法可以包括如下几个步骤(210~260):
步骤210,获取样本医学图像。
样本医学图像是指作为训练样本使用的医学图像。样本医学图像可以从一些已知的数据集中选取。另外,样本医学图像具有对应的目标图像报告,该目标图像报告是指经过人工生成、核验后的图像报告,具有针对样本医学图像的病理描述。
可选地,上述数据集中的医学图像和对应的图像报告需满足如下要求,从而能够作为样本医学图像及对应的目标图像报告来使用。医学图像需是规范化的图像,如2D或3D的X光图像、CT图像、PET图像、磁共振图像、医学超声波图像、医学显微镜图像等,且图像需满足采集区域要求和质量要求。另外,医学图像对应的图像报告需是结构化报告,由合格的放射科医生撰写的基于文本的文档,包含有关患者的病史、症状,以及医学图像中包含的病灶相关的描述性信息和解释。可选地,医学图像对应的图像报告是包括如下4部分的结构化报告:印象(impression)、结果(findings)、比较(comparison)和适应症(indication)。其中,在印象部分,放射科医生结合结果部分、病人临床历史及影像学研究的指导做出诊断。在结果部分列出了影像学检查中所检测的身体各部分放射学观察结果。比较部分和适应症部分与本申请内容关系不大,不作详述。
步骤220,通过视觉特征提取网络对样本医学图像进行视觉特征提取处理,得到样本医学图像的视觉特征序列。
视觉特征提取网络是用于提取医学图像的视觉特征的神经网络。可选地,该视觉特征提取网络可以是CNN(Convolutional Neural Network,卷积神经网络)。CNN在处理计算机视觉相关任务方面具有较好的表现性能。
在示例性实施例中,本步骤包括如下几个子步骤:
1、通过视觉特征提取网络对样本医学图像进行视觉特征提取处理,得到样本医学图像的视觉特征信息;
视觉特征信息可以是样本医学图像经过视觉特征提取网络后输出的特征图,该特征图中记录了样本医学图像的视觉特征,包括但不限于图像的颜色特征、纹理特征、形状特征、空间关系特征等图像特征。颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征,图像的轮廓特征主要针对物体的外边界,而图像的区域特征则关系到整个形状区域。空间关系特征,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。
2、将视觉特征信息划分为多个视觉特征单元;
可选地,通过对视觉特征信息对应的特征图进行分块处理,划分为多个特征图子块,每个特征图子块对应于一个视觉特征单元。例如,将视觉特征信息对应的特征图划分为一个5×5的特征图子块,各个特征图子块的尺寸相同。
3、获取各个视觉特征单元的特征向量,得到视觉特征序列。
通过这一步的转换,可以将特征图形式表示的视觉特征信息,转换为向量形式来表示。例如,通过将各个视觉特征单元分别乘以一个矩阵W,即可得到各个视觉特征单元分别对应的特征向量(embedding),然后将各个视觉特征单元分别对应的特征向量按序排列,即可得到视觉特征序列,该视觉特征序列是一个向量序列。可选地,在生成视觉特征单元对应的特征向量时,可以结合考虑该视觉特征单元对应的位置向量,该位置向量用于表征视觉特征单元在整个视觉特征信息(也即特征图)中的相对或绝对位置。
步骤230,在视觉特征序列的基础上,拼接图像类别标签和自学习标签,得到编码网络的输入信息。
在本申请实施例中,并不是直接将视觉特征序列作为编码网络的输入信息,而是在视觉特征序列的基础上,拼接图像类别标签和自学习标签,得到编码网络的输入信息。其中,图像类别标签用于经过编码网络的处理,从视觉特征序列中学习到图像特征信息,来据此预测出样本医学图像的类别。自学习标签用于经过编码网络的处理,从视觉特征序列中学习到图像特征信息,来据此预测出样本医学图像的任务结果。
在本申请实施例中,医学图像的类别可以从医学图像的诊断结果去进行分类,如包括骨折、心脏肥大、肺炎、肺水肿等不同类别。需要说明的是,此处的分类任务除了从诊断结果的角度对图像进行分类之外,还可从其他角度对图像进行分类,如识别图像中包含的器官类别、识别图像中病灶的病症分级等其他分类任务,本申请对此不作限定。
在本申请实施例中,上述任务结果是指自监督训练的相关任务的输出结果。本申请在对医学图像报告生成模型进行训练的过程中,引入一种自监督训练方法,能够进一步扩大类内差异,增大网络对输入图像的特征提取能力。自监督训练的相关任务可以根据需求进行设置,例如该任务可以是判断输入图像的旋转角度,如判断输入图像旋转了多少个90度。对于输入的样本医学图像,可以随机对其不旋转、旋转90度、旋转180度或旋转270度,经过旋转之后的图像输入至视觉特征提取网络进行后续处理,并由编码网络输出相应的任务结果,即针对旋转角度的预测结果。
步骤240,通过编码网络对输入信息进行编码处理,得到视觉特征序列对应的视觉编码特征向量、图像类别标签对应的输出类别结果,以及自学习标签对应的输出任务结果。
输入信息经过编码网络的编码处理,得到编码特征向量。我们从编码特征向量中提取出3部分信息,其中一部分作为视觉特征序列对应的视觉编码特征向量,另一部分作为图像类别标签对应的输出类别结果,还有一部分作为自学习标签对应的输出任务结果。其中,图像类别标签对应的输出类别结果是指由编码网络预测得到的样本医学图像对应的类别(如上文介绍的诊断结果),自学习标签对应的输出任务结果是指由编码网络预测得到的样本医学图像对应的任务结果(如上文介绍的旋转角度)。
步骤250,通过解码网络对视觉编码特征向量进行解码处理,得到样本医学图像对应的输出图像报告。
视觉编码特征向量进一步送入解码网络进行解码处理,由解码网络输出样本医学图像对应的输出图像报告。在本申请实施例中,解码网络输出的图像报告是文本形式的图像报告,且该文本形式的图像报告是符合自然语言规范的句子/段落式的报告,并非是一些简单的关键词。
步骤260,基于输出图像报告、输出类别结果和输出任务结果,计算医学图像报告生成模型的总损失函数值,并根据总损失函数值对医学图像报告生成模型的参数进行调整。
在本申请实施例中,模型除了完成主任务(即生成图像报告)之外,还并行完成了其他任务(包括确定图像类别和任务结果)。因此,模型的损失函数除了包括主任务对应的损失函数之外,还包括其他任务对应的损失函数,最后将各个损失函数加总在一起,得到模型的总损失函数。
可选地,采用如下方式计算模型的总损失函数值:
1、基于输出图像报告和样本医学图像对应的目标图像报告,计算第一损失函数值;
输出图像报告是指模型输出的图像报告,具体来讲是解码网络输出的图像报告。目标图像报告在上文已经介绍,是指由专业医师人工撰写的图像报告。通过对输出图像报告和目标图像报告进行差异性比对,可以获知模型在报告生成方面的表现性能。可选地,第一损失函数可以是用于衡量输出图像报告和目标图像报告之间的差异性的交叉熵损失。
2、基于输出类别结果和样本医学图像对应的目标类别结果,计算第二损失函数值;
输出类别结果是指模型输出的类别结果,具体来讲是编码网络输出的类别结果。目标类别结果是指准确的类别结果。可选地,从样本医学图像对应的目标图像报告中,提取指定字段的信息;对该指定字段的信息进行语义识别,得到样本医学图像对应的目标类别结果。例如,从目标图像报告中提取印象部分的信息,对该部分信息进行语义识别,得到诊断结果作为目标类别结果。
通过对输出类别结果和目标类别结果进行差异性比对,可以获知模型在类别判断方面的表现性能。可选地,第二损失函数可以是用于衡量输出类别结果和目标类别结果之间的差异性的交叉熵损失。
在本申请实施例中,能够从样本医学图像对应的目标图像报告中自动提取目标类别结果,从而无需人工标注目标类别结果,有注意提升模型的训练效率。
3、基于输出任务结果和样本医学图像对应的目标任务结果,计算第三损失函数值;
输出任务结果是指模型输出的任务结果,具体来讲是编码网络输出的任务结果。目标任务结果是指准确的任务结果。可选地,如果任务是判断输入图像的旋转角度,那么将样本医学图像旋转指定角度之后,输入至视觉特征提取网络。相应地,目标任务结果用于指示样本医学图像的真实旋转角度,输出任务结果用于指示样本医学图像的预测旋转角度。如果对于输入的样本医学图像,可以随机对其不旋转、旋转90度、旋转180度或旋转270度,任务是判断输入图像旋转了多少个90度,那么任务结果可以采用0、1、2、3来表示,分别对应不旋转、旋转90度、旋转180度和旋转270度。
通过对输出任务结果和目标任务结果进行差异性比对,可以获知模型在任务结果判断方面的表现性能。可选地,第三损失函数可以是用于衡量输出任务结果和目标任务结果之间的差异性的交叉熵损失。
可选地,为了减少任务引入的不确定性,第三损失函数除了包括输出任务结果和目标任务结果之间的交叉熵之外,还包括输出任务结果自身的信息熵,第三损失函数LSt的公式可以如下:
LSt=LCE(Zp,yp)+∑Zplog(Zp)
其中,Zp表示输出任务结果,yp表示目标任务结果,LCE(Zp,yp)表示输出任务结果和目标任务结果之间的交叉熵,∑Zplog(Zp)表示输出任务结果自身的信息熵。
4、基于第一损失函数值、第二损失函数值和第三损失函数值,计算总损失函数值。
可选地,对第一损失函数值、第二损失函数值和第三损失函数值进行加权求和,得到总损失函数值。其中,各个损失函数对应的权重可以结合实际情况进行合理设定和调整,例如根据各项任务的重要性进行设定或根据模型训练效果进行调整,本申请对此不作限定。
综上所述,本申请提供了一种基于AI模型自动化生成医学图像报告的技术方案,在模型训练过程中,除了让模型完成主任务(即生成图像报告)之外,还并行完成其他任务(包括确定图像类别和任务结果等),这有助于提升模型网络对图像的识别能力,从而间接增强模型的图文转换性能,使得模型输出更具准确性和可靠性的医学图像报告。
请参考图3,其示出了本申请另一个实施例提供的医学图像报告生成模型的训练方法的流程图。该方法各步骤的执行主体可以是电脑、服务器等计算机设备。该方法可以包括如下几个步骤(310~360):
步骤310,获取样本医学图像。
步骤320,通过视觉特征提取网络对样本医学图像进行视觉特征提取处理,得到样本医学图像的视觉特征序列。
步骤330,在视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息。
在本实施例中,进一步增加了模型蒸馏标签。模型蒸馏标签用于经过编码网络的处理,从视觉特征序列中学习到图像特征信息,来据此预测出样本医学图像的类别。此处的类别同样可以是从医学图像的诊断结果去进行分类,如包括骨折、心脏肥大、肺炎、肺水肿等不同类别。
步骤340,通过编码网络对输入信息进行编码处理,得到视觉特征序列对应的视觉编码特征向量、图像类别标签对应的输出类别结果、自学习标签对应的输出任务结果,以及模型蒸馏标签对应的学生输出诊断结果。
在本实施例中,输入信息经过编码网络的编码处理,得到编码特征向量。我们从编码特征向量中提取出4部分信息,其中第一部分作为视觉特征序列对应的视觉编码特征向量,第二部分作为图像类别标签对应的输出类别结果,第三部分作为自学习标签对应的输出任务结果,第四部分作为模型蒸馏标签对应的学生输出诊断结果。其中,图像类别标签对应的输出类别结果是指由编码网络预测得到的样本医学图像对应的类别(如上文介绍的诊断结果),自学习标签对应的输出任务结果是指由编码网络预测得到的样本医学图像对应的任务结果(如上文介绍的旋转角度),模型蒸馏标签对应的学生输出诊断结果是指由编码网络预测得到的样本医学图像对应的诊断结果。
步骤350,通过解码网络对视觉编码特征向量进行解码处理,得到样本医学图像对应的输出图像报告。
步骤360,基于输出图像报告、输出类别结果、输出任务结果和学生输出诊断结果,计算医学图像报告生成模型的总损失函数值,并根据总损失函数值对医学图像报告生成模型的参数进行调整。
在本申请实施例中,模型除了完成主任务(即生成图像报告)之外,还并行完成了其他任务(包括确定图像类别、确定任务结果和确定诊断结果)。因此,模型的损失函数除了包括主任务对应的损失函数之外,还包括其他任务对应的损失函数,最后将各个损失函数加总在一起,得到模型的总损失函数。
可选地,采用如下方式计算模型的总损失函数值:
1、基于输出图像报告和样本医学图像对应的目标图像报告,计算第一损失函数值;
2、基于输出类别结果和样本医学图像对应的目标类别结果,计算第二损失函数值;
3、基于输出任务结果和样本医学图像对应的目标任务结果,计算第三损失函数值;
4、基于学生输出诊断结果和样本医学图像对应的教师输出诊断结果,计算第四损失函数值;
学生输出诊断结果是指医学图像报告生成模型输出的诊断结果,具体来讲是编码网络输出的诊断结果。教师输出诊断结果是指由预训练完成的教师模型输出的诊断结果。可选地,将样本医学图像输入至预训练完成的教师模型,该教师模型用于识别样本医学图像中的症状类别(也即诊断结果);通过教师模型得到样本医学图像对应的教师输出诊断结果。在教师模型的训练过程中,可以采用样本医学图像进行训练,并将目标诊断结果作为模型训练的标签信息,该目标诊断结果可以是从样本医学图像对应的目标图像报告的印象部分提取的诊断结果。之后,采用预训练完成的教师模型对医学图像报告生成模型进行模型蒸馏,以进一步提升医学图像报告生成模型对图像的识别能力。
通过对学生输出诊断结果和教师输出诊断结果进行差异性比对,可以获知模型在诊断结果识别方面的表现性能。可选地,第四损失函数可以是用于衡量学生输出诊断结果和教师输出诊断结果之间的差异性的交叉熵损失。
在一个示例中,第四损失函数Lglobal的公式可以如下:
Lglobal=(1-λ)LCE(ψ(Zs),y)+λτ2KL(ψ(Zs/τ),ψ(Zt/τ))
其中,Zs和Zt分别是学生模型(也即医学图像报告生成模型)和教师模型的输出,也即Zs为学生输出诊断结果,Zt为教师输出诊断结果,y为目标诊断结果,LCE(ψ(Zs),y)表示学生输出诊断结果和目标诊断结果之间的交叉熵,KL表示KL散度(Kullback-LeiblerDivergence),ψ表示softmax函数,λ和τ是超参数。示例性地,λ设置为0.5,τ设置为1。
在本申请实施例中,能够从样本医学图像对应的目标图像报告中自动提取目标诊断结果,从而无需人工标注目标诊断结果,有注意提升模型的训练效率。
5、基于第一损失函数值、第二损失函数值、第三损失函数值和第四损失函数值,计算总损失函数值。
可选地,对第一损失函数值、第二损失函数值、第三损失函数值和第四损失函数值进行加权求和,得到总损失函数值。
需要说明的是,在本实施例中,主要对相比于图2实施例的新增内容进行了介绍说明,对于本实施例中未详细说明的部分,可参见上文图2实施例中的介绍说明,本实施例不作赘述。
综上所述,在本实施例中,进一步引入了模型蒸馏标签来让模型完成诊断任务,经过实验发现,引入模型蒸馏标签相比于简单采用两个图像分类标签,最终得到的医学图像报告生成模型的性能会更优,原因是模型蒸馏标签能够从教师模型中学到归纳假设,来达到提升医学图像报告生成模型性能的效果。
在示例性实施例中,医学图像报告生成模型可以采用CNN+Transformer的模型架构;其中,CNN用作视觉特征提取网络,Transformer包括多个级联的编码器以及多个级联的解码器,该多个级联的编码器用作编码网络,该多个级联的解码器用作解码网络。
可选地,如图4所示,其示例性示出了一种医学图像报告生成模型的架构图。该模型采用CNN+Transformer的模型架构,该模型包括视觉特征提取网络、编码网络和解码网络;其中,视觉特征提取网络采用CNN结构,编码网络和解码网络采用Transformer结构,编码网络包括N个级联的编码器,解码网络包括N个级联的解码器,N为大于1的整数。示例性地,N的取值为6。医学图像经过视觉特征提取网络的特征提取处理,得到视觉特征信息。该视觉特征信息被划分为多个视觉特征单元,然后获取各个视觉特征单元的特征向量,得到视觉特征序列。在视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息。通过编码网络对输入信息进行编码处理,得到视觉特征序列对应的视觉编码特征向量。通过解码网络对视觉编码特征向量进行解码处理,得到医学图像对应的图像报告。
下面,对基于Transformer结构构建的编码网络和解码网络进行介绍说明。Transformer结构是一个序列到序列(Sequence to Sequence)的模型,特别之处在于它大量用到了Self-Attention(自注意力)机制。基于Transformer结构构建的网络模型使用了Self-Attention机制,不采用RNN(Recurrent Neural Network,循环神经网络)顺序结构,使得模型可以并行化训练,而且能够拥有全局信息。
图5示例性示出了一种Transformer结构的示意图。左侧为编码器部分,右侧为解码器部分。为了便于理解,我们先以文本翻译任务为例,对Transformer结构进行介绍说明。对于文本翻译任务来说,输入是一个待翻译的单词序列,输出是一个翻译后的单词序列。
在编码器部分,待翻译的单词序列中的各个单词,会并行依次经过嵌入编码、位置编码、多头注意力层、残差连接和层归一化、前向传播、残差连接和层归一化、计算各单词编码的K、V向量,然后送入解码器。
在解码器部分,输入前一个单词的翻译结果(或者起始标记),依次经过嵌入编码、位置编码、带有掩膜的多头注意力层、残差连接和层归一化,得到解码的Q向量;之后,当前单词的K、V向量以及该解码的Q向量,依次经过多头注意力层、残差连接和层归一化、前向传播、残差连接和层归一化、全连接层、Softmax层,得到当前单词的翻译结果。最终将所有单词的翻译结果拼接,即得到翻译后的单词序列。
以将“机器学习”翻译为“machine learning”为例。在编码器处的输入是“机器学习”(包括“机器”和“学习”两个单词),在解码器处的第一个输入是<BOS>(代表起始标记),输出是“machine”。下一个时刻在解码器处的输入是“machine”,输出是“learning”。不断重复上述过程,直到输出结束标记(如句点)代表翻译结束。此处需要说明的是,编码器部分可以并行计算,一次性将编码器输入全部编码出来,但解码器部分并不是一次把所有序列解出来的,而是像RNN一样一个一个解出来的,因为要用上一个位置的解码输出当作注意力机制的Q向量。
注意力机制能够发掘词与词间的关系,这种关系在CV(计算机视觉技术)上已经是很常用的了。给定一个单词可以得到一个词嵌入,通过三个独立的全连接层可以得到该单词对应的Q(query)、K(key)和V(value)向量。我们用当前单词的Q向量对不同单词的K向量做点积,然后经过归一化和Softmax再乘以当前单词的V向量,就可以得到当前单词对其他单词的注意力向量(attention vector),实现一个Self-attention的过程。因为单纯的Self-attention总是会过度关注到当前单词自身而弱化其他单词的信息,这种信息其实是没太大作用的。为了解决这个问题,采用了Multi-head attention(多头注意力)的机制。
在Multi-head attention的机制中,如图6所示,我们把Q、K、V处理的词嵌入拆成h个部分,这里h我们取3。通过3种不同的Q、K和V我们会得到各不相同的Z(隐层特征),显然,现在的Z已经把关注自身的特性弱化了。然后,我们把Q、K和V拼接在一起,经过一个全连接层W计算出最终的Z(隐层)向量。现在的Z我们就可以视为是平均了不同关注区域的新特征。另外,这种multi-head(多头)计算还有一个好处,就是可以进行并行计算。
另外,单词/特征所处的位置对于序列转换(如文本翻译或图文转换等)的问题十分重要,因此在获得图像特征和词嵌入之后需要对单词的位置信息做一个编码,编码方式如图7所示,其中pos代表当前句子中的单词所处的位置,i代表词嵌入对应的维度,i的取值范围是[0,d/2),d为设定值如512。因此PE(Positional Encoding,位置编码)中每个单词以及维度得到的编码都不同,奇数采用sin公式进行编码,偶数采用cos公式进行编码。具体如下:
PE(pos,2i)=sin(pos/100002i/d);
PE(pos,2i+1)=cos(pos/100002i/d)。
残差连接(Residual Connection)可以避免由于Transformer中模块的加深导致梯度消失的现象,用于防止网络退化。因此我们先把Z向量和原来的输入X向量进行相加,然后用层归一化(layer normalization)对当前词向量的通道维求方差和均值,进行归一化,再输入到前向层。
最后把得到的注意力结果送进两个全连接层,其中一个用来升维,另一个用于降维。再紧接着刚刚提到的残差连接和层归一化,就得到编码器的最终输出结果。
在解码器中,翻译的结果在输入解码器的时候是看不到后面的输出的,所以在做注意力机制的时候强制加了一个mask(掩膜)机制。简单来说,如图8所示,就是在得到注意力权重(attention weights,通过Q和K向量的矩阵乘法获得)之后乘以一个上三角矩阵,然后把上三角区域置为无效,这样经过softmax之后结果这些被置为无效的区域就全是0,从而达到防止解码器信息泄露的效果。
这个模块的计算方式基本与多头注意力模块一样,仅唯一不同的就是K和V是从编码器中得到的。如图9所示,注意力向量可以按照如下公式计算得到:
其中,dk表示Q向量或K向量的维度。
在将Transformer结构应用于本申请中执行图文转换任务时,原始的医学图像经过视觉特征提取网络的特征提取处理,转换为视觉特征序列,然后在该视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息。此时,该输入信息即为一个向量序列。因此,通过Transformer网络的编解码处理,能够输出文本形式的图像报告。
上文实施例对医学图像报告生成模型的训练方法进行了介绍说明,下面将通过实施例对基于该医学图像报告生成模型的图像报告生成方法进行介绍说明,有关该医学图像报告生成模型使用过程中涉及的内容和训练过程中涉及的内容是相互对应的,两者互通,如在一侧未作详细说明的地方,可以参考另一侧的描述说明。
请参考图10,其示出了本申请一个实施例提供的图像报告生成方法的流程图。该方法各步骤的执行主体可以是诸如手机、平板电脑、PC、医疗设备等终端设备,也可以是服务器。该方法可以包括如下几个步骤(1010~1040):
步骤1010,通过视觉特征提取网络对目标医学图像进行特征提取处理,得到目标医学图像的视觉特征序列。
目标医学图像可以是任意一张医学图像,通过本实施例提供的方法,能够通过医学图像报告生成模型自动化地生成该目标医学图像对应的图像报告。
可选地,通过视觉特征提取网络对目标医学图像进行视觉特征提取处理,得到目标医学图像的视觉特征信息;将视觉特征信息划分为多个视觉特征单元;获取各个视觉特征单元的特征向量,得到视觉特征序列。
步骤1020,在视觉特征序列的基础上,拼接图像类别标签和自学习标签,得到编码网络的输入信息。
可选地,在视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息。
需要说明的是,此处拼接的图像类别标签、自学习标签和模型蒸馏标签,与在模型训练过程中拼接的图像类别标签、自学习标签和模型蒸馏标签是完全相同的。例如,在模型训练过程中,图像类别标签、自学习标签和模型蒸馏标签是3个全零向量,即向量中的所有元素均为0,那么在模型使用过程中,这3个标签同样是3个全零向量。
步骤1030,通过编码网络对输入信息进行编码处理,得到视觉特征序列对应的视觉编码特征向量。
输入信息经过编码网络的编码处理,得到编码特征向量。
在输入信息包括视觉特征序列、图像类别标签和自学习标签的情况下,我们从编码特征向量中提取出3部分信息,其中一部分作为视觉特征序列对应的视觉编码特征向量,另一部分作为图像类别标签对应的输出类别结果,还有一部分作为自学习标签对应的输出任务结果。其中,图像类别标签对应的输出类别结果是指由编码网络预测得到的目标医学图像对应的类别(如上文介绍的诊断结果),自学习标签对应的输出任务结果是指由编码网络预测得到的目标医学图像对应的任务结果(如上文介绍的旋转角度)。
在输入信息包括视觉特征序列、图像类别标签、自学习标签和模型蒸馏标签的情况下,我们从编码特征向量中提取出4部分信息,其中第一部分作为视觉特征序列对应的视觉编码特征向量,第二部分作为图像类别标签对应的输出类别结果,第三部分作为自学习标签对应的输出任务结果,第四部分作为模型蒸馏标签对应的学生输出诊断结果。其中,图像类别标签对应的输出类别结果是指由编码网络预测得到的目标医学图像对应的类别(如上文介绍的诊断结果),自学习标签对应的输出任务结果是指由编码网络预测得到的目标医学图像对应的任务结果(如上文介绍的旋转角度),模型蒸馏标签对应的学生输出诊断结果是指由编码网络预测得到的目标医学图像对应的诊断结果。
步骤1040,通过解码网络对视觉编码特征向量进行解码处理,得到目标医学图像对应的输出图像报告。
视觉编码特征向量进一步送入解码网络进行解码处理,由解码网络输出目标医学图像对应的输出图像报告。在本申请实施例中,解码网络输出的图像报告是文本形式的图像报告,且该文本形式的图像报告是符合自然语言规范的句子/段落式的报告,并非是一些简单的关键词。
可选地,如有需求,还可以进一步获取编码网络输出的目标医学图像对应的类别结果、任务结果以及诊断结果中的至少一项。
综上所述,本申请提供了一种基于AI模型自动化生成医学图像报告的技术方案,由于在模型训练过程中,除了让模型完成主任务(即生成图像报告)之外,还并行完成其他任务(包括确定图像类别、确定任务结果、确定诊断结果等),这有助于提升模型网络对图像的识别能力,相应地,在模型使用过程中,同样在视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息,使得模型输出更具准确性和可靠性的医学图像报告。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图11,其示出了本申请一个实施例提供的医学图像报告生成模型的训练装置的框图。该装置具有实现上述医学图像报告生成模型的训练方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1100可以包括:样本获取模块1110、特征提取模块1120、信息拼接模块1130、编码处理模块1140、解码处理模块1150、损失计算模块1160和模型调参模块1170。
样本获取模块1110,用于获取样本医学图像。
特征提取模块1120,用于通过所述视觉特征提取网络对所述样本医学图像进行视觉特征提取处理,得到所述样本医学图像的视觉特征序列。
信息拼接模块1130,用于在所述视觉特征序列的基础上,拼接图像类别标签和自学习标签,得到所述编码网络的输入信息。
编码处理模块1140,用于通过所述编码网络对所述输入信息进行编码处理,得到所述视觉特征序列对应的视觉编码特征向量、所述图像类别标签对应的输出类别结果,以及所述自学习标签对应的输出任务结果。
解码处理模块1150,用于通过所述解码网络对所述视觉编码特征向量进行解码处理,得到所述样本医学图像对应的输出图像报告。
损失计算模块1160,用于基于所述输出图像报告、所述输出类别结果和所述输出任务结果,计算所述医学图像报告生成模型的总损失函数值。
模型调参模块1170,用于根据所述总损失函数值对所述医学图像报告生成模型的参数进行调整。
在示例性实施例中,所述损失计算模块1160,用于:
基于所述输出图像报告和所述样本医学图像对应的目标图像报告,计算第一损失函数值;
基于所述输出类别结果和所述样本医学图像对应的目标类别结果,计算第二损失函数值;
基于所述输出任务结果和所述样本医学图像对应的目标任务结果,计算第三损失函数值;
基于所述第一损失函数值、所述第二损失函数值和所述第三损失函数值,计算所述总损失函数值。
在示例性实施例中,所述样本获取模块1110,还用于:
从所述样本医学图像对应的目标图像报告中,提取指定字段的信息;
对所述指定字段的信息进行语义识别,得到所述样本医学图像对应的目标类别结果。
在示例性实施例中,所述特征提取模块1120,还用于:
将所述样本医学图像旋转指定角度之后,输入至所述视觉特征提取网络;
其中,所述目标任务结果用于指示所述样本医学图像的真实旋转角度,所述输出任务结果用于指示所述样本医学图像的预测旋转角度。
在示例性实施例中,所述输入信息还包括模型蒸馏标签,所述模型蒸馏标签经所述编码网络得到学生输出诊断结果;
所述损失计算模块1160,还用于:
基于所述学生输出诊断结果和所述样本医学图像对应的教师输出诊断结果,计算第四损失函数值;
基于所述第一损失函数值、所述第二损失函数值、所述第三损失函数值和所述第四损失函数值,计算所述总损失函数值。
在示例性实施例中,所述样本获取模块1110,还用于:
将所述样本医学图像输入至预训练完成的教师模型,所述教师模型用于识别所述样本医学图像中的症状类别;
通过所述教师模型得到所述样本医学图像对应的教师输出诊断结果。
在示例性实施例中,所述损失计算模块1160,还用于:
对所述第一损失函数值、所述第二损失函数值、所述第三损失函数值和所述第四损失函数值进行加权求和,得到所述总损失函数值。
在示例性实施例中,所述特征提取模块1120,用于:
通过所述视觉特征提取网络对所述样本医学图像进行视觉特征提取处理,得到所述样本医学图像的视觉特征信息;
将所述视觉特征信息划分为多个视觉特征单元;
获取各个所述视觉特征单元的特征向量,得到所述视觉特征序列。
综上所述,本申请提供了一种基于AI模型自动化生成医学图像报告的技术方案,在模型训练过程中,除了让模型完成主任务(即生成图像报告)之外,还并行完成其他任务(包括确定图像类别和任务结果等),这有助于提升模型网络对图像的识别能力,从而间接增强模型的图文转换性能,使得模型输出更具准确性和可靠性的医学图像报告。
请参考图12,其示出了本申请一个实施例提供的图像报告生成装置的框图。该装置具有实现上述图像报告生成方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1200可以包括:特征提取模块1210、信息拼接模块1220、编码处理模块1230和解码处理模块1240。
特征提取模块1210,用于通过所述视觉特征提取网络对目标医学图像进行特征提取处理,得到所述目标医学图像的视觉特征序列。
信息拼接模块1220,用于在所述视觉特征序列的基础上,拼接图像类别标签和自学习标签,得到所述编码网络的输入信息。
编码处理模块1230,用于通过所述编码网络对所述输入信息进行编码处理,得到所述视觉特征序列对应的视觉编码特征向量。
解码处理模块1240,用于通过所述解码网络对所述视觉编码特征向量进行解码处理,得到所述目标医学图像对应的输出图像报告。
在示例性实施例中,所述信息拼接模块1220,用于:
在所述视觉特征序列的基础上,拼接所述图像类别标签、所述自学习标签和模型蒸馏标签,得到所述编码网络的输入信息。
在示例性实施例中,所述特征提取模块1210,用于:
通过所述视觉特征提取网络对所述目标医学图像进行视觉特征提取处理,得到所述目标医学图像的视觉特征信息;
将所述视觉特征信息划分为多个视觉特征单元;
获取各个所述视觉特征单元的特征向量,得到所述视觉特征序列。
综上所述,本申请提供了一种基于AI模型自动化生成医学图像报告的技术方案,由于在模型训练过程中,除了让模型完成主任务(即生成图像报告)之外,还并行完成其他任务(包括确定图像类别、确定任务结果、确定诊断结果等),这有助于提升模型网络对图像的识别能力,相应地,在模型使用过程中,同样在视觉特征序列的基础上,拼接图像类别标签、自学习标签和模型蒸馏标签,得到编码网络的输入信息,使得模型输出更具准确性和可靠性的医学图像报告。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图13,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是任何具备数据计算、处理和存储功能的电子设备,如手机、平板电脑、PC(Personal Computer,个人计算机)或服务器等。该计算机设备用于实施上述实施例中提供的医学图像报告生成模型的训练方法或图像报告生成方法。具体来讲:
该计算机设备1300包括中央处理单元(如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)和FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等)1301、包括RAM(Random-Access Memory,随机存储器)1302和ROM(Read-Only Memory,只读存储器)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。该计算机设备1300还包括帮助服务器内的各个器件之间传输信息的基本输入/输出系统(Input Output System,I/O系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
该基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中,该显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。该基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
该大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。该大容量存储设备1307及其相关联的计算机可读介质为计算机设备1300提供非易失性存储。也就是说,该大容量存储设备1307可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
根据本申请实施例,该计算机设备1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1300可以通过连接在该系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述医学图像报告生成模型的训练方法或图像报告生成方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述医学图像报告生成模型的训练方法或图像报告生成方法。
可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述医学图像报告生成模型的训练方法或图像报告生成方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。