本发明涉及计算机视觉图像处理技术领域,尤其是涉及一种基于弱监督学习的舌体图像分割方法。
背景技术:
舌体图像分割是整个舌诊量化系统最重要的步骤,由于舌体的近似半椭圆形的结构,矩形的图像采集区域会包含很多非舌体的背景,舌体图像分割的主要工作就是将舌体从人的脸部、嘴巴及牙齿等背景中准确分割出来,在此基础上进行后续的舌象分类。如果舌体图像没有准确分割出来,特征提取的结果就会产生较大差异,导致后续训练舌象分类器的效果不理想。所以需要在包含其他背景的舌体图像把舌体精细的分割出来。
关于舌体分割的算法目前来说主要有两大类,一类是传统的无监督算法,其优点是不需要任何标签直接进行分割,简单快捷,但是其分割的质量残差不齐,泛化性太差,分割效果难以保证达到后续舌诊的要求。第二类是全监督的语义分割,该类算法需要事先得到像素级的人工标签,也就是需要手工把输入图像上所有像素点是属于前景还是属于背景标注出来,前景标注为白色,背景标注为黑色,即希望模型能够得到的分割结果,相当于考试中的参考答案。该类算法的优点在于分割效果良好,数据越多,效果越好,缺点在于一是需要大量的数据才能训出比较好的效果,二是像素级的标签十分耗时耗力,对大量数据集进行标注需要较高的成本。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于弱监督学习的舌体图像分割方法。
本发明的目的可以通过以下技术方案来实现:
一种基于弱监督学习的舌体图像分割方法,具体包括如下步骤:
s1、采集大量的含有舌体的原始图像,对原始图像选择性搜索,获取大量的候选框。
利用graph算法对原始图像进行预分割,获取大量区域,随后寻找相似度最高的两个相邻区域并将其合并为新区域,迭代直至无法继续合并,新区域集合即为获得的候选框。
s2、对原始图像进行随机数据增强,并采用分类网络进行训练,利用训练后的分类网络对获取的大量候选框进行评分,以对候选框进行筛选。对原始图像进行随机数据增强的具体内容为:
对原始图像的以下扩充数据随机组合,扩充数据包括:将原始图像的旋转角度从-30度转换至30度,将原始图像的焦距从80%变更至到120%,将原始图像的高斯模糊的标准差从0.25变更至0.5,高斯噪声系数为0.03。
采用分类网络进行训练,利用训练后的分类网络对获取的大量候选框进行评分的具体内容为:
21)以原始图像作为输入,经过卷积操作得到初始特征图;
22)以候选框和初始特征图为输入,通过空间金字塔池化操作得到候选框区域的特征图,随后继续进行公共卷积操作,获取最新的特征图;
23)将最新的特征图分别通过卷积操作和softmax函数得到两个得分,求取两个得分的内积作为最终得分,最终得分的分值越高,表示候选框中包含的舌头的概率越大。
优选地,分类网络损失函数采用带l2正则项的交叉熵损失函数,其表达式为:
式中,y为输入图片数据的标签,即输入图片数据是否包含舌头的标注,
s3、对步骤s2筛选的候选框集合进行优化,获取最终的舌体边界框。具体步骤包括:
31)删除步骤s2中最终得分低于0.8的候选框;
32)采用非极大值抑制优化步骤31)得到的候选框集合;具体地:
a)对步骤31)得到的候选框集合按照最终得分从大到小进行排序,并作为候选框输入列表;
b)选择最终得分最高的候选框添加至最终输出集合中,将其从候选框输入列表中删除;
c)遍历候选框输入集合,将各候选框输入集合分别与上一步选取的最终得分最高的候选框计算交并比,交并比的计算公式如下所示:
式中,areaofoverlap为预测的边界框和作为标签的边界框的交集的大小,areaofunion为预测的边界框和作为标签的边界框的并集的大小,若交并比高于某个阈值,则认为该候选框与最终得分最高的候选框重叠,将此候选框从候选框输入列表中删除;
d)重复上述过程,直至候选框输入列表为空。
33)通过rpn网络对步骤32)得到的候选框集合进一步优化,获取最终的边界框。即将步骤32)剩余的候选框作为伪groundtruth标签训练rpn网络,期望来自rpn的结果边界框具有比伪groundtruth标签更接近真实目标的轮廓,对于每一个伪groundtruth边界框,保留rpn网络生成的候选框中与伪gt边界框的iou高于阈值的候选框,最后以该集合中所有候选框坐标的平均值作为输出,获取包含并且最贴近舌体的边界框。
将保留的rpn网络生成的候选框中与伪gt边界框的iou高于阈值的候选框表示为b_rpnk={b_rpn1,b_rpn2,b_rpn3,…,b_rpnm},则输出的最贴近舌体的边界框的表达式如下所示:
式中,x表示边界框坐标值,具体为边界框四个顶点的横纵坐标;xoutput表示输出边界框的各个坐标值;xb_rpnk表示候选框b_rpnk对应的坐标值,m为边界框的个数。
s4、利用通用的边界数据集预先训练hed边界检测器,随后利用训练好的hed边界检测器模型对步骤3)得到的边界框内的图像进行边缘检测。
s5、对边缘检测得到的检测图像采用grabcut进行分割,获取最终的舌体分割结果。具体地:
分别对步骤s4边缘检测后的输入图像分割100次,对于输入图像中的每个像素,若存在高于阈值70次以上的像素,则将该像素标记为属于舌体,并判断该像素属于舌体,否则属于非舌体像素;最终将判断的舌体像素从原始图像中单独取出,获取最终的舌体分割结果。
与现有技术相比,本发明具有以下优点:
1)本发明基于弱监督分割算法,通过对原始图像获取候选框,并基于非极大值抑制和rpn网络对边界框进行优化,在最终获取的边界框内进行hed边缘检测,并采用基于集成学习的grabcut进行分割,能够在没有像素级标签的情况下准确地将舌体图像与其他不相关的物体对象分割,与现有技术相比具有更优的分割效果和模型的泛化性;
2)本发明方法在对边界框进行优化之前对于原始数据集的每个图像进行了随机数据增强,然后利用训练后的分类网络进行评分,减少了舌体图像的分割难度,通过对数据集的扩充进一步提高了模型的泛化性;
3)弱监督分割算法无需同现有的全监督算法需要大量带像素级标签的训练数据,能够有效提高较大图像分割速率,提升分割精度,避免了大量的标注时间,省时省力,大大降低了标注数据所带来的成本;
4)本发明在最终分割之前结合了现有技术未曾使用到的轮廓信息并采用了集成学习分割方法,利用训练好的hed边界检测器获取舌体的轮廓信息,将边缘检测后的图像采用集成grabcut分割,经过多次判断获取最终的舌体分割结果,在直接进行分割的基础上可进一步提高分割结果的精度。
附图说明
图1为本发明方法的原理框架图;
图2为本发明方法中弱监督舌体检测器的结构示意图;
图3为本发明实施例中不同阶段的舌体分割结果图;
图4为本发明实施例中最终的舌体分割示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
弱监督分割算法是在没有像素级注释的低效率情况下,使用各种形式的弱标签注释来完成期望的分割。常用的弱标签有对象边界框,scribbles,在图像上各个实例部分简单标注或者图像级别的标签。这些方法利用弱标签进行语义分割,这也使得带标签数据的收集更容易且负担更轻。
基于弱监督分割算法的优势,如图1所示,本发明的框架可以分为舌体位置检测及舌体分割两部分。第一个部分为舌头生成边界框,第二个部分在第一步的边界框的基础上获得舌头分割。本发明方法中提供了一个舌体图像检测器,通过几个步骤生成舌体图像边界框。第二部分利用来自第一部分的边界框来通过轮廓感知grabcut方法获得舌头分割。对于舌体图像,需要获得表示这张图像是否含有舌体的图像级别的标签,不需要像素级的掩模,通过一个弱监督检测器来检测出舌头的精确位置,对最终边界框中的舌体图像进行hed边缘检测,然后采用迭代100次的grabcut来对边界框内的舌体图像进行分割,对每次的结果进行投票。如果有70次以上认为这个像素点属于舌体,那么最终判定这个像素点为舌体,否则为背景。本发明基于弱监督学习的舌体图像分割方法的具体实现过程包括如下步骤:
步骤一、获得大量的候选框。
对原始图像选择性搜索,即通过传统算法graph进行预分割得到很多区域,找出相似度最高的两个相邻区域合并为新的区域,一直迭代直至无法继续合并,新的区域集合就是获得的候选框,即输入为原始图像,输出为候选框集合。具体流程如下:
1.1)采用graph分割输入图像,生成区域集合r={r1,r2,…}。
1.2)计算区域集合r里每两个相邻区域的相似度s={s1,s2,…}。
1.3)找出相似度最高的两个区域,将其合并为新的区域,添加进r。相似度计算方式如下:
s(rr,rj)=a1scolor(ri,rj) a2stexture(ri,rj) a3ssize(ri,rj) a4sfill(ri,rj)。
式中,s(ri,rj)为相邻区域i和区域j的总相似度,其等于颜色相似度scolor(ri,rj),纹理相似度stexture(ri,rj),尺寸相似度ssize(ri,rj),交叠相似度sfill(ri,rj)分别乘上它们的权重a1、a2、a3、a4之和。
1.4)从s中移除所有与步骤1.3)中有关的所有子集。
1.5)计算新集与所有子集的相似度。
1.6)跳至步骤1.2),直至s为空。
步骤二、训练分类网络,对这些候选框进行评分。
训练数据标签设定为是否包含舌头,是则标签记为1否则为0。对于原始数据集的每个图像进行随机数据增强。具体来说,随机组合下列因素扩充数据,旋转角度从-30到30度,从80%到120%变焦,高斯模糊的σ从0.25到0.5变化,高斯噪声系数为0.03。这些增强数据用于训练一个弱监督舌体检测网络来对输入区域包含舌头的概率进行评分。具体设计如下:
如图2所示,首先以原始图像image作为输入,经过卷积操作得到特征图featurecon5,然后以候选框region和特征图featureconv5作为输入,通过空间金字塔池化操作得到候选框那部分区域的特征图featureregion,继续进行公共卷积操作得到特征图featurefc7,接下来分为两个分支,分类分支和检测分支,通过卷积操作和softmax函数得到各自的得分rcla,rdet。最终得分score就是这两个得分的内积。损失函数l采用了带l2正则项的交叉熵损失函数以避免模型过拟合,y表示该数据的标签,即图片数据是否包含舌头;
featurecon5=resnet-50(image)
featureregion=spp(featureconv5,region)
featurefc7=cnn(featureregion)
rcla=softmax(cnn(featurefc7))
rdet=softmax(cnn(featurefc7))
score=rcla·rdet
分数score越高,表示包含舌头的概率越大。
步骤三、对候选框集合进行优化合并得到最终的舌体边界框。具体地:
3.1)删除得分低于0.8的候选框;
步骤二获得了每个候选框可能包含舌头的得分,分数越高,包含舌头的概率越大,根据实际情况设定一个阈值0.8,把质量较低的候选框删除,成功地消除了在其他不相关的物体对象(例如眼睛,耳朵,鼻孔等)处覆盖的候选框,并且仅保留舌头上覆盖的那些候选框。
3.2)在步骤3.1)获得的候选框集合上进行进一步的优化,使用非极大值抑制优化候选框集合,设计方法如下:
(a)根据得分进行排序,按分类网络给出的分数将候选框从大到小排序;
(b)选择得分最高的候选框添加到最终输出集合中,将其从候选框列输入集合中删除。
(c)遍历候选框输入集合,分别与上一步选出来得分最高的那个候选框计算交并比,交并比的计算公式如下所示:
式中,areaofoverlap表示预测的边界框和作为标签的边界框的交集的大小,areaofunion表示预测的边界框和作为标签的边界框的并集的大小。如果交并比高于某个阈值(根据实际情况进行设定),则认为该候选框与得分最高的候选框重叠,将此候选框从候选框输入集合中删除。
(d)重复上述过程,直至候选框输入列表为空。
3.3)对步骤3.2)获得的候选框进一步优化合并,得到一个紧凑的舌体边界框,通过rpn网络获得最终的边界框。设计方法如下:
在从步骤3.2)中删除候选框集合中的那些不合格的候选框之后,对剩余的候选框进行进一步处理。即利用完全监督的框架rpn来改进那些剩余的候选框。使用这些候选框作为伪groundtruth标签来训练rpn网络。期望来自rpn的结果边界框具有比伪groundtruth标签更接近真实目标的轮廓。对于每个伪groundtruth边界框,把rpn网络生成的候选框中与伪gt边界框的iou高于阈值的那些保留下来,表示为b_rpnk={b_rpn1,b_rpn2,b_rpn3,…,b_rpnm},最后以该集合中所有候选框坐标的平均值作为输出,起到合并效果,从而获取包含并且最贴近舌体的边界框。输出边界框的表达式如下:
式中,x表示边界框坐标值,具体为边界框四个顶点的横纵坐标;xoutput表示输出边界框的各个坐标值;xb_rpnk表示候选框b_rpnk对应的坐标值,m为边界框的个数。
步骤四、在步骤三得到舌体边界框的基础上,对边界框内的图像进行边缘检测。
具体地:
首先在通用的边界数据集上预先训练hed边界检测器。然后利用训练好的模型对边界框内的图像进行边缘检测,从而为后续的分割提供舌体的轮廓信息。
步骤五、对步骤四边缘检测得到的检测图像结果采用grabcut分割。具体地:
分别对输入图像分割100次,对于输入图像中的每个像素,如果有高于阈值(实验中自行设置的阈值)70次以上将这个像素标记为属于舌体,那么则认为该像素属于舌体,否则属于非舌体像素。最后把获得的舌体像素从原始图像中单独取出来就是最终的舌体分割结果。分割结果如图3所示。
如图4所示,本发明提供的基于弱监督学习的舌体分割方法能够精确的检测出舌体位置,并获得精细的分割结果。同时经实验结果验证,本发明在训练集上的平均iou高达95.06%,不仅远远高于grabcut这类的传统算法,也优于fcn,unet,deeplabv1,deeplabv2这些基于全监督学习的分割方法。本发明不需要像素级的标签,对于训练数据要求较低,而且分割效果良好,足以满足进行后续舌象检测的需求。
本发明基于弱监督分割算法,通过对原始图像获取候选框,并基于非极大值抑制和rpn网络对边界框进行优化,在最终获取的边界框内进行hed边缘检测,并采用基于集成学习的grabcut进行分割,能够在没有像素级标签的情况下准确地将舌体图像与其他不相关的物体对象分割,与现有技术相比具有更优的分割效果和模型的泛化性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
1.一种基于弱监督学习的舌体图像分割方法,其特征在于,包括下列步骤:
1)采集大量的含有舌体的原始图像,对原始图像选择性搜索,获取大量的候选框;
2)对原始图像进行随机数据增强,并采用分类网络进行训练,利用训练后的分类网络对获取的大量候选框进行评分,以对候选框进行筛选;
3)对步骤2)筛选的候选框集合进行优化,获取最终的舌体边界框;
4)对最终的边界框内的图像进行边缘检测;
5)对边缘检测得到的检测图像采用grabcut进行分割,获取最终的舌体分割结果。
2.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤1)中,对原始图像选择性搜索,获取大量的候选框的具体内容为:
利用graph算法对原始图像进行预分割,获取大量区域,随后寻找相似度最高的两个相邻区域并将其合并为新区域,迭代直至无法继续合并,新区域集合即为获得的候选框。
3.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤2)中,对原始图像进行随机数据增强的具体内容为:
对原始图像的以下扩充数据随机组合,扩充数据包括:将原始图像的旋转角度从-30度转换至30度,将原始图像的焦距从80%变更至到120%,将原始图像的高斯模糊的标准差从0.25变更至0.5,高斯噪声系数为0.03。
4.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤2)中,采用分类网络进行训练,利用训练后的分类网络对获取的大量候选框进行评分的具体内容为:
21)以原始图像作为输入,经过卷积操作得到初始特征图;
22)以候选框和初始特征图为输入,通过空间金字塔池化操作得到候选框区域的特征图,随后继续进行公共卷积操作,获取最新的特征图;
23)将最新的特征图分别通过卷积操作和softmax函数得到两个得分,求取两个得分的内积作为最终得分,最终得分的分值越高,表示候选框中包含的舌头的概率越大。
5.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤2)中,分类网络损失函数采用带l2正则项的交叉熵损失函数,其表达式为:
式中,y为输入图片数据的标签,即输入图片数据是否包含舌头的标注,
6.根据权利要求5所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤3)具体包括如下步骤:
31)删除步骤2)中最终得分低于0.8的候选框;
32)采用非极大值抑制优化步骤31)得到的候选框集合;
33)通过rpn网络对步骤32)得到的候选框集合进一步优化,获取最终的边界框。
7.根据权利要求6所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤32)的具体步骤包括:
a)对步骤31)得到的候选框集合按照最终得分从大到小进行排序,并作为候选框输入列表;
b)选择最终得分最高的候选框添加至最终输出集合中,将其从候选框输入列表中删除;
c)遍历候选框输入集合,将各候选框输入集合分别与上一步选取的最终得分最高的候选框计算交并比,交并比的计算公式如下所示:
式中,areaofoverlap为预测的边界框和作为标签的边界框的交集的大小,areaofunion为预测的边界框和作为标签的边界框的并集的大小,若交并比高于某个阈值,则认为该候选框与最终得分最高的候选框重叠,将此候选框从候选框输入列表中删除;
d)重复上述过程,直至候选框输入列表为空。
8.根据权利要求6所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤33)的具体内容为:
将步骤32)剩余的候选框作为伪groundtruth标签训练rpn网络,期望来自rpn的结果边界框具有比伪groundtruth标签更接近真实目标的轮廓,对于每一个伪groundtruth边界框,保留rpn网络生成的候选框中与伪gt边界框的iou高于阈值的候选框,最后以该集合中所有候选框坐标的平均值作为输出,获取包含并且最贴近舌体的边界框。
9.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤4)的具体内容为:
利用通用的边界数据集预先训练hed边界检测器,随后利用训练好的hed边界检测器模型对步骤3)得到的边界框内的图像进行边缘检测。
10.根据权利要求1所述的一种基于弱监督学习的舌体图像分割方法,其特征在于,步骤5)的具体内容为:
分别对步骤4)边缘检测后的输入图像分割100次,对于输入图像中的每个像素,若存在高于阈值70次以上的像素,则将该像素标记为属于舌体,并判断该像素属于舌体,否则属于非舌体像素;最终将判断的舌体像素从原始图像中单独取出,获取最终的舌体分割结果。
技术总结