一种基于机器学习的图像中心线结构提取方法
技术领域
本发明涉及一种基于机器学习的图像中心线结构提取方法,属于图像处理技术领域。
背景技术
线性结构,也被称为曲线结构或“线状”结构,在物理、生物和人工系统中极为常见。它们可以是卫星图像中的河流,大脑中的轴突和树突,道路网络或建筑物中的裂缝。因此,他们的研究需要在许多领域,如神经科学、生物学和制图学。此外,在过去的几十年里,图像采集系统的能力和效率,如电子显微镜,高分辨率相机等,已经大大提高,使得收集大量的数据用于线性结构的研究成为可能。然而,由于目前还没有可靠的全自动曲线结构提取系统,对这些数据的利用仍然受到手工注释耗时、繁琐的任务的限制。
现阶段主流的图像曲线结构中心线提取方法,主要分为:基于传统的图像形态学操作处理的方法和基于深度学习的提取方法。然而,传统的图像形态学处理方法,不能很好的表现出中心线,准确性低,通用性较差。基于深度学习的方法,通常需要大量训练数据,而且需要较高配置的硬件设备,花费较长的训练时间。
发明内容
针对现有技术的不足,为解决上述技术问题,本申请采用的技术方案是:我们提出了一种新的方法来看待中心线检测问题,将它视为一个回归问题。我们提供的方法通过在一个标记好中心线的数据集上进行训练,从而获得中心线提取模型。我们的模型训练不依赖于庞大的训练数据,通常是小批量训练数据即可,模型的训练时间相对于常见的深度学习方法有显著的缩短。对于相同的任务,我们的方法明显比以前的方法更加准确和高效。
本发明的技术方案如下:
一种基于机器学习的图像中心线结构提取方法,包括步骤如下:
第一步,学习用于提取图像特征的滤波器;
目前图像特征的提取主要有两种方法:传统图像特征提取方法和深度学习方法。传统方法中特征提取主要依赖人工设计的提取器,需要有专业知识及复杂的调参过程,同时每个方法都是针对具体应用,泛化能力及鲁棒性较差。
深度学习主要是数据驱动进行特征提取,根据大量样本的学习能够得到深层的、数据集特定的特征表示,其对数据集的表达更高效和准确,所提取的抽象特征鲁棒性更强,泛化能力更好。
所以,我们搭建了无监督的ResNet网络在训练数据集下获得预训练特征,然后在开源的SPAMS软件基础上,对预训练特征进行稀疏矩阵分解,从而获得用于提取特征的滤波器;
然而,对于传统的特征提取方法,可能非常耗时,因为它涉及到将图像与许多不可分离的非稀疏滤波器进行卷积。因此,下一步我们引入了滤波器分离方法来加速特征提取这一操作。
第二步,对滤波器进行分解获取可分离的滤波器;
由于大量滤波器和图像之间的卷积计算非常耗费时间,我们提出了一种基于可分离滤波器的近似方案,通过将一个全秩滤波器组表示为可分离滤波器组的线性组合,可以大大减少计算时间,而没有显著的性能损失。
将第一步中学习到的滤波器堆叠从而得到三维张量F,可以将三维张量F写成K个三维一阶张量的线性组合:
其中,K为分解的一阶张量数目,k为一阶张量的索引,为第k个一阶张量的第一维向量,/>为第k个一阶张量的第二维向量,/>为第k个一阶张量的第三维向量;
对于三维张量F在第三个维度上的每个切片则有:
其中,fi为三维张量F在第三个维度上的第i个切片,为在第k个张量的第三个维度向量的第i个分量值,sk为第k个张量的第一、第二维度上对应的两个向量的叉乘;
优选的,将第一步中学习到的滤波器堆叠从而得到高维张量F,对于高维度的张量同理:
其中,n为张量的维度数目;
分析计算的时间复杂度:
其中,O(n)non_sep为不可分离的滤波器进行卷积运算的时间复杂度,O(n)sep为可分离的滤波器进行卷积运算的时间复杂度,Ni为待卷积图像数目,di在两式中分别为不可分离的滤波器、可分离的滤滤波器数目,由公式(5)、(6)可知,面对大量卷积计算时,公式(3)、(4)具有良好的效果,可分离的滤波器在时间耗费上有显著的减少。
第三步,对训练数据进行特征提取;
特征提取(Feature extraction)在机器学习、模式识别和图像处理中有很多的应用。特征提取是一个降低维度的步骤,初始的资料集合被降到更容易管理的族群(特征)以便于学习,同时保持描述原始资料集的精准性与完整性。
当一个算法的输入数据太过于庞大冗馀以至于不便处理,这些数据可以被转换成化简后的特征集合,也称作特征向量(feature vector),决定这些原始数据子集的步骤称为特征提取。
使用第二步中获得的可分离滤波器来对训练数据集进行特征提取,优选的,如果训练数据集图像超过一万张时,那么获取的样本特征数目将过于庞大,此时可以从正负样本中分别选取部分样本使用,所述部分样本为根据数据按照0.5左右的比例来选取样本,所述样本指的是训练数据图像上的像素点,正样本是中心线上的点,负样本是中心线外的点;
虽然局部信息对于许多低水平视觉任务可能足够,如检测强度值的变化,估计局部方向,去噪等,但对于高级任务,需要来自图像大部分的信息。例如,纹理分析、遮挡轮廓检测和目标识别是一般不能单独用局部方法来解决的任务。
优选的,为了更好的检测出中心线,我们还考虑了图像中每个像素点周围的像素信息,即使用了图像的上下文信息,对于每个像素,不仅从以该像素为中心的局部窗口提取特征,而且对可分离滤波器尺寸大小的半径内的像素提取特征。
第四步,建立回归树模并进行训练
将中心线检测问题进行建模,转化为数学模型中的回归问题:
其中,d(x)是回归树模型拟合的目标函数,D(x)是点到中心线的欧氏距离,d0是可分离滤波器尺寸的一半;
回归树的基本模型:
其中,是树模型,f(x,I)就是第三步在图像I上提取的像素点x对应的特征,T是弱学习器总数目,ht是第t个弱学习器,ωt是第t个弱学习器对应的权重,我们采用决策树中的分类与回归树(Classification and regression tree,CART)模型作为此处的弱学习器ht,树的深度选取为10,树的数目选取为500;
最小化损失函数:
其中,是损失函数在模型上的总和,/>是衡量第i个标签值di和预测值差距的损失函数;
我们选用在回归问题中常用的平方损失函数:
最后,我们可以使用作为函数d(x)的最终近似值;
第五步,模型训练完成后就可以对测试数据进行预测了,将测试数据图像代入第三步,利用第二步得到的滤波器对测试数据的所有图像进行特征提取,得到所有图像中每个像素点对应的特征,提取出的特征代入训练好的模型公式(8)中,就可以得到测试数据每张图每个像素点对应的预测结果,即可以得到预测的中心线图像。
本发明的有益效果在于:
本发明的方法使获取各种图像中的中心线结构变得更加准确和快速,而且只需要标记少量的数据即可,大大节省了依靠人力做标记的时间和开支。对于同一类型的数据具有良好的通用性,可以直接用训练模型进行预测;对于不同类型的图像数据也具有良好的可移植性,通过对数据简单的预处理就可以训练出不同的模型应对不同的需求场景。
附图说明
图1为本申请算法流程图;
图2为实验例1训练图举例;
图3为实验例1标签图;
图4为实验例1学习到的滤波器;
图5为实验例1可分离的滤波器;
图6为实验例1侧视图举例;
图7为实验例1预测结果;
图8为实验例2训练图举例;
图9为实验例2标签图;
图10为实验例2学习到的滤波器;
图11为实验例2可分离的滤波器;
图12为实验例2侧视图举例;
图13为实验例2预测结果。
具体实施方式
下面通过实施例并结合附图对本发明做进一步说明,但不限于此。
实施例1:
一种基于机器学习的图像中心线结构提取方法,如图1所示,包括步骤如下:
第一步,学习用于提取图像特征的滤波器;
搭建了无监督的ResNet网络在训练数据集下获得预训练特征,然后在开源的SPAMS软件基础上,对预训练特征进行稀疏矩阵分解,从而获得用于提取特征的滤波器;
然而,对于传统的特征提取方法,可能非常耗时,因为它涉及到将图像与许多不可分离的非稀疏滤波器进行卷积。因此,下一步我们引入了滤波器分离方法来加速特征提取这一操作。
第二步,对滤波器进行分解获取可分离的滤波器;
由于大量滤波器和图像之间的卷积计算非常耗费时间,我们提出了一种基于可分离滤波器的近似方案,通过将一个全秩滤波器组表示为可分离滤波器组的线性组合,可以大大减少计算时间,而没有显著的性能损失。
将第一步中学习到的滤波器堆叠从而得到三维张量F,可以将三维张量F写成K个三维一阶张量的线性组合:
其中,K为分解的一阶张量数目,k为一阶张量的索引,为第k个一阶张量的第一维向量,/>为第k个一阶张量的第二维向量,/>为第k个一阶张量的第三维向量;
对于三维张量F在第三个维度上的每个切片则有:
其中,fi为三维张量F在第三个维度上的第i个切片,为在第k个张量的第三个维度向量的第i个分量值,sk为第k个张量的第一、第二维度上对应的两个向量的叉乘;
分析计算的时间复杂度:
其中,O(n)non_sep为不可分离的滤波器进行卷积运算的时间复杂度,O(n)sep为可分离的滤波器进行卷积运算的时间复杂度,Ni为待卷积图像数目,di在两式中分别为不可分离的滤波器、可分离的滤滤波器数目,由公式(5)、(6)可知,面对大量卷积计算时,公式(3)、(4)具有良好的效果,可分离的滤波器在时间耗费上有显著的减少。
第三步,对训练数据进行特征提取;
特征提取(Feature extraction)在机器学习、模式识别和图像处理中有很多的应用。特征提取是一个降低维度的步骤,初始的资料集合被降到更容易管理的族群(特征)以便于学习,同时保持描述原始资料集的精准性与完整性。
当一个算法的输入数据太过于庞大冗馀以至于不便处理,这些数据可以被转换成化简后的特征集合,也称作特征向量(feature vector),决定这些原始数据子集的步骤称为特征提取。
使用第二步中获得的可分离滤波器来对训练数据集进行特征提取,
虽然局部信息对于许多低水平视觉任务可能足够,如检测强度值的变化,估计局部方向,去噪等,但对于高级任务,需要来自图像大部分的信息。例如,纹理分析、遮挡轮廓检测和目标识别是一般不能单独用局部方法来解决的任务。
为了更好的检测出中心线,我们还考虑了图像中每个像素点周围的像素信息,即使用了图像的上下文信息,对于每个像素,不仅从以该像素为中心的局部窗口提取特征,而且对可分离滤波器尺寸大小的半径内的像素提取特征。
第四步,建立回归树模并进行训练
将中心线检测问题进行建模,转化为数学模型中的回归问题:
其中,d(x)是回归树模型拟合的目标函数,D(x)是点到中心线的欧氏距离,d0是可分离滤波器尺寸的一半;
回归树的基本模型:
其中,是树模型,f(x,I)就是第三步在图像I上提取的像素点x对应的特征,T是弱学习器总数目,ht是第t个弱学习器,ωt是第t个弱学习器对应的权重,我们采用决策树中的分类与回归树(Classification and regression tree,CART)模型作为此处的弱学习器ht,树的深度选取为10,树的数目选取为500;
最小化损失函数:
其中,是损失函数在模型上的总和,/>是衡量第i个标签值di和预测值差距的损失函数;
我们选用在回归问题中常用的平方损失函数:
最后,我们可以使用作为函数d(x)的最终近似值;
第五步,模型训练完成后就可以对测试数据进行预测了,将测试数据图像代入第三步,利用第二步得到的滤波器对测试数据的所有图像进行特征提取,得到所有图像中每个像素点对应的特征,提取出的特征代入训练好的模型公式(8)中,就可以得到测试数据每张图每个像素点对应的预测结果,即可以得到预测的中心线图像。
实施例2:
一种基于机器学习的图像中心线结构提取方法,其步骤如实施例1所述,所不同的是,第二步中,将第一步中学习到的滤波器堆叠从而得到高维张量F,对于高维度的张量同理:
其中,n为张量的维度数目。
实施例3:
一种基于机器学习的图像中心线结构提取方法,其步骤如实施例1所述,所不同的是,第三步中,如果训练数据集图像超过一万张时,那么获取的样本特征数目将过于庞大,此时可以从正负样本中分别选取部分样本使用,所述部分样本为根据数据按照0.5左右的比例来选取样本,所述样本指的是训练数据图像上的像素点,正样本是中心线上的点,负样本是中心线外的点。
实验例1
利用实施例1所述的方法,在遥测道路图像场景中的应用实例,如图2-图7所示,训练图和标签图作为训练的输入数据,滤波器是自动学习到的数据。
测试图作为测试的输入数据,预测结果是模型对测试图进行预测的结果。
实验例2
利用实施例1所述的方法,在医学图像场景中的应用实例,如图8-图13所示,训练图和标签图作为训练的输入数据,滤波器是自动学习到的数据。
测试图作为测试的输入数据,预测结果是模型对测试图进行预测的结果。
由此可知,本发明对不同类型的图像数据均有良好的可移植性,对图像中心线结构的提取准确快速通用。