【算法思考】三维视觉常见问题

1. 标准相机有多少个参数?

相机的畸变分为径向畸变和切向畸变;

其中径向畸变主要是因为镜头不是绝对的小孔成像模型,因此光线在远离透镜中心的地方偏折会很大;

径向畸变的矫正公式(以图像中心为0,0)

gif.latex?%5Cbegin%7Balign*%7D%20%26%20x_%7Bdistort%7D%20%3D%20x%20%281%20+%20k1%20*%20r%5E2%20+%20k2%20*%20r%5E4%20+%20k3%20*%20r%5E6%29%5C%5C%20%26%20y_%7Bdistort%7D%20%3D%20y%20%281%20+%20k1%20*%20r%5E2%20+%20k2%20*%20r%5E4%20+%20k3%20*%20r%5E6%29%20%5Cend%7Balgin*%7D

切向畸变的主要原因成像平面和镜头不平行引起的,因此这部分也需要矫正。

切向畸变的矫正公式(以图像中心为0,0)

gif.latex?%5Cbegin%7Balign*%7D%20%26%20x_%7Bdistort%7D%20%3D%20x%20+%20%5B2p_1y%20+%20p_2%28r%5E2%20+%202x%5E2%29%5D%20%5C%5C%20%26%20y_%7Bdistort%7D%20%3D%20y%20+%20%5B2p_2x%20+%20p_1%28r%5E2%20+%202y%5E2%29%5D%20%5Cend%7Balign*%7D

记忆:

gif.latex?a%20+%202p_%7Ba%7Db%20+%20p_%7Bb%7D%28r%5E2%20+%202a%5E2%29

因此一共有5个畸变参数 p1, p2, k1, k2, k3;在Opencv中的排列(k1, k2, p1, p2, k3)

相机内参有4个参数,fx, fy, u0, v0;其中注意fx,fy表示的意思是f的长度是多少个横向或者纵向像素。

2. 相机有那些畸变?

4. 切向畸变/径向畸变有那些参数?

3. 相机是如何去畸变的?

根据径向畸变和切向畸变的公式;我们可以得到组合两种畸变的

gif.latex?%5Cbegin%7Balign*%7D%20%26%5CDelta%20x%20%3D%20x%20%28k_1r%5E2%20+%20k_2r%5E4%20+%20k_3r%5E6%29%20+%202p_1xy%20+%20p_2%28r%5E2%20+%202x%5E2%29%20%5C%5C%20%26%5CDelta%20y%20%3D%20y%20%28k_1r%5E2%20+%20k_2r%5E4%20+%20k_3r%5E6%29%20+%202p_2xy%20+%20p_1%28r%5E2%20+%202y%5E2%29%20%5Cend%7Balign*%7D

以上公式只是对畸变的近似。

4. 相机的逆畸变是如何计算的,有闭式解(解析解)吗?

相机的逆畸变是没有闭式解的,因此如果要求解精确解,只能通过迭代的方法。

5. 求解PnP有那些方法?EPnP是如何求解的?

第一种是DLT解法,直接求解线性方程组;

这里一对3D-2D的点对,可以得到两个线性方程;

考虑到R|T矩阵一共有12个问题,因此6个点对就可求解出来旋转矩阵和平移向量;

DLT解法本质还是解线性方程组;gif.latex?A%5Cboldsymbol%7Bt%7D%20%3D%20%5Cboldsymbol%7B0%7D;

因此可以考虑使用SVD分解,求解最小奇异值(方阵特征值)对应的特征向量作为解;

当然其实考虑到 [R|T] 的自由度,少于6个点也可以求解,如P3P,P4P解法等,这里不做详细讨论。

第二种是EPnP解法:

EPnP的解法非常巧妙,同时误差也比较小;

EPnP引入了控制点的概念,对于世界坐标系n个3维点,EPnP选出4个世界坐标系控制点,来采用线性加权的方式将这些点都用控制点表达出来;通常为了保证精度和鲁棒性,这四个点都选择所有点的质心,主成分所在方向的三个点;

因在相机坐标系和世界坐标系这些线性加权关系都保持一致,因此就可以先在相机坐标系求解出这四个控制点在相机坐标系下的坐标;

得到这四个控制点在相机坐标系下的表示,就可以和世界坐标系下的控制点做ICP,就转化成了ICP问题,因此可以很方便求解。

EPnP的好处,有几点,一个是只需要求解4个控制点,因此矩阵计算的规模得到了控制,效率非常高。另外EPnP数据稳定性比较高,求解精度优于DLT;

第三种解法是BA (Boundle Adjustment):

这种方法是计算重投影误差,然后根据重投影误差迭代求解姿态;

6. 什么是BA?BA是如何求解的?

7. BA的稀疏性?

8. 如何求解单应矩阵?单应矩阵有几个自由度?

9. 如何求解三角化的点?

10. ORB SLAM有那些提升?

11. 词袋模型的功能?

12. 词袋模型在特征点匹配上有什么作用?

13. ORB如何解决光照/尺度/旋转变化?

14. Ax = 0 的解的物理意义?

15. 光流法如何实现的?

光流法假设:

a. 亮度恒定不变。

b. 时间连续,或者运动是小运动。

16. BA是用什么优化方法优化的?

参考文献:

(17条消息) SLAM_视觉SLAM面试题及答案汇总_惊鸿一博的博客-CSDN博客_slam面试题

(17条消息) SLAM算法面试常见问题总结_程序猴儿的博客-CSDN博客_slam算法面试

(17条消息) 视觉SLAM常见面试题 (上)_lark_ying的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值