数据标注、模型训练和图像处理方法、装置及存储介质
技术领域
本发明涉及图像处理领域,具体而言,涉及一种图像处理模型的训练方法以及使用该模型对图像进行处理的方法。
背景技术
肺癌是发病率和死亡率增长最快的恶性肿瘤之一,已对人群健康和生命造成极大的威胁。肺癌生存率与首次确诊时的疾病阶段高度相关,如能在其早期发现则5年生存率可达到70%~90%。相对于其他癌症,肺癌的生物学特征十分复杂,早期多无明显症状,将近75%的人被发现时已是中晚期,治疗费用高昂且效果不佳。因此,肺癌的早期检测和诊断尤为重要。肺癌早期一般表现为肺部恶性结节,因此早期排查一般从肺结节的检测入手。临床实践证明,检测肺结节最有效的手段是进行低剂量计算机断层扫描(low-does computeredtomography,LDCT)获得肺部高分辨率图像。
传统的医学图像肺结节检测算法包括以下流程:医学图像数据预处理、肺实质区域分割、提取候选区域、特征提取和肺结节目标的分类识别等。其中最为关键的环节是特征提取和分类识别,特征提取大多是对肺结节的形态学特征、纹理特征、局部特征等方面的病理特征和图像信息进行人工提取特征,这些特定的特征存在着局限性,且提取流程繁琐、效率低;分类识别方法通常是基于统计学得到的,如贝叶斯分类算法、人工神经网络、模糊聚类等,均属于浅层结构模型,通常需要较强的先验知识或者需要通过不同的参数选择和特征尝试才会得到满意的特征,使分类问题变得复杂。
近年来深度学习的方法发展迅速,尤其是在计算机视觉领域取得了许多突破。基于深度学习的医学影像分析处理已成为发展的大势。目前已经有研究者使用基于深度学习的肺结节检测方法。但是肺结节的类型多样复杂,体现形式有毛刺征、分叶征和钙化征,还有粘连胸膜、粘连支气管、粘连血管和孤立性结节等。如何在基于CT图像的肺结节检测中保证高召回率的同时降低假阳率一直无法得到很好的解决。
海量的规范标注数据是目前医学影像AI发展的瓶颈,数据的获取及标注都存在很多困难。对于肺部CT影像而言,肺部的病灶形态,大小,分布,密度等各不相同。但其中比较困难的一类是弥漫多发的病灶,这类病灶时常占据了全肺的大部分空间,且病灶数目数以千计使得标注工作难以进行。其原因有三,1.由于数量众多,将所有的病灶全部找出并标注会带来漏标注的风险(如全肺弥漫的感染,如弥漫的密度增高影);2.标记所有的病灶对于标注工作者的挑战很大。3.有些类型的病灶可能数目不算太多,但肉眼寻找十分困难(代表性的如3mm以下的微小结节)。这三个原因共同导致病灶漏标情况的出现,实际标注过程中很难避免。
发明内容
本发明正是基于上述技术问题至少之一,提出了一种新的数据标注、模型训练及图像处理的方法,通过仅标注了部分目标的弱标注数据对机器学习模型进行训练,本发明的数据标注方法和模型训练方法在不完全标注的情况下保证了正、负样本标签的绝对真实性,可以更好的对模型进行训练,提高了目标检测的检出率和准确率,降低了假阳性结果。
有鉴于此,本发明的第一方面的实施例,提出了一种用于机器学习模型训练的样本数据标注方法,包括:获取第一图像数据集和第二图像数据集;其中,所述第一图像数据集中的每幅图像中均包括至少一个检测目标,并且,所述每幅图像中至少有一个检测目标通过标注框标注为真实目标(ground truth);所述第二图像数据集中的每幅图像中均不包括检测目标;所述检测目标为肺部病灶;
使用预设的目标检测模型对所述第一图像数据集进行目标检测,得到初步检测结果;其中,所述预设的目标检测模型为使用标准数据集训练得到的神经网络模型;
确定所述初步检测结果中的假阳性结果;
将所述假阳性结果标注为用于生成负样本的第一背景图像;
优选的,将所述第二图像数据集中的全部图像均标注为用于生成负样本的第二背景图像。
更进一步,本发明中的负样本包括易分样本和难分样本,其中,可以将所述假阳性结果进一步标注为用于生成负样本中的难分样本;所述第二图像数据集进一步标注为用于生成负样本中的易分样本。
本实施方式中,确定所述识别结果中的假阳性结果的步骤具体可以包括:
基于所述第一图像数据集中的已有标注框和所述识别结果,确定所述识别结果中的假阳性结果。识别结果中,如果第一图像数据集中已经标注为真实目标的结果,可以认为其为真阳性;而识别结果中没有被标记为真实目标的部分,可以通过预设程序或者通过人工筛选的方式进行判断,以确定其是否为真实结果,不是真实结果的,为假阳性结果。
可选的,所述人工筛选步骤如下:对于每个图像,由4位放射科医师进行两阶段诊断标注;其中,3位医生是水平相当的有资质医生,1位是临床经验更丰富的资深医师;前3位医生负责私有数据的标记,最后1位资深医生负责对有问题病例最终裁决,具体为:对于私有数据集中CT图像,3位水平相当的有资质医生中的每位独立诊断并标注病灶位置,记录标注结果,通过程序统计每个CT图像上被标记病灶的位置;对于同一个区域被两个及其以上医生标记,则认为病灶可能性极高,不进行后续判断;对于仅1位医生标记的区域,将标记结果反馈给临床经验更丰富的资深医师进行最终判断。
本实施方式中,预设的目标检测模型可以为使用标准数据集训练的深度神经网络模型。例如,RCNN、Faster R-CNN,YOLO等模型,标准数据集是广泛使用的含有准确标注结果的数据集。
典型的,本发明实施方式的方法用于处理肺部CT图像,所述检测目标为肺部病灶。
本发明另一方面的实施例提出一种用于目标检测的神经网络模型的训练方法,其中,神经网络模型包括:特征提取网络(convolutional layer)、区域生成网络(RegionProposal Network,RPN)、目标区域池化网络(ROI pooling layer)和目标分类网络(Classification),训练方法具体步骤包括:
获取样本图像,所述样本图像包括本发明前述实施例中所述的第一图像数据集和第二图像数据集;
使用标注框标注的真实目标(ground truth)生成正样本、使用前述实施例中标注的第一背景图像和第二背景图像生成负样本,对所述神经网络模型进行训练;
根据所述神经网络的损失函数,对所述神经网络的参数进行更新,其中,在所述神经网络模型的损失函数中,降低负样本的权重,进一步的,降低负样本中易分样本的权重。
另外,在本实施例中,可以同时使用标注框标注的真实目标(ground truth)生成负样本中的难分样本,并使用生成的负样本对所述神经网络模型进行训练。
典型的,本实施例中的神经网络模型为Faster R-CNN模型,使用所述标注框标注的真实目标(ground truth)生成正样本的步骤具体为:
在所述区域生成网络中,使用滑动窗口在样本图像中生成不同尺寸的多个锚点,当所述锚点与所述标注框的重合度(IOU)大于预设的第一阈值时,则将所述锚点标记为正样本。典型的,第一阈值取值可以为0.7,0.75,0.8,0.9等不同的值,优选的为0.75。
本实施例中使用标注框标注的真实目标(ground truth)生成负样本中难分样本的步骤具体为:
当锚点与标注框部分重合且重合度小于预设的第二阈值时,将所述锚点标记为负样本。第二阈值的典型取值为0.05,0.1,0.15,0.2等不同的值,优选为0.1。
本实施例中的损失函数选择不同于普通Faster R-CNN模型的函数:
FL(pt)=-αt(1-pt)γlog(pt)
其中,pt为模型预测概率值,其值介于0-1之间,αt参数可控制正负样本数量的平衡,其值介于0-1之间,γ参数则用于降低负样本中易分样本(easy example)的权重,其值大于等于0。
按照减小所述损失函数的值的方向,对所述神经网络模型的网络参数进行更新。
另一方面,本发明的另一个实施例提供一种图像处理方法,包括:
获取待处理的图像;
调用神经网络模型对所述图像进行目标检测,得到所述图像中的目标检测结果;
所述神经网络模型采用前述实施例中所述的模型训练方法对预设神经网络模型进行训练得到;
输出所述目标检测结果。
再一个方面,本发明的又一个实施例提供一种神经网络模型训练装置,包括:
获取单元,用于获取样本图像、所述样本图像中用来标注真实目标的标注框和标注的负样本;
更新单元,用于根据所述神经网络模型的损失函数,更新所述神经网络模型的网络参数;
训练单元,用于根据更新后的网络参数对所述预设图像处理模型进行迭代训练,得到目标图像处理模型。
再一个方面,本发明的又一个实施例提供一种图像处理装置,包括:
获取单元,用于获取待处理的图像;
处理单元,用于调用神经网络模型对所述图像进行目标检测,得到目标检测结果;所述神经网络模型采用前述实施例中的模型训练方法对预设神经网络模型进行训练得到;
输出单元,用于输出所述目标检测结果。
再一个方面,本发明的又一个实施例提供一种计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行前述实施例中的模型训练方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行前述实施例中的图像处理方法。
通过以上技术方案,可以更好的利用未被完全标注或者难以精确标注的弱标注数据进行模型训练并得到更好的目标检测结果,在肺部病灶的检测中,肺部的病灶形态,大小,分布,密度等各不相同。但其中比较困难的一类是弥漫多发的病灶,这类病灶时常占据了全肺的大部分空间,且病灶数目数以千计使得标注工作难以进行,难以将全部病灶完全找出并标注,因此,肺部病灶的标注图像往往为不完全标注的若标注数据,本专利中使用的数据标注方法可以在不完全标注的情况下保证正负样本标签的真实性,通过改进的模型训练方法来适应这种新的样本标签,最终获得更好的检测结果。
附图说明
图1示出了现有技术中的一种神经网络Faster R-CNN模型的示意图;
图2示出了根据本发明的实施例一的数据标注方法的示意图;
图3示出了根据本发明的实施例二的模型训练方法的示意图;
图4示出了根据本发明的实施例二的神经网络模型中锚点的示意图;
图5示出了根据本发明的实施例三的图像处理方法的示意图;
图6示出了根据本发明的实施例三的图像处理方法进行图像处理的一些处理结果;
图7示出了根据本发明的实施例四的模型训练装置的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例一
图2示出了根据本发明的一个实施例的数据标注方法的示意框图。
如图2所示,根据本发明的一个实施例的数据标注方法,本实施例以医学图像中的目标检测为例对发明方案进行阐述,本发明的方法不仅限于对医学图像的处理。此外,本发明实施例中以Faster R-CNN模型为例,阐述用于目标检测的神经网络模型,本发明中的神经网络模型不仅限于此,多种不同结构的神经网络均可以用于本发明的模型,以及使用本发明的标准方法标注的数据进行训练,以提高其对特定类型图像和目标的检测效果。
用于机器学习模型训练的样本数据标注方法,包括以下步骤:
S201:获取部分标注的样本数据。
这里的样本数据以肺部图像为例,为了更好的区分数据来源,将样本数据分为第一图像数据集和第二图像数据集;对于第一图像数据集,其中的每幅图像中均包括至少一个检测目标,使用标注框对图像中的目标进行标注,在第一图像数据集中,确保所有的标注均为正确的,被标注的目标为真实目标(ground truth),不存在假阳性标注;但是,并不是图像中的所有检测目标均被标注出来,第一图像数据集的图像中,可能存在一个或多个未被标记的目标,这种仅有部分目标被正确标注出来,同时又存在多个目标没有被标注的数据,称作“弱标注”数据。
传统的弱监督学习下的不完全监督是指训练数据中只有一部分数据被给了标签,另一部分数据则没有给定标签,标注并不完全。已标注的数据满足对于任意数据其中包含的目标均已被标记出来,未标记的数据则是没有给定标记信息,但是对于其是否包含目标并不能确认。在学习的过程当中,输入是一些标记过的数据和没有标记过的数据,首先根据这些标记过的数据训练模型,然后根据得到的“经验”对剩余的未标注的数据进行“聚类分析”。
然而本发明中的弱监督则是体现在仅对样本中可确定的目标进行标记,不确定的目标不予标记,例如某病患CT影像中包含有5个结节,仅标记了其中3个确定的结节,剩余的2个结节我们不予标记,这样的“弱标记”数据作为正样本。
由于采用了不完全标注的图像来产生正样本,在图像没有标注的区域中,并不能确定其不包括未标记出的目标,如果使用这些图像未标记的部分来产生负样本,会出现将目标当作负样本对模型训练的情况,会大大影响检测效果,基于此,我们同时引入健康者的CT影像,作为第二图像数据集,使用这些确定没有病灶的图像作为负样本图像的来源。如此一来,在不完全标记的情况下,我们保证了正、负样本标签的绝对真实性。
为了保证标注准确,虽然采用了健康人体的CT图像,某些情况下可以对这些图像进行人工筛选和标定,以确保第二图像数据集中的每幅图像中均不包括检测目标。
此外,为了获得更好的训练效果,可以调整第一图像数据集和第二图像数据集中用于训练的图像比例,避免正负样本比例失调,起到样本均衡的作用。
S202:使用预设的目标检测模型对第一图像数据集进行目标检测,得到检测结果。
这里预设的目标检测模型可以是传统检测模型或算法,如:模式识别算法,贝叶斯分类算法、模糊聚类、特征匹配等不同算法,也可以是神经网络模型,如R-CNN、Faster R-CNN、SSD、YOLO等。
本实施方式中以Faster R-CNN模型为例进行说明,这里使用的目标检测模型是经过标准标注数据集训练的Faster R-CNN模型,标准标注数据集为LUNA16公开数据集。首先使用LUNA16公开数据集中的标注数据对Faster R-CNN模型进行训练,得到训练好的模型,然后使用该模型对第一图像数据集中的图像进行目标检测,得到检测结果,这里输出的检测结果为使用标注框标注出的目标,且每个检测出的目标均具有置信度。
这里的检测结果并不完全准确,会存在识别错误(假阳性)和漏识别(假阴性)的情况。这两种情况均说明对应的区域对于模型自动识别有一定难度,属于易出错的情况,本发明的方案需要找出假阳性的结果并进行标注以加以利用。
S203:确定所述检测结果中的假阳性结果。
判断假阳性结果的步骤可以使用人工判断,本发明的方法一般用于医学图像,特别是肺部CT图像中的病灶,CT图像中的肺部病灶的识别存在较大难度和误差,为了保证标注结果的准确性,本实施例中使用人工判断,所述人工判断步骤如下:对于每个图像,由4位放射科医师进行两阶段诊断标注;其中,3位医生是水平相当的有资质医生,1位是临床经验更丰富的资深医师;前3位医生负责私有数据的标记,最后1位资深医生负责对有问题病例最终裁决,具体为:对于私有数据集中CT图像,3位水平相当的有资质医生中的每位独立诊断并标注病灶位置,记录标注结果,通过程序统计每个CT图像上被标记病灶的位置;对于同一个区域被两个及其以上医生标记,则认为病灶可能性极高,不进行后续判断;对于仅1位医生标记的区域,将标记结果反馈给临床经验更丰富的资深医师进行最终判断。
对于步骤S202中模型的检测结果,统计模型的检测结果,将模型判断出的目标结果按照模型给出的置信度进行排列,让三位医师对模型的检测结果进行判断,对检测结果中置信度高于85%的这些结节类型,继续按照前述独立标记终裁复审的方法对第一图像数据集中未被标注的目标结果进行再次标记。
另一种可选的方式中,可以通过程序来进行判断,例如,使用其他准确率更高的模型对第一图像数据集中的图像再次进行目标检测,将两次检测结果进行对比,如果预设模型检测出的结果被准确率更高的其他模型检测为并非目标,则将这部分结果作为假阳性结果。在当前步骤,并不能确定步骤S202中经标准数据集训练的模型在真实数据上的检测效果,但是可以通过对多个标准数据集的测试来对比其和现有技术中其他检测方法或模型的检测效果,来判断准确率,虽然这种方式对于假阳性结果的判断可能存在一些误差,但仍然可以有效提升弱标注数据的标注质量,并提升最终的检测准确率。
上述判断方法仅为示例性说明,现有技术中任何可以判断检测结果是否为真实病灶的方法均可用于本发明的假阳性结果判断,本发明对此不做限定。
S204:将所述假阳性结果标注为用于生成负样本的第一背景图像。
在步骤S203中确定的假阳性结果实际上并非我们要检测的目标,如在肺部CT图像的肺结节检测中,这部分假阳性结果部分的图像实际上并非结节的图像,而仍然是健康肺部组织的图像,而模型将其错误的检测为目标(肺结节),因此可以认为这部分图像为预设模型难以识别的部分,在本实施例中的弱数据标记的过程中借鉴了“难例挖掘”的思想,医师在对模型检测的结果进行判断的时候,将模型检测出来的假阳性区域对应到弱标注数据集上,并将其标记为非目标区域(背景图像区域),这部分区域即可作为后续训练模型时负样本中的难分样本(hard example)的来源,能有助于检测模型在实际的目标检测任务中更好地识别目标。
在本实施例的一个优选实施方式中,数据标注方法还包括:
S205:将所述第二图像数据集中的全部图像均标注为用于生成负样本的第二背景图像。
由于在本发明方案中使用的弱标注数据中,仅有部分目标被标注,带有目标的图像中还存在大量未被标注出的检测目标,因此,无法直接使用图像中未标注的部分作为负样本,而通过之前步骤筛选出的假阳性往往无法满足模型训练的要求,还需要更多的负样本来完成模型训练。因此,使用确定不包括检测目标的图像作为模型训练中用于产生负样本的背景图像。对于人体医学图像,检测目标一般为病灶部分,因此可以使用健康人体的医学图像作为不包括检测目标的背景图像。
本发明各实施方式中一般以人体肺部图像作为示例,检测目标为图像中的肺结节部分。因此,在该步骤中,将不带有结节的健康人体肺部图像作为第二图像数据集,用来产生模型训练使用的大量负样本。
此外,对于应用了“难例挖掘”思想的实施例,通过第二图像数据集产生的负样本可以作为其中的易分样本(easy example),与S204步骤中通过假阳性结果产生的负样本中的难分样本(hard example)配合,以起到更好的模型训练效果,提高目标检测准确率。
实施例二
图3示出了根据本发明的另一个实施例的示意框图。
如图3所示,本发明的第二实施例提供了一种用于目标检测的神经网络的训练方法,本实施例中的神经网络通常包括四个部分:特征提取网络(convolutional layer)、区域生成网络(Region Proposal Network,RPN)、目标区域池化网络(ROI pooling layer)和目标分类网络(Classification),典型的,本实施例中使用Faster R-CNN模型的框架来构建目标检测的神经网络,Faster R-CNN模型为现有技术,典型的Faster R-CNN模型如附图1所示,下面对本发明中一个示例性的神经网络的结构做简单介绍,不再详细阐述:
其中,特征提取网络或特征提取层(convolutional layer)一般使用一组基础的conv+relu+pooling层提取图像的特征地图(feature maps)。该特征地图(feature maps)被共享用于后续区域生成网络(Region Proposal Network,RPN)和全连接层。
区域生成网络(Region Proposal Network,RPN)用于生成候选区域(regionproposals)。现有技术中,该层通过softmax判断锚点(anchors)属于正样本或者负样本,本发明对这部分进行了改进以更好应用于弱标注数据。再利用bounding box regression修正锚点(anchors)获得精确的候选区域。
目标区域池化网络(ROI pooling layer)收集输入的特征地图(feature maps)和候选区域(region proposals),综合这些信息后提取候选区域特征(proposal featuremaps),送入后续全连接层判定目标类别。
目标分类网络(Classification)。利用候选区域特征(proposal feature maps)计算候选区域的类别,同时再次bounding box regression获得检测框最终的精确位置。
本实施例的神经网络模型的训练方法,具体包括:
S301:获取样本图像。
在本实施例中,训练神经网络使用的样本图像为实施例一中的标注方法标注过的医学图像,具体包括不完全标注的第一图像数据集和图像中不包括待检测目标的第二图像数据集。
S302:使用带有标注框标注的真实目标(ground truth)的图像生成正样本、使用前述实施例中标注的第一背景图像和第二背景图像生成负样本,对所述神经网络模型进行训练。
使用带有所述标注框标注的真实目标(ground truth)的图像生成正样本的步骤中,在神经网络的区域生成网络中,使用滑动窗口在样本图像中生成不同尺寸的多个锚点(anchors,如附图4所示),当所述锚点与样本图像中的所述标注框的重合度(IOU)大于预设的第一阈值时,则将所述锚点标记为正样本。其中,IOU是一种测量在特定数据集中检测相应物体准确度的一个标准,本发明中,锚点与标注框(ground truth box)之间的IOU的计算法为:锚点和标注框(ground truth box)重叠部分的面积除以锚点和标注框所包含的总区域的面积。典型的,第一阈值取值可以为0.7,0.75,0.8,0.9等不同的值,优选为0.75。
锚点是神经网络进行图像处理时的一个常用概念,在区域生成网络(RegionProposal Network,RPN)中,采用滑动窗口的方式,生成多个不同尺寸的矩形框,我们称之为锚点。为了检测出不同大小的目标或病灶,可以通过统计数据集上已标记的目标的大小分布,来设计合适的锚点。在本实施例中,每个滑动窗口设计了六个不同尺寸的锚点:4×4,6×6,10×10,16×16,22×22和32×32(见附图4)。
现有技术中基于Faster R-CNN的目标检测算法框架中,训练区域生成网络是有监督训练,即需要给定锚点对应的类标。对于每一个锚点,如果这个锚点跟某个目标的标注框(ground truth)重合度较高(例如IOU>0.7),则认为这个锚点中含有待检测目标并将其标记为正样本,反之如果一个锚点不与任何病灶标注框具有一定重合度(IOU<0.3)则把这个锚点标记为负样本。
然而对于本发明中使用的弱标注的数据,与现有技术不同的是,如果一个锚点不与任何一个病灶框高度重合也没法确定其中一定不含有待检测物体,因此我们采用弱标注数据中正确标记为结节的区域(即标注框区域)通过锚点的方式产生正样本,同时利用健康人体的医学影像以及我们在弱数据标注过程中标记出的非结节区域通过锚点产生负样本,而并不通过带有标记的图像中未标记部分产生负样本,弱数据标注过程中标记出的非结节区域指的是本发明实施例一中通过假阳性结果标记出的负样本部分,继续训练感兴趣区域网络。其中,第二图像数据集中的健康人体医学图像可以作为负样本中的易分样本(easyexample)的来源;而第一图像数据集中图像的假阳性结果部分可以作为负样本中的难分样本(hard example)。
使用第一背景图像生成负样本的方法与使用标注框生成正样本的方法一致,同样通过区域生成网络在样本图像中产生多个尺寸不同的锚点,对于假阳性结果,锚点与假阳性结果的重合度(IOU)大于预设的第一阈值时,相应锚点即标记为负样本,对于第一图像数据集的图像,除了使用标注框产生的正样本和使用假阳性结果产生的负样本外,其他锚点既不作为正样本使用,也不作为负样本使用。
使用第二背景图像生成负样本的过程同样通过区域生成网络在样本图像中产生多个尺寸不同的锚点,与之前不同的是,除超出图像本身范围的锚点之外,所有锚点均标记为负样本。
实际进行训练时,负样本数量,特别是负样本中的易分样本数量往往远大于正样本和难分样本,这时,可以根据需要的正负样本比例以及难分样本和易分样本的比例,从易分样本中随机抽取预定数量的易分样本进行训练,以满足样本均衡的要求。
S303:根据所述神经网络的损失函数,对所述神经网络的参数进行更新,其中,在所述神经网络模型的损失函数中,降低负样本的权重,并在负样本中,降低易分样本的权重。
考虑到本发明技术方案中使用的弱标注数据中产生的正样本的锚点数远远少于负样本的锚点数,极易造成不平衡的正负样本比例,且负样本中的易分样本(easyexample)多于难分样本(hard example)的情况,本实施例中并非采取现有技术的神经网络框架中通常使用的交叉熵损失函数。
Focal loss是针对在目标检测任务中正负样本极度不均衡且目标检测的损失极容易被大量的简单负样本所左右的问题被提出的。在典型的交叉熵损失函数中加入指数式系数即可自动调节正负样本对损失函数的贡献。
二分类任务的交叉熵损失函数公式如下:
若有:
则对于二分类的focal loss则定义为:
FL(pt)=-(1-pt)γlog(pt)
在此基础上可以引进另一个调整权重的超参数
FL(pt)=-αt(1-pt)γlog(pt)
这个函数可以通过减少易分样本(easy example)的权重,使得模型在训练时更专注于难分样本(hard example)。αt参数可控制正负样本数量的平衡,γ参数则用于降低损失函数中易分样本(easy example)的权重。上述公式中,y为ground truth的类标,对于本专利中,y的取值为1和0,分别代表结节和正常区域。p是模型对于类标y=1所得到的预测概率,其值介于0-1之间
具体到实际应用,以肺结节检测为例,当某ROI区域类别比较明确时,它对整体损失的贡献比较少;当某ROI区域类别不易区分时,其对整体损失的贡献就相对偏大,最终得到的整体损失将“指导”模型去分辨难分的目标类别,于是对于整体肺结节检测的准确度得到提升。在此类检测任务中,对于focal loss损失函数中的超参数的确定方法如下:
可以根据标准数据集或第一图像数据集在神经网络模型上的表现,统计检出率和假阳性率,动态调节αt的值,当模型的检出率和平均假阳率达到一个可接受的平衡时(一般情况下满足检出率大于等于92%,平均每个CT影像的假阳性结果个数在2左右,若检出率满足要求,但平均假阳率太高,也可适当减少αt的值),则可选择在此结果下的αt。同时,可根据检出率和假阳性率的高低走向来确定是否需要设定更高的γ值:检出率高平均假阳率低的情况下,可保持此结果下的γ值不变,若两者数值均较小,则适当增大γ值。同样的,以肺部CT图像的结节检测为例,最终设置的αt值为0.9,γ为2,该参数下用于目标检测的神经网络在LUNA16数据集上的表现良好。
在另一个优选实施方式中,可以同时使用标注框标注的真实目标(ground truth)生成负样本,并使用生成的负样本对所述神经网络模型进行训练。
使用标注框标注的真实目标(ground truth)生成负样本的步骤具体为:当锚点与标注框部分重合且重合度(IOU)小于预设的第二阈值时,将所述锚点标记为负样本。第二阈值的典型取值为0.05,0.1,0.15,0.2等不同的值,优选为0.1。
本优选实施方式对于用于医学图像中的病灶识别有较好的作用,特别是肺部结节检测。基于先验的医学知识,结节不会在同一块区域高频次出现,因此可以在结节周围选取一些跟结节的IOU小于0.1的区域并将其标记为非结节区域,这部分负样本进一步弥补了原本负样本中易分样本(easy example)远多于难分样本(hard example)的缺陷。
对网络参数的更新一般按照减小所述损失函数的值的方向,对所述神经网络模型的网络参数进行更新,通过大量样本的反复迭代训练,不断更新网络参数,从而得到训练好的神经网络,最终可以用来进行目标检测。
实施例三
如附图5所示,本发明的实施例三提供了一种使用神经网络模型进行图像处理的方法,以检测图像中的目标。方法具体包括以下步骤:
S401:获取待处理的图像。
待处理图像为对神经网络训练使用的样本图像同类的图像,待检测的目标和样本图像中标注的目标类别相同。
和之前实施例相同,本实施例仍然以人体肺部图像为例,检测目标为肺部结节。本发明的保护范围并不仅限于此,根据标注数据的不同,本发明的数据标注方法、神经网络训练方法和图像处理方法可以用于多种不同类别图像和目标的检测。
S402:调用神经网络模型对所述图像进行目标检测,得到所述图像中的目标检测结果。
本步骤中使用的神经网络模型为经过训练的模型,模型训练使用实施例二中的模型训练方法对预设神经网络模型进行训练得到;模型训练使用的标注数据使用实施例一中的数据标注方法得到。
S403:输出所述目标检测结果。
目标检测结果包括用于指示目标标注框,对于每个检测出的目标,神经网络模型同时会给出一个置信度。因此,最终输出的目标检测结果为在原始图像上使用标注框标注出每个检测到的结果的范围,并给出每个检测结果的置信度。
医学图像的病灶检测中,检测结果一般用于辅助医生的临床诊断。
为了测试本发明技术方案的效果,仍然以肺部图像的结节检测为例,在公开数据集LUNA16上进行测试,并将结果呈现在下表中,同时将结果与如下两个公开方法结果进行对比:
1、DingJ.,Li,A.,Hu,Z.,Wang,L:Accurate pulmonary nodule detection incomputed tomography images using deep convolutional neural networks In:MICCAI.(2017)559-567]
2、Dou,Q.,Chen,H.,Jin,e,:Automated pulmonary nodule detection via 3dconvnets with online sample filtering and hybrid-loss residual learning.In:MICCAI.(2017)630-638]
实验具体设置如下:
LUNA16数据集是最大公用肺结节数据集LIDC-IDRI的子集,LIDC-IDRI包括1018个低剂量的肺部CT影像。LIDC-IDRI删除了切片厚度大于3mm和肺结节小于3mm的CT影像,剩下的就是LUNA16数据集,共计888张CT图像。在LUNA16中,满足结节大于3mm的结节有5765个,若两个结节离得太近(中心距离小于半径之和,相交的情况下),则对两个结节进行合并,合并的中心和半径是该两个结节的均值,经此处理,还剩下2290个结节。由于标注的时候采用四位专家,最后取至少由三位专家标注的1186个结节作为最后要检测的区域。但是对于未作为待选ground truth的已标记区域,在后续的处理过程中,若算法检测出这些不相关区域,不会处理为假阳区域,也不会处理为真阳区域,不影响检测结果。
整个数据集被等分成10份,需要对该数据集执行十折交叉验证,过程如下:
(1)取一份做测试集,其余九份做训练集
(2)在训练集上训练算法
(3)在测试集上测试,并保存结果文件(结果文件包含CT图像的标号,该CT对应检测出的结节的x,y,z的坐标,score为该检测结果的置信度)
(4)完成十折交叉验证后,将结果取均值融合成一份。
判断检测结果是否是真阳性结节的准则如下:
如果检测的结节坐标位于结节半径范围内,则为真阳性结节,如果有多个候选区域都与一个结节有关,选取置信度最高的;若候选区域属于上述不相关区域,则不计入结果,剩下的候选区域就属于假阳区域。
实验结果评估采用机器学习算法中常用的FROC(Free-Response ReceiverOperating Characteristic)准则来衡量。具体的,本专利中FROC准则刻画的是召回率(测试所有CT数据中实际是结节的检测出来个数/测试所有CT数据中实际是结节个数)和平均每个CT图像上的假阳结节个数(测试中所有不是实际结节预测成结节的个数/测试CT的个数,FPs/scan)之间的关系。
结果对比:
方法 |
0.125 |
0.25 |
0.5 |
1 |
2 |
4 |
8 |
Mean |
Dou,et al |
0.659 |
0.745 |
0.819 |
0.865 |
0.906 |
0.933 |
0.946 |
0.839 |
Ding,et al |
0.748 |
0.853 |
0.887 |
0.922 |
0.938 |
0.944 |
0.946 |
0.891 |
本发明 |
0.744 |
0.828 |
0.888 |
0.940 |
0.961 |
0.975 |
0.979 |
0.9023 |
表格中的数据分别为0.125FPs/scan,0.25FPs/scan,0.5FPs/scan,1FPs/scan,2FPs/scan,4FPs/scan,8FPs/scan时对应的结节的召回率,最后一列是平均灵敏度。本发明的方案相对于现有技术中的方案有更好的结果。此外,附图6中给出了结节检测结果的一些示例。
实施例四
如图7所示,本发明的实施例四提供一种神经网络模型训练装置,模型训练装置可以是运行于终端中的一个计算机程序(包括程序代码)。该模型训练装置可以执行实施例二中的模型训练方法,具体包括:
获取单元,用于获取样本图像、所述样本图像中用来标注真实目标的标注框和标注的负样本;
更新单元,用于根据所述神经网络模型的损失函数,更新所述神经网络模型的网络参数;
训练单元,用于根据更新后的网络参数对所述预设图像处理模型进行迭代训练,得到目标图像处理模型。
模型训练装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于模型训练装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行实施例二中相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如附图7中所示的模型训练装置设备,以及来实现本发明实施例的模型训练方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
实施例五
本发明的实施例五提供一种图像处理装置,包括:
获取单元,用于获取待处理的图像;
处理单元,用于调用神经网络模型对所述图像进行目标检测,得到目标检测结果;所述神经网络模型采用前述实施例中的模型训练方法对预设神经网络模型进行训练得到;
输出单元,用于输出所述目标检测结果。
实施例六
本发明的实施例六提供一种计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行前述实施例中的模型训练方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行前述实施例中的图像处理方法。
本发明各实施例方法中的步骤可根据实际需要进行顺序调整、合并和删减。
本发明各实施例装置中的单元可根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上结合附图详细说明了本发明的技术方案,以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。