gpt4 book ai didi

python - OpenCV/Python Bundle调整

转载 作者:行者123 更新时间:2023-12-03 08:20:12 26 4
gpt4 key购买 nike

我有一个应用程序,我正在尝试使用 Python 中的 OpenCV 从同一相机的多个 View 中进行运动结构。 (OpenCV 不是硬性要求,但 Python 目前是硬性要求)。示例:我有 16 张相机图像需要处理,每帧之间都有微小的运动。在帧 (200x200) 中,我可以跟踪约 50 个特征,并且我希望尽可能准确地估计这些特征的相机姿势和 3D 点位置。

我现在想使用帧流(来自视频)来细化相机姿势和 3D 点位置的估计,因为估计姿势和从两帧对 3D 点进行三角测量会产生大量噪声。我相信捆绑调整是下一个明显的方向,但我没有找到任何明显的捆绑调整的 Python 实现可供使用。许多选项(例如 LevMarqSparse::bundleAdjust())似乎仅部分完成或未完全采用。

什么是一个好的起点?我想我正在寻找一个相对简单的 Python bundle 调整原型(prototype),看看这是否是我想投入更多时间的方向。

最佳答案

假设您有一个校准过的相机以及内部和外部参数的初始估计,您可以首先直接在 Python 中执行简单的捆绑调整。例如,您可以使用三张图像的堆栈,通过齐次三角测量方法从特征点计算 3D 点。例如,可以通过 scipy.least_squares 和可信区域反射非线性优化技术构建简单的捆绑调整作为第一个原型(prototype)。看看这个tutorial .

之后,您可以决定是否要实现或使用 Levenberg-Marquardt 优化技术,该技术能够处理稀疏雅可比行列式,甚至可以通过分析确定雅可比行列式,以在需要时假设提高收敛性。

到目前为止,我认为 Python 中还没有足够的库来提供有效且高性能的捆绑调整实现。

关于python - OpenCV/Python Bundle调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68072056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com