Closed grisaiakaziki closed 1 month ago
Hi, thank you for your interest in our work!
Our pipeline takes inaccurate initial camera pose estimates from COLMAP as input, and uses this initialization to optimize a tiny camera trajectory for each camera, in order to model motion blur caused by camera motion.
You can see many output images in the outputs/blurfactory/<yyyy-mm-dd_hhmmss>/<steps>
folders for every steps_per_eval_all_images
steps. In these images:
0001_input.png
, etc., are copies of the input blurry images0001_gt.png
, etc., are copies of the groundtruth clear images (only available for synthetic datasets)0001_estimated.png
, etc., are blurry images rendered with our estimated clear 3D-GS scene and our estimated tiny camera trajectories (we use the rendered blurry images to calculate the loss with the input blurry images)0001_rgb_start.png
, 0001_rgb_mid.png
, 0001_rgb_end.png
, 0001_depth_start.png
, 0001_depth_mid.png
, 0001_depth_end.png
are the clear rgb/depth images rendered with start/mid/end poses from our optimized camera trajectories. (If the optimization goes well, the mid poses should be very close to the poses of the groundtruth clear images. We use the mid images for evaluation.)For the second question, it is not a single camera pose that corresponds to the blurred image capture, but the camera trajectory. If the start/middle/end clear images suit your needs, you can find them directly there. If you want to sample more camera poses on the trajectory and save all the images, you need to modify some code in the evaluation pipeline.
Why can't I reproduce the results from the paper? Did you set the parameters? Moreover, the rendered videos look quite different compared to those on the project homepage.
Can you provide the "completely different" rendering you mentioned so we can further analysis it? Hyperparameters will have some impact, but the default settings should work good enough on the deblur-nerf dataset.
May be the solution is this?https://github.com/WU-CVGL/BAD-Gaussians/commit/25155be35f3c2dbdb13af1fb439e90d0523c98ba
I'm really sorry, upon closer inspection, I realized that the dataset used in your project seems to be different from the one I'm using. I apologize for wasting your time.Thank you for patiently answering my questions.
From the video you've provided, it seems that the camera poses are being optimized (comparing to the complete blur results in https://github.com/WU-CVGL/BAD-Gaussians/issues/3#issuecomment-2016524355), but the scene, especially background is corrupted. I guess this is because the camera intrinsics you are using are probably not GT (our setup here) but are estimated by colmap, with blurry images only. From our early experiments, it seems that 3D-GS, as an explicit representation, is more sensitive to intrinsics than NeRFs. We didn’t cover joint optimization with camera intrinsics in this work (as in many areas such as robotics and machine vision, people usually calibrate their cameras first), maybe it can be added to our TODO list!
Nice work!
I have a question about why some images have different camera poses after ns-train. For example, in the case of blurfactory, it seems that the camera poses of 0001_input.png, 0001_gt.png, and 0001_estimate.png are not the same. How can this be explained? Another question is, how can I obtain clear images under the camera pose that captured the blurry image?