Easonyesheng / CCS

[RA-L&IROS22] A learning-based camera calibration system.
MIT License
35 stars 2 forks source link

wrong results on demo_light #9

Closed tazalapizza closed 6 months ago

tazalapizza commented 10 months ago

Hello, thank you for your code and paper.

I tried to test your code using the corner detection weights you provided, with Demo_calib.py. It works well on the demo_noise images, but it fails on the demo_light images. The corner detection founds a maximum of 28 out of 30 corners. But in the DetectRes heatmap you uploaded, all corners are found.

With uploaded model new

What you have old

Is the corner detection model you uploaded not the same one ? I also tried to train a model on other sizes of chessboards, the losses converged but it is not performing well. Can you help ? Thanks. train

Easonyesheng commented 10 months ago

Hi~ Thank you for the reminder.

  1. The uploaded model is actually a basic model which is trained on dataset without uneven illumination, which can be fine-tuned on the enhanced dataset. The chessboard images with bad lighting can also be generated by our code. I will find the corresponding model for the demo and upload it when available.
  2. For the abnormal performance, I think it may be related to your training data which have different patterns with the real one. On the other word, if the model is trained on the synthetic data and test on the real data, I recommend to generate chessboard images similar to real ones. I note there are significant responses on the edge of the chessboard (the last image). This could be one of the inconsistent patterns mentioned above, and you can generate similar edges for synthetic images by modifying our code.
  3. As the chessboard corner is some kind of a fixed pattern (like you only need one real chessboard for calibration, so you can train your specific model), the generalization issue of learning models in this task can be alleviated by proper synthetic data augmentation.
123ioup commented 6 months ago

Hi~ Thank you for the reminder.

  1. The uploaded model is actually a basic model which is trained on dataset without uneven illumination, which can be fine-tuned on the enhanced dataset. The chessboard images with bad lighting can also be generated by our code. I will find the corresponding model for the demo and upload it when available.
  2. For the abnormal performance, I think it may be related to your training data which have different patterns with the real one. On the other word, if the model is trained on the synthetic data and test on the real data, I recommend to generate chessboard images similar to real ones. I note there are significant responses on the edge of the chessboard (the last image). This could be one of the inconsistent patterns mentioned above, and you can generate similar edges for synthetic images by modifying our code.
  3. As the chessboard corner is some kind of a fixed pattern (like you only need one real chessboard for calibration, so you can train your specific model), the generalization issue of learning models in this task can be alleviated by proper synthetic data augmentation.

Hi~ Thank you for the reminder.

  1. The uploaded model is actually a basic model which is trained on dataset without uneven illumination, which can be fine-tuned on the enhanced dataset. The chessboard images with bad lighting can also be generated by our code. I will find the corresponding model for the demo and upload it when available.
  2. For the abnormal performance, I think it may be related to your training data which have different patterns with the real one. On the other word, if the model is trained on the synthetic data and test on the real data, I recommend to generate chessboard images similar to real ones. I note there are significant responses on the edge of the chessboard (the last image). This could be one of the inconsistent patterns mentioned above, and you can generate similar edges for synthetic images by modifying our code.
  3. As the chessboard corner is some kind of a fixed pattern (like you only need one real chessboard for calibration, so you can train your specific model), the generalization issue of learning models in this task can be alleviated by proper synthetic data augmentation.

How to train the model with real data instead of generated virtual data, can you give a detailed explanation.thank you