chaehyeonsong / discocal

135 stars 19 forks source link

椭圆标定 #4

Closed 5p6 closed 2 months ago

5p6 commented 3 months ago

10_left 你好,作者! 我已经运行过示例程序了,但是当我测试自己之前的圆形标定板时,算法却失效了,请问该如何打印能够被定位到的标定板,上面是我自己的圆形标定板,但是标定程序并不能检测到圆目标。 作者能否提供可以标定的圆标定版图像或者能否指导正确的标定姿势?

chaehyeonsong commented 3 months ago

Sorry, I don't speak Chinese. Could you write in English?

5p6 commented 3 months ago

Sorry, I don't speak Chinese. Could you write in English?

Hello, I have run the sample program, but when I tested it with my own circular calibration board, the algorithm failed. Could you please provide guidance on how to print a calibration board that can be detected, or offer advice on the correct calibration posture? Additionally, could you provide an image of a circular calibration board that can be calibrated, or guide me on the correct calibration posture?

chaehyeonsong commented 3 months ago

스크린샷 2024-05-20 오후 4 35 22 Hi, @5p6 ! Our method assumes a board with a white background and black circles. In your case, there is a black square surrounding the circles, which hinders the detection. Please remove the black square and try again. I recommend this site for generating patterns (https://calib.io/pages/camera-calibration-pattern-generator). By the way, our method gives more precise results when the circle radius is large. I recommend increasing the circle radius and decreasing the number of circles :)

5p6 commented 3 months ago

스크린샷 2024-05-20 오후 4 35 22 Hi, @5p6 ! Our method assumes a board with a white background and black circles. In your case, there is a black square surrounding the circles, which hinders the detection. Please remove the black square and try again. I recommend this site for generating patterns (https://calib.io/pages/camera-calibration-pattern-generator). By the way, our method gives more precise results when the circle radius is large. I recommend increasing the circle radius and decreasing the number of circles :)

Hello! Thank you for your clarification and suggestions. I will try to calibrate again based on your suggestions.

tian-sweetaylor commented 3 months ago

10_left 你好,作者! 我已经运行过示例程序了,但是当我测试自己之前的圆形标定板时,算法却失效了,请问该如何打印能够被定位到的标定板,上面是我自己的圆形标定板,但是标定程序并不能检测到圆目标。 作者能否提供可以标定的圆标定版图像或者能否指导正确的标定姿势?

你好请问你这个是标定板想要运行 对应参数是只需要修改main.cpp里的参数吗还有其它需要修改的文件吗

tian-sweetaylor commented 3 months ago

스크린샷 2024-05-20 오후 4 35 22 Hi, @5p6 ! Our method assumes a board with a white background and black circles. In your case, there is a black square surrounding the circles, which hinders the detection. Please remove the black square and try again. I recommend this site for generating patterns (https://calib.io/pages/camera-calibration-pattern-generator). By the way, our method gives more precise results when the circle radius is large. I recommend increasing the circle radius and decreasing the number of circles :)

"Hello, I also have the same calibration board as him. Besides changing the black frame background, if I want to get results, do I need to modify corresponding calibration board parameters in the main.cpp file, and do I need to make other modifications in other files such as CTargetDetector.cpp?""Please tell me how to get new results using my calibration board.""Please respond as soon as you see my question. Thank you very much for your guidance."

chaehyeonsong commented 3 months ago

Hello @tian-sweetaylor ! In most cases, you don't need to modify the hyperparameters in CTargetDetector.cpp. We checked our code successively detected the above board without any code modification after erasing the black square. Additionally, main.cpp doesn't contribute to detection.

tian-sweetaylor commented 3 months ago

Hello @tian-sweetaylor ! In most cases, you don't need to modify the hyperparameters in CTargetDetector.cpp. We checked our code successively detected the above board without any code modification after erasing the black square. Additionally, main.cpp doesn't contribute to detection.

Thank you for your response. I have another question to ask: When I run the code with this dataset, it takes a very long time, and I need to decrease this->size_threshold = 100; in CTargetDetector.cpp to make it run. Could you please help me run the code with the dataset I found to see where the issue lies?Please respond as soon as you see my question. Thank you very much for your guidance." [Uploading data.zip…]()

chaehyeonsong commented 3 months ago

"Size_threshold" indicates the minimal pixel of black dots; therefore, if you want to use a target with small circles, you need to decrease the value. However, we initially set "Size_threshold" as 400 since larger circles ensure better results. The total number of circles also influences the optimization time. For these two reasons, I recommended decreasing the number of circles and increasing the circle size.

Previous circular pattern methods have wrong projection models, so they use many circles for robust optimization. Our method is not biased; therefore, you don't need too many circles. Instead, it is better to increase the size of the circles and reduce their number for greater accuracy.

Additionally, I can't download your dataset. When I click the link, it brings me to the first image in this issue.