[3D CV ์ฐ๊ตฌ] 3DGS Gaussian Surfels Poisson Reconstrucion
https://github.com/turandai/gaussian_surfels
Tain a scene:
python train.py -s path/to/your/data/directory
Trained model will be save in output/
.
To render images and reconstruct mesh from a trianed model:
python render.py -m path/to/your/trained/model --img --depth 10
We use screened Poisson surface reconstruction to extract mesh, at this line in render.py
:
poisson_mesh(path, wpos, normal, color, poisson_depth, prune_thrsh)
- path
- ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ ๋๋ค.
- ์์ฑ๋ ๋ฉ์ฌ ํ์ผ์ด ์ ์ฅ๋ ์์น๋ฅผ ์ง์ ํฉ๋๋ค.
- wpos
- โweighted positionsโ์ ์ฝ์ด๋ก, ์ ๋ค์ 3D ์ขํ(x, y, z) ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- ๋ฉ์ฌ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- normal
- ์ ๋ค์ ๋ฒ์ ๋ฒกํฐ๋ฅผ ํฌํจํฉ๋๋ค.
- ๊ฐ ์ ์์ ํ๋ฉด์ ๋ฐฉํฅ์ ๋ํ๋ด๋ฉฐ, ๋ฉ์ฌ์ ํํ๋์ ๋ฐฉํฅ์ฑ์ ๊ฒฐ์ ํฉ๋๋ค.
- color
- ์ ๋ค์ ์์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- RGB ์์๊ฐ์ ๊ฐ์ง๋ฉฐ, ๊ฐ ์ ์ ๋์๋๋ ์์์ ์ง์ ํฉ๋๋ค.
- poisson_depth
- Poisson ์ฌ๊ตฌ์ฑ์ ๊น์ด๋ฅผ ๋ํ๋ ๋๋ค.
- ๊ธฐ๋ณธ ๊น์ด๋ 10์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.
- ๋ ํฐ ์ฅ๋ฉด์์๋ ๋ ๋์ ๊น์ด ์์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- prune_thrsh
- ๋ฉ์ฌ๋ฅผ ํ๋ฃจ๋(๊ฐ์ง์น๊ธฐ)ํ ๋ ์ฌ์ฉ๋๋ ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค.
- ํน์ ์๊ณ๊ฐ์ผ๋ก Poisson ๋ฉ์ฌ๋ฅผ ํ๋ฃจ๋ํ์ฌ ์ธ๊ณฝ ๋ฉด์ ์ ๊ฑฐํฉ๋๋ค.
- ์๊ณ๊ฐ์ด ๋ฎ์ผ๋ฉด ๋ ๋ง์ ์ ๋ค์ด ์ ๊ฑฐ๋๊ณ , ๋์ผ๋ฉด ๋ ์ ์ ์ ๋ค์ด ์ ๊ฑฐ๋ฉ๋๋ค.
- ์๊ณ๊ฐ์ด ๋๋ฌด ๋ฎ์ผ๋ฉด ๊ณผ๋ํ ํ๋ฃจ๋์ผ๋ก ๋ฉ์ฌ์ ๊ตฌ๋ฉ์ด ์๊ธธ ์ ์์ต๋๋ค.
- ์ด๋ฌํ ๊ฒฝ์ฐ โprune_thrshโ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
In your output folder, xxx_plain.ply
is the original mesh after Poisson reconstruction with the default depth of 10. For scenes in larger scales, you may use a higher depth level.
We prune the Poisson mesh with a certain threshold to remove outlying faces and output xxx_pruned.ply
. This process sometimes may over-prune the mesh and results in holes. You may increase the โprune_thrshโ parameter accordingly.
Leave a comment