cvlab-epfl / diff-nrsfm

18 stars 3 forks source link

Input to the algorithm #1

Open iegorval opened 4 years ago

iegorval commented 4 years ago

Good afternoon.

Could I please ask what is the actual input to the algorithm? I.e. what is the structure of kinect_paper_cvpr_methods.mat? I have looked into it, but the names of the variables from this mat file do not seem very self-explanatory. Is there anything available that would describe the process of obtaining the individual components of that mat file?

Thank you.

shaifaliparashar commented 4 years ago

The input to the algorithm is point correspondences, which register the images, available in qgth (with u,v coordinates). One has to compute the first order derivatives of the image registration, given in J21a, J21b,J21c,J21d. J21 represents the jacobian of the registration function. J21 is a 2X2 matrix of the structure [J21a,J21c;J21b,J21d]. kinect_paper_cvpr_methods.mat is a matlab workspace with pre-calculated jacobians from the point correspondences qgth. You can look at the following link to get a better understanding of how to obtain these jacobians. http://igt.ip.uca.fr/~ab/code_and_datasets/index.php Look for Local-Iso-NRSfM: A local solution of isometric NRSfM's PDE under Non-Rigid Structure-from-Motion

shaifaliparashar commented 3 years ago

Hi I added create_warps.m to compute input (warp derivatives) from image points qgth. Hope it helps!

SJW21 commented 1 year ago

Hi, thank you for your good work.

Recently I want to constrain the reconstruction of surfaces using Equation 6 from the paper,but I have a question on schwarzian warps. I have read the reference paper [26] but still confused on how to calculate the jacobian. I have run the code "create_warps.m", but the resulting Jacobian matrix J21 is different from the one provided in "kinect_paper_cvpr_methods.mat". Are there any other steps to be aware of here?

Thank you.

shaifaliparashar commented 1 year ago

How different is it? Depending on some parameters (nC, for example), the results ca be slightly different. Also, the Jacobians do not need Schwarzian refinement for Diff-NRSfM. Schwawrzian refinement is mainly useful for correcting second-order derivatives, Hessians.

SJW21 commented 1 year ago

Thank you for your reply! Sorry to bother you. I didn't actually change any parameters in the function, but the result is different. For example, I generate J21a' by "create_warps.m", the input of function is qgth in "kinect_paper_cvpr_methods.mat". J21a' is different from J21a(Almost every element in the matrix), and the same with J21b et al.

I think the main problem is that I don't quite understand the algorithm for solving the Jacobian matrix of η in "create_warps.m". I will be very grateful if you can share some materials or tell me where I can learn related knowledge.

Thank you.

shaifaliparashar commented 1 year ago

So, the derivatives in kinect_paper_cvpr_methods.mat might have slightly different parameters. This is why I wanted to know how different they are. We can schedule a zoom call early next week to discuss the method, if you like.

SJW21 commented 1 year ago

Thank you very much! I will study it again, it's really not that simple(LOL). If there is still a problem, I will contact you(if it doesn't bother you). Thanks again, wish everything goes well with your work!