일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- PYTHON
- 트랜스포머
- 메타
- 딥러닝
- 아두이노
- 우분투
- 확산 모델
- OpenCV
- 인공지능
- 다국어 지원
- 휴머노이드 로봇
- 생성형 AI
- tts
- Stable Diffusion
- 티스토리챌린지
- AI 기술
- 시간적 일관성
- 멀티모달
- 강화 학습
- LLM
- AI
- 오블완
- OpenAI
- LORA
- ubuntu
- 일론 머스크
- TRANSFORMER
- ChatGPT
- 오픈AI
- 오픈소스
- Today
- Total
AI 탐구노트
다양한 입력 이미지를 위한 범용 가상 스케치 프레임워크 본문
1. 서론
그래픽 디자인에서 벡터 이미지는 이미지의 해상도에 구애받지 않고 렌더링 가능하다는 특징을 가지고 있습니다. 선화(Sketch) 이미지가 벡터화 되면 공학 설계나 2D 애니메이션, 3D 프린팅 등 다양한 산업에서 폭넓게 활용될 수 있습니다. 하지만 스케치를 수작업으로 벡터화하는 것은 많은 시간과 노력이 소요되며, 복잡한 선화를 간소화하거나 사진에서 선화를 생성하는 작업은 더욱 까다롭습니다.
최근 머신러닝 기술은 복잡한 이미지 처리와 변환 작업에서 두각을 나타내고 있습니다. 그러나 기존의 벡터화 알고리즘은 주로 고정 해상도를 처리하거나 픽셀 기반으로 작동하며, 다소 제한적인 범용성을 갖고 있었습니다. 이러한 한계를 극복하기 위해 다양한 해상도의 입력 이미지를 처리하고 벡터화를 수행할 수 있는 범용 가상 스케치 프레임워크(General virtual Sketch Framework)이 제안되었습니다. (참고로 논문은 ACM SIGGRAPH 2021에서 소개되었습니다. 몇 년 되었다는 얘기죠.)
이 프레임워크는 가상 펜과 동적 윈도우 개념을 도입해 이미지를 선별적으로 처리하며, 학습 과정에서 벡터 데이터가 아닌 레스터 데이터를 활용해 차별화된 접근 방식을 보여줍니다. 이를 통해 사용자는 깨끗한 선화부터 복잡한 스케치, 심지어는 사진에서 선화를 생성할 수 있는 유연한 도구를 제공받게 됩니다.
2. 본론
2.1. 기존 방식의 문제점
기존의 벡터화 방식은 크게 두 가지로 분류됩니다. 첫째, 최적화 기반 방법은 고품질 벡터 이미지를 생성할 수 있지만 계산 복잡도가 높아 실시간 작업에 적합하지 않습니다. 둘째, 학습 기반 방법은 주로 고정 해상도를 처리하거나 특정 입력 데이터에만 적합하며, 다양성 있는 이미지에 대한 일반화 능력이 부족합니다. 특히, 기존 방법들은 스케치의 노이즈 제거와 같은 복잡한 작업에서는 성능이 저하되곤 했습니다.
2.2. 접근 방식
논문에서는 Recurrent Neural Network(RNN)를 기반으로 한 동적 윈도우 및 가상 펜을 도입해 이미지를 선별적으로 처리합니다. 이는 입력 이미지의 복잡성에 따라 윈도우의 크기와 위치를 조정하여 처리 효율성을 극대화합니다. 또한, 차별화된 레스터화 모듈을 활용해 벡터 데이터가 아닌 레스터 데이터만으로 모델을 학습시킬 수 있습니다.
2.3. 세부 적용 기술
- 동적 윈도우
동적 윈도우는 가상 펜 주변의 특정 영역을 선택적으로 확대하거나 축소하며 이미지를 처리합니다. 이를 통해 세밀한 작업에는 작은 윈도우를, 큰 영역에서는 넓은 윈도우를 활용할 수 있습니다. - 가상 펜과 스토크 표현
가상 펜은 선의 시작점과 끝점을 자동으로 조정하며, 필요한 경우 곡선을 베지어 곡선으로 변환해 표현합니다. 이를 통해 더 적은 스토크로 복잡한 선화를 간소화할 수 있습니다. - 차별화된 레스터화 모듈
레스터화 과정에서 손실 없이 벡터 데이터를 레스터 이미지로 변환하며, 이를 학습에 활용할 수 있도록 설계되었습니다. 이를 통해 벡터 데이터가 부족한 상황에서도 학습이 가능하도록 했습니다. - 스트로크 정규화 메커니즘
불필요한 스토크를 줄이고 간소화된 벡터 표현을 장려하기 위해 스트로크 정규화 손실을 추가로 적용했습니다.
2.4. 제약사항
제안된 프레임워크는 매우 복잡하거나 해상도가 높은 이미지의 일부 세부 정보를 놓칠 가능성이 있습니다. 이는 CNN 기반 글로벌 가이드가 일부 섬세한 선을 축소할 때 발생할 수 있는 문제로, 고해상도 학습 데이터나 대체 가이드를 사용해 개선할 여지가 있습니다. 그럴 경우, 과정을 수차례 반복하고
3.테스트
3.1.범용 가상 스케치 프레임워크를 이용한 변환
프로젝트 페이지에서 보면서, 손으로 그린 그림을 벡터로 이렇게 멋지게 변환해 줄 수 있다고? 약간 의심이 들었습니다. 결국, 환경 구성을 해 보고 실제로 변환되는 결과물을 확인해 봤습니다. 그런데... 그렇게 나오질 않더군요. 다시 찬찬히 보니 깃헙 사이트에는 여러 번 반복해서 좋은 것을 선택해야 한다는 제약사항에 대한 글이 있었습니다. 참고로 아래 그림은 스케치 이미지를 입력으로 했을 때 생성된 벡터 이미지와 각 라인이 생성된 순서, 그리고 그 라인들을 생성하기 위해 움직였던 궤적을 보여주고 있습니다.
3.2.ChatGPT에게 직접 만들어 달라고 한다면?
데모로 소개된 rocket 이미지를 이용해 vector svg 이미지로 변환해 달라고 해서 생성해 봤습니다. 아주 기본적인 프롬프트를 이용해 변환해 달라고 했을 때의 모습입니다. 선들이 단순화되어 있지 않고 개별적으로 다 쪼개져 나온 것을 볼 수 있습니다. 이미지의 윤곽을 추출하고 이를 정제하고 다시 그걸 기반으로 개체를 라인아트로 뽑아내고 등등 아주 디테일하게 요구사항을 주면 더 나은 결과를 보여줄 것 같긴 하지만 그런 것 없이도 이미지에 대한 이해를 ChatGPT는 너무도 잘할 것이라고 기대한 것은 너무 과한 것이었나 봅니다. 더 상세한 작업은 각자 한번 해 보시길... ^^;
3.3.Adobe 도구 등을 이용하는 변환
Adobe의 illustrator 등에서도 최근 레스터 이미지를 vector로 변환하는 기능들을 제공하고 있었습니다. 아래 그림이 바로 그런 예시입니다. 만약 유료 도구를 사용한다면 위와 같은 수고는 많이 덜 수 있을 것 같습니다. 다만, 저도 이 프로그램의 해당 기능을 사용해 보진 않아서 illustrator가 실제로 어느 정도까지 기능을 제공할 수 있는지는 알 수가 없습니다. 어련히 잘 하겠어 정도로만 생각하고 있을 뿐이죠.
4. 결론
논문에서 제안된 범용 가상 스케치 프레임워크는 다양한 이미지 입력을 처리할 수 있는 유연성과 효율성을 제공합니다. 특히 동적 윈도우와 스트로크 정규화 메커니즘은 기존 방법에 비해 계산량을 줄이고 벡터화의 품질을 높이는 데 기여합니다. 향후 복잡한 이미지와 높은 해상도에서의 성능 개선과 추가적인 정교화 기술이 도입된다면 그래픽 디자인 및 애니메이션 산업에서의 실용성이 더욱 높아질 것입니다.
이 논문은 4년 전에 발표되었습니다. AI 기술의 발달 속도를 보면 엄청 과거의 기술일 수도 있다는 얘기입니다. 하지만, 최근 등장한 LLM, VLM 등의 기술과의 접목을 할 수 있는 방향도 있지 않을까 생각을 해 봤습니다. 텍스트 프롬프트 기반으로 멋진 vector 이미지를 생성하는 사례는 많이 있는 것 같지만, 스케치를 완벽하게 변환해 주는 서비스는 찾기 어려웠기 때문에 둘의 결합으로 이런 허들이 넘어지지 않을까 하는 기대 때문입니다. :-)
4. 참고자료
- 프로젝트 사이트
General Virtual Sketching Framework for Vector Line Art
Framework Overview Our framework generates the parametrized strokes step by step in a recurrent manner. It uses a dynamic window (dashed red boxes) around a virtual pen to draw the strokes, and can both move and change the size of the window. (a) Four main
markmohr.github.io
- 논문 : https://esslab.jp/publications/HaoranSIGRAPH2021.pdf
- 코드 (Github)
GitHub - MarkMoHR/virtual_sketching: [SIGGRAPH 2021] General Virtual Sketching Framework for Vector Line Art
[SIGGRAPH 2021] General Virtual Sketching Framework for Vector Line Art - MarkMoHR/virtual_sketching
github.com
5. Q&A
Q. 이 프레임워크는 어떤 데이터로 학습되나요?
주로 레스터 데이터만으로 학습되며, 벡터 데이터가 없어도 동작하도록 설계되었습니다.
Q. 동적 윈도우의 장점은 무엇인가요?
해상도에 따라 윈도우 크기를 조정해 세밀한 작업과 큰 영역 작업을 동시에 처리할 수 있습니다.
Q. 사진에서 선화를 생성할 때 추가적인 과정이 필요한가요?
아닙니다. 본 프레임워크는 사진을 직접 선화로 변환하며, 추가적인 처리 없이 벡터화를 수행할 수 있습니다.
'AI 기술' 카테고리의 다른 글
Gaze-LLE : 대규모 학습 인코더를 활용한 시선 대상 추정 (2) | 2024.12.15 |
---|---|
DeepSVG : 벡터 그래픽 생성과 애니메이션을 위한 계층적 생성 네트워크 (3) | 2024.12.14 |
Im2Vec : 이미지로부터 벡터 그림 만들기 (1) | 2024.12.13 |
Handwriting Transformers : A Novel Approach to Generating Styled Handwritten Text Images (1) | 2024.12.09 |
손글씨 서명 (Signature) 생성 서비스 (1) | 2024.12.09 |