㈠ 双目视觉测距原理
单目测距原理:
先通过图像匹配进行目标识别(各种车型、行人、物体等),再通过目标在图像中的大小去估算目标距离。这就要求在估算距离之前首先对目标进行准确识别,是汽车还是行人,是货车、SUV还是小轿车。准确识别是准确估算距离的第一步。要做到这一点,就需要建立并不断维护一个庞大的样本特征数据库,保证这个数据库包含待识别目标的全部特征数据。比如在一些特殊地区,为了专门检测大型动物,必须先行建立大型动物的数据库;而对于另外某些区域存在一些非常规车型,也要先将这些车型的特征数据加入到数据库中。如果缺乏待识别目标的特征数据,就会导致系统无法对这些车型、物体、障碍物进行识别,从而也就无法准确估算这些目标的距离。
单/双目方案的优点与难点
从上面的介绍,单目系统的优势在于成本较低,对计算资源的要求不高,系统结构相对简单;缺点是:(1)需要不断更新和维护一个庞大的样本数据库,才能保证系统达到较高的识别率;(2)无法对非标准障碍物进行判断;(3)距离并非真正意义上的测量,准确度较低。
双目检测原理:
通过对两幅图像视差的计算,直接对前方景物(图像所拍摄到的范围)进行距离测量,而无需判断前方出现的是什么类型的障碍物。所以对于任何类型的障碍物,都能根据距离信息的变化,进行必要的预警或制动。双目摄像头的原理与人眼相似。人眼能够感知物体的远近,是由于两只眼睛对同一个物体呈现的图像存在差异,也称“视差”。物体距离越远,视差越小;反之,视差越大。视差的大小对应着物体与眼睛之间距离的远近,这也是3D电影能够使人有立体层次感知的原因。
上图中的人和椰子树,人在前,椰子树在后,最下方是双目相机中的成像。其中,右侧相机成像中人在树的左侧,左侧相机成像中人在树的右侧,这是因为双目的角度不一样。再通过对比两幅图像就可以知道人眼观察树的时候视差小,而观察人时视差大。因为树的距离远,人的距离近。这就是双目三角测距的原理。双目系统对目标物体距离感知是一种绝对的测量,而非估算。
理想双目相机成像模型
根据三角形相似定律:
根据上述推导,要求得空间点P离相机的距离(深度)z,必须知道:
1、相机焦距f,左右相机基线b(可以通过先验信息或者相机标定得到)。
2、视差 :,即左相机像素点(xl, yl)和右相机中对应点(xr, yr)的关系,这是双目视觉的核心问题。
重点来看一下视差(disparity),视差是同一个空间点在两个相机成像中对应的x坐标的差值,它可以通过编码成灰度图来反映出距离的远近,离镜头越近的灰度越亮;
极线约束
对于左图中的一个像素点,如何确定该点在右图中的位置?需要在整个图像中地毯式搜索吗?当然不用,此时需要用到极线约束。
如上图所示。O1,O2是两个相机,P是空间中的一个点,P和两个相机中心点O1、O2形成了三维空间中的一个平面PO1O2,称为极平面(Epipolar plane)。极平面和两幅图像相交于两条直线,这两条直线称为极线(Epipolar line)。
P在相机O1中的成像点是P1,在相机O2中的成像点是P2,但是P的位置是未知的。我们的目标是:对于左图的P1点,寻找它在右图中的对应点P2,这样就能确定P点的空间位置。
极线约束(Epipolar Constraint)是指当空间点在两幅图像上分别成像时,已知左图投影点p1,那么对应右图投影点p2一定在相对于p1的极线上,这样可以极大的缩小匹配范围。即P2一定在对应极线上,所以只需要沿着极线搜索便可以找到P1的对应点P2。
㈡ matlab双目测距中怎样把摄像机标定后的内外参数和视差图结合起来计算深度距离
你用的是双面立体相机配置吗?如果是,你需要标定左右两个相机的内部参数,即焦距,像素物理尺寸,还有两个相机间的三维平移,旋转量。如果你不做三维重建的话,就不需要得到外部参数。得到相机内部参数,就可以矫正左右两幅图像对,然后使用立体匹配算法得到目标的视差图像,然后用你得到的,fc,cc参数,用三角法则计算出目标点到相机平面的距离。三角法则:z=f*b/d。f是焦距,b是两相机间的横向距离,d是立体匹配得到的视差值,即目标像素点在左右两相机平面x方向的坐标差值。
㈢ 摄像机标定:怎么才算标定好了怎么看标定的精度
相机标定的目的就是要求出相机的内、外参数。
径向、切向畸变参数有时候一般也算相机内参数,
因此你标定的结果是相机的内参数。即:
Focal Length(焦距), Principal Point(主点), Skew(扭曲因子), Distrotion(畸变).
这些参数是Heikkil在1997发表的论文中所求的全部内参数。
论文题目: ”A Four-step Camera Calibration Procere with Implicit Image Correction“
如果你用相机做视觉测量,标定出相机内参数就算标定好了。
fc=[ ]?[ ]里面的内容表示的标定出的焦距和误差(不确定度)。
比如: fc = [657.30254 ; 657.74391] 和fc_error = [0.28487 ; 0.28937]
你的结果中,其他参数cc,alpha_c,kc表示的也是这样的意思。
问号前[ ]中内容表示参数,问号后[ ]中内容表示误差。
多数情况,进行相机标定我们不关心它的外参数。
但是,为了对参数进行优化,则需利用了最小化重投影误差进行非线性优化。这时就得求解相机的外参数了。
外参数包括平移矢量和旋转矩阵。
而你给的结果中:
Pixel Error(像素误差)指的是the standard deviation of the reprojection error (in Pixel) in both x and y directions respectivly(在x和y方向上以像素为单位的重投影误差的标准差).
根据优化的准则我们知道,重投影误差越小,就说相机标定的精度越高。
㈣ 双目标定后对图像校正,畸变很大,请问原因是什么
如果知道图像,不知道相机还怎么通过相机来标定畸变?
1、只给定一张图片可以根据图像中相关特征进行标定,比如:图像中的某个物体具有直线性特点。一般是找出本来应当是直线的物体边缘,在其上取若干点,根据这些点将图像中的物体边缘重新校正为直线。简单讲就是利用: line is straight 这个原理。
2、目前最常用的张正友在1998年提出的一种标定方法,是通过二维标定板(平面标定板),根据小孔成像的原理,通过对 reprojection error 最小化进行非线性优化,来实现对相机的标定。并非根据看似高大上的训练集来标定。
当然他写这篇文章的目的不单单是为了校正畸变。畸变参数只是张正友相机标定法所求参数的一部分,即:两个径向畸变系数和两个切向畸变系数。
消除畸变的目的是让相机尽量地逼近针孔相机模型,这样相机成像时直线才会保持其直线性。一般常见的畸变校正算法都是根据这一原理来实现的。
当然,还有二般的情况。比如:图像中压根就没有直线性物体存在。我们该怎么办?还能进行标定吗?
答案是肯定的。可以利用对极约束,对图像畸变进行标定。不过,这需要至少两幅图像,而且这两幅图像必须是同一相机在短时间内拍摄得到。
㈤ 标定好的双目相机是不是不能再移动了
相机标定的目的是确定相机的内外参数。
双目相机标定也不例外。相机的内参数是相机本身的物理属性,跟相机本身有关,同时受标定时的温湿度等外部环境的影响,所以当标定好相机之后防止受外部环境的影响,最好不要乱移动。
这也是为什么实际应用中,相机使用一段时间之后是要重新进行标定的原因。
㈥ 单目摄像机标定与双目摄像机标定有什么区别
两台摄像机标定是为求旋转矩阵和平移矩阵,而单目为求相机内参数,目的不同,立体标定重建三维就得需要标定两个摄像机,标定为了确定内外参数包括畸变等。标定方法一样,只不过标定了两次。新手,如理解错误可以交流。谢谢!标定可以用MATLAB标定工具箱也可以opencv标定方法多个。
㈦ 如何标定imu和相机之间的平移
标定通过相机的标定得到相机内参和外参和畸变系数。内参矩阵一般用A或者M1表示。内参矩阵含有相机的固有参数(fx,fy,Cx,Cy),fx,fy(单位:像素)与dx,dy(x,y方向一个像素的物理尺寸,单位:毫米/像素)和焦距f(单位:毫米)有关。Cx,Cy为图像原点相对于光心成像点的纵横偏移量(单位:像素)。相机坐标系转图像坐标系3D恢复外参矩阵一般用[R|T]表示,R表示旋转矩阵,T为平移矩阵。不同的棋盘图对应不同的旋转矩阵和平移矩阵。因为每一副图像对应的世界坐标系相对应与相机坐标系是不一样的。世界坐标系转相机坐标系图像校正(倾斜,平移)畸变系数一般用[p1,p2,p3,k1,k2]表示,p1,p2,p3是相机的径向畸变系数,k1,k2是相机的切向畸变系数。图像矫正(T型畸变,鱼眼图像等)标定步骤拍摄棋盘图,越多越好,一般10张就可以,10张必须符合所有角点都能检测到才算合格棋盘图。标定程序计算并保存相机内参和外参和畸变系数矩阵,运用三个矩阵解决实际问题。只要相机的角度和焦距固定,位置可以移动,那么内参矩阵和畸变系数是不会改变的。注意:单目标定的外参矩阵,运用只能对应相应的棋盘的世界坐标系。双目标定可以确定唯一的外参矩阵。坐标系相机坐标系以光心为相机坐标系的原点,以平行于图像的x和y方向为Xc轴和Yc轴,Zc轴和光轴平行,Xc,Yc,Zc互相垂直,单位是长度单位.图像物理坐标系可以认为是相机坐标系z轴方向的投影图。以主光轴和图像平面交点为坐标原点,注意:不一定是图像的中心点,根据Cx和Cy知道偏移了多少像素。图像物理坐标系x和y方向单位是长度单位。图像坐标系以主光轴和图像平面交点为坐标原点,x和y方向单位是像素单位。世界坐标系物体在真实世界中的坐标,比如黑白棋盘格的世界坐标系原点定在第一个棋盘格的顶点,Xw,Yw,Zw互相垂直,Zw方向就是垂直于棋盘格面板的方向。可见世界坐标系是随着物体的大小和位置变化的,单位是长度单位。只要棋盘格的大小决定了,无论板子怎么动,棋盘格角点坐标一般就不再变动(因为是相对于世界坐标系原点的位置不变),且认为是Zw=0。
㈧ 双目视觉标定中如何求视差值呀到底什么是视差值图中的m n 如何获取呀求救。
我一直也有这样的疑问:我们实验时,也没有严格把相机按照平行模式或会聚模式放呀,只是手动把两个相机斜视下方被测物,(Halcon软件)经过标定,然后在拍摄被测物体,最后测出了任意两个特征点的三维坐标,他们的间距和实际测量值一样(误差可控),请问什么平行模式啦等等,到底是为了干嘛呀?????求解
㈨ 小觅双目摄像头具体参数是什么
线数用摄像机拍摄的影音信号需要在电视上播放时,需要换算成与电视画质相同的单位。而电视的画面清晰度是以水平清晰度作为单位。通俗地说,我们可以把电视上的画面以水平方向分割成很多很多“条”,分得越细,这些画面就越清楚,而水平线数的数码就越多。这个单位是“电视行(TVLine)”也称线。线的数量就称为线数。线数越多,表明图象越清晰。(1)影像像素在25万像素(pixel)左右、彩色分辨率为330线、黑白分辨率420线左右的低档型。 (2)影像像素在25万~38万之间、彩色分辨率为420线、黑白分辨率在500线上下的中档型 (3)影像在38万点以上、彩色分辨率大于或等于480线、黑白分辨率,570线以上的高分辨率。