基于全局搜索的灭点提取方法及系统与流程

文档序号:12675397阅读:249来源:国知局
基于全局搜索的灭点提取方法及系统与流程

本发明属于图像处理技术领域,特别是涉及一种基于全局搜索的灭点提取方法及系统。



背景技术:

透视投影中,一束平行于投影面的平行线的投影可以保持平行,而不平行于投影面的平行线的投影会聚集到一个点,这个点成为灭点(Vanishing Point)。灭点可以看作是无限远处的一点在投影面上的投影。具有正交信息的灭点对于恢复照片拍摄瞬间相机的方位、估计世界坐标系的结构和解求图像的内部参数具有重要的意义。同时,作为一个底层的技术,灭点提取可以用在很多应用上,例如基于单张影像的场景三维重建、视觉导航和相机自标定等等。

单张影像上提取灭点主要有两个技术难点:首先,解算出来的灭点需要满足全局最优性,即解算得到的灭点应该在理论上是全局最优解,而不是局部最优解。其次,灭点需要满足曼哈顿世界原则(Manhattan world),即得到的若干个灭点应该相互正交。当前较为通用的灭点提取算法主要有:基于穷举搜索的灭点提取算法、基于期望最大(expectation-maximization)的灭点提取算法、基于RANSAC的灭点提取算法和基于数学优化的灭点提取算法。

基于穷举搜索的灭点提取算法是最早提出的灭点提取算法之一。这种算法首先选取大量的可能的灭点,然后穷举遍历所有的这些可能的灭点,将其中最为精确的那个作为结果。这种算法保证了全局最优性,但是时间耗费太大,因而并不实用。

基于期望最大的灭点提取算法通过迭代进行线段分类(expectation step)和灭点估计(maximization step)这两个步骤,来找到最优的线段分类和灭点。这种算法时间耗费较小,但是需要给定较为精确的灭点的初始估计值,而且理论上并不能保证全局最优性和正交性。

基于RANSAC的灭点提取算法首先定义一个最小解算集合(minimal solution set),这样的最小解算集合可以用来计算得到一组灭点。然后利用RANSAC进行随机采样,得到若干最小解算集合,从而得到若干组相对应的可能的灭点(其数量远小于穷举搜索的灭点提取算法),最后选取其中精度最高的灭点作为最后的结果。这种算法虽然能够保持灭点正交的特性,而且速度很快,但是由于RANSAC本身不具有全局最优解的特性,得到的灭点理论上不具有全局最优性。



技术实现要素:

针对现有技术中存在的不足,本发明提供了一种基于全局搜索的灭点提取方法及系统。

本发明提供的一种基于全局搜索的灭点提取方法,包括步骤:

S1基于等效球面构建影像的极坐标格网,初始化极坐标格网中各子格网的值G(i,j)=0,G(i,j)表示第(i+1)行第(j+1)列子格网的值;

S2对影像中所有的任意两条直线段l1和l2均执行如下:

记l1和l2的交点为p'(x,y),计算p'(x,y)在等效球面上的经纬度(λ',φ'),采用公式G(λdegdeg)=G(λdegdeg)+||l1||×||l2||×sin(2θ)更新(λ',φ')所落入的子格网的值G(λdegdeg),其中,||l1||和||l2||分别代表l1和l2的长度;θ代表l1和l2的夹角;

S3基于两条直线段组成的最小解算集合和灭点的正交特性,获得所有可能的灭点假设,本步骤进一步包括:

3.1在影像中所有直线段中随机选择Its次最小解算集合,各最小解算集合中两条直线段的交点即第一个灭点v1所有可能的灭点假设;其中,Its=log(1-a)/log(1-Pmax),a表示置信度,a为经验值,在[0.99,0.9999]范围取值;Pmax为任意最小解算集合同时对应于一个灭点的最小概率值,n为预设的影像噪声率,n为经验值,在[0.3,0.5]范围取值;

3.2对v1的各灭点假设,获得以v1的各灭点假设为法向量的平面与等效球面相交的圆弧,在圆弧上密集采样,采样点在影像上的对应点即第二个灭点v2所有可能的灭点假设;

3.3利用灭点v1、v2、v3间的正交特性,获得第三个灭点v3所有可能的灭点假设;所述的灭点v1、v2和v3分别表示与曼哈顿世界坐标系三个方向对应的灭点;

S4对每一个v1、v2、v3的灭点假设,计算v1、v2、v3的灭点假设的直线段响应强度S,最大的S所对应的灭点假设即最终的灭点提取结果;G(λkdegkdeg)表示(λkk)所落入的子格网的值,λkdeg和φkdeg分别表示λk和φk转换成度数表示后经取整得到的整数值,(λkk)为灭点vk的经纬度,k=1,2,3。

进一步的,步骤S1中所述的基于等效球面构建影像的极坐标格网,具体为:

计算影像上每一点p(x,y)在等效球面上对应点的经纬度(λ,φ),将等效球面按照经纬线进行划分得到极坐标格网。

进一步的,子步骤2.2具体为:

获得以v1的各灭点假设为法向量的平面与等效球面相交的圆弧;

在圆弧上对经度进行密集采样,获得各采样点对应的经度值;

根据公式和X1×X2+Y1×Y2+Z1×Z2=0,获得各采样点的纬度值及(X2,Y2,Z2);其中,(X1,Y1,Z1)和(X2,Y2,Z2)分别表示v1和v2在相机空间坐标系的三维坐标;(λ22)表示v2的经纬度,也即采样点的经纬度;

根据采样点的(X2,Y2,Z2)反推各采样点在影像上的对应点,即第二个灭点v2所有可能的灭点假设。

本发明提供的一种基于全局搜索的灭点提取系统,包括:

极坐标格网构建模块,用来基于等效球面构建影像的极坐标格网,初始化极坐标格网中各子格网的值G(i,j)=0,G(i,j)表示第(i+1)行第(j+1)列子格网的值;

子格网值更新模块,用来对影像中所有的任意两条直线段l1和l2均执行如下:

记l1和l2的交点为p'(x,y),计算p'(x,y)在等效球面上的经纬度(λ',φ'),采用公式G(λdegdeg)=G(λdegdeg)+||l1||×||l2||×sin(2θ)更新(λ',φ')所落入的子格网的值G(λdegdeg),其中,||l1||和||l2||分别代表l1和l2的长度;θ代表l1和l2的夹角;

灭点假设获得模块,用来基于两条直线段组成的最小解算集合和灭点的正交特性,获得所有可能的灭点假设;

所述的灭点假设获得模块进一步包括子模块:

第一灭点假设获得子模块,用来在影像中所有直线段中随机选择Its次最小解算集合,各最小解算集合中两条直线段的交点即第一个灭点v1所有可能的灭点假设;其中,Its=log(1-a)/log(1-Pmax),a表示置信度,a为经验值,在[0.99,0.9999]范围取值;Pmax为任意最小解算集合同时对应于一个灭点的最小概率值,n为预设的影像噪声率,n为经验值,在[0.3,0.5]范围取值;

第二灭点假设获得子模块,用来对v1的各灭点假设,获得以v1的各灭点假设为法向量的平面与等效球面相交的圆弧,在圆弧上密集采样,采样点在影像上的对应点即第二个灭点v2所有可能的灭点假设;

第三灭点假设获得子模块,用来利用灭点v1、v2、v3间的正交特性,获得第三个灭点v3所有可能的灭点假设;所述的灭点v1、v2和v3分别表示与曼哈顿世界坐标系三个方向对应的灭点;

灭点提取模块,用来对每一个v1、v2、v3的灭点假设,计算v1、v2、v3的灭点假设的直线段响应强度S,最大的S所对应的灭点假设即最终的灭点提取结果;G(λkdegkdeg)表示(λkk)所落入的子格网的值,λkdeg和φkdeg分别表示λk和φk转换成度数表示后经取整得到的整数值,(λkk)为灭点vk的经纬度,k=1,2,3。

和现有技术相比,本发明具有以下优点和有益效果:

(1)具有鲁棒性:

本发明可适用到只存在1、2或3个灭点的场景,且在这三种场景下均能稳定提取灭点。

(2)具有实时性:

本发明实现简单,时间复杂度较小,且各步骤均适合并行处理,因此实时性强。经测试,在未适用任何加速优化的情况下,本发明方法在Intel Core i5-3550p CPU上的运行时间为40ms。

(3)具有全局最优性:

本发明采用密集采样和全局搜索寻找最优的方法提取灭点,所提取灭点在理论上具有全局最优性。

附图说明

图1为本发明实施例的整体流程图;

图2为等效平面示意图。

具体实施方式

下面将对本发明具体实施方式做进一步说明。

一、在等效球面上构建极坐标格网。

本步骤包括以下子步骤:

步骤1.1,计算影像上点p(x,y)在等效球面(Equivalent Sphere)上对应点的经纬度(λ,φ)。

本子步骤的具体实现过程如下:

已知影像的内参:焦距f和像主点(x0,y0),给定影像上任意一点p(x,y),该点p(x,y)在相机空间坐标系下对应的三维坐标为p(X,Y,Z):

所有点p(X,Y,Z)所围成的三维球面即等效球面。前述相机空间坐标系为右手坐标系,以相机成像中心为原点,X轴和Y轴的正方向分别与影像坐标系中x轴和y轴的正方向一致,Z轴正方向为相机成像中心指向像主点的方向。

已知三维点p(X,Y,Z),其在等效球面上对应点的经纬度(λ,φ)为:

联立公式(1)和(2),即可得到影像平面上每一个点在等效球面上对应点的经纬度。

步骤1.2,基于等效球面构建极坐标格网。

本子步骤的具体实现过程如下:

极坐标格网基于等效球面构建。影像平面上各点在等效球面上对应点的经度和纬度的取值范围分别为[0,2π]和[0,π/2],将等效球面按照经纬线进行划分,得到极坐标格网。这里以1°为划分精度,那么可以将等效球面划分为包括360×90个子格网的极坐标格网。将极坐标格网记做G,将G中每一个元素初始化为0,即G(i,j)=0,i∈[0,359],j∈[0,89],i、j均为整数,G(i,j)表示极坐标格网中第(i+1)行第(j+1)列子格网的值。

二、更新极坐标格网中各子格网的值。

使影像中直线段两两相交,直线段为已知直线段或采用直线提取法从影像中提取得到。设两条直线段分别为l1和l2,l1和l2的交点记为p'(x,y),利用子步骤1.1的方法即可计算点p'(x,y)在等效球面上的经纬度(λ',φ');然后,找到(λ',φ')所落入的子格网,并按照公式(3)对子格网的值进行更新:

G(λdegdeg)=G(λdegdeg)+||l1||×||l2||×sin(2θ) (3)

式(3)中,G(λdegdeg)表示(λ',φ')所落入的子格网的值,其表示影像中与该子格网对应的直线段的响应强度;λdeg和φdeg分别表示λ'和φ'转换成度数表示后经取整得到的整数值;||l1||和||l2||分别代表直线段l1和l2的长度;θ代表直线段l1和l2的夹角。

极坐标格网中每个子格网的值代表影像中与该子格网对应的直线段的响应强度,该数值越大,则代表这个子格网对应越多的线段,即越有可能对应一个灭点。

三、基于两条直线段组成的最小解算集合(minimal solution set)和灭点的正交特性,获得所有可能的灭点假设。

本步骤进一步包括以下子步骤:

步骤3.1,利用两条直线段组成的最小解算集合得到第一个灭点v1所有可能的灭点假设。

本子步骤的具体实现过程如下:

首先讨论两条直线段组成的最小解算集合的概率问题。给定一张影像,假设其中共有N条直线段,且这N条直线段不存在噪声,即所有的直线段都有与之对应的灭点。与曼哈顿世界坐标系三个方向对应的灭点分别记为v1、v2和v3。N条直线段对应于灭点v1、v2、v3的直线段数目分别为n1、n2和n3。在这N条直线段中任意选取2条直线段构成一个最小解算集合,那么这2条直线段同时对应于一个灭点的概率P为:

式(4)中,当且仅当n1=n2=n3=N/3时,P=1/3。

现在假设这N条直线段中有50%的直线段是噪声,即将影像噪声率设为0.5,那么任意最小解算集合同时对应于一个灭点的最小概率值Pmax为1/3×0.52=1/12。设定置信度为0.9999,那么可以计算出至少需要随机选取Its次最小解算集合,才能够保证有0.9999的概率使得这Its次随机选取里面至少有一次得到的最小解算集合中的2条直线段对应的是同一个灭点。其中Its的计算如下:

Its=log(1-0.9999)/log(1-Pmax)=105 (5)

影像噪声率和置信度均为经验值,可通过对采样样本进行重复试验获取合适值。本发明中置信度的取值范围为[0.99,0.9999],并不限于0.9999;本发明中影像噪声率的取值范围为[0.3,0.5],并不限于0.5。

然后,在所有N条直线段里面进行105次选取,每次随机选取两条直线段,计算这两条直线段的交点,这样即可得到105个第一个灭点的假设。

步骤3.2,利用正交特性和穷举采样得到第二个灭点v2所有可能的灭点假设。

由于正交特性,第二个灭点v2应该存在于以第一个灭点v1为法向量的平面与等效球面相交得到的圆弧上。因此可以在这个圆弧上进行密集采样来得到第二个灭点v2所有可能的灭点假设。

假设第一个灭点v1=(X1,Y1,Z1)T,第二个灭点v2=(X2,Y2,Z2)T,将第二个灭点的经纬度记为(λ22),那么存在下面两个方程式:

以及

X1×X2+Y1×Y2+Z1×Z2=0 (7)

灭点v1对应的圆弧上,对经度取值按照1°的采样间隔进行密集采样,这样可以得到360个采样点,该采样点的经度值记为{1°,2°,3°,...,360°}。由于各采样点的经度值已知,联立方程式(6)和(7),即可求出其对应的纬度值。

得到各采样点的经纬度后,根据公式(6)即可得到各采样点对应的灭点v2=(X2,Y2,Z2)T,利用公式(1)~(2)即可反算得到第二个灭点v2在影像坐标系下的坐标。

对于一个可能的灭点v1,可以在其对应的圆弧上得到360个采样点。对于所有105个灭点v1的可能值,可以得到总计150×360=37800个可能的采样点,从而获得150×360=37800个可能的灭点v2

步骤3.3,利用正交特性得到第三个灭点v3所有可能的灭点假设。

对于每一个可能的灭点v1和v2,可以通过叉乘得到第三个灭点v3,即:

通过子步骤3.1、3.2和3.3,即可得到灭点v1、v2和v3的总计37800个可能的灭点假设。

四、基于极坐标格网对所有可能的灭点假设进行验证,选取最为精确的灭点假设作为最后的灭点提取结果。

本步骤进一步包括以下子步骤:

3.1对每一个灭点v1、v2和v3的假设,利用公式(1)~(2)计算对应的经纬度(λ11)、(λ22)和(λ33)。该假设的直线段响应强度S即为经纬度(λ11)、(λ22)和(λ33)所落入的子格网的值之和,即:

其中,G(λkdegkdeg)表示(λkk)所落入的子格网的值,λkdeg和φkdeg分别表示λk和φk转换成度数表示后经取整得到的整数值,k=1,2,3。

3.2选取最大的直线段响应强度S所对应的灭点假设作为最终的灭点提取结果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1