单眼视觉测距算法的核心原理是什么?我的意思是,在校准单个摄像机(失真等)之后,图像被馈送到一种算法中-该算法对图像进行什么处理才能获得连续帧之间的平移/旋转?

各种单声道算法使用各种技术,还是其核心原理无处不在?我看到有些库使用图像特征(间接方法),有些使用像素强度(直接方法),但是我并不能真正理解论文中的原理...我只能看到算法使用各种方法估算翻译/旋转矩阵(5点,8点算法...)。

还可以,没有任何一种Mono算法能够获得场景的绝对比例吗?相对刻度是如何工作的-它是随机设置的吗?

我发现了以下单测程库:



间接方法(使用图像功能)


Avi Singh通过OpenCV(博客文章)-使用Nister的5点算法
VISO2-使用8点算法(纸)
ORB_SLAM / ORB_SLAM2-间接方法?



直接方法(使用整个边缘等)


SVO:快速半直接单眼目视测光法(纸)
LSD-SLAM:大型直接单眼SLAM(纸)-需要ROS(但仅用于输入/输出)
DSO:直接稀疏渗色法(纸)



我了解立体视觉测距法的工作原理-他们在每个图像帧中重建3D场景,然后比较(记录)连续图像帧的点云,并像这样直接获得行进的距离-非常简单的原理。

评论

恐怕像这样的问题确实不适用于堆栈交换站点。我们会根据您面临的实际问题来选择实用,可回答的问题。因此,如果您能想象一整本书都能回答您的问题,那么您提出的要求就太多了。

#1 楼

单眼视觉是困难且非常有趣的,特别是在将其应用于一般导航问题时。我将尝试回答您的问题,但是如果发现任何不足,您可以通读Szeliski的书《计算机视觉:算法和应用程序》。

单目视觉测距算法的核心原理是什么?

单目或立体视觉测距法的目的是基于对图像的一些测量来估计机器人的姿势。很难确定单一的核心原理-贝叶斯概率论很可能是核心原理,但极线几何无疑很重要。

对于立体声,通常的想法是,如果您知道相机的参数,并且知道相机之间的关系是固定的,则从两个位置都可以查看的点$ \ textbf {p} $照相机将对极线段投影到每个图像平面上。使用这些线段和相机几何形状定义的对极平面,可以估算到该点的距离,该距离可以用于估算机器人的姿势。

对于单目视觉,该任务比较棘手,因为只有一台摄像机。为了获得图像对,在时间$ t $捕获图像。机器人被致动,并在时间$ t + 1 $拍摄另一幅图像(例如视频流)。可以以与其他任何立体图像相同的方式来使用这对图像,但是因为我们不确定相机之间的关系(由于运动与机器人的操作以及所指示的操作有所偏差), ,为了估算机器人的姿势,必须考虑运动模型。最后,单眼视觉测距更加困难,因为必须从概率上解释更多未知数。

该算法对图像的确切作用是如何获得连续图像之间的平移/旋转镜框?

主要目的是图像匹配。尽管有许多解决此问题的方法,但有些方法可以在场景中找到特征点,并在图像之间进行匹配,以匹配图像本身。可以使用多种算法来查找特征点。 SIFT是一个很好的标准,尽管已证明其他方法的性能优于它。对于所描述的功能,应使用与点匹配的算法。 RANSAC就是这样一种算法。利用已知的关系(例如精确的运动模型或固定的摄像机/投影仪)可以改善图像匹配。

各种单声道算法使用各种技术还是核心原理在各处相同?

不管采用哪种方法,这些技术都可以归结为概率论。也就是说,有很多方法。特征点匹配是一种方法,而其他方法(例如您引用的LSD-SLAM)则主张直接使用像素值而不是隔离特征点。机器学习也有作用-卷积神经网络在解决视觉问题方面非常成功,因此您应该能够找到关于它们的大量文献。

确实没有任何单算法可以能否获得场景的绝对比例?

通常,基于相机的视觉很难获得准确的距离测量值。主要问题在于,与场景中距离较远的点相比,摄像机之间的距离相对较小。至于确定对象的比例,这可能不是单眼视觉问题,而是推理问题。人们基于先验知识知道对象的相对比例,这对于计算机视觉和机器人感知来说是一个非常重要且相关的问题。