Comments (10)
Thank you very much for your reply. It helps me a lot.
from scnerf.
For the files named "poses_bounds.npy", I strongly recommend referring to the codes below, which is the process of extracting bounded poses. It might help you.
https://github.com/weiyithu/NerfingMVS/blob/8c8f96244146b929a1495caf2719c090b48ac082/utils/pose_utils.py#L72
https://github.com/Fyusion/LLFF/blob/master/llff/poses/pose_utils.py
I'm not really sure what you are targeting so, I'll assume that you are trying to render your custom scenes with our code. Based on my understanding, our code does not use simplices. Thus, could you check whether the file "simplices.npy" is necessary for your code?
from scnerf.
The article here(https://github-wiki-see.page/m/pelednoam/scatter_3d_to_surface/wiki/Preprocessing) could help you understand what "slices.npy" exactly is. I hope this link helps you.
from scnerf.
Thank you for your reply. It works now. I'm looking forward to the final result.
from scnerf.
Thanks for taking an interest in our work.
The estimated camera poses are stored in ".tar" file, the ckpt file with the standard torch format.
If you take a look at the key "camera_model", you could find all the estimated camera parameters. To be precise, you are able to find the camera parameters by the script below.
torch.load([path to tar file])["camera_model"]
I might guess you would have difficulty loading the estimated camera poses since it is divided into two parameters: "extrinsics_noise" and "extrinsics_init". As described in our main paper, we use a different camera pose estimation, 6D representation. Thus, I recommend referring to the code here.
-
The code to convert 6D representations to rotation matrices.
Line 78 in dc57e9f
-
The code loading trained model
Line 172 in dc57e9f
To simply extract the file, here is the easiest way to checkout camera poses.
import torch
pretrained = torch.load([path to pretrained])
camera_model = pretrained["camera_model"]
rot_6D_trans_3D = camera_model["extrinsics_initial"] + camera_model["extrinsics_noise"] * <your noise scale>
ortho2rotation(rot_6D_trans_3D[:, :6]) -> rotation matrices
rot_6D_trans_3D[:, -3:] -> translation vectors [edited]
[path to pretrained] = path to the .tar file you are planning to open.
[your noise scale] = the extrinsic noise scale you have used during training.
If this reply was not sufficient for you, then let me know what problem you are suffering from.
Again, thanks for taking an interest in our work.
from scnerf.
If you have any difficulty extracting camera poses, please reopen the issue. I would provide more detailed descriptions for it.
from scnerf.
Hello author,
In this way, I can get the 4x4 matrice about the camera pose. I notice in your code that the translation vectors consist of the first three numbers of rot_6D_trans_3D. And I find the translation vector is a part of rotations matrice, like this:
So is that a mistake? Maybe the translation vector should be the last three numbers of rot_6D_trans_3D.(The shape of rot_6D_trans_3D is batch * 9)
Another question is that I notice in your paper you initialize all the rotation matrices, the translation vectors, and focal lengths to an identity matrix, zero vector, and height and width of the captured images. And your code also have a file named load_blender.py. If I want to estimate camera pose of my own images by rgbd camera. Can I choose 'blender' dataset_type? (I think the Blender dataset is closer to the RGBD camera collection)
from scnerf.
Oh, sorry for being late. As you pointed out, the last three elements in the ckpt file are translation vectors. Sorry for the mistake above. I've just fixed it.
The reason why we include the 'blender' dataset is that the very first version of our paper included noise injection ablation studies. For clearer paper writing, we have removed such experiments. In these experiments, we have added synthetic noises on camera parameters to verify that our model recovers the noises. I could find a few traces of experiments we have done in this code. If you ever want to use the scenes in the blender dataset, you could use it but I cannot ensure whether this code still perfectly works.
from scnerf.
I got it. And another question is that I find the date include a pose_bounds.npy and a simplices.npy. I read the file. It show me some matrices (The shape of matrices about pose_bounds and simplices are n * 17 and n * 3). I use colmap to process my data and get the result in folder 'sparse' and database.db, but I don't know the meaning about the two .npy files and how to get it?
In addition, I have sent an email to you about this question. If you answered here, please ignore the email.
Finally, thank you for your reply.
from scnerf.
Glad to hear the good news! 👍
from scnerf.
Related Issues (20)
- estimated parameters used in camera undistortion HOT 2
- Scripts for paper's results HOT 2
- Error trying the script on custom image set HOT 2
- about main table 1 HOT 6
- Question about the equations in the paper HOT 3
- proj_ray_dist_threshold HOT 2
- Parameter setting different with paper HOT 4
- Problems running colmap_utils script HOT 6
- Implementing SCNeRF on custom dataset HOT 3
- What tool did you use to draw the architecture diagram? HOT 2
- Ablation Study on Tank and Temple datasets HOT 2
- have bug with the custom image set HOT 2
- susperious data leakage ?
- Demo error HOT 3
- Reproducing the results (Table 4)
- IndexError: index 0 is out of bounds for axis 0 with size 0 HOT 2
- Does `--dataset_type custom` work for 360 scenes with photos only ? HOT 12
- How to use pretrained weights for inference on custom datasets? HOT 2
- Question about downsampling factor HOT 2
- How dose "multiplicative_noise" infrence results? HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scnerf.