图像处理之逆透视变换——智能车背景理论知识系列专题讲座之一主讲人:虞坤霖目录•第零章前言•第一章基础知识•第二章基本线性变换•第三章智能车摄像头透视变换阵•第四章不可逆与信息丢失•第五章逆透视变换阵的求解与应用•第六章用逆透视变换阵处理图形•附线性变换阵在空间定位中的应用第零章前言•本文以智能车摄像头图像处理为背景•解决了根据图像信息逆透视变换得到赛道信息的问题•以线性变换阵作为理论基础给出了矩阵变换公式第一章基础知识•点的表示•向量的表示•线性变换•线性变换的表示点的表示•三维空间中的点用1×4的矩阵表示:•(x,y,z,1)•一般的:•(x,y,z,w)与(x/w,y/w,z/w,1)•表示同一点•其中w==1为标准型向量的表示•三维空间中的向量用1×4的矩阵表示:•(x,y,z,0)•最后一位不得非零,否则表示点点与向量之间的运算•向量±向量=向量•点±向量=点•点±点±点=点111010001222111000222111000nznynxnzyxzyxzyxzyxzyxzyxzyxzyxniiii线性变换•变换即映射,记为:•满足如下两个条件的变换为线性变换•或简记为:)()(2121xxfyyxfy)(2121xxfyy)(y:xfYXf或四维向量空间•三维点由1×4的矩阵表示•三维向量由1×4的矩阵表示•1×4的矩阵构成四维向量空间四维向量空间中线性变换的表示•对于三维空间中的点和向量,都由四维向量表示•四维向量空间中线性变换可由四阶方阵表示44434241343332312423222114131211aaaaaaaaaaaaaaaaA四维向量空间中线性变换的表示•若将四维向量看成行向量,则线性变换可表示成对四维向量右乘变换阵的形式:•A是线性变换阵,前者表示三维点,后者表示三维向量•乘法按照矩阵相乘的计算法则计算0011000000zyxAzyxzyxAzyx线性变换的表示•也可将四维向量看成列向量,此时线性变换可表示为左乘线性变换阵•相应的变换阵转置0011000000zyxzyxAzyxzyxATT第二章基本线性变换•恒等变换•变换阵分区•平移变换•缩放变换•旋转变换•切变变换•投影变换–平行投影变换–透视投影变换•组合变换•逆变换恒等变换•任意三维点与向量乘以单位阵后不变011110111111zyxzyxzyxzyx变换阵分区44434241343332312423222114131211aaaaaaaaaaaaaaaa平移变换区透视变换区旋转缩放与切变变换区平移变换•平移变换只对点有效,对向量无效011110111111zyxzyxzyxzzyyxxzyxzyx缩放变换•主对角线前三维能分别缩放某个维度•第四维整体缩放所有维度11zwywxwwzyxwzyx旋转变换•二维旋转变换:•已知点•求该点绕原点逆时针旋转θ后的坐标),(00yx),(yxAyxyxaaaayxyxyaxayyaxaxyxgyyxfx),(),(),(),(),(),(0022211211000220210120110000二维旋转变换cossinsincossincossincos)sincos()sincos()]cossincos(sin)sinsincos[(cos)]sin()[cos(y)(x,)y,(x初始点为0000000000000000)(00000yxyxxyyyxxxyiyxirirreerereiiii后得新点旋转,以原点为中心逆时针设0000sincosryrx推广到三维旋转变换•沿Z轴正方向旋转的旋转变换阵•(旋转方向用右手法则确定)11cossinsincos110000zyxzyx各个方向的旋转变换阵1cossinsincos11:Y1cossinsincos111:X11cossinsincos11:Z000000000000zyxzyxzyxzyxzyxzyx切变变换•在第x列y行(第一列第二行)放一个系数k•点的y、z坐标不变,x坐标增加•y越大,x增加得越多•正方形被拉伸为梯形1111110000000zykyxkzyx投影变换•平行投影变换(Z方向)101011100000yxzyx投影变换•透视投影变换•空间中任意一点与(-d,0,0)点的连线与Y,Z平面的交点1001111010000000000xddzxddydxdzydzyx投影变换•(-d,0,0)为投影点,Y,Z平面为投影面•同理,以(0,-d,0)为投影点,X,Z平面为投影面的变换阵,以(0,0,-d)为投影点,X,Y平面为投影平面的透视变换阵分变为:1101111101dd组合变换•将两个或以上基本变换阵相乘,得到组合变换阵•相乘的顺序表示基本变换执行的顺序20202110PCPABCPABPPBPPAP逆变换•变换阵的逆矩阵表示其对应变换的逆变换110111010APPAPAAPPAP第三章智能车摄像头透视变换阵•坐标系•坐标变换•坐标变换阵•透视变换阵坐标系•世界坐标系(W)–在地面选取两个垂直的方向为X,Y轴–竖直向上为Z轴•智能车坐标系(C)–正右方为X轴–前进方向为Y轴–竖直向上为Z轴•摄像头坐标系(G)–视线方向为Z轴负方向–正右方为X轴–正上方为Y轴坐标变换•将摄像头坐标与智能车坐标重合(摄像头质心置于智能车质心处并向下看)•将摄像头向上平移一个高度h•摄像头沿X轴旋转一个仰角•摄像头沿着Z轴方向透视•如此可由智能车坐标得摄像头坐标坐标变换•将摄像头固定,上述过程可等价为:–智能车以及赛道向下平移一个高度h–智能车以及赛道沿X负方向旋转一个仰角–智能车以及赛道沿着摄像头Z轴方向透视坐标变换阵•向下平移(h为平移高度)1111h坐标变换阵•沿X轴负方向旋转1cossinsincos1坐标变换阵•沿Z轴方向透视变换11011d透视变换阵•将上述三者相乘即可得到透视变换阵dhhdddhcos10sin0cos0sin0sin0cos00001110111cossinsincos11111第四章不可逆与信息丢失•透视变换阵不可逆•不可逆的意义透视变换阵不可逆•上一章得到的透视变换阵第三列为零•则其可表示为其他三列的线性组合•故该矩阵的不满秩•故该矩阵不可逆dhhddcos10sin0cos0sin0sin0cos00001透视变换阵不可逆•该矩阵在计算时的一个因子已经是奇异的了•这个奇异性导致相乘后的矩阵也是奇异的•归根结底在于投影变换将三维空间的点映射到二维空间,信息丢失。•不同的点可能映射到相同的点,故无法求出其逆变换11011d不可逆的意义•从映射关系上看,不可逆是因为不是一一映射,不同的值映射到相同的象•从信息的角度看,变换时有部分信息丢失,所以无法还原•从空间的角度看,三维空间变为二维空间,丢失了一个维度•从矩阵的角度看,矩阵奇异,第三列的代数余子式为零,不存在逆矩阵。第五章逆透视变换阵的求解与应用•补充信息使透视变换阵可逆•求逆矩阵•补充信息的几何意义•逆透视变换阵的应用补充信息使透视变换阵可逆•只要将透视变换阵的主对角线全部补充为1即可dhhhdddhcos1cossin0coscossin0sinsincos00001111111cossinsincos11111求逆矩阵•将修改的透视变换阵求逆11cossinsincos1cos1cossincoscossinsinsincos11hddhdhhhdd求逆矩阵•如此我们便得到了逆透视变换阵•(以下将三角函数简记为首字母)111hddhcssc补充信息的几何意义•假设被变换点为P,则:ddzhdhzczsyszcyxzyxhddhcssczyxzyxhddhcsscPPGGGGGGGCCCGGGCCCGC111111111补充信息的几何意义•为求得小车坐标系下点的坐标,需知道摄像头坐标下的Z坐标(深度)。•由此可见,透视变换阵新加入的信息是摄像头看到的每个像素点的深度信息。•根据上述公式,只要知道点在图像上的位置以及深度信息,即可求得小车坐标系下对应的坐标。•而根据摄像头图像只能知道点在图像上的位置。如何得到深度信息呢?逆透视变换阵的应用•上一节中发现,为完成逆透视变换,需先知道摄像头的深度信息,而实际上摄像头本身无法测得该信息。•回忆透视变换的过程发现,透视变换阵将三维空间映射到二维空间,补充信息后的透视变换将三维空间映射到三维空间。•即如果知道摄像头的深度信息,可以还原出小车坐标系下完整的三维信息•而赛道本身是二维的,我们不需要逆透视变换出三维空间,故现在的思路是,利用赛道是二维的这一点解出摄像头深度信息。逆透视变换阵的应用•已知智能车坐标系下赛道的Z坐标为0,故dhchsyzhdhzczsyzddzhdhzczsyszcyxzyxGGGGGCGGGGGGGCCC001逆透视变换阵的应用•代入原公式可得10)()(111111111dcsyhdsyhdcdcsyxhdczyxhddhcsscdhchsyyxzyxhddhcsscPPGGGGCCCGGGCCCGC第六章用逆透视变换阵处理图形•图像与图形的区别•赛道的图形表示方法•对图形逆透视变换图像与图形的区别•图像与图形就是通常所说的位图与矢量图•图像由像素矩阵构成,每个像素记录通道的强度•图形由描述图形的点、曲线方程、方程的参数组成。•摄像头捕获的是图像,即像素矩阵•对摄像头拍摄的赛道进行提取的本质就是将图像提取为图形的过程。赛道的图形表示方法•最常见的赛道的图形表示方法是离散点列•即用离散点列的连线作为赛道的近似