Introduction
1.1. A Primer for CAD Panoptic Symbol Spotting
Symbol은 엔지니어링, 전기, 건축 등의 도면을 그릴때 사용을 하는데 이 Symbol을 spotting(detection)하는 것은 결정적인 역할을 한다. 건축에서 2D CAD 도면은 정확한 geometric과 단면도의 semantic information으로 구성되어있어 3D 모델이 효율적으로 정확하게 만들어질 수 있게 해준다.
규칙적인 픽셀 그리드에 arrange된 다른 이미지들과는 달리 CAD 도면들은 graphical primitives(호, 원, 다각선 등)으로 이루어져있다.
CAD 도면에서 occlusion(선이 연결되어있는지 끊겨있는지), cluster, apperance variation, category의 분포 불균형 등의 존재를 알아내기 위해 각 Symbol(set of graphical primitives)을 spotting하는 것은 중요하다.
최근 learning-based symbol spotting method들은 CNN을 제안하지만 CAD data를 단순히 pixel image로 다루게되면 vector graphic과 rater image(pixel 단위로 이루어진 이미지)간의 gap이 생겨 실제로 부정확한 예측 발생을 야기시킨다.
panoptic segmentation task와 비슷하게 panoptic symbol spotting task는 countable instances(문, 창문, 책상 등)을 spotting하고 uncountable stuff(벽, 난간 등)를 인식하는 것을 통합하여 계산된다.저자들은 GCN(graph convolutional network)을 사용하고 GCN head와 병렬로 CNN detection head를 사용하여 각 countable instance의 2D box 정보를 예측한다고한다. 하지만 CAD graphical primitive는 불규칙적인 ordering, scale, orientation이 존재하기때문에 일반적인 CNN에서는 해결해야할 문제로 남아있다. 또한 GCN module은 미리 정의된 graph topology를 필요로 하는데 손으로 직접 다시 만들어진 graph를 사용할 경우 부정확하고 구조적인 노이즈에 영향을 받을 수 있다.
1.2. Why Transformer, and Our Contributions
위에서 설명한 것처럼 GCN을 사용하기위해 transformer에서 GCN을 갈아껴넣어야하는데 다음 3가지 문제를 해결해야했다고한다.
1) Tokenization and position encoding of graphical symbols
일반적인 ViT는 14x14, 16x16 패치 단위로 잘라서 tokenize를 한다. 하지만 CAD 도면에서 가장 최소 단위인 line 단위는 raster image와는 다르게 좌표 공간에서 vector의 집합으로 순서없이 표현된다.
2) Immense set of primitives in certain scenes
ViT는 token의 개수에 따라 quadratic한 complexity를 가진다. 그래서 최대 primitive 개수가 5x$10^4$ 처럼 폭발적으로 커질 수있게 될 경우 CAD 도면을 다루기 힘들어질 것이다. 또한 primitive 개수는 도면마다 많이 다르다.
3) Training data limitation
ViT는 inductive bias, generalization을 위해 데이터가 충분히 있어야하고 이 때문에 학습을 위한 data hungry 문제가 발생한다. 가장 최근 CAD dataset이 10,000 floor plan으로 만들어지긴 했지만 generalize 하기위해 충분한지는 확실하지 않다.
위 문제들을 해결하기 위해 첫 번째로 pixel patch 단위로 tokenize를 했던 이전과는 달리 set of graphical primitives 단위로 tokenize한다. 동시에 line-grained semantic과 instance head로 graphical primitive의 category를 예측한다. 또한 efficiency-accuracy trade-off를 향상시키기위해 약간의 "plug-and-play"를 수용했다고 한다. 이후 methodology 부분을 보았을때 typical attention mechanism를 적용했다고 나왔지만 자세히는 안알려준다. (코드를 확인해봐야할 듯)
추가로 random layer augmentaion을 적용했다고한다. (random layer에서 layer는 CAD에서 사용하는 layer를 의미)