本发明涉及视频处理的技术领域,尤其是指一种交互式轮廓提取方法。
背景技术:
随着计算机视觉和图像处理的快速发展,其相关技术的应用范围越来越广泛,尤其是在无人驾驶、人脸识别、增强现实(augmentedreality,简记为ar)、医学影像处理和工业控制等方面出现了很多新理论和新方法,并出现了很多优秀的商业化应用,使得这个领域被越来越多的人们所熟悉和关注。物体轮廓提取或检测是计算机视觉和图像处理中最重要的底层处理之一,它用于提取图像中对象的边界,提供图像中物体关键的轮廓信息。而这些信息可以用于图像分割、物体检测、遮挡和深度推理以及三维重建等很多领域,具有重要的研究意义和价值。
近年来计算机技术和光学摄影水平都得到了极大的提升,但是在实际中提取出精确的物体轮廓仍然有很大的困难。首先是场景、光照以及物体轮廓的复杂程度等物理条件方面的原因,在复杂场景和光照条件以及物体轮廓凹凸不平的情况下,提取物体轮廓本身就极具挑战性。另外是受摄影设备精度和图像数据压缩存储的影响,所处理的图像存在很多噪声。虽然可以通过图像去噪方法减轻这一问题,但难免会丢失细节信息,这对于提取精确的物体轮廓造成了干扰。目前提取出精确的物体轮廓仍然是一个十分具有挑战性的问题。
同时轮廓提取也是个经久不衰的研究领域,研究人员提出很多方法用于解决这个问题。早期的方法大都是一些局部分析方法,主要是使用显著的梯度信息定位图像的边缘。非常经典的局部方法有robert,sobel,canny和prewitt等。这些方法主要是用边缘检测模板来检测局部像素灰度的急剧变化。除了灰度信息,颜色和纹理信息也经常被用来帮助寻找图像边缘。局部轮廓提取方法得到的边缘信息经常是离散的,并不围成连续的闭合区域。所以全局方法则是试图将局部的边缘连接起来以获得完整的轮廓。全局方法通常使用图算法,将每个单独的边缘看作图的一个节点,然后将节点之间没有检测到的潜在边缘连接起来。全局的轮廓结构一般满足gestalt准则,例如临近、闭合、对称等等。全局方法利用图算法,条件随机场、置信传播和特征值等方法,将上下文信息结合起来通过局部边缘推测全局结构。局部方法可以检测出边缘信息而无法提取出完整物体轮廓,全局方法的准确性和鲁棒性难以满足要求。
同时轮廓提取方法和图像分割技术十分相关,但是又不完全等同。图像分割是将图像分成不同的区域,每个区域对应着某个物体或者背景,而这块区域的边界就是物体的轮廓。轮廓提取常被用于辅助图像分割,但轮廓提取本身并不保证产生闭合的轮廓线,所以并不能将图像分为若干区域。反过来,根据图像分割的结果总是可以将所得区域的边界提取出来。图像分割的方法有很多种,例如图割(graphcuts),正则化切割(normalizedcuts),和均值漂移聚类(mean-shiftclustering)等。但是图像分割的方法获得的轮廓质量较差,无法获得平滑精确的物体轮廓。
技术实现要素:
本发明的目的在于克服现有技术的不足,提出了一种交互式轮廓提取的方法,可以灵活鲁棒地提取用户需要的物体轮廓。受素描技巧启发,本发明先通过动态规划生成局部轮廓线,然后基于主成分分析进行全局融合得到全局轮廓线,充分利用大量重叠局部轮廓线间的交叉验证,提高轮廓提取的有效性和准确性。
为实现上述目的,本发明所提供的技术方案为:一种交互式轮廓提取方法,包括以下步骤:
1)建立l-d轴坐标系,以用户交互草图为初始化,建立以初始曲线为中心的l-d轴坐标系;
2)局部轮廓线提取,将l-d轴坐标系中寻找局部轮廓线的过程建模为最大化能量函数的问题,并使用动态规划求解局部最优解;
3)多尺度局部轮廓线集合生成,在初始化曲线上提取不同长度密集重叠的局部轮廓线集合;
4)全局轮廓线融合,使用一种基于wpca的方法,从冗余的局部轮廓线集合中提取出一条全局轮廓线。
在步骤1)中,所述的建立以初始曲线为中心的l-d轴坐标系,具体如下:
将初始化曲线的开始位置定义为l-d轴坐标系的原点o。沿着初始化曲线的是l坐标轴,垂直于初始化曲线的是d坐标轴。初始化曲线上的一个点p(x,y),p点沿着初始化曲线到o点的距离是l0。根据下面公式可以将l-d轴坐标系中的任意一点p'(l0,d0)转化到图像坐标系:
其中(xp',yp')是点p'在图像坐标系的坐标,
根据以上定义,对目标轮廓线进行采样,获取其在l-d轴坐标系中一系列的离散点。l是初始化曲线的总长度,在初始化曲线上均匀采样m个点{(li,0)|i∈{1,2,...,m}},其中
其中
l-d轴坐标系中的局部轮廓线则可以通过其中一部分点来表示:
其中
最后将di的范围限制在[-r,r]之间,这样所有的局部轮廓线都是在以初始化曲线为中心轴,宽度为2r的带状区域之内。
在步骤2)中,所述的局部轮廓线的提取,具体如下:
通过最大化局部轮廓线的能量函数,确定所有的d轴坐标di就可以确定这条局部轮廓线所在的位置。局部轮廓线{di|i∈{s,s+1,..,t-1,t}}的能量函数由两部分组成:
e({di})=α·ee({di})+β·es({di}),
其中{di}是所求局部轮廓线,e({di})表示局部轮廓线的能量。ee是梯度项,表示局部轮廓线处梯度的大小;es是平滑项,表示局部轮廓线平滑的程度。α和β用于调节两项之间的权重。
然后使用动态规划求解能量函数的近似全局最优解。在l-d轴坐标系中,将d轴以
首先假设对于第i-1行所有节点,已经找到其从第1行到第i-1行的最佳路径。用
其中δ*表示加入当前路径的最优边的索引,并且δ={-cmax,-cmax+1,...,cmax}。
其中平滑项
其中
最后得到节点ni,j处的最佳路径:
其中
通过对网格图
在步骤3)中,所述的多尺度局部轮廓线集合的生成,具体如下:
因为参数s和t决定了一个局部轮廓线在l-d轴坐标系开始和结束的位置。多尺度局部轮廓线提取长度分别为t-s+1={24,30,39,51,66}的局部轮廓线。对于每一种长度的局部轮廓线,沿着初始化轮廓线以相邻两个重叠2/3的间隔采样。例如长度为24的局部轮廓线开始的位置应该是s={1,9,17,...},而长度为30的局部轮廓线开始的位置应该是s={1,11,21,...}。给定开始的位置s和结束的位置t,就可以使用之前的动态规划算法提取对应的局部轮廓线。
多尺度局部轮廓提取经常需要寻找上百条局部轮廓线,因而无法达到实时的效果。通过gpu加速并行计算多尺度的局部轮廓线计算过程,用cuda中每一个线程计算一个局部轮廓线,将算法加速到实时的效果。
在步骤4)中,所述的基于wpca的全局轮廓线融合,具体如下:
全局融合方法基于主成分分析从局部轮廓线集合中通过动态规划提取全局轮廓线。p是局部轮廓线上点的集合。对于p中任意的一个点pi,其协方差矩阵是:
其中
在得到每个点处的wpca方向之后,通过动态规划的全局轮廓线融合的方法如下:
对于任意一个节点ni,j,与其上一行的节点ni-1,j+δ通过边
其中
本发明与现有技术相比,具有如下优点与有益效果:
1、图像中物体轮廓通常是不规则的形状。在笛卡尔坐标系表示下,这种不规则的特性使得无法用一个简单的形式表示物体的轮廓线,以至于轮廓提取问题的建模变得异常复杂。本发明使用了以初始曲线为中心的l-d轴坐标系,能够非常便捷地表示任意复杂的物体轮廓。
2、本发明受画家常用的素描技巧启发,设计了一种新颖的物体轮廓提取方法。由局部轮廓提取和全局轮廓融合组成,其固有的交叉验证机制保证了本发明轮廓提取方法准确有效。
3、本发明轮廓提取方法使用了动态规划并使用cuda进行加速,达到实时交互的效果,能够便捷准确地完成轮廓提取。
4、本发明提出了基于wpca的全局轮廓线融合,保持了全局轮廓线的连续性和平滑性,并使用动态规划巧妙地舍弃了错误的局部轮廓线,从可行解中找了一条最优的全局轮廓线。
附图说明
图1是本发明交互式轮廓提取流程图。
图2是l-d轴坐标系及局部轮廓线示意图。
图3是动态规划方法求解网格图
图4是全局轮廓线融合方法示意图。
图5是本发明局部轮廓和全局轮廓结果图。
图6是本发明轮廓提取方法不同初始化位置的结果比较。
图7是本发明应用于轮廓提取的示例以及与pascal数据集原始标记对比图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例所提供的交互式轮廓提取方法,包括以下步骤:
1)建立l-d轴坐标系,以用户交互草图为初始化,建立以初始曲线为中心的l-d轴坐标系;
2)局部轮廓线提取,将l-d轴坐标系中寻找局部轮廓线的过程建模为最大化能量函数的问题,并使用动态规划求解局部最优解;
3)多尺度局部轮廓线集合生成,在初始化曲线上提取不同长度密集重叠的局部轮廓线集合;
4)全局轮廓线融合,使用一种基于wpca的方法,从冗余的局部轮廓线集合中提取出一条全局轮廓线。
在步骤1)中,所述的建立以初始曲线为中心的l-d轴坐标系,具体如下:
如图2所示,将初始化曲线的开始位置定义为l-d轴坐标系的原点o。沿着初始化曲线的是l坐标轴,垂直于初始化曲线的是d坐标轴。初始化曲线上的一个点p(x,y),p点沿着初始化曲线到o点的距离是l0。根据下面公式可以将l-d轴坐标系中的任意一点p'(l0,d0)转化到图像坐标系:
其中(xp',yp')是点p'在图像坐标系的坐标,
根据以上定义,对目标轮廓线进行采样,获取其在l-d轴坐标系中一系列的离散点。l是初始化曲线的总长度,在初始化曲线上均匀采样m个点{(li,0)|i∈{1,2,...,m}},其中
其中
l-d轴坐标系中的局部轮廓线则可以通过其中一部分点来表示:
其中
最后将di的范围限制在[-r,r]之间,这样所有的局部轮廓线都是在以初始化曲线为中心轴,宽度为2r的带状区域之内。
在步骤2)中,所述的局部轮廓线的提取,具体如下:
通过最大化局部轮廓线的能量函数,确定li处的di就可以确定这条局部轮廓线所在的位置。局部轮廓线{di|i∈{s,s+1,..,t-1,t}}的能量函数由两部分组成:
e({di})=α·ee({di})+β·es({di}),
其中{di}是所求局部轮廓线,e({di})表示局部轮廓线的能量。ee是梯度项,表示局部轮廓线处梯度的大小;es是平滑项,表示局部轮廓线平滑的程度。α和β用于调节两项之间的权重。
然后使用动态规划求解能量函数的近似全局最优解。如图3所示,在l-d轴坐标系中,将d轴以
首先假设对于第i-1行所有节点,已经找到其从第1行到第i-1行的最佳路径。用
其中δ*表示加入当前路径的最优边的索引,并且δ={-cmax,-cmax+1,...,cmax}。
其中平滑项
其中
最后得到节点ni,j处的最佳路径:
其中
通过对网格图
在步骤3)中,所述的多尺度局部轮廓线集合的生成,具体如下:
因为参数s和t决定了一个局部轮廓线在l-d轴坐标系开始和结束的位置。本章的多尺度局部轮廓线提取长度分别为t-s+1={24,30,39,51,66}的局部轮廓线。对于每一种长度的局部轮廓线,沿着初始化轮廓线以相邻两个重叠2/3的间隔采样。例如长度为24的局部轮廓线开始的位置应该是s={1,9,17,...},而长度为30的局部轮廓线开始的位置应该是s={1,11,21,...}。给定开始的位置s和结束的位置t,就可以使用之前的动态规划算法提取对应的局部轮廓线。
多尺度的局部轮廓提取经常需要寻找上百条局部轮廓线,因而无法达到实时的效果。通过gpu加速并行计算多尺度的局部轮廓线计算过程,用cuda中每一个线程计算一个局部轮廓线,将算法加速到实时的效果。
在步骤4)中,所述的基于wpca的全局轮廓线融合,具体如下:
全局融合方法基于主成分分析从局部轮廓线集合中通过动态规划提取全局轮廓线。p是局部轮廓线上点的集合。对于p中任意的一个点pi,其协方差矩阵是:
其中
在得到每个点处的wpca方向之后,如图4所示,通过动态规划的全局轮廓线融合的方法如下:
对于任意一个节点ni,j,与其上一行的节点ni-1,j+δ通过边
其中
图5展示了使用本文轮廓提取方法提取物体轮廓的一个例子,本发明轮廓提取方法准确有效,最终的全局轮廓线是从大量重叠的局部轮廓线上交叉验证得到的,即使一条局部的轮廓线偏离了正确的位置,很多附近的局部轮廓线能够矫正这一错误。
本发明对初始化位置鲁棒,如图6所示,使用不同的初始化均能获得准确的物体轮廓结果。图7展示了本发明应用于轮廓提取的示例以及与pascal数据集原始标记对比图。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。