该博客内容发表在泡泡机器人公众号上,请尊重泡泡机器人公众号的版权声明
在ORB-SLAM初始化的时候,作者提到,如果场景是平面,或者近似平面,或者低视差时,我们能应用单应性矩阵(homography),这三种情形在我应用SVO的过程中颇有同感,打破了我对HH矩阵的固有映像,即只能用于平面或近似平面。但是我不知道如何去具体分析这里面的误差,比如不共面的情况时,应用HH矩阵将一个图像坐标从图像1投影到图像2时,它会落在图像哪个位置?和实际位置的误差该怎么计算?误差会有多大?和哪些因素有关?另外,为何相机只做纯旋转运动时,不管平面还是非平面,HH矩阵都能应用?等等,一些列问题,让我感觉对homography了解很粗浅。
先简单回顾我脑海里的HH矩阵,让大家有点代入感,原谅我的啰嗦,进入正文以后就会尽量言简意赅。在没做视觉SLAM以前,通过opencv大概知道:利用两个图像中至少四个特征点能够求解一个单应性矩阵(homography matrix),然后用这个单应性矩阵HH能够将图像1中的某个坐标(u,v)(u,v)变换到图像2中对应的位置(u′,v′)(u′,v′)。然而,那时忽略了两个图像能够计算HH的前提条件。在学SLAM过程中,知道HH矩阵的推导是来自于相机在不同位姿拍摄同一个三维平面&#x