1. 백본 모델(Backbone Model)의 구조와 기능
이러한 파이프라인의 백본은 2D 이미지의 픽셀을 처리하는 CNN(ResNet 등)과 달리, 순서가 없고 불규칙하게 흩어진 3차원 좌표의 집합을 처리해야 한다. 이를 위해 주로 다음과 같은 3가지 아키텍처가 백본으로 결합되어 사용된다.
PointNet++ (가장 표준적인 백본)
구조: 다층 퍼셉트론(MLP)을 각 점에 독립적으로 적용한 뒤, 최대 풀링(Max Pooling)을 통해 입력 순서에 구애받지 않는 대칭 함수(Symmetric Function)를 구성한다. 여기에 계층적 샘플링(Furthest Point Sampling)과 지역 군집화(Ball Query) 기법을 더해 지역적 기하학(Local Geometry)을 캡처한다.
기능: 단순한 좌표들을 엮어, "이 점 주변은 평평하다", "이 점은 날카로운 모서리에 있다"는 정보를 담은 고차원 특징 벡터로 변환한다.
DGCNN (Dynamic Graph CNN)
구조: 점들 사이의 k-최근접 이웃(k-NN) 그래프를 구성하고, 네트워크 계층이 깊어질수록 특징 공간(Feature Space) 상에서 그래프의 연결을 동적으로 다시 계산하는 EdgeConv 연산을 수행한다.
기능: 점과 점 사이의 '관계'를 학습하는 데 특화되어 있다. 곡률이 변하는 경계면(Boundary)이나 서로 맞닿아 있는 직교 평면의 특징을 뚜렷하게 잡아낸다.
Point Transformer (최신 SOTA 백본)
구조: 자연어 처리에서 쓰이는 셀프 어텐션(Self-attention) 메커니즘을 3D 점군에 맞게 변형하여 적용했다.
기능: 모델 전체의 전역적 맥락(Global Context)을 파악한다. CAD 모델 특유의 대칭성(Symmetry)이나 반복되는 구멍(Hole) 패턴의 특징을 매우 효과적으로 추출한다.
2. 입력 데이터 (Input Data) 예시
백본 모델에 들어가는 입력값은 위상(Topology)이나 크기 정보가 없는 순수한 3D 좌표의 배열이다. 라이다(LiDAR) 스캐너나 가우시안 스플래팅 덩어리에서 추출된 표면 점 데이터가 이에 해당한다.
형태: 실수 배열 (때로는 표면의 수직 방향을 나타내는 법선 벡터를 포함해 특징 배열로 입력됨).
백본 모델에 들어가는 입력값은 위상(Topology)이나 크기 정보가 없는 순수한 3D 좌표의 배열이다. 라이다(LiDAR) 스캐너나 가우시안 스플래팅 덩어리에서 추출된 표면 점 데이터가 이에 해당한다.
형태: 실수 배열 (때로는 표면의 수직 방향을 나타내는 법선 벡터를 포함해 특징 배열로 입력됨).
예시 데이터 (기계 부품의 표면 점 10,000개 추출):
[ [0.12, 1.55, -0.42], [0.13, 1.55, -0.40], ... [5.00, 2.10, 1.11] // 총 10,000개의 [x, y, z] 배열 ]
[ [0.12, 1.55, -0.42], [0.13, 1.55, -0.40], ... [5.00, 2.10, 1.11] // 총 10,000개의 [x, y, z] 배열 ]
3. 출력 데이터 (Output Data) 예시
백본에서 추출된 특징(Feature)은 여러 개의 서브 네트워크(Head)를 거쳐, 최종적으로 '분할 라벨(Segmentation Label)'과 수학적으로 정의된 '파라미터 수치(Parameter Vector)'로 나뉘어 출력된다.
형태 1: 점 단위 분할 확률 (Point-wise Segmentation)
백본에서 추출된 특징(Feature)은 여러 개의 서브 네트워크(Head)를 거쳐, 최종적으로 '분할 라벨(Segmentation Label)'과 수학적으로 정의된 '파라미터 수치(Parameter Vector)'로 나뉘어 출력된다.
형태 1: 점 단위 분할 확률 (Point-wise Segmentation)
각 점이 어떤 수학적 도형에 속하는지 분류한다.예시: 점 $P_1$은 '원통(Cylinder)'일 확률 98%.
형태 2: 도형 파라미터 회귀 (Primitive Parameters)
분류된 덩어리에 대해 실수형 파라미터 방정식을 도출한다.예시 A (평면 표면이 추출된 경우): Type: PlaneNormal_Vector (수직 벡터): [0.0, 0.0, 1.0]Distance_from_Origin (원점 거리): 15.5
예시 B (드릴로 뚫린 구멍이 추출된 경우):
Type: CylinderAxis_Vector (중심축 방향): [0.0, 1.0, 0.0]Center_Point (중심점): [10.0, 5.0, -2.0]Radius (반지름 치수): 2.5 (이 수치가 설계 프로그램에서 조절 가능한 치수가 됨)
이러한 출력값들이 모여서 최종적으로 솔리드웍스(SolidWorks)나 인벤터(Inventor)에서 읽을 수 있는 매크로 스크립트나 STEP 형식의 트리 구조로 조립된다.
댓글 없음:
댓글 쓰기