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

댓글

이 블로그의 인기 게시물

로봇의 작업영역(Workspace)

Frenet-Serret formulas (프레네-세레 공식)

yes24 [뷰어 서버의 기본정보가 존재하지 않습니다.] 오류 해결