0 .首先,由于自己的研究对象是车载视频,对视频流中的单帧图像进行目标检测、距离计算等。 看了照相机的摄像原理,然后看了几篇关于视差、UV-视差的论文:
2002年,Labayrade提出了V-disparity :
《Real Time Obstacle Detection in Stereovision on Non Flat Road Geometry Through V-disparity Representation》
2005年郑城湖在Labayrade的基础上提出了u盘
《U-V-Disparity An efficient algorithm for Stereovision Based Scene Analysis》
2010年张和u盘相结合的障碍物检测算法:
《An Obstacle Detection Algorithm Based on U-V Disparity Map Analysis》
整理了一个ppt。 大致内容如下。 如果有问题的话,请海容指出来。
1.Disparity从摄像机成像原理上可以看出透视投影是多对一的关系,无法从成像平面上的点确定三维空间中的对应点。
为了消除这种多对一关系,可以利用双目摄像机:
如果将左侧摄影机放置在世界坐标系的原点,则两个摄影机参数匹配,结构图如下所示:
2.UV-disparity在本部分中,所有f都与fx/dx的值相同。 世界坐标系位于两个摄影机之间,摄影机的俯仰角度为theta。
根据成像原理,世界坐标系中的一点左右摄像机在成像平面上的投影点为右侧式。
同时,以成像平面上的principal point为原点制作新的坐标系UV,其实不需要在意该坐标系,后面的所有公式都是基于u-u0和v-v0,与进行置换的相同。 当从U-V视差恢复到原始视图时,再次执行逆变换即可。
将图像中需要检测的几个目标抽象为几个平面进行说明。 请参照下图。
每个平面在三维坐标系中的表达式和UV-disparity mapping中的表达式如下:
因此,如果在UV-disparity mapping中找到直线,则可以在相反方向上找到与该直线对应的目标,在UV-disparity mapping中目标可以在图像中找到对应的行,从而V-disparity mapping显示目标
那么,构建UV-disparity mapping呢?
U-disparity mapping的行数 = V-disparity mapping 的列数 = 视差最大值+1;
U-disparity mapping的列对应于原始视差图的列;
V-disparity mapping的行对应于原始视差图的行;
V-disparity mapping中(v,d) = 原始视差图中第v行,视差为d的个数。
例如,V-disparity mapping的第I行分别计数原始视差图的第一行中的视差为0、1、2、3、4、5的数量。 0、2、0、1、1、1、1等。
U-disparity mapping中(d,u) = 原始视差图中第u列,视差为d的个数。
3 .示例数据集来自KITTI。 现在,我只是做了左图-视差图-UV-disparity mapping。 之后,需要用UV-disparity mapping拟合得到直线,然后反向获取一些故障目标的信息。
【下载PPT和uv视差代码】地址: http://download.csdn.net/detail/Chen travelling/9833120