Я экспериментирую с методом styleTransfer
в ml5.js . Это хорошо работает, но я столкнулся с проблемой, когда кажется, что он работает только с квадратными изображениями в качестве входного источника - любое другое соотношение сторон приводит к искаженному выводу, где координаты x / y выглядят интерполированными.
Это похоже на ошибку, но мне интересно, что я делаю что-то не так?
Я использую стартовый код, найденный в репозитории ml5-examples , в частности здесь:
https://github.com/ml5js/ml5-examples
Вы можете увидеть функциональную демонстрацию этого кода здесь:
https://ml5js.org/docs/style-transfer-image-example
Единственное, что я изменил по сравнению с оригинальным исходным кодом, это то, что мое входное изображение имеет неквадратное соотношение сторон. Это - это изображение, которое я использую, хотя я уменьшил его до 300x225 пикселей.
Чтобы воссоздать проблему, которую я пытаюсь описать:
- Перейдите на демонстрационную страницу . Нажмите один раз кнопку «Передача», чтобы увидеть, как она должна работать.
- Используйте инспектор браузера (я использую Chrome) и задайте высоту и ширину входного изображения (
#inputImg
) примерно 300 на 200 пикселей.
- Нажмите «Перенос» и обратите внимание на явно искаженный результат.
Напротив, для Deeplearn.js настроена практически идентичная демоверсия:
https://reiinakano.github.io/fast-style-transfer-deeplearnjs/assets/scripts/example-style-transfer-image.js
Если вы предпримете аналогичные шаги и наклоните соотношение сторон входного изображения к чему-то, отличному от квадрата, результаты будут работать, как и ожидалось, - выходное изображение будет версией входного изображения с переносом стиля и тем же соотношением сторон, что и у входного изображения. .
DeepLearn.js сейчас устарел, но фактически, как я понимаю, служил базовым кодом для ml5.js, поэтому мне любопытно, что этой ошибки нет в исходной реализации.
Есть что-то, что я пропускаю? Или это ошибка в ml5.js?
Извините за отсутствие ссылок на демоверсию CodePen или что-то еще - это немного сложно с необходимостью загрузки моделей. Я могу попытаться разместить свой код где-нибудь для всех, чтобы посмотреть, поможет ли это решить проблему.