ArUco姿势估计中的不稳定值 [英] Unstable values in ArUco pose estimation

查看:581
本文介绍了ArUco姿势估计中的不稳定值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Aruco标记查找相机的方向.从旋转矩阵提取的欧拉角在某个点以上不稳定. 随着摄像机到标记点的距离增加,摄像机的偏航角值就变得不稳定.标记上的"Z"轴翻转. 欧拉角抖动,在每帧中都不相同,并且需要花费一些时间才能稳定下来.如何获得偏航角和相机与标记之间的距离的可靠值? 我试图找到没有静态标记的移动相机的姿势. 我实施了 solvePnP solvePnPRansac 都会产生不稳定的结果. 从 estimatePoseSingleMarker 转换旋转向量后获得的旋转矩阵似乎可以达到一定程度,但会失去稳定性. 我该怎么办? 谢谢

I'm trying to find the orientation of the camera using Aruco marker. Euler angles extracted from the rotation matrix are unstable beyond a certain point. As the distance of the camera increases from the marker, the yaw angle values of camera is just unstable. The "Z" axis on the marker flips. The euler angles are jittery, not the same in every frame and take time to stabilize. How do I obtain some reliable values of the yaw angle and distance between the camera and marker? I am trying to find the pose of moving camera w.r.t a static marker. I implemented solvePnP and solvePnPRansac both yielding in unstable results. The rotation matrix obtained after converting rotation vectors from estimatePoseSingleMarker seems alright up to a certain point but loses stability. How do I go about this? Thank you

推荐答案

通常,您不会从单个标记获得准确的相机姿态估计.解决方案是添加更多标记.您可以使用标记板,也可以使用更稀疏的标记图案.

In general, you won't get accurate camera pose estimation from a single marker. The solution is to add more markers. You could use either a marker board, or a more sparse pattern of markers.

随着单个标记物距离摄像机越来越远,一些因素会降低标记物姿态估计的准确性.

As a single marker gets further from the camera, several factors work to reduce the accuracy of the marker pose estimate.

  1. 标记的投影大小变得更小,并且通过像素网格更加量化.距离是通过反透视分割法估算的,因此随着距离的增加,精度会降低.

  1. the projected size of the marker becomes smaller and more quantized by the pixel grid. Distance is estimated by inverse perspective division, so it becomes less accurate as distance increases.

透视失真减小,接近平行投影.在平行投影中,标记具有两个同样可行的方向,可以交替返回(请参见 https://en. wikipedia.org/wiki/Necker_cube ).标记相对于相机的方向也很重要-在更垂直的标记视图(正交投影)中,与倾斜视图相比,标记的俯仰和偏航是不明确的.随距离减小的透视变形会降低该效果,并导致计算出的摄影机姿势偏摆,俯仰和横向移动.

perspective distortion reduces, approaching a parallel projection. In a parallel projection the marker has two equally viable orientations, which may be returned alternately (see https://en.wikipedia.org/wiki/Necker_cube). The orientation of the marker relative to the camera is also significant - in more perpendicular views of the marker (orthographic projection), pitch and yaw of the marker are ambiguous, compared to oblique views. Reduced perspective distortion with distance makes this effect worse, and will cause the calculated camera pose to yaw, pitch, and move laterally.

鉴于标记中的像素数量较少,小范围的影响(例如传感器噪声和量化)变得更加明显,从而降低了帧与帧之间的稳定性并引起了抖动.

given the smaller number of pixels in the marker, small scale effects such as sensor noise and quantization become more significant, reducing stability from frame to frame and causing jitter.

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

As you have discovered, pose estimation works OK in close-up, oblique views of a single marker, because the projected points given to solvePnP() are far apart and have large perspective distortion. By adding more markers, you always have ideal projected points for solvePnP().

这篇关于ArUco姿势估计中的不稳定值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆