如何改进Aruco标记姿势估计



我很难用相机估计Aruco标记的位置。在我用DICT_6X6_250字典和上面有4个20x20厘米标记的木板进行的测试中,我在6米处测量,误差为20-30厘米。我需要更精确的测量。

这个错误率正常吗?我能做些什么来提高准确性?

通常,Aruco存在歧义问题,您可以在此处找到。

我正在做一些关于基准标记的研究,这个错误率很正常。标记的姿态估计往往在x和y旋转以及z平移中存在误差。

然而,也有一些因素会影响Aruco姿态估计的准确性。以下是一些有助于提高姿态估计准确性的要点,您应该考虑这些要点:

  • 第一种是使用高分辨率的Camara。如果标记在图像平面中很小,则姿态估计将不那么准确
  • 其次,我建议使用cv2.SolvePnP(),而不是使用cv2.aruco.estimatePoseSingleMarkers()
    ,因为它允许您使用不同的透视N点算法来计算姿势。你可以在这里阅读更多关于SolvePnP的信息,也可以在这里了解不同的方法
  • 对于Aruco检测cv2.detectMarkers(),使用亚像素角细化方法
  • 最后,您可以使用姿势优化方法来改进估计的姿势(此处(。这种方法减少了估计姿态的重投影误差,因此应该获得更好的姿态估计精度

姿态的不准确可能源于亚像素定位中的不准确。

几乎所有的亚像素定位算法和所有人都假设物理上存在的东西(边、角(与如何映射到像素强度之间存在线性关系。

网络摄像头1提供伽马压缩数据,而不是原始线性传感器值。此外,网络摄像头喜欢";锐化";图片。两者都会影响亚像素定位。


1并非网络摄像头独有。这适用于所有不是";原始传感器";文件格式。所有JPEG、PNG。。。图像是伽马压缩的,所有视频也是如此。

最新更新