Open aaryapatel007 opened 4 weeks ago
Did you preprocess the camera correctly? what is the rendering outcome?
The training rendering outcome (train/renders) is good but the novel view synthesis (traj/renders) output is poor.
training rendering outcome (train/renders)
novel view synthesis (traj/renders) output:
Is your camera's focus centralized?
How do I check that?
FYI, The BMVS Man object input images are very zoomed in, often cropping the man object from top and bottom.
if cx (cy) == width // 2 (height // 2)? Check here. https://github.com/graphdeco-inria/gaussian-splatting/issues/144#issuecomment-1938504456
OK, I was using your default getProjectionMatrix() function in graphics_util.py. Should I update it to getProjectionMatrixShift() as given here and train again to ensure principal points pass through the center of the image?
it depends on whether you use the ideal pinhole camera (centralized).
While running the extract feature in COLMAP, I'd set camera_model=PINHOLE
.
os.system(f"colmap feature_extractor --database_path {scene_path}/database.db \
--image_path {scene_path}/image \
--ImageReader.camera_model=PINHOLE \
--SiftExtraction.use_gpu=true \
--SiftExtraction.num_threads=32 \
--ImageReader.single_camera=true"
)
The key is that you should ensure your camera principle point lies in the center. Please make sure that your cx cy is half of the image width and height. Otherwise, you should modify the ProjectionMatrix with shift.
Hi @hbb1,
I tested your model on the BMVS dataset. Unfortunately, I wasn't able to get good results. I used the code provided in #5 and #44 to convert IDR format data to COLMAP format. I am not sure what wrong I have done on my part. Can you help me figure it out?
My idr_to_colmap conversion script:
Reconstruction of the BMVS Man object:![image](https://github.com/hbb1/2d-gaussian-splatting/assets/30631425/567189a6-1851-4177-a688-07299d3059a8)