ml5.js styleTransfer работает только с соотношением сторон 1: 1? - PullRequest
0 голосов
/ 09 ноября 2018

Я экспериментирую с методом 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 или что-то еще - это немного сложно с необходимостью загрузки моделей. Я могу попытаться разместить свой код где-нибудь для всех, чтобы посмотреть, поможет ли это решить проблему.

...