ma-xu / LIVE

[CVPR 2022 Oral] Towards Layer-wise Image Vectorization

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LIVE- Towards Layer-wise Image Vectorization (CVPR 2022 Oral)

Xu Ma, Yuqian Zhou, Xingqian Xu, Bin Sun, Valerii Filev, Nikita Orlov, Yun Fu, Humphrey Shi

[arXiv], [Project Page], [Colab Demo], [HuggingFace Space], Primary contact: [Xu Ma]

This repo is a simple backup. See Picsart-AI-Research/LIVE for the official release.



We present a new method to progressively generate a SVG that fits the raster image in a layer-wise fashion. Given an arbitrary input image, LIVE recursively learns the visual concepts by adding new optimizable closed bezier paths and optimizing all these paths.



Elephant at sunset Elephant at sunset Elephant at sunset Elephant at sunset
From left to right are (1)input raster image, (2)output SVGs of DiffVG (path=5), (3)output SVGs of DiffVG (path=256), and (4)output of our LIVE (path=5). With only 5 paths, DiffVG cannot reconstruct the input image. When increasing the path number to 256 (which is significantly larger than the number of necessary paths), DiffVG is able to reconstruct the input. Differently, our LIVE is able to reconstruct the input smiling face by only 5 paths, and shows a compact layer-wise representation (We re-scale the speed to match the three gifs.).

Installation

We suggest users to use the conda for creating new python environment.

Requirement: 5.0<GCC<6.0; nvcc >10.0.

git clone git@github.com:ma-xu/LIVE.git
cd LIVE
conda create -n live python=3.7
conda activate live
conda install -y pytorch torchvision -c pytorch
conda install -y numpy scikit-image
conda install -y -c anaconda cmake
conda install -y -c conda-forge ffmpeg
pip install svgwrite svgpathtools cssutils numba torch-tools scikit-fmm easydict visdom
pip install opencv-python==4.5.4.60  # please install this version to avoid segmentation fault.

cd DiffVG
git submodule update --init --recursive
python setup.py install
cd ..

Run Experiments

conda activate live
cd LIVE
# Please modify the paramters accordingly.
python main.py --config <config.yaml> --experiment <experiment-setting> --signature <given-folder-name> --target <input-image> --log_dir <log-dir>
# Here is an simple example:
python main.py --config config/base.yaml --experiment experiment_5x1 --signature smile --target figures/smile.png --log_dir log/

Reference

@inproceedings{xu2022live,
    title={Towards Layer-wise Image Vectorization},
    author={Ma, Xu and Zhou, Yuqian and Xu, Xingqian and Sun, Bin and Filev, Valerii and  Orlov, Nikita and Fu, Yun and Shi, Humphrey},
    booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
    year={2022}
}

Acknowledgement

Our implementation is mainly based on the diffvg codebase. We gratefully thank the authors for their wonderful works.

LICENSE

LIVE is under the Apache-2.0 license. Please contact the authors for commercial use.

About

[CVPR 2022 Oral] Towards Layer-wise Image Vectorization

License:Apache License 2.0


Languages

Language:Python 41.4%Language:C++ 31.9%Language:Cuda 23.5%Language:C 1.4%Language:CMake 1.2%Language:Makefile 0.3%Language:Perl 0.1%Language:Shell 0.1%Language:PowerShell 0.0%