掌桥专利:专业的专利平台
掌桥专利
首页

一种摄像头校准及位姿获取的方法

文献发布时间:2023-06-19 12:13:22


一种摄像头校准及位姿获取的方法

技术领域

本发明涉及摄像头技术领域,具体为一种摄像头校准及位姿获取的方法。

背景技术

目前计算机视觉基本都是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程被称为摄像机定标(或称为标定)。标定过程就是确定摄像机的几何和光学参数,摄像机相对于世界坐标系的方位。标定精度的大小,直接影响着计算机视觉(机器视觉)的精度。迄今为止,对于摄像机标定问题已提出了很多方法,摄像机标定的理论问题已得到较好的解决,对摄像机标定的研究来说,当前的研究工作应该集中在如何针对具体的实际应用问题,采用特定的简便、实用、快速、准确的标定方法。

目前市面上摄像头的校准技术很多,但是基本未出现如何获取摄像头六个自由度位姿的方法。本发明针对已安装于固定位置的摄像头给出了计算其位姿的方法,采用了opencv中的相机标定方法得到摄像机的几何以及光学参数后,来对摄像机做校准,利用校准后的摄像机识别aruco码,最后反推得到摄像机相对于人为所设地图的位姿,此位姿为后续利用aruco码对各种移动设备的定位提供了可能性,该方法简单易行,且成本低廉,更加高效,弥补了目前市面上摄像头获取位姿方法的缺失。

发明内容

本发明的目的在于提供一种摄像头校准及位姿获取的方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种摄像头校准及位姿获取的方法,其方向包括如下步骤:

(S1)、针对摄像头校准,使用高清晰度的棋盘格在摄像机前进行左右上下和远近移动,使得摄像机从不同角度拍摄若干张棋盘格图像,通过opencv内置校准算法检测出图像中的特征点,从而求出摄像机内外参数和畸变系数,每次启动摄像机时都读取上述参数来校准摄像机;

(S2)、以仓库场景为例,仓库的左下角作为地图坐标原点,人为测量摄像机在仓库内的x、y坐标,该坐标作为摄像头在地图上的初始平面坐标,测出地图原点x轴和y轴的角度a和b,且在aruco码上标定其自身x、y坐标轴的方向,之后将aruco码的x轴按照角度a,y轴按照角度b放置在距离摄像头7-10m的方位内,测出aruco码到摄像机的地图x、y距离,并与之前标定的摄像机x、y距离相加得到aruco码在地图上的三维坐标x、y、z,完成aruco码的位姿W标定;

(S3)、摄像机通过采集到图片检测出aruco码的位姿C,位姿C为四维矩阵,将位姿C反推变换为摄像机相对于aruco码的位姿P矩阵,将位姿P与之前标定的aruco码相对于世界坐标系的位姿W相叉乘最终得到摄像机相对于世界坐标系的位姿,即得到摄像机相对于地图的位姿W。

优选的,所述步骤(S1)中,棋盘格是以黑白相间的矩形构成类似于棋盘状的物体或图片,使用棋盘格在不同位置、不同角度、不同姿态下进行拍摄,且拍摄的图像数量为10-20张。

优选的,所述步骤(S1)中,棋盘格移动过程的持续时间为5-9min。

优选的,所述步骤(S2)中,在放置aruco码的过程中要确保aruco码的x、y轴分别与地图坐标系中的x、y轴平行。

优选的,所述步骤(S2)中,由于aruco码水平放置于地面上,此时aruco码在地图上三维坐标中的z坐标值为0。

优选的,所述步骤(S2)中,地图原点x轴和y轴的角度a和b是利用指南针测出的。

优选的,所述步骤(S3)中,位姿C的信息为aruco码相对于摄像头的位姿。

优选的,所述步骤(S3)中,摄像机的位姿是个四位矩阵,同时也可以变换成x、y、z、yaw、pitch或roll六个自由度的位姿。

与现有技术相比,本发明的有益效果如下:

本发明方法采用opencv中的相机标定方法得到摄像机的几何以及光学参数后,来对摄像机进行校准,并利用校准后的摄像机识别aruco码,最后反推得到摄像机相对于人为所设地图的位姿,此位姿为后续利用aruco码对各种移动设备的定位提供了可能性,该方法简单易行,具有成本低廉和效率更高的优点,弥补了目前市面上摄像头获取位姿方法的缺失。

附图说明

图1为摄像头位姿获取的流程图;

图2为Aruco码位置标定图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

一种摄像头校准及位姿获取的方法,其方向包括如下步骤:

(S1)、针对摄像头校准,使用高清晰度的棋盘格在摄像机前进行左右上下和远近移动,使得摄像机从不同角度拍摄若干张棋盘格图像,通过opencv内置校准算法检测出图像中的特征点,从而求出摄像机内外参数和畸变系数,每次启动摄像机时都读取上述参数来校准摄像机,其中棋盘格是以黑白相间的矩形构成类似于棋盘状的物体或图片,使用棋盘格在不同位置、不同角度、不同姿态下进行拍摄,且拍摄的图像数量为10-20张;

(S2)、以仓库场景为例,仓库的左下角作为地图坐标原点,人为测量摄像机在仓库内的x、y坐标,该坐标作为摄像头在地图上的初始平面坐标,测出地图原点x轴和y轴的角度a和b,且在aruco码上标定其自身x、y坐标轴的方向,之后将aruco码的x轴按照角度a,y轴按照角度b放置在距离摄像头7-10m的方位内,测出aruco码到摄像机的地图x、y距离,并与之前标定的摄像机x、y距离相加得到aruco码在地图上的三维坐标x、y、z,完成aruco码的位姿W标定,其中在放置aruco码的过程中要确保aruco码的x、y轴分别与地图坐标系中的x、y轴平行;

(S3)、摄像机通过采集到图片检测出aruco码的位姿C,位姿C为四维矩阵,将位姿C反推变换为摄像机相对于aruco码的位姿P矩阵,将位姿P与之前标定的aruco码相对于世界坐标系的位姿W相叉乘最终得到摄像机相对于世界坐标系的位姿,即得到摄像机相对于地图的位姿W,其中位姿C的信息为aruco码相对于摄像头的位姿。

实施例二:

一种摄像头校准及位姿获取的方法,其方向包括如下步骤:

(S1)、针对摄像头校准,使用高清晰度的棋盘格在摄像机前进行左右上下和远近移动,使得摄像机从不同角度拍摄若干张棋盘格图像,通过opencv内置校准算法检测出图像中的特征点,从而求出摄像机内外参数和畸变系数,每次启动摄像机时都读取上述参数来校准摄像机,其中棋盘格是以黑白相间的矩形构成类似于棋盘状的物体或图片,使用棋盘格在不同位置、不同角度、不同姿态下进行拍摄,且拍摄的图像数量为10-20张,棋盘格移动过程的持续时间为5-9min,以便进行不同角度、不同位置和不同姿态的拍摄;

(S2)、以仓库场景为例,仓库的左下角作为地图坐标原点,人为测量摄像机在仓库内的x、y坐标,该坐标作为摄像头在地图上的初始平面坐标,测出地图原点x轴和y轴的角度a和b,且在aruco码上标定其自身x、y坐标轴的方向,之后将aruco码的x轴按照角度a,y轴按照角度b放置在距离摄像头7-10m的方位内,测出aruco码到摄像机的地图x、y距离,并与之前标定的摄像机x、y距离相加得到aruco码在地图上的三维坐标x、y、z,完成aruco码的位姿W标定,其中在放置aruco码的过程中要确保aruco码的x、y轴分别与地图坐标系中的x、y轴平行,由于aruco码水平放置于地面上,此时aruco码在地图上三维坐标中的z坐标值为0;

(S3)、摄像机通过采集到图片检测出aruco码的位姿C,位姿C为四维矩阵,将位姿C反推变换为摄像机相对于aruco码的位姿P矩阵,将位姿P与之前标定的aruco码相对于世界坐标系的位姿W相叉乘最终得到摄像机相对于世界坐标系的位姿,即得到摄像机相对于地图的位姿W,其中位姿C的信息为aruco码相对于摄像头的位姿。

实施例三:

一种摄像头校准及位姿获取的方法,其方向包括如下步骤:

(S1)、针对摄像头校准,使用高清晰度的棋盘格在摄像机前进行左右上下和远近移动,使得摄像机从不同角度拍摄若干张棋盘格图像,通过opencv内置校准算法检测出图像中的特征点,从而求出摄像机内外参数和畸变系数,每次启动摄像机时都读取上述参数来校准摄像机,其中棋盘格是以黑白相间的矩形构成类似于棋盘状的物体或图片,使用棋盘格在不同位置、不同角度、不同姿态下进行拍摄,且拍摄的图像数量为10-20张,棋盘格移动过程的持续时间为5-9min,以便进行不同角度、不同位置和不同姿态的拍摄;

(S2)、以仓库场景为例,仓库的左下角作为地图坐标原点,人为测量摄像机在仓库内的x、y坐标,该坐标作为摄像头在地图上的初始平面坐标,测出地图原点x轴和y轴的角度a和b,且在aruco码上标定其自身x、y坐标轴的方向,之后将aruco码的x轴按照角度a,y轴按照角度b放置在距离摄像头7-10m的方位内,测出aruco码到摄像机的地图x、y距离,并与之前标定的摄像机x、y距离相加得到aruco码在地图上的三维坐标x、y、z,完成aruco码的位姿W标定,其中在放置aruco码的过程中要确保aruco码的x、y轴分别与地图坐标系中的x、y轴平行,由于aruco码水平放置于地面上,此时aruco码在地图上三维坐标中的z坐标值为0,且地图原点x轴和y轴的角度a和b是利用指南针测出的;

(S3)、摄像机通过采集到图片检测出aruco码的位姿C,位姿C为四维矩阵,将位姿C反推变换为摄像机相对于aruco码的位姿P矩阵,将位姿P与之前标定的aruco码相对于世界坐标系的位姿W相叉乘最终得到摄像机相对于世界坐标系的位姿,即得到摄像机相对于地图的位姿W,其中位姿C的信息为aruco码相对于摄像头的位姿,且摄像机的位姿是个四位矩阵,同时也可以变换成x、y、z、yaw、pitch或roll六个自由度的位姿。

本发明方法采用opencv中的相机标定方法得到摄像机的几何以及光学参数后,来对摄像机进行校准,并利用校准后的摄像机识别aruco码,最后反推得到摄像机相对于人为所设地图的位姿,此位姿为后续利用aruco码对各种移动设备的定位提供了可能性,该方法简单易行,具有成本低廉和效率更高的优点,弥补了目前市面上摄像头获取位姿方法的缺失。

1.aruco码位姿的标定

以仓库(但不限于仓库)场景为例,仓库的左下角作为地图坐标原点,人为测量摄像机在仓库内的x、y坐标,作为摄像头在地图上的初始平面坐标。利用指南针测出地图原点x轴和y轴的角度a和b,且在aruco码上标定其自身x,y坐标轴的方向。之后将aruco码的x轴按照角度a,y轴按照角度b放置在距离摄像头7-10米的方位内,如图2所示,从而确保aruco码的x,y轴分别于地图坐标系中的x、y轴平行,测出aruco码到摄像机的地图x,y距离(有正负)并于之前标定的摄像机x、y距离相加得到aruco码在地图上的三维坐标x、y、z(z为0,因为码水平放置于地面上),最终为完成aruco码的位姿(PtoW)标定。

2.摄像机相对于世界坐标系的位姿标定

摄像机通过采集到图片检测出aruco码的位姿(PtoC),注意此位姿(PtoC)信息为aruco码相对于摄像头的位姿。PtoC为四维矩阵,将PtoC反推变换为摄像机相对于aruco码的位姿(CtoP)矩阵。将CtoP与之前标定的aruco码相对于世界坐标系的位姿PtoW相叉乘最终得到摄像机相对于世界坐标系的位姿,即得到摄像机相对于地图的位姿(CtoW)。摄像机位姿是个四位矩阵,同时也可以变换成x、y、z、yaw(偏航角)、pitch(俯仰角)、roll(翻滚角)六个自由度的位姿。

Opencv是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种摄像头校准及位姿获取的方法
  • 一种校准摄像头位姿的系统及方法
技术分类

06120113210398