Python 为什么阿鲁科标记物检测会产生奇怪和反直觉的结果?

Python 为什么阿鲁科标记物检测会产生奇怪和反直觉的结果?,python,opencv,detection,marker,aruco,Python,Opencv,Detection,Marker,Aruco,我使用的是一个简单的阿鲁科标记检测程序,它可以作为输入图像或视频,也可以作为输出旋转(角度w.r.t 3D轴)和变换(位置w.r.t 3D轴向量)。该程序主要基于以下3个功能: 侦测器 估计PoseSingleMarkers 提取标记 我的目标是看看程序在连接到车辆时检测阿鲁科标记的准确性。(即) 首先,我使用CalibleCameracharuco()从Blender(我用于渲染图像的软件)中获取相机参数,这些参数与理想相机参数非常匹配。(使用理想相机参数,我得到相同的结果) 其次,我生成

我使用的是一个简单的阿鲁科标记检测程序,它可以作为输入图像或视频,也可以作为输出旋转(角度w.r.t 3D轴)和变换(位置w.r.t 3D轴向量)。该程序主要基于以下3个功能:

  • 侦测器
  • 估计PoseSingleMarkers
  • 提取标记
我的目标是看看程序在连接到车辆时检测阿鲁科标记的准确性。(即)

首先,我使用CalibleCameracharuco()从Blender(我用于渲染图像的软件)中获取相机参数,这些参数与理想相机参数非常匹配。(使用理想相机参数,我得到相同的结果)

其次,我生成了几组图像,并给出了错误结果,如下所示。 -

角度的行为是奇怪的,因为对于低值,误差首先是低的,对于中等值,误差是高的,对于角度的高值,误差又是低的。此外,距离误差结果看起来与角度相同

我想知道你以前是否经历过这样的结果,或者你是否有任何关于阿鲁科标记物检测为何表现出这种行为的建议


感谢您的关注,我提前感谢您的帮助。

您是否使用相机校准来校正相机产生的图像?我用可下载的软件进行了一些校准,得到了一些疯狂的结果。我发现,将终端窗口的边缘与图像中的直线相对,可以显示相机图像的某些区域处理得非常好,但其他区域处理得非常疯狂。 显然,在提高阿鲁科的准确性方面正在积极开展工作: 根据你需要的准确性,阿鲁科将CGI实时放入视频的目标可能不适合你的需要。
我很惊讶你得到的值是70度还是80度。我发现它们无法识别。

您是否使用相机校准来校正相机产生的图像?我用可下载的软件进行了一些校准,得到了一些疯狂的结果。我发现,将终端窗口的边缘与图像中的直线相对,可以显示相机图像的某些区域处理得非常好,但其他区域处理得非常疯狂。 显然,在提高阿鲁科的准确性方面正在积极开展工作: 根据你需要的准确性,阿鲁科将CGI实时放入视频的目标可能不适合你的需要。
我很惊讶你得到的值是70度还是80度。我发现它们没有被识别。

如何比较你的角度以及你的地面真实感相机姿势的形式?通过计算绝对误差(检测角度-地面真实感角度)来比较角度。地面真实角度是从我渲染图像的混合器中获取的。是相同的形式主义吗?OpenCV应该返回一个轴角度向量。事实上,OpenCV返回一个旋转向量。对于这个项目,我只对Y轴的角度感兴趣,这是与车辆向左或向右转弯相关的角度。如何比较角度以及地面真实感相机姿势的形式?通过计算绝对误差(检测角度-地面真实感角度)来比较角度。地面真实角度是从我渲染图像的混合器中获取的。是相同的形式主义吗?OpenCV应该返回一个轴角度向量。事实上,OpenCV返回一个旋转向量。对于这个项目,我只对Y轴的角度感兴趣,这与车辆向左或向右转弯有关。请显示您的代码。链接不能代替代码。什么代码?密码?一些源代码?我不明白你要什么?请显示你的代码。链接不能代替代码。什么代码?密码?一些源代码?我不明白你要什么?