CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (1/36) CGLAB ์ด๋ช…๊ทœ
2019/06/28
์‹ ๊ฒฝ๋ง ๊ธฐ๋ฐ˜ 3D ๋ฉ”์‰ฌ ๋ Œ๋”๋Ÿฌ
Neural 3D Mesh Renderer
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (2/36)
I N D E X
01
02
03
04
05
Introduction
Rasterization
Proposed Method
Experiments
Conclusion
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (3/36)
Introduction
Part 01
1. ๋…ผ๋ฌธ์†Œ๊ฐœ
2. ๊ด€๋ จ ์—ฐ๊ตฌ ์š”์•ฝ
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (4/36)
โ†ณ
๋…ผ๋ฌธ์†Œ๊ฐœ1-1
โ€ข ๋ฐœํ‘œ : Computer Vision and Pattern Recognition 2018
โ€ข ์ €์ž : Hiroharu Kato et al. (University of Tokyo)
โ€ข ์ธ์šฉํšŸ์ˆ˜ : 77ํšŒ
โ€ข ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๊ณผ์ • ๋•Œ๋ฌธ์— 2D->3D๋กœ์˜ ๋ฏธ๋ถ„์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋˜
๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์„ธ ๊ฐœ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ์ฆ๋ช…ํ•˜๋Š” ์—ฐ๊ตฌ
์ €๋„์ •๋ณด ๋ฐ ๋…ผ๋ฌธ์†Œ๊ฐœ
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (5/36)
โ†ณ
๊ด€๋ จ ์—ฐ๊ตฌ ์š”์•ฝ1-2
โ€ข Rasterized form์—์„œ์˜ ์—ฐ๊ตฌ๋™ํ–ฅ โ€“ CNN ์—ฐ์‚ฐ์ด ์šฉ์ด
โ€ข Voxel data๋Š” 3D CNN์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•ด classification,
3D reconstruction & Generation์— ์‚ฌ์šฉ๋จ.
โ€ข Multi-view RGB(D)์ด๋ฏธ์ง€๋“ค์€ recognition, view synthesis ์—ฐ๊ตฌ๋“ค์— ์‚ฌ์šฉ๋จ.
โ€ข Geometric form์—์„œ์˜ ์—ฐ๊ตฌ๋™ํ–ฅ โ€“ CNN์ ์šฉ์ด ์–ด๋ ค์›Œ FE*ํ•„์š”
โ€ข 3D mesh reconstruction์„ ์œ„ํ•ด OpenGL renderer๋ฅผ NN์— ํ†ตํ•ฉํ•œ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Œ.
โ€ข Recognition, segmentation๋ฟ๋งŒ ์•„๋‹ˆ๋ผ generation ๋ชจ๋‘ ์–ด๋ ค์›Œ ์ œํ•œ์ .
Related Works
Rasterized form Geometric form
- Voxels
- Multi-view RGB(D) Images
- Proint Clouds
- Polygon Mesh
- Sets of Primitives
CNN ์—ฐ์‚ฐ ์‰ฌ์›€ CNN ์–ด๋ ค์›€
*FE : Feature Engineering
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (6/36)
โ€ข (์ขŒ) Differentiable Monte Carlo Ray Tracing through Edge Sampling
โ€ข (์šฐ) Multiphase Level-Set Loss for Semi-Supervised and Unsupervised
Segmentation with Deep Learning
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (7/36)
Multiphase Level-Set Loss for Semi-Supervised and Unsupervised Segmentation with Deep Learning
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (8/36) โ€ข Differentiable Monte Carlo Ray Tracing through Edge Sampling
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (9/36)
Rasterization
Part 02
1. Graphics Pipeline
2. Rasterization
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (10/36)
โ†ณ
Graphics Pipeline2-1
Graphics Rendering Pipeline
Vertex Shader
(Homogeneous Coord)
์›๊ทผ ๋‚˜๋ˆ—์…ˆ
(Homoโ†’Cartesian
Space)
Clipping
(Normalized
Device Space)
Viewpoint
Transform
(NDCโ†’viewport space)
Culling
(Viewport space)
Pixel Shader
(Screen Coord)
Fragment
Rasterization
(Viewportโ†’Screen space)
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (11/36)
โ†ณ
Rasterization2-2
โ€ข Find Intersections, DDA Algorithm, Bresenham Algorithm
Rasterization of Line Segment (in screen space)
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (12/36)
โ†ณ
Rasterization2-2
Rasterization of Triangle (in screen space)
โ€ข ๐’š๐’š โˆ’ ๐’š๐’š๐Ÿ๐Ÿ =
๐’š๐’š๐Ÿ๐Ÿโˆ’๐’š๐’š๐Ÿ๐Ÿ ๐’™๐’™โˆ’๐’™๐’™๐Ÿ๐Ÿ
๐’™๐’™๐Ÿ๐Ÿโˆ’๐’™๐’™๐Ÿ๐Ÿ
โ€ข (๐’š๐’š โˆ’ ๐’š๐’š๐Ÿ๐Ÿ)(๐’™๐’™๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ) = (๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’š๐’š๐Ÿ๐Ÿ)(๐’™๐’™ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ)
โ€ข ๐’‡๐’‡ ๐’™๐’™, ๐’š๐’š = ๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’š๐’š๐Ÿ๐Ÿ ๐’™๐’™ + ๐’™๐’™๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š + ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š๐Ÿ๐Ÿ = ๐ŸŽ๐ŸŽ
๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ = 4 ร— 5 + 8 ร—0=20>0
๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ < 0
๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ > 0
๐’‡๐’‡ ๐’™๐’™, ๐’š๐’š = ๐Ÿ’๐Ÿ’๐Ÿ’๐Ÿ’ + ๐Ÿ–๐Ÿ–๐Ÿ–๐Ÿ– = ๐ŸŽ๐ŸŽ
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (13/36)
โ†ณ
Rasterization2-2
Rasterization of Triangle (in screen space)
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (14/36)
Proposed Method
Part 03
1. Rendering pipeline
and its derivative
2. Proposed method
3. Texture and Light
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (15/36)
โ†ณ
Rendering pipeline and its derivative3-1
Why using Polygon Mesh?
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (16/36)
โ†ณ
Rendering pipeline and its derivative3-1
Why Rasterization is NOT Differnentiable?
If object has ๐‘๐‘๐‘ฃ๐‘ฃ ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ and ๐‘๐‘๐‘“๐‘“ ๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“,
โ€ข ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ = ๐‘ฃ๐‘ฃ1
๐‘œ๐‘œ
, ๐‘ฃ๐‘ฃ2
๐‘œ๐‘œ
, โ€ฆ , ๐‘ฃ๐‘ฃ๐‘๐‘๐‘ฃ๐‘ฃ
๐‘œ๐‘œ
(๐‘ฃ๐‘ฃ๐‘–๐‘–
๐‘œ๐‘œ
โˆˆ โ„3
)
โ€ข ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“ = {๐‘“๐‘“1, ๐‘“๐‘“2, โ€ฆ , ๐‘“๐‘“๐‘๐‘๐‘“๐‘“
}.
๐‘ฃ๐‘ฃ๐‘–๐‘–
๐‘œ๐‘œ
๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  โ†’ {๐‘ฃ๐‘ฃ๐‘–๐‘–
๐‘ ๐‘ 
} โˆˆ โ„
2
(๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ) : Differentiable.
๐‘ฃ๐‘ฃ๐‘–๐‘–
๐‘ ๐‘ 
๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž ๐‘“๐‘“๐‘—๐‘— ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘ ๐‘  โ†’ ๐ผ๐ผ ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ : Not Differentiable.
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (17/36)
โ†ณ Rasterization of single face
(In Grayscale)
Figure 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face
- ๐’—๐’—๐’Š๐’Š = {๐’™๐’™๐’Š๐’Š, ๐’š๐’š๐’Š๐’Š} : one vertex of the face
- ๐‘ฐ๐‘ฐ๐’‹๐’‹ : color of pixel ๐‘ƒ๐‘ƒ๐‘—๐‘—.
- Where an edge of the face collides with the corner
of ๐‘ƒ๐‘ƒ๐‘—๐‘— when xi moves to the right.
- ๐‘ฐ๐‘ฐ๐’‹๐’‹ Becomes ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š when ๐’™๐’™๐’Š๐’Š = ๐’™๐’™๐Ÿ๐Ÿ.
Figure 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face
- Ij changes when ๐‘ฅ๐‘ฅ๐‘–๐‘– moves to the right or left.
Figure 1
Figure 2
Proposed Method3-2
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (18/36)
โ†ณ 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face
Proposed Method3-2
โ€ข
๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹(๐’™๐’™๐’Š๐’Š)
๐๐๐’™๐’™๐’Š๐’Š
=
๐‘ท๐‘ท๐’‹๐’‹
๐๐๐’™๐’™๐’Š๐’Š
= ๐ŸŽ๐ŸŽ ๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž ๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’
โ€ข ๋”ฐ๋ผ์„œ ๐‘ฐ๐‘ฐ๐’‹๐’‹ ๐’™๐’™๐ŸŽ๐ŸŽ โ†’ ๐œน๐œน๐’‹๐’‹
๐‘ฐ๐‘ฐ
๋กœ ๋ฐ”๊พธ์–ด ์ƒ๊ฐ.
โ€ข ์ฆ‰ ๐’™๐’™๐ŸŽ๐ŸŽ๊ณผ ๐’™๐’™๐Ÿ๐Ÿ์— ์„ ํ˜•๋ณด๊ฐ„ ์ ์šฉํ•ด ์„ ํ˜•์„ฑ ๋ถ€์—ฌ
(๐’™๐’™๐ŸŽ๐ŸŽ: Current position)
โ€ข ๊ทธ๋ ‡๋‹ค๋ฉด
๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹
๐๐๐’™๐’™๐’Š๐’Š
๋Š” ๐’™๐’™๐ŸŽ๐ŸŽ๊ณผ ๐’™๐’™๐Ÿ๐Ÿ์‚ฌ์ด์˜
๐œน๐œน๐’‹๐’‹
๐‘ฐ๐‘ฐ
๐œน๐œน๐’Š๐’Š
๐’™๐’™(๋ณ€ํ™”๋Ÿ‰)๋กœ
์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (19/36)
โ†ณ 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face: ๐’™๐’™๐’Š๐’Š = ๐’™๐’™๐ŸŽ๐ŸŽ
Proposed Method3-2
๏ฟฝ
๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹(๐’™๐’™๐’Š๐’Š)
๐๐๐’™๐’™๐’Š๐’Š ๐’™๐’™๐’Š๐’Š=๐’™๐’™๐ŸŽ๐ŸŽ
=
๐›ฟ๐›ฟ๐‘—๐‘—
๐ผ๐ผ
๐›ฟ๐›ฟ๐‘–๐‘–
๐‘ฅ๐‘ฅ ; ๐›ฟ๐›ฟ๐‘—๐‘—
๐‘ƒ๐‘ƒ
๐›ฟ๐›ฟ๐‘—๐‘—
๐ผ๐ผ
< 0
0; ๐›ฟ๐›ฟ๐‘—๐‘—
๐‘ƒ๐‘ƒ
๐›ฟ๐›ฟ๐‘—๐‘—
๐ผ๐ผ
โ‰ฅ 0
Error signal
(โ‰… ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ)
๋ฒ„ํ…์Šค์˜ ํฌ์ง€์…˜ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ
pixel color์˜ ๋ณ€ํ™”๋Ÿ‰
โ€ข ๐œน๐œน๐’‹๐’‹
๐‘ท๐‘ท
์˜ ๋ถ€ํ˜ธ๋Š” ๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท ๐‘ท๐‘ท๐’‹๐’‹๊ฐ€ ๋ฐ์•„์ ธ์•ผ ํ•˜๋Š”์ง€ ์–ด๋‘์›Œ์ ธ์•ผ ํ•˜๋Š”์ง€์˜ ์ฒ™๋„๊ฐ€ ๋จ.
Loss๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๐œน๐œน๐’‹๐’‹
๐‘ท๐‘ท
>0์ด๋ฉด ๐‘ท๐‘ท๐’‹๐’‹๋Š” ๋” ์–ด๋‘์›Œ์ ธ์•ผ ํ•จ.
โ€ข ๐œน๐œน๐’‹๐’‹
๐‘ฐ๐‘ฐ
์˜ ๋ถ€ํ˜ธ๋Š” ๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท ๐‘ท๐‘ท๐’‹๐’‹๊ฐ€ ๋” ๋ฐ๊ฑฐ๋‚˜ ์–ด๋‘์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„.
๐œน๐œน๐’‹๐’‹
๐‘ฐ๐‘ฐ
>0์ธ ๊ฒฝ์šฐ ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’™๐’™๐’Š๐’Š๋ฅผ ๋‹น๊ธฐ๋ฉด ๐‘ท๐‘ท๐’‹๐’‹๋Š” ๋ฐ์•„์ง€๊ธฐ๋งŒ ํ•จ.
๐œน๐œน๐’‹๐’‹
๐‘ท๐‘ท
, ๐œน๐œน๐’‹๐’‹
๐‘ฐ๐‘ฐ
>0์ผ๋•Œ๋Š” Gradient๊ฐ€
ํ๋ฅด์ง€ ์•Š๋Š”๋‹ค.
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (20/36)
โ†ณ How to fill triangle with color? โ€“ Bilinear Interpolation
Proposed Method3-2
๐‘…๐‘…๐‘…๐‘…: ๐‘†๐‘†๐‘†๐‘† = ๐‘Ž๐‘Ž๐‘Ž: ๐‘Ž๐‘Ž๐‘Ž
๐‘บ๐‘บ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘Ž๐‘Ž๐‘Ž
๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž
๐‘ƒ๐‘ƒ +
๐‘Ž๐‘Ž2
๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž
๐‘…๐‘…
๐‘ป๐‘ป๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘„๐‘„ +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘…๐‘…
๐‘ฝ๐‘ฝ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘‡๐‘‡ +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘†๐‘†
๐‘ฝ๐‘ฝ๐’ƒ๐’ƒ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘†๐‘† +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘‡๐‘‡
= ๐›ผ๐›ผ๐‘ƒ๐‘ƒ + ๐›ฝ๐›ฝ๐‘„๐‘„ + ๐›พ๐›พ๐‘…๐‘…
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (21/36)
โ†ณ 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face
Proposed Method3-2
Notations:
โ€ข ๐›ฟ๐›ฟ๐‘—๐‘—
๐ผ๐ผ ๐‘Ž๐‘Ž
= ๐ผ๐ผ ๐‘ฅ๐‘ฅ1
๐‘Ž๐‘Ž
โˆ’ ๐ผ๐ผ ๐‘ฅ๐‘ฅ0
โ€ข ๐›ฟ๐›ฟ๐‘—๐‘—
๐ผ๐ผ ๐‘๐‘
= ๐ผ๐ผ ๐‘ฅ๐‘ฅ1
๐‘๐‘
โˆ’ ๐ผ๐ผ ๐‘ฅ๐‘ฅ0
โ€ข ๐›ฟ๐›ฟ๐‘ฅ๐‘ฅ
๐‘Ž๐‘Ž
= ๐‘ฅ๐‘ฅ1
๐‘Ž๐‘Ž
โˆ’ ๐‘ฅ๐‘ฅ0
โ€ข ๐›ฟ๐›ฟ๐‘ฅ๐‘ฅ
๐‘๐‘
= ๐‘ฅ๐‘ฅ1
๐‘๐‘
โˆ’ ๐‘ฅ๐‘ฅ0
Delta of
pixel color
Delta of
๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’™๐’™๐ŸŽ๐ŸŽ to ๐’™๐’™๐Ÿ๐Ÿ.
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (22/36)
โ†ณ 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face - ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ ๐’‡๐’‡
Proposed Method3-2
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (23/36)
โ†ณ
Rasterization of multiple face
Proposed Method3-2
1. Face๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ๊ฐ ํ”ฝ์…€์—์„œ ์ œ์ผ ์•ž์— ์žˆ๋Š” face๋งŒ ๊ทธ๋ฆผ.
(ํ‘œ์ค€ ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๋ฐฉ๋ฒ•๊ณผ ๋™์ผ)
2. Backward pass(Backpropagation ๋“ฑ)๋ฅผ ์ง€๋‚˜๋Š” ๋™์•ˆ ๊ต์ฐจ์ 
๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š, ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š
๐’‚๐’‚
, ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š
๐’ƒ๐’ƒ
์ด ๊ทธ๋ ค์ง€๋Š”์ง€ ํ™•์ธ
3. ๐’—๐’—๐’Š๐’Š ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” surfaces๋กœ ๊ฐ€๋ ค์ง€๋ฉด ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ํ๋ฅด์ง€ ์•Š์Œ.
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (24/36)
โ†ณ
Texture and Light3-3
โ€ข Each face has its own texture image of size ๐’”๐’”๐’•๐’• ร— ๐’”๐’”๐’•๐’• ร— ๐’”๐’”๐’•๐’•.
โ€ข Centroid ์ขŒํ‘œ๊ณ„๋ฅผ ํ†ตํ•ด ๐’‘๐’‘ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ํ…์Šค์ณ ๊ณต๊ฐ„์—์„œ์˜ ์ขŒํ‘œ ๊ฒฐ์ •
โ€ข ๐’‘๐’‘๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ = ๐’˜๐’˜๐Ÿ๐Ÿ ๐’—๐’—๐Ÿ๐Ÿ + ๐’˜๐’˜๐Ÿ๐Ÿ ๐’—๐’—๐Ÿ๐Ÿ + ๐’˜๐’˜๐Ÿ‘๐Ÿ‘ ๐’—๐’—๐Ÿ‘๐Ÿ‘
โ€ข (๐’˜๐’˜๐Ÿ๐Ÿ, ๐’˜๐’˜๐Ÿ๐Ÿ, ๐’˜๐’˜๐Ÿ‘๐Ÿ‘) is the corresponding coordinate in texture space.
Texture
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (25/36)
โ†ณ
Texture and Light3-3
โ€ข Result of bilinear interpolation is same as cross product.
Texture โ€“ Bilinear Interpolation(review)
๐‘…๐‘…๐‘…๐‘…: ๐‘†๐‘†๐‘†๐‘† = ๐‘Ž๐‘Ž๐‘Ž: ๐‘Ž๐‘Ž๐‘Ž
๐‘บ๐‘บ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘Ž๐‘Ž๐‘Ž
๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž
๐‘ƒ๐‘ƒ +
๐‘Ž๐‘Ž2
๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž
๐‘…๐‘…
๐‘ป๐‘ป๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘„๐‘„ +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘…๐‘…
๐‘ฝ๐‘ฝ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘‡๐‘‡ +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘†๐‘†
๐‘ฝ๐‘ฝ๐’ƒ๐’ƒ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ =
๐‘๐‘1
๐‘๐‘1 + ๐‘๐‘2
๐‘†๐‘† +
๐‘๐‘2
๐‘๐‘1 + ๐‘๐‘2
๐‘‡๐‘‡
= ๐›ผ๐›ผ๐‘ƒ๐‘ƒ + ๐›ฝ๐›ฝ๐‘„๐‘„ + ๐›พ๐›พ๐‘…๐‘…
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (26/36)
โ†ณ
Texture and Light3-3
โ€ข Use Simple ๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’… ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’ and ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’.
โ€ข ๐‘ฐ๐‘ฐ๐’‹๐’‹
๐’๐’
= ๐’๐’๐’‚๐’‚ + ๐’๐’๐’…๐’…
๏ฟฝ ๐’๐’๐’‹๐’‹ ๐’๐’๐’…๐’…
๐‘ฐ๐‘ฐ๐’‹๐’‹
Lighting
- ๐‘ฐ๐‘ฐ๐’‹๐’‹
๐’๐’
: ๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด ๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„ ๐’๐’๐’๐’ ๐’‚๐’‚ ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘
- ๐’๐’๐’‚๐’‚, ๐’๐’๐’…๐’…
: Intensity of ambient and directional light
- ๐’๐’๐’…๐’… โˆถ ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’๐’๐’๐’ ๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’… ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’
- ๐’๐’๐’‹๐’‹ โˆถ ๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’๐’๐’๐’ ๐’‚๐’‚ ๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (27/36)
โ†ณ
Texture and Light3-3
โ€ข Rasterization ์ค‘ Sampling์œผ๋กœ ์ธํ•œ
gradient flow ๋Š๊น€์ด ํ•ต์‹ฌ ๋ฌธ์ œ
โ€ข ์„ ํ˜• ๊ฒฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ Texture, Light๋Š”
Gradient flow์— ํฐ ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.
Conclusion of part 3
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (28/36)
Experiments
Part 04
1. Applications
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (29/36)
โ†ณ
Applicaitions4-1
1. 3D Reconstruction
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (30/36)
โ†ณ
Applicaitions4-1
Evaluation of 3D Reconstruction
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (31/36)
โ†ณ
Applicaitions4-1
2. 2D-to-3D Style Transfer
โ€ข Transfer 2D style-
loss to 3D Mesh
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (32/36)
โ†ณ
Applicaitions4-1
3. DeepDream of 3D Mesh
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (33/36)
Conclusion
Part 05
1. Conclusion
2. Limitations
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (34/36)
โ†ณ
Conclusion5-2
โ€ข 3D Mesh๊นŒ์ง€ Gradient๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ approximated gradient
๊ธฐ๋ฒ•์„ ์ œ์•ˆํ•จ์œผ๋กœ์„œ Rendering๊ณผ ์‹ ๊ฒฝ๋ง์„ ํ†ตํ•ฉ
โ€ข ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์•ˆ
โ€ข 3D reconstruction์— ์ €์ž๋“ค์˜ ์•„์ด๋””์–ด๋ฅผ ์ฐจ์šฉํ•จ์œผ๋กœ์„œ ๊ธฐ์กด Voxel ๊ธฐ๋ฐ˜
์ ‘๊ทผ๋ฒ•๋ณด๋‹ค ์‹œ๊ฐ์  ๋ฐ Voxel IoU metric ์ธก๋ฉด์—์„œ ์šฐ์ˆ˜์„ฑ์„ ๋ณด์ž„.
โ€ข 2D Image์˜ loss์™€ GD๋ฅผ ์ด์šฉํ•ด 3D mesh์˜ ์ •์ , ํ…์Šค์ณ๋ฅผ ํŽธ์ง‘ ๊ฐ€๋Šฅ.
โ€ข ์•„ํ‹ฐ์ŠคํŠธ๋“ค์—๊ฒŒ ์ƒˆ๋กœ์šด ์˜๊ฐ์„ ์ค„ ์ˆ˜ ์žˆ์Œ.
์š”์•ฝ
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (35/36)
โ†ณ
Limitations5-2
โ€ข In general
โ€ข ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๋ Œ๋”๋ง ๋ฐฉ์‹์ฒ˜๋Ÿผ, ํ•˜์ดํด๋ฆฌ๊ณค ๋ฉ”์‰ฌ์˜ ์—ญ์ „ํŒŒ์—์„œ๋Š”
๋‹ค์†Œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
โ€ข ์•„์ง ๋‹ค์–‘ํ•œ 3D graphics ํšจ๊ณผ๋“ค์„ ์ ์šฉํ•˜๊ธฐ์—๋Š” ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค.
โ€ข In 3D Reconstruction Application
โ€ข ๋‹ค์–‘ํ•œ ํ† ํด๋กœ์ง€๋กœ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค.
(๋„คํŠธ์›Œํฌ๊ฐ€ vertices-Faces๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ฅด๋ฏ€๋กœ ๋ณต์žกํ•œ ํ† ํด๋กœ์ง€๋ฅผ ๊ฐ–๋Š” ๋ชจ๋ธ ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ.)
๋ณธ ๋…ผ๋ฌธ์˜ ํ•œ๊ณ„
CGLAB ์ด๋ช…๊ทœNeural 3D Mesh Renderer (36/36)
Thank you for Listening.
Email : brstar96@naver.com (or brstar96@soongsil.ac.kr)
Mobile : +82-10-8234-3179

(Paper Review)Neural 3D mesh renderer

  • 1.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (1/36) CGLAB ์ด๋ช…๊ทœ 2019/06/28 ์‹ ๊ฒฝ๋ง ๊ธฐ๋ฐ˜ 3D ๋ฉ”์‰ฌ ๋ Œ๋”๋Ÿฌ Neural 3D Mesh Renderer
  • 2.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (2/36) I N D E X 01 02 03 04 05 Introduction Rasterization Proposed Method Experiments Conclusion
  • 3.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (3/36) Introduction Part 01 1. ๋…ผ๋ฌธ์†Œ๊ฐœ 2. ๊ด€๋ จ ์—ฐ๊ตฌ ์š”์•ฝ
  • 4.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (4/36) โ†ณ ๋…ผ๋ฌธ์†Œ๊ฐœ1-1 โ€ข ๋ฐœํ‘œ : Computer Vision and Pattern Recognition 2018 โ€ข ์ €์ž : Hiroharu Kato et al. (University of Tokyo) โ€ข ์ธ์šฉํšŸ์ˆ˜ : 77ํšŒ โ€ข ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๊ณผ์ • ๋•Œ๋ฌธ์— 2D->3D๋กœ์˜ ๋ฏธ๋ถ„์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์„ธ ๊ฐœ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ์ฆ๋ช…ํ•˜๋Š” ์—ฐ๊ตฌ ์ €๋„์ •๋ณด ๋ฐ ๋…ผ๋ฌธ์†Œ๊ฐœ
  • 5.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (5/36) โ†ณ ๊ด€๋ จ ์—ฐ๊ตฌ ์š”์•ฝ1-2 โ€ข Rasterized form์—์„œ์˜ ์—ฐ๊ตฌ๋™ํ–ฅ โ€“ CNN ์—ฐ์‚ฐ์ด ์šฉ์ด โ€ข Voxel data๋Š” 3D CNN์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•ด classification, 3D reconstruction & Generation์— ์‚ฌ์šฉ๋จ. โ€ข Multi-view RGB(D)์ด๋ฏธ์ง€๋“ค์€ recognition, view synthesis ์—ฐ๊ตฌ๋“ค์— ์‚ฌ์šฉ๋จ. โ€ข Geometric form์—์„œ์˜ ์—ฐ๊ตฌ๋™ํ–ฅ โ€“ CNN์ ์šฉ์ด ์–ด๋ ค์›Œ FE*ํ•„์š” โ€ข 3D mesh reconstruction์„ ์œ„ํ•ด OpenGL renderer๋ฅผ NN์— ํ†ตํ•ฉํ•œ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Œ. โ€ข Recognition, segmentation๋ฟ๋งŒ ์•„๋‹ˆ๋ผ generation ๋ชจ๋‘ ์–ด๋ ค์›Œ ์ œํ•œ์ . Related Works Rasterized form Geometric form - Voxels - Multi-view RGB(D) Images - Proint Clouds - Polygon Mesh - Sets of Primitives CNN ์—ฐ์‚ฐ ์‰ฌ์›€ CNN ์–ด๋ ค์›€ *FE : Feature Engineering
  • 6.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (6/36) โ€ข (์ขŒ) Differentiable Monte Carlo Ray Tracing through Edge Sampling โ€ข (์šฐ) Multiphase Level-Set Loss for Semi-Supervised and Unsupervised Segmentation with Deep Learning
  • 7.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (7/36) Multiphase Level-Set Loss for Semi-Supervised and Unsupervised Segmentation with Deep Learning
  • 8.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (8/36) โ€ข Differentiable Monte Carlo Ray Tracing through Edge Sampling
  • 9.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (9/36) Rasterization Part 02 1. Graphics Pipeline 2. Rasterization
  • 10.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (10/36) โ†ณ Graphics Pipeline2-1 Graphics Rendering Pipeline Vertex Shader (Homogeneous Coord) ์›๊ทผ ๋‚˜๋ˆ—์…ˆ (Homoโ†’Cartesian Space) Clipping (Normalized Device Space) Viewpoint Transform (NDCโ†’viewport space) Culling (Viewport space) Pixel Shader (Screen Coord) Fragment Rasterization (Viewportโ†’Screen space)
  • 11.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (11/36) โ†ณ Rasterization2-2 โ€ข Find Intersections, DDA Algorithm, Bresenham Algorithm Rasterization of Line Segment (in screen space)
  • 12.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (12/36) โ†ณ Rasterization2-2 Rasterization of Triangle (in screen space) โ€ข ๐’š๐’š โˆ’ ๐’š๐’š๐Ÿ๐Ÿ = ๐’š๐’š๐Ÿ๐Ÿโˆ’๐’š๐’š๐Ÿ๐Ÿ ๐’™๐’™โˆ’๐’™๐’™๐Ÿ๐Ÿ ๐’™๐’™๐Ÿ๐Ÿโˆ’๐’™๐’™๐Ÿ๐Ÿ โ€ข (๐’š๐’š โˆ’ ๐’š๐’š๐Ÿ๐Ÿ)(๐’™๐’™๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ) = (๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’š๐’š๐Ÿ๐Ÿ)(๐’™๐’™ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ) โ€ข ๐’‡๐’‡ ๐’™๐’™, ๐’š๐’š = ๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’š๐’š๐Ÿ๐Ÿ ๐’™๐’™ + ๐’™๐’™๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š + ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š๐Ÿ๐Ÿ โˆ’ ๐’™๐’™๐Ÿ๐Ÿ ๐’š๐’š๐Ÿ๐Ÿ = ๐ŸŽ๐ŸŽ ๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ = 4 ร— 5 + 8 ร—0=20>0 ๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ < 0 ๐‘“๐‘“ ๐‘ฅ๐‘ฅ, ๐‘ฆ๐‘ฆ > 0 ๐’‡๐’‡ ๐’™๐’™, ๐’š๐’š = ๐Ÿ’๐Ÿ’๐Ÿ’๐Ÿ’ + ๐Ÿ–๐Ÿ–๐Ÿ–๐Ÿ– = ๐ŸŽ๐ŸŽ
  • 13.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (13/36) โ†ณ Rasterization2-2 Rasterization of Triangle (in screen space)
  • 14.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (14/36) Proposed Method Part 03 1. Rendering pipeline and its derivative 2. Proposed method 3. Texture and Light
  • 15.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (15/36) โ†ณ Rendering pipeline and its derivative3-1 Why using Polygon Mesh?
  • 16.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (16/36) โ†ณ Rendering pipeline and its derivative3-1 Why Rasterization is NOT Differnentiable? If object has ๐‘๐‘๐‘ฃ๐‘ฃ ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ and ๐‘๐‘๐‘“๐‘“ ๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“, โ€ข ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ = ๐‘ฃ๐‘ฃ1 ๐‘œ๐‘œ , ๐‘ฃ๐‘ฃ2 ๐‘œ๐‘œ , โ€ฆ , ๐‘ฃ๐‘ฃ๐‘๐‘๐‘ฃ๐‘ฃ ๐‘œ๐‘œ (๐‘ฃ๐‘ฃ๐‘–๐‘– ๐‘œ๐‘œ โˆˆ โ„3 ) โ€ข ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“๐‘“ = {๐‘“๐‘“1, ๐‘“๐‘“2, โ€ฆ , ๐‘“๐‘“๐‘๐‘๐‘“๐‘“ }. ๐‘ฃ๐‘ฃ๐‘–๐‘– ๐‘œ๐‘œ ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ๐‘œ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  โ†’ {๐‘ฃ๐‘ฃ๐‘–๐‘– ๐‘ ๐‘  } โˆˆ โ„ 2 (๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ) : Differentiable. ๐‘ฃ๐‘ฃ๐‘–๐‘– ๐‘ ๐‘  ๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž ๐‘“๐‘“๐‘—๐‘— ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ๐‘ฃ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘ ๐‘  ๐‘ ๐‘  โ†’ ๐ผ๐ผ ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ๐ผ : Not Differentiable.
  • 17.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (17/36) โ†ณ Rasterization of single face (In Grayscale) Figure 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face - ๐’—๐’—๐’Š๐’Š = {๐’™๐’™๐’Š๐’Š, ๐’š๐’š๐’Š๐’Š} : one vertex of the face - ๐‘ฐ๐‘ฐ๐’‹๐’‹ : color of pixel ๐‘ƒ๐‘ƒ๐‘—๐‘—. - Where an edge of the face collides with the corner of ๐‘ƒ๐‘ƒ๐‘—๐‘— when xi moves to the right. - ๐‘ฐ๐‘ฐ๐’‹๐’‹ Becomes ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š when ๐’™๐’™๐’Š๐’Š = ๐’™๐’™๐Ÿ๐Ÿ. Figure 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face - Ij changes when ๐‘ฅ๐‘ฅ๐‘–๐‘– moves to the right or left. Figure 1 Figure 2 Proposed Method3-2
  • 18.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (18/36) โ†ณ 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face Proposed Method3-2 โ€ข ๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹(๐’™๐’™๐’Š๐’Š) ๐๐๐’™๐’™๐’Š๐’Š = ๐‘ท๐‘ท๐’‹๐’‹ ๐๐๐’™๐’™๐’Š๐’Š = ๐ŸŽ๐ŸŽ ๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž๐‘Ž ๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’๐‘’ โ€ข ๋”ฐ๋ผ์„œ ๐‘ฐ๐‘ฐ๐’‹๐’‹ ๐’™๐’™๐ŸŽ๐ŸŽ โ†’ ๐œน๐œน๐’‹๐’‹ ๐‘ฐ๐‘ฐ ๋กœ ๋ฐ”๊พธ์–ด ์ƒ๊ฐ. โ€ข ์ฆ‰ ๐’™๐’™๐ŸŽ๐ŸŽ๊ณผ ๐’™๐’™๐Ÿ๐Ÿ์— ์„ ํ˜•๋ณด๊ฐ„ ์ ์šฉํ•ด ์„ ํ˜•์„ฑ ๋ถ€์—ฌ (๐’™๐’™๐ŸŽ๐ŸŽ: Current position) โ€ข ๊ทธ๋ ‡๋‹ค๋ฉด ๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹ ๐๐๐’™๐’™๐’Š๐’Š ๋Š” ๐’™๐’™๐ŸŽ๐ŸŽ๊ณผ ๐’™๐’™๐Ÿ๐Ÿ์‚ฌ์ด์˜ ๐œน๐œน๐’‹๐’‹ ๐‘ฐ๐‘ฐ ๐œน๐œน๐’Š๐’Š ๐’™๐’™(๋ณ€ํ™”๋Ÿ‰)๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 19.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (19/36) โ†ณ 1. When ๐‘ท๐‘ท๐’‹๐’‹ is outside the face: ๐’™๐’™๐’Š๐’Š = ๐’™๐’™๐ŸŽ๐ŸŽ Proposed Method3-2 ๏ฟฝ ๐๐๐‘ฐ๐‘ฐ๐’‹๐’‹(๐’™๐’™๐’Š๐’Š) ๐๐๐’™๐’™๐’Š๐’Š ๐’™๐’™๐’Š๐’Š=๐’™๐’™๐ŸŽ๐ŸŽ = ๐›ฟ๐›ฟ๐‘—๐‘— ๐ผ๐ผ ๐›ฟ๐›ฟ๐‘–๐‘– ๐‘ฅ๐‘ฅ ; ๐›ฟ๐›ฟ๐‘—๐‘— ๐‘ƒ๐‘ƒ ๐›ฟ๐›ฟ๐‘—๐‘— ๐ผ๐ผ < 0 0; ๐›ฟ๐›ฟ๐‘—๐‘— ๐‘ƒ๐‘ƒ ๐›ฟ๐›ฟ๐‘—๐‘— ๐ผ๐ผ โ‰ฅ 0 Error signal (โ‰… ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ ๐‘ฎ๐‘ฎ๐‘ฎ๐‘ฎ) ๋ฒ„ํ…์Šค์˜ ํฌ์ง€์…˜ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ pixel color์˜ ๋ณ€ํ™”๋Ÿ‰ โ€ข ๐œน๐œน๐’‹๐’‹ ๐‘ท๐‘ท ์˜ ๋ถ€ํ˜ธ๋Š” ๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท ๐‘ท๐‘ท๐’‹๐’‹๊ฐ€ ๋ฐ์•„์ ธ์•ผ ํ•˜๋Š”์ง€ ์–ด๋‘์›Œ์ ธ์•ผ ํ•˜๋Š”์ง€์˜ ์ฒ™๋„๊ฐ€ ๋จ. Loss๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๐œน๐œน๐’‹๐’‹ ๐‘ท๐‘ท >0์ด๋ฉด ๐‘ท๐‘ท๐’‹๐’‹๋Š” ๋” ์–ด๋‘์›Œ์ ธ์•ผ ํ•จ. โ€ข ๐œน๐œน๐’‹๐’‹ ๐‘ฐ๐‘ฐ ์˜ ๋ถ€ํ˜ธ๋Š” ๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท๐‘ท ๐‘ท๐‘ท๐’‹๐’‹๊ฐ€ ๋” ๋ฐ๊ฑฐ๋‚˜ ์–ด๋‘์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ„. ๐œน๐œน๐’‹๐’‹ ๐‘ฐ๐‘ฐ >0์ธ ๊ฒฝ์šฐ ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’™๐’™๐’Š๐’Š๋ฅผ ๋‹น๊ธฐ๋ฉด ๐‘ท๐‘ท๐’‹๐’‹๋Š” ๋ฐ์•„์ง€๊ธฐ๋งŒ ํ•จ. ๐œน๐œน๐’‹๐’‹ ๐‘ท๐‘ท , ๐œน๐œน๐’‹๐’‹ ๐‘ฐ๐‘ฐ >0์ผ๋•Œ๋Š” Gradient๊ฐ€ ํ๋ฅด์ง€ ์•Š๋Š”๋‹ค.
  • 20.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (20/36) โ†ณ How to fill triangle with color? โ€“ Bilinear Interpolation Proposed Method3-2 ๐‘…๐‘…๐‘…๐‘…: ๐‘†๐‘†๐‘†๐‘† = ๐‘Ž๐‘Ž๐‘Ž: ๐‘Ž๐‘Ž๐‘Ž ๐‘บ๐‘บ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘Ž๐‘Ž๐‘Ž ๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž ๐‘ƒ๐‘ƒ + ๐‘Ž๐‘Ž2 ๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž ๐‘…๐‘… ๐‘ป๐‘ป๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘„๐‘„ + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘…๐‘… ๐‘ฝ๐‘ฝ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘‡๐‘‡ + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘†๐‘† ๐‘ฝ๐‘ฝ๐’ƒ๐’ƒ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘†๐‘† + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘‡๐‘‡ = ๐›ผ๐›ผ๐‘ƒ๐‘ƒ + ๐›ฝ๐›ฝ๐‘„๐‘„ + ๐›พ๐›พ๐‘…๐‘…
  • 21.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (21/36) โ†ณ 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face Proposed Method3-2 Notations: โ€ข ๐›ฟ๐›ฟ๐‘—๐‘— ๐ผ๐ผ ๐‘Ž๐‘Ž = ๐ผ๐ผ ๐‘ฅ๐‘ฅ1 ๐‘Ž๐‘Ž โˆ’ ๐ผ๐ผ ๐‘ฅ๐‘ฅ0 โ€ข ๐›ฟ๐›ฟ๐‘—๐‘— ๐ผ๐ผ ๐‘๐‘ = ๐ผ๐ผ ๐‘ฅ๐‘ฅ1 ๐‘๐‘ โˆ’ ๐ผ๐ผ ๐‘ฅ๐‘ฅ0 โ€ข ๐›ฟ๐›ฟ๐‘ฅ๐‘ฅ ๐‘Ž๐‘Ž = ๐‘ฅ๐‘ฅ1 ๐‘Ž๐‘Ž โˆ’ ๐‘ฅ๐‘ฅ0 โ€ข ๐›ฟ๐›ฟ๐‘ฅ๐‘ฅ ๐‘๐‘ = ๐‘ฅ๐‘ฅ1 ๐‘๐‘ โˆ’ ๐‘ฅ๐‘ฅ0 Delta of pixel color Delta of ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’™๐’™๐ŸŽ๐ŸŽ to ๐’™๐’™๐Ÿ๐Ÿ.
  • 22.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (22/36) โ†ณ 2. When ๐‘ท๐‘ท๐’‹๐’‹ is inside the face - ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ๐‘ณ ๐’‡๐’‡ Proposed Method3-2
  • 23.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (23/36) โ†ณ Rasterization of multiple face Proposed Method3-2 1. Face๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ๊ฐ ํ”ฝ์…€์—์„œ ์ œ์ผ ์•ž์— ์žˆ๋Š” face๋งŒ ๊ทธ๋ฆผ. (ํ‘œ์ค€ ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๋ฐฉ๋ฒ•๊ณผ ๋™์ผ) 2. Backward pass(Backpropagation ๋“ฑ)๋ฅผ ์ง€๋‚˜๋Š” ๋™์•ˆ ๊ต์ฐจ์  ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š, ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š ๐’‚๐’‚ , ๐‘ฐ๐‘ฐ๐’Š๐’Š๐’Š๐’Š ๐’ƒ๐’ƒ ์ด ๊ทธ๋ ค์ง€๋Š”์ง€ ํ™•์ธ 3. ๐’—๐’—๐’Š๐’Š ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” surfaces๋กœ ๊ฐ€๋ ค์ง€๋ฉด ๊ทธ๋ž˜๋””์–ธํŠธ๊ฐ€ ํ๋ฅด์ง€ ์•Š์Œ.
  • 24.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (24/36) โ†ณ Texture and Light3-3 โ€ข Each face has its own texture image of size ๐’”๐’”๐’•๐’• ร— ๐’”๐’”๐’•๐’• ร— ๐’”๐’”๐’•๐’•. โ€ข Centroid ์ขŒํ‘œ๊ณ„๋ฅผ ํ†ตํ•ด ๐’‘๐’‘ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ํ…์Šค์ณ ๊ณต๊ฐ„์—์„œ์˜ ์ขŒํ‘œ ๊ฒฐ์ • โ€ข ๐’‘๐’‘๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ๐‘ฉ = ๐’˜๐’˜๐Ÿ๐Ÿ ๐’—๐’—๐Ÿ๐Ÿ + ๐’˜๐’˜๐Ÿ๐Ÿ ๐’—๐’—๐Ÿ๐Ÿ + ๐’˜๐’˜๐Ÿ‘๐Ÿ‘ ๐’—๐’—๐Ÿ‘๐Ÿ‘ โ€ข (๐’˜๐’˜๐Ÿ๐Ÿ, ๐’˜๐’˜๐Ÿ๐Ÿ, ๐’˜๐’˜๐Ÿ‘๐Ÿ‘) is the corresponding coordinate in texture space. Texture
  • 25.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (25/36) โ†ณ Texture and Light3-3 โ€ข Result of bilinear interpolation is same as cross product. Texture โ€“ Bilinear Interpolation(review) ๐‘…๐‘…๐‘…๐‘…: ๐‘†๐‘†๐‘†๐‘† = ๐‘Ž๐‘Ž๐‘Ž: ๐‘Ž๐‘Ž๐‘Ž ๐‘บ๐‘บ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘Ž๐‘Ž๐‘Ž ๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž ๐‘ƒ๐‘ƒ + ๐‘Ž๐‘Ž2 ๐‘Ž๐‘Ž๐‘Ž + ๐‘Ž๐‘Ž๐‘Ž ๐‘…๐‘… ๐‘ป๐‘ป๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘„๐‘„ + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘…๐‘… ๐‘ฝ๐‘ฝ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘‡๐‘‡ + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘†๐‘† ๐‘ฝ๐‘ฝ๐’ƒ๐’ƒ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ = ๐‘๐‘1 ๐‘๐‘1 + ๐‘๐‘2 ๐‘†๐‘† + ๐‘๐‘2 ๐‘๐‘1 + ๐‘๐‘2 ๐‘‡๐‘‡ = ๐›ผ๐›ผ๐‘ƒ๐‘ƒ + ๐›ฝ๐›ฝ๐‘„๐‘„ + ๐›พ๐›พ๐‘…๐‘…
  • 26.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (26/36) โ†ณ Texture and Light3-3 โ€ข Use Simple ๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’… ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’ and ๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚๐’‚ ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’. โ€ข ๐‘ฐ๐‘ฐ๐’‹๐’‹ ๐’๐’ = ๐’๐’๐’‚๐’‚ + ๐’๐’๐’…๐’… ๏ฟฝ ๐’๐’๐’‹๐’‹ ๐’๐’๐’…๐’… ๐‘ฐ๐‘ฐ๐’‹๐’‹ Lighting - ๐‘ฐ๐‘ฐ๐’‹๐’‹ ๐’๐’ : ๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด๐‘ด ๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„๐’„ ๐’๐’๐’๐’ ๐’‚๐’‚ ๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘๐’‘ - ๐’๐’๐’‚๐’‚, ๐’๐’๐’…๐’… : Intensity of ambient and directional light - ๐’๐’๐’…๐’… โˆถ ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ๐‘ผ ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’๐’๐’๐’ ๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’…๐’… ๐’๐’๐’๐’ ๐’๐’ ๐’๐’๐’๐’ - ๐’๐’๐’‹๐’‹ โˆถ ๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต๐‘ต ๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’—๐’— ๐’๐’๐’๐’ ๐’‚๐’‚ ๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”๐’”
  • 27.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (27/36) โ†ณ Texture and Light3-3 โ€ข Rasterization ์ค‘ Sampling์œผ๋กœ ์ธํ•œ gradient flow ๋Š๊น€์ด ํ•ต์‹ฌ ๋ฌธ์ œ โ€ข ์„ ํ˜• ๊ฒฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ Texture, Light๋Š” Gradient flow์— ํฐ ๋ฐฉํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. Conclusion of part 3
  • 28.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (28/36) Experiments Part 04 1. Applications
  • 29.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (29/36) โ†ณ Applicaitions4-1 1. 3D Reconstruction
  • 30.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (30/36) โ†ณ Applicaitions4-1 Evaluation of 3D Reconstruction
  • 31.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (31/36) โ†ณ Applicaitions4-1 2. 2D-to-3D Style Transfer โ€ข Transfer 2D style- loss to 3D Mesh
  • 32.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (32/36) โ†ณ Applicaitions4-1 3. DeepDream of 3D Mesh
  • 33.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (33/36) Conclusion Part 05 1. Conclusion 2. Limitations
  • 34.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (34/36) โ†ณ Conclusion5-2 โ€ข 3D Mesh๊นŒ์ง€ Gradient๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ approximated gradient ๊ธฐ๋ฒ•์„ ์ œ์•ˆํ•จ์œผ๋กœ์„œ Rendering๊ณผ ์‹ ๊ฒฝ๋ง์„ ํ†ตํ•ฉ โ€ข ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์•ˆ โ€ข 3D reconstruction์— ์ €์ž๋“ค์˜ ์•„์ด๋””์–ด๋ฅผ ์ฐจ์šฉํ•จ์œผ๋กœ์„œ ๊ธฐ์กด Voxel ๊ธฐ๋ฐ˜ ์ ‘๊ทผ๋ฒ•๋ณด๋‹ค ์‹œ๊ฐ์  ๋ฐ Voxel IoU metric ์ธก๋ฉด์—์„œ ์šฐ์ˆ˜์„ฑ์„ ๋ณด์ž„. โ€ข 2D Image์˜ loss์™€ GD๋ฅผ ์ด์šฉํ•ด 3D mesh์˜ ์ •์ , ํ…์Šค์ณ๋ฅผ ํŽธ์ง‘ ๊ฐ€๋Šฅ. โ€ข ์•„ํ‹ฐ์ŠคํŠธ๋“ค์—๊ฒŒ ์ƒˆ๋กœ์šด ์˜๊ฐ์„ ์ค„ ์ˆ˜ ์žˆ์Œ. ์š”์•ฝ
  • 35.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (35/36) โ†ณ Limitations5-2 โ€ข In general โ€ข ๋ž˜์Šคํ„ฐ๋ผ์ด์ œ์ด์…˜ ๋ Œ๋”๋ง ๋ฐฉ์‹์ฒ˜๋Ÿผ, ํ•˜์ดํด๋ฆฌ๊ณค ๋ฉ”์‰ฌ์˜ ์—ญ์ „ํŒŒ์—์„œ๋Š” ๋‹ค์†Œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. โ€ข ์•„์ง ๋‹ค์–‘ํ•œ 3D graphics ํšจ๊ณผ๋“ค์„ ์ ์šฉํ•˜๊ธฐ์—๋Š” ํฐ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค. โ€ข In 3D Reconstruction Application โ€ข ๋‹ค์–‘ํ•œ ํ† ํด๋กœ์ง€๋กœ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค. (๋„คํŠธ์›Œํฌ๊ฐ€ vertices-Faces๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ฅด๋ฏ€๋กœ ๋ณต์žกํ•œ ํ† ํด๋กœ์ง€๋ฅผ ๊ฐ–๋Š” ๋ชจ๋ธ ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ.) ๋ณธ ๋…ผ๋ฌธ์˜ ํ•œ๊ณ„
  • 36.
    CGLAB ์ด๋ช…๊ทœNeural 3DMesh Renderer (36/36) Thank you for Listening. Email : brstar96@naver.com (or brstar96@soongsil.ac.kr) Mobile : +82-10-8234-3179