15 minute read

3D points๋ž‘ ๊ฐ 3D point๋งˆ๋‹ค normal์ด ์žˆ์œผ๋ฉด surface๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด poisson reconstruction์ž…๋‹ˆ๋‹ค.

ํฌ์ธํŠธ(Points)๊ฐ€ ๋ฒ•์„ (normals)์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ์ด๋ฅผ โ€œoriented point setโ€์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. โ€œOrientedโ€๋ผ๋Š” ์šฉ์–ด๋Š” ๊ฐ ํฌ์ธํŠธ๊ฐ€ ํŠน์ • ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•˜๋ฉฐ, ์ด ๋ฐฉํ–ฅ ์ •๋ณด๋Š” ๋ฒ•์„  ๋ฒกํ„ฐ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค

Poisson surface reconstruction is more sensitive to estimated positions of the points than their normal estimates, thus further smoothing and regularizing the Gaussian scene representation would result in smoother reconstructions. DN-Splatter: Depth and Normal Priors for Gaussian Splatting and Meshing

Poisson Reconstruction ๋น ๋ฅธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Poisson detph

Poisson ์žฌ๊ตฌ์„ฑ์€ ํฌ์ธํŠธ ํด๋ผ์šฐ๋“œ(point cloud) ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๋งค๋„๋Ÿฌ์šด ํ‘œ๋ฉด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ์ธํŠธ ํด๋ผ์šฐ๋“œ์—์„œ ์ถ”์ถœํ•œ normal ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ์˜ ํ‘œ๋ฉด์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

Poisson Depth = Depth of Octree

โ€œpoisson_depthโ€๋Š” ์˜ฅํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ๊นŠ์ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊นŠ์ด๊ฐ€ ๊นŠ์„์ˆ˜๋ก ๊ณต๊ฐ„์„ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋ถ„ํ• ํ•˜์—ฌ ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ๊นŒ์ง€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋†’์€ ๊นŠ์ด: ๋” ์ž‘์€ ์…€๋กœ ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜๋ฏ€๋กœ, ๋” ๋งŽ์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋…ธ์ด์ฆˆ์™€ ์ž‘์€ ๊ฒฐํ•จ๋„ ๋” ๋งŽ์ด ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ฎ์€ ๊นŠ์ด: ๋” ํฐ ์…€๋กœ ๊ณต๊ฐ„์„ ๋ถ„ํ• ํ•˜๋ฏ€๋กœ, ํฐ ๊ตฌ์กฐ๋ฅผ ๋งค๋„๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๋†“์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Octree์˜ ๊นŠ์ด๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋” ๋†’์€ ํ•ด์ƒ๋„์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ indicator function์„ ๋งž์ถœ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์ด ๋” ์„ธ๋ฐ€ํ•œ ๋””ํ…Œ์ผ์„ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Practical Usage of Poisson depth value

  • ๊นŠ์ด ๊ฐ์†Œ: ์˜ฅํŠธ๋ฆฌ ๊นŠ์ด๋ฅผ ์ค„์ด๋ฉด, ํ‘œ๋ฉด์„ ๋œ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋ถ„ํ• ํ•˜๊ฒŒ ๋˜์–ด, ์ž‘์€ ๊ฒฐํ•จ์ด ๋œ ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”์‰ฌ ํ‘œ๋ฉด์— ์ง€์ €๋ถ„ํ•œ ํƒ€์›ํ˜• ๋Œ๊ธฐ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์˜ฅํŠธ๋ฆฌ ๊นŠ์ด๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
    poisson_depth = 7
    

Poisson Surface Reconstruction

๋งŽ์€ ์ด์ „ ์—ฐ๊ตฌ๋“ค์ฒ˜๋Ÿผ, Poisson Surface Reconstruction์€ ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ ๋ฌธ์ œ์— ๋Œ€ํ•ด implicit function ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, [Kaz05]์™€ ๊ฐ™์ด, ์šฐ๋ฆฌ๋Š” 3D indicator function ฯ‡๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค (๋ชจ๋ธ ๋‚ด๋ถ€์˜ ์ ์—์„œ๋Š” 1๋กœ ์ •์˜๋˜๊ณ , ์™ธ๋ถ€์˜ ์ ์—์„œ๋Š” 0์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค). ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ ์ ˆํ•œ isosurface๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์„ ์–ป์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ฃผ์š” ํ†ต์ฐฐ๋ ฅ์€ ๋ชจ๋ธ ํ‘œ๋ฉด์—์„œ ์ƒ˜ํ”Œ๋ง๋œ oriented points์™€ ๋ชจ๋ธ์˜ indicator function ์‚ฌ์ด์— ์ ๋ถ„์  ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, indicator function์˜ gradient๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ 0์ธ ๋ฒกํ„ฐ ํ•„๋“œ์ž…๋‹ˆ๋‹ค(์ด๋Š” indicator function์ด ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ์ƒ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ๋ฉด ๊ทผ์ฒ˜์˜ ์ ์—์„œ๋Š” gradient๊ฐ€ ๋‚ด๋ถ€ ํ‘œ๋ฉด normal๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ oriented point ์ƒ˜ํ”Œ์€ ๋ชจ๋ธ์˜ indicator function gradient์˜ ์ƒ˜ํ”Œ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1 ์ฐธ์กฐ).

  • Poisson Surface Reconstruction: ๋งŽ์€ ์ด์ „ ์—ฐ๊ตฌ๋“ค์ฒ˜๋Ÿผ, Poisson Surface Reconstruction์€ ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ ๋ฌธ์ œ์— ๋Œ€ํ•ด implicit function ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  • 3D Indicator Function ฯ‡:
    • ๋ชจ๋ธ ๋‚ด๋ถ€์˜ ์ ์—์„œ๋Š” 1๋กœ ์ •์˜๋˜๊ณ , ์™ธ๋ถ€์˜ ์ ์—์„œ๋Š” 0์œผ๋กœ ์ •์˜๋˜๋Š” 3D indicator function ฯ‡๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • Isosurface ์ถ”์ถœ:
    • ๊ณ„์‚ฐ๋œ indicator function์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ isosurface๋ฅผ ์ถ”์ถœํ•จ์œผ๋กœ์จ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์š” ํ†ต์ฐฐ๋ ฅ:
    • ๋ชจ๋ธ ํ‘œ๋ฉด์—์„œ ์ƒ˜ํ”Œ๋ง๋œ oriented points์™€ ๋ชจ๋ธ์˜ indicator function ์‚ฌ์ด์—๋Š” ์ ๋ถ„์  ๊ด€๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Gradient์˜ ํŠน์„ฑ:
    • Indicator function์˜ gradient๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ 0์ธ ๋ฒกํ„ฐ ํ•„๋“œ์ž…๋‹ˆ๋‹ค.
    • ์ด๋Š” indicator function์ด ๋ชจ๋ธ ๋‚ด๋ถ€์—์„œ๋Š” 1, ์™ธ๋ถ€์—์„œ๋Š” 0์œผ๋กœ ์ƒ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ ์ ๋“ค์—์„œ์˜ gradient๋Š” 0์ด ๋ฉ๋‹ˆ๋‹ค.
    • ํ‘œ๋ฉด ๊ทผ์ฒ˜์˜ ์ ์—์„œ๋Š” indicator function์ด 0์—์„œ 1๋กœ ๊ธ‰๊ฒฉํžˆ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™”๋Š” ํ‘œ๋ฉด normal ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์–ด๋‚˜๋ฏ€๋กœ, ์ด ์ง€์ ์—์„œ์˜ gradient๋Š” ๋‚ด๋ถ€ ํ‘œ๋ฉด normal๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ํ‘œ๋ฉด ๊ทผ์ฒ˜์˜ ์ ์—์„œ๋Š”:
    • ํ‘œ๋ฉด ๊ทผ์ฒ˜์˜ ์ ์—์„œ indicator function์˜ gradient๊ฐ€ non-zero์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ‘œ๋ฉด์—์„œ์˜ ๋ณ€ํ™”(๊ฒฝ๊ณ„ ์กฐ๊ฑด) ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™”๋Š” ํ‘œ๋ฉด normal ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์–ด๋‚˜๋ฏ€๋กœ, ์ด ์ง€์ ์—์„œ์˜ gradient๋Š” ํ‘œ๋ฉด normal์˜ ๋ฐฉํ–ฅ๊ณผ ํฌ๊ธฐ๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
  • Oriented Point ์ƒ˜ํ”Œ:
    • Oriented point ์ƒ˜ํ”Œ์€ ๋ชจ๋ธ์˜ ํ‘œ๋ฉด์—์„œ ๊ฐ€์ ธ์˜จ ์ ๋“ค๊ณผ ๊ทธ ์ ๋“ค์— ์ˆ˜์ง์ธ normal๋“ค์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
    • ์ด ์ƒ˜ํ”Œ๋“ค์€ ๋ชจ๋ธ์˜ indicator function gradient์˜ ์ƒ˜ํ”Œ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ‘œ๋ฉด ๊ทผ์ฒ˜์˜ gradient๊ฐ€ ํ‘œ๋ฉด normal๊ณผ ์ผ์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ, oriented points๋Š” ํ‘œ๋ฉด์˜ ๊ธฐํ•˜ํ•™์  ํŠน์„ฑ์„ ์ž˜ ๋ฐ˜์˜ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ‘œ๋ฉด์„ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image image

โ€ฆ

image image

4.1. Problem Discretization

๋จผ์ €, ๋ฌธ์ œ๋ฅผ discretizeํ•  ํ•จ์ˆ˜ ๊ณต๊ฐ„์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ regular 3D grid๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ด๋Š” ๊ณ ํ•ด์ƒ๋„ ์„ธ๋ถ€ ์žฌ๊ตฌ์„ฑ์— ๋น„์‹ค์šฉ์ ์ž…๋‹ˆ๋‹ค. ํ•ด์ƒ๋„๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ๊ณต๊ฐ„์˜ ์ฐจ์›์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜์—ฌ ๊ณ„์‚ฐ ๋ณต์žก๋„๊ฐ€ ์ปค์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹คํ–‰ํžˆ๋„, implicit function์˜ ์ •ํ™•ํ•œ ํ‘œํ˜„์€ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด ๊ทผ์ฒ˜์—์„œ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” implicit function์„ ํ‘œํ˜„ํ•˜๊ณ  Poisson ์‹œ์Šคํ…œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด adaptive octree๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™๊ธฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Poisson์—์„œ Octree๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” computational cost๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

  • Problem Discretization:
    • ๋ฌธ์ œ๋ฅผ discretizeํ•  ํ•จ์ˆ˜ ๊ณต๊ฐ„ ์„ ํƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์ ‘๊ทผ ๋ฐฉ์‹:
    • Regular 3D grid๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ๊ท ์ผํ•œ ๊ตฌ์กฐ์˜ ๋ฌธ์ œ์ :
    • ๊ท ์ผํ•œ ๊ตฌ์กฐ๋Š” ๊ณ ํ•ด์ƒ๋„ ์„ธ๋ถ€ ์žฌ๊ตฌ์„ฑ์— ๋น„์‹ค์šฉ์ ์ž…๋‹ˆ๋‹ค.
    • ํ•ด์ƒ๋„์— ๋”ฐ๋ผ ๊ณต๊ฐ„์˜ ์ฐจ์›์ด ์„ธ์ œ๊ณฑ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • surface triangle์˜ ์ˆ˜๋Š” ์ด์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • Implicit Function์˜ ์ •ํ™•ํ•œ ํ‘œํ˜„:
    • Implicit function์˜ ์ •ํ™•ํ•œ ํ‘œํ˜„์€ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด ๊ทผ์ฒ˜์—์„œ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Adaptive Octree ์‚ฌ์šฉ ๋™๊ธฐ:
    • Implicit function์„ ํ‘œํ˜„ํ•˜๊ณ  Poisson ์‹œ์Šคํ…œ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด adaptive octree๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Poisson์—์„œ Octree๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” computational cost๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

image

4.4. Isosurface Extraction

Poisson reconstruction์—์„œ๋Š” implicit function์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ์žฌ๊ตฌ์„ฑํ•˜๊ณ , isosurface extraction์„ ํ†ตํ•ด ์ตœ์ข… ํ‘œ๋ฉด์„ ์–ป์Šต๋‹ˆ๋‹ค. ์ด๋Š” level set ๋ฐฉ๋ฒ•์˜ ๊ฐœ๋…๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, Poisson reconstruction ์ž์ฒด๋Š” ํŠน์ •ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด๊ณ , isosurface extraction์€ ์ด ๋ฐฉ๋ฒ•๋ก ์˜ ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

  1. Implicit Function:
    • Poisson reconstruction์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ implicit function์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ฃผ๋กœ indicator function์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
  2. Indicator Function:
    • Indicator function์€ ๋ชจ๋ธ์˜ ๋‚ด๋ถ€์™€ ์™ธ๋ถ€๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋‚ด๋ถ€์˜ ์ ์—์„œ๋Š” 1๋กœ ์ •์˜๋˜๊ณ , ์™ธ๋ถ€์˜ ์ ์—์„œ๋Š” 0์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
  3. Poisson Reconstruction:
    • Implicit function์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์—์„œ ํ‘œ๋ฉด์„ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณ„์‚ฐ๋œ implicit function์œผ๋กœ๋ถ€ํ„ฐ ์ ์ ˆํ•œ isovalue๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. Isovalue:
    • Isovalue๋Š” isosurface๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ๋˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์ฃผ๋กœ ์ž…๋ ฅ ์ƒ˜ํ”Œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๊น๊ฒŒ ๊ทผ์‚ฌํ•˜๋„๋ก ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  5. Isosurface Extraction:
    • Poisson reconstruction์—์„œ ๊ณ„์‚ฐ๋œ implicit function๊ณผ ์„ ํƒ๋œ isovalue๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ isosurface๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
    • ์ถ”์ถœ๋œ isosurface๋Š” ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  6. Level Set ๋ฐฉ๋ฒ•:
    • Level set ๋ฐฉ๋ฒ•์€ implicit function์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค.
    • Poisson reconstruction์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, isosurface extraction๊ณผ ๊ฐœ๋…์ ์œผ๋กœ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Poisson Reconstruction, Level Set ๋ฐฉ๋ฒ• ๋ฐ Isosurface Extraction์˜ ๊ด€๋ จ์„ฑ

  • Poisson Reconstruction:
    • Implicit function์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํฌ๊ด„์ ์ธ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค.
    • ๊ณ„์‚ฐ๋œ implicit function์œผ๋กœ๋ถ€ํ„ฐ isosurface๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ตœ์ข… ํ‘œ๋ฉด์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • Level Set ๋ฐฉ๋ฒ•:
    • Implicit function์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก  ์ค‘ ํ•˜๋‚˜๋กœ, Poisson reconstruction์˜ ์ผ๋ถ€๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Isosurface extraction๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ implicit function์˜ ํŠน์ • ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ‘œ๋ฉด์„ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.
  • Isosurface Extraction:
    • Poisson reconstruction์˜ ํ•œ ๋‹จ๊ณ„๋กœ, ๊ณ„์‚ฐ๋œ implicit function์—์„œ isosurface๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
    • Level set ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, isosurface extraction์€ implicit function์˜ ํŠน์ • ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ‘œ๋ฉด์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, Poisson reconstruction์—์„œ isosurface extraction๊ณผ level set ๋ฐฉ๋ฒ•์€ ๋™์ผํ•œ ์›๋ฆฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ implicit function์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ๋ฉด์„ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์„ ์–ป๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

image

โ€ฆ

image

5.1. Resolution

์ตœ๋Œ€ octree ๊นŠ์ด๊ฐ€ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ณ ๋ คํ•ด๋ด…์‹œ๋‹ค.

  • Resolution:
    • ์ตœ๋Œ€ octree ๊นŠ์ด๊ฐ€ ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
    • Octree ๊นŠ์ด 6, 8, 10์—์„œ โ€œdragonโ€ ๋ชจ๋ธ์˜ ์žฌ๊ตฌ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
    • ์ •๊ทœ ๊ทธ๋ฆฌ๋“œ์—์„œ ์ด๋Š” ๊ฐ๊ฐ 64ยณ, 256ยณ, 1024ยณ ํ•ด์ƒ๋„์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ํŠธ๋ฆฌ ๊นŠ์ด ์ฆ๊ฐ€์˜ ํšจ๊ณผ:
    • ํŠธ๋ฆฌ ๊นŠ์ด๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋” ๋†’์€ ํ•ด์ƒ๋„์˜ ํ•จ์ˆ˜๊ฐ€ indicator function์„ ๋งž์ถ”๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ๊ทธ ๊ฒฐ๊ณผ, ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์ด ๋” ์„ธ๋ฐ€ํ•œ ๋””ํ…Œ์ผ์„ ํฌ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„ธ๋ฐ€ํ•œ ๋””ํ…Œ์ผ ํฌ์ฐฉ ์˜ˆ์‹œ:
    • ๊ฐ€์žฅ ๋‚ฎ์€ ํ•ด์ƒ๋„์—์„œ๋Š” ํฌ์ฐฉํ•˜๊ธฐ ์–ด๋ ค์šด ์šฉ์˜ ๋น„๋Š˜์ด ํŠธ๋ฆฌ ๊นŠ์ด๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋‚˜ํƒ€๋‚˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    • ๋” ๋†’์€ ํ•ด์ƒ๋„์—์„œ๋Š” ์šฉ์˜ ๋น„๋Š˜์ด ๋” ์„ ๋ช…ํ•˜๊ฒŒ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, octree์˜ ๊นŠ์ด๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ๋” ๋†’์€ ํ•ด์ƒ๋„์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ indicator function์„ ๋งž์ถœ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์ด ๋” ์„ธ๋ฐ€ํ•œ ๋””ํ…Œ์ผ์„ ํฌ์ฐฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image image

Poisson Surface Reconstruction User Guide

3 Poisson

Poisson Surface Reconstruction ๋ฐฉ๋ฒ•์€ 3D ์ ๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋…ธ๋ง ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ถ”๋ก ๋œ ๊ณ ์ฒด์˜ ํ‘œ๋ฉด์„ ์ •ํ™•ํ•˜๊ฒŒ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๋…ธ๋ง ๋ฒกํ„ฐ์™€ ์ž˜ ๋งž๋Š” gradient๋ฅผ ๊ฐ€์ง„ indicator function์„ ๊ณ„์‚ฐํ•จ์œผ๋กœ์จ ํ‘œ๋ฉด์˜ ํ˜•ํƒœ๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค.

Given a set of 3D points with oriented normals (denoted oriented points in the sequel) sampled on the boundary of a 3D solid, the Poisson Surface Reconstruction method [2] solves for an approximate indicator function of the inferred solid, whose gradient best matches the input normals. The output scalar function, represented in an adaptive octree, is then iso-contoured using an adaptive marching cubes.

CGAL implements a variant of this algorithm which solves for a piecewise linear function on a 3D Delaunay triangulation instead of an adaptive octree. The algorithm takes as input a set of 3D oriented points. It builds a 3D Delaunay triangulation from these points and refines it by Delaunay refinement so as to remove all badly shaped (non-isotropic) tetrahedra and to tessellate a loose bounding box of the input oriented points. The normal of each Steiner point added during refinement is set to zero. It then solves for a scalar indicator function $f$ represented as a piecewise linear function over the refined triangulation. More specifically, it solves for the Poisson equation

\[\Delta f = \text{div}(n)\]

at each vertex of the triangulation using a sparse linear solver. Eventually, the CGAL surface mesh generator extracts an isosurface with function value set by default to be the median value of $f$ at all input points.

4 Reconstruction Function

A global function poisson_surface_reconstruction_delaunay() is provided. It takes points with normals as input and handles the whole reconstruction pipeline :

  • it computes the implicit function
  • it reconstructs the surface with a given precision using the CGAL surface mesh generator based on Delaunay refinement [4] [1]
  • it outputs the result in a polygon mesh.

This function aims at providing a quick and user-friendly API for Poisson reconstruction. Advanced users may be interested in using the class (see Reconstruction Class) which allows them, for example, to use another surface mesher or a different output structure.

โ€ฆ

6 Case Studies

The surface reconstruction problem being inherently ill-posed, the proposed algorithm does not pretend to reconstruct all kinds of surfaces with arbitrary sampling conditions. This section provides the user with some hints about the ideal sampling and contouring conditions, and depicts some failure cases when these conditions are not matched.

6.1 Ideal Conditions

The user must keep in mind that the Poisson surface reconstruction algorithm comprises two phases (computing the implicit function from the input point set and contouring an iso-surface of this function). Both require some care in terms of sampling conditions and parameter tuning.

6.2 Point Set

Ideally the current implementation of the Poisson surface reconstruction method expects a dense 3D oriented point set (typically matching the epsilon-sampling condition [1]) and sampled over a closed, smooth surface. Oriented herein means that all 3D points must come with consistently oriented normals to the inferred surface. Figure 63.3 and Figure 63.4 illustrate cases where these ideal conditions are met.

image

Figure 63.3 Poisson reconstruction. Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.

image

Figure 63.4 Left: 120K points sampled on a statue (Minolta laser scanner). Right: reconstructed surface mesh.

The algorithm is fairly robust to anisotropic sampling and to noise. It is also robust to missing data through filling the corresponding holes as the algorithm is designed to reconstruct the indicator function of an inferred solid (see Figure 63.5).

image

Figure 63.5 Top left: 65K points sampled on a hand (Kreon laser scanner). Bottom left: the point set is highly anisotropic due to the scanning technology. Right: reconstructed surface mesh and closeup. The holes are properly closed.

The algorithm is in general not robust to outliers, although a few outliers do not always create a failure, see Figure 63.6.

image

Figure 63.6 Left: 70K points sampled on an elephant with few outliers emphasized with disks. Right: reconstructed surface mesh.

The algorithm works well even when the inferred surface is composed of several connected components, provided that both all normals are properly estimated and oriented (the current CGAL normal orienter algorithm may fail in some cases, see mst_orient_normals()), and that the final contouring algorithm is properly seeded for each component. When the inferred surface is composed of several nested connected components care should be taken to orient the normals of each component in alternation (inward/outward) so that the final contouring stage picks a proper contouring value.

6.3 Contouring Parameters

Our implementation of the Poisson surface reconstruction algorithm computes an implicit function represented as a piecewise linear function over the tetrahedra of a 3D Delaunay triangulation constructed from the input points then refined through Delaunay refinement. For this reason, any iso-surface is also piecewise linear and hence may contain sharp creases. As the contouring algorithm make_surface_mesh() expects a smooth implicit function these sharp creases may create spurious clusters of vertices in the final reconstructed surface mesh when setting a small mesh sizing or surface approximation error parameter (see Figure 63.7).

One way to avoid these spurious clusters consists of adjusting the mesh sizing and surface approximation parameters large enough compared to the average sampling density (obtained through compute_average_spacing()) so that the contouring algorithm perceives a smooth iso-surface. We recommend to use the following contouring parameters:

  • Max triangle radius: at least 100 times the average spacing.
  • Approximation distance: at least 0.25 times the average spacing.

6.3 ํ•œ๊ตญ์–ด ํ•ด์„

Poisson ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ‘œ๋ฉด์˜ ๋ถ€๋“œ๋Ÿฌ์›€์„ ์œ ์ง€ํ•˜๊ณ  ๋ฉ”์‰ฌ์˜ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Implicit Function์˜ ํŠน์„ฑ: Poisson ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 3D Delaunay triangulation์˜ tetrahedra ์œ„์— piecewise linear function์œผ๋กœ ํ‘œํ˜„๋œ implicit function์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋ชจ๋“  iso-surface๋Š” piecewise linear์ด๋ฉฐ, ๋”ฐ๋ผ์„œ ๋‚ ์นด๋กœ์šด ์ฃผ๋ฆ„์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ‘œ๋ฉด์ด ๋งค๋„๋Ÿฝ์ง€ ์•Š๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋Œ€: Contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ make_surface_mesh()๋Š” ๋ถ€๋“œ๋Ÿฌ์šด implicit function์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž…๋ ฅ๋œ iso-surface๊ฐ€ ๋‚ ์นด๋กœ์šด ์ฃผ๋ฆ„์„ ํฌํ•จํ•˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด๋ฅผ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•ด ์ตœ์ข… ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด ๋ฉ”์‰ฌ์— spuriousํ•œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ์ž‘์€ mesh ํฌ๊ธฐ ๋˜๋Š” ํ‘œ๋ฉด ๊ทผ์‚ฌ ์˜ค๋ฅ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •์˜ ์ค‘์š”์„ฑ: ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ ์ ˆํžˆ ์„ค์ •ํ•˜๋ฉด contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ถ€๋“œ๋Ÿฌ์šด iso-surface๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด, ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ถ€๋“œ๋Ÿฌ์šด ํ‘œ๋ฉด๊ณผ ๋†’์€ ํ’ˆ์งˆ์˜ mesh๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Max triangle radius์™€ Approximation distance๋ฅผ ํ‰๊ท  ์ƒ˜ํ”Œ๋ง ๋ฐ€๋„์— ๋น„ํ•ด ์ถฉ๋ถ„ํžˆ ํฌ๊ฒŒ ์„ค์ •ํ•จ์œผ๋กœ์จ, contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ถ€๋“œ๋Ÿฌ์šด iso-surface๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

Figure 63.7 Left: surface reconstructed with approximation distance = 0.25 * average spacing. Right: surface reconstructed with approximation distance = 0.15 * average spacing. Notice the spurious cluster on the cheek.

6.4 Degraded Conditions

The conditions listed above are rather restrictive and in practice not all of them are met in the applications. We now illustrates the behavior of the algorithm when the conditions are not met in terms of sampling, wrongly oriented normals, noise and sharp creases.

6.5 Sparse Sampling

The reconstruction algorithm expects a sufficiently dense point set. Although there is no formal proof of correctness of the algorithm under certain density conditions due to its variational nature, our experiments show that the algorithm reconstructs well all thin features when the local spacing is at most one tenth of the local feature size (the distance to the medial axis, which captures altogether curvature, thickness and separation). When this condition is not met the reconstruction does not reconstruct the thin undersampled features (see Figure 63.8).

image

Figure 63.8 Left: 50K points sampled on the Neptune trident. The reconstruction (not shown) is successful in this case. Right: point set simplified to 1K points then reconstructed (all input points are depicted with normals). The thin feature is not reconstructed.

6.6 Large Holes

The reconstruction is devised to solve for an implicit function which is an approximate indicator function of an inferred solid. For this reason the contouring algorithm always extracts a closed surface mesh and hence is able to fill the small holes where data are missing due, e.g., to occlusions during acquisition (see Figure 63.9).

6.6 ํ•œ๊ตญ์–ด ํ•ด์„

Poisson reconstruction์€ ์ถ”๋ก ๋œ solid์˜ ๊ทผ์‚ฌ indicator function์ธ implicit function์„ ํ’€๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ, contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•ญ์ƒ closed surface mesh๋ฅผ ์ถ”์ถœํ•˜์—ฌ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ ์ทจ๋“ ์ค‘ occlusions๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ์ž‘์€ ๊ตฌ๋ฉ์„ ๋ฉ”์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆผ 63.9 ์ฐธ์กฐ).

  • Implicit function ๊ณ„์‚ฐ: Poisson reconstruction์€ ์ถ”๋ก ๋œ solid์˜ ๊ทผ์‚ฌ indicator function์ธ implicit function์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์ด ๊ณ ์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ์ž˜ ๋ฐ˜์˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • Closed surface mesh ์ถ”์ถœ: Contouring ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•ญ์ƒ closed surface mesh๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. Closed surface mesh๋ž€ ๋ชจ๋“  ๊ตฌ๋ฉ์ด ๋ฉ”์›Œ์ง„ ์™„์ „ํ•œ ํ‘œ๋ฉด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์€ ๊ตฌ๋ฉ ๋ฉ”์šฐ๊ธฐ: Closed surface mesh๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ์จ, ๋ฐ์ดํ„ฐ ์ทจ๋“ ์ค‘ ๋ฐœ์ƒํ•œ ์ž‘์€ ๊ตฌ๋ฉ์„ ๋ฉ”์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ ์ทจ๋“ ์‹œ occlusions๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ˆ„๋ฝ๋œ ๋ถ€๋ถ„์„ ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, Poisson reconstruction ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ์ดํ„ฐ ์ทจ๋“ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐํ•จ์„ ๋ณด์™„ํ•˜์—ฌ ๋ณด๋‹ค ์™„์ „ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ๋ฉด ์žฌ๊ตฌ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

image

Figure 63.9 Left: 65K points sampled on a hand with no data captured at the wrist base. Right: reconstructed surface mesh. The surface is properly closed on the fingers and also closed at the wrist but in a less plausible manner.

In case of large holes the algorithm still closes them all but the resulting piecewise linear implicit function may exhibit large triangle patches and sharp creases as the 3D Delaunay triangulation used for solving is very coarse where the holes are filled. This can be avoided by a two pass approach. The first pass for a subset of the points serves to get an approximation of the surface at the holes. This surface then serves to compute a smoother 3D Delaunay triangulation for the second pass with the full set of points.

image

Figure 63.10 Left: The wrist. Middle: one pass. Right: two passes.

6.7 Wrongly Oriented Normals

The Poisson surface reconstruction approaches solves for an implicit function whose gradient best matches a set of input normals. Because it solves this problem in the least squares sense, it is robust to few isolated wrongly oriented (flipped) normals. Nevertheless a cluster of wrongly oriented normals leads to an incorrect implicit function and hence to spurious geometric or even topological distortion (see Figure 63.11).

6.7 ํ•œ๊ตญ์–ด ํ•ด์„

Poisson surface reconstruction ๋ฐฉ๋ฒ•์€ ์ž…๋ ฅ๋œ normal ์„ธํŠธ์™€ ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” gradient๋ฅผ ๊ฐ€์ง€๋Š” implicit function์„ ํ’‰๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ตœ์†Œ ์ œ๊ณฑ ๋ฐฉ์‹์œผ๋กœ ํ’€๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ถ€ ๊ณ ๋ฆฝ๋œ ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ(๋’ค์ง‘ํžŒ) normals์— ๋Œ€ํ•ด์„œ๋Š” ๊ฒฌ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์˜ normals๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์กด์žฌํ•  ๊ฒฝ์šฐ, ์ž˜๋ชป๋œ implicit function์ด ์ƒ์„ฑ๋˜์–ด ๊ธฐํ•˜ํ•™์  ์™œ๊ณก์ด๋‚˜ ์‹ฌ์ง€์–ด ์œ„์ƒ์  ์™œ๊ณก์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆผ 63.11 ์ฐธ์กฐ).

  • Implicit function ๊ณ„์‚ฐ: Poisson surface reconstruction ๋ฐฉ๋ฒ•์€ a set of input normals๊ณผ ๊ฐ€์žฅ ์ž˜ ์ผ์น˜ํ•˜๋Š” gradient๋ฅผ ๊ฐ€์ง€๋Š” implicit function์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ‘œ๋ฉด์˜ ๋ชจ์–‘์„ ์ž˜ ๋ฐ˜์˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ์ œ๊ณฑ ๋ฐฉ์‹์˜ ์žฅ์ : ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์†Œ ์ œ๊ณฑ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ถ€ ๊ณ ๋ฆฝ๋œ ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์˜ normals์— ๋Œ€ํ•ด์„œ๋Š” ๊ฒฌ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ช‡ ๊ฐœ์˜ ์ž˜๋ชป๋œ normals๊ฐ€ ์žˆ์–ด๋„ ์ „์ฒด ๊ฒฐ๊ณผ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์กด์žฌํ•˜๋Š” ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์˜ normals์˜ ๋ฌธ์ œ์ : ๊ทธ๋Ÿฌ๋‚˜ ์ž˜๋ชป๋œ ๋ฐฉํ–ฅ์˜ normals๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ์กด์žฌํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ž˜๋ชป๋œ implicit function์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜์–ด, ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐํ•˜ํ•™์  ์™œ๊ณก์ด๋‚˜ ์œ„์ƒ์  ์™œ๊ณก์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์žฌ๊ตฌ์„ฑ๋œ ํ‘œ๋ฉด์ด ์‹ค์ œ ํ‘œ๋ฉด๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, Poisson surface reconstruction ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ผ๋ถ€ ๊ณ ๋ฆฝ๋œ ์ž˜๋ชป๋œ normals์— ๋Œ€ํ•ด ๊ฒฌ๊ณ ํ•˜์ง€๋งŒ, ํด๋Ÿฌ์Šคํ„ฐ ํ˜•ํƒœ์˜ ์ž˜๋ชป๋œ normals์— ๋Œ€ํ•ด์„œ๋Š” ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.

image

Figure 63.11 Left: points sampled on a sphere with a cluster of wrongly oriented normals. Right: reconstructed surface mesh with a spurious bump.

6.8 Noise and Outliers

A large amount of noise inevitably impacts on the reconstruction (see Figure 63.12, top) and the current implementation does not provide any mean to trade data fitting for smoothness. Nevertheless if the signal-to-noise ratio is sufficiently high and/or the surface approximation and sizing parameters set for contouring the iso-surface is large with respect to the noise level the output surface mesh will appear smooth (not shown). If the user wants to produce a smooth and detailed output surface mesh, we recommend to apply smoothing through jet_smooth_point_set() (see Figure 63.12, bottom).

image

Figure 63.12 Top-left: points sampled on a sphere and corrupted with a lot of noise. Top-right: reconstructed surface mesh. Bottom-left: smoothed point set. Bottom-right: reconstructed surface mesh.

6.9 Sharp Creases

The current reconstruction algorithm is not able to recover the sharp creases and corners present in the inferred surface. This translates into smoothed sharp creases.

6.9 ํ•œ๊ตญ์–ด ํ•ด์„

ํ˜„์žฌ์˜ Poisson Reconsrcution ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ถ”๋ก ๋œ ํ‘œ๋ฉด์— ์กด์žฌํ•˜๋Š” sharp creases(์ฃผ๋ฆ„)์™€ corners(๋ชจ์„œ๋ฆฌ)๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋งค๋„๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋œ sharp creases(์ฃผ๋ฆ„)๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • Sharp creases(์ฃผ๋ฆ„)์™€ corners(๋ชจ์„œ๋ฆฌ)์˜ ๋ณต์› ๋ถˆ๊ฐ€๋Šฅ: ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์žฌ๊ตฌ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ถ”๋ก ๋œ ํ‘œ๋ฉด์— ์กด์žฌํ•˜๋Š” sharp creases(์ฃผ๋ฆ„)์™€ corners(๋ชจ์„œ๋ฆฌ)๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ณต์›ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‚ ์นด๋กœ์šด ๋ชจ์„œ๋ฆฌ๋‚˜ ์ฃผ๋ฆ„์„ ์ธ์‹ํ•˜๊ณ  ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  • ๋งค๋„๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋œ sharp creases(์ฃผ๋ฆ„): ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋กœ ์ธํ•ด, sharp creases(์ฃผ๋ฆ„)๋Š” ๋งค๋„๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด ๋‚ ์นด๋กœ์šด ๋ชจ์–‘์ด ์‚ฌ๋ผ์ง€๊ณ  ๋‘ฅ๊ทผ ํ˜•ํƒœ๋กœ ๋ณ€ํ˜•๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณต์›๋œ ํ‘œ๋ฉด์ด ์›๋ž˜์˜ ๋‚ ์นด๋กœ์šด ํŠน์ง•์„ ์žƒ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๋ก ์ ์œผ๋กœ, ํ˜„์žฌ์˜ Poisson reconstruction ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‚ ์นด๋กœ์šด ์ฃผ๋ฆ„๊ณผ ๋ชจ์„œ๋ฆฌ๋ฅผ ์ •ํ™•ํžˆ ๋ณต์›ํ•˜์ง€ ๋ชปํ•ด, ๊ฒฐ๊ณผ ํ‘œ๋ฉด์ด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

image

Figure 63.13 Left: 5K points sampled on a mechanical piece with sharp features (creases, darts and corners). Right: reconstructed surface mesh with smoothed creases.

Reference

Leave a comment