Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 2.54 KB

File metadata and controls

49 lines (33 loc) · 2.54 KB

VectorNST

img1 img2 img3

Официальная реализация модели VectorNST (векторный перенос стиля) на PyTorch.

Демо сервис.

Использование

Требования

Установите следующие зависимости:

  • PyTorch и Torchvision
  • Pillow
  • NumPy
  • DiffVG и его зависимости

Пример установки:

  • pip install torch torchvision pillow numpy
  • pip install cssutils scikit-learn scikit-image svgwrite svgpathtools matplotlib
  • git clone --recursive https://github.com/IzhanVarsky/diffvg
  • cd diffvg && python ./setup.py install && cd ..

Тестирование

Запустите наш пример python test_vector_nst.py --content_img ./images/owl.svg --style_img ./images/owl1.jpg.

Вы также можете указать другие параметры: запустите python test_vector_nst.py --help, чтобы увидеть больше информации.

JointLoss

Механизм работы JointLoss основан на принципе поиска точек стыка у кубических кривых Безье, являющихся одним из основных компонентов SVG-формата изображения. Точки стыка - точки, в которых кривая не имеет касательной к своей поверхности. В таком случае чем больше кривизна кривой в малой окрестности данной точки, тем более неровным получается контур выходного изображения.

Основная идея поиска точек стыка основана на анализе производной вектор-функции, описывающей кривую: в подобных точках производная не определена, а также в них находится локальный экстремум функции.

Вы можете ознакомиться с более подробной информацией в этом файле