发明内容
为了克服现有技术的不足,本发明提供了一种快速构建心脏冠脉血管识别数据集的方法,该方法在大量减少人工标注成本的同时保证了数据集的质量,基于本发明数据集进行训练的人工神经网络效果好于上一个专利(201810441538.4)的数据集,而且训练速度可以得到一个明显的提升。
本发明解决其技术问题所采用的技术方案是:
一种快速构建心脏冠脉血管识别数据集的方法,包括:
获取含有心脏冠脉数据的原始图片;
按照专业医学的命名规则,在原始图片中使用对应颜色标注当前体位下的血管,存储形成粗标注图片;
从原始图片中随机选取一定数量的图片,并根据对应的粗标图对其进行像素级标注以形成精标注图片;
识别精标注图片中血管的颜色,将每种颜色存储为对应的唯一标号,使图片由三通道图像变成单通道图像;将单通道图像二值化处理并存储为二值化图片;
将二值化图片以及其对应的原始图片作为训练数据,对初始卷积神经网络进行训练,得到一个能够将血管和导丝从背景分离的网络,记为第一网络;
将所有的原始图片输入到上述第一网络中,得到二值化结果图;
基于所述二值化结果图及其对应的粗标注图片生成伪精标注图片;
基于原始图片、精标注图片及伪精标注图片建立训练识别心脏血管的卷积神经网络数据集,以对相应的神经网络进行训练。
进一步的,基于所述二值化结果图及其对应的粗标注图片生成伪精标注图片,包括如下步骤:
S1:寻找一个二值化结果图上未标记的像素点(记为“此像素点”),判断此像素点在二值化结果图上是否是血管或导丝,若否,则标记此像素点,若是,则进入步骤S2;
S2:判断此像素点在相应的粗标注图片上是否是血管,若是,则将粗标注图片上的对应像素值赋予此像素点并标记此像素点,若否则进入步骤S3;
S3:获取在粗标注图片上以此像素点所对应的像素点为中心的K*K个像素点,统计这些像素点中属于血管的像素点,若统计结果不存在(所获取的K*K个像素点均不属于血管),则将此像素点在二值化结果图上标注为“不关注血管/漏液”,同时将粗标注图片上的对应像素值赋予此像素点并对此像素点进行标记;若统计结果存在则进入步骤S4;
S4:在所获取的K*K个像素点中找出拥有像素点最多的血管类别,并将此血管类别对应的像素值赋给二值化结果图上对应的像素点(即此像素点),同时标记此像素点;
S5:重复步骤S1-S4,直至二值化结果图上的像素点均被标记。
进一步的,所述原始图片为通过DSA技术提取的静态图片。
进一步的,所述体位包括但不限于头位(CRA),足位(CAU),左前斜(LAO),左前斜足位(LAO_CAU),左前斜头位(LAO_CRA),右前斜足位(RAO_CAU),右前斜头位(RAO_CRA)。
进一步的,所述从原始图片中随机选取一定数量的图片,根据对应的粗标注图片对其进行像素级标注以形成精标注图片,包括:
将粗标注图片中标注的血管,用对应的颜色完全填充,同时单独标出导丝;对于粗标注图片中没有特别标注的血管,以及导丝附近与背景明显不同的阴影,统一标注为不关注血管或漏液,存储后形成精标注图片。
进一步的,所述将单通道图像二值化处理并存储为二值化图片,包括:
将单通道图像中的血管和导丝显示白色,背景显示黑色,
其中,G[i,j]为二值化图片中第i行第j列上像素的值,S[i,j]为单通道图片中第i行第j列上像素值。
进一步的,所述基于原始图片、精标注图片及伪精标注图片建立训练识别心脏血管的卷积神经网络数据集,以对相应的神经网络进行训练,包括:
将伪精标注图片和对应的原始图片作为训练数据,对所述第一网络进行训练,得到一个能够识别和定位心脏冠脉血管的初始像素级分割网络,记为第二网络,并保存下来;
将一定量所述精标注图片和对应的原始图片作为训练数据,输入到所述初始像素级分割网络(即所述第二网络)中进行训练,以对网络进行微调,得到一个精度更高的最终像素级分割网络。
本发明的积极效果:本发明建立了“伪精标注”的获取方法,即基于生成的二值化结果图和标注的带有血管类别和走向的粗标注图生成一个近似精标注图片的伪精标注图片,可以在短时间内大量生产伪精标注图片,从而不需要人工对图片进行精标注。且获得的伪精标注图片和精标注图片类似,所以使用伪精标注图片进行的训练结果不差于使用精标注图片进行训练的结果。与此同时,使用伪精标注图片训练之后再使用极少量真正的精标注图片对得到的模型进行再训练,训练速度和结果可以得到很大幅度的提升,明显优于单独使用精标注数据进行训练的结果。总之,通过本发明提供的技术方案,可以对数据作统一标准的处理,得到一个格式标准、错误率较小的数据集,同时数据集的构建大幅度减少了人工成本和时间成本,使人工干预从需要像素级描点标注减少到了简单的画线,且数据集的数据真实、多样,数据量大,数据类型丰富,可以用于训练不同功能的神经网络。
具体实施方式
下面对本发明的技术方案进行具体阐述,需要指出的是,本发明的技术方案不限于实施例所述的实施方式,本领域的技术人员参考和借鉴本发明技术方案的内容,在本发明的基础上进行的改进和设计,应属于本发明的保护范围。
实施例一
如图1所示,本发明实施例一提供了一种快速构建心脏冠脉血管识别数据集的方法,该方法包括步骤S110-步骤S180:
在步骤S110中,获取含有心脏冠脉数据的原始图片,具体为:
获取脱敏处理后的心脏冠脉数据,将所述心脏冠脉数据以单张静态图片形式存储,每张所述单张静态图片绑定唯一序号。
其中,所述获取脱敏处理后的心脏冠脉数据的步骤包括:
获取包括健康的心脏冠脉数据和病变的心脏冠脉数据。心脏冠脉数据的原始数据均为与医院联系、经过病人同意之后取得的真实数据,包括健康的心脏冠脉数据和病变的心脏冠脉数据。提取的数据均以dicom格式的文件保存。Dicom(Digital Imaging andCommunications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准,它定义了质量能满足临床需要的可用于数据交换的医学图像格式。本发明中的dicom文件中除了有DSA影像,还包含病人的姓名、出生年月、性别、拍摄时间、医院信息、拍摄体位(角度)的信息。
删除无关数据后形成只含有DSA影像和拍摄体位信息的dicom文件的心脏冠脉数据。
为了保护病人的隐私,同时减小数据存储量,将与标注无关的信息剔除。使用的脱敏系统具有dicom文件接口,dicom文件读入内存后是一个结构类型的数据,系统自动将脱敏系统自动将姓名、出生年月、性别、拍摄时间和医院信息的词条删除,形成一个新的只含有DSA影像和拍摄体位信息的dicom文件。
进一步的,所述将所述心脏冠脉数据以单张静态图片形式存储,每张所述单张静态图片绑定唯一序号的具体步骤包括:
dicom文件中存储的DSA影像是一组连续图片帧,将其处理成单张静态图片的形式。这一步可以人工提取也可以自动提取,提取后图片保存的统一命名格式为:【序号_体位_src.png】。其中序号是在数据库中唯一的标号,根据图片提取的先后顺序从小到大排列;
自动提取的方法根据心脏冠脉数据中DSA影像的长短,提取并存储影像中预设数量的单张静态图片;如选取视频的中间段的一定数量的图像,原理:
F(N)=f(n)×g(n)×D(n)
其中,F(N)是一组单张静态图片的集合,N表示每张单张静态图片绑定唯一序号;f(n)是脱敏处理后的心脏冠脉数据的原始的DSA影像;g(n)是一个门函数,其中
是向下取整符号,λ是一个可变参数,0≤λ≤0.5,l表示原始的DSA影像的图片帧数,n表示原始的DSA影像的图片帧序号,0≤n≤l;D(n)是冲激函数δ(n)组成的抽样函数,m是可变参数,控制静态图片提取的数量。
获得的图片如图2所示。
在步骤S120中,按照专业医学的命名规则,在原始图片中使用对应颜色标注当前体位下的血管,存储形成粗标注图片;同时可将不同体位的粗标图分类存储。
所述体位包括但不限于头位(CRA),足位(CAU),左前斜(LAO),左前斜足位(LAO_CAU),左前斜头位(LAO_CRA),右前斜足位(RAO_CAU),右前斜头位(RAO_CRA)。
所述在原始图片中使用对应颜色标注当前体位下的血管,具体为在原始静态帧图片上进行简单的描画,标出当前体位下能观察到的主要血管及其走向。其中每个颜色和血管都是一一对应的,即一个颜色在任何体位下都只代表一种血管,每种血管只能由一种颜色表示,如表1所示。
表1
标注后图片保存的统一命名格式为【序号_体位_mask.png】。其中序号和体位与原图一致。标注结果如图3所示(实际为没有提示框的彩色图)。
根据每张静态图片所携带的体位信息(以文件名的形式),将不同体位的数据分离开来:
使用机器识别每张静态图片的文件名中所包含的体位信息,将数据分为头位(CRA),足位(CAU),左前斜+足位(LAO_CAU),左前斜+头位(LAO_CRA),右前斜+足位(RAO_CAU),右前斜+头位(RAO_CRA),不同体位的图片分别存放在不同的文件夹内。
左前斜和右前斜的图片还可分为左冠和右冠。使用机器检测图片内的像素颜色信息,如果图片中包含(255,0,0),(0,231,12),(177,207,24)中任一一个颜色的像素点,就归类为右冠,将文件名改为【序号_体位_R_src.png】和【序号_体位_R_mask.png】,剩下的图片归类为左冠,文件名改为【序号_体位_L_mask.png】和【序号_体位_L_src.png】。
在步骤S130中,从原始图片中随机选取一定数量(视人工资源而定,一般而言100张图就可以保证后期训练的精度)的图片,并根据对应的粗标注图片对其进行像素级标注以形成精标注图片,具体为:
将选取的原始图片所对应的粗标注图片中标注的血管,用对应的颜色完全填充,同时单独标出导丝;对于粗标注图片中没有特别标注的血管,以及导丝附近与背景明显不同的阴影,统一标注为不关注血管或漏液,存储后形成精标注图片,图片保存为【序号_体位_(R/L/无)_label.png】。血管和对应颜色如表2所示:
表2
其中,选取原始图片时,可按不同体位等比例随机挑选,并根据静态图片绑定唯一序号在粗标注图片中选取对应图片(文件名中带有mask的数据)。
像素级标注后的精标示图片,如图4所示,其中:
1为右主干(近),RGB值为(255,0,0)
2为右主干(中),RGB值为(255,0,128)
3为右主干(远),RGB值为(0,255,128)
4为后降支(右),RGB值为(128,128,255)
5为后侧支,RGB值为(128,255,128)
6为导丝,RGB值为(255,255,255)
椭圆圈出的部分为不关注血管/漏液,RGB值为(150,150,150)
所有黑色部分为背景,RGB值为(0,0,0)。
在步骤S140中,识别精标注图片中血管的颜色,将每种颜色存储为对应的唯一标号,使图片由三通道图像变成单通道图像;将单通道图像二值化处理并存储为二值化图片,具体为:
步骤S140之前的标注数据(mask、label)都是有颜色的,因此都是三通道图像,在这一步中使用机器识别每个像素点的RGB颜色信息,将每种颜色对应成一个数字标号存储下来,使图片变成一张单通道图像。文件名为【序号_体位_(R/L/无)_single.png】。如表3所示:
表3
所述将单通道图像二值化处理并存储为二值化图片,包括:
将单通道图像中的血管和导丝显示白色,背景显示黑色,
其中,G[i,j]为二值化图片中第i行第j列上像素的值,S[i,j]为单通道图片中第i行第j列上像素值。
在步骤S150中,将二值化图片以及其对应的原始图片作为训练数据,对初始卷积神经网络(可以是能完成任务的任意结构)进行训练,得到一个能够将血管和导丝从背景分离的网络,记为第一网络;
在步骤S160中,将所有的原始图片输入到上述第一网络中,得到二值化结果图;
在步骤S170中,基于所述二值化结果图及其对应的粗标注图片生成伪精标注图片,其生成伪精标注图片流程图如图5所示,具体步骤为:
S1:寻找一个二值化结果图上未标记的像素点(下称“此像素点”),判断此像素点在二值化结果图上是否是血管或导丝,若否,则标记此像素点,若是,则进入步骤S2;
S2:判断此像素点在相应的粗标注图片上是否是血管,若是,则将粗标注图片上的对应像素值赋予此像素点并标记此像素点,若否则进入步骤S3;
S3:获取在粗标注图片上以此像素点所对应的像素点为中心的K*K个像素点,统计这些像素点中属于血管的像素点,若统计结果不存在(所获取的K*K个像素点均不属于血管),则将此像素点在二值化结果图上标注为“不关注血管/漏液”,同时将粗标注图片上的对应像素值赋予此像素点并对此像素点进行标记;若统计结果存在则进入步骤S4;
S4:在所获取的K*K个像素点中找出拥有像素点最多的血管类别,并将此血管类别对应的像素值赋给此像素点,同时标记此像素点;
S5:重复步骤S1-S4,直至二值化结果图上的像素点均被标记。
生成伪精标注图片的过程举例如图6所示,文件名为【序号_体位_pesudo.png】。
在步骤S180中,基于原始图片、精标注图片及伪精标注图片建立训练识别心脏血管的卷积神经网络数据集,以对相应的神经网络进行训练,具体为:
将伪精标注图片和对应的原始图片作为训练数据,对所述第一网络进行训练,得到一个能够识别和定位心脏冠脉血管的初始像素级分割网络,记为第二网络,并保存下来;
将一定量所述精标注图片和对应的原始图片作为训练数据,输入到所述第二网络中进行训练,以对网络进行微调,得到一个精度更高的最终像素级分割网络。
本发明在大量减少人工标注成本的同时保证了数据集的质量。基于此数据集进行训练的人工神经网络效果更佳,而且训练速度可以得到一个明显的提升。
以上所述的仅为本发明的优选实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。