Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 개발자
- 티스토리챌린지
- Mesh
- 데이터
- DS
- 자료구조
- sort
- Data_Structure
- 오블완
- Python
- 코딩테스트
- adaptive remeshing
- db
- code
- 데베
- Database
- Leet Code
- coding
- 대학생
- 코테
- meshgraphnet
- 데이터베이스
- 컴퓨터사이언스
- LeetCode
- CS
- CNN
- 컴퓨터공학
- GNN
- mysql
- SQL
Archives
- Today
- Total
sy1214ei 님의 블로그
[논문리뷰] MeshCNN: A Network with an Edge 본문
https://arxiv.org/abs/1809.05910
MeshCNN: A Network with an Edge
Polygonal meshes provide an efficient representation for 3D shapes. They explicitly capture both shape surface and topology, and leverage non-uniformity to represent large flat regions as well as sharp, intricate features. This non-uniformity and irregular
arxiv.org
0. Mesh란?
- Mesh의 개념
- Mesh는 3차원 물체를 정의하기 위해 사용되는 구조로, vertices(꼭짓점), edges(선), faces(면)의 리스트로 표현된다.
- Vertices: 물체의 꼭짓점을 나타내며, 3차원 좌표로 표현된다.
예) vertices=<x,y,z> - Edges: 꼭짓점 간의 연결선을 나타낸다.
예) edges = <v_i, v_j> - Faces: 꼭짓점 세 개 이상으로 구성된 면을 나타낸다.
예) faces = <v_i, v_j, v_k>
- Vertices: 물체의 꼭짓점을 나타내며, 3차원 좌표로 표현된다.
- Mesh는 3차원 물체를 정의하기 위해 사용되는 구조로, vertices(꼭짓점), edges(선), faces(면)의 리스트로 표현된다.
- Mesh의 특징
- Meshes are irregular: 비정형 구조
- Mesh는 규칙적인 격자가 아니라, 비정형(irregular) 구조를 가진다.
- 평평한 영역에서는 큰 폴리곤이 사용되며, 세부적인 영역에서는 작은 폴리곤이 사용된다.
예) 단순한 표면 → 큰 폴리곤, 복잡한 디테일 → 작은 폴리곤.
- Mesh contains topology: 위상 정보 포함
- Mesh는 3D 물체의 위상 구조(topology)를 포함한다.
- 위상 구조란 연결성, 연속성 등 기하학적 형태와 무관하게 물체의 본질적인 구조를 표현하는 것을 의미한다.예) Polygonal Mesh는 낙타나 의자와 같은 복잡한 형태의 구조(shape structure)를 정확히 표현할 수 있는 장점이 있다.
- Meshes are irregular: 비정형 구조


3. Overview: Applying CNN on Meshes
3.1 Invariant Convolutions
Invariant Convolutions는 메쉬 그래프의 엣지(edge)와 주변 엣지 구조를 활용하여 불변적인 특징을 추출하려는 방법에 대한 설명이다.
- Edge와 주변 구조
- Edge는 2개의 face(면)가 만나는 부분이다.
- 각 edge에는 주변으로 4개의 neighboring edges(이웃 엣지)가 존재한다.
- Face와 Vertices의 순서
- 각 face에서 vertex(꼭짓점)의 순서는 반시계 방향으로 고정된다. 이는 메쉬 데이터의 일관성을 유지하기 위한 규칙이다.
- Neighboring Edges의 순서
- 각 edge를 기준으로 4개의 neighboring edges의 순서를 정하면, 가능한 조합은 두 가지다.
- (a,b,c,d)(a, b, c, d)
- (c,d,a,b)(c, d, a, b)
- 이처럼 두 가지 순서가 가능하기 때문에, convolutional receptive field를 모호하게 만들 수 있다.
- 각 edge를 기준으로 4개의 neighboring edges의 순서를 정하면, 가능한 조합은 두 가지다.
- Invariant Features의 어려움
- 두 가지 순서의 가능성으로 인해 Invariant Features(변하지 않는 특징)를 추출하는 것이 복잡해진다.
- 동일한 구조에서 순서가 다르면 결과도 달라질 수 있다.
- 이 문제를 해결하려면 순서에 의존하지 않는 방식으로 합성곱을 설계해야 한다.
- 두 가지 순서의 가능성으로 인해 Invariant Features(변하지 않는 특징)를 추출하는 것이 복잡해진다.

3.2 Input Edge Features
- Edge Feature의 구성: 모든 edge는 5차원 벡터(5-dim vector)로 표현된다.
- 구성요소
- Dihedral angle: 두 면(face)이 이루는 각도.
- Two inner angles: 엣지에 인접한 두 삼각형에서의 내부 각도.
- Two edge-length ratios: 엣지의 길이와 이웃 엣지 길이의 비율.
- Ordering Ambiguity(순서 모호성) 해결
- 문제:
메쉬의 엣지 순서가 다르게 정렬될 경우, 특징 계산 결과가 달라질 수 있다. - 해결 방법:
- Inner angles와 Edge-length ratios를 정렬하여 일관성을 유지한다.
- 이를 통해 Invariant Features(불변 특징)를 보장할 수 있다.
- 문제:
- Inariance(불변성)의 보장
- 해당 입력 특징들은 모두 상대적(relative)이기 때문에 다음과 같은 변환에 대해 불변적이다.
- Translation(이동): 메쉬 전체를 이동시켜도 특징 값은 동일하다.
- Rotation(회전): 메쉬를 회전해도 특징 값이 변하지 않는다.
- Uniform Scaling(균일한 스케일 변경): 메쉬의 크기를 동일 비율로 조정해도 불변성을 유지한다.
- 해당 입력 특징들은 모두 상대적(relative)이기 때문에 다음과 같은 변환에 대해 불변적이다.

3.3 Global Ordering
- Global Ordering은 엣지 데이터를 네트워크에 입력하는 순서를 의미한다.
- 그러나 MeshCNN의 Local Neighborhood 기반 연산 덕분에 전역 순서는 모델의 학습이나 결과에 영향을 미치지 않는다.
4. Method
4.1 Mesh Convolution

4.2 Mesh Pooling

4.3 Mesh Unpooling

5. Experiments
5.1 Data Processing
- Roughly same number of edges
- input으로 사용되는 메쉬의 엣지 수가 꼭 동일할 필요는 없다는 것을 의미한다.
- 이는 MeshCNN이 메쉬 데이터를 처리할 때, 각 메쉬의 엣지 개수가 달라도 학습 및 추론이 가능하도록 설계되었음을 나타낸다.
- 엣지 수가 다른 메쉬를 처리할 수 있는 이유는 MeshCNN이 메쉬의 local pattern 과 엣지 간의 관계를 중심으로 학습하기 때문이다.
- Geometric Mesh Decimation
- Similar to initial resize of images in CNNs, geometric mesh decimation helps to reduce the input resolution.
- CNN에서 이미지를 입력하기 전 해상도를 조정(리사이즈)하는 것처럼, MeshCNN에서도 Geometric Mesh Decimation(기하학적 메쉬 축소) 과정을 통해 메쉬의 복잡도를 줄일 수 있다.
- 이 과정을 통해 입력 데이터의 해상도(input resolution)를 조정하여 처리 속도를 높이고 메모리 사용량을 줄인다.
- Classification task: 750 edges, Segmentation task: 2250 edges
- 작업의 목적에 따라 사용하는 엣지 수가 달라진다.
- Classification
- 메쉬의 전반적인 특징만을 학습하기 때문에 상대적으로 적은 엣지(750개)로도 충분하다.
- Segmentation
- 메쉬의 세부적인 구조를 학습해야 하므로 더 많은 엣지(2250개)를 사용하여 높은 해상도를 유지한다.
5.2 Mesh Classification

5.3 Mesh Segmentation
- Ground Truth Segmentation
- 메쉬 세그멘테이션 작업은 데이터셋에 포함된 ground truth segmentation 정보를 기반으로 이루어진다. 일반적으로, 메쉬의 각 면(face)에 대해 세그멘테이션 레이블이 제공된다. 이를 활용하여 edge-level semantic labeling을 생성하는 과정이 필요하다.
- Mesh Unpooling: 원래 해상도 복원
- Mesh Unpooling이란, 단순화된 메쉬에서 얻어진 세그멘테이션 결과를 다시 original resolution으로 매핑하는 과정이다. 이는 CNN에서의 업샘플링(upsampling)과 유사한 개념으로, 단순화 과정에서 잃어버릴 수 있는 디테일을 복원하는 데 활용된다.
- 요약
- Mesh Segmentation은 3D 데이터의 세부 구조를 이해하고 활용하기 위한 중요한 작업이다. MeshCNN에서는 데이터를 단순화하여 효율적으로 처리하면서도, 시맨틱 정보를 잃지 않도록 Edge-Level Semantic Labeling과 Mesh Unpooling을 통해 복원을 수행한다. 이를 통해 연산 속도와 디테일 보존이라는 두 가지 목표를 동시에 달성할 수 있다.


MeshCNN: A network with an Edge
'[Paper Review]' 카테고리의 다른 글
| [Paper Review] Learning Mesh-Based Simulation with Graph Networks_Shape Tracking (3) | 2025.01.11 |
|---|---|
| [Paper Review] Learning Mesh-Based Simulation with Graph Networks_이모저모 (0) | 2025.01.11 |
| [논문리뷰 Based] MeshGraphNet이 무엇인가? (0) | 2024.12.27 |
| [논문리뷰] Learning Mesh-Based Simulation with Graph Networks (0) | 2024.12.27 |
| [논문리뷰] MeshNet: Mesh Neural Network for 3D shape Representation (3) | 2024.12.27 |