我根据opencv中的aruco库编写识别两个二维码的位姿的程序,
调用摄像头,获取镜头和两个二维码之间的夹角(旋转矩阵)。但是识别出来的数据不稳定,多帧一直发生跳变。请问各位有什么办法可以对识别结果进行优化,消除数据的跳变?
下图是识别出的角度多帧数据。(注:我是将程序编译成px3的动态链接库放入板子中调用的)
调用摄像头,获取镜头和两个二维码之间的夹角(旋转矩阵)。但是识别出来的数据不稳定,多帧一直发生跳变。请问各位有什么办法可以对识别结果进行优化,消除数据的跳变?
下图是识别出的角度多帧数据。(注:我是将程序编译成px3的动态链接库放入板子中调用的)
收起
当前问题酬金
¥ 60 (您已提供 ¥ 20, 还可追加 ¥ 440)
支付方式
扫码支付
不稳定具体再说一下
这种情况你要看下是由于什么导致的。比如你的二维码定位偏差导致的结果偏差?看你的x和y的偏差不大,那么你的z值偏差呢?你可以吧一些中间变量都打印输出而不是只打印结果,看下是哪些变量导致的就知道问题出在哪里。
谢谢邀请,这个问题,首先需要确认一下数据跳动范围,如果角度在很小的范围内不停变化,很可能是正常的,可以在最后添加滤波算法即可;如果角度变化范围比较大,那就不是一个后处理滤波所能优化的了,这种情况一般是程序里面有问题,需要一步一步调试和检查中间数据。另外,如果确定程序没问题,而数据的变动是随机出现的,可以看看实验环境是否有影响,对于这种角度的求解,可能固定平台的一丝抖动就会导致求出的角度抖动,例如:实验环境在城市道路旁边的写字楼,道路上过去一辆车就可能造成固定平台的抖动,这种抖动可能人体感觉不出来,但是数据中会体现出来
可能是因为手机的陀螺仪在检测时会轻微震动(感受不到的那种),所以会不准
通常,不会从单个标记获得准确的相机姿态估计.解决方案是添加更多标记.可以使用标记板,也可以使用更稀疏的标记图案.
随着单个标记物距离摄像机越来越远,一些因素会降低标记物姿态估计的准确性.
标记的投影大小变得更小,并且通过像素网格更加量化.距离是通过反透视分割法估算的,因此随着距离的增加,精度会降低.
透视失真减小,接近平行投影.在平行投影中,标记具有两个同样可行的方向,可以交替返回(请参见:https://www.codenong.com/cs106341888/.
鉴于标记中的像素数量较少,小范围的影响(例如传感器噪声和量化)变得更加明显,从而降低了帧与帧之间的稳定性并引起了抖动.
姿势估计在单个标记的特写,斜视图中可以正常工作,因为为solvePnP()提供的投影点相距较远并且具有较大的透视失真.通过添加更多标记,将始终具有用于solvePnP()的理想投影点.
报告相同问题?