AI 탐구노트

Im2Vec : 이미지로부터 벡터 그림 만들기 본문

AI 기술

Im2Vec : 이미지로부터 벡터 그림 만들기

42morrow 2024. 12. 13. 09:35

1. 서론

벡터 그래픽스는 우리가 사용하는 폰트, 로고, 그림 등에서 자주 사용됩니다. 픽셀로 이루어진 이미지와 달리 무한히 확대해도 깨지지 않고 파일 크기도 작아 다루기 쉽습니다. 하지만 이런 벡터 그래픽스를 만들려면 전문적인 기술이 필요하거나, 벡터 데이터를 학습하는 복잡한 인공지능 모델이 필요합니다. 게다가 벡터 데이터셋은 구하기도 쉽지 않죠. 

 

이를 해결하기 위해 논문에서는 벡터 데이터 없이도 이미지 데이터를 사용해 벡터 그래픽스를 만드는 새로운 방법인 Im2Vec을 제안했는데 이 방법은 일반 이미지(레스터) 데이터를 학습하고, 이를 통해 벡터 형태의 그림을 생성할 수 있는 기술입니다.

 

그림 : Img2Vec가 제공하는 기능 요소


2. 본론

2.1 기존 방식의 문제점

기존에는 벡터 그래픽스를 만들기 위해 벡터 데이터를 학습시켜야 했습니다. 예를 들어, 컴퓨터가 그림을 만들 때는 ‘선을 그리기 위한 정확한 명령어들’을 배워야 합니다. 예를 들어 대표적으로 SVG-VAE, DeepSVG 등은 벡터 데이터를 기반으로 벡터 그래픽스를 생성하는데, 학습과정에서도 벡터 데이터를 명시적으로 사용합니다. 

  • 고품질 벡터 그래픽스 데이터셋의 부족 : 충분한 데이터가 없어서 모델 학습이 어렵습니다. 
  • 동일한 이미지를 생성하기 위한 다양한 벡터 표현 방식의 비일관성 : 벡터 그래픽스를 표현하는 매개변수의 비선형성과 학습 복잡성의 문제가 있습니다. 즉, 하나의 그림을 여러 방식으로 나타낼 수 있어 모델이 혼란스러워 한다는 거죠.

2.2 Im2Vec의 새로운 접근법

Im2Vec은 레스터 이미지(일반적인 픽셀로 이루어진 그림)만을 사용하여 벡터 그래픽스를 생성합니다. 이 방법은 다음과 같은 특징이 있습니다:

  • 레스터 이미지 기반 지도 학습 : 벡터 데이터를 필요로 하지 않고, 일반적인 이미지 데이터를 사용해 학습합니다. (레스터 이미지 기반 손실 함수 사용 모델 학습)
  • 유연한 벡터 생성 : 다양한 형태와 복잡한 구조의 벡터 그림을 자동으로 만들 수 있는 프레임워크로 구축되었습니다.
  • 차별화된 렌더링 기술 : 그림을 벡터로 변환한 후 다시 이미지로 바꾸어, 기존 이미지와 비교해 정확성을 확인하며 학습합니다.

그림 : 아키텍처 개요
그림 : 형태를 레이어 구분된 곡선 형태로 인코딩하는 예시

 

2.3 Im2Vec에서 사용하는 기술

 

  • 베지어 곡선 기반 벡터 그래픽스 생성 : 베지어 곡선은 하나의 원을 변형시켜 복잡한 모양을 만들어내는 방식입니다.
  • 단일 경로 디코딩 : 원형 곡선을 변형하여 닫힌 경로를 생성하며, 경로(곡선)의 복잡도는 '곡선 세그먼트 수'(선의 조각 수)로 조절합니다.
  • 적응형 샘플링 : 곡선의 복잡한 부분에 더 많은 샘플링 포인트를 할당하여 정확성을 향상시킵니다. 
  • 다중경로 구조 : 복수의 벡터 경로를 생성할 수 있는 순환 신경망(RNN) 구조를 사용합니다. 각 경로는 독립적으로 렌더링된 후 결합되어 최종 벡터 그래픽스를 형성합니다.
  • 이미지 피라미드 구조  : 다중 해상도 손실 학습 안정성을 높이기 위해, 여러 해상도에서 이미지 손실을 계산하는 구조를 사용합니다. 이를 통해 초기에 큰 손실이 발생하더라도 점진적으로 정교한 그래픽스를 학습할 수 있습니다.

2.4 Im2Vec의 한계

Im2Vec도 완벽하지는 않으며 다음과 같은 제약 사항이 있습니다. 

  • 세부적인 표현 어려움 : 해상도가 낮은 이미지에서는 세밀한 모양을 잃어버릴 수 있습니다.
  • 비정상적인 모양 생성 가능성 : 복잡한 모양에서 때로는 이상한 모양이 생성될 수 있습니다.

3. 결론

Im2Vec은 기존의 벡터 데이터 없이도 일반적인 그림 데이터를 학습해 벡터 그래픽스를 생성할 수 있는 기술입니다. 이를 통해 데이터가 부족한 상황에서도 벡터 그래픽스를 자동으로 만들 수 있는 가능성을 열었습니다. 이 기술은 주로 폰트, 로고, 아이콘 등 다양한 디자인 작업에 활용될 수 있으며, 어떻게 응용하느냐에 따라 예상 외의 재미난 것도 만들 수 있습니다. 예를 들어 Interporation 예시에 나오는 것처럼 처음과 맨 끝 프레임 사이에 변화상을 자동으로 생성해 주면 표정이 변하는 다양한 이모지 같은 것을 만들 수 있을 것 같은데 저도 한 번 시도해 볼 생각입니다. 

 

 


4. 참고자료

  • 논문 : Im2Vec: Synthesizing Vector Graphics Without Vector Supervision (링크)
  • 코드 (Github)

 

 

GitHub - irenelee5645/image_vector: Im2Vec : A Language Model Approach to Understanding Image Classification

Im2Vec : A Language Model Approach to Understanding Image Classification - irenelee5645/image_vector

github.com

 


5. Q&A

Q. Im2Vec은 어떤 데이터를 사용하나요?

Im2Vec은 일반적인 그림 데이터(레스터 이미지)를 사용하며, 벡터 데이터는 필요하지 않습니다.

Q. Im2Vec의 장점은 무엇인가요?

Im2Vec은 벡터 데이터 없이도 복잡한 벡터 그래픽스를 만들 수 있으며, 기존 기술보다 더 다양한 모양을 잘 생성합니다.

Q. 이 기술은 어디에 활용될 수 있나요?

이 기술은 폰트 디자인, 아이콘 제작, 로고 디자인 등 그래픽 디자인 분야에서 활용될 수 있습니다.