Официальная реализация модели VectorNST (векторный перенос стиля) на PyTorch.
Установите следующие зависимости:
Пример установки:
pip install torch torchvision pillow numpypip install cssutils scikit-learn scikit-image svgwrite svgpathtools matplotlibgit clone --recursive https://github.com/IzhanVarsky/diffvgcd 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 основан на принципе поиска точек стыка у кубических кривых Безье, являющихся одним из основных компонентов SVG-формата изображения. Точки стыка - точки, в которых кривая не имеет касательной к своей поверхности. В таком случае чем больше кривизна кривой в малой окрестности данной точки, тем более неровным получается контур выходного изображения.
Основная идея поиска точек стыка основана на анализе производной вектор-функции, описывающей кривую: в подобных точках производная не определена, а также в них находится локальный экстремум функции.
Вы можете ознакомиться с более подробной информацией в этом файле


