바이트댄스, Seaweed-7B 출시: 비용 효율적인 비디오 생성 기반 모델
2025. 04. 14.
StarVector: 이미지와 텍스트에서 SVG 코드를 생성하는 새로운 도구
최근, StarVector라는 오픈 소스 프로젝트가 최고의 컴퓨터 비전 컨퍼런스인 CVPR 2025에서 수락되었다고 발표했습니다. 이 프로젝트는 이미지나 텍스트 설명에서 SVG(스케일러블 벡터 그래픽) 코드를 자동으로 생성할 수 있는 다중 모달 대형 언어 모델에 기반한 솔루션을 제공합니다.
온라인 체험
아래의 인터랙티브 데모를 통해 StarVector의 이미지-투-SVG 기능을 직접 체험할 수 있습니다:
이 데모를 통해 자신의 이미지를 업로드하고, 실시간으로 SVG 생성 효과를 확인하며, 생성된 SVG 코드를 얻을 수 있습니다.
StarVector란 무엇인가요?
StarVector는 SVG 생성 작업을 위해 특별히 설계된 다중 모달 비전-언어 모델입니다. 두 가지 주요 기능을 수행할 수 있습니다:
- 이미지-투-SVG: 비트맵 이미지를 SVG 벡터 코드로 변환합니다.
- 텍스트-투-SVG: 텍스트 설명에 따라 해당 SVG 그래픽을 생성합니다.
전통적인 벡터화 도구와 달리, StarVector는 단순히 곡선 피팅을 수행하지 않고, 이미지의 의미 구조를 이해하며, 적절한 SVG 기본 요소(예: 원, 다각형, 텍스트 등)를 사용하여 더 간결하고 정확한 벡터 그래픽 코드를 생성합니다.
기술 아키텍처 및 작동 원리
StarVector는 이미지 벡터화 작업을 코드 생성 작업으로 변환하는 혁신적인 다중 모달 아키텍처를 채택하고 있습니다. 연구팀은 StarCoder(코드 생성 대형 모델)를 기반으로 모델 아키텍처를 구축하여 SVG 코드 공간에서 직접 작동할 수 있도록 했습니다.
이미지-투-SVG 변환을 수행할 때, 이미지는 먼저 시각 인코더에 의해 시각 토큰으로 투영되고, 그 후 모델이 해당 SVG 코드를 생성합니다. 텍스트-투-SVG 생성의 경우, 모델은 이미지를 제공할 필요 없이 텍스트 지시를 직접 받아 완전히 새로운 SVG 그래픽을 생성합니다.
StarVector의 훈련은 두 단계 방법을 사용합니다:
- 사전 훈련 단계: SVG-Stack 데이터셋에서 이미지에서 SVG로의 매핑 능력을 학습합니다. 이 데이터셋은 210만 샘플을 포함하고 있으며, 이 단계에서 모델은 다양한 벡터 그래픽 요소를 처리하는 기본 능력을 학습합니다.
- 미세 조정 단계: 특정 도메인 데이터셋(예: SVG-폰트, SVG-아이콘 등)에서 추가 최적화를 수행하여 특정 작업에 대한 모델의 성능을 향상시킵니다.
이 프로젝트는 다양한 요구를 충족하기 위해 두 가지 모델 버전을 제공합니다:
- StarVector-1B: 10억 개의 매개변수를 가지고 있으며, 자원이 제한된 환경에 적합하고 성능과 효율성의 균형을 이룹니다.
- StarVector-8B: 80억 개의 매개변수를 가지고 있으며, 최고의 생성 품질을 제공하고 궁극적인 효과를 추구하는 시나리오에 적합합니다.
주요 기술 혁신
StarVector는 여러 가지 주요 기술적 혁신을 가져옵니다:
의미 이해 및 간결한 표현
전통적인 벡터화 방법(예: AutoTrace, Potrace 등)은 주로 곡선 피팅에 의존하며 이미지 의미를 이해하지 못해 길고 편집하기 어려운 경로를 생성하는 경우가 많습니다. StarVector는 다중 모달 분석을 통해 의미적으로 관련된 SVG 프리미티브(예: <circle>
, <text>
등)를 직접 생성할 수 있어 더 간결하고 편집 가능한 코드를 실현합니다.
혁신적인 평가 지표
이 프로젝트는 벡터 그래픽 전용 평가 지표인 DinoScore를 도입하여, 전통적인 픽셀 수준의 지표(예: MSE)가 벡터 그래픽의 위상 구조를 정확하게 포착하지 못하는 문제를 해결하고, 평가 결과를 인간의 시각적 인식에 더 가깝게 만듭니다.
기존 방법과의 비교
SVG-Bench 벤치마크 테스트에서 StarVector 모델(특히 8B 버전)은 기존의 벡터화 방법을 크게 능가합니다:
비교 차트는 다양한 이미지를 처리할 때 서로 다른 방법의 효과를 보여줍니다. StarVector에 의해 생성된 SVG 코드는 더 간결하고 원본 이미지의 구조와 의미를 정확하게 포착하고 있음을 알 수 있습니다. 결과는 시각적으로 더 명확하며, 생성된 코드는 나중에 편집하거나 수정하기가 더 쉽습니다.
데이터셋 및 벤치마크 테스트
StarVector를 훈련하고 평가하기 위해 연구팀은 두 가지 중요한 자원을 만들었습니다:
SVG-Stack 데이터셋
아이콘, 차트, 폰트 등 다양한 벡터 그래픽을 포함하는 210만 샘플을 포함한 대규모의 다양한 데이터셋입니다. 이 데이터셋은 모델이 다양한 SVG 프리미티브를 처리하는 능력을 학습하고, 다양한 유형의 그래픽에 대해 좋은 일반화를 달성할 수 있도록 합니다.
SVG-Bench 평가 벤치마크
세 가지 주요 작업을 포함하는 10개의 하위 데이터셋을 포함한 포괄적인 평가 벤치마크입니다:
- 이미지-투-SVG 생성
- 텍스트-투-SVG 생성
- 차트 생성
각 하위 데이터셋은 서로 다른 특성과 난이도를 가지고 있어 평가 결과를 더 포괄적이고 신뢰할 수 있게 만듭니다.
응용 시나리오 및 한계
StarVector는 특히 다음과 같은 응용 시나리오에 적합합니다:
- 웹 및 UI 디자인: 아이콘, 버튼 및 기타 인터페이스 요소를 효율적으로 변환합니다.
- 기술적 차트 및 플로우차트: 손으로 그린 또는 래스터 차트를 편집 가능한 벡터 형식으로 변환합니다.
- 폰트 및 로고 디자인: 스케치나 비트맵 로고를 정확한 벡터 버전으로 변환합니다.
- 데이터 시각화: 차트 및 그래픽에 대한 명확하고 확장 가능한 벡터 표현을 제공합니다.
현재 StarVector 버전은 다음 영역에서 특정 한계가 있음을 유의해야 합니다:
- 자연 이미지(예: 풍경 및 초상화)에 대해 성능이 저조하며, 훈련 데이터에는 복잡한 텍스처나 조명 정보가 포함되어 있지 않습니다.
- 매우 복잡한 일러스트레이션에 대해 결과를 과도하게 단순화할 수 있습니다.
- 매우 큰 이미지를 처리하는 데는 더 긴 추론 시간이 필요할 수 있습니다.
배포 및 사용
StarVector는 다양한 사용 시나리오에 맞춰 여러 가지 배포 옵션을 제공합니다:
HuggingFace API
기존 프로젝트에 신속하게 통합할 수 있는 준비된 모델 인터페이스를 제공합니다. 사용자는 간단한 API 호출을 통해 이미지를 SVG 코드로 변환할 수 있습니다.
VLLM 가속 백엔드
Paged Attention 기술을 통해 추론 속도를 최적화하며, 높은 동시성 시나리오(예: 배치 이미지 처리)를 지원합니다. 이 배포 방법은 많은 이미지를 처리해야 하는 생산 환경에 특히 적합합니다.
로컬 배포 및 데모
이 프로젝트는 완전한 배포 가이드와 Gradio 데모 인터페이스를 제공하여 사용자가 로컬 환경에서 모델을 실행하고 실시간으로 결과를 볼 수 있도록 합니다. 데모 인터페이스는 이미지를 업로드하거나 텍스트를 입력하고 다양한 모델 출력의 비교를 시각화하는 기능을 지원합니다.
오픈 소스 기여 및 향후 개발
StarVector 프로젝트는 GitHub에서 완전히 오픈 소스화되었으며(Apache 2.0 라이센스), 완전한 코드, 사전 훈련된 모델 및 평가 도구를 제공합니다. 연구팀은 SVG-Stack 및 SVG-Bench 데이터셋도 훈련 및 평가를 위해 공개하여 벡터 그래픽 생성 분야의 연구에 중요한 자원을 제공합니다.
앞으로 연구팀은 StarVector를 다음과 같은 분야에서 더욱 개선할 계획입니다:
- 자연 이미지 처리 능력 향상.
- 생성 과정에서 사용자가 특정 매개변수를 지정할 수 있도록 더 세분화된 제어 옵션 제공.
- 추론 시간 및 자원 요구 사항을 줄이기 위해 모델 성능 최적화.
- 3D 모델 생성 및 동적 SVG 생성과 같은 더 많은 응용 시나리오로 확장.
관련 링크
- 프로젝트 GitHub 리포지토리
- 프로젝트 공식 웹사이트
- 온라인 데모
- 논문 링크
- SVG-Stack 데이터셋
- SVG-Bench 평가 벤치마크
- StarVector-1B 모델
- StarVector-8B 모델