Closed ShivamDuggal4 closed 2 years ago
Hi @ShivamDuggal4. Thank you for your questions, I'm happy to answer them.
Since we're optimizing multiple cameras (starting from different initializations over the sphere), we want to minimize overlap between these different camera poses. optimizeAzRange
achieves this by limiting the change in azimuth during optimization. We set it based on the number of cameras in the multiplex. When the multiplex has 40 cameras with initializations spanning 8 different azimuths and 5 different elevations, az
of adjacent cameras are 380/8=45
degrees apart. Setting optimizeAzRange=30
to allow for adjacent cameras to have little but non-zero overlap.
During optimizing, we want to limit my azimuth to the range [-optimizeAzRange, optimizeAzRange]
. tanh
help achieve this with an unbounded optimization variable (az_param
), by mapping to (-1,1)
. The 0.1
is just another way of controlling the learning rate for that variable.
Hope this helps!
Hi @shubham-goel
Thanks for the great work!
I have a query regarding the camera pose optimization as done in the initialization phase here
It would be great if you can explain the choice of the following:
tanh
in L151-L153?constant 0.1
inside thetanh
function?opts.optimizeAzRange...
to find an initial range for sampling the camera multiplex ? And how did you decide the values for these hyper-parameters ?Also, as far as I know, pascal cameras are usually looking at the object center. Therefore, the authors of the pascal3d paper used a simplified camera parametrization (of azimuth, elevation, theta and just a radial camera distance as shown here). Just want to ask if you tried reducing your camera parameterization from the weak perspective (scale, 2d translation and 3D rotation) to this parameterization, as this would reduce the sampling space for your camera multiplex ?
Looking forward to your answer!
Thanks & Best Regards Shivam