本发明涉及从三维数据中曲率的获取技术领域,具体涉及利用微分几何理论提取空间曲线曲率特征的方法。
背景技术:
随着图像处理及计算机视觉技术的发展,目标物体的三维数据获取变得简便。从离散的三维数据中获取目标物体的几何特征对于目标描述及目标匹配分类具有十分重要的意义。而对于空间曲线,它的形状是唯一决定于它的曲率和挠率的。所以,从曲线的三维数据中提取曲率特征,在模式识别领域中具有潜在的应用价值。
目前从三维数据中得到曲率的一般方法主要有以下几种:一种已知目标曲线的离散数据点集,对其进行插值或者拟合得到目标曲线的近似参数方程,然后利用曲率计算公式得到曲率。这种方法要求得到的近似曲线方程是连续函数,且同时具有至少三阶可导。但是在实际问题中,并非能够得到曲线的整体或者局部的连续的近似参数化方程是非常困难的;若已知目标曲线的参数化函数,则直接使用曲率计算公式得到曲率;或者是由已知的离散数据点集,将曲率估计问题转换为密切圆半径估计。这种方法存在的问题是通常计算过程复杂,需要求解非线性方程组。
技术实现要素:
本发明的主要目的是在于克服现有从三维数据中估计曲率技术的缺点与不足,提供一种在图像处理中利用微分几何理论提取空间曲线曲率特征的方法,避免曲线拟合或者插值,直接计算曲率,适用于从离散数据点集中获取目标曲线的曲率特征,相比于现有的提取曲线曲率特征的方法,具有计算简便、速度快的特点。
为了达到上述的目的,本发明采用以下技术方案:
一种利用微分几何理论提取空间曲线曲率特征的方法,包括下述步骤:
(1)由二维图像恢复目标曲线的三维空间坐标:通过被标定的摄像机拍摄场景中的目标曲线,得到二维图像;由二维图像获取目标物体的深度信息,得到目标曲线上n个点在世界坐标系中的三维坐标
(2)建立标架:建立目标曲线上第i个点pi的标架;
(3)推算建立标架的点与其邻域点的关系式:计算点pi与其邻域点pj(xj,yj,zj)之间的弧长sij;并考察在点pi的标架下,其邻域点pj在空间中的坐标与点pi的空间坐标的关系表达式;
(4)求解点pi曲率k;
(5)重复步骤(2)、(3)、(4)得到目标曲线上点p1~pn的曲率。
优选的,步骤(1)中,先对二维图像进行边缘检测,然后进行边缘筛选,最后提取目标曲线的轮廓,从而得到目标曲线在左右摄像机中的像素坐标ul(xl,yl)、ur(xr,yr)。
优选的,使用canny边缘检测算子进行边缘检测。
优选的,使用基于偏微分方程目标轮廓提取方法,提取目标曲线的轮廓,得到左右摄像机的像素坐标ul、ur。
优选的,根据双目立体视觉理论,目标曲线在空间中的对应点pi(xi,yi,zi)的坐标是
其中,
优选的,步骤(2)中,按下述方式建立frenet标架:设曲线c满足弧长化参数方程:r=r(s)。规定曲线c在任一点的单位切向量r′(s)记为t(s);当|r″(s)|≠0时,向量t′(s)上的单位向量n(s)称为曲线在s处的主法向量;令b(s)=t(s)×n(s),称其为单位从法向量。b(s)、t(s)、n(s)是单位向量且两两正交,则称{r(s):b(s)、t(s)、n(s)}为曲线在弧长为s处的frenet标架。
优选的,由上述步骤建立的frenet标架,可以得到两套frenet标架之间的映射关系
其中,k是曲率,τ是挠率,t′表示曲线c在弧长为s处的单位切向量t(s)的导数,n′表示曲线c在弧长为s处的主法向量n(s)的导数,b′表示曲线c在弧长为s处的单位从法向量b(s)的导数。
优选的,在步骤(3)中,用两点之间的直线距离代替pi与其邻域点pj之间的弧长sij。
优选的,在步骤(3)中,建立pi的frenet标架,并设pi点的弧长s=0。将曲线的弧长化参数方程r=r(s)展开为taylor级数
其中r为s的高阶无穷小量。
优选的,用pi的frenet标架,替换ri′(0)、ri″(0)、ri″′(0)。
ri′(0)=ti(0)
ri″(0)=ki(0)ni(0)
ri″′(0)=(ti′(0))′=(ki(0)ni(0))′=ki′(0)ni(0)+ki(0)ni′(0)
=ki′(0)ni(0)+ki(0)(-ki(0)ti(0)+τi(0)bi(0))
=-ki2(0)ti(0)+ki′(0)ni(0)+ki(0)τi(0)bi(0)
(3)
ti(0)、ni(0)以及bi(0)是点pi的frenet标架的各个分量,ki(0)、τi(0)分别是点pi的曲率和挠率。
将式(3)代入式(2)得到
其中,r是高阶无穷小量,通常可以忽略。
优选的,忽略式(4)的
优选的,可以用邻域点pj(xj,yj,zj)代替r(s),是已知的。用pi点的坐标代替ri)0),是已知的。可以用邻域点与pi之间的弧长sij代替s,是已知的。所以,式(4)中的未知量有ki(0)、τi(0)、ti(0)、ni(0)及bi(0)。
优选的,在步骤(4)中,令
ti(0)=(txi,tyi,tzi)
ni(0)=(nxi,nyi,nzi)
根据式b(s)=t(s)×n(s),可以得到
ti(0)=((tyinyi-nyitzi),(tzinxi-nzitxi),(txinyi-tyinxi))
(6)
其中,式(6)中有6个未知数。
将q个邻域点pj(xj,yj,zj)以及点pi(xi,yi,zi)代入式(4),可以得到3q个方程
优选的,t(s)及n(s)是单位向量,所以|ti(0)|=|ni(0)|=2,这样可以得到2个方程
t2xi+t2yi+t2zi=1
n2xi+n2yi+n2zi=1
(8)
其中,式(7)中有ki(0)、τi(0)、ti(0)、ni(0)共8个未知数。取2个邻域点,则式(7)可得6个方程。加上式(8)的2个方程。那么,8个方程,8个未知数,求解该方程组,可以得曲线在点pi的曲率ki。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明采用弧长作为参数,它既不依赖于参数的选取,又同坐标系的选取无关。
(2)本发明在未知参数方程,不需要拟合完整曲线方程或者局部曲线方程,可以从离散数据点集中获取曲率特征。
(3)本发明能够符合预期设计要求,而且和现有的曲率估计算法比较,本发明实现过程简单,计算过程更快。
附图说明
图1是本发明提取空间曲线曲率特征的流程图。
图2是本发明目标曲线的轮廓示意图。
图3是本发明在曲线上某点建立frenet标架的示意图。
图4是本发明邻域点在某点的frenet标架中的示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
如图1所示,为本发明一种曲率特征提取方法的整体流程图,其具体的操作步骤如下:
(1)由二维图像恢复目标曲线的三维空间坐标:通过被标定的摄像机拍摄场景中的目标曲线,得到二维图像。由二维图像获取目标物体的深度信息,得到目标曲线在世界坐标系中的三维数据点集
如图2所示,包含目标曲线的二维图像进行处理,得到目标曲线在图像坐标系中的像素坐标。再通过立体视觉,恢复目标曲线的深度信息,得到目标曲线三维数据点集
(2)建立标架:建立目标曲线上点pi的标架;
如图3所示,按下述步骤建立离散点的frenet标架:设曲线c满足弧长化参数方程:r=r(s)。规定曲线c在任一点的单位切向量r′(s)记为t(s);当|r″(s)|≠0时,向量t′(s)上的单位向量n(s)称为曲线在s处的主法向量;令b(s)=t(s)×n(s),称其为单位从法向量。b(s)、t(s)、n(s)是单位向量且两两正交,则称{r(s):b(s)、t(s)、n(s)}为曲线在s处的frenet标架。由上述步骤建立的frenet标架,可以得到曲线论基本公式的frenet公式
其中,k是曲率,τ是挠率。
(3)推算建立标架的点与其邻域点的关系式:建立任一点pi的标架后,计算点pi与其邻域点pj(xj,yj,zj)之间的弧长sij。并考察在点pi的标架下,其邻域点pj在空间中的坐标与点pi的空间坐标的关系表达式;
如图4所示,在p0建立frenet标架,则点p1以及点p2位于点p0的标架中。那么点p1以及点p2就可以由该标架的各个分量来表示。
因为p0在该frenet标架的原点,所以设p0点的弧长s=0。将曲线的弧长化参数方程r=r(s)展开为taylor级数
其中r为s的高阶无穷小量。用p0的frenet标架,替换r0′(0)、r0″(0)、r0″′(0)。
r0′(0)=t0(0)
r0″(0)=k0(0)m0(0)
r0″′(0)=(t0′(0))′=(k0(0)n0(0))′=k0′(0)n0(0)+k0(0)n0′(0)
=k0′(0)n0(0)+k0(0)(-k0(0)t0(0)+τ0(0)b0(0))
=-k02(0)t0(0)+k0′(0)n0(0)+k0(0)τ0(0)b0(0)
(11)
将式(11)代入式(10)得到
其中,r是高阶无穷小量,通常可以忽略。同时忽略式中(12)的
这样,在p0的frenet标架下,可以用其标架分量来表示点p1以及点p2的坐标。
(4)求解曲率k:求解步骤(3)中的关系式,可以得到空间曲线某点的曲率k。
(5)重复步骤(2)、(3)、(4)可以得到曲线上所有点的曲率。
其中,可以用点p0邻域内的p1、p2坐标代替r(s),是已知的。用p0点的坐标代替r0(0),是已知的。可以用邻域点与p0之间的弧长sij代替s,是已知的。所以,式(13)中的未知量有k0(0)、τ0(0)、t0(0)、n0(0)及b0(0)。
令
t0(0)=(tx0,ty0,tz0)
n0(0)=(nx0,ny0,nz0)
(14)
根据b(s)=t(s)×n(s),可以得到
t0(0)=((ty0ny0-ny0tz0),(tz0nx0-nz0tx0),(tx0ny0-ty0nx0))
(15)
分析可得,式(13)中有8个未知数。
将p1(x1,y1,z1)、p2(x2,y2,z2)、p0(x0,y0,z0)代入式(13),可以得到6个方程。
因为t(s)及n(s)是单位向量,所以|t0(0)|=|n0(0)|=1,这样可得到2个方程
t2x0+t2y0+t2z0=1
n2x0+n2y0+n2z0=1
(17)
其中,式(13)有8个未知数。所以8个方程,8个未知数,可以求出曲线在点p0的曲率k0。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。