-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d7fbf35
commit 590b938
Showing
69 changed files
with
1,288 additions
and
859 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,6 @@ API | |
TODO: Explanation of each component | ||
|
||
.. toctree:: | ||
|
||
code/dataset | ||
code/point_cloud | ||
code/hook | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,33 @@ | ||
# Camera Optimization | ||
|
||
Pointrix supports camera optimization based on Msplat: | ||
Users can modify configurations | ||
## Configuration Changes | ||
Pointrix, based on Msplat, supports camera optimization: | ||
Users can modify the configuration with: | ||
```bash | ||
trainer.camera_model.enable_training=True | ||
``` | ||
|
||
Enable camera optimization and configure the corresponding learning rate: | ||
|
||
Enable camera optimization and set the learning rate: | ||
```bash | ||
trainer.optimizer.camera_params.lr=1e-3 | ||
``` | ||
``` | ||
Additionally, to support gradient backpropagation for the camera, we need to change the renderer to Msplat or Gsplat: | ||
```bash | ||
trainer.model.renderer.name=MsplatRender | ||
``` | ||
|
||
In summary, the command to enable camera optimization is: | ||
```bash | ||
python launch.py --config ./configs/colmap.yaml trainer.datapipeline.dataset.data_path=your_data_path trainer.datapipeline.dataset.scale=1.0 trainer.output_path=your_log_path trainer.model.renderer.name=MsplatRender trainer.model.camera_model.enable_training=True trainer.optimizer.optimizer_1.camera_params.lr=1e-3 | ||
``` | ||
|
||
## Experimental Results | ||
|
||
We added random perturbations to the ground truth camera poses as camera priors, then visualized the distance between the optimized camera poses and the ground truth. The visualization results are as follows: | ||
|
||
![](../../images/pose.gif) | ||
|
||
We also compared using Dust3R for camera and point cloud initialization, with and without camera optimization: | ||
|
||
![Image1](../../images/camera.gif) | ||
![Image2](../../images/nocamera.gif) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,23 @@ | ||
# Initilization of Point Cloud | ||
TBD | ||
# Dust3r Initialization for Camera Model and Point Cloud (Beta) | ||
|
||
## Usage Instructions: | ||
1. Switch to the Beta branch. | ||
2. Download [Dust3r](https://github.com/naver/dust3r) to `examples/dust3r_init` and follow the installation instructions. | ||
3. Move `convert_dust3r.py` to the `examples/dust3r_init/dust3r` folder. | ||
4. Navigate to `examples/dust3r_init/dust3r`, and then use Dust3r to extract point cloud priors and camera priors: | ||
```bash | ||
python convert_dust3r.py --model_path your_dust3r_weights --filelist your_image_path | ||
``` | ||
5. Run the program. | ||
|
||
```{note} | ||
Dust3r can only extract point cloud and camera priors for dozens of images at a time. | ||
``` | ||
|
||
## Experimental Results: | ||
|
||
Results using twelve images in the Garden scene: | ||
![Image1](../../images/camera.gif) | ||
|
||
When camera optimization is disabled, rendering accuracy is reduced, as shown below: | ||
![Image2](../../images/nocamera.gif) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,21 @@ | ||
# Export mesh | ||
TBD | ||
# Post-Processing Results Extraction (Metric, Mesh, Video) | ||
|
||
## Configuration Changes | ||
Pointrix uses exporters to obtain desired post-processing results, such as mesh and video. The relevant configuration is as follows: | ||
|
||
```yaml | ||
trainer: | ||
exporter: | ||
exporter_a: | ||
type: MetricExporter | ||
exporter_b: | ||
type: TSDFFusion | ||
extra_cfg: | ||
voxel_size: 0.02 | ||
sdf_trunc: 0.08 | ||
total_points: 8_000_000 | ||
exporter_c: | ||
type: VideoExporter | ||
``` | ||
Users can specify multiple exporters to obtain various post-processing results. For example, with the above configuration, users can get Metric and Mesh extraction results as well as Video post-processing results. Mesh is obtained using the TSDF fusion method by default. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,25 @@ | ||
# 使用Dust3r 初始化相机模型与点云 | ||
# Dust3r 初始化相机模型与点云 (Beta) | ||
|
||
## 使用方法: | ||
1. 切换到Beta 分支 | ||
2. 下载[Dust3r](https://github.com/naver/dust3r)到`examples/dust3r_init`并依照指示安装 | ||
3. 将`convert_dust3r.py` 移动到 `examples/dust3r_init/dust3r`文件夹下 | ||
4. cd examples/dust3r_init/dust3r, 然后用dust3r 提取点云先验与相机先验: | ||
|
||
```bash | ||
python convert_dust3r.py --model_path your_dust3r_weights --filelist your_image_path | ||
``` | ||
|
||
5. 运行程序 | ||
|
||
```{note} | ||
Dust3r 一次只能提取数十张图片的点云和相机先验。 | ||
``` | ||
|
||
## 实验结果: | ||
|
||
使用十二张图片在Garden 场景下的实验结果: | ||
![图片1](../../images/camera.gif) | ||
|
||
如关闭相机优化,则渲染精度会降低,如下图所示: | ||
![图片1](../../images/nocamera.gif) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,21 @@ | ||
# mesh 提取 | ||
# 后处理结果提取 (Metric, Mesh, Video) | ||
## 配置修改 | ||
Pointrix 使用exporter 来得到用户需要的后处理结果,例如mesh,视频等,相关的配置如下: | ||
|
||
```yaml | ||
trainer: | ||
exporter: | ||
exporter_a: | ||
type: MetricExporter | ||
exporter_b: | ||
type: TSDFFusion | ||
extra_cfg: | ||
voxel_size: 0.02 | ||
sdf_truc: 0.08 | ||
total_points: 8_000_000 | ||
exporter_c: | ||
type: VideoExporter | ||
``` | ||
其中用户可指定多个exporter 来得到多个后处理结果。例如上述配置,用户可以得到Metric, Mesh提取结果以及Video的后处理结果。 | ||
Mesh 默认使用TSDF fusion方式获得。 |
Oops, something went wrong.