CAD Feature Detection
- STEP-file 구조상 특별한 수식계산을 넣지 않는다면 geometry 정보는 edge를 통해 얻을 수 밖에 없다.
- 담겨있는 정보: Cartesian point, Direction, Spline parameters 등
- Face Adjacency Graph(FAG) 방식으로 graph를 구성할 때, edge를 통해 충분한 geometry 정보를 받을 수 있어야 한다.
- UV-Net에서 말하는 toplogy 정보란 FAG구조를 의미하는 것이며 node, edge feature는 geometry 정보를 담고 있다.
- Edge에 넣을 수 있는 정보
- start piont
- end point
- curve type
- parameters of the curve / direction
- length of the curve \( \rightarrow \) 구하기 쉽진 않음.
- Face에 넣을 수 있는 정보
- surface type
- surface normal vector
- cartesian pionts / parameters of the curve
- surface position
- surface area \( \rightarrow \) 구하기 쉽진 않음.
- Cartesian point 정보를 사용 했을 경우 발생할 수 있는 2가지 경우
- 장점: 명시적인 좌표 정보를 graph에서 사용할 수 있다.
- 단점: Detection을 안정적으로 수행하기 위해서는 rotation invarient가 보장되어야 하나, 명시적 좌표 정보를 이용하면 이를 극복하기 위한 추가적인 embedding 작업이 필요
- \(\Rightarrow\) cartesian point대신 edge의 길이 정보로 해결할 수 있지 않을까 추측 중
코드 구현
- 현재 step_converter에서 graph 형태로 만들수 있도록 만든 뒤, loader에서 불러오도록 되어있다.- step_converter는 우선 전체 entity로 그래프를 만든 뒤, 안쓰는 entity를 빼도록 되어있음
- 앞으로 진행할 방식에서, node에는 face 관련 정보가 담겨야 하므로 다른 형태로 graph를 만들도록 해야 함.
- node feature에는 여러가지 entity를 참고하여 정보를 넣어야 함. 많이 뜯어고쳐야 할 것 같다.
고민들
- 다양한 타입의 curve와 surface를 어떻게 embedding 시킬 것인가
- 유사한 곡률을 갖는 타원(또는 호)은 유사하게 생긴 Bspline curve와 비슷한 space로 embedding이 될 수 있는 것인가?
(애초에 그럴 필요까진 없나?) - 별다른 parameter가 없는 line, circle 등의 edge와 B-spline curve를 동일한 방법으로 embedding (mapping)시켰을 때, 실제 curve가 보이는 차이만큼 mapping space로 embedding 될 것인가?
- 아주 쉽게는 FCN으로 일단 시도해볼 수 있을 수 있다.
Ideas
- Initial feature vector를 type별로 나열하여 생성
- \( h_v^1 = [\text{line, circle, ellipse, B-spline curve}]^\top \)
- e.g. \( \text{ELLIPSE}=[\text{Major Axis},\text{Minor Axis},\text{Vertex start point},\text{Vertex end point}]^\top \)
- B-spline curve의 경우 parameter 개수가 가변적인데, 이를 고려하여 feature를 생성하는 것이 필요
- N개의 간단한 MLP를 거쳐서 node의 initial feature vector 형성 후 graph를 학습하거나, 위의 initial feature vector를 바로 사용하여 graph 학습
- Graph를 2중으로 두어서 node feature 형성 후, Concat
- Domain_1의 graph는 entity type(onehot vector)만 이용하여 node feature 생성
- Domain_2의 graph는 geometry 정보(numeric data)만 이용하여 node feature 생성
- 생성된 node feature를 Concat하여 새로운 domain에서 학습
공부가 필요한 내용
-
Message Passing을 어떻게 하여 edge feature를 node에 전달해 주는가? - Spectral Graph Convolution
- Laplacian, Graph Laplacian, Graph, Fourier Transform
- Spatial Graph Convolution
- 후순위: B-spline curve/surface, Subgraph Neural Network
댓글
댓글 쓰기