【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面
前言
在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛,存在无穷解。
由于开发的产品面向普通用户,暂时不考虑深度相机或者激光雷达。
数学建模
现已知信息:
- 连续的两帧图像
- 相机内参矩阵
对匹配的特征点
,其中
未知信息:
- 前后帧相机旋转矩阵
,平移矩阵
求解目标:
- 计算特征
在
中的深度
极几何约束
关于对极几何部分,在上一篇文章中有提到:【机器视觉】摄像头运动估计——对极几何https://blog.csdn.net/weixin_73858308/article/details/148403073?spm=1001.2014.3001.5501 由于相机运动参数
未知,但知道连续两帧之间存在运动,利用对极几何约束解空间。
- 归一化相机坐标系
- 对极约束
- 估计本质矩阵
由于本质矩阵拥有7个自由度,以及构建超定方程组增强鲁棒性,选取至少8对特征点,即,将对极约束展开:
- 从本质矩阵分解
对本质矩阵进行SVD分解:
三角计算深度
-
投影方程
在第一个相机坐标系下:
在第二个相机坐标系下:
有方程:
- 求解超定方程
最终得到深度信息
基于光流的深度估计
这是另一种方法,取代了利用其它算法获取特征点,直接计算场景中所有点的深度信息。
具体思想是根据光流跟踪图像所有点的位移,将位移后位置作为特征点 。
关于光流法,在另一篇文章中说明:【机器视觉】运动分析——LK光流https://blog.csdn.net/weixin_73858308/article/details/147956922?spm=1001.2014.3001.5501 由于已知条件为连续的两帧图像,满足光流基本假设,后续计算公式与上述对极方程,三角化方程相同,故不再赘述。