一种灭点估计的方法及装置
技术领域
本申请涉及计算机视觉
技术领域
,特别涉及一种灭点估计的方法及装置。背景技术
在透视投影中,现实场景中延伸至无穷远处的物体的图像会出现在有限的范围内,例如两条(或多条)互相平行的直线经过透视投影后相交于一点,这一点被称为灭点。灭点信息被广泛应用于基于图像帧的场景解析,如基于图像的场景重建、求取图像采集设备的内参等领域。
为了能够有效地获取图像灭点,往往采用穷举等方式从假设的多个灭点中找到最终灭点,这样的算法在估计灭点时,所需要的运算量很大,运算的复杂度很高。
发明内容
本申请实施例提供了一种灭点估计的方法及装置,以降低运算复杂度。所述技术方案如下:
一方面,本申请实施例提供了一种灭点估计的方法,所述方法包括:
获取第一交点集合,所述第一交点集合包括第一视频图片中的任意两条线段所在直线的交点;
从所述第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,所述第一灭点是根据第二视频图片估计得到的一个灭点,所述第二视频图片是所述第一视频图片的前一帧视频图片;
根据所述第二交点集合,估计所述第一视频图片的灭点。
可选的,所述从所述第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,包括:
将所述第一交点集合包括的每个交点映射到高斯球面上,得到所述每个交点在所述高斯球面上的第一映射点;
以所述第一灭点在所述高斯球面中的方向向量为圆锥轴,以第一角度为圆锥角,在所述高斯球面上确定一弧面;
将位于所述弧面内的每个第一映射点对应的交点组成第二交点集合。
可选的,所述根据所述第二交点集合,估计所述第一视频图片的灭点,包括:
将所述第二交点集合中的每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点;
对所述每个交点的对应的第二映射点进行聚类,得到聚类映射点;
根据所述聚类映射点,估计所述第一视频图片的灭点。
可选的,所述将所述第二交点集合中的每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点,包括:
根据所述第一灭点、第二灭点和第三灭点,将所述第二交点集合包括的每个交点映射到曼哈顿系球面,得到所述每个交点对应的第三映射点,所述第二灭点和所述第三灭点是根据所述第二视频图片估计得到的另外两个灭点;
根据所述每个交点对应的第三映射点,分别确定所述每个交点在所述曼哈顿系球面中的方向向量;
根据所述每个交点的方向向量,将所述每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点。
可选的,所述根据所述聚类映射点,估计所述第一视频图片的灭点,包括:
将所述聚类映射点映射到所述曼哈顿系球面,得到所述聚类映射点的第三映射点;
将所述聚类映射点的第三映射点映射到所述高斯球面,得到所述第一视频图片的灭点。
可选的,所述第一视频图片的灭点包括三个,
所述根据所述第二交点集合,估计所述第一视频图片的灭点之后,还包括:
对所述第一视频图片包括的三个灭点进行正交化校正,得到具有正交性的所述三个灭点。
可选的,所述对所述第一视频图片包括的三个灭点进行正交化校正,得到具有正交性的所述三个灭点,包括:
获取所述三个灭点中的每个灭点在高斯球面中的方向向量;
对方向矩阵进行分解得到第一校正矩阵和第二校正矩阵,所述方向矩阵是基于所述每个灭点的方向向量得到的矩阵;
根据所述第一校正矩阵和所述第二校正矩阵,获取所述第一视频图片包括的具有正交性的三个灭点。
另一方面,本申请实施例提供了一种灭点估计的装置,所述装置包括:
获取模块,用于获取第一交点集合,所述第一交点集合包括第一视频图片中的任意两条线段所在直线的交点;
选择模块,用于从所述第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,所述第一灭点是根据第二视频图片估计得到的一个灭点,所述第二视频图片是所述第一视频图片的前一帧视频图片;
估计模块,用于根据所述第二交点集合,估计所述第一视频图片的灭点。
可选的,所述选择模块,用于:
将所述第一交点集合包括的每个交点映射到高斯球面上,得到所述每个交点在所述高斯球面上的第一映射点;
以所述第一灭点在所述高斯球面中的方向向量为圆锥轴,以第一角度为圆锥角,在所述高斯球面上确定一弧面;
将位于所述弧面内的每个第一映射点对应的交点组成第二交点集合。
可选的,所述估计模块,用于:
将所述第二交点集合中的每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点;
对所述每个交点的对应的第二映射点进行聚类,得到聚类映射点;
根据所述聚类映射点,估计所述第一视频图片的灭点。
可选的,所述估计模块,用于:
根据所述第一灭点、第二灭点和第三灭点,将所述第二交点集合包括的每个交点映射到曼哈顿系球面,得到所述每个交点对应的第三映射点,所述第二灭点和所述第三灭点是根据所述第二视频图片估计得到的另外两个灭点;
根据所述每个交点对应的第三映射点,分别确定所述每个交点在所述曼哈顿系球面中的方向向量;
根据所述每个交点的方向向量,将所述每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点。
可选的,所述估计模块,用于:
将所述聚类映射点映射到所述曼哈顿系球面,得到所述聚类映射点的第三映射点;
将所述聚类映射点的第三映射点映射到所述高斯球面,得到所述第一视频图片的灭点。
可选的,所述第一视频图片的灭点包括三个,
所述装置还包括:
校正模块,用于对所述第一视频图片包括的三个灭点进行正交化校正,得到具有正交性的所述三个灭点。
可选的,所述校正模块,用于:
获取所述三个灭点中的每个灭点在高斯球面中的方向向量;
对方向矩阵进行分解得到第一校正矩阵和第二校正矩阵,所述方向矩阵是基于所述每个灭点的方向向量得到的矩阵;
根据所述第一校正矩阵和所述第二校正矩阵,获取所述第一视频图片包括的具有正交性的三个灭点。
另一方面,本申请提供了一种电子设备,包括:处理器和存储器。其中,所述处理器以及所述存储器之间可以通过总线系统相连。所述存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成上述方法。
另一方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述方法。
另一方面,本申请实施例提供了一种非易失性计算机可读存储介质,用于存储计算机程序,所述计算机程序通过处理器进行加载来执行上述方法的指令。
本申请实施例提供的技术方案可以包括以下有益效果:
通过从第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片;大幅度减小了第二交点集合中的交点数目,如此根据第二交点集合,估计第一视频图片的灭点,可以减小运算量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种网络架构示意图;
图2是本申请实施例提供的一种灭点估计的方法流程图;
图3是本申请实施例提供的另一种灭点估计的方法流程图;
图4是本申请实施例提供的另一种灭点估计的方法流程图;
图5是本申请实施例提供的高斯球面与弧面的示意图;
图6是本申请实施例提供的一种灭点估计的装置结构示意图;
图7是本申请实施例提供的一种电子设备结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参见图1,本申请实施例提供了一种网络架构,该网络架构可以包括摄像机,该摄像机可以部署在室内,用于拍摄视频,该视频包括一帧帧视频图片。
摄像机拍摄到视频时,可以估计出视频中的每帧视频图片包括的灭点。或者,
该网络架构还可以包括终端或服务器,终端与摄像机之间建立有网络连接,或者,服务器与摄像机之间建立有网络连接。终端可以接收摄像机发送的该视频,终端估计出视频中的每帧视频图片包括的灭点。或者,服务器可以接收摄像机发送的该视频,服务器估计出视频中的每帧视频图片包括的灭点。
摄像机或终端估计视频图片中的灭点,将在后续实施例中进行详细说明,在此先不详细介绍。摄像机或终端估计出视频图片中的灭点后,可以对灭点进行处理,实现图像校正,从而提升视频图片的质量。例如,对灭点进行透视变换实现视频图片的图像矫正等。
可选的,该终端可以为计算机或平板电脑等。
参见图2,本申请实施例提供了一种灭点估计的方法,该方法可以应用于图1所示的网络架构,包括:
步骤201:获取第一交点集合,第一交点集合包括第一视频图片中的任意两条线段所在直线的交点。
步骤202:从第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片。
步骤203:根据第二交点集合,估计第一视频图片的灭点。
在本申请实施例中,通过从第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片;这样可以大幅度减小第二交点集合中的交点数目,如此根据第二交点集合,估计第一视频图片的灭点,可以减小运算量。
参见图3,本申请实施例提供了一种灭点估计的方法,该方法可以应用于图1所示的网络架构,该方法的执行主机可以为摄像机、终端或服务器等设备。该设备在获取到视频时,使用该方法估计该视频的第一帧视频图片中的灭点。该方法包括:
步骤301:获取第三交点集合,第三交点集合包括N个交点,该N个交点包括视频的第一帧视频图片中的任意两条线段所在直线的交点。
在本步骤中,通过线段检测算法对视频的第一帧视频图片进行检测,得到第一帧视频图片中的每个线段包括的第一端点和第二端点分别在第一帧视频图片的图像坐标系中的位置。根据每个线段包括的第一端点的位置和第二端点的位置,获取每个线段所在直线的直线方程。根据任意两个线段所在直线的直线方程,获取该任意两个线段所在直线的交点,得到第三交点集合。
可选的,线段检测算法可以为线段检测算法(line segment detector,LSD)检测算法。
针对第一帧视频图片中的任一个线段,该任一个线段的第一端点的位置包括第一端点在图像坐标系中的横坐标和纵坐标,该任一个线段的第二端点的位置包括第二端点在图像坐标系中的横坐标和纵坐标。所以根据第一端点的横坐标和纵坐标,以及第二端点的横坐标和纵坐标,获取该任一个线段所在直线的直线方程。
可选的,在获取每个线段所在直线的直线方程之前,还根据每个线段包括的第一端点的位置和第二端点的位置,获取每个线段的长度。从第一帧视频图片包括的每个线段中选择长度超过长度阈值的线段,获取选择的每个线段所在直线的直线方程。
步骤302:将第三交点集合包括的每个交点映射到高斯球面上,得到每个交点在高斯球面上的第一映射点。
在执行本步骤之前,生成一个高斯球面,该高斯球面的半径为单位长度,该高斯球面上的任一个点的坐标包括经度和纬度,沿着该高斯球面的经度方向进行等间隔划分,以及沿着该高斯球面的纬度方向进行等间隔划分,以在该高斯球面上划分出多个网格。
其中,高斯球面上每个网格占用的经度范围的区间长度相等,以及每个网格占用的纬度范围的区间长度相等。
在高斯球面上划分出多个网格后,还设置每个网格的初始得分。高斯球面上划分出的每个网格的初始得分可以为0、1或2等数值。
在本步骤中,针对第三交点集合中的任一个交点,根据该任一个交点的位置和摄像机的内参,通过如下第一公式获取在该任一个交点在高斯球面上对应的第一映射点的三维坐标。
第一公式为:
在第一公式中,X、Y、Z分别为第一映射点的三维坐标,x和y分别为该任一个交点的位置包括的横坐标和纵坐标。cx、cy、f均为摄像机的内参。其中,cx和cy分别为摄像机的中心像素点的横坐标和纵坐标,f为摄像机的焦距。
再通过如下第二公式,将第一映射点的三维坐标,转换成第一映射点在高斯球面上的坐标,该坐标包括第一映射点的经度和纬度。
第二公式为:
在第二公式中,λ和φ分别为第一映射点的经度和纬度。
在本步骤中,每个交点在高斯球面上的第一映射点的坐标包括经度和纬度,所以根据每个第一映射点的坐标可以分别确定每个第一映射点所在的网格。
步骤303:根据高斯球面上的每个交点对应的第一映射点,获取高斯球面上的每个网格的得分。
在本步骤中,对于第三交点集合中的任意两条线段所在直线的交点,根据该交点对应的第一映射点的坐标,确定该第一映射点所在的网格。获取该网格的当前得分。根据该该两条线段中的每条线段的长度,该两条线段所在直线之间的夹角和该网格的当前得分,计算该第一映射点的第一得分。将该第一映射点的第一得分和该网格的当前得分进行累加,得到第二得分,将该网格的当前得分更新为第二得分。
其中,网格的得分越高表示该网格中的映射点越多。
对第三交点集合中的每个交点执行上述操作,得到高斯球面中的每个网格的得分。
可选的,根据该两条线段所在直线的直线方程,计算该两条线段所在直线之间的夹角。根据该该两条线段中的每条线段的长度,该两条线段所在直线之间的夹角和该网格的当前得分,通过如下第三公式计算该第一映射点的第一得分;
第三公式为:S(λ,φ)=S(a,b)+l1*l2*sin2θ
在上述第三公式中,S(λ,φ)为第一映射点的第一得分,S(a,b)为该网格的当前得分,(a,b)为该网络的坐标,l1和l2分别为该两条线段的长度,θ为该两条线段所在直线之间的夹角;λ,φ分别为该第一映射点的经度和纬度。
步骤304:针对第三交点集合中的任一个交点,根据该交点对应的第一映射点,获取该交点对应的K个灭点组合,每个灭点组合包括该高斯球面中的三个方向向量,K为大于1的整数。
第三交点集合包括N个交点,所以在本步骤中获取到N*K个灭点组合,*为乘法运算。
在本步骤中,可以通过如下3041至3043的操作获取该交点对应的K个灭点组合。该3041至3043的操作分别为:
3041:根据该交点对应的第一映射点的坐标,获取该交点在高斯球面上的第一方向向量,第一方向向量的起点为该高斯球面的球心,终点为该交点对应的第一映射点。
3042:确定经过该高斯球面的球心且与该方向向量垂直的平面,获取高斯球面与该平面相交的圆弧,在该圆弧上等间隔采样K个采样点,获取该K个采样点中的每个采样点的第二方向向量。
针对任一个采样点,该任一个采样点的第二方向向量的起点为高斯球面的球心,终点为该任一个采样点。
3043:对于该K个采样点中的任一个采样点,根据第一方向向量和该任一个采样点的第二方向向量,获取第三方向向量,将该第一方向向量、该任一个采样点的第二方向向量和第三方向向量组成该样点对应的灭点组合。
第三方向向量为v3=v1×v2,v1为第一方向向量,v2为第二方向向量。重复执行上述3043的操作,可以得出该交点对应的K个灭点组合。
对于任一个灭点组合,该灭点组合包括的第一方向向量、第二方向向量和第三方向向量分别对应高斯球面上的三个球面点。也就是说,该三个球面点分别为第一方向向量对应的第一球面点,第二方向向量对应的第二球面点和第三方向向量对应的第三球面点。第一球面点也就是该交点对应的第一映射点。
对第三交点集合中的每个交点执行上述3041至3043的操作,得到第三交点集合中的每个交点对应的K个灭点组合,如此总共得到N*K个灭点组合。
步骤305:针对N*K个灭点组合中的任一个灭点组合,获取该任一个灭点组合的得分。
对于任一个灭点组合,该灭点组合包括第一球面点的第一方向向量,第二球面点的第二方向向量和第三球面点的第三方向向量。根据该灭点组合的第一方向向量、第二方向向量和第三方向向量,分别获取在高斯球面上该灭点组合中的第一球面点的坐标、第二球面点的坐标和第三球面点的坐标。根据第一球面点的坐标、第二球面点的坐标和第三球面点的坐标,分别获取第一球面点所在的第一网格的得分,第二球面点所在的第二网格的得分和第三球面点所在第三网格的得分。根据第一网格的得分,第二网格的得分和第三网格的得分,获取该灭点组合的得分。
可选的,根据第一网格的得分,第二网格的得分和第三网格的得分,通过如下第四公式获取该灭点组合的得分;即对第一网络的得分、第二网络的得分和第三网格的得分进行累加,得到该灭点组合的得分。
第四公式为:
在第二公式中,SH为该灭点组合的得分,S1、S2、S3分别为第一网格的得分,第二网格的得分和第三网格的得分。
步骤306:根据该N*K个灭点组合中的每个灭点组合的得分,估计第一帧视频图片中的三个灭点。
在本步骤中,从该N*K个灭点组合中选择最大得分的灭点组合,获取该最大得分的灭点组合包括第一方向向量对应的第一球面点、第二方向向量对应的第二球面点和第三方向向量对应的第三球面点。确定第一帧视频图片中的第一球面点对应的灭点,第二球面点对应的灭点和第三球面点对应的灭点,如此得到第一帧视频图片中的三个灭点。
可选的,根据第一球面点的经度和纬度,通过上述第二公式可以获取第一球面点的三维坐标,根据第一球面点的三维坐标,通过上述第一公式可以确定第一帧视频图片中的第一球面点对应的灭点的位置,如此得到第一帧视频图片中的第一个灭点。
根据第二球面点的经度和纬度,通过上述第二公式可以获取第二球面点的三维坐标,根据第二球面点的三维坐标,通过上述第一公式可以确定第一帧视频图片中的第二球面点对应的灭点的位置,如此得到第一帧视频图片中的第二个灭点。以及,
根据第三球面点的经度和纬度,通过上述第二公式可以获取第三球面点的三维坐标,根据第三球面点的三维坐标,通过上述第一公式可以确定第一帧视频图片中的第三球面点对应的灭点的位置,如此得到第一帧视频图片中的第三个灭点。
在本申请实施例中,获取视频的第一帧视频图片中的任意两条线段所在直线的交点,得到包括N个交点的第三交点集合。根据第三交点集合,获取N*K个灭点组合的得分,根据该N*K个灭点组合中的每个灭点组合的得分,估计第一帧视频图片中的三个灭点。从而可以基于第一帧视频图片,估计出第一帧视频图片包括的三个灭点。
参见图4,本申请实施例提供了一种灭点估计的方法,该方法可以应用于图1所示的网络架构,该方法的执行主机可以为摄像机、终端或服务器等设备。该设备在获取到视频时,使用该方法估计该视频的第一帧视频图片之后的任一帧视频图片中的灭点。为了便于说明,称第一帧视频图片之后的任一帧视频图片为第一视频图片,即第一视频图片为该视频的第二帧视频图片、第三帧视频图片、第四帧视频图片、……。该方法包括:
步骤401:获取第一交点集合,第一交点集合包括M个交点,该M个交点为第一视频图片中的任意两条线段所在直线的交点。
在本步骤中,通过线段检测算法对第一视频图片进行检测,得到第一视频图片中的每个线段包括的第一端点和第二端点分别在第一视频图片的图像坐标系中的位置。根据每个线段包括的第一端点的位置和第二端点的位置,获取每个线段所在直线的直线方程。根据任意两个线段所在直线的直线方程,获取该任意两个线段所在直线的交点,得到第一交点集合。
针对第一视频图片中的任一个线段,该任一个线段的第一端点的位置包括第一端点在图像坐标系中的横坐标和纵坐标,该任一个线段的第二端点的位置包括第二端点在图像坐标系中的横坐标和纵坐标。所以根据第一端点的横坐标和纵坐标,以及第二端点的横坐标和纵坐标,获取该任一个线段所在直线的直线方程。
可选的,在获取每个线段所在直线的直线方程之前,还根据每个线段包括的第一端点的位置和第二端点的位置,获取每个线段的长度。从第一帧视频图片包括的每个线段中选择长度超过长度阈值的线段,获取选择的每个线段所在直线的直线方程。
步骤402:从第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片。
可选的,第二视频图片是第一视频图片相邻的前一帧视频图片。例如,第一视频图片是该视频的第二帧视频图片,则第二视频图片为该视频的第一帧视频图片。再例如,第一视频图片是该视频的第三帧视频图片,则第二视频图片为该视频的第二帧视频图片。还例如,第一视频图片是该视频的第四帧视频图片,则第二视频图片为该视频的第三帧视频图片。
在第一视频图片是该视频的第二帧视频图片,第二视频图片为该视频的第一帧视频图片的情况下,第二视频图片中的三个灭点可以通过上述图3所示的实施例的方法估计得到。
在本步骤中,可以通过如下4021至4023的操作得到第二交点集合。该4021至4023的操作分别为:
4021:将第一交点集合包括的每个交点映射到高斯球面上,得到每个交点在高斯球面上的第一映射点。
在本步骤中,每个交点在高斯球面上的第一映射点的坐标包括经度和纬度。可以通过上述第一公式和第二公式,将第一交点集合包括的每个交点映射到高斯球面上。映射到高斯球面上的详细过程,在此不再详细说明。
4022:以第一灭点在高斯球面中的方向向量为圆锥轴,以第一角度为圆锥角,在高斯球面上确定一弧面,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片。
第一视频图片是视频的第i帧视频图片,i=2、3、4、……。第二视频图片是视频的第i-1帧视频图片。
在本步骤中,可以通过如下第一步和第二步确定弧面。该第一步和第二步分别为:
第一步:从第二视频图片包括的三个灭点中选择一个灭点作为第一灭点,将第一灭点映射到高斯球面上,得到第一灭点在高斯球面上的第一映射点。
第二步:以第一灭点在高斯球面中的方向向量为圆锥轴,以第一角度为圆锥角,在高斯球面上确定一弧面。
在第二步中,获取第一灭点的方向向量,第一灭点的方向向量以高斯球面的球心为起点,以第一灭点的第一映射点为终点。参见图5,在高斯球面上,以第一灭点的方向向量为圆锥轴,以第一角度为圆锥角,在高斯球面上确定一圆弧,基于该圆弧,在高斯球面划分成两个弧面,从该两个弧面选择面积最小的弧面。
4023:将位于该弧面内的每个第一映射点对应的交点组成第二交点集合。
步骤403:将第二交点集合中的每个交点映射到曼哈顿系球面的一上正切面,得到第二交点集合包括的每个交点对应的第二映射点。
在执行本步骤之前,建立一个曼哈顿系球面。然后通过如下4031至4032的操作获取第二交点集合包括的每个交点对应的第二映射点。该4031至4032的操作,分别为:
4031:根据第一灭点、第二灭点和第三灭点,将第二交点集合包括的每个交点映射到曼哈顿系球面,得到每个交点对应的第三映射点,第二灭点和第三灭点是根据第二视频图片估计得到的另外两个灭点。
在本步骤中,将第一灭点、第二灭点和第三灭点映射到高斯球面上,得到第一灭点的第一映射点、第二灭点的第一映射点和第三灭点的第一映射点。根据第一灭点的第一映射点、第二灭点的第一映射点和第三灭点的第一映射点,分别获取第一灭点的方向向量、第二灭点的方向向量和第三灭点的方向向量。根据第一灭点的方向向量、第二灭点的方向向量和第三灭点的方向向量,将第二交点集合包括的每个交点对应的第一映射点映射到曼哈顿系球面,得到每个交点对应的第三映射点。
针对第二交点集合包括的任一个交点对应的第一映射点,通过如下第五公式得到该任一个交点对应的第三映射点。
第五公式为:
在第五公式中,vk为该任一个交点对应的第一映射点的坐标,v1,v2,v3分别为第一灭点的方向向量、第二灭点的方向向量和第三灭点的方向向量,RT为矩阵R的转置矩阵,v'k为该任一个交点对应的第三映射点,矩阵R是将第一灭点的方向向量、第二灭点的方向向量和第三灭点的方向向量组成得到的。
4032:根据每个交点对应的第三映射点,将每个交点映射到曼哈顿系球面的一个正切面,得到每个交点对应的第二映射点。
针对任一个交点对应的第三映射点,根据该任一个交点对应的第三映射点,通过如下第六公式将该任一个交点对应的第三映射点,映射到曼哈顿系球面的一个正切面,得到该任一个交点对应的第二映射点。
第六公式为:
在第六公式中,m'k为该任一个交点对应的第二映射点的坐标,该坐标为二维坐标,v'k,x,v'k,y,v'k,z分别为该任一个交点对应的第三映射点的横坐标、纵坐标和竖坐标。
步骤404:对每个交点的对应的第二映射点进行聚类,得到聚类映射点。
在本步骤中,可以通过如下第七公式对每个交点的对应的第二映射点进行聚类,得到聚类映射点。
第七公式为:
在第七公式中,s′j为聚类映射点,e为自然常数,c为加权常数,m′j为第j个第二映射点的坐标,是一个二维坐标,包括横坐标m′j,x和纵坐标m′j,y,T为第二映射点的数目。
步骤405:根据该聚类映射点,估计第一视频图片的第一灭点。
在本步骤中,将该聚类映射点映射到曼哈顿系球面,得到该聚类映射点对应的第三映射点;将该聚类映射点的第三映射点映射到高斯球面,得到该聚类映射点对应的第一映射点,该第一映射点在第一视频图片上对应的点为第一视频图片的第一灭点。
该聚类映射点是该曼哈顿系球面的该正切面上的一个点,通过上述第六公式可以将该聚类映射点反向映射到曼哈顿系球面,得到该聚类映射点对应的第三映射点。通过上述第五公式可以将该第三映射点反向映射到高斯球面上,得到该聚类映射点对应的第一映射点,然后再通过上述第二公式和第一公式,获取该第一映射点在第一视频图片上对应的点。
第一视频图片的灭点包括三个,第二视频图片的灭点也包括三个,第二视频图片包括的灭点除了上述第一灭点外,还包括第二灭点和第三灭点。对于第二视频图片的第二灭点,通过上述步骤402至405估计出第一视频图片的第二灭点;对于第二视频图片的第三灭点,通过上述步骤402至405估计出第一视频图片的第三灭点。
步骤406:对第一视频图片包括的三个灭点进行正交化校正,得到具有正交性的三个灭点。
在本步骤中,可以通过如下4061至4063的操作进行正交化校正。该4061至4063的操作,分别为:
4061:获取第一视频图片包括的三个灭点中的每个灭点在高斯球面中的方向向量。
对于任一个灭点的方向向量,该方向向量的起点为该高斯球面的球心,终点为该灭点在高斯球面上对应的第一映射点。假设该三个灭点的方向向量分别表示为
4062:对方向矩阵进行分解得到第一校正矩阵和第二校正矩阵,该方向矩阵是基于每个灭点的方向向量得到的矩阵。
可选的,将该每个灭点的方向向量组成该方向矩阵,所以组成的方向矩阵可以表示为
可选的,可以采用奇异值分解(singular value decomposition,SVD)分解法,对方向矩阵进行分解,得到左奇异矩阵和右奇异矩阵,该左奇异矩阵和右奇异矩阵分别为第一校正矩阵和第二校正矩阵。
4063:根据第一校正矩阵和第二校正矩阵,获取第一视频图片包括的具有正交性的三个灭点。
可通过如下第八公式获取第一视频图片包括的具有正交性的三个灭点。
第八公式为:
在第八公式中,λ1、λ2、λ3均为权重系数,v′1、v′2、v′3为三个灭点。
在本申请实施例中,获取第一交点集合,第一交点集合包括M个交点,该M个交点为第一视频图片中的任意两条线段所在直线的交点。基于第一灭点的方向向量,在高斯球面上确定弧面,将位于该弧面内的第一映射点对应的交点组成第二交点集合。这样相比第一交点集合,大量降低了第二交点集合包括的交点数目,这样基于第二交点集合估计第一视频图片包括的灭点时,可以减小了运算量,降低运算复杂度。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
参见图6,本申请实施例提供了一种灭点估计的装置500,所述装置500包括:
获取模块501,用于获取第一交点集合,所述第一交点集合包括第一视频图片中的任意两条线段所在直线的交点;
选择模块502,用于从所述第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,所述第一灭点是根据第二视频图片估计得到的一个灭点,所述第二视频图片是所述第一视频图片的前一帧视频图片;
估计模块503,用于根据所述第二交点集合,估计所述第一视频图片的灭点。
可选的,所述选择模块502,用于:
将所述第一交点集合包括的每个交点映射到高斯球面上,得到所述每个交点在所述高斯球面上的第一映射点;
以所述第一灭点在所述高斯球面中的方向向量为圆锥轴,以第一角度为圆锥角,在所述高斯球面上确定一弧面;
将位于所述弧面内的每个第一映射点对应的交点组成第二交点集合。
可选的,所述估计模块502,用于:
将所述第二交点集合中的每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点;
对所述每个交点的对应的第二映射点进行聚类,得到聚类映射点;
根据所述聚类映射点,估计所述第一视频图片的灭点。
可选的,所述估计模块503,用于:
根据所述第一灭点、第二灭点和第三灭点,将所述第二交点集合包括的每个交点映射到曼哈顿系球面,得到所述每个交点对应的第三映射点,所述第二灭点和所述第三灭点是根据所述第二视频图片估计得到的另外两个灭点;
根据所述每个交点对应的第三映射点,分别确定所述每个交点在所述曼哈顿系球面中的方向向量;
根据所述每个交点的方向向量,将所述每个交点映射到曼哈顿系球面的正切面,得到所述每个交点对应的第二映射点。
可选的,所述估计模块503,用于:
将所述聚类映射点映射到所述曼哈顿系球面,得到所述聚类映射点的第三映射点;
将所述聚类映射点的第三映射点映射到所述高斯球面,得到所述第一视频图片的灭点。
可选的,所述第一视频图片的灭点包括三个,
所述装置500还包括:
校正模块,用于对所述第一视频图片包括的三个灭点进行正交化校正,得到具有正交性的所述三个灭点。
可选的,所述校正模块,用于:
获取所述三个灭点中的每个灭点在高斯球面中的方向向量;
对方向矩阵进行分解得到第一校正矩阵和第二校正矩阵,所述方向矩阵是基于所述每个灭点的方向向量得到的矩阵;
根据所述第一校正矩阵和所述第二校正矩阵,获取所述第一视频图片包括的具有正交性的三个灭点。
在本申请实施例中,由于选择模块通过从第一交点集合中选择与第一灭点之间的位置关系满足预设条件的交点,得到第二交点集合,第一灭点是根据第二视频图片估计得到的一个灭点,第二视频图片是第一视频图片的前一帧视频图片;大幅度减小了第二交点集合中的交点数目,如此估计模块根据第二交点集合,估计第一视频图片的灭点,可以减小运算量。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7示出了本发明一个示例性实施例提供的电子设备600的结构框图。该电子设备600可以是上述实施例提及的终端或服务器等,可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的灭点估计的方法。
在一些实施例中,电子设备600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置电子设备600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在电子设备600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在电子设备600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备600的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位电子设备600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源609用于为电子设备600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以电子设备600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测电子设备600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对电子设备600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在电子设备600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在电子设备600的侧边框时,可以检测用户对电子设备600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置电子设备600的正面、背面或侧面。当电子设备600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在电子设备600的前面板。接近传感器616用于采集用户与电子设备600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与电子设备600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与电子设备600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对电子设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。