本发明涉及图像处理技术领域,尤其涉及一种位置定位方法及装置。
背景技术:
三维重建技术是计算机视觉和计算机图形学一直以来研究的热门方向之一。通过三维重建技术,用户可以通过某特征点在相机拍摄的图像中的二维信息来获取所述特征点在该相机坐标系或世界坐标系中的三维信息。
目前,在用户利用单目相机来实现对特征点的三维重建的情况下,要先安装并固定单目相机,使所述单目相机相对于某基准面(例如水平面或地面)位置是固定的,从而可以确定所述单目相机相对于基准面的高度、相机的相对于所述基准面的安装角度等;在利用所述单目相机对所述特征点拍摄图像后,处理器根据该特征点在所述图像中的二维坐标系下的二维坐标以及所述高度、安装角度等信息,通过传统的透视几何成像原理确定所述特征点的三维坐标。
在上述方法中,由于上述方法中采用透视几何成像原理实现,所以所述单目相机必须为透视相机;且在对具体场景中的目标特征点进行三维重建时,处理器需要单目相机的多个特征数据,例如所述单目相机相对于基准面的高度、相机的相对于所述基准面的安装角度,才能确定该目标特征点的三维坐标,实现对所述目标特征点的准确定位。
显然,由于在上述方法中,所述单目相机限定为透视相机、且处理器需要获取单目相机的多个特征数据,因此,该方法的灵活性和实用性较差。
技术实现要素:
本发明提供一种位置定位方法及装置,用以解决现有技术中位置定位的灵活性和实用性较差的问题。
本发明提供的具体技术方案如下:
第一方面,本发明实施例提供了一种位置定位方法,包括:
获取单目相机针对目标场景中目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向;其中,所述多个特征点的数目不小于3,所述多个特征点不共线,所述多个特征点中包含待定位的目标特征点;所述多条射线与所述多个特征点一一对应,任一条射线以所述单目相机的成像点为起点,且指向对应的特征点;
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程;其中,所述多个特征点的位置关系包括以所述多个特征点为顶点的多边形的边长和/或所述多边形的内角;
根据所述平面方程和目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,其中所述目标射线为所述目标特征点对应的射线。
结合第一方面,在第一方面的第一种可能的实现方式中,确定所述多条射线的方向,包括:
获取所述原始图像中显示所述多个特征点的像素点的像素坐标;
根据获取的多个像素点的像素坐标,以及所述单目相机的类型和参数确定所述多条射线的方向。
结合第一方面,在第一方面的第二种可能的实现方式中,根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,包括:
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面的法向量;
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程,包括:
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述平面方程中的常数值;
根据所述目标平面的法向量和所述常数值,确定所述目标平面在所述相机坐标系下的所述平面方程。
结合第一方面、第一方面的第一种至第三种可能的实现方式中的任一项,在第一方面的第四种可能的实现方式中,根据所述平面方程和所述目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,包括:
根据所述平面方程和所述目标射线的方向,确定目标交点在所述相机坐标系下的位置;其中,所述目标交点为所述目标射线与所述目标平面的交点;
将所述目标交点在所述相机坐标系下的位置,确定为所述目标特征点在所述相机坐标系下的位置。
第二方面,本发明实施例提供了一种位置定位装置,包括:
获取单元,用于获取单目相机针对目标场景中目标平面上的多个特征点拍摄的原始图像;其中,所述多个特征点的数目不小于3,所述多个特征点不共线,所述多个特征点中包含待定位的目标特征点;
确定单元,用于确定多条射线的方向;其中,所述多条射线与所述多个特征点一一对应,任一条射线以所述单目相机的成像点为起点,且指向对应的特征点;
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程;其中,所述多个特征点的位置关系包括以所述多个特征点为顶点的多边形的边长和/或所述多边形的内角;
根据所述平面方程和目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,其中所述目标射线为所述目标特征点对应的射线。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取单元,还用于:
获取所述原始图像中显示所述多个特征点的像素点的像素坐标;
所述确定单元,在确定所述多条射线的方向时,具体用于:
根据所述获取单元获取的多个像素点的像素坐标,以及所述单目相机的类型和参数确定所述多条射线的方向。
结合第二方面,在第二方面的第二种可能的实现方式中,所述确定单元,在根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程时,具体用于:
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面的法向量;
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述确定单元,在根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程时,具体用于:
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述平面方程中的常数值;
根据所述目标平面的法向量和所述常数值,确定所述目标平面在所述相机坐标系下的所述平面方程。
结合第二方面、第二方面的第一种至第三种可能的实现方式中的任一项,在第二方面的第四种可能的实现方式中,所述确定单元,在根据所述平面方程和所述目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置时,具体用于:
根据所述平面方程和所述目标射线的方向,确定目标交点在所述相机坐标系下的位置;其中,所述目标交点为所述目标射线与所述目标平面的交点;
将所述目标交点在所述相机坐标系下的位置,确定为所述目标特征点在所述相机坐标系下的位置。
采用本发明实施例的技术方案,获取单目相机针对目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向,并根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,从而确定目标特征点在所述相机坐标系下的位置。这样,上述方法无需获取所述单目相机的任何特征数据,只需根据至少三个特征点就能准确确定所述目标特征点的位置,从而提高了位置定位的灵活性和实用性;并且在上述方法中不限定所述单目相机的类型,同样提高了位置定位的灵活性。
附图说明
图1为本发明实施例提供的一种位置定位方法的流程图;
图2为本发明实施例提供的一种透视相机的成像原理的示意图;
图3为本发明实施例提供的一种位置定位装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种位置定位方法,用以解决现有技术中位置定位的灵活性和实用性较差的问题。其中,本发明所述方法和装置基于同一发明构思,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本发明实施例中,获取单目相机针对目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向,并根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,从而确定目标特征点在所述相机坐标系下的位置。这样,上述方法无需获取所述单目相机的任何特征数据,只需根据至少三个特征点就能准确确定所述目标特征点的位置,从而提高了位置定位的灵活性和实用性;并且在上述方法中不限定所述单目相机的类型,同样提高了位置定位的灵活性。
本发明实施例中,执行位置定位方法的可以但不限于是处理器,其中,所述处理器可以为单目相机中的处理器,也可以为连接所述单目相机但独立于所述单目相机而单独存在的处理器。在本发明实施例中,均以执行主体为处理器为例进行详细说明。
为了更加清晰地描述本发明实施例的技术方案,下面结合附图,对本发明实施例提供的位置定位方法及装置进行详细说明。
本发明实施例提供的一种位置定位方法,参阅图1所示,该方法的具体流程包括:
步骤101:处理器获取单目相机针对目标场景中目标平面上的多个特征点拍摄的原始图像,其中,所述多个特征点的数目不小于3,所述多个特征点不共线,所述多个特征点中包含待定位的目标特征点。
步骤102:所述处理器确定多条射线的方向,其中,所述多条射线与所述多个特征点一一对应,任一条射线以所述单目相机的成像点为起点,且指向对应的特征点。
可选的,所述处理器基于所述原始图像确定所述多条射线的方向,具体方法可以为:
所述处理器获取所述原始图像中显示所述多个特征点的像素点的像素坐标;
所述处理器根据获取的多个像素点的像素坐标,以及所述单目相机的类型和参数确定所述多条射线的方向。
可选的,任一条射线的方向都可以用一个向量表示。
可选的,所述处理器可以通过传统的方法确定任一个特征点对应的射线的方向,所述传统的方法本发明实施例不做限定。下面本发明实施例以所述单目相机为透视相机为例来说明所述处理器确定任一个特征点对应的射线的方向的具体过程:
图2示出了透视相机的成像原理示意图,其中,图中所示xyz坐标系为相机坐标系;图中所示的平面为所述单目相机针对所述特征点拍摄的原始图像,所述原始图像与所述相机坐标系中的xy平面距离为f,其中f为所述单目相机的焦距;图中过原点的虚线为一条射线,所述原始图像中显示所述特征点的像素点与所述特征点均在所述射线上;
当所述处理器获取到所述像素点的像素坐标后,根据所述像素点与所述特征点的共线关系,以及所述单目相机的焦距确定所述射线的方向,所述射线的方向符合以下公式一:
其中,在公式一中,i为射线的标识,i为1,2,3,……,n,其中n为特征点的个数;x为所述像素点在水平方向上的像素坐标;y为所述像素点在垂直方向上的像素坐标。
步骤103:所述处理器根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程;其中,所述多个特征点的位置关系包括以所述多个特征点为顶点的多边形的边长和/或所述多边形的内角。
可选的,确定所述平面方程,即为确定所述平面方程中的三个自变量的系数和常数值。例如,确定了平面方程中AX+BY+CZ+D=0自变量(X,Y,Z)的系数A、B、C和常数值D,就确定了所述平面方程。
可选的,所述处理器根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,具体方法可以为:
所述处理器根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面的法向量;
所述处理器根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程。
可选的,所述法向量由所述平面方程中的三个自变量的系数决定,要确定所述法向量,需要确定所述平面方程中的三个自变量的系数。
例如,若所述平面方程设定为AX+BY+CZ+D=0,将所述平面方程整理为自变量Z的系数为1的平面方程EX+FY+Z+G=0,其中此时,由于自变量Z的系数为1,即只要确定了E、F就确定了所述法向量,所述法向量表示为公式二:
n=[E,F,1]T 公式二。
基于上例,并假设所述多个特征点的个数为4,所述多个(4个)特征点组成一个已知至少一条边的边长的平行四边形,此时,所述处理器根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面的法向量(即确定E、F)的具体过程可以为:
所述处理器根据4条射线的方向与上述设定的平面方程可以分别得到所述4条射线与所述目标平面的4个交点的设定位置,任一个交点的设定位置用以下公式三表示:
在公式三中,i为交点的标识,i为1,2,3或4;(Xi,Yi,Zi)为该交点在所述相机坐标系下的三维坐标;
由于每个交点既在所述目标平面上,也在形成该交点的射线上,因此所述处理器可以根据上述条件确定公式四:
在公式四中,s为缩放系数,表示该交点与相应的射线的方向的方向向量之间的比例系数;
所述处理器根据所述法向量以及所述设定的平面方程,可以将公式四简写为公式五:
所述处理器根据公式五可以计算s,s符合公式六:
所述处理器将所述公式六代入所述公式五中的第二个公式中,可以将每个交点用公式七表示:
至此,可以得到所述4个特征点分别对应的交点为J1,J2,J3,J4,由于所述4个特征点组成平行四边形,所以根据几何原理可知所述4个交点也组成平行四边形。所述处理器根据平行四边形对边平行的原理,可得公式八和公式九:
(J2-J1)|J4-J3|=(J3-J4)|J2-J1| 公式八;
(J4-J1)|J2-J3|=(J3-J2)|J4-J1| 公式九;
所述处理器根据平行四边形的对边长度相等的原则,对所述公式八和所述公式九进行化简,以对所述公式八进行化简为例,可得公式十:
J2-J1=J3-J4 公式十;
所述处理器将所述公式七代入所述公式十可得公式十一:
所述处理器对所述公式十一进行整理得公式十二:
所述处理器将所述公式十二整理成公式十三:
av1-bv2+cv3-ev4=0 公式十三
在所述公式十三中a,b,c,e为中间量,且
由于e不为0,所以所述处理器可以将所述公式十三两边均除以e,并整理成矩阵形式,如公式十四所示:
所述处理器可以通过所述公式十四得到的值;
所述处理器根据所述公式十三中a,b,c,e的定义可以得公式十五:
所述处理器根据所述公式十五可以确定公式十六:
由于在所述公式十六中以及v1,v2,v3均为已知值,因此所述处理器可以根据所述公式十六中解出E,F的值,从而确定了所述法向量。
可选的,所述处理器根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程,具体方法可以为:
所述处理器根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述平面方程中的常数值;
所述处理器根据所述目标平面的法向量和所述常数值,确定所述目标平面在所述相机坐标系下的所述平面方程。
可选的,延用上例,4个特征点组成已知边长的平行四边形,假设所述公式八中|J2-J1|对应的边长为m,则所述处理器可以得出公式十七:
因此所述处理器可以根据所述公式十七确定所述所述平面方程中的常数值G的值。
通过上述方法所述目标平面的法向量和所述常数值均计算出确定值,就确定了所述平面方程。
步骤104:所述处理器根据所述平面方程和目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,其中所述目标射线为所述目标特征点对应的射线。
可选的,所述处理器根据所述平面方程和所述目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,具体方法可以为:
所述处理器根据所述平面方程和所述目标射线的方向,确定目标交点在所述相机坐标系下的位置;其中,所述目标交点为所述目标射线与所述目标平面的交点;
所述处理器将所述目标交点在所述相机坐标系下的位置,确定为所述目标特征点在所述相机坐标系下的位置。
可选的,所述处理器根据所述平面方程和所述目标射线的方向,结合步骤103中的所述公式七,可以直接确定所述目标交点在所述相机坐标系下的位置,从而得到了所述目标特征点在所述相机坐标系下的位置。
采用本发明实施例提供的位置定位方法,处理器获取单目相机针对目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向,并根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,从而确定目标特征点在所述相机坐标系下的位置。这样,所述处理器无需获取所述单目相机的任何特征数据,只需根据至少三个特征点就能准确确定所述目标特征点的位置,从而提高了位置定位的灵活性和实用性;并且在上述方法中所述处理器不限定所述单目相机的类型,同样提高了位置定位的灵活性。
基于以上实施例,本发明实施例还提供了一种位置定位装置,该位置定位装置具有实现如图1所示的一种位置定位方法的功能,如图3所示,该位置定位装置300包括:获取单元301和确定单元302,其中,
所述获取单元301,用于获取单目相机针对目标场景中目标平面上的多个特征点拍摄的原始图像;其中,所述多个特征点的数目不小于3,所述多个特征点不共线,所述多个特征点中包含待定位的目标特征点;
所述确定单元302,用于确定多条射线的方向;其中,所述多条射线与所述多个特征点一一对应,任一条射线以所述单目相机的成像点为起点,且指向对应的特征点;
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程;其中,所述多个特征点的位置关系包括以所述多个特征点为顶点的多边形的边长和/或所述多边形的内角;
根据所述平面方程和目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置,其中所述目标射线为所述目标特征点对应的射线。
可选的,所述获取单元301,还用于:
获取所述原始图像中显示所述多个特征点的像素点的像素坐标;
所述确定单元302,在确定所述多条射线的方向时,具体用于:
根据所述获取单元301获取的多个像素点的像素坐标,以及所述单目相机的类型和参数确定所述多条射线的方向。
可选的,所述确定单元302,在根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程时,具体用于:
根据所述多条射线的方向、所述多个特征点的位置关系,确定所述目标平面的法向量;
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程。
可选的,所述确定单元302,在根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述目标平面在所述相机坐标系下的所述平面方程时,具体用于:
根据所述目标平面的法向量、所述多条射线的方向,以及所述多个特征点的位置关系,确定所述平面方程中的常数值;
根据所述目标平面的法向量和所述常数值,确定所述目标平面在所述相机坐标系下的所述平面方程。
可选的,所述确定单元302,在根据所述平面方程和所述目标射线的方向,确定所述目标特征点在所述相机坐标系下的位置时,具体用于:
根据所述平面方程和所述目标射线的方向,确定目标交点在所述相机坐标系下的位置;其中,所述目标交点为所述目标射线与所述目标平面的交点;
将所述目标交点在所述相机坐标系下的位置,确定为所述目标特征点在所述相机坐标系下的位置。
采用本发明实施例提供的位置定位装置,获取单目相机针对目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向,并根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,从而确定目标特征点在所述相机坐标系下的位置。这样,所述位置定位装置无需获取所述单目相机的任何特征数据,只需根据至少三个特征点就能准确确定所述目标特征点的位置,从而提高了位置定位的灵活性和实用性;并且在上述方法中所述位置定位装置不限定所述单目相机的类型,同样提高了位置定位的灵活性。
综上所述,本发明实施例提供了一种位置定位方法及装置,处理器获取单目相机针对目标平面上的多个特征点拍摄的原始图像后,确定多条射线的方向,并根据所述多条射线的方向和所述多个特征点的位置关系,确定所述目标平面在相机坐标系下的平面方程,从而确定目标特征点在所述相机坐标系下的位置。这样,所述处理器无需获取所述单目相机的任何特征数据,只需根据至少三个特征点就能准确确定所述目标特征点的位置,从而提高了位置定位的灵活性和实用性;并且在上述方法中所述处理器不限定所述单目相机的类型,同样提高了位置定位的灵活性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。