一个单眼相机是一种用于自动驾驶应用的常见类型的视觉传感器。当安装在ego车辆上时,这个摄像头可以检测物体,检测车道边界,并通过场景跟踪物体。
在使用这架照相机之前,你必须校准它。摄像机标定是使用校准模式的图像,如棋盘格,估计相机的内在和外在参数的过程。在估计了内部和外部参数之后,就可以用它们来配置单目相机的模型了。
的内在参数是相机的特性,如焦距和光学中心。要估计单目摄像机的这些参数,请使用计算机视觉工具箱™函数和棋盘图案的图像。
如果相机有一个标准镜头,使用estimateCameraParameters
函数。
如果相机有鱼眼镜头,请使用estimateFisheyeParameters
函数。
或者,为了更好地可视化结果,使用相机校准器有关设置相机、准备棋盘图案和校准技术的信息,请参见单摄像头校准应用.
对于安装在车辆上的单目摄像机,外在的参数定义摄像机的安装位置。这些参数包括相机相对于车辆坐标系的旋转角度,以及相机离地面的高度。
在你可以估计外部参数之前,你必须从相机捕获一个棋盘图案的图像。使用你用来估计内在参数的相同的棋盘模式。
棋盘格使用以模式为中心的坐标系(XP,YP),XP-轴指向右边,而YP设在点下来。棋盘原点是棋盘左上角正方形的右下角。
当把棋盘图案放在与车辆相关的位置时,XP- - -YP- axis必须与XV- - -YV-车辆的轴。在车辆坐标系中XV-轴指向前方的车辆和YV-axis指向左边,当向前看的时候。原点在路面上,摄像机中心(摄像机的焦点)正下方。
图案的方向可以是水平的也可以是垂直的。
在水平方向,棋盘图案要么是在地面上或平行于地面。您可以将图案放置在车辆的前面,在车辆的后面,或在车辆的左边或右边。
在垂直方向,棋盘图案垂直于地面。您可以将图案放置在车辆前面,车辆后面,或车辆的左右两侧。
在把棋盘放在你想要的位置之后,用单目相机捕捉它的图像。然后,使用estimateMonoCameraParameters
函数来估计外部参数。要使用此函数,必须指定以下参数:
相机的内在参数
在图像中检测到的关键点,在这种情况下是棋盘的角落
棋盘的世界点
棋盘图案的起点离地面的高度
例如,对于图像我
和内在参数intrinsic
,下面的代码估计了外部参数。默认情况下,estimateMonoCameraParameters
假设摄像机是向前的,并且棋盘图案具有水平方向。
[imagePoints, boardSize] = detectCheckerboardPoints(我);squareSize = 0.029;%平方米大小,单位为米worldPoints = generateCheckerboardPoints (boardSize squareSize);patternOriginHeight = 0;图案在地上(音高、偏航、卷、高度)= estimateMonoCameraParameters (intrinsic,...imagePoints、worldPoints patternOriginHeight);
为了提高这些参数的估计精度,需要捕获多幅图像,并对图像点的值进行平均。
一旦你有了估计的内在和外在参数,你就可以使用monoCamera
对象来配置摄像机的模型。下面的示例代码展示了如何使用参数配置摄像机intrinsic
,高度
,球场
,偏航
,卷
:
monoCam = monoCamera (intrinsic、身高、“节”球场上,“偏航”偏航,“滚”、卷);
detectCheckerboardPoints
|estimateCameraParameters
|estimateFisheyeParameters
|estimateMonoCameraParameters
|generateCheckerboardPoints