xdspacelab / openvslam

OpenVSLAM: A Versatile Visual SLAM Framework
https://openvslam.readthedocs.io/
2.97k stars 869 forks source link

RICOH THETA calibration #397

Open kodama-y opened 4 years ago

kodama-y commented 4 years ago

Thank you for the excellent algorithm.

Sorry for the elementary question. I am trying to run OpenVSLAM using RICOH THETA. But I don't know how to calibrate THETA. Is there a detailed calibration procedure somewhere?

belal-ibrahim commented 4 years ago

+1

ymd-stella commented 4 years ago

If you're using Equirectangular images, no calibration is required.
dataset is https://openvslam.readthedocs.io/en/master/simple_tutorial.html#equirectangular-datasets. You can refer to the configuration file included in the dataset.

kodama-y commented 4 years ago

Thank you for your reply

The camera.name of the setting file is "RICOH THETA S 960". The camera I use is the "RICOH THETA Z1". Is there any problem?

ymd-stella commented 4 years ago

If the same image is given, it works the same way. try it!

belal-ibrahim commented 4 years ago

it worked fine with some modification in yaml file according to camera specs.

kodama-y commented 4 years ago

In other words, does it mean that internal parameters such as the focal length of the spherical camera(RICOH THETA) are not necessary to execute OpenVSLAM?

belal-ibrahim commented 4 years ago

Try to lookup for the camera model you are using and see the parameters i.e. resolution of the images. then update these parameters in yaml file. It will help generate more points.

kodama-y commented 4 years ago

I understand!

Do you mean that there are only three camera parameters for executing OpenVSLAM: "Camera.fps", "Camera.cols", and "Camera.rows"?

vzhr commented 4 years ago

I understand!

Do you mean that there are only three camera parameters for executing OpenVSLAM: "Camera.fps", "Camera.cols", and "Camera.rows"?

The "Camera.cols" and "Camera.rows"(Equirectangular images param) are used to calculate the bearing of keypoints (π/rows, 2π/cols ) + offset. U should expand the RICOH THETA images ( here has been calibrated) to the "Equirectangular images". To calibration the origin images, reference: "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion" ; Toolbox reference: http://www-sop.inria.fr/icare/personnel/Christopher.Mei/ChristopherMeiPhDStudentToolbox.html. May this help.

kodama-y commented 4 years ago

The "Camera.cols" and "Camera.rows"(Equirectangular images param) are used to calculate the bearing of keypoints (π/rows, 2π/cols ) + offset. U should expand the RICOH THETA images ( here has been calibrated) to the "Equirectangular images". To calibration the origin images, reference: "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion" ; Toolbox reference: http://www-sop.inria.fr/icare/personnel/Christopher.Mei/ChristopherMeiPhDStudentToolbox.html. May this help.

After all, does RICOH THETA have to calibrate?

Where should the parameters calculated by calibration be reflected?

kodama-y commented 4 years ago

Looking at config.yaml, I thought that OpenVSLAM can be executed if only the resolution of RICOH THETA is known. Is it different?

vzhr commented 4 years ago

The "Camera.cols" and "Camera.rows"(Equirectangular images param) are used to calculate the bearing of keypoints (π/rows, 2π/cols ) + offset. U should expand the RICOH THETA images ( here has been calibrated) to the "Equirectangular images". To calibration the origin images, reference: "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion" ; Toolbox reference: http://www-sop.inria.fr/icare/personnel/Christopher.Mei/ChristopherMeiPhDStudentToolbox.html. May this help.

After all, does RICOH THETA have to calibrate?

Where should the parameters calculated by calibration be reflected?

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

kodama-y commented 4 years ago

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

The image of RICOH THETA is "Equirectangular".

After all, do I have to find internal parameters (focus length, etc.) even when using RICOH THETA?

vzhr commented 4 years ago

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

The image of RICOH THETA is "Equirectangular".

After all, do I have to find internal parameters (focus length, etc.) even when using RICOH THETA?

If so, no need. "Equirectangular" 是用来算找到的keypoint对应的空间方位角(bearing),你可以在对应camera的计算中看到,然后你看看你的图像能不能按照对应代码计算公式来计算。如果能就行了,否则就改成对应的或反过来改其计算公式

kodama-y commented 4 years ago

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

The image of RICOH THETA is "Equirectangular". After all, do I have to find internal parameters (focus length, etc.) even when using RICOH THETA?

If so, no need. "Equirectangular" 是用来算找到的keypoint对应的空间方位角(bearing),你可以在对应camera的计算中看到,然后你看看你的图像能不能按照对应代码计算公式来计算。如果能就行了,否则就改成对应的或反过来改其计算公式

I understand. Thank you very much.

I have one question, why is it that "Equirectangular" does not need internal parameters?

vzhr commented 4 years ago

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

The image of RICOH THETA is "Equirectangular". After all, do I have to find internal parameters (focus length, etc.) even when using RICOH THETA?

If so, no need. "Equirectangular" 是用来算找到的keypoint对应的空间方位角(bearing),你可以在对应camera的计算中看到,然后你看看你的图像能不能按照对应代码计算公式来计算。如果能就行了,否则就改成对应的或反过来改其计算公式

I understand. Thank you very much.

I have one question, why is it that "Equirectangular" does not need internal parameters?

Because the "Equirectangular" already "include" this. The "Equirectangular" is an abstract image. It has nothing to do with specific camera model. U can search "Equirectangular Projection" for further understand.

kodama-y commented 4 years ago

Are the RICOH THETA images "Equirectangular" images? The openvslam accepts the "Equirectangular" image.

The image of RICOH THETA is "Equirectangular". After all, do I have to find internal parameters (focus length, etc.) even when using RICOH THETA?

If so, no need. "Equirectangular" 是用来算找到的keypoint对应的空间方位角(bearing),你可以在对应camera的计算中看到,然后你看看你的图像能不能按照对应代码计算公式来计算。如果能就行了,否则就改成对应的或反过来改其计算公式

I understand. Thank you very much. I have one question, why is it that "Equirectangular" does not need internal parameters?

Because the "Equirectangular" already "include" this. The "Equirectangular" is an abstract image. It has nothing to do with specific camera model. U can search "Equirectangular Projection" for further understand.

I see. Thank you very much.