我用相同的相机从两个位置拍摄了aruco板上的物体。我在工作之前没有扭曲图像和校准相机。我在一次拍摄中取一个红点并计算3d线,这对应于此点3D空间,然后将其投影到另一个图像:
问题是另一幅图像上的线与点之间存在一些差异(~5px-15px)。我也观察到与opengl生成的图像相同的问题,所以它似乎不是我的相机的问题。我使用这段代码来检测电路板位置:
MarkerMapPoseTracker MSPoseTracker; // tracks the pose of the marker map
MSPoseTracker.setParams(camParam, theMarkerMapConfig);
MSPoseTracker.estimatePose(ret.markers);
是否有可能以某种方式增加容忍度?我还发现了具有某种容差参数的函数:
bool estimatePose(Marker& m, const CameraParameters& cam_params, float markerSize, float minErrorRatio = 4 /*tau_e in paper*/)
但我不知道如何将此参数传递给MSPoseTracker.estimatePose。如果我认为至少可以理论化它,我怎样才能提高精度?