gpt4 book ai didi

c++ - ArUco 姿态估计中的不稳定值

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:56 25 4
gpt4 key购买 nike

我正在尝试使用 Aruco 标记找到相机的方向。从旋转矩阵中提取的欧拉角在超过某个点后是不稳定的。随着相机与标记的距离增加,相机的偏航角值就不稳定。标记上的“Z”轴翻转。欧拉角不稳定,每一帧都不一样,需要时间才能稳定下来。如何获得摄像机和标记之间的偏航角和距离的一些可靠值?我正在尝试找到带有静态标记的移动相机的姿势。我实现了 solvePnPsolvePnPRansac 都产生了不稳定的结果。从estimatePoseSingleMarker 转换旋转 vector 后得到的旋转矩阵在某一点上似乎还不错,但失去了稳定性。我该怎么做?谢谢

最佳答案

通常,您无法从单个标记获得准确的相机姿势估计。解决方案是添加更多标记。您可以使用标记板或更稀疏的标记图案。

随着单个标记距离相机越来越远,有几个因素会降低标记姿势估计的准确性。

  1. 标记的投影尺寸变得更小,并且被像素网格量化得更多。距离是通过逆透视除法估计的,因此随着距离的增加它变得越来越不准确。

  2. 透视失真减少,接近平行投影。在平行投影中,标记有两个同样可行的方向,可以交替返回(参见 https://en.wikipedia.org/wiki/Necker_cube )。标记相对于相机的方向也很重要 - 在标记的更垂直 View (正投影)中,与倾斜 View 相比,标记的俯仰和偏航是不明确的。随距离减少的透视失真会使这种效果变得更糟,并且会导致计算出的相机姿势偏转、俯仰和横向移动。

  3. 鉴于标记中的像素数量较少,传感器噪声和量化等小规模效应变得更加显着,从而降低了帧与帧之间的稳定性并导致抖动。

正如您所发现的,姿势估计在单个标记的特写、倾斜 View 中工作正常,因为提供给 solvePnP() 的投影点相距很远并且具有较大的透视失真。通过添加更多标记,您始终拥有 solvePnP() 的理想投影点。

关于c++ - ArUco 姿态估计中的不稳定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51709522/

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