Deep Learning

외부 CAD Data로 SketchGraphs 데이터셋 생성 with python (3)

ju_young 2023. 6. 16. 03:20
728x90

이전까지 외부 CAD Data를 FreeCAD로 불러와서 SketchGraphs 데이터로 만드는 것을 해보았다. 이제 만든 데이터를 SketchConcept 모델에 넣어서 결과를 확인해본다.

Line

우선 이전에 Line의 pnt, dir, param을 구하는 방식이 잘못되어서 짚고 넘어간다.

start_point = np.array([start_point.x, start_point.y])
end_point = np.array([end_point.x, end_point.y])
vec = end_point - start_point
length = np.linalg.norm(vec)
if length == 0:
    dirX, dirY = 1, 0
else:
    dirX, dirY = vec / length
pntX = (start_point[0] + end_point[0]) / 2
pntY = (start_point[1] + end_point[1]) / 2
startParam = -1 * length / 2
endParam = -1 * startParam

여러 방식으로 돌려봤지만 위와 같이 수정해도 결과는 같다.

Save Sketch

SketchConcepts에서는 input으로 Sketch를 받는다. 따라서 Sketch로 변환한다음 저장해준다.

import numpy as np
from SketchGraphs.sketchgraphs.data.flat_array import save_list_flat, pack_dictionary_flat, FlatSerializedArray

array = save_list_flat([sketch])
flatArray = FlatSerializedArray.from_flat_array(array)
data = {"sequences": flatArray}
np.save('test.npy', pack_dictionary_flat(data))

Run

코드 버전 관리가 잘못된건지.... 모델을 돌려보기위해 꽤나 코드를 수정해주어야했다.

  1. model state_dict가 안맞음
  2. gpu만 구현됨
saving sketch visualize done!
sketch rewrite process done!

Visualize sketch result

힘들게 모델을 돌렸는데 결과가 이상하다...

 

Make Graph

pygraphviz 설치 에러도 이상하게 해결하고 graph도 확인해보았다. 무슨 모양인지는 모르겠지만 기괴하게 나왔다. 

문제를 찾아서 해결해보려하다가 모르겠어서 Issue를 올렸다. 답을 해줄런지...

 

추가 테스트

H-Beam Sketch
Result
Graph

728x90