visioncortex/vtracer

Raster to Vector Graphics Converter

GitHub에서 열기 ↗ image-procesingrustsvg
6,362
GitHub 스타
431
포크
Rust
언어
MIT
라이선스
2026.03.23
최근 푸시
2026.06.16
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
VTracer는 고해상도 컬러 이미지를 효율적으로 벡터화해야 하는 프로젝트에 적합하며, 특히 Rust 기반의 빠른 처리와 간결한 SVG 출력이 필요한 경우 유용합니다. 또한 Python 바인딩을 제공하여 기존 파이프라인에 쉽게 통합할 수 있습니다.

강점

  • O(n) 선형 시간 복잡도로 대용량 이미지도 빠르게 처리 가능
  • 컬러 이미지와 고해상도 스캔을 지원하며, Adobe Illustrator Image Trace보다 더 간결한 SVG 출력 생성
  • Rust, Python, 웹 앱 등 다양한 방식으로 사용 가능하며, Rust + wasm 기반 웹 앱 제공

약점

  • JPEG 노이즈가 있는 이미지에서 추적 품질이 저하될 수 있음
  • 컷아웃 모드에서 도형 경계에 틈이 생기는 문제가 있음
  • 펜슬 트레이싱(열린 경로) 기능은 아직 개발되지 않음

주의사항

  • 공식 릴리스 외의 타사 소스에서 다운로드하지 말 것
  • 이미지에 JPEG 노이즈가 있으면 전처리 없이 품질이 떨어질 수 있음
  • 컷아웃 모드 사용 시 도형 간 경계가 완벽하지 않을 수 있음

시작 가이드

  • 공식 릴리스 페이지에서 미리 빌드된 바이너리를 다운로드하거나 cargo install vtracer로 설치
  • 웹 앱을 통해 별도 설치 없이 바로 사용해보기
  • Python 환경에서는 pip install vtracer로 설치 후 스크립트에 통합

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

<div align="center">

<img src="docs/images/visioncortex-banner.png"> <h1>VTracer</h1>

<p> <strong>래스터를 벡터 그래픽으로 변환하는 도구</strong> </p>

<h3> <a href="https://www.visioncortex.org/vtracer-docs">문서</a> <span> | </span> <a href="https://www.visioncortex.org/vtracer/">웹 앱</a> <span> | </span> <a href="https://github.com/visioncortex/vtracer/releases">다운로드</a> </h3>

<sub>🦀로 제작됨, <a href="https://www.visioncortex.org/">Vision Cortex 연구 그룹</a></sub> </div>

소개

visioncortex VTracer는 래스터 이미지(jpg, png 등)를 벡터 그래픽(svg)으로 변환하는 오픈 소스 소프트웨어입니다. 그래픽과 사진을 벡터화하고 곡선을 추적하여 간결한 벡터 파일을 출력할 수 있습니다.

이진화된 입력(흑백 픽스맵)만 허용하는 Potrace와 달리, VTracer는 컬러 고해상도 스캔을 처리할 수 있는 이미지 처리 파이프라인을 갖추고 있습니다. 요약: Potrace는 O(n^2) 피팅 알고리즘을 사용하는 반면, vtracer는 전체가 O(n)입니다.

Adobe Illustrator의 Image Trace와 비교하여, VTracer는 스태킹 전략을 채택하고 구멍이 있는 모양을 생성하지 않으므로 출력이 훨씬 더 간결합니다(더 적은 수의 도형).

VTracer는 원래 기가픽셀 단위의 고해상도 역사적 청사진 스캔을 처리하기 위해 설계되었습니다. 동시에 VTracer는 저해상도 픽셀 아트도 처리할 수 있으며, 레트로 게임 아트워크를 위해 image-rendering: pixelated를 시뮬레이션합니다.

추적 알고리즘클러스터링 알고리즘에 대한 기술적 설명.

웹 앱

VTracer와 그 핵심 라이브러리는 Rust로 구현되었습니다. 이는 강력하고 효율적인 알고리즘을 개발하고 대화형 애플리케이션에 쉽게 적용할 수 있는 견고한 기반을 제공합니다. 웹 앱은 Rust + wasm 플랫폼의 능력을 완벽히 보여줍니다.

!스크린샷

!스크린샷

명령줄 앱

visioncortex VTracer 0.6.0
이미지를 벡터 그래픽으로 변환하는 명령줄 앱

사용법:
    vtracer [옵션] --input <입력> --output <출력>

플래그:
    -h, --help       도움말 출력
    -V, --version    버전 정보 출력

옵션:
        --colormode <color_mode>                 트루 컬러 이미지 `color` (기본값) 또는 이진 이미지 `bw`
    -p, --color_precision <color_precision>      RGB 채널에 사용할 유효 비트 수
    -c, --corner_threshold <corner_threshold>    코너로 간주할 최소 순간 각도(도)
    -f, --filter_speckle <filter_speckle>        X 픽셀보다 작은 패치를 버림
    -g, --gradient_step <gradient_step>          그라데이션 레이어 간 색상 차이
        --hierarchical <hierarchical>
            계층적 클러스터링 `stacked` (기본값) 또는 비스태킹 `cutout`. 컬러 모드에만 적용.

    -i, --input <입력>                          입력 래스터 이미지 경로
    -m, --mode <mode>                            곡선 피팅 모드 `pixel`, `polygon`, `spline`
    -o, --output <출력>                         출력 벡터 그래픽 경로
        --path_precision <path_precision>        경로 문자열에 사용할 소수점 자릿수
        --preset <preset>                        사전 설정 구성 사용 `bw`, `poster`, `photo`
    -l, --segment_length <segment_length>
            모든 세그먼트가 이 길이보다 짧아질 때까지 반복적으로 세분화 평활화 수행

    -s, --splice_threshold <splice_threshold>    스플라인을 접합할 최소 각도 변위(도)

다운로드

Releases에서 미리 빌드된 바이너리를 다운로드할 수 있습니다.

crates.io/vtracer에서 소스로부터 프로그램을 설치할 수도 있습니다:

cargo install vtracer

다른 타사 소스에서 다운로드하지 않는 것을 강력히 권장합니다.

사용법

Rust 라이브러리

vtracer를 Rust 라이브러리로 설치할 수 있습니다.

cargo add vtracer

Python 라이브러리

0.6부터 vtracer는 Python 네이티브 확장으로도 패키징되었습니다. 이는 훌륭한 pyo3 프로젝트 덕분입니다.

pip install vtracer

실제 사용 사례

VTracer는 다음 제품에서 사용됩니다 (자신의 제품을 추가하려면 PR을 열어주세요):

<table> <tbody> <tr> <td><a href="https://logo.aliyun.com/logo#/name"><img src="docs/images/aliyun-logo.png" width="250"/></a> <br>스마트 로고 디자인 </td> <td></td> </tr> </tbody> </table>

인용

VTracer는 컴퓨터 그래픽스/비전 연구 분야의 여러 학술 논문에서 인용되었습니다. 저희 작업을 인용하셨다면 알려주시기 바랍니다:

+ SKILL 2023 Framework to Vectorize Digital Artworks for Physical Fabrication based on Geometric Stylization Techniques + arXiv 2023 Image Vectorization: a Review + arXiv 2023 StarVector: Generating Scalable Vector Graphics Code from Images + arXiv 2024 Text-Based Reasoning About Vector Graphics + arXiv 2024 Delving into LLMs' visual understanding ability using SVG to bridge image and text

VTracer는 어떻게 탄생했나?

다음 내용은 미출간 회고록에서 발췌한 것입니다.

십대 시절, 벡터 그래픽 분야의 두 오픈 소스 프로젝트인 Potrace와 Anti-Grain Geometry (AGG)가 저에게 큰 영감을 주었습니다.

수년 후인 2020년, 저는 비디오 처리 엔진을 개발하고 있었습니다. 그리고 상업적으로 실현 가능하려면 훨씬 더 많은 투자가 필요하다는 것이 분명해졌습니다. 그래서 프로젝트를 포기하기 전에, 후세를 위해 무언가를 오픈 소스로 공개하고 싶었습니다. 그 당시 저는 이미 프로토타입 벡터 그래픽 추적기를 개발해 두었습니다. 손으로 그린 청사진의 고해상도 스캔을 벡터로 변환할 수 있었지만, 흑백 이미지만 처리할 수 있었고 폴리곤만 출력할 수 있었으며 스플라인은 출력할 수 없었습니다.

계획은 벡터라이저를 완전히 개발하여 컬러 이미지를 처리하고 스플라인을 출력하는 것이었습니다. 저는 매우 재능 있는 인턴 @shpun817을 영입하여 VTracer 작업을 맡겼습니다. 비디오 처리 엔진의 프론트엔드인 "클러스터링 알고리즘"을 전처리기로 접목했습니다.

3개월 후, 우리는 첫 번째 버전을 Reddit에 공개했습니다. 놀랍게도, 이렇게 보잘것없는 프로젝트에 대한 반응은 압도적이었습니다.

앞으로의 계획?

몇 가지 생각해 둔 것이 있습니다:

  1. 경로 단순화. 출력 경로에 후처리 필터를 구현하여 스플라인 수를 더 줄입니다.
  1. 완벽한 컷아웃 모드. 현재 컷아웃 모드에서는 도형들이 경계를 완벽하게 공유하지 않고 틈이 있습니다.
  1. 펜슬 트레이싱. 도형을 닫힌 경로로 추적하는 대신, 도형을 열린 경로로 골격화하는 시도를 할 수 있습니다. 출력은 깔끔하고 고정된 너비의 선이 됩니다.
  1. 이미지 정리. 현재 추적기는 무손실 압축 PNG에서 가장 잘 작동합니다. 이미지가 JPEG 노이즈로 손상된 경우 추적 품질에 영향을 줄 수 있습니다. 입력을 노이즈 제거하는 전처리 필터 패스를 개발할 수 있을 것입니다.

이러한 작업에 관심이 있거나 개발을 후원하고 싶다면 연락 주시기 바랍니다.

원본 저장소: visioncortex/vtracer

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.