1.简介
婴儿血管瘤(IHs)是一种血管瘤,在新生儿中的发病率为3%至10%[1,2]. 通常,它们在出生后的前两到五个月左右出现并开始迅速发育,然后在接下来的几年内自然缓慢退化[三]. 它们的形状和大小因受试者而异;一些血管瘤可能会对功能造成威胁,因此需要一种精确的测量和预测进化的方法。通常,IH大小评估是由医生使用卷尺手动进行的。然而,由于血管瘤的形状不规则,这种测量方法并不精确(它通常意味着记录高度和宽度,而不包含任何几何信息),因此开发IH表面自动测量的动机就在于此。 在生物医学图像分析中,病变的自动测量依赖于图像分割技术。图像分割包括将图像划分为区域(称为类或子集)[4]就某些特征(颜色、纹理、灰度等)而言,它们是同质的。有多种分割方法[4,5],但没有一种标准技术适用于所有医学图像类别。通常,医学图像包含一些与某些病变或器官边界有关的不确定性,以及图像采集或重建过程中产生的不确定性。这种不确定性使得分割任务更加困难[5]. 只有少数图像处理和分析论文涉及IH大小的评估和其演变的预测问题。第一篇论文由Zambanini等人撰写[6]. 因此,在[6]使用感知器对四个特征(RGB中的G、HSV中的H、L*a*b*中的a*,以及表示像素的a*b*values和皮肤的归一化对应值之间的距离的特征)进行IH病变分割。通过全局阈值提取病变附近标尺上的标记,自动计算图像比例。作者还进行了图像配准和血管瘤消退检测。 的作者[7]在L*a*b*的a*通道上使用了两级阈值分割[8]采用颜色恒常性方法来校正不同光照引起的颜色变化。他们报告检测率为85%,假阳性率为16.4%。 在[9]证明了L*a*b*颜色空间是图像分割的最佳颜色空间,从五种不同的颜色空间中进行选择;然后,通过自动学习步骤实现了MAP-Markov分割。报告的边界错误为19.49%。 比较了三种分割方法(Otsu、模糊C均值(FCM)和基于FCM、RG-FCM的区域生长算法)的性能[10]; RG-FCM的最佳结果为91.51%。在[11]使用自组织映射(SOM)网络将图像分为25类,然后使用形态学方法将类数减少为两类(血管瘤和非血管瘤)。与使用FCM时相比,他们的平均性能提高了1.06%。 的作者[12]测试了五种经典分割方法(Otsu、Canny、FCM、GVF snakes和Shortest path)和两种不同的卷积神经网络架构,一种标准线性CNN和一种双输入DAG拓扑。采用最短路径法和双输入CNN得到了最佳结果。最近,在[13]提出了一种基于标准线性卷积神经网络的裁剪分类器;分类器接收小的64×64 RGB图像块,并返回两类:血管瘤和非血管瘤;获得的最大准确度为93.84%。 本文的新颖性
在[14]我们提出了一种从包含标尺的数字照片中自动测量血管瘤病变的方法。血管瘤病变的形状和大小取决于视角和距相机的距离,这使得评估病变的时间演变不切实际。 在本文中,我们扩展了[14]通过添加一些额外的步骤,确保照片经过几何变换,使其看起来与相机的距离相同,并且相机与病变垂直。这一步是必要的,以确保正确评估病变的形状和大小,以便进行准确的后续演变跟踪。分割算法也得到了改进,消除了一些编程错误,进行了一些优化,添加了一些额外的特征,并添加了使用Karhunen-Loeve变换自动选择最有意义的图像平面进行分割。七个图像平面用于分割(包括一个新定义的总变化过滤器),而不是只有四个[14]. 通过使用一些手动分割的图像(地面实况),从边界误差的角度评估分割精度。与之前的工作相比,获得了至少5%的改进。 2.材料和方法
在本研究中,我们使用了从布加勒斯特玛丽·居里儿童医院获得的30张RGB图像(分辨率约为1300×1200像素)数据库。这些图像是在致谢部分提到的项目期间采集的,它们用于研究得到了医院的批准。每幅图像都包含一个血管瘤病灶(位于身体的不同部位,如胸部、腿部、面部等),并且是使用不同的相机在不同的照明条件下拍摄的。为了测量的目的,在每个病变附近放置一把尺子。在图1,显示了数据库中的一些图像。 提出的算法包含以下步骤:
2.1. 标尺的检测和图像尺度的计算
为了检测图像中的标尺,我们开发了以下算法:
- -
使用Canny方法查找边;
- -
对图像边缘上的线(在前一步骤中获得)应用霍夫变换,并仅保留至少250像素长的线(选择250像素的最小长度是因为它对应于在获取图像的分辨率下标尺上大约1cm的长度;如果选择较小的值,算法仍然有效,但由于检测到图像中的更多线条,处理时间增加);
- -
对于提取的每条线,记录沿该线的1D强度剖面,并计算其总变化(1);
- -
选择总偏差最大的线;
- -
从线的强度分布中检测峰值,然后计算两个连续峰值之间的中间距离。
函数的总变化量由以下公式计算:哪里(f)是线条的强度轮廓,N个表示像素数,以及k个是每个像素的索引。从图像中检测到的所有线条中,具有最大值的线条五被选中(该行将包含标尺的大多数mm刻度)。使用霍夫变换在图像中检测到的线条示例如所示图2a;总变化最大的线用蓝色表示。在图2b、 人们可以从沿着所选线的1D强度“信号”中看到对应于标尺的mm灰度级的峰值。所有长度至少为250像素的线都来自标尺侧面的mm渐变,这些渐变是对齐的,因此它们在霍夫变换的累加器空间中给出了强烈的响应。此外,将霍夫变换应用于图像边缘(这是一个仅在轮廓区域上包含白色像素的二值图像)时,不可能在其他位置出现超过250像素的线,而不是沿着mm渐变。 在计算标尺上两个连续渐变之间的中间距离后,可以计算像素的面积(单位:mm)2公式如下:像素区域= 1/(d日*d日),其中d日是上述距离。
检测到标尺后,人们通过霍夫变换知道其方向,然后应用图像旋转使标尺垂直。这一步骤是OCR工作所必需的。旋转是使用经典的旋转矩阵执行的,输出图像被增强以包含旋转后的图像;输出像素的插值采用最近邻法。
然后,根据区域的颜色是某种灰度的假设来执行标尺区域的提取(如果RGB三元组的最小值和最大值之间的差异小于阈值,则该像素被视为灰度),并且它至少包括上面保留的线的一部分。所有图像中的标尺都是灰色的。
然后,为了从标尺中提取数字,在标尺区域上应用了两类K-means算法。表示数字的类是通过考虑两个区域中每个区域内的像素数自动选择的(标尺的背景区域比标尺内数字覆盖的区域大得多)。然后,只对潜在数字候选区域执行标记步骤,并且只保留数字大小的紧凑区域。使用规则检测步骤中获得的图像比例自动计算数字大小的阈值。
一旦数字被提取出来,它们就会被标准的OCR算法识别。我们使用了Matlab的当前OCR实现,这是一个开源OCR,更确切地说是Tesseract OCR引擎[15]. 我们使用OCR提供的字符置信度来识别提取的对象是数字还是噪声。在我们的实现中,我们使用从2到9的数字来实现几何变换。对于大多数图像,规则的开始-围绕数字2到4-位于病变附近。对于数字1距离病变最近的图像(2张图像),我们认为该数字不够宽,无法用于几何变换(噪声引起的误差对数字1来说非常重要)。 对于仿射类型的变换,至少需要三个关键点。对于每个数字,至少定义三个关键点,如中所示图3.为每个数字定制每个关键点的选择(每个数字的关键点位置和数量是固定的,即所有数字2s用5个关键点标识,所有数字3s用7个关键点等)。要确定每个检测到的数字中的关键点,需要对图像进行二值化(图4b) 然后应用几何骨架化算法提取数字的骨架形状。然后,通过分析骨架形状的局部曲率来检测关键点。 图5表示沿着数字五的轮廓线确定的曲率。两个最大曲率峰值用于设置关键点1和3;关键点5和2是终点,4位于3到5的一半距离。 几何变换矩阵是通过求解方程组(如(2)中的方程组)来确定的,如果一个方程组有三个关键点对的最小集,则至少有6个未知量,通过均方误差意义下的优化来确定。一旦在处理过的数字上检测到关键点的坐标,就可以计算几何仿射变换,以在理想的正面视图(垂直于相机拍摄)中渲染数字。为此,使用理想视图中相同关键点的空间坐标来计算六个最佳参数(一11,一12,一21,一22,b条1,b条2)在方程(2)中的变换中,最佳拟合(在均方误差意义下)关键点的原始坐标集与理想关键点的坐标集。 在方程式(2)中[x钛,年钛]表示关键点的目标(理想)坐标#我,而[x硅,年硅]表示同一关键点的原始坐标。因此,变形的数字将转换为“理想”的拍摄数字。然后,我们将此几何变换矩阵应用于整个图像。
对于几何变换,我们从OCR检测到的数字中选择最接近病变的数字。为此,我们使用了[9]. 这张图片包含一组点(比整个血管瘤小得多),选择非常严格,它们肯定属于病变。这些点按以下方式确定: 对原始图像应用Canny边缘检测。
通过将轮廓图与模糊核进行卷积来构建边缘密度图像D。
通过使用自适应阈值(设置为较高轮廓密度的45%)对D进行阈值化,构建包含较高边缘密度的二值图像B。
保持B中的像素的红色分量(RGB)比绿色分量高55%,比蓝色分量高55%。
我们在数据库中的所有图像上测试了上述方法,并且检测到的点集始终属于病变。
2.2. 血管瘤病变分割
由于从数据库中获取图像的光照条件不同且经常较差,因此血管瘤区域的分割不是一项容易的任务。
建立一种仅依赖颜色信息的分割方法会导致一些混淆,因为血管瘤的颜色与某些未照皮肤区域的颜色相似。因此,我们的想法是也使用一些纹理信息,因为血管瘤区域的纹理比皮肤的纹理丰富得多。如中所述[16]纹理特征在图像处理中得到了广泛的研究。 为了区分纹理血管瘤区域和平滑皮肤区域,我们实现了两个基于2D总变化的过滤器(其内核如所示图6和图7),因为我们注意到它加重了血管瘤([17]研究其他图像时,还得出结论,总变差(TV)方法比经典导数算子的边缘更强)。 第一个滤波器应用于图像的L*分量,使用四个方向上的四个5×5对称邻域计算2D总变化,如所示图6一个通过沿每条线应用方程(1)计算1D总变化,然后保持四个值中的最大值。然后,为了强调血管瘤区域(比皮肤其他部分暗),我们添加(最大L−我(我,j个))TV值,其中最大L是L*平面的最大强度值,以及我(我,j个)是像素的亮度。图8c显示了这样一个电视图像的示例(为了更好地可视化,图像被负片化),它是通过对来自图8b。 第二个滤波器也应用于图像的L*分量,通过沿3×3对称邻域的边缘扫掠方程(1)来计算2D总变化。这里,为了强调血管瘤,我们补充道(最大L−我(我,j个))TV值。在图8d、 人们可以看到在图像上应用此过滤器的(负片)结果图8b。 我们实现了以下分割算法:
构建一个由以下内容组成的七平面图像:
- -
图像的L*分量;
- -
a*飞机;
- -
b*平面;
- -
通过对图像的L*分量应用第一滤波器而获得的电视图像;
- -
通过对图像的L*分量应用第二滤波器获得的电视图像;
- -
HSV的H平面(移动50°,以使红色不在0°到360°的过渡上);和
- -
HSV的S平面;
创建一个二进制掩码a,通过从(L*a*B*)的a*平面的最大值设置85%的阈值,只保留红色像素(RGB中的红色分量大于绿色和蓝色分量;属于血管瘤的像素的示例:R=152,G=61,B=35),它可以是血管瘤像素;注意,在L*a*b*中,颜色在a*bx平面中呈对称分布;
将每个电视图像与掩码A相乘,以仅保留血管瘤像素,可能还保留一些红色健康皮肤像素;
对七平面图像应用Karhunen-Loeve变换,只保留前五个最重要平面;
对上一步获得的五平面图像进行K-means聚类,共有6个类(实验确定了最佳类数);
从分割的图像中,选择具有最大平均值的血管瘤类,或者如果有两个区域具有相同平均值,则选择具有最大TV值的区域(使用第一个滤波器计算);
清除获得的小于阈值的血管瘤区域或边界较弱的区域。
该算法的最后一步是必要的,因为血管瘤区域和几乎具有相同颜色且有点纹理的低光皮肤区域之间可能存在混淆。为了区分这些皮肤区域和血管瘤区域,我们实施了边界强度测量(为了提取对象边界,我们从其扩张版本中减去侵蚀对象;我们使用对称的磁盘形状结构元素)。因此,血管瘤区域有很强的边界,我们可以通过仅使边缘梯度中值(我们使用Sobel操作符)高于某个阈值的区域来消除皮肤区域。通过实验确定了阈值。
图8a表示原始图像的旋转,旋转使标尺垂直。在本例中,数字5由OCR识别并用于几何校正,因为它是距离病变最近的数字。在图8b显示几何变换后获得的图像。 包含6类的K-means分割结果如所示图8e、 最终的分割结果如所示图8f、。 分割后,可以使用以下公式计算血管瘤的面积:地区=nb_像素*像素_区域=nb_像素/(d日*d日). 例如,对于图8血管瘤表面计算为0.8cm2,这是准确的。准确计算该区域的面积很重要,因为可以在进一步检查时比较该区域,并确定血管瘤是进展还是消退。 算法1中给出了所提血管瘤分割方法的伪代码。此伪代码中的变量名不是原始Matlab程序中的变量名称。
算法1血管瘤的分割方法 |
读取颜色输入图像I G←灰度(I) BW←Canny_edge_detection(G) 对BW上的线应用Hough变换 用方程式(1)计算每条线的总变化量 保持最大TV值 d日← 线路上两个连续峰值之间的中间距离 旋转(I),例如提取的线变为垂直 M←使用2类K-means聚类从标尺中提取数字 M←从M中删除太小或太大而无法表示数字的对象 D←边缘密度图像,用模糊核卷积BW获得 B←二进制图像,其中值1=如果像素是D的最高轮廓密度的45% B←R(RGB)比G高55%,比B高55%的B像素 [Bx,By]←B值为1的像素的平均位置(病变位置估计) 在M的每个区域应用OCR;从2到9中选择最接近[Bx,By]的数字 找出数字上的关键点 I←I的几何变换,使用方程(2) A1←L*来自L*a*b*版本I A2←来自L*a*b*版本I的a* A3←来自L*a*b*版本I的b* A4←通过在L上应用第一个TV滤波器获得的图像* A5←通过在L上应用第二个TV滤波器获得的图像* A6←H来自HSV(移动50°) A7←来自HSV的S N←85%*max(a*),二进制掩码,其中1=红色像素,0=其他像素 A4←A4像素乘N A5←A5像素级乘以N A←[A1 A2 A3 A4 A5 A6 A7](7平面图) X←Karhunen-Loeve(A),只保留5个最重要的平面 Y←K均值(X),6类 S←二值图像,其中1=Y中的血管瘤类别 S←S没有小于阈值的区域 S←仅S中具有强边界的区域 R←计算病变表面(S*1值为1的像素数/d日2) |
3.结果
对数据库中的所有图像进行了上述自动图像比例计算测试,结果无误(对所有图像正确估计了标尺上两个连续梯度之间的距离)。对所有图像的标尺方向的估计都在三度角以内,这证明了该方法的鲁棒性。为所有图像确定正确的测量线,即使存在与图像中标尺颜色相同的物体。我们将几何变换后的数字检测到其理想的正面模板,并进行了精确匹配,这证明几何校正对所有图像都有效。
对于数据库中的所有图像,我们都有一个手动分割(“地面实况”)图像,它表示一个二值图像,其中血管瘤像素是白色的,其他像素是黑色的。根据边界误差(BE)评估分割算法的准确性,如[6]. 使用以下公式计算BE:其中A是分割后获得的血管瘤区域,M是手动分割的区域(根据基本事实)。 这里,BE中的术语“边界”并不意味着仅在病灶边界处测量分割误差,但如公式(3)所示,A和M之间的任何表面差异都会增加BE(例如,如果A中的病灶有一些M中不存在的孔);因此,术语BE仅用于[6]. 实际上,BE几乎不可能变为0%,因为存在几个几何不确定性[18]. 例如,构造M时存在一些不确定性,图像采集系统给出的病灶边界也存在不确定性。 数据库中所有图像的平均BE为9.31%。最小BE值为2.16%,最大BE值为25.64%。这种高BE值是在血管瘤非常小且呈碎片状的图像上获得的,其中一些部分与皮肤非常相似;在这种情况下,我们用来去除噪声的形态开放滤波器也去除了分段血管瘤的一些小片段。
图9显示了所有图像的边界错误直方图。有人注意到,对于93%的图像,BE小于20%。 作为比较[14]未经均值漂移滤波,为14.6%。因此,本文提出的改进算法具有更好的精度。 图10提供了三个最佳分段。这些是界限清楚的病变,血管瘤和皮肤之间有强烈的颜色和亮度对比。在图11显示了三个最差的分段。在这些图像中,病变和皮肤之间的对比度很低。 所得结果与其他方法的比较
我们将分割精度(就边界误差而言)与其他四种分割方法进行了比较,如表1. MAP-Markov分割方法[9]应用于当前数据集会得到最差的结果,这可能是因为这种方法是一种依赖于训练集的自动选择的监督分割。中提出的算法[9]包括两个类的自动学习步骤:血管瘤和非血管瘤;选取边缘密度最大、颜色以红色为主的区域像素进行血管瘤分类学习。通过离散马尔可夫场正则化,改进了MAP分割结果。 建议的RG-FCM[10]是一种改进的基于FCM的区域生长算法,其结果优于FCM。作为区域生长起点的种子是由应用FCM获得的平均值和基于血管瘤类最小值和非血管瘤类最大值的阈值计算得出的。如作者所述[11],SOM-MMRNC(自组织映射,然后是减少类数的形态学方法)方法的性能优于FCM,这也可以在表1SOM神经网络能够自行发现输入数据的特征和模式。在[11],采用5×5神经元网络,输入数据为CIE-L*a*b*的a*平面。25个神经元按获得的最多类血管瘤原型排序,然后根据排序神经元的累积效应构建25个掩模镍(口罩我=1个和氮气、……和镍). 选择最平滑的掩模作为分割结果,通过形态闭合和开放计算平滑度。另一个比较是,尽管数据库不同[6]平均BE为32.1%,最小值为3.6%,最大值为247.7%。 就计算性能而言,对于1255×1325像素的图像,在平均i7(4600u@2.1GHz)处理器笔记本电脑上,分割程序的运行时间大约为9秒,正如我们在表1,其中计算时间(以秒为单位)是与其他四种方法对同一图像的比较。 4.讨论
在本文中,我们提出了一种自动计算IH病变表面的方法,其输入数字照片也包含病变附近的标尺。使用线的霍夫变换和总变化计算像素中mm的大小,以选择具有最大mm渐变的线。
作为预处理,引入了几何校正,以确保病变被视为垂直于相机。这一步骤对于准确评估病变的大小和形状,进一步估计血管瘤的时间演变是必要的。通过在病变附近的数字(标尺上)的一些关键点与理想数字模板上的相应关键点之间进行转换,自动执行几何校正。
图像分割依赖于K-means聚类,该聚类接收通过使用Karhunen-Loeve变换从七个图像平面中选择五个最有意义的平面获得的五平面图像作为输入。七个图像平面中的两个在两个专门设计的2D全变分滤波器(5×5邻域滤波器和3×3邻域滤波器)的帮助下表征纹理。为了从分割结果中消除与血管瘤颜色和纹理相同的皮肤区域,实现了边界检测器,只保留血管瘤区域(具有强边界)。
在相同的数据集上,将我们的方法与其他四种分割方法进行了比较,得到了最佳结果。
当前方法的一个局限性是图像采集条件相对较差。由于IH病例数量有限,数据库中的图像是在很长一段时间(大约两年)内采集的;此外,小孩子不会站着拍照,这使得获取照片的过程更加困难。
就准确性而言,所提出的算法比[14]边界误差减少5%左右。