OpenCalib / JointCalib

154 stars 21 forks source link

标定板尺寸 #4

Open Muxindawang opened 1 year ago

Muxindawang commented 1 year ago

大佬好,有几个一直没有想通的问题,希望能够得到解答,非常感谢; 首先,关于标定板的尺寸,在代码中并没有找到相应参数的体现,棋盘的尺寸是否如论文中的图片所示(每个棋盘格5cm)?代码中棋盘格的3D坐标并没有和棋盘格的尺寸进行一个乘积,圆心的坐标是怎么得到的,希望大佬能帮忙解答一下。 image 第二个问题是下面这段代码的用意是?其中50表示的含义是? image

harddrad commented 1 year ago

大佬好,有几个一直没有想通的问题,希望能够得到解答,非常感谢; 首先,关于标定板的尺寸,在代码中并没有找到相应参数的体现,棋盘的尺寸是否如论文中的图片所示(每个棋盘格5cm)?代码中棋盘格的3D坐标并没有和棋盘格的尺寸进行一个乘积,圆心的坐标是怎么得到的,希望大佬能帮忙解答一下。 image 第二个问题是下面这段代码的用意是?其中50表示的含义是? image

大佬,你的这两个疑惑解决了吗?我也遇到了很你一样的疑惑,现在还没看明白,大佬能否解答一下啊,万分感谢!!!

royfate commented 1 year ago

我说一下我看完论文和代码的理解,希望能帮到各位。首先,需要知道,求相机内参的过程还包含了求棋盘格坐标系和相机坐标系之间的旋转平移。引出了棋盘格坐标系,在作者的代码中,是有初始化棋盘格坐标系的,依据就是棋盘格检测出的角点,设棋盘格第一个角点作为原点,设为(0,0),每格格子表示单位1,具体看下面这张图 image 是不是就恍然大悟了,至于这个50,其实是棋盘格坐标系下4个圆心的值,通过重投影函数,转到了像素坐标系下, 并且基于这4个点求一个外接矩形,如下图所示: image 50的意思是圆心点的值和这个边界框的差值不可以超过50个像素,我理解是重投影的像素点是存在误差的,我们允许一定的误差,因为后续可以迭代优化。 至于作者为什么把4个圆心点设为了1.82f, -3.12f, 0.0f 这种值,可能考虑到误差?不过如果按照我的理解,把值设为2.0f, -3.0f, 0.0f,求出来的结果也是和之前的结果完全一样的。

zouzhiwei217 commented 11 months ago

我说一下我看完论文和代码的理解,希望能帮到各位。首先,需要知道,求相机内参的过程还包含了求棋盘格坐标系和相机坐标系之间的旋转平移。引出了棋盘格坐标系,在作者的代码中,是有初始化棋盘格坐标系的,依据就是棋盘格检测出的角点,设棋盘格第一个角点作为原点,设为(0,0),每格格子表示单位1,具体看下面这张图 image 是不是就恍然大悟了,至于这个50,其实是棋盘格坐标系下4个圆心的值,通过重投影函数,转到了像素坐标系下, 并且基于这4个点求一个外接矩形,如下图所示: image 50的意思是圆心点的值和这个边界框的差值不可以超过50个像素,我理解是重投影的像素点是存在误差的,我们允许一定的误差,因为后续可以迭代优化。 至于作者为什么把4个圆心点设为了1.82f, -3.12f, 0.0f 这种值,可能考虑到误差?不过如果按照我的理解,把值设为2.0f, -3.0f, 0.0f,求出来的结果也是和之前的结果完全一样的。

你的理解没有问题,确实是这样.