基于视觉的图像处理,通常要在实验前进行相机的标定,以获取相应的参数。为方便查阅,遂将常用到的三种相机标定总结如下。
相机内参标定
Step1 : 在相机前方放置棋盘格,前后左右方向转动棋盘格,角度不宜超过45度,采集不同方向的图片,待后续处理;,Step2 : 打开Matlab,在APP列找到Camera Calibration工具,将采集的棋盘格图片导入,保证能够正确导入的图片数量在20-30张之间,测量每个黑白格的真实大小并输入Matlab中。
Step3 : 观察棋盘格角点都被正确检测到后,点击Calibrate按钮,观察重投影误差,若图片数量较多,可将重投影误差较大的图片删去,重新calibrate,直到达到一个较理想状态;,
Step4 : 选中Export Camera Parameters按钮,将计算得到的相关参数导入到Matlab中;若要进行更精确的标定,可在标定时考虑畸变误差或采用双目相机标定方法。
图示即为我们所需要的相机的内参矩阵,其中fx=1.1259e+03, fy=1.1267e+03, u=480.6138, v=359.5351。
注意事项>
1、 棋盘格在图片中的大小不能过小,要保证角点清晰可探测;,2、 Matlab所得到的内参矩阵与我们通常情况下所计算的内参矩阵互为转置;,3、 若要进行雷达相机联合标定,标定步骤需进行部分调整。
逆透视标定
Step1 : 在图片正中间纵向方向绘制一条直线,从车辆正前方沿着图片中心线拉直尺,距离根据要求调整,一般在15m左右;,Step2 : 在摄像机的视野范围内的平坦地面选择一个矩形,要求矩形的纵轴线与图片正中心的直线重合;对所选取的矩形的四个顶角进行标记,要求标记在摄像机的图像画面中能够清晰显示。
Step3 : 启动标定程序,分别输入X轴偏移距离a, Y轴偏移距离b, 矩形宽度w,矩形高度h,比例系数k,一般取经验值:1280,445,360,600,4.5,具体可根据实际情况进行调整,依次选取左上角、右上角、左下角、右下角点,使得上图中绿色的线与标定图像中的红线重合。标定完成后,得到逆透视变换矩阵H,可在实际实验中检验H的值是否合理。保证图片能看到本车道和相邻车道,且保持直线平行性不变。
注意事项>
1、 标定的逆透视图像区域与测试的逆透视图像区域尺寸应保持一致;,2、 标定时矩形的靠近摄像机的两个点应尽量靠近车辆,近乎贴合盲区时标定所得矩阵较准确;,3、 世界坐标系:智能车所在地面组成的二维平面,横轴为X轴,纵轴为Y轴,原点左边是X轴正轴,下面是Y轴正轴。图像坐标系:图像左上角为原点,横轴为X轴,纵轴为Y轴。所以矩形四个角的坐标依次为:(a/k ,b/k),((a+w)/k,b/k),(a/k,(b+h)/k),((a+w)/k, (b+h)/k),所涉及到的四个参数a、b、h、k的单位均为厘米,当a为正值时,逆透视图像向右偏移,b为正值时,逆透视图像向下偏移。(横向偏移越大,则鸟瞰图像中横向的视野就越宽;纵向偏移越大,则纵向视野就越远)。
单目测距标定
(1)纵向距离标定:
准备工具:测距所涉及到的原理和公式>
根据摄像机成像原理,以及摄像机与路面的关系建立了图像像素坐标系与世界坐标距离的几何模型,如下图所示>
根据几何模型可推导出图像物理坐标与世界坐标距离关系式为>
根据图像物理坐标与像素坐标之间的转换关系得>
其中,ay表示摄像头的有效焦距,α表示摄像头的俯仰角,可通过公式反推通过标定求得,v0表示主点纵坐标,v是像素行数。
实验操作步骤>
Step1 : 通过棋盘格标定法获取相机内参fv和v0的值,测量相机离地高度h。
Step2 : 在图片正中间纵向方向绘制一条直线,从车辆正前方沿着图片中心线拉直尺,距离大约60m左右,测量相机到直尺原点的距离;,Step3 : 从远到近依次取15个标志点,分别输入他们到相机的真实距离,建立像素点与真实点之间的一一对应关系,借助程序即上述几何关系求解出摄像头的俯仰角,从而进行前方物体纵向距离的计算。
(2)横向距离标定:
标定原理>
单目摄像机在拍摄时,所有平行与摄像机光轴的直线均汇聚与一点(即消失点L),且在待测点与消失点连线上的任意一点到光轴的距离均相等。
在图像左上角建立基于图像像素的平面坐标系,将待测点用像素坐标表示出来,求出待测点与消失点的连线在图像上的连线与光轴之间的角度,与实际待测点距光轴的距离进行匹配,最后根据数据对标定进行数据拟合即可完成横向标定。
实验操作步骤>
Step1 : 将车辆停在车道中央,保持车道线方向与车身纵轴方向平行,利用鼠标在图片中的车道线上选两点,图片中心线上取一点,计算出消失点坐标;,Step2 : 在车辆前方某一距离处(一般取15m),在车辆纵轴线一侧横向摆放10个障碍物,鼠标在图片中从左到右依次取点,计算每个障碍物与消失点连线与光轴之间的角度,并记录每个障碍物到车辆中心的真实横向距离,建立角度与真实距离之间的一一对应关系,并通过Matlab进行曲线拟合,测试时,只需获取像素点,即可通过计算角度和拟合所得到的曲线获得目标距离本车的横向距离。