vincentjzy / OpenCorr

Digital Image Correlation & Digital Volume Correlation Library
Mozilla Public License 2.0
209 stars 55 forks source link

Some questions about calibration parameters #15

Open Silverqwx opened 11 months ago

Silverqwx commented 11 months ago

Hello,

I am trying to use the stereo-DIC module of OpenCorr. It is successful when I process the provided data by demo code. But When I tried to process my data, it failed to find the corresponding pixel coordinate in the other image.

So I am thinking maybe our coordinate systems are different. I use OpenCV for calibration which provides the result with the Right Hand Coordinate System setting. Could you tell me what is your coordinate system setting?

And another question is, when I use the code, I am not sure what is the exact meaning of rx, ry and rz. For example, the rx, ry and rz of view1, are they the rotation vector parameters

I will be so glad to receive help with these questions from you.

vincentjzy commented 10 months ago

The examples given in OpenCorr are from DIC challenge 2.0, in which the configuration is different from most of practices. In these examples, right camera, instead of left camera, is set as the principal camera. And the world coordinate system is fixed on the principal camera. If you use left camera as principal camera, the image collected by this camera should be assigned to view1. The translation vetcor (tx, ty, tz) and rotation vector (rx, ry, rz) are the relative parameters of view2 with respect to view1.

Silverqwx commented 10 months ago

Do you mean I should set it like this?

vincentjzy commented 10 months ago

yes, try this way

Silverqwx commented 10 months ago

I am sorry. It still does not work. I have also tried different subset sizes and stop_conditions and search_steps. Is there any other details I have overlooked do you think?

vincentjzy commented 10 months ago

You may share the images and calibration parameters in your cases, here or in QQ group. Let us see what we can do to help.

Silverqwx commented 10 months ago

Here is the images and calibration parameters. Thank you so much for help!

data.zip

SCUTRLee commented 9 months ago

@Silverqwx I can not reproduce the problem you mentioned, I use SIFT feature points to provide initial value, ICGN iterative optimization can successfully calculate the example you provide. If you are looking for a quick solution, you can add QQ Group (597895040) and we can talk about your problems in detail. If you use the epipolar constraint module to search for the corresponding points in the right-hand view, I suspect that you have failed to provide a relatively accurate parallax estimate.

Silverqwx commented 9 months ago

@SCUTRLee Thank you so much for your help. This is my email: 13776000046@163.com. Could you send me your test code with my data?

SCUTRLee commented 9 months ago

Sure

---Original--- From: @.> Date: Tue, Feb 6, 2024 12:32 PM To: @.>; Cc: @.**@.>; Subject: Re: [vincentjzy/OpenCorr] Some questions about calibration parameters(Issue #15)

@SCUTRLee Thank you so much for your help. This is my email: @.*** Could you send me your test code with my data?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Silverqwx commented 8 months ago

@SCUTRLee Thank you for your help with code. However, It needs many points to process to get enough valid points with high score for initialization. I am trying to process a few points, so I am trying to avoid using SIFT module, maybe using Epipolar-aided matching module only.

Could you help me have a check with my code? I checked the parameters, it is the same as your demo. My code is attached here.

test_3d_reconstruction_epipolar.zip

SCUTRLee commented 8 months ago

你能否描述一下你遇到的问题?是运行遇到bug中断,还是结果出现了异常?这些异常具体表现为什么?

想吃鱼丸粿条 @.***

 

------------------ 原始邮件 ------------------ 发件人: "vincentjzy/OpenCorr" @.>; 发送时间: 2024年2月26日(星期一) 中午12:51 @.>; @.**@.>; 主题: Re: [vincentjzy/OpenCorr] Some questions about calibration parameters (Issue #15)

@SCUTRLee Thank you for your help with code. However, It needs many points to process to get enough valid points with high score for initialization. I am trying to process a few points, so I am trying to avoid using SIFT module, maybe using Epipolar-aided matching module only.

Could you help me have a check with my code? I checked the parameters, it is the same as your demo. My code is attached here.

test_3d_reconstruction_epipolar.zip

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Silverqwx commented 8 months ago

OK. It is ok with my code running. No bug disruption. However, the results have shown low scores, like 0.3, 0.2.

SCUTRLee commented 8 months ago

//create an instance of ICGN with the 2nd order shape function     int subset_radius_x = 9;     int subset_radius_y = 9;     float conv_criterion = 0.001f;     float stop_condition = 100;     ICGN2D2* icgn2 = new ICGN2D2(subset_radius_x, subset_radius_y, conv_criterion, stop_condition, cpu_thread_number);

你设置的子区半径太小了,子区内没有足够多的图像信息,导致匹配失败。在我给你例子中,子区半径设置为30

想吃鱼丸粿条 @.***

 

------------------ 原始邮件 ------------------ 发件人: "vincentjzy/OpenCorr" @.>; 发送时间: 2024年2月26日(星期一) 中午1:37 @.>; @.**@.>; 主题: Re: [vincentjzy/OpenCorr] Some questions about calibration parameters (Issue #15)

OK. It is ok with my code running. No bug disruption. However, the results have shown low scores, like 0.3, 0.2.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Silverqwx commented 8 months ago

I tried to change this value according to your suggestions. However, I tried 30, 50, 100, it works still not well.

SCUTRLee commented 8 months ago

你运行我发给你的代码能否得到正常的结果?

Silverqwx commented 8 months ago

Yes, your code can get good results.

SCUTRLee commented 8 months ago

那你可以尝试对比一下在你改动代码后哪个模块的输出结果出现了变化或者异常,由此来判断哪个地方的参数设置出现了问题。

Silverqwx commented 8 months ago

Actually, the code you sent to me and the code I sent to you are different. Your code used SIFT module, which needs many points in processing to guarantee enough points with high scores for initialization. I am trying to process a few points, so I am trying to avoid using SIFT module, maybe using Epipolar-aided matching module only. And I met the problem here.

So maybe that's different.